@scemoon/cdh 1.0.9 → 1.0.10-beta.1

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/package.json +9 -2
  2. package/ai-dlc-skill/SKILL.md +0 -106
  3. package/ai-dlc-skill/architecture/project-structure.md +0 -78
  4. package/ai-dlc-skill/brownfield/README.md +0 -36
  5. package/ai-dlc-skill/brownfield/entry.md +0 -45
  6. package/ai-dlc-skill/brownfield/generate-context.sh +0 -64
  7. package/ai-dlc-skill/brownfield/scripts/deps.sh +0 -27
  8. package/ai-dlc-skill/brownfield/scripts/discover.sh +0 -34
  9. package/ai-dlc-skill/brownfield/scripts/extract-api.sh +0 -45
  10. package/ai-dlc-skill/components/backend.md +0 -47
  11. package/ai-dlc-skill/components/desktop.md +0 -63
  12. package/ai-dlc-skill/components/mya.md +0 -219
  13. package/ai-dlc-skill/components/native.md +0 -73
  14. package/ai-dlc-skill/components/tta.md +0 -235
  15. package/ai-dlc-skill/components/web.md +0 -77
  16. package/ai-dlc-skill/components/wxa.md +0 -219
  17. package/ai-dlc-skill/contracts/README.md +0 -25
  18. package/ai-dlc-skill/core/adaptive-flow.md +0 -107
  19. package/ai-dlc-skill/core/security.md +0 -29
  20. package/ai-dlc-skill/core/task-registry.md +0 -153
  21. package/ai-dlc-skill/cross-tool/README.md +0 -20
  22. package/ai-dlc-skill/cross-tool/cline/export.sh +0 -38
  23. package/ai-dlc-skill/cross-tool/copilot/export.sh +0 -41
  24. package/ai-dlc-skill/cross-tool/cursor/export.sh +0 -53
  25. package/ai-dlc-skill/cross-tool/onecode/export.sh +0 -27
  26. package/ai-dlc-skill/cross-tool/opencode/export.sh +0 -38
  27. package/ai-dlc-skill/phases/debug/entry.md +0 -48
  28. package/ai-dlc-skill/phases/debug/lifecycle.md +0 -284
  29. package/ai-dlc-skill/phases/deliver/entry.md +0 -35
  30. package/ai-dlc-skill/phases/deliver/lifecycle.md +0 -185
  31. package/ai-dlc-skill/phases/deliver/prompt.md +0 -54
  32. package/ai-dlc-skill/phases/deliver/rules.md +0 -61
  33. package/ai-dlc-skill/phases/plan/design_system/accessibility.md +0 -268
  34. package/ai-dlc-skill/phases/plan/design_system/atomic_design.md +0 -341
  35. package/ai-dlc-skill/phases/plan/design_system/component_spec.md +0 -398
  36. package/ai-dlc-skill/phases/plan/design_system/design_tokens.md +0 -190
  37. package/ai-dlc-skill/phases/plan/design_system/iconography.md +0 -299
  38. package/ai-dlc-skill/phases/plan/design_system/platform_ui/desktop.md +0 -318
  39. package/ai-dlc-skill/phases/plan/design_system/platform_ui/mya.md +0 -354
  40. package/ai-dlc-skill/phases/plan/design_system/platform_ui/native.md +0 -328
  41. package/ai-dlc-skill/phases/plan/design_system/platform_ui/tta.md +0 -394
  42. package/ai-dlc-skill/phases/plan/design_system/platform_ui/web.md +0 -287
  43. package/ai-dlc-skill/phases/plan/design_system/platform_ui/wxa.md +0 -374
  44. package/ai-dlc-skill/phases/plan/design_system/theme_system.md +0 -318
  45. package/ai-dlc-skill/phases/plan/entry.md +0 -33
  46. package/ai-dlc-skill/phases/plan/lifecycle.md +0 -260
  47. package/ai-dlc-skill/phases/plan/prompt.md +0 -75
  48. package/ai-dlc-skill/phases/plan/rules.md +0 -60
  49. package/ai-dlc-skill/phases/understand/entry.md +0 -36
  50. package/ai-dlc-skill/phases/understand/lifecycle.md +0 -184
  51. package/ai-dlc-skill/phases/understand/prompt.md +0 -58
  52. package/ai-dlc-skill/phases/understand/rules.md +0 -49
  53. package/ai-dlc-skill/phases/verify/config/base_url.md +0 -65
  54. package/ai-dlc-skill/phases/verify/entry.md +0 -59
  55. package/ai-dlc-skill/phases/verify/gates/browser_e2e.md +0 -96
  56. package/ai-dlc-skill/phases/verify/lifecycle.md +0 -217
  57. package/ai-dlc-skill/phases/verify/prompt.md +0 -73
  58. package/ai-dlc-skill/phases/verify/rules.md +0 -91
  59. package/ai-dlc-skill/phases/verify/runners/playwright_local.md +0 -103
  60. package/ai-dlc-skill/practices/bdd.md +0 -119
  61. package/ai-dlc-skill/practices/sdd.md +0 -84
  62. package/ai-dlc-skill/practices/tdd.md +0 -128
  63. package/ai-dlc-skill/providers/README.md +0 -114
  64. package/ai-dlc-skill/providers/aliyun/SKILL.md +0 -204
  65. package/ai-dlc-skill/providers/aliyun/api/rest-api.md +0 -214
  66. package/ai-dlc-skill/providers/aliyun/api/sdk.md +0 -307
  67. package/ai-dlc-skill/providers/aliyun/best-practices/database-design.md +0 -363
  68. package/ai-dlc-skill/providers/aliyun/best-practices/function-design.md +0 -424
  69. package/ai-dlc-skill/providers/aliyun/best-practices/troubleshooting.md +0 -258
  70. package/ai-dlc-skill/providers/aliyun/cli/database.md +0 -263
  71. package/ai-dlc-skill/providers/aliyun/cli/functions.md +0 -263
  72. package/ai-dlc-skill/providers/aliyun/cli/hosting.md +0 -226
  73. package/ai-dlc-skill/providers/aliyun/cli/setup.md +0 -235
  74. package/ai-dlc-skill/providers/aliyun/cli/storage.md +0 -315
  75. package/ai-dlc-skill/providers/aliyun/deployment.yaml +0 -66
  76. package/ai-dlc-skill/providers/aliyun/integration/ci-cd.md +0 -288
  77. package/ai-dlc-skill/providers/aliyun/preview.yaml +0 -84
  78. package/ai-dlc-skill/providers/aliyun/provider.yaml +0 -160
  79. package/ai-dlc-skill/providers/aliyun/security/authentication.md +0 -254
  80. package/ai-dlc-skill/providers/aliyun/services/cdn-hosting.md +0 -220
  81. package/ai-dlc-skill/providers/aliyun/services/database.md +0 -319
  82. package/ai-dlc-skill/providers/aliyun/services/function-compute.md +0 -273
  83. package/ai-dlc-skill/providers/aliyun/services/overview.md +0 -163
  84. package/ai-dlc-skill/providers/aliyun/services/serverless-app-engine.md +0 -266
  85. package/ai-dlc-skill/providers/aliyun/services/storage.md +0 -269
  86. package/ai-dlc-skill/providers/tcb/SKILL.md +0 -208
  87. package/ai-dlc-skill/providers/tcb/api/rest-api.md +0 -338
  88. package/ai-dlc-skill/providers/tcb/api/sdk.md +0 -288
  89. package/ai-dlc-skill/providers/tcb/best-practices/database-design.md +0 -452
  90. package/ai-dlc-skill/providers/tcb/best-practices/function-design.md +0 -502
  91. package/ai-dlc-skill/providers/tcb/best-practices/troubleshooting.md +0 -462
  92. package/ai-dlc-skill/providers/tcb/cli/cls.md +0 -133
  93. package/ai-dlc-skill/providers/tcb/cli/database.md +0 -230
  94. package/ai-dlc-skill/providers/tcb/cli/env.md +0 -207
  95. package/ai-dlc-skill/providers/tcb/cli/functions.md +0 -276
  96. package/ai-dlc-skill/providers/tcb/cli/hosting.md +0 -219
  97. package/ai-dlc-skill/providers/tcb/cli/setup.md +0 -218
  98. package/ai-dlc-skill/providers/tcb/cli/storage.md +0 -233
  99. package/ai-dlc-skill/providers/tcb/deployment.yaml +0 -111
  100. package/ai-dlc-skill/providers/tcb/integration/ci-cd.md +0 -309
  101. package/ai-dlc-skill/providers/tcb/integration/mcp-server.md +0 -371
  102. package/ai-dlc-skill/providers/tcb/preview.yaml +0 -83
  103. package/ai-dlc-skill/providers/tcb/provider.yaml +0 -172
  104. package/ai-dlc-skill/providers/tcb/security/authentication.md +0 -241
  105. package/ai-dlc-skill/providers/tcb/services/cloud-database.md +0 -299
  106. package/ai-dlc-skill/providers/tcb/services/cloud-functions.md +0 -265
  107. package/ai-dlc-skill/providers/tcb/services/cloud-hosting.md +0 -264
  108. package/ai-dlc-skill/providers/tcb/services/cloud-run.md +0 -285
  109. package/ai-dlc-skill/providers/tcb/services/cloud-storage.md +0 -245
  110. package/ai-dlc-skill/providers/tcb/services/overview.md +0 -174
  111. package/ai-dlc-skill/pybdd/README.md +0 -41
  112. package/ai-dlc-skill/pybdd/conftest.py +0 -17
  113. package/ai-dlc-skill/pybdd/example/auth/login.feature +0 -32
  114. package/ai-dlc-skill/pybdd/pytest.ini +0 -5
  115. package/ai-dlc-skill/pybdd/steps/.gitkeep +0 -1
  116. package/ai-dlc-skill/pybdd/steps/test_example_steps.py +0 -65
  117. package/ai-dlc-skill/requirements.md +0 -140
  118. package/ai-dlc-skill/skill.yaml +0 -135
  119. package/ai-dlc-skill/templates/brownfield/context.md +0 -78
  120. package/ai-dlc-skill/templates/integration/CHANGELOG.md +0 -41
  121. package/ai-dlc-skill/templates/integration/asyncapi.yaml +0 -43
  122. package/ai-dlc-skill/templates/integration/contract-diff.md +0 -63
  123. package/ai-dlc-skill/templates/integration/contract-spec.md +0 -49
  124. package/ai-dlc-skill/templates/integration/openapi.yaml +0 -18
  125. package/ai-dlc-skill/templates/integration/runtime-contract.yaml +0 -36
  126. package/ai-dlc-skill/templates/plan/design.md +0 -49
  127. package/ai-dlc-skill/templates/plan/task-list.md +0 -32
  128. package/ai-dlc-skill/templates/project/README.md +0 -126
  129. package/ai-dlc-skill/templates/project/template.md +0 -119
  130. package/ai-dlc-skill/templates/understand/feature.feature +0 -30
  131. package/ai-dlc-skill/templates/understand/intent.md +0 -29
  132. package/ai-dlc-skill/templates/understand/spec-delta.md +0 -47
  133. package/ai-dlc-skill/templates/verify/test-unit.py +0 -27
  134. package/ai-dlc-skill/walkthrough/collect.sh +0 -50
  135. package/ai-dlc-skill/walkthrough/template.md +0 -54
  136. package/cdh/__init__.py +0 -0
  137. package/cdh/__main__.py +0 -4
  138. package/cdh/__pycache__/__init__.cpython-314.pyc +0 -0
  139. package/cdh/__pycache__/cli.cpython-314.pyc +0 -0
  140. package/cdh/__pycache__/cli_logging.cpython-314.pyc +0 -0
  141. package/cdh/__pycache__/config.cpython-314.pyc +0 -0
  142. package/cdh/__pycache__/project_loader.cpython-314.pyc +0 -0
  143. package/cdh/__pycache__/scaffold.cpython-314.pyc +0 -0
  144. package/cdh/__pycache__/session_store.cpython-314.pyc +0 -0
  145. package/cdh/cdh_session_aggregator.py +0 -258
  146. package/cdh/cli.py +0 -3000
  147. package/cdh/cli_logging.py +0 -45
  148. package/cdh/config.py +0 -28
  149. package/cdh/event_loop/__init__.py +0 -7
  150. package/cdh/event_loop/bus.py +0 -123
  151. package/cdh/event_loop/events.py +0 -25
  152. package/cdh/event_loop/runner.py +0 -28
  153. package/cdh/event_loop/scheduler.py +0 -158
  154. package/cdh/generators/__init__.py +0 -35
  155. package/cdh/generators/_runtime.py +0 -176
  156. package/cdh/generators/ada/MANIFEST.toml +0 -14
  157. package/cdh/generators/ada/template.ads.tmpl +0 -7
  158. package/cdh/generators/bash/MANIFEST.toml +0 -14
  159. package/cdh/generators/bash/template.sh.tmpl +0 -16
  160. package/cdh/generators/builtin_index.json +0 -590
  161. package/cdh/generators/c/MANIFEST.toml +0 -14
  162. package/cdh/generators/c/template.h.tmpl +0 -20
  163. package/cdh/generators/cli.py +0 -379
  164. package/cdh/generators/clojure/MANIFEST.toml +0 -14
  165. package/cdh/generators/clojure/template.clj.tmpl +0 -13
  166. package/cdh/generators/cobol/MANIFEST.toml +0 -14
  167. package/cdh/generators/cobol/template.cbl.tmpl +0 -14
  168. package/cdh/generators/cpp/MANIFEST.toml +0 -14
  169. package/cdh/generators/cpp/template.hpp.tmpl +0 -32
  170. package/cdh/generators/crystal/MANIFEST.toml +0 -14
  171. package/cdh/generators/crystal/template.cr.tmpl +0 -11
  172. package/cdh/generators/csharp/MANIFEST.toml +0 -23
  173. package/cdh/generators/csharp/template.cs.tmpl +0 -14
  174. package/cdh/generators/cython/MANIFEST.toml +0 -14
  175. package/cdh/generators/cython/template.pyx.tmpl +0 -17
  176. package/cdh/generators/d/MANIFEST.toml +0 -14
  177. package/cdh/generators/d/template.d.tmpl +0 -24
  178. package/cdh/generators/dart/MANIFEST.toml +0 -17
  179. package/cdh/generators/dart/template.dart.tmpl +0 -27
  180. package/cdh/generators/elixir/MANIFEST.toml +0 -17
  181. package/cdh/generators/elixir/template.ex.tmpl +0 -27
  182. package/cdh/generators/elm/MANIFEST.toml +0 -14
  183. package/cdh/generators/elm/template.elm.tmpl +0 -20
  184. package/cdh/generators/erlang/MANIFEST.toml +0 -14
  185. package/cdh/generators/erlang/template.erl.tmpl +0 -18
  186. package/cdh/generators/fortran/MANIFEST.toml +0 -14
  187. package/cdh/generators/fortran/template.f90.tmpl +0 -24
  188. package/cdh/generators/fsharp/MANIFEST.toml +0 -14
  189. package/cdh/generators/fsharp/template.fs.tmpl +0 -17
  190. package/cdh/generators/go/MANIFEST.toml +0 -18
  191. package/cdh/generators/go/imports.go.tmpl +0 -3
  192. package/cdh/generators/go/template.go.tmpl +0 -9
  193. package/cdh/generators/graphql-schema/MANIFEST.toml +0 -18
  194. package/cdh/generators/graphql-schema/template.graphqls.tmpl +0 -12
  195. package/cdh/generators/groovy/MANIFEST.toml +0 -14
  196. package/cdh/generators/groovy/template.groovy.tmpl +0 -28
  197. package/cdh/generators/hack/MANIFEST.toml +0 -14
  198. package/cdh/generators/hack/template.hh.tmpl +0 -24
  199. package/cdh/generators/haskell/MANIFEST.toml +0 -14
  200. package/cdh/generators/haskell/template.hs.tmpl +0 -20
  201. package/cdh/generators/haxe/MANIFEST.toml +0 -14
  202. package/cdh/generators/haxe/template.hx.tmpl +0 -20
  203. package/cdh/generators/idris/MANIFEST.toml +0 -14
  204. package/cdh/generators/idris/template.idr.tmpl +0 -22
  205. package/cdh/generators/java/MANIFEST.toml +0 -18
  206. package/cdh/generators/java/template.java.tmpl +0 -13
  207. package/cdh/generators/julia/MANIFEST.toml +0 -14
  208. package/cdh/generators/julia/template.jl.tmpl +0 -27
  209. package/cdh/generators/kotlin/MANIFEST.toml +0 -18
  210. package/cdh/generators/kotlin/template.kt.tmpl +0 -12
  211. package/cdh/generators/lua/MANIFEST.toml +0 -14
  212. package/cdh/generators/lua/template.lua.tmpl +0 -27
  213. package/cdh/generators/matlab/MANIFEST.toml +0 -14
  214. package/cdh/generators/matlab/template.m.tmpl +0 -26
  215. package/cdh/generators/nim/MANIFEST.toml +0 -14
  216. package/cdh/generators/nim/template.nim.tmpl +0 -12
  217. package/cdh/generators/nix/MANIFEST.toml +0 -14
  218. package/cdh/generators/nix/template.nix.tmpl +0 -8
  219. package/cdh/generators/objective-c/MANIFEST.toml +0 -14
  220. package/cdh/generators/objective-c/template.m.tmpl +0 -31
  221. package/cdh/generators/ocaml/MANIFEST.toml +0 -14
  222. package/cdh/generators/ocaml/template.ml.tmpl +0 -13
  223. package/cdh/generators/pascal/MANIFEST.toml +0 -14
  224. package/cdh/generators/pascal/template.pas.tmpl +0 -5
  225. package/cdh/generators/perl/MANIFEST.toml +0 -14
  226. package/cdh/generators/perl/template.pm.tmpl +0 -27
  227. package/cdh/generators/php/MANIFEST.toml +0 -17
  228. package/cdh/generators/php/template.php.tmpl +0 -31
  229. package/cdh/generators/powershell/MANIFEST.toml +0 -14
  230. package/cdh/generators/powershell/template.ps1.tmpl +0 -20
  231. package/cdh/generators/protobuf/MANIFEST.toml +0 -18
  232. package/cdh/generators/protobuf/template.proto.tmpl +0 -13
  233. package/cdh/generators/python/MANIFEST.toml +0 -18
  234. package/cdh/generators/python/template.py.tmpl +0 -12
  235. package/cdh/generators/r/MANIFEST.toml +0 -14
  236. package/cdh/generators/r/template.R.tmpl +0 -29
  237. package/cdh/generators/racket/MANIFEST.toml +0 -14
  238. package/cdh/generators/racket/template.rkt.tmpl +0 -15
  239. package/cdh/generators/registry.py +0 -211
  240. package/cdh/generators/ruby/MANIFEST.toml +0 -17
  241. package/cdh/generators/ruby/template.rb.tmpl +0 -27
  242. package/cdh/generators/rust/MANIFEST.toml +0 -18
  243. package/cdh/generators/rust/template.rs.tmpl +0 -16
  244. package/cdh/generators/scala/MANIFEST.toml +0 -20
  245. package/cdh/generators/scala/template.scala.tmpl +0 -13
  246. package/cdh/generators/scheme/MANIFEST.toml +0 -14
  247. package/cdh/generators/scheme/template.scm.tmpl +0 -16
  248. package/cdh/generators/solidity/MANIFEST.toml +0 -14
  249. package/cdh/generators/solidity/template.sol.tmpl +0 -24
  250. package/cdh/generators/swift/MANIFEST.toml +0 -18
  251. package/cdh/generators/swift/template.swift.tmpl +0 -10
  252. package/cdh/generators/typescript/MANIFEST.toml +0 -18
  253. package/cdh/generators/typescript/template.ts.tmpl +0 -7
  254. package/cdh/generators/version.py +0 -214
  255. package/cdh/generators/zig/MANIFEST.toml +0 -14
  256. package/cdh/generators/zig/template.zig.tmpl +0 -20
  257. package/cdh/logging.py +0 -314
  258. package/cdh/optimizer/__init__.py +0 -7
  259. package/cdh/optimizer/loop.py +0 -201
  260. package/cdh/optimizer/mutation.py +0 -85
  261. package/cdh/optimizer/reward.py +0 -51
  262. package/cdh/optimizer/tracker.py +0 -118
  263. package/cdh/project_loader.py +0 -1022
  264. package/cdh/rules/patterns.yaml +0 -132
  265. package/cdh/rules/spectral.yaml +0 -301
  266. package/cdh/scaffold.py +0 -1436
  267. package/cdh/session_store.py +0 -221
  268. package/cdh/state_schema.py +0 -127
  269. package/cdh/tools/__init__.py +0 -57
  270. package/cdh/tools/cls_search.py +0 -406
  271. package/cdh/tools/contract_diff.py +0 -644
  272. package/cdh/tools/deploy_stack.py +0 -590
  273. package/cdh/tools/generate_shared.py +0 -300
  274. package/cdh/tools/iac_gen.py +0 -224
  275. package/cdh/tools/otel_export.py +0 -125
  276. package/cdh/tools/pattern_detect.py +0 -451
  277. package/cdh/tools/retrofit_labels.py +0 -505
  278. package/cdh/trace/__init__.py +0 -101
  279. package/cdh/trace/__pycache__/__init__.cpython-314.pyc +0 -0
  280. package/cdh/trace/dashboard/__init__.py +0 -61
  281. package/cdh/trace/dashboard/api.py +0 -1032
  282. package/cdh/trace/dashboard/app.html +0 -1321
  283. package/cdh/trace/dashboard/server.py +0 -310
  284. package/cdh/trace/otel_exporter.py +0 -462
  285. package/cdh/trace/otel_tracer.py +0 -281
  286. package/cdh/tui.py +0 -1084
  287. package/cdh/validators/__init__.py +0 -16
  288. package/cdh/validators/__pycache__/__init__.cpython-314.pyc +0 -0
  289. package/cdh/validators/__pycache__/bdd.cpython-314.pyc +0 -0
  290. package/cdh/validators/__pycache__/dag.cpython-314.pyc +0 -0
  291. package/cdh/validators/__pycache__/ears.cpython-314.pyc +0 -0
  292. package/cdh/validators/__pycache__/fr_namespace.cpython-314.pyc +0 -0
  293. package/cdh/validators/bdd.py +0 -144
  294. package/cdh/validators/dag.py +0 -179
  295. package/cdh/validators/ears.py +0 -452
  296. package/cdh/validators/fr_namespace.py +0 -143
  297. package/cdh/validators/spectral.py +0 -475
  298. package/cdh/verification/__init__.py +0 -3
  299. package/cdh/verification/aggregation.py +0 -53
  300. package/cdh/verification/gates/__init__.py +0 -5
  301. package/cdh/verification/gates/base.py +0 -18
  302. package/cdh/verification/gates/lint_gate.py +0 -37
  303. package/cdh/verification/gates/test_gate.py +0 -41
  304. package/cdh/verification/loop.py +0 -93
  305. package/cdh/verification/policy.py +0 -24
  306. package/onecode/__init__.py +0 -1
  307. package/onecode/__main__.py +0 -4
  308. package/onecode/__pycache__/__init__.cpython-314.pyc +0 -0
  309. package/onecode/__pycache__/cli.cpython-314.pyc +0 -0
  310. package/onecode/__pycache__/commands.cpython-314.pyc +0 -0
  311. package/onecode/__pycache__/config.cpython-314.pyc +0 -0
  312. package/onecode/__pycache__/migrate.cpython-314.pyc +0 -0
  313. package/onecode/agent/__init__.py +0 -0
  314. package/onecode/agent/__pycache__/__init__.cpython-314.pyc +0 -0
  315. package/onecode/agent/__pycache__/cdh_loader.cpython-314.pyc +0 -0
  316. package/onecode/agent/__pycache__/checkpoint.cpython-314.pyc +0 -0
  317. package/onecode/agent/__pycache__/context.cpython-314.pyc +0 -0
  318. package/onecode/agent/__pycache__/engine.cpython-314.pyc +0 -0
  319. package/onecode/agent/__pycache__/hooks.cpython-314.pyc +0 -0
  320. package/onecode/agent/__pycache__/onecode_agent_acp.cpython-314.pyc +0 -0
  321. package/onecode/agent/__pycache__/permissions.cpython-314.pyc +0 -0
  322. package/onecode/agent/__pycache__/permissions_store.cpython-314.pyc +0 -0
  323. package/onecode/agent/__pycache__/project_doc.cpython-314.pyc +0 -0
  324. package/onecode/agent/__pycache__/session.cpython-314.pyc +0 -0
  325. package/onecode/agent/__pycache__/turn_record.cpython-314.pyc +0 -0
  326. package/onecode/agent/agents/__init__.py +0 -29
  327. package/onecode/agent/agents/__pycache__/__init__.cpython-314.pyc +0 -0
  328. package/onecode/agent/agents/__pycache__/types.cpython-314.pyc +0 -0
  329. package/onecode/agent/agents/prompts/build-agent.md +0 -50
  330. package/onecode/agent/agents/prompts/compaction-instructions.md +0 -12
  331. package/onecode/agent/agents/prompts/explore-agent.md +0 -42
  332. package/onecode/agent/agents/prompts/plan-agent.md +0 -44
  333. package/onecode/agent/agents/prompts/plan-gate-hard.md +0 -4
  334. package/onecode/agent/agents/prompts/plan-gate-soft.md +0 -3
  335. package/onecode/agent/agents/prompts/solo-agent.md +0 -57
  336. package/onecode/agent/agents/prompts/subagent-constraints.md +0 -10
  337. package/onecode/agent/agents/prompts/summary-instructions.md +0 -7
  338. package/onecode/agent/agents/prompts/title-instructions.md +0 -3
  339. package/onecode/agent/agents/prompts/tool-descriptions.md +0 -129
  340. package/onecode/agent/agents/types.py +0 -786
  341. package/onecode/agent/attachments.py +0 -112
  342. package/onecode/agent/cdh_loader.py +0 -3
  343. package/onecode/agent/checkpoint.py +0 -285
  344. package/onecode/agent/context.py +0 -465
  345. package/onecode/agent/engine.py +0 -3547
  346. package/onecode/agent/event_bridge.py +0 -75
  347. package/onecode/agent/hooks.py +0 -86
  348. package/onecode/agent/onecode_agent_acp.py +0 -2993
  349. package/onecode/agent/permissions.py +0 -150
  350. package/onecode/agent/permissions_store.py +0 -73
  351. package/onecode/agent/project_doc.py +0 -19
  352. package/onecode/agent/question_detect.py +0 -230
  353. package/onecode/agent/session.py +0 -3
  354. package/onecode/agent/snapshot.py +0 -144
  355. package/onecode/agent/tools/__init__.py +0 -17
  356. package/onecode/agent/tools/__pycache__/__init__.cpython-314.pyc +0 -0
  357. package/onecode/agent/tools/__pycache__/agent_tools.cpython-314.pyc +0 -0
  358. package/onecode/agent/tools/__pycache__/apply_patch_tool.cpython-314.pyc +0 -0
  359. package/onecode/agent/tools/__pycache__/bash_tool.cpython-314.pyc +0 -0
  360. package/onecode/agent/tools/__pycache__/communication_tools.cpython-314.pyc +0 -0
  361. package/onecode/agent/tools/__pycache__/config_tool.cpython-314.pyc +0 -0
  362. package/onecode/agent/tools/__pycache__/cron_tools.cpython-314.pyc +0 -0
  363. package/onecode/agent/tools/__pycache__/errors.cpython-314.pyc +0 -0
  364. package/onecode/agent/tools/__pycache__/file_ops.cpython-314.pyc +0 -0
  365. package/onecode/agent/tools/__pycache__/file_tools.cpython-314.pyc +0 -0
  366. package/onecode/agent/tools/__pycache__/git_tools.cpython-314.pyc +0 -0
  367. package/onecode/agent/tools/__pycache__/lsp_tools.cpython-314.pyc +0 -0
  368. package/onecode/agent/tools/__pycache__/mcp_tools.cpython-314.pyc +0 -0
  369. package/onecode/agent/tools/__pycache__/permission_handler.cpython-314.pyc +0 -0
  370. package/onecode/agent/tools/__pycache__/permissions.cpython-314.pyc +0 -0
  371. package/onecode/agent/tools/__pycache__/protocol.cpython-314.pyc +0 -0
  372. package/onecode/agent/tools/__pycache__/registry.cpython-314.pyc +0 -0
  373. package/onecode/agent/tools/__pycache__/sandbox.cpython-314.pyc +0 -0
  374. package/onecode/agent/tools/__pycache__/schema_validation.cpython-314.pyc +0 -0
  375. package/onecode/agent/tools/__pycache__/skill_tools.cpython-314.pyc +0 -0
  376. package/onecode/agent/tools/__pycache__/todo_tools.cpython-314.pyc +0 -0
  377. package/onecode/agent/tools/__pycache__/web_tools.cpython-314.pyc +0 -0
  378. package/onecode/agent/tools/agent_tools.py +0 -128
  379. package/onecode/agent/tools/apply_patch_tool.py +0 -138
  380. package/onecode/agent/tools/bash_tool.py +0 -121
  381. package/onecode/agent/tools/communication_tools.py +0 -154
  382. package/onecode/agent/tools/config_tool.py +0 -130
  383. package/onecode/agent/tools/cron_tools.py +0 -178
  384. package/onecode/agent/tools/errors.py +0 -17
  385. package/onecode/agent/tools/file_ops.py +0 -221
  386. package/onecode/agent/tools/file_tools.py +0 -225
  387. package/onecode/agent/tools/git_tools.py +0 -88
  388. package/onecode/agent/tools/lsp_tools.py +0 -404
  389. package/onecode/agent/tools/mcp_tools.py +0 -211
  390. package/onecode/agent/tools/permission_handler.py +0 -46
  391. package/onecode/agent/tools/permissions.py +0 -77
  392. package/onecode/agent/tools/protocol.py +0 -20
  393. package/onecode/agent/tools/registry.py +0 -210
  394. package/onecode/agent/tools/sandbox.py +0 -460
  395. package/onecode/agent/tools/schema_validation.py +0 -100
  396. package/onecode/agent/tools/skill_tools.py +0 -52
  397. package/onecode/agent/tools/todo_tools.py +0 -208
  398. package/onecode/agent/tools/web_tools.py +0 -530
  399. package/onecode/agent/turn_record.py +0 -28
  400. package/onecode/builtin_skills/agent-browser/SKILL.md +0 -212
  401. package/onecode/builtin_skills/agent-browser/skill.yaml +0 -8
  402. package/onecode/builtin_skills/cloudbase/SKILL.md +0 -162
  403. package/onecode/builtin_skills/cloudbase/skill.yaml +0 -7
  404. package/onecode/builtin_skills/git/SKILL.md +0 -64
  405. package/onecode/builtin_skills/git/skill.yaml +0 -7
  406. package/onecode/builtin_skills/shell/SKILL.md +0 -58
  407. package/onecode/builtin_skills/shell/skill.yaml +0 -8
  408. package/onecode/builtin_skills/skill-creator/SKILL.md +0 -106
  409. package/onecode/builtin_skills/skill-creator/skill.yaml +0 -8
  410. package/onecode/cli.py +0 -1325
  411. package/onecode/codebase/__init__.py +0 -69
  412. package/onecode/codebase/__pycache__/__init__.cpython-314.pyc +0 -0
  413. package/onecode/codebase/__pycache__/chunker.cpython-314.pyc +0 -0
  414. package/onecode/codebase/__pycache__/indexer.cpython-314.pyc +0 -0
  415. package/onecode/codebase/__pycache__/retriever.cpython-314.pyc +0 -0
  416. package/onecode/codebase/__pycache__/storage.cpython-314.pyc +0 -0
  417. package/onecode/codebase/__pycache__/tools.cpython-314.pyc +0 -0
  418. package/onecode/codebase/chunker.py +0 -125
  419. package/onecode/codebase/indexer.py +0 -154
  420. package/onecode/codebase/retriever.py +0 -240
  421. package/onecode/codebase/storage.py +0 -153
  422. package/onecode/codebase/tools.py +0 -59
  423. package/onecode/commands.py +0 -673
  424. package/onecode/config.py +0 -539
  425. package/onecode/config_screen.py +0 -486
  426. package/onecode/cron/__init__.py +0 -3
  427. package/onecode/lsp/__init__.py +0 -3
  428. package/onecode/mcp/__init__.py +0 -11
  429. package/onecode/mcp/__pycache__/__init__.cpython-314.pyc +0 -0
  430. package/onecode/mcp/__pycache__/client.cpython-314.pyc +0 -0
  431. package/onecode/mcp/__pycache__/cloudbase.cpython-314.pyc +0 -0
  432. package/onecode/mcp/__pycache__/config.cpython-314.pyc +0 -0
  433. package/onecode/mcp/__pycache__/manager.cpython-314.pyc +0 -0
  434. package/onecode/mcp/__pycache__/oauth.cpython-314.pyc +0 -0
  435. package/onecode/mcp/client.py +0 -305
  436. package/onecode/mcp/cloudbase.py +0 -188
  437. package/onecode/mcp/config.py +0 -363
  438. package/onecode/mcp/manager.py +0 -603
  439. package/onecode/mcp/oauth.py +0 -199
  440. package/onecode/memory/__init__.py +0 -106
  441. package/onecode/memory/__pycache__/__init__.cpython-314.pyc +0 -0
  442. package/onecode/memory/__pycache__/backend.cpython-314.pyc +0 -0
  443. package/onecode/memory/__pycache__/pyramid.cpython-314.pyc +0 -0
  444. package/onecode/memory/__pycache__/recall.cpython-314.pyc +0 -0
  445. package/onecode/memory/backend.py +0 -179
  446. package/onecode/memory/pyramid.py +0 -145
  447. package/onecode/memory/recall.py +0 -322
  448. package/onecode/migrate.py +0 -122
  449. package/onecode/models/__init__.py +0 -4
  450. package/onecode/models/__pycache__/__init__.cpython-314.pyc +0 -0
  451. package/onecode/models/__pycache__/errors.cpython-314.pyc +0 -0
  452. package/onecode/models/__pycache__/messages.cpython-314.pyc +0 -0
  453. package/onecode/models/__pycache__/ollama_manager.cpython-314.pyc +0 -0
  454. package/onecode/models/__pycache__/provider.cpython-314.pyc +0 -0
  455. package/onecode/models/__pycache__/registry.cpython-314.pyc +0 -0
  456. package/onecode/models/errors.py +0 -104
  457. package/onecode/models/messages.py +0 -750
  458. package/onecode/models/ollama_manager.py +0 -167
  459. package/onecode/models/provider.py +0 -730
  460. package/onecode/models/providers/__init__.py +0 -17
  461. package/onecode/models/providers/__pycache__/__init__.cpython-314.pyc +0 -0
  462. package/onecode/models/providers/__pycache__/anthropic_provider.cpython-314.pyc +0 -0
  463. package/onecode/models/providers/__pycache__/deepseek_provider.cpython-314.pyc +0 -0
  464. package/onecode/models/providers/__pycache__/glm_provider.cpython-314.pyc +0 -0
  465. package/onecode/models/providers/__pycache__/minimax_provider.cpython-314.pyc +0 -0
  466. package/onecode/models/providers/__pycache__/minimaxi_provider.cpython-314.pyc +0 -0
  467. package/onecode/models/providers/__pycache__/ollama_provider.cpython-314.pyc +0 -0
  468. package/onecode/models/providers/__pycache__/openai_provider.cpython-314.pyc +0 -0
  469. package/onecode/models/providers/anthropic_provider.py +0 -286
  470. package/onecode/models/providers/deepseek_provider.py +0 -221
  471. package/onecode/models/providers/glm_provider.py +0 -219
  472. package/onecode/models/providers/minimax_provider.py +0 -182
  473. package/onecode/models/providers/minimaxi_provider.py +0 -426
  474. package/onecode/models/providers/ollama_provider.py +0 -183
  475. package/onecode/models/providers/openai_provider.py +0 -234
  476. package/onecode/models/registry.py +0 -349
  477. package/onecode/server/__init__.py +0 -3
  478. package/onecode/server/app.py +0 -251
  479. package/onecode/skills/__init__.py +0 -11
  480. package/onecode/skills/__pycache__/__init__.cpython-314.pyc +0 -0
  481. package/onecode/skills/__pycache__/argument_substitution.cpython-314.pyc +0 -0
  482. package/onecode/skills/__pycache__/bootstrap.cpython-314.pyc +0 -0
  483. package/onecode/skills/__pycache__/create.cpython-314.pyc +0 -0
  484. package/onecode/skills/__pycache__/frontmatter.cpython-314.pyc +0 -0
  485. package/onecode/skills/__pycache__/loader.cpython-314.pyc +0 -0
  486. package/onecode/skills/__pycache__/model.cpython-314.pyc +0 -0
  487. package/onecode/skills/argument_substitution.py +0 -38
  488. package/onecode/skills/bootstrap.py +0 -37
  489. package/onecode/skills/create.py +0 -56
  490. package/onecode/skills/frontmatter.py +0 -33
  491. package/onecode/skills/loader.py +0 -215
  492. package/onecode/skills/manager.py +0 -75
  493. package/onecode/skills/model.py +0 -43
  494. package/onecode/storage/__init__.py +0 -0
  495. package/onecode/storage/activity.py +0 -63
  496. package/onecode/storage/project.py +0 -54
  497. package/onecode/storage/session.py +0 -112
  498. package/onecode/tasks/__init__.py +0 -26
  499. package/onecode/tasks/manager.py +0 -232
  500. package/onecode/tasks/models.py +0 -240
  501. package/onecode/trace/__init__.py +0 -0
  502. package/onecode/trace/tracer.py +0 -173
  503. package/onecode/utils/__init__.py +0 -0
  504. package/onecode/utils/helpers.py +0 -20
  505. package/onecode/verification/__init__.py +0 -5
  506. package/onecode/verification/__pycache__/__init__.cpython-314.pyc +0 -0
  507. package/onecode/verification/__pycache__/aggregation.cpython-314.pyc +0 -0
  508. package/onecode/verification/__pycache__/loop.cpython-314.pyc +0 -0
  509. package/onecode/verification/__pycache__/policy.cpython-314.pyc +0 -0
  510. package/onecode/verification/aggregation.py +0 -53
  511. package/onecode/verification/gates/__init__.py +0 -6
  512. package/onecode/verification/gates/__pycache__/__init__.cpython-314.pyc +0 -0
  513. package/onecode/verification/gates/__pycache__/base.cpython-314.pyc +0 -0
  514. package/onecode/verification/gates/__pycache__/lint_gate.cpython-314.pyc +0 -0
  515. package/onecode/verification/gates/__pycache__/test_gate.cpython-314.pyc +0 -0
  516. package/onecode/verification/gates/__pycache__/type_gate.cpython-314.pyc +0 -0
  517. package/onecode/verification/gates/base.py +0 -20
  518. package/onecode/verification/gates/lint_gate.py +0 -45
  519. package/onecode/verification/gates/test_gate.py +0 -62
  520. package/onecode/verification/gates/type_gate.py +0 -46
  521. package/onecode/verification/loop.py +0 -95
  522. package/onecode/verification/policy.py +0 -29
  523. package/pyproject.toml +0 -84
  524. package/tui/__init__.py +0 -46
  525. package/tui/__main__.py +0 -4
  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 +0 -86
  565. package/tui/_path_fuzzy_search.py +0 -48
  566. package/tui/_path_match.py +0 -141
  567. package/tui/about.py +0 -95
  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 +0 -1212
  576. package/tui/acp/api.py +0 -79
  577. package/tui/acp/encode_tool_call_id.py +0 -12
  578. package/tui/acp/event_tap.py +0 -107
  579. package/tui/acp/messages.py +0 -222
  580. package/tui/acp/prompt.py +0 -53
  581. package/tui/acp/protocol.py +0 -551
  582. package/tui/agent.py +0 -70
  583. package/tui/agent_schema.py +0 -76
  584. package/tui/agents.py +0 -46
  585. package/tui/ansi/__init__.py +0 -1
  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 +0 -1689
  594. package/tui/ansi/_ansi_colors.py +0 -264
  595. package/tui/ansi/_control_codes.py +0 -37
  596. package/tui/ansi/_keys.py +0 -251
  597. package/tui/ansi/_sgr_styles.py +0 -64
  598. package/tui/ansi/_stream_parser.py +0 -418
  599. package/tui/answer.py +0 -12
  600. package/tui/app.py +0 -1195
  601. package/tui/atomic.py +0 -37
  602. package/tui/cli.py +0 -208
  603. package/tui/code_analyze.py +0 -27
  604. package/tui/complete.py +0 -38
  605. package/tui/constants.py +0 -61
  606. package/tui/conversation_markdown.py +0 -30
  607. package/tui/danger.py +0 -372
  608. package/tui/data/agents/ampcode.com.toml +0 -52
  609. package/tui/data/agents/augmentcode.com.toml +0 -41
  610. package/tui/data/agents/cdh.cloud-dev-harness.toml +0 -23
  611. package/tui/data/agents/claude.com.toml +0 -42
  612. package/tui/data/agents/copilot.github.com.toml +0 -29
  613. package/tui/data/agents/crowai.dev.toml +0 -36
  614. package/tui/data/agents/cursor.com.toml +0 -38
  615. package/tui/data/agents/deepagents.langchain.com +0 -34
  616. package/tui/data/agents/docker.com.toml +0 -60
  617. package/tui/data/agents/geminicli.com.toml +0 -28
  618. package/tui/data/agents/goose.ai.toml +0 -52
  619. package/tui/data/agents/inference.huggingface.co.toml +0 -41
  620. package/tui/data/agents/kimi.com.toml +0 -35
  621. package/tui/data/agents/kiro.dev.toml +0 -43
  622. package/tui/data/agents/onecode.dev.toml +0 -22
  623. package/tui/data/agents/openai.com.toml +0 -53
  624. package/tui/data/agents/openclaw.ai.toml +0 -37
  625. package/tui/data/agents/opencode.ai.toml +0 -39
  626. package/tui/data/agents/openhands.dev.toml +0 -46
  627. package/tui/data/agents/stakpak.dev.toml +0 -62
  628. package/tui/data/agents/vibe.mistral.ai.toml +0 -31
  629. package/tui/data/agents/vtcode.dev.toml +0 -63
  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 +0 -213
  634. package/tui/dec.py +0 -332
  635. package/tui/diff_utils.py +0 -131
  636. package/tui/directory.py +0 -234
  637. package/tui/directory_suggester.py +0 -93
  638. package/tui/directory_watcher.py +0 -231
  639. package/tui/format_path.py +0 -25
  640. package/tui/fuzzy.py +0 -140
  641. package/tui/fuzzy_index.py +0 -275
  642. package/tui/gist.py +0 -33
  643. package/tui/history.py +0 -138
  644. package/tui/jsonrpc.py +0 -599
  645. package/tui/menus.py +0 -14
  646. package/tui/message_log.py +0 -69
  647. package/tui/messages.py +0 -144
  648. package/tui/option_content.py +0 -51
  649. package/tui/os.py +0 -0
  650. package/tui/path_complete.py +0 -217
  651. package/tui/path_filter.py +0 -124
  652. package/tui/paths.py +0 -87
  653. package/tui/pill.py +0 -23
  654. package/tui/platform_commands.py +0 -52
  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 +0 -19
  658. package/tui/prompt/resource.py +0 -68
  659. package/tui/protocol.py +0 -28
  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 +0 -94
  666. package/tui/screens/agent_modal.py +0 -175
  667. package/tui/screens/command_edit_modal.py +0 -74
  668. package/tui/screens/diff_explorer_screen.py +0 -419
  669. package/tui/screens/diff_screen.py +0 -84
  670. package/tui/screens/ide_screen.py +0 -461
  671. package/tui/screens/main.py +0 -397
  672. package/tui/screens/main.tcss +0 -662
  673. package/tui/screens/permissions.py +0 -404
  674. package/tui/screens/permissions.tcss +0 -72
  675. package/tui/screens/projects.tcss +0 -84
  676. package/tui/screens/projects_app.py +0 -341
  677. package/tui/screens/projects_screen.py +0 -277
  678. package/tui/screens/session_resume_modal.py +0 -172
  679. package/tui/screens/session_resume_modal.tcss +0 -35
  680. package/tui/screens/sessions.py +0 -171
  681. package/tui/screens/sessions.tcss +0 -119
  682. package/tui/screens/settings.py +0 -293
  683. package/tui/screens/settings.tcss +0 -113
  684. package/tui/screens/store.py +0 -502
  685. package/tui/screens/store.tcss +0 -274
  686. package/tui/screens/tool_content_screen.py +0 -59
  687. package/tui/screens/trace.py +0 -317
  688. package/tui/session_tracker.py +0 -123
  689. package/tui/settings.py +0 -353
  690. package/tui/settings_schema.py +0 -467
  691. package/tui/shell.py +0 -304
  692. package/tui/shell_read.py +0 -42
  693. package/tui/slash_command.py +0 -34
  694. package/tui/tui.tcss +0 -246
  695. package/tui/twitter.py +0 -38
  696. package/tui/version.py +0 -80
  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 +0 -272
  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 +0 -70
  738. package/tui/widgets/agent_response.py +0 -76
  739. package/tui/widgets/agent_thought.py +0 -167
  740. package/tui/widgets/aidlc.py +0 -334
  741. package/tui/widgets/ask_user.py +0 -604
  742. package/tui/widgets/command_pane.py +0 -223
  743. package/tui/widgets/condensed_path.py +0 -115
  744. package/tui/widgets/context_stats.py +0 -66
  745. package/tui/widgets/conversation.py +0 -3235
  746. package/tui/widgets/danger_warning.py +0 -65
  747. package/tui/widgets/diff_view.py +0 -69
  748. package/tui/widgets/directory_input.py +0 -8
  749. package/tui/widgets/edit_field.py +0 -206
  750. package/tui/widgets/flash.py +0 -81
  751. package/tui/widgets/future_text.py +0 -126
  752. package/tui/widgets/grid_select.py +0 -234
  753. package/tui/widgets/highlighted_textarea.py +0 -183
  754. package/tui/widgets/load_more.py +0 -24
  755. package/tui/widgets/mandelbrot.py +0 -294
  756. package/tui/widgets/markdown_note.py +0 -13
  757. package/tui/widgets/menu.py +0 -147
  758. package/tui/widgets/model_status.py +0 -230
  759. package/tui/widgets/modified_files.py +0 -315
  760. package/tui/widgets/non_selectable_label.py +0 -5
  761. package/tui/widgets/note.py +0 -18
  762. package/tui/widgets/path_search.py +0 -492
  763. package/tui/widgets/pending_prompts.py +0 -36
  764. package/tui/widgets/plan.py +0 -285
  765. package/tui/widgets/project_directory_tree.py +0 -102
  766. package/tui/widgets/project_grid_select.py +0 -68
  767. package/tui/widgets/project_summary.py +0 -33
  768. package/tui/widgets/prompt.py +0 -935
  769. package/tui/widgets/question.py +0 -360
  770. package/tui/widgets/session_grid_select.py +0 -230
  771. package/tui/widgets/session_summary.py +0 -115
  772. package/tui/widgets/session_tabs.py +0 -194
  773. package/tui/widgets/shell_result.py +0 -35
  774. package/tui/widgets/shell_terminal.py +0 -40
  775. package/tui/widgets/side_bar.py +0 -124
  776. package/tui/widgets/slash_complete.py +0 -235
  777. package/tui/widgets/strike_text.py +0 -70
  778. package/tui/widgets/subagent.py +0 -287
  779. package/tui/widgets/subagent_screen.py +0 -715
  780. package/tui/widgets/terminal.py +0 -576
  781. package/tui/widgets/terminal_tool.py +0 -360
  782. package/tui/widgets/throbber.py +0 -100
  783. package/tui/widgets/tool_call.py +0 -432
  784. package/tui/widgets/user_input.py +0 -23
  785. package/tui/widgets/version.py +0 -5
  786. package/tui/widgets/welcome.py +0 -31
