highhxcli 0.1.0__tar.gz → 0.3.2__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 (594) hide show
  1. highhxcli-0.3.2/CHANGELOG.md +147 -0
  2. highhxcli-0.1.0/README.md → highhxcli-0.3.2/PKG-INFO +160 -6
  3. highhxcli-0.1.0/PKG-INFO → highhxcli-0.3.2/README.md +117 -36
  4. highhxcli-0.3.2/docs/agent.md +165 -0
  5. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/architecture.md +38 -0
  6. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/commands.md +356 -0
  7. highhxcli-0.3.2/docs/computer-use.md +106 -0
  8. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/configuration.md +16 -1
  9. highhxcli-0.3.2/docs/platform.md +123 -0
  10. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/security.md +31 -4
  11. {highhxcli-0.1.0 → highhxcli-0.3.2}/pyproject.toml +15 -3
  12. {highhxcli-0.1.0 → highhxcli-0.3.2}/schemas/config.schema.json +55 -0
  13. {highhxcli-0.1.0 → highhxcli-0.3.2}/scripts/generate_docs.py +1 -0
  14. highhxcli-0.3.2/server/README.md +87 -0
  15. highhxcli-0.3.2/server/src/highhx_platform/__init__.py +4 -0
  16. highhxcli-0.3.2/server/src/highhx_platform/__main__.py +33 -0
  17. highhxcli-0.3.2/server/src/highhx_platform/accounts.py +247 -0
  18. highhxcli-0.3.2/server/src/highhx_platform/app.py +127 -0
  19. highhxcli-0.3.2/server/src/highhx_platform/billing.py +264 -0
  20. highhxcli-0.3.2/server/src/highhx_platform/config.py +82 -0
  21. highhxcli-0.3.2/server/src/highhx_platform/db.py +68 -0
  22. highhxcli-0.3.2/server/src/highhx_platform/deps.py +74 -0
  23. highhxcli-0.3.2/server/src/highhx_platform/gateway.py +151 -0
  24. highhxcli-0.3.2/server/src/highhx_platform/migrations/__init__.py +1 -0
  25. highhxcli-0.3.2/server/src/highhx_platform/migrations/env.py +28 -0
  26. highhxcli-0.3.2/server/src/highhx_platform/migrations/script.py.mako +25 -0
  27. highhxcli-0.3.2/server/src/highhx_platform/migrations/versions/0001_initial_schema.py +187 -0
  28. highhxcli-0.3.2/server/src/highhx_platform/migrations/versions/0002_security_and_metering.py +66 -0
  29. highhxcli-0.3.2/server/src/highhx_platform/migrations/versions/0003_shared_stream_state.py +61 -0
  30. highhxcli-0.3.2/server/src/highhx_platform/models.py +218 -0
  31. highhxcli-0.3.2/server/src/highhx_platform/routers/__init__.py +1 -0
  32. highhxcli-0.3.2/server/src/highhx_platform/routers/account.py +204 -0
  33. highhxcli-0.3.2/server/src/highhx_platform/routers/ai.py +246 -0
  34. highhxcli-0.3.2/server/src/highhx_platform/routers/auth.py +232 -0
  35. highhxcli-0.3.2/server/src/highhx_platform/routers/billing.py +144 -0
  36. highhxcli-0.3.2/server/src/highhx_platform/routers/web.py +141 -0
  37. highhxcli-0.3.2/server/src/highhx_platform/security.py +126 -0
  38. highhxcli-0.3.2/server/src/highhx_platform/streams.py +240 -0
  39. highhxcli-0.3.2/server/tests/conftest.py +134 -0
  40. highhxcli-0.3.2/server/tests/helpers.py +193 -0
  41. highhxcli-0.3.2/server/tests/test_cli_integration.py +176 -0
  42. highhxcli-0.3.2/server/tests/test_e2e_final.py +153 -0
  43. highhxcli-0.3.2/server/tests/test_hardening.py +648 -0
  44. highhxcli-0.3.2/server/tests/test_multi_instance.py +221 -0
  45. highhxcli-0.3.2/server/tests/test_platform.py +367 -0
  46. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/__init__.py +1 -1
  47. highhxcli-0.3.2/src/highhx/agent/__init__.py +15 -0
  48. highhxcli-0.3.2/src/highhx/agent/bootstrap.py +106 -0
  49. highhxcli-0.3.2/src/highhx/agent/context.py +162 -0
  50. highhxcli-0.3.2/src/highhx/agent/history.py +234 -0
  51. highhxcli-0.3.2/src/highhx/agent/memory.py +67 -0
  52. highhxcli-0.3.2/src/highhx/agent/messages.py +150 -0
  53. highhxcli-0.3.2/src/highhx/agent/model/__init__.py +14 -0
  54. highhxcli-0.3.2/src/highhx/agent/model/anthropic.py +229 -0
  55. highhxcli-0.3.2/src/highhx/agent/model/base.py +229 -0
  56. highhxcli-0.3.2/src/highhx/agent/model/gemini.py +222 -0
  57. highhxcli-0.3.2/src/highhx/agent/model/openai.py +219 -0
  58. highhxcli-0.3.2/src/highhx/agent/model/platform.py +131 -0
  59. highhxcli-0.3.2/src/highhx/agent/model/registry.py +92 -0
  60. highhxcli-0.3.2/src/highhx/agent/model/resilience.py +68 -0
  61. highhxcli-0.3.2/src/highhx/agent/permissions.py +197 -0
  62. highhxcli-0.3.2/src/highhx/agent/planner.py +137 -0
  63. highhxcli-0.3.2/src/highhx/agent/prompts.py +75 -0
  64. highhxcli-0.3.2/src/highhx/agent/repl.py +460 -0
  65. highhxcli-0.3.2/src/highhx/agent/running.py +118 -0
  66. highhxcli-0.3.2/src/highhx/agent/session.py +606 -0
  67. highhxcli-0.3.2/src/highhx/agent/settings.py +57 -0
  68. highhxcli-0.3.2/src/highhx/agent/state.py +70 -0
  69. highhxcli-0.3.2/src/highhx/agent/streaming.py +70 -0
  70. highhxcli-0.3.2/src/highhx/agent/sync.py +80 -0
  71. highhxcli-0.3.2/src/highhx/agent/tools/__init__.py +6 -0
  72. highhxcli-0.3.2/src/highhx/agent/tools/base.py +129 -0
  73. highhxcli-0.3.2/src/highhx/agent/tools/commands.py +311 -0
  74. highhxcli-0.3.2/src/highhx/agent/tools/computer.py +178 -0
  75. highhxcli-0.3.2/src/highhx/agent/tools/devops.py +338 -0
  76. highhxcli-0.3.2/src/highhx/agent/tools/files.py +270 -0
  77. highhxcli-0.3.2/src/highhx/agent/tools/git.py +179 -0
  78. highhxcli-0.3.2/src/highhx/agent/tools/project.py +186 -0
  79. highhxcli-0.3.2/src/highhx/agent/tools/registry.py +101 -0
  80. highhxcli-0.3.2/src/highhx/agent/ui.py +360 -0
  81. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/approvals/manager.py +18 -1
  82. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/cli.py +41 -5
  83. highhxcli-0.3.2/src/highhx/cloud/__init__.py +11 -0
  84. highhxcli-0.3.2/src/highhx/cloud/account.py +242 -0
  85. highhxcli-0.3.2/src/highhx/cloud/client.py +194 -0
  86. highhxcli-0.3.2/src/highhx/cloud/credentials.py +113 -0
  87. highhxcli-0.3.2/src/highhx/cloud/plans.py +108 -0
  88. highhxcli-0.3.2/src/highhx/cloud/protocol.py +67 -0
  89. highhxcli-0.3.2/src/highhx/cloud/sse.py +65 -0
  90. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/__init__.py +9 -0
  91. highhxcli-0.3.2/src/highhx/commands/cloud/__init__.py +1 -0
  92. highhxcli-0.3.2/src/highhx/commands/cloud/account.py +260 -0
  93. highhxcli-0.3.2/src/highhx/commands/cloud/agent.py +256 -0
  94. highhxcli-0.3.2/src/highhx/commands/cloud/login.py +89 -0
  95. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/exec.py +1 -1
  96. highhxcli-0.3.2/src/highhx/commands/computer/__init__.py +1 -0
  97. highhxcli-0.3.2/src/highhx/commands/computer/do.py +57 -0
  98. highhxcli-0.3.2/src/highhx/commands/computer/main.py +321 -0
  99. highhxcli-0.3.2/src/highhx/commands/observability/audit.py +46 -0
  100. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/registry.py +13 -0
  101. highhxcli-0.3.2/src/highhx/computer/__init__.py +11 -0
  102. highhxcli-0.3.2/src/highhx/computer/browser.py +565 -0
  103. highhxcli-0.3.2/src/highhx/computer/desktop.py +372 -0
  104. highhxcli-0.3.2/src/highhx/computer/flows.py +210 -0
  105. highhxcli-0.3.2/src/highhx/computer/intents.py +96 -0
  106. highhxcli-0.3.2/src/highhx/computer/model.py +334 -0
  107. highhxcli-0.3.2/src/highhx/computer/providers.py +92 -0
  108. highhxcli-0.3.2/src/highhx/computer/runtime.py +310 -0
  109. highhxcli-0.3.2/src/highhx/computer/session.py +142 -0
  110. highhxcli-0.3.2/src/highhx/computer/websocket.py +158 -0
  111. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/config/loader.py +1 -1
  112. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/config/validation.py +15 -0
  113. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/errors.py +59 -0
  114. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/health.py +5 -1
  115. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/operating_system.py +1 -1
  116. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/base.py +20 -0
  117. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/mysql.py +9 -4
  118. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/postgres.py +11 -7
  119. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/sqlite.py +10 -5
  120. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/docker/client.py +1 -1
  121. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/manifest.py +24 -3
  122. highhxcli-0.3.2/src/highhx/safety/__init__.py +29 -0
  123. highhxcli-0.3.2/src/highhx/safety/actions.py +74 -0
  124. highhxcli-0.3.2/src/highhx/safety/audit.py +149 -0
  125. highhxcli-0.3.2/src/highhx/safety/classifier.py +724 -0
  126. highhxcli-0.3.2/src/highhx/safety/confirmation.py +149 -0
  127. highhxcli-0.3.2/src/highhx/safety/gate.py +216 -0
  128. highhxcli-0.3.2/src/highhx/safety/injection.py +60 -0
  129. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/secrets.py +72 -1
  130. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/storage/database.py +14 -0
  131. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/storage/history.py +5 -6
  132. highhxcli-0.3.2/src/highhx/storage/migrations.py +189 -0
  133. highhxcli-0.3.2/src/highhx/ui/branding.py +277 -0
  134. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/engine.py +1 -1
  135. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/parser.py +1 -1
  136. highhxcli-0.3.2/tests/e2e/test_free_without_ai.py +76 -0
  137. highhxcli-0.3.2/tests/unit/agent/conftest.py +233 -0
  138. highhxcli-0.3.2/tests/unit/agent/test_cloud_and_cli.py +320 -0
  139. highhxcli-0.3.2/tests/unit/agent/test_injection_surfaces.py +133 -0
  140. highhxcli-0.3.2/tests/unit/agent/test_live_providers.py +59 -0
  141. highhxcli-0.3.2/tests/unit/agent/test_provider_wire.py +357 -0
  142. highhxcli-0.3.2/tests/unit/agent/test_providers.py +395 -0
  143. highhxcli-0.3.2/tests/unit/agent/test_repl.py +185 -0
  144. highhxcli-0.3.2/tests/unit/agent/test_resilience_and_state.py +334 -0
  145. highhxcli-0.3.2/tests/unit/agent/test_safety.py +346 -0
  146. highhxcli-0.3.2/tests/unit/agent/test_session.py +365 -0
  147. highhxcli-0.3.2/tests/unit/agent/test_tools.py +272 -0
  148. highhxcli-0.3.2/tests/unit/computer/conftest.py +152 -0
  149. highhxcli-0.3.2/tests/unit/computer/test_browser_resilience.py +150 -0
  150. highhxcli-0.3.2/tests/unit/computer/test_browser_scripts.py +130 -0
  151. highhxcli-0.3.2/tests/unit/computer/test_computer.py +384 -0
  152. highhxcli-0.3.2/tests/unit/computer/test_live_browser.py +135 -0
  153. highhxcli-0.3.2/tests/unit/computer/test_live_ocr.py +24 -0
  154. highhxcli-0.3.2/tests/unit/computer/test_ocr_and_platforms.py +121 -0
  155. highhxcli-0.3.2/tests/unit/security/__init__.py +0 -0
  156. highhxcli-0.3.2/tests/unit/security/test_hardening_review.py +83 -0
  157. highhxcli-0.3.2/tests/unit/storage/__init__.py +0 -0
  158. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/storage/test_storage.py +26 -0
  159. highhxcli-0.3.2/tests/unit/ui/__init__.py +0 -0
  160. highhxcli-0.3.2/tests/unit/ui/test_branding.py +207 -0
  161. highhxcli-0.3.2/tests/unit/workflows/__init__.py +0 -0
  162. highhxcli-0.1.0/CHANGELOG.md +0 -42
  163. highhxcli-0.1.0/src/highhx/storage/migrations.py +0 -109
  164. {highhxcli-0.1.0 → highhxcli-0.3.2}/.gitignore +0 -0
  165. {highhxcli-0.1.0 → highhxcli-0.3.2}/CODE_OF_CONDUCT.md +0 -0
  166. {highhxcli-0.1.0 → highhxcli-0.3.2}/CONTRIBUTING.md +0 -0
  167. {highhxcli-0.1.0 → highhxcli-0.3.2}/LICENSE +0 -0
  168. {highhxcli-0.1.0 → highhxcli-0.3.2}/SECURITY.md +0 -0
  169. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/development.md +0 -0
  170. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/plugins.md +0 -0
  171. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/troubleshooting.md +0 -0
  172. {highhxcli-0.1.0 → highhxcli-0.3.2}/docs/workflows.md +0 -0
  173. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/README.md +0 -0
  174. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/.highhx/config.yaml +0 -0
  175. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/.highhx/workflows/check.yaml +0 -0
  176. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/README.md +0 -0
  177. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/calc.py +0 -0
  178. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/tests/__init__.py +0 -0
  179. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/basic/tests/test_calc.py +0 -0
  180. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/ci/.highhx/config.yaml +0 -0
  181. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/ci/.highhx/workflows/pipeline.yaml +0 -0
  182. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/ci/.highhx/workflows/tests.yaml +0 -0
  183. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/docker/.highhx/config.yaml +0 -0
  184. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/docker/.highhx/workflows/up.yaml +0 -0
  185. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/flutter/.highhx/config.yaml +0 -0
  186. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/flutter/.highhx/workflows/build.yaml +0 -0
  187. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/monorepo/.highhx/config.yaml +0 -0
  188. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/monorepo/.highhx/workflows/test-all.yaml +0 -0
  189. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/node/.highhx/config.yaml +0 -0
  190. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/node/.highhx/workflows/ci.yaml +0 -0
  191. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/.highhx/config.yaml +0 -0
  192. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/.highhx/environment.yaml +0 -0
  193. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/.highhx/policies.yaml +0 -0
  194. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/.highhx/workflows/deploy.yaml +0 -0
  195. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/db/migrations/001_create_users.sql +0 -0
  196. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/production/db/migrations/002_add_name.sql +0 -0
  197. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/python/.highhx/config.yaml +0 -0
  198. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/python/.highhx/workflows/check.yaml +0 -0
  199. {highhxcli-0.1.0 → highhxcli-0.3.2}/examples/python/.highhx/workflows/release.yaml +0 -0
  200. {highhxcli-0.1.0 → highhxcli-0.3.2}/schemas/plugin.schema.json +0 -0
  201. {highhxcli-0.1.0 → highhxcli-0.3.2}/schemas/workflow.schema.json +0 -0
  202. {highhxcli-0.1.0 → highhxcli-0.3.2}/scripts/generate_schemas.py +0 -0
  203. {highhxcli-0.1.0/tests → highhxcli-0.3.2/server/src/highhx_platform/migrations/versions}/__init__.py +0 -0
  204. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/__main__.py +0 -0
  205. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/approvals/__init__.py +0 -0
  206. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/approvals/policy.py +0 -0
  207. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/approvals/risk.py +0 -0
  208. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/approvals/rules.py +0 -0
  209. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/__init__.py +0 -0
  210. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/cron.py +0 -0
  211. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/hooks.py +0 -0
  212. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/scheduler.py +0 -0
  213. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/triggers.py +0 -0
  214. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/automation/watcher.py +0 -0
  215. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/building/__init__.py +0 -0
  216. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/building/artifacts.py +0 -0
  217. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/building/builder.py +0 -0
  218. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/building/cleanup.py +0 -0
  219. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/building/packaging.py +0 -0
  220. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/automation/__init__.py +0 -0
  221. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/automation/hook.py +0 -0
  222. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/automation/schedule.py +0 -0
  223. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/automation/trigger.py +0 -0
  224. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/automation/watch.py +0 -0
  225. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/build/__init__.py +0 -0
  226. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/build/artifacts.py +0 -0
  227. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/build/build.py +0 -0
  228. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/build/clean.py +0 -0
  229. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/build/package.py +0 -0
  230. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/__init__.py +0 -0
  231. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/fix.py +0 -0
  232. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/run.py +0 -0
  233. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/script.py +0 -0
  234. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/task.py +0 -0
  235. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/code/watch.py +0 -0
  236. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/__init__.py +0 -0
  237. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/backup.py +0 -0
  238. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/main.py +0 -0
  239. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/migrate.py +0 -0
  240. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/restore.py +0 -0
  241. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/seed.py +0 -0
  242. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/database/status.py +0 -0
  243. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/__init__.py +0 -0
  244. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/audit.py +0 -0
  245. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/clean.py +0 -0
  246. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/install.py +0 -0
  247. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/main.py +0 -0
  248. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/outdated.py +0 -0
  249. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/dependencies/update.py +0 -0
  250. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/__init__.py +0 -0
  251. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/deploy.py +0 -0
  252. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/environments.py +0 -0
  253. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/logs.py +0 -0
  254. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/rollback.py +0 -0
  255. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/deployment/status.py +0 -0
  256. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/__init__.py +0 -0
  257. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/debug.py +0 -0
  258. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/diagnose.py +0 -0
  259. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/doctor.py +0 -0
  260. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/repair.py +0 -0
  261. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/diagnostics/trace.py +0 -0
  262. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/docker/__init__.py +0 -0
  263. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/docker/down.py +0 -0
  264. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/docker/logs.py +0 -0
  265. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/docker/main.py +0 -0
  266. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/docker/up.py +0 -0
  267. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/__init__.py +0 -0
  268. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/check.py +0 -0
  269. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/diff.py +0 -0
  270. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/main.py +0 -0
  271. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/profile.py +0 -0
  272. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/environment/set.py +0 -0
  273. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/__init__.py +0 -0
  274. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/branch.py +0 -0
  275. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/commit.py +0 -0
  276. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/diff.py +0 -0
  277. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/history.py +0 -0
  278. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/main.py +0 -0
  279. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/status.py +0 -0
  280. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/sync.py +0 -0
  281. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/git/tag.py +0 -0
  282. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/groups.py +0 -0
  283. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/observability/__init__.py +0 -0
  284. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/observability/history.py +0 -0
  285. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/observability/logs.py +0 -0
  286. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/observability/report.py +0 -0
  287. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/__init__.py +0 -0
  288. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/install.py +0 -0
  289. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/list.py +0 -0
  290. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/main.py +0 -0
  291. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/remove.py +0 -0
  292. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/search.py +0 -0
  293. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/trust.py +0 -0
  294. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/plugins/update.py +0 -0
  295. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/__init__.py +0 -0
  296. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/check.py +0 -0
  297. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/dev.py +0 -0
  298. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/doctor.py +0 -0
  299. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/info.py +0 -0
  300. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/init.py +0 -0
  301. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/restart.py +0 -0
  302. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/start.py +0 -0
  303. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/status.py +0 -0
  304. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/project/stop.py +0 -0
  305. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/release/__init__.py +0 -0
  306. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/release/changelog.py +0 -0
  307. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/release/publish.py +0 -0
  308. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/release/release.py +0 -0
  309. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/release/version.py +0 -0
  310. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/__init__.py +0 -0
  311. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/config.py +0 -0
  312. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/dependencies.py +0 -0
  313. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/main.py +0 -0
  314. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/report.py +0 -0
  315. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/scan.py +0 -0
  316. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/security/secrets.py +0 -0
  317. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/services/__init__.py +0 -0
  318. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/services/main.py +0 -0
  319. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/services/ports.py +0 -0
  320. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/team/__init__.py +0 -0
  321. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/team/config.py +0 -0
  322. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/team/policy.py +0 -0
  323. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/team/profile.py +0 -0
  324. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/team/workspace.py +0 -0
  325. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/testing/__init__.py +0 -0
  326. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/testing/benchmark.py +0 -0
  327. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/testing/test.py +0 -0
  328. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/__init__.py +0 -0
  329. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/create.py +0 -0
  330. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/graph.py +0 -0
  331. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/list.py +0 -0
  332. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/main.py +0 -0
  333. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/commands/workflows/validate.py +0 -0
  334. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/config/__init__.py +0 -0
  335. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/config/defaults.py +0 -0
  336. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/config/schema.py +0 -0
  337. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/__init__.py +0 -0
  338. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/context.py +0 -0
  339. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/engine.py +0 -0
  340. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/events.py +0 -0
  341. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/executor.py +0 -0
  342. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/lifecycle.py +0 -0
  343. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/core/result.py +0 -0
  344. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/__init__.py +0 -0
  345. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/backup.py +0 -0
  346. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/manager.py +0 -0
  347. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/migrations.py +0 -0
  348. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/restore.py +0 -0
  349. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/database/seeding.py +0 -0
  350. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/__init__.py +0 -0
  351. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/audit.py +0 -0
  352. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/detector.py +0 -0
  353. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/installer.py +0 -0
  354. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/manager.py +0 -0
  355. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/outdated.py +0 -0
  356. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/dependencies/updater.py +0 -0
  357. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/__init__.py +0 -0
  358. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/manager.py +0 -0
  359. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/rollback.py +0 -0
  360. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/state.py +0 -0
  361. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/strategy.py +0 -0
  362. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/deployment/target.py +0 -0
  363. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/__init__.py +0 -0
  364. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/container.py +0 -0
  365. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/database.py +0 -0
  366. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/framework.py +0 -0
  367. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/language.py +0 -0
  368. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/package_manager.py +0 -0
  369. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/runtime.py +0 -0
  370. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/detection/tools.py +0 -0
  371. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/diagnostics/__init__.py +0 -0
  372. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/diagnostics/diagnose.py +0 -0
  373. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/diagnostics/doctor.py +0 -0
  374. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/diagnostics/repair.py +0 -0
  375. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/__init__.py +0 -0
  376. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/dotenv.py +0 -0
  377. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/manager.py +0 -0
  378. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/profiles.py +0 -0
  379. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/secrets.py +0 -0
  380. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/validation.py +0 -0
  381. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/environment/variables.py +0 -0
  382. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/__init__.py +0 -0
  383. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/cancellation.py +0 -0
  384. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/command.py +0 -0
  385. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/environment.py +0 -0
  386. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/isolation.py +0 -0
  387. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/parallel.py +0 -0
  388. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/process.py +0 -0
  389. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/retry.py +0 -0
  390. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/shell.py +0 -0
  391. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/execution/timeout.py +0 -0
  392. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/__init__.py +0 -0
  393. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/branches.py +0 -0
  394. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/commits.py +0 -0
  395. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/diff.py +0 -0
  396. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/history.py +0 -0
  397. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/manager.py +0 -0
  398. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/repository.py +0 -0
  399. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/status.py +0 -0
  400. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/git/tags.py +0 -0
  401. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/__init__.py +0 -0
  402. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/cloud/__init__.py +0 -0
  403. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/cloud/registry.py +0 -0
  404. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/__init__.py +0 -0
  405. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/databases/url.py +0 -0
  406. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/docker/__init__.py +0 -0
  407. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/kubernetes/__init__.py +0 -0
  408. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/kubernetes/client.py +0 -0
  409. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/ssh/__init__.py +0 -0
  410. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/ssh/client.py +0 -0
  411. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/terraform/__init__.py +0 -0
  412. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/integrations/terraform/client.py +0 -0
  413. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/observability/__init__.py +0 -0
  414. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/observability/events.py +0 -0
  415. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/observability/logger.py +0 -0
  416. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/observability/metrics.py +0 -0
  417. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/observability/tracing.py +0 -0
  418. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/__init__.py +0 -0
  419. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/interface.py +0 -0
  420. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/loader.py +0 -0
  421. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/manager.py +0 -0
  422. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/manifest.py +0 -0
  423. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/registry.py +0 -0
  424. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/plugins/sandbox.py +0 -0
  425. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/policy/__init__.py +0 -0
  426. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/policy/engine.py +0 -0
  427. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/policy/rules.py +0 -0
  428. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/policy/validator.py +0 -0
  429. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/__init__.py +0 -0
  430. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/context.py +0 -0
  431. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/detector.py +0 -0
  432. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/initializer.py +0 -0
  433. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/monorepo.py +0 -0
  434. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/scanner.py +0 -0
  435. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/status.py +0 -0
  436. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/project/workspace.py +0 -0
  437. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/release/__init__.py +0 -0
  438. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/release/changelog.py +0 -0
  439. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/release/manager.py +0 -0
  440. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/release/publisher.py +0 -0
  441. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/release/versioning.py +0 -0
  442. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/__init__.py +0 -0
  443. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/dependencies.py +0 -0
  444. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/filesystem.py +0 -0
  445. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/permissions.py +0 -0
  446. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/policies.py +0 -0
  447. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/report.py +0 -0
  448. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/scanner.py +0 -0
  449. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/security/secrets_scan.py +0 -0
  450. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/services/__init__.py +0 -0
  451. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/services/health.py +0 -0
  452. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/services/manager.py +0 -0
  453. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/services/ports.py +0 -0
  454. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/services/registry.py +0 -0
  455. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/storage/__init__.py +0 -0
  456. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/storage/cache.py +0 -0
  457. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/storage/logs.py +0 -0
  458. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/testing/__init__.py +0 -0
  459. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/testing/benchmark.py +0 -0
  460. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/testing/coverage.py +0 -0
  461. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/testing/discovery.py +0 -0
  462. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/testing/runner.py +0 -0
  463. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/__init__.py +0 -0
  464. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/dashboard.py +0 -0
  465. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/errors.py +0 -0
  466. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/output.py +0 -0
  467. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/progress.py +0 -0
  468. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/prompts.py +0 -0
  469. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/reporting.py +0 -0
  470. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/tables.py +0 -0
  471. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/ui/terminal.py +0 -0
  472. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/__init__.py +0 -0
  473. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/filesystem.py +0 -0
  474. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/hashing.py +0 -0
  475. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/paths.py +0 -0
  476. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/platform.py +0 -0
  477. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/processes.py +0 -0
  478. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/time.py +0 -0
  479. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/utils/validation.py +0 -0
  480. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/__init__.py +0 -0
  481. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/conditions.py +0 -0
  482. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/dependency_graph.py +0 -0
  483. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/loader.py +0 -0
  484. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/resolver.py +0 -0
  485. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/scheduler.py +0 -0
  486. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/schema.py +0 -0
  487. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/templates.py +0 -0
  488. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/validator.py +0 -0
  489. {highhxcli-0.1.0 → highhxcli-0.3.2}/src/highhx/workflows/variables.py +0 -0
  490. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/cpp/config.yaml +0 -0
  491. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/cpp/workflows/build.yaml +0 -0
  492. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/docker/config.yaml +0 -0
  493. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/docker/workflows/build.yaml +0 -0
  494. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/flutter/config.yaml +0 -0
  495. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/flutter/workflows/test.yaml +0 -0
  496. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/config.yaml +0 -0
  497. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/environment.yaml +0 -0
  498. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/policies.yaml +0 -0
  499. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/build.yaml +0 -0
  500. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/ci.yaml +0 -0
  501. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/deploy.yaml +0 -0
  502. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/dev.yaml +0 -0
  503. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/release.yaml +0 -0
  504. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/rollback.yaml +0 -0
  505. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/generic/workflows/test.yaml +0 -0
  506. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/java/config.yaml +0 -0
  507. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/monorepo/config.yaml +0 -0
  508. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/monorepo/workflows/test.yaml +0 -0
  509. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/nextjs/config.yaml +0 -0
  510. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/node/config.yaml +0 -0
  511. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/python/config.yaml +0 -0
  512. {highhxcli-0.1.0 → highhxcli-0.3.2}/templates/react/config.yaml +0 -0
  513. {highhxcli-0.1.0/tests/e2e → highhxcli-0.3.2/tests}/__init__.py +0 -0
  514. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/conftest.py +0 -0
  515. {highhxcli-0.1.0/tests/integration → highhxcli-0.3.2/tests/e2e}/__init__.py +0 -0
  516. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/_helpers.py +0 -0
  517. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_deploy.py +0 -0
  518. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_dev.py +0 -0
  519. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_examples.py +0 -0
  520. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_init.py +0 -0
  521. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_interrupts.py +0 -0
  522. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_long_running.py +0 -0
  523. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_paths_with_spaces.py +0 -0
  524. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_rollback.py +0 -0
  525. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/e2e/test_services_lifecycle.py +0 -0
  526. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/docker_project/Dockerfile +0 -0
  527. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/docker_project/compose.yaml +0 -0
  528. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/monorepo/package.json +0 -0
  529. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/monorepo/packages/api/package.json +0 -0
  530. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/monorepo/packages/web/package.json +0 -0
  531. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/node_project/package.json +0 -0
  532. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/node_project/pnpm-lock.yaml +0 -0
  533. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/node_project/tsconfig.json +0 -0
  534. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/python_project/pyproject.toml +0 -0
  535. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/python_project/src/pyapp/__init__.py +0 -0
  536. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/python_project/src/pyapp/calc.py +0 -0
  537. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/fixtures/python_project/tests/test_calc.py +0 -0
  538. {highhxcli-0.1.0/tests/integration/docker → highhxcli-0.3.2/tests/integration}/__init__.py +0 -0
  539. {highhxcli-0.1.0/tests/integration/git → highhxcli-0.3.2/tests/integration/docker}/__init__.py +0 -0
  540. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/docker/test_docker_project.py +0 -0
  541. {highhxcli-0.1.0/tests/integration/node → highhxcli-0.3.2/tests/integration/git}/__init__.py +0 -0
  542. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/git/test_release_flow.py +0 -0
  543. {highhxcli-0.1.0/tests/integration/python → highhxcli-0.3.2/tests/integration/node}/__init__.py +0 -0
  544. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/node/test_node_project.py +0 -0
  545. {highhxcli-0.1.0/tests/integration/workflows → highhxcli-0.3.2/tests/integration/python}/__init__.py +0 -0
  546. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/python/test_python_project.py +0 -0
  547. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/test_external_tool_contracts.py +0 -0
  548. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/test_mysql_real.py +0 -0
  549. {highhxcli-0.1.0/tests/security → highhxcli-0.3.2/tests/integration/workflows}/__init__.py +0 -0
  550. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/integration/workflows/test_cli_workflows.py +0 -0
  551. {highhxcli-0.1.0/tests/unit → highhxcli-0.3.2/tests/security}/__init__.py +0 -0
  552. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/security/test_permissions.py +0 -0
  553. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/security/test_policies.py +0 -0
  554. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/security/test_secrets.py +0 -0
  555. {highhxcli-0.1.0/tests/unit/commands → highhxcli-0.3.2/tests/unit}/__init__.py +0 -0
  556. {highhxcli-0.1.0/tests/unit/core → highhxcli-0.3.2/tests/unit/agent}/__init__.py +0 -0
  557. {highhxcli-0.1.0/tests/unit/detection → highhxcli-0.3.2/tests/unit/commands}/__init__.py +0 -0
  558. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/commands/test_cli.py +0 -0
  559. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/commands/test_docs.py +0 -0
  560. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/commands/test_json_contract.py +0 -0
  561. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/commands/test_project_commands.py +0 -0
  562. {highhxcli-0.1.0/tests/unit/execution → highhxcli-0.3.2/tests/unit/computer}/__init__.py +0 -0
  563. {highhxcli-0.1.0/tests/unit/git → highhxcli-0.3.2/tests/unit/core}/__init__.py +0 -0
  564. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/core/test_engine.py +0 -0
  565. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/core/test_errors_events.py +0 -0
  566. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/core/test_executor.py +0 -0
  567. {highhxcli-0.1.0/tests/unit/security → highhxcli-0.3.2/tests/unit/detection}/__init__.py +0 -0
  568. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/detection/test_detection.py +0 -0
  569. {highhxcli-0.1.0/tests/unit/storage → highhxcli-0.3.2/tests/unit/execution}/__init__.py +0 -0
  570. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/execution/test_command.py +0 -0
  571. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/execution/test_process.py +0 -0
  572. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/execution/test_retry_parallel_cancel.py +0 -0
  573. {highhxcli-0.1.0/tests/unit/workflows → highhxcli-0.3.2/tests/unit/git}/__init__.py +0 -0
  574. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/git/test_parsers.py +0 -0
  575. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/git/test_repository.py +0 -0
  576. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/security/test_secrets_scanner.py +0 -0
  577. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_approvals_policy.py +0 -0
  578. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_audit_regressions.py +0 -0
  579. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_automation.py +0 -0
  580. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_config_environment.py +0 -0
  581. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_cross_platform.py +0 -0
  582. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_dependencies_testing.py +0 -0
  583. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_deployment_database.py +0 -0
  584. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_gap_coverage.py +0 -0
  585. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_packaging.py +0 -0
  586. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_plugins.py +0 -0
  587. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_release.py +0 -0
  588. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_schemas_examples.py +0 -0
  589. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/test_services_docker.py +0 -0
  590. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/workflows/test_conditions.py +0 -0
  591. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/workflows/test_dependency_graph.py +0 -0
  592. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/workflows/test_engine.py +0 -0
  593. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/workflows/test_parser_validator.py +0 -0
  594. {highhxcli-0.1.0 → highhxcli-0.3.2}/tests/unit/workflows/test_templates.py +0 -0
