hal0ai 0.9.8__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 (1271) hide show
  1. hal0ai-0.9.8/.claude/.wip.lock +0 -0
  2. hal0ai-0.9.8/.claude/agents/docs-lead.md +43 -0
  3. hal0ai-0.9.8/.claude/agents/docs-verifier.md +25 -0
  4. hal0ai-0.9.8/.claude/agents/docs-writer.md +30 -0
  5. hal0ai-0.9.8/.claude/settings.json +24 -0
  6. hal0ai-0.9.8/.github/workflows/agent-shim-smoke.yml +170 -0
  7. hal0ai-0.9.8/.github/workflows/bootstrap-parity.yml +74 -0
  8. hal0ai-0.9.8/.github/workflows/ci.yml +100 -0
  9. hal0ai-0.9.8/.github/workflows/hermes-sdk-diff.yml +216 -0
  10. hal0ai-0.9.8/.github/workflows/nightly.yml +139 -0
  11. hal0ai-0.9.8/.github/workflows/playwright.yml +79 -0
  12. hal0ai-0.9.8/.github/workflows/release.yml +587 -0
  13. hal0ai-0.9.8/.github/workflows/toolbox.yml +170 -0
  14. hal0ai-0.9.8/.gitignore +129 -0
  15. hal0ai-0.9.8/.graphifyignore +5 -0
  16. hal0ai-0.9.8/AGENTS.md +199 -0
  17. hal0ai-0.9.8/ARCHITECTURE.md +326 -0
  18. hal0ai-0.9.8/CHANGELOG.md +2031 -0
  19. hal0ai-0.9.8/CLAUDE.md +9 -0
  20. hal0ai-0.9.8/CODE_OF_CONDUCT.md +85 -0
  21. hal0ai-0.9.8/CONTEXT.md +449 -0
  22. hal0ai-0.9.8/CONTRIBUTING.md +201 -0
  23. hal0ai-0.9.8/LICENSE +201 -0
  24. hal0ai-0.9.8/Makefile +137 -0
  25. hal0ai-0.9.8/PKG-INFO +543 -0
  26. hal0ai-0.9.8/PLAN.md +1143 -0
  27. hal0ai-0.9.8/README.md +499 -0
  28. hal0ai-0.9.8/SECURITY.md +38 -0
  29. hal0ai-0.9.8/dashboard-overview.png +0 -0
  30. hal0ai-0.9.8/dashboard-preview.png +0 -0
  31. hal0ai-0.9.8/docs/README.md +30 -0
  32. hal0ai-0.9.8/docs/concepts/agents.mdx +187 -0
  33. hal0ai-0.9.8/docs/concepts/architecture.mdx +201 -0
  34. hal0ai-0.9.8/docs/concepts/capabilities-and-profiles.mdx +303 -0
  35. hal0ai-0.9.8/docs/concepts/memory.mdx +114 -0
  36. hal0ai-0.9.8/docs/concepts/security.mdx +150 -0
  37. hal0ai-0.9.8/docs/concepts/slots.mdx +267 -0
  38. hal0ai-0.9.8/docs/concepts/stacks.mdx +156 -0
  39. hal0ai-0.9.8/docs/concepts/strix-halo.mdx +126 -0
  40. hal0ai-0.9.8/docs/design/container-image-overhaul.md +178 -0
  41. hal0ai-0.9.8/docs/design/toolbox-repo-consolidation.md +172 -0
  42. hal0ai-0.9.8/docs/getting-started/baremetal-ubuntu.mdx +147 -0
  43. hal0ai-0.9.8/docs/getting-started/first-chat.mdx +142 -0
  44. hal0ai-0.9.8/docs/getting-started/first-model.mdx +174 -0
  45. hal0ai-0.9.8/docs/getting-started/index.mdx +87 -0
  46. hal0ai-0.9.8/docs/getting-started/install.mdx +195 -0
  47. hal0ai-0.9.8/docs/getting-started/proxmox-lxc.mdx +359 -0
  48. hal0ai-0.9.8/docs/getting-started/setup.mdx +125 -0
  49. hal0ai-0.9.8/docs/getting-started/wsl.mdx +115 -0
  50. hal0ai-0.9.8/docs/guides/benchmarks.mdx +75 -0
  51. hal0ai-0.9.8/docs/guides/choose-models.mdx +182 -0
  52. hal0ai-0.9.8/docs/guides/configure.mdx +165 -0
  53. hal0ai-0.9.8/docs/guides/connect-external-providers.mdx +279 -0
  54. hal0ai-0.9.8/docs/guides/connect-mcp.mdx +156 -0
  55. hal0ai-0.9.8/docs/guides/enable-memory.mdx +169 -0
  56. hal0ai-0.9.8/docs/guides/generate-images.mdx +234 -0
  57. hal0ai-0.9.8/docs/guides/honcho-memory.mdx +232 -0
  58. hal0ai-0.9.8/docs/guides/logs-and-activity.mdx +171 -0
  59. hal0ai-0.9.8/docs/guides/manage-slots.mdx +431 -0
  60. hal0ai-0.9.8/docs/guides/obtain-models.mdx +541 -0
  61. hal0ai-0.9.8/docs/guides/pull-and-register-models.mdx +285 -0
  62. hal0ai-0.9.8/docs/guides/run-agents.mdx +240 -0
  63. hal0ai-0.9.8/docs/guides/update-and-rollback.mdx +208 -0
  64. hal0ai-0.9.8/docs/guides/voice-stt-tts.mdx +178 -0
  65. hal0ai-0.9.8/docs/operate/auth.mdx +185 -0
  66. hal0ai-0.9.8/docs/operate/services.mdx +117 -0
  67. hal0ai-0.9.8/docs/reference/api/openai-compat.mdx +176 -0
  68. hal0ai-0.9.8/docs/reference/api/rest-api.mdx +155 -0
  69. hal0ai-0.9.8/docs/reference/api/slot-as-model.mdx +115 -0
  70. hal0ai-0.9.8/docs/reference/api/streaming.mdx +105 -0
  71. hal0ai-0.9.8/docs/reference/cli.mdx +476 -0
  72. hal0ai-0.9.8/docs/reference/config-schema.mdx +373 -0
  73. hal0ai-0.9.8/docs/reference/env-vars.mdx +131 -0
  74. hal0ai-0.9.8/docs/reference/hardware-matrix.mdx +106 -0
  75. hal0ai-0.9.8/docs/reference/mcp-tools.mdx +143 -0
  76. hal0ai-0.9.8/docs/reference/model-roster-benchmark.mdx +74 -0
  77. hal0ai-0.9.8/docs/reference/paths-and-files.mdx +133 -0
  78. hal0ai-0.9.8/docs/reference/providers-profiles-devices.mdx +260 -0
  79. hal0ai-0.9.8/docs/reference/slot-lifecycle.mdx +196 -0
  80. hal0ai-0.9.8/docs/superpowers/plans/2026-07-08-settings-reorg-plan.md +794 -0
  81. hal0ai-0.9.8/docs/superpowers/specs/2026-07-06-upstream-model-filters.md +53 -0
  82. hal0ai-0.9.8/docs/superpowers/specs/2026-07-08-downloads-pane-design.md +189 -0
  83. hal0ai-0.9.8/docs/superpowers/specs/2026-07-08-settings-reorg-design.md +144 -0
  84. hal0ai-0.9.8/docs/superpowers/specs/2026-07-11-hal0-platform-cron-design.md +376 -0
  85. hal0ai-0.9.8/handoffs/bench-profile-matrix-local-session-2026-07-04.md +152 -0
  86. hal0ai-0.9.8/handoffs/benchmark-system-design-2026-07-05.md +550 -0
  87. hal0ai-0.9.8/handoffs/board-hermes-kanban-analysis-2026-07-04.md +212 -0
  88. hal0ai-0.9.8/handoffs/concurrency-batching-optimization-plan-2026-07-05.md +326 -0
  89. hal0ai-0.9.8/handoffs/hal0-setup-answers-spec-2026-07-05.md +232 -0
  90. hal0ai-0.9.8/handoffs/install-setup-update-fixes-plan-2026-07-10.md +118 -0
  91. hal0ai-0.9.8/handoffs/installer-setup-plan-2026-07-05.md +71 -0
  92. hal0ai-0.9.8/handoffs/installer-setup-research-2026-07-05.md +1718 -0
  93. hal0ai-0.9.8/handoffs/llamacpp-strix-halo-profile-consolidation-2026-07-04.md +362 -0
  94. hal0ai-0.9.8/handoffs/model-pipeline-finish-out-2026-07-05.md +130 -0
  95. hal0ai-0.9.8/handoffs/model-pipeline-fix-plan-2026-07-04.md +374 -0
  96. hal0ai-0.9.8/handoffs/onnx-strix-halo-npu-research-2026-07-04.md +228 -0
  97. hal0ai-0.9.8/handoffs/platform-review-2026-07-03.md +436 -0
  98. hal0ai-0.9.8/handoffs/qwen3tts-standalone-to-slot-migration-2026-06-28.md +251 -0
  99. hal0ai-0.9.8/handoffs/rocmfpx-bench-handoff-next-2026-07-05.md +193 -0
  100. hal0ai-0.9.8/handoffs/rocmfpx-bench-results-2026-07-05.md +91 -0
  101. hal0ai-0.9.8/handoffs/rocmfpx-runner-bench-runbook-2026-07-05.md +291 -0
  102. hal0ai-0.9.8/handoffs/upstream-controls-plan-2026-07-06.md +106 -0
  103. hal0ai-0.9.8/installer/README.md +271 -0
  104. hal0ai-0.9.8/installer/agent-skills/hal0-bench/SKILL.md +85 -0
  105. hal0ai-0.9.8/installer/agent-skills/hal0-bench/references/seam.md +53 -0
  106. hal0ai-0.9.8/installer/agent-skills/hal0-bench-autopilot/SKILL.md +53 -0
  107. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/SKILL.md +133 -0
  108. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/references/presets.md +69 -0
  109. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/scripts/rocmfpx-build.sh +75 -0
  110. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/scripts/rocmfpx-env.sh +113 -0
  111. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/scripts/rocmfpx-pipeline.sh +29 -0
  112. hal0ai-0.9.8/installer/agent-skills/hal0-quantize/scripts/rocmfpx-quantize.sh +84 -0
  113. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/SKILL.md +217 -0
  114. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/dashboard-permission-mismatch.md +68 -0
  115. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/dashboard-plugin-entry-mismatch.md +130 -0
  116. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/dashboard-plugin-js-loading.md +140 -0
  117. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/gateway-connectivity-quirks.md +59 -0
  118. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/hal0-codebase-map.md +141 -0
  119. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/hermes-gateway-platform-tokens.md +139 -0
  120. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/references/mcp-tool-quirks.md +93 -0
  121. hal0ai-0.9.8/installer/agent-skills/hal0-service-management/scripts/check-service-env.sh +130 -0
  122. hal0ai-0.9.8/installer/agent-skills/hal0-tune/SKILL.md +117 -0
  123. hal0ai-0.9.8/installer/agents/hermes/hooks/inject-system-state.sh +30 -0
  124. hal0ai-0.9.8/installer/agents/hermes/plugins/hal0-memory/__init__.py +33 -0
  125. hal0ai-0.9.8/installer/agents/hermes/plugins/hal0-memory/_client.py +179 -0
  126. hal0ai-0.9.8/installer/agents/hermes/plugins/hal0-memory/plugin.yaml +10 -0
  127. hal0ai-0.9.8/installer/agents/hermes/plugins/hal0-memory/provider.py +294 -0
  128. hal0ai-0.9.8/installer/agents/hermes/requirements.txt +27 -0
  129. hal0ai-0.9.8/installer/agents/hermes-prereqs.sh +86 -0
  130. hal0ai-0.9.8/installer/agents/opencode.sh +149 -0
  131. hal0ai-0.9.8/installer/agents/pi-coder.sh +115 -0
  132. hal0ai-0.9.8/installer/agents/turnstone.sh +107 -0
  133. hal0ai-0.9.8/installer/bench/README.md +80 -0
  134. hal0ai-0.9.8/installer/bench/config.sh +88 -0
  135. hal0ai-0.9.8/installer/bench/generate_results_json.py +416 -0
  136. hal0ai-0.9.8/installer/bench/profile-matrix.sh +186 -0
  137. hal0ai-0.9.8/installer/bench/run_benchmarks.sh +219 -0
  138. hal0ai-0.9.8/installer/bench/server_ab.py +626 -0
  139. hal0ai-0.9.8/installer/bench/suites/concurrency.toml +30 -0
  140. hal0ai-0.9.8/installer/bench/suites/lane-matrix.toml +36 -0
  141. hal0ai-0.9.8/installer/bench/suites/roster.toml +25 -0
  142. hal0ai-0.9.8/installer/bench/suites/smoke.toml +43 -0
  143. hal0ai-0.9.8/installer/bench/window.toml +36 -0
  144. hal0ai-0.9.8/installer/bootstrap.sh +267 -0
  145. hal0ai-0.9.8/installer/comfyui/custom_nodes/hal0_gpu_gate.py +169 -0
  146. hal0ai-0.9.8/installer/comfyui/extra_model_paths.yaml +15 -0
  147. hal0ai-0.9.8/installer/comfyui/scripts/get_esrgan.sh +86 -0
  148. hal0ai-0.9.8/installer/comfyui/scripts/get_hunyuan15.sh +153 -0
  149. hal0ai-0.9.8/installer/comfyui/scripts/get_ltx2.sh +124 -0
  150. hal0ai-0.9.8/installer/comfyui/scripts/get_qwen_image.sh +115 -0
  151. hal0ai-0.9.8/installer/comfyui/scripts/get_sdxl.sh +103 -0
  152. hal0ai-0.9.8/installer/comfyui/scripts/get_wan22.sh +144 -0
  153. hal0ai-0.9.8/installer/comfyui/scripts/set_extra_paths.sh +28 -0
  154. hal0ai-0.9.8/installer/comfyui/workflows/ESRGAN-4x-Upscale.json +49 -0
  155. hal0ai-0.9.8/installer/comfyui/workflows/Hunyuan-Video-1.5_720p_i2v-4-step-lora.json +283 -0
  156. hal0ai-0.9.8/installer/comfyui/workflows/Hunyuan-Video-1.5_720p_t2v-4-step-lora.json +245 -0
  157. hal0ai-0.9.8/installer/comfyui/workflows/LTX2-I2V-BF16.json +618 -0
  158. hal0ai-0.9.8/installer/comfyui/workflows/LTX2-T2V-BF16.json +535 -0
  159. hal0ai-0.9.8/installer/comfyui/workflows/Qwen-Image-2512-BF16-20-Steps.json +141 -0
  160. hal0ai-0.9.8/installer/comfyui/workflows/Qwen-Image-2512-BF16-4-Step-LoRA.json +155 -0
  161. hal0ai-0.9.8/installer/comfyui/workflows/Qwen-Image-Edit-2511-BF16-20-Steps.json +225 -0
  162. hal0ai-0.9.8/installer/comfyui/workflows/Qwen-Image-Edit-2511-BF16-4-Step-LoRA.json +239 -0
  163. hal0ai-0.9.8/installer/comfyui/workflows/SDXL-Lightning-8step.json +135 -0
  164. hal0ai-0.9.8/installer/comfyui/workflows/Wan2.2-I2V-A14B-4steps-lora-rank64-Seko-V1-FP16.json +270 -0
  165. hal0ai-0.9.8/installer/comfyui/workflows/Wan2.2-T2V-A14B-FP16-4steps-lora-rank64-Seko-V2.json +244 -0
  166. hal0ai-0.9.8/installer/etc-hal0/profiles.toml +33 -0
  167. hal0ai-0.9.8/installer/etc-hal0/slots/agent.toml +25 -0
  168. hal0ai-0.9.8/installer/etc-hal0/slots/brain.toml +33 -0
  169. hal0ai-0.9.8/installer/etc-hal0/slots/flm.toml +26 -0
  170. hal0ai-0.9.8/installer/etc-hal0/slots/img.toml +26 -0
  171. hal0ai-0.9.8/installer/etc-hal0/slots/qwen3tts.toml +17 -0
  172. hal0ai-0.9.8/installer/etc-hal0/slots/rerank.toml +21 -0
  173. hal0ai-0.9.8/installer/etc-hal0/slots/tts.toml +12 -0
  174. hal0ai-0.9.8/installer/etc-hal0/slots/utility.toml +25 -0
  175. hal0ai-0.9.8/installer/honcho/README.md +39 -0
  176. hal0ai-0.9.8/installer/honcho/docker-compose.yml +148 -0
  177. hal0ai-0.9.8/installer/install.sh +2386 -0
  178. hal0ai-0.9.8/installer/lib/distro.sh +119 -0
  179. hal0ai-0.9.8/installer/lib/preflight.sh +982 -0
  180. hal0ai-0.9.8/installer/lib/run-as-hal0.sh +60 -0
  181. hal0ai-0.9.8/installer/lib/ui.sh +319 -0
  182. hal0ai-0.9.8/installer/manifests/omni/LMX-Omni-52B-Halo.json +50 -0
  183. hal0ai-0.9.8/installer/manifests/omni/hal0-default.json +50 -0
  184. hal0ai-0.9.8/installer/manifests/omni/hal0-lite.json +28 -0
  185. hal0ai-0.9.8/installer/manifests/omni/hal0-max.json +70 -0
  186. hal0ai-0.9.8/installer/manifests/omni/hal0-pro.json +70 -0
  187. hal0ai-0.9.8/installer/systemd/hal0-agent@.service +107 -0
  188. hal0ai-0.9.8/installer/systemd/hal0-agent@hermes.service.d/override.conf +47 -0
  189. hal0ai-0.9.8/installer/systemd/hal0-agent@turnstone.service.d/override.conf +36 -0
  190. hal0ai-0.9.8/installer/systemd/hal0-bench-worker.service +38 -0
  191. hal0ai-0.9.8/installer/systemd/hal0-bench.service +44 -0
  192. hal0ai-0.9.8/installer/systemd/hal0-bench.timer +10 -0
  193. hal0ai-0.9.8/installer/systemd/hal0-honcho-sync.service +8 -0
  194. hal0ai-0.9.8/installer/systemd/hal0-honcho-sync.timer +9 -0
  195. hal0ai-0.9.8/installer/systemd/hal0-honcho.service +28 -0
  196. hal0ai-0.9.8/installer/systemd/hindsight-api.service +86 -0
  197. hal0ai-0.9.8/installer/uninstall.sh +662 -0
  198. hal0ai-0.9.8/installer/wrappers/hal0-agentenv +99 -0
  199. hal0ai-0.9.8/installer/wrappers/hal0-benchctl +183 -0
  200. hal0ai-0.9.8/installer/wrappers/hal0-hermes +58 -0
  201. hal0ai-0.9.8/installer/wrappers/hermes +88 -0
  202. hal0ai-0.9.8/manifest.json +69 -0
  203. hal0ai-0.9.8/oom +0 -0
  204. hal0ai-0.9.8/packaging/proxmox/hal0-test-template/README.md +61 -0
  205. hal0ai-0.9.8/packaging/proxmox/hal0-test-template/hal0-test-ready.service +15 -0
  206. hal0ai-0.9.8/packaging/proxmox/hal0-test-template/provision.sh +64 -0
  207. hal0ai-0.9.8/packaging/sudoers/hal0-agentenv +21 -0
  208. hal0ai-0.9.8/packaging/sudoers/hal0-benchctl +18 -0
  209. hal0ai-0.9.8/packaging/systemd/hal0-openwebui.service +69 -0
  210. hal0ai-0.9.8/packaging/systemd/hal0-podman-forward.service +39 -0
  211. hal0ai-0.9.8/packaging/toolbox/.dockerignore +23 -0
  212. hal0ai-0.9.8/packaging/toolbox/cpu.Dockerfile +151 -0
  213. hal0ai-0.9.8/packaging/toolbox/flm.Dockerfile +264 -0
  214. hal0ai-0.9.8/packaging/toolbox/kokoro/kokoro_server.py +273 -0
  215. hal0ai-0.9.8/packaging/toolbox/moonshine/moonshine_server.py +451 -0
  216. hal0ai-0.9.8/packaging/toolbox/qwen3tts/qwen3tts_server.py +289 -0
  217. hal0ai-0.9.8/packaging/toolbox/qwen3tts.Dockerfile +60 -0
  218. hal0ai-0.9.8/pyproject.toml +160 -0
  219. hal0ai-0.9.8/scripts/check-bootstrap-parity.sh +96 -0
  220. hal0ai-0.9.8/scripts/deploy.sh +229 -0
  221. hal0ai-0.9.8/scripts/dev-bootstrap.sh +173 -0
  222. hal0ai-0.9.8/scripts/fork-pi-mono.sh +73 -0
  223. hal0ai-0.9.8/scripts/fresh-test-ct.sh +151 -0
  224. hal0ai-0.9.8/scripts/gen_release_notes.py +114 -0
  225. hal0ai-0.9.8/scripts/harness-report.py +114 -0
  226. hal0ai-0.9.8/scripts/harness.sh +145 -0
  227. hal0ai-0.9.8/scripts/hermes-sdk-diff.sh +237 -0
  228. hal0ai-0.9.8/scripts/migrate-haloai.py +441 -0
  229. hal0ai-0.9.8/scripts/migrate-qwen3tts-to-slot.sh +359 -0
  230. hal0ai-0.9.8/scripts/prototype_ttft/NOTES.md +50 -0
  231. hal0ai-0.9.8/scripts/prototype_ttft/README.md +64 -0
  232. hal0ai-0.9.8/scripts/prototype_ttft/live_probe.py +126 -0
  233. hal0ai-0.9.8/scripts/prototype_ttft/metrics_core.py +121 -0
  234. hal0ai-0.9.8/scripts/prototype_ttft/tui.py +183 -0
  235. hal0ai-0.9.8/scripts/proxmox-ve/README.md +86 -0
  236. hal0ai-0.9.8/scripts/proxmox-ve/hal0.sh +268 -0
  237. hal0ai-0.9.8/scripts/push-dev.sh +281 -0
  238. hal0ai-0.9.8/scripts/register_mnt_ai_models.py +422 -0
  239. hal0ai-0.9.8/scripts/release-check.sh +226 -0
  240. hal0ai-0.9.8/scripts/release-prototype/RELEASE_PIPELINE_NOTES.md +118 -0
  241. hal0ai-0.9.8/scripts/release-prototype/verify-roundtrip.sh +256 -0
  242. hal0ai-0.9.8/scripts/release-test-report.py +96 -0
  243. hal0ai-0.9.8/scripts/release-test.sh +357 -0
  244. hal0ai-0.9.8/scripts/smoke-opencode.sh +210 -0
  245. hal0ai-0.9.8/scripts/smoke-pi-coder.sh +229 -0
  246. hal0ai-0.9.8/scripts/update-toolbox-digests.sh +190 -0
  247. hal0ai-0.9.8/src/hal0/__init__.py +18 -0
  248. hal0ai-0.9.8/src/hal0/activity/__init__.py +433 -0
  249. hal0ai-0.9.8/src/hal0/agents/__init__.py +31 -0
  250. hal0ai-0.9.8/src/hal0/agents/budget.py +565 -0
  251. hal0ai-0.9.8/src/hal0/agents/hermes/__init__.py +16 -0
  252. hal0ai-0.9.8/src/hal0/agents/hermes/driver.py +400 -0
  253. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/__init__.py +6 -0
  254. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/memory_hindsight/README.md +80 -0
  255. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/memory_hindsight/__init__.py +33 -0
  256. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/memory_hindsight/_client.py +179 -0
  257. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/memory_hindsight/plugin.yaml +10 -0
  258. hal0ai-0.9.8/src/hal0/agents/hermes/plugins/memory_hindsight/provider.py +294 -0
  259. hal0ai-0.9.8/src/hal0/agents/hermes_provision.py +5314 -0
  260. hal0ai-0.9.8/src/hal0/agents/hermes_refresh.py +32 -0
  261. hal0ai-0.9.8/src/hal0/agents/hermes_templates/AGENTS.md.j2 +61 -0
  262. hal0ai-0.9.8/src/hal0/agents/hermes_templates/HERMES.md.j2 +44 -0
  263. hal0ai-0.9.8/src/hal0/agents/hermes_templates/MCP-CLIENTS.md.j2 +93 -0
  264. hal0ai-0.9.8/src/hal0/agents/hermes_templates/SOUL.md.j2 +44 -0
  265. hal0ai-0.9.8/src/hal0/agents/hermes_templates/STATE.md.j2 +28 -0
  266. hal0ai-0.9.8/src/hal0/agents/manager.py +675 -0
  267. hal0ai-0.9.8/src/hal0/agents/mcp_client.py +282 -0
  268. hal0ai-0.9.8/src/hal0/agents/opencode/__init__.py +7 -0
  269. hal0ai-0.9.8/src/hal0/agents/opencode/driver.py +164 -0
  270. hal0ai-0.9.8/src/hal0/agents/persona.py +94 -0
  271. hal0ai-0.9.8/src/hal0/agents/personas.py +625 -0
  272. hal0ai-0.9.8/src/hal0/agents/pi_coder/__init__.py +7 -0
  273. hal0ai-0.9.8/src/hal0/agents/pi_coder/driver.py +324 -0
  274. hal0ai-0.9.8/src/hal0/agents/pi_coder/plugins/hal0-memory/index.ts +582 -0
  275. hal0ai-0.9.8/src/hal0/agents/pi_coder/plugins/hal0-provider/index.ts +156 -0
  276. hal0ai-0.9.8/src/hal0/agents/pi_coder/themes/hal0.json +58 -0
  277. hal0ai-0.9.8/src/hal0/agents/provision_engine.py +445 -0
  278. hal0ai-0.9.8/src/hal0/agents/turnstone/__init__.py +7 -0
  279. hal0ai-0.9.8/src/hal0/agents/turnstone/driver.py +197 -0
  280. hal0ai-0.9.8/src/hal0/agents/turnstone_provision.py +871 -0
  281. hal0ai-0.9.8/src/hal0/api/__init__.py +1739 -0
  282. hal0ai-0.9.8/src/hal0/api/_audit.py +74 -0
  283. hal0ai-0.9.8/src/hal0/api/_env_store.py +173 -0
  284. hal0ai-0.9.8/src/hal0/api/_redact.py +101 -0
  285. hal0ai-0.9.8/src/hal0/api/_settings_apply.py +310 -0
  286. hal0ai-0.9.8/src/hal0/api/agents/__init__.py +1 -0
  287. hal0ai-0.9.8/src/hal0/api/agents/_auth.py +242 -0
  288. hal0ai-0.9.8/src/hal0/api/agents/budget.py +371 -0
  289. hal0ai-0.9.8/src/hal0/api/agents/chat_proxy.py +572 -0
  290. hal0ai-0.9.8/src/hal0/api/agents/memory_stats.py +232 -0
  291. hal0ai-0.9.8/src/hal0/api/agents/personas.py +414 -0
  292. hal0ai-0.9.8/src/hal0/api/agents/restart.py +262 -0
  293. hal0ai-0.9.8/src/hal0/api/deps.py +73 -0
  294. hal0ai-0.9.8/src/hal0/api/image_cache.py +176 -0
  295. hal0ai-0.9.8/src/hal0/api/mcp_mount.py +291 -0
  296. hal0ai-0.9.8/src/hal0/api/middleware/__init__.py +0 -0
  297. hal0ai-0.9.8/src/hal0/api/middleware/error_codes.py +142 -0
  298. hal0ai-0.9.8/src/hal0/api/middleware/log_scrub.py +91 -0
  299. hal0ai-0.9.8/src/hal0/api/middleware/request_id.py +31 -0
  300. hal0ai-0.9.8/src/hal0/api/openrouter/__init__.py +14 -0
  301. hal0ai-0.9.8/src/hal0/api/openrouter/_loopback.py +86 -0
  302. hal0ai-0.9.8/src/hal0/api/openrouter/auth.py +47 -0
  303. hal0ai-0.9.8/src/hal0/api/plugins/__init__.py +28 -0
  304. hal0ai-0.9.8/src/hal0/api/plugins/manifest_proxy.py +600 -0
  305. hal0ai-0.9.8/src/hal0/api/routes/__init__.py +0 -0
  306. hal0ai-0.9.8/src/hal0/api/routes/_memory_subgraph.py +156 -0
  307. hal0ai-0.9.8/src/hal0/api/routes/activity.py +217 -0
  308. hal0ai-0.9.8/src/hal0/api/routes/agents.py +321 -0
  309. hal0ai-0.9.8/src/hal0/api/routes/approvals.py +200 -0
  310. hal0ai-0.9.8/src/hal0/api/routes/backends.py +455 -0
  311. hal0ai-0.9.8/src/hal0/api/routes/benchmarks.py +480 -0
  312. hal0ai-0.9.8/src/hal0/api/routes/board.py +383 -0
  313. hal0ai-0.9.8/src/hal0/api/routes/board_chat.py +1327 -0
  314. hal0ai-0.9.8/src/hal0/api/routes/board_ws.py +177 -0
  315. hal0ai-0.9.8/src/hal0/api/routes/capabilities.py +105 -0
  316. hal0ai-0.9.8/src/hal0/api/routes/chat_templates.py +141 -0
  317. hal0ai-0.9.8/src/hal0/api/routes/comfyui.py +951 -0
  318. hal0ai-0.9.8/src/hal0/api/routes/config.py +328 -0
  319. hal0ai-0.9.8/src/hal0/api/routes/dashboard_layout.py +168 -0
  320. hal0ai-0.9.8/src/hal0/api/routes/events.py +207 -0
  321. hal0ai-0.9.8/src/hal0/api/routes/hardware.py +671 -0
  322. hal0ai-0.9.8/src/hal0/api/routes/health.py +299 -0
  323. hal0ai-0.9.8/src/hal0/api/routes/hf.py +195 -0
  324. hal0ai-0.9.8/src/hal0/api/routes/images.py +53 -0
  325. hal0ai-0.9.8/src/hal0/api/routes/installer.py +696 -0
  326. hal0ai-0.9.8/src/hal0/api/routes/journal.py +320 -0
  327. hal0ai-0.9.8/src/hal0/api/routes/logs.py +250 -0
  328. hal0ai-0.9.8/src/hal0/api/routes/mcp.py +895 -0
  329. hal0ai-0.9.8/src/hal0/api/routes/memory.py +1205 -0
  330. hal0ai-0.9.8/src/hal0/api/routes/memory_admin.py +674 -0
  331. hal0ai-0.9.8/src/hal0/api/routes/meta.py +92 -0
  332. hal0ai-0.9.8/src/hal0/api/routes/models.py +2509 -0
  333. hal0ai-0.9.8/src/hal0/api/routes/npu.py +407 -0
  334. hal0ai-0.9.8/src/hal0/api/routes/ports.py +46 -0
  335. hal0ai-0.9.8/src/hal0/api/routes/power.py +138 -0
  336. hal0ai-0.9.8/src/hal0/api/routes/profiles.py +329 -0
  337. hal0ai-0.9.8/src/hal0/api/routes/providers.py +638 -0
  338. hal0ai-0.9.8/src/hal0/api/routes/proxmox.py +227 -0
  339. hal0ai-0.9.8/src/hal0/api/routes/secrets.py +243 -0
  340. hal0ai-0.9.8/src/hal0/api/routes/services.py +285 -0
  341. hal0ai-0.9.8/src/hal0/api/routes/services_health.py +276 -0
  342. hal0ai-0.9.8/src/hal0/api/routes/settings.py +564 -0
  343. hal0ai-0.9.8/src/hal0/api/routes/slots.py +1846 -0
  344. hal0ai-0.9.8/src/hal0/api/routes/stacks.py +547 -0
  345. hal0ai-0.9.8/src/hal0/api/routes/throughput.py +154 -0
  346. hal0ai-0.9.8/src/hal0/api/routes/updater.py +963 -0
  347. hal0ai-0.9.8/src/hal0/api/routes/v1.py +1542 -0
  348. hal0ai-0.9.8/src/hal0/bench/__init__.py +20 -0
  349. hal0ai-0.9.8/src/hal0/bench/cli.py +1034 -0
  350. hal0ai-0.9.8/src/hal0/bench/control.py +127 -0
  351. hal0ai-0.9.8/src/hal0/bench/evalrun.py +516 -0
  352. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/cipher-chain/README.md +2 -0
  353. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/cipher-chain/secret.txt +1 -0
  354. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/codebase-combine/README.md +2 -0
  355. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/codebase-combine/lib/util.py +5 -0
  356. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/codebase-combine/src/config.py +5 -0
  357. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/dep-trace/a.py +8 -0
  358. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/dep-trace/keys.py +3 -0
  359. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/dep-trace/registry.json +1 -0
  360. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/deep/nested/license.conf +1 -0
  361. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/deep/readme.txt +1 -0
  362. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/mod_1.py +2 -0
  363. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/mod_2.py +2 -0
  364. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/mod_3.py +2 -0
  365. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/grep-hunt/pods.yaml +3 -0
  366. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/loop-aggregate/notes.md +3 -0
  367. hal0ai-0.9.8/src/hal0/bench/evals/agentic/fixtures/loop-aggregate/orders.csv +8 -0
  368. hal0ai-0.9.8/src/hal0/bench/parsers.py +250 -0
  369. hal0ai-0.9.8/src/hal0/bench/planner.py +409 -0
  370. hal0ai-0.9.8/src/hal0/bench/publish.py +197 -0
  371. hal0ai-0.9.8/src/hal0/bench/regress.py +117 -0
  372. hal0ai-0.9.8/src/hal0/bench/runner.py +587 -0
  373. hal0ai-0.9.8/src/hal0/bench/schema.py +271 -0
  374. hal0ai-0.9.8/src/hal0/bench/store.py +275 -0
  375. hal0ai-0.9.8/src/hal0/bench/suites.py +181 -0
  376. hal0ai-0.9.8/src/hal0/board/__init__.py +271 -0
  377. hal0ai-0.9.8/src/hal0/bundles/__init__.py +33 -0
  378. hal0ai-0.9.8/src/hal0/bundles/eligibility.py +101 -0
  379. hal0ai-0.9.8/src/hal0/bundles/schema.py +226 -0
  380. hal0ai-0.9.8/src/hal0/bundles/tiers.py +138 -0
  381. hal0ai-0.9.8/src/hal0/capabilities/__init__.py +22 -0
  382. hal0ai-0.9.8/src/hal0/capabilities/catalog.py +978 -0
  383. hal0ai-0.9.8/src/hal0/capabilities/config.py +411 -0
  384. hal0ai-0.9.8/src/hal0/capabilities/orchestrator.py +889 -0
  385. hal0ai-0.9.8/src/hal0/capabilities/profile_fit.py +52 -0
  386. hal0ai-0.9.8/src/hal0/cli/__init__.py +1 -0
  387. hal0ai-0.9.8/src/hal0/cli/_shared.py +136 -0
  388. hal0ai-0.9.8/src/hal0/cli/agent_commands.py +1502 -0
  389. hal0ai-0.9.8/src/hal0/cli/agent_shim.py +753 -0
  390. hal0ai-0.9.8/src/hal0/cli/app_commands.py +158 -0
  391. hal0ai-0.9.8/src/hal0/cli/bench_commands.py +33 -0
  392. hal0ai-0.9.8/src/hal0/cli/capabilities_commands.py +332 -0
  393. hal0ai-0.9.8/src/hal0/cli/comfyui_commands.py +85 -0
  394. hal0ai-0.9.8/src/hal0/cli/config_commands.py +257 -0
  395. hal0ai-0.9.8/src/hal0/cli/doctor_commands.py +1420 -0
  396. hal0ai-0.9.8/src/hal0/cli/doctor_verify.py +385 -0
  397. hal0ai-0.9.8/src/hal0/cli/main.py +307 -0
  398. hal0ai-0.9.8/src/hal0/cli/mcp_commands.py +373 -0
  399. hal0ai-0.9.8/src/hal0/cli/memory_bank_commands.py +412 -0
  400. hal0ai-0.9.8/src/hal0/cli/memory_commands.py +517 -0
  401. hal0ai-0.9.8/src/hal0/cli/memory_migrate_commands.py +580 -0
  402. hal0ai-0.9.8/src/hal0/cli/memory_mm_commands.py +109 -0
  403. hal0ai-0.9.8/src/hal0/cli/memory_ops_commands.py +177 -0
  404. hal0ai-0.9.8/src/hal0/cli/memory_recall_commands.py +84 -0
  405. hal0ai-0.9.8/src/hal0/cli/migrate_commands.py +761 -0
  406. hal0ai-0.9.8/src/hal0/cli/model_commands.py +496 -0
  407. hal0ai-0.9.8/src/hal0/cli/registry_commands.py +307 -0
  408. hal0ai-0.9.8/src/hal0/cli/setup_command.py +329 -0
  409. hal0ai-0.9.8/src/hal0/cli/setup_copy.py +92 -0
  410. hal0ai-0.9.8/src/hal0/cli/setup_install.py +251 -0
  411. hal0ai-0.9.8/src/hal0/cli/setup_plan.py +219 -0
  412. hal0ai-0.9.8/src/hal0/cli/setup_ui.py +1015 -0
  413. hal0ai-0.9.8/src/hal0/cli/slot_commands.py +778 -0
  414. hal0ai-0.9.8/src/hal0/cli/update_commands.py +734 -0
  415. hal0ai-0.9.8/src/hal0/cli/upstream_commands.py +556 -0
  416. hal0ai-0.9.8/src/hal0/comfyui/__init__.py +1 -0
  417. hal0ai-0.9.8/src/hal0/comfyui/capabilities.py +199 -0
  418. hal0ai-0.9.8/src/hal0/comfyui/fetch.py +265 -0
  419. hal0ai-0.9.8/src/hal0/comfyui/orchestrate.py +221 -0
  420. hal0ai-0.9.8/src/hal0/comfyui/provision.py +159 -0
  421. hal0ai-0.9.8/src/hal0/comfyui/selection.py +33 -0
  422. hal0ai-0.9.8/src/hal0/config/__init__.py +35 -0
  423. hal0ai-0.9.8/src/hal0/config/env.py +109 -0
  424. hal0ai-0.9.8/src/hal0/config/loader.py +842 -0
  425. hal0ai-0.9.8/src/hal0/config/locking.py +111 -0
  426. hal0ai-0.9.8/src/hal0/config/migrations/__init__.py +181 -0
  427. hal0ai-0.9.8/src/hal0/config/migrations/v1.py +37 -0
  428. hal0ai-0.9.8/src/hal0/config/network.py +137 -0
  429. hal0ai-0.9.8/src/hal0/config/paths.py +333 -0
  430. hal0ai-0.9.8/src/hal0/config/schema.py +3085 -0
  431. hal0ai-0.9.8/src/hal0/dashboard/__init__.py +1 -0
  432. hal0ai-0.9.8/src/hal0/dashboard/layout_store.py +194 -0
  433. hal0ai-0.9.8/src/hal0/dispatcher/__init__.py +44 -0
  434. hal0ai-0.9.8/src/hal0/dispatcher/_capability_resolve.py +243 -0
  435. hal0ai-0.9.8/src/hal0/dispatcher/_npu_common.py +21 -0
  436. hal0ai-0.9.8/src/hal0/dispatcher/memory_dispatcher.py +108 -0
  437. hal0ai-0.9.8/src/hal0/dispatcher/npu_swap_status.py +149 -0
  438. hal0ai-0.9.8/src/hal0/dispatcher/npu_trio.py +251 -0
  439. hal0ai-0.9.8/src/hal0/dispatcher/router.py +1456 -0
  440. hal0ai-0.9.8/src/hal0/dispatcher/single_flight.py +112 -0
  441. hal0ai-0.9.8/src/hal0/errors.py +207 -0
  442. hal0ai-0.9.8/src/hal0/events/__init__.py +270 -0
  443. hal0ai-0.9.8/src/hal0/hardware/__init__.py +26 -0
  444. hal0ai-0.9.8/src/hal0/hardware/gpu_view.py +220 -0
  445. hal0ai-0.9.8/src/hal0/hardware/probe.py +1129 -0
  446. hal0ai-0.9.8/src/hal0/hardware/pve.py +471 -0
  447. hal0ai-0.9.8/src/hal0/hardware/recommend.py +265 -0
  448. hal0ai-0.9.8/src/hal0/hardware/stats.py +295 -0
  449. hal0ai-0.9.8/src/hal0/install/__init__.py +1 -0
  450. hal0ai-0.9.8/src/hal0/install/answers.py +477 -0
  451. hal0ai-0.9.8/src/hal0/install/extensions.py +179 -0
  452. hal0ai-0.9.8/src/hal0/install/network.py +245 -0
  453. hal0ai-0.9.8/src/hal0/install/orchestrate.py +606 -0
  454. hal0ai-0.9.8/src/hal0/install/perms.py +439 -0
  455. hal0ai-0.9.8/src/hal0/install/profile_derive.py +165 -0
  456. hal0ai-0.9.8/src/hal0/install/static_seeds.py +87 -0
  457. hal0ai-0.9.8/src/hal0/install/suggest.py +106 -0
  458. hal0ai-0.9.8/src/hal0/installer/__init__.py +11 -0
  459. hal0ai-0.9.8/src/hal0/journal/__init__.py +18 -0
  460. hal0ai-0.9.8/src/hal0/mcp/__init__.py +42 -0
  461. hal0ai-0.9.8/src/hal0/mcp/admin.py +1681 -0
  462. hal0ai-0.9.8/src/hal0/mcp/approval_queue.py +368 -0
  463. hal0ai-0.9.8/src/hal0/mcp/browser_server.py +400 -0
  464. hal0ai-0.9.8/src/hal0/mcp/installed.py +325 -0
  465. hal0ai-0.9.8/src/hal0/mcp/manifest.py +459 -0
  466. hal0ai-0.9.8/src/hal0/mcp/memory.py +676 -0
  467. hal0ai-0.9.8/src/hal0/mcp/probes.py +448 -0
  468. hal0ai-0.9.8/src/hal0/memory/__init__.py +105 -0
  469. hal0ai-0.9.8/src/hal0/memory/extraction_env.py +124 -0
  470. hal0ai-0.9.8/src/hal0/memory/hindsight_client.py +144 -0
  471. hal0ai-0.9.8/src/hal0/memory/hindsight_provider.py +609 -0
  472. hal0ai-0.9.8/src/hal0/memory/honcho_env.py +240 -0
  473. hal0ai-0.9.8/src/hal0/memory/honcho_migrate.py +582 -0
  474. hal0ai-0.9.8/src/hal0/memory/migrate.py +38 -0
  475. hal0ai-0.9.8/src/hal0/memory/namespace.py +159 -0
  476. hal0ai-0.9.8/src/hal0/memory/pgvector_provider.py +179 -0
  477. hal0ai-0.9.8/src/hal0/memory/provider.py +246 -0
  478. hal0ai-0.9.8/src/hal0/model_fit.py +114 -0
  479. hal0ai-0.9.8/src/hal0/model_meta/__init__.py +684 -0
  480. hal0ai-0.9.8/src/hal0/normalize/__init__.py +11 -0
  481. hal0ai-0.9.8/src/hal0/normalize/messages.py +61 -0
  482. hal0ai-0.9.8/src/hal0/normalize/resolver.py +164 -0
  483. hal0ai-0.9.8/src/hal0/normalize/thinking.py +75 -0
  484. hal0ai-0.9.8/src/hal0/omni_router/__init__.py +38 -0
  485. hal0ai-0.9.8/src/hal0/omni_router/dispatch.py +426 -0
  486. hal0ai-0.9.8/src/hal0/omni_router/filter.py +126 -0
  487. hal0ai-0.9.8/src/hal0/omni_router/route_to_chat.py +227 -0
  488. hal0ai-0.9.8/src/hal0/omni_router/router.py +282 -0
  489. hal0ai-0.9.8/src/hal0/omni_router/tool_definitions.json +206 -0
  490. hal0ai-0.9.8/src/hal0/omni_router/tools.py +129 -0
  491. hal0ai-0.9.8/src/hal0/openwebui/__init__.py +22 -0
  492. hal0ai-0.9.8/src/hal0/openwebui/env_writer.py +191 -0
  493. hal0ai-0.9.8/src/hal0/openwebui/image_pin.py +138 -0
  494. hal0ai-0.9.8/src/hal0/ports.py +216 -0
  495. hal0ai-0.9.8/src/hal0/profiles/__init__.py +311 -0
  496. hal0ai-0.9.8/src/hal0/profiles/portable.py +119 -0
  497. hal0ai-0.9.8/src/hal0/providers/__init__.py +76 -0
  498. hal0ai-0.9.8/src/hal0/providers/_gpu.py +214 -0
  499. hal0ai-0.9.8/src/hal0/providers/base.py +255 -0
  500. hal0ai-0.9.8/src/hal0/providers/comfyui.py +538 -0
  501. hal0ai-0.9.8/src/hal0/providers/comfyui_workflows.py +315 -0
  502. hal0ai-0.9.8/src/hal0/providers/container.py +1713 -0
  503. hal0ai-0.9.8/src/hal0/providers/flm.py +1115 -0
  504. hal0ai-0.9.8/src/hal0/providers/kokoro.py +231 -0
  505. hal0ai-0.9.8/src/hal0/providers/llama_server.py +182 -0
  506. hal0ai-0.9.8/src/hal0/providers/npu_columns.py +268 -0
  507. hal0ai-0.9.8/src/hal0/providers/qwen3tts.py +257 -0
  508. hal0ai-0.9.8/src/hal0/providers/workflows/__init__.py +24 -0
  509. hal0ai-0.9.8/src/hal0/providers/workflows/sd15_simple.json +81 -0
  510. hal0ai-0.9.8/src/hal0/providers/workflows/sdxl_turbo_simple.json +81 -0
  511. hal0ai-0.9.8/src/hal0/registry/__init__.py +38 -0
  512. hal0ai-0.9.8/src/hal0/registry/curated.py +1093 -0
  513. hal0ai-0.9.8/src/hal0/registry/detect.py +414 -0
  514. hal0ai-0.9.8/src/hal0/registry/discover.py +419 -0
  515. hal0ai-0.9.8/src/hal0/registry/gguf_header.py +345 -0
  516. hal0ai-0.9.8/src/hal0/registry/model.py +228 -0
  517. hal0ai-0.9.8/src/hal0/registry/model_store.py +321 -0
  518. hal0ai-0.9.8/src/hal0/registry/pull.py +1534 -0
  519. hal0ai-0.9.8/src/hal0/registry/seeds/haloai_models.json +682 -0
  520. hal0ai-0.9.8/src/hal0/registry/store.py +541 -0
  521. hal0ai-0.9.8/src/hal0/registry/update_check.py +149 -0
  522. hal0ai-0.9.8/src/hal0/release/__init__.py +1 -0
  523. hal0ai-0.9.8/src/hal0/release/channel.py +83 -0
  524. hal0ai-0.9.8/src/hal0/release/notes.py +98 -0
  525. hal0ai-0.9.8/src/hal0/services/__init__.py +26 -0
  526. hal0ai-0.9.8/src/hal0/services/mdns.py +150 -0
  527. hal0ai-0.9.8/src/hal0/services/registry.py +155 -0
  528. hal0ai-0.9.8/src/hal0/services/systemd.py +211 -0
  529. hal0ai-0.9.8/src/hal0/slot_config/__init__.py +640 -0
  530. hal0ai-0.9.8/src/hal0/slot_view/__init__.py +831 -0
  531. hal0ai-0.9.8/src/hal0/slots/__init__.py +28 -0
  532. hal0ai-0.9.8/src/hal0/slots/arbiter.py +709 -0
  533. hal0ai-0.9.8/src/hal0/slots/argv.py +304 -0
  534. hal0ai-0.9.8/src/hal0/slots/capacity.py +482 -0
  535. hal0ai-0.9.8/src/hal0/slots/manager.py +4145 -0
  536. hal0ai-0.9.8/src/hal0/slots/metrics.py +83 -0
  537. hal0ai-0.9.8/src/hal0/slots/state.py +368 -0
  538. hal0ai-0.9.8/src/hal0/slots/ttft_samples.py +130 -0
  539. hal0ai-0.9.8/src/hal0/stacks/__init__.py +153 -0
  540. hal0ai-0.9.8/src/hal0/stacks/apply.py +456 -0
  541. hal0ai-0.9.8/src/hal0/stacks/portable.py +391 -0
  542. hal0ai-0.9.8/src/hal0/stacks/state.py +110 -0
  543. hal0ai-0.9.8/src/hal0/templates/__init__.py +39 -0
  544. hal0ai-0.9.8/src/hal0/templates/chat/chatml.jinja +7 -0
  545. hal0ai-0.9.8/src/hal0/templates/chat/llama3.jinja +9 -0
  546. hal0ai-0.9.8/src/hal0/templates/chat/qwen3.6-27b-mtp.jinja +287 -0
  547. hal0ai-0.9.8/src/hal0/updater/__init__.py +57 -0
  548. hal0ai-0.9.8/src/hal0/updater/updater.py +2252 -0
  549. hal0ai-0.9.8/src/hal0/upstreams/__init__.py +35 -0
  550. hal0ai-0.9.8/src/hal0/upstreams/filters.py +75 -0
  551. hal0ai-0.9.8/src/hal0/upstreams/integrations.py +237 -0
  552. hal0ai-0.9.8/src/hal0/upstreams/registry.py +854 -0
  553. hal0ai-0.9.8/tests/__init__.py +0 -0
  554. hal0ai-0.9.8/tests/activity/__init__.py +0 -0
  555. hal0ai-0.9.8/tests/activity/test_store.py +385 -0
  556. hal0ai-0.9.8/tests/agents/__init__.py +0 -0
  557. hal0ai-0.9.8/tests/agents/_hermes_fakes.py +78 -0
  558. hal0ai-0.9.8/tests/agents/conftest.py +30 -0
  559. hal0ai-0.9.8/tests/agents/hermes/__init__.py +1 -0
  560. hal0ai-0.9.8/tests/agents/hermes/plugins/__init__.py +1 -0
  561. hal0ai-0.9.8/tests/agents/hermes/plugins/test_memory_hindsight_plugin.py +665 -0
  562. hal0ai-0.9.8/tests/agents/hermes_plugins/test_seed_parity.py +40 -0
  563. hal0ai-0.9.8/tests/agents/test_agent_memory_stats_endpoint.py +187 -0
  564. hal0ai-0.9.8/tests/agents/test_agent_restart_endpoint.py +298 -0
  565. hal0ai-0.9.8/tests/agents/test_budget_module.py +396 -0
  566. hal0ai-0.9.8/tests/agents/test_hal0_memory_client.py +280 -0
  567. hal0ai-0.9.8/tests/agents/test_hermes_capture_adopt.py +453 -0
  568. hal0ai-0.9.8/tests/agents/test_hermes_env_seam.py +149 -0
  569. hal0ai-0.9.8/tests/agents/test_hermes_live_resolve_render.py +83 -0
  570. hal0ai-0.9.8/tests/agents/test_hermes_provision.py +2462 -0
  571. hal0ai-0.9.8/tests/agents/test_hermes_provision_collect.py +114 -0
  572. hal0ai-0.9.8/tests/agents/test_hermes_provision_context.py +225 -0
  573. hal0ai-0.9.8/tests/agents/test_hermes_provision_honcho.py +259 -0
  574. hal0ai-0.9.8/tests/agents/test_hermes_provision_idempotency.py +481 -0
  575. hal0ai-0.9.8/tests/agents/test_hermes_provision_install_artifacts.py +130 -0
  576. hal0ai-0.9.8/tests/agents/test_hermes_provision_ownership.py +222 -0
  577. hal0ai-0.9.8/tests/agents/test_hermes_state_render.py +360 -0
  578. hal0ai-0.9.8/tests/agents/test_hermes_upgrade.py +115 -0
  579. hal0ai-0.9.8/tests/agents/test_hermes_wrapper.py +615 -0
  580. hal0ai-0.9.8/tests/agents/test_manager.py +756 -0
  581. hal0ai-0.9.8/tests/agents/test_mcp_client.py +245 -0
  582. hal0ai-0.9.8/tests/agents/test_opencode_shim.py +161 -0
  583. hal0ai-0.9.8/tests/agents/test_personas.py +263 -0
  584. hal0ai-0.9.8/tests/agents/test_personas_budget_roundtrip.py +108 -0
  585. hal0ai-0.9.8/tests/agents/test_pi_coder_shim.py +353 -0
  586. hal0ai-0.9.8/tests/agents/test_provision_engine.py +167 -0
  587. hal0ai-0.9.8/tests/agents/test_run_as_hal0_guard.py +176 -0
  588. hal0ai-0.9.8/tests/agents/test_turnstone_driver.py +114 -0
  589. hal0ai-0.9.8/tests/agents/test_turnstone_provision.py +216 -0
  590. hal0ai-0.9.8/tests/api/__init__.py +0 -0
  591. hal0ai-0.9.8/tests/api/conftest.py +63 -0
  592. hal0ai-0.9.8/tests/api/test_activity.py +123 -0
  593. hal0ai-0.9.8/tests/api/test_activity_instrumentation.py +33 -0
  594. hal0ai-0.9.8/tests/api/test_activity_routes_instrumented.py +129 -0
  595. hal0ai-0.9.8/tests/api/test_agents_budget.py +306 -0
  596. hal0ai-0.9.8/tests/api/test_agents_personas.py +308 -0
  597. hal0ai-0.9.8/tests/api/test_agents_routes.py +100 -0
  598. hal0ai-0.9.8/tests/api/test_apply_selections.py +115 -0
  599. hal0ai-0.9.8/tests/api/test_approvals.py +172 -0
  600. hal0ai-0.9.8/tests/api/test_backends_npu_canonical_fields.py +327 -0
  601. hal0ai-0.9.8/tests/api/test_chat_normalization.py +414 -0
  602. hal0ai-0.9.8/tests/api/test_chat_proxy.py +563 -0
  603. hal0ai-0.9.8/tests/api/test_chat_proxy_auth.py +197 -0
  604. hal0ai-0.9.8/tests/api/test_chat_templates.py +219 -0
  605. hal0ai-0.9.8/tests/api/test_comfyui_category.py +31 -0
  606. hal0ai-0.9.8/tests/api/test_comfyui_fetch_route.py +100 -0
  607. hal0ai-0.9.8/tests/api/test_comfyui_phase4.py +641 -0
  608. hal0ai-0.9.8/tests/api/test_comfyui_proxy.py +580 -0
  609. hal0ai-0.9.8/tests/api/test_config_model_roots.py +108 -0
  610. hal0ai-0.9.8/tests/api/test_config_urls.py +216 -0
  611. hal0ai-0.9.8/tests/api/test_cpu_util.py +116 -0
  612. hal0ai-0.9.8/tests/api/test_dashboard_layout.py +160 -0
  613. hal0ai-0.9.8/tests/api/test_events.py +377 -0
  614. hal0ai-0.9.8/tests/api/test_events_fixes.py +90 -0
  615. hal0ai-0.9.8/tests/api/test_features_health.py +78 -0
  616. hal0ai-0.9.8/tests/api/test_gpu_arbiter_idle_lifespan.py +27 -0
  617. hal0ai-0.9.8/tests/api/test_hardware_routes.py +593 -0
  618. hal0ai-0.9.8/tests/api/test_health_degraded.py +51 -0
  619. hal0ai-0.9.8/tests/api/test_hf_routes.py +319 -0
  620. hal0ai-0.9.8/tests/api/test_install_apply.py +224 -0
  621. hal0ai-0.9.8/tests/api/test_install_services.py +42 -0
  622. hal0ai-0.9.8/tests/api/test_installer_routes.py +238 -0
  623. hal0ai-0.9.8/tests/api/test_journal_routes.py +360 -0
  624. hal0ai-0.9.8/tests/api/test_llm_slot_views.py +75 -0
  625. hal0ai-0.9.8/tests/api/test_logs_routes.py +106 -0
  626. hal0ai-0.9.8/tests/api/test_mcp_identity.py +75 -0
  627. hal0ai-0.9.8/tests/api/test_mcp_routes.py +747 -0
  628. hal0ai-0.9.8/tests/api/test_mcp_transport_security.py +134 -0
  629. hal0ai-0.9.8/tests/api/test_memory_admin_document_transfer.py +167 -0
  630. hal0ai-0.9.8/tests/api/test_memory_admin_routes.py +445 -0
  631. hal0ai-0.9.8/tests/api/test_memory_degraded_status.py +81 -0
  632. hal0ai-0.9.8/tests/api/test_memory_gate.py +60 -0
  633. hal0ai-0.9.8/tests/api/test_memory_graph_route.py +331 -0
  634. hal0ai-0.9.8/tests/api/test_memory_honcho_routes.py +441 -0
  635. hal0ai-0.9.8/tests/api/test_memory_provider_rename.py +23 -0
  636. hal0ai-0.9.8/tests/api/test_memory_rest_routes.py +585 -0
  637. hal0ai-0.9.8/tests/api/test_memory_subgraph.py +234 -0
  638. hal0ai-0.9.8/tests/api/test_meta_enums.py +120 -0
  639. hal0ai-0.9.8/tests/api/test_metrics_prometheus_route.py +199 -0
  640. hal0ai-0.9.8/tests/api/test_middleware.py +89 -0
  641. hal0ai-0.9.8/tests/api/test_model_cache_refresh.py +199 -0
  642. hal0ai-0.9.8/tests/api/test_models_add_from_path.py +191 -0
  643. hal0ai-0.9.8/tests/api/test_models_catalogue.py +48 -0
  644. hal0ai-0.9.8/tests/api/test_models_crud.py +518 -0
  645. hal0ai-0.9.8/tests/api/test_models_preview.py +167 -0
  646. hal0ai-0.9.8/tests/api/test_models_pull_capability.py +53 -0
  647. hal0ai-0.9.8/tests/api/test_models_routes.py +649 -0
  648. hal0ai-0.9.8/tests/api/test_models_scan.py +74 -0
  649. hal0ai-0.9.8/tests/api/test_models_updates.py +201 -0
  650. hal0ai-0.9.8/tests/api/test_npu_occupancy.py +308 -0
  651. hal0ai-0.9.8/tests/api/test_npu_util.py +185 -0
  652. hal0ai-0.9.8/tests/api/test_openrouter_auth_loopback.py +285 -0
  653. hal0ai-0.9.8/tests/api/test_persona_update.py +115 -0
  654. hal0ai-0.9.8/tests/api/test_plugin_manifest_proxy.py +565 -0
  655. hal0ai-0.9.8/tests/api/test_port_registry.py +166 -0
  656. hal0ai-0.9.8/tests/api/test_power.py +142 -0
  657. hal0ai-0.9.8/tests/api/test_profiles_crud.py +409 -0
  658. hal0ai-0.9.8/tests/api/test_profiles_portable_routes.py +186 -0
  659. hal0ai-0.9.8/tests/api/test_profiles_route.py +227 -0
  660. hal0ai-0.9.8/tests/api/test_providers.py +175 -0
  661. hal0ai-0.9.8/tests/api/test_providers_routes.py +546 -0
  662. hal0ai-0.9.8/tests/api/test_pull_routes.py +564 -0
  663. hal0ai-0.9.8/tests/api/test_pull_shutdown.py +257 -0
  664. hal0ai-0.9.8/tests/api/test_redact.py +275 -0
  665. hal0ai-0.9.8/tests/api/test_secrets.py +190 -0
  666. hal0ai-0.9.8/tests/api/test_seed_multiplex_models.py +96 -0
  667. hal0ai-0.9.8/tests/api/test_services_comfyui.py +72 -0
  668. hal0ai-0.9.8/tests/api/test_services_health.py +268 -0
  669. hal0ai-0.9.8/tests/api/test_services_honcho.py +78 -0
  670. hal0ai-0.9.8/tests/api/test_services_page.py +331 -0
  671. hal0ai-0.9.8/tests/api/test_settings_apply.py +374 -0
  672. hal0ai-0.9.8/tests/api/test_settings_models_store.py +306 -0
  673. hal0ai-0.9.8/tests/api/test_settings_routes.py +134 -0
  674. hal0ai-0.9.8/tests/api/test_slot_config_validation.py +201 -0
  675. hal0ai-0.9.8/tests/api/test_slots_container_state.py +439 -0
  676. hal0ai-0.9.8/tests/api/test_slots_image_pull.py +371 -0
  677. hal0ai-0.9.8/tests/api/test_slots_npu_fields.py +174 -0
  678. hal0ai-0.9.8/tests/api/test_slots_policy.py +123 -0
  679. hal0ai-0.9.8/tests/api/test_slots_routes.py +1676 -0
  680. hal0ai-0.9.8/tests/api/test_smoke.py +65 -0
  681. hal0ai-0.9.8/tests/api/test_stacks_routes.py +349 -0
  682. hal0ai-0.9.8/tests/api/test_startup_persona_seed.py +83 -0
  683. hal0ai-0.9.8/tests/api/test_startup_slot_seed.py +66 -0
  684. hal0ai-0.9.8/tests/api/test_throughput_history.py +190 -0
  685. hal0ai-0.9.8/tests/api/test_tts_request_defaults.py +146 -0
  686. hal0ai-0.9.8/tests/api/test_typed_errors.py +472 -0
  687. hal0ai-0.9.8/tests/api/test_updater_routes.py +618 -0
  688. hal0ai-0.9.8/tests/api/test_updater_slot_drift.py +140 -0
  689. hal0ai-0.9.8/tests/api/test_upstream_dedup.py +299 -0
  690. hal0ai-0.9.8/tests/api/test_v1_audio.py +380 -0
  691. hal0ai-0.9.8/tests/api/test_v1_backend_aware_load.py +190 -0
  692. hal0ai-0.9.8/tests/api/test_v1_chat_slot_alias.py +319 -0
  693. hal0ai-0.9.8/tests/api/test_v1_dispatch.py +109 -0
  694. hal0ai-0.9.8/tests/api/test_v1_images.py +307 -0
  695. hal0ai-0.9.8/tests/api/test_v1_models_filters.py +135 -0
  696. hal0ai-0.9.8/tests/api/test_v1_npu_trio_routing.py +432 -0
  697. hal0ai-0.9.8/tests/api/test_v1_proxy.py +129 -0
  698. hal0ai-0.9.8/tests/api/test_v1_slot_alias_models.py +189 -0
  699. hal0ai-0.9.8/tests/api/test_virtual_models.py +130 -0
  700. hal0ai-0.9.8/tests/bench/__init__.py +0 -0
  701. hal0ai-0.9.8/tests/bench/fixtures/llama_bench_0.8b_rocm.json +92 -0
  702. hal0ai-0.9.8/tests/bench/fixtures/llama_bench_0.8b_rocm.meta.json +1 -0
  703. hal0ai-0.9.8/tests/bench/fixtures/server_ab_ab.json +171 -0
  704. hal0ai-0.9.8/tests/bench/fixtures/server_ab_embed.json +18 -0
  705. hal0ai-0.9.8/tests/bench/fixtures/server_ab_reuse.json +39 -0
  706. hal0ai-0.9.8/tests/bench/test_evalrun.py +98 -0
  707. hal0ai-0.9.8/tests/bench/test_parsers.py +135 -0
  708. hal0ai-0.9.8/tests/bench/test_planner.py +168 -0
  709. hal0ai-0.9.8/tests/bench/test_schema.py +120 -0
  710. hal0ai-0.9.8/tests/bench/test_server_ab_helpers.py +78 -0
  711. hal0ai-0.9.8/tests/bench/test_worker_eval.py +169 -0
  712. hal0ai-0.9.8/tests/board/__init__.py +0 -0
  713. hal0ai-0.9.8/tests/board/test_board_chat.py +1055 -0
  714. hal0ai-0.9.8/tests/board/test_board_chat_admin_tools.py +212 -0
  715. hal0ai-0.9.8/tests/board/test_board_chat_text_toolcalls.py +74 -0
  716. hal0ai-0.9.8/tests/board/test_board_chat_tool_use_e2e.py +438 -0
  717. hal0ai-0.9.8/tests/board/test_board_client.py +243 -0
  718. hal0ai-0.9.8/tests/board/test_board_routes.py +360 -0
  719. hal0ai-0.9.8/tests/board/test_board_ws.py +223 -0
  720. hal0ai-0.9.8/tests/bundles/__init__.py +0 -0
  721. hal0ai-0.9.8/tests/bundles/test_eligibility.py +128 -0
  722. hal0ai-0.9.8/tests/bundles/test_schema.py +157 -0
  723. hal0ai-0.9.8/tests/bundles/test_tiers.py +139 -0
  724. hal0ai-0.9.8/tests/capabilities/__init__.py +0 -0
  725. hal0ai-0.9.8/tests/capabilities/test_catalog_backends.py +99 -0
  726. hal0ai-0.9.8/tests/capabilities/test_catalog_flm_blacklist.py +71 -0
  727. hal0ai-0.9.8/tests/capabilities/test_catalog_npu_stt.py +76 -0
  728. hal0ai-0.9.8/tests/capabilities/test_model_fit_validation.py +166 -0
  729. hal0ai-0.9.8/tests/capabilities/test_npu_container_modality.py +231 -0
  730. hal0ai-0.9.8/tests/capabilities/test_npu_phase2_integration.py +195 -0
  731. hal0ai-0.9.8/tests/capabilities/test_orchestrator_reconciliation.py +979 -0
  732. hal0ai-0.9.8/tests/capabilities/test_stt_curation.py +39 -0
  733. hal0ai-0.9.8/tests/capabilities/test_trio_status_inheritance.py +140 -0
  734. hal0ai-0.9.8/tests/capabilities/test_tts_capability_switch.py +284 -0
  735. hal0ai-0.9.8/tests/capabilities/test_vision_curation.py +63 -0
  736. hal0ai-0.9.8/tests/capabilities/test_vision_mmproj_autosurface.py +67 -0
  737. hal0ai-0.9.8/tests/cli/__init__.py +0 -0
  738. hal0ai-0.9.8/tests/cli/test_agent_approvals_list.py +212 -0
  739. hal0ai-0.9.8/tests/cli/test_agent_install_hermes.py +552 -0
  740. hal0ai-0.9.8/tests/cli/test_agent_shim.py +620 -0
  741. hal0ai-0.9.8/tests/cli/test_agent_shim_turnstone.py +99 -0
  742. hal0ai-0.9.8/tests/cli/test_agent_uninstall_memory.py +395 -0
  743. hal0ai-0.9.8/tests/cli/test_agents_personas.py +112 -0
  744. hal0ai-0.9.8/tests/cli/test_app_install_openwebui.py +70 -0
  745. hal0ai-0.9.8/tests/cli/test_app_list_uninstall.py +84 -0
  746. hal0ai-0.9.8/tests/cli/test_capabilities_commands.py +161 -0
  747. hal0ai-0.9.8/tests/cli/test_cli_docs_parity.py +97 -0
  748. hal0ai-0.9.8/tests/cli/test_config_hardware_probe.py +80 -0
  749. hal0ai-0.9.8/tests/cli/test_config_migrate.py +93 -0
  750. hal0ai-0.9.8/tests/cli/test_config_show_edit_selector.py +72 -0
  751. hal0ai-0.9.8/tests/cli/test_doctor.py +565 -0
  752. hal0ai-0.9.8/tests/cli/test_doctor_models.py +171 -0
  753. hal0ai-0.9.8/tests/cli/test_doctor_perms.py +171 -0
  754. hal0ai-0.9.8/tests/cli/test_doctor_profiles.py +97 -0
  755. hal0ai-0.9.8/tests/cli/test_doctor_verify.py +243 -0
  756. hal0ai-0.9.8/tests/cli/test_json_output.py +128 -0
  757. hal0ai-0.9.8/tests/cli/test_memory_bank_commands.py +227 -0
  758. hal0ai-0.9.8/tests/cli/test_memory_graph_commands.py +126 -0
  759. hal0ai-0.9.8/tests/cli/test_memory_migrate.py +27 -0
  760. hal0ai-0.9.8/tests/cli/test_memory_migrate_unify.py +266 -0
  761. hal0ai-0.9.8/tests/cli/test_memory_mm_commands.py +64 -0
  762. hal0ai-0.9.8/tests/cli/test_memory_ops_commands.py +169 -0
  763. hal0ai-0.9.8/tests/cli/test_memory_provider_commands.py +290 -0
  764. hal0ai-0.9.8/tests/cli/test_memory_recall_commands.py +71 -0
  765. hal0ai-0.9.8/tests/cli/test_migrate_model_layout.py +696 -0
  766. hal0ai-0.9.8/tests/cli/test_model_first_run_commands.py +283 -0
  767. hal0ai-0.9.8/tests/cli/test_model_import_backup.py +73 -0
  768. hal0ai-0.9.8/tests/cli/test_registry_import.py +407 -0
  769. hal0ai-0.9.8/tests/cli/test_serve_bind_host.py +71 -0
  770. hal0ai-0.9.8/tests/cli/test_setup_command.py +106 -0
  771. hal0ai-0.9.8/tests/cli/test_setup_install.py +157 -0
  772. hal0ai-0.9.8/tests/cli/test_setup_ui.py +598 -0
  773. hal0ai-0.9.8/tests/cli/test_slot_create_flags.py +271 -0
  774. hal0ai-0.9.8/tests/cli/test_slot_metrics_capacity.py +92 -0
  775. hal0ai-0.9.8/tests/cli/test_slot_status.py +41 -0
  776. hal0ai-0.9.8/tests/cli/test_slot_verb_aliases.py +103 -0
  777. hal0ai-0.9.8/tests/cli/test_uninstall.py +221 -0
  778. hal0ai-0.9.8/tests/cli/test_update_commands.py +370 -0
  779. hal0ai-0.9.8/tests/cli/test_upstream_commands.py +305 -0
  780. hal0ai-0.9.8/tests/comfyui/__init__.py +0 -0
  781. hal0ai-0.9.8/tests/comfyui/test_capabilities.py +62 -0
  782. hal0ai-0.9.8/tests/comfyui/test_fetch.py +306 -0
  783. hal0ai-0.9.8/tests/comfyui/test_fetch_dryrun.py +44 -0
  784. hal0ai-0.9.8/tests/comfyui/test_fetch_paths.py +176 -0
  785. hal0ai-0.9.8/tests/comfyui/test_fetch_scripts.py +129 -0
  786. hal0ai-0.9.8/tests/comfyui/test_fetch_ws_g.py +177 -0
  787. hal0ai-0.9.8/tests/comfyui/test_hal0_gpu_gate.py +100 -0
  788. hal0ai-0.9.8/tests/comfyui/test_orchestrate.py +123 -0
  789. hal0ai-0.9.8/tests/comfyui/test_provision.py +107 -0
  790. hal0ai-0.9.8/tests/comfyui/test_selection.py +51 -0
  791. hal0ai-0.9.8/tests/config/__init__.py +0 -0
  792. hal0ai-0.9.8/tests/config/test_agent_schema.py +178 -0
  793. hal0ai-0.9.8/tests/config/test_chat_template_resolve.py +19 -0
  794. hal0ai-0.9.8/tests/config/test_default_image_gate.py +38 -0
  795. hal0ai-0.9.8/tests/config/test_honcho_schema.py +123 -0
  796. hal0ai-0.9.8/tests/config/test_loader.py +677 -0
  797. hal0ai-0.9.8/tests/config/test_loader_profiles_save.py +79 -0
  798. hal0ai-0.9.8/tests/config/test_locking.py +77 -0
  799. hal0ai-0.9.8/tests/config/test_memory_engine_field.py +22 -0
  800. hal0ai-0.9.8/tests/config/test_memory_graph_schema.py +94 -0
  801. hal0ai-0.9.8/tests/config/test_model_store_root.py +54 -0
  802. hal0ai-0.9.8/tests/config/test_models_config.py +74 -0
  803. hal0ai-0.9.8/tests/config/test_mtp_override.py +152 -0
  804. hal0ai-0.9.8/tests/config/test_network.py +278 -0
  805. hal0ai-0.9.8/tests/config/test_paths_stub.py +45 -0
  806. hal0ai-0.9.8/tests/config/test_profile_derivation_parity.py +182 -0
  807. hal0ai-0.9.8/tests/config/test_profiles.py +446 -0
  808. hal0ai-0.9.8/tests/config/test_schema.py +484 -0
  809. hal0ai-0.9.8/tests/config/test_schema_migration.py +429 -0
  810. hal0ai-0.9.8/tests/config/test_schema_npu.py +109 -0
  811. hal0ai-0.9.8/tests/config/test_schema_seeds_c5.py +138 -0
  812. hal0ai-0.9.8/tests/config/test_schema_seeds_d1.py +138 -0
  813. hal0ai-0.9.8/tests/config/test_stacks_loader.py +56 -0
  814. hal0ai-0.9.8/tests/config/test_stacks_schema.py +122 -0
  815. hal0ai-0.9.8/tests/config/test_upstream_filters.py +131 -0
  816. hal0ai-0.9.8/tests/conftest.py +71 -0
  817. hal0ai-0.9.8/tests/dispatcher/__init__.py +0 -0
  818. hal0ai-0.9.8/tests/dispatcher/test_arbiter_dispatch.py +681 -0
  819. hal0ai-0.9.8/tests/dispatcher/test_capability_wake_on_evict.py +235 -0
  820. hal0ai-0.9.8/tests/dispatcher/test_composite_dispatch.py +206 -0
  821. hal0ai-0.9.8/tests/dispatcher/test_container_gate.py +243 -0
  822. hal0ai-0.9.8/tests/dispatcher/test_forward.py +154 -0
  823. hal0ai-0.9.8/tests/dispatcher/test_image_routing.py +160 -0
  824. hal0ai-0.9.8/tests/dispatcher/test_npu_swap_status.py +330 -0
  825. hal0ai-0.9.8/tests/dispatcher/test_npu_trio.py +388 -0
  826. hal0ai-0.9.8/tests/dispatcher/test_pool_bounds.py +141 -0
  827. hal0ai-0.9.8/tests/dispatcher/test_rerank_path_routing.py +280 -0
  828. hal0ai-0.9.8/tests/dispatcher/test_router.py +799 -0
  829. hal0ai-0.9.8/tests/dispatcher/test_serving_integration.py +669 -0
  830. hal0ai-0.9.8/tests/dispatcher/test_single_flight.py +128 -0
  831. hal0ai-0.9.8/tests/dispatcher/test_tts_path_routing.py +402 -0
  832. hal0ai-0.9.8/tests/fixtures/slots_all_ready.json +149 -0
  833. hal0ai-0.9.8/tests/fixtures/slots_cold.json +149 -0
  834. hal0ai-0.9.8/tests/fixtures/slots_primary_ready.json +149 -0
  835. hal0ai-0.9.8/tests/hardware/__init__.py +0 -0
  836. hal0ai-0.9.8/tests/hardware/test_gpu_view.py +264 -0
  837. hal0ai-0.9.8/tests/hardware/test_probe.py +937 -0
  838. hal0ai-0.9.8/tests/hardware/test_pve.py +539 -0
  839. hal0ai-0.9.8/tests/hardware/test_recommend.py +197 -0
  840. hal0ai-0.9.8/tests/hardware/test_stats.py +235 -0
  841. hal0ai-0.9.8/tests/hardware/test_stats_gpu_view_delegation.py +106 -0
  842. hal0ai-0.9.8/tests/harness/FINDINGS.md +1365 -0
  843. hal0ai-0.9.8/tests/harness/README.md +506 -0
  844. hal0ai-0.9.8/tests/harness/agents-test.sh +565 -0
  845. hal0ai-0.9.8/tests/harness/cli-test.sh +294 -0
  846. hal0ai-0.9.8/tests/harness/harness-cleanup.sh +116 -0
  847. hal0ai-0.9.8/tests/harness/installer-test.sh +320 -0
  848. hal0ai-0.9.8/tests/harness/integration/__init__.py +28 -0
  849. hal0ai-0.9.8/tests/harness/integration/_delegate_fakes.py +385 -0
  850. hal0ai-0.9.8/tests/harness/integration/_delegate_runner.py +268 -0
  851. hal0ai-0.9.8/tests/harness/integration/conftest.py +205 -0
  852. hal0ai-0.9.8/tests/harness/integration/test_delegate_task_dispatch_matrix.py +249 -0
  853. hal0ai-0.9.8/tests/harness/integration/test_delegate_task_docker.py +159 -0
  854. hal0ai-0.9.8/tests/harness/integration/test_delegate_task_local.py +125 -0
  855. hal0ai-0.9.8/tests/harness/integration/test_delegate_task_modal.py +159 -0
  856. hal0ai-0.9.8/tests/harness/integration/test_v0_3_chat_roundtrip.py +202 -0
  857. hal0ai-0.9.8/tests/harness/integration/test_v0_3_persona_activate.py +184 -0
  858. hal0ai-0.9.8/tests/harness/integration/test_voice_roundtrip.py +76 -0
  859. hal0ai-0.9.8/tests/harness/lib/common.sh +131 -0
  860. hal0ai-0.9.8/tests/harness/runtime-test.sh +211 -0
  861. hal0ai-0.9.8/tests/install/test_answers.py +448 -0
  862. hal0ai-0.9.8/tests/install/test_comfyui_extra_paths.py +41 -0
  863. hal0ai-0.9.8/tests/install/test_comfyui_scripts_shipped.py +146 -0
  864. hal0ai-0.9.8/tests/install/test_emit_answers.py +246 -0
  865. hal0ai-0.9.8/tests/install/test_extensions.py +150 -0
  866. hal0ai-0.9.8/tests/install/test_extensions_comfyui.py +41 -0
  867. hal0ai-0.9.8/tests/install/test_network.py +112 -0
  868. hal0ai-0.9.8/tests/install/test_orchestrate.py +645 -0
  869. hal0ai-0.9.8/tests/install/test_perms.py +266 -0
  870. hal0ai-0.9.8/tests/install/test_profile_derive.py +205 -0
  871. hal0ai-0.9.8/tests/install/test_setup_plan.py +172 -0
  872. hal0ai-0.9.8/tests/install/test_static_seeds.py +90 -0
  873. hal0ai-0.9.8/tests/install/test_suggest.py +74 -0
  874. hal0ai-0.9.8/tests/installer/test_bootstrap_prereq_parity.py +204 -0
  875. hal0ai-0.9.8/tests/installer/test_distro.sh +71 -0
  876. hal0ai-0.9.8/tests/installer/test_pi_coder_install.sh +58 -0
  877. hal0ai-0.9.8/tests/installer/test_platform_gate_hardening.py +164 -0
  878. hal0ai-0.9.8/tests/installer/test_preflight_gpu_gate.py +147 -0
  879. hal0ai-0.9.8/tests/installer/test_preflight_ports_own_service.py +104 -0
  880. hal0ai-0.9.8/tests/installer/test_preflight_python_floor.py +191 -0
  881. hal0ai-0.9.8/tests/journal/__init__.py +0 -0
  882. hal0ai-0.9.8/tests/journal/test_now_iso.py +33 -0
  883. hal0ai-0.9.8/tests/mcp/__init__.py +1 -0
  884. hal0ai-0.9.8/tests/mcp/conftest.py +77 -0
  885. hal0ai-0.9.8/tests/mcp/test_admin.py +702 -0
  886. hal0ai-0.9.8/tests/mcp/test_admin_stacks.py +134 -0
  887. hal0ai-0.9.8/tests/mcp/test_approval_queue.py +301 -0
  888. hal0ai-0.9.8/tests/mcp/test_browser_server_smoke.py +148 -0
  889. hal0ai-0.9.8/tests/mcp/test_installed.py +180 -0
  890. hal0ai-0.9.8/tests/mcp/test_logs_tail_redaction.py +192 -0
  891. hal0ai-0.9.8/tests/mcp/test_manifest.py +248 -0
  892. hal0ai-0.9.8/tests/mcp/test_mcp_mount_private_header.py +154 -0
  893. hal0ai-0.9.8/tests/mcp/test_memory.py +349 -0
  894. hal0ai-0.9.8/tests/mcp/test_memory_recall_tool.py +42 -0
  895. hal0ai-0.9.8/tests/mcp/test_probes.py +256 -0
  896. hal0ai-0.9.8/tests/memory/__init__.py +0 -0
  897. hal0ai-0.9.8/tests/memory/conftest.py +12 -0
  898. hal0ai-0.9.8/tests/memory/fakes.py +121 -0
  899. hal0ai-0.9.8/tests/memory/test_extraction_env.py +110 -0
  900. hal0ai-0.9.8/tests/memory/test_hindsight_client.py +117 -0
  901. hal0ai-0.9.8/tests/memory/test_hindsight_provider.py +318 -0
  902. hal0ai-0.9.8/tests/memory/test_honcho_env.py +213 -0
  903. hal0ai-0.9.8/tests/memory/test_honcho_migrate.py +551 -0
  904. hal0ai-0.9.8/tests/memory/test_namespace_policy.py +97 -0
  905. hal0ai-0.9.8/tests/memory/test_pgvector_degrade_safety.py +159 -0
  906. hal0ai-0.9.8/tests/memory/test_provider_abc.py +76 -0
  907. hal0ai-0.9.8/tests/memory/test_provider_contract.py +128 -0
  908. hal0ai-0.9.8/tests/memory/test_provider_factory.py +98 -0
  909. hal0ai-0.9.8/tests/memory/test_recall_route.py +67 -0
  910. hal0ai-0.9.8/tests/memory/test_unified_bank.py +433 -0
  911. hal0ai-0.9.8/tests/model_fit/test_model_fit.py +99 -0
  912. hal0ai-0.9.8/tests/model_meta/__init__.py +0 -0
  913. hal0ai-0.9.8/tests/model_meta/test_model_meta.py +422 -0
  914. hal0ai-0.9.8/tests/normalize/test_messages.py +135 -0
  915. hal0ai-0.9.8/tests/normalize/test_resolver.py +220 -0
  916. hal0ai-0.9.8/tests/normalize/test_thinking.py +96 -0
  917. hal0ai-0.9.8/tests/omni_router/__init__.py +0 -0
  918. hal0ai-0.9.8/tests/omni_router/conftest.py +141 -0
  919. hal0ai-0.9.8/tests/omni_router/test_api_wiring.py +85 -0
  920. hal0ai-0.9.8/tests/omni_router/test_dispatch.py +509 -0
  921. hal0ai-0.9.8/tests/omni_router/test_filter.py +345 -0
  922. hal0ai-0.9.8/tests/omni_router/test_route_to_chat.py +456 -0
  923. hal0ai-0.9.8/tests/omni_router/test_router_loop.py +555 -0
  924. hal0ai-0.9.8/tests/omni_router/test_tools.py +192 -0
  925. hal0ai-0.9.8/tests/openwebui/__init__.py +0 -0
  926. hal0ai-0.9.8/tests/openwebui/conftest.py +19 -0
  927. hal0ai-0.9.8/tests/openwebui/test_env_writer.py +174 -0
  928. hal0ai-0.9.8/tests/openwebui/test_image_pin.py +97 -0
  929. hal0ai-0.9.8/tests/openwebui/test_owui_pin_consistency.py +56 -0
  930. hal0ai-0.9.8/tests/openwebui/test_prewire_smoke.py +539 -0
  931. hal0ai-0.9.8/tests/profiles/test_catalog.py +171 -0
  932. hal0ai-0.9.8/tests/profiles/test_portable.py +191 -0
  933. hal0ai-0.9.8/tests/providers/__init__.py +0 -0
  934. hal0ai-0.9.8/tests/providers/test_comfyui.py +351 -0
  935. hal0ai-0.9.8/tests/providers/test_comfyui_container_spec.py +179 -0
  936. hal0ai-0.9.8/tests/providers/test_comfyui_workflows.py +201 -0
  937. hal0ai-0.9.8/tests/providers/test_container.py +1150 -0
  938. hal0ai-0.9.8/tests/providers/test_container_assembler.py +302 -0
  939. hal0ai-0.9.8/tests/providers/test_container_chat_template.py +295 -0
  940. hal0ai-0.9.8/tests/providers/test_container_dropin_cleanup.py +131 -0
  941. hal0ai-0.9.8/tests/providers/test_container_health_gating.py +125 -0
  942. hal0ai-0.9.8/tests/providers/test_container_mmproj.py +183 -0
  943. hal0ai-0.9.8/tests/providers/test_container_npu.py +422 -0
  944. hal0ai-0.9.8/tests/providers/test_container_resolved_detail.py +48 -0
  945. hal0ai-0.9.8/tests/providers/test_container_spec_dispatch.py +243 -0
  946. hal0ai-0.9.8/tests/providers/test_container_vision_toggle.py +97 -0
  947. hal0ai-0.9.8/tests/providers/test_flm.py +741 -0
  948. hal0ai-0.9.8/tests/providers/test_flm_container_spec.py +171 -0
  949. hal0ai-0.9.8/tests/providers/test_flm_store_link.py +117 -0
  950. hal0ai-0.9.8/tests/providers/test_gpu.py +61 -0
  951. hal0ai-0.9.8/tests/providers/test_image_resolution.py +139 -0
  952. hal0ai-0.9.8/tests/providers/test_kokoro_container_spec.py +98 -0
  953. hal0ai-0.9.8/tests/providers/test_llama_server.py +216 -0
  954. hal0ai-0.9.8/tests/providers/test_moonshine_server.py +139 -0
  955. hal0ai-0.9.8/tests/providers/test_npu_columns.py +236 -0
  956. hal0ai-0.9.8/tests/providers/test_parallel_batching.py +84 -0
  957. hal0ai-0.9.8/tests/providers/test_qwen3tts_container_spec.py +161 -0
  958. hal0ai-0.9.8/tests/providers/test_runtime_launch_plan.py +207 -0
  959. hal0ai-0.9.8/tests/registry/__init__.py +0 -0
  960. hal0ai-0.9.8/tests/registry/test_comfyui_path.py +15 -0
  961. hal0ai-0.9.8/tests/registry/test_curated.py +89 -0
  962. hal0ai-0.9.8/tests/registry/test_curated_comfyui.py +60 -0
  963. hal0ai-0.9.8/tests/registry/test_curated_image_models.py +187 -0
  964. hal0ai-0.9.8/tests/registry/test_curated_pull_coords.py +115 -0
  965. hal0ai-0.9.8/tests/registry/test_curation_drift.py +60 -0
  966. hal0ai-0.9.8/tests/registry/test_detect.py +226 -0
  967. hal0ai-0.9.8/tests/registry/test_discover.py +392 -0
  968. hal0ai-0.9.8/tests/registry/test_flm_pull_progress.py +91 -0
  969. hal0ai-0.9.8/tests/registry/test_gguf_header.py +178 -0
  970. hal0ai-0.9.8/tests/registry/test_model_store.py +203 -0
  971. hal0ai-0.9.8/tests/registry/test_pull.py +1299 -0
  972. hal0ai-0.9.8/tests/registry/test_pull_capability_path.py +37 -0
  973. hal0ai-0.9.8/tests/registry/test_pull_store.py +148 -0
  974. hal0ai-0.9.8/tests/registry/test_schema_migration.py +211 -0
  975. hal0ai-0.9.8/tests/registry/test_store.py +395 -0
  976. hal0ai-0.9.8/tests/registry/test_store_concurrency.py +237 -0
  977. hal0ai-0.9.8/tests/registry/test_store_on_change.py +61 -0
  978. hal0ai-0.9.8/tests/registry/test_update_check.py +210 -0
  979. hal0ai-0.9.8/tests/release/__init__.py +0 -0
  980. hal0ai-0.9.8/tests/release/test_channel.py +93 -0
  981. hal0ai-0.9.8/tests/release/test_notes.py +243 -0
  982. hal0ai-0.9.8/tests/scripts/__init__.py +0 -0
  983. hal0ai-0.9.8/tests/scripts/test_migrate_haloai.py +354 -0
  984. hal0ai-0.9.8/tests/slot_config/__init__.py +0 -0
  985. hal0ai-0.9.8/tests/slot_config/test_merge_slot_config.py +241 -0
  986. hal0ai-0.9.8/tests/slot_config/test_store.py +386 -0
  987. hal0ai-0.9.8/tests/slot_config/test_store_locking.py +172 -0
  988. hal0ai-0.9.8/tests/slot_config/test_validation_and_lock.py +120 -0
  989. hal0ai-0.9.8/tests/slot_view/__init__.py +0 -0
  990. hal0ai-0.9.8/tests/slot_view/test_aggregator.py +847 -0
  991. hal0ai-0.9.8/tests/slots/__init__.py +0 -0
  992. hal0ai-0.9.8/tests/slots/conftest.py +145 -0
  993. hal0ai-0.9.8/tests/slots/test_adopted_slot_eviction.py +129 -0
  994. hal0ai-0.9.8/tests/slots/test_argv.py +279 -0
  995. hal0ai-0.9.8/tests/slots/test_config_drift_aliases.py +167 -0
  996. hal0ai-0.9.8/tests/slots/test_container_cgroup_mem.py +316 -0
  997. hal0ai-0.9.8/tests/slots/test_default_uniqueness.py +171 -0
  998. hal0ai-0.9.8/tests/slots/test_device_profile_coherence.py +129 -0
  999. hal0ai-0.9.8/tests/slots/test_dispatchable_ready_set_single_source.py +128 -0
  1000. hal0ai-0.9.8/tests/slots/test_fail_watcher.py +174 -0
  1001. hal0ai-0.9.8/tests/slots/test_fail_watcher_warming.py +245 -0
  1002. hal0ai-0.9.8/tests/slots/test_flag_merge.py +197 -0
  1003. hal0ai-0.9.8/tests/slots/test_gpu_arbiter.py +1127 -0
  1004. hal0ai-0.9.8/tests/slots/test_health_probe_cfg.py +52 -0
  1005. hal0ai-0.9.8/tests/slots/test_loaded_slot.py +105 -0
  1006. hal0ai-0.9.8/tests/slots/test_manager.py +1088 -0
  1007. hal0ai-0.9.8/tests/slots/test_manager_npu_container.py +345 -0
  1008. hal0ai-0.9.8/tests/slots/test_manager_readiness_api.py +149 -0
  1009. hal0ai-0.9.8/tests/slots/test_model_fallback.py +192 -0
  1010. hal0ai-0.9.8/tests/slots/test_model_preferred_profile.py +103 -0
  1011. hal0ai-0.9.8/tests/slots/test_mtp_defuse.py +123 -0
  1012. hal0ai-0.9.8/tests/slots/test_npu_exclusivity.py +254 -0
  1013. hal0ai-0.9.8/tests/slots/test_npu_trio_reconcile.py +173 -0
  1014. hal0ai-0.9.8/tests/slots/test_npu_trio_shadow.py +148 -0
  1015. hal0ai-0.9.8/tests/slots/test_pressure_eviction.py +302 -0
  1016. hal0ai-0.9.8/tests/slots/test_pulling_serving_idle.py +403 -0
  1017. hal0ai-0.9.8/tests/slots/test_restart_errored_slot.py +91 -0
  1018. hal0ai-0.9.8/tests/slots/test_slot_aliases.py +283 -0
  1019. hal0ai-0.9.8/tests/slots/test_slot_create_conflict.py +115 -0
  1020. hal0ai-0.9.8/tests/slots/test_state_self_managed_providers.py +52 -0
  1021. hal0ai-0.9.8/tests/slots/test_state_transitions.py +156 -0
  1022. hal0ai-0.9.8/tests/slots/test_transition_guard.py +76 -0
  1023. hal0ai-0.9.8/tests/slots/test_ttft_samples.py +207 -0
  1024. hal0ai-0.9.8/tests/slots/test_upstream_reconcile.py +171 -0
  1025. hal0ai-0.9.8/tests/stacks/__init__.py +0 -0
  1026. hal0ai-0.9.8/tests/stacks/conftest.py +75 -0
  1027. hal0ai-0.9.8/tests/stacks/test_apply_commit.py +102 -0
  1028. hal0ai-0.9.8/tests/stacks/test_apply_plan.py +237 -0
  1029. hal0ai-0.9.8/tests/stacks/test_apply_validate.py +53 -0
  1030. hal0ai-0.9.8/tests/stacks/test_converge_capabilities.py +103 -0
  1031. hal0ai-0.9.8/tests/stacks/test_converge_primary.py +76 -0
  1032. hal0ai-0.9.8/tests/stacks/test_converge_unload.py +74 -0
  1033. hal0ai-0.9.8/tests/stacks/test_drift.py +152 -0
  1034. hal0ai-0.9.8/tests/stacks/test_export.py +170 -0
  1035. hal0ai-0.9.8/tests/stacks/test_import.py +133 -0
  1036. hal0ai-0.9.8/tests/stacks/test_snapshot.py +159 -0
  1037. hal0ai-0.9.8/tests/stacks/test_stacks_catalog.py +103 -0
  1038. hal0ai-0.9.8/tests/systemd/__init__.py +0 -0
  1039. hal0ai-0.9.8/tests/systemd/test_hf_token_secrets.py +197 -0
  1040. hal0ai-0.9.8/tests/systemd/test_unit_files.py +348 -0
  1041. hal0ai-0.9.8/tests/test_import.py +34 -0
  1042. hal0ai-0.9.8/tests/updater/__init__.py +0 -0
  1043. hal0ai-0.9.8/tests/updater/test_image_retag.py +114 -0
  1044. hal0ai-0.9.8/tests/updater/test_seed_profiles_migration.py +92 -0
  1045. hal0ai-0.9.8/tests/updater/test_unit_rerender.py +145 -0
  1046. hal0ai-0.9.8/tests/updater/test_updater.py +1175 -0
  1047. hal0ai-0.9.8/tests/upstreams/__init__.py +0 -0
  1048. hal0ai-0.9.8/tests/upstreams/test_integrations.py +95 -0
  1049. hal0ai-0.9.8/tests/upstreams/test_registry.py +707 -0
  1050. hal0ai-0.9.8/ui/.env.example +10 -0
  1051. hal0ai-0.9.8/ui/CONTRACTS.md +250 -0
  1052. hal0ai-0.9.8/ui/eslint.config.js +97 -0
  1053. hal0ai-0.9.8/ui/index.html +29 -0
  1054. hal0ai-0.9.8/ui/package-lock.json +3713 -0
  1055. hal0ai-0.9.8/ui/package.json +41 -0
  1056. hal0ai-0.9.8/ui/playwright.config.ts +61 -0
  1057. hal0ai-0.9.8/ui/playwright.local.config.ts +11 -0
  1058. hal0ai-0.9.8/ui/public/brand/logo-halo-dark-favico.png +0 -0
  1059. hal0ai-0.9.8/ui/public/brand/logo-halo-dark-favico.svg +1 -0
  1060. hal0ai-0.9.8/ui/public/brand/logo-halo-dark.png +0 -0
  1061. hal0ai-0.9.8/ui/public/brand/logo-halo-dark.svg +1 -0
  1062. hal0ai-0.9.8/ui/public/brand/logo-halo-light-favico.png +0 -0
  1063. hal0ai-0.9.8/ui/public/brand/logo-halo-light-favico.svg +1 -0
  1064. hal0ai-0.9.8/ui/public/brand/logo-halo-light.png +0 -0
  1065. hal0ai-0.9.8/ui/public/brand/logo-halo-light.svg +1 -0
  1066. hal0ai-0.9.8/ui/public/favicon.svg +1 -0
  1067. hal0ai-0.9.8/ui/src/api/client.ts +123 -0
  1068. hal0ai-0.9.8/ui/src/api/endpoints.ts +419 -0
  1069. hal0ai-0.9.8/ui/src/api/hooks/__tests__/boardActors.test.mjs +54 -0
  1070. hal0ai-0.9.8/ui/src/api/hooks/__tests__/logRing.test.mjs +66 -0
  1071. hal0ai-0.9.8/ui/src/api/hooks/__tests__/rawLevel.test.mjs +56 -0
  1072. hal0ai-0.9.8/ui/src/api/hooks/boardActors.js +41 -0
  1073. hal0ai-0.9.8/ui/src/api/hooks/index.ts +25 -0
  1074. hal0ai-0.9.8/ui/src/api/hooks/logRing.js +28 -0
  1075. hal0ai-0.9.8/ui/src/api/hooks/rawLevel.js +18 -0
  1076. hal0ai-0.9.8/ui/src/api/hooks/useActivity.ts +304 -0
  1077. hal0ai-0.9.8/ui/src/api/hooks/useAgentMcpClients.ts +141 -0
  1078. hal0ai-0.9.8/ui/src/api/hooks/useAgents.ts +538 -0
  1079. hal0ai-0.9.8/ui/src/api/hooks/useBackends.ts +81 -0
  1080. hal0ai-0.9.8/ui/src/api/hooks/useBoard.ts +1494 -0
  1081. hal0ai-0.9.8/ui/src/api/hooks/useCapabilities.ts +64 -0
  1082. hal0ai-0.9.8/ui/src/api/hooks/useChatTemplates.ts +38 -0
  1083. hal0ai-0.9.8/ui/src/api/hooks/useComfyui.ts +310 -0
  1084. hal0ai-0.9.8/ui/src/api/hooks/useConfigUrls.ts +38 -0
  1085. hal0ai-0.9.8/ui/src/api/hooks/useDashLayout.ts +176 -0
  1086. hal0ai-0.9.8/ui/src/api/hooks/useFeatures.ts +33 -0
  1087. hal0ai-0.9.8/ui/src/api/hooks/useHardware.ts +117 -0
  1088. hal0ai-0.9.8/ui/src/api/hooks/useHindsight.ts +537 -0
  1089. hal0ai-0.9.8/ui/src/api/hooks/useHoncho.ts +139 -0
  1090. hal0ai-0.9.8/ui/src/api/hooks/useInstallState.ts +51 -0
  1091. hal0ai-0.9.8/ui/src/api/hooks/useLogs.ts +387 -0
  1092. hal0ai-0.9.8/ui/src/api/hooks/useMcp.ts +132 -0
  1093. hal0ai-0.9.8/ui/src/api/hooks/useMemory.ts +209 -0
  1094. hal0ai-0.9.8/ui/src/api/hooks/useMeta.ts +45 -0
  1095. hal0ai-0.9.8/ui/src/api/hooks/useModels.ts +589 -0
  1096. hal0ai-0.9.8/ui/src/api/hooks/useNpuOccupancy.ts +50 -0
  1097. hal0ai-0.9.8/ui/src/api/hooks/useProfiles.ts +130 -0
  1098. hal0ai-0.9.8/ui/src/api/hooks/useProxmoxSettings.ts +65 -0
  1099. hal0ai-0.9.8/ui/src/api/hooks/useRequestsRollup.ts +67 -0
  1100. hal0ai-0.9.8/ui/src/api/hooks/useRuntime.ts +105 -0
  1101. hal0ai-0.9.8/ui/src/api/hooks/useSecrets.ts +43 -0
  1102. hal0ai-0.9.8/ui/src/api/hooks/useServices.ts +142 -0
  1103. hal0ai-0.9.8/ui/src/api/hooks/useServicesHealth.ts +88 -0
  1104. hal0ai-0.9.8/ui/src/api/hooks/useSettings.ts +213 -0
  1105. hal0ai-0.9.8/ui/src/api/hooks/useSlots.ts +702 -0
  1106. hal0ai-0.9.8/ui/src/api/hooks/useStacks.ts +217 -0
  1107. hal0ai-0.9.8/ui/src/api/hooks/useStatsHardware.ts +57 -0
  1108. hal0ai-0.9.8/ui/src/api/hooks/useStatsPower.ts +63 -0
  1109. hal0ai-0.9.8/ui/src/api/hooks/useThroughputHistory.ts +62 -0
  1110. hal0ai-0.9.8/ui/src/api/hooks/useUpdates.ts +197 -0
  1111. hal0ai-0.9.8/ui/src/api/hooks/useUpstreams.ts +156 -0
  1112. hal0ai-0.9.8/ui/src/api/mock.ts +1193 -0
  1113. hal0ai-0.9.8/ui/src/dash/Benchmarks.tsx +1160 -0
  1114. hal0ai-0.9.8/ui/src/dash/__tests__/model-sort.test.mjs +138 -0
  1115. hal0ai-0.9.8/ui/src/dash/__tests__/model-types.test.mjs +82 -0
  1116. hal0ai-0.9.8/ui/src/dash/__tests__/react-hooks-order.test.mjs +191 -0
  1117. hal0ai-0.9.8/ui/src/dash/__tests__/slot-status.consistency.test.mjs +80 -0
  1118. hal0ai-0.9.8/ui/src/dash/__tests__/slot-status.disabled-running.test.mjs +81 -0
  1119. hal0ai-0.9.8/ui/src/dash/activity-log.css +248 -0
  1120. hal0ai-0.9.8/ui/src/dash/activity-log.jsx +269 -0
  1121. hal0ai-0.9.8/ui/src/dash/agents/agent-card.jsx +318 -0
  1122. hal0ai-0.9.8/ui/src/dash/agents/agent-cards.css +190 -0
  1123. hal0ai-0.9.8/ui/src/dash/agents/agent-view.jsx +118 -0
  1124. hal0ai-0.9.8/ui/src/dash/agents/agents-hook-bridge.ts +35 -0
  1125. hal0ai-0.9.8/ui/src/dash/agents/agents-overview.jsx +298 -0
  1126. hal0ai-0.9.8/ui/src/dash/agents/assets/hermes.png +0 -0
  1127. hal0ai-0.9.8/ui/src/dash/agents/assets/opencode-logo.svg +1 -0
  1128. hal0ai-0.9.8/ui/src/dash/agents/assets/pi-amber.png +0 -0
  1129. hal0ai-0.9.8/ui/src/dash/agents/assets/qwen-logo.svg +1 -0
  1130. hal0ai-0.9.8/ui/src/dash/agents/memory-tab-hook-bridge.ts +47 -0
  1131. hal0ai-0.9.8/ui/src/dash/agents/memory-tab.jsx +275 -0
  1132. hal0ai-0.9.8/ui/src/dash/board/agent-chat.jsx +344 -0
  1133. hal0ai-0.9.8/ui/src/dash/board/board-hook-bridge.ts +113 -0
  1134. hal0ai-0.9.8/ui/src/dash/board/board-view.jsx +764 -0
  1135. hal0ai-0.9.8/ui/src/dash/board/board.css +500 -0
  1136. hal0ai-0.9.8/ui/src/dash/board/kcard.jsx +82 -0
  1137. hal0ai-0.9.8/ui/src/dash/board/lane.jsx +93 -0
  1138. hal0ai-0.9.8/ui/src/dash/board/new-board-modal.jsx +130 -0
  1139. hal0ai-0.9.8/ui/src/dash/board/new-task-modal.jsx +165 -0
  1140. hal0ai-0.9.8/ui/src/dash/board/orchestration-popover.jsx +233 -0
  1141. hal0ai-0.9.8/ui/src/dash/board/task-drawer.jsx +366 -0
  1142. hal0ai-0.9.8/ui/src/dash/cards-shell.jsx +111 -0
  1143. hal0ai-0.9.8/ui/src/dash/chrome.jsx +1202 -0
  1144. hal0ai-0.9.8/ui/src/dash/comfyui-pane.css +564 -0
  1145. hal0ai-0.9.8/ui/src/dash/comfyui-pane.jsx +793 -0
  1146. hal0ai-0.9.8/ui/src/dash/command-palette.jsx +383 -0
  1147. hal0ai-0.9.8/ui/src/dash/connections.css +414 -0
  1148. hal0ai-0.9.8/ui/src/dash/connections.jsx +1486 -0
  1149. hal0ai-0.9.8/ui/src/dash/dashboard-redesign.jsx +1080 -0
  1150. hal0ai-0.9.8/ui/src/dash/dashboard.jsx +298 -0
  1151. hal0ai-0.9.8/ui/src/dash/data.jsx +360 -0
  1152. hal0ai-0.9.8/ui/src/dash/engine-panes.css +1433 -0
  1153. hal0ai-0.9.8/ui/src/dash/extra-modals.jsx +179 -0
  1154. hal0ai-0.9.8/ui/src/dash/extras.jsx +337 -0
  1155. hal0ai-0.9.8/ui/src/dash/flow-modals.jsx +264 -0
  1156. hal0ai-0.9.8/ui/src/dash/inference-pane.jsx +642 -0
  1157. hal0ai-0.9.8/ui/src/dash/main.jsx +513 -0
  1158. hal0ai-0.9.8/ui/src/dash/memory-graph-ego.jsx +351 -0
  1159. hal0ai-0.9.8/ui/src/dash/memory-graph-engine.jsx +504 -0
  1160. hal0ai-0.9.8/ui/src/dash/memory-graph-structured.jsx +667 -0
  1161. hal0ai-0.9.8/ui/src/dash/memory-graph.jsx +696 -0
  1162. hal0ai-0.9.8/ui/src/dash/memory-hook-bridge.ts +108 -0
  1163. hal0ai-0.9.8/ui/src/dash/memory-map.jsx +526 -0
  1164. hal0ai-0.9.8/ui/src/dash/memory-overhaul.css +416 -0
  1165. hal0ai-0.9.8/ui/src/dash/memory-tools.jsx +602 -0
  1166. hal0ai-0.9.8/ui/src/dash/memory.jsx +1083 -0
  1167. hal0ai-0.9.8/ui/src/dash/metric-cards.jsx +252 -0
  1168. hal0ai-0.9.8/ui/src/dash/model-modals.jsx +1277 -0
  1169. hal0ai-0.9.8/ui/src/dash/model-sort.js +158 -0
  1170. hal0ai-0.9.8/ui/src/dash/model-types.js +59 -0
  1171. hal0ai-0.9.8/ui/src/dash/models.jsx +840 -0
  1172. hal0ai-0.9.8/ui/src/dash/notifications.jsx +293 -0
  1173. hal0ai-0.9.8/ui/src/dash/npu-pane.jsx +546 -0
  1174. hal0ai-0.9.8/ui/src/dash/npu.css +646 -0
  1175. hal0ai-0.9.8/ui/src/dash/optin-cards.jsx +350 -0
  1176. hal0ai-0.9.8/ui/src/dash/overhaul.css +1886 -0
  1177. hal0ai-0.9.8/ui/src/dash/primitives.jsx +1020 -0
  1178. hal0ai-0.9.8/ui/src/dash/profile-names.js +29 -0
  1179. hal0ai-0.9.8/ui/src/dash/profiles.jsx +693 -0
  1180. hal0ai-0.9.8/ui/src/dash/quickchat-card.jsx +358 -0
  1181. hal0ai-0.9.8/ui/src/dash/redesign.css +375 -0
  1182. hal0ai-0.9.8/ui/src/dash/services-card.jsx +365 -0
  1183. hal0ai-0.9.8/ui/src/dash/services.css +147 -0
  1184. hal0ai-0.9.8/ui/src/dash/services.jsx +287 -0
  1185. hal0ai-0.9.8/ui/src/dash/settings.jsx +2598 -0
  1186. hal0ai-0.9.8/ui/src/dash/slot-list.jsx +253 -0
  1187. hal0ai-0.9.8/ui/src/dash/slot-modals.jsx +2190 -0
  1188. hal0ai-0.9.8/ui/src/dash/slot-status.js +296 -0
  1189. hal0ai-0.9.8/ui/src/dash/slots.jsx +1024 -0
  1190. hal0ai-0.9.8/ui/src/dash/stacks.css +185 -0
  1191. hal0ai-0.9.8/ui/src/dash/stacks.jsx +850 -0
  1192. hal0ai-0.9.8/ui/src/dash/telemetry-header.jsx +490 -0
  1193. hal0ai-0.9.8/ui/src/dash/tweaks-panel.jsx +531 -0
  1194. hal0ai-0.9.8/ui/src/dashboard.css +3570 -0
  1195. hal0ai-0.9.8/ui/src/globals-install.ts +32 -0
  1196. hal0ai-0.9.8/ui/src/lib/deviceMeta.ts +348 -0
  1197. hal0ai-0.9.8/ui/src/lib/normalizeApiModel.ts +162 -0
  1198. hal0ai-0.9.8/ui/src/lib/queryClient.ts +28 -0
  1199. hal0ai-0.9.8/ui/src/main.tsx +157 -0
  1200. hal0ai-0.9.8/ui/src/stores/useBannerStore.ts +273 -0
  1201. hal0ai-0.9.8/ui/src/stores/useToastStore.ts +90 -0
  1202. hal0ai-0.9.8/ui/src/stores/useTweaksStore.ts +98 -0
  1203. hal0ai-0.9.8/ui/src/types/globals.d.ts +30 -0
  1204. hal0ai-0.9.8/ui/tests/e2e/README.md +29 -0
  1205. hal0ai-0.9.8/ui/tests/e2e/fixtures/apiMock.ts +431 -0
  1206. hal0ai-0.9.8/ui/tests/e2e/fixtures/mock-data.ts +819 -0
  1207. hal0ai-0.9.8/ui/tests/e2e/fixtures/sseHarness.ts +127 -0
  1208. hal0ai-0.9.8/ui/tests/e2e/fixtures/wsHarness.ts +190 -0
  1209. hal0ai-0.9.8/ui/tests/e2e/specs/activity-log.spec.ts +163 -0
  1210. hal0ai-0.9.8/ui/tests/e2e/specs/agent-view-v3.spec.ts +127 -0
  1211. hal0ai-0.9.8/ui/tests/e2e/specs/board-assignee-display-v3.spec.ts +44 -0
  1212. hal0ai-0.9.8/ui/tests/e2e/specs/board-bulk-v3.spec.ts +231 -0
  1213. hal0ai-0.9.8/ui/tests/e2e/specs/board-chat-tool-use-v3.spec.ts +223 -0
  1214. hal0ai-0.9.8/ui/tests/e2e/specs/board-chat-v3.spec.ts +428 -0
  1215. hal0ai-0.9.8/ui/tests/e2e/specs/board-columns-render-v3.spec.ts +46 -0
  1216. hal0ai-0.9.8/ui/tests/e2e/specs/board-dragdrop-v3.spec.ts +221 -0
  1217. hal0ai-0.9.8/ui/tests/e2e/specs/board-drawer-v3.spec.ts +498 -0
  1218. hal0ai-0.9.8/ui/tests/e2e/specs/board-filters-v3.spec.ts +166 -0
  1219. hal0ai-0.9.8/ui/tests/e2e/specs/board-hermes-actor-shape-v3.spec.ts +54 -0
  1220. hal0ai-0.9.8/ui/tests/e2e/specs/board-render-v3.spec.ts +200 -0
  1221. hal0ai-0.9.8/ui/tests/e2e/specs/board-selector-v3.spec.ts +359 -0
  1222. hal0ai-0.9.8/ui/tests/e2e/specs/comfyui-arbiter-v3.spec.ts +250 -0
  1223. hal0ai-0.9.8/ui/tests/e2e/specs/connections-v3.spec.ts +193 -0
  1224. hal0ai-0.9.8/ui/tests/e2e/specs/dashboard-redesign-v3.spec.ts +295 -0
  1225. hal0ai-0.9.8/ui/tests/e2e/specs/dashboard-v3.spec.ts +46 -0
  1226. hal0ai-0.9.8/ui/tests/e2e/specs/footer-chips-v3.spec.ts +60 -0
  1227. hal0ai-0.9.8/ui/tests/e2e/specs/footer-journal-pane-v3.spec.ts +195 -0
  1228. hal0ai-0.9.8/ui/tests/e2e/specs/footer-throughput-chip-v3.spec.ts +85 -0
  1229. hal0ai-0.9.8/ui/tests/e2e/specs/footer-update-chip-v3.spec.ts +110 -0
  1230. hal0ai-0.9.8/ui/tests/e2e/specs/hf-token-setting.spec.ts +41 -0
  1231. hal0ai-0.9.8/ui/tests/e2e/specs/imagegen-v2.spec.ts +253 -0
  1232. hal0ai-0.9.8/ui/tests/e2e/specs/inference-pane-v3.spec.ts +255 -0
  1233. hal0ai-0.9.8/ui/tests/e2e/specs/logs-v3.spec.ts +37 -0
  1234. hal0ai-0.9.8/ui/tests/e2e/specs/memory-gate-v3.spec.ts +73 -0
  1235. hal0ai-0.9.8/ui/tests/e2e/specs/memory-graph-empty-v3.spec.ts +71 -0
  1236. hal0ai-0.9.8/ui/tests/e2e/specs/memory-graph-explorer-v3.spec.ts +168 -0
  1237. hal0ai-0.9.8/ui/tests/e2e/specs/memory-graph-v3.spec.ts +98 -0
  1238. hal0ai-0.9.8/ui/tests/e2e/specs/memory-map-v3.spec.ts +141 -0
  1239. hal0ai-0.9.8/ui/tests/e2e/specs/memory-provider-v3.spec.ts +222 -0
  1240. hal0ai-0.9.8/ui/tests/e2e/specs/memory-tools-v3.spec.ts +124 -0
  1241. hal0ai-0.9.8/ui/tests/e2e/specs/memory-view-v3.spec.ts +259 -0
  1242. hal0ai-0.9.8/ui/tests/e2e/specs/mobile-nav-v3.spec.ts +99 -0
  1243. hal0ai-0.9.8/ui/tests/e2e/specs/model-edit-identity-v3.spec.ts +89 -0
  1244. hal0ai-0.9.8/ui/tests/e2e/specs/model-recipe-template-v3.spec.ts +89 -0
  1245. hal0ai-0.9.8/ui/tests/e2e/specs/models-catalog-controls-v3.spec.ts +170 -0
  1246. hal0ai-0.9.8/ui/tests/e2e/specs/models-upstream-v3.spec.ts +99 -0
  1247. hal0ai-0.9.8/ui/tests/e2e/specs/models-v3.spec.ts +227 -0
  1248. hal0ai-0.9.8/ui/tests/e2e/specs/notification-bell-v3.spec.ts +226 -0
  1249. hal0ai-0.9.8/ui/tests/e2e/specs/npu-occupancy-v3.spec.ts +139 -0
  1250. hal0ai-0.9.8/ui/tests/e2e/specs/profiles-crud-v3.spec.ts +336 -0
  1251. hal0ai-0.9.8/ui/tests/e2e/specs/profiles-page-v3.spec.ts +205 -0
  1252. hal0ai-0.9.8/ui/tests/e2e/specs/services-v3.spec.ts +213 -0
  1253. hal0ai-0.9.8/ui/tests/e2e/specs/settings-default-slots-v3.spec.ts +33 -0
  1254. hal0ai-0.9.8/ui/tests/e2e/specs/settings-v3.spec.ts +47 -0
  1255. hal0ai-0.9.8/ui/tests/e2e/specs/sidebar-accordion-v3.spec.ts +119 -0
  1256. hal0ai-0.9.8/ui/tests/e2e/specs/slot-card-container-v3.spec.ts +309 -0
  1257. hal0ai-0.9.8/ui/tests/e2e/specs/slot-drawer-profile-v3.spec.ts +447 -0
  1258. hal0ai-0.9.8/ui/tests/e2e/specs/slot-edit-controls-v3.spec.ts +344 -0
  1259. hal0ai-0.9.8/ui/tests/e2e/specs/slot-indicator-live-screenshot.spec.ts +30 -0
  1260. hal0ai-0.9.8/ui/tests/e2e/specs/slot-indicator.spec.ts +225 -0
  1261. hal0ai-0.9.8/ui/tests/e2e/specs/slot-live-equivalence-v3.spec.ts +120 -0
  1262. hal0ai-0.9.8/ui/tests/e2e/specs/slots-v3.spec.ts +46 -0
  1263. hal0ai-0.9.8/ui/tests/e2e/specs/slots-wireup-v3.spec.ts +137 -0
  1264. hal0ai-0.9.8/ui/tests/e2e/specs/system-card-v3.spec.ts +89 -0
  1265. hal0ai-0.9.8/ui/tests/e2e/specs/ui-sweep-a-v3.spec.ts +253 -0
  1266. hal0ai-0.9.8/ui/tests/e2e/specs/update-banner-v3.spec.ts +78 -0
  1267. hal0ai-0.9.8/ui/tests/e2e/specs/warm-color-tones.spec.ts +98 -0
  1268. hal0ai-0.9.8/ui/tsconfig.json +34 -0
  1269. hal0ai-0.9.8/ui/tsconfig.node.json +13 -0
  1270. hal0ai-0.9.8/ui/vite.config.ts +70 -0
  1271. hal0ai-0.9.8/uv.lock +3948 -0
