@merittdev/horus 0.19.1 → 0.20.0

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.
package/README.md CHANGED
@@ -45,9 +45,7 @@ Horus is not another dashboard, alerting tool, or log viewer. It sits on top of
45
45
  ## Getting started
46
46
 
47
47
  ```bash
48
- horus setup
49
48
  horus init
50
- horus index
51
49
  horus connect elasticsearch # optional runtime connectors
52
50
  horus investigate "checkout latency spike"
53
51
  horus investigations # list saved IDs
@@ -151,7 +149,7 @@ Horus is organized in four layers:
151
149
 
152
150
  **Source Intelligence**
153
151
 
154
- - Horus source intelligence backend — code graph, semantic search, impact analysis, ownership across TypeScript/JavaScript and Python (tree-sitter).
152
+ - Horus source intelligence backend (`packages/source-py`, ships inside the bundle) — code graph, semantic search, impact analysis, ownership across TypeScript/JavaScript, Python, Go, Java, and Rust (tree-sitter).
155
153
 
156
154
  **Runtime Evidence**
157
155
 
@@ -183,7 +181,7 @@ The **only** code-intelligence gap Horus owns is **queue-boundary stitching**: t
183
181
 
184
182
  > If the Horus source intelligence backend is unavailable, Horus can still collect runtime evidence, but source context, impact analysis, change analysis, and queue stitching become degraded.
185
183
 
186
- Horus talks to the source intelligence backend over **HTTP/MCP only** (no CLI shell-outs for queries). Run `horus index` in a repository to start and register its source intelligence host.
184
+ Horus talks to the source intelligence backend over **HTTP/MCP only** (no CLI shell-outs for queries). Run `horus init` in a repository to start and register its source intelligence host.
187
185
 
188
186
  ## Configuration
189
187
 
@@ -232,28 +230,28 @@ export default defineConfig({
232
230
 
233
231
  **No connector runs without an explicit project/env scope** — there are no global connector defaults.
234
232
 
235
- **Secrets are never committed.** Connector credentials are read from environment variables at runtime. Keep them in a gitignored file (e.g. `~/.horus.env`) and `source` it before running. For a full reference on which Horus files to commit and which to gitignore, see **[docs/gitignore-guide.md](./docs/gitignore-guide.md)**.
233
+ **Secrets are never committed.** `horus connect` encrypts connector credentials at rest into `.horus/secrets.local.json` (AES-256-GCM, never `config.json`) and auto-adds `.horus/` to `.gitignore`; environment variables are also supported at runtime. For the full secrets and gitignore model, see **[horus.sh/docs/security](https://horus.sh/docs/security)**.
236
234
 
237
235
  ## Install
238
236
 
239
- See **[docs/install.md](./docs/install.md)** for full install, update, and uninstall instructions.
237
+ See **[horus.sh/docs/installation](https://horus.sh/docs/installation)** for full install, update, and uninstall instructions.
240
238
 
241
239
  ```bash
242
240
  curl -fsSL https://horus.sh/install.sh | bash
243
241
  npm install -g @merittdev/horus
244
242
  brew install meritt-dev/tap/horus
245
243
  horus --version
246
- horus setup
244
+ horus init
247
245
  ```
248
246
 
249
- The curl installer downloads the Horus CLI from GitHub Releases and attempts to install the Horus source intelligence backend. All three channels install the same `horus` binary.
247
+ The curl installer downloads the Horus CLI from GitHub Releases and installs the source intelligence backend from the wheel **bundled in the same release** — one bundle, one version, nothing on PyPI. All three channels ship the same `horus` binary with the backend wheel alongside it; `horus init` installs the backend automatically when it's missing.
250
248
 
251
249
  ### What the installer installs
252
250
 
253
251
  | Component | Role | Required |
254
252
  | --- | --- | --- |
255
253
  | **Horus CLI** | The `horus` command | Yes |
256
- | **Horus source intelligence backend** | Enables `horus index`, `horus explain`, `horus changes`, `horus architecture` | Optional |
254
+ | **Horus source intelligence backend** | Enables `horus init`, `horus explain`, `horus changes`, `horus architecture` | Optional |
257
255
 
258
256
  ### Prerequisites
259
257
 
@@ -268,16 +266,16 @@ The installer **does not** configure Elasticsearch, MongoDB, Grafana, Redis, or
268
266
  ### Direct download (without the curl installer)
269
267
 
270
268
  ```bash
