@scemoon/cdh 1.0.8 → 1.0.9-beta.2

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 (786) hide show
  1. package/ai-dlc-skill/SKILL.md +106 -0
  2. package/ai-dlc-skill/architecture/project-structure.md +78 -0
  3. package/ai-dlc-skill/brownfield/README.md +36 -0
  4. package/ai-dlc-skill/brownfield/entry.md +45 -0
  5. package/ai-dlc-skill/brownfield/generate-context.sh +64 -0
  6. package/ai-dlc-skill/brownfield/scripts/deps.sh +27 -0
  7. package/ai-dlc-skill/brownfield/scripts/discover.sh +34 -0
  8. package/ai-dlc-skill/brownfield/scripts/extract-api.sh +45 -0
  9. package/ai-dlc-skill/components/backend.md +47 -0
  10. package/ai-dlc-skill/components/desktop.md +63 -0
  11. package/ai-dlc-skill/components/mya.md +219 -0
  12. package/ai-dlc-skill/components/native.md +73 -0
  13. package/ai-dlc-skill/components/tta.md +235 -0
  14. package/ai-dlc-skill/components/web.md +77 -0
  15. package/ai-dlc-skill/components/wxa.md +219 -0
  16. package/ai-dlc-skill/contracts/README.md +25 -0
  17. package/ai-dlc-skill/core/adaptive-flow.md +107 -0
  18. package/ai-dlc-skill/core/security.md +29 -0
  19. package/ai-dlc-skill/core/task-registry.md +153 -0
  20. package/ai-dlc-skill/cross-tool/README.md +20 -0
  21. package/ai-dlc-skill/cross-tool/cline/export.sh +38 -0
  22. package/ai-dlc-skill/cross-tool/copilot/export.sh +41 -0
  23. package/ai-dlc-skill/cross-tool/cursor/export.sh +53 -0
  24. package/ai-dlc-skill/cross-tool/onecode/export.sh +27 -0
  25. package/ai-dlc-skill/cross-tool/opencode/export.sh +38 -0
  26. package/ai-dlc-skill/phases/debug/entry.md +48 -0
  27. package/ai-dlc-skill/phases/debug/lifecycle.md +284 -0
  28. package/ai-dlc-skill/phases/deliver/entry.md +35 -0
  29. package/ai-dlc-skill/phases/deliver/lifecycle.md +185 -0
  30. package/ai-dlc-skill/phases/deliver/prompt.md +54 -0
  31. package/ai-dlc-skill/phases/deliver/rules.md +61 -0
  32. package/ai-dlc-skill/phases/plan/design_system/accessibility.md +268 -0
  33. package/ai-dlc-skill/phases/plan/design_system/atomic_design.md +341 -0
  34. package/ai-dlc-skill/phases/plan/design_system/component_spec.md +398 -0
  35. package/ai-dlc-skill/phases/plan/design_system/design_tokens.md +190 -0
  36. package/ai-dlc-skill/phases/plan/design_system/iconography.md +299 -0
  37. package/ai-dlc-skill/phases/plan/design_system/platform_ui/desktop.md +318 -0
  38. package/ai-dlc-skill/phases/plan/design_system/platform_ui/mya.md +354 -0
  39. package/ai-dlc-skill/phases/plan/design_system/platform_ui/native.md +328 -0
  40. package/ai-dlc-skill/phases/plan/design_system/platform_ui/tta.md +394 -0
  41. package/ai-dlc-skill/phases/plan/design_system/platform_ui/web.md +287 -0
  42. package/ai-dlc-skill/phases/plan/design_system/platform_ui/wxa.md +374 -0
  43. package/ai-dlc-skill/phases/plan/design_system/theme_system.md +318 -0
  44. package/ai-dlc-skill/phases/plan/entry.md +33 -0
  45. package/ai-dlc-skill/phases/plan/lifecycle.md +260 -0
  46. package/ai-dlc-skill/phases/plan/prompt.md +75 -0
  47. package/ai-dlc-skill/phases/plan/rules.md +60 -0
  48. package/ai-dlc-skill/phases/understand/entry.md +36 -0
  49. package/ai-dlc-skill/phases/understand/lifecycle.md +184 -0
  50. package/ai-dlc-skill/phases/understand/prompt.md +58 -0
  51. package/ai-dlc-skill/phases/understand/rules.md +49 -0
  52. package/ai-dlc-skill/phases/verify/config/base_url.md +65 -0
  53. package/ai-dlc-skill/phases/verify/entry.md +59 -0
  54. package/ai-dlc-skill/phases/verify/gates/browser_e2e.md +96 -0
  55. package/ai-dlc-skill/phases/verify/lifecycle.md +217 -0
  56. package/ai-dlc-skill/phases/verify/prompt.md +73 -0
  57. package/ai-dlc-skill/phases/verify/rules.md +91 -0
  58. package/ai-dlc-skill/phases/verify/runners/playwright_local.md +103 -0
  59. package/ai-dlc-skill/practices/bdd.md +119 -0
  60. package/ai-dlc-skill/practices/sdd.md +84 -0
  61. package/ai-dlc-skill/practices/tdd.md +128 -0
  62. package/ai-dlc-skill/providers/README.md +114 -0
  63. package/ai-dlc-skill/providers/aliyun/SKILL.md +204 -0
  64. package/ai-dlc-skill/providers/aliyun/api/rest-api.md +214 -0
  65. package/ai-dlc-skill/providers/aliyun/api/sdk.md +307 -0
  66. package/ai-dlc-skill/providers/aliyun/best-practices/database-design.md +363 -0
  67. package/ai-dlc-skill/providers/aliyun/best-practices/function-design.md +424 -0
  68. package/ai-dlc-skill/providers/aliyun/best-practices/troubleshooting.md +258 -0
  69. package/ai-dlc-skill/providers/aliyun/cli/database.md +263 -0
  70. package/ai-dlc-skill/providers/aliyun/cli/functions.md +263 -0
  71. package/ai-dlc-skill/providers/aliyun/cli/hosting.md +226 -0
  72. package/ai-dlc-skill/providers/aliyun/cli/setup.md +235 -0
  73. package/ai-dlc-skill/providers/aliyun/cli/storage.md +315 -0
  74. package/ai-dlc-skill/providers/aliyun/deployment.yaml +66 -0
  75. package/ai-dlc-skill/providers/aliyun/integration/ci-cd.md +288 -0
  76. package/ai-dlc-skill/providers/aliyun/preview.yaml +84 -0
  77. package/ai-dlc-skill/providers/aliyun/provider.yaml +160 -0
  78. package/ai-dlc-skill/providers/aliyun/security/authentication.md +254 -0
  79. package/ai-dlc-skill/providers/aliyun/services/cdn-hosting.md +220 -0
  80. package/ai-dlc-skill/providers/aliyun/services/database.md +319 -0
  81. package/ai-dlc-skill/providers/aliyun/services/function-compute.md +273 -0
  82. package/ai-dlc-skill/providers/aliyun/services/overview.md +163 -0
  83. package/ai-dlc-skill/providers/aliyun/services/serverless-app-engine.md +266 -0
  84. package/ai-dlc-skill/providers/aliyun/services/storage.md +269 -0
  85. package/ai-dlc-skill/providers/tcb/SKILL.md +208 -0
  86. package/ai-dlc-skill/providers/tcb/api/rest-api.md +338 -0
  87. package/ai-dlc-skill/providers/tcb/api/sdk.md +288 -0
  88. package/ai-dlc-skill/providers/tcb/best-practices/database-design.md +452 -0
  89. package/ai-dlc-skill/providers/tcb/best-practices/function-design.md +502 -0
  90. package/ai-dlc-skill/providers/tcb/best-practices/troubleshooting.md +462 -0
  91. package/ai-dlc-skill/providers/tcb/cli/cls.md +133 -0
  92. package/ai-dlc-skill/providers/tcb/cli/database.md +230 -0
  93. package/ai-dlc-skill/providers/tcb/cli/env.md +207 -0
  94. package/ai-dlc-skill/providers/tcb/cli/functions.md +276 -0
  95. package/ai-dlc-skill/providers/tcb/cli/hosting.md +219 -0
  96. package/ai-dlc-skill/providers/tcb/cli/setup.md +218 -0
  97. package/ai-dlc-skill/providers/tcb/cli/storage.md +233 -0
  98. package/ai-dlc-skill/providers/tcb/deployment.yaml +111 -0
  99. package/ai-dlc-skill/providers/tcb/integration/ci-cd.md +309 -0
  100. package/ai-dlc-skill/providers/tcb/integration/mcp-server.md +371 -0
  101. package/ai-dlc-skill/providers/tcb/preview.yaml +83 -0
  102. package/ai-dlc-skill/providers/tcb/provider.yaml +172 -0
  103. package/ai-dlc-skill/providers/tcb/security/authentication.md +241 -0
  104. package/ai-dlc-skill/providers/tcb/services/cloud-database.md +299 -0
  105. package/ai-dlc-skill/providers/tcb/services/cloud-functions.md +265 -0
  106. package/ai-dlc-skill/providers/tcb/services/cloud-hosting.md +264 -0
  107. package/ai-dlc-skill/providers/tcb/services/cloud-run.md +285 -0
  108. package/ai-dlc-skill/providers/tcb/services/cloud-storage.md +245 -0
  109. package/ai-dlc-skill/providers/tcb/services/overview.md +174 -0
  110. package/ai-dlc-skill/pybdd/README.md +41 -0
  111. package/ai-dlc-skill/pybdd/conftest.py +17 -0
  112. package/ai-dlc-skill/pybdd/example/auth/login.feature +32 -0
  113. package/ai-dlc-skill/pybdd/pytest.ini +5 -0
  114. package/ai-dlc-skill/pybdd/steps/.gitkeep +1 -0
  115. package/ai-dlc-skill/pybdd/steps/test_example_steps.py +65 -0
  116. package/ai-dlc-skill/requirements.md +140 -0
  117. package/ai-dlc-skill/skill.yaml +135 -0
  118. package/ai-dlc-skill/templates/brownfield/context.md +78 -0
  119. package/ai-dlc-skill/templates/integration/CHANGELOG.md +41 -0
  120. package/ai-dlc-skill/templates/integration/asyncapi.yaml +43 -0
  121. package/ai-dlc-skill/templates/integration/contract-diff.md +63 -0
  122. package/ai-dlc-skill/templates/integration/contract-spec.md +49 -0
  123. package/ai-dlc-skill/templates/integration/openapi.yaml +18 -0
  124. package/ai-dlc-skill/templates/integration/runtime-contract.yaml +36 -0
  125. package/ai-dlc-skill/templates/plan/design.md +49 -0
  126. package/ai-dlc-skill/templates/plan/task-list.md +32 -0
  127. package/ai-dlc-skill/templates/project/README.md +126 -0
  128. package/ai-dlc-skill/templates/project/template.md +119 -0
  129. package/ai-dlc-skill/templates/understand/feature.feature +30 -0
  130. package/ai-dlc-skill/templates/understand/intent.md +29 -0
  131. package/ai-dlc-skill/templates/understand/spec-delta.md +47 -0
  132. package/ai-dlc-skill/templates/verify/test-unit.py +27 -0
  133. package/ai-dlc-skill/walkthrough/collect.sh +50 -0
  134. package/ai-dlc-skill/walkthrough/template.md +54 -0
  135. package/cdh/__init__.py +0 -0
  136. package/cdh/__main__.py +4 -0
  137. package/cdh/__pycache__/__init__.cpython-314.pyc +0 -0
  138. package/cdh/__pycache__/cli.cpython-314.pyc +0 -0
  139. package/cdh/__pycache__/cli_logging.cpython-314.pyc +0 -0
  140. package/cdh/__pycache__/config.cpython-314.pyc +0 -0
  141. package/cdh/__pycache__/project_loader.cpython-314.pyc +0 -0
  142. package/cdh/__pycache__/scaffold.cpython-314.pyc +0 -0
  143. package/cdh/__pycache__/session_store.cpython-314.pyc +0 -0
  144. package/cdh/cdh_session_aggregator.py +258 -0
  145. package/cdh/cli.py +3000 -0
  146. package/cdh/cli_logging.py +45 -0
  147. package/cdh/config.py +28 -0
  148. package/cdh/event_loop/__init__.py +7 -0
  149. package/cdh/event_loop/bus.py +123 -0
  150. package/cdh/event_loop/events.py +25 -0
  151. package/cdh/event_loop/runner.py +28 -0
  152. package/cdh/event_loop/scheduler.py +158 -0
  153. package/cdh/generators/__init__.py +35 -0
  154. package/cdh/generators/_runtime.py +176 -0
  155. package/cdh/generators/ada/MANIFEST.toml +14 -0
  156. package/cdh/generators/ada/template.ads.tmpl +7 -0
  157. package/cdh/generators/bash/MANIFEST.toml +14 -0
  158. package/cdh/generators/bash/template.sh.tmpl +16 -0
  159. package/cdh/generators/builtin_index.json +590 -0
  160. package/cdh/generators/c/MANIFEST.toml +14 -0
  161. package/cdh/generators/c/template.h.tmpl +20 -0
  162. package/cdh/generators/cli.py +379 -0
  163. package/cdh/generators/clojure/MANIFEST.toml +14 -0
  164. package/cdh/generators/clojure/template.clj.tmpl +13 -0
  165. package/cdh/generators/cobol/MANIFEST.toml +14 -0
  166. package/cdh/generators/cobol/template.cbl.tmpl +14 -0
  167. package/cdh/generators/cpp/MANIFEST.toml +14 -0
  168. package/cdh/generators/cpp/template.hpp.tmpl +32 -0
  169. package/cdh/generators/crystal/MANIFEST.toml +14 -0
  170. package/cdh/generators/crystal/template.cr.tmpl +11 -0
  171. package/cdh/generators/csharp/MANIFEST.toml +23 -0
  172. package/cdh/generators/csharp/template.cs.tmpl +14 -0
  173. package/cdh/generators/cython/MANIFEST.toml +14 -0
  174. package/cdh/generators/cython/template.pyx.tmpl +17 -0
  175. package/cdh/generators/d/MANIFEST.toml +14 -0
  176. package/cdh/generators/d/template.d.tmpl +24 -0
  177. package/cdh/generators/dart/MANIFEST.toml +17 -0
  178. package/cdh/generators/dart/template.dart.tmpl +27 -0
  179. package/cdh/generators/elixir/MANIFEST.toml +17 -0
  180. package/cdh/generators/elixir/template.ex.tmpl +27 -0
  181. package/cdh/generators/elm/MANIFEST.toml +14 -0
  182. package/cdh/generators/elm/template.elm.tmpl +20 -0
  183. package/cdh/generators/erlang/MANIFEST.toml +14 -0
  184. package/cdh/generators/erlang/template.erl.tmpl +18 -0
  185. package/cdh/generators/fortran/MANIFEST.toml +14 -0
  186. package/cdh/generators/fortran/template.f90.tmpl +24 -0
  187. package/cdh/generators/fsharp/MANIFEST.toml +14 -0
  188. package/cdh/generators/fsharp/template.fs.tmpl +17 -0
  189. package/cdh/generators/go/MANIFEST.toml +18 -0
  190. package/cdh/generators/go/imports.go.tmpl +3 -0
  191. package/cdh/generators/go/template.go.tmpl +9 -0
  192. package/cdh/generators/graphql-schema/MANIFEST.toml +18 -0
  193. package/cdh/generators/graphql-schema/template.graphqls.tmpl +12 -0
  194. package/cdh/generators/groovy/MANIFEST.toml +14 -0
  195. package/cdh/generators/groovy/template.groovy.tmpl +28 -0
  196. package/cdh/generators/hack/MANIFEST.toml +14 -0
  197. package/cdh/generators/hack/template.hh.tmpl +24 -0
  198. package/cdh/generators/haskell/MANIFEST.toml +14 -0
  199. package/cdh/generators/haskell/template.hs.tmpl +20 -0
  200. package/cdh/generators/haxe/MANIFEST.toml +14 -0
  201. package/cdh/generators/haxe/template.hx.tmpl +20 -0
  202. package/cdh/generators/idris/MANIFEST.toml +14 -0
  203. package/cdh/generators/idris/template.idr.tmpl +22 -0
  204. package/cdh/generators/java/MANIFEST.toml +18 -0
  205. package/cdh/generators/java/template.java.tmpl +13 -0
  206. package/cdh/generators/julia/MANIFEST.toml +14 -0
  207. package/cdh/generators/julia/template.jl.tmpl +27 -0
  208. package/cdh/generators/kotlin/MANIFEST.toml +18 -0
  209. package/cdh/generators/kotlin/template.kt.tmpl +12 -0
  210. package/cdh/generators/lua/MANIFEST.toml +14 -0
  211. package/cdh/generators/lua/template.lua.tmpl +27 -0
  212. package/cdh/generators/matlab/MANIFEST.toml +14 -0
  213. package/cdh/generators/matlab/template.m.tmpl +26 -0
  214. package/cdh/generators/nim/MANIFEST.toml +14 -0
  215. package/cdh/generators/nim/template.nim.tmpl +12 -0
  216. package/cdh/generators/nix/MANIFEST.toml +14 -0
  217. package/cdh/generators/nix/template.nix.tmpl +8 -0
  218. package/cdh/generators/objective-c/MANIFEST.toml +14 -0
  219. package/cdh/generators/objective-c/template.m.tmpl +31 -0
  220. package/cdh/generators/ocaml/MANIFEST.toml +14 -0
  221. package/cdh/generators/ocaml/template.ml.tmpl +13 -0
  222. package/cdh/generators/pascal/MANIFEST.toml +14 -0
  223. package/cdh/generators/pascal/template.pas.tmpl +5 -0
  224. package/cdh/generators/perl/MANIFEST.toml +14 -0
  225. package/cdh/generators/perl/template.pm.tmpl +27 -0
  226. package/cdh/generators/php/MANIFEST.toml +17 -0
  227. package/cdh/generators/php/template.php.tmpl +31 -0
  228. package/cdh/generators/powershell/MANIFEST.toml +14 -0
  229. package/cdh/generators/powershell/template.ps1.tmpl +20 -0
  230. package/cdh/generators/protobuf/MANIFEST.toml +18 -0
  231. package/cdh/generators/protobuf/template.proto.tmpl +13 -0
  232. package/cdh/generators/python/MANIFEST.toml +18 -0
  233. package/cdh/generators/python/template.py.tmpl +12 -0
  234. package/cdh/generators/r/MANIFEST.toml +14 -0
  235. package/cdh/generators/r/template.R.tmpl +29 -0
  236. package/cdh/generators/racket/MANIFEST.toml +14 -0
  237. package/cdh/generators/racket/template.rkt.tmpl +15 -0
  238. package/cdh/generators/registry.py +211 -0
  239. package/cdh/generators/ruby/MANIFEST.toml +17 -0
  240. package/cdh/generators/ruby/template.rb.tmpl +27 -0
  241. package/cdh/generators/rust/MANIFEST.toml +18 -0
  242. package/cdh/generators/rust/template.rs.tmpl +16 -0
  243. package/cdh/generators/scala/MANIFEST.toml +20 -0
  244. package/cdh/generators/scala/template.scala.tmpl +13 -0
  245. package/cdh/generators/scheme/MANIFEST.toml +14 -0
  246. package/cdh/generators/scheme/template.scm.tmpl +16 -0
  247. package/cdh/generators/solidity/MANIFEST.toml +14 -0
  248. package/cdh/generators/solidity/template.sol.tmpl +24 -0
  249. package/cdh/generators/swift/MANIFEST.toml +18 -0
  250. package/cdh/generators/swift/template.swift.tmpl +10 -0
  251. package/cdh/generators/typescript/MANIFEST.toml +18 -0
  252. package/cdh/generators/typescript/template.ts.tmpl +7 -0
  253. package/cdh/generators/version.py +214 -0
  254. package/cdh/generators/zig/MANIFEST.toml +14 -0
  255. package/cdh/generators/zig/template.zig.tmpl +20 -0
  256. package/cdh/logging.py +314 -0
  257. package/cdh/optimizer/__init__.py +7 -0
  258. package/cdh/optimizer/loop.py +201 -0
  259. package/cdh/optimizer/mutation.py +85 -0
  260. package/cdh/optimizer/reward.py +51 -0
  261. package/cdh/optimizer/tracker.py +118 -0
  262. package/cdh/project_loader.py +1022 -0
  263. package/cdh/rules/patterns.yaml +132 -0
  264. package/cdh/rules/spectral.yaml +301 -0
  265. package/cdh/scaffold.py +1436 -0
  266. package/cdh/session_store.py +221 -0
  267. package/cdh/state_schema.py +127 -0
  268. package/cdh/tools/__init__.py +57 -0
  269. package/cdh/tools/cls_search.py +406 -0
  270. package/cdh/tools/contract_diff.py +644 -0
  271. package/cdh/tools/deploy_stack.py +590 -0
  272. package/cdh/tools/generate_shared.py +300 -0
  273. package/cdh/tools/iac_gen.py +224 -0
  274. package/cdh/tools/otel_export.py +125 -0
  275. package/cdh/tools/pattern_detect.py +451 -0
  276. package/cdh/tools/retrofit_labels.py +505 -0
  277. package/cdh/trace/__init__.py +101 -0
  278. package/cdh/trace/__pycache__/__init__.cpython-314.pyc +0 -0
  279. package/cdh/trace/dashboard/__init__.py +61 -0
  280. package/cdh/trace/dashboard/api.py +1032 -0
  281. package/cdh/trace/dashboard/app.html +1321 -0
  282. package/cdh/trace/dashboard/server.py +310 -0
  283. package/cdh/trace/otel_exporter.py +462 -0
  284. package/cdh/trace/otel_tracer.py +281 -0
  285. package/cdh/tui.py +1084 -0
  286. package/cdh/validators/__init__.py +16 -0
  287. package/cdh/validators/__pycache__/__init__.cpython-314.pyc +0 -0
  288. package/cdh/validators/__pycache__/bdd.cpython-314.pyc +0 -0
  289. package/cdh/validators/__pycache__/dag.cpython-314.pyc +0 -0
  290. package/cdh/validators/__pycache__/ears.cpython-314.pyc +0 -0
  291. package/cdh/validators/__pycache__/fr_namespace.cpython-314.pyc +0 -0
  292. package/cdh/validators/bdd.py +144 -0
  293. package/cdh/validators/dag.py +179 -0
  294. package/cdh/validators/ears.py +452 -0
  295. package/cdh/validators/fr_namespace.py +143 -0
  296. package/cdh/validators/spectral.py +475 -0
  297. package/cdh/verification/__init__.py +3 -0
  298. package/cdh/verification/aggregation.py +53 -0
  299. package/cdh/verification/gates/__init__.py +5 -0
  300. package/cdh/verification/gates/base.py +18 -0
  301. package/cdh/verification/gates/lint_gate.py +37 -0
  302. package/cdh/verification/gates/test_gate.py +41 -0
  303. package/cdh/verification/loop.py +93 -0
  304. package/cdh/verification/policy.py +24 -0
  305. package/onecode/__init__.py +1 -0
  306. package/onecode/__main__.py +4 -0
  307. package/onecode/__pycache__/__init__.cpython-314.pyc +0 -0
  308. package/onecode/__pycache__/cli.cpython-314.pyc +0 -0
  309. package/onecode/__pycache__/commands.cpython-314.pyc +0 -0
  310. package/onecode/__pycache__/config.cpython-314.pyc +0 -0
  311. package/onecode/__pycache__/migrate.cpython-314.pyc +0 -0
  312. package/onecode/agent/__init__.py +0 -0
  313. package/onecode/agent/__pycache__/__init__.cpython-314.pyc +0 -0
  314. package/onecode/agent/__pycache__/cdh_loader.cpython-314.pyc +0 -0
  315. package/onecode/agent/__pycache__/checkpoint.cpython-314.pyc +0 -0
  316. package/onecode/agent/__pycache__/context.cpython-314.pyc +0 -0
  317. package/onecode/agent/__pycache__/engine.cpython-314.pyc +0 -0
  318. package/onecode/agent/__pycache__/hooks.cpython-314.pyc +0 -0
  319. package/onecode/agent/__pycache__/onecode_agent_acp.cpython-314.pyc +0 -0
  320. package/onecode/agent/__pycache__/permissions.cpython-314.pyc +0 -0
  321. package/onecode/agent/__pycache__/permissions_store.cpython-314.pyc +0 -0
  322. package/onecode/agent/__pycache__/project_doc.cpython-314.pyc +0 -0
  323. package/onecode/agent/__pycache__/session.cpython-314.pyc +0 -0
  324. package/onecode/agent/__pycache__/turn_record.cpython-314.pyc +0 -0
  325. package/onecode/agent/agents/__init__.py +29 -0
  326. package/onecode/agent/agents/__pycache__/__init__.cpython-314.pyc +0 -0
  327. package/onecode/agent/agents/__pycache__/types.cpython-314.pyc +0 -0
  328. package/onecode/agent/agents/prompts/build-agent.md +50 -0
  329. package/onecode/agent/agents/prompts/compaction-instructions.md +12 -0
  330. package/onecode/agent/agents/prompts/explore-agent.md +42 -0
  331. package/onecode/agent/agents/prompts/plan-agent.md +44 -0
  332. package/onecode/agent/agents/prompts/plan-gate-hard.md +4 -0
  333. package/onecode/agent/agents/prompts/plan-gate-soft.md +3 -0
  334. package/onecode/agent/agents/prompts/solo-agent.md +57 -0
  335. package/onecode/agent/agents/prompts/subagent-constraints.md +10 -0
  336. package/onecode/agent/agents/prompts/summary-instructions.md +7 -0
  337. package/onecode/agent/agents/prompts/title-instructions.md +3 -0
  338. package/onecode/agent/agents/prompts/tool-descriptions.md +129 -0
  339. package/onecode/agent/agents/types.py +786 -0
  340. package/onecode/agent/attachments.py +112 -0
  341. package/onecode/agent/cdh_loader.py +3 -0
  342. package/onecode/agent/checkpoint.py +285 -0
  343. package/onecode/agent/context.py +465 -0
  344. package/onecode/agent/engine.py +3547 -0
  345. package/onecode/agent/event_bridge.py +75 -0
  346. package/onecode/agent/hooks.py +86 -0
  347. package/onecode/agent/onecode_agent_acp.py +2993 -0
  348. package/onecode/agent/permissions.py +150 -0
  349. package/onecode/agent/permissions_store.py +73 -0
  350. package/onecode/agent/project_doc.py +19 -0
  351. package/onecode/agent/question_detect.py +230 -0
  352. package/onecode/agent/session.py +3 -0
  353. package/onecode/agent/snapshot.py +144 -0
  354. package/onecode/agent/tools/__init__.py +17 -0
  355. package/onecode/agent/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  356. package/onecode/agent/tools/__pycache__/agent_tools.cpython-314.pyc +0 -0
  357. package/onecode/agent/tools/__pycache__/apply_patch_tool.cpython-314.pyc +0 -0
  358. package/onecode/agent/tools/__pycache__/bash_tool.cpython-314.pyc +0 -0
  359. package/onecode/agent/tools/__pycache__/communication_tools.cpython-314.pyc +0 -0
  360. package/onecode/agent/tools/__pycache__/config_tool.cpython-314.pyc +0 -0
  361. package/onecode/agent/tools/__pycache__/cron_tools.cpython-314.pyc +0 -0
  362. package/onecode/agent/tools/__pycache__/errors.cpython-314.pyc +0 -0
  363. package/onecode/agent/tools/__pycache__/file_ops.cpython-314.pyc +0 -0
  364. package/onecode/agent/tools/__pycache__/file_tools.cpython-314.pyc +0 -0
  365. package/onecode/agent/tools/__pycache__/git_tools.cpython-314.pyc +0 -0
  366. package/onecode/agent/tools/__pycache__/lsp_tools.cpython-314.pyc +0 -0
  367. package/onecode/agent/tools/__pycache__/mcp_tools.cpython-314.pyc +0 -0
  368. package/onecode/agent/tools/__pycache__/permission_handler.cpython-314.pyc +0 -0
  369. package/onecode/agent/tools/__pycache__/permissions.cpython-314.pyc +0 -0
  370. package/onecode/agent/tools/__pycache__/protocol.cpython-314.pyc +0 -0
  371. package/onecode/agent/tools/__pycache__/registry.cpython-314.pyc +0 -0
  372. package/onecode/agent/tools/__pycache__/sandbox.cpython-314.pyc +0 -0
  373. package/onecode/agent/tools/__pycache__/schema_validation.cpython-314.pyc +0 -0
  374. package/onecode/agent/tools/__pycache__/skill_tools.cpython-314.pyc +0 -0
  375. package/onecode/agent/tools/__pycache__/todo_tools.cpython-314.pyc +0 -0
  376. package/onecode/agent/tools/__pycache__/web_tools.cpython-314.pyc +0 -0
  377. package/onecode/agent/tools/agent_tools.py +128 -0
  378. package/onecode/agent/tools/apply_patch_tool.py +138 -0
  379. package/onecode/agent/tools/bash_tool.py +121 -0
  380. package/onecode/agent/tools/communication_tools.py +154 -0
  381. package/onecode/agent/tools/config_tool.py +130 -0
  382. package/onecode/agent/tools/cron_tools.py +178 -0
  383. package/onecode/agent/tools/errors.py +17 -0
  384. package/onecode/agent/tools/file_ops.py +221 -0
  385. package/onecode/agent/tools/file_tools.py +225 -0
  386. package/onecode/agent/tools/git_tools.py +88 -0
  387. package/onecode/agent/tools/lsp_tools.py +404 -0
  388. package/onecode/agent/tools/mcp_tools.py +211 -0
  389. package/onecode/agent/tools/permission_handler.py +46 -0
  390. package/onecode/agent/tools/permissions.py +77 -0
  391. package/onecode/agent/tools/protocol.py +20 -0
  392. package/onecode/agent/tools/registry.py +210 -0
  393. package/onecode/agent/tools/sandbox.py +460 -0
  394. package/onecode/agent/tools/schema_validation.py +100 -0
  395. package/onecode/agent/tools/skill_tools.py +52 -0
  396. package/onecode/agent/tools/todo_tools.py +208 -0
  397. package/onecode/agent/tools/web_tools.py +530 -0
  398. package/onecode/agent/turn_record.py +28 -0
  399. package/onecode/builtin_skills/agent-browser/SKILL.md +212 -0
  400. package/onecode/builtin_skills/agent-browser/skill.yaml +8 -0
  401. package/onecode/builtin_skills/cloudbase/SKILL.md +162 -0
  402. package/onecode/builtin_skills/cloudbase/skill.yaml +7 -0
  403. package/onecode/builtin_skills/git/SKILL.md +64 -0
  404. package/onecode/builtin_skills/git/skill.yaml +7 -0
  405. package/onecode/builtin_skills/shell/SKILL.md +58 -0
  406. package/onecode/builtin_skills/shell/skill.yaml +8 -0
  407. package/onecode/builtin_skills/skill-creator/SKILL.md +106 -0
  408. package/onecode/builtin_skills/skill-creator/skill.yaml +8 -0
  409. package/onecode/cli.py +1325 -0
  410. package/onecode/codebase/__init__.py +69 -0
  411. package/onecode/codebase/__pycache__/__init__.cpython-314.pyc +0 -0
  412. package/onecode/codebase/__pycache__/chunker.cpython-314.pyc +0 -0
  413. package/onecode/codebase/__pycache__/indexer.cpython-314.pyc +0 -0
  414. package/onecode/codebase/__pycache__/retriever.cpython-314.pyc +0 -0
  415. package/onecode/codebase/__pycache__/storage.cpython-314.pyc +0 -0
  416. package/onecode/codebase/__pycache__/tools.cpython-314.pyc +0 -0
  417. package/onecode/codebase/chunker.py +125 -0
  418. package/onecode/codebase/indexer.py +154 -0
  419. package/onecode/codebase/retriever.py +240 -0
  420. package/onecode/codebase/storage.py +153 -0
  421. package/onecode/codebase/tools.py +59 -0
  422. package/onecode/commands.py +673 -0
  423. package/onecode/config.py +539 -0
  424. package/onecode/config_screen.py +486 -0
  425. package/onecode/cron/__init__.py +3 -0
  426. package/onecode/lsp/__init__.py +3 -0
  427. package/onecode/mcp/__init__.py +11 -0
  428. package/onecode/mcp/__pycache__/__init__.cpython-314.pyc +0 -0
  429. package/onecode/mcp/__pycache__/client.cpython-314.pyc +0 -0
  430. package/onecode/mcp/__pycache__/cloudbase.cpython-314.pyc +0 -0
  431. package/onecode/mcp/__pycache__/config.cpython-314.pyc +0 -0
  432. package/onecode/mcp/__pycache__/manager.cpython-314.pyc +0 -0
  433. package/onecode/mcp/__pycache__/oauth.cpython-314.pyc +0 -0
  434. package/onecode/mcp/client.py +305 -0
  435. package/onecode/mcp/cloudbase.py +188 -0
  436. package/onecode/mcp/config.py +363 -0
  437. package/onecode/mcp/manager.py +603 -0
  438. package/onecode/mcp/oauth.py +199 -0
  439. package/onecode/memory/__init__.py +106 -0
  440. package/onecode/memory/__pycache__/__init__.cpython-314.pyc +0 -0
  441. package/onecode/memory/__pycache__/backend.cpython-314.pyc +0 -0
  442. package/onecode/memory/__pycache__/pyramid.cpython-314.pyc +0 -0
  443. package/onecode/memory/__pycache__/recall.cpython-314.pyc +0 -0
  444. package/onecode/memory/backend.py +179 -0
  445. package/onecode/memory/pyramid.py +145 -0
  446. package/onecode/memory/recall.py +322 -0
  447. package/onecode/migrate.py +122 -0
  448. package/onecode/models/__init__.py +4 -0
  449. package/onecode/models/__pycache__/__init__.cpython-314.pyc +0 -0
  450. package/onecode/models/__pycache__/errors.cpython-314.pyc +0 -0
  451. package/onecode/models/__pycache__/messages.cpython-314.pyc +0 -0
  452. package/onecode/models/__pycache__/ollama_manager.cpython-314.pyc +0 -0
  453. package/onecode/models/__pycache__/provider.cpython-314.pyc +0 -0
  454. package/onecode/models/__pycache__/registry.cpython-314.pyc +0 -0
  455. package/onecode/models/errors.py +104 -0
  456. package/onecode/models/messages.py +750 -0
  457. package/onecode/models/ollama_manager.py +167 -0
  458. package/onecode/models/provider.py +730 -0
  459. package/onecode/models/providers/__init__.py +17 -0
  460. package/onecode/models/providers/__pycache__/__init__.cpython-314.pyc +0 -0
  461. package/onecode/models/providers/__pycache__/anthropic_provider.cpython-314.pyc +0 -0
  462. package/onecode/models/providers/__pycache__/deepseek_provider.cpython-314.pyc +0 -0
  463. package/onecode/models/providers/__pycache__/glm_provider.cpython-314.pyc +0 -0
  464. package/onecode/models/providers/__pycache__/minimax_provider.cpython-314.pyc +0 -0
  465. package/onecode/models/providers/__pycache__/minimaxi_provider.cpython-314.pyc +0 -0
  466. package/onecode/models/providers/__pycache__/ollama_provider.cpython-314.pyc +0 -0
  467. package/onecode/models/providers/__pycache__/openai_provider.cpython-314.pyc +0 -0
  468. package/onecode/models/providers/anthropic_provider.py +286 -0
  469. package/onecode/models/providers/deepseek_provider.py +221 -0
  470. package/onecode/models/providers/glm_provider.py +219 -0
  471. package/onecode/models/providers/minimax_provider.py +182 -0
  472. package/onecode/models/providers/minimaxi_provider.py +426 -0
  473. package/onecode/models/providers/ollama_provider.py +183 -0
  474. package/onecode/models/providers/openai_provider.py +234 -0
  475. package/onecode/models/registry.py +349 -0
  476. package/onecode/server/__init__.py +3 -0
  477. package/onecode/server/app.py +251 -0
  478. package/onecode/skills/__init__.py +11 -0
  479. package/onecode/skills/__pycache__/__init__.cpython-314.pyc +0 -0
  480. package/onecode/skills/__pycache__/argument_substitution.cpython-314.pyc +0 -0
  481. package/onecode/skills/__pycache__/bootstrap.cpython-314.pyc +0 -0
  482. package/onecode/skills/__pycache__/create.cpython-314.pyc +0 -0
  483. package/onecode/skills/__pycache__/frontmatter.cpython-314.pyc +0 -0
  484. package/onecode/skills/__pycache__/loader.cpython-314.pyc +0 -0
  485. package/onecode/skills/__pycache__/model.cpython-314.pyc +0 -0
  486. package/onecode/skills/argument_substitution.py +38 -0
  487. package/onecode/skills/bootstrap.py +37 -0
  488. package/onecode/skills/create.py +56 -0
  489. package/onecode/skills/frontmatter.py +33 -0
  490. package/onecode/skills/loader.py +215 -0
  491. package/onecode/skills/manager.py +75 -0
  492. package/onecode/skills/model.py +43 -0
  493. package/onecode/storage/__init__.py +0 -0
  494. package/onecode/storage/activity.py +63 -0
  495. package/onecode/storage/project.py +54 -0
  496. package/onecode/storage/session.py +112 -0
  497. package/onecode/tasks/__init__.py +26 -0
  498. package/onecode/tasks/manager.py +232 -0
  499. package/onecode/tasks/models.py +240 -0
  500. package/onecode/trace/__init__.py +0 -0
  501. package/onecode/trace/tracer.py +173 -0
  502. package/onecode/utils/__init__.py +0 -0
  503. package/onecode/utils/helpers.py +20 -0
  504. package/onecode/verification/__init__.py +5 -0
  505. package/onecode/verification/__pycache__/__init__.cpython-314.pyc +0 -0
  506. package/onecode/verification/__pycache__/aggregation.cpython-314.pyc +0 -0
  507. package/onecode/verification/__pycache__/loop.cpython-314.pyc +0 -0
  508. package/onecode/verification/__pycache__/policy.cpython-314.pyc +0 -0
  509. package/onecode/verification/aggregation.py +53 -0
  510. package/onecode/verification/gates/__init__.py +6 -0
  511. package/onecode/verification/gates/__pycache__/__init__.cpython-314.pyc +0 -0
  512. package/onecode/verification/gates/__pycache__/base.cpython-314.pyc +0 -0
  513. package/onecode/verification/gates/__pycache__/lint_gate.cpython-314.pyc +0 -0
  514. package/onecode/verification/gates/__pycache__/test_gate.cpython-314.pyc +0 -0
  515. package/onecode/verification/gates/__pycache__/type_gate.cpython-314.pyc +0 -0
  516. package/onecode/verification/gates/base.py +20 -0
  517. package/onecode/verification/gates/lint_gate.py +45 -0
  518. package/onecode/verification/gates/test_gate.py +62 -0
  519. package/onecode/verification/gates/type_gate.py +46 -0
  520. package/onecode/verification/loop.py +95 -0
  521. package/onecode/verification/policy.py +29 -0
  522. package/package.json +2 -2
  523. package/pyproject.toml +84 -0
  524. package/tui/__init__.py +46 -0
  525. package/tui/__main__.py +4 -0
  526. package/tui/__pycache__/__init__.cpython-314.pyc +0 -0
  527. package/tui/__pycache__/_loop.cpython-314.pyc +0 -0
  528. package/tui/__pycache__/_path_fuzzy_search.cpython-314.pyc +0 -0
  529. package/tui/__pycache__/_path_match.cpython-314.pyc +0 -0
  530. package/tui/__pycache__/agent.cpython-314.pyc +0 -0
  531. package/tui/__pycache__/agent_schema.cpython-314.pyc +0 -0
  532. package/tui/__pycache__/agents.cpython-314.pyc +0 -0
  533. package/tui/__pycache__/answer.cpython-314.pyc +0 -0
  534. package/tui/__pycache__/app.cpython-314.pyc +0 -0
  535. package/tui/__pycache__/atomic.cpython-314.pyc +0 -0
  536. package/tui/__pycache__/complete.cpython-314.pyc +0 -0
  537. package/tui/__pycache__/constants.cpython-314.pyc +0 -0
  538. package/tui/__pycache__/conversation_markdown.cpython-314.pyc +0 -0
  539. package/tui/__pycache__/db.cpython-314.pyc +0 -0
  540. package/tui/__pycache__/dec.cpython-314.pyc +0 -0
  541. package/tui/__pycache__/directory.cpython-314.pyc +0 -0
  542. package/tui/__pycache__/directory_watcher.cpython-314.pyc +0 -0
  543. package/tui/__pycache__/format_path.cpython-314.pyc +0 -0
  544. package/tui/__pycache__/fuzzy.cpython-314.pyc +0 -0
  545. package/tui/__pycache__/fuzzy_index.cpython-314.pyc +0 -0
  546. package/tui/__pycache__/history.cpython-314.pyc +0 -0
  547. package/tui/__pycache__/jsonrpc.cpython-314.pyc +0 -0
  548. package/tui/__pycache__/menus.cpython-314.pyc +0 -0
  549. package/tui/__pycache__/message_log.cpython-314.pyc +0 -0
  550. package/tui/__pycache__/messages.cpython-314.pyc +0 -0
  551. package/tui/__pycache__/path_complete.cpython-314.pyc +0 -0
  552. package/tui/__pycache__/path_filter.cpython-314.pyc +0 -0
  553. package/tui/__pycache__/paths.cpython-314.pyc +0 -0
  554. package/tui/__pycache__/pill.cpython-314.pyc +0 -0
  555. package/tui/__pycache__/platform_commands.cpython-314.pyc +0 -0
  556. package/tui/__pycache__/protocol.cpython-314.pyc +0 -0
  557. package/tui/__pycache__/session_tracker.cpython-314.pyc +0 -0
  558. package/tui/__pycache__/settings.cpython-314.pyc +0 -0
  559. package/tui/__pycache__/settings_schema.cpython-314.pyc +0 -0
  560. package/tui/__pycache__/shell.cpython-314.pyc +0 -0
  561. package/tui/__pycache__/shell_read.cpython-314.pyc +0 -0
  562. package/tui/__pycache__/slash_command.cpython-314.pyc +0 -0
  563. package/tui/__pycache__/version.cpython-314.pyc +0 -0
  564. package/tui/_loop.py +86 -0
  565. package/tui/_path_fuzzy_search.py +48 -0
  566. package/tui/_path_match.py +141 -0
  567. package/tui/about.py +95 -0
  568. package/tui/acp/__pycache__/agent.cpython-314.pyc +0 -0
  569. package/tui/acp/__pycache__/api.cpython-314.pyc +0 -0
  570. package/tui/acp/__pycache__/encode_tool_call_id.cpython-314.pyc +0 -0
  571. package/tui/acp/__pycache__/event_tap.cpython-314.pyc +0 -0
  572. package/tui/acp/__pycache__/messages.cpython-314.pyc +0 -0
  573. package/tui/acp/__pycache__/prompt.cpython-314.pyc +0 -0
  574. package/tui/acp/__pycache__/protocol.cpython-314.pyc +0 -0
  575. package/tui/acp/agent.py +1212 -0
  576. package/tui/acp/api.py +79 -0
  577. package/tui/acp/encode_tool_call_id.py +12 -0
  578. package/tui/acp/event_tap.py +107 -0
  579. package/tui/acp/messages.py +222 -0
  580. package/tui/acp/prompt.py +53 -0
  581. package/tui/acp/protocol.py +551 -0
  582. package/tui/agent.py +70 -0
  583. package/tui/agent_schema.py +76 -0
  584. package/tui/agents.py +46 -0
  585. package/tui/ansi/__init__.py +1 -0
  586. package/tui/ansi/__pycache__/__init__.cpython-314.pyc +0 -0
  587. package/tui/ansi/__pycache__/_ansi.cpython-314.pyc +0 -0
  588. package/tui/ansi/__pycache__/_ansi_colors.cpython-314.pyc +0 -0
  589. package/tui/ansi/__pycache__/_control_codes.cpython-314.pyc +0 -0
  590. package/tui/ansi/__pycache__/_keys.cpython-314.pyc +0 -0
  591. package/tui/ansi/__pycache__/_sgr_styles.cpython-314.pyc +0 -0
  592. package/tui/ansi/__pycache__/_stream_parser.cpython-314.pyc +0 -0
  593. package/tui/ansi/_ansi.py +1689 -0
  594. package/tui/ansi/_ansi_colors.py +264 -0
  595. package/tui/ansi/_control_codes.py +37 -0
  596. package/tui/ansi/_keys.py +251 -0
  597. package/tui/ansi/_sgr_styles.py +64 -0
  598. package/tui/ansi/_stream_parser.py +418 -0
  599. package/tui/answer.py +12 -0
  600. package/tui/app.py +1195 -0
  601. package/tui/atomic.py +37 -0
  602. package/tui/cli.py +208 -0
  603. package/tui/code_analyze.py +27 -0
  604. package/tui/complete.py +38 -0
  605. package/tui/constants.py +61 -0
  606. package/tui/conversation_markdown.py +30 -0
  607. package/tui/danger.py +372 -0
  608. package/tui/data/agents/ampcode.com.toml +52 -0
  609. package/tui/data/agents/augmentcode.com.toml +41 -0
  610. package/tui/data/agents/cdh.cloud-dev-harness.toml +23 -0
  611. package/tui/data/agents/claude.com.toml +41 -0
  612. package/tui/data/agents/copilot.github.com.toml +29 -0
  613. package/tui/data/agents/crowai.dev.toml +36 -0
  614. package/tui/data/agents/cursor.com.toml +38 -0
  615. package/tui/data/agents/deepagents.langchain.com +34 -0
  616. package/tui/data/agents/docker.com.toml +60 -0
  617. package/tui/data/agents/geminicli.com.toml +28 -0
  618. package/tui/data/agents/goose.ai.toml +52 -0
  619. package/tui/data/agents/inference.huggingface.co.toml +41 -0
  620. package/tui/data/agents/kimi.com.toml +35 -0
  621. package/tui/data/agents/kiro.dev.toml +43 -0
  622. package/tui/data/agents/onecode.dev.toml +22 -0
  623. package/tui/data/agents/openai.com.toml +53 -0
  624. package/tui/data/agents/openclaw.ai.toml +37 -0
  625. package/tui/data/agents/opencode.ai.toml +39 -0
  626. package/tui/data/agents/openhands.dev.toml +46 -0
  627. package/tui/data/agents/stakpak.dev.toml +62 -0
  628. package/tui/data/agents/vibe.mistral.ai.toml +31 -0
  629. package/tui/data/agents/vtcode.dev.toml +63 -0
  630. package/tui/data/images/frog.png +0 -0
  631. package/tui/data/sounds/question.wav +0 -0
  632. package/tui/data/sounds/turn-over.wav +0 -0
  633. package/tui/db.py +213 -0
  634. package/tui/dec.py +332 -0
  635. package/tui/diff_utils.py +131 -0
  636. package/tui/directory.py +234 -0
  637. package/tui/directory_suggester.py +93 -0
  638. package/tui/directory_watcher.py +231 -0
  639. package/tui/format_path.py +25 -0
  640. package/tui/fuzzy.py +140 -0
  641. package/tui/fuzzy_index.py +275 -0
  642. package/tui/gist.py +33 -0
  643. package/tui/history.py +138 -0
  644. package/tui/jsonrpc.py +599 -0
  645. package/tui/menus.py +14 -0
  646. package/tui/message_log.py +69 -0
  647. package/tui/messages.py +144 -0
  648. package/tui/option_content.py +51 -0
  649. package/tui/os.py +0 -0
  650. package/tui/path_complete.py +217 -0
  651. package/tui/path_filter.py +124 -0
  652. package/tui/paths.py +87 -0
  653. package/tui/pill.py +23 -0
  654. package/tui/platform_commands.py +52 -0
  655. package/tui/prompt/__pycache__/extract.cpython-314.pyc +0 -0
  656. package/tui/prompt/__pycache__/resource.cpython-314.pyc +0 -0
  657. package/tui/prompt/extract.py +19 -0
  658. package/tui/prompt/resource.py +68 -0
  659. package/tui/protocol.py +28 -0
  660. package/tui/screens/__init__.py +0 -0
  661. package/tui/screens/__pycache__/__init__.cpython-314.pyc +0 -0
  662. package/tui/screens/__pycache__/diff_screen.cpython-314.pyc +0 -0
  663. package/tui/screens/__pycache__/main.cpython-314.pyc +0 -0
  664. package/tui/screens/__pycache__/sessions.cpython-314.pyc +0 -0
  665. package/tui/screens/action_modal.py +94 -0
  666. package/tui/screens/agent_modal.py +175 -0
  667. package/tui/screens/command_edit_modal.py +74 -0
  668. package/tui/screens/diff_explorer_screen.py +419 -0
  669. package/tui/screens/diff_screen.py +84 -0
  670. package/tui/screens/ide_screen.py +461 -0
  671. package/tui/screens/main.py +397 -0
  672. package/tui/screens/main.tcss +662 -0
  673. package/tui/screens/permissions.py +404 -0
  674. package/tui/screens/permissions.tcss +72 -0
  675. package/tui/screens/projects.tcss +84 -0
  676. package/tui/screens/projects_app.py +341 -0
  677. package/tui/screens/projects_screen.py +277 -0
  678. package/tui/screens/session_resume_modal.py +172 -0
  679. package/tui/screens/session_resume_modal.tcss +35 -0
  680. package/tui/screens/sessions.py +171 -0
  681. package/tui/screens/sessions.tcss +119 -0
  682. package/tui/screens/settings.py +293 -0
  683. package/tui/screens/settings.tcss +113 -0
  684. package/tui/screens/store.py +502 -0
  685. package/tui/screens/store.tcss +274 -0
  686. package/tui/screens/tool_content_screen.py +59 -0
  687. package/tui/screens/trace.py +317 -0
  688. package/tui/session_tracker.py +123 -0
  689. package/tui/settings.py +353 -0
  690. package/tui/settings_schema.py +467 -0
  691. package/tui/shell.py +304 -0
  692. package/tui/shell_read.py +42 -0
  693. package/tui/slash_command.py +34 -0
  694. package/tui/tui.tcss +246 -0
  695. package/tui/twitter.py +38 -0
  696. package/tui/version.py +80 -0
  697. package/tui/visuals/__init__.py +0 -0
  698. package/tui/visuals/__pycache__/__init__.cpython-314.pyc +0 -0
  699. package/tui/visuals/__pycache__/columns.cpython-314.pyc +0 -0
  700. package/tui/visuals/columns.py +272 -0
  701. package/tui/widgets/__init__.py +0 -0
  702. package/tui/widgets/__pycache__/__init__.cpython-314.pyc +0 -0
  703. package/tui/widgets/__pycache__/agent_response.cpython-314.pyc +0 -0
  704. package/tui/widgets/__pycache__/agent_thought.cpython-314.pyc +0 -0
  705. package/tui/widgets/__pycache__/aidlc.cpython-314.pyc +0 -0
  706. package/tui/widgets/__pycache__/ask_user.cpython-314.pyc +0 -0
  707. package/tui/widgets/__pycache__/condensed_path.cpython-314.pyc +0 -0
  708. package/tui/widgets/__pycache__/context_stats.cpython-314.pyc +0 -0
  709. package/tui/widgets/__pycache__/conversation.cpython-314.pyc +0 -0
  710. package/tui/widgets/__pycache__/diff_view.cpython-314.pyc +0 -0
  711. package/tui/widgets/__pycache__/flash.cpython-314.pyc +0 -0
  712. package/tui/widgets/__pycache__/future_text.cpython-314.pyc +0 -0
  713. package/tui/widgets/__pycache__/grid_select.cpython-314.pyc +0 -0
  714. package/tui/widgets/__pycache__/highlighted_textarea.cpython-314.pyc +0 -0
  715. package/tui/widgets/__pycache__/load_more.cpython-314.pyc +0 -0
  716. package/tui/widgets/__pycache__/menu.cpython-314.pyc +0 -0
  717. package/tui/widgets/__pycache__/modified_files.cpython-314.pyc +0 -0
  718. package/tui/widgets/__pycache__/non_selectable_label.cpython-314.pyc +0 -0
  719. package/tui/widgets/__pycache__/note.cpython-314.pyc +0 -0
  720. package/tui/widgets/__pycache__/path_search.cpython-314.pyc +0 -0
  721. package/tui/widgets/__pycache__/pending_prompts.cpython-314.pyc +0 -0
  722. package/tui/widgets/__pycache__/plan.cpython-314.pyc +0 -0
  723. package/tui/widgets/__pycache__/project_directory_tree.cpython-314.pyc +0 -0
  724. package/tui/widgets/__pycache__/prompt.cpython-314.pyc +0 -0
  725. package/tui/widgets/__pycache__/question.cpython-314.pyc +0 -0
  726. package/tui/widgets/__pycache__/session_grid_select.cpython-314.pyc +0 -0
  727. package/tui/widgets/__pycache__/session_summary.cpython-314.pyc +0 -0
  728. package/tui/widgets/__pycache__/session_tabs.cpython-314.pyc +0 -0
  729. package/tui/widgets/__pycache__/shell_terminal.cpython-314.pyc +0 -0
  730. package/tui/widgets/__pycache__/side_bar.cpython-314.pyc +0 -0
  731. package/tui/widgets/__pycache__/slash_complete.cpython-314.pyc +0 -0
  732. package/tui/widgets/__pycache__/strike_text.cpython-314.pyc +0 -0
  733. package/tui/widgets/__pycache__/terminal.cpython-314.pyc +0 -0
  734. package/tui/widgets/__pycache__/throbber.cpython-314.pyc +0 -0
  735. package/tui/widgets/__pycache__/tool_call.cpython-314.pyc +0 -0
  736. package/tui/widgets/__pycache__/user_input.cpython-314.pyc +0 -0
  737. package/tui/widgets/acp_content.py +70 -0
  738. package/tui/widgets/agent_response.py +76 -0
  739. package/tui/widgets/agent_thought.py +167 -0
  740. package/tui/widgets/aidlc.py +334 -0
  741. package/tui/widgets/ask_user.py +604 -0
  742. package/tui/widgets/command_pane.py +223 -0
  743. package/tui/widgets/condensed_path.py +115 -0
  744. package/tui/widgets/context_stats.py +66 -0
  745. package/tui/widgets/conversation.py +3235 -0
  746. package/tui/widgets/danger_warning.py +65 -0
  747. package/tui/widgets/diff_view.py +69 -0
  748. package/tui/widgets/directory_input.py +8 -0
  749. package/tui/widgets/edit_field.py +206 -0
  750. package/tui/widgets/flash.py +81 -0
  751. package/tui/widgets/future_text.py +126 -0
  752. package/tui/widgets/grid_select.py +234 -0
  753. package/tui/widgets/highlighted_textarea.py +183 -0
  754. package/tui/widgets/load_more.py +24 -0
  755. package/tui/widgets/mandelbrot.py +294 -0
  756. package/tui/widgets/markdown_note.py +13 -0
  757. package/tui/widgets/menu.py +147 -0
  758. package/tui/widgets/model_status.py +230 -0
  759. package/tui/widgets/modified_files.py +315 -0
  760. package/tui/widgets/non_selectable_label.py +5 -0
  761. package/tui/widgets/note.py +18 -0
  762. package/tui/widgets/path_search.py +492 -0
  763. package/tui/widgets/pending_prompts.py +36 -0
  764. package/tui/widgets/plan.py +285 -0
  765. package/tui/widgets/project_directory_tree.py +102 -0
  766. package/tui/widgets/project_grid_select.py +68 -0
  767. package/tui/widgets/project_summary.py +33 -0
  768. package/tui/widgets/prompt.py +935 -0
  769. package/tui/widgets/question.py +360 -0
  770. package/tui/widgets/session_grid_select.py +230 -0
  771. package/tui/widgets/session_summary.py +115 -0
  772. package/tui/widgets/session_tabs.py +194 -0
  773. package/tui/widgets/shell_result.py +35 -0
  774. package/tui/widgets/shell_terminal.py +40 -0
  775. package/tui/widgets/side_bar.py +124 -0
  776. package/tui/widgets/slash_complete.py +235 -0
  777. package/tui/widgets/strike_text.py +70 -0
  778. package/tui/widgets/subagent.py +287 -0
  779. package/tui/widgets/subagent_screen.py +715 -0
  780. package/tui/widgets/terminal.py +576 -0
  781. package/tui/widgets/terminal_tool.py +360 -0
  782. package/tui/widgets/throbber.py +100 -0
  783. package/tui/widgets/tool_call.py +432 -0
  784. package/tui/widgets/user_input.py +23 -0
  785. package/tui/widgets/version.py +5 -0
  786. package/tui/widgets/welcome.py +31 -0
