@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,44 @@
1
+ # Memory Tool (`save_memory`)
2
+
3
+ This document describes the `save_memory` tool for Qwen Code.
4
+
5
+ ## Description
6
+
7
+ Use `save_memory` to save and recall information across your Qwen Code sessions. With `save_memory`, you can direct the CLI to remember key details across sessions, providing personalized and directed assistance.
8
+
9
+ ### Arguments
10
+
11
+ `save_memory` takes one argument:
12
+
13
+ - `fact` (string, required): The specific fact or piece of information to remember. This should be a clear, self-contained statement written in natural language.
14
+
15
+ ## How to use `save_memory` with Qwen Code
16
+
17
+ The tool appends the provided `fact` to your context file in the user's home directory (`~/.qwen/QWEN.md` by default). This filename can be configured via `contextFileName`.
18
+
19
+ Once added, the facts are stored under a `## Qwen Added Memories` section. This file is loaded as context in subsequent sessions, allowing the CLI to recall the saved information.
20
+
21
+ Usage:
22
+
23
+ ```
24
+ save_memory(fact="Your fact here.")
25
+ ```
26
+
27
+ ### `save_memory` examples
28
+
29
+ Remember a user preference:
30
+
31
+ ```
32
+ save_memory(fact="My preferred programming language is Python.")
33
+ ```
34
+
35
+ Store a project-specific detail:
36
+
37
+ ```
38
+ save_memory(fact="The project I'm currently working on is called 'qwen-code'.")
39
+ ```
40
+
41
+ ## Important notes
42
+
43
+ - **General usage:** This tool should be used for concise, important facts. It is not intended for storing large amounts of data or conversational history.
44
+ - **Memory file:** The memory file is a plain text Markdown file, so you can view and edit it manually if needed.
@@ -0,0 +1,69 @@
1
+ # Multi File Read Tool (`read_many_files`)
2
+
3
+ This document describes the `read_many_files` tool for Qwen Code.
4
+
5
+ ## Description
6
+
7
+ Use `read_many_files` to read content from multiple files specified by paths or glob patterns. The behavior of this tool depends on the provided files:
8
+
9
+ - For text files, this tool concatenates their content into a single string.
10
+ - For image (e.g., PNG, JPEG), PDF, audio (MP3, WAV), and video (MP4, MOV) files, it reads and returns them as base64-encoded data, provided they are explicitly requested by name or extension.
11
+
12
+ `read_many_files` can be used to perform tasks such as getting an overview of a codebase, finding where specific functionality is implemented, reviewing documentation, or gathering context from multiple configuration files.
13
+
14
+ **Note:** `read_many_files` looks for files following the provided paths or glob patterns. A directory path such as `"/docs"` will return an empty result; the tool requires a pattern such as `"/docs/*"` or `"/docs/*.md"` to identify the relevant files.
15
+
16
+ ### Arguments
17
+
18
+ `read_many_files` takes the following arguments:
19
+
20
+ - `paths` (list[string], required): An array of glob patterns or paths relative to the tool's target directory (e.g., `["src/**/*.ts"]`, `["README.md", "docs/*", "assets/logo.png"]`).
21
+ - `exclude` (list[string], optional): Glob patterns for files/directories to exclude (e.g., `["**/*.log", "temp/"]`). These are added to default excludes if `useDefaultExcludes` is true.
22
+ - `include` (list[string], optional): Additional glob patterns to include. These are merged with `paths` (e.g., `["*.test.ts"]` to specifically add test files if they were broadly excluded, or `["images/*.jpg"]` to include specific image types).
23
+ - `recursive` (boolean, optional): Whether to search recursively. This is primarily controlled by `**` in glob patterns. Defaults to `true`.
24
+ - `useDefaultExcludes` (boolean, optional): Whether to apply a list of default exclusion patterns (e.g., `node_modules`, `.git`, non image/pdf binary files). Defaults to `true`.
25
+ - `respect_git_ignore` (boolean, optional): Whether to respect .gitignore patterns when finding files. Defaults to true.
26
+
27
+ ## How to use `read_many_files` with Qwen Code
28
+
29
+ `read_many_files` searches for files matching the provided `paths` and `include` patterns, while respecting `exclude` patterns and default excludes (if enabled).
30
+
31
+ - For text files: it reads the content of each matched file (attempting to skip binary files not explicitly requested as image/PDF) and concatenates it into a single string, with a separator `--- {filePath} ---` between the content of each file. Uses UTF-8 encoding by default.
32
+ - The tool inserts a `--- End of content ---` after the last file.
33
+ - For image and PDF files: if explicitly requested by name or extension (e.g., `paths: ["logo.png"]` or `include: ["*.pdf"]`), the tool reads the file and returns its content as a base64 encoded string.
34
+ - The tool attempts to detect and skip other binary files (those not matching common image/PDF types or not explicitly requested) by checking for null bytes in their initial content.
35
+
36
+ Usage:
37
+
38
+ ```
39
+ read_many_files(paths=["Your files or paths here."], include=["Additional files to include."], exclude=["Files to exclude."], recursive=False, useDefaultExcludes=false, respect_git_ignore=true)
40
+ ```
41
+
42
+ ## `read_many_files` examples
43
+
44
+ Read all TypeScript files in the `src` directory:
45
+
46
+ ```
47
+ read_many_files(paths=["src/**/*.ts"])
48
+ ```
49
+
50
+ Read the main README, all Markdown files in the `docs` directory, and a specific logo image, excluding a specific file:
51
+
52
+ ```
53
+ read_many_files(paths=["README.md", "docs/**/*.md", "assets/logo.png"], exclude=["docs/OLD_README.md"])
54
+ ```
55
+
56
+ Read all JavaScript files but explicitly include test files and all JPEGs in an `images` folder:
57
+
58
+ ```
59
+ read_many_files(paths=["**/*.js"], include=["**/*.test.js", "images/**/*.jpg"], useDefaultExcludes=False)
60
+ ```
61
+
62
+ ## Important notes
63
+
64
+ - **Binary file handling:**
65
+ - **Image/PDF/Audio/Video files:** The tool can read common image types (PNG, JPEG, etc.), PDF, audio (mp3, wav), and video (mp4, mov) files, returning them as base64 encoded data. These files _must_ be explicitly targeted by the `paths` or `include` patterns (e.g., by specifying the exact filename like `video.mp4` or a pattern like `*.mov`).
66
+ - **Other binary files:** The tool attempts to detect and skip other types of binary files by examining their initial content for null bytes. The tool excludes these files from its output.
67
+ - **Performance:** Reading a very large number of files or very large individual files can be resource-intensive.
68
+ - **Path specificity:** Ensure paths and glob patterns are correctly specified relative to the tool's target directory. For image/PDF files, ensure the patterns are specific enough to include them.
69
+ - **Default excludes:** Be aware of the default exclusion patterns (like `node_modules`, `.git`) and use `useDefaultExcludes=False` if you need to override them, but do so cautiously.
@@ -0,0 +1,91 @@
1
+ ## Customizing the sandbox environment (Docker/Podman)
2
+
3
+ ### Currently, the project does not support the use of the BUILD_SANDBOX function after installation through the npm package
4
+
5
+ 1. To build a custom sandbox, you need to access the build scripts (scripts/build_sandbox.js) in the source code repository.
6
+ 2. These build scripts are not included in the packages released by npm.
7
+ 3. The code contains hard-coded path checks that explicitly reject build requests from non-source code environments.
8
+
9
+ If you need extra tools inside the container (e.g., `git`, `python`, `rg`), create a custom Dockerfile, The specific operation is as follows
10
+
11
+ #### 1、Clone qwen code project first, https://github.com/QwenLM/qwen-code.git
12
+
13
+ #### 2、Make sure you perform the following operation in the source code repository directory
14
+
15
+ ```bash
16
+ # 1. First, install the dependencies of the project
17
+ npm install
18
+
19
+ # 2. Build the Qwen Code project
20
+ npm run build
21
+
22
+ # 3. Verify that the dist directory has been generated
23
+ ls -la packages/cli/dist/
24
+
25
+ # 4. Create a global link in the CLI package directory
26
+ cd packages/cli
27
+ npm link
28
+
29
+ # 5. Verification link (it should now point to the source code)
30
+ which qwen
31
+ # Expected output: /xxx/xxx/.nvm/versions/node/v24.11.1/bin/qwen
32
+ # Or similar paths, but it should be a symbolic link
33
+
34
+ # 6. For details of the symbolic link, you can see the specific source code path
35
+ ls -la $(dirname $(which qwen))/../lib/node_modules/@qwen-code/qwen-code
36
+ # It should show that this is a symbolic link pointing to your source code directory
37
+
38
+ # 7.Test the version of qwen
39
+ qwen -v
40
+ # npm link will overwrite the global qwen. To avoid being unable to distinguish the same version number, you can uninstall the global CLI first
41
+
42
+ ```
43
+
44
+ #### 3、Create your sandbox Dockerfile under the root directory of your own project
45
+
46
+ - Path: `.qwen/sandbox.Dockerfile`
47
+
48
+ - Official mirror image address:https://github.com/QwenLM/qwen-code/pkgs/container/qwen-code
49
+
50
+ ```bash
51
+ # Based on the official Qwen sandbox image (It is recommended to explicitly specify the version)
52
+ FROM ghcr.io/qwenlm/qwen-code:sha-570ec43
53
+ # Add your extra tools here
54
+ RUN apt-get update && apt-get install -y \
55
+ git \
56
+ python3 \
57
+ ripgrep
58
+ ```
59
+
60
+ #### 4、Create the first sandbox image under the root directory of your project
61
+
62
+ ```bash
63
+ QWEN_SANDBOX=docker BUILD_SANDBOX=1 qwen -s
64
+ # Observe whether the sandbox version of the tool you launched is consistent with the version of your custom image. If they are consistent, the startup will be successful
65
+ ```
66
+
67
+ This builds a project-specific image based on the default sandbox image.
68
+
69
+ #### Remove npm link
70
+
71
+ - If you want to restore the official CLI of qwen, please remove the npm link
72
+
73
+ ```bash
74
+ # Method 1: Unlink globally
75
+ npm unlink -g @qwen-code/qwen-code
76
+
77
+ # Method 2: Remove it in the packages/cli directory
78
+ cd packages/cli
79
+ npm unlink
80
+
81
+ # Verification has been lifted
82
+ which qwen
83
+ # It should display "qwen not found"
84
+
85
+ # Reinstall the global version if necessary
86
+ npm install -g @qwen-code/qwen-code
87
+
88
+ # Verification Recovery
89
+ which qwen
90
+ qwen --version
91
+ ```
@@ -0,0 +1,259 @@
1
+ # Shell Tool (`run_shell_command`)
2
+
3
+ This document describes the `run_shell_command` tool for Qwen Code.
4
+
5
+ ## Description
6
+
7
+ Use `run_shell_command` to interact with the underlying system, run scripts, or perform command-line operations. `run_shell_command` executes a given shell command, including interactive commands that require user input (e.g., `vim`, `git rebase -i`) if the `tools.shell.enableInteractiveShell` setting is set to `true`.
8
+
9
+ On Windows, commands are executed with `cmd.exe /c`. On other platforms, they are executed with `bash -c`.
10
+
11
+ ### Arguments
12
+
13
+ `run_shell_command` takes the following arguments:
14
+
15
+ - `command` (string, required): The exact shell command to execute.
16
+ - `description` (string, optional): A brief description of the command's purpose, which will be shown to the user.
17
+ - `directory` (string, optional): The directory (relative to the project root) in which to execute the command. If not provided, the command runs in the project root.
18
+ - `is_background` (boolean, required): Whether to run the command in background. This parameter is required to ensure explicit decision-making about command execution mode. Set to true for long-running processes like development servers, watchers, or daemons that should continue running without blocking further commands. Set to false for one-time commands that should complete before proceeding.
19
+
20
+ ## How to use `run_shell_command` with Qwen Code
21
+
22
+ When using `run_shell_command`, the command is executed as a subprocess. You can control whether commands run in background or foreground using the `is_background` parameter, or by explicitly adding `&` to commands. The tool returns detailed information about the execution, including:
23
+
24
+ ### Required Background Parameter
25
+
26
+ The `is_background` parameter is **required** for all command executions. This design ensures that the LLM (and users) must explicitly decide whether each command should run in the background or foreground, promoting intentional and predictable command execution behavior. By making this parameter mandatory, we avoid unintended fallback to foreground execution, which could block subsequent operations when dealing with long-running processes.
27
+
28
+ ### Background vs Foreground Execution
29
+
30
+ The tool intelligently handles background and foreground execution based on your explicit choice:
31
+
32
+ **Use background execution (`is_background: true`) for:**
33
+
34
+ - Long-running development servers: `npm run start`, `npm run dev`, `yarn dev`
35
+ - Build watchers: `npm run watch`, `webpack --watch`
36
+ - Database servers: `mongod`, `mysql`, `redis-server`
37
+ - Web servers: `python -m http.server`, `php -S localhost:8000`
38
+ - Any command expected to run indefinitely until manually stopped
39
+
40
+ **Use foreground execution (`is_background: false`) for:**
41
+
42
+ - One-time commands: `ls`, `cat`, `grep`
43
+ - Build commands: `npm run build`, `make`
44
+ - Installation commands: `npm install`, `pip install`
45
+ - Git operations: `git commit`, `git push`
46
+ - Test runs: `npm test`, `pytest`
47
+
48
+ ### Execution Information
49
+
50
+ The tool returns detailed information about the execution, including:
51
+
52
+ - `Command`: The command that was executed.
53
+ - `Directory`: The directory where the command was run.
54
+ - `Stdout`: Output from the standard output stream.
55
+ - `Stderr`: Output from the standard error stream.
56
+ - `Error`: Any error message reported by the subprocess.
57
+ - `Exit Code`: The exit code of the command.
58
+ - `Signal`: The signal number if the command was terminated by a signal.
59
+ - `Background PIDs`: A list of PIDs for any background processes started.
60
+
61
+ Usage:
62
+
63
+ ```bash
64
+ run_shell_command(command="Your commands.", description="Your description of the command.", directory="Your execution directory.", is_background=false)
65
+ ```
66
+
67
+ **Note:** The `is_background` parameter is required and must be explicitly specified for every command execution.
68
+
69
+ ## `run_shell_command` examples
70
+
71
+ List files in the current directory:
72
+
73
+ ```bash
74
+ run_shell_command(command="ls -la", is_background=false)
75
+ ```
76
+
77
+ Run a script in a specific directory:
78
+
79
+ ```bash
80
+ run_shell_command(command="./my_script.sh", directory="scripts", description="Run my custom script", is_background=false)
81
+ ```
82
+
83
+ Start a background development server (recommended approach):
84
+
85
+ ```bash
86
+ run_shell_command(command="npm run dev", description="Start development server in background", is_background=true)
87
+ ```
88
+
89
+ Start a background server (alternative with explicit &):
90
+
91
+ ```bash
92
+ run_shell_command(command="npm run dev &", description="Start development server in background", is_background=false)
93
+ ```
94
+
95
+ Run a build command in foreground:
96
+
97
+ ```bash
98
+ run_shell_command(command="npm run build", description="Build the project", is_background=false)
99
+ ```
100
+
101
+ Start multiple background services:
102
+
103
+ ```bash
104
+ run_shell_command(command="docker-compose up", description="Start all services", is_background=true)
105
+ ```
106
+
107
+ ## Configuration
108
+
109
+ You can configure the behavior of the `run_shell_command` tool by modifying your `settings.json` file or by using the `/settings` command in the Qwen Code.
110
+
111
+ ### Enabling Interactive Commands
112
+
113
+ To enable interactive commands, you need to set the `tools.shell.enableInteractiveShell` setting to `true`. This will use `node-pty` for shell command execution, which allows for interactive sessions. If `node-pty` is not available, it will fall back to the `child_process` implementation, which does not support interactive commands.
114
+
115
+ **Example `settings.json`:**
116
+
117
+ ```json
118
+ {
119
+ "tools": {
120
+ "shell": {
121
+ "enableInteractiveShell": true
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ ### Showing Color in Output
128
+
129
+ To show color in the shell output, you need to set the `tools.shell.showColor` setting to `true`. **Note: This setting only applies when `tools.shell.enableInteractiveShell` is enabled.**
130
+
131
+ **Example `settings.json`:**
132
+
133
+ ```json
134
+ {
135
+ "tools": {
136
+ "shell": {
137
+ "showColor": true
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### Setting the Pager
144
+
145
+ You can set a custom pager for the shell output by setting the `tools.shell.pager` setting. The default pager is `cat`. **Note: This setting only applies when `tools.shell.enableInteractiveShell` is enabled.**
146
+
147
+ **Example `settings.json`:**
148
+
149
+ ```json
150
+ {
151
+ "tools": {
152
+ "shell": {
153
+ "pager": "less"
154
+ }
155
+ }
156
+ }
157
+ ```
158
+
159
+ ## Interactive Commands
160
+
161
+ The `run_shell_command` tool now supports interactive commands by integrating a pseudo-terminal (pty). This allows you to run commands that require real-time user input, such as text editors (`vim`, `nano`), terminal-based UIs (`htop`), and interactive version control operations (`git rebase -i`).
162
+
163
+ When an interactive command is running, you can send input to it from the Qwen Code. To focus on the interactive shell, press `ctrl+f`. The terminal output, including complex TUIs, will be rendered correctly.
164
+
165
+ ## Important notes
166
+
167
+ - **Security:** Be cautious when executing commands, especially those constructed from user input, to prevent security vulnerabilities.
168
+ - **Error handling:** Check the `Stderr`, `Error`, and `Exit Code` fields to determine if a command executed successfully.
169
+ - **Background processes:** When `is_background=true` or when a command contains `&`, the tool will return immediately and the process will continue to run in the background. The `Background PIDs` field will contain the process ID of the background process.
170
+ - **Background execution choices:** The `is_background` parameter is required and provides explicit control over execution mode. You can also add `&` to the command for manual background execution, but the `is_background` parameter must still be specified. The parameter provides clearer intent and automatically handles the background execution setup.
171
+ - **Command descriptions:** When using `is_background=true`, the command description will include a `[background]` indicator to clearly show the execution mode.
172
+
173
+ ## Environment Variables
174
+
175
+ When `run_shell_command` executes a command, it sets the `QWEN_CODE=1` environment variable in the subprocess's environment. This allows scripts or tools to detect if they are being run from within the CLI.
176
+
177
+ ## Command Restrictions
178
+
179
+ You can restrict the commands that can be executed by the `run_shell_command` tool by using the `tools.core` and `tools.exclude` settings in your configuration file.
180
+
181
+ - `tools.core`: To restrict `run_shell_command` to a specific set of commands, add entries to the `core` list under the `tools` category in the format `run_shell_command(<command>)`. For example, `"tools": {"core": ["run_shell_command(git)"]}` will only allow `git` commands. Including the generic `run_shell_command` acts as a wildcard, allowing any command not explicitly blocked.
182
+ - `tools.exclude`: To block specific commands, add entries to the `exclude` list under the `tools` category in the format `run_shell_command(<command>)`. For example, `"tools": {"exclude": ["run_shell_command(rm)"]}` will block `rm` commands.
183
+
184
+ The validation logic is designed to be secure and flexible:
185
+
186
+ 1. **Command Chaining Disabled**: The tool automatically splits commands chained with `&&`, `||`, or `;` and validates each part separately. If any part of the chain is disallowed, the entire command is blocked.
187
+ 2. **Prefix Matching**: The tool uses prefix matching. For example, if you allow `git`, you can run `git status` or `git log`.
188
+ 3. **Blocklist Precedence**: The `tools.exclude` list is always checked first. If a command matches a blocked prefix, it will be denied, even if it also matches an allowed prefix in `tools.core`.
189
+
190
+ ### Command Restriction Examples
191
+
192
+ **Allow only specific command prefixes**
193
+
194
+ To allow only `git` and `npm` commands, and block all others:
195
+
196
+ ```json
197
+ {
198
+ "tools": {
199
+ "core": ["run_shell_command(git)", "run_shell_command(npm)"]
200
+ }
201
+ }
202
+ ```
203
+
204
+ - `git status`: Allowed
205
+ - `npm install`: Allowed
206
+ - `ls -l`: Blocked
207
+
208
+ **Block specific command prefixes**
209
+
210
+ To block `rm` and allow all other commands:
211
+
212
+ ```json
213
+ {
214
+ "tools": {
215
+ "core": ["run_shell_command"],
216
+ "exclude": ["run_shell_command(rm)"]
217
+ }
218
+ }
219
+ ```
220
+
221
+ - `rm -rf /`: Blocked
222
+ - `git status`: Allowed
223
+ - `npm install`: Allowed
224
+
225
+ **Blocklist takes precedence**
226
+
227
+ If a command prefix is in both `tools.core` and `tools.exclude`, it will be blocked.
228
+
229
+ ```json
230
+ {
231
+ "tools": {
232
+ "core": ["run_shell_command(git)"],
233
+ "exclude": ["run_shell_command(git push)"]
234
+ }
235
+ }
236
+ ```
237
+
238
+ - `git push origin main`: Blocked
239
+ - `git status`: Allowed
240
+
241
+ **Block all shell commands**
242
+
243
+ To block all shell commands, add the `run_shell_command` wildcard to `tools.exclude`:
244
+
245
+ ```json
246
+ {
247
+ "tools": {
248
+ "exclude": ["run_shell_command"]
249
+ }
250
+ }
251
+ ```
252
+
253
+ - `ls -l`: Blocked
254
+ - `any other command`: Blocked
255
+
256
+ ## Security Note for `excludeTools`
257
+
258
+ Command-specific restrictions in `excludeTools` for `run_shell_command` are based on simple string matching and can be easily bypassed. This feature is **not a security mechanism** and should not be relied upon to safely execute untrusted code. It is recommended to use `coreTools` to explicitly select commands
259
+ that can be executed.
@@ -0,0 +1,145 @@
1
+ # Task Tool (`task`)
2
+
3
+ This document describes the `task` tool for Qwen Code.
4
+
5
+ ## Description
6
+
7
+ Use `task` to launch a specialized subagent to handle complex, multi-step tasks autonomously. The Task tool delegates work to specialized agents that can work independently with access to their own set of tools, allowing for parallel task execution and specialized expertise.
8
+
9
+ ### Arguments
10
+
11
+ `task` takes the following arguments:
12
+
13
+ - `description` (string, required): A short (3-5 word) description of the task for user visibility and tracking purposes.
14
+ - `prompt` (string, required): The detailed task prompt for the subagent to execute. Should contain comprehensive instructions for autonomous execution.
15
+ - `subagent_type` (string, required): The type of specialized agent to use for this task. Must match one of the available configured subagents.
16
+
17
+ ## How to use `task` with Qwen Code
18
+
19
+ The Task tool dynamically loads available subagents from your configuration and delegates tasks to them. Each subagent runs independently and can use its own set of tools, allowing for specialized expertise and parallel execution.
20
+
21
+ When you use the Task tool, the subagent will:
22
+
23
+ 1. Receive the task prompt with full autonomy
24
+ 2. Execute the task using its available tools
25
+ 3. Return a final result message
26
+ 4. Terminate (subagents are stateless and single-use)
27
+
28
+ Usage:
29
+
30
+ ```
31
+ task(description="Brief task description", prompt="Detailed task instructions for the subagent", subagent_type="agent_name")
32
+ ```
33
+
34
+ ## Available Subagents
35
+
36
+ The available subagents depend on your configuration. Common subagent types might include:
37
+
38
+ - **general-purpose**: For complex multi-step tasks requiring various tools
39
+ - **code-reviewer**: For reviewing and analyzing code quality
40
+ - **test-runner**: For running tests and analyzing results
41
+ - **documentation-writer**: For creating and updating documentation
42
+
43
+ You can view available subagents by using the `/agents` command in Qwen Code.
44
+
45
+ ## Task Tool Features
46
+
47
+ ### Real-time Progress Updates
48
+
49
+ The Task tool provides live updates showing:
50
+
51
+ - Subagent execution status
52
+ - Individual tool calls being made by the subagent
53
+ - Tool call results and any errors
54
+ - Overall task progress and completion status
55
+
56
+ ### Parallel Execution
57
+
58
+ You can launch multiple subagents concurrently by calling the Task tool multiple times in a single message, allowing for parallel task execution and improved efficiency.
59
+
60
+ ### Specialized Expertise
61
+
62
+ Each subagent can be configured with:
63
+
64
+ - Specific tool access permissions
65
+ - Specialized system prompts and instructions
66
+ - Custom model configurations
67
+ - Domain-specific knowledge and capabilities
68
+
69
+ ## `task` examples
70
+
71
+ ### Delegating to a general-purpose agent
72
+
73
+ ```
74
+ task(
75
+ description="Code refactoring",
76
+ prompt="Please refactor the authentication module in src/auth/ to use modern async/await patterns instead of callbacks. Ensure all tests still pass and update any related documentation.",
77
+ subagent_type="general-purpose"
78
+ )
79
+ ```
80
+
81
+ ### Running parallel tasks
82
+
83
+ ```
84
+ # Launch code review and test execution in parallel
85
+ task(
86
+ description="Code review",
87
+ prompt="Review the recent changes in the user management module for code quality, security issues, and best practices compliance.",
88
+ subagent_type="code-reviewer"
89
+ )
90
+
91
+ task(
92
+ description="Run tests",
93
+ prompt="Execute the full test suite and analyze any failures. Provide a summary of test coverage and recommendations for improvement.",
94
+ subagent_type="test-runner"
95
+ )
96
+ ```
97
+
98
+ ### Documentation generation
99
+
100
+ ```
101
+ task(
102
+ description="Update docs",
103
+ prompt="Generate comprehensive API documentation for the newly implemented REST endpoints in the orders module. Include request/response examples and error codes.",
104
+ subagent_type="documentation-writer"
105
+ )
106
+ ```
107
+
108
+ ## When to Use the Task Tool
109
+
110
+ Use the Task tool when:
111
+
112
+ 1. **Complex multi-step tasks** - Tasks requiring multiple operations that can be handled autonomously
113
+ 2. **Specialized expertise** - Tasks that benefit from domain-specific knowledge or tools
114
+ 3. **Parallel execution** - When you have multiple independent tasks that can run simultaneously
115
+ 4. **Delegation needs** - When you want to hand off a complete task rather than micromanaging steps
116
+ 5. **Resource-intensive operations** - Tasks that might take significant time or computational resources
117
+
118
+ ## When NOT to Use the Task Tool
119
+
120
+ Don't use the Task tool for:
121
+
122
+ - **Simple, single-step operations** - Use direct tools like Read, Edit, etc.
123
+ - **Interactive tasks** - Tasks requiring back-and-forth communication
124
+ - **Specific file reads** - Use Read tool directly for better performance
125
+ - **Simple searches** - Use Grep or Glob tools directly
126
+
127
+ ## Important Notes
128
+
129
+ - **Stateless execution**: Each subagent invocation is independent with no memory of previous executions
130
+ - **Single communication**: Subagents provide one final result message - no ongoing communication
131
+ - **Comprehensive prompts**: Your prompt should contain all necessary context and instructions for autonomous execution
132
+ - **Tool access**: Subagents only have access to tools configured in their specific configuration
133
+ - **Parallel capability**: Multiple subagents can run simultaneously for improved efficiency
134
+ - **Configuration dependent**: Available subagent types depend on your system configuration
135
+
136
+ ## Configuration
137
+
138
+ Subagents are configured through Qwen Code's agent configuration system. Use the `/agents` command to:
139
+
140
+ - View available subagents
141
+ - Create new subagent configurations
142
+ - Modify existing subagent settings
143
+ - Set tool permissions and capabilities
144
+
145
+ For more information on configuring subagents, refer to the subagents documentation.
@@ -0,0 +1,63 @@
1
+ # Todo Write Tool (`todo_write`)
2
+
3
+ This document describes the `todo_write` tool for Qwen Code.
4
+
5
+ ## Description
6
+
7
+ Use `todo_write` to create and manage a structured task list for your current coding session. This tool helps the AI assistant track progress and organize complex tasks, providing you with visibility into what work is being performed.
8
+
9
+ ### Arguments
10
+
11
+ `todo_write` takes one argument:
12
+
13
+ - `todos` (array, required): An array of todo items, where each item contains:
14
+ - `content` (string, required): The description of the task.
15
+ - `status` (string, required): The current status (`pending`, `in_progress`, or `completed`).
16
+ - `activeForm` (string, required): The present continuous form describing what is being done (e.g., "Running tests", "Building the project").
17
+
18
+ ## How to use `todo_write` with Qwen Code
19
+
20
+ The AI assistant will automatically use this tool when working on complex, multi-step tasks. You don't need to explicitly request it, but you can ask the assistant to create a todo list if you want to see the planned approach for your request.
21
+
22
+ The tool stores todo lists in your home directory (`~/.qwen/todos/`) with session-specific files, so each coding session maintains its own task list.
23
+
24
+ ## When the AI uses this tool
25
+
26
+ The assistant uses `todo_write` for:
27
+
28
+ - Complex tasks requiring multiple steps
29
+ - Feature implementations with several components
30
+ - Refactoring operations across multiple files
31
+ - Any work involving 3 or more distinct actions
32
+
33
+ The assistant will not use this tool for simple, single-step tasks or purely informational requests.
34
+
35
+ ### `todo_write` examples
36
+
37
+ Creating a feature implementation plan:
38
+
39
+ ```
40
+ todo_write(todos=[
41
+ {
42
+ "content": "Create user preferences model",
43
+ "status": "pending",
44
+ "activeForm": "Creating user preferences model"
45
+ },
46
+ {
47
+ "content": "Add API endpoints for preferences",
48
+ "status": "pending",
49
+ "activeForm": "Adding API endpoints for preferences"
50
+ },
51
+ {
52
+ "content": "Implement frontend components",
53
+ "status": "pending",
54
+ "activeForm": "Implementing frontend components"
55
+ }
56
+ ])
57
+ ```
58
+
59
+ ## Important notes
60
+
61
+ - **Automatic usage:** The AI assistant manages todo lists automatically during complex tasks.
62
+ - **Progress visibility:** You'll see todo lists updated in real-time as work progresses.
63
+ - **Session isolation:** Each coding session has its own todo list that doesn't interfere with others.