@@ -1,673 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import TYPE_CHECKING
4
-
5
- from tui import platform_commands
6
-
7
- if TYPE_CHECKING:
8
- from tui.widgets.conversation import Conversation
9
-
10
-
11
- _KNOWN_PROVIDERS = {
12
- "anthropic": ["claude-3-opus", "claude-3-sonnet", "claude-3-haiku"],
13
- "openai": ["gpt-4o", "gpt-4-turbo", "gpt-4o-mini"],
14
- "deepseek": ["deepseek-chat", "deepseek-reasoner"],
15
- "minimax": ["MiniMax-M2.7", "MiniMax-M2.5"],
16
- "minimaxi": ["MiniMax-M2.7", "MiniMax-M2.5", "MiniMax-M3"],
17
- "glm": ["glm-4-plus", "glm-4-flash"],
18
- "ollama": [],
19
- }
20
-
21
-
22
- # ── small helpers ──────────────────────────────────────────────────────
23
-
24
-
25
- def _load_cfg():
26
- from onecode.config import load_config
27
- return load_config()
28
-
29
-
30
- def _save_cfg(cfg):
31
- from onecode.config import save_config
32
- save_config(cfg)
33
-
34
-
35
- def _post_note(conversation, text):
36
- from tui.widgets.markdown_note import MarkdownNote
37
- return conversation.post(MarkdownNote(text))
38
-
39
-
40
- async def _post(conversation, text):
41
- await _post_note(conversation, text)
42
-
43
-
44
- # ── status: one-shot snapshot of every onecode: setting ───────────────
45
-
46
-
47
- async def _status(conversation: "Conversation", parameters: str) -> None:
48
- """Render a single capability panel: provider, model, mode, skills, MCP."""
49
- cfg = _load_cfg()
50
- from onecode.skills.loader import SkillLoader
51
- from onecode.mcp.manager import MCPManager
52
-
53
- skills = SkillLoader().get_all()
54
- enabled_skills = sorted(n for n, s in skills.items() if s.enabled)
55
- disabled_skills = sorted(n for n, s in skills.items() if not s.enabled)
56
-
57
- servers = MCPManager().list()
58
- enabled_mcps = sorted(s["name"] for s in servers if s.get("enabled", True))
59
- disabled_mcps = sorted(s["name"] for s in servers if not s.get("enabled", True))
60
-
61
- lines = [
62
- "**onecode — current state**\n",
63
- f"- **provider**: `{cfg.default_provider}`",
64
- f"- **model**: `{cfg.default_model}`",
65
- f"- **mode**: `{cfg.default_mode}` (build | plan | solo)",
66
- f"- **log level**: `{cfg.log_level}`",
67
- f"- **skills**: {len(enabled_skills)} enabled, {len(disabled_skills)} disabled",
68
- ]
69
- if enabled_skills:
70
- lines.append(f" - enabled: {', '.join(f'`{n}`' for n in enabled_skills)}")
71
- if disabled_skills:
72
- lines.append(f" - disabled: {', '.join(f'`{n}`' for n in disabled_skills)}")
73
- lines.append(f"- **mcp servers**: {len(enabled_mcps)} enabled, {len(disabled_mcps)} disabled")
74
- if enabled_mcps:
75
- lines.append(f" - enabled: {', '.join(f'`{n}`' for n in enabled_mcps)}")
76
- if disabled_mcps:
77
- lines.append(f" - disabled: {', '.join(f'`{n}`' for n in disabled_mcps)}")
78
-
79
- lines += [
80
- "\n**What can I do here?**",
81
- "- `/onecode:provider [set <name|n>]` — show / change LLM provider",
82
- "- `/onecode:model [set <name|n>]` — show / change LLM model",
83
- "- `/onecode:skill list|enable|disable|add|remove [name]`",
84
- "- `/onecode:mcp list|enable|disable|add|remove [name|url]`",
85
- "- `/onecode:compact` — immediately compact context",
86
- "- `/onecode:help` — show this overview",
87
- ]
88
- await _post(conversation, "\n".join(lines))
89
-
90
-
91
- # ── provider ───────────────────────────────────────────────────────────
92
-
93
-
94
- async def _provider(conversation: "Conversation", parameters: str) -> None:
95
- cfg = _load_cfg()
96
- args = parameters.strip().split()
97
- sub = args[0].lower() if args else ""
98
-
99
- if sub in ("", "show", "list"):
100
- registered = sorted(_KNOWN_PROVIDERS.keys())
101
- lines = [
102
- "**LLM Provider**\n",
103
- f"- current: `{cfg.default_provider}`",
104
- f"- available ({len(registered)}):",
105
- ]
106
- for i, name in enumerate(registered, 1):
107
- marker = " ← active" if name == cfg.default_provider else ""
108
- models = _KNOWN_PROVIDERS[name]
109
- model_hint = f" models: {', '.join(models)}" if models else " models: (any local)"
110
- lines.append(f" `{i}) {name}`{marker}{model_hint}")
111
- lines += [
112
- "\n**How to switch**",
113
- "- `/onecode:provider set <name>` — e.g. `set minimaxi`",
114
- "- `/onecode:provider set <n>` — by number from the list above",
115
- "\n*Tip:* the provider change applies to new sessions; the current session keeps the active model until you start a new conversation.",
116
- ]
117
- await _post(conversation, "\n".join(lines))
118
- return
119
-
120
- if sub == "set":
121
- if len(args) < 2:
122
- conversation.notify("Usage: /onecode:provider set <name|n>", title="/onecode:provider", severity="error")
123
- return
124
- target = args[1].strip()
125
- registered = sorted(_KNOWN_PROVIDERS.keys())
126
- if target.isdigit():
127
- idx = int(target)
128
- if 1 <= idx <= len(registered):
129
- target = registered[idx - 1]
130
- if target not in registered:
131
- conversation.notify(
132
- f"Unknown provider '{target}'. Use /onecode:provider to list available ones.",
133
- title="/onecode:provider",
134
- severity="error",
135
- )
136
- return
137
- cfg.default_provider = target
138
- _save_cfg(cfg)
139
- try:
140
- conversation.app.settings.set("provider", target)
141
- except Exception:
142
- pass
143
- conversation.flash(f"onecode provider set to [b]{target}")
144
- await _status(conversation, "")
145
- return
146
-
147
- await _post(conversation, _HELP_PROVIDER)
148
-
149
-
150
- _HELP_PROVIDER = (
151
- "**/onecode:provider** — show / switch the LLM provider\n\n"
152
- "**Sub-commands**\n"
153
- "- `(none)` or `show` — list registered providers with current marker\n"
154
- "- `set <name>` — switch provider (name or list-number)\n\n"
155
- "**Examples**\n"
156
- "- `/onecode:provider` — show the picker\n"
157
- "- `/onecode:provider set minimaxi` — switch by name\n"
158
- "- `/onecode:provider set 3` — switch by list number"
159
- )
160
-
161
-
162
- # ── model ──────────────────────────────────────────────────────────────
163
-
164
-
165
- async def _model(conversation: "Conversation", parameters: str) -> None:
166
- cfg = _load_cfg()
167
- args = parameters.strip().split()
168
- sub = args[0].lower() if args else ""
169
-
170
- provider = cfg.default_provider
171
- known = _KNOWN_PROVIDERS.get(provider, [])
172
-
173
- if sub in ("", "show", "list"):
174
- lines = [
175
- "**LLM Model**\n",
176
- f"- provider: `{provider}`",
177
- f"- current: `{cfg.default_model}`",
178
- ]
179
- if known:
180
- lines.append(f"- known models for `{provider}` ({len(known)}):")
181
- for i, name in enumerate(known, 1):
182
- marker = " ← active" if name == cfg.default_model else ""
183
- lines.append(f" `{i}) {name}`{marker}")
184
- else:
185
- lines.append("- *(no preset list — type any model name)*")
186
- lines += [
187
- "\n**How to switch**",
188
- "- `/onecode:model set <name>` — e.g. `set MiniMax-M2.7`",
189
- "- `/onecode:model set <n>` — by number from the list above",
190
- "- `/onecode:model set <any-string>` — for providers without a preset",
191
- "\n*Tip:* changing the model mid-session does not retroactively update the active request; new turns will use the new model.",
192
- ]
193
- await _post(conversation, "\n".join(lines))
194
- return
195
-
196
- if sub == "set":
197
- if len(args) < 2:
198
- conversation.notify("Usage: /onecode:model set <name|n>", title="/onecode:model", severity="error")
199
- return
200
- target = args[1].strip()
201
- if target.isdigit() and known:
202
- idx = int(target)
203
- if 1 <= idx <= len(known):
204
- target = known[idx - 1]
205
- if not target:
206
- conversation.notify("Model name required", title="/onecode:model", severity="error")
207
- return
208
- cfg.default_model = target
209
- _save_cfg(cfg)
210
- try:
211
- conversation.app.settings.set("model", target)
212
- except Exception:
213
- pass
214
- conversation.flash(f"onecode model set to [b]{target}")
215
- await _status(conversation, "")
216
- return
217
-
218
- await _post(conversation, _HELP_MODEL)
219
-
220
-
221
- _HELP_MODEL = (
222
- "**/onecode:model** — show / switch the LLM model\n\n"
223
- "**Sub-commands**\n"
224
- "- `(none)` or `show` — list known models for the current provider\n"
225
- "- `set <name>` — switch model (name or list-number)\n\n"
226
- "**Examples**\n"
227
- "- `/onecode:model` — show the picker for the current provider\n"
228
- "- `/onecode:model set MiniMax-M2.7` — switch by name\n"
229
- "- `/onecode:model set 1` — switch by list number"
230
- )
231
-
232
-
233
- # ── skill ──────────────────────────────────────────────────────────────
234
-
235
-
236
- async def _skill(conversation: "Conversation", parameters: str) -> None:
237
- from onecode.skills.manager import SkillManager
238
- from onecode.skills.loader import SkillLoader
239
- from onecode.skills.create import create_skill_scaffold
240
-
241
- parts = parameters.strip().split()
242
- sub = parts[0].lower() if parts else ""
243
- rest = " ".join(parts[1:]) if len(parts) > 1 else ""
244
-
245
- if sub in ("", "list", "show"):
246
- skills = SkillLoader().get_all()
247
- if not skills:
248
- await _post(conversation, "**Skills**\n\n_No skills installed._\n\nUse `/onecode:skill add <name>` to scaffold a new one.")
249
- return
250
- lines = ["**Skills**\n"]
251
- names = sorted(skills.keys())
252
- for i, name in enumerate(names, 1):
253
- s = skills[name]
254
- marker = "✓" if s.enabled else "✗"
255
- desc = s.description or "(no description)"
256
- lines.append(f"- `{i}) {marker}` **{name}** — {desc}")
257
- lines += [
258
- "\n**How to manage**",
259
- "- `/onecode:skill enable <name|n>` — turn on",
260
- "- `/onecode:skill disable <name|n>` — turn off",
261
- "- `/onecode:skill add <name>` — scaffold a new skill",
262
- "- `/onecode:skill remove <name|n>` — delete a skill",
263
- ]
264
- await _post(conversation, "\n".join(lines))
265
- return
266
-
267
- if sub == "enable" or sub == "disable":
268
- if not rest.strip():
269
- conversation.notify(f"Usage: /onecode:skill {sub} <name|n>", title=f"/onecode:skill {sub}", severity="error")
270
- return
271
- target = _resolve_indexed_name(conversation, rest.strip(), SkillLoader().get_all(), sub)
272
- if target is None:
273
- return
274
- mgr = SkillManager()
275
- mgr.enable(target, sub == "enable")
276
- conversation.flash(f"skill [b]{target}[/b] {sub}d")
277
- await _skill(conversation, "list")
278
- return
279
-
280
- if sub == "add":
281
- name = rest.strip()
282
- if not name:
283
- conversation.notify("Usage: /onecode:skill add <name>", title="/onecode:skill add", severity="error")
284
- return
285
- mgr = SkillManager()
286
- if mgr.get(name):
287
- conversation.notify(f"Skill '{name}' already exists", title="/onecode:skill add", severity="error")
288
- return
289
- err = create_skill_scaffold(mgr.skills_dir, name, f"A skill for {name}")
290
- if err:
291
- conversation.notify(f"Error: {err}", title="/onecode:skill add", severity="error")
292
- return
293
- await _post(
294
- conversation,
295
- f"**Skill '{name}' created**\n\n"
296
- f"- location: `{mgr.skills_dir / name}`\n"
297
- f"- edit `SKILL.md` to add instructions\n"
298
- f"- then `/onecode:skill list` to confirm it shows up",
299
- )
300
- return
301
-
302
- if sub == "remove":
303
- if not rest.strip():
304
- conversation.notify("Usage: /onecode:skill remove <name|n>", title="/onecode:skill remove", severity="error")
305
- return
306
- target = _resolve_indexed_name(conversation, rest.strip(), SkillLoader().get_all(), sub)
307
- if target is None:
308
- return
309
- SkillManager().remove(target)
310
- conversation.flash(f"skill [b]{target}[/b] removed")
311
- await _skill(conversation, "list")
312
- return
313
-
314
- if sub == "create":
315
- name = rest.strip()
316
- if not name:
317
- conversation.notify("Usage: /onecode:skill create <name>", title="/onecode:skill create", severity="error")
318
- return
319
- from onecode.skills.model import Skill as SkillModel
320
- valid, err_msg = SkillModel.validate_name(name)
321
- if not valid:
322
- conversation.notify(f"Invalid name: {err_msg}", title="/onecode:skill create", severity="error")
323
- return
324
- mgr = SkillManager()
325
- if mgr.get(name):
326
- conversation.notify(f"Skill '{name}' already exists", title="/onecode:skill create", severity="error")
327
- return
328
- err = create_skill_scaffold(mgr.skills_dir, name, f"A skill for {name}")
329
- if err:
330
- conversation.notify(f"Error: {err}", title="/onecode:skill create", severity="error")
331
- return
332
- await _post(
333
- conversation,
334
- f"**Skill '{name}' created**\n\n"
335
- f"- location: `{mgr.skills_dir / name}`\n"
336
- f"- edit `SKILL.md` to add instructions\n"
337
- f"- then `/onecode:skill list` to confirm",
338
- )
339
- return
340
-
341
- if sub in ("search", "find"):
342
- keyword = rest.strip()
343
- if not keyword:
344
- conversation.notify("Usage: /onecode:skill search <keyword>", title="/onecode:skill search", severity="error")
345
- return
346
- results = SkillLoader().search(keyword)
347
- if not results:
348
- await _post(conversation, f"**Skill Search: `{keyword}`**\n\n_No matches found._")
349
- return
350
- lines = [f"**Skill Search: `{keyword}`**\n"]
351
- for i, s in enumerate(results, 1):
352
- marker = "✓" if s.enabled else "✗"
353
- desc = s.description or "(no description)"
354
- lines.append(f"- `{i}) {marker}` **{s.name}** — {desc}")
355
- lines.append(f"\n{len(results)} match(es)")
356
- await _post(conversation, "\n".join(lines))
357
- return
358
-
359
- await _post(conversation, _HELP_SKILL)
360
-
361
-
362
- _HELP_SKILL = (
363
- "**/onecode:skill** — manage installed skills\n\n"
364
- "**Sub-commands**\n"
365
- "- `(none)` or `list` — show all skills with status\n"
366
- "- `create <name>` — scaffold a new skill\n"
367
- "- `search <keyword>` — search skills by keyword\n"
368
- "- `enable <name|n>` — turn a skill on\n"
369
- "- `disable <name|n>` — turn a skill off\n"
370
- "- `add <name>` — scaffold a new skill (alias for create)\n"
371
- "- `remove <name|n>` — delete a skill\n\n"
372
- "**Examples**\n"
373
- "- `/onecode:skill` — list\n"
374
- "- `/onecode:skill create my-skill` — scaffold a new skill\n"
375
- "- `/onecode:skill search browser` — find browser-related skills\n"
376
- "- `/onecode:skill enable 2` — enable the skill at index 2"
377
- )
378
-
379
-
380
- # ── mcp ────────────────────────────────────────────────────────────────
381
-
382
-
383
- async def _mcp(conversation: "Conversation", parameters: str) -> None:
384
- from onecode.mcp.manager import MCPManager
385
-
386
- parts = parameters.strip().split()
387
- sub = parts[0].lower() if parts else ""
388
- rest = " ".join(parts[1:]) if len(parts) > 1 else ""
389
-
390
- if sub in ("", "list", "show"):
391
- servers = MCPManager().list()
392
- if not servers:
393
- await _post(
394
- conversation,
395
- "**MCP Servers**\n\n_None configured._\n\n"
396
- "Use `/onecode:mcp add <name> <url>` for an SSE server, "
397
- "`/onecode:mcp add <name> --type stdio --command <cmd>` for stdio, or "
398
- "`/onecode:mcp add <name> --type http --url <url>` for HTTP.",
399
- )
400
- return
401
- lines = ["**MCP Servers**\n"]
402
- for i, s in enumerate(servers, 1):
403
- name = s.get("name", "?")
404
- transport = s.get("transport", "sse")
405
- enabled = s.get("enabled", True)
406
- marker = "✓" if enabled else "✗"
407
- if transport == "sse":
408
- lines.append(f"- `{i}) {marker}` **{name}** (SSE) — `{s.get('url', '')}`")
409
- elif transport == "http":
410
- url = s.get("url", "")
411
- headers = s.get("headers", {})
412
- line = f"- `{i}) {marker}` **{name}** (HTTP) — `{url}`"
413
- if headers:
414
- line += f" headers: {', '.join(headers.keys())}"
415
- lines.append(line)
416
- else:
417
- cmd = s.get("command", "")
418
- cmd_args = " ".join(s.get("args") or [])
419
- env = s.get("env", {})
420
- line = f"- `{i}) {marker}` **{name}** (stdio) — `{cmd} {cmd_args}`".rstrip()
421
- if env:
422
- line += f" env: {', '.join(env.keys())}"
423
- lines.append(line)
424
- lines += [
425
- "\n**How to manage**",
426
- "- `/onecode:mcp enable <name|n>`",
427
- "- `/onecode:mcp disable <name|n>`",
428
- "- `/onecode:mcp remove <name|n>`",
429
- ]
430
- await _post(conversation, "\n".join(lines))
431
- return
432
-
433
- if sub == "enable" or sub == "disable":
434
- if not rest.strip():
435
- conversation.notify(f"Usage: /onecode:mcp {sub} <name|n>", title=f"/onecode:mcp {sub}", severity="error")
436
- return
437
- mgr = MCPManager()
438
- target = _resolve_indexed_name(conversation, rest.strip(), {s["name"]: s for s in mgr.list()}, sub)
439
- if target is None:
440
- return
441
- err = mgr.enable(target, sub == "enable")
442
- if err:
443
- conversation.notify(f"Error: {err}", title=f"/onecode:mcp {sub}", severity="error")
444
- return
445
- conversation.flash(f"mcp server [b]{target}[/b] {sub}d")
446
- await _mcp(conversation, "list")
447
- return
448
-
449
- if sub == "add":
450
- parts_shlex = rest.split()
451
- if len(parts_shlex) < 2:
452
- await _post(
453
- conversation,
454
- "**/onecode:mcp add** — register a new MCP server\n\n"
455
- "- **SSE** (default): `/onecode:mcp add <name> <url>`\n"
456
- "- **stdio**: `/onecode:mcp add <name> --type stdio --command <cmd> --args a,b --env K=V`\n"
457
- "- **HTTP**: `/onecode:mcp add <name> --type http --url <url> --headers K=V`",
458
- )
459
- return
460
- name = parts_shlex[0]
461
- pos_url = parts_shlex[1] if not parts_shlex[1].startswith("--") else ""
462
-
463
- transport = "sse"
464
- command = ""
465
- cmd_args = []
466
- env_dict = {}
467
- headers_dict = {}
468
- explicit_url = ""
469
-
470
- i = 1
471
- while i < len(parts_shlex):
472
- tok = parts_shlex[i]
473
- if tok == "--type" and i + 1 < len(parts_shlex):
474
- transport = parts_shlex[i + 1]
475
- i += 2
476
- elif tok == "--command" and i + 1 < len(parts_shlex):
477
- command = parts_shlex[i + 1]
478
- i += 2
479
- elif tok == "--args" and i + 1 < len(parts_shlex):
480
- cmd_args = [a.strip() for a in parts_shlex[i + 1].split(",")]
481
- i += 2
482
- elif tok == "--env" and i + 1 < len(parts_shlex):
483
- for pair in parts_shlex[i + 1].split(","):
484
- if "=" in pair:
485
- k, _, v = pair.partition("=")
486
- env_dict[k.strip()] = v.strip()
487
- i += 2
488
- elif tok == "--url" and i + 1 < len(parts_shlex):
489
- explicit_url = parts_shlex[i + 1]
490
- i += 2
491
- elif tok == "--headers" and i + 1 < len(parts_shlex):
492
- for pair in parts_shlex[i + 1].split(","):
493
- if "=" in pair:
494
- k, _, v = pair.partition("=")
495
- headers_dict[k.strip()] = v.strip()
496
- i += 2
497
- else:
498
- i += 1
499
-
500
- mgr = MCPManager()
501
- if mgr.get(name):
502
- conversation.notify(f"MCP server '{name}' already exists", title="/onecode:mcp add", severity="error")
503
- return
504
-
505
- final_url = explicit_url or pos_url
506
-
507
- if transport == "http":
508
- if not final_url:
509
- conversation.notify("Error: --url required for http transport", title="/onecode:mcp add", severity="error")
510
- return
511
- mgr.add_http(name, final_url, headers=headers_dict)
512
- await _post(conversation, f"**MCP Server '{name}' added**\n\n- transport: HTTP\n- URL: `{final_url}`\n\nUse `/onecode:mcp list` to confirm.")
513
- elif transport == "stdio":
514
- if not command:
515
- conversation.notify("Error: --command required for stdio transport", title="/onecode:mcp add", severity="error")
516
- return
517
- mgr.add_stdio(name, command, args=cmd_args, env=env_dict)
518
- await _post(conversation, f"**MCP Server '{name}' added**\n\n- transport: stdio\n- command: `{command}`\n\nUse `/onecode:mcp list` to confirm.")
519
- else:
520
- if not final_url:
521
- conversation.notify("Error: URL is required for SSE transport", title="/onecode:mcp add", severity="error")
522
- return
523
- mgr.add(name, final_url, transport="sse")
524
- await _post(conversation, f"**MCP Server '{name}' added**\n\n- transport: SSE\n- URL: `{final_url}`\n\nUse `/onecode:mcp list` to confirm.")
525
- return
526
-
527
- if sub == "remove":
528
- if not rest.strip():
529
- conversation.notify("Usage: /onecode:mcp remove <name|n>", title="/onecode:mcp remove", severity="error")
530
- return
531
- mgr = MCPManager()
532
- target = _resolve_indexed_name(conversation, rest.strip(), {s["name"]: s for s in mgr.list()}, sub)
533
- if target is None:
534
- return
535
- mgr.remove(target)
536
- conversation.flash(f"mcp server [b]{target}[/b] removed")
537
- await _mcp(conversation, "list")
538
- return
539
-
540
- await _post(conversation, _HELP_MCP)
541
-
542
-
543
- _HELP_MCP = (
544
- "**/onecode:mcp** — manage MCP (Model Context Protocol) servers\n\n"
545
- "**Sub-commands**\n"
546
- "- `(none)` or `list` — show configured servers\n"
547
- "- `add <name> <url>` — add an SSE server (default)\n"
548
- "- `add <name> --type stdio --command <cmd> [--args a,b] [--env K=V]` — stdio\n"
549
- "- `add <name> --type http --url <url> [--headers K=V]` — HTTP\n"
550
- "- `enable <name|n>` / `disable <name|n>`\n"
551
- "- `remove <name|n>`\n\n"
552
- "**Examples**\n"
553
- "- `/onecode:mcp` — list servers\n"
554
- "- `/onecode:mcp add my-server https://example.com/mcp` — SSE\n"
555
- "- `/onecode:mcp add cloudbase --type stdio --command npx --args @cloudbase/cloudbase-mcp@latest --env TENCENTCLOUD_SECRETID=xxx,TENCENTCLOUD_SECRETKEY=xxx` — stdio\n"
556
- "- `/onecode:mcp add cloudbase --type http --url https://tcb-api.cloud.tencent.com/mcp/v1?env_id=xxx --headers X-TencentCloud-SecretId=xxx` — HTTP\n"
557
- "- `/onecode:mcp disable 1` — disable the first server in the list"
558
- )
559
-
560
-
561
- # ── helpers ────────────────────────────────────────────────────────────
562
-
563
-
564
- def _resolve_indexed_name(conversation, raw, items, sub_label):
565
- """Accept either a literal name or a 1-based index from the most recent list.
566
-
567
- ``items`` is either a ``dict[name, ...]`` (skills) or already indexed
568
- by name (MCP). Returns the resolved name or ``None`` after notifying
569
- the user on error.
570
- """
571
- raw = (raw or "").strip()
572
- if not raw:
573
- return None
574
- keys = list(items.keys())
575
- if raw.isdigit():
576
- idx = int(raw)
577
- if 1 <= idx <= len(keys):
578
- return keys[idx - 1]
579
- conversation.notify(
580
- f"Index {idx} out of range (1..{len(keys)}). Run `/onecode:{sub_label}` first to see numbers.",
581
- title=f"/onecode:{sub_label}",
582
- severity="error",
583
- )
584
- return None
585
- if raw in items:
586
- return raw
587
- conversation.notify(
588
- f"Unknown name '{raw}'. Run `/onecode:{sub_label}` first to see available names.",
589
- title=f"/onecode:{sub_label}",
590
- severity="error",
591
- )
592
- return None
593
-
594
-
595
- # ── compact ─────────────────────────────────────────────────────────────
596
-
597
-
598
- async def _compact(conversation: "Conversation", parameters: str) -> None:
599
- """Immediately compact the agent context to reduce token usage."""
600
- agent = conversation.agent
601
- if agent is None:
602
- conversation.notify("No active agent session", title="/onecode:compact", severity="error")
603
- return
604
- if not hasattr(agent, "compact"):
605
- conversation.notify("Agent does not support context compaction", title="/onecode:compact", severity="error")
606
- return
607
- try:
608
- result = await agent.compact()
609
- if result is None:
610
- conversation.notify("Compaction not available", title="/onecode:compact", severity="error")
611
- return
612
- await _post(
613
- conversation,
614
- f"**Context Compacted**\n"
615
- f"- level: `{result.get('level', 'unknown')}`\n"
616
- f"- tokens: `{result.get('tokens_before', 0)}` → `{result.get('tokens_after', 0)}`",
617
- )
618
- except Exception as e:
619
- conversation.notify(f"Compaction failed: {e}", title="/onecode:compact", severity="error")
620
-
621
-
622
- # ── registration ──────────────────────────────────────────────────────
623
-
624
-
625
- def register_commands() -> None:
626
- """Register the slash commands exposed to the TUI prompt.
627
-
628
- The help text intentionally covers both **what** the command does and
629
- **how** to invoke it (sub-command + index syntax), so the
630
- autocomplete panel is self-documenting.
631
- """
632
- platform_commands.register(
633
- "help",
634
- "Show onecode: command overview and current state",
635
- _status,
636
- "(no args)",
637
- )
638
- platform_commands.register(
639
- "status",
640
- "Show current provider, model, mode, skills, and MCP servers",
641
- _status,
642
- "(no args)",
643
- )
644
- platform_commands.register(
645
- "provider",
646
- "Show / switch the LLM provider (current + numbered list)",
647
- _provider,
648
- "[set <name|n>]",
649
- )
650
- platform_commands.register(
651
- "model",
652
- "Show / switch the LLM model for the current provider",
653
- _model,
654
- "[set <name|n>]",
655
- )
656
- platform_commands.register(
657
- "skill",
658
- "Manage skills: list, create, search, enable, disable, add, remove (accepts name or list number)",
659
- _skill,
660
- "list|create|search|enable|disable|add|remove [name|n]",
661
- )
662
- platform_commands.register(
663
- "mcp",
664
- "Manage MCP servers: list, add, enable, disable, remove (accepts name or list number)",
665
- _mcp,
666
- "list|add|enable|disable|remove [name|n]",
667
- )
668
- platform_commands.register(
669
- "compact",
670
- "Immediately compact context to reduce token usage",
671
- _compact,
672
- "(no args)",
673
- )