@@ -0,0 +1,147 @@
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.3.0] - 2026-09-27
10
+
11
+ Two plans, one platform: **Free** is deterministic HighhX; **Pro** adds the AI agent and AI
12
+ computer use on top of the same tools, safety, confirmation, verification and audit.
13
+
14
+ ### Terminal identity
15
+
16
+ - **The HighhX knight**: terminal-native brand art (Unicode quadrant blocks, ASCII fallback;
17
+ full 26x31 and compact 13x15) shown by `highhx` on a terminal and at the start of
18
+ `highhx agent`, sized to the terminal (`HIGHHX_BANNER=full|compact|off`, `HIGHHX_ASCII`).
19
+
20
+ ### Reliability and security hardening
21
+
22
+ - Platform: AI stream state and rate limits live in the database (migration 0003), so any
23
+ instance can resume, replay or cancel a stream; dead instances' streams end with a retryable
24
+ error; tested with two instances sharing only the database (SQLite and PostgreSQL).
25
+ - Providers: cancellation aborts the upstream socket immediately; inactivity timeouts; SDK
26
+ retries only before streaming; truncated streams are errors, not answers; raw transport errors
27
+ are normalised — tested through the real Anthropic, OpenAI and Gemini SDKs over HTTP.
28
+ - Browser: a lost DevTools answer is an *unknown* outcome that is never repeated (also after a
29
+ reconnect); per-call timeouts now fire when the browser is silent; waits for navigations
30
+ started by an action; page-text changes count for verification; sockets closed on crashes.
31
+ - OCR is available as a read-only `screen` source; OCR and accessibility subprocesses (and
32
+ their children) are killed on cancellation.
33
+ - Migration names are validated before use in SQL (MySQL backslash escaping); project XML
34
+ manifests with DTDs/entities are refused; health checks only speak http(s).
35
+
36
+ ### Features
37
+
38
+ - **Shared safety layer** (`highhx/safety`) for Free automation and the agent: semantic
39
+ classification of commands (parsed pipelines, `sh -c`, `sudo`, force pushes, destructive SQL,
40
+ installs, publishing, credentials, permissions, security controls, remote code, production)
41
+ and UI actions (role/type/structure and multilingual labels); explicit confirmation panel;
42
+ single-use HMAC approval tickets bound to the exact action; blocked catastrophic actions;
43
+ redacted audit log (`highhx audit`).
44
+ - **Computer use** (`highhx/computer`): semantic observations, finite action candidates,
45
+ observe → act → re-observe → verify runtime with recovery; Chrome/Chromium/Edge/Brave via
46
+ DevTools; macOS Accessibility; OCR via tesseract. Free: `highhx computer …` commands and YAML
47
+ flows; Pro: `computer_observe`, `computer_act`, `browser_open`, `app_open` agent tools.
48
+ - `highhx do "<request>"`: deterministic plain-language requests without AI.
49
+ - `highhx agent stop`: kill switch that cancels model requests, retries, tools and their child
50
+ processes.
51
+ - Model calls: exponential backoff with jitter, bounded attempts, circuit breaker, per-attempt
52
+ idempotency keys; tools are never retried automatically.
53
+ - Resumable streaming: SSE event ids, `Last-Event-ID` resume without re-calling the model,
54
+ duplicate suppression, remote cancellation.
55
+ - CLI ↔ platform protocol versioning (`X-HighhX-Protocol: 1.1`, 426 on incompatibility).
56
+ - Agent session state machine (`created`, `running`, `waiting_for_confirmation`, `completed`,
57
+ `failed`, `cancelled`, `closed`) enforced on CLI and platform; single-process session leases.
58
+ - Tool results carry structured `error_code` and `verified`; per-tool timeouts.
59
+ - Prompt-injection defence: tool output and external content framed as untrusted data.
60
+
61
+ ### Changed
62
+
63
+ - All Pro AI goes through the HighhX platform (authenticated, entitled, metered). The
64
+ client-side bring-your-own-key path was removed; `--provider` selects the gateway upstream.
65
+ - Platform 0.2.0: Alembic migrations (upgrades 0.1.0 databases in place), token expiry and
66
+ rotation, account suspension, subscription expiry with grace, out-of-order and concurrent
67
+ webhook handling, `invoice.paid` renewals, idempotent metering, per-account concurrency limit,
68
+ computer-use entitlement check, upstream fallbacks, `/readyz`, optional CORS.
69
+
70
+ ### Fixed
71
+
72
+ - Stripe: the webhook handler fetched subscriptions with a POST (which updates them); it now
73
+ uses GET. Subscription events now record the Stripe customer, so later invoice events apply.
74
+ - Concurrent HighhX processes opening a fresh state database raced on migrations; migrations now
75
+ run under an exclusive lock.
76
+ - Agent file edits invalidate stale Python bytecode.
77
+
78
+ ## [0.2.0] - 2026-09-27
79
+
80
+ ### Features
81
+
82
+ - **HighhX Pro — `highhx agent`**: an AI developer agent in the terminal. Describe the task in plain
83
+ language; the agent inspects the project, proposes a plan (approve / revise), works through
84
+ HighhX's own capabilities as tools — code search and edits, tests, lint/type checks, fixers,
85
+ builds, dependencies, git, security scans, doctor/diagnose/repair, workflows, deployments and
86
+ rollbacks — verifies the result and summarises it. Live progress (✓ / ✗ per step), streamed
87
+ Markdown answers, diffs for every file change, `/undo`, and slash commands (`/help`, `/status`,
88
+ `/plan`, `/context`, `/model`, `/mode`, `/history`, `/changes`, `/memory`, `/usage`, `/clear`, `/quit`).
89
+ - The agent reuses the existing safety system: every command goes through `Engine.run` (risk
90
+ classification, `policies.yaml`, approvals, history); agent actions have policy names
91
+ (`agent:write`, `agent:exec`, `agent:deploy:<target>` …); approval modes `ask` (default),
92
+ `auto-edit` and `read-only`; deployments and rollbacks always ask.
93
+ - Provider abstraction with streaming adapters for the managed HighhX gateway (default), Anthropic,
94
+ OpenAI and Google Gemini (bring your own key: `pip install "highhxcli[ai]"`).
95
+ - Sessions and transcripts are saved (`highhx agent --continue`, `--resume ID`, `highhx agent sessions`);
96
+ per-project memory in `.highhx/memory.md`; project instructions from `HIGHHX.md` / `AGENTS.md`.
97
+ - `highhx agent "…"` handles one request non-interactively (pipes, CI, `--json`).
98
+ - HighhX platform integration: `highhx login` (browser device flow or `--with-token`), `highhx logout`,
99
+ `highhx account` (`status`, `plans`, `usage`, `upgrade`, `billing`, `settings`).
100
+ - `agent:` section in `.highhx/config.yaml` (provider, model, approval, max_steps, effort, instructions).
101
+ - A bare `highhx` now suggests the next step (`highhx init`, or signing in for Pro).
102
+ - New exit code 10: HighhX account required, or the plan does not include the feature.
103
+ - `server/`: the HighhX Platform backend (FastAPI + SQLAlchemy; SQLite or PostgreSQL) — accounts,
104
+ device sign-in, hashed API tokens, Free/Pro entitlements, the metered AI gateway, projects,
105
+ agent-session sync, Stripe checkout/portal/webhooks, rate limiting and security headers.
106
+
107
+ ### Security
108
+
109
+ - The agent never reads or writes secret files (`.env*`, private keys, credential files), cannot
110
+ leave the project root (symlinks included), cannot modify `.git/` or HighhX state, and honours
111
+ `forbidden_files`. Tool output is redacted before it reaches the model or the transcript.
112
+ - Platform credentials are stored per user with mode 0600; plain http is refused except for localhost.
113
+
114
+ ## [0.1.0] - 2026-09-26
115
+
116
+ ### Features
117
+
118
+ - Project detection for Python, Node.js, React, Next.js, Flutter/Dart, Java, C/C++, Go, Rust, Docker, databases and monorepos.
119
+ - `highhx init` with per-stack templates for config, environment, policies and workflows.
120
+ - Execution engine: streaming output, timeouts, cancellation, retries with exponential backoff, parallel execution, graceful shutdown.
121
+ - Workflow engine: dependency graphs, parallel stages, conditions, variables, outputs, approvals, retries, timeouts, reusable workflows, dry-run, validation and graphs.
122
+ - Risk classification and approvals with non-bypassable rules; project policies.
123
+ - Environment profiles with `.env` files, validation and masked secrets.
124
+ - Dependencies, testing (with coverage/changed/watch), building, artifacts and cleanup.
125
+ - Git helpers, semantic versioning, changelog generation from Conventional Commits, releases and publishing.
126
+ - Deployment targets (local, Docker, SSH, Kubernetes, Terraform, plugins) with preflight, health checks, state tracking and rollback.
127
+ - Local security checks: secrets, permissions, configuration, workflows, policies and dependency audits.
128
+ - Services, ports, Docker Compose and database (SQLite, PostgreSQL, MySQL) management.
129
+ - Plugins with manifests, declarative contributions and integrity-checked code.
130
+ - Execution history, redacted logs, tracing, reports, doctor, diagnose and repair.
131
+
132
+ ### Security
133
+
134
+ - 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.
135
+ - All output — including `--json` documents and captured command output — is redacted.
136
+ - Isolated plugin commands never receive environment-profile values.
137
+ - Values substituted into deploy commands are restricted to a safe character set.
138
+ - Hardened risk rules (wrapped shells, split `rm` flags, fork bombs, raw device writes, `find -delete`, `docker rm`, `shred`/`truncate`).
139
+ - Duplicate YAML keys are rejected.
140
+
141
+ ### Reliability
142
+
143
+ - Workflow step output is written to execution logs; retries, step transitions and approval decisions are logged.
144
+ - `--json` always emits exactly one JSON document.
145
+ - An unreadable state database is diagnosed and can be repaired (`highhx repair`).
146
+ - `mysqldump` runs with `--no-tablespaces`, so backups work without the PROCESS privilege.
147
+ - Global `--profile` was renamed `--config-profile` so it no longer collides with `env --profile`.
@@ -1,10 +1,61 @@
1
+ Metadata-Version: 2.5
2
+ Name: highhxcli
3
+ Version: 0.3.2
4
+ Summary: HighhX — the developer command center CLI, with HighhX Pro: an AI developer agent in your terminal.
5
+ Author: HighhX contributors
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Keywords: ai-agent,automation,cli,coding-agent,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: ai
24
+ Requires-Dist: anthropic>=1.0; extra == 'ai'
25
+ Requires-Dist: google-genai>=1.20; extra == 'ai'
26
+ Requires-Dist: openai>=1.40; extra == 'ai'
27
+ Provides-Extra: anthropic
28
+ Requires-Dist: anthropic>=1.0; extra == 'anthropic'
29
+ Provides-Extra: dev
30
+ Requires-Dist: anthropic>=1.0; extra == 'dev'
31
+ Requires-Dist: coverage[toml]>=7.4; extra == 'dev'
32
+ Requires-Dist: google-genai>=1.20; extra == 'dev'
33
+ Requires-Dist: mypy>=1.10; extra == 'dev'
34
+ Requires-Dist: openai>=1.40; extra == 'dev'
35
+ Requires-Dist: pytest>=8.0; extra == 'dev'
36
+ Requires-Dist: ruff>=0.5; extra == 'dev'
37
+ Requires-Dist: types-pyyaml; extra == 'dev'
38
+ Provides-Extra: gemini
39
+ Requires-Dist: google-genai>=1.20; extra == 'gemini'
40
+ Provides-Extra: openai
41
+ Requires-Dist: openai>=1.40; extra == 'openai'
42
+ Description-Content-Type: text/markdown
43
+
1
44
  # HighhX
