@arkhera30/cli 0.5.0 → 0.5.2

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/dist/index.js CHANGED
@@ -52,7 +52,7 @@ var DEFAULT_PORTS = {
52
52
  vault_router: 8050,
53
53
  // internal routing layer
54
54
  ui: 8400,
55
- // horus-uiuser-facing web interface
55
+ // readerHorus Reader SPA
56
56
  forge: 8200,
57
57
  typesense: 8108,
58
58
  // Typesense search engine
@@ -68,7 +68,7 @@ var SERVICES = [
68
68
  // replaces 'vault'
69
69
  "vault-mcp",
70
70
  "forge",
71
- "horus-ui",
71
+ "reader",
72
72
  "typesense",
73
73
  "neo4j"
74
74
  ];
@@ -673,11 +673,6 @@ var FORGE_SERVICE = ` # \u2500\u2500 Forge \u2500\u2500\u2500\u2500\u2500\u2500
673
673
  - FORGE_SCAN_PATHS=\${FORGE_SCAN_PATHS:-/data/repos}
674
674
  - FORGE_SESSION_TTL_MS=\${FORGE_SESSION_TTL_MS:-1800000}
675
675
  - GITHUB_TOKEN=\${GITHUB_TOKEN:-}
676
- # Fix git "dubious ownership" on bind-mounted repos (bug 4a32728f).
677
- # Container UID differs from host UID that owns mounted repos.
678
- - GIT_CONFIG_COUNT=1
679
- - GIT_CONFIG_KEY_0=safe.directory
680
- - GIT_CONFIG_VALUE_0=*
681
676
  - TYPESENSE_HOST=typesense
682
677
  - TYPESENSE_PORT=8108
683
678
  - TYPESENSE_API_KEY=\${TYPESENSE_API_KEY:-horus-local-key}
@@ -757,30 +752,13 @@ var TYPESENSE_SERVICE = ` # \u2500\u2500 Typesense \u2500\u2500\u2500\u2500\u25
757
752
  retries: 3
758
753
  start_period: 5s
759
754
  restart: unless-stopped`;
760
- var HORUS_UI_SERVICE = ` # \u2500\u2500 Horus UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
761
- # Web interface \u2014 React SPA served by Express proxy on port 8400.
762
- # Proxies /api/anvil, /api/vault, /api/forge to the respective services.
763
- # Stores dashboard configs and preferences in _system/ui/ (not indexed by Anvil).
764
- horus-ui:
765
- image: ghcr.io/arjunkhera/horus/horus-ui:latest
755
+ var READER_SERVICE = ` # \u2500\u2500 Reader \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
756
+ # Horus Reader \u2014 CDN React SPA served by nginx:alpine on port 8400.
757
+ # Pure static files; connects directly to Anvil REST API from the browser.
758
+ reader:
759
+ image: ghcr.io/arjunkhera/horus/reader:latest
766
760
  ports:
767
761
  - "\${UI_PORT:-8400}:8400"
768
- volumes:
769
- - \${HORUS_DATA_PATH}/notes:/data/notes:rw
770
- environment:
771
- - PORT=8400
772
- - HORUS_DATA_PATH=/data/notes
773
- - ANVIL_URL=http://anvil:8100
774
- - VAULT_URL=http://vault-mcp:8300
775
- - FORGE_URL=http://forge:8200
776
- - NODE_ENV=production
777
- depends_on:
778
- anvil:
779
- condition: service_healthy
780
- vault-mcp:
781
- condition: service_healthy
782
- forge:
783
- condition: service_healthy
784
762
  networks:
785
763
  - horus-net
786
764
  restart: unless-stopped
@@ -788,14 +766,14 @@ var HORUS_UI_SERVICE = ` # \u2500\u2500 Horus UI \u2500\u2500\u2500\u2500\u2500
788
766
  deploy:
789
767
  resources:
790
768
  limits:
791
- memory: 256m
792
- reservations:
793
769
  memory: 64m
770
+ reservations:
771
+ memory: 32m
794
772
  healthcheck:
795
- test: ["CMD", "wget", "--spider", "-q", "http://localhost:8400/api/health"]
773
+ test: ["CMD", "wget", "--spider", "-q", "http://localhost:8400/health"]
796
774
  interval: 30s
797
775
  timeout: 5s
798
- start_period: 30s
776
+ start_period: 10s
799
777
  retries: 3`;
800
778
  function generateTestComposeFile(config) {
801
779
  const vaultEntries = Object.entries(config.vaults).sort(([a], [b]) => a.localeCompare(b));
@@ -853,7 +831,7 @@ services:
853
831
  volumes:
854
832
  - "\${TEST_DATA_PATH:-/tmp/horus-test}/typesense-data:/data"
855
833
 
856
- horus-ui:
834
+ reader:
857
835
  ports:
858
836
  - "\${TEST_PORT_UI:-9260}:8400"
859
837
 
@@ -1009,7 +987,7 @@ ${vaultRouterDependsOn}
1009
987
  "",
1010
988
  TYPESENSE_SERVICE,
1011
989
  "",
1012
- ...config.enable_ui !== false ? [HORUS_UI_SERVICE, ""] : [],
990
+ ...config.enable_ui !== false ? [READER_SERVICE, ""] : [],
1013
991
  "# \u2500\u2500 Networks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
1014
992
  "networks:",
1015
993
  " horus-net:",
@@ -2316,6 +2294,15 @@ var updateCommand = new Command7("update").description("Update Horus to the late
2316
2294
  snapshotSpinner.warn("Could not save snapshot (update will proceed)");
2317
2295
  console.log(chalk7.dim(error.message));
2318
2296
  }
2297
+ const composeSpinner = ora6("Updating compose configuration...").start();
2298
+ try {
2299
+ const runtimeName = runtime.name === "podman" ? "podman" : "docker";
2300
+ installComposeFile(config, runtimeName);
2301
+ composeSpinner.succeed("Compose configuration updated");
2302
+ } catch (error) {
2303
+ composeSpinner.warn("Could not update compose configuration \u2014 using existing file");
2304
+ console.log(chalk7.dim(error.message));
2305
+ }
2319
2306
  console.log("");
2320
2307
  console.log(chalk7.bold("Pulling latest images..."));
2321
2308
  try {
package/guides/index.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": 1,
3
- "built_at": "2026-04-25T06:44:43.612Z",
3
+ "built_at": "2026-04-30T03:48:46.120Z",
4
4
  "guide_count": 5,
5
5
  "guides": [
6
6
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkhera30/cli",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "CLI for managing the Horus AI development stack",
5
5
  "type": "module",
6
6
  "bin": {