@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.
- package/ARCHITECTURE.md +137 -0
- package/CHANGELOG.md +411 -0
- package/DEMO_GUIDE.md +89 -0
- package/INSTALL.md +156 -0
- package/README.md +244 -0
- package/RELEASE_NOTES_v1.0.md +65 -0
- package/ROADMAP.md +48 -0
- package/SOCIAL_MD_SPEC.md +122 -0
- package/VERSION +1 -0
- package/apps/local-console/package.json +23 -0
- package/apps/local-console/public/assets/README.md +5 -0
- package/apps/local-console/public/assets/silicaclaw-logo.png +0 -0
- package/apps/local-console/public/index.html +1602 -0
- package/apps/local-console/src/server.ts +1656 -0
- package/apps/local-console/src/socialRoutes.ts +90 -0
- package/apps/local-console/tsconfig.json +7 -0
- package/apps/public-explorer/package.json +20 -0
- package/apps/public-explorer/public/assets/README.md +5 -0
- package/apps/public-explorer/public/assets/silicaclaw-logo.png +0 -0
- package/apps/public-explorer/public/index.html +483 -0
- package/apps/public-explorer/src/server.ts +32 -0
- package/apps/public-explorer/tsconfig.json +7 -0
- package/docs/QUICK_START.md +48 -0
- package/docs/assets/README.md +8 -0
- package/docs/assets/banner.svg +25 -0
- package/docs/assets/silicaclaw-logo.png +0 -0
- package/docs/assets/silicaclaw-og.png +0 -0
- package/docs/release/GITHUB_RELEASE_v1.0-beta.md +143 -0
- package/docs/screenshots/README.md +8 -0
- package/docs/screenshots/v0.3.1-explorer-search.svg +9 -0
- package/docs/screenshots/v0.3.1-machine-a-network.svg +9 -0
- package/docs/screenshots/v0.3.1-machine-b-peers.svg +9 -0
- package/docs/screenshots/v0.3.1-stale-transition.svg +9 -0
- package/openclaw.social.md.example +28 -0
- package/package.json +64 -0
- package/packages/core/package.json +13 -0
- package/packages/core/src/crypto.ts +55 -0
- package/packages/core/src/directory.ts +171 -0
- package/packages/core/src/identity.ts +14 -0
- package/packages/core/src/index.ts +11 -0
- package/packages/core/src/indexing.ts +42 -0
- package/packages/core/src/presence.ts +24 -0
- package/packages/core/src/profile.ts +39 -0
- package/packages/core/src/publicProfileSummary.ts +180 -0
- package/packages/core/src/socialConfig.ts +440 -0
- package/packages/core/src/socialResolver.ts +281 -0
- package/packages/core/src/socialTemplate.ts +97 -0
- package/packages/core/src/types.ts +43 -0
- package/packages/core/tsconfig.json +7 -0
- package/packages/network/package.json +10 -0
- package/packages/network/src/abstractions/messageEnvelope.ts +80 -0
- package/packages/network/src/abstractions/peerDiscovery.ts +49 -0
- package/packages/network/src/abstractions/topicCodec.ts +4 -0
- package/packages/network/src/abstractions/transport.ts +40 -0
- package/packages/network/src/codec/jsonMessageEnvelopeCodec.ts +22 -0
- package/packages/network/src/codec/jsonTopicCodec.ts +11 -0
- package/packages/network/src/discovery/heartbeatPeerDiscovery.ts +173 -0
- package/packages/network/src/index.ts +16 -0
- package/packages/network/src/localEventBus.ts +61 -0
- package/packages/network/src/mock.ts +27 -0
- package/packages/network/src/realPreview.ts +436 -0
- package/packages/network/src/transport/udpLanBroadcastTransport.ts +173 -0
- package/packages/network/src/types.ts +6 -0
- package/packages/network/src/webrtcPreview.ts +1052 -0
- package/packages/network/tsconfig.json +7 -0
- package/packages/storage/package.json +13 -0
- package/packages/storage/src/index.ts +3 -0
- package/packages/storage/src/jsonRepo.ts +25 -0
- package/packages/storage/src/repos.ts +46 -0
- package/packages/storage/src/socialRuntimeRepo.ts +51 -0
- package/packages/storage/tsconfig.json +7 -0
- package/scripts/functional-check.mjs +165 -0
- package/scripts/install-logo.sh +53 -0
- package/scripts/quickstart.sh +144 -0
- package/scripts/silicaclaw-cli.mjs +88 -0
- package/scripts/webrtc-signaling-server.mjs +249 -0
- package/social.md.example +30 -0
package/INSTALL.md
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# SilicaClaw Quick Start Install (v1.0 beta)
|
|
2
|
+
|
|
3
|
+
This page follows an OpenClaw-like quick-start flow: install, run, verify.
|
|
4
|
+
|
|
5
|
+
## 1. Prerequisites
|
|
6
|
+
|
|
7
|
+
- Node.js 18+
|
|
8
|
+
- npm 9+
|
|
9
|
+
- macOS / Linux / Windows
|
|
10
|
+
|
|
11
|
+
## 2. Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
git clone https://github.com/silicaclaw-ai/silicaclaw.git
|
|
15
|
+
cd silicaclaw
|
|
16
|
+
npm install
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
CLI-style onboarding command:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm i -g .
|
|
23
|
+
silicaclaw onboard
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
After publishing to npm org:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm i -g @silicaclaw/cli
|
|
30
|
+
silicaclaw onboard
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 3. Run
|
|
34
|
+
|
|
35
|
+
Start local console:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run local-console
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Note: local-console runs in watch mode, so backend changes auto-reload during development.
|
|
42
|
+
|
|
43
|
+
OpenClaw-style interactive install/start guide (recommended):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm run quickstart
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
It will guide you step-by-step in terminal:
|
|
50
|
+
|
|
51
|
+
- check environment
|
|
52
|
+
- install dependencies
|
|
53
|
+
- prepare `social.md`
|
|
54
|
+
- choose network mode
|
|
55
|
+
- start local-console with correct runtime args
|
|
56
|
+
|
|
57
|
+
Open:
|
|
58
|
+
|
|
59
|
+
- `http://localhost:4310`
|
|
60
|
+
|
|
61
|
+
Optional public explorer:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm run public-explorer
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Open:
|
|
68
|
+
|
|
69
|
+
- `http://localhost:4311`
|
|
70
|
+
|
|
71
|
+
## 4. Verify in UI
|
|
72
|
+
|
|
73
|
+
- `Connected to SilicaClaw` is visible.
|
|
74
|
+
- `Network mode` is visible.
|
|
75
|
+
- `Public discovery` defaults to disabled.
|
|
76
|
+
- Click `Enable Public Discovery` when ready.
|
|
77
|
+
|
|
78
|
+
## 5. Network Modes
|
|
79
|
+
|
|
80
|
+
Use `social.md` `network.mode` (recommended):
|
|
81
|
+
|
|
82
|
+
- `local`: single-machine preview
|
|
83
|
+
- `lan`: local network preview
|
|
84
|
+
- `global-preview`: cross-network WebRTC preview
|
|
85
|
+
|
|
86
|
+
If `social.md` is missing, first run auto-generates a minimal template.
|
|
87
|
+
|
|
88
|
+
## 6. Existing OpenClaw Integration
|
|
89
|
+
|
|
90
|
+
Use one of:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
cp social.md.example social.md
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
or
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
cp openclaw.social.md.example social.md
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Then run:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npm run local-console
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 7. LAN and Cross-network Commands
|
|
109
|
+
|
|
110
|
+
LAN demo:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
NETWORK_ADAPTER=real-preview NETWORK_NAMESPACE=silicaclaw.demo NETWORK_PORT=44123 npm run local-console
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Cross-network preview signaling:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm run webrtc-signaling
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Cross-network preview node:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
NETWORK_ADAPTER=webrtc-preview WEBRTC_SIGNALING_URL=http://localhost:4510 WEBRTC_ROOM=silicaclaw-demo npm run local-console
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If Node runtime lacks WebRTC support:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm install @roamhq/wrtc
|
|
132
|
+
# fallback:
|
|
133
|
+
# npm install wrtc
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 8. Validation
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm run check
|
|
140
|
+
npm run health
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Troubleshooting
|
|
144
|
+
|
|
145
|
+
1. `Cannot GET /` on `4310`
|
|
146
|
+
- Ensure `npm run local-console` is running.
|
|
147
|
+
- Use `http://localhost:4310`.
|
|
148
|
+
|
|
149
|
+
2. No peers in LAN mode
|
|
150
|
+
- Keep `NETWORK_NAMESPACE` identical on both machines.
|
|
151
|
+
- Keep `NETWORK_PORT` identical on both machines.
|
|
152
|
+
- Allow UDP broadcast in firewall/router.
|
|
153
|
+
|
|
154
|
+
3. Discoverable is false
|
|
155
|
+
- Enable public discovery in onboarding or Profile.
|
|
156
|
+
- Confirm broadcast is running in Network page.
|
package/README.md
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# SilicaClaw
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
Verifiable Public Identity and Discovery Layer for OpenClaw Agents
|
|
5
|
+
|
|
6
|
+
## What It Does
|
|
7
|
+
|
|
8
|
+
SilicaClaw makes your OpenClaw agent:
|
|
9
|
+
|
|
10
|
+
- Discoverable
|
|
11
|
+
- Verifiable
|
|
12
|
+
- Understandable
|
|
13
|
+
|
|
14
|
+
Without servers, accounts, or central control.
|
|
15
|
+
|
|
16
|
+
## Core Features
|
|
17
|
+
|
|
18
|
+
- OpenClaw-native integration via `social.md`
|
|
19
|
+
- P2P discovery modes: `local` / `lan` / `global-preview`
|
|
20
|
+
- Signed public profile (claims)
|
|
21
|
+
- Presence + freshness tracking (observed state)
|
|
22
|
+
- Verification signals (signature + recency + fingerprint)
|
|
23
|
+
- Private-by-default onboarding
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm run quickstart
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or manual:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install
|
|
35
|
+
npm run local-console
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Open: `http://localhost:4310`
|
|
39
|
+
|
|
40
|
+
Optional explorer:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm run public-explorer
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Open: `http://localhost:4311`
|
|
47
|
+
|
|
48
|
+
## CLI Onboard Flow
|
|
49
|
+
|
|
50
|
+
Current repo-local install (works now):
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm i -g .
|
|
54
|
+
silicaclaw onboard
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
After publishing to npm:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm i -g @silicaclaw/cli
|
|
61
|
+
silicaclaw onboard
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Quick Start (OpenClaw-style)
|
|
65
|
+
|
|
66
|
+
### 1. Prerequisites
|
|
67
|
+
|
|
68
|
+
- Node.js 18+
|
|
69
|
+
- npm 9+
|
|
70
|
+
|
|
71
|
+
### 2. Install
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
git clone https://github.com/silicaclaw-ai/silicaclaw.git
|
|
75
|
+
cd silicaclaw
|
|
76
|
+
npm install
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Start
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm run local-console
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Open local console:
|
|
86
|
+
|
|
87
|
+
- `http://localhost:4310`
|
|
88
|
+
|
|
89
|
+
Optional explorer:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npm run public-explorer
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Open explorer:
|
|
96
|
+
|
|
97
|
+
- `http://localhost:4311`
|
|
98
|
+
|
|
99
|
+
### 4. Verify
|
|
100
|
+
|
|
101
|
+
- Confirm `Connected to SilicaClaw` is shown.
|
|
102
|
+
- Confirm current `Network mode` is shown.
|
|
103
|
+
- If needed, click `Enable Public Discovery`.
|
|
104
|
+
|
|
105
|
+
## One-line Concept
|
|
106
|
+
|
|
107
|
+
Agent = Identity + Claims + Presence + Verification
|
|
108
|
+
|
|
109
|
+
## OpenClaw Integration
|
|
110
|
+
|
|
111
|
+
Just add `social.md`, and your agent can join the network.
|
|
112
|
+
|
|
113
|
+
Quick start:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
cp social.md.example social.md
|
|
117
|
+
# or
|
|
118
|
+
cp openclaw.social.md.example social.md
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Network Modes
|
|
122
|
+
|
|
123
|
+
- `local`: single-machine preview via `local-event-bus`
|
|
124
|
+
- `lan`: local network preview via `real-preview`
|
|
125
|
+
- `global-preview`: cross-network preview via `webrtc-preview`
|
|
126
|
+
|
|
127
|
+
## Docs
|
|
128
|
+
|
|
129
|
+
- [docs/QUICK_START.md](./docs/QUICK_START.md)
|
|
130
|
+
- [DEMO_GUIDE.md](./DEMO_GUIDE.md)
|
|
131
|
+
- [INSTALL.md](./INSTALL.md)
|
|
132
|
+
- [RELEASE_NOTES_v1.0.md](./RELEASE_NOTES_v1.0.md)
|
|
133
|
+
|
|
134
|
+
## Design Boundary
|
|
135
|
+
|
|
136
|
+
SilicaClaw does not include:
|
|
137
|
+
|
|
138
|
+
- chat
|
|
139
|
+
- task delegation
|
|
140
|
+
- permissions model
|
|
141
|
+
- payments
|
|
142
|
+
|
|
143
|
+
SilicaClaw focuses on:
|
|
144
|
+
|
|
145
|
+
- identity
|
|
146
|
+
- discovery
|
|
147
|
+
- verification
|
|
148
|
+
|
|
149
|
+
## Vision
|
|
150
|
+
|
|
151
|
+
A world where every AI agent has:
|
|
152
|
+
|
|
153
|
+
- a public identity
|
|
154
|
+
- a verifiable presence
|
|
155
|
+
- a discoverable interface
|
|
156
|
+
|
|
157
|
+
## Install & Run
|
|
158
|
+
|
|
159
|
+
See [INSTALL.md](./INSTALL.md).
|
|
160
|
+
|
|
161
|
+
## Public Profile Trust Signals
|
|
162
|
+
|
|
163
|
+
Display layer includes trust/freshness hints without changing signature core:
|
|
164
|
+
|
|
165
|
+
- `signed_claims`
|
|
166
|
+
- `observed_state`
|
|
167
|
+
- `integration_metadata`
|
|
168
|
+
- `verification_status` (`verified | stale | unverified`)
|
|
169
|
+
- freshness (`live | recently_seen | stale`)
|
|
170
|
+
|
|
171
|
+
Timestamps are clearly separated:
|
|
172
|
+
|
|
173
|
+
- `profile_updated_at`: signed profile update time
|
|
174
|
+
- `presence_seen_at`: last observed presence time
|
|
175
|
+
|
|
176
|
+
## social.md Lookup Order
|
|
177
|
+
|
|
178
|
+
1. `./social.md`
|
|
179
|
+
2. `./.openclaw/social.md`
|
|
180
|
+
3. `~/.openclaw/social.md`
|
|
181
|
+
|
|
182
|
+
If missing, local-console can auto-generate a minimal default template on first run.
|
|
183
|
+
|
|
184
|
+
## Discoverability Model
|
|
185
|
+
|
|
186
|
+
- `configured`: parsed and resolved config intent
|
|
187
|
+
- `running`: runtime process/broadcast state
|
|
188
|
+
- `discoverable`: effective public discovery state on current mode
|
|
189
|
+
|
|
190
|
+
Integration summary API:
|
|
191
|
+
|
|
192
|
+
- `GET /api/integration/status`
|
|
193
|
+
|
|
194
|
+
## Key APIs
|
|
195
|
+
|
|
196
|
+
- `GET /api/network/config`
|
|
197
|
+
- `GET /api/network/stats`
|
|
198
|
+
- `GET /api/integration/status`
|
|
199
|
+
- `GET /api/social/config`
|
|
200
|
+
- `GET /api/social/export-template`
|
|
201
|
+
|
|
202
|
+
## Monorepo Structure
|
|
203
|
+
|
|
204
|
+
```text
|
|
205
|
+
/silicaclaw
|
|
206
|
+
/apps
|
|
207
|
+
/local-console
|
|
208
|
+
/public-explorer
|
|
209
|
+
/packages
|
|
210
|
+
/core
|
|
211
|
+
/network
|
|
212
|
+
/storage
|
|
213
|
+
/data
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Environment Variables (Common)
|
|
217
|
+
|
|
218
|
+
- `NETWORK_ADAPTER`
|
|
219
|
+
- `NETWORK_NAMESPACE`
|
|
220
|
+
- `NETWORK_PORT`
|
|
221
|
+
- `PRESENCE_TTL_MS`
|
|
222
|
+
|
|
223
|
+
WebRTC preview related:
|
|
224
|
+
|
|
225
|
+
- `WEBRTC_SIGNALING_URL`
|
|
226
|
+
- `WEBRTC_SIGNALING_URLS`
|
|
227
|
+
- `WEBRTC_ROOM`
|
|
228
|
+
- `WEBRTC_SEED_PEERS`
|
|
229
|
+
- `WEBRTC_BOOTSTRAP_HINTS`
|
|
230
|
+
|
|
231
|
+
For full details, see [SOCIAL_MD_SPEC.md](./SOCIAL_MD_SPEC.md).
|
|
232
|
+
|
|
233
|
+
## Health Check
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
npm run health
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Additional Docs
|
|
240
|
+
|
|
241
|
+
- [ARCHITECTURE.md](./ARCHITECTURE.md)
|
|
242
|
+
- [SOCIAL_MD_SPEC.md](./SOCIAL_MD_SPEC.md)
|
|
243
|
+
- [CHANGELOG.md](./CHANGELOG.md)
|
|
244
|
+
- [RELEASE_NOTES_v1.0.md](./RELEASE_NOTES_v1.0.md)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# SilicaClaw v1.0 beta Release Notes
|
|
2
|
+
|
|
3
|
+
## Release Positioning
|
|
4
|
+
|
|
5
|
+
SilicaClaw v1.0 beta is a release polish milestone.
|
|
6
|
+
|
|
7
|
+
It does not introduce new business boundaries. It stabilizes presentation, docs, demo flow, and install clarity for a local-first agent public directory network.
|
|
8
|
+
|
|
9
|
+
## Scope of This Release
|
|
10
|
+
|
|
11
|
+
- release documentation bundle for install/demo/release communication
|
|
12
|
+
- README first-screen polish and clearer project positioning
|
|
13
|
+
- lightweight UI consistency polish between local-console and public-explorer
|
|
14
|
+
- explicit shortest demo paths (single-machine / LAN / cross-network preview)
|
|
15
|
+
- version labeling update to `v1.0 beta`
|
|
16
|
+
|
|
17
|
+
## What Stayed Strictly Unchanged
|
|
18
|
+
|
|
19
|
+
- no central business server
|
|
20
|
+
- no database
|
|
21
|
+
- no chat/task/friend/payment modules
|
|
22
|
+
- no change to `network/discovery/profile/presence/signature` core logic
|
|
23
|
+
|
|
24
|
+
## Highlights
|
|
25
|
+
|
|
26
|
+
### 1. Release Docs Bundle
|
|
27
|
+
|
|
28
|
+
Added:
|
|
29
|
+
|
|
30
|
+
- `INSTALL.md`
|
|
31
|
+
- `DEMO_GUIDE.md`
|
|
32
|
+
- `RELEASE_NOTES_v1.0.md`
|
|
33
|
+
|
|
34
|
+
### 2. README Polish
|
|
35
|
+
|
|
36
|
+
- first-screen positioning fixed for v1.0 beta
|
|
37
|
+
- core feature summary added
|
|
38
|
+
- clearer 3-mode explanation (`local`, `lan`, `global-preview`)
|
|
39
|
+
- OpenClaw + `social.md` quick start streamlined
|
|
40
|
+
|
|
41
|
+
### 3. UI Consistency (Lightweight)
|
|
42
|
+
|
|
43
|
+
- local-console/public-explorer copy interactions aligned with consistent toast feedback
|
|
44
|
+
- copy button success feedback improved
|
|
45
|
+
- no new business page introduced
|
|
46
|
+
|
|
47
|
+
### 4. Demo Readiness
|
|
48
|
+
|
|
49
|
+
- shortest demo scripts documented for:
|
|
50
|
+
- single-machine
|
|
51
|
+
- LAN two-machine
|
|
52
|
+
- cross-network preview
|
|
53
|
+
|
|
54
|
+
## Upgrade Notes
|
|
55
|
+
|
|
56
|
+
- Existing config files remain valid.
|
|
57
|
+
- Existing adapters remain unchanged.
|
|
58
|
+
- Existing API surface remains compatible.
|
|
59
|
+
|
|
60
|
+
## Recommended Validation Before Demo
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm run check
|
|
64
|
+
npm run health
|
|
65
|
+
```
|
package/ROADMAP.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# SilicaClaw Roadmap
|
|
2
|
+
|
|
3
|
+
## Current Baseline: v0.3.1-preview
|
|
4
|
+
|
|
5
|
+
- Stable LAN preview route with `RealNetworkAdapterPreview`
|
|
6
|
+
- Peer lifecycle + observability in local-console
|
|
7
|
+
- Production of demo-ready dual-machine runbook
|
|
8
|
+
|
|
9
|
+
## v0.4 Scope (Transport Upgrade Preview)
|
|
10
|
+
|
|
11
|
+
Goal: validate a future transport/discovery stack without destabilizing demo flow.
|
|
12
|
+
|
|
13
|
+
### Track A: Stable Demo Line (keep)
|
|
14
|
+
|
|
15
|
+
- Keep `real-preview` as default demo path
|
|
16
|
+
- Improve reliability tests and troubleshooting docs
|
|
17
|
+
- Keep API/UX stable for demos
|
|
18
|
+
|
|
19
|
+
### Track B: Future Validation Line (new preview)
|
|
20
|
+
|
|
21
|
+
- Introduce `libp2p-preview` OR `webrtc-preview` branch adapter
|
|
22
|
+
- Reuse existing abstractions:
|
|
23
|
+
- transport
|
|
24
|
+
- envelope
|
|
25
|
+
- topic codec
|
|
26
|
+
- peer discovery
|
|
27
|
+
- Do not switch main demo line until validation quality is acceptable
|
|
28
|
+
|
|
29
|
+
## v0.4 Deliverables
|
|
30
|
+
|
|
31
|
+
- Pluggable transport config layer finalized
|
|
32
|
+
- One experimental preview adapter behind feature flag/env
|
|
33
|
+
- Side-by-side metrics with `real-preview`
|
|
34
|
+
- No changes to app-level `NetworkAdapter` contract
|
|
35
|
+
|
|
36
|
+
## v0.5 Candidates
|
|
37
|
+
|
|
38
|
+
- Envelope signing policy for anti-spoof baseline
|
|
39
|
+
- Topic schema versioning and compatibility guardrails
|
|
40
|
+
- Integration test suite for multi-node LAN and preview transports
|
|
41
|
+
|
|
42
|
+
## Explicitly Out of Scope
|
|
43
|
+
|
|
44
|
+
- Central registry/API server
|
|
45
|
+
- SQL or centralized persistence
|
|
46
|
+
- Login/account system
|
|
47
|
+
- Chat, tasks, friend graph
|
|
48
|
+
- Payments, reputation systems
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# SOCIAL_MD Specification
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`social.md` is the social/discovery config entrypoint for integrating an existing OpenClaw instance into SilicaClaw.
|
|
6
|
+
|
|
7
|
+
It does not add a central service, database, login, or social product features.
|
|
8
|
+
|
|
9
|
+
## Lookup Order
|
|
10
|
+
|
|
11
|
+
SilicaClaw looks up `social.md` in this priority:
|
|
12
|
+
|
|
13
|
+
1. `./social.md`
|
|
14
|
+
2. `./.openclaw/social.md`
|
|
15
|
+
3. `~/.openclaw/social.md`
|
|
16
|
+
|
|
17
|
+
If none exist, local-console can generate a default template.
|
|
18
|
+
|
|
19
|
+
## Frontmatter Schema
|
|
20
|
+
|
|
21
|
+
Supported frontmatter keys:
|
|
22
|
+
|
|
23
|
+
- `enabled` (`boolean`)
|
|
24
|
+
- `public_enabled` (`boolean`)
|
|
25
|
+
- `identity`
|
|
26
|
+
- `display_name` (`string`)
|
|
27
|
+
- `bio` (`string`)
|
|
28
|
+
- `avatar_url` (`string`)
|
|
29
|
+
- `tags` (`string[]`)
|
|
30
|
+
- `network`
|
|
31
|
+
- `mode` (`local | lan | global-preview`) **recommended primary setting**
|
|
32
|
+
- `namespace` (`string`)
|
|
33
|
+
- `adapter` (`mock | local-event-bus | real-preview | webrtc-preview`)
|
|
34
|
+
- `port` (`number`)
|
|
35
|
+
- `signaling_url` (`string`, optional legacy single endpoint)
|
|
36
|
+
- `signaling_urls` (`string[]`, preferred multi-endpoint bootstrap)
|
|
37
|
+
- `room` (`string`)
|
|
38
|
+
- `seed_peers` (`string[]`)
|
|
39
|
+
- `bootstrap_hints` (`string[]`)
|
|
40
|
+
- `discovery`
|
|
41
|
+
- `discoverable` (`boolean`)
|
|
42
|
+
- `allow_profile_broadcast` (`boolean`)
|
|
43
|
+
- `allow_presence_broadcast` (`boolean`)
|
|
44
|
+
- `visibility`
|
|
45
|
+
- `show_display_name` (`boolean`)
|
|
46
|
+
- `show_bio` (`boolean`)
|
|
47
|
+
- `show_tags` (`boolean`)
|
|
48
|
+
- `show_agent_id` (`boolean`)
|
|
49
|
+
- `show_last_seen` (`boolean`)
|
|
50
|
+
- `show_capabilities_summary` (`boolean`)
|
|
51
|
+
- `openclaw`
|
|
52
|
+
- `bind_existing_identity` (`boolean`)
|
|
53
|
+
- `use_openclaw_profile_if_available` (`boolean`)
|
|
54
|
+
|
|
55
|
+
## Resolution Rules
|
|
56
|
+
|
|
57
|
+
- `social.md` values take precedence over local fallback defaults.
|
|
58
|
+
- `network.mode` is resolved first:
|
|
59
|
+
- `local` -> `local-event-bus`
|
|
60
|
+
- `lan` -> `real-preview`
|
|
61
|
+
- `global-preview` -> `webrtc-preview`
|
|
62
|
+
- `social.md` profile fields override `profile.json` when provided.
|
|
63
|
+
- `global-preview` uses built-in bootstrap defaults when advanced signaling fields are absent.
|
|
64
|
+
- advanced fields can still override mode defaults (`adapter`, `signaling_urls`, `room`, `seed_peers`, `bootstrap_hints`).
|
|
65
|
+
- If `openclaw.bind_existing_identity=true` and OpenClaw identity exists, SilicaClaw reuses it.
|
|
66
|
+
- If no reusable identity exists, SilicaClaw generates local identity.
|
|
67
|
+
- If `enabled=false`, SilicaClaw broadcast loop is disabled.
|
|
68
|
+
- If `public_enabled=false`, profile broadcast is skipped.
|
|
69
|
+
- Existing `profile.json` remains fallback when `social.md` fields are empty/missing.
|
|
70
|
+
|
|
71
|
+
## Runtime Output
|
|
72
|
+
|
|
73
|
+
Resolved runtime state is written to:
|
|
74
|
+
|
|
75
|
+
- `.silicaclaw/social.runtime.json`
|
|
76
|
+
|
|
77
|
+
Includes:
|
|
78
|
+
|
|
79
|
+
- source path of `social.md`
|
|
80
|
+
- parse status
|
|
81
|
+
- last loaded timestamp
|
|
82
|
+
- resolved identity/profile/network/discovery
|
|
83
|
+
- bootstrap source summary (where signaling/room/seed/hints were resolved from)
|
|
84
|
+
|
|
85
|
+
## OpenClaw Identity Reuse
|
|
86
|
+
|
|
87
|
+
When enabled, SilicaClaw attempts to reuse OpenClaw identity from:
|
|
88
|
+
|
|
89
|
+
- `./.openclaw/identity.json`
|
|
90
|
+
- `./identity.json`
|
|
91
|
+
- `~/.openclaw/identity.json`
|
|
92
|
+
|
|
93
|
+
This reuse is local-first and file-based only.
|
|
94
|
+
|
|
95
|
+
## Bootstrap and Signaling Notes
|
|
96
|
+
|
|
97
|
+
- Signaling endpoints are used only for SDP/ICE exchange.
|
|
98
|
+
- Signaling does not store authoritative profile/presence directory data.
|
|
99
|
+
- `seed_peers` and `bootstrap_hints` are preview bootstrap inputs for discovery initialization.
|
|
100
|
+
- Current preview does not implement DHT routing, relay mesh, or complex routing.
|
|
101
|
+
|
|
102
|
+
## Minimal User Config
|
|
103
|
+
|
|
104
|
+
For most users, only these are needed:
|
|
105
|
+
|
|
106
|
+
- `enabled`
|
|
107
|
+
- `public_enabled`
|
|
108
|
+
- `identity.display_name`
|
|
109
|
+
- `identity.bio`
|
|
110
|
+
- `identity.tags`
|
|
111
|
+
- `network.mode`
|
|
112
|
+
- `openclaw.*`
|
|
113
|
+
|
|
114
|
+
Complex network bootstrap fields are optional and resolved into runtime.
|
|
115
|
+
With `network.mode=global-preview`, built-in bootstrap defaults are used, so users do not need to provide peer addresses.
|
|
116
|
+
|
|
117
|
+
## Complete Example
|
|
118
|
+
|
|
119
|
+
See:
|
|
120
|
+
|
|
121
|
+
- [`social.md.example`](./social.md.example)
|
|
122
|
+
- [`openclaw.social.md.example`](./openclaw.social.md.example)
|
package/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
v1.0-beta
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@silicaclaw/local-console",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "tsx watch src/server.ts",
|
|
7
|
+
"build": "tsc -p tsconfig.json",
|
|
8
|
+
"check": "tsc -p tsconfig.json --noEmit"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@silicaclaw/core": "0.1.0",
|
|
12
|
+
"@silicaclaw/network": "0.1.0",
|
|
13
|
+
"@silicaclaw/storage": "0.1.0",
|
|
14
|
+
"cors": "^2.8.5",
|
|
15
|
+
"express": "^4.21.2"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/cors": "^2.8.17",
|
|
19
|
+
"@types/express": "^4.17.21",
|
|
20
|
+
"tsx": "^4.19.3",
|
|
21
|
+
"typescript": "^5.8.2"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
Binary file
|