@agentshouse/mdruntime-adapter 0.1.0-cd673d02b6e50 → 0.1.0-cd75dfaf57319

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 (55) hide show
  1. package/dist/actions.d.ts +2 -47
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +7 -225
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +69 -214
  6. package/dist/discovery.d.ts +18 -5
  7. package/dist/discovery.d.ts.map +1 -1
  8. package/dist/discovery.js +60 -26
  9. package/dist/history.d.ts +12 -0
  10. package/dist/history.d.ts.map +1 -0
  11. package/dist/history.js +92 -0
  12. package/dist/house-model.d.ts +718 -1
  13. package/dist/house-model.d.ts.map +1 -1
  14. package/dist/house-model.js +393 -486
  15. package/dist/index.d.ts +6 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +6 -3
  18. package/dist/model.d.ts +5 -4
  19. package/dist/model.d.ts.map +1 -1
  20. package/dist/model.js +27 -22
  21. package/dist/read.d.ts +11 -44
  22. package/dist/read.d.ts.map +1 -1
  23. package/dist/read.js +25 -174
  24. package/dist/refusal.d.ts +0 -3
  25. package/dist/refusal.d.ts.map +1 -1
  26. package/dist/refusal.js +0 -5
  27. package/dist/room-stream.d.ts +2 -1
  28. package/dist/room-stream.d.ts.map +1 -1
  29. package/dist/room-stream.js +2 -2
  30. package/dist/room-types.d.ts +2 -2
  31. package/dist/room-types.d.ts.map +1 -1
  32. package/dist/room-types.js +7 -9
  33. package/dist/search.d.ts +5 -0
  34. package/dist/search.d.ts.map +1 -0
  35. package/dist/search.js +47 -0
  36. package/dist/site.d.ts.map +1 -1
  37. package/dist/site.js +50 -92
  38. package/dist/space-schema.d.ts +7 -0
  39. package/dist/space-schema.d.ts.map +1 -0
  40. package/dist/space-schema.js +18 -0
  41. package/dist/stream.d.ts +14 -14
  42. package/dist/stream.d.ts.map +1 -1
  43. package/dist/stream.js +169 -424
  44. package/dist/transport.d.ts +44 -35
  45. package/dist/transport.d.ts.map +1 -1
  46. package/dist/transport.js +54 -12
  47. package/dist/upload.d.ts.map +1 -1
  48. package/dist/upload.js +2 -2
  49. package/dist/write.d.ts +2 -1
  50. package/dist/write.d.ts.map +1 -1
  51. package/dist/write.js +8 -23
  52. package/package.json +2 -2
  53. package/dist/gather.d.ts +0 -3
  54. package/dist/gather.d.ts.map +0 -1
  55. package/dist/gather.js +0 -35
@@ -9,9 +9,9 @@ export const INBOX_CHANNEL_KINDS = [
9
9
  'viber',
10
10
  'tiktok',
11
11
  ];
12
- export const INBOX_CHAT_TYPE = 'inbox-chat';
13
- export const INBOX_MESSAGE_TYPE = 'inbox-message';
14
- export const HOUSE_NAMEABLE_ROOM_TYPES = [INBOX_CHAT_TYPE, INBOX_MESSAGE_TYPE];
12
+ export const CHAT_TYPE = 'chat';
13
+ export const CHAT_MESSAGE_TYPE = 'chat-message';
14
+ export const HOUSE_NAMEABLE_ROOM_TYPES = [CHAT_TYPE, CHAT_MESSAGE_TYPE];
15
15
  const WAYFINDING_MAP_TYPE = 'wayfinding-map';
16
16
  const WAYFINDING_TICKET_TYPE = 'wayfinding-ticket';