2
45
 
3
- **HighhX is a local-first developer command center.** One CLI — `highhx` — detects
46
+ **HighhX is a developer command center for your terminal.** One CLI — `highhx` — detects
4
47
  your project, runs your workflows, manages environments, dependencies, tests,
5
48
  builds, git, releases, deployments, services and databases, and keeps a searchable
6
49
  history of everything it did. Every risky action is classified and needs approval.
7
50
 
51
+ | | |
52
+ |---|---|
53
+ | **HighhX Free** | Deterministic HighhX: the full developer CLI plus browser/desktop automation with known targets (`highhx computer`, `highhx do`). Local, no account, no AI. |
54
+ | **HighhX Pro** | Everything in Free plus `highhx agent` — an AI developer agent that plans, changes code, runs your tools, operates browsers and apps (AI computer use), recovers from failures and verifies the result. |
55
+
56
+ Free and Pro share one execution platform: the same tools, safety policy, confirmations,
57
+ verification and audit trail. The AI only chooses actions; it never gets its own way to run them.
58
+
8
59
  ```text
9
60
  $ highhx doctor
10
61
 
@@ -28,6 +79,7 @@ Suggested actions
28
79
  - [Why HighhX](#why-highhx)
29
80
  - [Installation](#installation)
30
81
  - [Quick start](#quick-start)
82
+ - [HighhX Pro: the AI developer agent](#highhx-pro-the-ai-developer-agent)
31
83
  - [Commands](#commands)
32
84
  - [Workflows](#workflows)
33
85
  - [Configuration](#configuration)
@@ -42,8 +94,10 @@ Most projects accumulate a pile of scripts, Makefile targets, README snippets an
42
94
  CI YAML that only half the team remembers. HighhX gives every project the same
43
95
  front door:
44
96
 
45
- - **Local-first and offline-first.** No cloud backend, no account, no API keys, no AI.
46
- Everything — history, logs, deployment state — lives in `.highhx/` on your machine.
97
+ - **Local-first CLI.** Every Free command works without an account or network.
98
+ History, logs and deployment state live in `.highhx/` on your machine.
99
+ - **An AI agent that uses your real tools (Pro).** `highhx agent` works through HighhX's
100
+ own commands and safety system — not a chatbot pasting shell snippets.
47
101
  - **Detects instead of asking.** Python (pip/uv/poetry/pdm/pipenv), Node (npm/pnpm/yarn/bun),
48
102
  React, Next.js, Flutter/Dart, Java (Maven/Gradle), C/C++ (CMake/Make), Go, Rust, Docker,
49
103
  common databases and monorepos — from real manifests and lockfiles, not file extensions.
@@ -105,12 +159,105 @@ highhx logs # output of the last execution (secrets redacted)
105
159
  └── logs/ # execution logs (git-ignored)
106
160
  ```