@@ -0,0 +1,27 @@
1
+ #!/bin/bash
2
+ # Registers ai-dlc-skill for OneCode via symlink
3
+
4
+ set -euo pipefail
5
+
6
+ CANONICAL_SKILL_DIR="${HOME}/.cdh/skills/ai-dlc-skill"
7
+ DEV_SKILL_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
8
+
9
+ if [ -d "$CANONICAL_SKILL_DIR" ]; then
10
+ SKILL_DIR="$CANONICAL_SKILL_DIR"
11
+ else
12
+ SKILL_DIR="$DEV_SKILL_DIR"
13
+ fi
14
+
15
+ ONECODE_SKILLS_DIR="${HOME}/.onecode/skills"
16
+ SYMLINK_TARGET="$ONECODE_SKILLS_DIR/ai-dlc-skill"
17
+
18
+ mkdir -p "$ONECODE_SKILLS_DIR"
19
+
20
+ if [ ! -L "$SYMLINK_TARGET" ]; then
21
+ ln -s "$SKILL_DIR" "$SYMLINK_TARGET"
22
+ echo "Created symlink: $SYMLINK_TARGET -> $SKILL_DIR"
23
+ else
24
+ echo "Symlink already exists: $SYMLINK_TARGET"
25
+ fi
26
+
27
+ echo "ai-dlc-skill registered for OneCode"
@@ -0,0 +1,38 @@
1
+ #!/bin/bash
2
+ # Registers ai-dlc-skill for OpenCode via symlink + config check
3
+
4
+ set -euo pipefail
5
+
6
+ CANONICAL_SKILL_DIR="${HOME}/.cdh/skills/ai-dlc-skill"
7
+ DEV_SKILL_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
8
+ PROJECT_ROOT="$(cd "$DEV_SKILL_DIR/.." && pwd)"
9
+
10
+ if [ -d "$CANONICAL_SKILL_DIR" ]; then
11
+ SKILL_DIR="$CANONICAL_SKILL_DIR"
12
+ else
13
+ SKILL_DIR="$DEV_SKILL_DIR"
14
+ fi
15
+
16
+ OPENCODE_DIR="$PROJECT_ROOT/.opencode"
17
+ SYMLINK_TARGET="$OPENCODE_DIR/skills/ai-dlc-skill"
18
+
19
+ mkdir -p "$OPENCODE_DIR/skills"
20
+
21
+ if [ ! -L "$SYMLINK_TARGET" ]; then
22
+ ln -s "$SKILL_DIR" "$SYMLINK_TARGET"
23
+ echo "Created symlink: $SYMLINK_TARGET -> $SKILL_DIR"
24
+ else
25
+ echo "Symlink already exists: $SYMLINK_TARGET"
26
+ fi
27
+
28
+ CONFIG="$OPENCODE_DIR/config.json"
29
+ if [ -f "$CONFIG" ]; then
30
+ if grep -q '"skills"' "$CONFIG" 2>/dev/null; then
31
+ echo "skills.paths already configured in $CONFIG"
32
+ else
33
+ echo "WARNING: config.json missing skills.paths. Add:"
34
+ echo ' "skills": { "paths": [".opencode/skills"] }'
35
+ fi
36
+ fi
37
+
38
+ echo "ai-dlc-skill registered for OpenCode"
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: ai-dlc-debug
3
+ description: "Debug Phase: TCB/云函数日志排查 → 问题定位与追踪"
4
+ entry_point: phases/debug/entry.md
5
+ triggers:
6
+ - debug
7
+ - tcb-debug
8
+ - tcb-logs
9
+ - 排查日志
10
+ - 日志排查
11
+ - requestId
12
+ - 调用链
13
+ ---
14
+
15
+ # Debug Phase (调试)
16
+
17
+ TCB 云函数日志排查、requestId 追踪、CLS 日志检索。
18
+
19
+ ## Lifecycle
20
+
21
+ See `lifecycle.md` for the full phase flow.
22
+
23
+ ## 当被委派时
24
+
25
+ 0. 确认排查目标(函数名、requestId、环境)
26
+ 1. 收集环境信息 `tcb env info`
27
+ 2. 列出函数 `tcb fn list --env $TCB_ENV_ID`
28
+ 3. 基础日志查询 `tcb fn logs --name <fn> --limit 50`
29
+ 4. **如有 requestId**:通过 CLS 控制台或 API 查询调用链
30
+ 5. 分析日志输出,定位问题根因
31
+ 6. 输出诊断报告与修复建议
32
+
33
+ ## 产出
34
+
35
+ - 问题定位报告
36
+ - 相关日志片段
37
+ - 修复建议
38
+
39
+ ## TCB Debug Decision Tree
40
+
41
+ ```
42
+ 需要排查 TCB 问题?
43
+ ├── 函数部署/运行问题 → tcb fn logs / tcb fn invoke
44
+ ├── 需要追踪特定请求 → CLS 日志检索 (requestId)
45
+ ├── 数据库问题 → tcb db query
46
+ ├── 托管/静态网站问题 → tcb hosting detail
47
+ └── MCP 连接问题 → cdh cloudbase status
48
+ ```
@@ -0,0 +1,284 @@
1
+ # AI-DLC Phase 5: Debug (调试)
2
+
3
+ TCB 云函数日志排查与 requestId 追踪。
4
+
5
+ ## Goal
6
+
7
+ 通过系统化的日志排查流程,快速定位 TCB 云函数问题根因:
8
+ - 函数部署失败
9
+ - 函数执行异常/超时
10
+ - 特定请求调用链追踪
11
+ - 数据库/存储操作问题
12
+
13
+ ## Flow
14
+
15
+ ```
16
+ 接收排查任务 (requestId / 函数名 / 环境)
17
+
18
+
19
+ 收集环境信息
20
+ - tcb env info
21
+ - tcb env list
22
+
23
+
24
+ 确认函数状态
25
+ - tcb fn list --env $TCB_ENV_ID
26
+ - tcb fn detail --name <fn> --env $TCB_ENV_ID
27
+
28
+
29
+ 基础日志查询 (无 requestId 时)
30
+ - tcb fn logs --name <fn> --limit 50 --env $TCB_ENV_ID
31
+ - tcb fn logs --name <fn> --keyword error --env $TCB_ENV_ID
32
+
33
+
34
+ 高级日志查询 (有 requestId 时) → CLS
35
+ - 控制台: SCF_logset → SCF_RequestId:<requestId>
36
+ - 或 API: cdh cls search --request-id <id> --function <fn>
37
+
38
+
39
+ 分析日志输出
40
+ - SCF_RequestId, SCF_Message, SCF_Duration, SCF_StatusCode
41
+ - 定位错误行、耗时、调用链
42
+
43
+
44
+ 输出诊断报告
45
+ - 问题根因
46
+ - 相关日志片段
47
+ - 修复建议
48
+ ```
49
+
50
+ ## Method 1: CLI 基础日志查询
51
+
52
+ ### 环境检查
53
+
54
+ ```bash
55
+ tcb env info
56
+ tcb env list
57
+ ```
58
+
59
+ ### 函数列表与详情
60
+
61
+ ```bash
62
+ tcb fn list --env $TCB_ENV_ID
63
+ tcb fn detail --name <function-name> --env $TCB_ENV_ID
64
+ ```
65
+
66
+ ### 函数日志 (TCB CLI)
67
+
68
+ ```bash
69
+ tcb fn logs --name <function-name> --env $TCB_ENV_ID
70
+ tcb fn logs --name <function-name> --limit 100 --env $TCB_ENV_ID
71
+ tcb fn logs --name <function-name> --keyword error --env $TCB_ENV_ID
72
+ tcb fn logs --name <function-name> --tail --env $TCB_ENV_ID
73
+ ```
74
+
75
+ **限制**: TCB CLI `tcb fn logs` 不支持通过 requestId 查询。
76
+
77
+ ## Method 2: CLS 日志检索 (requestId 追踪)
78
+
79
+ ### 为什么需要 CLS
80
+
81
+ 腾讯云 SCF 日志自动投递至日志服务 CLS,支持:
82
+ - 通过 `SCF_RequestId` 检索特定调用
83
+ - 时间范围检索
84
+ - 多条件组合检索
85
+ - 调用链分析
86
+
87
+ ### CLS 控制台查询 (手动)
88
+
89
+ 1. 登录 [腾讯云日志服务控制台](https://console.cloud.tencent.com/cls)
90
+ 2. 选择地域(与 SCF 函数相同)
91
+ 3. 进入 `SCF_logset` 日志集
92
+ 4. 选择对应的日志主题:`SCF_logtopic_{函数名}_{命名空间}`
93
+ 5. 检索条件:
94
+ ```
95
+ SCF_RequestId:req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
96
+ ```
97
+
98
+ ### CLS 日志字段
99
+
100
+ | 字段名 | 类型 | 含义 |
101
+ |--------|------|------|
102
+ | `SCF_RequestId` | text | 请求 ID(调用链追踪键) |
103
+ | `SCF_FunctionName` | text | 函数名称 |
104
+ | `SCF_Namespace` | text | 命名空间 |
105
+ | `SCF_Message` | text | 日志内容 |
106
+ | `SCF_StartTime` | long | 调用开始时间 (Unix ms) |
107
+ | `SCF_Duration` | long | 运行时间 (ms) |
108
+ | `SCF_StatusCode` | long | HTTP 状态码 |
109
+ | `SCF_Level` | text | 日志级别 (INFO/WARN/ERROR) |
110
+ | `SCF_MemUsage` | double | 内存使用 (bytes) |
111
+ | `SCF_RetryNum` | long | 重试次数 |
112
+
113
+ ### CLI + CLS API 查询 (自动化)
114
+
115
+ 使用 `cdh cls search` 工具:
116
+
117
+ ```bash
118
+ cdh cls search --request-id req-xxxxx --function hello --env $TCB_ENV_ID
119
+ cdh cls search --function hello --keyword error --limit 100 --env $TCB_ENV_ID
120
+ cdh cls search --function hello --start-time "2026-08-04 10:00:00" --end-time "2026-08-04 12:00:00"
121
+ ```
122
+
123
+ ### Python API 调用
124
+
125
+ ```python
126
+ from cdh.tools.cls_search import CLSLogSearcher
127
+
128
+ searcher = CLSLogSearcher(region="ap-shanghai")
129
+
130
+ # 通过 requestId 查询
131
+ logs = searcher.search_by_request_id(
132
+ request_id="req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
133
+ function_name="hello"
134
+ )
135
+
136
+ # 关键词查询
137
+ logs = searcher.search_scf_logs(
138
+ query="ERROR",
139
+ function_name="hello",
140
+ limit=100
141
+ )
142
+
143
+ for log in logs:
144
+ print(f"[{log['time']}] {log['message']}")
145
+ ```
146
+
147
+ ## Method 3: SCF 控制台查询
148
+
149
+ 1. 进入 [SCF 控制台](https://console.cloud.tencent.com/scf)
150
+ 2. 选择函数 → **日志页签**
151
+ 3. 点击 **高级检索**
152
+ 4. 输入检索条件:`SCF_RequestId:req-xxxxx`
153
+
154
+ ## Debug Workflow Examples
155
+
156
+ ### Workflow: 函数执行报错
157
+
158
+ ```bash
159
+ # 1. 获取函数详情
160
+ tcb fn detail --name hello --env $TCB_ENV_ID
161
+
162
+ # 2. 查看最近日志
163
+ tcb fn logs --name hello --limit 100 --env $TCB_ENV_ID
164
+
165
+ # 3. 查看错误日志
166
+ tcb fn logs --name hello --keyword error --env $TCB_ENV_ID
167
+
168
+ # 4. 重新调用并观察
169
+ tcb fn invoke --name hello --params '{}' --env $TCB_ENV_ID
170
+ ```
171
+
172
+ ### Workflow: 特定请求调用链追踪
173
+
174
+ ```bash
175
+ # 1. 获取 requestId(通常在错误响应或客户端日志中)
176
+ # 例如: req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
177
+
178
+ # 2. CLS 控制台查询
179
+ # 登录 https://console.cloud.tencent.com/cls
180
+ # 检索: SCF_RequestId:req-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
181
+
182
+ # 3. 或使用 CLI/API
183
+ cdh cls search --request-id req-xxxxxxxx --function hello --limit 50
184
+ ```
185
+
186
+ ### Workflow: 性能问题排查
187
+
188
+ ```bash
189
+ # 1. 查看超时/慢请求日志
190
+ tcb fn logs --name hello --limit 100 --env $TCB_ENV_ID
191
+
192
+ # 2. 通过 CLS 查询耗时
193
+ # 检索条件: SCF_FunctionName:hello AND SCF_Duration:>5000
194
+
195
+ # 3. 查看内存使用
196
+ # 检索条件: SCF_FunctionName:hello AND SCF_MemUsage:>1000000000
197
+ ```
198
+
199
+ ## MCP Tool 调用
200
+
201
+ 当 MCP server 连接时,可使用:
202
+
203
+ ```javascript
204
+ // 获取函数日志 (TCB MCP)
205
+ const logs = await MCPTool(server="cloudbase", tool="get_function_logs", arguments={
206
+ name: "hello",
207
+ envId: "env-xxxxx",
208
+ limit: 50
209
+ });
210
+
211
+ // CLS 日志检索 (需额外配置)
212
+ const traces = await MCPTool(server="cloudbase", tool="search_logs", arguments={
213
+ requestId: "req-xxxxx",
214
+ functionName: "hello",
215
+ region: "ap-shanghai"
216
+ });
217
+ ```
218
+
219
+ ## Output Template
220
+
221
+ ```markdown
222
+ # TCB Debug Report
223
+
224
+ ## 问题概述
225
+ - **函数**: <function-name>
226
+ - **环境**: <env-id>
227
+ - **时间**: <timestamp>
228
+ - **问题类型**: <deployment/ invocation/ timeout/ error>
229
+
230
+ ## 环境信息
231
+ ```
232
+ <tcb env info 输出>
233
+ ```
234
+
235
+ ## 函数状态
236
+ ```
237
+ <tcb fn detail 输出>
238
+ ```
239
+
240
+ ## 日志分析
241
+ ### 基础日志
242
+ ```
243
+ <相关日志片段>
244
+ ```
245
+
246
+ ### CLS 调用链 (如有 requestId)
247
+ ```
248
+ <requestId 关联日志>
249
+ ```
250
+
251
+ ## 根因分析
252
+ <问题根因描述>
253
+
254
+ ## 修复建议
255
+ 1. <建议1>
256
+ 2. <建议2>
257
+ 3. <建议3>
258
+
259
+ ## 相关链接
260
+ - [SCF 控制台](https://console.cloud.tencent.com/scf)
261
+ - [CLS 日志服务](https://console.cloud.tencent.com/cls)
262
+ - [函数详情](https://console.cloud.tencent.com/scf/detail/<region>/<env-id>/<function-name>)
263
+ ```
264
+
265
+ ## 常见问题快速检索
266
+
267
+ | 场景 | 检索条件 |
268
+ |------|----------|
269
+ | 特定请求追踪 | `SCF_RequestId:<requestId>` |
270
+ | 错误日志 | `SCF_Message:error OR SCF_Level:ERROR` |
271
+ | 超时请求 | `SCF_Duration:>60000` |
272
+ | 内存超限 | `SCF_MemUsage:>1536000000` |
273
+ | HTTP 5xx | `SCF_StatusCode:>=500` |
274
+ | 特定函数 | `SCF_FunctionName:<functionName>` |
275
+ | 特定命名空间 | `SCF_Namespace:<namespace>` |
276
+
277
+ ## Gate
278
+
279
+ **排查完成标准:**
280
+ - [ ] 环境信息已确认
281
+ - [ ] 函数状态已确认
282
+ - [ ] 相关日志已获取
283
+ - [ ] 问题根因已定位
284
+ - [ ] 修复建议已给出
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: ai-dlc-deliver
3
+ description: "Deliver Phase: Stack Preview → e2e → Production + BVT"
4
+ entry_point: phases/deliver/entry.md
5
+ triggers:
6
+ - deliver
7
+ - deploy
8
+ - release
9
+ ---
10
+
11
+ # Deliver Phase (交付)
12
+
13
+ Deploy full stack, run cross-stack e2e, human approval, production BVT.
14
+
15
+ ## Lifecycle
16
+
17
+ See `lifecycle.md` for the full phase flow.
18
+ See `rules.md` for enforceable rules (DLV-001 to DLV-004 + STK-001 to STK-006).
19
+ See `prompt.md` for the sub-agent delegation prompt template.
20
+
21
+ ## 当被委派时
22
+
23
+ 0. 先调用 `TodoClear` 清除上阶段遗留的 todos,确保从空白计划开始
24
+ 1. `aidlc/tools/deploy_stack.sh --env preview` 统一部署
25
+ 2. 运行 per-component e2e + cross-stack e2e
26
+ 3. Staging 部署 + smoke test
27
+ 4. Human approval gate
28
+ 5. Production 部署 + BVT + 自动回滚
29
+
30
+ ## 产出
31
+
32
+ - `STACK_URL` / `BACKEND_URL`
33
+ - 各组件 e2e 报告
34
+ - 跨栈 e2e 报告
35
+ - Stack BVT 报告
@@ -0,0 +1,185 @@
1
+ # AI-DLC Phase 4: Deliver (交付)
2
+
3
+ Deploy the **full stack** together, verify per-component and cross-stack e2e against the unified preview, release with stack-level BVT.
4
+
5
+ ## Goal
6
+
7
+ Deliver verified code to production as a coherent stack with full confidence — preview environment, per-component e2e, cross-stack e2e, stack-level BVT, and rollback at the stack level.
8
+
9
+ ## Flow
10
+
11
+ ```
12
+ All Verify gates passed (per-component + contract + cross-stack)
13
+
14
+
15
+ Unified Stack Preview Deploy (dynamic URL from cloud provider)
16
+ - backend (functions + DB migrate)
17
+ - web (hosting build with BACKEND_URL)
18
+ - native (build with BACKEND_URL; package + upload)
19
+ - desktop (build with BACKEND_URL; package + upload)
20
+ - wxa / mya / tta (build with BACKEND_URL; upload to mini-program platform)
21
+
22
+
23
+ Per-component BDD e2e (against component preview URL or stack URL)
24
+
25
+
26
+ Cross-stack e2e (full app ↔ web ↔ backend against unified stack URL)
27
+
28
+
29
+ Staging Stack Deploy + Smoke
30
+
31
+
32
+ Human Approval Gate
33
+
34
+
35
+ Production Stack Deploy (whole stack as one unit)
36
+
37
+
38
+ Stack BVT (Build Verification Test) — backend /health, app launch probe, web smoke, DB
39
+
40
+
41
+ Archive: contract-diff.md + e2e reports + BVT report
42
+
43
+
44
+ Gate: BVT pass → done | BVT fail → stack rollback
45
+ ```
46
+
47
+ ## Unified Stack Preview Deploy
48
+
49
+ The whole stack is deployed as one unit. The preview URL is the **backend gateway**; all client components (`web`, `native`, `desktop`, `wxa`, `mya`, `tta`) receive it as a build-time or runtime config.
50
+
51
+ ```bash
52
+ # TCB (default)
53
+ deploy_stack --preview
54
+ # → backend: tcb fn deploy --env preview
55
+ # → backend: tcb db migrate --env preview
56
+ # → web: tcb hosting deploy --env preview --build-env BACKEND_URL=${STACK_URL}
57
+ # → native: build with BACKEND_URL=${STACK_URL}, upload to internal distribution
58
+ # → desktop: build with BACKEND_URL=${STACK_URL}, upload to internal distribution
59
+ # → wxa: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
60
+ # → mya: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
61
+ # → tta: build with BACKEND_URL=${STACK_URL}, upload to mini-program platform
62
+ # → STACK_URL = https://{env-id}.tcb-preview.com
63
+
64
+ # Aliyun
65
+ deploy_stack --preview
66
+ # → backend: fun deploy --env preview
67
+ # → web: oss + cdn deploy with build env
68
+ # → native: build with BACKEND_URL, package
69
+ # → desktop: build with BACKEND_URL, package
70
+ # → wxa: build with BACKEND_URL, upload to mini-program platform
71
+ # → mya: build with BACKEND_URL, upload to mini-program platform
72
+ # → tta: build with BACKEND_URL, upload to mini-program platform
73
+ # → STACK_URL = https://{gateway}.{region}.fc.devs.com
74
+ ```
75
+
76
+ The `deploy_stack` tool resolves the preview URL dynamically per platform and exports it as `STACK_URL` (or `BACKEND_URL` for components to consume).
77
+
78
+ ## Per-Component BDD E2E
79
+
80
+ ```bash
81
+ export STACK_URL=$(deploy_stack --preview --output url)
82
+ export BACKEND_URL=$STACK_URL
83
+
84
+ # Backend
85
+ pytest apps/backend/tests/e2e/ --base-url $BACKEND_URL
86
+
87
+ # Web (against web hosting URL; uses BACKEND_URL as API root)
88
+ export WEB_URL=$(deploy_stack --preview --output web_url)
89
+ pytest apps/web/tests/e2e/ --base-url $WEB_URL --api-url $BACKEND_URL
90
+
91
+ # Native (against installed package or emulator; uses BACKEND_URL)
92
+ pytest apps/native/tests/e2e/ --backend-url $BACKEND_URL
93
+
94
+ # Desktop (against installed package or emulator; uses BACKEND_URL)
95
+ pytest apps/desktop/tests/e2e/ --backend-url $BACKEND_URL
96
+
97
+ # Mini-programs (wxa, mya, tta) (against emulator or device; uses BACKEND_URL)
98
+ pytest apps/wxa/tests/e2e/ --backend-url $BACKEND_URL
99
+ pytest apps/mya/tests/e2e/ --backend-url $BACKEND_URL
100
+ pytest apps/tta/tests/e2e/ --backend-url $BACKEND_URL
101
+ ```
102
+
103
+ ## Cross-Stack E2E
104
+
105
+ ```bash
106
+ pytest aidlc/tests/cross-stack/ --stack-url $STACK_URL --verbose
107
+ # Runs the full multi-client ↔ backend flow defined in aidlc/features/cross-stack/
108
+ ```
109
+
110
+ **Rule STK-001:** All `cross-stack` scenarios must pass before staging or production.
111
+
112
+ ## Staging
113
+
114
+ ```bash
115
+ deploy_stack --env staging
116
+ export STAGING_URL=$(deploy_stack --env staging --output url)
117
+ pytest aidlc/tests/cross-stack/ --stack-url $STAGING_URL
118
+ smoke-test $STAGING_URL
119
+ ```
120
+
121
+ ## Human Approval
122
+
123
+ Production deployment requires explicit human approval. Approval is a **stack** decision — the reviewer sees the per-component e2e results, the cross-stack e2e results, the staging smoke, and the `contract-diff.md`.
124
+
125
+ ## Production Stack Deploy
126
+
127
+ ```bash
128
+ deploy_stack --env production
129
+ # → Same as preview/staging but with prod env IDs and production secrets
130
+ ```
131
+
132
+ ## Stack BVT (Build Verification Test)
133
+
134
+ Automated health and functionality checks against the **production stack**:
135
+
136
+ ```bash
137
+ bvt ${PRODUCTION_URL}
138
+ # Checks:
139
+ # 1. backend /health returns 200
140
+ # 2. web home page returns 200 (SSR) or shell loads (SPA)
141
+ # 3. native/desktop/mini-program launch probe (deep link resolves against BACKEND_URL)
142
+ # 4. Core end-to-end flow (login) succeeds
143
+ # 5. Database connectivity (probe query)
144
+ # 6. No error rate spikes (5xx < 0.1%, p99 < 500ms)
145
+ ```
146
+
147
+ **Rule DLV-003:** BVT must pass. If BVT fails, automatic **stack** rollback to the previous stable stack version.
148
+
149
+ ## Stack Rollback
150
+
151
+ Rollback is at the stack level — all components revert together so the stack stays internally consistent.
152
+
153
+ ```bash
154
+ # Automatic on BVT failure
155
+ deploy_stack --rollback ${LAST_STABLE_STACK_VERSION}
156
+
157
+ # Manual on demand
158
+ deploy_stack --rollback --stack-version v1.2.3
159
+ ```
160
+
161
+ The previous stable stack version is identified by the `aidlc/contracts/CHANGELOG.md` version at the time of the last green BVT.
162
+
163
+ ## Artifacts
164
+
165
+ | Artifact | Purpose |
166
+ |----------|---------|
167
+ | `STACK_URL` / `BACKEND_URL` | Dynamic, per-platform, per-env |
168
+ | Per-component e2e report | Scenario pass/fail per component |
169
+ | Cross-stack e2e report | Full flow pass/fail |
170
+ | `aidlc/openspec/changes/{id}/contract-diff.md` | Final contract change record |
171
+ | BVT report | Stack-level health check results |
172
+ | Deploy log | Stack version, timestamp, component versions |
173
+
174
+ ## Gate
175
+
176
+ **Before marking complete:**
177
+ - [ ] Unified stack preview deploy succeeded; `STACK_URL` and `BACKEND_URL` resolved
178
+ - [ ] All per-component BDD e2e tests pass against their preview URLs
179
+ - [ ] All cross-stack e2e tests pass against the unified stack URL
180
+ - [ ] Staging smoke tests pass
181
+ - [ ] Human approval received (covers per-component + cross-stack + staging + contract diff)
182
+ - [ ] Production stack deploy succeeded
183
+ - [ ] Stack BVT passed
184
+ - [ ] (If BVT failed) Stack rollback executed and confirmed
185
+ - [ ] `aidlc/openspec/changes/{id}/contract-diff.md` archived
@@ -0,0 +1,54 @@
1
+ # Deliver Phase Agent Prompt
2
+
3
+ 你是一个 AI-DLC Deliver Phase Agent。
4
+ 由 Master Agent 委派处理部署交付。
5
+
6
+ ## 输入
7
+ - `{spec_dir}/contract-diff.md`
8
+ - 所有 e2e 测试报告
9
+
10
+ ## 路径约定
11
+
12
+ 产物路径遵循 `aidlc/CONFIG.md` 中的变量定义。
13
+
14
+ ## 任务
15
+
16
+ 1. **Unified Stack Preview**
17
+ - `aidlc/tools/deploy_stack.sh --preview --provider {tcb|aliyun} [--compute-mode {fc|sae}]`
18
+ - 输出 STACK_URL + per-component URLs
19
+
20
+ 2. **Per-Component e2e**
21
+ - 对每个 affected component 运行 e2e 测试
22
+ - 使用动态解析的 URL
23
+
24
+ 3. **Cross-Stack e2e**
25
+ - `pytest {cross_test_dir}/ --stack-url ${STACK_URL}`
26
+
27
+ 4. **Staging Deploy + Smoke**
28
+ - `aidlc/tools/deploy_stack.sh --env staging`
29
+ - 运行 smoke-test + health-check
30
+
31
+ 5. **Production Gate + Deploy**
32
+ - 将预览和测试结果返回给 Master Agent,由 Master Agent 通过 AskUser 等待 Human Approval
33
+ - `aidlc/tools/deploy_stack.sh --env production`
34
+ - BVT 验证 + 自动回滚
35
+
36
+ ## 输出产物
37
+ - 动态 URLs(STACK_URL / BACKEND_URL / WEB_URL)
38
+ - e2e 测试报告(per-component + cross-stack)
39
+ - BVT 报告
40
+ - 部署日志
41
+
42
+ ## 约束
43
+ - 开始前先调用 `TodoClear` 清除可能遗留的 todos,确保从空白计划开始
44
+ - 遵守 DLV-001 到 DLV-004
45
+ - 遵守 STK-004 到 STK-006(统一部署 + 构建配置注入 + stack 级回滚)
46
+
47
+ ## 完成报告
48
+
49
+ 完成后返回以下信息给 Master Agent(用于写入 Registry):
50
+ - `phase: "deliver"`
51
+ - `status: "completed"`
52
+ - `artifacts: [部署URL、BVT报告路径列表]`
53
+ - `gatePassed: true/false`
54
+ - `deployUrl: 生产环境URL`