@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,260 @@
1
+ # AI-DLC Phase 2: Plan (规划)
2
+
3
+ Design the solution and decompose work into tracked, dependency-ordered units, including cross-component edges.
4
+
5
+ ## Goal
6
+
7
+ Translate approved specifications into a concrete technical plan that can be executed unit by unit, with explicit cross-component dependencies and contract references.
8
+
9
+ ## Flow
10
+
11
+ ```
12
+ Approved Spec + BDD Features (per-component + cross-stack)
13
+
14
+
15
+ SDD: Design Doc
16
+ - architecture (per component)
17
+ - data model
18
+ - API contract (references INT-FR-*)
19
+ - state machine
20
+ - integration section (cross-component flow)
21
+
22
+
23
+ SDD: Task Decomposition (units with DAG, including cross-component edges)
24
+
25
+
26
+ TDD: Test Plan (per scenario, written before implementation)
27
+ - unit / integration / e2e / cross-stack layer
28
+
29
+
30
+ INT: Contract plan (which contracts change, version impact)
31
+
32
+
33
+ Gate: Human review → approved or revise
34
+ ```
35
+
36
+ ## SDD — Design Document (multi-component aware)
37
+
38
+ A multi-component design doc is organized by **component sections** plus an **integration section**.
39
+
40
+ ```markdown
41
+ ## Design — CHG-{{id}}
42
+
43
+ **Affects:** [{{components}}]
44
+ **Contracts touched:** {{list or "none"}}
45
+
46
+ ### Component: backend (BE-FR-*)
47
+ - Architecture: {{serverless / container / ...}}
48
+ - Data model: {{tables / collections}}
49
+ - API surface: {{references INT-FR-* contract}}
50
+ - State machine: {{...}}
51
+
52
+ ### Component: web (WEB-FR-*)
53
+ - Architecture: {{SPA / SSR}}
54
+ - Routes: {{...}}
55
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-001}}
56
+
57
+ ### Component: native (NATIVE-FR-*)
58
+ - Architecture: {{native architecture}}
59
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-*}}
60
+
61
+ ### Component: desktop (DESKTOP-FR-*)
62
+ - Architecture: {{desktop architecture}}
63
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-*}}
64
+
65
+ ### Component: wxa (WXA-FR-*)
66
+ - Architecture: {{WeChat Mini Program}}
67
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-*}}
68
+
69
+ ### Component: mya (MYA-FR-*)
70
+ - Architecture: {{Mini Program}}
71
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-*}}
72
+
73
+ ### Component: tta (TTA-FR-*)
74
+ - Architecture: {{TikTok Mini Program}}
75
+ - Data flow: {{uses aidlc/packages/shared generated from INT-FR-*}}
76
+
77
+ ### Integration
78
+ - Flow: {{web → backend → DB; or app → backend → event → ...}}
79
+ - Contract refs: INT-FR-001, INT-FR-002
80
+ - Failure modes: {{timeout, retry, fallback}}
81
+ - Backward compat: {{additive / breaking → migration}}
82
+ ```
83
+
84
+ ### Data Model
85
+
86
+ | Field | Type | Constraints |
87
+ |-------|------|-------------|
88
+ | id | UUID | PK |
89
+ | email | string | UNIQUE, NOT NULL |
90
+ | password_hash | string | NOT NULL |
91
+
92
+ ### API Contract
93
+
94
+ | Method | Path | INT FR | Provider | Consumer |
95
+ |--------|------|--------|----------|----------|
96
+ | POST | /auth/login | INT-FR-001 | BE-FR-001 | WEB-FR-001, NATIVE-FR-001, DESKTOP-FR-001, WXA-FR-001, MYA-FR-001, TTA-FR-001 |
97
+
98
+ ### State Machine
99
+
100
+ ```
101
+ ANONYMOUS → LOGGED_IN → SESSION_EXPIRED
102
+
103
+ LOGGED_OUT
104
+ ```
105
+
106
+ ## SDD — Task Decomposition with DAG (multi-component)
107
+
108
+ Tasks MUST include cross-component edges. A task that produces or consumes a contract depends on the corresponding `INT-FR-*` task.
109
+
110
+ ```mermaid
111
+ graph TD
112
+ INT1[INT-FR-001: define /auth/login contract]
113
+ BE1[BE-FR-001 unit-1: DB schema + models]
114
+ BE2[BE-FR-001 unit-2: login endpoint]
115
+ WEB1[WEB-FR-001 unit-1: login form + API client]
116
+ WEB2[WEB-FR-001 unit-2: token storage + redirect]
117
+ CS1[INT-FR-001 cross-stack: e2e login flow]
118
+
119
+ INT1 --> BE2
120
+ INT1 --> WEB1
121
+ BE1 --> BE2
122
+ BE2 --> CS1
123
+ WEB1 --> CS1
124
+ WEB2 --> CS1
125
+ ```
126
+
127
+ ```yaml
128
+ units:
129
+ - id: int-contract-1
130
+ fr: INT-FR-001
131
+ affects: [contracts]
132
+ depends_on: []
133
+ deliverables: [aidlc/contracts/api/auth.yaml]
134
+ - id: be-unit-1
135
+ fr: BE-FR-001
136
+ affects: [backend]
137
+ depends_on: []
138
+ scenarios: []
139
+ - id: be-unit-2
140
+ fr: BE-FR-001
141
+ affects: [backend]
142
+ depends_on: [int-contract-1, be-unit-1]
143
+ scenarios: ["BE-FR-001 @positive", "BE-FR-001 @negative"]
144
+ - id: web-unit-1
145
+ fr: WEB-FR-001
146
+ affects: [web]
147
+ depends_on: [int-contract-1]
148
+ scenarios: ["WEB-FR-001 @positive", "WEB-FR-001 @negative"]
149
+ - id: cross-stack-1
150
+ fr: INT-FR-001
151
+ affects: [web, backend]
152
+ depends_on: [be-unit-2, web-unit-1]
153
+ layer: cross-stack
154
+ scenarios: ["INT-FR-001 @positive", "INT-FR-001 @negative", "INT-FR-001 @edge"]
155
+ ```
156
+
157
+ ## TDD — Test Plan (per scenario, per layer)
158
+
159
+ Each scenario gets a test plan that names the **layer** it runs at.
160
+
161
+ ```markdown
162
+ ## BE-FR-001 @positive: Login API success
163
+ Layer: integration
164
+ Test cases:
165
+ 1. test_login_valid_credentials_returns_jwt
166
+ 2. test_login_sets_expiry_3600
167
+
168
+ ## WEB-FR-001 @positive: Login form happy path
169
+ Layer: e2e
170
+ Test cases:
171
+ 1. test_login_form_submits_and_redirects
172
+
173
+ ## INT-FR-001 @positive: Full web→backend login flow
174
+ Layer: cross-stack
175
+ Test cases:
176
+ 1. test_web_login_e2e_against_preview_url
177
+ ```
178
+
179
+ ## INT — Contract Plan
180
+
181
+ For each contract change, list:
182
+ - Old version, new version
183
+ - Breaking? (yes / no) → if yes, plan migration in `aidlc/contracts/CHANGELOG.md`
184
+ - Consumers affected (which components will pull the new shared types)
185
+ - Backward-compat strategy (additive vs. deprecate-then-remove)
186
+
187
+ ## Artifacts
188
+
189
+ | Artifact | Location | Purpose |
190
+ |----------|----------|---------|
191
+ | Design doc | `aidlc/openspec/changes/{id}/design.md` | Per-component + integration |
192
+ | Task list | `aidlc/openspec/changes/{id}/task-list.md` | DAG with cross-component edges |
193
+ | Test plan | Embedded in task-list or separate | Per-scenario, per-layer |
194
+ | Contract plan | `aidlc/openspec/changes/{id}/contract-diff.md` placeholder | Filled in Verify |
195
+
196
+ ## Gate
197
+
198
+ **Before advancing to Verify phase:**
199
+ - [ ] Design doc has per-component sections + integration section
200
+ - [ ] Tasks decomposed with explicit dependency DAG (including cross-component edges)
201
+ - [ ] `INT-FR-*` tasks precede the consuming per-component tasks
202
+ - [ ] Test plans name the layer (`unit` / `integration` / `e2e` / `cross-stack`) per scenario
203
+ - [ ] Contract plan identifies breaking vs. additive
204
+ - [ ] Human reviewed and approved
205
+
206
+ ## Design System Integration
207
+
208
+ For UI-intensive components (web/native/desktop/wxa/mya/tta), the design doc MUST include:
209
+
210
+ ### Design Tokens Output
211
+ ```markdown
212
+ ### Design Tokens (WEB-FR-001)
213
+ | Token | Value |
214
+ |-------|-------|
215
+ | --color-primary | #3B82F6 |
216
+ | --space-4 | 16px |
217
+ | --radius-md | 6px |
218
+ ```
219
+
220
+ ### Component Hierarchy
221
+ ```markdown
222
+ ### Component Hierarchy (WEB-FR-001)
223
+ - Atom: Button, Input, Badge, Icon
224
+ - Molecule: SearchBar, FormField, CardHeader
225
+ - Organism: DataTable, Header, FilterPanel
226
+ ```
227
+
228
+ ### Platform UI Spec Reference
229
+ ```markdown
230
+ ### Platform Compliance (WEB-FR-001)
231
+ - Web: Responsive (sm/md/lg/xl) per platform_ui/web.md
232
+ - Native: SafeArea per platform_ui/native.md
233
+ - WXA: Vant Weapp per platform_ui/wxa.md
234
+ ```
235
+
236
+ ### Accessibility Checklist
237
+ ```markdown
238
+ ### Accessibility (WEB-FR-001)
239
+ - [ ] Focus ring visible on interactive elements
240
+ - [ ] Icon buttons have aria-label
241
+ - [ ] Color contrast ≥ 4.5:1 (AA)
242
+ - [ ] Keyboard navigation functional
243
+ ```
244
+
245
+ ## Design System Reference Files
246
+
247
+ | 规范 | 路径 |
248
+ |------|------|
249
+ | Design Tokens | `phases/plan/design_system/design_tokens.md` |
250
+ | Atomic Design | `phases/plan/design_system/atomic_design.md` |
251
+ | Component Spec | `phases/plan/design_system/component_spec.md` |
252
+ | Accessibility | `phases/plan/design_system/accessibility.md` |
253
+ | Theme System | `phases/plan/design_system/theme_system.md` |
254
+ | Iconography | `phases/plan/design_system/iconography.md` |
255
+ | Web UI | `phases/plan/design_system/platform_ui/web.md` |
256
+ | Native UI | `phases/plan/design_system/platform_ui/native.md` |
257
+ | Desktop UI | `phases/plan/design_system/platform_ui/desktop.md` |
258
+ | WXA UI | `phases/plan/design_system/platform_ui/wxa.md` |
259
+ | MYA UI | `phases/plan/design_system/platform_ui/mya.md` |
260
+ | TTA UI | `phases/plan/design_system/platform_ui/tta.md` |
@@ -0,0 +1,75 @@
1
+ # Plan Phase Agent Prompt
2
+
3
+ 你是一个 AI-DLC Plan Phase Agent。
4
+ 由 Master Agent 委派处理方案设计。
5
+
6
+ ## 输入
7
+ - `{spec_dir}/spec-delta.md`
8
+ - BDD feature 文件
9
+
10
+ ## 路径约定
11
+
12
+ 所有产物路径遵循 `aidlc/CONFIG.md` 中的变量定义。关键路径:
13
+ - Design Doc: `{spec_dir}/design.md`
14
+ - Task List: `{spec_dir}/task-list.md`
15
+ - Contract Diff: `{spec_dir}/contract-diff.md`
16
+
17
+ ## 任务
18
+
19
+ 1. **SDD: Design Doc**
20
+ - 在 `{spec_dir}/design.md` 输出
21
+ - 包含:架构图(Mermaid)、数据模型、API 表、状态机
22
+ - 每组件独立 section + 集成 section
23
+
24
+ 2. **SDD: Task Decomposition**
25
+ - 在 `{spec_dir}/task-list.md` 输出
26
+ - YAML 格式,unit 带 `depends_on` DAG
27
+ - 跨组件 task 显示声明 `depends_on` 关系
28
+
29
+ 3. **TDD: Test Plan**
30
+ - 每个 BDD scenario 对应最少一个测试 case
31
+ - 标注 layer: unit / integration / e2e / cross-stack / contract
32
+
33
+ 4. **Contract Plan**
34
+ - 标注版本影响:additive / breaking
35
+ - 如需 breaking change 标记为 human-approval 阻塞
36
+
37
+ ## 输出产物
38
+ - `{spec_dir}/design.md`
39
+ - `{spec_dir}/task-list.md`
40
+ - `{spec_dir}/contract-diff.md`(占位)
41
+
42
+ ## 约束
43
+ - 开始前先调用 `TodoClear` 清除可能遗留的 todos,确保从空白计划开始
44
+ - 遵守 `rules.md` 中的 PLN-001 到 PLN-009
45
+ - 遵守 STK-001, STK-002(affects 声明 + cross-component 依赖)
46
+ - 遵守 Design System 规范 (PLN-005 ~ PLN-009)
47
+ - 完成后将产物返回给 Master Agent,由 Master Agent 执行 Human Gate 审查(AskUser)
48
+
49
+ ## Design System 约束(前端组件必读)
50
+
51
+ ### UI 组件必须引用以下规范:
52
+
53
+ | 平台 | 必读规范 |
54
+ |------|----------|
55
+ | Web | `phases/plan/design_system/design_tokens.md` + `platform_ui/web.md` |
56
+ | Native | `phases/plan/design_system/design_tokens.md` + `platform_ui/native.md` |
57
+ | Desktop | `phases/plan/design_system/design_tokens.md` + `platform_ui/desktop.md` |
58
+ | WXA | `phases/plan/design_system/design_tokens.md` + `platform_ui/wxa.md` |
59
+ | MYA | `phases/plan/design_system/design_tokens.md` + `platform_ui/mya.md` |
60
+ | TTA | `phases/plan/design_system/design_tokens.md` + `platform_ui/tta.md` |
61
+
62
+ ### 所有 UI 组件必须:
63
+ 1. **使用 Design Tokens**: 所有颜色/间距/字体/阴影必须使用 CSS 变量 (`var(--color-*)`)
64
+ 2. **符合 Atomic Design**: 组件按 Atom/Molecule/Organism/Template/Page 分层
65
+ 3. **符合 Component Spec**: 每个组件必须有 Props/States/Accessibility 说明
66
+ 4. **满足 Accessibility**: WCAG 2.1 AA (对比度 4.5:1, focus ring, ARIA)
67
+ 5. **支持 Theme**: 深浅主题通过 CSS 变量自动切换
68
+
69
+ ## 完成报告
70
+
71
+ 完成后返回以下信息给 Master Agent(用于写入 Registry):
72
+ - `phase: "plan"`
73
+ - `status: "completed"`
74
+ - `artifacts: [生成的文件路径列表]`
75
+ - `gatePassed: true/false`
@@ -0,0 +1,60 @@
1
+ # Plan Rules (PLN-*)
2
+
3
+ ## PLN-001: Design Documentation
4
+ **Severity:** MUST
5
+ **Description:** Each feature MUST have a design document covering architecture, data model, API contracts, and state machine. For multi-component features, MUST have per-component sections and an integration section.
6
+ **Valid:** `aidlc/openspec/changes/{id}/design.md` with `## Component: backend`, `## Component: web`, `## Integration`.
7
+ **Invalid:** A single flat architecture section with no per-component concerns.
8
+
9
+ ## PLN-002: Dependency DAG
10
+ **Severity:** MUST
11
+ **Description:** Units MUST be decomposed with explicit dependency DAG including cross-component edges. A task producing/consuming a contract MUST depend on the corresponding `INT-FR-*` task.
12
+ **Valid:** `depends_on: [int-contract-1, be-unit-1]` for a web task consuming the contract.
13
+ **Invalid:** Per-component task lists with no cross-component edges.
14
+
15
+ ## PLN-003: Test Plan Before Implementation
16
+ **Severity:** MUST
17
+ **Description:** Test plans for each scenario MUST be written before implementation and MUST name the test layer (`unit`, `integration`, `e2e`, `cross-stack`, `contract`).
18
+ **Valid:** `BE-FR-001 @positive → layer: integration → test_login_valid_credentials`
19
+ **Invalid:** A test plan with no layer designation.
20
+
21
+ ## PLN-004: Contract Plan
22
+ **Severity:** MUST
23
+ **Description:** For each contract change, the design doc MUST identify version impact (additive vs. breaking), consumers affected, and backward-compat strategy.
24
+ **Valid:** `INT-FR-001 change: additive, MINOR bump; no consumer migration needed`
25
+ **Invalid:** Contract change with no version impact noted.
26
+
27
+ ## PLN-005: Design Tokens Usage
28
+ **Severity:** MUST
29
+ **Description:** All UI components MUST use Design Tokens (CSS variables) for colors, spacing, typography, and shadows. Hardcoded values are NOT allowed.
30
+ **Valid:** `color: var(--color-primary); padding: var(--space-4);`
31
+ **Invalid:** `color: #3B82F6; padding: 16px;`
32
+ **Reference:** `phases/plan/design_system/design_tokens.md`
33
+
34
+ ## PLN-006: Design System Compliance
35
+ **Severity:** MUST
36
+ **Description:** All UI components MUST follow the Design System specification including Atomic Design分层, Component Spec模板, and Platform UI规范.
37
+ **Valid:** Components documented per `component_spec.md` template with Props, States, Accessibility
38
+ **Invalid:** Component without specification or deviating from atomic design hierarchy
39
+ **Reference:** `phases/plan/design_system/atomic_design.md`, `phases/plan/design_system/component_spec.md`
40
+
41
+ ## PLN-007: Accessibility Requirements
42
+ **Severity:** MUST
43
+ **Description:** All UI components MUST meet WCAG 2.1 AA standards including focus management, ARIA attributes, and color contrast ratios.
44
+ **Valid:** Focus ring visible, ARIA labels on icon buttons, contrast ratio ≥ 4.5:1
45
+ **Invalid:** Missing focus ring, no ARIA label on icon-only button, contrast ratio < 4.5:1
46
+ **Reference:** `phases/plan/design_system/accessibility.md`
47
+
48
+ ## PLN-008: Platform-Specific UI
49
+ **Severity:** MUST
50
+ **Description:** For each affected platform (web/native/desktop/wxa/mya/tta), the design doc MUST reference the corresponding platform UI spec.
51
+ **Valid:** `WEB-FR-001 uses responsive breakpoints per platform_ui/web.md`
52
+ **Invalid:** Platform UI designed without referencing platform-specific规范
53
+ **Reference:** `phases/plan/design_system/platform_ui/{platform}.md`
54
+
55
+ ## PLN-009: Theme System Support
56
+ **Severity:** SHOULD
57
+ **Description:** All UI components SHOULD support light/dark theme switching via CSS variables without component code changes.
58
+ **Valid:** Components styled with CSS variables, theme切换无闪烁
59
+ **Invalid:** Hardcoded colors that don't adapt to theme
60
+ **Reference:** `phases/plan/design_system/theme_system.md`
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: ai-dlc-understand
3
+ description: "Understand Phase: Intent → Spec Delta → BDD Feature Files"
4
+ entry_point: phases/understand/entry.md
5
+ triggers:
6
+ - understand
7
+ - spec-delta
8
+ - EARS
9
+ - feature file
10
+ ---
11
+
12
+ # Understand Phase (理解)
13
+
14
+ Transform business intent into formal specification and behavior scenarios.
15
+
16
+ ## Lifecycle
17
+
18
+ See `lifecycle.md` for the full phase flow.
19
+ See `rules.md` for enforceable rules (UND-001 to UND-006).
20
+ See `prompt.md` for the sub-agent delegation prompt template.
21
+
22
+ ## 当被委派时
23
+
24
+ 0. 先调用 `TodoClear` 清除上阶段遗留的 todos,确保从空白计划开始
25
+ 1. 读取 intent 输入
26
+ 2. 按 SDD 方法生成 spec-delta(EARS 格式)
27
+ 3. 为每个 FR 写 BDD feature 文件(≥3 scenarios: positive, negative, edge)
28
+ 4. 输出到 `{spec_dir}/`(路径变量见 `aidlc/CONFIG.md`)
29
+
30
+ ## 产出
31
+
32
+ - `aidlc/requirements.md`
33
+ - `{spec_dir}/spec-delta.md`
34
+ - `{features_dir}/{domain}/{feature}.feature`
35
+ - `{cross_features_dir}/{domain}/{feature}.feature`(跨组件时)
36
+ - `{contracts_api_dir}/{name}.yaml` 或 `{contracts_events_dir}/{name}.yaml`(跨组件时)
@@ -0,0 +1,184 @@
1
+ # AI-DLC Phase 1: Understand (理解)
2
+
3
+ Transform business intent into formal specification and behavior scenarios, scoped to the right FR namespace.
4
+
5
+ ## Goal
6
+
7
+ Convert a business need into unambiguous, verifiable requirements before any design or code work begins. For multi-component features, capture the **cross-component boundary** in addition to per-component behavior.
8
+
9
+ ## Flow
10
+
11
+ ```
12
+ Intent (business need / user story)
13
+
14
+
15
+ Identify scope: which components does this touch?
16
+
17
+
18
+ SDD: Proposal (why, what, impact, affects: [native|desktop|web|backend|wxa|mya|tta|contracts])
19
+
20
+
21
+ SDD: Spec Delta (EARS format — ADDED/MODIFIED/REMOVED, FR namespaces)
22
+
23
+
24
+ BDD: Feature Files
25
+ - features/{component}/{domain}/{feature}.feature (per-component)
26
+ - aidlc/features/cross-stack/{domain}/{feature}.feature (full flow, if applies)
27
+
28
+
29
+ Gate: Human review → approved or revise
30
+ ```
31
+
32
+ ## Scope Identification
33
+
34
+ Before writing the spec, declare which components the feature affects. This determines the FR namespaces and which lifecycle paths run.
35
+
36
+ | Affects | Example | FRs |
37
+ |---------|---------|-----|
38
+ | `[backend]` only | Internal API | `BE-FR-NNN` |
39
+ | `[web, backend]` | Login UI + API | `WEB-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
40
+ | `[native, backend]` | Native login | `NATIVE-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
41
+ | `[desktop, backend]` | Desktop login | `DESKTOP-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
42
+ | `[wxa, backend]` | Mini-program login | `WXA-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
43
+ | `[mya, backend]` | Mini-program login | `MYA-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
44
+ | `[tta, backend]` | Mini-program login | `TTA-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
45
+ | `[web, native, desktop, wxa, mya, tta, backend]` | Full feature | `WEB-FR-NNN`, `NATIVE-FR-NNN`, `DESKTOP-FR-NNN`, `WXA-FR-NNN`, `MYA-FR-NNN`, `TTA-FR-NNN`, `BE-FR-NNN`, `INT-FR-NNN` |
46
+ | `[contracts]` | Schema-only change | `INT-FR-NNN` only |
47
+
48
+ `affects: [contracts]` is reserved for **pure contract changes** (e.g. add a new field shared by all components). It still requires Plan + Verify.
49
+
50
+ ## SDD — Spec-Driven Development
51
+
52
+ ### Intent Capture
53
+
54
+ ```markdown
55
+ ## Intent
56
+
57
+ **Title:** {{title}}
58
+ **Affects:** [{{components}}]
59
+ **Why:** {{why}}
60
+ **What:** {{what}}
61
+ **Success:** {{success_criteria}}
62
+ ```
63
+
64
+ ### Spec Delta (EARS) with Namespace
65
+
66
+ ```markdown
67
+ ## Change: CHG-{{id}} — {{title}}
68
+
69
+ **Affects:** [{{components}}]
70
+ **Contracts touched:** {{list or "none"}}
71
+
72
+ ## ADDED Requirements
73
+
74
+ ### INT-FR-{{nnn}}: {{contract_title}}
75
+ (only if affects contracts or ≥2 components)
76
+
77
+ **Description (Event-Driven):**
78
+ When a {{event}}, the system SHALL {{behavior}} on the contract boundary.
79
+
80
+ ### BE-FR-{{nnn}}: {{backend_title}}
81
+ **Description (Event-Driven):**
82
+ When {{event}}, the backend SHALL {{behavior}}.
83
+
84
+ ### WEB-FR-{{nnn}}: {{web_title}}
85
+ **Description (Event-Driven):**
86
+ When {{event}}, the web client SHALL {{behavior}}.
87
+
88
+ ### NATIVE-FR-{{nnn}}: {{native_title}}
89
+ **Description (Event-Driven):**
90
+ When {{event}}, the native client SHALL {{behavior}}.
91
+
92
+ ### DESKTOP-FR-{{nnn}}: {{desktop_title}}
93
+ **Description (Event-Driven):**
94
+ When {{event}}, the desktop client SHALL {{behavior}}.
95
+
96
+ ### WXA-FR-{{nnn}}: {{wxa_title}}
97
+ **Description (Event-Driven):**
98
+ When {{event}}, the WeChat Mini Program SHALL {{behavior}}.
99
+
100
+ ### MYA-FR-{{nnn}}: {{mya_title}}
101
+ **Description (Event-Driven):**
102
+ When {{event}}, the Mini Program SHALL {{behavior}}.
103
+
104
+ ### TTA-FR-{{nnn}}: {{tta_title}}
105
+ **Description (Event-Driven):**
106
+ When {{event}}, the TikTok Mini Program SHALL {{behavior}}.
107
+ ```
108
+
109
+ ### EARS Patterns
110
+
111
+ | Pattern | Syntax | When to Use |
112
+ |---------|--------|-------------|
113
+ | Ubiquitous | `The system SHALL ...` | Always-active rules |
114
+ | Event-Driven | `When {event}, the system SHALL ...` | Trigger-based behavior |
115
+ | State-Driven | `While {state}, the system SHALL ...` | Active state conditions |
116
+ | Unwanted | `If {condition}, the system SHALL ...` | Error handling |
117
+ | Optional | `Where {feature} enabled, the system SHALL ...` | Feature flags |
118
+
119
+ ## BDD — Behavior-Driven Development
120
+
121
+ ### Per-Component Feature Files
122
+
123
+ ```gherkin
124
+ @WEB-FR-001
125
+ Feature: Web Login UI
126
+
127
+ @WEB-FR-001 @positive
128
+ Scenario: User logs in successfully
129
+ Given the web app is on the login page
130
+ When the user submits valid credentials
131
+ Then the user is redirected to dashboard
132
+ And the user receives a JWT in storage
133
+
134
+ @WEB-FR-001 @negative
135
+ Scenario: Invalid credentials show error
136
+ ...
137
+
138
+ @WEB-FR-001 @edge
139
+ Scenario: Empty fields show validation
140
+ ...
141
+ ```
142
+
143
+ ### Cross-Stack Feature File (mandatory for `affects ≥ 2 components`)
144
+
145
+ ```gherkin
146
+ @INT-FR-001
147
+ Feature: Cross-stack login flow
148
+
149
+ @INT-FR-001 @positive
150
+ Scenario: Web login reaches backend and stores token
151
+ Given the web app is on the login page
152
+ When the user submits valid credentials
153
+ Then the backend POST /auth/login returns 200 with JWT
154
+ And the web app stores the token
155
+ And the user is redirected to dashboard
156
+
157
+ @INT-FR-001 @negative
158
+ Scenario: Backend rejects invalid credentials with 401
159
+ ...
160
+
161
+ @INT-FR-001 @edge
162
+ Scenario: Backend timeout surfaces a user-friendly error
163
+ ...
164
+ ```
165
+
166
+ ## Artifacts
167
+
168
+ | Artifact | Location | Purpose |
169
+ |----------|----------|---------|
170
+ | Intent | `aidlc/requirements.md` | Business need + `affects` |
171
+ | Spec delta | `aidlc/openspec/changes/{id}/spec-delta.md` | EARS, FR namespaces, `affects` |
172
+ | Per-component BDD | `apps/{component}/features/{domain}/{feature}.feature` | Component behavior |
173
+ | Cross-stack BDD | `aidlc/features/cross-stack/{domain}/{feature}.feature` | End-to-end flow |
174
+ | Contract spec | `aidlc/contracts/{api,events}/{name}.{yaml,graphql}` | INT-FR-NNN source of truth |
175
+
176
+ ## Gate
177
+
178
+ **Before advancing to Plan phase:**
179
+ - [ ] `affects: [...]` declared in spec-delta
180
+ - [ ] Spec delta uses EARS format
181
+ - [ ] Per-component FRs: each tagged `@FR-{PREFIX}-NNN` (e.g. `@NATIVE-`, `@DESKTOP-`, `@WEB-`, `@BE-`, `@WXA-`, `@MYA-`, `@TTA-`), ≥3 scenarios (positive/negative/edge)
182
+ - [ ] If `affects` includes ≥2 components: at least one `INT-FR-NNN` and a `aidlc/features/cross-stack/*.feature` with ≥3 scenarios
183
+ - [ ] If `affects` includes contracts: contract file present in `aidlc/contracts/`
184
+ - [ ] Human reviewed and approved
@@ -0,0 +1,58 @@
1
+ # Understand Phase Agent Prompt
2
+
3
+ 你是一个 AI-DLC Understand Phase Agent。
4
+ 由 Master Agent 委派处理需求分析。
5
+
6
+ ## 输入
7
+ - Intent 描述(来自用户 / Master)
8
+ - `affects: [component list]` 声明
9
+
10
+ ## 路径约定
11
+
12
+ 所有产物路径遵循 `aidlc/CONFIG.md` 中的变量定义。关键路径:
13
+ - Spec Delta: `{spec_dir}/spec-delta.md`
14
+ - 组件 Feature 文件: `{features_dir}/{name}.feature`
15
+ - 跨栈 Feature 文件: `{cross_features_dir}/{name}.feature`
16
+ - 合约文件: `{contracts_api_dir}/{name}.yaml` 或 `{contracts_events_dir}/{name}.yaml`
17
+
18
+ ## 任务
19
+
20
+ 1. **SDD: Intent Capture**
21
+ - 在 `aidlc/requirements.md` 记录 Why / What / Success Criteria / Scope
22
+ - 声明 `affects: [native|desktop|web|backend|wxa|mya|tta|contracts]`
23
+
24
+ 2. **SDD: Spec Delta (EARS)**
25
+ - 在 `{spec_dir}/spec-delta.md` 输出
26
+ - 使用 EARS 格式:Ubiquitous / Event-Driven / State-Driven / Unwanted / Optional
27
+ - FR 必须使用命名空间前缀(BE-FR-001, WEB-FR-001 等)
28
+
29
+ 3. **BDD: Feature Files**
30
+ - 每个 FR ≥3 个 scenario(positive / negative / edge)
31
+ - Per-component: `{features_dir}/{domain}/{feature}.feature`
32
+ - Cross-stack: `{cross_features_dir}/{domain}/{feature}.feature`
33
+ - Tag 使用 `@FR-PREFIX-NNN`
34
+
35
+ 4. **Contract First**(跨组件时)
36
+ - 在 `{contracts_api_dir}/` 或 `{contracts_events_dir}/` 创建合约文件
37
+ - 引用 INT-FR-NNN
38
+
39
+ ## 输出产物
40
+ - `aidlc/requirements.md`
41
+ - `{spec_dir}/spec-delta.md`
42
+ - `{features_dir}/{domain}/{feature}.feature`
43
+ - `{cross_features_dir}/{domain}/{feature}.feature`(跨组件时)
44
+ - `{contracts_api_dir}/{name}.yaml` 或 `{contracts_events_dir}/{name}.yaml`(跨组件时)
45
+
46
+ ## 约束
47
+ - 开始前先调用 `TodoClear` 清除可能遗留的 todos,确保从空白计划开始
48
+ - 遵守 `rules.md` 中的 UND-001 到 UND-006
49
+ - 遵守 `core/security.md`
50
+ - 完成后将产物返回给 Master Agent,由 Master Agent 执行 Human Gate 审查(AskUser)
51
+
52
+ ## 完成报告
53
+
54
+ 完成后返回以下信息给 Master Agent(用于写入 Registry):
55
+ - `phase: "understand"`
56
+ - `status: "completed"`
57
+ - `artifacts: [生成的文件路径列表]`
58
+ - `gatePassed: true/false`