107
161
 
162
+ ## HighhX Pro: the AI developer agent
163
+
164
+ ```text
165
+ $ highhx agent
166
+
167
+ ▗█▖
168
+ ▐▀▌
169
+ ▗ ▄ ▖
170
+ ▗▚▐█▌▞▖
171
+ ▗▚█▐█▌█▞▖ HighhX v0.3.0
172
+ ▟█▐█▌█▙ AI Developer Agent · Pro
173
+ ▐▐█▌█▐█▌▌ ~/code/shop
174
+ █▗▜▌█▐▛▖█
175
+ █▐▙▘█▝▟▌█
176
+ ▐▐▜▌▄▐▛▌▌
177
+ ▗▝▐▐▌█▐▌▌▘▖
178
+ █▙▝█▌█▐█▘▟█
179
+ ▜▙▜█▖▘█▝▗█▛▟▛
180
+ ▀█▟▀ █ ▀▙█▀
181
+ ▀▌ █ ▐▀
182
+
183
+ Project shop
184
+ Stack Python, FastAPI
185
+ Branch main
186
+ Status clean
187
+ AI Connected HighhX (managed)
188
+
189
+ What would you like me to do? (/help for commands)
190
+
191
+ ❯ run all the tests and fix whatever fails
192
+
193
+ ╭─ Plan ───────────────────────────────────────────╮
194
+ │ 1. Run the test suite │
195
+ │ 2. Investigate the failures │
196
+ │ 3. Fix the root cause │
197
+ │ 4. Re-run tests, lint and type checks │
198
+ ╰─ Get the test suite green ───────────────────────╯
199
+ Proceed? [Y/n]
200
+
201
+ ✓ Run tests — 3 tests failing (4.1s)
202
+ ✓ Read src/shop/cart.py — 88 lines
203
+ ⚠ Action requires approval
204
+ Edit src/shop/cart.py (+2 -1)
205
+ …diff…
206
+ Proceed? [y/N/a=always this session] y
207
+ ✓ Edit src/shop/cart.py — +2 -1
208
+ ✓ Run tests — Tests passing — 48 passed (pytest) (4.3s)
209
+ ✓ Run checks — all checks passed
210
+
211
+ Fixed the discount rounding in `cart.total()` (it rounded before applying tax).
212
+ All 48 tests pass; lint and type checks are clean.
213
+
214
+ 4 steps · 1 file changed (/undo) · 38.2k tokens · 41s
215
+ ```
216
+
217
+ Ask for what you want in plain language — *explain how this project works*, *find and
218
+ fix the bugs*, *add authentication*, *find security issues*, *why is the application
219
+ crashing?*, *prepare this project for release*, *deploy this*. The agent inspects the
220
+ project, proposes a plan for multi-step work, uses HighhX's capabilities as tools
221
+ (code search and edits, tests, checks, fixers, builds, dependencies, git, security scans,
222
+ doctor/diagnose/repair, workflows, deploy and rollback), verifies what it did and
223
+ summarises it.
224
+
225
+ - **Same safety system.** Commands run through the HighhX engine: risk classification,
226
+ `policies.yaml`, approvals and history. File edits show a diff and ask (unless you
227
+ choose `--mode auto-edit`); pushes, deploys and rollbacks always ask; production
228
+ deploys need typed confirmation. The agent cannot leave the project, read secret files
229
+ or touch `.git/`. `--mode read-only` investigates without changing anything.
230
+ - **Slash commands.** `/help` `/status` `/plan` `/context` `/model` `/mode` `/history`
231
+ `/changes` `/undo` `/memory` `/usage` `/clear` `/quit`.
232
+ - **Sessions.** Saved per project: `highhx agent --continue`, `--resume ID`, `highhx agent sessions`.
233
+ - **Scriptable.** `highhx agent "…"` outside a terminal (or with `--json`) handles one request
234
+ and exits — `--yes --mode auto-edit` for unattended runs in CI.
235
+ - **Providers.** All Pro AI goes through the HighhX platform (authenticated, plan-checked,
236
+ metered); choose the upstream — Anthropic, OpenAI or Gemini — with `highhx account settings`
237
+ or `/model`. No provider key is needed on your machine.
238
+ - **Kill switch.** `highhx agent stop` (or Ctrl+C) cancels the model request, retries, running
239
+ commands and their child processes immediately.
240
+ - **Computer use.** The agent observes browsers and apps semantically and chooses among valid
241
+ actions; see [docs/computer-use.md](docs/computer-use.md).
242
+
243
+ ```bash
244
+ highhx login # browser sign-in (creates your account)
245
+ highhx account upgrade # HighhX Pro checkout
246
+ highhx agent # interactive
247
+ highhx agent "why is the application crashing?"
248
+ ```
249
+
250
+ Guides: [docs/agent.md](docs/agent.md) · [docs/computer-use.md](docs/computer-use.md) · [docs/platform.md](docs/platform.md).
251
+
108
252
  ## Commands