File without changes
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: docs-lead
3
+ description: Sonnet section lead for hal0 documentation. Owns exactly one docs/ section (getting-started, concepts, guides, or reference+operate). Builds the change delta from git log, CHANGELOG.md, and graphify, decomposes it into per-file briefs, spawns docs-writer (haiku) workers to apply edits, reviews every diff, and optionally spawns docs-verifier to fact-check claims. Use for any docs update spanning multiple files in one section.
4
+ model: sonnet
5
+ ---
6
+
7
+ You are a documentation section lead for the hal0 repo. You own ONE section of
8
+ `docs/` — the section is named in your task prompt. Never edit files outside it.
9
+
10
+ ## Workflow
11
+
12
+ 1. **Build the delta.** Read `CHANGELOG.md` (Unreleased + the last few released
13
+ sections), run `git log --oneline -- docs/ src/` to see what changed since
14
+ the docs were last touched, and use `graphify query "<question>"` /
15
+ `graphify explain "<concept>"` when `graphify-out/graph.json` exists to map
16
+ concepts to source. Verify any CLI flag, config key, endpoint, or path
17
+ against `src/hal0/` before it goes in a brief — never trust memory.
18
+ 2. **Decompose.** Group your section's files into 2–4 batches. For each batch
19
+ write a precise brief: file paths, exact facts to add/change/delete (with
20
+ the source citation: commit, CHANGELOG entry, or source file:line), and
21
+ what must NOT change.
22
+ 3. **Delegate.** Spawn one `docs-writer` (haiku) agent per batch via the Agent
23
+ tool with `model: "haiku"`. Run them concurrently. Writers only apply
24
+ briefs — all research and judgment stays with you.
25
+ 4. **Review.** `git diff` each writer's files. Fix style drift, factual
26
+ errors, and scope creep yourself with Edit. For risky claims (commands,
27
+ flags, defaults) spawn a `docs-verifier` (haiku) to check them against
28
+ source.
29
+ 5. **Report.** Return: files changed, one line per meaningful content change,
30
+ and any claims you could not verify. Do NOT commit — leave changes in the
31
+ working tree.
32
+
33
+ ## Ground rules
34
+
35
+ - Docs are `.mdx`; match the existing file's heading style, frontmatter, tone,
36
+ and admonition components. No marketing language, no SEO filler.
37
+ - Delete stale claims rather than hedging them ("previously…" belongs in the
38
+ CHANGELOG, not guides).
39
+ - Retired concepts as of v0.9.5: slot `role` is gone (slot NAME is the routing
40
+ key, `hal0/<slot>`); profile slugs are the `{rocm,vulkan} × {dense,moe}`
41
+ grid; the installer does not seed a recommended model slot.
42
+ - If a fact can't be verified in source, leave the doc untouched and flag it
43
+ in your report instead of guessing.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: docs-verifier
3
+ description: Haiku documentation fact-checker. Given a list of claims from updated docs (CLI commands, flags, config keys, defaults, paths, endpoints), verifies each against the hal0 source tree and reports verified/refuted/unverifiable with evidence. Read-only — never edits docs.
4
+ model: haiku
5
+ tools: Read, Grep, Glob, Bash
6
+ ---
7
+
8
+ You fact-check documentation claims against the hal0 source tree. You never
9
+ edit anything.
10
+
11
+ For each claim in your task:
12
+
13
+ - Find the authoritative source: CLI commands/flags in `src/hal0/cli*`,
14
+ config schema in `src/hal0/config*` / `src/hal0/schema*`, API routes in
15
+ `src/hal0/api/`, seeds under `installer/`, versioned behavior in
16
+ `CHANGELOG.md`. Use Grep/Glob; run `--help` output via Bash only if the
17
+ source is ambiguous.
18
+ - Verdict per claim: VERIFIED (quote the source line as `path:line`),
19
+ REFUTED (quote what the source actually says), or UNVERIFIABLE (say what
20
+ you searched).
21
+ - Be adversarial: a claim that is merely plausible is not verified. Check
22
+ defaults and spellings exactly — `chat = true` vs `chat=True` vs a stale
23
+ key name are different claims.
24
+
25
+ Return a compact list: claim → verdict → evidence. Nothing else.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: docs-writer
3
+ description: Haiku documentation writer. Applies a precise brief from a docs-lead to a small batch of .mdx files — adds, updates, or deletes exactly the facts listed in the brief, preserving each file's existing style. Does not research or invent content beyond the brief.
4
+ model: haiku
5
+ tools: Read, Edit, Write, Grep, Glob, Bash
6
+ ---
7
+
8
+ You are a documentation writer executing a brief from a section lead. The
9
+ brief lists file paths and the exact facts to add, change, or remove, with
10
+ citations.
11
+
12
+ Rules:
13
+
14
+ - Edit ONLY the files named in your brief. Read each file fully before
15
+ editing.
16
+ - Apply exactly the facts in the brief. If the brief cites a source file, you
17
+ may Read it to get wording/values right — but never add claims the brief
18
+ doesn't authorize.
19
+ - Match the surrounding style: heading depth, frontmatter shape, code-fence
20
+ language tags, admonition components, sentence tone. A reader should not be
21
+ able to tell which paragraphs are new.
22
+ - Delete stale content the brief marks stale — don't soften it into
23
+ "previously" phrasing.
24
+ - Prose: complete sentences, no marketing language, no filler. Commands and
25
+ config keys in backticks, exact and copy-pasteable.
26
+ - If something in the brief conflicts with what you see in the file or source,
27
+ do NOT guess — skip that item and report the conflict.
28
+
29
+ Return: per file, a one-line summary of what changed, plus any skipped brief
30
+ items with the reason.
@@ -0,0 +1,24 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "Bash",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "CMD=$(python3 -c \"import json,sys; d=json.load(sys.stdin); print(d.get('tool_input',d).get('command',''))\" 2>/dev/null || true); case \"$CMD\" in *grep*|*rg\\ *|*ripgrep*|*find\\ *|*fd\\ *|*ack\\ *|*ag\\ *) [ -f graphify-out/graph.json ] && echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"additionalContext\":\"MANDATORY: graphify-out/graph.json exists. You MUST run `graphify query \\\"<question>\\\"` before grepping raw files. Only grep after graphify has oriented you, or to modify/debug specific lines.\"}}' || true ;; esac"
10
+ }
11
+ ]
12
+ },
13
+ {
14
+ "matcher": "Read|Glob",
15
+ "hooks": [
16
+ {
17
+ "type": "command",
18
+ "command": "HIT=$(python3 -c \"import json,sys;d=json.load(sys.stdin);t=d.get('tool_input',d);exts=('.py','.js','.ts','.tsx','.jsx','.astro','.vue','.svelte','.go','.rs','.java','.rb','.c','.h','.cpp','.hpp','.cc','.cs','.kt','.swift','.php','.scala','.lua','.sh','.md','.rst','.txt','.mdx');vals=[str(t.get('file_path') or ''),str(t.get('pattern') or ''),str(t.get('path') or '')];j=' '.join(vals).lower().replace(chr(92),'/');tails=[('.'+x.rsplit('.',1)[-1]) for v in vals if v for x in [v.lower().replace(chr(92),'/').rsplit('/',1)[-1]] if '.' in x];sys.stdout.write('1' if 'graphify-out/' not in j and any(tl in exts for tl in tails) else '')\" 2>/dev/null || true); if [ \"$HIT\" = 1 ] && [ -f graphify-out/graph.json ]; then echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"additionalContext\":\"MANDATORY: graphify-out/graph.json exists. You MUST run graphify before reading source files. Use: `graphify query \\\"<question>\\\"` (scoped subgraph), `graphify explain \\\"<concept>\\\"`, or `graphify path \\\"<A>\\\" \\\"<B>\\\"`. Only read raw files after graphify has oriented you, or to modify/debug specific lines. This rule applies to subagents too \u2014 include it in every subagent prompt involving code exploration.\"}}'; fi || true"
19
+ }
20
+ ]
21
+ }
22
+ ]
23
+ }
24
+ }
@@ -0,0 +1,170 @@
1
+ name: Agent shim smoke (pi-coder + opencode nightly)
2
+
3
+ # Nightly end-to-end re-run of each bundled agent's installer
4
+ # (installer/agents/<agent>.sh) + an MCP round-trip against the resulting
5
+ # hal0 MCP memory server.
6
+ #
7
+ # Why this exists:
8
+ # ADR-0004 §3 ("Mitigation for track-latest churn") + PLAN.md §17 risk
9
+ # row commit hal0 to a nightly smoke that catches upstream pi-coder
10
+ # contract drift overnight, instead of breaking real installs the next
11
+ # morning. Pinning pi-coder per hal0 release would freeze users on
12
+ # stale revisions; track-latest is the chosen tradeoff and this
13
+ # workflow is the safety net.
14
+ #
15
+ # Runner choice (v0.2):
16
+ # ubuntu-latest. Graduation to a self-hosted hal0-LXC runner with
17
+ # Strix Halo passthrough is a post-v0.2 follow-up — for v0.2 the
18
+ # round-trip only needs the FastAPI/MCP layer to be healthy, not the
19
+ # NPU/iGPU inference path.
20
+ #
21
+ # Failure handling:
22
+ # On red, open (or update) a single tracking issue tagged
23
+ # `agent-shim-broken`. One issue per upstream-broken-us state — we
24
+ # refuse to spam a fresh ticket every night while the same root cause
25
+ # is unfixed.
26
+
27
+ on:
28
+ schedule:
29
+ # 04:00 UTC nightly — well after the Asia/Europe push window so any
30
+ # upstream pi-coder release from the prior day is already cut.
31
+ - cron: "0 4 * * *"
32
+ workflow_dispatch:
33
+
34
+ concurrency:
35
+ group: agent-shim-smoke
36
+ # Latest nightly wins. We do not queue back-to-back runs.
37
+ cancel-in-progress: true
38
+
39
+ permissions:
40
+ contents: read
41
+ issues: write # required for the failure-issue handling step below
42
+
43
+ jobs:
44
+ smoke:
45
+ name: ${{ matrix.agent }} install + MCP round-trip
46
+ runs-on: ubuntu-latest
47
+ timeout-minutes: 25
48
+ strategy:
49
+ fail-fast: false
50
+ matrix:
51
+ agent: [pi-coder, opencode]
52
+
53
+ steps:
54
+ - name: Checkout
55
+ uses: actions/checkout@v6
56
+
57
+ - name: Set up Python 3.12
58
+ uses: actions/setup-python@v6
59
+ with:
60
+ python-version: "3.12"
61
+ cache: pip
62
+
63
+ - name: Install hal0 (editable + dev extras)
64
+ # Mirrors integration.yml — gets pip/pydantic/etc primed before
65
+ # installer/install.sh runs so the FastAPI process can boot.
66
+ run: |
67
+ python -m venv .venv
68
+ . .venv/bin/activate
69
+ pip install --upgrade pip
70
+ pip install -e ".[dev]"
71
+
72
+ - name: Verify Docker on runner
73
+ # pi-coder.sh and the agent toolboxes rely on docker; surface a
74
+ # clear error early instead of letting smoke-pi-coder.sh fail
75
+ # deep inside install.
76
+ run: |
77
+ docker version
78
+ docker info --format '{{.ServerVersion}}'
79
+
80
+ - name: Run ${{ matrix.agent }} smoke
81
+ id: smoke
82
+ # The script is the contract — see scripts/smoke-${{ matrix.agent }}.sh
83
+ # header for exit-code semantics.
84
+ run: bash scripts/smoke-${{ matrix.agent }}.sh
85
+
86
+ - name: Capture journald on failure
87
+ if: failure()
88
+ run: |
89
+ sudo journalctl -u 'hal0-api*' --no-pager -n 500 > journal-api.log || true
90
+ sudo journalctl -u 'hal0-mcp*' --no-pager -n 500 > journal-mcp.log || true
91
+ systemctl status hal0-api.service --no-pager > status-api.txt 2>&1 || true
92
+
93
+ - name: Upload diagnostics on failure
94
+ if: failure()
95
+ uses: actions/upload-artifact@v7
96
+ with:
97
+ name: agent-shim-smoke-logs
98
+ path: |
99
+ journal-api.log
100
+ journal-mcp.log
101
+ status-api.txt
102
+ if-no-files-found: ignore
103
+
104
+ # ── failure-issue handling ────────────────────────────────────────────
105
+ # Runs only when the smoke job failed. Opens a fresh issue tagged
106
+ # `agent-shim-broken` if none is open, or comments on the existing one
107
+ # with the failing run's URL. This guarantees exactly one open ticket
108
+ # per upstream-broken-us state — no spam, no duplicates.
109
+ notify:
110
+ name: Open/update agent-shim-broken issue
111
+ needs: smoke
112
+ if: failure()
113
+ runs-on: ubuntu-latest
114
+ permissions:
115
+ contents: read
116
+ issues: write
117
+ steps:
118
+ - name: Find or create tracking issue
119
+ uses: actions/github-script@v9
120
+ env:
121
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
122
+ with:
123
+ github-token: ${{ secrets.GITHUB_TOKEN }}
124
+ script: |
125
+ const label = 'agent-shim-broken';
126
+ const runUrl = process.env.RUN_URL;
127
+ const today = new Date().toISOString().slice(0, 10);
128
+
129
+ // Look for any open issue with the label. We want one
130
+ // tracker per upstream-broken-us state, so we attach to the
131
+ // first match and never open duplicates.
132
+ const open = await github.paginate(github.rest.issues.listForRepo, {
133
+ owner: context.repo.owner,
134
+ repo: context.repo.repo,
135
+ state: 'open',
136
+ labels: label,
137
+ per_page: 100,
138
+ });
139
+
140
+ const body = [
141
+ `Nightly agent-shim smoke failed on ${today}.`,
142
+ ``,
143
+ `Run: ${runUrl}`,
144
+ ``,
145
+ `This is the track-latest mitigation defined in ADR-0004 §3.`,
146
+ `Likely cause: an upstream bundled agent (pi-coder / opencode)`,
147
+ `changed a CLI flag, shim contract, or MCP handshake — check`,
148
+ `which matrix lane failed. Diagnose with the run log +`,
149
+ `\`agent-shim-smoke-logs\` artifact attached to the run.`,
150
+ ].join('\n');
151
+
152
+ if (open.length === 0) {
153
+ const created = await github.rest.issues.create({
154
+ owner: context.repo.owner,
155
+ repo: context.repo.repo,
156
+ title: `agent-shim-broken: bundled-agent nightly failing (${today})`,
157
+ body,
158
+ labels: [label],
159
+ });
160
+ core.info(`opened issue #${created.data.number}`);
161
+ } else {
162
+ const issue = open[0];
163
+ await github.rest.issues.createComment({
164
+ owner: context.repo.owner,
165
+ repo: context.repo.repo,
166
+ issue_number: issue.number,
167
+ body: `Still failing on ${today}.\n\nRun: ${runUrl}`,
168
+ });
169
+ core.info(`updated issue #${issue.number}`);
170
+ }
@@ -0,0 +1,74 @@
1
+ name: Bootstrap parity (daily)
2
+
3
+ # Detect drift between the in-tree, audited installer/bootstrap.sh and the
4
+ # LIVE one-liner served at https://hal0.dev/install.sh (hal0-web's mirrored
5
+ # public/install.sh — what `curl https://hal0.dev/install.sh | bash` runs).
6
+ #
7
+ # Why this is NOT a required PR check:
8
+ # The check depends on the live public site. Network flakiness or a known,
9
+ # not-yet-synced drift would block every unrelated PR. Instead it runs on a
10
+ # daily schedule and on demand, surfacing drift in the run output so the
11
+ # installer team can reconcile hal0-web in a follow-up. The header of
12
+ # bootstrap.sh promises the two stay mirrored; this is the safety net.
13
+ #
14
+ # The script is the contract (scripts/check-bootstrap-parity.sh):
15
+ # exit 0 — in sync. exit 1 — drift (unified diff printed).
16
+ # exit 2 — operational error (fetch failed / empty) — NOT read as drift.
17
+
18
+ on:
19
+ schedule:
20
+ # 06:00 UTC daily — early enough that a fresh drift is visible at the
21
+ # start of the working day across the Americas/EU.
22
+ - cron: "0 6 * * *"
23
+ workflow_dispatch:
24
+
25
+ concurrency:
26
+ group: bootstrap-parity
27
+ cancel-in-progress: true
28
+
29
+ permissions:
30
+ contents: read
31
+
32
+ jobs:
33
+ parity:
34
+ name: Diff in-tree bootstrap.sh against live install.sh
35
+ runs-on: ubuntu-latest
36
+ timeout-minutes: 5
37
+
38
+ steps:
39
+ - name: Checkout hal0
40
+ uses: actions/checkout@v6
41
+
42
+ - name: Run bootstrap-parity check
43
+ id: parity
44
+ # Exit 0 = in sync, 1 = drift, 2 = operational error. We surface the
45
+ # script's stdout/stderr (the unified diff lives there) into the step
46
+ # summary so a glance at the run page tells the whole story.
47
+ run: |
48
+ set +e
49
+ bash scripts/check-bootstrap-parity.sh > parity.out 2>&1
50
+ rc=$?
51
+ set -e
52
+
53
+ {
54
+ echo "## Bootstrap parity check"
55
+ echo ""
56
+ echo '```diff'
57
+ cat parity.out
58
+ echo '```'
59
+ } >> "$GITHUB_STEP_SUMMARY"
60
+
61
+ cat parity.out
62
+
63
+ case "$rc" in
64
+ 0)
65
+ echo "::notice::installer/bootstrap.sh is in sync with the live install.sh."
66
+ ;;
67
+ 1)
68
+ echo "::error::DRIFT — installer/bootstrap.sh differs from the live hal0.dev/install.sh. Sync hal0-web:public/install.sh."
69
+ ;;
70
+ *)
71
+ echo "::warning::Could not fetch the live installer (operational error, exit ${rc}). NOT treated as drift."
72
+ ;;
73
+ esac
74
+ exit "$rc"
@@ -0,0 +1,100 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ # Cancel superseded PR runs to save runners; never cancel a push to main
9
+ # (every main commit must build — required checks + the nightly greenness gate).
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
13
+
14
+ # Least privilege: CI only needs to read the repo.
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ python:
20
+ runs-on: ubuntu-latest
21
+ # 3.14 is experimental until every dep ships 3.14 wheels — surface it
22
+ # without reddening main. No-op on PRs, which run 3.12 only.
23
+ continue-on-error: ${{ matrix.python-version == '3.14' }}
24
+ env:
25
+ # fastembed (cognee memory tests) honours FASTEMBED_CACHE_PATH
26
+ # (fastembed/common/utils.py). Pin it to a stable, cacheable dir so the
27
+ # warm step AND pytest share one location that actions/cache persists.
28
+ FASTEMBED_CACHE_PATH: ${{ github.workspace }}/.fastembed-cache
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ # PRs test the primary 3.12 only (fast feedback; matches the required
33
+ # "python (3.12)" status check). Pushes to main test the full supported
34
+ # range so Python-version drift still gates the protected branch.
35
+ python-version: ${{ (github.event_name == 'pull_request' && fromJSON('["3.12"]')) || fromJSON('["3.12","3.13","3.14"]') }}
36
+ steps:
37
+ - uses: actions/checkout@v6
38
+ - uses: actions/setup-python@v6
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+ cache: pip
42
+ - name: Install system deps
43
+ # ffmpeg backs the in-container moonshine audio decoder
44
+ # (packaging/toolbox/moonshine/moonshine_server.py). The redaction
45
+ # tests in tests/providers/test_moonshine_server.py exercise the
46
+ # real subprocess path; without ffmpeg they hit FileNotFoundError
47
+ # instead of the CalledProcessError the code catches.
48
+ run: sudo apt-get update && sudo apt-get install -y --no-install-recommends ffmpeg
49
+ - name: Install
50
+ run: pip install -e ".[dev]"
51
+ - name: Cache fastembed embedding model
52
+ # cognee memory tests (tests/memory/test_cognee_wrapper.py) embed via
53
+ # fastembed, which downloads qdrant/bge-small-en-v1.5-onnx-q (~64 MB)
54
+ # into FASTEMBED_CACHE_PATH on first use. That per-run download
55
+ # intermittently slow-fails (could-not-load-model-from-any-source) and
56
+ # gated unrelated PRs (#442, #445). The model id is fixed, so a static
57
+ # key caches once and restores forever (bump -vN to refresh).
58
+ uses: actions/cache@v5
59
+ with:
60
+ path: ${{ github.workspace }}/.fastembed-cache
61
+ key: fastembed-bge-small-en-v1.5-v2
62
+ - name: Warm fastembed cache
63
+ # On a cache miss, download the model now. fastembed already retries 3x
64
+ # internally; we wrap each attempt in `timeout` so a stalled connection
65
+ # is bounded (~6 min) and retried fresh rather than hanging. Best-effort:
66
+ # on total failure, let pytest surface the error rather than masking it.
67
+ run: |
68
+ for attempt in 1 2 3; do
69
+ timeout 360 python -c "from fastembed import TextEmbedding; TextEmbedding('BAAI/bge-small-en-v1.5'); print('fastembed model warmed')" && exit 0
70
+ echo "::warning::fastembed warm attempt $attempt failed/timed out; retrying in 10s"
71
+ sleep 10
72
+ done
73
+ echo "::warning::fastembed warm-up failed after 3 attempts; cognee tests will surface it"
74
+ - name: Lint
75
+ run: ruff check src tests
76
+ - name: Format check
77
+ run: ruff format --check src tests
78
+ - name: Test
79
+ # Coverage (+ verbose) only on main pushes — it's a report, not a gate,
80
+ # so PRs skip the instrumentation overhead and run a quiet, faster suite.
81
+ run: pytest tests/ ${{ github.event_name == 'push' && '-v --cov=hal0 --cov-report=term-missing' || '-q' }}
82
+
83
+ ui:
84
+ runs-on: ubuntu-latest
85
+ defaults:
86
+ run:
87
+ working-directory: ui
88
+ steps:
89
+ - uses: actions/checkout@v6
90
+ - uses: actions/setup-node@v6
91
+ with:
92
+ node-version: "22"
93
+ cache: npm
94
+ cache-dependency-path: ui/package-lock.json
95
+ - name: Install
96
+ run: npm ci
97
+ - name: Lint
98
+ run: npm run lint
99
+ - name: Build
100
+ run: npm run build