@agentshouse/mdruntime-adapter 0.1.0-cb0bbc4ccacd0 → 0.1.0-cb0e03e5f0ff6
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 +1 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +62 -74
- package/dist/chunks.d.ts +38 -0
- package/dist/chunks.d.ts.map +1 -0
- package/dist/chunks.js +247 -0
- package/dist/discovery.d.ts +0 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +2 -3
- package/dist/history.js +1 -1
- package/dist/house-model.d.ts +33 -2
- package/dist/house-model.d.ts.map +1 -1
- package/dist/house-model.js +17 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/model.d.ts +3 -7
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +3 -13
- package/dist/read.d.ts +9 -9
- package/dist/read.d.ts.map +1 -1
- package/dist/read.js +24 -143
- package/dist/search.js +1 -1
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +27 -39
- package/dist/stream.d.ts +4 -3
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +79 -14
- package/dist/transport.d.ts +4 -8
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +12 -12
- package/package.json +2 -2
- package/dist/part.d.ts +0 -14
- package/dist/part.d.ts.map +0 -1
- package/dist/part.js +0 -90
- package/dist/room-stream.d.ts +0 -20
- package/dist/room-stream.d.ts.map +0 -1
- package/dist/room-stream.js +0 -57
package/dist/stream.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type AuthorityChange, type Discovery, type ConversationStream, type RoomStreamEvent, type ServiceModeSignal } from '@agentshouse/mdruntime';
|
|
1
|
+
import { type AuthorityChange, type Discovery, type ConversationStream, type HeldRoom, type RoomStreamEvent, type ServiceModeSignal } from '@agentshouse/mdruntime';
|
|
2
2
|
import type { TrackedAuthority } from './discovery.js';
|
|
3
3
|
import type { SpaceSchemas } from './space-schema.js';
|
|
4
|
-
import { type HouseDoor, type
|
|
4
|
+
import { type HouseDoor, type HouseMode, type HouseStreamFrame } from './transport.js';
|
|
5
5
|
export type HouseOpeningFrame = Extract<HouseStreamFrame, {
|
|
6
6
|
type: 'opening';
|
|
7
7
|
}>;
|
|
@@ -11,11 +11,12 @@ export type HouseAuthorityChangedFrame = Extract<HouseStreamFrame, {
|
|
|
11
11
|
export type HouseDiscovering = {
|
|
12
12
|
opened(frame: HouseOpeningFrame | null): Promise<Discovery | null>;
|
|
13
13
|
changed(frame: HouseAuthorityChangedFrame): AuthorityChange | null;
|
|
14
|
+
expired?(authorities: readonly string[]): void;
|
|
14
15
|
};
|
|
15
16
|
export type HouseNotifications = {
|
|
16
17
|
runtime: string;
|
|
17
18
|
observe(notify: (event: RoomStreamEvent) => void): () => void;
|
|
18
|
-
send(rooms: readonly
|
|
19
|
+
send(rooms: readonly HeldRoom[]): void;
|
|
19
20
|
track(authorities: readonly TrackedAuthority[]): void;
|
|
20
21
|
conversations: ConversationStream;
|
|
21
22
|
serviceMode: ServiceModeSignal;
|
package/dist/stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EAEpB,KAAK,SAAS,EACd,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EAEpB,KAAK,SAAS,EACd,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EAGb,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWtD,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,SAAS,EAGd,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAaxB,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAE/E,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAC;AAElG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,eAAe,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IACvC,KAAK,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACtD,aAAa,EAAE,kBAAkB,CAAC;IAClC,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AA6FF,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,YAAY,GACnB,kBAAkB,CA8XpB"}
|
package/dist/stream.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { ROW_WEIGHT, stepped, } from '@agentshouse/mdruntime';
|
|
2
2
|
import { acceptedMessage, cursorPosition, houseHistory } from './history.js';
|
|
3
3
|
import { keptSpaceSchemas, streamedModels } from './model.js';
|
|
4
|
-
import { answered, answering, binaryFileOf, folded, forgotten, headChange, revised, } from './read.js';
|
|
4
|
+
import { answered, answering, binaryFileOf, createdOf, folded, forgotten, headChange, revised, } from './read.js';
|
|
5
5
|
import { houseDoorRoute, } from './transport.js';
|
|
6
|
-
import { DECIMAL, roomVersion } from './version.js';
|
|
6
|
+
import { DECIMAL, logPosition, presented, roomVersion } from './version.js';
|
|
7
7
|
function turnOperation(frame) {
|
|
8
8
|
const { type: _type, conversation_id: _conversation, turn_id: _turn, ...operation } = frame;
|
|
9
9
|
return structuredClone(operation);
|
|
10
10
|
}
|
|
11
11
|
async function houseAgents(transport) {
|
|
12
|
-
const answer = await transport.door(houseDoorRoute('agents/
|
|
12
|
+
const answer = await transport.door(houseDoorRoute('agents/list'), {});
|
|
13
13
|
const agents = answer.status === 200 ? answer.body?.agents : null;
|
|
14
14
|
if (!Array.isArray(agents))
|
|
15
15
|
return null;
|
|
@@ -72,13 +72,16 @@ function* changed(tracked, entries, version, schemas) {
|
|
|
72
72
|
const head = headChange(entry);
|
|
73
73
|
if (head)
|
|
74
74
|
answer.changes.set(entry.path, head);
|
|
75
|
+
const created = createdOf(entry);
|
|
76
|
+
if (created)
|
|
77
|
+
answer.created.set(entry.path, created);
|
|
75
78
|
}
|
|
76
79
|
return { kind: 'net-advancement', roomVersion: version, ...(yield* answered(answer)) };
|
|
77
80
|
}
|
|
78
|
-
async function changePage(tracked, entries, version, mode, spaces) {
|
|
81
|
+
async function changePage(tracked, entries, version, mode, spaces, whole) {
|
|
79
82
|
const schemas = new Map();
|
|
80
83
|
const page = await stepped(changed(tracked, entries, version, schemas));
|
|
81
|
-
const models = await streamedModels(schemas, tracked, mode, spaces);
|
|
84
|
+
const models = await streamedModels(schemas, tracked, mode, spaces, whole);
|
|
82
85
|
return models === undefined ? page : { ...page, models };
|
|
83
86
|
}
|
|
84
87
|
export function houseNotifications(transport, mode, discovering, spaces) {
|
|
@@ -87,17 +90,25 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
87
90
|
let socket = null;
|
|
88
91
|
const tracking = new Map();
|
|
89
92
|
const observers = new Set();
|
|
93
|
+
const replaying = new Map();
|
|
90
94
|
const conversationObservers = new Set();
|
|
91
95
|
const modeObservers = new Set();
|
|
92
96
|
let replicated = [];
|
|
93
97
|
let listedCursor = null;
|
|
98
|
+
const unanswered = [];
|
|
99
|
+
const heldAtZero = new Set();
|
|
94
100
|
const live = new Set();
|
|
95
101
|
let opening = null;
|
|
96
102
|
let announced = null;
|
|
97
103
|
const runtime = crypto.randomUUID();
|
|
98
104
|
function emit(event) {
|
|
99
|
-
for (const observer of observers)
|
|
100
|
-
observer
|
|
105
|
+
for (const observer of observers) {
|
|
106
|
+
const held = replaying.get(observer);
|
|
107
|
+
if (held === undefined)
|
|
108
|
+
observer(event);
|
|
109
|
+
else
|
|
110
|
+
held.push(event);
|
|
111
|
+
}
|
|
101
112
|
}
|
|
102
113
|
function emitConversation(event) {
|
|
103
114
|
if (event.kind === 'turn' ||
|
|
@@ -119,6 +130,8 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
119
130
|
announced = null;
|
|
120
131
|
socket = next;
|
|
121
132
|
staged.clear();
|
|
133
|
+
unanswered.length = 0;
|
|
134
|
+
heldAtZero.clear();
|
|
122
135
|
const gapped = new Set([...replicated, ...live]);
|
|
123
136
|
live.clear();
|
|
124
137
|
for (const conversation of gapped)
|
|
@@ -248,9 +261,13 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
248
261
|
return;
|
|
249
262
|
}
|
|
250
263
|
if (frame.type === 'caught_up') {
|
|
264
|
+
discovering.expired?.(frame.expired);
|
|
251
265
|
emit({
|
|
252
266
|
kind: 'caught-up',
|
|
253
|
-
expired:
|
|
267
|
+
expired: [
|
|
268
|
+
...frame.expired.flatMap((authority) => (tracking.get(authority) ?? []).map((tracked) => tracked.locator)),
|
|
269
|
+
...(unanswered.shift() ?? []),
|
|
270
|
+
],
|
|
254
271
|
});
|
|
255
272
|
return;
|
|
256
273
|
}
|
|
@@ -301,7 +318,9 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
301
318
|
const after = position(frame.after);
|
|
302
319
|
if (at === null || after === null || after >= at)
|
|
303
320
|
return;
|
|
304
|
-
const from =
|
|
321
|
+
const from = after === 0n && !heldAtZero.has(frame.authority)
|
|
322
|
+
? null
|
|
323
|
+
: roomVersion({ position: frame.after, logEpoch: frame.log_epoch });
|
|
305
324
|
const version = roomVersion({ position: frame.position, logEpoch: frame.log_epoch });
|
|
306
325
|
for (const tracked of tracking.get(frame.authority) ?? []) {
|
|
307
326
|
emit({
|
|
@@ -309,7 +328,7 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
309
328
|
locator: tracked.locator,
|
|
310
329
|
from,
|
|
311
330
|
roomVersion: version,
|
|
312
|
-
read: () => changePage(tracked, entries, version, mode, spaces),
|
|
331
|
+
read: () => changePage(tracked, entries, version, mode, spaces, from === null),
|
|
313
332
|
});
|
|
314
333
|
}
|
|
315
334
|
}
|
|
@@ -320,6 +339,8 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
320
339
|
announced = null;
|
|
321
340
|
socket = null;
|
|
322
341
|
staged.clear();
|
|
342
|
+
unanswered.length = 0;
|
|
343
|
+
heldAtZero.clear();
|
|
323
344
|
emit({ kind: 'closed', revoked, lost, authorityChanged });
|
|
324
345
|
});
|
|
325
346
|
return {
|
|
@@ -354,11 +375,15 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
354
375
|
},
|
|
355
376
|
observe(notify) {
|
|
356
377
|
observers.add(notify);
|
|
357
|
-
|
|
358
|
-
|
|
378
|
+
if (opening !== null) {
|
|
379
|
+
const replayed = [{ kind: 'opened' }];
|
|
380
|
+
if (announced !== null)
|
|
381
|
+
replayed.push(announced);
|
|
382
|
+
replaying.set(notify, replayed);
|
|
359
383
|
queueMicrotask(() => {
|
|
384
|
+
replaying.delete(notify);
|
|
360
385
|
for (const event of replayed)
|
|
361
|
-
if (
|
|
386
|
+
if (observers.has(notify))
|
|
362
387
|
notify(event);
|
|
363
388
|
});
|
|
364
389
|
}
|
|
@@ -369,7 +394,47 @@ export function houseNotifications(transport, mode, discovering, spaces) {
|
|
|
369
394
|
send(rooms) {
|
|
370
395
|
opening = null;
|
|
371
396
|
announced = null;
|
|
372
|
-
socket
|
|
397
|
+
if (socket === null)
|
|
398
|
+
return;
|
|
399
|
+
const entries = new Map([...tracking.values()].flat().map((tracked) => [tracked.locator, tracked]));
|
|
400
|
+
const named = rooms.flatMap((room) => {
|
|
401
|
+
const entry = entries.get(room.locator);
|
|
402
|
+
const at = room.roomVersion === null ? null : logPosition(room.roomVersion);
|
|
403
|
+
return entry === undefined || at === null ? [] : [{ entry, at }];
|
|
404
|
+
});
|
|
405
|
+
const unheld = rooms.flatMap((room) => {
|
|
406
|
+
const entry = entries.get(room.locator);
|
|
407
|
+
return entry === undefined || room.roomVersion !== null ? [] : [entry];
|
|
408
|
+
});
|
|
409
|
+
for (const { entry, at } of named) {
|
|
410
|
+
if (at.position === '0')
|
|
411
|
+
heldAtZero.add(entry.authority);
|
|
412
|
+
else
|
|
413
|
+
heldAtZero.delete(entry.authority);
|
|
414
|
+
}
|
|
415
|
+
for (const entry of unheld)
|
|
416
|
+
heldAtZero.delete(entry.authority);
|
|
417
|
+
const site = mode === 'site';
|
|
418
|
+
unanswered.push(site ? unheld.map((entry) => entry.locator) : []);
|
|
419
|
+
socket.hold([
|
|
420
|
+
...named.map(({ entry, at }) => presented(entry.authority, at)),
|
|
421
|
+
...(site ? [] : unheld).map((entry) => presented(entry.authority, { position: '0', logEpoch: entry.logEpoch })),
|
|
422
|
+
], runtime, listedCursor);
|
|
423
|
+
if (site)
|
|
424
|
+
return;
|
|
425
|
+
const made = unheld.filter((entry) => entry.position === '0');
|
|
426
|
+
queueMicrotask(() => {
|
|
427
|
+
for (const entry of made) {
|
|
428
|
+
const version = roomVersion(entry);
|
|
429
|
+
emit({
|
|
430
|
+
kind: 'room-change',
|
|
431
|
+
locator: entry.locator,
|
|
432
|
+
from: null,
|
|
433
|
+
roomVersion: version,
|
|
434
|
+
read: () => changePage(entry, [], version, mode, spaces, true),
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
});
|
|
373
438
|
},
|
|
374
439
|
track(entries) {
|
|
375
440
|
tracking.clear();
|
package/dist/transport.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ConversationEvent, SavedFacts, TurnOperation } from '@agentshouse/mdruntime';
|
|
2
2
|
export declare const HOUSE_RUNTIME_READS: {
|
|
3
|
-
readonly acts: readonly ['account/push', 'agents/
|
|
3
|
+
readonly acts: readonly ['account/push/set', 'agents/list', 'apps/features/set', 'apps/source/download', 'apps/source/top/read', 'conversations/history/list', 'files/attach', 'files/batch', 'files/batch-upload', 'files/finish', 'files/read', 'files/revisions/list', 'room-chunks/list', 'rooms/discover', 'rooms/search', 'sites/screenshot/read'];
|
|
4
4
|
readonly frames: readonly ['app-message', 'authority_changed', 'carried', 'caught_up', 'commands', 'conversation', 'conversation_deleted', 'conversations', 'deliveries', 'deployment', 'held', 'interactions', 'link', 'message', 'opening', 'options', 'part', 'process', 'received', 'signal', 'site', 'starting', 'subagents', 'tab-icon', 'turn'];
|
|
5
5
|
};
|
|
6
6
|
export type HouseRuntimeAct = (typeof HOUSE_RUNTIME_READS.acts)[number];
|
|
7
7
|
export type HouseRuntimeFrame = (typeof HOUSE_RUNTIME_READS.frames)[number];
|
|
8
8
|
export declare function houseDoorRoute(act: HouseRuntimeAct): string;
|
|
9
|
-
export declare function houseSiteRoute(act:
|
|
10
|
-
export declare const
|
|
9
|
+
export declare function houseSiteRoute(act: 'chunks' | 'discover'): string;
|
|
10
|
+
export declare const SITES_SUBMISSIONS_CREATE = "sites/submissions/create";
|
|
11
11
|
export declare const SITE_DOOR_SUBMIT = "/_house/door/submit";
|
|
12
12
|
export type HouseMode = 'credential' | 'site';
|
|
13
13
|
export type HouseDoorAnswer = {
|
|
@@ -42,6 +42,7 @@ export type HouseStreamEntry = {
|
|
|
42
42
|
site: string;
|
|
43
43
|
name: string;
|
|
44
44
|
};
|
|
45
|
+
changed_at?: string;
|
|
45
46
|
created_at?: string;
|
|
46
47
|
facts?: SavedFacts;
|
|
47
48
|
space?: string;
|
|
@@ -173,15 +174,11 @@ export type HouseStream = {
|
|
|
173
174
|
opened(notify: (opening: HouseOpening) => void): () => void;
|
|
174
175
|
closed(notify: (closing: HouseClosing) => void): () => void;
|
|
175
176
|
};
|
|
176
|
-
export type HouseStreamed = HouseDoorAnswer & {
|
|
177
|
-
room: ReadableStream<Uint8Array> | null;
|
|
178
|
-
};
|
|
179
177
|
export type HouseDoor = {
|
|
180
178
|
door(route: string, body: unknown): Promise<HouseDoorAnswer>;
|
|
181
179
|
stream: HouseStream;
|
|
182
180
|
};
|
|
183
181
|
export type HouseTransport = HouseDoor & {
|
|
184
|
-
streamed(route: string, body: unknown, signal: AbortSignal): Promise<HouseStreamed>;
|
|
185
182
|
transfer(request: HouseByteTransfer): Promise<HouseDoorAnswer>;
|
|
186
183
|
put(url: string, body: Blob, headers: Readonly<Record<string, string>>): Promise<number>;
|
|
187
184
|
download(url: string): Promise<HouseBytesAnswer>;
|
|
@@ -189,7 +186,6 @@ export type HouseTransport = HouseDoor & {
|
|
|
189
186
|
export type HouseSiteTransport = HouseDoor & {
|
|
190
187
|
online(): boolean;
|
|
191
188
|
read(route: string): Promise<HouseDoorAnswer>;
|
|
192
|
-
streamed(route: string, signal: AbortSignal): Promise<HouseStreamed>;
|
|
193
189
|
download(route: string): Promise<HouseBytesAnswer>;
|
|
194
190
|
};
|
|
195
191
|
export {};
|
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,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3F,eAAO,MAAM,mBAAmB;aAC9B,IAAI,YACF,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3F,eAAO,MAAM,mBAAmB;aAC9B,IAAI,YACF,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,uBAAuB;aAEzB,MAAM,YACJ,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,UAAU,EACV,MAAM;CAEA,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAEjE;AAED,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,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,UAAU,mBAAmB,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE7F,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,MAAM,CAAC,KAAK,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,IAAI,KAAK,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACjC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACtC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GACD,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,GAC5E;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GACnF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAA;CAAE,GACzF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAC7D;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,uBAAuB,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAC3C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3F,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAChE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5D,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAC3C,MAAM,IAAI,OAAO,CAAC;IAClB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpD,CAAC"}
|
package/dist/transport.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
export const HOUSE_RUNTIME_READS = {
|
|
2
2
|
acts: [
|
|
3
|
-
'account/push',
|
|
4
|
-
'agents/
|
|
3
|
+
'account/push/set',
|
|
4
|
+
'agents/list',
|
|
5
5
|
'apps/features/set',
|
|
6
6
|
'apps/source/download',
|
|
7
|
-
'apps/source/top',
|
|
8
|
-
'
|
|
9
|
-
'batch-upload',
|
|
10
|
-
'bootstrap',
|
|
11
|
-
'conversations/history',
|
|
12
|
-
'discover',
|
|
7
|
+
'apps/source/top/read',
|
|
8
|
+
'conversations/history/list',
|
|
13
9
|
'files/attach',
|
|
10
|
+
'files/batch',
|
|
11
|
+
'files/batch-upload',
|
|
14
12
|
'files/finish',
|
|
15
|
-
'files/
|
|
16
|
-
'revisions',
|
|
17
|
-
'
|
|
13
|
+
'files/read',
|
|
14
|
+
'files/revisions/list',
|
|
15
|
+
'room-chunks/list',
|
|
16
|
+
'rooms/discover',
|
|
17
|
+
'rooms/search',
|
|
18
18
|
'sites/screenshot/read',
|
|
19
19
|
],
|
|
20
20
|
frames: [
|
|
@@ -51,6 +51,6 @@ export function houseDoorRoute(act) {
|
|
|
51
51
|
export function houseSiteRoute(act) {
|
|
52
52
|
return `/_house/door/${act}`;
|
|
53
53
|
}
|
|
54
|
-
export const
|
|
54
|
+
export const SITES_SUBMISSIONS_CREATE = 'sites/submissions/create';
|
|
55
55
|
export const SITE_DOOR_SUBMIT = '/_house/door/submit';
|
|
56
56
|
export const SITE_FILES = '/_house/files/';
|
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-cb0e03e5f0ff6",
|
|
4
4
|
"description": "Agents House Adapter for the MD Runtime",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"LICENSE"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@agentshouse/mdruntime": "0.1.0-
|
|
27
|
+
"@agentshouse/mdruntime": "0.1.0-c5c576c205446"
|
|
28
28
|
},
|
|
29
29
|
"repository": {
|
|
30
30
|
"type": "git",
|
package/dist/part.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type RoomFrame = {
|
|
2
|
-
readonly kind: 'frame';
|
|
3
|
-
readonly payload: Uint8Array<ArrayBuffer>;
|
|
4
|
-
readonly bytes: number;
|
|
5
|
-
} | {
|
|
6
|
-
readonly kind: 'ended';
|
|
7
|
-
} | {
|
|
8
|
-
readonly kind: 'broken';
|
|
9
|
-
};
|
|
10
|
-
export type RoomFrames = () => Promise<RoomFrame>;
|
|
11
|
-
export declare function checkedPayload(frame: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer> | null>;
|
|
12
|
-
export declare function roomFrames(room: ReadableStream<Uint8Array>, arrived?: (bytes: number) => void, signal?: AbortSignal): RoomFrames;
|
|
13
|
-
export declare function gunzipped(payload: Uint8Array<ArrayBuffer>): ReadableStream<string>;
|
|
14
|
-
//# sourceMappingURL=part.d.ts.map
|
package/dist/part.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"part.d.ts","sourceRoot":"","sources":["../src/part.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;AAQlD,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAC7B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CASzC;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,UAAU,CAwDZ;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAKlF"}
|
package/dist/part.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
const PART_MAGIC = 0x48505431;
|
|
2
|
-
const PART_HEAD_BYTES = 8;
|
|
3
|
-
const PART_DIGEST_BYTES = 32;
|
|
4
|
-
function hex(bytes) {
|
|
5
|
-
let text = '';
|
|
6
|
-
for (const byte of bytes)
|
|
7
|
-
text += byte.toString(16).padStart(2, '0');
|
|
8
|
-
return text;
|
|
9
|
-
}
|
|
10
|
-
export async function checkedPayload(frame) {
|
|
11
|
-
if (frame.length < PART_HEAD_BYTES + PART_DIGEST_BYTES)
|
|
12
|
-
return null;
|
|
13
|
-
const view = new DataView(frame.buffer, frame.byteOffset, frame.byteLength);
|
|
14
|
-
if (view.getUint32(0) !== PART_MAGIC)
|
|
15
|
-
return null;
|
|
16
|
-
const length = view.getUint32(4);
|
|
17
|
-
if (PART_HEAD_BYTES + length + PART_DIGEST_BYTES !== frame.length)
|
|
18
|
-
return null;
|
|
19
|
-
const payload = frame.subarray(PART_HEAD_BYTES, PART_HEAD_BYTES + length);
|
|
20
|
-
const digest = hex(new Uint8Array(await crypto.subtle.digest('SHA-256', payload)));
|
|
21
|
-
return hex(frame.subarray(PART_HEAD_BYTES + length)) === digest ? payload : null;
|
|
22
|
-
}
|
|
23
|
-
export function roomFrames(room, arrived, signal) {
|
|
24
|
-
const reader = room.getReader();
|
|
25
|
-
signal?.addEventListener('abort', () => void reader.cancel().catch(() => { }), { once: true });
|
|
26
|
-
const chunks = [];
|
|
27
|
-
let held = 0;
|
|
28
|
-
let received = 0;
|
|
29
|
-
let ended = false;
|
|
30
|
-
async function filled(bytes) {
|
|
31
|
-
while (held < bytes && !ended) {
|
|
32
|
-
const read = await reader.read();
|
|
33
|
-
if (read.done) {
|
|
34
|
-
ended = true;
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
chunks.push(read.value);
|
|
38
|
-
held += read.value.byteLength;
|
|
39
|
-
received += read.value.byteLength;
|
|
40
|
-
arrived?.(received);
|
|
41
|
-
}
|
|
42
|
-
return held >= bytes;
|
|
43
|
-
}
|
|
44
|
-
function taken(bytes) {
|
|
45
|
-
const out = new Uint8Array(bytes);
|
|
46
|
-
let at = 0;
|
|
47
|
-
while (at < bytes) {
|
|
48
|
-
const chunk = chunks[0];
|
|
49
|
-
const used = Math.min(chunk.byteLength, bytes - at);
|
|
50
|
-
out.set(chunk.subarray(0, used), at);
|
|
51
|
-
at += used;
|
|
52
|
-
if (used === chunk.byteLength)
|
|
53
|
-
chunks.shift();
|
|
54
|
-
else
|
|
55
|
-
chunks[0] = chunk.subarray(used);
|
|
56
|
-
}
|
|
57
|
-
held -= bytes;
|
|
58
|
-
return out;
|
|
59
|
-
}
|
|
60
|
-
return async () => {
|
|
61
|
-
try {
|
|
62
|
-
if (!(await filled(PART_HEAD_BYTES)))
|
|
63
|
-
return held === 0 ? { kind: 'ended' } : { kind: 'broken' };
|
|
64
|
-
const head = taken(PART_HEAD_BYTES);
|
|
65
|
-
const view = new DataView(head.buffer);
|
|
66
|
-
if (view.getUint32(0) !== PART_MAGIC)
|
|
67
|
-
return { kind: 'broken' };
|
|
68
|
-
const length = view.getUint32(4);
|
|
69
|
-
const rest = length + PART_DIGEST_BYTES;
|
|
70
|
-
if (!(await filled(rest)))
|
|
71
|
-
return { kind: 'broken' };
|
|
72
|
-
const frame = new Uint8Array(PART_HEAD_BYTES + rest);
|
|
73
|
-
frame.set(head, 0);
|
|
74
|
-
frame.set(taken(rest), PART_HEAD_BYTES);
|
|
75
|
-
const payload = await checkedPayload(frame);
|
|
76
|
-
return payload === null
|
|
77
|
-
? { kind: 'broken' }
|
|
78
|
-
: { kind: 'frame', payload, bytes: frame.byteLength };
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return { kind: 'broken' };
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export function gunzipped(payload) {
|
|
86
|
-
return new Blob([payload])
|
|
87
|
-
.stream()
|
|
88
|
-
.pipeThrough(new DecompressionStream('gzip'))
|
|
89
|
-
.pipeThrough(new TextDecoderStream());
|
|
90
|
-
}
|
package/dist/room-stream.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { BootstrapResult, RoomModels } from '@agentshouse/mdruntime';
|
|
2
|
-
import type { TrackedAuthority } from './discovery.js';
|
|
3
|
-
import { type HouseScope } from './read.js';
|
|
4
|
-
import type { SpaceSchemas } from './space-schema.js';
|
|
5
|
-
import type { HouseMode } from './transport.js';
|
|
6
|
-
export type StreamedPart = {
|
|
7
|
-
readonly scope: HouseScope;
|
|
8
|
-
readonly first: boolean;
|
|
9
|
-
readonly ended: boolean;
|
|
10
|
-
readonly models: RoomModels | undefined;
|
|
11
|
-
readonly pageToken: string | undefined;
|
|
12
|
-
readonly bytes: number;
|
|
13
|
-
};
|
|
14
|
-
export declare function roomStreams(mode: HouseMode, spaces: SpaceSchemas): {
|
|
15
|
-
head: (entry: TrackedAuthority, room: ReadableStream<Uint8Array>, arriving: ((bytes: number) => void) | undefined, signal: AbortSignal | undefined) => Promise<BootstrapResult>;
|
|
16
|
-
part: (entry: TrackedAuthority, token: string) => Promise<StreamedPart | Exclude<BootstrapResult, {
|
|
17
|
-
kind: 'bootstrap';
|
|
18
|
-
}>>;
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=room-stream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"room-stream.d.ts","sourceRoot":"","sources":["../src/room-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAuD,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAYhD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY;kBAKtD,gBAAgB,QACjB,cAAc,CAAC,UAAU,CAAC,YACtB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,UACvC,WAAW,GAAG,SAAS,KAC9B,OAAO,CAAC,eAAe,CAAC;kBAelB,gBAAgB,SAChB,MAAM,KACZ,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;EAkC3E"}
|
package/dist/room-stream.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { manifestedModels, partModels } from './model.js';
|
|
2
|
-
import { roomFrames } from './part.js';
|
|
3
|
-
import { housePart, manifested, roomHead } from './read.js';
|
|
4
|
-
const UNCERTAIN = { kind: 'transport-uncertainty' };
|
|
5
|
-
export function roomStreams(mode, spaces) {
|
|
6
|
-
const open = new Map();
|
|
7
|
-
let opened = 0;
|
|
8
|
-
async function head(entry, room, arriving, signal) {
|
|
9
|
-
const frames = roomFrames(room, arriving, signal);
|
|
10
|
-
const first = await frames();
|
|
11
|
-
if (first.kind !== 'frame')
|
|
12
|
-
return UNCERTAIN;
|
|
13
|
-
const held = await roomHead(first.payload, mode);
|
|
14
|
-
if (held === null || held.anchor !== entry.authority)
|
|
15
|
-
return UNCERTAIN;
|
|
16
|
-
const { models, seen } = await manifestedModels(held, entry, spaces);
|
|
17
|
-
opened += 1;
|
|
18
|
-
const id = String(opened);
|
|
19
|
-
open.set(id, { entry, head: held, frames, next: 1, seen });
|
|
20
|
-
signal?.addEventListener('abort', () => open.delete(id), { once: true });
|
|
21
|
-
return { ...manifested(held, `${id}:1`, models), bytes: first.bytes };
|
|
22
|
-
}
|
|
23
|
-
async function part(entry, token) {
|
|
24
|
-
const [id = '', at = ''] = token.split(':');
|
|
25
|
-
const room = open.get(id);
|
|
26
|
-
if (room === undefined || room.entry.locator !== entry.locator || String(room.next) !== at)
|
|
27
|
-
return UNCERTAIN;
|
|
28
|
-
const frame = await room.frames();
|
|
29
|
-
if (frame.kind !== 'frame') {
|
|
30
|
-
open.delete(id);
|
|
31
|
-
return UNCERTAIN;
|
|
32
|
-
}
|
|
33
|
-
const read = await housePart(room.head, frame.payload, mode);
|
|
34
|
-
if ('kind' in read) {
|
|
35
|
-
open.delete(id);
|
|
36
|
-
return read;
|
|
37
|
-
}
|
|
38
|
-
const { scope, ended } = read;
|
|
39
|
-
const first = room.next === 1;
|
|
40
|
-
room.next += 1;
|
|
41
|
-
room.seen = [
|
|
42
|
-
...room.seen,
|
|
43
|
-
...(scope.files.some((file) => file.path === entry.schema) ? [entry.schema] : []),
|
|
44
|
-
];
|
|
45
|
-
if (ended)
|
|
46
|
-
open.delete(id);
|
|
47
|
-
return {
|
|
48
|
-
scope,
|
|
49
|
-
first,
|
|
50
|
-
ended,
|
|
51
|
-
models: await partModels(scope, entry, new Set(room.seen), ended),
|
|
52
|
-
pageToken: ended ? undefined : `${id}:${room.next}`,
|
|
53
|
-
bytes: frame.bytes,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return { head, part };
|
|
57
|
-
}
|