@agentshouse/mdruntime-adapter 0.1.0-cdc1a38081f09 → 0.1.0-cdcec0737ac0e

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.
Files changed (66) hide show
  1. package/README.md +2 -2
  2. package/dist/actions.d.ts +4 -59
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +7 -289
  5. package/dist/adapter.d.ts.map +1 -1
  6. package/dist/adapter.js +138 -328
  7. package/dist/app-reference.d.ts +2 -0
  8. package/dist/app-reference.d.ts.map +1 -0
  9. package/dist/app-reference.js +2 -0
  10. package/dist/crockford.d.ts +4 -0
  11. package/dist/crockford.d.ts.map +1 -0
  12. package/dist/crockford.js +3 -0
  13. package/dist/discovery.d.ts +21 -13
  14. package/dist/discovery.d.ts.map +1 -1
  15. package/dist/discovery.js +73 -53
  16. package/dist/history.d.ts +12 -0
  17. package/dist/history.d.ts.map +1 -0
  18. package/dist/history.js +92 -0
  19. package/dist/house-model.d.ts +719 -0
  20. package/dist/house-model.d.ts.map +1 -0
  21. package/dist/house-model.js +393 -0
  22. package/dist/index.d.ts +10 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -2
  25. package/dist/model.d.ts +5 -4
  26. package/dist/model.d.ts.map +1 -1
  27. package/dist/model.js +31 -35
  28. package/dist/part.d.ts +11 -12
  29. package/dist/part.d.ts.map +1 -1
  30. package/dist/part.js +63 -55
  31. package/dist/read.d.ts +20 -58
  32. package/dist/read.d.ts.map +1 -1
  33. package/dist/read.js +60 -221
  34. package/dist/refusal.d.ts +0 -3
  35. package/dist/refusal.d.ts.map +1 -1
  36. package/dist/refusal.js +0 -5
  37. package/dist/room-stream.d.ts +20 -0
  38. package/dist/room-stream.d.ts.map +1 -0
  39. package/dist/room-stream.js +57 -0
  40. package/dist/room-types.d.ts +4 -3
  41. package/dist/room-types.d.ts.map +1 -1
  42. package/dist/room-types.js +49 -9
  43. package/dist/search.d.ts +5 -0
  44. package/dist/search.d.ts.map +1 -0
  45. package/dist/search.js +47 -0
  46. package/dist/site.d.ts.map +1 -1
  47. package/dist/site.js +79 -159
  48. package/dist/space-schema.d.ts +7 -0
  49. package/dist/space-schema.d.ts.map +1 -0
  50. package/dist/space-schema.js +18 -0
  51. package/dist/stream.d.ts +14 -14
  52. package/dist/stream.d.ts.map +1 -1
  53. package/dist/stream.js +169 -424
  54. package/dist/transport.d.ts +51 -36
  55. package/dist/transport.d.ts.map +1 -1
  56. package/dist/transport.js +54 -11
  57. package/dist/upload.d.ts.map +1 -1
  58. package/dist/upload.js +2 -2
  59. package/dist/write.d.ts +6 -1
  60. package/dist/write.d.ts.map +1 -1
  61. package/dist/write.js +18 -25
  62. package/package.json +7 -3
  63. package/AGENTS.md +0 -317
  64. package/dist/gather.d.ts +0 -4
  65. package/dist/gather.d.ts.map +0 -1
  66. package/dist/gather.js +0 -35