271
- # Replace vX.Y.Z with the current release tag
272
- curl -fsSL https://github.com/meritt-dev/horus/releases/download/v0.12.0/horus-v0.12.0 -o horus
269
+ # Replace vX.Y.Z with the current release tag (see github.com/meritt-dev/horus/releases)
270
+ curl -fsSL https://github.com/meritt-dev/horus/releases/download/vX.Y.Z/horus-vX.Y.Z -o horus
273
271
  chmod +x horus
274
272
  sudo mv horus /usr/local/bin/horus
275
273
  horus --version
276
274
  ```
277
275
 
278
- To **update** to a newer version, re-run the installer — it overwrites the binary and leaves your config untouched. To **uninstall**, see **[docs/install.md#uninstall](./docs/install.md#uninstall)**.
276
+ To **update** to a newer version, re-run the installer — it overwrites the binary and leaves your config untouched. To **uninstall**, see **[horus.sh/docs/installation#uninstall](https://horus.sh/docs/installation#uninstall)**.
279
277
 
280
- If something goes wrong after install, see **[docs/troubleshooting.md](./docs/troubleshooting.md)**.
278
+ If something goes wrong after install, run `horus doctor` and see **[horus.sh/docs/installation#troubleshooting](https://horus.sh/docs/installation#troubleshooting)**.
281
279
 
282
280
  ## Local development
283
281
 
@@ -287,7 +285,7 @@ docker compose up -d # Postgres 16 on localhost:5433
287
285
  pnpm build # builds apps/horus/dist/index.cjs
288
286
 
289
287
  # Per repository: start the source intelligence host and stitch queue boundaries
290
- horus index
288
+ horus init
291
289
 
292
290
  source ~/.horus.env
293
291
 
@@ -316,7 +314,7 @@ horus investigate --help
316
314
  | --- | --- |
317
315
  | `horus status [--project --env]` | Per-project/env connector-health matrix |
318
316
  | `horus connect <type>` | Add/update a runtime connector — `elasticsearch` / `mongodb` / `postgres` / `sentry` / `axiom` / `grafana` / `redis` (plus `ai` to configure an AI provider) |
319
- | `horus index --project <p> --env <e>` | Build the queue map (stitcher) for a project |
317
+ | `horus init --project <p> --env <e>` | Build the queue map (stitcher) for a project |
320
318
  | `horus hosts [--reap]` | List source-intelligence hosts and live status; `--reap` stops orphaned hosts |
321
319
  | `horus stop [--all]` | Stop this repo's source-intelligence host (`--all` stops every host) |
322
320
  | `horus investigate --project <p> --env <e> "<hint>"` | Full deterministic investigation report |
@@ -333,17 +331,15 @@ horus investigate --help
333
331
  A repo carries a `.horus/config.json` (discovered by walking up from the working directory, like `.git`), and a global registry (`~/.horus/registry.json`) lets `--name` resolve a project from anywhere.
334
332
 
335
333
  ```bash
336
- horus setup
337
-
338
334
  cd /repos/atlas-payments
339
- horus index
335
+ horus init
340
336
 
341
337
  horus investigate "checkout latency spike"
342
338
  horus investigate --name atlas-payments "checkout latency spike"
343
339
  horus projects
344
340
  ```
345
341
 
346
- `horus index` reuses an already-running source intelligence host when one is healthy. Runtime connectors are added to the env block of `.horus/config.json` afterwards.
342
+ `horus init` reuses an already-running source intelligence host when one is healthy. Runtime connectors are added to the env block of `.horus/config.json` afterwards.
347
343
 
348
344
  ## Layout
349
345
 
Binary file