@cello-protocol/daemon 0.0.229 → 0.0.231
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/dist/channel-admin-lookup.d.ts +54 -0
- package/dist/channel-admin-lookup.d.ts.map +1 -0
- package/dist/channel-admin-lookup.js +122 -0
- package/dist/channel-admin-lookup.js.map +1 -0
- package/dist/channel-collect-tick.d.ts +36 -0
- package/dist/channel-collect-tick.d.ts.map +1 -0
- package/dist/channel-collect-tick.js +133 -0
- package/dist/channel-collect-tick.js.map +1 -0
- package/dist/channel-collector.d.ts +99 -0
- package/dist/channel-collector.d.ts.map +1 -0
- package/dist/channel-collector.js +249 -0
- package/dist/channel-collector.js.map +1 -0
- package/dist/channel-config-store.d.ts +36 -0
- package/dist/channel-config-store.d.ts.map +1 -0
- package/dist/channel-config-store.js +84 -0
- package/dist/channel-config-store.js.map +1 -0
- package/dist/channel-inbox-store.d.ts +46 -0
- package/dist/channel-inbox-store.d.ts.map +1 -0
- package/dist/channel-inbox-store.js +88 -0
- package/dist/channel-inbox-store.js.map +1 -0
- package/dist/channel-join-exchange.d.ts +87 -0
- package/dist/channel-join-exchange.d.ts.map +1 -0
- package/dist/channel-join-exchange.js +289 -0
- package/dist/channel-join-exchange.js.map +1 -0
- package/dist/channel-log-store.d.ts +14 -0
- package/dist/channel-log-store.d.ts.map +1 -1
- package/dist/channel-log-store.js +58 -0
- package/dist/channel-log-store.js.map +1 -1
- package/dist/channel-membership-store.d.ts +118 -0
- package/dist/channel-membership-store.d.ts.map +1 -0
- package/dist/channel-membership-store.js +226 -0
- package/dist/channel-membership-store.js.map +1 -0
- package/dist/channel-membership-wiring.d.ts +90 -0
- package/dist/channel-membership-wiring.d.ts.map +1 -0
- package/dist/channel-membership-wiring.js +387 -0
- package/dist/channel-membership-wiring.js.map +1 -0
- package/dist/channel-publish-handlers.d.ts +42 -0
- package/dist/channel-publish-handlers.d.ts.map +1 -0
- package/dist/channel-publish-handlers.js +212 -0
- package/dist/channel-publish-handlers.js.map +1 -0
- package/dist/channel-publish-wiring.d.ts +52 -0
- package/dist/channel-publish-wiring.d.ts.map +1 -0
- package/dist/channel-publish-wiring.js +143 -0
- package/dist/channel-publish-wiring.js.map +1 -0
- package/dist/channel-publisher.d.ts +221 -0
- package/dist/channel-publisher.d.ts.map +1 -0
- package/dist/channel-publisher.js +430 -0
- package/dist/channel-publisher.js.map +1 -0
- package/dist/channel-relay-client.d.ts +88 -0
- package/dist/channel-relay-client.d.ts.map +1 -0
- package/dist/channel-relay-client.js +180 -0
- package/dist/channel-relay-client.js.map +1 -0
- package/dist/channel-subscription-store.d.ts +137 -0
- package/dist/channel-subscription-store.d.ts.map +1 -0
- package/dist/channel-subscription-store.js +250 -0
- package/dist/channel-subscription-store.js.map +1 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +54 -0
- package/dist/daemon.js.map +1 -1
- package/dist/inbound-sessions.d.ts +6 -0
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +27 -1
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/refusal-reasons.d.ts +7 -0
- package/dist/refusal-reasons.d.ts.map +1 -1
- package/dist/refusal-reasons.js +15 -0
- package/dist/refusal-reasons.js.map +1 -1
- package/dist/session-content-context.d.ts +8 -0
- package/dist/session-content-context.d.ts.map +1 -1
- package/dist/session-content-ingest.d.ts.map +1 -1
- package/dist/session-content-ingest.js +28 -0
- package/dist/session-content-ingest.js.map +1 -1
- package/dist/session-node-manager.d.ts +4 -0
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +11 -0
- package/dist/session-node-manager.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
export const CHANNEL_SUBSCRIPTION_CREATE_SQL = `
|
|
2
|
+
CREATE TABLE IF NOT EXISTS channel_subscriptions (
|
|
3
|
+
agent_id TEXT NOT NULL,
|
|
4
|
+
channel_pubkey TEXT NOT NULL,
|
|
5
|
+
admin_pubkey TEXT NOT NULL,
|
|
6
|
+
access TEXT NOT NULL,
|
|
7
|
+
guidance TEXT NOT NULL DEFAULT '',
|
|
8
|
+
retention_seconds INTEGER NOT NULL DEFAULT 604800,
|
|
9
|
+
-- JSON array of multiaddrs: the relays this channel publishes to, in the order the info record
|
|
10
|
+
-- gave them. A column per relay would fix the count at two, and the count is the publisher's.
|
|
11
|
+
relays TEXT NOT NULL DEFAULT '[]',
|
|
12
|
+
moniker TEXT NOT NULL DEFAULT '',
|
|
13
|
+
delivered_through INTEGER NOT NULL DEFAULT 0,
|
|
14
|
+
processed_through INTEGER NOT NULL DEFAULT 0,
|
|
15
|
+
joined_at INTEGER NOT NULL DEFAULT 0,
|
|
16
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
17
|
+
PRIMARY KEY (agent_id, channel_pubkey)
|
|
18
|
+
);
|
|
19
|
+
`;
|
|
20
|
+
/**
|
|
21
|
+
* The group keys a subscriber holds, one row per generation.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ **A SEPARATE TABLE BECAUSE THERE ARE MANY PER SUBSCRIPTION, and every one is kept.** A re-key
|
|
24
|
+
* does not make old posts unreadable — they are still in the relay's queue under the old key — so a
|
|
25
|
+
* single `key` column on the subscription would make the channel's own history undecryptable to its
|
|
26
|
+
* own members the moment anyone was ejected.
|
|
27
|
+
*
|
|
28
|
+
* The key bytes live only here, inside the SQLCipher database, and are never logged.
|
|
29
|
+
*/
|
|
30
|
+
export const CHANNEL_SUBSCRIPTION_KEYS_CREATE_SQL = `
|
|
31
|
+
CREATE TABLE IF NOT EXISTS channel_subscription_keys (
|
|
32
|
+
agent_id TEXT NOT NULL,
|
|
33
|
+
channel_pubkey TEXT NOT NULL,
|
|
34
|
+
generation INTEGER NOT NULL,
|
|
35
|
+
key BLOB NOT NULL,
|
|
36
|
+
received_at INTEGER NOT NULL,
|
|
37
|
+
PRIMARY KEY (agent_id, channel_pubkey, generation)
|
|
38
|
+
);
|
|
39
|
+
`;
|
|
40
|
+
export class ChannelSubscriptionError extends Error {
|
|
41
|
+
code;
|
|
42
|
+
constructor(code, message) {
|
|
43
|
+
super(`${code}: ${message}`);
|
|
44
|
+
this.name = "ChannelSubscriptionError";
|
|
45
|
+
this.code = code;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class ChannelSubscriptionStore {
|
|
49
|
+
#db;
|
|
50
|
+
#logger;
|
|
51
|
+
constructor(db, logger) {
|
|
52
|
+
this.#db = db;
|
|
53
|
+
this.#logger = logger;
|
|
54
|
+
this.#db.exec(CHANNEL_SUBSCRIPTION_CREATE_SQL);
|
|
55
|
+
this.#db.exec(CHANNEL_SUBSCRIPTION_KEYS_CREATE_SQL);
|
|
56
|
+
}
|
|
57
|
+
/** Record (or refresh) a subscription. 019's join calls this; 018's tests use it directly. */
|
|
58
|
+
upsert(sub) {
|
|
59
|
+
this.#db
|
|
60
|
+
.prepare(
|
|
61
|
+
/**
|
|
62
|
+
* ⚠️ TWO THINGS THIS USED TO GET WRONG, both silent.
|
|
63
|
+
*
|
|
64
|
+
* `guidance` and `retention_seconds` arrive on the acceptance frame, are validated, and were
|
|
65
|
+
* then DROPPED — the columns existed and nothing ever wrote them. The order says to store
|
|
66
|
+
* them; a subscriber that does not has no idea what the channel is for or how long its posts
|
|
67
|
+
* last.
|
|
68
|
+
*
|
|
69
|
+
* And `status` was not in the update list, so a subscriber who LEFT and later rejoined got a
|
|
70
|
+
* fresh key, an `ok`, and a row still marked `left`. `active()` excludes it, so the collector
|
|
71
|
+
* never fetched: a channel they had just rejoined that produced nothing, for ever.
|
|
72
|
+
*/
|
|
73
|
+
`INSERT INTO channel_subscriptions
|
|
74
|
+
(agent_id, channel_pubkey, admin_pubkey, access, relays, guidance, retention_seconds, joined_at, status)
|
|
75
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'active')
|
|
76
|
+
ON CONFLICT (agent_id, channel_pubkey) DO UPDATE SET
|
|
77
|
+
admin_pubkey = excluded.admin_pubkey,
|
|
78
|
+
access = excluded.access,
|
|
79
|
+
relays = excluded.relays,
|
|
80
|
+
guidance = excluded.guidance,
|
|
81
|
+
retention_seconds = excluded.retention_seconds,
|
|
82
|
+
status = 'active'`)
|
|
83
|
+
.run(sub.agent_id, sub.channel_pubkey.toLowerCase(), sub.admin_pubkey.toLowerCase(), sub.access, JSON.stringify(sub.relays), sub.guidance ?? "", sub.retention_seconds ?? 7 * 24 * 60 * 60, sub.joined_at ?? Date.now());
|
|
84
|
+
}
|
|
85
|
+
get(agentId, channelPubkeyHex) {
|
|
86
|
+
const row = this.#db
|
|
87
|
+
.prepare(`SELECT agent_id, channel_pubkey, admin_pubkey, access, relays, moniker, guidance, retention_seconds, delivered_through, processed_through, status
|
|
88
|
+
FROM channel_subscriptions WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
89
|
+
.get(agentId, channelPubkeyHex.toLowerCase());
|
|
90
|
+
return row ? this.#toSubscription(row) : null;
|
|
91
|
+
}
|
|
92
|
+
/** Every channel this daemon should be collecting for. `left` and `ejected` are not collected. */
|
|
93
|
+
active() {
|
|
94
|
+
const rows = this.#db
|
|
95
|
+
.prepare(`SELECT agent_id, channel_pubkey, admin_pubkey, access, relays, moniker, guidance, retention_seconds, delivered_through, processed_through, status
|
|
96
|
+
FROM channel_subscriptions WHERE status = 'active' ORDER BY channel_pubkey ASC, agent_id ASC`)
|
|
97
|
+
.all();
|
|
98
|
+
return rows.map((r) => this.#toSubscription(r));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Move the DAEMON's position. Never moves backwards: a relay that answers with less than it did
|
|
102
|
+
* last time (a prune, a restart, a different relay) must not rewind a subscriber into re-fetching
|
|
103
|
+
* and re-delivering posts its agent has already been shown.
|
|
104
|
+
*/
|
|
105
|
+
setDeliveredThrough(agentId, channelPubkeyHex, seq) {
|
|
106
|
+
const current = this.get(agentId, channelPubkeyHex);
|
|
107
|
+
if (!current) {
|
|
108
|
+
throw new ChannelSubscriptionError("subscription_unknown", `no subscription for ${channelPubkeyHex.slice(0, 16)}`);
|
|
109
|
+
}
|
|
110
|
+
if (seq < current.delivered_through) {
|
|
111
|
+
throw new ChannelSubscriptionError("position_regression", `delivered_through is ${String(current.delivered_through)}; refusing to move it back to ${String(seq)}`);
|
|
112
|
+
}
|
|
113
|
+
if (seq === current.delivered_through)
|
|
114
|
+
return;
|
|
115
|
+
this.#db
|
|
116
|
+
.prepare(`UPDATE channel_subscriptions SET delivered_through = ? WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
117
|
+
.run(seq, agentId, channelPubkeyHex.toLowerCase());
|
|
118
|
+
this.#logger.debug("channel.delivered.advanced", {
|
|
119
|
+
agent_id: agentId, channel_pubkey: channelPubkeyHex, delivered_through: seq,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Move the AGENT's position — how far it has actually READ.
|
|
124
|
+
*
|
|
125
|
+
* ⚠️ **A LOWER VALUE THROWS RATHER THAN BEING IGNORED.** Silently refusing would leave a caller
|
|
126
|
+
* that computed a wrong position believing it had been applied, and this number is not
|
|
127
|
+
* recoverable from anywhere else: moving it back re-delivers messages the operator already saw,
|
|
128
|
+
* and moving it forward by mistake skips messages they never did. Equal is a no-op, not an error.
|
|
129
|
+
*/
|
|
130
|
+
advanceProcessed(agentId, channelPubkeyHex, seq) {
|
|
131
|
+
const current = this.get(agentId, channelPubkeyHex);
|
|
132
|
+
if (!current) {
|
|
133
|
+
throw new ChannelSubscriptionError("subscription_unknown", `no subscription for ${channelPubkeyHex.slice(0, 16)}`);
|
|
134
|
+
}
|
|
135
|
+
if (seq < current.processed_through) {
|
|
136
|
+
throw new ChannelSubscriptionError("position_regression", `processed_through is ${String(current.processed_through)}; refusing to move it back to ${String(seq)}`);
|
|
137
|
+
}
|
|
138
|
+
if (seq === current.processed_through)
|
|
139
|
+
return;
|
|
140
|
+
// ⚠️ TOUCHES ONE COLUMN. A read must never move `delivered_through`, or the collector's next
|
|
141
|
+
// pass would start past posts it has not fetched and they would never arrive.
|
|
142
|
+
this.#db
|
|
143
|
+
.prepare(`UPDATE channel_subscriptions SET processed_through = ? WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
144
|
+
.run(seq, agentId, channelPubkeyHex.toLowerCase());
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Store a group key for one generation.
|
|
148
|
+
*
|
|
149
|
+
* ⚠️ **IDEMPOTENT, because a re-key can be delivered twice** — the admin retries an undelivered
|
|
150
|
+
* one, and a member that already has it must not end up with two rows or a replaced key.
|
|
151
|
+
*/
|
|
152
|
+
addKey(agentId, channelPubkeyHex, gk, receivedAt) {
|
|
153
|
+
this.#db
|
|
154
|
+
.prepare(`INSERT INTO channel_subscription_keys (agent_id, channel_pubkey, generation, key, received_at)
|
|
155
|
+
VALUES (?, ?, ?, ?, ?)
|
|
156
|
+
ON CONFLICT (agent_id, channel_pubkey, generation) DO NOTHING`)
|
|
157
|
+
.run(agentId, channelPubkeyHex.toLowerCase(), gk.generation, Buffer.from(gk.key), receivedAt);
|
|
158
|
+
// The GENERATION may be logged; the key may not, ever.
|
|
159
|
+
this.#logger.info("channel.key.stored", {
|
|
160
|
+
agent_id: agentId, channel_pubkey: channelPubkeyHex, generation: gk.generation,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Every group key this subscriber holds, newest generation first.
|
|
165
|
+
*
|
|
166
|
+
* ⚠️ **OLD GENERATIONS ARE NEVER DELETED.** A re-key does not make yesterday's posts unreadable —
|
|
167
|
+
* they are still encrypted under the old key and still in the relay's queue — so dropping it
|
|
168
|
+
* would turn the channel's own history into `unknown_generation` for its own members.
|
|
169
|
+
*/
|
|
170
|
+
keysFor(agentId, channelPubkeyHex) {
|
|
171
|
+
const rows = this.#db
|
|
172
|
+
.prepare(`SELECT generation, key FROM channel_subscription_keys
|
|
173
|
+
WHERE agent_id = ? AND channel_pubkey = ? ORDER BY generation DESC`)
|
|
174
|
+
.all(agentId, channelPubkeyHex.toLowerCase());
|
|
175
|
+
return rows.map((r) => ({ generation: Number(r.generation), key: new Uint8Array(r.key) }));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The subscriber's OWN decision to stop following. Purely local: nothing is sent, nothing is asked
|
|
179
|
+
* of the publisher, and `active()` stops returning it so the collector stops fetching.
|
|
180
|
+
*/
|
|
181
|
+
markLeft(agentId, channelPubkeyHex) {
|
|
182
|
+
this.#setStatus(agentId, channelPubkeyHex, "left");
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The PUBLISHER's decision. Distinct from `left` on purpose: one the subscriber chose and can undo
|
|
186
|
+
* by rejoining, the other they cannot, and an operator asking why a channel went quiet needs to
|
|
187
|
+
* see which of the two happened.
|
|
188
|
+
*/
|
|
189
|
+
markEjected(agentId, channelPubkeyHex) {
|
|
190
|
+
this.#setStatus(agentId, channelPubkeyHex, "ejected");
|
|
191
|
+
}
|
|
192
|
+
#setStatus(agentId, channelPubkeyHex, status) {
|
|
193
|
+
const changed = this.#db
|
|
194
|
+
.prepare(`UPDATE channel_subscriptions SET status = ? WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
195
|
+
.run(status, agentId, channelPubkeyHex.toLowerCase());
|
|
196
|
+
if (Number(changed.changes) === 0) {
|
|
197
|
+
throw new ChannelSubscriptionError("subscription_unknown", `no subscription for ${channelPubkeyHex.slice(0, 16)}`);
|
|
198
|
+
}
|
|
199
|
+
this.#logger.info("channel.subscription.status_changed", {
|
|
200
|
+
agent_id: agentId, channel_pubkey: channelPubkeyHex, status,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/** A local display label. The pubkey is the identity and naming it changes nothing. */
|
|
204
|
+
setMoniker(agentId, channelPubkeyHex, moniker) {
|
|
205
|
+
this.#db
|
|
206
|
+
.prepare(`UPDATE channel_subscriptions SET moniker = ? WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
207
|
+
.run(moniker, agentId, channelPubkeyHex.toLowerCase());
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Is this pubkey a channel this agent subscribes to?
|
|
211
|
+
*
|
|
212
|
+
* ⚠️ **TRUE FOR `left` AND `ejected` TOO, and that is deliberate.** The one caller is the
|
|
213
|
+
* inbound-session gate: a channel never opens a session, so one arriving from a pubkey we know to
|
|
214
|
+
* be a channel is worth refusing on. Unsubscribing does not stop it being a channel, and
|
|
215
|
+
* answering false here would reopen the hole the moment somebody left.
|
|
216
|
+
*/
|
|
217
|
+
isSubscribedChannel(agentId, pubkeyHex) {
|
|
218
|
+
const row = this.#db
|
|
219
|
+
.prepare(`SELECT 1 AS hit FROM channel_subscriptions WHERE agent_id = ? AND channel_pubkey = ?`)
|
|
220
|
+
.get(agentId, pubkeyHex.toLowerCase());
|
|
221
|
+
return row !== undefined;
|
|
222
|
+
}
|
|
223
|
+
#toSubscription(row) {
|
|
224
|
+
let relays = [];
|
|
225
|
+
try {
|
|
226
|
+
const parsed = JSON.parse(row.relays);
|
|
227
|
+
if (Array.isArray(parsed))
|
|
228
|
+
relays = parsed.filter((r) => typeof r === "string");
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// A corrupt relay list is an empty one, which makes the channel uncollectable and says so in
|
|
232
|
+
// the log — better than throwing on a read path that several channels share.
|
|
233
|
+
this.#logger.warn("channel.subscription.relays_corrupt", { channel_pubkey: row.channel_pubkey });
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
agent_id: row.agent_id,
|
|
237
|
+
channel_pubkey: row.channel_pubkey,
|
|
238
|
+
admin_pubkey: row.admin_pubkey,
|
|
239
|
+
access: row.access,
|
|
240
|
+
relays,
|
|
241
|
+
moniker: row.moniker,
|
|
242
|
+
guidance: row.guidance,
|
|
243
|
+
retention_seconds: Number(row.retention_seconds),
|
|
244
|
+
delivered_through: Number(row.delivered_through),
|
|
245
|
+
processed_through: Number(row.processed_through),
|
|
246
|
+
status: row.status,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=channel-subscription-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-subscription-store.js","sourceRoot":"","sources":["../src/channel-subscription-store.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EACV,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AAkFpB,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAKzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAS7E"}
|
package/dist/daemon.js
CHANGED
|
@@ -41,6 +41,11 @@ import { registerContactHandlers } from "./contact-handlers.js";
|
|
|
41
41
|
import { registerSignalHandlers } from "./signal-handlers.js";
|
|
42
42
|
import { registerTestHandlers } from "./test-handlers.js";
|
|
43
43
|
import { registerAgentAdminHandlers } from "./agent-admin-handlers.js";
|
|
44
|
+
// M16 018-PUBCOLLECT — the channel publishing half.
|
|
45
|
+
import { wireChannelPublishing } from "./channel-publish-wiring.js";
|
|
46
|
+
import { ChannelSubscriptionStore } from "./channel-subscription-store.js";
|
|
47
|
+
import { wireChannelMembership } from "./channel-membership-wiring.js";
|
|
48
|
+
import { LEAF_KIND_MSG } from "./session-relay-client.js";
|
|
44
49
|
import { registerStatusHandler } from "./status-handler.js";
|
|
45
50
|
import { registerBackupRestoreHandlers } from "./backup-restore-handlers.js";
|
|
46
51
|
import { wireDocumentGate } from "./document-gate-wiring.js";
|
|
@@ -398,6 +403,16 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
398
403
|
dispatchSessionStateChangedWithTelegram,
|
|
399
404
|
sendTelegramDoorbell,
|
|
400
405
|
isDeliveryOpenToAgent, isChannelAgent: channelAgentLookup(sessionNodeManager, logger), // M16
|
|
406
|
+
// M16 019: the mirror — a session FROM a channel this agent subscribes to. Constructed per call
|
|
407
|
+
// rather than held, so a channel joined after boot is recognised without a restart.
|
|
408
|
+
/**
|
|
409
|
+
* ⚠️ **`resolveAgentId`, NOT THE NAME.** The store queries `agent_id`; the inbound path hands
|
|
410
|
+
* over `localAgent.name`. Passing the name matched no row, a missing row reads as "not a
|
|
411
|
+
* channel", and "not a channel" is ALLOW — so the refusal never fired and nothing said so. Test
|
|
412
|
+
* 21 could not see it because the harness replaced this lookup with a name-keyed stub.
|
|
413
|
+
*/
|
|
414
|
+
isSubscribedChannel: (agentName, counterpartyPubkeyHex) => new ChannelSubscriptionStore(sessionNodeManager.getDb(), logger)
|
|
415
|
+
.isSubscribedChannel(sessionNodeManager.resolveAgentId(agentName), counterpartyPubkeyHex),
|
|
401
416
|
});
|
|
402
417
|
if (!sharedSignaling) {
|
|
403
418
|
for (const agent of loadedAgents) {
|
|
@@ -504,6 +519,44 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
504
519
|
resolveCurrentAgent, getPersistence, getAgentSignaling, waitForSignalingConnected,
|
|
505
520
|
resolveConsortiumRoster, getFailoverEndpoint, sealFailures,
|
|
506
521
|
});
|
|
522
|
+
// M16 018-PUBCOLLECT: the channel publishing verbs, their log, their relay client and the
|
|
523
|
+
// per-channel publisher → channel-publish-wiring.ts. What stays here is the wiring.
|
|
524
|
+
// M16 019-MEMBERSHIP: joining, the group key, the eject re-key and the operator's channel verbs
|
|
525
|
+
// → channel-membership-wiring.ts. What stays here is the wiring.
|
|
526
|
+
const channelMembership = wireChannelMembership({
|
|
527
|
+
handlers, logger,
|
|
528
|
+
getDb: () => sessionNodeManager.getDb(),
|
|
529
|
+
sendInSession: async (agentName, sessionId, content) => {
|
|
530
|
+
// The hash comes from the SESSION, because a salted session hashes differently — computing it
|
|
531
|
+
// here would produce a leaf the counterparty's chain cannot match. Leaf kind `msg`: a join
|
|
532
|
+
// frame is not conversation, but a leaf kind is what a VERIFIER renders a leaf by, and a
|
|
533
|
+
// third kind would make every existing verifier unable to read a transcript carrying a join.
|
|
534
|
+
const { hash, alg } = await sessionNodeManager.contentHashForSession(agentName, sessionId, content);
|
|
535
|
+
await sessionNodeManager.sendContent(agentName, sessionId, content, new Uint8Array(hash), undefined, LEAF_KIND_MSG, alg);
|
|
536
|
+
},
|
|
537
|
+
setOnChannelJoinFrame: (cb) => { sessionNodeManager.setOnChannelJoinFrame(cb); },
|
|
538
|
+
loadedAgents, keyProviders,
|
|
539
|
+
resolveAgentId: (agentName) => sessionNodeManager.resolveAgentId(agentName),
|
|
540
|
+
resolveCurrentAgent: (connectionId, explicitAgent) => resolveCurrentAgent(perConnectionState.get(connectionId), explicitAgent),
|
|
541
|
+
activeSessionsFor: (agentName) => sessionNodeManager.getSessionsForAgent(agentName)
|
|
542
|
+
.filter((s) => s.status === "active")
|
|
543
|
+
.map((s) => ({ sessionId: s.session_id, counterpartyPubkeyHex: s.counterparty_pubkey })),
|
|
544
|
+
// M16 020-CHANADMIN: the subscriber asks the directory who administers a channel, on its own
|
|
545
|
+
// authenticated stream. No stream means the join is refused, not accepted.
|
|
546
|
+
signalingFor: (agentName) => signalingFor(agentName) ?? null,
|
|
547
|
+
});
|
|
548
|
+
const channelWiring = wireChannelPublishing({
|
|
549
|
+
handlers, logger,
|
|
550
|
+
getDb: () => sessionNodeManager.getDb(),
|
|
551
|
+
getNode: () => sessionNodeManager.getStandingReceiverNode() ?? null,
|
|
552
|
+
screenOutbound: (content, ctx) => securityGateway.screenOutbound(content, ctx),
|
|
553
|
+
loadedAgents, keyProviders,
|
|
554
|
+
resolveCurrentAgent: (connectionId, explicitAgent) => resolveCurrentAgent(perConnectionState.get(connectionId), explicitAgent),
|
|
555
|
+
isAgentOnline: (agentId) => onlineAgents.has(agentId) && !explicitlyOfflineAgents.has(agentId),
|
|
556
|
+
// From the membership half, which owns the group key. This is what carries a re-key to the
|
|
557
|
+
// relays on the next post, and so what makes an ejection lock a member out AT the relay.
|
|
558
|
+
currentFetchKey: channelMembership.currentFetchKey,
|
|
559
|
+
});
|
|
507
560
|
// ─── Trust-signal wallet (operator-facing, no agent scope required) ───
|
|
508
561
|
// 040-DAEMONROOT unit 1: the trust-signal, attestation and consent handlers moved to
|
|
509
562
|
// signal-handlers.ts, with the two helpers only they used. What stays here is the wiring.
|
|
@@ -1002,6 +1055,7 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
1002
1055
|
// not add a separate per-agent stop loop beside it: it would be redundant, and an unguarded
|
|
1003
1056
|
// second stop() that throws would abort the rest of shutdown.
|
|
1004
1057
|
trustSignalSweepTicker.stopAll();
|
|
1058
|
+
channelWiring.stop();
|
|
1005
1059
|
await stopAllSignaling();
|
|
1006
1060
|
// Gracefully mark active sessions interrupted (AC-009) before stopping IPC
|
|
1007
1061
|
await sessionNodeManager.gracefulShutdown();
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,12 @@ export interface InboundSessionDeps {
|
|
|
121
121
|
* nothing here can know whether a REMOTE counterparty is a channel.
|
|
122
122
|
*/
|
|
123
123
|
isChannelAgent: (agentName: string) => boolean;
|
|
124
|
+
/**
|
|
125
|
+
* M16 019: is this REMOTE pubkey a channel the given local agent subscribes to? The mirror of
|
|
126
|
+
* `isChannelAgent`, and it answers a question that one cannot: this daemon knows a remote identity
|
|
127
|
+
* is a channel only because it subscribed to it.
|
|
128
|
+
*/
|
|
129
|
+
isSubscribedChannel: (agentName: string, counterpartyPubkeyHex: string) => boolean;
|
|
124
130
|
}
|
|
125
131
|
/**
|
|
126
132
|
* DOD-CONSUME-1 / `M10B-D13` — project verified trust signals into the LLM-facing JSON shape.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/inbound-sessions.js
CHANGED
|
@@ -311,7 +311,7 @@ export function extractInboundSessionAssignment(frame) {
|
|
|
311
311
|
};
|
|
312
312
|
}
|
|
313
313
|
export function createInboundSessions(deps) {
|
|
314
|
-
const { logger, sessionNodeManager, agents, getConnState, resolveCurrentAgent, NO_CURRENT_AGENT_RESPONSE, getKeyProvider, sharedSignaling, handleInboundSealInterruptedRequest, reapDeadHalfOpenSessions, sendAwayResponse, dispatchSessionStateChangedWithTelegram, sendTelegramDoorbell, isDeliveryOpenToAgent, isChannelAgent, } = deps;
|
|
314
|
+
const { logger, sessionNodeManager, agents, getConnState, resolveCurrentAgent, NO_CURRENT_AGENT_RESPONSE, getKeyProvider, sharedSignaling, handleInboundSealInterruptedRequest, reapDeadHalfOpenSessions, sendAwayResponse, dispatchSessionStateChangedWithTelegram, sendTelegramDoorbell, isDeliveryOpenToAgent, isChannelAgent, isSubscribedChannel, } = deps;
|
|
315
315
|
// ─── Seam 2: inbound session establishment (counterparty side) ─────────────
|
|
316
316
|
//
|
|
317
317
|
// When agent A initiates a session, the directory FROST-signs a SessionAssignment
|
|
@@ -1353,6 +1353,32 @@ export function createInboundSessions(deps) {
|
|
|
1353
1353
|
});
|
|
1354
1354
|
return;
|
|
1355
1355
|
}
|
|
1356
|
+
/**
|
|
1357
|
+
* M16 019: THE MIRROR — a session FROM a channel this agent subscribes to.
|
|
1358
|
+
*
|
|
1359
|
+
* The check above holds the line when somebody dials one of OUR channels. This one catches what
|
|
1360
|
+
* it cannot see: a channel that dials US. A channel does not converse, so this is either its key
|
|
1361
|
+
* in somebody else's hands, or someone who has learned a channel's pubkey and is trading on the
|
|
1362
|
+
* trust the operator already places in it — which is exactly the shape a subscriber is least
|
|
1363
|
+
* equipped to doubt, because they already read and believe that identity.
|
|
1364
|
+
*
|
|
1365
|
+
* Same slot and same path as its sibling: after verification, through `refuseInboundSession`,
|
|
1366
|
+
* so the refusal is durable and the dialer is revoked.
|
|
1367
|
+
*/
|
|
1368
|
+
if (isSubscribedChannel(localAgent.name, parsed.participantAPubkeyHex)) {
|
|
1369
|
+
refuseInboundSession({
|
|
1370
|
+
agentName: localAgent.name,
|
|
1371
|
+
sessionIdHex: parsed.sessionIdHex,
|
|
1372
|
+
counterpartyPubkeyHex: parsed.participantAPubkeyHex,
|
|
1373
|
+
reason: REFUSAL_REASONS.SESSION_FROM_SUBSCRIBED_CHANNEL,
|
|
1374
|
+
offeredDialer: offered,
|
|
1375
|
+
counterpartyGuidance: "They refused this session: the identity you dialled from is a broadcast channel they " +
|
|
1376
|
+
"subscribe to, and channels publish rather than hold sessions. If you are the operator " +
|
|
1377
|
+
"behind it, open the session from your admin agent instead.",
|
|
1378
|
+
correlationId,
|
|
1379
|
+
});
|
|
1380
|
+
return;
|
|
1381
|
+
}
|
|
1356
1382
|
inboundInFlight.add(offerKey(localAgent.name, parsed.sessionIdHex));
|
|
1357
1383
|
// Serialize: the next accept does not begin until this one (and any standing-receiver
|
|
1358
1384
|
// rebuild it triggers) settles. A throw inside one accept must not break the chain.
|