package/dist/search.js ADDED
@@ -0,0 +1,47 @@
1
+ import { doorRefusal } from './refusal.js';
2
+ import { houseDoorRoute } from './transport.js';
3
+ const ROOMS = '/rooms/';
4
+ const UNCERTAIN = { kind: 'transport-uncertainty' };
5
+ function hitOf(file, locators) {
6
+ if (typeof file !== 'object' || file === null)
7
+ return null;
8
+ const { path, line, snippet } = file;
9
+ if (typeof path !== 'string' || !path.startsWith(ROOMS))
10
+ return null;
11
+ const slash = path.indexOf('/', ROOMS.length);
12
+ if (slash < 0)
13
+ return null;
14
+ const room = locators.get(path.slice(ROOMS.length, slash));
15
+ if (room === undefined)
16
+ return null;
17
+ return {
18
+ room,
19
+ path: path.slice(slash + 1),
20
+ ...(typeof line === 'number' ? { line } : {}),
21
+ ...(typeof snippet === 'string' ? { snippet } : {}),
22
+ };
23
+ }
24
+ export async function houseSearch(transport, tracked, request) {
25
+ const named = request.rooms === null
26
+ ? null
27
+ : tracked.filter((entry) => request.rooms.includes(entry.locator));
28
+ if (named !== null && named.length === 0)
29
+ return { kind: 'found', documents: [] };
30
+ const answer = await transport.door(houseDoorRoute('search'), {
31
+ query: request.text,
32
+ ...(named === null ? {} : { paths: named.map((entry) => `${ROOMS}${entry.handle}`) }),
33
+ });
34
+ if (answer.status === 401)
35
+ return { kind: 'revoked-authorization' };
36
+ const refusal = doorRefusal(answer.body);
37
+ if (refusal !== null)
38
+ return { kind: 'rejected', ...refusal };
39
+ const files = answer.body?.files;
40
+ if (answer.status !== 200 || !Array.isArray(files))
41
+ return UNCERTAIN;
42
+ const locators = new Map(tracked.map((entry) => [entry.handle, entry.locator]));
43
+ return {
44
+ kind: 'found',
45
+ documents: files.flatMap((file) => hitOf(file, locators) ?? []),
46
+ };
47
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAWR,MAAM,wBAAwB,CAAC;AA+BhC,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAoCxB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAuP1F"}
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAQR,MAAM,wBAAwB,CAAC;AAiBhC,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAuBxB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,UAAQ,GAAG,OAAO,CA6K1F"}
package/dist/site.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import { stepped } from '@agentshouse/mdruntime';
2
- import { actionOutcome, SITE_SUBMIT } from './actions.js';
2
+ import { actionOutcome } from './actions.js';
3
3
  import { mapDiscovery, parseSiteDiscovery, siteCapabilities, siteTracked, } from './discovery.js';
4
- import { manifestedModels, partModels, streamedModels, viewModels } from './model.js';
5
- import { bootstrapping, emptyScope, housePart, manifested, parseEnumeration, parseSiteParted, partInventory, refreshFrom, viewOf, wholeView, } from './read.js';
6
- import { PART_ATTEMPTS, partArrival, partFrame, unverifiedPart } from './part.js';
7
- import { classifyDoor, classifyRead, discoveryFailure } from './refusal.js';
8
- import { HOUSE_ROOM_TYPES } from './room-types.js';
4
+ import { bootstrapping } from './read.js';
5
+ import { roomStreams } from './room-stream.js';
6
+ import { spaceSchemas } from './space-schema.js';
7
+ import { classifyDoor, discoveryFailure } from './refusal.js';
8
+ import { HOUSE_TYPED_PATHS } from './house-model.js';
9
+ import { HOUSE_NAMEABLE_ROOM_TYPES, HOUSE_ROOM_TYPES } from './room-types.js';
9
10
  import { houseNotifications } from './stream.js';
10
- import { SITE_DOOR_BOOTSTRAP, SITE_DOOR_DISCOVER, SITE_DOOR_ENUMERATE, SITE_DOOR_SUBMIT, SITE_FILES, } from './transport.js';
11
- import { followsVersion, logPosition, presented, reachedVersion, roomVersion, } from './version.js';
11
+ import { houseSiteRoute, SITE_DOOR_SUBMIT, SITE_FILES, SITE_SUBMISSION, } from './transport.js';
12
+ import { followsVersion, logPosition, presented, reachedVersion, roomVersion } from './version.js';
12
13
  const UNCERTAIN = { kind: 'transport-uncertainty' };
13
14
  function unfound() {
14
15
  return { kind: 'rejected', code: 'file_not_found', fields: {}, retryable: false };
@@ -25,170 +26,98 @@ function siteRoom(tracked) {
25
26
  };
26
27
  }
27
28
  export function createSiteAdapter(transport, snapshot = false) {
28
- const notifications = houseNotifications(transport, 'site');
29
+ const spaces = spaceSchemas();
30
+ const notifications = houseNotifications(transport, 'site', {
31
+ opened: async () => {
32
+ const found = await discovered();
33
+ return found.kind === 'discovery' ? found : null;
34
+ },
35
+ changed: () => null,
36
+ }, spaces);
29
37
  const tracked = new Map();
30
- const expired = new Map();
38
+ const read = new Map();
39
+ const rooms = roomStreams('site', spaces);
31
40
  function fileRoute(request) {
32
41
  const entry = tracked.get(request.locator);
33
42
  if (entry === undefined)
34
43
  return { kind: 'room-not-readable', locator: request.locator };
35
44
  return `${SITE_FILES}${entry.authority}/${encodeURIComponent(request.revision)}/${encodeURIComponent(request.path)}`;
36
45
  }
37
- async function enumerated(entry, from, page) {
38
- const answer = await transport.door(SITE_DOOR_ENUMERATE, {
39
- positions: [
40
- page === undefined
41
- ? presented(entry.authority, from)
42
- : {
43
- ...presented(entry.authority, { position: page.after, logEpoch: from.logEpoch }),
44
- page: { through: page.through, read: page.read },
45
- },
46
- ],
47
- });
48
- const classified = classifyRead(answer.status, answer.body, entry.locator);
49
- if (classified !== null)
50
- return classified;
51
- const found = parseEnumeration(answer.body, 'site');
52
- if (found === null)
53
- return UNCERTAIN;
54
- return viewOf(found, entry) ?? { kind: 'room-not-readable', locator: entry.locator };
55
- }
56
- async function enumeration(entry, from) {
57
- const first = await enumerated(entry, from);
58
- return 'kind' in first ? first : wholeView(first, (page) => enumerated(entry, from, page));
46
+ async function openedRoom(entry, arriving, signal) {
47
+ const cut = read.get(entry.locator);
48
+ const answered = await transport.streamed(`${houseSiteRoute('bootstrap')}/${entry.authority}${cut === undefined ? '' : `?expired=${cut}`}`, signal ?? new AbortController().signal);
49
+ if (answered.room === null)
50
+ return classifyDoor(answered.status, answered.body, entry.locator) ?? UNCERTAIN;
51
+ const head = await rooms.head(entry, answered.room, arriving, signal);
52
+ const at = head.kind === 'bootstrap' ? logPosition(head.roomVersion) : null;
53
+ if (at !== null)
54
+ read.set(entry.locator, at.position);
55
+ return head;
59
56
  }
60
- async function partedRoom(entry) {
61
- const cut = expired.get(entry.locator);
62
- const answer = await transport.read(`${SITE_DOOR_BOOTSTRAP}${entry.authority}${cut === undefined ? '' : `?expired=${cut}`}`);
63
- const classified = classifyDoor(answer.status, answer.body, entry.locator);
64
- if (classified !== null)
65
- return classified;
66
- const room = parseSiteParted(answer.body);
67
- return room === null || room.anchor !== entry.authority ? UNCERTAIN : room;
57
+ async function streamedPage(entry, token) {
58
+ const part = await rooms.part(entry, token);
59
+ if ('kind' in part)
60
+ return part;
61
+ const { folders: _folders, ...page } = await stepped(bootstrapping(part.scope));
62
+ return {
63
+ ...page,
64
+ ...(part.models === undefined ? {} : { models: part.models }),
65
+ ...(part.pageToken === undefined ? {} : { pageToken: part.pageToken }),
66
+ bytes: part.bytes,
67
+ };
68
68
  }
69
- async function fetchedPart(entry, room, listed, received, arriving) {
70
- if (received !== undefined) {
71
- const kept = new Uint8Array(received);
72
- const held = await housePart(room, kept, listed, 'site');
73
- if (held !== null)
74
- return 'kind' in held ? held : { scope: held, frame: kept };
75
- }
76
- for (let attempt = 0; attempt < PART_ATTEMPTS; attempt += 1) {
77
- const answer = await transport.read(`${SITE_DOOR_BOOTSTRAP}${entry.authority}?part=${encodeURIComponent(listed.part)}`, partArrival(listed, arriving));
78
- const failure = classifyRead(answer.status, answer.body, entry.locator);
79
- if (failure?.kind === 'beyond-horizon')
80
- expired.set(entry.locator, room.position);
81
- if (failure !== null)
82
- return failure;
83
- const frame = partFrame(answer.body);
84
- if (frame === null)
85
- continue;
86
- const scope = await housePart(room, frame, listed, 'site');
87
- if (scope !== null)
88
- return 'kind' in scope ? scope : { scope, frame };
89
- }
90
- return unverifiedPart(entry.locator);
91
- }
92
- async function refreshed(entry, fromRoomVersion) {
93
- const from = logPosition(fromRoomVersion);
94
- if (from === null)
95
- return { kind: 'beyond-horizon' };
96
- const streamed = await stepped(notifications.advance(entry, from));
97
- if (streamed !== null) {
98
- const models = await streamedModels(streamed.schemas, entry, 'site');
99
- return models === undefined ? streamed.page : { ...streamed.page, models };
100
- }
101
- const view = await enumeration(entry, from);
102
- if ('kind' in view)
103
- return view;
104
- notifications.reach(entry.authority, view);
105
- const answer = await refreshFrom(view, fromRoomVersion);
106
- if (answer.kind !== 'net-advancement')
107
- return answer;
108
- const models = await viewModels(view, entry);
109
- return models === undefined ? answer : { ...answer, models };
69
+ async function discovered() {
70
+ const answer = await transport.read(houseSiteRoute('discover'));
71
+ const failed = discoveryFailure(answer.status, answer.body);
72
+ if (failed !== null)
73
+ return failed;
74
+ const document = parseSiteDiscovery(answer.body);
75
+ if (document === null)
76
+ return UNCERTAIN;
77
+ const entries = siteTracked(document);
78
+ tracked.clear();
79
+ for (const entry of entries)
80
+ tracked.set(entry.locator, entry);
81
+ notifications.track(entries);
82
+ return mapDiscovery(document, entries.map(siteRoom), siteCapabilities());
110
83
  }
111
84
  return {
112
85
  localSaves: true,
113
- exhaustiveDiscovery: true,
114
86
  roomTypes: HOUSE_ROOM_TYPES,
87
+ nameableRoomTypes: HOUSE_NAMEABLE_ROOM_TYPES,
88
+ typedPaths: HOUSE_TYPED_PATHS,
115
89
  async authorize() {
116
90
  return {};
117
91
  },
118
- async discover() {
119
- const answer = await transport.read(SITE_DOOR_DISCOVER);
120
- const failed = discoveryFailure(answer.status, answer.body);
121
- if (failed !== null)
122
- return failed;
123
- const document = parseSiteDiscovery(answer.body);
124
- if (document === null)
125
- return UNCERTAIN;
126
- const entries = siteTracked(document);
127
- tracked.clear();
128
- for (const entry of entries)
129
- tracked.set(entry.locator, entry);
130
- notifications.track(entries);
131
- return mapDiscovery(document, entries.map(siteRoom), siteCapabilities());
132
- },
133
92
  async bootstrap(_authorization, request) {
134
93
  const entry = tracked.get(request.locator);
135
94
  if (entry === undefined)
136
95
  return { kind: 'room-not-readable', locator: request.locator };
137
- let continued;
138
- let inventory;
139
- if (request.pageToken === undefined) {
140
- const room = await partedRoom(entry);
141
- if ('kind' in room)
142
- return room;
143
- const { models, seen } = await manifestedModels(room, entry);
144
- continued = { room, next: 0, seen };
145
- inventory = partInventory(room);
146
- if (inventory.parts > 0) {
147
- return manifested(room, inventory, JSON.stringify(continued), models);
148
- }
149
- }
150
- else
151
- continued = JSON.parse(request.pageToken);
152
- const listed = continued.room.parts[continued.next];
153
- const sent = listed === undefined
154
- ? { scope: emptyScope(continued.room), frame: null }
155
- : await fetchedPart(entry, continued.room, listed, request.received, request.arriving);
156
- if ('kind' in sent)
157
- return sent;
158
- const { scope } = sent;
159
- notifications.reach(entry.authority, scope);
160
- const next = continued.next + 1;
161
- const more = next < continued.room.parts.length;
162
- const seen = [
163
- ...continued.seen,
164
- ...entry.schemas.filter((schema) => scope.files.some((file) => file.path === schema)),
165
- ];
166
- const models = await partModels(scope, entry, new Set(seen), !more);
167
- const { folders: _folders, ...page } = await stepped(bootstrapping(scope));
168
- return {
169
- ...page,
170
- ...(models === undefined ? {} : { models }),
171
- ...(more ? { pageToken: JSON.stringify({ ...continued, next, seen }) } : {}),
172
- ...(inventory === undefined ? {} : { inventory }),
173
- ...(sent.frame === null ? {} : { received: sent.frame }),
174
- };
96
+ return request.pageToken === undefined
97
+ ? openedRoom(entry, request.arriving, request.signal)
98
+ : streamedPage(entry, request.pageToken);
175
99
  },
176
- async refresh(_authorization, request) {
177
- const entry = tracked.get(request.locator);
178
- if (entry === undefined)
179
- return { kind: 'room-not-readable', locator: request.locator };
180
- if (request.pageToken !== undefined)
181
- return UNCERTAIN;
182
- if (snapshot) {
183
- return request.fromRoomVersion === roomVersion(entry)
184
- ? { kind: 'still-current' }
185
- : { kind: 'beyond-horizon' };
100
+ ...(snapshot
101
+ ? {
102
+ discover: discovered,
103
+ async refresh(_authorization, request) {
104
+ const entry = tracked.get(request.locator);
105
+ if (entry === undefined)
106
+ return { kind: 'room-not-readable', locator: request.locator };
107
+ if (request.pageToken !== undefined)
108
+ return UNCERTAIN;
109
+ return request.fromRoomVersion === roomVersion(entry)
110
+ ? { kind: 'still-current' }
111
+ : { kind: 'beyond-horizon' };
112
+ },
186
113
  }
187
- return refreshed(entry, request.fromRoomVersion);
188
- },
114
+ : {}),
189
115
  async mutate() {
190
116
  return { kind: 'rejected', affected: {}, code: 'write-grant', fields: {}, retryable: false };
191
117
  },
118
+ async attach() {
119
+ return { kind: 'rejected', code: 'write-grant', fields: {}, retryable: false };
120
+ },
192
121
  async history() {
193
122
  return { kind: 'no-history' };
194
123
  },
@@ -220,7 +149,7 @@ export function createSiteAdapter(transport, snapshot = false) {
220
149
  return followsVersion(version, next);
221
150
  },
222
151
  async action(_authorization, request) {
223
- if (request.name !== SITE_SUBMIT) {
152
+ if (request.name !== SITE_SUBMISSION) {
224
153
  return {
225
154
  kind: 'rejected',
226
155
  code: 'action-unimplemented',
@@ -230,7 +159,7 @@ export function createSiteAdapter(transport, snapshot = false) {
230
159
  }
231
160
  if (!transport.online())
232
161
  return UNCERTAIN;
233
- return actionOutcome(await transport.door(SITE_DOOR_SUBMIT, request.input), SITE_SUBMIT);
162
+ return actionOutcome(await transport.door(SITE_DOOR_SUBMIT, request.input), SITE_SUBMISSION, request.input);
234
163
  },
235
164
  roomStream: snapshot
236
165
  ? undefined
@@ -239,19 +168,10 @@ export function createSiteAdapter(transport, snapshot = false) {
239
168
  notifications.send(rooms.flatMap((room) => {
240
169
  const entry = tracked.get(room.locator);
241
170
  const at = logPosition(room.roomVersion);
242
- if (entry === undefined || at === null)
243
- return [];
244
- notifications.reach(entry.authority, at);
245
- return [presented(entry.authority, at)];
171
+ return entry === undefined || at === null ? [] : [presented(entry.authority, at)];
246
172
  }));
247
173
  },
248
- reopen: notifications.reopen,
249
174
  observe: notifications.observe,
250
- published(locator, roomVersion) {
251
- const at = logPosition(roomVersion);
252
- if (at !== null)
253
- notifications.published(locator, at);
254
- },
255
175
  },
256
176
  serviceMode: notifications.serviceMode,
257
177
  };
@@ -0,0 +1,7 @@
1
+ export type SpaceSchemas = {
2
+ held(space: string, revision: string): string | undefined;
3
+ keep(space: string, revision: string, text: string): void;
4
+ };
5
+ export declare function spaceSchemas(): SpaceSchemas;
6
+ export declare function spaceIdentity(space: string): string;
7
+ //# sourceMappingURL=space-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-schema.d.ts","sourceRoot":"","sources":["../src/space-schema.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D,CAAC;AAEF,wBAAgB,YAAY,IAAI,YAAY,CAY3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,18 @@
1
+ const HELD_TEXTS = 16;
2
+ export function spaceSchemas() {
3
+ const texts = new Map();
4
+ const key = (space, revision) => `${space} ${revision}`;
5
+ return {
6
+ held: (space, revision) => texts.get(key(space, revision)),
7
+ keep(space, revision, text) {
8
+ const named = key(space, revision);
9
+ texts.delete(named);
10
+ texts.set(named, text);
11
+ if (texts.size > HELD_TEXTS)
12
+ texts.delete(texts.keys().next().value);
13
+ },
14
+ };
15
+ }
16
+ export function spaceIdentity(space) {
17
+ return `space:${space}`;
18
+ }
package/dist/stream.d.ts CHANGED
@@ -1,24 +1,24 @@
1
- import { type ConversationStream, type RefreshPage, type RoomStreamEvent, type ServiceModeSignal, type StreamReceipts } from '@agentshouse/mdruntime';
1
+ import { type AuthorityChange, type Discovery, type ConversationStream, type RoomStreamEvent, type ServiceModeSignal } from '@agentshouse/mdruntime';
2
2
  import type { TrackedAuthority } from './discovery.js';
3
- import type { HouseDoor, HouseHeldRoom, HouseMode, HouseStreamEntry } from './transport.js';
4
- import { type LogPosition } from './version.js';
5
- export type HeldRevision = (path: string, revision: string) => boolean;
6
- export type StreamedAdvancement = {
7
- page: RefreshPage;
8
- schemas: ReadonlyMap<string, HouseStreamEntry>;
3
+ import type { SpaceSchemas } from './space-schema.js';
4
+ import { type HouseDoor, type HouseHeldRoom, type HouseMode, type HouseStreamFrame } from './transport.js';
5
+ export type HouseOpeningFrame = Extract<HouseStreamFrame, {
6
+ type: 'opening';
7
+ }>;
8
+ export type HouseAuthorityChangedFrame = Extract<HouseStreamFrame, {
9
+ type: 'authority_changed';
10
+ }>;
11
+ export type HouseDiscovering = {
12
+ opened(frame: HouseOpeningFrame | null): Promise<Discovery | null>;
13
+ changed(frame: HouseAuthorityChangedFrame): AuthorityChange | null;
9
14
  };
10
15
  export type HouseNotifications = {
11
16
  runtime: string;
12
- observe(notify: (event: RoomStreamEvent) => void, receipts: StreamReceipts): () => void;
17
+ observe(notify: (event: RoomStreamEvent) => void): () => void;
13
18
  send(rooms: readonly HouseHeldRoom[]): void;
14
- published(locator: string, at: LogPosition): void;
15
- reopen(): void;
16
19
  track(authorities: readonly TrackedAuthority[]): void;
17
- reach(authority: string, at: LogPosition): void;
18
- edited(tracked: TrackedAuthority, from: LogPosition): readonly string[];
19
- advance(tracked: TrackedAuthority, from: LogPosition, holds?: HeldRevision): Generator<number, StreamedAdvancement | null, void>;
20
20
  conversations: ConversationStream;
21
21
  serviceMode: ServiceModeSignal;
22
22
  };
23
- export declare function houseNotifications(transport: HouseDoor, mode: HouseMode): HouseNotifications;
23
+ export declare function houseNotifications(transport: HouseDoor, mode: HouseMode, discovering: HouseDiscovering, spaces: SpaceSchemas): HouseNotifications;
24
24
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUvD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAEb,SAAS,EAET,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AA0C7D,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,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,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI,CAAC;IACxF,IAAI,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;IAClD,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACtD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,CAAC;IACxE,OAAO,CACL,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,WAAW,EACjB,KAAK,CAAC,EAAE,YAAY,GACnB,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,aAAa,EAAE,kBAAkB,CAAC;IAClC,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAmFF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,kBAAkB,CA8jB5F"}
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,EAIvB,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;AAUtD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,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;CACpE,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,aAAa,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACtD,aAAa,EAAE,kBAAkB,CAAC;IAClC,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AA0FF,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,YAAY,GACnB,kBAAkB,CA8TpB"}