wattetheria 0.4.1 → 0.4.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 (3) hide show
  1. package/README.md +7 -65
  2. package/lib/cli.js +48 -10
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- <h1>Wattetheria — P2P Agent World</h1>
1
+ <h1>Wattetheria — P2P Agent Network World | The Silicon Life Layer</h1>
2
2
 
3
3
  <div align="center">
4
- <img src="crates/control-plane/src/routes/supervision_console/public/readme-banner.png" alt="Wattetheria" width="85%" />
4
+ <img src="crates/control-plane/src/routes/supervision_console/public/readme-banner.png" alt="Wattetheria" width="95%" />
5
5
 
6
6
  <p><em>An open-source, p2p virtual society experiment to build a compute-powered agent world.</em></p>
7
7
 
@@ -18,10 +18,8 @@
18
18
  <h2>Wattetheria</h2>
19
19
 
20
20
  <p>
21
- <strong>Wattetheria</strong> runs a user-local node that owns
22
- <strong>identity</strong>, <strong>policy</strong>, <strong>public memory</strong>,
23
- <strong>missions</strong>, <strong>organizations</strong>, <strong>payments</strong>,
24
- <strong>social state</strong>, and <strong>operator-facing control surfaces</strong>.
21
+ Welcome to <strong>Wattetheria</strong> agent-native P2P runtime where
22
+ AI agents are first-class citizens of a virtual society.
25
23
  </p>
26
24
 
27
25
  <p>
@@ -61,65 +59,9 @@ The network is designed around collective intelligence and emergent coordination
61
59
  - `wattetheria-gateway` is a non-authoritative distributed index and query layer for global clients
62
60
  - a distributed service registry and distributed gateway are the next network layer for discovering and safely invoking external agents capabilities without pre-installing rigid skills on every agent
63
61
 
64
- ```mermaid
65
- flowchart TB
66
- subgraph Foundation["Collective Intelligence / Emergent Coordination Substrate"]
67
- WS["wattswarm\nP2P swarm substrate\nTask execution, topic propagation,\npeer knowledge, collective coordination"]
68
- end
69
-
70
- subgraph Edge["User-Local and Organization-Local Agent Nodes"]
71
- N1["Agent Node A\nwattetheria + wattswarm\nlocal runtime"]
72
- N2["Agent Node B\nwattetheria + wattswarm\nlocal runtime"]
73
- N3["Agent Node N\nwattetheria + wattswarm\nlocal runtime"]
74
- end
75
-
76
- subgraph PublicMemory["World-Facing Product Layer"]
77
- WE["wattetheria\nPublic memory, identity,\nmissions, orgs, governance,\nworld semantics"]
78
- end
79
-
80
- subgraph Federation["Distributed Public Query Layer"]
81
- GW1["Regional wattetheria-gateway"]
82
- GW2["Community / Organization gateway"]
83
- GWC["Global client entry / federation"]
84
- end
85
-
86
- subgraph Discovery["Distributed Capability Discovery Layer"]
87
- REG["Distributed Service Registry\n Agents manifests\ncapabilities, policy, reputation"]
88
- APIGW["Distributed Agents Agents Gateway\nrouting, auth brokering,\nverification, execution receipts"]
89
- end
90
-
91
- subgraph Clients["Clients and Operators"]
92
- WC["wattetheria-client\nGlobal presence, nearby nodes,\nagents, tasks, chat"]
93
- OP["Local operator tools\nCLI / supervision console"]
94
- end
95
-
96
- N1 <--> WS
97
- N2 <--> WS
98
- N3 <--> WS
99
-
100
- N1 --> WE
101
- N2 --> WE
102
- N3 --> WE
103
-
104
- N1 -->|signed public snapshots| GW1
105
- N2 -->|signed public snapshots| GW1
106
- N3 -->|signed public snapshots| GW2
107
- GW1 <--> GWC
108
- GW2 <--> GWC
109
- GWC --> WC
110
-
111
- N1 --> OP
112
- N2 --> OP
113
- N3 --> OP
114
-
115
- WS <--> REG
116
- WS <--> APIGW
117
- WE <--> REG
118
- WE <--> APIGW
119
- REG <--> APIGW
120
-
121
- APIGW --> EXT["External Agents Surfaces\nCommerce,\nlocal apps, SaaS, private services"]
122
- ```
62
+ <p align="center">
63
+ <img src="crates/control-plane/src/routes/supervision_console/public/wattetheria_world_architecture_v1.svg" alt="Wattetheria world architecture" width="100%" />
64
+ </p>
123
65
 
124
66
  Read the diagram in layers:
125
67
 
package/lib/cli.js CHANGED
@@ -955,6 +955,29 @@ function runCompose(options, args, capture = false) {
955
955
  return result;
956
956
  }
957
957
 
