@agentshouse/mdruntime-adapter 0.1.0-cb42b23b5d2fb → 0.1.0-cb6436097e8a2
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 +258 -258
- package/dist/actions.d.ts +20 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +26 -28
- package/dist/adapter.d.ts +1 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +127 -34
- package/dist/discovery.d.ts +1 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/model.d.ts +0 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -3
- package/dist/read.d.ts +23 -1
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +90 -4
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +2 -1
- package/dist/site.d.ts +1 -1
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +122 -43
- package/dist/stream.d.ts +5 -4
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +289 -9
- package/dist/transport.d.ts +33 -4
- package/dist/transport.d.ts.map +1 -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.map +1 -1
- package/dist/write.js +7 -3
- package/package.json +2 -3
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();
|
|
@@ -49,6 +119,7 @@ export function houseNotifications(transport, mode) {
|
|
|
49
119
|
}
|
|
50
120
|
function reopened(next) {
|
|
51
121
|
opening = next;
|
|
122
|
+
acknowledging = next;
|
|
52
123
|
const gapped = new Set([...replicated, ...live]);
|
|
53
124
|
live.clear();
|
|
54
125
|
for (const conversation of gapped)
|
|
@@ -110,7 +181,162 @@ export function houseNotifications(transport, mode) {
|
|
|
110
181
|
if (line !== undefined)
|
|
111
182
|
lines.set(authority, { ...line, frames: [] });
|
|
112
183
|
}
|
|
113
|
-
function
|
|
184
|
+
async function forget(carries) {
|
|
185
|
+
const held = carries.filter((carry) => kept.delete(carry));
|
|
186
|
+
if (held.length > 0)
|
|
187
|
+
await receipts?.drop(held).catch(() => { });
|
|
188
|
+
}
|
|
189
|
+
async function lost(authority, carry) {
|
|
190
|
+
interrupt(authority);
|
|
191
|
+
await forget([carry]);
|
|
192
|
+
}
|
|
193
|
+
async function stage(frame, via) {
|
|
194
|
+
await loaded;
|
|
195
|
+
const port = receipts;
|
|
196
|
+
if (port === null)
|
|
197
|
+
return;
|
|
198
|
+
const held = kept.get(frame.carry);
|
|
199
|
+
if (held === undefined && frame.index !== 0) {
|
|
200
|
+
interrupt(frame.authority);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (held !== undefined &&
|
|
204
|
+
(held.fenced !== null || frame.index > held.parts || frame.index < (held.resume?.parts ?? 0))) {
|
|
205
|
+
await lost(frame.authority, frame.carry);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (held === undefined) {
|
|
209
|
+
await forget([...kept.values()]
|
|
210
|
+
.filter((other) => other.authority === frame.authority && other.fenced === null)
|
|
211
|
+
.map((other) => other.carry));
|
|
212
|
+
}
|
|
213
|
+
const start = held ?? {
|
|
214
|
+
authority: frame.authority,
|
|
215
|
+
carry: frame.carry,
|
|
216
|
+
logEpoch: lines.get(frame.authority)?.logEpoch ?? null,
|
|
217
|
+
after: frame.after,
|
|
218
|
+
parts: 0,
|
|
219
|
+
resume: null,
|
|
220
|
+
fenced: null,
|
|
221
|
+
};
|
|
222
|
+
const next = { ...start, parts: frame.index + 1, resume: resumed(start, frame) };
|
|
223
|
+
const part = { entries: frame.entries };
|
|
224
|
+
try {
|
|
225
|
+
await port.keep(frame.carry, next, { index: frame.index, value: part });
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
await lost(frame.authority, frame.carry);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
kept.set(frame.carry, next);
|
|
232
|
+
via?.received(frame.authority, frame.carry, frame.index);
|
|
233
|
+
}
|
|
234
|
+
async function keptEntries(carry, parts) {
|
|
235
|
+
if (parts === 0)
|
|
236
|
+
return [];
|
|
237
|
+
if (receipts === null)
|
|
238
|
+
return null;
|
|
239
|
+
const read = (await receipts.parts(carry, parts));
|
|
240
|
+
if (read.length !== parts)
|
|
241
|
+
return null;
|
|
242
|
+
const entries = assembled(read.flatMap((part) => part.entries));
|
|
243
|
+
return entries !== null && (await verified(entries)) ? entries : null;
|
|
244
|
+
}
|
|
245
|
+
async function carried(frame) {
|
|
246
|
+
await loaded;
|
|
247
|
+
const held = kept.get(frame.carry);
|
|
248
|
+
if (frame.parts > 0 && held?.parts !== frame.parts) {
|
|
249
|
+
await lost(frame.authority, frame.carry);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
const entries = await keptEntries(frame.carry, frame.parts).catch(() => null);
|
|
253
|
+
if (entries === null) {
|
|
254
|
+
await lost(frame.authority, frame.carry);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const fenced = {
|
|
258
|
+
...(held ?? {
|
|
259
|
+
authority: frame.authority,
|
|
260
|
+
carry: frame.carry,
|
|
261
|
+
logEpoch: frame.log_epoch,
|
|
262
|
+
after: frame.after,
|
|
263
|
+
parts: 0,
|
|
264
|
+
resume: null,
|
|
265
|
+
}),
|
|
266
|
+
after: frame.after,
|
|
267
|
+
fenced: { position: frame.position, logEpoch: frame.log_epoch },
|
|
268
|
+
};
|
|
269
|
+
try {
|
|
270
|
+
await receipts?.keep(frame.carry, fenced);
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
await lost(frame.authority, frame.carry);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
kept.set(frame.carry, fenced);
|
|
277
|
+
publish(frame, entries);
|
|
278
|
+
}
|
|
279
|
+
async function load(port) {
|
|
280
|
+
try {
|
|
281
|
+
for (const { key, head } of await port.heads())
|
|
282
|
+
kept.set(key, head);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
kept.clear();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
async function restored(room) {
|
|
289
|
+
const line = lines.get(room.authority);
|
|
290
|
+
let at = room.position;
|
|
291
|
+
const chain = [];
|
|
292
|
+
for (;;) {
|
|
293
|
+
const next = [...kept.values()].find((carry) => carry.authority === room.authority &&
|
|
294
|
+
carry.after === at &&
|
|
295
|
+
carry.fenced?.logEpoch === room.log_epoch);
|
|
296
|
+
if (next?.fenced == null)
|
|
297
|
+
break;
|
|
298
|
+
const entries = await keptEntries(next.carry, next.parts).catch(() => null);
|
|
299
|
+
if (entries === null)
|
|
300
|
+
break;
|
|
301
|
+
chain.push({ carry: next, entries });
|
|
302
|
+
at = next.fenced.position;
|
|
303
|
+
}
|
|
304
|
+
const partial = [...kept.values()].find((carry) => carry.authority === room.authority &&
|
|
305
|
+
carry.fenced === null &&
|
|
306
|
+
carry.logEpoch === room.log_epoch &&
|
|
307
|
+
carry.after === at &&
|
|
308
|
+
carry.resume !== null &&
|
|
309
|
+
carry.resume.parts > 0);
|
|
310
|
+
const stale = [...kept.values()].filter((carry) => carry.authority === room.authority &&
|
|
311
|
+
carry !== partial &&
|
|
312
|
+
!chain.some((link) => link.carry === carry));
|
|
313
|
+
await forget(stale.map((carry) => carry.carry));
|
|
314
|
+
if (line !== undefined && line.logEpoch === room.log_epoch && chain.length > 0) {
|
|
315
|
+
const frames = chain.map(({ carry, entries }) => ({
|
|
316
|
+
after: BigInt(carry.after),
|
|
317
|
+
position: BigInt(carry.fenced.position),
|
|
318
|
+
entries,
|
|
319
|
+
}));
|
|
320
|
+
lines.set(room.authority, { ...line, frames: [...line.frames, ...frames] });
|
|
321
|
+
}
|
|
322
|
+
return {
|
|
323
|
+
...room,
|
|
324
|
+
position: at,
|
|
325
|
+
...(partial?.resume == null
|
|
326
|
+
? {}
|
|
327
|
+
: {
|
|
328
|
+
carry: {
|
|
329
|
+
id: partial.carry,
|
|
330
|
+
parts: partial.resume.parts,
|
|
331
|
+
from: partial.resume.from,
|
|
332
|
+
target: partial.resume.target,
|
|
333
|
+
handled: partial.resume.handled,
|
|
334
|
+
...(partial.resume.piece === null ? {} : { piece: partial.resume.piece }),
|
|
335
|
+
},
|
|
336
|
+
}),
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
function handle(frame, via) {
|
|
114
340
|
if (frame.type === 'signal') {
|
|
115
341
|
const mode = frame.service_mode;
|
|
116
342
|
if (mode !== 'open' && mode !== 'write-halted')
|
|
@@ -147,8 +373,12 @@ export function houseNotifications(transport, mode) {
|
|
|
147
373
|
converse(frame);
|
|
148
374
|
return;
|
|
149
375
|
}
|
|
150
|
-
if (frame.type
|
|
151
|
-
return;
|
|
376
|
+
if (frame.type === 'part')
|
|
377
|
+
return stage(frame, via);
|
|
378
|
+
if (frame.type === 'carried')
|
|
379
|
+
return carried(frame);
|
|
380
|
+
}
|
|
381
|
+
function publish(frame, entries) {
|
|
152
382
|
const at = position(frame.position);
|
|
153
383
|
const after = position(frame.after);
|
|
154
384
|
if (at === null || after === null || after >= at) {
|
|
@@ -162,7 +392,7 @@ export function houseNotifications(transport, mode) {
|
|
|
162
392
|
const last = line.frames.at(-1);
|
|
163
393
|
if (last !== undefined && at <= last.position)
|
|
164
394
|
return;
|
|
165
|
-
const held = { after, position: at, entries
|
|
395
|
+
const held = { after, position: at, entries };
|
|
166
396
|
const next = last !== undefined && after <= last.position ? [...line.frames, held] : [held];
|
|
167
397
|
lines.set(frame.authority, { ...line, frames: next.length > HELD_FRAMES_MAX ? [] : next });
|
|
168
398
|
}
|
|
@@ -171,10 +401,29 @@ export function houseNotifications(transport, mode) {
|
|
|
171
401
|
}
|
|
172
402
|
announce(frame.authority, { position: frame.position, logEpoch: frame.log_epoch });
|
|
173
403
|
}
|
|
174
|
-
stream.observe(
|
|
404
|
+
stream.observe((frame) => {
|
|
405
|
+
const via = acknowledging;
|
|
406
|
+
if (verifying === 0) {
|
|
407
|
+
const handled = handle(frame, via);
|
|
408
|
+
if (handled === undefined)
|
|
409
|
+
return;
|
|
410
|
+
verifying += 1;
|
|
411
|
+
receiving = handled.finally(() => {
|
|
412
|
+
verifying -= 1;
|
|
413
|
+
});
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
verifying += 1;
|
|
417
|
+
receiving = receiving
|
|
418
|
+
.then(() => handle(frame, via))
|
|
419
|
+
.finally(() => {
|
|
420
|
+
verifying -= 1;
|
|
421
|
+
});
|
|
422
|
+
});
|
|
175
423
|
stream.opened(reopened);
|
|
176
424
|
stream.closed((revoked) => {
|
|
177
425
|
opening = null;
|
|
426
|
+
acknowledging = null;
|
|
178
427
|
emit({ kind: 'closed', revoked });
|
|
179
428
|
});
|
|
180
429
|
return {
|
|
@@ -198,8 +447,12 @@ export function houseNotifications(transport, mode) {
|
|
|
198
447
|
};
|
|
199
448
|
},
|
|
200
449
|
},
|
|
201
|
-
observe(notify) {
|
|
450
|
+
observe(notify, port) {
|
|
202
451
|
observers.add(notify);
|
|
452
|
+
if (receipts === null) {
|
|
453
|
+
receipts = port;
|
|
454
|
+
loaded = load(port);
|
|
455
|
+
}
|
|
203
456
|
if (opening !== null) {
|
|
204
457
|
queueMicrotask(() => {
|
|
205
458
|
if (observers.has(notify))
|
|
@@ -210,7 +463,7 @@ export function houseNotifications(transport, mode) {
|
|
|
210
463
|
observers.delete(notify);
|
|
211
464
|
};
|
|
212
465
|
},
|
|
213
|
-
send(rooms) {
|
|
466
|
+
send(rooms, demand) {
|
|
214
467
|
for (const room of rooms) {
|
|
215
468
|
const line = lines.get(room.authority);
|
|
216
469
|
const held = position(room.position);
|
|
@@ -220,7 +473,30 @@ export function houseNotifications(transport, mode) {
|
|
|
220
473
|
}
|
|
221
474
|
const current = opening;
|
|
222
475
|
opening = null;
|
|
223
|
-
current
|
|
476
|
+
if (current === null)
|
|
477
|
+
return;
|
|
478
|
+
void loaded
|
|
479
|
+
.then(() => Promise.all(rooms.map(restored)))
|
|
480
|
+
.then((presented) => {
|
|
481
|
+
current.hold(presented, runtime, demand);
|
|
482
|
+
for (const [index, room] of presented.entries()) {
|
|
483
|
+
if (room.position === rooms[index].position)
|
|
484
|
+
continue;
|
|
485
|
+
announce(room.authority, { position: room.position, logEpoch: room.log_epoch });
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
},
|
|
489
|
+
published(locator, at) {
|
|
490
|
+
const authority = [...locators].find(([, held]) => held.includes(locator))?.[0];
|
|
491
|
+
const reached = position(at.position);
|
|
492
|
+
if (authority === undefined || reached === null)
|
|
493
|
+
return;
|
|
494
|
+
void forget([...kept.values()]
|
|
495
|
+
.filter((carry) => carry.authority === authority &&
|
|
496
|
+
carry.fenced !== null &&
|
|
497
|
+
carry.fenced.logEpoch === at.logEpoch &&
|
|
498
|
+
BigInt(carry.fenced.position) <= reached)
|
|
499
|
+
.map((carry) => carry.carry));
|
|
224
500
|
},
|
|
225
501
|
reopen() {
|
|
226
502
|
const current = opening;
|
|
@@ -239,6 +515,9 @@ export function houseNotifications(transport, mode) {
|
|
|
239
515
|
if (!locators.has(authority))
|
|
240
516
|
lines.delete(authority);
|
|
241
517
|
}
|
|
518
|
+
void loaded.then(() => forget([...kept.values()]
|
|
519
|
+
.filter((carry) => !locators.has(carry.authority))
|
|
520
|
+
.map((carry) => carry.carry)));
|
|
242
521
|
},
|
|
243
522
|
reach(authority, at) {
|
|
244
523
|
const line = lines.get(authority);
|
|
@@ -322,6 +601,7 @@ export function houseNotifications(transport, mode) {
|
|
|
322
601
|
roomVersion: roomVersion({ position: last.position.toString(), logEpoch: line.logEpoch }),
|
|
323
602
|
documents,
|
|
324
603
|
revisions,
|
|
604
|
+
...identities(revisions),
|
|
325
605
|
changes,
|
|
326
606
|
binaryFiles,
|
|
327
607
|
removals: removals.sort(),
|
package/dist/transport.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export type HouseByteTransfer = {
|
|
|
31
31
|
};
|
|
32
32
|
export type HouseStreamEntry = {
|
|
33
33
|
path: string;
|
|
34
|
-
kind: 'edited' | 'removed';
|
|
34
|
+
kind: 'edited' | 'removed' | 'piece';
|
|
35
35
|
revision?: string;
|
|
36
36
|
sha256?: string;
|
|
37
37
|
text?: string;
|
|
@@ -46,6 +46,7 @@ export type HouseStreamEntry = {
|
|
|
46
46
|
name: string;
|
|
47
47
|
};
|
|
48
48
|
created_at?: string;
|
|
49
|
+
continued?: true;
|
|
49
50
|
};
|
|
50
51
|
type LiveFact<K extends ConversationEvent['kind']> = Extract<ConversationEvent, {
|
|
51
52
|
kind: K;
|
|
@@ -59,12 +60,23 @@ export type HouseListedConversation = {
|
|
|
59
60
|
outcome: string | null;
|
|
60
61
|
};
|
|
61
62
|
export type HouseStreamFrame = {
|
|
62
|
-
type: '
|
|
63
|
+
type: 'part';
|
|
63
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;
|
|
64
77
|
after: string;
|
|
65
78
|
position: string;
|
|
66
79
|
log_epoch: string;
|
|
67
|
-
entries: readonly HouseStreamEntry[];
|
|
68
80
|
} | {
|
|
69
81
|
type: 'opening';
|
|
70
82
|
expired: readonly string[];
|
|
@@ -105,13 +117,30 @@ export type HouseStreamFrame = {
|
|
|
105
117
|
type: 'signal';
|
|
106
118
|
service_mode: string;
|
|
107
119
|
};
|
|
120
|
+
export type HouseHeldCarry = {
|
|
121
|
+
id: string;
|
|
122
|
+
parts: number;
|
|
123
|
+
from: string;
|
|
124
|
+
target: string;
|
|
125
|
+
handled: number;
|
|
126
|
+
piece?: {
|
|
127
|
+
sha256: string;
|
|
128
|
+
offset: number;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
108
131
|
export type HouseHeldRoom = {
|
|
109
132
|
authority: string;
|
|
110
133
|
position: string;
|
|
111
134
|
log_epoch: string;
|
|
135
|
+
carry?: HouseHeldCarry;
|
|
136
|
+
};
|
|
137
|
+
export type HouseDemand = {
|
|
138
|
+
rooms: readonly string[];
|
|
139
|
+
conversations: boolean;
|
|
112
140
|
};
|
|
113
141
|
export type HouseOpening = {
|
|
114
|
-
hold(rooms: readonly HouseHeldRoom[], runtime: string): void;
|
|
142
|
+
hold(rooms: readonly HouseHeldRoom[], runtime: string, demand: HouseDemand | null): void;
|
|
143
|
+
received(authority: string, carry: string, index: number): void;
|
|
115
144
|
close(): void;
|
|
116
145
|
};
|
|
117
146
|
export type HouseStream = {
|
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,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAE3C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,cAAc,CAAC;AAEjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
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"}
|
package/dist/version.js
CHANGED
|
@@ -18,7 +18,7 @@ export function readPosition(held) {
|
|
|
18
18
|
export function presented(authority, at) {
|
|
19
19
|
return { authority, position: at.position, log_epoch: at.logEpoch };
|
|
20
20
|
}
|
|
21
|
-
const DECIMAL = /^(?:0|[1-9][0-9]*)$/;
|
|
21
|
+
export const DECIMAL = /^(?:0|[1-9][0-9]*)$/;
|
|
22
22
|
export function reachedVersion(roomVersion, target, currentEpoch) {
|
|
23
23
|
if (roomVersion === target)
|
|
24
24
|
return true;
|
package/dist/write.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAElB,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAwHrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAQ9E;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAK/D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,MAAM,EAAE,CAQhF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAEpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,uBAAuB,GAAG,kBAAkB,CAAC,GACtE,OAAO,CAKT;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1D;AAiDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,cAAc,
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../src/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAElB,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAwHrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAQ9E;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAK/D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,MAAM,EAAE,CAQhF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAEpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,uBAAuB,GAAG,kBAAkB,CAAC,GACtE,OAAO,CAKT;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1D;AAiDD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,cAAc,CAmFhB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;IAEjF,IAAI,EAAE,UAAU;IAChB,QAAQ;IACR,IAAI;IACJ,MAAM;QAAI,IAAI;;IACd,SAAS;EAEZ;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1B;AA4BD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,aAAa,CAyDf"}
|
package/dist/write.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { departure, } from '@agentshouse/mdruntime';
|
|
2
|
-
import { binaryFileOf, headChange } from './read.js';
|
|
2
|
+
import { binaryFileOf, headChange, identities } from './read.js';
|
|
3
3
|
import { sha256Hex, textBytes } from './digest.js';
|
|
4
4
|
import { nativePath, roomLocalPath } from './map.js';
|
|
5
5
|
import { classifyDoor, doorRefusal, scopedRefusal } from './refusal.js';
|
|
@@ -194,8 +194,11 @@ export function mutationOutcome(status, body, locator, handle) {
|
|
|
194
194
|
if (refusal !== null && refusal.code === 'service_mode_write_halted') {
|
|
195
195
|
return { kind: 'write-halted' };
|
|
196
196
|
}
|
|
197
|
-
if (refusal !== null && refusal.code === 'expired')
|
|
198
|
-
return
|
|
197
|
+
if (refusal !== null && refusal.code === 'expired') {
|
|
198
|
+
return refusal.fields.restored === true
|
|
199
|
+
? { kind: 'expired', restored: true }
|
|
200
|
+
: { kind: 'expired' };
|
|
201
|
+
}
|
|
199
202
|
if (refusal !== null && refusal.code === 'edit_conflict') {
|
|
200
203
|
const { current, ...fields } = refusal.fields;
|
|
201
204
|
const held = material(current, handle) ?? [];
|
|
@@ -269,6 +272,7 @@ export function mutationOutcome(status, body, locator, handle) {
|
|
|
269
272
|
roomVersion: roomVersion(at),
|
|
270
273
|
documents,
|
|
271
274
|
revisions,
|
|
275
|
+
...identities(revisions),
|
|
272
276
|
changes,
|
|
273
277
|
removals: removals.sort(),
|
|
274
278
|
...(Object.keys(binaryFiles).length === 0 ? {} : { binaryFiles }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentshouse/mdruntime-adapter",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-cb6436097e8a2",
|
|
4
4
|
"description": "Agents House Adapter for the MD Runtime",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"LICENSE"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@agentshouse/
|
|
29
|
-
"@agentshouse/mdruntime": "0.1.0-c0cea65344137"
|
|
28
|
+
"@agentshouse/mdruntime": "0.1.0-c5d3fa6fb67bc"
|
|
30
29
|
}
|
|
31
30
|
}
|