109
253
 
110
254
  Full reference with every option: [docs/commands.md](docs/commands.md).
111
255
 
112
256
  | Area | Commands |
113
257
  |---|---|
258
+ | HighhX Pro | `agent` `agent sessions` `agent models` `agent stop` |
259
+ | Automation (no AI) | `do` `computer status/open/observe/click/type/select/press/scroll/run` `computer browser start/stop` |
260
+ | Account | `login` `logout` `account` `account plans/usage/upgrade/billing/settings` |
114
261
  | Project | `init` `status` `info` `dev` `start` `stop` `restart` `check` |
115
262
  | Code & tasks | `run <workflow>` `exec <command>` `script <name>` `task <name>` `watch` `fix` |
116
263
  | Dependencies | `deps` `deps install` `deps update` `deps outdated` `deps audit` `deps clean` |
@@ -121,7 +268,7 @@ Full reference with every option: [docs/commands.md](docs/commands.md).
121
268
  | Security | `security` `security scan/secrets/deps/config/report` |
122
269
  | Containers & data | `docker up/down/logs` `services` `ports` `db status/migrate/seed/backup/restore` |
123
270
  | Workflows & automation | `workflow list/validate/create/graph` `schedule` `hook` `trigger` `watchers` |
124
- | Observability | `logs [--follow]` `history [id]` `report` `trace` |
271
+ | Observability | `logs [--follow]` `history [id]` `audit` `report` `trace` |
125
272
  | Extensibility & team | `plugin list/install/remove/update/search/trust` `config` `policy` `workspace` `profile` |
