@arkhera30/cli 0.3.1 → 0.3.3
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 +70 -0
- 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
|
|
@@ -2800,6 +2859,17 @@ function buildComposeEnv(runtime, ports, slotDataPath) {
|
|
|
2800
2859
|
...process.env,
|
|
2801
2860
|
HORUS_RUNTIME: runtime.name,
|
|
2802
2861
|
TEST_DATA_PATH: slotDataPath,
|
|
2862
|
+
// Override base compose port variables so the base file binds to test ports.
|
|
2863
|
+
// Without these, Docker Compose merges (appends) the ports lists from both
|
|
2864
|
+
// files, causing both the production port (e.g. 8100) and the test port
|
|
2865
|
+
// (e.g. 9100) to be bound — failing if the production stack is already up.
|
|
2866
|
+
ANVIL_PORT: String(ports.anvil),
|
|
2867
|
+
FORGE_PORT: String(ports.forge),
|
|
2868
|
+
VAULT_MCP_PORT: String(ports.vault_mcp),
|
|
2869
|
+
VAULT_ROUTER_PORT: String(ports.vault_router),
|
|
2870
|
+
VAULT_REST_PORT_PERSONAL: String(ports.vault_svc),
|
|
2871
|
+
TYPESENSE_PORT: String(ports.typesense),
|
|
2872
|
+
// TEST_PORT_* vars for overlay reference (harmless duplicates after above fix)
|
|
2803
2873
|
TEST_PORT_ANVIL: String(ports.anvil),
|
|
2804
2874
|
TEST_PORT_TYPESENSE: String(ports.typesense),
|
|
2805
2875
|
TEST_PORT_VAULT_SVC: String(ports.vault_svc),
|