@scemoon/cdh 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 (528) hide show
  1. package/ai-dlc-skill/SKILL.md +75 -0
  2. package/ai-dlc-skill/agents/deliver-agent.md +24 -0
  3. package/ai-dlc-skill/agents/master.md +44 -0
  4. package/ai-dlc-skill/agents/plan-agent.md +23 -0
  5. package/ai-dlc-skill/agents/understand-agent.md +23 -0
  6. package/ai-dlc-skill/agents/verify-agent.md +27 -0
  7. package/ai-dlc-skill/architecture/project-structure.md +78 -0
  8. package/ai-dlc-skill/brownfield/README.md +30 -0
  9. package/ai-dlc-skill/brownfield/generate-context.sh +64 -0
  10. package/ai-dlc-skill/brownfield/scripts/deps.sh +27 -0
  11. package/ai-dlc-skill/brownfield/scripts/discover.sh +34 -0
  12. package/ai-dlc-skill/brownfield/scripts/extract-api.sh +45 -0
  13. package/ai-dlc-skill/components/backend.md +34 -0
  14. package/ai-dlc-skill/components/desktop.md +30 -0
  15. package/ai-dlc-skill/components/mya.md +29 -0
  16. package/ai-dlc-skill/components/native.md +30 -0
  17. package/ai-dlc-skill/components/tta.md +29 -0
  18. package/ai-dlc-skill/components/web.md +31 -0
  19. package/ai-dlc-skill/components/wxa.md +29 -0
  20. package/ai-dlc-skill/contracts/README.md +25 -0
  21. package/ai-dlc-skill/core/adaptive-flow.md +36 -0
  22. package/ai-dlc-skill/core/security.md +29 -0
  23. package/ai-dlc-skill/cross-tool/cline/export.sh +31 -0
  24. package/ai-dlc-skill/cross-tool/copilot/export.sh +47 -0
  25. package/ai-dlc-skill/cross-tool/cursor/export.sh +32 -0
  26. package/ai-dlc-skill/cross-tool/export.sh +22 -0
  27. package/ai-dlc-skill/cross-tool/onecode/config.yaml.tpl +17 -0
  28. package/ai-dlc-skill/cross-tool/onecode/export-skills.sh +31 -0
  29. package/ai-dlc-skill/cross-tool/onecode/export.sh +48 -0
  30. package/ai-dlc-skill/phases/deliver/entry.md +26 -0
  31. package/ai-dlc-skill/phases/deliver/lifecycle.md +185 -0
  32. package/ai-dlc-skill/phases/deliver/prompt.md +40 -0
  33. package/ai-dlc-skill/phases/deliver/rules.md +61 -0
  34. package/ai-dlc-skill/phases/plan/entry.md +25 -0
  35. package/ai-dlc-skill/phases/plan/lifecycle.md +204 -0
  36. package/ai-dlc-skill/phases/plan/prompt.md +38 -0
  37. package/ai-dlc-skill/phases/plan/rules.md +25 -0
  38. package/ai-dlc-skill/phases/understand/entry.md +26 -0
  39. package/ai-dlc-skill/phases/understand/lifecycle.md +184 -0
  40. package/ai-dlc-skill/phases/understand/prompt.md +41 -0
  41. package/ai-dlc-skill/phases/understand/rules.md +37 -0
  42. package/ai-dlc-skill/phases/verify/entry.md +26 -0
  43. package/ai-dlc-skill/phases/verify/lifecycle.md +192 -0
  44. package/ai-dlc-skill/phases/verify/prompt.md +43 -0
  45. package/ai-dlc-skill/phases/verify/rules.md +73 -0
  46. package/ai-dlc-skill/practices/bdd.md +91 -0
  47. package/ai-dlc-skill/practices/sdd.md +84 -0
  48. package/ai-dlc-skill/practices/tdd.md +95 -0
  49. package/ai-dlc-skill/providers/README.md +114 -0
  50. package/ai-dlc-skill/providers/aliyun/deployment.yaml +66 -0
  51. package/ai-dlc-skill/providers/aliyun/preview.yaml +84 -0
  52. package/ai-dlc-skill/providers/aliyun/provider.yaml +160 -0
  53. package/ai-dlc-skill/providers/tcb/deployment.yaml +69 -0
  54. package/ai-dlc-skill/providers/tcb/preview.yaml +83 -0
  55. package/ai-dlc-skill/providers/tcb/provider.yaml +172 -0
  56. package/ai-dlc-skill/requirements.md +140 -0
  57. package/ai-dlc-skill/skill.yaml +147 -0
  58. package/ai-dlc-skill/templates/integration/CHANGELOG.md +41 -0
  59. package/ai-dlc-skill/templates/integration/asyncapi.yaml +43 -0
  60. package/ai-dlc-skill/templates/integration/contract-diff.md +63 -0
  61. package/ai-dlc-skill/templates/integration/contract-spec.md +49 -0
  62. package/ai-dlc-skill/templates/integration/openapi.yaml +18 -0
  63. package/ai-dlc-skill/templates/integration/runtime-contract.yaml +36 -0
  64. package/ai-dlc-skill/templates/plan/design.md +49 -0
  65. package/ai-dlc-skill/templates/plan/task-list.md +32 -0
  66. package/ai-dlc-skill/templates/project/README.md +127 -0
  67. package/ai-dlc-skill/templates/project/template.md +119 -0
  68. package/ai-dlc-skill/templates/understand/feature.feature +23 -0
  69. package/ai-dlc-skill/templates/understand/intent.md +29 -0
  70. package/ai-dlc-skill/templates/understand/spec-delta.md +47 -0
  71. package/ai-dlc-skill/templates/verify/test-unit.py +27 -0
  72. package/ai-dlc-skill/walkthrough/collect.sh +50 -0
  73. package/ai-dlc-skill/walkthrough/template.md +54 -0
  74. package/ai-dlc-skill/workflows/ai-dlc.yaml +110 -0
  75. package/ai-dlc-skill/workflows/deployment.yaml +199 -0
  76. package/cdh/__init__.py +0 -0
  77. package/cdh/__main__.py +4 -0
  78. package/cdh/__pycache__/__init__.cpython-313.pyc +0 -0
  79. package/cdh/__pycache__/__init__.cpython-314.pyc +0 -0
  80. package/cdh/__pycache__/cli.cpython-314.pyc +0 -0
  81. package/cdh/__pycache__/scaffold.cpython-313.pyc +0 -0
  82. package/cdh/__pycache__/scaffold.cpython-314.pyc +0 -0
  83. package/cdh/cli.py +361 -0
  84. package/cdh/scaffold.py +312 -0
  85. package/cli.js +2 -0
  86. package/onecode/__init__.py +1 -0
  87. package/onecode/__main__.py +4 -0
  88. package/onecode/__pycache__/__init__.cpython-314.pyc +0 -0
  89. package/onecode/__pycache__/cli.cpython-314.pyc +0 -0
  90. package/onecode/__pycache__/commands.cpython-314.pyc +0 -0
  91. package/onecode/__pycache__/config.cpython-314.pyc +0 -0
  92. package/onecode/__pycache__/config_screen.cpython-314.pyc +0 -0
  93. package/onecode/__pycache__/mock_data.cpython-314.pyc +0 -0
  94. package/onecode/agent/__init__.py +0 -0
  95. package/onecode/agent/__pycache__/__init__.cpython-314.pyc +0 -0
  96. package/onecode/agent/__pycache__/cdh_agent_acp.cpython-313.pyc +0 -0
  97. package/onecode/agent/__pycache__/cdh_agent_acp.cpython-314.pyc +0 -0
  98. package/onecode/agent/__pycache__/cdh_loader.cpython-314.pyc +0 -0
  99. package/onecode/agent/__pycache__/context.cpython-314.pyc +0 -0
  100. package/onecode/agent/__pycache__/engine.cpython-314.pyc +0 -0
  101. package/onecode/agent/__pycache__/harness_skill.cpython-314.pyc +0 -0
  102. package/onecode/agent/__pycache__/hooks.cpython-314.pyc +0 -0
  103. package/onecode/agent/__pycache__/onecode_agent_acp.cpython-314.pyc +0 -0
  104. package/onecode/agent/__pycache__/permissions.cpython-314.pyc +0 -0
  105. package/onecode/agent/__pycache__/permissions_store.cpython-314.pyc +0 -0
  106. package/onecode/agent/__pycache__/session.cpython-314.pyc +0 -0
  107. package/onecode/agent/agents/__init__.py +29 -0
  108. package/onecode/agent/agents/__pycache__/__init__.cpython-314.pyc +0 -0
  109. package/onecode/agent/agents/__pycache__/types.cpython-314.pyc +0 -0
  110. package/onecode/agent/agents/types.py +662 -0
  111. package/onecode/agent/attachments.py +113 -0
  112. package/onecode/agent/cdh_loader.py +262 -0
  113. package/onecode/agent/context.py +338 -0
  114. package/onecode/agent/engine.py +1894 -0
  115. package/onecode/agent/hooks.py +86 -0
  116. package/onecode/agent/onecode_agent_acp.py +2203 -0
  117. package/onecode/agent/permissions.py +151 -0
  118. package/onecode/agent/permissions_store.py +62 -0
  119. package/onecode/agent/session.py +186 -0
  120. package/onecode/agent/snapshot.py +145 -0
  121. package/onecode/agent/tools/__init__.py +17 -0
  122. package/onecode/agent/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  123. package/onecode/agent/tools/__pycache__/agent_tools.cpython-314.pyc +0 -0
  124. package/onecode/agent/tools/__pycache__/apply_patch_tool.cpython-314.pyc +0 -0
  125. package/onecode/agent/tools/__pycache__/bash_tool.cpython-314.pyc +0 -0
  126. package/onecode/agent/tools/__pycache__/communication_tools.cpython-314.pyc +0 -0
  127. package/onecode/agent/tools/__pycache__/config_tool.cpython-314.pyc +0 -0
  128. package/onecode/agent/tools/__pycache__/cron_tools.cpython-314.pyc +0 -0
  129. package/onecode/agent/tools/__pycache__/errors.cpython-314.pyc +0 -0
  130. package/onecode/agent/tools/__pycache__/file_ops.cpython-314.pyc +0 -0
  131. package/onecode/agent/tools/__pycache__/file_tools.cpython-314.pyc +0 -0
  132. package/onecode/agent/tools/__pycache__/git_tools.cpython-314.pyc +0 -0
  133. package/onecode/agent/tools/__pycache__/lsp_tools.cpython-314.pyc +0 -0
  134. package/onecode/agent/tools/__pycache__/mcp_tools.cpython-314.pyc +0 -0
  135. package/onecode/agent/tools/__pycache__/permission_handler.cpython-314.pyc +0 -0
  136. package/onecode/agent/tools/__pycache__/permissions.cpython-314.pyc +0 -0
  137. package/onecode/agent/tools/__pycache__/protocol.cpython-314.pyc +0 -0
  138. package/onecode/agent/tools/__pycache__/registry.cpython-314.pyc +0 -0
  139. package/onecode/agent/tools/__pycache__/sandbox.cpython-314.pyc +0 -0
  140. package/onecode/agent/tools/__pycache__/schema_validation.cpython-314.pyc +0 -0
  141. package/onecode/agent/tools/__pycache__/skill_tools.cpython-314.pyc +0 -0
  142. package/onecode/agent/tools/__pycache__/task_tools.cpython-314.pyc +0 -0
  143. package/onecode/agent/tools/__pycache__/web_tools.cpython-314.pyc +0 -0
  144. package/onecode/agent/tools/agent_tools.py +134 -0
  145. package/onecode/agent/tools/apply_patch_tool.py +144 -0
  146. package/onecode/agent/tools/bash_tool.py +91 -0
  147. package/onecode/agent/tools/communication_tools.py +149 -0
  148. package/onecode/agent/tools/config_tool.py +130 -0
  149. package/onecode/agent/tools/cron_tools.py +179 -0
  150. package/onecode/agent/tools/errors.py +17 -0
  151. package/onecode/agent/tools/file_ops.py +187 -0
  152. package/onecode/agent/tools/file_tools.py +226 -0
  153. package/onecode/agent/tools/git_tools.py +88 -0
  154. package/onecode/agent/tools/lsp_tools.py +404 -0
  155. package/onecode/agent/tools/mcp_tools.py +129 -0
  156. package/onecode/agent/tools/permission_handler.py +46 -0
  157. package/onecode/agent/tools/permissions.py +77 -0
  158. package/onecode/agent/tools/protocol.py +20 -0
  159. package/onecode/agent/tools/registry.py +134 -0
  160. package/onecode/agent/tools/sandbox.py +264 -0
  161. package/onecode/agent/tools/schema_validation.py +100 -0
  162. package/onecode/agent/tools/skill_tools.py +52 -0
  163. package/onecode/agent/tools/task_tools.py +249 -0
  164. package/onecode/agent/tools/web_tools.py +170 -0
  165. package/onecode/builtin_skills/git/SKILL.md +64 -0
  166. package/onecode/builtin_skills/git/skill.yaml +7 -0
  167. package/onecode/builtin_skills/shell/SKILL.md +58 -0
  168. package/onecode/builtin_skills/shell/skill.yaml +8 -0
  169. package/onecode/cli.py +755 -0
  170. package/onecode/cloud/__init__.py +0 -0
  171. package/onecode/cloud/base.py +20 -0
  172. package/onecode/codebase/__init__.py +69 -0
  173. package/onecode/codebase/__pycache__/__init__.cpython-314.pyc +0 -0
  174. package/onecode/codebase/__pycache__/chunker.cpython-314.pyc +0 -0
  175. package/onecode/codebase/__pycache__/config.cpython-314.pyc +0 -0
  176. package/onecode/codebase/__pycache__/indexer.cpython-314.pyc +0 -0
  177. package/onecode/codebase/__pycache__/retriever.cpython-314.pyc +0 -0
  178. package/onecode/codebase/__pycache__/storage.cpython-314.pyc +0 -0
  179. package/onecode/codebase/__pycache__/tools.cpython-314.pyc +0 -0
  180. package/onecode/codebase/chunker.py +130 -0
  181. package/onecode/codebase/indexer.py +136 -0
  182. package/onecode/codebase/retriever.py +192 -0
  183. package/onecode/codebase/storage.py +130 -0
  184. package/onecode/codebase/tools.py +59 -0
  185. package/onecode/commands.py +276 -0
  186. package/onecode/config.py +285 -0
  187. package/onecode/config_screen.py +594 -0
  188. package/onecode/cron/__init__.py +3 -0
  189. package/onecode/lsp/__init__.py +3 -0
  190. package/onecode/mcp/__init__.py +4 -0
  191. package/onecode/mcp/__pycache__/__init__.cpython-314.pyc +0 -0
  192. package/onecode/mcp/__pycache__/client.cpython-314.pyc +0 -0
  193. package/onecode/mcp/__pycache__/manager.cpython-314.pyc +0 -0
  194. package/onecode/mcp/client.py +193 -0
  195. package/onecode/mcp/manager.py +191 -0
  196. package/onecode/memory/__init__.py +95 -0
  197. package/onecode/memory/__pycache__/__init__.cpython-314.pyc +0 -0
  198. package/onecode/memory/__pycache__/backend.cpython-314.pyc +0 -0
  199. package/onecode/memory/__pycache__/offload.cpython-314.pyc +0 -0
  200. package/onecode/memory/__pycache__/pyramid.cpython-314.pyc +0 -0
  201. package/onecode/memory/__pycache__/recall.cpython-314.pyc +0 -0
  202. package/onecode/memory/__pycache__/symbolic.cpython-314.pyc +0 -0
  203. package/onecode/memory/backend.py +185 -0
  204. package/onecode/memory/offload.py +114 -0
  205. package/onecode/memory/pyramid.py +202 -0
  206. package/onecode/memory/recall.py +168 -0
  207. package/onecode/memory/symbolic.py +164 -0
  208. package/onecode/models/__init__.py +4 -0
  209. package/onecode/models/__pycache__/__init__.cpython-314.pyc +0 -0
  210. package/onecode/models/__pycache__/errors.cpython-314.pyc +0 -0
  211. package/onecode/models/__pycache__/messages.cpython-314.pyc +0 -0
  212. package/onecode/models/__pycache__/provider.cpython-314.pyc +0 -0
  213. package/onecode/models/__pycache__/registry.cpython-314.pyc +0 -0
  214. package/onecode/models/errors.py +94 -0
  215. package/onecode/models/messages.py +662 -0
  216. package/onecode/models/provider.py +450 -0
  217. package/onecode/models/providers/__init__.py +17 -0
  218. package/onecode/models/providers/__pycache__/__init__.cpython-314.pyc +0 -0
  219. package/onecode/models/providers/__pycache__/anthropic_provider.cpython-314.pyc +0 -0
  220. package/onecode/models/providers/__pycache__/deepseek_provider.cpython-314.pyc +0 -0
  221. package/onecode/models/providers/__pycache__/glm_provider.cpython-314.pyc +0 -0
  222. package/onecode/models/providers/__pycache__/minimax_provider.cpython-314.pyc +0 -0
  223. package/onecode/models/providers/__pycache__/minimaxi_provider.cpython-314.pyc +0 -0
  224. package/onecode/models/providers/__pycache__/mock_provider.cpython-314.pyc +0 -0
  225. package/onecode/models/providers/__pycache__/ollama_provider.cpython-314.pyc +0 -0
  226. package/onecode/models/providers/__pycache__/openai_provider.cpython-314.pyc +0 -0
  227. package/onecode/models/providers/anthropic_provider.py +224 -0
  228. package/onecode/models/providers/deepseek_provider.py +210 -0
  229. package/onecode/models/providers/glm_provider.py +154 -0
  230. package/onecode/models/providers/minimax_provider.py +154 -0
  231. package/onecode/models/providers/minimaxi_provider.py +363 -0
  232. package/onecode/models/providers/ollama_provider.py +96 -0
  233. package/onecode/models/providers/openai_provider.py +233 -0
  234. package/onecode/models/registry.py +212 -0
  235. package/onecode/server/__init__.py +3 -0
  236. package/onecode/server/app.py +224 -0
  237. package/onecode/skills/__init__.py +11 -0
  238. package/onecode/skills/__pycache__/__init__.cpython-314.pyc +0 -0
  239. package/onecode/skills/__pycache__/argument_substitution.cpython-314.pyc +0 -0
  240. package/onecode/skills/__pycache__/create.cpython-314.pyc +0 -0
  241. package/onecode/skills/__pycache__/frontmatter.cpython-314.pyc +0 -0
  242. package/onecode/skills/__pycache__/loader.cpython-314.pyc +0 -0
  243. package/onecode/skills/__pycache__/manager.cpython-314.pyc +0 -0
  244. package/onecode/skills/__pycache__/model.cpython-314.pyc +0 -0
  245. package/onecode/skills/argument_substitution.py +39 -0
  246. package/onecode/skills/create.py +56 -0
  247. package/onecode/skills/frontmatter.py +33 -0
  248. package/onecode/skills/loader.py +157 -0
  249. package/onecode/skills/manager.py +75 -0
  250. package/onecode/skills/model.py +43 -0
  251. package/onecode/storage/__init__.py +0 -0
  252. package/onecode/storage/activity.py +64 -0
  253. package/onecode/storage/project.py +54 -0
  254. package/onecode/storage/session.py +113 -0
  255. package/onecode/tasks/__init__.py +26 -0
  256. package/onecode/tasks/manager.py +219 -0
  257. package/onecode/tasks/models.py +240 -0
  258. package/onecode/trace/__init__.py +0 -0
  259. package/onecode/trace/tracer.py +174 -0
  260. package/onecode/utils/__init__.py +0 -0
  261. package/onecode/utils/helpers.py +20 -0
  262. package/onecode-cli.js +2 -0
  263. package/package.json +32 -0
  264. package/pyproject.toml +60 -0
  265. package/run.js +86 -0
  266. package/tui/__init__.py +46 -0
  267. package/tui/__main__.py +4 -0
  268. package/tui/__pycache__/__init__.cpython-314.pyc +0 -0
  269. package/tui/__pycache__/_loop.cpython-314.pyc +0 -0
  270. package/tui/__pycache__/_path_fuzzy_search.cpython-314.pyc +0 -0
  271. package/tui/__pycache__/_path_match.cpython-314.pyc +0 -0
  272. package/tui/__pycache__/agent.cpython-314.pyc +0 -0
  273. package/tui/__pycache__/agent_schema.cpython-314.pyc +0 -0
  274. package/tui/__pycache__/agents.cpython-314.pyc +0 -0
  275. package/tui/__pycache__/answer.cpython-314.pyc +0 -0
  276. package/tui/__pycache__/app.cpython-314.pyc +0 -0
  277. package/tui/__pycache__/atomic.cpython-314.pyc +0 -0
  278. package/tui/__pycache__/complete.cpython-314.pyc +0 -0
  279. package/tui/__pycache__/constants.cpython-314.pyc +0 -0
  280. package/tui/__pycache__/conversation_markdown.cpython-314.pyc +0 -0
  281. package/tui/__pycache__/danger.cpython-314.pyc +0 -0
  282. package/tui/__pycache__/db.cpython-314.pyc +0 -0
  283. package/tui/__pycache__/dec.cpython-314.pyc +0 -0
  284. package/tui/__pycache__/directory.cpython-314.pyc +0 -0
  285. package/tui/__pycache__/directory_suggester.cpython-314.pyc +0 -0
  286. package/tui/__pycache__/directory_watcher.cpython-314.pyc +0 -0
  287. package/tui/__pycache__/format_path.cpython-314.pyc +0 -0
  288. package/tui/__pycache__/fuzzy.cpython-314.pyc +0 -0
  289. package/tui/__pycache__/fuzzy_index.cpython-314.pyc +0 -0
  290. package/tui/__pycache__/history.cpython-314.pyc +0 -0
  291. package/tui/__pycache__/jsonrpc.cpython-314.pyc +0 -0
  292. package/tui/__pycache__/menus.cpython-314.pyc +0 -0
  293. package/tui/__pycache__/message_log.cpython-314.pyc +0 -0
  294. package/tui/__pycache__/messages.cpython-314.pyc +0 -0
  295. package/tui/__pycache__/path_complete.cpython-314.pyc +0 -0
  296. package/tui/__pycache__/path_filter.cpython-314.pyc +0 -0
  297. package/tui/__pycache__/paths.cpython-314.pyc +0 -0
  298. package/tui/__pycache__/pill.cpython-314.pyc +0 -0
  299. package/tui/__pycache__/platform_commands.cpython-314.pyc +0 -0
  300. package/tui/__pycache__/protocol.cpython-314.pyc +0 -0
  301. package/tui/__pycache__/session_tracker.cpython-314.pyc +0 -0
  302. package/tui/__pycache__/settings.cpython-314.pyc +0 -0
  303. package/tui/__pycache__/settings_schema.cpython-314.pyc +0 -0
  304. package/tui/__pycache__/shell.cpython-314.pyc +0 -0
  305. package/tui/__pycache__/shell_read.cpython-314.pyc +0 -0
  306. package/tui/__pycache__/slash_command.cpython-314.pyc +0 -0
  307. package/tui/__pycache__/version.cpython-314.pyc +0 -0
  308. package/tui/_loop.py +86 -0
  309. package/tui/_path_fuzzy_search.py +48 -0
  310. package/tui/_path_match.py +141 -0
  311. package/tui/about.py +95 -0
  312. package/tui/acp/__pycache__/agent.cpython-314.pyc +0 -0
  313. package/tui/acp/__pycache__/api.cpython-314.pyc +0 -0
  314. package/tui/acp/__pycache__/encode_tool_call_id.cpython-314.pyc +0 -0
  315. package/tui/acp/__pycache__/messages.cpython-314.pyc +0 -0
  316. package/tui/acp/__pycache__/prompt.cpython-314.pyc +0 -0
  317. package/tui/acp/__pycache__/protocol.cpython-314.pyc +0 -0
  318. package/tui/acp/agent.py +886 -0
  319. package/tui/acp/api.py +55 -0
  320. package/tui/acp/encode_tool_call_id.py +12 -0
  321. package/tui/acp/messages.py +190 -0
  322. package/tui/acp/prompt.py +110 -0
  323. package/tui/acp/protocol.py +462 -0
  324. package/tui/agent.py +70 -0
  325. package/tui/agent_schema.py +76 -0
  326. package/tui/agents.py +45 -0
  327. package/tui/ansi/__init__.py +1 -0
  328. package/tui/ansi/__pycache__/__init__.cpython-314.pyc +0 -0
  329. package/tui/ansi/__pycache__/_ansi.cpython-314.pyc +0 -0
  330. package/tui/ansi/__pycache__/_ansi_colors.cpython-314.pyc +0 -0
  331. package/tui/ansi/__pycache__/_control_codes.cpython-314.pyc +0 -0
  332. package/tui/ansi/__pycache__/_keys.cpython-314.pyc +0 -0
  333. package/tui/ansi/__pycache__/_sgr_styles.cpython-314.pyc +0 -0
  334. package/tui/ansi/__pycache__/_stream_parser.cpython-314.pyc +0 -0
  335. package/tui/ansi/_ansi.py +1689 -0
  336. package/tui/ansi/_ansi_colors.py +264 -0
  337. package/tui/ansi/_control_codes.py +37 -0
  338. package/tui/ansi/_keys.py +251 -0
  339. package/tui/ansi/_sgr_styles.py +64 -0
  340. package/tui/ansi/_stream_parser.py +418 -0
  341. package/tui/answer.py +12 -0
  342. package/tui/app.py +1236 -0
  343. package/tui/atomic.py +37 -0
  344. package/tui/cli.py +313 -0
  345. package/tui/code_analyze.py +27 -0
  346. package/tui/complete.py +38 -0
  347. package/tui/constants.py +61 -0
  348. package/tui/conversation_markdown.py +30 -0
  349. package/tui/danger.py +372 -0
  350. package/tui/data/agents/ampcode.com.toml +51 -0
  351. package/tui/data/agents/augmentcode.com.toml +40 -0
  352. package/tui/data/agents/cdh.cloud-dev-harness.toml +22 -0
  353. package/tui/data/agents/claude.com.toml +41 -0
  354. package/tui/data/agents/copilot.github.com.toml +29 -0
  355. package/tui/data/agents/crowai.dev.toml +35 -0
  356. package/tui/data/agents/cursor.com.toml +38 -0
  357. package/tui/data/agents/deepagents.langchain.com +33 -0
  358. package/tui/data/agents/docker.com.toml +59 -0
  359. package/tui/data/agents/geminicli.com.toml +28 -0
  360. package/tui/data/agents/goose.ai.toml +51 -0
  361. package/tui/data/agents/inference.huggingface.co.toml +41 -0
  362. package/tui/data/agents/kimi.com.toml +35 -0
  363. package/tui/data/agents/kiro.dev.toml +42 -0
  364. package/tui/data/agents/openai.com.toml +53 -0
  365. package/tui/data/agents/openclaw.ai.toml +37 -0
  366. package/tui/data/agents/opencode.ai.toml +39 -0
  367. package/tui/data/agents/openhands.dev.toml +45 -0
  368. package/tui/data/agents/stakpak.dev.toml +61 -0
  369. package/tui/data/agents/vibe.mistral.ai.toml +30 -0
  370. package/tui/data/agents/vtcode.dev.toml +62 -0
  371. package/tui/data/images/frog.png +0 -0
  372. package/tui/data/sounds/question.wav +0 -0
  373. package/tui/data/sounds/turn-over.wav +0 -0
  374. package/tui/db.py +190 -0
  375. package/tui/dec.py +332 -0
  376. package/tui/directory.py +234 -0
  377. package/tui/directory_suggester.py +93 -0
  378. package/tui/directory_watcher.py +197 -0
  379. package/tui/format_path.py +25 -0
  380. package/tui/fuzzy.py +140 -0
  381. package/tui/fuzzy_index.py +275 -0
  382. package/tui/gist.py +33 -0
  383. package/tui/history.py +138 -0
  384. package/tui/jsonrpc.py +578 -0
  385. package/tui/menus.py +14 -0
  386. package/tui/message_log.py +69 -0
  387. package/tui/messages.py +139 -0
  388. package/tui/option_content.py +51 -0
  389. package/tui/os.py +0 -0
  390. package/tui/path_complete.py +217 -0
  391. package/tui/path_filter.py +124 -0
  392. package/tui/paths.py +71 -0
  393. package/tui/pill.py +23 -0
  394. package/tui/platform_commands.py +52 -0
  395. package/tui/prompt/__pycache__/extract.cpython-314.pyc +0 -0
  396. package/tui/prompt/__pycache__/resource.cpython-314.pyc +0 -0
  397. package/tui/prompt/extract.py +19 -0
  398. package/tui/prompt/resource.py +68 -0
  399. package/tui/protocol.py +28 -0
  400. package/tui/screens/__init__.py +0 -0
  401. package/tui/screens/__pycache__/__init__.cpython-314.pyc +0 -0
  402. package/tui/screens/__pycache__/log.cpython-314.pyc +0 -0
  403. package/tui/screens/__pycache__/main.cpython-314.pyc +0 -0
  404. package/tui/screens/__pycache__/projects_screen.cpython-314.pyc +0 -0
  405. package/tui/screens/__pycache__/sessions.cpython-314.pyc +0 -0
  406. package/tui/screens/__pycache__/settings.cpython-314.pyc +0 -0
  407. package/tui/screens/__pycache__/store.cpython-314.pyc +0 -0
  408. package/tui/screens/action_modal.py +94 -0
  409. package/tui/screens/agent_modal.py +175 -0
  410. package/tui/screens/command_edit_modal.py +74 -0
  411. package/tui/screens/log.py +553 -0
  412. package/tui/screens/main.py +411 -0
  413. package/tui/screens/main.tcss +655 -0
  414. package/tui/screens/permissions.py +404 -0
  415. package/tui/screens/permissions.tcss +72 -0
  416. package/tui/screens/projects.tcss +66 -0
  417. package/tui/screens/projects_app.py +319 -0
  418. package/tui/screens/projects_screen.py +142 -0
  419. package/tui/screens/session_resume_modal.py +172 -0
  420. package/tui/screens/session_resume_modal.tcss +35 -0
  421. package/tui/screens/sessions.py +166 -0
  422. package/tui/screens/sessions.tcss +119 -0
  423. package/tui/screens/settings.py +254 -0
  424. package/tui/screens/settings.tcss +101 -0
  425. package/tui/screens/store.py +500 -0
  426. package/tui/screens/store.tcss +274 -0
  427. package/tui/screens/tool_content_screen.py +59 -0
  428. package/tui/session_tracker.py +120 -0
  429. package/tui/settings.py +353 -0
  430. package/tui/settings_schema.py +431 -0
  431. package/tui/shell.py +304 -0
  432. package/tui/shell_read.py +42 -0
  433. package/tui/slash_command.py +34 -0
  434. package/tui/tui.tcss +246 -0
  435. package/tui/twitter.py +38 -0
  436. package/tui/version.py +80 -0
  437. package/tui/visuals/__init__.py +0 -0
  438. package/tui/visuals/__pycache__/__init__.cpython-314.pyc +0 -0
  439. package/tui/visuals/__pycache__/columns.cpython-314.pyc +0 -0
  440. package/tui/visuals/columns.py +273 -0
  441. package/tui/widgets/__init__.py +0 -0
  442. package/tui/widgets/__pycache__/__init__.cpython-314.pyc +0 -0
  443. package/tui/widgets/__pycache__/acp_content.cpython-314.pyc +0 -0
  444. package/tui/widgets/__pycache__/agent_response.cpython-314.pyc +0 -0
  445. package/tui/widgets/__pycache__/agent_thought.cpython-314.pyc +0 -0
  446. package/tui/widgets/__pycache__/ask_user.cpython-314.pyc +0 -0
  447. package/tui/widgets/__pycache__/condensed_path.cpython-314.pyc +0 -0
  448. package/tui/widgets/__pycache__/context_stats.cpython-314.pyc +0 -0
  449. package/tui/widgets/__pycache__/conversation.cpython-313.pyc +0 -0
  450. package/tui/widgets/__pycache__/conversation.cpython-314.pyc +0 -0
  451. package/tui/widgets/__pycache__/diff_view.cpython-314.pyc +0 -0
  452. package/tui/widgets/__pycache__/directory_input.cpython-314.pyc +0 -0
  453. package/tui/widgets/__pycache__/flash.cpython-314.pyc +0 -0
  454. package/tui/widgets/__pycache__/future_text.cpython-314.pyc +0 -0
  455. package/tui/widgets/__pycache__/grid_select.cpython-314.pyc +0 -0
  456. package/tui/widgets/__pycache__/highlighted_textarea.cpython-314.pyc +0 -0
  457. package/tui/widgets/__pycache__/mandelbrot.cpython-314.pyc +0 -0
  458. package/tui/widgets/__pycache__/markdown_note.cpython-314.pyc +0 -0
  459. package/tui/widgets/__pycache__/menu.cpython-314.pyc +0 -0
  460. package/tui/widgets/__pycache__/modified_files.cpython-314.pyc +0 -0
  461. package/tui/widgets/__pycache__/non_selectable_label.cpython-314.pyc +0 -0
  462. package/tui/widgets/__pycache__/note.cpython-314.pyc +0 -0
  463. package/tui/widgets/__pycache__/path_search.cpython-314.pyc +0 -0
  464. package/tui/widgets/__pycache__/plan.cpython-314.pyc +0 -0
  465. package/tui/widgets/__pycache__/project_directory_tree.cpython-314.pyc +0 -0
  466. package/tui/widgets/__pycache__/project_grid_select.cpython-314.pyc +0 -0
  467. package/tui/widgets/__pycache__/project_summary.cpython-314.pyc +0 -0
  468. package/tui/widgets/__pycache__/prompt.cpython-314.pyc +0 -0
  469. package/tui/widgets/__pycache__/question.cpython-314.pyc +0 -0
  470. package/tui/widgets/__pycache__/session_grid_select.cpython-314.pyc +0 -0
  471. package/tui/widgets/__pycache__/session_summary.cpython-314.pyc +0 -0
  472. package/tui/widgets/__pycache__/session_tabs.cpython-314.pyc +0 -0
  473. package/tui/widgets/__pycache__/shell_result.cpython-314.pyc +0 -0
  474. package/tui/widgets/__pycache__/shell_terminal.cpython-314.pyc +0 -0
  475. package/tui/widgets/__pycache__/side_bar.cpython-314.pyc +0 -0
  476. package/tui/widgets/__pycache__/slash_complete.cpython-314.pyc +0 -0
  477. package/tui/widgets/__pycache__/strike_text.cpython-314.pyc +0 -0
  478. package/tui/widgets/__pycache__/subagent.cpython-314.pyc +0 -0
  479. package/tui/widgets/__pycache__/terminal.cpython-313.pyc +0 -0
  480. package/tui/widgets/__pycache__/terminal.cpython-314.pyc +0 -0
  481. package/tui/widgets/__pycache__/throbber.cpython-314.pyc +0 -0
  482. package/tui/widgets/__pycache__/tool_call.cpython-313.pyc +0 -0
  483. package/tui/widgets/__pycache__/tool_call.cpython-314.pyc +0 -0
  484. package/tui/widgets/__pycache__/user_input.cpython-314.pyc +0 -0
  485. package/tui/widgets/acp_content.py +70 -0
  486. package/tui/widgets/agent_response.py +77 -0
  487. package/tui/widgets/agent_thought.py +168 -0
  488. package/tui/widgets/ask_user.py +264 -0
  489. package/tui/widgets/command_pane.py +223 -0
  490. package/tui/widgets/condensed_path.py +115 -0
  491. package/tui/widgets/context_stats.py +66 -0
  492. package/tui/widgets/conversation.py +2441 -0
  493. package/tui/widgets/danger_warning.py +65 -0
  494. package/tui/widgets/diff_view.py +59 -0
  495. package/tui/widgets/directory_input.py +8 -0
  496. package/tui/widgets/flash.py +81 -0
  497. package/tui/widgets/future_text.py +126 -0
  498. package/tui/widgets/grid_select.py +234 -0
  499. package/tui/widgets/highlighted_textarea.py +180 -0
  500. package/tui/widgets/mandelbrot.py +294 -0
  501. package/tui/widgets/markdown_note.py +13 -0
  502. package/tui/widgets/menu.py +147 -0
  503. package/tui/widgets/modified_files.py +106 -0
  504. package/tui/widgets/non_selectable_label.py +5 -0
  505. package/tui/widgets/note.py +18 -0
  506. package/tui/widgets/path_search.py +492 -0
  507. package/tui/widgets/plan.py +263 -0
  508. package/tui/widgets/project_directory_tree.py +90 -0
  509. package/tui/widgets/project_grid_select.py +35 -0
  510. package/tui/widgets/project_summary.py +33 -0
  511. package/tui/widgets/prompt.py +795 -0
  512. package/tui/widgets/question.py +360 -0
  513. package/tui/widgets/session_grid_select.py +224 -0
  514. package/tui/widgets/session_summary.py +115 -0
  515. package/tui/widgets/session_tabs.py +188 -0
  516. package/tui/widgets/shell_result.py +35 -0
  517. package/tui/widgets/shell_terminal.py +40 -0
  518. package/tui/widgets/side_bar.py +114 -0
  519. package/tui/widgets/slash_complete.py +235 -0
  520. package/tui/widgets/strike_text.py +70 -0
  521. package/tui/widgets/subagent.py +87 -0
  522. package/tui/widgets/terminal.py +577 -0
  523. package/tui/widgets/terminal_tool.py +351 -0
  524. package/tui/widgets/throbber.py +100 -0
  525. package/tui/widgets/tool_call.py +368 -0
  526. package/tui/widgets/user_input.py +23 -0
  527. package/tui/widgets/version.py +5 -0
  528. package/tui/widgets/welcome.py +31 -0
