@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
@@ -0,0 +1,66 @@
1
+ # Aliyun Stack Deployment
2
+
3
+ Production deployment pipeline for Aliyun. The default is the unified `deploy_stack` orchestrator; per-component deploys are only allowed into isolated dev sandboxes.
4
+
5
+ ## Environments
6
+
7
+ | Environment | Purpose | Deploy Trigger | Orchestrator |
8
+ |-------------|---------|----------------|--------------|
9
+ | preview | Per-component + cross-stack e2e | Feature branch | `deploy_stack --preview` |
10
+ | staging | Pre-production stack validation | PR merge to main | `deploy_stack --env staging` |
11
+ | production | Live traffic | Release tag + human approval | `deploy_stack --env production` |
12
+
13
+ ## Stack Deploy Steps
14
+
15
+ ```yaml
16
+ staging:
17
+ orchestrator: deploy_stack
18
+ steps:
19
+ - fun deploy --env staging # backend
20
+ - rds migrate --env staging # backend (or tablestore)
21
+ - oss sync ./dist oss://bucket-staging/ # web
22
+ - cdn refresh --domain staging.example.com # web
23
+ - native build with BACKEND_URL injected # native
24
+ - desktop build with BACKEND_URL injected # desktop
25
+ - wxa build with BACKEND_URL injected # wxa
26
+ - mya build with BACKEND_URL injected # mya
27
+ - tta build with BACKEND_URL injected # tta
28
+ - smoke-test ${STACK_URL}
29
+
30
+ production:
31
+ orchestrator: deploy_stack
32
+ pre_conditions:
33
+ - human-approval-gate
34
+ steps:
35
+ - fun deploy --env production --publish
36
+ - rds migrate --env production
37
+ - oss sync ./dist oss://bucket-production/
38
+ - cdn refresh --domain example.com
39
+ - native build with BACKEND_URL injected
40
+ - desktop build with BACKEND_URL injected
41
+ - wxa build with BACKEND_URL injected
42
+ - mya build with BACKEND_URL injected
43
+ - tta build with BACKEND_URL injected
44
+ - smoke-test ${PRODUCTION_URL}
45
+ - health-check ${PRODUCTION_URL}/health
46
+ - bvt ${PRODUCTION_URL}
47
+ ```
48
+
49
+ ## Per-Component Dev Sandbox (allowed)
50
+
51
+ ```bash
52
+ # Personal dev sandbox — one user, one component
53
+ fun deploy --function hello --env dev-${USER}
54
+ oss cp -r ./dist oss://{dev-bucket}/ --update
55
+ # Per-component deploys to shared envs (preview/staging/production) are forbidden
56
+ ```
57
+
58
+ ## Stack Rollback
59
+
60
+ ```bash
61
+ # Automatic on BVT failure
62
+ deploy_stack --rollback ${LAST_STABLE_STACK_VERSION} --provider aliyun
63
+
64
+ # Manual on demand
65
+ deploy_stack --rollback --stack-version v1.2.3 --provider aliyun
66
+ ```
@@ -0,0 +1,84 @@
1
+ # Aliyun Stack Preview
2
+
3
+ Preview deployment for the unified stack (backend + all clients: web, native, desktop, wxa, mya, tta). URL resolution is dynamic per platform; `BACKEND_URL` is injected into client builds at build time.
4
+
5
+ ## Overview
6
+
7
+ `deploy_stack --preview --provider aliyun` deploys the full stack to an isolated preview environment and exports the stack URL. Used for per-component e2e AND cross-stack e2e verification before staging or production.
8
+
9
+ ## Preview Flow
10
+
11
+ ```
12
+ git push feature branch
13
+ → deploy_stack --preview --provider aliyun
14
+ → STACK_URL = BACKEND_URL = https://{gateway}.{region}.fc.devs.com
15
+ → WEB_URL = https://{bucket}.{region}.oss-website.aliyuncs.com
16
+ → NATIVE_DIST_URL = internal distribution URL
17
+ → DESKTOP_DIST_URL = internal distribution URL
18
+ → WXA_URL / MYA_URL / TTA_URL = mini-program preview QR
19
+ → Per-component e2e: pytest apps/{comp}/tests/e2e/ --base-url $URL
20
+ → Cross-stack e2e: pytest tests/cross-stack/ --stack-url $STACK_URL
21
+ → TTL: 24h → auto cleanup
22
+ ```
23
+
24
+ ## Configuration
25
+
26
+ ```yaml
27
+ preview:
28
+ orchestrator: deploy_stack
29
+ strategy: unified
30
+ ttl: 24h
31
+ auto_cleanup: true
32
+ db_sandbox: true # isolated DB per preview
33
+ url_pattern_backend: "https://{gateway}.{region}.fc.devs.com"
34
+ url_pattern_web: "https://{bucket}.{region}.oss-website.aliyuncs.com"
35
+ build_env:
36
+ web:
37
+ - BACKEND_URL
38
+ - STACK_URL
39
+ native:
40
+ - BACKEND_URL
41
+ desktop:
42
+ - BACKEND_URL
43
+ wxa:
44
+ - BACKEND_URL
45
+ mya:
46
+ - BACKEND_URL
47
+ tta:
48
+ - BACKEND_URL
49
+ env:
50
+ - STACK_URL # = BACKEND_URL (gateway)
51
+ - BACKEND_URL
52
+ - WEB_URL
53
+ - NATIVE_DIST_URL
54
+ - DESKTOP_DIST_URL
55
+ - WXA_URL
56
+ - MYA_URL
57
+ - TTA_URL
58
+ - DATABASE_URL (sandbox)
59
+ ```
60
+
61
+ ## BDD E2E Integration
62
+
63
+ ```bash
64
+ # Deploy unified stack preview
65
+ export STACK_URL=$(deploy_stack --preview --provider aliyun --output url)
66
+ export BACKEND_URL=$STACK_URL
67
+ export WEB_URL=$(deploy_stack --preview --provider aliyun --output web_url)
68
+ export NATIVE_DIST_URL=$(deploy_stack --preview --provider aliyun --output native_url)
69
+ export DESKTOP_DIST_URL=$(deploy_stack --preview --provider aliyun --output desktop_url)
70
+
71
+ # Per-component e2e
72
+ pytest apps/backend/tests/e2e/ --base-url $BACKEND_URL
73
+ pytest apps/web/tests/e2e/ --base-url $WEB_URL --api-url $BACKEND_URL
74
+ pytest apps/native/tests/e2e/ --backend-url $BACKEND_URL
75
+ pytest apps/desktop/tests/e2e/ --backend-url $BACKEND_URL
76
+ pytest apps/wxa/tests/e2e/ --backend-url $BACKEND_URL
77
+ pytest apps/mya/tests/e2e/ --backend-url $BACKEND_URL
78
+ pytest apps/tta/tests/e2e/ --backend-url $BACKEND_URL
79
+
80
+ # Cross-stack e2e
81
+ pytest tests/cross-stack/ --stack-url $STACK_URL
82
+
83
+ # Cleanup (automatic after TTL)
84
+ ```
@@ -0,0 +1,160 @@
1
+ # Aliyun Provider (Stack-aware)
2
+
3
+ Aliyun (Alibaba Cloud) provider — secondary platform. Supports the unified stack deploy (backend + all clients: web, native, desktop, wxa, mya, tta) and per-component deploys (for isolated dev sandboxes only).
4
+
5
+ ## Metadata
6
+
7
+ ```yaml
8
+ provider:
9
+ name: aliyun
10
+ display_name: Alibaba Cloud
11
+ default: false
12
+ version: 3.0.0
13
+ website: https://www.aliyun.com/
14
+
15
+ stack:
16
+ components:
17
+ - id: backend
18
+ deploy_order: 1
19
+ exposes: BACKEND_URL
20
+ - id: web
21
+ deploy_order: 2
22
+ consumes: BACKEND_URL
23
+ - id: native
24
+ deploy_order: 2
25
+ consumes: BACKEND_URL
26
+ - id: desktop
27
+ deploy_order: 2
28
+ consumes: BACKEND_URL
29
+ - id: wxa
30
+ deploy_order: 2
31
+ consumes: BACKEND_URL
32
+ - id: mya
33
+ deploy_order: 2
34
+ consumes: BACKEND_URL
35
+ - id: tta
36
+ deploy_order: 2
37
+ consumes: BACKEND_URL
38
+
39
+ regions:
40
+ - id: cn-shanghai
41
+ name: Shanghai
42
+ - id: cn-beijing
43
+ name: Beijing
44
+ - id: cn-hangzhou
45
+ name: Hangzhou
46
+ - id: ap-southeast-1
47
+ name: Singapore
48
+
49
+ services:
50
+ - functions: function-compute
51
+ - database: rds + tablestore
52
+ - storage: oss
53
+ - hosting: static-website + cdn
54
+
55
+ limits:
56
+ function_timeout: 600s
57
+ function_memory: 3072MB
58
+
59
+ compute_modes:
60
+ - id: fc
61
+ type: faas
62
+ default: true
63
+ description: "Function Compute — event-driven functions"
64
+ limits:
65
+ timeout: 600s
66
+ memory: 3072MB
67
+ - id: sae
68
+ type: caas
69
+ description: "Serverless App Engine 2.0 — container/web app hosting"
70
+ limits:
71
+ timeout: 86400s
72
+ memory: 32768MB
73
+
74
+ capabilities:
75
+ - function_compute
76
+ - serverless_app_engine
77
+ - oss_storage
78
+ - rds_database
79
+ - tablestore
80
+ - static_hosting
81
+ - cdn_acceleration
82
+ - preview_deploy
83
+ - ssl_cert
84
+ - stack_deploy
85
+ - build_env_injection
86
+ ```
87
+
88
+ ## Stack Deploy (recommended for shared environments)
89
+
90
+ ```bash
91
+ # Unified stack preview
92
+ deploy_stack --preview --provider aliyun
93
+ # → backend: fun deploy --env preview
94
+ # → web: oss + cdn deploy with build env BACKEND_URL=${STACK_URL}
95
+ # → native: build with BACKEND_URL injected; package
96
+ # → desktop: build with BACKEND_URL injected; package
97
+ # → wxa: build with BACKEND_URL injected; upload to mini-program platform
98
+ # → mya: build with BACKEND_URL injected; upload to mini-program platform
99
+ # → tta: build with BACKEND_URL injected; upload to mini-program platform
100
+ # → STACK_URL = https://{gateway}.{region}.fc.devs.com
101
+
102
+ deploy_stack --env staging --provider aliyun
103
+ deploy_stack --env production --provider aliyun
104
+ deploy_stack --rollback ${LAST_STABLE_STACK_VERSION} --provider aliyun
105
+ ```
106
+
107
+ ## Per-Component Deploy (dev sandboxes only)
108
+
109
+ ```bash
110
+ # Functions
111
+ fun deploy --function hello
112
+
113
+ # Storage (OSS)
114
+ oss cp ./file.txt oss://bucket/path/
115
+ oss ls oss://bucket/
116
+
117
+ # Database (RDS / TableStore)
118
+ # RDS: standard MySQL/PostgreSQL CLI
119
+ # TableStore: ots search
120
+
121
+ # Hosting (web only, dev sandbox)
122
+ oss cp -r ./dist oss://{dev-bucket}/ && cdn refresh
123
+
124
+ # Environment
125
+ fun config --account-id <id>
126
+ fun config --region cn-shanghai
127
+ ```
128
+
129
+ > Per-component deploys to shared environments are forbidden (STK-004). Use `deploy_stack`.
130
+
131
+ ## URL Resolution
132
+
133
+ | Component | Pattern |
134
+ |-----------|---------|
135
+ | `STACK_URL` / `BACKEND_URL` | `https://{gateway}.{region}.fc.devs.com` |
136
+ | `WEB_URL` | `https://{bucket}.{region}.oss-website.aliyuncs.com` |
137
+ | `NATIVE_DIST_URL` | internal distribution URL |
138
+ | `DESKTOP_DIST_URL` | internal distribution URL |
139
+ | `WXA_URL` | mini-program preview QR |
140
+ | `MYA_URL` | mini-program preview QR |
141
+ | `TTA_URL` | mini-program preview QR |
142
+
143
+ ## Build Config Injection
144
+
145
+ ```bash
146
+ BACKEND_URL=$STACK_URL pnpm --filter web build
147
+ oss cp -r ./dist oss://{bucket}/ --update
148
+ cdn refresh
149
+ ```
150
+
151
+ ## Environment Variables
152
+
153
+ | Variable | Description |
154
+ |----------|-------------|
155
+ | ALICLOUD_ACCESS_KEY | Aliyun access key ID |
156
+ | ALICLOUD_SECRET_KEY | Aliyun access key secret |
157
+ | ALICLOUD_REGION | Default region |
158
+ | FUNCTION_COMPUTE_SERVICE | FC service name |
159
+ | BACKEND_URL | Stack URL injected at build time |
160
+ | STACK_URL | Alias of BACKEND_URL (gateway) |
@@ -0,0 +1,69 @@
1
+ # TCB Stack Deployment
2
+
3
+ Production deployment pipeline for TCB. The default is the unified `deploy_stack` orchestrator; per-component deploys are only allowed into isolated dev sandboxes.
4
+
5
+ ## Environments
6
+
7
+ | Environment | Purpose | Deploy Trigger | Orchestrator |
8
+ |-------------|---------|----------------|--------------|
9
+ | preview | Per-component + cross-stack e2e | Feature branch | `deploy_stack --preview` |
10
+ | staging | Pre-production stack validation | PR merge to main | `deploy_stack --env staging` |
11
+ | production | Live traffic | Release tag + human approval | `deploy_stack --env production` |
12
+
13
+ ## Stack Deploy Steps
14
+
15
+ ```yaml
16
+ staging:
17
+ orchestrator: deploy_stack
18
+ steps:
19
+ - tcb fn deploy --env staging # backend
20
+ - tcb db migrate --env staging # backend
21
+ - tcb hosting deploy --env staging \
22
+ --build-env BACKEND_URL=${STACK_URL} # web
23
+ - native build with BACKEND_URL injected # native
24
+ - desktop build with BACKEND_URL injected # desktop
25
+ - wxa build with BACKEND_URL injected # wxa
26
+ - mya build with BACKEND_URL injected # mya
27
+ - tta build with BACKEND_URL injected # tta
28
+ - smoke-test ${STACK_URL}
29
+
30
+ production:
31
+ orchestrator: deploy_stack
32
+ pre_conditions:
33
+ - human-approval-gate
34
+ steps:
35
+ - tcb fn deploy --env production
36
+ - tcb db migrate --env production
37
+ - tcb hosting deploy --env production \
38
+ --build-env BACKEND_URL=${STACK_URL}
39
+ - native build with BACKEND_URL injected
40
+ - desktop build with BACKEND_URL injected
41
+ - wxa build with BACKEND_URL injected
42
+ - mya build with BACKEND_URL injected
43
+ - tta build with BACKEND_URL injected
44
+ - smoke-test ${PRODUCTION_URL}
45
+ - health-check ${PRODUCTION_URL}/health
46
+ - bvt ${PRODUCTION_URL}
47
+ ```
48
+
49
+ ## Per-Component Dev Sandbox (allowed)
50
+
51
+ ```bash
52
+ # Personal dev sandbox — one user, one component
53
+ tcb env create dev-${USER}
54
+ tcb fn deploy --name hello --dir ./functions --env dev-${USER}
55
+ tcb hosting deploy --env dev-${USER}
56
+ # Per-component deploys to shared envs (preview/staging/production) are forbidden
57
+ ```
58
+
59
+ ## Stack Rollback
60
+
61
+ ```bash
62
+ # Automatic on BVT failure
63
+ deploy_stack --rollback ${LAST_STABLE_STACK_VERSION} --provider tcb
64
+
65
+ # Manual on demand
66
+ deploy_stack --rollback --stack-version v1.2.3 --provider tcb
67
+ ```
68
+
69
+ The previous stable stack version is identified by the last green BVT.
@@ -0,0 +1,83 @@
1
+ # TCB Stack Preview
2
+
3
+ Preview deployment for the unified stack (backend + all clients: web, native, desktop, wxa, mya, tta). URL resolution is dynamic per platform; `BACKEND_URL` is injected into client builds at build time.
4
+
5
+ ## Overview
6
+
7
+ `deploy_stack --preview --provider tcb` deploys the full stack to an isolated preview environment and exports the stack URL. Used for per-component e2e AND cross-stack e2e verification before staging or production.
8
+
9
+ ## Preview Flow
10
+
11
+ ```
12
+ git push feature branch
13
+ → deploy_stack --preview --provider tcb
14
+ → STACK_URL = BACKEND_URL = https://{env-id}.tcb-preview.com
15
+ → WEB_URL = https://{env-id}-{project}.tcb-preview.com
16
+ → NATIVE_DIST_URL = internal distribution URL
17
+ → DESKTOP_DIST_URL = internal distribution URL
18
+ → WXA_URL / MYA_URL / TTA_URL = mini-program preview QR
19
+ → Per-component e2e: pytest apps/{comp}/tests/e2e/ --base-url $URL
20
+ → Cross-stack e2e: pytest tests/cross-stack/ --stack-url $STACK_URL
21
+ → TTL: 24h → auto cleanup
22
+ ```
23
+
24
+ ## Configuration
25
+
26
+ ```yaml
27
+ preview:
28
+ orchestrator: deploy_stack
29
+ strategy: unified
30
+ ttl: 24h
31
+ auto_cleanup: true
32
+ db_sandbox: true # isolated database per preview
33
+ url_pattern: "https://{env-id}.tcb-preview.com"
34
+ build_env:
35
+ web:
36
+ - BACKEND_URL
37
+ - STACK_URL
38
+ native:
39
+ - BACKEND_URL
40
+ desktop:
41
+ - BACKEND_URL
42
+ wxa:
43
+ - BACKEND_URL
44
+ mya:
45
+ - BACKEND_URL
46
+ tta:
47
+ - BACKEND_URL
48
+ env:
49
+ - STACK_URL # = BACKEND_URL (gateway)
50
+ - BACKEND_URL
51
+ - WEB_URL
52
+ - NATIVE_DIST_URL
53
+ - DESKTOP_DIST_URL
54
+ - WXA_URL
55
+ - MYA_URL
56
+ - TTA_URL
57
+ - DATABASE_URL (sandbox)
58
+ ```
59
+
60
+ ## BDD E2E Integration
61
+
62
+ ```bash
63
+ # Deploy unified stack preview
64
+ export STACK_URL=$(deploy_stack --preview --provider tcb --output url)
65
+ export BACKEND_URL=$STACK_URL
66
+ export WEB_URL=$(deploy_stack --preview --provider tcb --output web_url)
67
+ export NATIVE_DIST_URL=$(deploy_stack --preview --provider tcb --output native_url)
68
+ export DESKTOP_DIST_URL=$(deploy_stack --preview --provider tcb --output desktop_url)
69
+
70
+ # Per-component e2e
71
+ pytest apps/backend/tests/e2e/ --base-url $BACKEND_URL
72
+ pytest apps/web/tests/e2e/ --base-url $WEB_URL --api-url $BACKEND_URL
73
+ pytest apps/native/tests/e2e/ --backend-url $BACKEND_URL
74
+ pytest apps/desktop/tests/e2e/ --backend-url $BACKEND_URL
75
+ pytest apps/wxa/tests/e2e/ --backend-url $BACKEND_URL
76
+ pytest apps/mya/tests/e2e/ --backend-url $BACKEND_URL
77
+ pytest apps/tta/tests/e2e/ --backend-url $BACKEND_URL
78
+
79
+ # Cross-stack e2e
80
+ pytest tests/cross-stack/ --stack-url $STACK_URL
81
+
82
+ # Cleanup (automatic after TTL)
83
+ ```
@@ -0,0 +1,172 @@
1
+ # TCB Provider (Stack-aware)
2
+
3
+ Default cloud development platform. Supports the unified stack deploy (backend + all clients: web, native, desktop, wxa, mya, tta) and per-component deploys (for isolated dev sandboxes only).
4
+
5
+ ## Metadata
6
+
7
+ ```yaml
8
+ provider:
9
+ name: tcb
10
+ display_name: Tencent CloudBase
11
+ default: true
12
+ version: 3.0.0
13
+ website: https://cloud.tencent.com/product/tcb
14
+
15
+ stack:
16
+ components:
17
+ - id: backend
18
+ deploy_order: 1
19
+ exposes: BACKEND_URL
20
+ - id: web
21
+ deploy_order: 2
22
+ consumes: BACKEND_URL
23
+ - id: native
24
+ deploy_order: 2
25
+ consumes: BACKEND_URL
26
+ - id: desktop
27
+ deploy_order: 2
28
+ consumes: BACKEND_URL
29
+ - id: wxa
30
+ deploy_order: 2
31
+ consumes: BACKEND_URL
32
+ - id: mya
33
+ deploy_order: 2
34
+ consumes: BACKEND_URL
35
+ - id: tta
36
+ deploy_order: 2
37
+ consumes: BACKEND_URL
38
+
39
+ regions:
40
+ - id: ap-shanghai
41
+ name: Shanghai
42
+ - id: ap-beijing
43
+ name: Beijing
44
+ - id: ap-guangzhou
45
+ name: Guangzhou
46
+ - id: ap-singapore
47
+ name: Singapore
48
+
49
+ services:
50
+ - functions: cloudbase
51
+ - database: cloudbase
52
+ - storage: cloudbase
53
+ - hosting: cloudbase
54
+
55
+ limits:
56
+ function_timeout: 60s
57
+ function_memory: 1536MB
58
+ max_instances: 100
59
+
60
+ compute_modes:
61
+ - id: cloudbase-functions
62
+ type: faas
63
+ default: true
64
+ description: "CloudBase Functions (SCF) — event-driven functions"
65
+ limits:
66
+ timeout: 60s
67
+ memory: 1536MB
68
+ max_instances: 100
69
+ - id: cloudbase-run
70
+ type: caas
71
+ description: "CloudBase Run — container hosting"
72
+ limits:
73
+ timeout: 3600s
74
+ memory: 4096MB
75
+
76
+ capabilities:
77
+ - serverless_functions
78
+ - static_hosting
79
+ - serverless_database
80
+ - serverless_storage
81
+ - preview_deploy
82
+ - ssl_cert
83
+ - custom_domain
84
+ - cdn_acceleration
85
+ - stack_deploy
86
+ - build_env_injection
87
+ - container_hosting
88
+
89
+ storage:
90
+ object_storage: cloudbase-storage
91
+ document_db: docdb
92
+ relational_db: mysql
93
+ cdn: tencent-cloud-cdn
94
+ ```
95
+
96
+ ## Stack Deploy (recommended for shared environments)
97
+
98
+ ```bash
99
+ # Unified stack preview (returns STACK_URL = BACKEND_URL + per-component URLs)
100
+ deploy_stack --preview --provider tcb
101
+ # → backend: tcb fn deploy --env preview
102
+ # → backend: tcb db migrate --env preview
103
+ # → web: tcb hosting deploy --env preview --build-env BACKEND_URL=${STACK_URL}
104
+ # → native: build with BACKEND_URL injected; upload to internal distribution
105
+ # → desktop: build with BACKEND_URL injected; upload to internal distribution
106
+ # → wxa: build with BACKEND_URL injected; upload to mini-program platform
107
+ # → mya: build with BACKEND_URL injected; upload to mini-program platform
108
+ # → tta: build with BACKEND_URL injected; upload to mini-program platform
109
+ # → STACK_URL = https://{env-id}.tcb-preview.com
110
+
111
+ # Stack staging
112
+ deploy_stack --env staging --provider tcb
113
+
114
+ # Stack production (after human approval)
115
+ deploy_stack --env production --provider tcb
116
+
117
+ # Stack rollback
118
+ deploy_stack --rollback ${LAST_STABLE_STACK_VERSION} --provider tcb
119
+ ```
120
+
121
+ ## Per-Component Deploy (dev sandboxes only)
122
+
123
+ For isolated dev work on a single component, per-component deploy is allowed into a personal sandbox env.
124
+
125
+ ```bash
126
+ # Functions
127
+ tcb fn deploy --name hello --dir ./functions
128
+ tcb fn invoke --name hello --params '{}'
129
+ tcb fn logs --name hello
130
+
131
+ # Database
132
+ tcb db query "SELECT * FROM users"
133
+ tcb db migrate
134
+
135
+ # Hosting (web only)
136
+ tcb hosting deploy --env dev-<user>
137
+
138
+ # Environment
139
+ tcb env list
140
+ tcb env use <env-id>
141
+ ```
142
+
143
+ > Per-component deploys to shared environments (preview, staging, production) are forbidden (STK-004). Use `deploy_stack`.
144
+
145
+ ## URL Resolution
146
+
147
+ | Component | Pattern |
148
+ |-----------|---------|
149
+ | `STACK_URL` / `BACKEND_URL` | `https://{env-id}.tcb-preview.com` |
150
+ | `WEB_URL` | `https://{env-id}-{project}.tcb-preview.com` |
151
+ | `NATIVE_DIST_URL` | internal distribution URL |
152
+ | `DESKTOP_DIST_URL` | internal distribution URL |
153
+ | `WXA_URL` | mini-program preview QR |
154
+ | `MYA_URL` | mini-program preview QR |
155
+ | `TTA_URL` | mini-program preview QR |
156
+
157
+ ## Build Config Injection
158
+
159
+ ```bash
160
+ tcb hosting deploy --env preview --build-env BACKEND_URL=$STACK_URL
161
+ # web reads process.env.BACKEND_URL at build time
162
+ ```
163
+
164
+ ## Environment Variables
165
+
166
+ | Variable | Description |
167
+ |----------|-------------|
168
+ | TCB_SECRET_ID | Tencent Cloud secret ID |
169
+ | TCB_SECRET_KEY | Tencent Cloud secret key |
170
+ | TCB_ENV_ID | CloudBase environment ID |
171
+ | BACKEND_URL | Stack URL injected at build time |
172
+ | STACK_URL | Alias of BACKEND_URL (gateway) |