@agentshouse/mdruntime-adapter 0.1.0-cca5d676bc88e → 0.1.0-ccd2ccb1f7214
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/AGENTS.md +278 -210
- package/dist/actions.d.ts +63 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +157 -138
- package/dist/adapter.d.ts +1 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +322 -100
- package/dist/discovery.d.ts +4 -4
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +26 -12
- package/dist/gather.d.ts +1 -0
- package/dist/gather.d.ts.map +1 -1
- package/dist/gather.js +11 -6
- package/dist/handed.d.ts +15 -0
- package/dist/handed.d.ts.map +1 -0
- package/dist/handed.js +38 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/model.d.ts +1 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +21 -7
- package/dist/read.d.ts +35 -7
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +160 -79
- package/dist/referrer.d.ts +7 -0
- package/dist/referrer.d.ts.map +1 -0
- package/dist/referrer.js +35 -0
- package/dist/refusal.d.ts +5 -9
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +31 -17
- package/dist/site.d.ts +1 -1
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +189 -54
- package/dist/stream.d.ts +4 -2
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +330 -16
- package/dist/transport.d.ts +64 -11
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +3 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/write.d.ts +3 -9
- package/dist/write.d.ts.map +1 -1
- package/dist/write.js +97 -20
- package/package.json +3 -4
- package/dist/links.d.ts +0 -20
- package/dist/links.d.ts.map +0 -1
- package/dist/links.js +0 -104
package/dist/stream.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { acceptedMessage } from './actions.js';
|
|
2
|
-
import {
|
|
2
|
+
import { sha256Hex } from './digest.js';
|
|
3
|
+
import { binaryFileOf, headChange, identities } from './read.js';
|
|
3
4
|
import { roomVersion } from './version.js';
|
|
4
5
|
const HELD_FRAMES_MAX = 256;
|
|
5
6
|
function turnOperation(frame) {
|
|
@@ -21,9 +22,78 @@ function position(value) {
|
|
|
21
22
|
return null;
|
|
22
23
|
return BigInt(value);
|
|
23
24
|
}
|
|
25
|
+
function assembled(entries) {
|
|
26
|
+
const whole = [];
|
|
27
|
+
let open = null;
|
|
28
|
+
for (const entry of entries) {
|
|
29
|
+
if (entry.kind === 'piece') {
|
|
30
|
+
if (open === null || open.entry.path !== entry.path || entry.text === undefined)
|
|
31
|
+
return null;
|
|
32
|
+
open.texts.push(entry.text);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (open !== null)
|
|
36
|
+
return null;
|
|
37
|
+
if (entry.continued !== true) {
|
|
38
|
+
whole.push(entry);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (entry.text === undefined)
|
|
42
|
+
return null;
|
|
43
|
+
open = { entry, texts: [entry.text] };
|
|
44
|
+
}
|
|
45
|
+
if (entry.continued === true)
|
|
46
|
+
continue;
|
|
47
|
+
const { continued: _continued, ...head } = open.entry;
|
|
48
|
+
whole.push({ ...head, text: open.texts.join('') });
|
|
49
|
+
open = null;
|
|
50
|
+
}
|
|
51
|
+
return open === null ? whole : null;
|
|
52
|
+
}
|
|
53
|
+
async function verified(entries) {
|
|
54
|
+
try {
|
|
55
|
+
for (const entry of entries) {
|
|
56
|
+
if (entry.text === undefined || entry.sha256 === undefined)
|
|
57
|
+
continue;
|
|
58
|
+
if ((await sha256Hex(entry.text)) !== entry.sha256)
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function resumed(kept, frame) {
|
|
68
|
+
const last = frame.entries.at(-1);
|
|
69
|
+
const point = { parts: frame.index + 1, from: frame.from, target: frame.target };
|
|
70
|
+
if (last?.continued !== true)
|
|
71
|
+
return { ...point, handled: frame.handled, piece: null };
|
|
72
|
+
const text = last.text?.length ?? 0;
|
|
73
|
+
if (last.kind !== 'piece') {
|
|
74
|
+
return last.sha256 === undefined
|
|
75
|
+
? kept.resume
|
|
76
|
+
: { ...point, handled: frame.handled, piece: { sha256: last.sha256, offset: text } };
|
|
77
|
+
}
|
|
78
|
+
const piece = kept.resume?.piece ?? null;
|
|
79
|
+
if (piece === null)
|
|
80
|
+
return kept.resume;
|
|
81
|
+
const pieces = frame.entries.reduce((sum, entry) => sum + (entry.kind === 'piece' ? (entry.text?.length ?? 0) : 0), 0);
|
|
82
|
+
return {
|
|
83
|
+
...point,
|
|
84
|
+
handled: frame.handled,
|
|
85
|
+
piece: { sha256: piece.sha256, offset: piece.offset + pieces },
|
|
86
|
+
};
|
|
87
|
+
}
|
|
24
88
|
export function houseNotifications(transport, mode) {
|
|
25
89
|
const stream = transport.stream;
|
|
26
90
|
const lines = new Map();
|
|
91
|
+
const kept = new Map();
|
|
92
|
+
let receipts = null;
|
|
93
|
+
let loaded = Promise.resolve();
|
|
94
|
+
let acknowledging = null;
|
|
95
|
+
let receiving = Promise.resolve();
|
|
96
|
+
let verifying = 0;
|
|
27
97
|
const locators = new Map();
|
|
28
98
|
const observers = new Set();
|
|
29
99
|
const conversationObservers = new Set();
|
|
@@ -41,7 +111,10 @@ export function houseNotifications(transport, mode) {
|
|
|
41
111
|
event.kind === 'questions' ||
|
|
42
112
|
event.kind === 'process' ||
|
|
43
113
|
event.kind === 'commands' ||
|
|
44
|
-
event.kind === 'options'
|
|
114
|
+
event.kind === 'options' ||
|
|
115
|
+
event.kind === 'starting' ||
|
|
116
|
+
event.kind === 'link' ||
|
|
117
|
+
event.kind === 'deliveries') {
|
|
45
118
|
live.add(event.conversation);
|
|
46
119
|
}
|
|
47
120
|
for (const observer of conversationObservers)
|
|
@@ -49,6 +122,7 @@ export function houseNotifications(transport, mode) {
|
|
|
49
122
|
}
|
|
50
123
|
function reopened(next) {
|
|
51
124
|
opening = next;
|
|
125
|
+
acknowledging = next;
|
|
52
126
|
const gapped = new Set([...replicated, ...live]);
|
|
53
127
|
live.clear();
|
|
54
128
|
for (const conversation of gapped)
|
|
@@ -86,6 +160,18 @@ export function houseNotifications(transport, mode) {
|
|
|
86
160
|
emitConversation({ kind: 'options', conversation, options: structuredClone(frame.options) });
|
|
87
161
|
return;
|
|
88
162
|
}
|
|
163
|
+
if (frame.type === 'starting') {
|
|
164
|
+
emitConversation({ kind: 'starting', conversation, step: frame.step });
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (frame.type === 'link') {
|
|
168
|
+
emitConversation({ kind: 'link', conversation, connected: frame.connected });
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (frame.type === 'deliveries') {
|
|
172
|
+
emitConversation({ kind: 'deliveries', conversation, unknown: [...frame.unknown] });
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
89
175
|
if (frame.type === 'interactions') {
|
|
90
176
|
emitConversation({
|
|
91
177
|
kind: 'questions',
|
|
@@ -110,7 +196,162 @@ export function houseNotifications(transport, mode) {
|
|
|
110
196
|
if (line !== undefined)
|
|
111
197
|
lines.set(authority, { ...line, frames: [] });
|
|
112
198
|
}
|
|
113
|
-
function
|
|
199
|
+
async function forget(carries) {
|
|
200
|
+
const held = carries.filter((carry) => kept.delete(carry));
|
|
201
|
+
if (held.length > 0)
|
|
202
|
+
await receipts?.drop(held).catch(() => { });
|
|
203
|
+
}
|
|
204
|
+
async function lost(authority, carry) {
|
|
205
|
+
interrupt(authority);
|
|
206
|
+
await forget([carry]);
|
|
207
|
+
}
|
|
208
|
+
async function stage(frame, via) {
|
|
209
|
+
await loaded;
|
|
210
|
+
const port = receipts;
|
|
211
|
+
if (port === null)
|
|
212
|
+
return;
|
|
213
|
+
const held = kept.get(frame.carry);
|
|
214
|
+
if (held === undefined && frame.index !== 0) {
|
|
215
|
+
interrupt(frame.authority);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (held !== undefined &&
|
|
219
|
+
(held.fenced !== null || frame.index > held.parts || frame.index < (held.resume?.parts ?? 0))) {
|
|
220
|
+
await lost(frame.authority, frame.carry);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (held === undefined) {
|
|
224
|
+
await forget([...kept.values()]
|
|
225
|
+
.filter((other) => other.authority === frame.authority && other.fenced === null)
|
|
226
|
+
.map((other) => other.carry));
|
|
227
|
+
}
|
|
228
|
+
const start = held ?? {
|
|
229
|
+
authority: frame.authority,
|
|
230
|
+
carry: frame.carry,
|
|
231
|
+
logEpoch: lines.get(frame.authority)?.logEpoch ?? null,
|
|
232
|
+
after: frame.after,
|
|
233
|
+
parts: 0,
|
|
234
|
+
resume: null,
|
|
235
|
+
fenced: null,
|
|
236
|
+
};
|
|
237
|
+
const next = { ...start, parts: frame.index + 1, resume: resumed(start, frame) };
|
|
238
|
+
const part = { entries: frame.entries };
|
|
239
|
+
try {
|
|
240
|
+
await port.keep(frame.carry, next, { index: frame.index, value: part });
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
await lost(frame.authority, frame.carry);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
kept.set(frame.carry, next);
|
|
247
|
+
via?.received(frame.authority, frame.carry, frame.index);
|
|
248
|
+
}
|
|
249
|
+
async function keptEntries(carry, parts) {
|
|
250
|
+
if (parts === 0)
|
|
251
|
+
return [];
|
|
252
|
+
if (receipts === null)
|
|
253
|
+
return null;
|
|
254
|
+
const read = (await receipts.parts(carry, parts));
|
|
255
|
+
if (read.length !== parts)
|
|
256
|
+
return null;
|
|
257
|
+
const entries = assembled(read.flatMap((part) => part.entries));
|
|
258
|
+
return entries !== null && (await verified(entries)) ? entries : null;
|
|
259
|
+
}
|
|
260
|
+
async function carried(frame) {
|
|
261
|
+
await loaded;
|
|
262
|
+
const held = kept.get(frame.carry);
|
|
263
|
+
if (frame.parts > 0 && held?.parts !== frame.parts) {
|
|
264
|
+
await lost(frame.authority, frame.carry);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const entries = await keptEntries(frame.carry, frame.parts).catch(() => null);
|
|
268
|
+
if (entries === null) {
|
|
269
|
+
await lost(frame.authority, frame.carry);
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const fenced = {
|
|
273
|
+
...(held ?? {
|
|
274
|
+
authority: frame.authority,
|
|
275
|
+
carry: frame.carry,
|
|
276
|
+
logEpoch: frame.log_epoch,
|
|
277
|
+
after: frame.after,
|
|
278
|
+
parts: 0,
|
|
279
|
+
resume: null,
|
|
280
|
+
}),
|
|
281
|
+
after: frame.after,
|
|
282
|
+
fenced: { position: frame.position, logEpoch: frame.log_epoch },
|
|
283
|
+
};
|
|
284
|
+
try {
|
|
285
|
+
await receipts?.keep(frame.carry, fenced);
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
await lost(frame.authority, frame.carry);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
kept.set(frame.carry, fenced);
|
|
292
|
+
publish(frame, entries);
|
|
293
|
+
}
|
|
294
|
+
async function load(port) {
|
|
295
|
+
try {
|
|
296
|
+
for (const { key, head } of await port.heads())
|
|
297
|
+
kept.set(key, head);
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
kept.clear();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async function restored(room) {
|
|
304
|
+
const line = lines.get(room.authority);
|
|
305
|
+
let at = room.position;
|
|
306
|
+
const chain = [];
|
|
307
|
+
for (;;) {
|
|
308
|
+
const next = [...kept.values()].find((carry) => carry.authority === room.authority &&
|
|
309
|
+
carry.after === at &&
|
|
310
|
+
carry.fenced?.logEpoch === room.log_epoch);
|
|
311
|
+
if (next?.fenced == null)
|
|
312
|
+
break;
|
|
313
|
+
const entries = await keptEntries(next.carry, next.parts).catch(() => null);
|
|
314
|
+
if (entries === null)
|
|
315
|
+
break;
|
|
316
|
+
chain.push({ carry: next, entries });
|
|
317
|
+
at = next.fenced.position;
|
|
318
|
+
}
|
|
319
|
+
const partial = [...kept.values()].find((carry) => carry.authority === room.authority &&
|
|
320
|
+
carry.fenced === null &&
|
|
321
|
+
carry.logEpoch === room.log_epoch &&
|
|
322
|
+
carry.after === at &&
|
|
323
|
+
carry.resume !== null &&
|
|
324
|
+
carry.resume.parts > 0);
|
|
325
|
+
const stale = [...kept.values()].filter((carry) => carry.authority === room.authority &&
|
|
326
|
+
carry !== partial &&
|
|
327
|
+
!chain.some((link) => link.carry === carry));
|
|
328
|
+
await forget(stale.map((carry) => carry.carry));
|
|
329
|
+
if (line !== undefined && line.logEpoch === room.log_epoch && chain.length > 0) {
|
|
330
|
+
const frames = chain.map(({ carry, entries }) => ({
|
|
331
|
+
after: BigInt(carry.after),
|
|
332
|
+
position: BigInt(carry.fenced.position),
|
|
333
|
+
entries,
|
|
334
|
+
}));
|
|
335
|
+
lines.set(room.authority, { ...line, frames: [...line.frames, ...frames] });
|
|
336
|
+
}
|
|
337
|
+
return {
|
|
338
|
+
...room,
|
|
339
|
+
position: at,
|
|
340
|
+
...(partial?.resume == null
|
|
341
|
+
? {}
|
|
342
|
+
: {
|
|
343
|
+
carry: {
|
|
344
|
+
id: partial.carry,
|
|
345
|
+
parts: partial.resume.parts,
|
|
346
|
+
from: partial.resume.from,
|
|
347
|
+
target: partial.resume.target,
|
|
348
|
+
handled: partial.resume.handled,
|
|
349
|
+
...(partial.resume.piece === null ? {} : { piece: partial.resume.piece }),
|
|
350
|
+
},
|
|
351
|
+
}),
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
function handle(frame, via) {
|
|
114
355
|
if (frame.type === 'signal') {
|
|
115
356
|
const mode = frame.service_mode;
|
|
116
357
|
if (mode !== 'open' && mode !== 'write-halted')
|
|
@@ -126,6 +367,10 @@ export function houseNotifications(transport, mode) {
|
|
|
126
367
|
});
|
|
127
368
|
return;
|
|
128
369
|
}
|
|
370
|
+
if (frame.type === 'authority_changed') {
|
|
371
|
+
emit({ kind: 'authority-changed', scope: { authorities: frame.rooms } });
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
129
374
|
if (frame.type === 'conversations') {
|
|
130
375
|
emitConversation({ kind: 'list', entries: frame.conversations.map(listedConversation) });
|
|
131
376
|
return;
|
|
@@ -142,13 +387,20 @@ export function houseNotifications(transport, mode) {
|
|
|
142
387
|
frame.type === 'process' ||
|
|
143
388
|
frame.type === 'commands' ||
|
|
144
389
|
frame.type === 'options' ||
|
|
390
|
+
frame.type === 'starting' ||
|
|
391
|
+
frame.type === 'link' ||
|
|
392
|
+
frame.type === 'deliveries' ||
|
|
145
393
|
frame.type === 'interactions' ||
|
|
146
394
|
frame.type === 'message') {
|
|
147
395
|
converse(frame);
|
|
148
396
|
return;
|
|
149
397
|
}
|
|
150
|
-
if (frame.type
|
|
151
|
-
return;
|
|
398
|
+
if (frame.type === 'part')
|
|
399
|
+
return stage(frame, via);
|
|
400
|
+
if (frame.type === 'carried')
|
|
401
|
+
return carried(frame);
|
|
402
|
+
}
|
|
403
|
+
function publish(frame, entries) {
|
|
152
404
|
const at = position(frame.position);
|
|
153
405
|
const after = position(frame.after);
|
|
154
406
|
if (at === null || after === null || after >= at) {
|
|
@@ -162,7 +414,7 @@ export function houseNotifications(transport, mode) {
|
|
|
162
414
|
const last = line.frames.at(-1);
|
|
163
415
|
if (last !== undefined && at <= last.position)
|
|
164
416
|
return;
|
|
165
|
-
const held = { after, position: at, entries
|
|
417
|
+
const held = { after, position: at, entries };
|
|
166
418
|
const next = last !== undefined && after <= last.position ? [...line.frames, held] : [held];
|
|
167
419
|
lines.set(frame.authority, { ...line, frames: next.length > HELD_FRAMES_MAX ? [] : next });
|
|
168
420
|
}
|
|
@@ -171,11 +423,30 @@ export function houseNotifications(transport, mode) {
|
|
|
171
423
|
}
|
|
172
424
|
announce(frame.authority, { position: frame.position, logEpoch: frame.log_epoch });
|
|
173
425
|
}
|
|
174
|
-
stream.observe(
|
|
426
|
+
stream.observe((frame) => {
|
|
427
|
+
const via = acknowledging;
|
|
428
|
+
if (verifying === 0) {
|
|
429
|
+
const handled = handle(frame, via);
|
|
430
|
+
if (handled === undefined)
|
|
431
|
+
return;
|
|
432
|
+
verifying += 1;
|
|
433
|
+
receiving = handled.finally(() => {
|
|
434
|
+
verifying -= 1;
|
|
435
|
+
});
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
verifying += 1;
|
|
439
|
+
receiving = receiving
|
|
440
|
+
.then(() => handle(frame, via))
|
|
441
|
+
.finally(() => {
|
|
442
|
+
verifying -= 1;
|
|
443
|
+
});
|
|
444
|
+
});
|
|
175
445
|
stream.opened(reopened);
|
|
176
|
-
stream.closed((revoked) => {
|
|
446
|
+
stream.closed(({ revoked, lost }) => {
|
|
177
447
|
opening = null;
|
|
178
|
-
|
|
448
|
+
acknowledging = null;
|
|
449
|
+
emit({ kind: 'closed', revoked, lost });
|
|
179
450
|
});
|
|
180
451
|
return {
|
|
181
452
|
runtime,
|
|
@@ -198,8 +469,12 @@ export function houseNotifications(transport, mode) {
|
|
|
198
469
|
};
|
|
199
470
|
},
|
|
200
471
|
},
|
|
201
|
-
observe(notify) {
|
|
472
|
+
observe(notify, port) {
|
|
202
473
|
observers.add(notify);
|
|
474
|
+
if (receipts === null) {
|
|
475
|
+
receipts = port;
|
|
476
|
+
loaded = load(port);
|
|
477
|
+
}
|
|
203
478
|
if (opening !== null) {
|
|
204
479
|
queueMicrotask(() => {
|
|
205
480
|
if (observers.has(notify))
|
|
@@ -220,7 +495,35 @@ export function houseNotifications(transport, mode) {
|
|
|
220
495
|
}
|
|
221
496
|
const current = opening;
|
|
222
497
|
opening = null;
|
|
223
|
-
current
|
|
498
|
+
if (current === null)
|
|
499
|
+
return;
|
|
500
|
+
void loaded
|
|
501
|
+
.then(() => Promise.all(rooms.map(restored)))
|
|
502
|
+
.then((presented) => {
|
|
503
|
+
current.hold(presented, runtime);
|
|
504
|
+
for (const [index, room] of presented.entries()) {
|
|
505
|
+
if (room.position === rooms[index].position)
|
|
506
|
+
continue;
|
|
507
|
+
announce(room.authority, { position: room.position, logEpoch: room.log_epoch });
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
},
|
|
511
|
+
published(locator, at) {
|
|
512
|
+
const authority = [...locators].find(([, held]) => held.includes(locator))?.[0];
|
|
513
|
+
const reached = position(at.position);
|
|
514
|
+
if (authority === undefined || reached === null)
|
|
515
|
+
return;
|
|
516
|
+
void forget([...kept.values()]
|
|
517
|
+
.filter((carry) => carry.authority === authority &&
|
|
518
|
+
carry.fenced !== null &&
|
|
519
|
+
carry.fenced.logEpoch === at.logEpoch &&
|
|
520
|
+
BigInt(carry.fenced.position) <= reached)
|
|
521
|
+
.map((carry) => carry.carry));
|
|
522
|
+
},
|
|
523
|
+
reopen() {
|
|
524
|
+
const current = opening;
|
|
525
|
+
opening = null;
|
|
526
|
+
current?.close();
|
|
224
527
|
},
|
|
225
528
|
track(entries) {
|
|
226
529
|
locators.clear();
|
|
@@ -234,6 +537,9 @@ export function houseNotifications(transport, mode) {
|
|
|
234
537
|
if (!locators.has(authority))
|
|
235
538
|
lines.delete(authority);
|
|
236
539
|
}
|
|
540
|
+
void loaded.then(() => forget([...kept.values()]
|
|
541
|
+
.filter((carry) => !locators.has(carry.authority))
|
|
542
|
+
.map((carry) => carry.carry)));
|
|
237
543
|
},
|
|
238
544
|
reach(authority, at) {
|
|
239
545
|
const line = lines.get(authority);
|
|
@@ -260,6 +566,7 @@ export function houseNotifications(transport, mode) {
|
|
|
260
566
|
const documents = {};
|
|
261
567
|
const revisions = {};
|
|
262
568
|
const changes = {};
|
|
569
|
+
const binaryFiles = {};
|
|
263
570
|
const removals = [];
|
|
264
571
|
const applied = [];
|
|
265
572
|
const schemas = new Map();
|
|
@@ -267,6 +574,7 @@ export function houseNotifications(transport, mode) {
|
|
|
267
574
|
delete documents[path];
|
|
268
575
|
delete revisions[path];
|
|
269
576
|
delete changes[path];
|
|
577
|
+
delete binaryFiles[path];
|
|
270
578
|
const removed = removals.indexOf(path);
|
|
271
579
|
if (removed !== -1)
|
|
272
580
|
removals.splice(removed, 1);
|
|
@@ -287,7 +595,8 @@ export function houseNotifications(transport, mode) {
|
|
|
287
595
|
removals.push(entry.path);
|
|
288
596
|
continue;
|
|
289
597
|
}
|
|
290
|
-
|
|
598
|
+
const binary = binaryFileOf(entry);
|
|
599
|
+
if (binary === null || (binary === undefined && entry.text === undefined))
|
|
291
600
|
return null;
|
|
292
601
|
if (mode === 'credential' && entry.revision === undefined)
|
|
293
602
|
return null;
|
|
@@ -295,9 +604,13 @@ export function houseNotifications(transport, mode) {
|
|
|
295
604
|
if (head === null)
|
|
296
605
|
return null;
|
|
297
606
|
forget(entry.path);
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
607
|
+
if (binary === undefined)
|
|
608
|
+
documents[entry.path] = entry.text;
|
|
609
|
+
else
|
|
610
|
+
binaryFiles[entry.path] = binary;
|
|
611
|
+
const revision = entry.revision ?? binary?.sha256;
|
|
612
|
+
if (revision !== undefined)
|
|
613
|
+
revisions[entry.path] = revision;
|
|
301
614
|
if (head !== undefined)
|
|
302
615
|
changes[entry.path] = head;
|
|
303
616
|
}
|
|
@@ -310,8 +623,9 @@ export function houseNotifications(transport, mode) {
|
|
|
310
623
|
roomVersion: roomVersion({ position: last.position.toString(), logEpoch: line.logEpoch }),
|
|
311
624
|
documents,
|
|
312
625
|
revisions,
|
|
626
|
+
...identities(revisions),
|
|
313
627
|
changes,
|
|
314
|
-
|
|
628
|
+
binaryFiles,
|
|
315
629
|
removals: removals.sort(),
|
|
316
630
|
},
|
|
317
631
|
entries: applied,
|
package/dist/transport.d.ts
CHANGED
|
@@ -9,29 +9,35 @@ export declare const SITE_DOOR_DISCOVER = "/_house/door/discover";
|
|
|
9
9
|
export declare const SITE_DOOR_BOOTSTRAP = "/_house/door/bootstrap/";
|
|
10
10
|
export declare const SITE_DOOR_ENUMERATE = "/_house/door/enumerate";
|
|
11
11
|
export declare const SITE_DOOR_SUBMIT = "/_house/door/submit";
|
|
12
|
-
export declare const PRIVATE_LOCATOR = "private";
|
|
13
12
|
export type HouseMode = 'credential' | 'site';
|
|
14
13
|
export type HouseDoorAnswer = {
|
|
15
14
|
status: number;
|
|
16
15
|
body: unknown;
|
|
17
16
|
};
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
17
|
+
export declare const DOOR_FILES_GET = "/door/files/get";
|
|
18
|
+
export declare const SITE_FILES = "/_house/files/";
|
|
19
|
+
export declare const SITE_FILE_RECORD = "record";
|
|
20
|
+
export type HouseByteAct = 'authored_batch_upload' | 'conversation_file_upload' | 'binary_stage';
|
|
21
|
+
export type HouseByteBody = string | ArrayBuffer | Uint8Array | Blob;
|
|
22
|
+
export type HouseBytesAnswer = {
|
|
23
|
+
status: number;
|
|
24
|
+
blob: Blob | null;
|
|
25
|
+
};
|
|
21
26
|
export type HouseByteTransfer = {
|
|
22
27
|
act: HouseByteAct;
|
|
23
|
-
method: 'GET' | 'POST';
|
|
24
28
|
url: string;
|
|
25
|
-
|
|
26
|
-
body?: HouseByteBody;
|
|
29
|
+
body: HouseByteBody;
|
|
27
30
|
operation?: string;
|
|
28
31
|
};
|
|
29
32
|
export type HouseStreamEntry = {
|
|
30
33
|
path: string;
|
|
31
|
-
kind: 'edited' | 'removed';
|
|
34
|
+
kind: 'edited' | 'removed' | 'piece';
|
|
32
35
|
revision?: string;
|
|
33
36
|
sha256?: string;
|
|
34
37
|
text?: string;
|
|
38
|
+
file?: string;
|
|
39
|
+
bytes?: number;
|
|
40
|
+
media_type?: string;
|
|
35
41
|
author?: {
|
|
36
42
|
user: string;
|
|
37
43
|
name: string;
|
|
@@ -40,6 +46,7 @@ export type HouseStreamEntry = {
|
|
|
40
46
|
name: string;
|
|
41
47
|
};
|
|
42
48
|
created_at?: string;
|
|
49
|
+
continued?: true;
|
|
43
50
|
};
|
|
44
51
|
type LiveFact<K extends ConversationEvent['kind']> = Extract<ConversationEvent, {
|
|
45
52
|
kind: K;
|
|
@@ -53,15 +60,29 @@ export type HouseListedConversation = {
|
|
|
53
60
|
outcome: string | null;
|
|
54
61
|
};
|
|
55
62
|
export type HouseStreamFrame = {
|
|
56
|
-
type: '
|
|
63
|
+
type: 'part';
|
|
57
64
|
authority: string;
|
|
65
|
+
carry: string;
|
|
66
|
+
index: number;
|
|
67
|
+
after: string;
|
|
68
|
+
from: string;
|
|
69
|
+
target: string;
|
|
70
|
+
handled: number;
|
|
71
|
+
entries: readonly HouseStreamEntry[];
|
|
72
|
+
} | {
|
|
73
|
+
type: 'carried';
|
|
74
|
+
authority: string;
|
|
75
|
+
carry: string;
|
|
76
|
+
parts: number;
|
|
58
77
|
after: string;
|
|
59
78
|
position: string;
|
|
60
79
|
log_epoch: string;
|
|
61
|
-
entries: readonly HouseStreamEntry[];
|
|
62
80
|
} | {
|
|
63
81
|
type: 'opening';
|
|
64
82
|
expired: readonly string[];
|
|
83
|
+
} | {
|
|
84
|
+
type: 'authority_changed';
|
|
85
|
+
rooms: readonly string[];
|
|
65
86
|
} | ({
|
|
66
87
|
type: 'turn';
|
|
67
88
|
conversation_id: string;
|
|
@@ -74,6 +95,10 @@ export type HouseStreamFrame = {
|
|
|
74
95
|
type: 'interactions';
|
|
75
96
|
conversation_id: string;
|
|
76
97
|
interactions: readonly unknown[];
|
|
98
|
+
} | {
|
|
99
|
+
type: 'deliveries';
|
|
100
|
+
conversation_id: string;
|
|
101
|
+
unknown: readonly string[];
|
|
77
102
|
} | {
|
|
78
103
|
type: 'process';
|
|
79
104
|
conversation_id: string;
|
|
@@ -86,6 +111,14 @@ export type HouseStreamFrame = {
|
|
|
86
111
|
type: 'options';
|
|
87
112
|
conversation_id: string;
|
|
88
113
|
options: LiveFact<'options'>['options'];
|
|
114
|
+
} | {
|
|
115
|
+
type: 'starting';
|
|
116
|
+
conversation_id: string;
|
|
117
|
+
step: string | null;
|
|
118
|
+
} | {
|
|
119
|
+
type: 'link';
|
|
120
|
+
conversation_id: string;
|
|
121
|
+
connected: boolean;
|
|
89
122
|
} | {
|
|
90
123
|
type: 'conversations';
|
|
91
124
|
conversations: readonly HouseListedConversation[];
|
|
@@ -99,18 +132,36 @@ export type HouseStreamFrame = {
|
|
|
99
132
|
type: 'signal';
|
|
100
133
|
service_mode: string;
|
|
101
134
|
};
|
|
135
|
+
export type HouseHeldCarry = {
|
|
136
|
+
id: string;
|
|
137
|
+
parts: number;
|
|
138
|
+
from: string;
|
|
139
|
+
target: string;
|
|
140
|
+
handled: number;
|
|
141
|
+
piece?: {
|
|
142
|
+
sha256: string;
|
|
143
|
+
offset: number;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
102
146
|
export type HouseHeldRoom = {
|
|
103
147
|
authority: string;
|
|
104
148
|
position: string;
|
|
105
149
|
log_epoch: string;
|
|
150
|
+
carry?: HouseHeldCarry;
|
|
106
151
|
};
|
|
107
152
|
export type HouseOpening = {
|
|
108
153
|
hold(rooms: readonly HouseHeldRoom[], runtime: string): void;
|
|
154
|
+
received(authority: string, carry: string, index: number): void;
|
|
155
|
+
close(): void;
|
|
156
|
+
};
|
|
157
|
+
export type HouseClosing = {
|
|
158
|
+
revoked: boolean;
|
|
159
|
+
lost: boolean;
|
|
109
160
|
};
|
|
110
161
|
export type HouseStream = {
|
|
111
162
|
observe(receive: (frame: HouseStreamFrame) => void): () => void;
|
|
112
163
|
opened(notify: (opening: HouseOpening) => void): () => void;
|
|
113
|
-
closed(notify: (
|
|
164
|
+
closed(notify: (closing: HouseClosing) => void): () => void;
|
|
114
165
|
};
|
|
115
166
|
export type HouseDoor = {
|
|
116
167
|
door(route: string, body: unknown): Promise<HouseDoorAnswer>;
|
|
@@ -118,10 +169,12 @@ export type HouseDoor = {
|
|
|
118
169
|
};
|
|
119
170
|
export type HouseTransport = HouseDoor & {
|
|
120
171
|
transfer(request: HouseByteTransfer): Promise<HouseDoorAnswer>;
|
|
172
|
+
download(url: string): Promise<HouseBytesAnswer>;
|
|
121
173
|
};
|
|
122
174
|
export type HouseSiteTransport = HouseDoor & {
|
|
123
175
|
online(): boolean;
|
|
124
176
|
read(route: string): Promise<HouseDoorAnswer>;
|
|
177
|
+
download(route: string): Promise<HouseBytesAnswer>;
|
|
125
178
|
};
|
|
126
179
|
export {};
|
|
127
180
|
//# sourceMappingURL=transport.d.ts.map
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE/E,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAE9C,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAE7D,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.js
CHANGED
|
@@ -8,4 +8,6 @@ export const SITE_DOOR_DISCOVER = '/_house/door/discover';
|
|
|
8
8
|
export const SITE_DOOR_BOOTSTRAP = '/_house/door/bootstrap/';
|
|
9
9
|
export const SITE_DOOR_ENUMERATE = '/_house/door/enumerate';
|
|
10
10
|
export const SITE_DOOR_SUBMIT = '/_house/door/submit';
|
|
11
|
-
export const
|
|
11
|
+
export const DOOR_FILES_GET = '/door/files/get';
|
|
12
|
+
export const SITE_FILES = '/_house/files/';
|
|
13
|
+
export const SITE_FILE_RECORD = 'record';
|
package/dist/version.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare function roomVersion(at: LogPosition): string;
|
|
|
11
11
|
export declare function logPosition(version: string): LogPosition | null;
|
|
12
12
|
export declare function readPosition(held: Readonly<Record<string, unknown>>): LogPosition | null;
|
|
13
13
|
export declare function presented(authority: string, at: LogPosition): PresentedPosition;
|
|
14
|
+
export declare const DECIMAL: RegExp;
|
|
14
15
|
export declare function reachedVersion(roomVersion: string, target: string, currentEpoch: string | undefined): boolean;
|
|
15
16
|
export declare function followsVersion(roomVersion: string, next: string): boolean;
|
|
16
17
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI/D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,IAAI,CAKxF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,iBAAiB,CAE/E;
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAI/D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,IAAI,CAKxF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,iBAAiB,CAE/E;AAED,eAAO,MAAM,OAAO,QAAwB,CAAC;AAE7C,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAQT;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzE"}
|