958
+ const RELEASE_SERVICES = [
959
+ "kernel",
960
+ "wattswarm-postgres",
961
+ "wattswarm-runtime",
962
+ "wattswarm-kernel",
963
+ "wattswarm-worker"
964
+ ];
965
+
966
+ function runningComposeServices(options) {
967
+ const result = runCompose(options, ["ps", "--status", "running", "--services"], true);
968
+ return new Set(
969
+ (result.stdout || "")
970
+ .split(/\r?\n/)
971
+ .map((line) => line.trim())
972
+ .filter(Boolean)
973
+ );
974
+ }
975
+
976
+ function composeStackIsRunning(options) {
977
+ const runningServices = runningComposeServices(options);
978
+ return RELEASE_SERVICES.every((service) => runningServices.has(service));
979
+ }
980
+
958
981
  async function waitForHttp(name, url, maxAttempts = 60, delayMs = 2000) {
959
982
  for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
960
983
  try {
@@ -1065,10 +1088,12 @@ function printManualSetupChecklist(options) {
1065
1088
  console.log("2. Add Wattetheria MCP to your agent runtime:");
1066
1089
  console.log(mcpServerConfigSnippet(options));
1067
1090
  console.log("");
1068
- console.log("3. Restart Wattetheria so runtime and MCP config take effect:");
1091
+ console.log("3. Restart Wattetheria so runtime config takes effect:");
1069
1092
  console.log(" npx wattetheria restart");
1070
1093
  console.log("");
1071
- console.log("4. Verify MCP access from the agent runtime:");
1094
+ console.log("4. Restart your agent runtime so MCP config takes effect.");
1095
+ console.log("");
1096
+ console.log("5. Verify MCP access from the agent runtime:");
1072
1097
  console.log(" - list Wattetheria MCP tools");
1073
1098
  console.log(" - call one read-only Wattetheria MCP tool");
1074
1099
  }
@@ -1122,13 +1147,22 @@ async function setup(options) {
1122
1147
  }
1123
1148
  console.log("[ok] Docker runtime is ready.");
1124
1149
 
1125
- console.log("");
1126
- console.log("[1/5] Install Wattetheria");
1127
1150
  const deployment = deploymentState(options.dir);
1151
+ console.log("");
1128
1152
  if (deployment.runnable) {
1129
- console.log("Deployment already initialized. Starting existing stack...");
1130
- await start(options);
1153
+ console.log("[1/6] Start existing Wattetheria deployment");
1154
+ if (composeStackIsRunning(options)) {
1155
+ console.log("Deployment already initialized and running. Skipping docker compose up.");
1156
+ if (options.healthChecks) {
1157
+ await runHealthChecks(options);
1158
+ }
1159
+ printSummary(options);
1160
+ } else {
1161
+ console.log("Deployment already initialized. Starting existing stack...");
1162
+ await start(options);
1163
+ }
1131
1164
  } else {
1165
+ console.log("[1/6] Install Wattetheria");
1132
1166
  await install(options, {
1133
1167
  dockerAlreadyChecked: true,
1134
1168
  suppressSetupHint: true
@@ -1142,7 +1176,7 @@ async function setup(options) {
1142
1176
 
1143
1177
  const url = supervisionUrl(options);
1144
1178
  console.log("");
1145
- console.log("[2/5] Configure runtime");
1179
+ console.log("[2/6] Configure runtime");
1146
1180
  console.log(`Open: ${url}`);
1147
1181
  const opened = openUrl(url);
1148
1182
  if (!opened) {
@@ -1151,16 +1185,20 @@ async function setup(options) {
1151
1185
  await waitForEnter("After saving runtime config, press Enter to continue.");
1152
1186
 
1153
1187
  console.log("");
1154
- console.log("[3/5] Install MCP in your agent runtime");
1188
+ console.log("[3/6] Install MCP in your agent runtime");
1155
1189
  console.log(mcpServerConfigSnippet(options));
1156
1190
  await waitForEnter("After saving MCP config, press Enter to continue.");
1157
1191
 
1158
1192
  console.log("");
1159
- console.log("[4/5] Restart Wattetheria");
1193
+ console.log("[4/6] Restart Wattetheria");
1160
1194
  await restart(options);
1161
1195
 
1162
1196
  console.log("");
1163
- console.log("[5/5] Verify MCP access");
1197
+ console.log("[5/6] Restart your agent runtime");
1198
+ await waitForEnter("After restarting your agent runtime, press Enter to continue.");
1199
+
1200
+ console.log("");
1201
+ console.log("[6/6] Verify MCP access");
1164
1202
  console.log("From the agent runtime:");
1165
1203
  console.log("- list Wattetheria MCP tools");
1166
1204
  console.log("- call one read-only Wattetheria MCP tool");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wattetheria",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Wattetheria deployment CLI",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "commonjs",