dxrk 0.1.0__tar.gz

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 (441) hide show
  1. dxrk-0.1.0/LICENSE +21 -0
  2. dxrk-0.1.0/PKG-INFO +22 -0
  3. dxrk-0.1.0/README.md +161 -0
  4. dxrk-0.1.0/dxrk/__init__.py +2 -0
  5. dxrk-0.1.0/dxrk/__main__.py +254 -0
  6. dxrk-0.1.0/dxrk/a2a.py +939 -0
  7. dxrk-0.1.0/dxrk/agentbuilder.py +653 -0
  8. dxrk-0.1.0/dxrk/agents/__init__.py +2 -0
  9. dxrk-0.1.0/dxrk/agents/antigravity/__init__.py +2 -0
  10. dxrk-0.1.0/dxrk/agents/antigravity/adapter.py +92 -0
  11. dxrk-0.1.0/dxrk/agents/claude/__init__.py +2 -0
  12. dxrk-0.1.0/dxrk/agents/claude/adapter.py +97 -0
  13. dxrk-0.1.0/dxrk/agents/codex/__init__.py +2 -0
  14. dxrk-0.1.0/dxrk/agents/codex/adapter.py +97 -0
  15. dxrk-0.1.0/dxrk/agents/cursor/__init__.py +2 -0
  16. dxrk-0.1.0/dxrk/agents/cursor/adapter.py +92 -0
  17. dxrk-0.1.0/dxrk/agents/discovery.py +36 -0
  18. dxrk-0.1.0/dxrk/agents/errors.py +11 -0
  19. dxrk-0.1.0/dxrk/agents/factory.py +35 -0
  20. dxrk-0.1.0/dxrk/agents/gemini/__init__.py +2 -0
  21. dxrk-0.1.0/dxrk/agents/gemini/adapter.py +97 -0
  22. dxrk-0.1.0/dxrk/agents/interface.py +94 -0
  23. dxrk-0.1.0/dxrk/agents/kilocode/__init__.py +2 -0
  24. dxrk-0.1.0/dxrk/agents/kilocode/adapter.py +97 -0
  25. dxrk-0.1.0/dxrk/agents/kimi/__init__.py +2 -0
  26. dxrk-0.1.0/dxrk/agents/kimi/adapter.py +97 -0
  27. dxrk-0.1.0/dxrk/agents/kiro/__init__.py +2 -0
  28. dxrk-0.1.0/dxrk/agents/kiro/adapter.py +100 -0
  29. dxrk-0.1.0/dxrk/agents/openclaw/__init__.py +2 -0
  30. dxrk-0.1.0/dxrk/agents/openclaw/adapter.py +92 -0
  31. dxrk-0.1.0/dxrk/agents/opencode/__init__.py +2 -0
  32. dxrk-0.1.0/dxrk/agents/opencode/adapter.py +91 -0
  33. dxrk-0.1.0/dxrk/agents/pi/__init__.py +2 -0
  34. dxrk-0.1.0/dxrk/agents/pi/adapter.py +109 -0
  35. dxrk-0.1.0/dxrk/agents/qwen/__init__.py +2 -0
  36. dxrk-0.1.0/dxrk/agents/qwen/adapter.py +97 -0
  37. dxrk-0.1.0/dxrk/agents/registry.py +25 -0
  38. dxrk-0.1.0/dxrk/agents/vscode/__init__.py +2 -0
  39. dxrk-0.1.0/dxrk/agents/vscode/adapter.py +102 -0
  40. dxrk-0.1.0/dxrk/agents/windsurf/__init__.py +2 -0
  41. dxrk-0.1.0/dxrk/agents/windsurf/adapter.py +95 -0
  42. dxrk-0.1.0/dxrk/app.py +248 -0
  43. dxrk-0.1.0/dxrk/assets/antigravity/sdd-orchestrator.md +237 -0
  44. dxrk-0.1.0/dxrk/assets/claude/DXRK_MEMORY-protocol.md +93 -0
  45. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-apply.md +49 -0
  46. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-archive.md +48 -0
  47. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-design.md +45 -0
  48. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-explore.md +45 -0
  49. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-propose.md +44 -0
  50. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-spec.md +44 -0
  51. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-tasks.md +45 -0
  52. dxrk-0.1.0/dxrk/assets/claude/agents/sdd-verify.md +44 -0
  53. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-apply.md +45 -0
  54. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-archive.md +40 -0
  55. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-continue.md +29 -0
  56. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-explore.md +26 -0
  57. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-ff.md +30 -0
  58. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-init.md +22 -0
  59. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-new.md +27 -0
  60. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-onboard.md +22 -0
  61. dxrk-0.1.0/dxrk/assets/claude/commands/sdd-verify.md +37 -0
  62. dxrk-0.1.0/dxrk/assets/claude/dxrk-memory-protocol.md +93 -0
  63. dxrk-0.1.0/dxrk/assets/claude/engram-protocol.md +93 -0
  64. dxrk-0.1.0/dxrk/assets/claude/output-style-dxrk.md +85 -0
  65. dxrk-0.1.0/dxrk/assets/claude/output-style-gentleman.md +85 -0
  66. dxrk-0.1.0/dxrk/assets/claude/persona-dxrk.md +69 -0
  67. dxrk-0.1.0/dxrk/assets/claude/persona-gentleman.md +69 -0
  68. dxrk-0.1.0/dxrk/assets/claude/sdd-orchestrator.md +240 -0
  69. dxrk-0.1.0/dxrk/assets/codex/dxrk-memory-compact-prompt.md +14 -0
  70. dxrk-0.1.0/dxrk/assets/codex/dxrk-memory-instructions.md +96 -0
  71. dxrk-0.1.0/dxrk/assets/codex/engram-compact-prompt.md +14 -0
  72. dxrk-0.1.0/dxrk/assets/codex/engram-instructions.md +96 -0
  73. dxrk-0.1.0/dxrk/assets/codex/sdd-orchestrator.md +260 -0
  74. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-apply.md +50 -0
  75. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-archive.md +49 -0
  76. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-design.md +45 -0
  77. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-explore.md +47 -0
  78. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-init.md +43 -0
  79. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-onboard.md +43 -0
  80. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-propose.md +42 -0
  81. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-spec.md +43 -0
  82. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-tasks.md +45 -0
  83. dxrk-0.1.0/dxrk/assets/cursor/agents/sdd-verify.md +51 -0
  84. dxrk-0.1.0/dxrk/assets/cursor/sdd-orchestrator.md +260 -0
  85. dxrk-0.1.0/dxrk/assets/dxrkguardian/AGENTS.md +41 -0
  86. dxrk-0.1.0/dxrk/assets/dxrkguardian/gga.ps1 +12 -0
  87. dxrk-0.1.0/dxrk/assets/dxrkguardian/pr_mode.sh +246 -0
  88. dxrk-0.1.0/dxrk/assets/gemini/sdd-orchestrator.md +260 -0
  89. dxrk-0.1.0/dxrk/assets/generic/persona-dxrk.md +68 -0
  90. dxrk-0.1.0/dxrk/assets/generic/persona-gentleman.md +68 -0
  91. dxrk-0.1.0/dxrk/assets/generic/persona-neutral.md +47 -0
  92. dxrk-0.1.0/dxrk/assets/generic/sdd-orchestrator.md +241 -0
  93. dxrk-0.1.0/dxrk/assets/gga/AGENTS.md +41 -0
  94. dxrk-0.1.0/dxrk/assets/gga/gga.ps1 +12 -0
  95. dxrk-0.1.0/dxrk/assets/gga/pr_mode.sh +246 -0
  96. dxrk-0.1.0/dxrk/assets/kimi/KIMI.md +20 -0
  97. dxrk-0.1.0/dxrk/assets/kimi/agents/dxrk.yaml +36 -0
  98. dxrk-0.1.0/dxrk/assets/kimi/agents/gentleman.yaml +36 -0
  99. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-apply.md +49 -0
  100. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-apply.yaml +7 -0
  101. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-archive.md +48 -0
  102. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-archive.yaml +7 -0
  103. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-design.md +45 -0
  104. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-design.yaml +9 -0
  105. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-explore.md +45 -0
  106. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-explore.yaml +9 -0
  107. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-init.md +42 -0
  108. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-init.yaml +7 -0
  109. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-onboard.md +43 -0
  110. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-onboard.yaml +7 -0
  111. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-propose.md +41 -0
  112. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-propose.yaml +9 -0
  113. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-spec.md +42 -0
  114. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-spec.yaml +9 -0
  115. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-tasks.md +44 -0
  116. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-tasks.yaml +9 -0
  117. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-verify.md +49 -0
  118. dxrk-0.1.0/dxrk/assets/kimi/agents/sdd-verify.yaml +9 -0
  119. dxrk-0.1.0/dxrk/assets/kimi/output-style-dxrk.md +85 -0
  120. dxrk-0.1.0/dxrk/assets/kimi/output-style-gentleman.md +85 -0
  121. dxrk-0.1.0/dxrk/assets/kimi/persona-dxrk.md +70 -0
  122. dxrk-0.1.0/dxrk/assets/kimi/persona-gentleman.md +70 -0
  123. dxrk-0.1.0/dxrk/assets/kimi/sdd-orchestrator.md +200 -0
  124. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-apply.md +55 -0
  125. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-archive.md +54 -0
  126. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-design.md +50 -0
  127. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-explore.md +51 -0
  128. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-init.md +48 -0
  129. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-onboard.md +48 -0
  130. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-propose.md +47 -0
  131. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-spec.md +48 -0
  132. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-tasks.md +50 -0
  133. dxrk-0.1.0/dxrk/assets/kiro/agents/sdd-verify.md +55 -0
  134. dxrk-0.1.0/dxrk/assets/kiro/persona-dxrk.md +64 -0
  135. dxrk-0.1.0/dxrk/assets/kiro/persona-gentleman.md +64 -0
  136. dxrk-0.1.0/dxrk/assets/kiro/sdd-orchestrator.md +347 -0
  137. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-apply.md +49 -0
  138. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-archive.md +48 -0
  139. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-design.md +45 -0
  140. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-explore.md +45 -0
  141. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-propose.md +44 -0
  142. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-spec.md +44 -0
  143. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-tasks.md +45 -0
  144. dxrk-0.1.0/dxrk/assets/opencode/agents/sdd-verify.md +44 -0
  145. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-apply.md +46 -0
  146. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-archive.md +41 -0
  147. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-continue.md +27 -0
  148. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-explore.md +27 -0
  149. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-ff.md +28 -0
  150. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-init.md +23 -0
  151. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-new.md +25 -0
  152. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-onboard.md +23 -0
  153. dxrk-0.1.0/dxrk/assets/opencode/commands/sdd-verify.md +38 -0
  154. dxrk-0.1.0/dxrk/assets/opencode/persona-dxrk.md +68 -0
  155. dxrk-0.1.0/dxrk/assets/opencode/persona-gentleman.md +68 -0
  156. dxrk-0.1.0/dxrk/assets/opencode/plugins/background-agents.ts +1485 -0
  157. dxrk-0.1.0/dxrk/assets/opencode/plugins/model-variants.ts +58 -0
  158. dxrk-0.1.0/dxrk/assets/opencode/sdd-orchestrator.md +198 -0
  159. dxrk-0.1.0/dxrk/assets/opencode/sdd-overlay-multi.json +155 -0
  160. dxrk-0.1.0/dxrk/assets/opencode/sdd-overlay-single.json +155 -0
  161. dxrk-0.1.0/dxrk/assets/qwen/sdd-orchestrator.md +260 -0
  162. dxrk-0.1.0/dxrk/assets/skills/_shared/DXRK_MEMORY-convention.md +136 -0
  163. dxrk-0.1.0/dxrk/assets/skills/_shared/SKILL.md +19 -0
  164. dxrk-0.1.0/dxrk/assets/skills/_shared/dxrk-memory-convention.md +136 -0
  165. dxrk-0.1.0/dxrk/assets/skills/_shared/engram-convention.md +136 -0
  166. dxrk-0.1.0/dxrk/assets/skills/_shared/openspec-convention.md +103 -0
  167. dxrk-0.1.0/dxrk/assets/skills/_shared/persistence-contract.md +150 -0
  168. dxrk-0.1.0/dxrk/assets/skills/_shared/sdd-phase-common.md +107 -0
  169. dxrk-0.1.0/dxrk/assets/skills/_shared/skill-resolver.md +114 -0
  170. dxrk-0.1.0/dxrk/assets/skills/branch-pr/SKILL.md +202 -0
  171. dxrk-0.1.0/dxrk/assets/skills/chained-pr/SKILL.md +50 -0
  172. dxrk-0.1.0/dxrk/assets/skills/chained-pr/references/chaining-details.md +99 -0
  173. dxrk-0.1.0/dxrk/assets/skills/cognitive-doc-design/SKILL.md +81 -0
  174. dxrk-0.1.0/dxrk/assets/skills/comment-writer/SKILL.md +74 -0
  175. dxrk-0.1.0/dxrk/assets/skills/go-testing/SKILL.md +51 -0
  176. dxrk-0.1.0/dxrk/assets/skills/go-testing/references/examples.md +89 -0
  177. dxrk-0.1.0/dxrk/assets/skills/issue-creation/SKILL.md +223 -0
  178. dxrk-0.1.0/dxrk/assets/skills/judgment-day/SKILL.md +52 -0
  179. dxrk-0.1.0/dxrk/assets/skills/judgment-day/references/prompts-and-formats.md +75 -0
  180. dxrk-0.1.0/dxrk/assets/skills/sdd-apply/SKILL.md +224 -0
  181. dxrk-0.1.0/dxrk/assets/skills/sdd-apply/strict-tdd.md +364 -0
  182. dxrk-0.1.0/dxrk/assets/skills/sdd-archive/SKILL.md +153 -0
  183. dxrk-0.1.0/dxrk/assets/skills/sdd-design/SKILL.md +172 -0
  184. dxrk-0.1.0/dxrk/assets/skills/sdd-explore/SKILL.md +136 -0
  185. dxrk-0.1.0/dxrk/assets/skills/sdd-init/SKILL.md +64 -0
  186. dxrk-0.1.0/dxrk/assets/skills/sdd-init/references/init-details.md +98 -0
  187. dxrk-0.1.0/dxrk/assets/skills/sdd-onboard/SKILL.md +218 -0
  188. dxrk-0.1.0/dxrk/assets/skills/sdd-propose/SKILL.md +177 -0
  189. dxrk-0.1.0/dxrk/assets/skills/sdd-spec/SKILL.md +232 -0
  190. dxrk-0.1.0/dxrk/assets/skills/sdd-tasks/SKILL.md +242 -0
  191. dxrk-0.1.0/dxrk/assets/skills/sdd-verify/SKILL.md +66 -0
  192. dxrk-0.1.0/dxrk/assets/skills/sdd-verify/references/report-format.md +67 -0
  193. dxrk-0.1.0/dxrk/assets/skills/sdd-verify/strict-tdd-verify.md +269 -0
  194. dxrk-0.1.0/dxrk/assets/skills/skill-creator/SKILL.md +101 -0
  195. dxrk-0.1.0/dxrk/assets/skills/skill-registry/SKILL.md +227 -0
  196. dxrk-0.1.0/dxrk/assets/skills/work-unit-commits/SKILL.md +86 -0
  197. dxrk-0.1.0/dxrk/assets/windsurf/sdd-orchestrator.md +314 -0
  198. dxrk-0.1.0/dxrk/assets/windsurf/workflows/sdd-new.md +218 -0
  199. dxrk-0.1.0/dxrk/autonomy/__init__.py +54 -0
  200. dxrk-0.1.0/dxrk/autonomy/autonomy.py +222 -0
  201. dxrk-0.1.0/dxrk/autonomy/evolution.py +225 -0
  202. dxrk-0.1.0/dxrk/autonomy/learner.py +181 -0
  203. dxrk-0.1.0/dxrk/autonomy/metrics.py +193 -0
  204. dxrk-0.1.0/dxrk/autonomy/permissions.py +108 -0
  205. dxrk-0.1.0/dxrk/autonomy/updater.py +142 -0
  206. dxrk-0.1.0/dxrk/autonomy/verifier.py +110 -0
  207. dxrk-0.1.0/dxrk/backup.py +572 -0
  208. dxrk-0.1.0/dxrk/catalog.py +946 -0
  209. dxrk-0.1.0/dxrk/cli/__init__.py +2 -0
  210. dxrk-0.1.0/dxrk/cli/dryrun.py +35 -0
  211. dxrk-0.1.0/dxrk/cli/install.py +2387 -0
  212. dxrk-0.1.0/dxrk/cli/restore.py +38 -0
  213. dxrk-0.1.0/dxrk/cli/run.py +301 -0
  214. dxrk-0.1.0/dxrk/cli/sync.py +69 -0
  215. dxrk-0.1.0/dxrk/cli/uninstall.py +51 -0
  216. dxrk-0.1.0/dxrk/commands/__init__.py +110 -0
  217. dxrk-0.1.0/dxrk/commands/agents.py +75 -0
  218. dxrk-0.1.0/dxrk/commands/branch.py +85 -0
  219. dxrk-0.1.0/dxrk/commands/commit.py +63 -0
  220. dxrk-0.1.0/dxrk/commands/commit_push_pr.py +92 -0
  221. dxrk-0.1.0/dxrk/commands/config.py +57 -0
  222. dxrk-0.1.0/dxrk/commands/context.py +36 -0
  223. dxrk-0.1.0/dxrk/commands/cost.py +62 -0
  224. dxrk-0.1.0/dxrk/commands/diff.py +45 -0
  225. dxrk-0.1.0/dxrk/commands/doctor.py +81 -0
  226. dxrk-0.1.0/dxrk/commands/effort.py +71 -0
  227. dxrk-0.1.0/dxrk/commands/export.py +96 -0
  228. dxrk-0.1.0/dxrk/commands/fast.py +45 -0
  229. dxrk-0.1.0/dxrk/commands/files.py +111 -0
  230. dxrk-0.1.0/dxrk/commands/gitutil.py +177 -0
  231. dxrk-0.1.0/dxrk/commands/hooks.py +129 -0
  232. dxrk-0.1.0/dxrk/commands/init.py +55 -0
  233. dxrk-0.1.0/dxrk/commands/keybindings.py +45 -0
  234. dxrk-0.1.0/dxrk/commands/mcp.py +87 -0
  235. dxrk-0.1.0/dxrk/commands/memory.py +67 -0
  236. dxrk-0.1.0/dxrk/commands/model.py +61 -0
  237. dxrk-0.1.0/dxrk/commands/permissions_command.py +40 -0
  238. dxrk-0.1.0/dxrk/commands/plan.py +114 -0
  239. dxrk-0.1.0/dxrk/commands/plugin.py +92 -0
  240. dxrk-0.1.0/dxrk/commands/pr_comments.py +132 -0
  241. dxrk-0.1.0/dxrk/commands/registry.py +215 -0
  242. dxrk-0.1.0/dxrk/commands/rename.py +50 -0
  243. dxrk-0.1.0/dxrk/commands/resume.py +80 -0
  244. dxrk-0.1.0/dxrk/commands/review.py +138 -0
  245. dxrk-0.1.0/dxrk/commands/rewind.py +79 -0
  246. dxrk-0.1.0/dxrk/commands/security_review.py +85 -0
  247. dxrk-0.1.0/dxrk/commands/session.py +338 -0
  248. dxrk-0.1.0/dxrk/commands/share.py +95 -0
  249. dxrk-0.1.0/dxrk/commands/skills.py +53 -0
  250. dxrk-0.1.0/dxrk/commands/stats.py +93 -0
  251. dxrk-0.1.0/dxrk/commands/tag.py +161 -0
  252. dxrk-0.1.0/dxrk/commands/tasks.py +118 -0
  253. dxrk-0.1.0/dxrk/commands/theme.py +72 -0
  254. dxrk-0.1.0/dxrk/commands/usage.py +37 -0
  255. dxrk-0.1.0/dxrk/commands/vim.py +33 -0
  256. dxrk-0.1.0/dxrk/components/__init__.py +2 -0
  257. dxrk-0.1.0/dxrk/components/assets.py +40 -0
  258. dxrk-0.1.0/dxrk/components/context7.py +148 -0
  259. dxrk-0.1.0/dxrk/components/engram.py +675 -0
  260. dxrk-0.1.0/dxrk/components/filemerge.py +487 -0
  261. dxrk-0.1.0/dxrk/components/gga.py +155 -0
  262. dxrk-0.1.0/dxrk/components/opencodeplugin.py +111 -0
  263. dxrk-0.1.0/dxrk/components/permissions.py +89 -0
  264. dxrk-0.1.0/dxrk/components/persona.py +352 -0
  265. dxrk-0.1.0/dxrk/components/sdd.py +1282 -0
  266. dxrk-0.1.0/dxrk/components/skills.py +109 -0
  267. dxrk-0.1.0/dxrk/components/theme.py +46 -0
  268. dxrk-0.1.0/dxrk/components/uninstall.py +1011 -0
  269. dxrk-0.1.0/dxrk/compress/__init__.py +332 -0
  270. dxrk-0.1.0/dxrk/config/__init__.py +185 -0
  271. dxrk-0.1.0/dxrk/config/config.py +743 -0
  272. dxrk-0.1.0/dxrk/config/featureflags.py +150 -0
  273. dxrk-0.1.0/dxrk/config/load.py +246 -0
  274. dxrk-0.1.0/dxrk/config/settings.py +223 -0
  275. dxrk-0.1.0/dxrk/config/sync.py +280 -0
  276. dxrk-0.1.0/dxrk/config/validation.py +287 -0
  277. dxrk-0.1.0/dxrk/config/viper.py +44 -0
  278. dxrk-0.1.0/dxrk/coordinator.py +420 -0
  279. dxrk-0.1.0/dxrk/cost/__init__.py +179 -0
  280. dxrk-0.1.0/dxrk/costopt.py +242 -0
  281. dxrk-0.1.0/dxrk/git.py +700 -0
  282. dxrk-0.1.0/dxrk/installcmd.py +384 -0
  283. dxrk-0.1.0/dxrk/log/__init__.py +132 -0
  284. dxrk-0.1.0/dxrk/log/zap.py +81 -0
  285. dxrk-0.1.0/dxrk/mcp/__init__.py +116 -0
  286. dxrk-0.1.0/dxrk/memory/__init__.py +250 -0
  287. dxrk-0.1.0/dxrk/model/__init__.py +826 -0
  288. dxrk-0.1.0/dxrk/models.py +645 -0
  289. dxrk-0.1.0/dxrk/observe/__init__.py +353 -0
  290. dxrk-0.1.0/dxrk/opencode.py +177 -0
  291. dxrk-0.1.0/dxrk/pipeline.py +502 -0
  292. dxrk-0.1.0/dxrk/planner.py +288 -0
  293. dxrk-0.1.0/dxrk/plugin.py +954 -0
  294. dxrk-0.1.0/dxrk/query/__init__.py +1027 -0
  295. dxrk-0.1.0/dxrk/rag/__init__.py +40 -0
  296. dxrk-0.1.0/dxrk/rag/chunker.py +200 -0
  297. dxrk-0.1.0/dxrk/rag/embedder.py +119 -0
  298. dxrk-0.1.0/dxrk/rag/indexer.py +139 -0
  299. dxrk-0.1.0/dxrk/rag/rag.py +74 -0
  300. dxrk-0.1.0/dxrk/rag/store.py +149 -0
  301. dxrk-0.1.0/dxrk/rag/tools.py +136 -0
  302. dxrk-0.1.0/dxrk/resilience/__init__.py +199 -0
  303. dxrk-0.1.0/dxrk/router/__init__.py +462 -0
  304. dxrk-0.1.0/dxrk/scholar/__init__.py +29 -0
  305. dxrk-0.1.0/dxrk/scholar/arxiv.py +76 -0
  306. dxrk-0.1.0/dxrk/scholar/citation/__init__.py +15 -0
  307. dxrk-0.1.0/dxrk/scholar/citation/doi.py +34 -0
  308. dxrk-0.1.0/dxrk/scholar/citation/format.py +155 -0
  309. dxrk-0.1.0/dxrk/scholar/crossref.py +103 -0
  310. dxrk-0.1.0/dxrk/scholar/openalex.py +115 -0
  311. dxrk-0.1.0/dxrk/scholar/provider.py +31 -0
  312. dxrk-0.1.0/dxrk/scholar/pubmed.py +131 -0
  313. dxrk-0.1.0/dxrk/scholar/scholar.py +44 -0
  314. dxrk-0.1.0/dxrk/scholar/semanticscholar.py +119 -0
  315. dxrk-0.1.0/dxrk/scholar/tools.py +173 -0
  316. dxrk-0.1.0/dxrk/scraper/__init__.py +59 -0
  317. dxrk-0.1.0/dxrk/security/__init__.py +118 -0
  318. dxrk-0.1.0/dxrk/security/ast.py +765 -0
  319. dxrk-0.1.0/dxrk/security/jwt.py +384 -0
  320. dxrk-0.1.0/dxrk/security/permissions.py +350 -0
  321. dxrk-0.1.0/dxrk/security/yolo.py +312 -0
  322. dxrk-0.1.0/dxrk/skillregistry.py +473 -0
  323. dxrk-0.1.0/dxrk/slo/__init__.py +185 -0
  324. dxrk-0.1.0/dxrk/state/__init__.py +82 -0
  325. dxrk-0.1.0/dxrk/state.py +46 -0
  326. dxrk-0.1.0/dxrk/strconst/__init__.py +84 -0
  327. dxrk-0.1.0/dxrk/system/__init__.py +718 -0
  328. dxrk-0.1.0/dxrk/task.py +368 -0
  329. dxrk-0.1.0/dxrk/telemetry/__init__.py +166 -0
  330. dxrk-0.1.0/dxrk/tools/__init__.py +343 -0
  331. dxrk-0.1.0/dxrk/tools/dxrk.py +607 -0
  332. dxrk-0.1.0/dxrk/tools/filetools.py +645 -0
  333. dxrk-0.1.0/dxrk/trace/__init__.py +143 -0
  334. dxrk-0.1.0/dxrk/tui/__init__.py +2 -0
  335. dxrk-0.1.0/dxrk/tui/app.py +947 -0
  336. dxrk-0.1.0/dxrk/tui/screens/__init__.py +18 -0
  337. dxrk-0.1.0/dxrk/tui/screens/agents.py +102 -0
  338. dxrk-0.1.0/dxrk/tui/screens/backups.py +278 -0
  339. dxrk-0.1.0/dxrk/tui/screens/complete.py +81 -0
  340. dxrk-0.1.0/dxrk/tui/screens/dependency_tree.py +174 -0
  341. dxrk-0.1.0/dxrk/tui/screens/detection.py +123 -0
  342. dxrk-0.1.0/dxrk/tui/screens/installing.py +62 -0
  343. dxrk-0.1.0/dxrk/tui/screens/review.py +137 -0
  344. dxrk-0.1.0/dxrk/tui/shared.py +83 -0
  345. dxrk-0.1.0/dxrk/update.py +1265 -0
  346. dxrk-0.1.0/dxrk/utils/__init__.py +32 -0
  347. dxrk-0.1.0/dxrk/utils/bashparse.py +877 -0
  348. dxrk-0.1.0/dxrk/utils/diff.py +1569 -0
  349. dxrk-0.1.0/dxrk/utils/filemerge.py +627 -0
  350. dxrk-0.1.0/dxrk/utils/fileops.py +1111 -0
  351. dxrk-0.1.0/dxrk/utils/hooks.py +1825 -0
  352. dxrk-0.1.0/dxrk/utils/http.py +2002 -0
  353. dxrk-0.1.0/dxrk/utils/image.py +1199 -0
  354. dxrk-0.1.0/dxrk/utils/messages.py +1205 -0
  355. dxrk-0.1.0/dxrk/utils/permissions.py +1592 -0
  356. dxrk-0.1.0/dxrk/utils/session.py +1321 -0
  357. dxrk-0.1.0/dxrk/utils/swarm.py +1617 -0
  358. dxrk-0.1.0/dxrk/vault/__init__.py +204 -0
  359. dxrk-0.1.0/dxrk/verify.py +152 -0
  360. dxrk-0.1.0/dxrk/version/__init__.py +1 -0
  361. dxrk-0.1.0/dxrk/versions/__init__.py +8 -0
  362. dxrk-0.1.0/dxrk.egg-info/PKG-INFO +22 -0
  363. dxrk-0.1.0/dxrk.egg-info/SOURCES.txt +439 -0
  364. dxrk-0.1.0/dxrk.egg-info/dependency_links.txt +1 -0
  365. dxrk-0.1.0/dxrk.egg-info/entry_points.txt +2 -0
  366. dxrk-0.1.0/dxrk.egg-info/requires.txt +14 -0
  367. dxrk-0.1.0/dxrk.egg-info/top_level.txt +1 -0
  368. dxrk-0.1.0/pyproject.toml +65 -0
  369. dxrk-0.1.0/setup.cfg +4 -0
  370. dxrk-0.1.0/tests/test_a2a.py +174 -0
  371. dxrk-0.1.0/tests/test_adapters.py +190 -0
  372. dxrk-0.1.0/tests/test_agentbuilder.py +101 -0
  373. dxrk-0.1.0/tests/test_agents.py +234 -0
  374. dxrk-0.1.0/tests/test_app_verify_installcmd.py +572 -0
  375. dxrk-0.1.0/tests/test_autonomy.py +232 -0
  376. dxrk-0.1.0/tests/test_backup.py +388 -0
  377. dxrk-0.1.0/tests/test_catalog.py +183 -0
  378. dxrk-0.1.0/tests/test_cli_flags.py +795 -0
  379. dxrk-0.1.0/tests/test_cli_wrappers.py +346 -0
  380. dxrk-0.1.0/tests/test_commands.py +410 -0
  381. dxrk-0.1.0/tests/test_compress.py +201 -0
  382. dxrk-0.1.0/tests/test_config.py +568 -0
  383. dxrk-0.1.0/tests/test_context7.py +132 -0
  384. dxrk-0.1.0/tests/test_coordinator.py +423 -0
  385. dxrk-0.1.0/tests/test_cost.py +164 -0
  386. dxrk-0.1.0/tests/test_costopt.py +174 -0
  387. dxrk-0.1.0/tests/test_engram.py +168 -0
  388. dxrk-0.1.0/tests/test_engram_coverage.py +1338 -0
  389. dxrk-0.1.0/tests/test_filemerge.py +190 -0
  390. dxrk-0.1.0/tests/test_gga.py +128 -0
  391. dxrk-0.1.0/tests/test_git.py +322 -0
  392. dxrk-0.1.0/tests/test_hooks.py +727 -0
  393. dxrk-0.1.0/tests/test_installcmd.py +599 -0
  394. dxrk-0.1.0/tests/test_integration_install.py +212 -0
  395. dxrk-0.1.0/tests/test_integration_sync.py +194 -0
  396. dxrk-0.1.0/tests/test_log.py +80 -0
  397. dxrk-0.1.0/tests/test_main_discovery_run.py +447 -0
  398. dxrk-0.1.0/tests/test_mcp.py +115 -0
  399. dxrk-0.1.0/tests/test_memory.py +213 -0
  400. dxrk-0.1.0/tests/test_model.py +418 -0
  401. dxrk-0.1.0/tests/test_models.py +274 -0
  402. dxrk-0.1.0/tests/test_observe.py +118 -0
  403. dxrk-0.1.0/tests/test_opencode.py +161 -0
  404. dxrk-0.1.0/tests/test_opencodeplugin.py +88 -0
  405. dxrk-0.1.0/tests/test_permissions.py +87 -0
  406. dxrk-0.1.0/tests/test_persona.py +931 -0
  407. dxrk-0.1.0/tests/test_pipeline.py +412 -0
  408. dxrk-0.1.0/tests/test_planner.py +248 -0
  409. dxrk-0.1.0/tests/test_plugin.py +548 -0
  410. dxrk-0.1.0/tests/test_query.py +1452 -0
  411. dxrk-0.1.0/tests/test_rag.py +476 -0
  412. dxrk-0.1.0/tests/test_resilience.py +282 -0
  413. dxrk-0.1.0/tests/test_router.py +268 -0
  414. dxrk-0.1.0/tests/test_scholar.py +579 -0
  415. dxrk-0.1.0/tests/test_scraper.py +63 -0
  416. dxrk-0.1.0/tests/test_sdd.py +148 -0
  417. dxrk-0.1.0/tests/test_security.py +913 -0
  418. dxrk-0.1.0/tests/test_skillregistry.py +450 -0
  419. dxrk-0.1.0/tests/test_skills.py +91 -0
  420. dxrk-0.1.0/tests/test_slo.py +245 -0
  421. dxrk-0.1.0/tests/test_state.py +136 -0
  422. dxrk-0.1.0/tests/test_strconst.py +105 -0
  423. dxrk-0.1.0/tests/test_system.py +850 -0
  424. dxrk-0.1.0/tests/test_task.py +305 -0
  425. dxrk-0.1.0/tests/test_telemetry.py +114 -0
  426. dxrk-0.1.0/tests/test_theme.py +58 -0
  427. dxrk-0.1.0/tests/test_tools.py +178 -0
  428. dxrk-0.1.0/tests/test_trace.py +64 -0
  429. dxrk-0.1.0/tests/test_tui.py +494 -0
  430. dxrk-0.1.0/tests/test_uninstall.py +567 -0
  431. dxrk-0.1.0/tests/test_update.py +1201 -0
  432. dxrk-0.1.0/tests/test_utils_bashparse.py +420 -0
  433. dxrk-0.1.0/tests/test_utils_diff.py +524 -0
  434. dxrk-0.1.0/tests/test_utils_fileops.py +774 -0
  435. dxrk-0.1.0/tests/test_utils_http.py +235 -0
  436. dxrk-0.1.0/tests/test_utils_messages.py +747 -0
  437. dxrk-0.1.0/tests/test_utils_permissions.py +1481 -0
  438. dxrk-0.1.0/tests/test_utils_swarm.py +460 -0
  439. dxrk-0.1.0/tests/test_vault.py +116 -0
  440. dxrk-0.1.0/tests/test_version.py +9 -0
  441. dxrk-0.1.0/tests/test_versions.py +34 -0
