wattetheria 0.2.3 → 0.2.5

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
@@ -586,8 +586,9 @@ read it from the `wattetheria_state` volume; for the full stack, read
586
586
  `./data/wattetheria/control.token`.
587
587
 
588
588
  The supervision console includes an Agent Runtime configuration card for the brain provider.
589
- Saving that form updates the deployment env file under `.wattetheria/deploy/.env` so the next
590
- service restart picks up the new runtime settings without manual env editing.
589
+ Saving that form updates the deployment env file under `.wattetheria/deploy/.env` through the
590
+ container's `/var/lib/wattetheria-deploy` mount, so the next service restart picks up the new
591
+ runtime settings without manual env editing.
591
592
 
592
593
  The Logs page is now a WattSwarm Diagnostics view. It proxies authenticated
593
594
  `/v1/client/wattswarm-diagnostics` to the local Wattswarm UI API so operators can inspect
@@ -696,6 +697,9 @@ Release deployment `.env` example for a host-local OpenClaw gateway:
696
697
  ```env
697
698
  WATTETHERIA_HOST_STATE_DIR=./data/wattetheria
698
699
  WATTSWARM_HOST_STATE_DIR=./data/wattswarm
700
+ WATTETHERIA_WATTSWARM_UI_BASE_URL=http://wattswarm-kernel:7788
701
+ WATTETHERIA_WATTSWARM_SYNC_GRPC_ENDPOINT=http://wattswarm-kernel:7791
702
+ WATTETHERIA_WATTSWARM_AGENT_EVENT_CALLBACK_BASE_URL=http://kernel:7777
699
703
  WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT=http://127.0.0.1:7777
700
704
  WATTETHERIA_AGENT_WATTSWARM_UI_BASE_URL=http://127.0.0.1:7788
701
705
  WATTETHERIA_AGENT_WATTSWARM_SYNC_GRPC_ENDPOINT=http://127.0.0.1:7791
@@ -704,6 +708,7 @@ WATTETHERIA_BRAIN_PROVIDER_KIND=openai-compatible
704
708
  WATTETHERIA_BRAIN_BASE_URL=http://host.docker.internal:18789/v1
705
709
  WATTETHERIA_BRAIN_MODEL=openclaw
706
710
  WATTETHERIA_BRAIN_API_KEY_ENV=WATTETHERIA_BRAIN_API_KEY
711
+ WATTETHERIA_BRAIN_API_KEY=<secret>
707
712
  WATTETHERIA_GATEWAY_URLS=http://gateway.example.com:8080
708
713
  ```
709
714
 
@@ -17,15 +17,17 @@ services:
17
17
  image: ${WATTETHERIA_KERNEL_IMAGE:-wattetheria/wattetheria-kernel:latest}
18
18
  restart: unless-stopped
19
19
  env_file:
20
- - ${WATTETHERIA_RUNTIME_ENV_FILE:-.env.release.local}
20
+ - ${WATTETHERIA_COMPOSE_ENV_FILE:-.env.release.local}
21
21
  depends_on:
22
22
  wattswarm-kernel:
23
23
  condition: service_started
24
24
  environment:
25
25
  WATTETHERIA_DATA_DIR: /var/lib/wattetheria
26
26
  WATTETHERIA_CONTROL_PLANE_BIND: 0.0.0.0:7777
