highhxcli 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 (465) hide show
  1. highhxcli-0.1.0/.gitignore +32 -0
  2. highhxcli-0.1.0/CHANGELOG.md +42 -0
  3. highhxcli-0.1.0/CODE_OF_CONDUCT.md +32 -0
  4. highhxcli-0.1.0/CONTRIBUTING.md +45 -0
  5. highhxcli-0.1.0/LICENSE +21 -0
  6. highhxcli-0.1.0/PKG-INFO +329 -0
  7. highhxcli-0.1.0/README.md +299 -0
  8. highhxcli-0.1.0/SECURITY.md +30 -0
  9. highhxcli-0.1.0/docs/architecture.md +84 -0
  10. highhxcli-0.1.0/docs/commands.md +1360 -0
  11. highhxcli-0.1.0/docs/configuration.md +191 -0
  12. highhxcli-0.1.0/docs/development.md +77 -0
  13. highhxcli-0.1.0/docs/plugins.md +113 -0
  14. highhxcli-0.1.0/docs/security.md +101 -0
  15. highhxcli-0.1.0/docs/troubleshooting.md +60 -0
  16. highhxcli-0.1.0/docs/workflows.md +115 -0
  17. highhxcli-0.1.0/examples/README.md +19 -0
  18. highhxcli-0.1.0/examples/basic/.highhx/config.yaml +16 -0
  19. highhxcli-0.1.0/examples/basic/.highhx/workflows/check.yaml +10 -0
  20. highhxcli-0.1.0/examples/basic/README.md +11 -0
  21. highhxcli-0.1.0/examples/basic/calc.py +5 -0
  22. highhxcli-0.1.0/examples/basic/tests/__init__.py +0 -0
  23. highhxcli-0.1.0/examples/basic/tests/test_calc.py +16 -0
  24. highhxcli-0.1.0/examples/ci/.highhx/config.yaml +12 -0
  25. highhxcli-0.1.0/examples/ci/.highhx/workflows/pipeline.yaml +33 -0
  26. highhxcli-0.1.0/examples/ci/.highhx/workflows/tests.yaml +12 -0
  27. highhxcli-0.1.0/examples/docker/.highhx/config.yaml +19 -0
  28. highhxcli-0.1.0/examples/docker/.highhx/workflows/up.yaml +12 -0
  29. highhxcli-0.1.0/examples/flutter/.highhx/config.yaml +14 -0
  30. highhxcli-0.1.0/examples/flutter/.highhx/workflows/build.yaml +27 -0
  31. highhxcli-0.1.0/examples/monorepo/.highhx/config.yaml +10 -0
  32. highhxcli-0.1.0/examples/monorepo/.highhx/workflows/test-all.yaml +8 -0
  33. highhxcli-0.1.0/examples/node/.highhx/config.yaml +21 -0
  34. highhxcli-0.1.0/examples/node/.highhx/workflows/ci.yaml +22 -0
  35. highhxcli-0.1.0/examples/production/.highhx/config.yaml +57 -0
  36. highhxcli-0.1.0/examples/production/.highhx/environment.yaml +25 -0
  37. highhxcli-0.1.0/examples/production/.highhx/policies.yaml +31 -0
  38. highhxcli-0.1.0/examples/production/.highhx/workflows/deploy.yaml +18 -0
  39. highhxcli-0.1.0/examples/production/db/migrations/001_create_users.sql +5 -0
  40. highhxcli-0.1.0/examples/production/db/migrations/002_add_name.sql +1 -0
  41. highhxcli-0.1.0/examples/python/.highhx/config.yaml +33 -0
  42. highhxcli-0.1.0/examples/python/.highhx/workflows/check.yaml +13 -0
  43. highhxcli-0.1.0/examples/python/.highhx/workflows/release.yaml +18 -0
  44. highhxcli-0.1.0/pyproject.toml +105 -0
  45. highhxcli-0.1.0/schemas/config.schema.json +756 -0
  46. highhxcli-0.1.0/schemas/plugin.schema.json +139 -0
  47. highhxcli-0.1.0/schemas/workflow.schema.json +335 -0
  48. highhxcli-0.1.0/scripts/generate_docs.py +89 -0
  49. highhxcli-0.1.0/scripts/generate_schemas.py +40 -0
  50. highhxcli-0.1.0/src/highhx/__init__.py +5 -0
  51. highhxcli-0.1.0/src/highhx/__main__.py +6 -0
  52. highhxcli-0.1.0/src/highhx/approvals/__init__.py +5 -0
  53. highhxcli-0.1.0/src/highhx/approvals/manager.py +119 -0
  54. highhxcli-0.1.0/src/highhx/approvals/policy.py +52 -0
  55. highhxcli-0.1.0/src/highhx/approvals/risk.py +73 -0
  56. highhxcli-0.1.0/src/highhx/approvals/rules.py +182 -0
  57. highhxcli-0.1.0/src/highhx/automation/__init__.py +1 -0
  58. highhxcli-0.1.0/src/highhx/automation/cron.py +132 -0
  59. highhxcli-0.1.0/src/highhx/automation/hooks.py +126 -0
  60. highhxcli-0.1.0/src/highhx/automation/scheduler.py +108 -0
  61. highhxcli-0.1.0/src/highhx/automation/triggers.py +24 -0
  62. highhxcli-0.1.0/src/highhx/automation/watcher.py +130 -0
  63. highhxcli-0.1.0/src/highhx/building/__init__.py +1 -0
  64. highhxcli-0.1.0/src/highhx/building/artifacts.py +82 -0
  65. highhxcli-0.1.0/src/highhx/building/builder.py +75 -0
  66. highhxcli-0.1.0/src/highhx/building/cleanup.py +50 -0
  67. highhxcli-0.1.0/src/highhx/building/packaging.py +23 -0
  68. highhxcli-0.1.0/src/highhx/cli.py +270 -0
  69. highhxcli-0.1.0/src/highhx/commands/__init__.py +452 -0
  70. highhxcli-0.1.0/src/highhx/commands/automation/__init__.py +1 -0
  71. highhxcli-0.1.0/src/highhx/commands/automation/hook.py +123 -0
  72. highhxcli-0.1.0/src/highhx/commands/automation/schedule.py +103 -0
  73. highhxcli-0.1.0/src/highhx/commands/automation/trigger.py +46 -0
  74. highhxcli-0.1.0/src/highhx/commands/automation/watch.py +36 -0
  75. highhxcli-0.1.0/src/highhx/commands/build/__init__.py +1 -0
  76. highhxcli-0.1.0/src/highhx/commands/build/artifacts.py +37 -0
  77. highhxcli-0.1.0/src/highhx/commands/build/build.py +43 -0
  78. highhxcli-0.1.0/src/highhx/commands/build/clean.py +55 -0
  79. highhxcli-0.1.0/src/highhx/commands/build/package.py +18 -0
  80. highhxcli-0.1.0/src/highhx/commands/code/__init__.py +1 -0
  81. highhxcli-0.1.0/src/highhx/commands/code/exec.py +77 -0
  82. highhxcli-0.1.0/src/highhx/commands/code/fix.py +41 -0
  83. highhxcli-0.1.0/src/highhx/commands/code/run.py +35 -0
  84. highhxcli-0.1.0/src/highhx/commands/code/script.py +68 -0
  85. highhxcli-0.1.0/src/highhx/commands/code/task.py +66 -0
  86. highhxcli-0.1.0/src/highhx/commands/code/watch.py +125 -0
  87. highhxcli-0.1.0/src/highhx/commands/database/__init__.py +1 -0
  88. highhxcli-0.1.0/src/highhx/commands/database/backup.py +37 -0
  89. highhxcli-0.1.0/src/highhx/commands/database/main.py +29 -0
  90. highhxcli-0.1.0/src/highhx/commands/database/migrate.py +26 -0
  91. highhxcli-0.1.0/src/highhx/commands/database/restore.py +37 -0
  92. highhxcli-0.1.0/src/highhx/commands/database/seed.py +21 -0
  93. highhxcli-0.1.0/src/highhx/commands/database/status.py +41 -0
  94. highhxcli-0.1.0/src/highhx/commands/dependencies/__init__.py +1 -0
  95. highhxcli-0.1.0/src/highhx/commands/dependencies/audit.py +39 -0
  96. highhxcli-0.1.0/src/highhx/commands/dependencies/clean.py +23 -0
  97. highhxcli-0.1.0/src/highhx/commands/dependencies/install.py +23 -0
  98. highhxcli-0.1.0/src/highhx/commands/dependencies/main.py +64 -0
  99. highhxcli-0.1.0/src/highhx/commands/dependencies/outdated.py +32 -0
  100. highhxcli-0.1.0/src/highhx/commands/dependencies/update.py +23 -0
  101. highhxcli-0.1.0/src/highhx/commands/deployment/__init__.py +1 -0
  102. highhxcli-0.1.0/src/highhx/commands/deployment/deploy.py +71 -0
  103. highhxcli-0.1.0/src/highhx/commands/deployment/environments.py +39 -0
  104. highhxcli-0.1.0/src/highhx/commands/deployment/logs.py +35 -0
  105. highhxcli-0.1.0/src/highhx/commands/deployment/rollback.py +32 -0
  106. highhxcli-0.1.0/src/highhx/commands/deployment/status.py +67 -0
  107. highhxcli-0.1.0/src/highhx/commands/diagnostics/__init__.py +1 -0
  108. highhxcli-0.1.0/src/highhx/commands/diagnostics/debug.py +60 -0
  109. highhxcli-0.1.0/src/highhx/commands/diagnostics/diagnose.py +40 -0
  110. highhxcli-0.1.0/src/highhx/commands/diagnostics/doctor.py +51 -0
  111. highhxcli-0.1.0/src/highhx/commands/diagnostics/repair.py +33 -0
  112. highhxcli-0.1.0/src/highhx/commands/diagnostics/trace.py +46 -0
  113. highhxcli-0.1.0/src/highhx/commands/docker/__init__.py +1 -0
  114. highhxcli-0.1.0/src/highhx/commands/docker/down.py +22 -0
  115. highhxcli-0.1.0/src/highhx/commands/docker/logs.py +20 -0
  116. highhxcli-0.1.0/src/highhx/commands/docker/main.py +61 -0
  117. highhxcli-0.1.0/src/highhx/commands/docker/up.py +23 -0
  118. highhxcli-0.1.0/src/highhx/commands/environment/__init__.py +1 -0
  119. highhxcli-0.1.0/src/highhx/commands/environment/check.py +38 -0
  120. highhxcli-0.1.0/src/highhx/commands/environment/diff.py +34 -0
  121. highhxcli-0.1.0/src/highhx/commands/environment/main.py +71 -0
  122. highhxcli-0.1.0/src/highhx/commands/environment/profile.py +52 -0
  123. highhxcli-0.1.0/src/highhx/commands/environment/set.py +72 -0
  124. highhxcli-0.1.0/src/highhx/commands/git/__init__.py +1 -0
  125. highhxcli-0.1.0/src/highhx/commands/git/branch.py +50 -0
  126. highhxcli-0.1.0/src/highhx/commands/git/commit.py +29 -0
  127. highhxcli-0.1.0/src/highhx/commands/git/diff.py +43 -0
  128. highhxcli-0.1.0/src/highhx/commands/git/history.py +39 -0
  129. highhxcli-0.1.0/src/highhx/commands/git/main.py +34 -0
  130. highhxcli-0.1.0/src/highhx/commands/git/status.py +36 -0
  131. highhxcli-0.1.0/src/highhx/commands/git/sync.py +23 -0
  132. highhxcli-0.1.0/src/highhx/commands/git/tag.py +38 -0
  133. highhxcli-0.1.0/src/highhx/commands/groups.py +37 -0
  134. highhxcli-0.1.0/src/highhx/commands/observability/__init__.py +1 -0
  135. highhxcli-0.1.0/src/highhx/commands/observability/history.py +86 -0
  136. highhxcli-0.1.0/src/highhx/commands/observability/logs.py +56 -0
  137. highhxcli-0.1.0/src/highhx/commands/observability/report.py +45 -0
  138. highhxcli-0.1.0/src/highhx/commands/plugins/__init__.py +1 -0
  139. highhxcli-0.1.0/src/highhx/commands/plugins/install.py +29 -0
  140. highhxcli-0.1.0/src/highhx/commands/plugins/list.py +52 -0
  141. highhxcli-0.1.0/src/highhx/commands/plugins/main.py +63 -0
  142. highhxcli-0.1.0/src/highhx/commands/plugins/remove.py +21 -0
  143. highhxcli-0.1.0/src/highhx/commands/plugins/search.py +34 -0
  144. highhxcli-0.1.0/src/highhx/commands/plugins/trust.py +30 -0
  145. highhxcli-0.1.0/src/highhx/commands/plugins/update.py +19 -0
  146. highhxcli-0.1.0/src/highhx/commands/project/__init__.py +1 -0
  147. highhxcli-0.1.0/src/highhx/commands/project/check.py +32 -0
  148. highhxcli-0.1.0/src/highhx/commands/project/dev.py +32 -0
  149. highhxcli-0.1.0/src/highhx/commands/project/doctor.py +5 -0
  150. highhxcli-0.1.0/src/highhx/commands/project/info.py +54 -0
  151. highhxcli-0.1.0/src/highhx/commands/project/init.py +70 -0
  152. highhxcli-0.1.0/src/highhx/commands/project/restart.py +19 -0
  153. highhxcli-0.1.0/src/highhx/commands/project/start.py +31 -0
  154. highhxcli-0.1.0/src/highhx/commands/project/status.py +18 -0
  155. highhxcli-0.1.0/src/highhx/commands/project/stop.py +26 -0
  156. highhxcli-0.1.0/src/highhx/commands/registry.py +117 -0
  157. highhxcli-0.1.0/src/highhx/commands/release/__init__.py +1 -0
  158. highhxcli-0.1.0/src/highhx/commands/release/changelog.py +42 -0
  159. highhxcli-0.1.0/src/highhx/commands/release/publish.py +20 -0
  160. highhxcli-0.1.0/src/highhx/commands/release/release.py +49 -0
  161. highhxcli-0.1.0/src/highhx/commands/release/version.py +66 -0
  162. highhxcli-0.1.0/src/highhx/commands/security/__init__.py +1 -0
  163. highhxcli-0.1.0/src/highhx/commands/security/config.py +19 -0
  164. highhxcli-0.1.0/src/highhx/commands/security/dependencies.py +19 -0
  165. highhxcli-0.1.0/src/highhx/commands/security/main.py +103 -0
  166. highhxcli-0.1.0/src/highhx/commands/security/report.py +48 -0
  167. highhxcli-0.1.0/src/highhx/commands/security/scan.py +23 -0
  168. highhxcli-0.1.0/src/highhx/commands/security/secrets.py +20 -0
  169. highhxcli-0.1.0/src/highhx/commands/services/__init__.py +1 -0
  170. highhxcli-0.1.0/src/highhx/commands/services/main.py +42 -0
  171. highhxcli-0.1.0/src/highhx/commands/services/ports.py +47 -0
  172. highhxcli-0.1.0/src/highhx/commands/team/__init__.py +1 -0
  173. highhxcli-0.1.0/src/highhx/commands/team/config.py +152 -0
  174. highhxcli-0.1.0/src/highhx/commands/team/policy.py +147 -0
  175. highhxcli-0.1.0/src/highhx/commands/team/profile.py +89 -0
  176. highhxcli-0.1.0/src/highhx/commands/team/workspace.py +83 -0
  177. highhxcli-0.1.0/src/highhx/commands/testing/__init__.py +1 -0
  178. highhxcli-0.1.0/src/highhx/commands/testing/benchmark.py +48 -0
  179. highhxcli-0.1.0/src/highhx/commands/testing/test.py +99 -0
  180. highhxcli-0.1.0/src/highhx/commands/workflows/__init__.py +1 -0
  181. highhxcli-0.1.0/src/highhx/commands/workflows/create.py +71 -0
  182. highhxcli-0.1.0/src/highhx/commands/workflows/graph.py +39 -0
  183. highhxcli-0.1.0/src/highhx/commands/workflows/list.py +31 -0
  184. highhxcli-0.1.0/src/highhx/commands/workflows/main.py +28 -0
  185. highhxcli-0.1.0/src/highhx/commands/workflows/validate.py +43 -0
  186. highhxcli-0.1.0/src/highhx/config/__init__.py +5 -0
  187. highhxcli-0.1.0/src/highhx/config/defaults.py +46 -0
  188. highhxcli-0.1.0/src/highhx/config/loader.py +140 -0
  189. highhxcli-0.1.0/src/highhx/config/schema.py +301 -0
  190. highhxcli-0.1.0/src/highhx/config/validation.py +297 -0
  191. highhxcli-0.1.0/src/highhx/core/__init__.py +1 -0
  192. highhxcli-0.1.0/src/highhx/core/context.py +50 -0
  193. highhxcli-0.1.0/src/highhx/core/engine.py +447 -0
  194. highhxcli-0.1.0/src/highhx/core/errors.py +186 -0
  195. highhxcli-0.1.0/src/highhx/core/events.py +73 -0
  196. highhxcli-0.1.0/src/highhx/core/executor.py +145 -0
  197. highhxcli-0.1.0/src/highhx/core/lifecycle.py +72 -0
  198. highhxcli-0.1.0/src/highhx/core/result.py +159 -0
  199. highhxcli-0.1.0/src/highhx/database/__init__.py +1 -0
  200. highhxcli-0.1.0/src/highhx/database/backup.py +32 -0
  201. highhxcli-0.1.0/src/highhx/database/manager.py +210 -0
  202. highhxcli-0.1.0/src/highhx/database/migrations.py +65 -0
  203. highhxcli-0.1.0/src/highhx/database/restore.py +24 -0
  204. highhxcli-0.1.0/src/highhx/database/seeding.py +16 -0
  205. highhxcli-0.1.0/src/highhx/dependencies/__init__.py +1 -0
  206. highhxcli-0.1.0/src/highhx/dependencies/audit.py +126 -0
  207. highhxcli-0.1.0/src/highhx/dependencies/detector.py +246 -0
  208. highhxcli-0.1.0/src/highhx/dependencies/installer.py +25 -0
  209. highhxcli-0.1.0/src/highhx/dependencies/manager.py +237 -0
  210. highhxcli-0.1.0/src/highhx/dependencies/outdated.py +125 -0
  211. highhxcli-0.1.0/src/highhx/dependencies/updater.py +45 -0
  212. highhxcli-0.1.0/src/highhx/deployment/__init__.py +1 -0
  213. highhxcli-0.1.0/src/highhx/deployment/health.py +73 -0
  214. highhxcli-0.1.0/src/highhx/deployment/manager.py +317 -0
  215. highhxcli-0.1.0/src/highhx/deployment/rollback.py +28 -0
  216. highhxcli-0.1.0/src/highhx/deployment/state.py +131 -0
  217. highhxcli-0.1.0/src/highhx/deployment/strategy.py +387 -0
  218. highhxcli-0.1.0/src/highhx/deployment/target.py +50 -0
  219. highhxcli-0.1.0/src/highhx/detection/__init__.py +29 -0
  220. highhxcli-0.1.0/src/highhx/detection/container.py +41 -0
  221. highhxcli-0.1.0/src/highhx/detection/database.py +94 -0
  222. highhxcli-0.1.0/src/highhx/detection/framework.py +66 -0
  223. highhxcli-0.1.0/src/highhx/detection/language.py +90 -0
  224. highhxcli-0.1.0/src/highhx/detection/operating_system.py +50 -0
  225. highhxcli-0.1.0/src/highhx/detection/package_manager.py +125 -0
  226. highhxcli-0.1.0/src/highhx/detection/runtime.py +92 -0
  227. highhxcli-0.1.0/src/highhx/detection/tools.py +135 -0
  228. highhxcli-0.1.0/src/highhx/diagnostics/__init__.py +1 -0
  229. highhxcli-0.1.0/src/highhx/diagnostics/diagnose.py +228 -0
  230. highhxcli-0.1.0/src/highhx/diagnostics/doctor.py +328 -0
  231. highhxcli-0.1.0/src/highhx/diagnostics/repair.py +105 -0
  232. highhxcli-0.1.0/src/highhx/environment/__init__.py +1 -0
  233. highhxcli-0.1.0/src/highhx/environment/dotenv.py +168 -0
  234. highhxcli-0.1.0/src/highhx/environment/manager.py +187 -0
  235. highhxcli-0.1.0/src/highhx/environment/profiles.py +52 -0
  236. highhxcli-0.1.0/src/highhx/environment/secrets.py +22 -0
  237. highhxcli-0.1.0/src/highhx/environment/validation.py +69 -0
  238. highhxcli-0.1.0/src/highhx/environment/variables.py +136 -0
  239. highhxcli-0.1.0/src/highhx/execution/__init__.py +7 -0
  240. highhxcli-0.1.0/src/highhx/execution/cancellation.py +60 -0
  241. highhxcli-0.1.0/src/highhx/execution/command.py +108 -0
  242. highhxcli-0.1.0/src/highhx/execution/environment.py +30 -0
  243. highhxcli-0.1.0/src/highhx/execution/isolation.py +56 -0
  244. highhxcli-0.1.0/src/highhx/execution/parallel.py +81 -0
  245. highhxcli-0.1.0/src/highhx/execution/process.py +212 -0
  246. highhxcli-0.1.0/src/highhx/execution/retry.py +60 -0
  247. highhxcli-0.1.0/src/highhx/execution/shell.py +32 -0
  248. highhxcli-0.1.0/src/highhx/execution/timeout.py +30 -0
  249. highhxcli-0.1.0/src/highhx/git/__init__.py +1 -0
  250. highhxcli-0.1.0/src/highhx/git/branches.py +41 -0
  251. highhxcli-0.1.0/src/highhx/git/commits.py +61 -0
  252. highhxcli-0.1.0/src/highhx/git/diff.py +31 -0
  253. highhxcli-0.1.0/src/highhx/git/history.py +47 -0
  254. highhxcli-0.1.0/src/highhx/git/manager.py +205 -0
  255. highhxcli-0.1.0/src/highhx/git/repository.py +161 -0
  256. highhxcli-0.1.0/src/highhx/git/status.py +97 -0
  257. highhxcli-0.1.0/src/highhx/git/tags.py +47 -0
  258. highhxcli-0.1.0/src/highhx/integrations/__init__.py +2 -0
  259. highhxcli-0.1.0/src/highhx/integrations/cloud/__init__.py +10 -0
  260. highhxcli-0.1.0/src/highhx/integrations/cloud/registry.py +42 -0
  261. highhxcli-0.1.0/src/highhx/integrations/databases/__init__.py +25 -0
  262. highhxcli-0.1.0/src/highhx/integrations/databases/base.py +73 -0
  263. highhxcli-0.1.0/src/highhx/integrations/databases/mysql.py +104 -0
  264. highhxcli-0.1.0/src/highhx/integrations/databases/postgres.py +128 -0
  265. highhxcli-0.1.0/src/highhx/integrations/databases/sqlite.py +112 -0
  266. highhxcli-0.1.0/src/highhx/integrations/databases/url.py +79 -0
  267. highhxcli-0.1.0/src/highhx/integrations/docker/__init__.py +5 -0
  268. highhxcli-0.1.0/src/highhx/integrations/docker/client.py +220 -0
  269. highhxcli-0.1.0/src/highhx/integrations/kubernetes/__init__.py +5 -0
  270. highhxcli-0.1.0/src/highhx/integrations/kubernetes/client.py +89 -0
  271. highhxcli-0.1.0/src/highhx/integrations/ssh/__init__.py +5 -0
  272. highhxcli-0.1.0/src/highhx/integrations/ssh/client.py +77 -0
  273. highhxcli-0.1.0/src/highhx/integrations/terraform/__init__.py +5 -0
  274. highhxcli-0.1.0/src/highhx/integrations/terraform/client.py +69 -0
  275. highhxcli-0.1.0/src/highhx/observability/__init__.py +1 -0
  276. highhxcli-0.1.0/src/highhx/observability/events.py +45 -0
  277. highhxcli-0.1.0/src/highhx/observability/logger.py +67 -0
  278. highhxcli-0.1.0/src/highhx/observability/metrics.py +95 -0
  279. highhxcli-0.1.0/src/highhx/observability/tracing.py +135 -0
  280. highhxcli-0.1.0/src/highhx/plugins/__init__.py +1 -0
  281. highhxcli-0.1.0/src/highhx/plugins/interface.py +83 -0
  282. highhxcli-0.1.0/src/highhx/plugins/loader.py +107 -0
  283. highhxcli-0.1.0/src/highhx/plugins/manager.py +249 -0
  284. highhxcli-0.1.0/src/highhx/plugins/manifest.py +197 -0
  285. highhxcli-0.1.0/src/highhx/plugins/registry.py +48 -0
  286. highhxcli-0.1.0/src/highhx/plugins/sandbox.py +114 -0
  287. highhxcli-0.1.0/src/highhx/policy/__init__.py +1 -0
  288. highhxcli-0.1.0/src/highhx/policy/engine.py +115 -0
  289. highhxcli-0.1.0/src/highhx/policy/rules.py +97 -0
  290. highhxcli-0.1.0/src/highhx/policy/validator.py +68 -0
  291. highhxcli-0.1.0/src/highhx/project/__init__.py +1 -0
  292. highhxcli-0.1.0/src/highhx/project/context.py +79 -0
  293. highhxcli-0.1.0/src/highhx/project/detector.py +337 -0
  294. highhxcli-0.1.0/src/highhx/project/initializer.py +104 -0
  295. highhxcli-0.1.0/src/highhx/project/manifest.py +304 -0
  296. highhxcli-0.1.0/src/highhx/project/monorepo.py +90 -0
  297. highhxcli-0.1.0/src/highhx/project/scanner.py +39 -0
  298. highhxcli-0.1.0/src/highhx/project/status.py +79 -0
  299. highhxcli-0.1.0/src/highhx/project/workspace.py +51 -0
  300. highhxcli-0.1.0/src/highhx/release/__init__.py +1 -0
  301. highhxcli-0.1.0/src/highhx/release/changelog.py +72 -0
  302. highhxcli-0.1.0/src/highhx/release/manager.py +236 -0
  303. highhxcli-0.1.0/src/highhx/release/publisher.py +36 -0
  304. highhxcli-0.1.0/src/highhx/release/versioning.py +220 -0
  305. highhxcli-0.1.0/src/highhx/security/__init__.py +1 -0
  306. highhxcli-0.1.0/src/highhx/security/dependencies.py +39 -0
  307. highhxcli-0.1.0/src/highhx/security/filesystem.py +82 -0
  308. highhxcli-0.1.0/src/highhx/security/permissions.py +74 -0
  309. highhxcli-0.1.0/src/highhx/security/policies.py +201 -0
  310. highhxcli-0.1.0/src/highhx/security/report.py +126 -0
  311. highhxcli-0.1.0/src/highhx/security/scanner.py +99 -0
  312. highhxcli-0.1.0/src/highhx/security/secrets.py +284 -0
  313. highhxcli-0.1.0/src/highhx/security/secrets_scan.py +71 -0
  314. highhxcli-0.1.0/src/highhx/services/__init__.py +1 -0
  315. highhxcli-0.1.0/src/highhx/services/health.py +19 -0
  316. highhxcli-0.1.0/src/highhx/services/manager.py +198 -0
  317. highhxcli-0.1.0/src/highhx/services/ports.py +77 -0
  318. highhxcli-0.1.0/src/highhx/services/registry.py +83 -0
  319. highhxcli-0.1.0/src/highhx/storage/__init__.py +1 -0
  320. highhxcli-0.1.0/src/highhx/storage/cache.py +28 -0
  321. highhxcli-0.1.0/src/highhx/storage/database.py +79 -0
  322. highhxcli-0.1.0/src/highhx/storage/history.py +263 -0
  323. highhxcli-0.1.0/src/highhx/storage/logs.py +106 -0
  324. highhxcli-0.1.0/src/highhx/storage/migrations.py +109 -0
  325. highhxcli-0.1.0/src/highhx/testing/__init__.py +1 -0
  326. highhxcli-0.1.0/src/highhx/testing/benchmark.py +71 -0
  327. highhxcli-0.1.0/src/highhx/testing/coverage.py +45 -0
  328. highhxcli-0.1.0/src/highhx/testing/discovery.py +92 -0
  329. highhxcli-0.1.0/src/highhx/testing/runner.py +235 -0
  330. highhxcli-0.1.0/src/highhx/ui/__init__.py +1 -0
  331. highhxcli-0.1.0/src/highhx/ui/dashboard.py +95 -0
  332. highhxcli-0.1.0/src/highhx/ui/errors.py +31 -0
  333. highhxcli-0.1.0/src/highhx/ui/output.py +201 -0
  334. highhxcli-0.1.0/src/highhx/ui/progress.py +18 -0
  335. highhxcli-0.1.0/src/highhx/ui/prompts.py +87 -0
  336. highhxcli-0.1.0/src/highhx/ui/reporting.py +81 -0
  337. highhxcli-0.1.0/src/highhx/ui/tables.py +36 -0
  338. highhxcli-0.1.0/src/highhx/ui/terminal.py +69 -0
  339. highhxcli-0.1.0/src/highhx/utils/__init__.py +1 -0
  340. highhxcli-0.1.0/src/highhx/utils/filesystem.py +206 -0
  341. highhxcli-0.1.0/src/highhx/utils/hashing.py +58 -0
  342. highhxcli-0.1.0/src/highhx/utils/paths.py +87 -0
  343. highhxcli-0.1.0/src/highhx/utils/platform.py +51 -0
  344. highhxcli-0.1.0/src/highhx/utils/processes.py +87 -0
  345. highhxcli-0.1.0/src/highhx/utils/time.py +78 -0
  346. highhxcli-0.1.0/src/highhx/utils/validation.py +368 -0
  347. highhxcli-0.1.0/src/highhx/workflows/__init__.py +1 -0
  348. highhxcli-0.1.0/src/highhx/workflows/conditions.py +384 -0
  349. highhxcli-0.1.0/src/highhx/workflows/dependency_graph.py +194 -0
  350. highhxcli-0.1.0/src/highhx/workflows/engine.py +490 -0
  351. highhxcli-0.1.0/src/highhx/workflows/loader.py +118 -0
  352. highhxcli-0.1.0/src/highhx/workflows/parser.py +129 -0
  353. highhxcli-0.1.0/src/highhx/workflows/resolver.py +59 -0
  354. highhxcli-0.1.0/src/highhx/workflows/scheduler.py +165 -0
  355. highhxcli-0.1.0/src/highhx/workflows/schema.py +206 -0
  356. highhxcli-0.1.0/src/highhx/workflows/templates.py +186 -0
  357. highhxcli-0.1.0/src/highhx/workflows/validator.py +271 -0
  358. highhxcli-0.1.0/src/highhx/workflows/variables.py +56 -0
  359. highhxcli-0.1.0/templates/cpp/config.yaml +32 -0
  360. highhxcli-0.1.0/templates/cpp/workflows/build.yaml +10 -0
  361. highhxcli-0.1.0/templates/docker/config.yaml +26 -0
  362. highhxcli-0.1.0/templates/docker/workflows/build.yaml +6 -0
  363. highhxcli-0.1.0/templates/flutter/config.yaml +34 -0
  364. highhxcli-0.1.0/templates/flutter/workflows/test.yaml +21 -0
  365. highhxcli-0.1.0/templates/generic/config.yaml +57 -0
  366. highhxcli-0.1.0/templates/generic/environment.yaml +21 -0
  367. highhxcli-0.1.0/templates/generic/policies.yaml +27 -0
  368. highhxcli-0.1.0/templates/generic/workflows/build.yaml +12 -0
  369. highhxcli-0.1.0/templates/generic/workflows/ci.yaml +25 -0
  370. highhxcli-0.1.0/templates/generic/workflows/deploy.yaml +23 -0
  371. highhxcli-0.1.0/templates/generic/workflows/dev.yaml +12 -0
  372. highhxcli-0.1.0/templates/generic/workflows/release.yaml +23 -0
  373. highhxcli-0.1.0/templates/generic/workflows/rollback.yaml +13 -0
  374. highhxcli-0.1.0/templates/generic/workflows/test.yaml +15 -0
  375. highhxcli-0.1.0/templates/java/config.yaml +39 -0
  376. highhxcli-0.1.0/templates/monorepo/config.yaml +24 -0
  377. highhxcli-0.1.0/templates/monorepo/workflows/test.yaml +6 -0
  378. highhxcli-0.1.0/templates/nextjs/config.yaml +39 -0
  379. highhxcli-0.1.0/templates/node/config.yaml +32 -0
  380. highhxcli-0.1.0/templates/python/config.yaml +40 -0
  381. highhxcli-0.1.0/templates/react/config.yaml +37 -0
  382. highhxcli-0.1.0/tests/__init__.py +0 -0
  383. highhxcli-0.1.0/tests/conftest.py +186 -0
  384. highhxcli-0.1.0/tests/e2e/__init__.py +0 -0
  385. highhxcli-0.1.0/tests/e2e/_helpers.py +35 -0
  386. highhxcli-0.1.0/tests/e2e/test_deploy.py +52 -0
  387. highhxcli-0.1.0/tests/e2e/test_dev.py +54 -0
  388. highhxcli-0.1.0/tests/e2e/test_examples.py +87 -0
  389. highhxcli-0.1.0/tests/e2e/test_init.py +46 -0
  390. highhxcli-0.1.0/tests/e2e/test_interrupts.py +96 -0
  391. highhxcli-0.1.0/tests/e2e/test_long_running.py +127 -0
  392. highhxcli-0.1.0/tests/e2e/test_paths_with_spaces.py +43 -0
  393. highhxcli-0.1.0/tests/e2e/test_rollback.py +22 -0
  394. highhxcli-0.1.0/tests/e2e/test_services_lifecycle.py +87 -0
  395. highhxcli-0.1.0/tests/fixtures/docker_project/Dockerfile +3 -0
  396. highhxcli-0.1.0/tests/fixtures/docker_project/compose.yaml +8 -0
  397. highhxcli-0.1.0/tests/fixtures/monorepo/package.json +1 -0
  398. highhxcli-0.1.0/tests/fixtures/monorepo/packages/api/package.json +1 -0
  399. highhxcli-0.1.0/tests/fixtures/monorepo/packages/web/package.json +1 -0
  400. highhxcli-0.1.0/tests/fixtures/node_project/package.json +14 -0
  401. highhxcli-0.1.0/tests/fixtures/node_project/pnpm-lock.yaml +1 -0
  402. highhxcli-0.1.0/tests/fixtures/node_project/tsconfig.json +1 -0
  403. highhxcli-0.1.0/tests/fixtures/python_project/pyproject.toml +9 -0
  404. highhxcli-0.1.0/tests/fixtures/python_project/src/pyapp/__init__.py +1 -0
  405. highhxcli-0.1.0/tests/fixtures/python_project/src/pyapp/calc.py +2 -0
  406. highhxcli-0.1.0/tests/fixtures/python_project/tests/test_calc.py +10 -0
  407. highhxcli-0.1.0/tests/integration/__init__.py +0 -0
  408. highhxcli-0.1.0/tests/integration/docker/__init__.py +0 -0
  409. highhxcli-0.1.0/tests/integration/docker/test_docker_project.py +37 -0
  410. highhxcli-0.1.0/tests/integration/git/__init__.py +0 -0
  411. highhxcli-0.1.0/tests/integration/git/test_release_flow.py +64 -0
  412. highhxcli-0.1.0/tests/integration/node/__init__.py +0 -0
  413. highhxcli-0.1.0/tests/integration/node/test_node_project.py +23 -0
  414. highhxcli-0.1.0/tests/integration/python/__init__.py +0 -0
  415. highhxcli-0.1.0/tests/integration/python/test_python_project.py +53 -0
  416. highhxcli-0.1.0/tests/integration/test_external_tool_contracts.py +224 -0
  417. highhxcli-0.1.0/tests/integration/test_mysql_real.py +122 -0
  418. highhxcli-0.1.0/tests/integration/workflows/__init__.py +0 -0
  419. highhxcli-0.1.0/tests/integration/workflows/test_cli_workflows.py +96 -0
  420. highhxcli-0.1.0/tests/security/__init__.py +0 -0
  421. highhxcli-0.1.0/tests/security/test_permissions.py +42 -0
  422. highhxcli-0.1.0/tests/security/test_policies.py +115 -0
  423. highhxcli-0.1.0/tests/security/test_secrets.py +42 -0
  424. highhxcli-0.1.0/tests/unit/__init__.py +0 -0
  425. highhxcli-0.1.0/tests/unit/commands/__init__.py +0 -0
  426. highhxcli-0.1.0/tests/unit/commands/test_cli.py +124 -0
  427. highhxcli-0.1.0/tests/unit/commands/test_docs.py +42 -0
  428. highhxcli-0.1.0/tests/unit/commands/test_json_contract.py +119 -0
  429. highhxcli-0.1.0/tests/unit/commands/test_project_commands.py +146 -0
  430. highhxcli-0.1.0/tests/unit/core/__init__.py +0 -0
  431. highhxcli-0.1.0/tests/unit/core/test_engine.py +115 -0
  432. highhxcli-0.1.0/tests/unit/core/test_errors_events.py +22 -0
  433. highhxcli-0.1.0/tests/unit/core/test_executor.py +64 -0
  434. highhxcli-0.1.0/tests/unit/detection/__init__.py +0 -0
  435. highhxcli-0.1.0/tests/unit/detection/test_detection.py +170 -0
  436. highhxcli-0.1.0/tests/unit/execution/__init__.py +0 -0
  437. highhxcli-0.1.0/tests/unit/execution/test_command.py +56 -0
  438. highhxcli-0.1.0/tests/unit/execution/test_process.py +64 -0
  439. highhxcli-0.1.0/tests/unit/execution/test_retry_parallel_cancel.py +70 -0
  440. highhxcli-0.1.0/tests/unit/git/__init__.py +0 -0
  441. highhxcli-0.1.0/tests/unit/git/test_parsers.py +62 -0
  442. highhxcli-0.1.0/tests/unit/git/test_repository.py +100 -0
  443. highhxcli-0.1.0/tests/unit/security/__init__.py +0 -0
  444. highhxcli-0.1.0/tests/unit/security/test_secrets_scanner.py +106 -0
  445. highhxcli-0.1.0/tests/unit/storage/__init__.py +0 -0
  446. highhxcli-0.1.0/tests/unit/storage/test_storage.py +109 -0
  447. highhxcli-0.1.0/tests/unit/test_approvals_policy.py +104 -0
  448. highhxcli-0.1.0/tests/unit/test_audit_regressions.py +141 -0
  449. highhxcli-0.1.0/tests/unit/test_automation.py +80 -0
  450. highhxcli-0.1.0/tests/unit/test_config_environment.py +166 -0
  451. highhxcli-0.1.0/tests/unit/test_cross_platform.py +91 -0
  452. highhxcli-0.1.0/tests/unit/test_dependencies_testing.py +135 -0
  453. highhxcli-0.1.0/tests/unit/test_deployment_database.py +206 -0
  454. highhxcli-0.1.0/tests/unit/test_gap_coverage.py +200 -0
  455. highhxcli-0.1.0/tests/unit/test_packaging.py +29 -0
  456. highhxcli-0.1.0/tests/unit/test_plugins.py +176 -0
  457. highhxcli-0.1.0/tests/unit/test_release.py +78 -0
  458. highhxcli-0.1.0/tests/unit/test_schemas_examples.py +68 -0
  459. highhxcli-0.1.0/tests/unit/test_services_docker.py +137 -0
  460. highhxcli-0.1.0/tests/unit/workflows/__init__.py +0 -0
  461. highhxcli-0.1.0/tests/unit/workflows/test_conditions.py +72 -0
  462. highhxcli-0.1.0/tests/unit/workflows/test_dependency_graph.py +45 -0
  463. highhxcli-0.1.0/tests/unit/workflows/test_engine.py +300 -0
  464. highhxcli-0.1.0/tests/unit/workflows/test_parser_validator.py +128 -0
  465. highhxcli-0.1.0/tests/unit/workflows/test_templates.py +56 -0