17
17
  const WAYFINDING_MAP_SECTIONS = [
@@ -30,7 +30,7 @@ const ASSIGNEE = [
30
30
  ...AGENT,
31
31
  ];
32
32
  export const HOUSE_ROOM_TYPES = [
33
- `${INBOX_CHAT_TYPE}:`,
33
+ `${CHAT_TYPE}:`,
34
34
  ' properties:',
35
35
  ' inbox: { type: string, format: uuid }',
36
36
  ` channel: { enum: [${INBOX_CHANNEL_KINDS.join(', ')}] }`,
@@ -47,9 +47,8 @@ export const HOUSE_ROOM_TYPES = [
47
47
  ' type: object',
48
48
  ' properties:',
49
49
  ...AGENT,
50
- ' conversation: { type: string, format: uuid }',
51
- ' required: [inbox, channel, chat, customer]',
52
- `${INBOX_MESSAGE_TYPE}:`,
50
+ ' required: [chat, customer]',
51
+ `${CHAT_MESSAGE_TYPE}:`,
53
52
  ' properties:',
54
53
  ' direction: { enum: [in, out] }',
55
54
  ' sender:',
@@ -59,8 +58,7 @@ export const HOUSE_ROOM_TYPES = [
59
58
  ` username: ${IDENTITY}`,
60
59
  ' sent_at: { type: string, format: date-time }',
61
60
  ` channel_message: ${IDENTITY}`,
62
- ' state: { enum: [sending, sent, failed] }',
63
- ' reason: { type: string }',
61
+ ' labelled: { const: true }',
64
62
  ' reactions:',
65
63
  ' type: array',
66
64
  ' items:',
@@ -0,0 +1,5 @@
1
+ import type { SearchAnswer, SearchAsk } from '@agentshouse/mdruntime';
2
+ import type { TrackedAuthority } from './discovery.js';
3
+ import { type HouseTransport } from './transport.js';
4
+ export declare function houseSearch(transport: Pick<HouseTransport, 'door'>, tracked: readonly TrackedAuthority[], request: SearchAsk): Promise<SearchAnswer>;
5
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAa,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAsBrE,wBAAsB,WAAW,CAC/B,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,EACvC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,YAAY,CAAC,CAoBvB"}
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,EAUR,MAAM,wBAAwB,CAAC;AAwBhC,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAgCxB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAqN1F"}
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 { streamedModels, viewModels } from './model.js';
5
- import { bootstrapping, parseEnumeration, refreshFrom, viewOf, wholeView, } from './read.js';
4
+ import { bootstrapping } from './read.js';
6
5
  import { roomStreams } from './room-stream.js';
7
- import { classifyDoor, classifyRead, discoveryFailure } from './refusal.js';
6
+ import { spaceSchemas } from './space-schema.js';
7
+ import { classifyDoor, discoveryFailure } from './refusal.js';
8
+ import { HOUSE_TYPED_PATHS } from './house-model.js';
8
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 };
@@ -19,48 +20,32 @@ function siteRoom(tracked) {
19
20
  locator: tracked.locator,
20
21
  handle: tracked.handle,
21
22
  roomVersion: roomVersion(tracked),
22
- operations: { write: [], delete: [] },
23
+ operations: { write: [], erase: [] },
23
24
  replica: { selection: tracked.locator, admission: 'admitted', offline: 'open' },
24
25
  providerOwnedPaths: [],
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
38
  const read = new Map();
31
- const rooms = roomStreams('site');
39
+ const rooms = roomStreams('site', spaces);
32
40
  function fileRoute(request) {
33
41
  const entry = tracked.get(request.locator);
34
42
  if (entry === undefined)
35
43
  return { kind: 'room-not-readable', locator: request.locator };
36
44
  return `${SITE_FILES}${entry.authority}/${encodeURIComponent(request.revision)}/${encodeURIComponent(request.path)}`;
37
45
  }
38
- async function enumerated(entry, from, page) {
39
- const answer = await transport.door(SITE_DOOR_ENUMERATE, {
40
- positions: [
41
- page === undefined
42
- ? presented(entry.authority, from)
43
- : {
44
- ...presented(entry.authority, { position: page.after, logEpoch: from.logEpoch }),
45
- page: { through: page.through, read: page.read },
46
- },
47
- ],
48
- });
49
- const classified = classifyRead(answer.status, answer.body, entry.locator);
50
- if (classified !== null)
51
- return classified;
52
- const found = parseEnumeration(answer.body, 'site');
53
- if (found === null)
54
- return UNCERTAIN;
55
- return viewOf(found, entry) ?? { kind: 'room-not-readable', locator: entry.locator };
56
- }
57
- async function enumeration(entry, from) {
58
- const first = await enumerated(entry, from);
59
- return 'kind' in first ? first : wholeView(first, (page) => enumerated(entry, from, page));
60
- }
61
46
  async function openedRoom(entry, arriving, signal) {
62
47
  const cut = read.get(entry.locator);
63
- const answered = await transport.streamed(`${SITE_DOOR_BOOTSTRAP}${entry.authority}${cut === undefined ? '' : `?expired=${cut}`}`, signal ?? new AbortController().signal);
48
+ const answered = await transport.streamed(`${houseSiteRoute('bootstrap')}/${entry.authority}${cut === undefined ? '' : `?expired=${cut}`}`, signal ?? new AbortController().signal);
64
49
  if (answered.room === null)
65
50
  return classifyDoor(answered.status, answered.body, entry.locator) ?? UNCERTAIN;
66
51
  const head = await rooms.head(entry, answered.room, arriving, signal);
@@ -73,7 +58,6 @@ export function createSiteAdapter(transport, snapshot = false) {
73
58
  const part = await rooms.part(entry, token);
74
59
  if ('kind' in part)
75
60
  return part;
76
- notifications.reach(entry.authority, part.scope);
77
61
  const { folders: _folders, ...page } = await stepped(bootstrapping(part.scope));
78
62
  return {
79
63
  ...page,
@@ -82,48 +66,29 @@ export function createSiteAdapter(transport, snapshot = false) {
82
66
  bytes: part.bytes,
83
67
  };
84
68
  }
85
- async function refreshed(entry, fromRoomVersion) {
86
- const from = logPosition(fromRoomVersion);
87
- if (from === null)
88
- return { kind: 'beyond-horizon' };
89
- const streamed = await stepped(notifications.advance(entry, from));
90
- if (streamed !== null) {
91
- const models = await streamedModels(streamed.schemas, entry, 'site');
92
- return models === undefined ? streamed.page : { ...streamed.page, models };
93
- }
94
- const view = await enumeration(entry, from);
95
- if ('kind' in view)
96
- return view;
97
- notifications.reach(entry.authority, view);
98
- const answer = await refreshFrom(view, fromRoomVersion);
99
- if (answer.kind !== 'net-advancement')
100
- return answer;
101
- const models = await viewModels(view, entry);
102
- 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());
103
83
  }
104
84
  return {
105
85
  localSaves: true,
106
- exhaustiveDiscovery: true,
107
86
  roomTypes: HOUSE_ROOM_TYPES,
108
87
  nameableRoomTypes: HOUSE_NAMEABLE_ROOM_TYPES,
88
+ typedPaths: HOUSE_TYPED_PATHS,
109
89
  async authorize() {
110
90
  return {};
111
91
  },
112
- async discover() {
113
- const answer = await transport.read(SITE_DOOR_DISCOVER);
114
- const failed = discoveryFailure(answer.status, answer.body);
115
- if (failed !== null)
116
- return failed;
117
- const document = parseSiteDiscovery(answer.body);
118
- if (document === null)
119
- return UNCERTAIN;
120
- const entries = siteTracked(document);
121
- tracked.clear();
122
- for (const entry of entries)
123
- tracked.set(entry.locator, entry);
124
- notifications.track(entries);
125
- return mapDiscovery(document, entries.map(siteRoom), siteCapabilities());
126
- },
127
92
  async bootstrap(_authorization, request) {
128
93
  const entry = tracked.get(request.locator);
129
94
  if (entry === undefined)
@@ -132,19 +97,21 @@ export function createSiteAdapter(transport, snapshot = false) {
132
97
  ? openedRoom(entry, request.arriving, request.signal)
133
98
  : streamedPage(entry, request.pageToken);
134
99
  },
135
- async refresh(_authorization, request) {
136
- const entry = tracked.get(request.locator);
137
- if (entry === undefined)
138
- return { kind: 'room-not-readable', locator: request.locator };
139
- if (request.pageToken !== undefined)
140
- return UNCERTAIN;
141
- if (snapshot) {
142
- return request.fromRoomVersion === roomVersion(entry)
143
- ? { kind: 'still-current' }
144
- : { 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
+ },
145
113
  }
146
- return refreshed(entry, request.fromRoomVersion);
147
- },
114
+ : {}),
148
115
  async mutate() {
149
116
  return { kind: 'rejected', affected: {}, code: 'write-grant', fields: {}, retryable: false };
150
117
  },
@@ -182,7 +149,7 @@ export function createSiteAdapter(transport, snapshot = false) {
182
149
  return followsVersion(version, next);
183
150
  },
184
151
  async action(_authorization, request) {
185
- if (request.name !== SITE_SUBMIT) {
152
+ if (request.name !== SITE_SUBMISSION) {
186
153
  return {
187
154
  kind: 'rejected',
188
155
  code: 'action-unimplemented',
@@ -192,7 +159,7 @@ export function createSiteAdapter(transport, snapshot = false) {
192
159
  }
193
160
  if (!transport.online())
194
161
  return UNCERTAIN;
195
- 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);
196
163
  },
197
164
  roomStream: snapshot
198
165
  ? undefined
@@ -201,19 +168,10 @@ export function createSiteAdapter(transport, snapshot = false) {
201
168
  notifications.send(rooms.flatMap((room) => {
202
169
  const entry = tracked.get(room.locator);
203
170
  const at = logPosition(room.roomVersion);
204
- if (entry === undefined || at === null)
205
- return [];
206
- notifications.reach(entry.authority, at);
207
- return [presented(entry.authority, at)];
171
+ return entry === undefined || at === null ? [] : [presented(entry.authority, at)];
208
172
  }));
209
173
  },
210
- reopen: notifications.reopen,
211
174
  observe: notifications.observe,
212
- published(locator, roomVersion) {
213
- const at = logPosition(roomVersion);
214
- if (at !== null)
215
- notifications.published(locator, at);
216
- },
217
175
  },
218
176
  serviceMode: notifications.serviceMode,
219
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"}