@arkhera30/cli 0.3.0 → 0.3.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.
Files changed (2) hide show
  1. package/dist/index.js +62 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -43,6 +43,7 @@ var LEGACY_HORUS_DIR = join(homedir(), ".horus");
43
43
  var CONFIG_PATH = join(HORUS_DIR, "config.yaml");
44
44
  var ENV_PATH = join(HORUS_DIR, ".env");
45
45
  var COMPOSE_PATH = join(HORUS_DIR, "docker-compose.yml");
46
+ var COMPOSE_TEST_PATH = join(HORUS_DIR, "docker-compose.test.yml");
46
47
  var DEFAULT_PORTS = {
47
48
  anvil: 8100,
48
49
  vault_rest: 8e3,
@@ -725,6 +726,63 @@ var HORUS_UI_SERVICE = ` # \u2500\u2500 Horus UI \u2500\u2500\u2500\u2500\u2500
725
726
  timeout: 5s
726
727
  start_period: 30s
727
728
  retries: 3`;
729
+ var TEST_COMPOSE_CONTENT = `# \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
730
+ # Horus \u2014 Shadow Stack Overlay for Integration Testing
731
+ # \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
732
+ # Usage (managed by \`horus test-env acquire\`):
733
+ #
734
+ # docker compose \\
735
+ # -p horus-test-0 \\
736
+ # -f ~/Horus/docker-compose.yml \\
737
+ # -f ~/Horus/docker-compose.test.yml \\
738
+ # up -d
739
+ #
740
+ # All TEST_PORT_* and TEST_DATA_PATH are set by \`horus test-env acquire\`.
741
+ # Slot 0 defaults: ports 9100-9399, data at ~/Horus/data/test-env/slot-0/
742
+ #
743
+ # NOTE: vault-personal is assumed as the primary vault name. If your config
744
+ # uses a different vault name, set TEST_VAULT_NAME accordingly.
745
+ # \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
746
+
747
+ services:
748
+ anvil:
749
+ ports:
750
+ - "\${TEST_PORT_ANVIL:-9100}:8100"
751
+ volumes:
752
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/notes:/data/notes:rw"
753
+
754
+ vault-personal:
755
+ ports:
756
+ - "\${TEST_PORT_VAULT_SVC:-9101}:8000"
757
+ volumes:
758
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/vaults/personal:/data/knowledge-repo:rw"
759
+
760
+ vault-router:
761
+ ports:
762
+ - "\${TEST_PORT_VAULT_ROUTER:-9150}:8400"
763
+
764
+ vault-mcp:
765
+ ports:
766
+ - "\${TEST_PORT_VAULT_MCP:-9200}:8300"
767
+
768
+ forge:
769
+ ports:
770
+ - "\${TEST_PORT_FORGE:-9250}:8200"
771
+ volumes:
772
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/registry:/data/registry:rw"
773
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/workspaces:/data/workspaces:rw"
774
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/sessions:/data/sessions:rw"
775
+
776
+ typesense:
777
+ ports:
778
+ - "\${TEST_PORT_TYPESENSE:-9108}:8108"
779
+ volumes:
780
+ - "\${TEST_DATA_PATH:-/tmp/horus-test}/typesense-data:/data"
781
+
782
+ horus-ui:
783
+ ports:
784
+ - "\${TEST_PORT_UI:-9260}:8400"
785
+ `;
728
786
  function generateComposeFile(config, runtime) {
729
787
  const vaultEntries = Object.entries(config.vaults).sort(([a], [b]) => a.localeCompare(b));
730
788
  const vaultServices = vaultEntries.map(([name, vault], index) => {
@@ -874,6 +932,7 @@ function installComposeFile(config, runtime) {
874
932
  ensureHorusDir();
875
933
  const content = generateComposeFile(config, runtime);
876
934
  writeFileSync2(COMPOSE_PATH, content, "utf-8");
935
+ writeFileSync2(COMPOSE_TEST_PATH, TEST_COMPOSE_CONTENT, "utf-8");
877
936
  }
878
937
 
879
938
  // src/commands/connect.ts
@@ -1665,7 +1724,8 @@ var upCommand = new Command3("up").description("Start the Horus stack").option("
1665
1724
  console.log("");
1666
1725
  console.log(chalk3.bold("Starting Horus services..."));
1667
1726
  try {
1668
- await composeStreaming(runtime, ["up", "-d"]);
1727
+ const upArgs = opts.pull ? ["up", "-d", "--force-recreate"] : ["up", "-d"];
1728
+ await composeStreaming(runtime, upArgs);
1669
1729
  } catch (error) {
1670
1730
  console.log(chalk3.red("Failed to start services."));
1671
1731
  console.log(chalk3.dim(error.message));
@@ -2142,7 +2202,7 @@ var updateCommand = new Command7("update").description("Update Horus to the late
2142
2202
  console.log("");
2143
2203
  console.log(chalk7.bold("Restarting services..."));
2144
2204
  try {
2145
- await composeStreaming(runtime, ["up", "-d"]);
2205
+ await composeStreaming(runtime, ["up", "-d", "--force-recreate"]);
2146
2206
  } catch (error) {
2147
2207
  console.log(chalk7.red("Failed to restart services."));
2148
2208
  console.log(chalk7.dim(error.message));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkhera30/cli",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "CLI for managing the Horus AI development stack",
5
5
  "type": "module",
6
6
  "bin": {