wattetheria 0.1.10 → 0.2.1

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
@@ -177,7 +177,7 @@ Read the diagram in layers:
177
177
  - Strategy directives, bootstrap state, and role-aware progression for agent operation
178
178
  - World zones, official map state, travel context, and dynamic world events
179
179
  - Missions, organizations, governance-linked coordination, and influence metrics
180
- - Topic-backed emergent coordination surfaces on top of `wattswarm`
180
+ - Topic-backed emergent coordination surfaces on top of `wattswarm`, keyed by Wattswarm `network_id + feed_key + scope_hint` when querying or streaming topic activity
181
181
  - Agent social state in internal `crates/social`, including friend requests, friendships, blocks, DM threads, DM messages, and outbound policy checks
182
182
  - Emergency evaluation and event-driven pressure signals for mission generation
183
183
  - System-generated world events driven by governance instability and unresolved frontier pressure
@@ -591,8 +591,8 @@ service restart picks up the new runtime settings without manual env editing.
591
591
 
592
592
  The Logs page is now a WattSwarm Diagnostics view. It proxies authenticated
593
593
  `/v1/client/wattswarm-diagnostics` to the local Wattswarm UI API so operators can inspect
594
- network-service status, local peer id, connected peer count, subscribed scopes, and structured
595
- Wattswarm diagnostics for libp2p transport, gossip publish/ingest, backfill, and callback
594
+ network-service status, local node id, connected node count, subscribed scopes, and structured
595
+ Wattswarm diagnostics for Iroh transport, gossip publish/ingest, backfill, and callback
596
596
  delivery. Wattetheria still keeps its own local diagnostics at `diagnostics/local_node.jsonl`
597
597
  through `/v1/client/diagnostics`, but multi-node network debugging should start with the
598
598
  WattSwarm diagnostics feed.
@@ -682,7 +682,7 @@ Example OpenClaw/OpenAI-compatible config:
682
682
  "kind": "openai-compatible",
683
683
  "base_url": "http://127.0.0.1:4000/v1",
684
684
  "model": "openclaw-agent",
685
- "api_key_env": "OPENCLAW_API_KEY"
685
+ "api_key_env": "WATTETHERIA_BRAIN_API_KEY"
686
686
  },
687
687
  "wattswarm_ui_base_url": "http://127.0.0.1:7788",
688
688
  "servicenet_base_url": "http://127.0.0.1:8042",
@@ -703,14 +703,16 @@ WATTETHERIA_AGENT_HOST_DATA_DIR=./data/wattetheria
703
703
  WATTETHERIA_BRAIN_PROVIDER_KIND=openai-compatible
704
704
  WATTETHERIA_BRAIN_BASE_URL=http://host.docker.internal:18789/v1
705
705
  WATTETHERIA_BRAIN_MODEL=openclaw
706
- WATTETHERIA_BRAIN_API_KEY_ENV=OPENCLAW_API_KEY
706
+ WATTETHERIA_BRAIN_API_KEY_ENV=WATTETHERIA_BRAIN_API_KEY
707
707
  WATTETHERIA_GATEWAY_URLS=http://gateway.example.com:8080