27
- WATTETHERIA_WATTSWARM_UI_BASE_URL: http://wattswarm-kernel:7788
28
- WATTETHERIA_WATTSWARM_SYNC_GRPC_ENDPOINT: http://wattswarm-kernel:7791
27
+ WATTETHERIA_RUNTIME_ENV_FILE: ${WATTETHERIA_RUNTIME_ENV_FILE:-/var/lib/wattetheria-deploy/.env.release.local}
28
+ WATTETHERIA_WATTSWARM_UI_BASE_URL: ${WATTETHERIA_WATTSWARM_UI_BASE_URL:-http://wattswarm-kernel:7788}
29
+ WATTETHERIA_WATTSWARM_SYNC_GRPC_ENDPOINT: ${WATTETHERIA_WATTSWARM_SYNC_GRPC_ENDPOINT:-http://wattswarm-kernel:7791}
30
+ WATTETHERIA_WATTSWARM_AGENT_EVENT_CALLBACK_BASE_URL: ${WATTETHERIA_WATTSWARM_AGENT_EVENT_CALLBACK_BASE_URL:-http://kernel:7777}
29
31
  WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT: ${WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT:-http://127.0.0.1:7777}
30
32
  WATTETHERIA_AGENT_WATTSWARM_UI_BASE_URL: ${WATTETHERIA_AGENT_WATTSWARM_UI_BASE_URL:-http://127.0.0.1:7788}
31
33
  WATTETHERIA_AGENT_WATTSWARM_SYNC_GRPC_ENDPOINT: ${WATTETHERIA_AGENT_WATTSWARM_SYNC_GRPC_ENDPOINT:-http://127.0.0.1:7791}
@@ -34,12 +36,14 @@ services:
34
36
  WATTETHERIA_BRAIN_BASE_URL: ${WATTETHERIA_BRAIN_BASE_URL:-}
35
37
  WATTETHERIA_BRAIN_MODEL: ${WATTETHERIA_BRAIN_MODEL:-}
36
38
  WATTETHERIA_BRAIN_API_KEY_ENV: ${WATTETHERIA_BRAIN_API_KEY_ENV:-}
39
+ WATTETHERIA_BRAIN_API_KEY: ${WATTETHERIA_BRAIN_API_KEY:-}
37
40
  WATTETHERIA_SERVICENET_BASE_URL: ${WATTETHERIA_SERVICENET_BASE_URL:-}
38
41
  WATTETHERIA_GATEWAY_URLS: ${WATTETHERIA_GATEWAY_URLS:-}
39
42
  WATTETHERIA_GATEWAY_CONFIG_PATH: ${WATTETHERIA_GATEWAY_CONFIG_PATH:-/var/lib/wattswarm/startup_config.json}
40
43
  WATTETHERIA_AUTONOMY_ENABLED: ${WATTETHERIA_AUTONOMY_ENABLED:-false}
41
44
  WATTETHERIA_AUTONOMY_INTERVAL_SEC: ${WATTETHERIA_AUTONOMY_INTERVAL_SEC:-30}
42
45
  volumes:
46
+ - ${WATTETHERIA_DEPLOY_DIR:-.}:/var/lib/wattetheria-deploy
43
47
  - ${WATTETHERIA_HOST_STATE_DIR:-./data/wattetheria}:/var/lib/wattetheria
44
48
  - ${WATTSWARM_HOST_STATE_DIR:-./data/wattswarm}:/var/lib/wattswarm:ro
45
49
  ports:
@@ -110,8 +114,8 @@ services:
110
114
  WATTSWARM_UDP_ANNOUNCE_MODE: ${WATTSWARM_UDP_ANNOUNCE_MODE:-multicast}
111
115
  WATTSWARM_UDP_ANNOUNCE_ADDR: ${WATTSWARM_UDP_ANNOUNCE_ADDR:-239.255.42.99}
112
116
  WATTSWARM_UDP_ANNOUNCE_PORT: ${WATTSWARM_UDP_ANNOUNCE_PORT:-37931}
113
- WATTSWARM_IROH_RELAY_URLS: ${WATTSWARM_IROH_RELAY_URLS:-}
114
- WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS: ${WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS:-true}
117
+ WATTSWARM_IROH_RELAY_URLS: ${WATTSWARM_IROH_RELAY_URLS:-https://relay.wattetheria.com}
118
+ WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS: ${WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS:-false}
115
119
  WATTSWARM_PUBLIC_BOOTSTRAP_URLS: ${WATTSWARM_PUBLIC_BOOTSTRAP_URLS:-}
116
120
  WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS: ${WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS:-}
117
121
  WATTSWARM_PUBLIC_GATEWAY_URLS: ${WATTSWARM_PUBLIC_GATEWAY_URLS:-}
package/lib/cli.js CHANGED
@@ -37,7 +37,9 @@ const DEFAULT_ENV_ENTRIES = [
37
37
  ["WATTSWARM_UDP_ANNOUNCE_HOST_PORT", "37931"],
38
38
  ["WATTETHERIA_HOST_STATE_DIR", "./data/wattetheria"],
39
39
  ["WATTSWARM_HOST_STATE_DIR", "./data/wattswarm"],
40
- ["WATTETHERIA_RUNTIME_ENV_FILE", ".env.release.local"],
40
+ ["WATTETHERIA_COMPOSE_ENV_FILE", ".env.release.local"],
41
+ ["WATTETHERIA_DEPLOY_DIR", "."],
42
+ ["WATTETHERIA_RUNTIME_ENV_FILE", "/var/lib/wattetheria-deploy/.env.release.local"],
41
43
  ["WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT", "http://127.0.0.1:7777"],
42
44
  ["WATTETHERIA_AGENT_WATTSWARM_UI_BASE_URL", "http://127.0.0.1:7788"],
43
45
  ["WATTETHERIA_AGENT_WATTSWARM_SYNC_GRPC_ENDPOINT", "http://127.0.0.1:7791"],
@@ -55,6 +57,8 @@ const DEFAULT_ENV_ENTRIES = [
55
57
  ["WATTSWARM_P2P_ENABLED", "true"],
56
58
  ["WATTSWARM_P2P_MDNS", "true"],
57
59
  ["WATTSWARM_P2P_PORT", "4001"],
60
+ ["WATTSWARM_IROH_RELAY_URLS", "https://relay.wattetheria.com"],
61
+ ["WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS", "false"],
58
62
  ["WATTSWARM_WORKER_CONCURRENCY", "16"],
59
63
  ["WATTSWARM_WORKER_POLL_MS", "250"],
60
64
  ["WATTSWARM_WORKER_LEASE_MS", "30000"],
@@ -708,7 +712,10 @@ function ensureDeploymentAssets(options) {
708
712
  refreshDeploymentComposeAsset(templateComposePath, targetComposePath, options);
709
713
 
710
714
  const envMap = readEnvFile(targetEnvPath);
711
- envMap.set("WATTETHERIA_RUNTIME_ENV_FILE", path.basename(targetEnvPath));
715
+ const envFileName = path.basename(targetEnvPath);
716
+ envMap.set("WATTETHERIA_COMPOSE_ENV_FILE", envFileName);
717
+ envMap.set("WATTETHERIA_DEPLOY_DIR", ".");
718
+ envMap.set("WATTETHERIA_RUNTIME_ENV_FILE", `/var/lib/wattetheria-deploy/${envFileName}`);
712
719
  ensureDatabasePassword(envMap);
713
720
  if (options.tag) {
714
721
  pinImageTags(envMap, options.tag);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wattetheria",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Wattetheria deployment CLI",
5
5
  "license": "Apache-2.0",
6
6
  "type": "commonjs",