@@ -0,0 +1,32 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .eggs/
6
+ /build/
7
+ /dist/
8
+ /.venv/
9
+ /venv/
10
+ .pytest_cache/
11
+ .mypy_cache/
12
+ .ruff_cache/
13
+ .coverage
14
+ coverage.xml
15
+ htmlcov/
16
+
17
+ # HighhX local state (never commit)
18
+ .highhx/state/
19
+ .highhx/logs/
20
+ .highhx/backups/
21
+ .highhx/cache/
22
+
23
+ # Environment files
24
+ .env
25
+ .env.*
26
+ !.env.example
27
+
28
+ # Editors / OS
29
+ .idea/
30
+ .vscode/
31
+ .DS_Store
32
+ Thumbs.db
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+ The format follows [Keep a Changelog](https://keepachangelog.com/) and the
5
+ project uses [Semantic Versioning](https://semver.org/).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.1.0] - 2026-09-26
10
+
11
+ ### Features
12
+
13
+ - Project detection for Python, Node.js, React, Next.js, Flutter/Dart, Java, C/C++, Go, Rust, Docker, databases and monorepos.
14
+ - `highhx init` with per-stack templates for config, environment, policies and workflows.
15
+ - Execution engine: streaming output, timeouts, cancellation, retries with exponential backoff, parallel execution, graceful shutdown.
16
+ - Workflow engine: dependency graphs, parallel stages, conditions, variables, outputs, approvals, retries, timeouts, reusable workflows, dry-run, validation and graphs.
17
+ - Risk classification and approvals with non-bypassable rules; project policies.
18
+ - Environment profiles with `.env` files, validation and masked secrets.
19
+ - Dependencies, testing (with coverage/changed/watch), building, artifacts and cleanup.
20
+ - Git helpers, semantic versioning, changelog generation from Conventional Commits, releases and publishing.
21
+ - Deployment targets (local, Docker, SSH, Kubernetes, Terraform, plugins) with preflight, health checks, state tracking and rollback.
22
+ - Local security checks: secrets, permissions, configuration, workflows, policies and dependency audits.
23
+ - Services, ports, Docker Compose and database (SQLite, PostgreSQL, MySQL) management.
24
+ - Plugins with manifests, declarative contributions and integrity-checked code.
25
+ - Execution history, redacted logs, tracing, reports, doctor, diagnose and repair.
26
+
27
+ ### Security
28
+
29
+ - Plugin code runs only for contents trusted per user (`highhx plugin trust`); a repository cannot enable its own plugin code. Plugins containing symlinks are rejected and plugin names are validated.
30
+ - All output — including `--json` documents and captured command output — is redacted.
31
+ - Isolated plugin commands never receive environment-profile values.
32
+ - Values substituted into deploy commands are restricted to a safe character set.
33
+ - Hardened risk rules (wrapped shells, split `rm` flags, fork bombs, raw device writes, `find -delete`, `docker rm`, `shred`/`truncate`).
34
+ - Duplicate YAML keys are rejected.
35
+
36
+ ### Reliability
37
+
38
+ - Workflow step output is written to execution logs; retries, step transitions and approval decisions are logged.
39
+ - `--json` always emits exactly one JSON document.
40
+ - An unreadable state database is diagnosed and can be repaired (`highhx repair`).
41
+ - `mysqldump` runs with `--no-tablespaces`, so backups work without the PROCESS privilege.
42
+ - Global `--profile` was renamed `--config-profile` so it no longer collides with `env --profile`.
@@ -0,0 +1,32 @@
1
+ # Code of Conduct
2
+
3
+ ## Our pledge
4
+
5
+ We want HighhX to be a welcoming project for everyone, regardless of age, body size,
6
+ disability, ethnicity, gender identity and expression, level of experience,
7
+ nationality, personal appearance, race, religion, or sexual identity and orientation.
8
+
9
+ ## Our standards
10
+
11
+ Examples of behaviour that contributes to a positive environment:
12
+
13
+ - being respectful of differing viewpoints and experiences,
14
+ - giving and gracefully accepting constructive feedback,
15
+ - focusing on what is best for the community,
16
+ - showing empathy towards other community members.
17
+
18
+ Examples of unacceptable behaviour:
19
+
20
+ - harassment, insults or derogatory comments, public or private,
21
+ - sexualised language or imagery,
22
+ - publishing others' private information without permission,
23
+ - other conduct that could reasonably be considered inappropriate in a professional setting.
24
+
25
+ ## Enforcement
26
+
27
+ Maintainers are responsible for clarifying and enforcing these standards and may
28
+ remove, edit or reject contributions that do not align with this Code of Conduct.
29
+ Report unacceptable behaviour privately to the maintainers through the repository's
30
+ contact options; all reports are reviewed and kept confidential.
31
+
32
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
@@ -0,0 +1,45 @@
1
+ # Contributing to HighhX
2
+
3
+ Thanks for helping! This guide covers the practical bits.
4
+
5
+ ## Getting set up
6
+
7
+ ```bash
8
+ # from a checkout of this repository
9
+ python -m venv .venv && . .venv/bin/activate
10
+ pip install -e ".[dev]"
11
+ pytest && ruff check . && mypy
12
+ ```
13
+
14
+ ## Ground rules
15
+
16
+ - **No placeholders.** Every feature must work end to end and have tests. No `pass`,
17
+ `TODO` or dummy return values outside abstract interfaces.
18
+ - **Local-first.** No mandatory network access, cloud services, accounts, API keys or AI features.
19
+ - **Safe by default.** Anything that changes shared state, deletes data or publishes must go
20
+ through `Engine.approve()` / `Engine.run()` with an honest `RiskLevel`, and must honour `--dry-run`.
21
+ - **Never print secrets.** Use `mask()` for display and make sure logs go through the redactor.
22
+ - **Cross-platform.** Don't assume bash, `/usr/bin` or GNU tools; prefer Python APIs and
23
+ `highhx.utils.platform` for platform differences.
24
+ - **Thin commands.** CLI modules in `highhx/commands/` parse arguments and render results;
25
+ logic belongs in the domain packages (see [docs/architecture.md](docs/architecture.md)).
26
+
27
+ ## Tests
28
+
29
+ - Unit tests live in `tests/unit/<area>/`, integration tests in `tests/integration/`,
30
+ end-to-end tests (real subprocess) in `tests/e2e/`, security guarantees in `tests/security/`.
31
+ - Use the fixtures in `tests/conftest.py` (`cli`, `make_engine`, `python_project`,
32
+ `git_python_project`). They isolate user directories and git identity, so tests never
33
+ depend on your machine's configuration.
34
+ - External systems (Docker, SSH, Kubernetes, registries) are faked; SQLite, git and
35
+ subprocesses are real.
36
+
37
+ ## Commits and pull requests
38
+
39
+ - Use [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `docs:` …);
40
+ HighhX's own changelog is generated from them.
41
+ - Keep pull requests focused; include tests and update `docs/` when behaviour changes.
42
+ `docs/commands.md` is generated from the CLI — regenerate it with
43
+ `python scripts/generate_docs.py` when you change commands and `schemas/` with
44
+ `python scripts/generate_schemas.py` when you change a schema (the test suite fails
45
+ when either drifts).
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 HighhX contributors
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.
@@ -0,0 +1,329 @@
1
+ Metadata-Version: 2.5
2
+ Name: highhxcli
3
+ Version: 0.1.0
4
+ Summary: HighhX — a local-first, offline-first developer operations command center.
5
+ Author: HighhX contributors
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Keywords: automation,cli,developer-tools,devops,workflow
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Topic :: Software Development :: Build Tools
19
+ Requires-Python: >=3.11
20
+ Requires-Dist: click>=8.1
21
+ Requires-Dist: pyyaml>=6.0
22
+ Requires-Dist: rich>=13.7
23
+ Provides-Extra: dev
24
+ Requires-Dist: coverage[toml]>=7.4; extra == 'dev'
25
+ Requires-Dist: mypy>=1.10; extra == 'dev'
26
+ Requires-Dist: pytest>=8.0; extra == 'dev'
27
+ Requires-Dist: ruff>=0.5; extra == 'dev'
28
+ Requires-Dist: types-pyyaml; extra == 'dev'
29
+ Description-Content-Type: text/markdown
30
+
31
+ # HighhX
32
+
33
+ **HighhX is a local-first developer command center.** One CLI — `highhx` — detects
34
+ your project, runs your workflows, manages environments, dependencies, tests,
35
+ builds, git, releases, deployments, services and databases, and keeps a searchable
36
+ history of everything it did. Every risky action is classified and needs approval.
37
+
38
+ ```text
39
+ $ highhx doctor
40
+
41
+ HighhX Doctor
42
+
43
+ ✓ macOS 15.2 arm64
44
+ ✓ HighhX on Python 3.13.1
45
+ ✓ git 2.47.1
46
+ ✓ node 22.12.0
47
+ ✓ python satisfies >=3.11 — declared in pyproject.toml
48
+ ✓ Configuration valid
49
+ ✓ Workflows valid — 7 workflow(s)
50
+ ⚠ docker unavailable — required by this project
51
+ ✗ Missing DATABASE_URL — profile development
52
+
53
+ Suggested actions
54
+ → Install docker and make sure it is on PATH.
55
+ → Set it with `highhx env set DATABASE_URL --profile development` or export it in your shell.
56
+ ```
57
+
58
+ - [Why HighhX](#why-highhx)
59
+ - [Installation](#installation)
60
+ - [Quick start](#quick-start)
61
+ - [Commands](#commands)
62
+ - [Workflows](#workflows)
63
+ - [Configuration](#configuration)
64
+ - [Plugins](#plugins)
65
+ - [Security model](#security-model)
66
+ - [Development](#development)
67
+ - [Contributing](#contributing)
68
+
69
+ ## Why HighhX
70
+
71
+ Most projects accumulate a pile of scripts, Makefile targets, README snippets and
72
+ CI YAML that only half the team remembers. HighhX gives every project the same
73
+ front door:
74
+
75
+ - **Local-first and offline-first.** No cloud backend, no account, no API keys, no AI.
76
+ Everything — history, logs, deployment state — lives in `.highhx/` on your machine.
77
+ - **Detects instead of asking.** Python (pip/uv/poetry/pdm/pipenv), Node (npm/pnpm/yarn/bun),
78
+ React, Next.js, Flutter/Dart, Java (Maven/Gradle), C/C++ (CMake/Make), Go, Rust, Docker,
79
+ common databases and monorepos — from real manifests and lockfiles, not file extensions.
80
+ - **Safe by default.** Commands are classified as safe, normal, dangerous or critical.
81
+ `git push`, `rm -rf`, `DROP TABLE`, production deploys and restores need approval;
82
+ `--dry-run` previews anything; policies can make approvals non-bypassable even with `--yes`.
83
+ - **A real workflow engine.** YAML workflows with dependency graphs, parallel execution,
84
+ conditions, variables, retries with backoff, timeouts, approvals and reusable workflows —
85
+ validated before anything runs.
86
+ - **Scriptable.** Every command supports `--json` and meaningful exit codes.
87
+
88
+ ## Installation
89
+
90
+ HighhX needs Python 3.11+. It is developed and tested on macOS; Linux and Windows
91
+ support is designed in (see [docs/development.md](docs/development.md#platform-support))
92
+ but not yet verified on those systems.
93
+
94
+ > HighhXcli is **not yet published on PyPI**. Install it from a built wheel or from source.
95
+
96
+ ```bash
97
+ # from a checkout of this repository
98
+ python -m pip install build && python -m build # creates dist/highhxcli-*.whl
99
+ pipx install dist/highhxcli-*.whl # or: pip install dist/highhxcli-*.whl
100
+
101
+ # development install
102
+ python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
103
+ pip install -e ".[dev]"
104
+ ```
105
+
106
+ Both `highhx` and `highhxcli` are installed as commands, and `python -m highhx` works too.
107
+
108
+ Runtime dependencies are deliberately small: `click`, `rich` and `PyYAML`.
109
+ External tools (git, docker, kubectl, psql …) are used only when a feature needs them.
110
+
111
+ ## Quick start
112
+
113
+ ```bash
114
+ cd your-project
115
+ highhx init # detect the project, create .highhx/ (never overwrites without --force)
116
+ highhx doctor # check tools, config, env vars, ports
117
+ highhx status # dashboard: git, environment, services, recent runs
118
+ highhx test # auto-detected test runner (pytest, vitest, jest, flutter, mvn, …)
119
+ highhx run ci # run a workflow; parallel where dependencies allow
120
+ highhx run ci --dry-run
121
+ highhx history # what ran, when, how long, exit codes
122
+ highhx logs # output of the last execution (secrets redacted)
123
+ ```
124
+
125
+ `highhx init` creates:
126
+
127
+ ```text
128
+ .highhx/
129
+ ├── config.yaml # commands, services, deploy targets, approvals …
130
+ ├── environment.yaml # declared variables and profiles (values live in .env files)
131
+ ├── policies.yaml # protected branches, forbidden files, rules
132
+ ├── workflows/ # dev, test, build, ci, release, deploy, rollback
133
+ ├── hooks/ # scripts for git hooks
134
+ ├── state/ # local database (git-ignored)
135
+ └── logs/ # execution logs (git-ignored)
136
+ ```
137
+
138
+ ## Commands
139
+
140
+ Full reference with every option: [docs/commands.md](docs/commands.md).
141
+
142
+ | Area | Commands |
143
+ |---|---|
144
+ | Project | `init` `status` `info` `dev` `start` `stop` `restart` `check` |
145
+ | Code & tasks | `run <workflow>` `exec <command>` `script <name>` `task <name>` `watch` `fix` |
146
+ | Dependencies | `deps` `deps install` `deps update` `deps outdated` `deps audit` `deps clean` |
147
+ | Testing & build | `test [--watch] [--coverage] [--changed]` `benchmark` `build` `clean` `package` `artifacts` |
148
+ | Environment | `env` `env check` `env set` `env profile` `env diff` |
149
+ | Git & releases | `git status/diff/branch/commit/sync/tag/history` `version` `changelog` `release` `publish` |
150
+ | Deployment | `deploy [target]` `deploy status` `deploy logs` `rollback` `environments` |
151
+ | Security | `security` `security scan/secrets/deps/config/report` |
152
+ | Containers & data | `docker up/down/logs` `services` `ports` `db status/migrate/seed/backup/restore` |
153
+ | Workflows & automation | `workflow list/validate/create/graph` `schedule` `hook` `trigger` `watchers` |
154
+ | Observability | `logs [--follow]` `history [id]` `report` `trace` |
155
+ | Extensibility & team | `plugin list/install/remove/update/search/trust` `config` `policy` `workspace` `profile` |
156
+ | Diagnostics | `doctor` `diagnose` `repair` `debug` |
157
+
158
+ Global options (work before or after the command): `--json`, `--dry-run`, `--yes/-y`,
159
+ `--force`, `--quiet/-q`, `--verbose/-v`, `--debug`, `--no-color`, `--cwd/-C DIR`,
160
+ `--config-profile NAME`, `--version`, `--help`.
161
+
162
+ A few examples:
163
+
164
+ ```bash
165
+ highhx exec -- pytest -q # run anything with env profile, risk check, history
166
+ highhx exec --timeout 30s --retry 3 -- ./flaky.sh
167
+ highhx test --changed # only tests related to files changed since HEAD
168
+ highhx deps update # shows what will change, then asks
169
+ highhx env set DATABASE_URL # prompts without echo; value never printed again
170
+ highhx release # version from Conventional Commits, changelog, tag
171
+ highhx deploy staging --version 1.4.0 # preflight → approval → deploy → health check
172
+ highhx rollback staging # restore the previous successful deployment
173
+ highhx security --fail-on high # exit 9 if high/critical findings
174
+ highhx workflow graph ci --format mermaid
175
+ highhx status --json | jq .git.branch
176
+ ```
177
+
178
+ ## Workflows
179
+
180
+ Workflows are YAML files in `.highhx/workflows/`. Full reference:
181
+ [docs/workflows.md](docs/workflows.md) · JSON Schema: [schemas/workflow.schema.json](schemas/workflow.schema.json).
182
+
183
+ ```yaml
184
+ name: production
185
+
186
+ settings:
187
+ fail_fast: true
188
+ max_parallel: 4
189
+ timeout: 30m
190
+
191
+ steps:
192
+ - id: test
193
+ run: pytest
194
+
195
+ - id: lint
196
+ run: ruff check .
197
+
198
+ - id: build
199
+ run: docker build -t myapp .
200
+ depends_on: [test, lint] # test and lint run in parallel first
201
+
202
+ - id: deploy
203
+ run: ./deploy.sh ${{ steps.build.outputs.tag }}
204
+ depends_on: [build]
205
+ approval: true # asks before running
206
+ retry:
207
+ attempts: 3
208
+ delay: 10s # exponential backoff: 10s, 20s …
209
+
210
+ - id: notify
211
+ run: ./notify.sh "deploy failed"
212
+ depends_on: [deploy]
213
+ if: failure()
214
+ ```
215
+
216
+ A step never starts before every step in its `depends_on` succeeded. Steps whose
217
+ dependencies are satisfied run in parallel (up to `max_parallel`). Also supported:
218
+ `if:` conditions, `${{ }}` variables (`env`, `vars`, `inputs`, `steps.<id>.outputs`),
219
+ step outputs, `continue_on_error`, per-step `timeout`/`cwd`/`env`, reusable workflows
220
+ (`uses: other-workflow` with `with:` inputs), and `on:` event triggers.
221
+
222
+ `highhx workflow validate` catches circular and missing dependencies, duplicate ids,
223
+ unknown fields, bad expressions, references to steps that are not dependencies,
224
+ unparsable commands, impossible steps and risky commands without `approval` —
225
+ before anything runs.
226
+
227
+ ## Configuration
228
+
229
+ `.highhx/config.yaml` is validated strictly (unknown keys are errors with
230
+ "did you mean" suggestions). Reference: [docs/configuration.md](docs/configuration.md) ·
231
+ JSON Schema: [schemas/config.schema.json](schemas/config.schema.json).
232
+
233
+ ```yaml
234
+ version: 1
235
+ project:
236
+ name: shop
237
+ commands: # override anything HighhX detected
238
+ test: uv run pytest
239
+ dev: uv run uvicorn app.main:app --reload
240
+ services: # highhx start / stop / services
241
+ api:
242
+ command: uv run uvicorn app.main:app --port 8000
243
+ port: 8000
244
+ health: {url: http://127.0.0.1:8000/health}
245
+ deploy:
246
+ default: staging
247
+ targets:
248
+ staging:
249
+ type: ssh # local | docker | ssh | kubernetes | terraform | plugin:<name>
250
+ host: deploy@staging.example.com
251
+ command: ./deploy.sh {{ version }}
252
+ rollback_command: ./deploy.sh {{ previous_version }}
253
+ health_check: {url: https://staging.example.com/health}
254
+ approvals:
255
+ auto_approve: normal # never prompt at or below this risk
256
+ yes_max_risk: critical # the highest risk --yes may approve
257
+ ```
258
+
259
+ Config profiles (`.highhx/profiles/ci.yaml`) overlay the config with `--config-profile ci`.
260
+ Environment profiles (development/staging/production) are separate and live in
261
+ `.highhx/environment.yaml` plus your `.env` files — see `highhx env --help`.
262
+
263
+ ## Plugins
264
+
265
+ Plugins add commands, workflows, templates, detectors and deployment backends.
266
+ Guide: [docs/plugins.md](docs/plugins.md).
267
+
268
+ ```yaml
269
+ # my-plugin/highhx-plugin.yaml
270
+ name: greet
271
+ version: 1.0.0
272
+ api_version: 1
273
+ permissions: [commands]
274
+ contributes:
275
+ commands:
276
+ - name: greet
277
+ run: echo "hello"
278
+ workflows: [workflows]
279
+ ```
280
+
281
+ ```bash
282
+ highhx plugin install ./my-plugin # or a git URL, or a name from plugins.index
283
+ highhx greet
284
+ ```
285
+
286
+ Declarative contributions run as subprocesses with an isolated environment.
287
+ Python code plugins run only when `plugins.allow_code: true` **and** you trusted those
288
+ exact files (by SHA-256) with `highhx plugin install` or `highhx plugin trust`. Trust is
289
+ stored in your user data directory, so a cloned repository cannot enable its own plugin code.
290
+
291
+ ## Security model
292
+
293
+ Details: [docs/security.md](docs/security.md).
294
+
295
+ - **Approvals.** Every command is classified (safe / normal / dangerous / critical).
296
+ Anything above `approvals.auto_approve` asks; critical actions require typing a word.
297
+ Without a terminal, HighhX denies instead of guessing. `--yes` approves up to
298
+ `approvals.yes_max_risk`, never beyond, and never for non-bypassable rules
299
+ (e.g. `rm -rf /`, `terraform destroy`, policy rules with `bypassable: false`).
300
+ - **Policies.** `.highhx/policies.yaml` can deny commands/actions, require approval,
301
+ protect branches, forbid committed files and require a clean tree for releases/deploys.
302
+ - **Secrets.** Secret values are never printed: `env` masks them, logs and history are
303
+ redacted (known secret values plus token patterns), and `security secrets` reports
304
+ file/line/type only. New `.env` files get owner-only permissions and are git-ignored.
305
+ - **No claims.** `highhx security` reports concrete findings from local checks. An empty
306
+ report does not mean a project is secure, and HighhX never says it is.
307
+
308
+ Report vulnerabilities in HighhX itself as described in [SECURITY.md](SECURITY.md).
309
+
310
+ ## Development
311
+
312
+ ```bash
313
+ pip install -e ".[dev]"
314
+ pytest # unit, integration, security and end-to-end tests
315
+ ruff check . && ruff format --check .
316
+ mypy # strict typing of src/highhx
317
+ ```
318
+
319
+ Architecture: [docs/architecture.md](docs/architecture.md) · Development guide:
320
+ [docs/development.md](docs/development.md) · Troubleshooting: [docs/troubleshooting.md](docs/troubleshooting.md).
321
+
322
+ ## Contributing
323
+
324
+ Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) and the
325
+ [Code of Conduct](CODE_OF_CONDUCT.md). Please open an issue before large changes.
326
+
327
+ ## License
328
+
329
+ MIT — see [LICENSE](LICENSE).