dxrk-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dxrk777
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
dxrk-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,22 @@
1
+ Metadata-Version: 2.4
2
+ Name: dxrk
3
+ Version: 0.1.0
4
+ Summary: Dxrk Ecosystem Configurator — supercharge AI coding agents
5
+ Author: Dxrk777
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Dxrk777/Dxrk
8
+ Requires-Python: >=3.13
9
+ License-File: LICENSE
10
+ Requires-Dist: textual<9.0,>=1.0
11
+ Requires-Dist: httpx<1.0,>=0.27
12
+ Requires-Dist: PyYAML>=6.0
13
+ Requires-Dist: cryptography<46.0,>=43.0
14
+ Requires-Dist: beautifulsoup4<5,>=4.12
15
+ Provides-Extra: dev
16
+ Requires-Dist: pytest>=8.0; extra == "dev"
17
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
18
+ Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
19
+ Provides-Extra: typecheck
20
+ Requires-Dist: mypy>=1.10; extra == "typecheck"
21
+ Requires-Dist: pytest>=8.0; extra == "typecheck"
22
+ Dynamic: license-file
dxrk-0.1.0/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # Dxrk
2
+
3
+ <p align="center">
4
+ <strong>Ecosistema, Frameworks y Workflows para agentes de IA</strong>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://github.com/Dxrk777/Dxrk/releases"><img src="https://img.shields.io/badge/Release-v0.1.0-blue" alt="Release"></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green" alt="License"></a>
10
+ <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.13%2B-3776AB" alt="Python 3.13+"></a>
11
+ <a href="https://github.com/Dxrk777/Dxrk"><img src="https://img.shields.io/badge/Platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey" alt="Platform"></a>
12
+ <a href="https://github.com/Dxrk777/Dxrk/actions"><img src="https://img.shields.io/github/actions/workflow/status/Dxrk777/Dxrk/ci.yml" alt="CI"></a>
13
+ <a href="https://github.com/Dxrk777/Dxrk/stargazers"><img src="https://img.shields.io/github/stars/Dxrk777/Dxrk" alt="Stars"></a>
14
+ </p>
15
+
16
+ ---
17
+
18
+ ## Qué es Dxrk
19
+
20
+ **Dxrk** es el configurador y orquestador de ecosistemas para agentes de IA. Unifica
21
+ memoria persistente, Spec-Driven Development, skills curadas, servidores MCP y un
22
+ conmutador de proveedores de modelos en una sola herramienta de línea de comandos.
23
+
24
+ Escrito en **Python 3.13+** con una TUI basada en Textual, Dxrk:
25
+
26
+ - Configura **42 agentes de IA** (Claude Code, OpenCode, Codex, Gemini CLI, Cursor,
27
+ Copilot, Windsurf y más) con un solo comando.
28
+ - Mantiene **memoria persistente** entre sesiones y proyectos (SDD, decisiones,
29
+ contexto, aprender de cada interacción).
30
+ - Gestiona **skills curadas** y servidores **MCP** por proyecto.
31
+ - Conmuta entre **proveedores y modelos de IA** con perfiles de costo por fase
32
+ (cheap/balanced/quality) o por comando.
33
+ - Ejecuta **workflows** de desarrollo: planificación, commits con conventional
34
+ commits, PRs, revisión de código, keybindings y más.
35
+
36
+ ## Instalación
37
+
38
+ Requisito: **Python 3.13 o superior**.
39
+
40
+ ### Con uv (recomendado)
41
+
42
+ ```bash
43
+ uv tool install --from git+https://github.com/Dxrk777/Dxrk.git dxrk
44
+ ```
45
+
46
+ ### Con pip
47
+
48
+ ```bash
49
+ pip install git+https://github.com/Dxrk777/Dxrk.git
50
+ ```
51
+
52
+ ### Desde el código fuente
53
+
54
+ ```bash
55
+ git clone https://github.com/Dxrk777/Dxrk.git
56
+ cd Dxrk
57
+ uv sync --all-extras
58
+ uv run dxrk-py --help
59
+ ```
60
+
61
+ ## Uso rápido
62
+
63
+ ```bash
64
+ # Instalar y configurar un agente
65
+ dxrk-py install --agent claude-code --preset full-dxrk
66
+
67
+ # Preguntar sobre un concepto
68
+ dxrk-py query "explica qué es Spec-Driven Development"
69
+
70
+ # Sincronizar perfil de modelos barato
71
+ dxrk-py sync --profile cheap:openrouter/qwen/qwen3-30b-a3b:free
72
+
73
+ # Perfil por fase (ej. diseño)
74
+ dxrk-py sync --profile-phase cheap:sdd-design:anthropic/claude-sonnet-4-20250514
75
+ ```
76
+
77
+ ## Agentes soportados (42)
78
+
79
+ | | | | |
80
+ |---|---|---|---|
81
+ | Claude Code | OpenCode | Kilo Code | Gemini CLI |
82
+ | Cursor | VS Code Copilot | Codex | Windsurf |
83
+ | Antigravity | Kimi Code | Kiro IDE | Qwen Code |
84
+ | Pi | OpenClaw | Aider | Cline |
85
+ | Roo Code | Continue | Junie | Amazon Q |
86
+ | OpenHands | Zed AI | GitHub Copilot | Devin |
87
+ | Cody | Tabnine | Replit | Void |
88
+ | Amp | Blackbox AI | Bolt.new | Conductor |
89
+ | Hermes | JetBrains AI | Looperators | Lovable |
90
+ | PearAI | Qodo | RunCell | Trae |
91
+ | v0 | ZCode | | |
92
+
93
+ ## Características
94
+
95
+ - **Memoria persistente**: `dxrk-memory` (binario externo en
96
+ [Dxrk777/dxrk-memory](https://github.com/Dxrk777/dxrk-memory), instalable vía
97
+ Homebrew o GitHub Releases) con búsqueda semántica: `dxrk-memory search "SDD"`.
98
+ - **Spec-Driven Development**: inicialización por proyecto con `/sdd-init`,
99
+ especificaciones, diseño y verificación.
100
+ - **Skills**: `dxrk-py skill-registry refresh` para sincronizar el registro de
101
+ skills del proyecto.
102
+ - **Servidores MCP**: 35 servidores configurables vía `.mcp.json`.
103
+ - **Conmutador de modelos**: perfiles `cheap` / `balanced` / `quality`, asignación
104
+ por fase (sdd-design, sdd-spec, sdd-tasks, etc.).
105
+ - **TUI**: interfaz Textual con detección de agentes instalados.
106
+ - **Workflows Git**: commits con conventional commits, PRs con revisión,
107
+ keybindings configurables.
108
+
109
+ ## Estructura del proyecto
110
+
111
+ ```
112
+ dxrk/
113
+ ├── __main__.py # Entry point CLI
114
+ ├── autonomy/ # Aprendizaje, evolución, verificador
115
+ ├── cli/ # Comandos de instalación y ejecución
116
+ ├── commands/ # Comandos del orquestador (commit, plan, mcp, ...)
117
+ ├── config/ # Configuración y validación
118
+ ├── mcp/ # Clientes MCP
119
+ ├── observe/ # Observabilidad y traces
120
+ ├── query/ # Motor de consultas
121
+ ├── rag/ # Retrieval-Augmented Generation
122
+ ├── security/ # JWT, permisos
123
+ ├── system/ # Detección de plataforma y gestión del sistema
124
+ ├── tools/ # Herramientas del agente
125
+ ├── trace/ # Trazabilidad
126
+ ├── tui/ # Interfaz Textual
127
+ └── utils/ # Utilidades (fileops, hooks, http, ...)
128
+ ```
129
+
130
+ ## Desarrollo
131
+
132
+ ```bash
133
+ uv sync --all-extras # Instalar dependencias y extras
134
+ uv run pytest # Suite de tests (2760+ tests)
135
+ uv run --with mypy mypy dxrk/ # Type checking
136
+ ```
137
+
138
+ ## Roadmap
139
+
140
+ - **v4.1.0** — pipeline de entrenamiento ML, pre-commit, dependabot, más integraciones.
141
+ - **v4.2.0** — marketplace de plugins.
142
+ - **v5.0.0** — multi-tenant.
143
+
144
+ ## Documentación
145
+
146
+ | Documento | Descripción |
147
+ |---|---|
148
+ | [docs/intended-usage.md](docs/intended-usage.md) | Uso intencional del ecosistema |
149
+ | [docs/agents.md](docs/agents.md) | Agentes soportados |
150
+ | [docs/components.md](docs/components.md) | Componentes del sistema |
151
+ | [docs/architecture.md](docs/architecture.md) | Arquitectura |
152
+ | [docs/usage.md](docs/usage.md) | Guía de uso |
153
+ | [docs/platforms.md](docs/platforms.md) | Plataformas |
154
+
155
+ ## Licencia
156
+
157
+ MIT — ver [LICENSE](LICENSE).
158
+
159
+ ---
160
+
161
+ **DXRK // BEYOND LIMITS**
@@ -0,0 +1,2 @@
1
+ # SPDX-License-Identifier: MIT
2
+
@@ -0,0 +1,254 @@
1
+ # SPDX-License-Identifier: MIT
2
+ #!/usr/bin/env python3
3
+ """
4
+ Dxrk — Unified CLI + TUI entry point.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import argparse
10
+ import logging
11
+ import os
12
+ import sys
13
+
14
+
15
+ def main() -> None:
16
+ parser = argparse.ArgumentParser(description="Dxrk — Agent Ecosystem Manager")
17
+ parser.add_argument("--version", "-v", action="store_true", help="Show version")
18
+ parser.add_argument("--health", action="store_true", help="Run health check")
19
+ parser.add_argument(
20
+ "--tui", action="store_true", help="Launch TUI (default if no args)"
21
+ )
22
+ parser.add_argument("--debug", action="store_true", help="Enable debug logging")
23
+
24
+ sub = parser.add_subparsers(dest="command")
25
+
26
+ # dxrk install
27
+ install_parser = sub.add_parser("install", help="Install agents and components")
28
+ install_parser.add_argument(
29
+ "--agent", "-a", action="append", dest="agents", help="Agent to install"
30
+ )
31
+ install_parser.add_argument(
32
+ "--component",
33
+ "-c",
34
+ action="append",
35
+ dest="components",
36
+ help="Component to install",
37
+ )
38
+ install_parser.add_argument(
39
+ "--persona", choices=["gentleman", "neutral", "custom"], default="gentleman"
40
+ )
41
+ install_parser.add_argument(
42
+ "--preset", choices=["full-gentleman", "ecosystem-only", "minimal", "custom"]
43
+ )
44
+ install_parser.add_argument(
45
+ "--dry-run", action="store_true", help="Preview without installing"
46
+ )
47
+
48
+ # dxrk sync
49
+ sync_parser = sub.add_parser("sync", help="Sync configuration to disk")
50
+ sync_parser.add_argument(
51
+ "--agent", "-a", action="append", dest="agents", help="Agent to sync"
52
+ )
53
+ sync_parser.add_argument(
54
+ "--dry-run", action="store_true", help="Preview without syncing"
55
+ )
56
+ sync_parser.add_argument(
57
+ "--sdd-mode", type=str, default="", help="SDD mode (single/multi)"
58
+ )
59
+ sync_parser.add_argument(
60
+ "--strict-tdd", action="store_true", default=False, help="Enable strict TDD"
61
+ )
62
+ sync_parser.add_argument(
63
+ "--include-permissions",
64
+ action="store_true",
65
+ default=False,
66
+ help="Include permissions",
67
+ )
68
+ sync_parser.add_argument(
69
+ "--include-theme", action="store_true", default=False, help="Include theme"
70
+ )
71
+
72
+ # dxrk upgrade
73
+ upg_parser = sub.add_parser("upgrade", help="Upgrade installed components")
74
+
75
+ # dxrk uninstall
76
+ uninstall_parser = sub.add_parser(
77
+ "uninstall", help="Uninstall agents and components"
78
+ )
79
+ uninstall_parser.add_argument("--agent", action="append", dest="agents")
80
+ uninstall_parser.add_argument("--component", action="append", dest="components")
81
+ uninstall_parser.add_argument(
82
+ "--all", action="store_true", default=False, help="Uninstall all"
83
+ )
84
+ uninstall_parser.add_argument(
85
+ "--yes", "-y", action="store_true", default=False, help="Skip confirmation"
86
+ )
87
+
88
+ # dxrk backup / restore
89
+ sub.add_parser("backup", help="Manage backups")
90
+ restore_parser = sub.add_parser("restore", help="Restore from a backup")
91
+ restore_parser.add_argument("backup_id", nargs="?", help="Backup ID to restore")
92
+
93
+ # dxrk model
94
+ model_parser = sub.add_parser("model", help="Configure model assignments")
95
+ model_parser.add_argument("phase", nargs="?", help="SDD phase to configure")
96
+ model_parser.add_argument("--provider", help="Provider ID")
97
+ model_parser.add_argument("--model", help="Model ID")
98
+
99
+ # dxrk version
100
+ sub.add_parser("version", help="Show version")
101
+
102
+ args = parser.parse_args()
103
+
104
+ if args.debug:
105
+ logging.basicConfig(
106
+ level=logging.DEBUG, format="%(levelname)s %(name)s: %(message)s"
107
+ )
108
+ else:
109
+ logging.basicConfig(level=logging.WARNING)
110
+
111
+ version = os.environ.get("DXRK_VERSION", "dev")
112
+
113
+ if args.version or args.command == "version":
114
+ print(f"Dxrk v{version}")
115
+ return
116
+
117
+ if args.health:
118
+ from dxrk.system import detect, render_dependency_report
119
+
120
+ result = detect()
121
+ assert result.dependencies is not None, (
122
+ "detection did not populate dependencies"
123
+ )
124
+ print(render_dependency_report(result.dependencies))
125
+ return
126
+
127
+ if args.command == "install":
128
+ _run_install_cli(args)
129
+ return
130
+
131
+ if args.command == "sync":
132
+ _run_sync_cli(args)
133
+ return
134
+
135
+ if args.command == "uninstall":
136
+ _run_uninstall_cli(args)
137
+ return
138
+
139
+ if args.command == "backup":
140
+ _run_backup_cli()
141
+ return
142
+
143
+ if args.command == "restore":
144
+ _run_restore_cli(args)
145
+ return
146
+
147
+ if args.command == "upgrade":
148
+ print("Upgrade not yet implemented")
149
+ return
150
+
151
+ if args.command == "model":
152
+ _run_model_cli(args)
153
+ return
154
+
155
+ if args.command:
156
+ print(f"Command '{args.command}' not yet implemented")
157
+ return
158
+
159
+ _launch_tui(version)
160
+
161
+
162
+ def _run_install_cli(args) -> None:
163
+ from dxrk.system import detect
164
+
165
+ result = detect()
166
+ if not result.system.supported:
167
+ print("Unsupported system:", result.system.os)
168
+ sys.exit(1)
169
+
170
+ from dxrk.cli.install import run_install
171
+
172
+ raw = sys.argv[2:]
173
+
174
+ out = run_install(raw, detection=result)
175
+ if out.dry_run:
176
+ rev = out.review
177
+ if rev:
178
+ print("=== Dry Run Review ===")
179
+ print(f" Agents selected: {len(rev.agents)}")
180
+ print(f" Unsupported agents: {len(rev.unsupported_agents)}")
181
+ print(f" Persona: {rev.persona}")
182
+ print(f" Preset: {rev.preset}")
183
+ print(f" Components: {len(rev.components)}")
184
+ print(f" Skills: {len(rev.skills)}")
185
+ print(f" Strict TDD: {rev.strict_tdd}")
186
+ print(f" Has SDD: {rev.has_sdd}")
187
+ if rev.platform_decision:
188
+ pd = rev.platform_decision
189
+ print(f" OS: {pd.os} / {pd.linux_distro}")
190
+ return
191
+
192
+
193
+ def _launch_tui(version: str) -> None:
194
+ from dxrk.tui.app import run as run_tui
195
+
196
+ run_tui(version)
197
+
198
+
199
+ def _run_sync_cli(args) -> None:
200
+ from dxrk.cli.sync import RunSync
201
+
202
+ raw = sys.argv[2:]
203
+ result = RunSync(raw)
204
+ if hasattr(result, "dry_run") and result.dry_run:
205
+ print("=== Dry Run Sync ===")
206
+ print(f" Agents: {len(result.agents)}")
207
+ print(f" SDD Mode: {getattr(result.selection, 'sdd_mode', 'N/A')}")
208
+ print(f" Strict TDD: {result.selection.strict_tdd}")
209
+ return
210
+
211
+ print(f"Sync complete — {getattr(result, 'files_changed', 0)} files changed")
212
+
213
+
214
+ def _run_uninstall_cli(args) -> None:
215
+ from dxrk.cli.uninstall import RunUninstall
216
+
217
+ raw = sys.argv[2:]
218
+ result = RunUninstall(raw)
219
+ if hasattr(result, "removed_files"):
220
+ manual = getattr(result, "manual_actions", [])
221
+ if manual:
222
+ print("Manual actions required:")
223
+ for a in manual:
224
+ print(f" {a}")
225
+ print("Uninstall complete")
226
+
227
+
228
+ def _run_backup_cli() -> None:
229
+ from dxrk.backup import list_backups
230
+
231
+ backups = list_backups()
232
+ if not backups:
233
+ print("No backups found")
234
+ return
235
+ for b in backups:
236
+ print(f" {b}")
237
+
238
+
239
+ def _run_restore_cli(args) -> None:
240
+ from dxrk.cli.restore import RunRestore
241
+
242
+ raw = sys.argv[2:]
243
+ RunRestore(raw)
244
+
245
+
246
+ def _run_model_cli(args) -> None:
247
+ if args.phase:
248
+ print(f"Model config for phase '{args.phase}' not yet implemented")
249
+ else:
250
+ print("Model configuration not yet implemented")
251
+
252
+
253
+ if __name__ == "__main__":
254
+ main()