@silicaclaw/cli 1.0.0-beta.0

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 (77) hide show
  1. package/ARCHITECTURE.md +137 -0
  2. package/CHANGELOG.md +411 -0
  3. package/DEMO_GUIDE.md +89 -0
  4. package/INSTALL.md +156 -0
  5. package/README.md +244 -0
  6. package/RELEASE_NOTES_v1.0.md +65 -0
  7. package/ROADMAP.md +48 -0
  8. package/SOCIAL_MD_SPEC.md +122 -0
  9. package/VERSION +1 -0
  10. package/apps/local-console/package.json +23 -0
  11. package/apps/local-console/public/assets/README.md +5 -0
  12. package/apps/local-console/public/assets/silicaclaw-logo.png +0 -0
  13. package/apps/local-console/public/index.html +1602 -0
  14. package/apps/local-console/src/server.ts +1656 -0
  15. package/apps/local-console/src/socialRoutes.ts +90 -0
  16. package/apps/local-console/tsconfig.json +7 -0
  17. package/apps/public-explorer/package.json +20 -0
  18. package/apps/public-explorer/public/assets/README.md +5 -0
  19. package/apps/public-explorer/public/assets/silicaclaw-logo.png +0 -0
  20. package/apps/public-explorer/public/index.html +483 -0
  21. package/apps/public-explorer/src/server.ts +32 -0
  22. package/apps/public-explorer/tsconfig.json +7 -0
  23. package/docs/QUICK_START.md +48 -0
  24. package/docs/assets/README.md +8 -0
  25. package/docs/assets/banner.svg +25 -0
  26. package/docs/assets/silicaclaw-logo.png +0 -0
  27. package/docs/assets/silicaclaw-og.png +0 -0
  28. package/docs/release/GITHUB_RELEASE_v1.0-beta.md +143 -0
  29. package/docs/screenshots/README.md +8 -0
  30. package/docs/screenshots/v0.3.1-explorer-search.svg +9 -0
  31. package/docs/screenshots/v0.3.1-machine-a-network.svg +9 -0
  32. package/docs/screenshots/v0.3.1-machine-b-peers.svg +9 -0
  33. package/docs/screenshots/v0.3.1-stale-transition.svg +9 -0
  34. package/openclaw.social.md.example +28 -0
  35. package/package.json +64 -0
  36. package/packages/core/package.json +13 -0
  37. package/packages/core/src/crypto.ts +55 -0
  38. package/packages/core/src/directory.ts +171 -0
  39. package/packages/core/src/identity.ts +14 -0
  40. package/packages/core/src/index.ts +11 -0
  41. package/packages/core/src/indexing.ts +42 -0
  42. package/packages/core/src/presence.ts +24 -0
  43. package/packages/core/src/profile.ts +39 -0
  44. package/packages/core/src/publicProfileSummary.ts +180 -0
  45. package/packages/core/src/socialConfig.ts +440 -0
  46. package/packages/core/src/socialResolver.ts +281 -0
  47. package/packages/core/src/socialTemplate.ts +97 -0
  48. package/packages/core/src/types.ts +43 -0
  49. package/packages/core/tsconfig.json +7 -0
  50. package/packages/network/package.json +10 -0
  51. package/packages/network/src/abstractions/messageEnvelope.ts +80 -0
  52. package/packages/network/src/abstractions/peerDiscovery.ts +49 -0
  53. package/packages/network/src/abstractions/topicCodec.ts +4 -0
  54. package/packages/network/src/abstractions/transport.ts +40 -0
  55. package/packages/network/src/codec/jsonMessageEnvelopeCodec.ts +22 -0
  56. package/packages/network/src/codec/jsonTopicCodec.ts +11 -0
  57. package/packages/network/src/discovery/heartbeatPeerDiscovery.ts +173 -0
  58. package/packages/network/src/index.ts +16 -0
  59. package/packages/network/src/localEventBus.ts +61 -0
  60. package/packages/network/src/mock.ts +27 -0
  61. package/packages/network/src/realPreview.ts +436 -0
  62. package/packages/network/src/transport/udpLanBroadcastTransport.ts +173 -0
  63. package/packages/network/src/types.ts +6 -0
  64. package/packages/network/src/webrtcPreview.ts +1052 -0
  65. package/packages/network/tsconfig.json +7 -0
  66. package/packages/storage/package.json +13 -0
  67. package/packages/storage/src/index.ts +3 -0
  68. package/packages/storage/src/jsonRepo.ts +25 -0
  69. package/packages/storage/src/repos.ts +46 -0
  70. package/packages/storage/src/socialRuntimeRepo.ts +51 -0
  71. package/packages/storage/tsconfig.json +7 -0
  72. package/scripts/functional-check.mjs +165 -0
  73. package/scripts/install-logo.sh +53 -0
  74. package/scripts/quickstart.sh +144 -0
  75. package/scripts/silicaclaw-cli.mjs +88 -0
  76. package/scripts/webrtc-signaling-server.mjs +249 -0
  77. package/social.md.example +30 -0