package/tui/danger.py ADDED
@@ -0,0 +1,372 @@
1
+ from enum import IntEnum
2
+ from functools import lru_cache
3
+ from pathlib import Path
4
+ from typing import Iterable, NamedTuple, Sequence
5
+
6
+ from textual.content import Span
7
+
8
+
9
+ SAFE_COMMANDS = {
10
+ # Display & Output
11
+ "echo",
12
+ "cat",
13
+ "less",
14
+ "more",
15
+ "head",
16
+ "tail",
17
+ "tac",
18
+ "nl",
19
+ # File & Directory Information
20
+ "ls",
21
+ "tree",
22
+ "pwd",
23
+ "file",
24
+ "stat",
25
+ "du",
26
+ "df",
27
+ # Search & Find
28
+ "find",
29
+ "locate",
30
+ "which",
31
+ "whereis",
32
+ "type",
33
+ "grep",
34
+ "egrep",
35
+ "fgrep",
36
+ # Text Processing (read-only)
37
+ "wc",
38
+ "sort",
39
+ "uniq",
40
+ "cut",
41
+ "paste",
42
+ "column",
43
+ "tr",
44
+ "diff",
45
+ "cmp",
46
+ "comm",
47
+ # System Information
48
+ "whoami",
49
+ "who",
50
+ "w",
51
+ "id",
52
+ "hostname",
53
+ "uname",
54
+ "uptime",
55
+ "date",
56
+ "cal",
57
+ "env",
58
+ "printenv",
59
+ # Process Information
60
+ "ps",
61
+ "top",
62
+ "htop",
63
+ "pgrep",
64
+ "jobs",
65
+ "pstree",
66
+ # Network (read-only operations)
67
+ "ping",
68
+ "traceroute",
69
+ "nslookup",
70
+ "dig",
71
+ "host",
72
+ "netstat",
73
+ "ss",
74
+ "ifconfig",
75
+ "ip",
76
+ # View compressed files (without extracting)
77
+ "zcat",
78
+ "zless",
79
+ # History & Help
80
+ "history",
81
+ "man",
82
+ "help",
83
+ "info",
84
+ "apropos",
85
+ "whatis",
86
+ # Comparison & Checksums
87
+ "md5sum",
88
+ "sha256sum",
89
+ "sha1sum",
90
+ "cksum",
91
+ "sum",
92
+ # Other Safe Commands
93
+ "bc",
94
+ "expr",
95
+ "test",
96
+ "sleep",
97
+ "true",
98
+ "false",
99
+ "yes",
100
+ "seq",
101
+ "basename",
102
+ "dirname",
103
+ "realpath",
104
+ "readlink",
105
+ }
106
+
107
+ UNSAFE_COMMANDS = {
108
+ # File/Directory Creation
109
+ "mkdir",
110
+ "touch",
111
+ "mktemp",
112
+ "mkfifo",
113
+ "mknod",
114
+ # File/Directory Deletion
115
+ "rm",
116
+ "rmdir",
117
+ "shred",
118
+ # File/Directory Moving/Copying
119
+ "mv",
120
+ "cp",
121
+ "rsync",
122
+ "scp",
123
+ "install",
124
+ # File Modification/Editing
125
+ "sed", # with -i flag
126
+ "awk", # can write files
127
+ "tee", # writes to files and stdout
128
+ # Permissions/Ownership
129
+ "chmod",
130
+ "chown",
131
+ "chgrp",
132
+ "chattr",
133
+ "setfacl",
134
+ # Linking
135
+ "ln",
136
+ "link",
137
+ "unlink",
138
+ # Archive/Compression (extract/compress operations)
139
+ "tar",
140
+ "untar",
141
+ "zip",
142
+ "unzip",
143
+ "gzip",
144
+ "gunzip",
145
+ "bzip2",
146
+ "bunzip2",
147
+ "xz",
148
+ "unxz",
149
+ "7z",
150
+ "rar",
151
+ "unrar",
152
+ # Download Tools
153
+ "wget",
154
+ "curl",
155
+ "fetch",
156
+ "aria2c",
157
+ # Low-level Disk Operations
158
+ "dd",
159
+ "truncate",
160
+ "fallocate",
161
+ # File Splitting
162
+ "split",
163
+ "csplit",
164
+ # Synchronization
165
+ "sync",
166
+ # System Administration
167
+ "useradd",
168
+ "userdel",
169
+ "usermod",
170
+ "groupadd",
171
+ "groupdel",
172
+ "passwd",
173
+ "mount",
174
+ "umount",
175
+ "mkfs",
176
+ "fdisk",
177
+ "parted",
178
+ "swapon",
179
+ "swapoff",
180
+ # Other Potentially Dangerous
181
+ "patch",
182
+ }
183
+
184
+
185
+ COMMAND_SPLIT = {";", "&&", "||", "|"}
186
+ CHANGE_DIRECTORY = {"cd"}
187
+
188
+
189
+ class DangerLevel(IntEnum):
190
+ """The danger level of a command."""
191
+
192
+ SAFE = 0 # Command is know to be generally save
193
+ UNKNOWN = 1 # We don't know about this command
194
+ DANGEROUS = 2 # Command is potentially dangerous (can modify filesystem)
195
+ DESTRUCTIVE = 3 # Command is both dangerous and refers outside of project root
196
+
197
+
198
+ class CommandAtom(NamedTuple):
199
+ """A command "atom"."""
200
+
201
+ name: str
202
+ """Name of the command."""
203
+ level: DangerLevel
204
+ """Danger level."""
205
+ path: Path
206
+ """The path to which this command is expected to apply."""
207
+ span: tuple[int, int]
208
+ """Span to highlight error."""
209
+
210
+
211
+ @lru_cache(maxsize=1024)
212
+ def detect(
213
+ project_directory: str,
214
+ current_working_directory: str,
215
+ command_line: str,
216
+ *,
217
+ danger_style: str = "",
218
+ destructive_style: str = "$text-error on $error-muted 70%",
219
+ ) -> tuple[Sequence[Span], DangerLevel]:
220
+ """Attempt to detect potentially destructive commands.
221
+
222
+ Args:
223
+ project_directory: Project directory.
224
+ current_working_directory: Current working directory.
225
+ command_line: Bash command.
226
+ danger_style: Style to highlight dangerous commands.
227
+ destructive_style: Style highlight destructive commands.
228
+
229
+ Returns:
230
+ A tuple of spans to highlight the command, and a `DangerLevel` enumeration.
231
+ """
232
+ try:
233
+ atoms = list(
234
+ analyze(project_directory, current_working_directory, command_line)
235
+ )
236
+ except OSError:
237
+ return [], DangerLevel.UNKNOWN
238
+ spans: list[Span] = []
239
+ for atom in atoms:
240
+ if atom.level == DangerLevel.DANGEROUS and danger_style:
241
+ spans.append(Span(*atom.span, danger_style))
242
+ elif atom.level == DangerLevel.DESTRUCTIVE and destructive_style:
243
+ spans.append(Span(*atom.span, destructive_style))
244
+
245
+ if atoms:
246
+ danger_level = max(command_atom.level for command_atom in atoms)
247
+ else:
248
+ danger_level = DangerLevel.SAFE
249
+
250
+ return (spans, danger_level)
251
+
252
+
253
+ def analyze(
254
+ project_directory: str, current_working_directory: str, command_line: str
255
+ ) -> Iterable[CommandAtom]:
256
+ """Analyze a command and generate information about potentially destructive commands.
257
+
258
+ Args:
259
+ project_dir: The project directory.
260
+ command_line: A bash command line.
261
+
262
+ Yields:
263
+ `CommandAtom` objects.
264
+ """
265
+ project_path = Path(project_directory).resolve()
266
+
267
+ import bashlex
268
+ from bashlex import ast
269
+
270
+ def recurse_nodes(root_path: Path, nodes: list[ast.node]) -> Iterable[CommandAtom]:
271
+ for node in nodes:
272
+ kind: str = node.kind
273
+
274
+ if kind == "list":
275
+ yield from recurse_nodes(root_path, node.parts)
276
+ return
277
+
278
+ if kind == "operator":
279
+ continue
280
+
281
+ level = DangerLevel.UNKNOWN
282
+
283
+ if not hasattr(node, "parts"):
284
+ continue
285
+
286
+ if node.parts:
287
+ command_name = command_line[slice(*node.parts[0].pos)]
288
+ if command_name in SAFE_COMMANDS:
289
+ level = DangerLevel.SAFE
290
+ elif command_name in UNSAFE_COMMANDS:
291
+ level = DangerLevel.DANGEROUS
292
+ parts = node.parts[1:]
293
+ else:
294
+ parts = node.parts
295
+ command_name = ""
296
+
297
+ if not parts:
298
+ yield CommandAtom(command_name, level, root_path, node.pos)
299
+ continue
300
+
301
+ change_directory = command_name in CHANGE_DIRECTORY
302
+
303
+ for command_node in parts:
304
+ command_word = command_line[slice(*node.pos)]
305
+
306
+ if command_node.kind == "redirect":
307
+ redirect = command_line[slice(*command_node.output.pos)]
308
+ try:
309
+ target_path = (
310
+ root_path / Path(redirect).expanduser()
311
+ ).resolve()
312
+ except OSError:
313
+ continue
314
+ if not target_path.is_relative_to(project_path):
315
+ yield CommandAtom(
316
+ "redirect",
317
+ DangerLevel.DESTRUCTIVE,
318
+ target_path,
319
+ command_node.pos,
320
+ )
321
+ continue
322
+
323
+ if command_node.kind == "command":
324
+ yield from recurse_nodes(root_path, command_node.parts)
325
+ continue
326
+ if command_word.startswith(("-", "+")):
327
+ continue
328
+ word = command_line[slice(*command_node.pos)]
329
+ if change_directory:
330
+ try:
331
+ root_path = (root_path / Path(word)).expanduser().resolve()
332
+ except OSError:
333
+ pass
334
+ continue
335
+
336
+ try:
337
+ target_path = (root_path / Path(word)).expanduser().resolve()
338
+ except OSError:
339
+ continue
340
+ if level == DangerLevel.DANGEROUS and not target_path.is_relative_to(
341
+ project_path
342
+ ):
343
+ # If refers to a path outside of the project, upgrade to destructive
344
+ level = DangerLevel.DESTRUCTIVE
345
+
346
+ yield CommandAtom(command_word, level, target_path, node.pos)
347
+
348
+ current_path = Path(current_working_directory)
349
+ try:
350
+ nodes = bashlex.parse(command_line)
351
+ except Exception:
352
+ # Failed to parse bash
353
+ return
354
+
355
+ yield from recurse_nodes(current_path, nodes)
356
+
357
+
358
+ if __name__ == "__main__":
359
+ import os
360
+ from rich import print
361
+
362
+ TEST = [
363
+ "ls;ls",
364
+ "echo 'hello world'",
365
+ "rm foo",
366
+ "rm ../foo",
367
+ "rm /",
368
+ "cat foo > ../foo.txt",
369
+ ]
370
+
371
+ for test in TEST:
372
+ print(repr(test), detect(os.getcwd(), os.getcwd(), test))
@@ -0,0 +1,51 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://github.com/tao12345666333/amp-acp
3
+
4
+ identity = "ampcode.com"
5
+ name = "Amp (AmpCode)"
6
+ short_name = "amp"
7
+ url = "https://ampcode.com"
8
+ protocol = "acp"
9
+ author_name = "AmpCode"
10
+ author_url = "https://ampcode.com"
11
+ publisher_name = "Will McGugan"
12
+ publisher_url = "https://willmcgugan.github.io/"
13
+ type = "coding"
14
+ description = "Open-source ACP adapter that exposes the Amp CLI to editors such as Zed via the Agent Client Protocol."
15
+ tags = []
16
+ run_command."*" = "npx -y amp-acp"
17
+
18
+ help = '''
19
+ # Amp (AmpCode)
20
+
21
+ Amp is a frontier coding agent for your terminal and editor, built by Sourcegraph.
22
+
23
+ - **Multi-Model** Sonnet, GPT-5, fast models—Amp uses them all, for what each model is best at.
24
+ - **Opinionated** You're always using the good parts of Amp. If we don't use and love a feature, we kill it.
25
+ - **On the Frontier** Amp goes where the models take it. No backcompat, no legacy features.
26
+ - **Threads** You can save and share your interactions with Amp. You wouldn't code without version control, would you?
27
+
28
+ ## Prerequisites
29
+
30
+ - Node.js 18+ so `npx` can run the adapter
31
+ - Ensure the `AMP_EXECUTABLE` environment variable points at your Amp binary (or place `amp` on `PATH`)
32
+
33
+
34
+ ---
35
+
36
+ ## ACP adapter for AmpCode
37
+
38
+ **Repository**: https://github.com/tao12345666333/amp-acp
39
+ '''
40
+
41
+ [actions."*".install]
42
+ command = "curl -fsSL https://ampcode.com/install.sh | bash && npm install -g amp-acp"
43
+ description = "Install AMP Code"
44
+
45
+ [actions."*".install_adapter]
46
+ command = "npm install -g amp-acp"
47
+ description = "Install the Amp ACP adapter"
48
+
49
+ [actions."*".login]
50
+ command = "amp login"
51
+ description = "Login to Amp (run once)"
@@ -0,0 +1,40 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://github.com/augmentcode/auggie
3
+
4
+ identity = "augmentcode.com"
5
+ name = "Auggie (Augment Code)"
6
+ short_name = "auggie"
7
+ url = "https://www.augmentcode.com/product/CLI"
8
+ protocol = "acp"
9
+ author_name = "Augment Code"
10
+ author_url = "https://www.augmentcode.com/"
11
+ publisher_name = "Will McGugan"
12
+ publisher_url = "https://willmcgugan.github.io/"
13
+ type = "coding"
14
+ description = "An AI agent that brings Augment Code's power to the terminal with ACP support for Zed, Neovim, and Emacs."
15
+ tags = []
16
+ run_command."*" = "auggie --acp"
17
+
18
+ help = '''
19
+ # Auggie (Augment Code)
20
+
21
+ *The agentic CLI that goes where your code does*
22
+
23
+ ## Features
24
+
25
+ - **Agent Client Protocol (ACP) Support**: Use Auggie in Zed, Neovim, Emacs, and other ACP-compatible editors
26
+ - **Autonomous Code Analysis**: Intelligently explore codebases and build working memory
27
+ - **Multi-Editor Integration**: Seamlessly integrates with your favorite development environment
28
+
29
+ ---
30
+
31
+ **Documentation**: https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli
32
+ '''
33
+
34
+ [actions."*".install]
35
+ command = "npm install -g @augmentcode/auggie"
36
+ description = "Install Auggie CLI (requires Node 22+)"
37
+
38
+ [actions."*".login]
39
+ command = "auggie login"
40
+ description = "Login it Auggie (run once)"
@@ -0,0 +1,22 @@
1
+ # CDH (Cloud Dev Harness) - Agent for A2TUI
2
+ # https://github.com/cloud-dev-harness/cdh
3
+
4
+ identity = "cdh.cloud-dev-harness"
5
+ name = "CDH Agent"
6
+ short_name = "cdh"
7
+ url = "https://github.com/cloud-dev-harness/cdh"
8
+ protocol = "acp"
9
+ author_name = "CDH Team"
10
+ author_url = "https://github.com/cloud-dev-harness"
11
+ publisher_name = "CDH Team"
12
+ publisher_url = "https://github.com/cloud-dev-harness"
13
+ type = "coding"
14
+ description = "Cloud Dev Harness - cloud-native development Agent framework with LLM provider integration"
15
+ tags = []
16
+ recommended = true
17
+ help = "CDH Agent - Cloud Dev Harness\n\nA cloud-native development Agent framework with LLM provider integration.\n\nSupported providers: MiniMax, Anthropic, OpenAI, DeepSeek, GLM, Ollama"
18
+ commands_module = "onecode.commands"
19
+ commands_prefix = "onecode:"
20
+ run_command."*" = "python3 -m onecode.agent.onecode_agent_acp"
21
+
22
+ [actions]
@@ -0,0 +1,41 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://www.claude.com/product/claude-code
3
+
4
+ identity = "claude.com"
5
+ name = "Claude Code"
6
+ short_name = "claude"
7
+ url = "https://www.claude.com/product/claude-code"
8
+ protocol = "acp"
9
+ author_name = "Anthropic"
10
+ author_url = "https://www.anthropic.com/"
11
+ publisher_name = "Will McGugan"
12
+ publisher_url = "https://willmcgugan.github.io/"
13
+ type = "coding"
14
+ description = "Unleash Claude’s raw power directly in your terminal."
15
+ tags = []
16
+ run_command."*" = "claude-agent-acp"
17
+
18
+ help = '''
19
+ # Claude Code
20
+
21
+ Built for developers
22
+ Unleash Claude’s raw power directly in your terminal.
23
+ Search million-line codebases instantly.
24
+ Turn hours-long workflows into a single command.
25
+ Your tools.
26
+ Your workflow.
27
+ Your codebase, evolving at thought speed.
28
+
29
+ ---
30
+ [ACP adapter for Claude Code](https://github.com/zed-industries/claude-code-acp) by Zed Industries.
31
+
32
+ '''
33
+
34
+
35
+ [actions."*".install]
36
+ command = "curl -fsSL https://claude.ai/install.sh | bash && npm install -g @zed-industries/claude-code-acp"
37
+ description = "Install Claude Code + ACP adapter"
38
+
39
+ [actions."*".install_acp]
40
+ command = "npm install -g @agentclientprotocol/claude-agent-acp"
41
+ description = "Install ACP adapter"
@@ -0,0 +1,29 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://github.com/github/copilot-cli?locale=en-US
3
+
4
+ identity = "copilot.github.com"
5
+ name = "Copilot"
6
+ short_name = "copilot"
7
+ url = "https://github.com/github/copilot-cli"
8
+ protocol = "acp"
9
+ author_name = "GitHub"
10
+ author_url = "https://githib.com"
11
+ publisher_name = "Will McGugan"
12
+ publisher_url = "https://willmcgugan.github.io/"
13
+ type = "coding"
14
+ description = "The power of GitHub Copilot, now in your terminal."
15
+ tags = []
16
+ run_command."*" = "copilot --acp"
17
+
18
+ help = '''
19
+ # GitHub Copilot
20
+
21
+ GitHub Copilot CLI brings AI-powered coding assistance directly to your command line, enabling you to build, debug, and understand code through natural language conversations. Powered by the same agentic harness as GitHub's Copilot coding agent, it provides intelligent assistance while staying deeply integrated with your GitHub workflow.
22
+
23
+ Install vial the select below, or see the README for [alternative install methods](https://github.com/github/copilot-cli?tab=readme-ov-file#installation)
24
+
25
+ '''
26
+
27
+ [actions."*".install]
28
+ command = "npm install -g @github/copilot@prerelease"
29
+ description = "Install Copilot"
@@ -0,0 +1,35 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://github.com/crow-cli/crow-cli
3
+
4
+ identity = "crowai.dev"
5
+ name = "crow-cli"
6
+ short_name = "crow-cli"
7
+ url = "https://crow-ai.dev"
8
+ protocol = "acp"
9
+ author_name = "Thomas Wood"
10
+ author_url = "https://crow-ai.dev"
11
+ publisher_name = "Thomas Wood"
12
+ publisher_url = "https://crow-ai.dev"
13
+ type = "coding"
14
+ description = "Minimal ACP Native Coding Agent. A reference implementation of the Agent Client Protocol with zero frameworks—just pure Python, OpenAI SDK, FastMCP, and SQLAlchemy."
15
+ tags = []
16
+ run_command."*" = "crow-cli acp"
17
+
18
+ help = '''
19
+ # crow-cli
20
+
21
+ Minimal ACP Native Coding Agent.
22
+
23
+ Run `uvx crow-cli init` to configure before running.
24
+
25
+ '''
26
+
27
+
28
+ [actions."*".install]
29
+ command = "uv tool install crow-cli --no-cache --python 3.14"
30
+ description = "Install crow-cli"
31
+
32
+
33
+ [actions."*".update]
34
+ command = "uv tool upgrade crow-cli --no-cache --python 3.14"
35
+ description = "Upgrade crow-cli"
@@ -0,0 +1,38 @@
1
+ # Schema defined in agent_schema.py
2
+ # https://cursor.com/docs/cli/acp
3
+
4
+ identity = "cursor.com"
5
+ name = "Cursor"
6
+ short_name = "cursor"
7
+ url = "https://cursor.com/docs/cli/acp"
8
+ protocol = "acp"
9
+ author_name = "Cursor"
10
+ author_url = "https://cursor.com"
11
+ publisher_name = "Will McGugan"
12
+ publisher_url = "https://willmcgugan.github.io/"
13
+ type = "coding"
14
+ description = "AI-powered coding assistant from Cursor, now in your terminal with native ACP support."
15
+ tags = []
16
+ run_command."*" = "agent acp"
17
+
18
+ help = '''
19
+ # Cursor
20
+
21
+ **AI-powered coding in your terminal**
22
+
23
+ Cursor CLI brings the power of Cursor's AI coding assistant to your command line with native Agent Client Protocol support.
24
+
25
+ ---
26
+
27
+ ⚠️ Run Login action after installing, to login via your browser.
28
+
29
+ **Documentation**: https://cursor.com/docs/cli/acp
30
+ '''
31
+
32
+ [actions."*".install]
33
+ command = "curl https://cursor.com/install -fsS | bash"
34
+ description = "Install Cursor CLI"
35
+
36
+ [actions."*".login]
37
+ command = "agent login"
38
+ description = "Login (must be done once)"
@@ -0,0 +1,33 @@
1
+ identity = "deepagents.langchain.com"
2
+ name = "Deep Agents"
3
+ short_name = "deepagents"
4
+ url = "https://github.com/langchain-ai/deepagents"
5
+ protocol = "acp"
6
+ author_name = "LangChain"
7
+ author_url = "https://www.langchain.com/"
8
+ publisher_name = "LangChain"
9
+ publisher_url = "https://www.langchain.com/"
10
+ type = "coding"
11
+ description = "LangChain's open-source terminal coding agent built on LangGraph. File operations, shell access, sub-agents, and MCP tool support."
12
+ tags = ["open-source"]
13
+ run_command."*" = "deepagents --acp"
14
+
15
+ help = '''
16
+ # Deep Agents
17
+
18
+ LangChain's open-source terminal coding agent built on LangGraph.
19
+
20
+ Supports file operations, shell access, subagents, MCP tools, and dynamic model switching.
21
+
22
+ [deepagents-cli](https://github.com/langchain-ai/deepagents/tree/main/libs/cli)
23
+ '''
24
+
25
+ [actions."*".install]
26
+ command = "uv tool install deepagents-cli -U --python 3.12"
27
+ bootstrap_uv = true
28
+ description = "Install deepagents-cli"
29
+
30
+ [actions."*".update]
31
+ command = "uv tool install deepagents-cli -U --python 3.12"
32
+ bootstrap_uv = true
33
+ description = "Update deepagents-cli"