126
273
  | Diagnostics | `doctor` `diagnose` `repair` `debug` |
127
274
 
@@ -272,6 +419,10 @@ Details: [docs/security.md](docs/security.md).
272
419
  - **Secrets.** Secret values are never printed: `env` masks them, logs and history are
273
420
  redacted (known secret values plus token patterns), and `security secrets` reports
274
421
  file/line/type only. New `.env` files get owner-only permissions and are git-ignored.
422
+ - **The agent.** Uses the same engine, policies and approvals as you do, plus path
423
+ confinement, secret-file protection and redaction of everything sent to the model.
424
+ Agent actions have policy names (`agent:write`, `agent:exec`, `agent:deploy:<target>` …)
425
+ so `policies.yaml` can restrict or forbid them.
275
426
  - **No claims.** `highhx security` reports concrete findings from local checks. An empty
276
427
  report does not mean a project is secure, and HighhX never says it is.
277
428
 
@@ -280,12 +431,15 @@ Report vulnerabilities in HighhX itself as described in [SECURITY.md](SECURITY.m
280
431
  ## Development
281
432
 
282
433
  ```bash
283
- pip install -e ".[dev]"
284
- pytest # unit, integration, security and end-to-end tests
434
+ pip install -e ".[dev]" -e "./server[dev]"
435
+ pytest # CLI: unit, integration, security and end-to-end tests
436
+ (cd server && pytest) # platform API + live CLI ↔ platform integration tests
285
437
  ruff check . && ruff format --check .
286
438
  mypy # strict typing of src/highhx
287
439
  ```
288
440
 
441
+ The HighhX Platform backend lives in [`server/`](server/README.md).
442
+
289
443
  Architecture: [docs/architecture.md](docs/architecture.md) · Development guide:
290
444
  [docs/development.md](docs/development.md) · Troubleshooting: [docs/troubleshooting.md](docs/troubleshooting.md).
291
445
 
@@ -1,40 +1,18 @@
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
1
  # HighhX
32
2
 
33
- **HighhX is a local-first developer command center.** One CLI — `highhx` — detects
3
+ **HighhX is a developer command center for your terminal.** One CLI — `highhx` — detects
34
4
  your project, runs your workflows, manages environments, dependencies, tests,
35
5
  builds, git, releases, deployments, services and databases, and keeps a searchable
36
6
  history of everything it did. Every risky action is classified and needs approval.
37
7
 
8
+ | | |
9
+ |---|---|
10
+ | **HighhX Free** | Deterministic HighhX: the full developer CLI plus browser/desktop automation with known targets (`highhx computer`, `highhx do`). Local, no account, no AI. |
11
+ | **HighhX Pro** | Everything in Free plus `highhx agent` — an AI developer agent that plans, changes code, runs your tools, operates browsers and apps (AI computer use), recovers from failures and verifies the result. |
12
+
13
+ Free and Pro share one execution platform: the same tools, safety policy, confirmations,
14
+ verification and audit trail. The AI only chooses actions; it never gets its own way to run them.
15
+
38
16
  ```text
39
17
  $ highhx doctor
40
18
 
@@ -58,6 +36,7 @@ Suggested actions
58
36
  - [Why HighhX](#why-highhx)
59
37
  - [Installation](#installation)
60
38
  - [Quick start](#quick-start)
39
+ - [HighhX Pro: the AI developer agent](#highhx-pro-the-ai-developer-agent)
61
40
  - [Commands](#commands)
62
41
  - [Workflows](#workflows)
63
42
  - [Configuration](#configuration)
@@ -72,8 +51,10 @@ Most projects accumulate a pile of scripts, Makefile targets, README snippets an
72
51
  CI YAML that only half the team remembers. HighhX gives every project the same
73
52
  front door:
74
53
 
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.
54
+ - **Local-first CLI.** Every Free command works without an account or network.
55
+ History, logs and deployment state live in `.highhx/` on your machine.
56
+ - **An AI agent that uses your real tools (Pro).** `highhx agent` works through HighhX's
57
+ own commands and safety system — not a chatbot pasting shell snippets.
77
58
  - **Detects instead of asking.** Python (pip/uv/poetry/pdm/pipenv), Node (npm/pnpm/yarn/bun),
78
59
  React, Next.js, Flutter/Dart, Java (Maven/Gradle), C/C++ (CMake/Make), Go, Rust, Docker,
79
60
  common databases and monorepos — from real manifests and lockfiles, not file extensions.
@@ -135,12 +116,105 @@ highhx logs # output of the last execution (secrets redacted)
135
116
  └── logs/ # execution logs (git-ignored)
136
117
  ```
137
118
 
119
+ ## HighhX Pro: the AI developer agent
120
+
121
+ ```text
122
+ $ highhx agent
123
+
124
+ ▗█▖
125
+ ▐▀▌
126
+ ▗ ▄ ▖
127
+ ▗▚▐█▌▞▖
128
+ ▗▚█▐█▌█▞▖ HighhX v0.3.0
129
+ ▟█▐█▌█▙ AI Developer Agent · Pro
130
+ ▐▐█▌█▐█▌▌ ~/code/shop
131
+ █▗▜▌█▐▛▖█
132
+ █▐▙▘█▝▟▌█
133
+ ▐▐▜▌▄▐▛▌▌
134
+ ▗▝▐▐▌█▐▌▌▘▖
135
+ █▙▝█▌█▐█▘▟█
136
+ ▜▙▜█▖▘█▝▗█▛▟▛
137
+ ▀█▟▀ █ ▀▙█▀
138
+ ▀▌ █ ▐▀
139
+
140
+ Project shop
141
+ Stack Python, FastAPI
142
+ Branch main
143
+ Status clean
144
+ AI Connected HighhX (managed)
145
+
146
+ What would you like me to do? (/help for commands)
147
+
148
+ ❯ run all the tests and fix whatever fails
149
+
150
+ ╭─ Plan ───────────────────────────────────────────╮
151
+ │ 1. Run the test suite │
152
+ │ 2. Investigate the failures │
153
+ │ 3. Fix the root cause │
154
+ │ 4. Re-run tests, lint and type checks │
155
+ ╰─ Get the test suite green ───────────────────────╯
156
+ Proceed? [Y/n]
157
+
158
+ ✓ Run tests — 3 tests failing (4.1s)
159
+ ✓ Read src/shop/cart.py — 88 lines
160
+ ⚠ Action requires approval
161
+ Edit src/shop/cart.py (+2 -1)
162
+ …diff…
163
+ Proceed? [y/N/a=always this session] y
164
+ ✓ Edit src/shop/cart.py — +2 -1
165
+ ✓ Run tests — Tests passing — 48 passed (pytest) (4.3s)
166
+ ✓ Run checks — all checks passed
167
+
168
+ Fixed the discount rounding in `cart.total()` (it rounded before applying tax).
169
+ All 48 tests pass; lint and type checks are clean.
170
+
171
+ 4 steps · 1 file changed (/undo) · 38.2k tokens · 41s
172
+ ```
173
+
174
+ Ask for what you want in plain language — *explain how this project works*, *find and
175
+ fix the bugs*, *add authentication*, *find security issues*, *why is the application
176
+ crashing?*, *prepare this project for release*, *deploy this*. The agent inspects the
177
+ project, proposes a plan for multi-step work, uses HighhX's capabilities as tools
178
+ (code search and edits, tests, checks, fixers, builds, dependencies, git, security scans,
179
+ doctor/diagnose/repair, workflows, deploy and rollback), verifies what it did and
180
+ summarises it.
181
+
182
+ - **Same safety system.** Commands run through the HighhX engine: risk classification,
183
+ `policies.yaml`, approvals and history. File edits show a diff and ask (unless you
184
+ choose `--mode auto-edit`); pushes, deploys and rollbacks always ask; production
185
+ deploys need typed confirmation. The agent cannot leave the project, read secret files
186
+ or touch `.git/`. `--mode read-only` investigates without changing anything.
187
+ - **Slash commands.** `/help` `/status` `/plan` `/context` `/model` `/mode` `/history`
188
+ `/changes` `/undo` `/memory` `/usage` `/clear` `/quit`.
189
+ - **Sessions.** Saved per project: `highhx agent --continue`, `--resume ID`, `highhx agent sessions`.
190
+ - **Scriptable.** `highhx agent "…"` outside a terminal (or with `--json`) handles one request
191
+ and exits — `--yes --mode auto-edit` for unattended runs in CI.
192
+ - **Providers.** All Pro AI goes through the HighhX platform (authenticated, plan-checked,
193
+ metered); choose the upstream — Anthropic, OpenAI or Gemini — with `highhx account settings`
194
+ or `/model`. No provider key is needed on your machine.
195
+ - **Kill switch.** `highhx agent stop` (or Ctrl+C) cancels the model request, retries, running
196
+ commands and their child processes immediately.
197
+ - **Computer use.** The agent observes browsers and apps semantically and chooses among valid
198
+ actions; see [docs/computer-use.md](docs/computer-use.md).
199
+
200
+ ```bash
201
+ highhx login # browser sign-in (creates your account)
202
+ highhx account upgrade # HighhX Pro checkout
203
+ highhx agent # interactive
204
+ highhx agent "why is the application crashing?"
205
+ ```
206
+
207
+ Guides: [docs/agent.md](docs/agent.md) · [docs/computer-use.md](docs/computer-use.md) · [docs/platform.md](docs/platform.md).
208
+
138
209
  ## Commands
139
210
 
140
211
  Full reference with every option: [docs/commands.md](docs/commands.md).
141
212
 
142
213
  | Area | Commands |
143
214
  |---|---|
215
+ | HighhX Pro | `agent` `agent sessions` `agent models` `agent stop` |
216
+ | Automation (no AI) | `do` `computer status/open/observe/click/type/select/press/scroll/run` `computer browser start/stop` |
217
+ | Account | `login` `logout` `account` `account plans/usage/upgrade/billing/settings` |
144
218
  | Project | `init` `status` `info` `dev` `start` `stop` `restart` `check` |
145
219
  | Code & tasks | `run <workflow>` `exec <command>` `script <name>` `task <name>` `watch` `fix` |
146
220
  | Dependencies | `deps` `deps install` `deps update` `deps outdated` `deps audit` `deps clean` |
@@ -151,7 +225,7 @@ Full reference with every option: [docs/commands.md](docs/commands.md).
151
225
  | Security | `security` `security scan/secrets/deps/config/report` |
152
226
  | Containers & data | `docker up/down/logs` `services` `ports` `db status/migrate/seed/backup/restore` |
153
227
  | Workflows & automation | `workflow list/validate/create/graph` `schedule` `hook` `trigger` `watchers` |
154
- | Observability | `logs [--follow]` `history [id]` `report` `trace` |
228
+ | Observability | `logs [--follow]` `history [id]` `audit` `report` `trace` |
155
229
  | Extensibility & team | `plugin list/install/remove/update/search/trust` `config` `policy` `workspace` `profile` |
156
230
  | Diagnostics | `doctor` `diagnose` `repair` `debug` |
157
231
 
@@ -302,6 +376,10 @@ Details: [docs/security.md](docs/security.md).
302
376
  - **Secrets.** Secret values are never printed: `env` masks them, logs and history are
303
377
  redacted (known secret values plus token patterns), and `security secrets` reports
304
378
  file/line/type only. New `.env` files get owner-only permissions and are git-ignored.
379
+ - **The agent.** Uses the same engine, policies and approvals as you do, plus path
380
+ confinement, secret-file protection and redaction of everything sent to the model.
381
+ Agent actions have policy names (`agent:write`, `agent:exec`, `agent:deploy:<target>` …)
382
+ so `policies.yaml` can restrict or forbid them.
305
383
  - **No claims.** `highhx security` reports concrete findings from local checks. An empty
306
384
  report does not mean a project is secure, and HighhX never says it is.
307
385
 
@@ -310,12 +388,15 @@ Report vulnerabilities in HighhX itself as described in [SECURITY.md](SECURITY.m
310
388
  ## Development
311
389
 
312
390
  ```bash
313
- pip install -e ".[dev]"
314
- pytest # unit, integration, security and end-to-end tests
391
+ pip install -e ".[dev]" -e "./server[dev]"
392
+ pytest # CLI: unit, integration, security and end-to-end tests
393
+ (cd server && pytest) # platform API + live CLI ↔ platform integration tests
315
394
  ruff check . && ruff format --check .
316
395
  mypy # strict typing of src/highhx
317
396
  ```
318
397
 
398
+ The HighhX Platform backend lives in [`server/`](server/README.md).
399
+
319
400
  Architecture: [docs/architecture.md](docs/architecture.md) · Development guide:
320
401
  [docs/development.md](docs/development.md) · Troubleshooting: [docs/troubleshooting.md](docs/troubleshooting.md).
321
402