708
- OPENCLAW_API_KEY=replace-me
709
708
  ```
710
709
 
711
710
  `docker-compose.release.yml` also mounts `${WATTSWARM_HOST_STATE_DIR}/startup_config.json` into the
712
711
  kernel container. If `WATTETHERIA_GATEWAY_URLS` is unset, the kernel now falls back to `gateway_urls`
713
- saved by the Wattswarm startup UI in that file.
712
+ saved by the Wattswarm startup UI in that file. Wattetheria also resolves coarse node geo location
713
+ at startup and syncs the resulting `latitude` / `longitude` into that mounted startup config so
714
+ Wattswarm can publish nearby-discovery coordinates without exposing editable geo fields in the
715
+ startup UI.
714
716
 
715
717
  When Wattetheria registers `core-agent` with Wattswarm, it keeps the brain/runtime
716
718
  `base_url` pointed at the OpenAI-compatible gateway for `/execute` work and exposes a
@@ -39,7 +39,6 @@ services:
39
39
  WATTETHERIA_GATEWAY_CONFIG_PATH: ${WATTETHERIA_GATEWAY_CONFIG_PATH:-/var/lib/wattswarm/startup_config.json}
40
40
  WATTETHERIA_AUTONOMY_ENABLED: ${WATTETHERIA_AUTONOMY_ENABLED:-false}
41
41
  WATTETHERIA_AUTONOMY_INTERVAL_SEC: ${WATTETHERIA_AUTONOMY_INTERVAL_SEC:-30}
42
- OPENCLAW_API_KEY: ${OPENCLAW_API_KEY:-}
43
42
  volumes:
44
43
  - ${WATTETHERIA_HOST_STATE_DIR:-./data/wattetheria}:/var/lib/wattetheria
45
44
  - ${WATTSWARM_HOST_STATE_DIR:-./data/wattswarm}:/var/lib/wattswarm:ro
@@ -105,12 +104,23 @@ services:
105
104
  WATTSWARM_P2P_ENABLED: ${WATTSWARM_P2P_ENABLED:-true}
106
105
  WATTSWARM_P2P_MDNS: ${WATTSWARM_P2P_MDNS:-true}
107
106
  WATTSWARM_P2P_PORT: ${WATTSWARM_P2P_PORT:-4001}
107
+ WATTSWARM_NEARBY_DISCOVERY_ENABLED: ${WATTSWARM_NEARBY_DISCOVERY_ENABLED:-true}
108
+ WATTSWARM_NEARBY_DISCOVERY_RADIUS_KM: ${WATTSWARM_NEARBY_DISCOVERY_RADIUS_KM:-1000}
109
+ WATTSWARM_NEARBY_DISCOVERY_INTERVAL_MS: ${WATTSWARM_NEARBY_DISCOVERY_INTERVAL_MS:-30000}
110
+ WATTSWARM_NEARBY_DISCOVERY_TTL_MS: ${WATTSWARM_NEARBY_DISCOVERY_TTL_MS:-300000}
108
111
  WATTSWARM_BOOTSTRAP_EXECUTOR_NAME: rt
109
112
  WATTSWARM_BOOTSTRAP_EXECUTOR_URL: http://wattswarm-runtime:8787
110
113
  WATTSWARM_UDP_ANNOUNCE_ENABLED: ${WATTSWARM_UDP_ANNOUNCE_ENABLED:-false}
111
114
  WATTSWARM_UDP_ANNOUNCE_MODE: ${WATTSWARM_UDP_ANNOUNCE_MODE:-multicast}
112
115
  WATTSWARM_UDP_ANNOUNCE_ADDR: ${WATTSWARM_UDP_ANNOUNCE_ADDR:-239.255.42.99}
113
116
  WATTSWARM_UDP_ANNOUNCE_PORT: ${WATTSWARM_UDP_ANNOUNCE_PORT:-37931}
117
+ WATTSWARM_IROH_RELAY_URLS: ${WATTSWARM_IROH_RELAY_URLS:-}
118
+ WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS: ${WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS:-true}
119
+ WATTSWARM_PUBLIC_BOOTSTRAP_URLS: ${WATTSWARM_PUBLIC_BOOTSTRAP_URLS:-}
120
+ WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS: ${WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS:-}
121
+ WATTSWARM_PUBLIC_GATEWAY_URLS: ${WATTSWARM_PUBLIC_GATEWAY_URLS:-}
122
+ WATTSWARM_PUBLIC_DISCOVERY_URLS: ${WATTSWARM_PUBLIC_DISCOVERY_URLS:-}
123
+ WATTSWARM_NETWORK_JOIN_MANIFEST_URLS: ${WATTSWARM_NETWORK_JOIN_MANIFEST_URLS:-}
114
124
  volumes:
115
125
  - ${WATTSWARM_HOST_STATE_DIR:-./data/wattswarm}:/var/lib/wattswarm
116
126
  ports:
package/lib/cli.js CHANGED
@@ -49,13 +49,16 @@ const DEFAULT_ENV_ENTRIES = [
49
49
  ["WATTETHERIA_SERVICENET_BASE_URL", ""],
50
50
  ["WATTETHERIA_AUTONOMY_ENABLED", "false"],
51
51
  ["WATTETHERIA_AUTONOMY_INTERVAL_SEC", "30"],
52
- ["OPENCLAW_API_KEY", ""],
53
52
  ["WATTSWARM_PG_DB", "wattswarm"],
54
53
  ["WATTSWARM_PG_USER", "postgres"],
55
54
  ["WATTSWARM_PG_PASSWORD", "replace-with-strong-password"],
56
55
  ["WATTSWARM_P2P_ENABLED", "true"],
57
56
  ["WATTSWARM_P2P_MDNS", "true"],
58
57
  ["WATTSWARM_P2P_PORT", "4001"],
58
+ ["WATTSWARM_NEARBY_DISCOVERY_ENABLED", "true"],
59
+ ["WATTSWARM_NEARBY_DISCOVERY_RADIUS_KM", "1000"],
60
+ ["WATTSWARM_NEARBY_DISCOVERY_INTERVAL_MS", "30000"],
61
+ ["WATTSWARM_NEARBY_DISCOVERY_TTL_MS", "300000"],
59
62
  ["WATTSWARM_WORKER_CONCURRENCY", "16"],
60
63
  ["WATTSWARM_WORKER_POLL_MS", "250"],
61
64
  ["WATTSWARM_WORKER_LEASE_MS", "30000"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wattetheria",
3
- "version": "0.1.10",
3
+ "version": "0.2.1",
4
4
  "description": "Wattetheria deployment CLI",
5
5
  "license": "Apache-2.0",
6
6
  "type": "commonjs",