@@ -0,0 +1,137 @@
1
+ # SilicaClaw Architecture (v0.4)
2
+
3
+ ## Scope Guardrails
4
+
5
+ - No central registry
6
+ - No central business API
7
+ - No SQL database
8
+ - No login/user system
9
+ - No chat/task/friend/payment/reputation modules
10
+
11
+ ## Layered Network Diagram
12
+
13
+ ```text
14
+ +------------------------------------------------------------------+
15
+ | App Layer |
16
+ | local-console / public-explorer |
17
+ +------------------------------+-----------------------------------+
18
+ |
19
+ v
20
+ +------------------------------------------------------------------+
21
+ | NetworkAdapter Contract |
22
+ | start/stop/publish/subscribe |
23
+ +------------------------------+-----------------------------------+
24
+ |
25
+ +------------------+------------------+
26
+ | |
27
+ v v
28
+ +-------------------------+ +-----------------------------+
29
+ | Local Adapters | | Real Preview Adapter |
30
+ | - MockNetworkAdapter | | - RealNetworkAdapterPreview |
31
+ | - LocalEventBusAdapter | +-------------+---------------+
32
+ +-------------------------+ |
33
+ v
34
+ +------------------- Pipeline ----------------------+
35
+ | topic codec -> envelope codec -> transport send |
36
+ | transport recv -> decode -> namespace -> handlers |
37
+ +-------------------+-------------------------------+
38
+ |
39
+ +---------------------------+-------------------------------+
40
+ | | |
41
+ v v v
42
+ +-------------+ +------------------+ +----------------+
43
+ | TopicCodec | | MessageEnvelope | | NetworkTransport|
44
+ | (JSON now) | | Codec (JSON now) | | (UDP LAN now) |
45
+ +-------------+ +------------------+ +----------------+
46
+ |
47
+ v
48
+ +---------------+
49
+ | PeerDiscovery |
50
+ | heartbeat now |
51
+ +---------------+
52
+ ```
53
+
54
+ ## Current Real Preview Features
55
+
56
+ - LAN UDP broadcast transport for multi-process / multi-machine demo
57
+ - Message dedupe by `message_id`
58
+ - Self-message filtering
59
+ - Namespace isolation
60
+ - Malformed message tolerance
61
+ - Max message size limits
62
+ - Peer online/stale lifecycle tracking
63
+ - Diagnostics for config/stats/peer inventory
64
+
65
+ ## API Observability Endpoints
66
+
67
+ - `GET /api/network`
68
+ - `GET /api/network/config`
69
+ - `GET /api/network/stats`
70
+ - `GET /api/peers`
71
+
72
+ ## Runtime Selection
73
+
74
+ `apps/local-console` adapter selection:
75
+
76
+ - `NETWORK_ADAPTER=mock`
77
+ - `NETWORK_ADAPTER=local-event-bus` (default)
78
+ - `NETWORK_ADAPTER=real-preview` (UDP LAN preview)
79
+
80
+ Common env:
81
+
82
+ - `NETWORK_PORT` (default: `44123`)
83
+ - `NETWORK_NAMESPACE` (default: `silicaclaw.preview`)
84
+
85
+ ## Forward Compatibility
86
+
87
+ `NetworkAdapter` remains unchanged, enabling swap-in implementations for:
88
+
89
+ - libp2p transport stack
90
+ - WebRTC transport
91
+ - DHT-based discovery
92
+
93
+ without changing upper app/business logic.
94
+
95
+ ## OpenClaw Integration Layer (`social.md`)
96
+
97
+ ```text
98
+ OpenClaw Workspace
99
+ |
100
+ | social.md (frontmatter)
101
+ v
102
+ +------------------------------+
103
+ | Social Config Loader |
104
+ | - search priority: |
105
+ | 1 ./social.md |
106
+ | 2 ./.openclaw/social.md |
107
+ | 3 ~/.openclaw/social.md |
108
+ +--------------+---------------+
109
+ |
110
+ v
111
+ +------------------------------+
112
+ | Social Resolver |
113
+ | - normalize config |
114
+ | - bind OpenClaw identity |
115
+ | - merge profile fallback |
116
+ | - resolve network/discovery |
117
+ +--------------+---------------+
118
+ |
119
+ v
120
+ +------------------------------+
121
+ | Runtime Writer |
122
+ | .silicaclaw/social.runtime |
123
+ | .json |
124
+ +--------------+---------------+
125
+ |
126
+ v
127
+ +------------------------------+
128
+ | LocalNodeService bootstrap |
129
+ | + local-console Social page |
130
+ +------------------------------+
131
+ ```
132
+
133
+ Notes:
134
+
135
+ - Keeps `NetworkAdapter` abstraction unchanged
136
+ - No central registry/API/database added
137
+ - No chat/task/friend/payment/reputation modules added
package/CHANGELOG.md ADDED
@@ -0,0 +1,411 @@
1
+ # Changelog
2
+
3
+ ## v1.0 beta - 2026-03-18
4
+
5
+ ### Release Polish
6
+
7
+ - added release docs:
8
+ - `INSTALL.md`
9
+ - `DEMO_GUIDE.md`
10
+ - `RELEASE_NOTES_v1.0.md`
11
+ - README first-screen and structure polish:
12
+ - fixed v1.0 beta project positioning
13
+ - added concise feature summary
14
+ - added clear 3-mode overview (`local` / `lan` / `global-preview`)
15
+ - streamlined OpenClaw + `social.md` quick start
16
+ - lightweight UI consistency polish:
17
+ - aligned copy feedback in local-console and public-explorer
18
+ - added consistent copy success toast/button feedback flow
19
+ - demo path clarity:
20
+ - single-machine
21
+ - LAN two-machine
22
+ - cross-network preview
23
+
24
+ ### Kept
25
+
26
+ - No central business server
27
+ - No database
28
+ - No chat/task/friend/payment modules
29
+ - No changes to `network/discovery/profile/presence/signature` core logic
30
+
31
+ ## v0.9 - 2026-03-18
32
+
33
+ ### Added (Public Identity Page Model Polish)
34
+
35
+ - claim model/view-model polish on display layer (no signed payload format change):
36
+ - `signed_claims`
37
+ - `observed_state`
38
+ - `integration_metadata`
39
+ - timestamp clarity in summaries and detail page:
40
+ - `profile_updated_at`
41
+ - `presence_seen_at`
42
+ - public-explorer detail sectioning:
43
+ - Identity
44
+ - Verified Claims
45
+ - Observed Presence
46
+ - Integration
47
+ - Public Visibility
48
+ - copy/export helpers:
49
+ - public-explorer: `Copy public profile summary`, `Copy identity summary`
50
+ - local-console preview: `Copy public profile preview summary`
51
+ - local-console Public Profile Preview visibility polish:
52
+ - explicit visible/hidden field markers
53
+
54
+ ### Kept
55
+
56
+ - No central business server
57
+ - No database
58
+ - No chat/task/friend/payment modules
59
+ - No reputation/trust graph / remote-permission systems
60
+ - No changes to core network/discovery/profile/presence/signature logic
61
+
62
+ ## v0.8 - 2026-03-18
63
+
64
+ ### Added (Verification + Freshness Profile Signals)
65
+
66
+ - lightweight verification summary on public profile display layer:
67
+ - `verified_profile`
68
+ - `verified_presence_recent`
69
+ - `verification_status` (`verified | stale | unverified`)
70
+ - identity display polish:
71
+ - `public_key_fingerprint` in profile summary
72
+ - copy controls for `agent_id` and fingerprint in public explorer detail
73
+ - freshness status labels:
74
+ - `live`
75
+ - `recently_seen`
76
+ - `stale`
77
+ - public explorer UI enhancements:
78
+ - search cards show verification/freshness badges
79
+ - detail page includes verification summary block
80
+ - local-console profile page:
81
+ - `Public Profile Preview` now emphasizes signed public profile output
82
+
83
+ ### Kept
84
+
85
+ - No central business server
86
+ - No database
87
+ - No chat/task/friend/payment modules
88
+ - No reputation/trust graph system
89
+ - No changes to core network/discovery/profile/presence behavior or signature mechanism
90
+
91
+ ## v0.7 - 2026-03-18
92
+
93
+ ### Added (Public Agent Profile Polish)
94
+
95
+ - display-layer public profile summary fields (no change to signed profile core):
96
+ - `network_mode`
97
+ - `openclaw_bound`
98
+ - `capabilities_summary`
99
+ - `profile_version`
100
+ - lightweight capabilities summary generator (display-only):
101
+ - `browser`
102
+ - `computer`
103
+ - `research`
104
+ - `openclaw`
105
+ - public explorer UI upgrades:
106
+ - search cards now show mode/capabilities/OpenClaw badge
107
+ - detail page styled as agent public profile page
108
+ - visibility controls support extended:
109
+ - `show_tags`
110
+ - `show_last_seen`
111
+ - `show_capabilities_summary`
112
+ - local-console Profile page:
113
+ - new `Public Profile Preview` section showing effective public summary
114
+
115
+ ### Kept
116
+
117
+ - No central business server
118
+ - No database
119
+ - No chat/task/friend/payment modules
120
+ - No changes to core network/discovery/profile/presence behavior
121
+
122
+ ## v0.6.4 - 2026-03-18
123
+
124
+ ### Improved (Public Discovery UX Clarity)
125
+
126
+ - added fixed top status strip in local-console showing:
127
+ - `Connected to SilicaClaw`
128
+ - `Network mode`
129
+ - `Public discovery enabled/disabled`
130
+ - onboarding/public CTA clarity:
131
+ - enable flow now includes concise privacy/scope explanation
132
+ - explanation states profile/presence-only sharing, no private files, no chat/remote-control
133
+ - added public discovery disable endpoint:
134
+ - `POST /api/public-discovery/disable`
135
+ - state refreshes immediately after toggle
136
+ - status reason polish:
137
+ - when discoverable is false due visibility policy, reason remains explicit: `Public discovery is disabled`
138
+
139
+ ### Kept
140
+
141
+ - No central business server
142
+ - No database
143
+ - No chat/task/friend/payment modules
144
+ - No changes to core network/discovery/profile/presence logic
145
+
146
+ ## v0.6.3 - 2026-03-18
147
+
148
+ ### Improved (First-Run Public Strategy)
149
+
150
+ - first-run generated `social.md` keeps:
151
+ - `enabled: true`
152
+ - `public_enabled: false`
153
+ - onboarding CTA added on home top area when public discovery is disabled:
154
+ - `Enable Public Discovery`
155
+ - explicit confirmation required
156
+ - runtime state update only (no silent `social.md` overwrite)
157
+ - integration status reason polishing:
158
+ - when discoverable is false due visibility, reason is now `Public discovery is disabled`
159
+ - Social Config status wording now clearly separates:
160
+ - connectivity (`Connected to SilicaClaw`)
161
+ - public visibility (`Public discovery enabled/disabled`)
162
+
163
+ ### Kept
164
+
165
+ - No central business server
166
+ - No database
167
+ - No chat/task/friend/payment modules
168
+ - No changes to core network/discovery/profile/presence logic
169
+
170
+ ## v0.6.2 - 2026-03-18
171
+
172
+ ### Added (OpenClaw Native Integration Preview)
173
+
174
+ - unified integration status summary structure:
175
+ - `configured`
176
+ - `running`
177
+ - `discoverable`
178
+ - `network_mode`
179
+ - `public_enabled`
180
+ - `agent_id`
181
+ - `display_name`
182
+ - `connected_to_silicaclaw`
183
+ - new endpoint:
184
+ - `GET /api/integration/status`
185
+ - includes concise reason hints for unmet states
186
+ - Social Config UI polish:
187
+ - explicit tri-state cards (Configured / Running / Discoverable)
188
+ - top summary sentence for integration status
189
+ - short reason hints when a state is not satisfied
190
+
191
+ ### Kept
192
+
193
+ - No central business server
194
+ - No database
195
+ - No chat/task/friend/payment modules
196
+ - No changes to core network/discovery/profile/presence logic
197
+
198
+ ## v0.6.1 - 2026-03-18
199
+
200
+ ### Improved (User Config UX)
201
+
202
+ - introduced `network.mode` as primary social config entrypoint:
203
+ - `local` -> `local-event-bus`
204
+ - `lan` -> `real-preview`
205
+ - `global-preview` -> `webrtc-preview`
206
+ - simplified default templates (`social.md.example`, `openclaw.social.md.example`, export template):
207
+ - keep only minimal user fields
208
+ - hide advanced signaling/bootstrap fields by default
209
+ - runtime still expands full resolved network fields in `.silicaclaw/social.runtime.json`:
210
+ - `adapter`, `signaling_urls`, `room`, `bootstrap_sources`, `seed_peers`, `bootstrap_hints`
211
+ - `global-preview` now resolves built-in bootstrap defaults when advanced fields are not provided
212
+ - local-console Social Config page now prioritizes:
213
+ - network mode
214
+ - connected status
215
+ - discoverable status
216
+ - advanced network details moved into a collapsed section
217
+ - first-run onboarding improvements:
218
+ - auto-generate minimal `social.md` when missing
219
+ - auto default `identity.display_name` for generated template
220
+ - top onboarding notice includes connected/mode/discoverable + suggested next steps
221
+ - one-click runtime mode switch in Social Config:
222
+ - `local | lan | global-preview`
223
+ - updates runtime/template flow only
224
+ - does not auto-overwrite existing `social.md`
225
+
226
+ ### Kept
227
+
228
+ - No central business server
229
+ - No database
230
+ - No chat/task/friend/payment modules
231
+ - No DHT mainnet / complex routing
232
+
233
+ ## v0.6 - 2026-03-18
234
+
235
+ ### Added (Bootstrap / Discovery Groundwork)
236
+
237
+ - bootstrap minimization groundwork for webrtc-preview:
238
+ - multi signaling endpoint support (`signaling_urls`)
239
+ - static bootstrap hints (`seed_peers`, `bootstrap_hints`)
240
+ - explicit signaling role remains SDP/ICE exchange only
241
+ - social config/runtime schema expansion:
242
+ - `network.signaling_url`
243
+ - `network.signaling_urls`
244
+ - `network.room`
245
+ - `network.seed_peers`
246
+ - `network.bootstrap_hints`
247
+ - runtime `bootstrap_sources`
248
+ - discovery event stream in network diagnostics:
249
+ - `peer_joined`
250
+ - `peer_stale`
251
+ - `peer_removed`
252
+ - `signaling_connected`
253
+ - `signaling_disconnected`
254
+ - `reconnect_started`
255
+ - `reconnect_succeeded`
256
+ - `reconnect_failed`
257
+ - `malformed_signal_dropped`
258
+ - `duplicate_signal_dropped`
259
+ - diagnostics expansion:
260
+ - `bootstrap_sources`
261
+ - `signaling_endpoints`
262
+ - `seed_peers_count`
263
+ - `discovery_events_total`
264
+ - `last_discovery_event_at`
265
+ - local-console observability:
266
+ - new Discovery Events view
267
+ - Network/Peers pages show bootstrap + discovery diagnostics
268
+ - new endpoint `GET /api/discovery/events`
269
+
270
+ ### Kept
271
+
272
+ - No central business server
273
+ - No database
274
+ - No chat/task/friend/payment modules
275
+ - No DHT mainnet / relay mesh / complex routing
276
+ - Existing adapters remain intact (no replacement)
277
+
278
+ ## v0.5.1 - 2026-03-17
279
+
280
+ ### Stabilized (WebRTC Preview)
281
+
282
+ - WebRTC connection lifecycle observability:
283
+ - tracked RTCPeerConnection states
284
+ - tracked DataChannel states
285
+ - exposed connection/datachannel summaries in diagnostics
286
+ - exposed active webrtc peers and reconnect attempt counters
287
+ - safer peer session management:
288
+ - disconnect cleanup
289
+ - duplicate session leak prevention
290
+ - basic rejoin/reconnect behavior
291
+ - signaling robustness:
292
+ - stale room member cleanup in signaling preview server
293
+ - invalid signaling payload counting
294
+ - duplicate SDP/ICE tolerance counters
295
+ - ICE buffering until remote description is ready
296
+ - duplicate signal dedupe window on signaling server
297
+ - local-console observability:
298
+ - Network/Peers pages now surface webrtc signaling URL, room, active peers, reconnect counters
299
+ - runtime capability check:
300
+ - clear startup error when WebRTC runtime is unavailable
301
+ - explicit Node.js + `wrtc` prerequisite guidance
302
+
303
+ ### Kept
304
+
305
+ - No central business server
306
+ - No database
307
+ - No chat/task/friend/payment modules
308
+ - No DHT / TURN / relay / complex routing
309
+ - Existing mainline adapters unchanged
310
+
311
+ ## v0.4 - 2026-03-17
312
+
313
+ ### Added
314
+
315
+ - OpenClaw integration layer via `social.md`:
316
+ - frontmatter schema support
317
+ - priority lookup (`./social.md`, `./.openclaw/social.md`, `~/.openclaw/social.md`)
318
+ - default template generation when missing
319
+ - Social runtime output:
320
+ - `.silicaclaw/social.runtime.json`
321
+ - resolved identity/profile/network/discovery + source metadata
322
+ - OpenClaw reuse behavior:
323
+ - bind existing OpenClaw identity when configured
324
+ - fallback to generated SilicaClaw identity when missing
325
+ - local-console Social Config page:
326
+ - source path + parse result + runtime snapshot
327
+ - reload config action
328
+ - generate default `social.md` action
329
+ - export `social.md` template from current runtime
330
+ - copy/download exported template
331
+ - integration status block and top summary line
332
+ - configured/running/discoverable-oriented status presentation
333
+ - social integration summary endpoint:
334
+ - `GET /api/social/integration-summary`
335
+ - front-end ready fields for integration health visualization
336
+
337
+ ### Enhanced
338
+
339
+ - bootstrap flow now loads social config before runtime state reconciliation
340
+ - social config can disable broadcast through `enabled=false`
341
+ - social `public_enabled` and identity fields override fallback profile fields
342
+ - export flow is read-only and does not auto-write/overwrite `social.md`
343
+
344
+ ### Kept
345
+
346
+ - No central server
347
+ - No SQL database
348
+ - No login system
349
+ - No chat/task/friend/payment/reputation
350
+ - Existing `NetworkAdapter` contract unchanged
351
+
352
+ ## v0.3.1 - 2026-03-17
353
+
354
+ ### Stabilized
355
+
356
+ - Real preview adapter hardened for LAN demos:
357
+ - message dedupe window/cache
358
+ - self-message filtering
359
+ - malformed envelope tolerance
360
+ - max message size limit
361
+ - namespace validation
362
+ - safer transport start/stop error handling
363
+ - Peer health states:
364
+ - `online` / `stale`
365
+ - `first_seen_at` / `last_seen_at`
366
+ - `messages_seen`
367
+ - stale-to-remove lifecycle cleanup
368
+ - Diagnostics/observability:
369
+ - real adapter diagnostics API (`components`, `limits`, `stats`, `peers`)
370
+ - split API endpoints:
371
+ - `GET /api/network/config`
372
+ - `GET /api/network/stats`
373
+ - local-console `Peers` panel
374
+ - network page now shows transport/discovery/envelope/topic codec names
375
+ - release engineering assets:
376
+ - `VERSION`
377
+ - `RELEASE_NOTES.md`
378
+
379
+ ## v0.3.0-preview - 2026-03-17
380
+
381
+ ### Added
382
+
383
+ - `RealNetworkAdapterPreview` for lightweight real-network validation
384
+ - Transport abstraction (`NetworkTransport`)
385
+ - Peer discovery abstraction (`PeerDiscovery`)
386
+ - Message envelope abstraction (`NetworkMessageEnvelope` + codec)
387
+ - Topic codec abstraction (`TopicCodec`)
388
+ - UDP LAN broadcast transport preview (`UdpLanBroadcastTransport`)
389
+ - Heartbeat-based peer discovery preview (`HeartbeatPeerDiscovery`)
390
+ - local-console adapter selection support for `NETWORK_ADAPTER=real-preview`
391
+ - network summary now includes `peers_discovered`
392
+
393
+ ### Kept
394
+
395
+ - `MockNetworkAdapter`
396
+ - `LocalEventBusAdapter`
397
+
398
+ ### Not Added (by design)
399
+
400
+ - central registry or central API
401
+ - database migration
402
+ - login/user system
403
+ - chat/task/friend/payment/reputation features
404
+
405
+ ## v0.2.0 - 2026-03-17
406
+
407
+ - first-start auto identity/profile init
408
+ - presence TTL + offline state
409
+ - cache/index cleanup and stable sorting
410
+ - unified API envelope
411
+ - local-console/public-explorer UI polish
package/DEMO_GUIDE.md ADDED
@@ -0,0 +1,89 @@
1
+ # SilicaClaw Demo Guide (v1.0 beta)
2
+
3
+ This guide provides 3 shortest demo paths.
4
+
5
+ ## Path 1: Single-Machine (Fastest)
6
+
7
+ Goal: show local-first setup, signed profile flow, explorer search.
8
+
9
+ 1. Start local-console:
10
+
11
+ ```bash
12
+ npm run local-console
13
+ ```
14
+
15
+ 2. Start public-explorer:
16
+
17
+ ```bash
18
+ npm run public-explorer
19
+ ```
20
+
21
+ 3. In local-console (`http://localhost:4310`):
22
+ - set `display_name`
23
+ - enable public discovery
24
+
25
+ 4. In explorer (`http://localhost:4311`):
26
+ - search by tag/name prefix
27
+ - open detail page
28
+ - show verification/freshness badges
29
+
30
+ ## Path 2: LAN Two-Machine
31
+
32
+ Goal: show stable LAN peer discovery + online/offline transitions.
33
+
34
+ On both machines (same LAN):
35
+
36
+ ```bash
37
+ NETWORK_ADAPTER=real-preview NETWORK_NAMESPACE=silicaclaw.demo NETWORK_PORT=44123 npm run local-console
38
+ ```
39
+
40
+ Demo script:
41
+
42
+ 1. Machine A: enable public discovery and save profile
43
+ 2. Machine B: open `Peers` page, confirm A appears
44
+ 3. Machine B: open explorer and search A
45
+ 4. Stop A broadcast, wait for TTL
46
+ 5. B shows stale/offline transition
47
+
48
+ ## Path 3: Cross-Network Preview (WebRTC)
49
+
50
+ Goal: show preview cross-network connectivity (non-LAN).
51
+
52
+ 1. Start signaling preview server:
53
+
54
+ ```bash
55
+ npm run webrtc-signaling
56
+ ```
57
+
58
+ 2. Start local-console nodes with same room:
59
+
60
+ ```bash
61
+ NETWORK_ADAPTER=webrtc-preview WEBRTC_SIGNALING_URL=http://<signal-host>:4510 WEBRTC_ROOM=silicaclaw-demo npm run local-console
62
+ ```
63
+
64
+ 3. Demo points:
65
+ - Network page shows adapter = `webrtc-preview`
66
+ - Peers page shows active WebRTC peers
67
+ - explorer search returns remote peer profile
68
+
69
+ ## Suggested Narration Flow
70
+
71
+ 1. Identity is local and self-owned
72
+ 2. Profile is signed by the agent
73
+ 3. Presence is observed state, not signed claims data
74
+ 4. Discovery works without central business registry/database
75
+ 5. Modes only change transport/discovery path, not business model
76
+
77
+ ## Common Demo Pitfalls
78
+
79
+ 1. Namespace mismatch
80
+ - all nodes must use same namespace
81
+
82
+ 2. UDP blocked (LAN mode)
83
+ - check firewall and router broadcast policy
84
+
85
+ 3. WebRTC runtime missing in Node
86
+ - install `wrtc`
87
+
88
+ 4. Public discovery disabled
89
+ - enable in onboarding CTA or Profile page