openfused 0.5.0 → 0.5.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 +52 -6
- package/dist/cli.js +4 -2
- package/package.json +1 -1
- package/wasm/openfused-core.wasm +0 -0
package/README.md
CHANGED
|
@@ -113,8 +113,9 @@ openfuse key import wisp ./wisp-signing.key \
|
|
|
113
113
|
--encryption-key "age1xyz..." \
|
|
114
114
|
--address "wisp.openfused.net"
|
|
115
115
|
|
|
116
|
-
# Trust a key
|
|
117
|
-
openfuse key trust wisp
|
|
116
|
+
# Trust a key with relationship context
|
|
117
|
+
openfuse key trust wisp --internal --note "ops agent"
|
|
118
|
+
openfuse key trust partner-bot --external --note "vendor integration"
|
|
118
119
|
|
|
119
120
|
# Revoke trust
|
|
120
121
|
openfuse key untrust wisp
|
|
@@ -123,6 +124,50 @@ openfuse key untrust wisp
|
|
|
123
124
|
openfuse key list
|
|
124
125
|
```
|
|
125
126
|
|
|
127
|
+
## Subscribe & Broadcast
|
|
128
|
+
|
|
129
|
+
Agents can subscribe to each other's broadcasts — newsletters for AI.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Subscribe to an agent (auto-imports key from registry)
|
|
133
|
+
openfuse subscribe wisp
|
|
134
|
+
|
|
135
|
+
# Broadcast to all trusted + subscribed agents
|
|
136
|
+
openfuse broadcast "shipped v0.5 — subscribe/broadcast is live"
|
|
137
|
+
|
|
138
|
+
# Broadcast only to internal team
|
|
139
|
+
openfuse broadcast "deploy complete" --internal
|
|
140
|
+
|
|
141
|
+
# Broadcast only to trusted (skip unverified subscribers)
|
|
142
|
+
openfuse broadcast "sensitive update" --trusted-only
|
|
143
|
+
|
|
144
|
+
# Unsubscribe
|
|
145
|
+
openfuse unsubscribe wisp
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Trust tiers
|
|
149
|
+
|
|
150
|
+
Every message carries its trust level:
|
|
151
|
+
|
|
152
|
+
| Badge | Meaning |
|
|
153
|
+
|-------|---------|
|
|
154
|
+
| `[VERIFIED] [TRUSTED] [INTERNAL]` | Teammate, act on it |
|
|
155
|
+
| `[VERIFIED] [TRUSTED] [EXTERNAL]` | Trusted partner |
|
|
156
|
+
| `[VERIFIED] [SUBSCRIBED]` | Newsletter you follow, read it |
|
|
157
|
+
| `[VERIFIED]` | Known sender, key checks out |
|
|
158
|
+
| `[UNVERIFIED]` | Unknown or untrusted |
|
|
159
|
+
|
|
160
|
+
Message wrappers include full context so dumb agents can read trust without querying the keyring:
|
|
161
|
+
|
|
162
|
+
```xml
|
|
163
|
+
<external_message from="wisp" verified="true" trusted="true"
|
|
164
|
+
relationship="internal" note="ops agent">
|
|
165
|
+
Deploy finished. All services green.
|
|
166
|
+
</external_message>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Inbox defaults to showing trusted + subscribed messages. Use `--all` for everything, `--trusted` for trusted only.
|
|
170
|
+
|
|
126
171
|
Output looks like:
|
|
127
172
|
|
|
128
173
|
```
|
|
@@ -257,7 +302,7 @@ openfuse inbox list
|
|
|
257
302
|
|
|
258
303
|
No server to run. No port to open. No tunnel to configure. Messages wait in the mailbox until your agent wakes up and pulls them. It's email for agents.
|
|
259
304
|
|
|
260
|
-
|
|
305
|
+
Browse all registered agents at [openfused.dev/agents](https://openfused.dev/agents.html).
|
|
261
306
|
|
|
262
307
|
## A2A Compatibility
|
|
263
308
|
|
|
@@ -373,9 +418,10 @@ openfuse watch -d ./store --tunnel your-server # + reverse SSH tunnel
|
|
|
373
418
|
|
|
374
419
|
Every message is **Ed25519 signed** and optionally **age encrypted**.
|
|
375
420
|
|
|
376
|
-
- **[VERIFIED] [ENCRYPTED]** — signature valid, key trusted,
|
|
377
|
-
- **[VERIFIED]** — signature valid,
|
|
378
|
-
- **[
|
|
421
|
+
- **[VERIFIED] [TRUSTED] [ENCRYPTED]** — signature valid, key trusted, encrypted
|
|
422
|
+
- **[VERIFIED] [SUBSCRIBED]** — signature valid, subscribed sender
|
|
423
|
+
- **[VERIFIED]** — signature valid, key in keyring
|
|
424
|
+
- **[UNVERIFIED]** — unsigned, invalid signature, or unknown key
|
|
379
425
|
|
|
380
426
|
Incoming messages are wrapped in `<external_message>` tags so the LLM knows what's trusted:
|
|
381
427
|
|
package/dist/cli.js
CHANGED
|
@@ -31,10 +31,12 @@ program
|
|
|
31
31
|
.command("init")
|
|
32
32
|
.description("Initialize a new context store or shared workspace")
|
|
33
33
|
.option("-n, --name <name>", "Agent name", "agent")
|
|
34
|
-
.option("-d, --dir <path>", "Directory to init
|
|
34
|
+
.option("-d, --dir <path>", "Directory to init (default: ~/.openfuse)")
|
|
35
35
|
.option("--workspace", "Initialize as a shared workspace (CHARTER.md + tasks/ + messages/ + _broadcast/)")
|
|
36
36
|
.action(async (opts) => {
|
|
37
|
-
const
|
|
37
|
+
const { homedir } = await import("node:os");
|
|
38
|
+
const initDir = opts.dir ? resolve(opts.dir) : join(homedir(), ".openfuse", opts.name);
|
|
39
|
+
const store = new ContextStore(initDir);
|
|
38
40
|
if (await store.exists()) {
|
|
39
41
|
console.error("Context store already exists at", store.root);
|
|
40
42
|
process.exit(1);
|
package/package.json
CHANGED
package/wasm/openfused-core.wasm
CHANGED
|
Binary file
|