@agentshouse/mdruntime 0.1.0-cf28918c2bf91 → 0.1.0-cf6d5f0a5c9c8
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 +68 -22
- package/README.md +10 -10
- package/dist/adapter.d.ts +58 -25
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +1 -9
- package/dist/attached-model.d.ts +11 -0
- package/dist/attached-model.d.ts.map +1 -0
- package/dist/attached-model.js +47 -0
- package/dist/bootstrap.d.ts +20 -6
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +89 -35
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +13 -7
- package/dist/client.d.ts +6 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +38 -10
- package/dist/collection.d.ts +6 -11
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +56 -19
- package/dist/connection.d.ts +13 -13
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +643 -542
- package/dist/conversation.d.ts +18 -6
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +179 -78
- package/dist/host.d.ts +8 -1
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +35 -31
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +7 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/memory.d.ts +12 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +92 -31
- package/dist/model.d.ts +11 -11
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +6 -3
- package/dist/observation.d.ts +2 -0
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +24 -14
- package/dist/paths.d.ts +0 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +0 -16
- package/dist/query.d.ts +8 -3
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +75 -36
- package/dist/reach.d.ts +40 -0
- package/dist/reach.d.ts.map +1 -0
- package/dist/reach.js +270 -0
- package/dist/react.d.ts +39 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +63 -0
- package/dist/read-side.d.ts +4 -0
- package/dist/read-side.d.ts.map +1 -1
- package/dist/read-side.js +116 -54
- package/dist/refresh.d.ts +12 -1
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +35 -22
- package/dist/replica.d.ts +6 -6
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +41 -36
- package/dist/room-draft.d.ts +3 -0
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +7 -5
- package/dist/rows.d.ts +4 -1
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +82 -39
- package/dist/save.d.ts +1 -2
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +106 -58
- package/dist/store.d.ts +25 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +206 -90
- package/dist/wire.d.ts +52 -16
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +51 -59
- package/package.json +14 -2
package/dist/bootstrap.js
CHANGED
|
@@ -1,56 +1,110 @@
|
|
|
1
1
|
import { declaredAttachments } from './attachment.js';
|
|
2
|
+
import { transferIdentity } from './identity.js';
|
|
3
|
+
import { advancement } from './refresh.js';
|
|
2
4
|
import { readStaged } from './replica.js';
|
|
3
5
|
import { unconfirmed } from './transfer.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
const RESUMABLE = new Set([
|
|
7
|
+
'transport-uncertainty',
|
|
8
|
+
'retryable-refusal',
|
|
9
|
+
'unconfirmed',
|
|
10
|
+
]);
|
|
11
|
+
function pageLayer(page) {
|
|
12
|
+
return {
|
|
13
|
+
documents: page.documents,
|
|
14
|
+
revisions: page.revisions,
|
|
15
|
+
changes: page.changes,
|
|
16
|
+
written: Object.fromEntries(Object.keys(page.documents).map((path) => [path, page.roomVersion])),
|
|
17
|
+
binaryTargets: page.binaryTargets,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async function heldTransfer(staging, room) {
|
|
21
|
+
const record = staging.held(room.locator);
|
|
22
|
+
if (record === null)
|
|
23
|
+
return null;
|
|
24
|
+
if (record.selection === room.replica.selection) {
|
|
25
|
+
return { record, layer: await staging.staged(record) };
|
|
26
|
+
}
|
|
27
|
+
await staging.abandon(room.locator);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
export async function bootstrapRoom(adapter, authorization, room, held, remodel, continuing, staging) {
|
|
31
|
+
const locator = room.locator;
|
|
32
|
+
const selection = room.replica.selection;
|
|
33
|
+
const kept = await heldTransfer(staging, room);
|
|
34
|
+
const documents = { ...kept?.layer.documents };
|
|
35
|
+
const revisions = { ...kept?.layer.revisions };
|
|
36
|
+
const changes = { ...kept?.layer.changes };
|
|
37
|
+
const written = { ...kept?.layer.written };
|
|
38
|
+
const binaryTargets = new Set(kept?.layer.binaryTargets);
|
|
39
|
+
let transfer = kept?.record ?? null;
|
|
40
|
+
while (transfer === null || transfer.pageToken !== null) {
|
|
19
41
|
if (!continuing())
|
|
20
42
|
return unconfirmed;
|
|
21
43
|
const page = await adapter.bootstrap(authorization, {
|
|
22
|
-
locator
|
|
23
|
-
selection
|
|
24
|
-
pageToken,
|
|
44
|
+
locator,
|
|
45
|
+
selection,
|
|
46
|
+
...(transfer?.pageToken == null ? {} : { pageToken: transfer.pageToken }),
|
|
25
47
|
});
|
|
26
|
-
if (page.kind !== 'bootstrap')
|
|
48
|
+
if (page.kind !== 'bootstrap') {
|
|
49
|
+
if (!RESUMABLE.has(page.kind))
|
|
50
|
+
await staging.abandon(locator);
|
|
27
51
|
return page;
|
|
28
|
-
|
|
52
|
+
}
|
|
53
|
+
transfer = {
|
|
54
|
+
locator,
|
|
55
|
+
transfer: transfer?.transfer ?? transferIdentity(),
|
|
56
|
+
selection,
|
|
57
|
+
from: transfer?.from ?? page.roomVersion,
|
|
58
|
+
last: page.roomVersion,
|
|
59
|
+
pageToken: page.pageToken ?? null,
|
|
60
|
+
models: remodel(page.models, transfer?.models ?? held),
|
|
61
|
+
attachments: [...(transfer?.attachments ?? []), page.attachments ?? []],
|
|
62
|
+
};
|
|
63
|
+
const staged = pageLayer(page);
|
|
64
|
+
if (!(await staging.stage(transfer, staged)))
|
|
29
65
|
return unconfirmed;
|
|
30
|
-
Object.assign(documents,
|
|
31
|
-
Object.assign(revisions,
|
|
32
|
-
Object.assign(changes,
|
|
33
|
-
|
|
66
|
+
Object.assign(documents, staged.documents);
|
|
67
|
+
Object.assign(revisions, staged.revisions);
|
|
68
|
+
Object.assign(changes, staged.changes);
|
|
69
|
+
Object.assign(written, staged.written);
|
|
70
|
+
for (const target of staged.binaryTargets)
|
|
34
71
|
binaryTargets.add(target);
|
|
35
|
-
attachments.push(page.attachments ?? []);
|
|
36
|
-
pageToken = page.pageToken;
|
|
37
72
|
}
|
|
38
|
-
|
|
39
|
-
locator
|
|
73
|
+
const record = {
|
|
74
|
+
locator,
|
|
40
75
|
name: room.name,
|
|
76
|
+
handle: room.handle,
|
|
41
77
|
operations: room.operations,
|
|
42
78
|
replica: room.replica,
|
|
43
|
-
|
|
44
|
-
model: models.collection,
|
|
79
|
+
model: transfer.models.collection,
|
|
45
80
|
typedSelection: room.typedSelection ?? null,
|
|
46
|
-
selectionModel: models.selection,
|
|
81
|
+
selectionModel: transfer.models.selection,
|
|
47
82
|
providerOwnedPaths: room.providerOwnedPaths,
|
|
48
|
-
roomVersion,
|
|
83
|
+
roomVersion: transfer.from,
|
|
84
|
+
transfer: transfer.transfer,
|
|
49
85
|
documents,
|
|
50
86
|
binaryTargets: [...binaryTargets].sort(),
|
|
51
87
|
revisions,
|
|
52
88
|
changes,
|
|
53
|
-
written
|
|
54
|
-
attachments: declaredAttachments(attachments),
|
|
55
|
-
}
|
|
89
|
+
written,
|
|
90
|
+
attachments: declaredAttachments(transfer.attachments),
|
|
91
|
+
};
|
|
92
|
+
const reconciled = transfer.last === transfer.from
|
|
93
|
+
? { kind: 'still-current' }
|
|
94
|
+
: await advancement(adapter, authorization, record, remodel, continuing);
|
|
95
|
+
if (reconciled.kind === 'advanced' || reconciled.kind === 'still-current') {
|
|
96
|
+
const read = readStaged(reconciled.kind === 'advanced' ? reconciled.record : record);
|
|
97
|
+
if (read.kind === 'refused') {
|
|
98
|
+
await staging.abandon(locator);
|
|
99
|
+
return read;
|
|
100
|
+
}
|
|
101
|
+
return { kind: 'staged', confirmed: read.confirmed, stored: record };
|
|
102
|
+
}
|
|
103
|
+
if (reconciled.kind === 'beyond-horizon') {
|
|
104
|
+
await staging.abandon(locator);
|
|
105
|
+
return unconfirmed;
|
|
106
|
+
}
|
|
107
|
+
if (!RESUMABLE.has(reconciled.kind))
|
|
108
|
+
await staging.abandon(locator);
|
|
109
|
+
return reconciled;
|
|
56
110
|
}
|
package/dist/change-set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../src/change-set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change-set.d.ts","sourceRoot":"","sources":["../src/change-set.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAwB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC;AAqBF,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,SAAS,CAqDX;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,CAUX;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAUrE"}
|
package/dist/change-set.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import { passingDocument } from './collection.js';
|
|
1
2
|
import { sameChange } from './overlay.js';
|
|
2
3
|
import { beneath } from './paths.js';
|
|
3
4
|
import { compositionOf, sameMembership } from './replica.js';
|
|
4
|
-
import { rowsOf } from './rows.js';
|
|
5
|
+
import { markdownPath, rowsOf } from './rows.js';
|
|
5
6
|
function rowsAt(locator, replica, path) {
|
|
6
7
|
if (replica === null)
|
|
7
8
|
return [];
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const visible = replica.visible;
|
|
10
|
+
const document = markdownPath(path) ? passingDocument(visible.collection, path) : null;
|
|
11
|
+
const held = visible.documents[path] !== undefined && document !== undefined;
|
|
12
|
+
if (!held && !visible.binaryTargets.includes(path))
|
|
10
13
|
return [];
|
|
11
|
-
|
|
12
|
-
return rowsOf(locator, path, document ?? null, compositionOf(replica.confirmed.record), replica.visible.changes[path] ?? null);
|
|
14
|
+
return rowsOf(locator, path, document ?? null, compositionOf(replica.confirmed.record), visible.changes[path] ?? null);
|
|
13
15
|
}
|
|
14
16
|
function modelShape(model) {
|
|
15
17
|
return model.status === 'unavailable' ? 'unavailable' : JSON.stringify(model.types);
|
|
@@ -45,8 +47,12 @@ export function changeSet(locator, before, after, changed = {}) {
|
|
|
45
47
|
documents.push({
|
|
46
48
|
locator,
|
|
47
49
|
path,
|
|
48
|
-
before
|
|
49
|
-
|
|
50
|
+
get before() {
|
|
51
|
+
return rowsAt(locator, before, path);
|
|
52
|
+
},
|
|
53
|
+
get after() {
|
|
54
|
+
return rowsAt(locator, after, path);
|
|
55
|
+
},
|
|
50
56
|
});
|
|
51
57
|
}
|
|
52
58
|
return {
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AppRoom, ConnectionRefusal, HistoryQuery,
|
|
2
|
-
import type { HistoryResult, ServiceMode } from './adapter.js';
|
|
1
|
+
import type { AppRoom, ConnectionRefusal, HistoryQuery, RoomSchemas, SavedRoomDraft, SaveResult } from './connection.js';
|
|
2
|
+
import type { HistoryResult, Member, ServiceMode } from './adapter.js';
|
|
3
3
|
import type { ChatDraft, ConversationEntry, ConversationOptions, ConversationView } from './conversation.js';
|
|
4
4
|
import { type Observation } from './observation.js';
|
|
5
5
|
import type { CallResult, QueueEntry } from './outcome.js';
|
|
@@ -15,7 +15,7 @@ export type MdRuntimeClient = {
|
|
|
15
15
|
(query: GroupQuery): Promise<GroupResult>;
|
|
16
16
|
};
|
|
17
17
|
search(request: SearchRequest): Promise<SearchResult>;
|
|
18
|
-
types(locator: string): Promise<
|
|
18
|
+
types(locator: string): Promise<RoomSchemas>;
|
|
19
19
|
roomDraft: {
|
|
20
20
|
list(): Promise<readonly RoomDraft[]>;
|
|
21
21
|
read(room: string, path: string): Promise<RoomDraft | null>;
|
|
@@ -54,14 +54,17 @@ export type MdRuntimeClient = {
|
|
|
54
54
|
(topic: 'storage-loss'): Promise<Observation<string | null>>;
|
|
55
55
|
(topic: 'sync-status'): Promise<Observation<SyncStatus>>;
|
|
56
56
|
(topic: 'service-mode'): Promise<Observation<ServiceMode>>;
|
|
57
|
+
(topic: 'member'): Promise<Observation<Member | null>>;
|
|
57
58
|
(topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
|
|
58
59
|
(topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
|
|
59
60
|
(topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
|
|
60
61
|
(topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
|
|
61
62
|
(topic: 'presentation'): Promise<Observation<unknown>>;
|
|
62
63
|
(topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
|
|
64
|
+
(topic: 'conversations'): Promise<Observation<readonly ConversationEntry[]>>;
|
|
63
65
|
};
|
|
64
66
|
reauthorize(): Promise<void>;
|
|
67
|
+
settled(): Promise<void>;
|
|
65
68
|
};
|
|
66
69
|
export declare function connectMdRuntime(port: RuntimePort): MdRuntimeClient;
|
|
67
70
|
export type { Observation } from './observation.js';
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { observed } from './observation.js';
|
|
2
|
-
import { answer, AUTHORIZATION_ENDED,
|
|
2
|
+
import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
|
|
3
3
|
export function connectMdRuntime(port) {
|
|
4
4
|
let sequence = 0;
|
|
5
5
|
let refusal = null;
|
|
@@ -7,8 +7,10 @@ export function connectMdRuntime(port) {
|
|
|
7
7
|
const calls = new Map();
|
|
8
8
|
const opening = new Map();
|
|
9
9
|
const observations = new Map();
|
|
10
|
+
let drawing = null;
|
|
11
|
+
let settling = null;
|
|
10
12
|
const send = (message) => {
|
|
11
|
-
port.postMessage(
|
|
13
|
+
port.postMessage(message);
|
|
12
14
|
};
|
|
13
15
|
function begin(id, topic, first) {
|
|
14
16
|
const handle = observed(first, () => {
|
|
@@ -36,6 +38,7 @@ export function connectMdRuntime(port) {
|
|
|
36
38
|
for (const waiting of calls.values())
|
|
37
39
|
waiting.fail(failure);
|
|
38
40
|
calls.clear();
|
|
41
|
+
drawing?.();
|
|
39
42
|
}
|
|
40
43
|
function end(reason) {
|
|
41
44
|
if (ended !== null)
|
|
@@ -51,16 +54,10 @@ export function connectMdRuntime(port) {
|
|
|
51
54
|
for (const { handle } of observations.values())
|
|
52
55
|
handle.end();
|
|
53
56
|
observations.clear();
|
|
57
|
+
drawing?.();
|
|
54
58
|
}
|
|
55
59
|
port.addEventListener('message', (event) => {
|
|
56
|
-
const
|
|
57
|
-
if (wire === null)
|
|
58
|
-
return;
|
|
59
|
-
if (!wire.matching) {
|
|
60
|
-
refuse(PROTOCOL_MISMATCH);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const message = answer(wire.message);
|
|
60
|
+
const message = answer(event.data);
|
|
64
61
|
if (message === null)
|
|
65
62
|
return;
|
|
66
63
|
if (message.kind === 'refusal') {
|
|
@@ -68,6 +65,10 @@ export function connectMdRuntime(port) {
|
|
|
68
65
|
return;
|
|
69
66
|
}
|
|
70
67
|
if (message.kind === 'ended') {
|
|
68
|
+
for (const { topic, handle } of observations.values()) {
|
|
69
|
+
if (topic === 'member')
|
|
70
|
+
handle.receive(null);
|
|
71
|
+
}
|
|
71
72
|
end(AUTHORIZATION_ENDED);
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
@@ -82,6 +83,7 @@ export function connectMdRuntime(port) {
|
|
|
82
83
|
waiting.fail(new Error(message.message));
|
|
83
84
|
else
|
|
84
85
|
waiting.settle(begin(message.id, waiting.topic, message.value));
|
|
86
|
+
drawing?.();
|
|
85
87
|
return;
|
|
86
88
|
}
|
|
87
89
|
const called = calls.get(message.id);
|
|
@@ -121,7 +123,32 @@ export function connectMdRuntime(port) {
|
|
|
121
123
|
return new Promise((settle, fail) => {
|
|
122
124
|
opening.set(id, { topic, settle, fail });
|
|
123
125
|
send({ kind: 'observe', id, topic, input });
|
|
126
|
+
drawing?.();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function settled() {
|
|
130
|
+
if (settling !== null)
|
|
131
|
+
return settling;
|
|
132
|
+
settling = new Promise((resolve) => {
|
|
133
|
+
let moved = 0;
|
|
134
|
+
const check = () => {
|
|
135
|
+
moved += 1;
|
|
136
|
+
if (opening.size > 0)
|
|
137
|
+
return;
|
|
138
|
+
const at = moved;
|
|
139
|
+
requestAnimationFrame(() => {
|
|
140
|
+
requestAnimationFrame(() => {
|
|
141
|
+
if (moved !== at || opening.size > 0)
|
|
142
|
+
return;
|
|
143
|
+
drawing = null;
|
|
144
|
+
resolve();
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
drawing = check;
|
|
149
|
+
check();
|
|
124
150
|
});
|
|
151
|
+
return settling;
|
|
125
152
|
}
|
|
126
153
|
return {
|
|
127
154
|
rooms: () => ask('rooms', []),
|
|
@@ -161,5 +188,6 @@ export function connectMdRuntime(port) {
|
|
|
161
188
|
persistence: () => ask('persistence', []),
|
|
162
189
|
observe: ((topic, ...input) => watch(topic, input)),
|
|
163
190
|
reauthorize: () => ask('reauthorize', []),
|
|
191
|
+
settled,
|
|
164
192
|
};
|
|
165
193
|
}
|
package/dist/collection.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ import type { MdModelIdentity } from './adapter.js';
|
|
|
4
4
|
import type { Refused } from './transfer.js';
|
|
5
5
|
export declare const MD_MODEL: MdModelIdentity;
|
|
6
6
|
export type Collection = {
|
|
7
|
-
|
|
7
|
+
text: Readonly<Record<string, string>>;
|
|
8
8
|
composition: Composition;
|
|
9
|
+
document(path: string): Document | undefined;
|
|
9
10
|
};
|
|
10
11
|
export type Composition = {
|
|
11
12
|
model: ModelState;
|
|
@@ -15,16 +16,10 @@ export type Composition = {
|
|
|
15
16
|
} | null;
|
|
16
17
|
};
|
|
17
18
|
export declare function governing(composition: Composition, path: string): ModelState;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
export declare function parseCollection(text: Readonly<Record<string, string>>, composition: Composition, previous?: Previous): Collection;
|
|
23
|
-
export declare function readCollection(text: Readonly<Record<string, string>>, composition: Composition, previous?: Previous): {
|
|
24
|
-
kind: 'read';
|
|
25
|
-
collection: Collection;
|
|
26
|
-
} | Refused;
|
|
19
|
+
export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Collection;
|
|
20
|
+
export declare function passingDocument(collection: Collection, path: string): Document | undefined;
|
|
21
|
+
export declare function documentsOf(collection: Collection): Generator<readonly [string, Document]>;
|
|
22
|
+
export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Refused | null;
|
|
27
23
|
export declare function validRoot(root: unknown): root is string;
|
|
28
24
|
export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Validation;
|
|
29
|
-
export {};
|
|
30
25
|
//# sourceMappingURL=collection.d.ts.map
|
package/dist/collection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE;QAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CACnE,CAAC;AASF,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAI5E;AAID,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU,CAsBZ;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAO1F;AAED,wBAAiB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAY3F;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,GAAG,IAAI,CAOhB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAwBD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,EAAE,WAAW,GACvB,UAAU,CA0BZ"}
|
package/dist/collection.js
CHANGED
|
@@ -11,30 +11,67 @@ export function governing(composition, path) {
|
|
|
11
11
|
? composition.selection.model
|
|
12
12
|
: composition.model;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const parsedIn = new WeakMap();
|
|
15
|
+
export function collectionOf(text, composition, previous) {
|
|
16
|
+
const parsed = new Map();
|
|
17
|
+
if (previous !== undefined) {
|
|
18
|
+
for (const [path, held] of parsedIn.get(previous) ?? []) {
|
|
19
|
+
if (previous.text[path] === text[path])
|
|
20
|
+
parsed.set(path, held);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const collection = {
|
|
24
|
+
text,
|
|
25
|
+
composition,
|
|
26
|
+
document(path) {
|
|
27
|
+
const held = parsed.get(path);
|
|
28
|
+
if (held !== undefined)
|
|
29
|
+
return held ?? undefined;
|
|
30
|
+
const content = text[path];
|
|
31
|
+
if (content === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
const read = parse(content, path);
|
|
34
|
+
parsed.set(path, read.ok ? read.document : null);
|
|
35
|
+
return read.ok ? read.document : undefined;
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
parsedIn.set(collection, parsed);
|
|
39
|
+
return collection;
|
|
19
40
|
}
|
|
20
|
-
export function
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
export function passingDocument(collection, path) {
|
|
42
|
+
const held = parsedIn.get(collection)?.get(path);
|
|
43
|
+
if (held !== undefined)
|
|
44
|
+
return held ?? undefined;
|
|
45
|
+
const content = collection.text[path];
|
|
46
|
+
if (content === undefined)
|
|
47
|
+
return undefined;
|
|
48
|
+
const read = parse(content, path);
|
|
49
|
+
return read.ok ? read.document : undefined;
|
|
50
|
+
}
|
|
51
|
+
export function* documentsOf(collection) {
|
|
52
|
+
const parsed = parsedIn.get(collection);
|
|
53
|
+
for (const path of Object.keys(collection.text).sort()) {
|
|
54
|
+
const held = parsed?.get(path);
|
|
55
|
+
if (held === null)
|
|
56
|
+
continue;
|
|
57
|
+
if (held !== undefined) {
|
|
58
|
+
yield [path, held];
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const read = parse(collection.text[path], path);
|
|
62
|
+
if (read.ok)
|
|
63
|
+
yield [path, read.document];
|
|
26
64
|
}
|
|
27
|
-
return { documents, composition };
|
|
28
65
|
}
|
|
29
|
-
export function
|
|
30
|
-
const documents = {};
|
|
66
|
+
export function unreadable(text, previous) {
|
|
31
67
|
for (const path of Object.keys(text).sort()) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
68
|
+
if (previous?.[path] === text[path])
|
|
69
|
+
continue;
|
|
70
|
+
const read = parse(text[path], path);
|
|
71
|
+
if (!read.ok)
|
|
72
|
+
return { kind: 'refused', refusal: read.refusal };
|
|
36
73
|
}
|
|
37
|
-
return
|
|
74
|
+
return null;
|
|
38
75
|
}
|
|
39
76
|
export function validRoot(root) {
|
|
40
77
|
return typeof root === 'string' && normalize(root) === root;
|
package/dist/connection.d.ts
CHANGED
|
@@ -2,38 +2,39 @@ import { type TypesResult } from './model.js';
|
|
|
2
2
|
import { type Observation } from './observation.js';
|
|
3
3
|
import { type DocumentQuery, type DocumentResult, type GroupQuery, type GroupResult } from './query.js';
|
|
4
4
|
import { type SearchRequest, type SearchResult } from './search.js';
|
|
5
|
-
import { type Adapter, type Authorization, type HistoryResult, type RoomAttachment, type ProviderRefusal, type ServiceMode } from './adapter.js';
|
|
6
|
-
import { type ChatDraftSurface, type ConversationOptions, type ConversationSurface, type ConversationView } from './conversation.js';
|
|
5
|
+
import { type Adapter, type Authorization, type HistoryResult, type Member, type RoomAttachment, type ProviderRefusal, type ServiceMode } from './adapter.js';
|
|
6
|
+
import { type ChatDraftSurface, type ConversationEntry, type ConversationOptions, type ConversationSurface, type ConversationView } from './conversation.js';
|
|
7
7
|
import type { WrittenBy } from './change.js';
|
|
8
8
|
import type { CallResult, QueueEntry } from './outcome.js';
|
|
9
9
|
import { type SaveRefusal } from './save.js';
|
|
10
10
|
import { type RoomDraft, type RoomDraftWrite } from './room-draft.js';
|
|
11
11
|
import { type SyncStatus } from './status.js';
|
|
12
12
|
import { type RuntimeShell } from './durability.js';
|
|
13
|
+
import { type NarrowedView, type PortReach, type RuntimeView } from './reach.js';
|
|
13
14
|
export type AppTypedSelection = {
|
|
14
15
|
roots: readonly string[];
|
|
15
|
-
attachedModel: import('./model.js').ModelIdentity | null;
|
|
16
16
|
model: TypesResult;
|
|
17
17
|
};
|
|
18
18
|
export type AppRoom = {
|
|
19
19
|
name: string;
|
|
20
20
|
locator: string;
|
|
21
|
+
handle: string;
|
|
21
22
|
operations: import('./adapter.js').OperationScopes;
|
|
22
23
|
replica: import('./adapter.js').ReplicaAdmission;
|
|
23
|
-
attachedModel: import('./model.js').ModelIdentity | null;
|
|
24
24
|
model: TypesResult;
|
|
25
25
|
typedSelection: AppTypedSelection | null;
|
|
26
26
|
providerOwnedPaths: readonly string[];
|
|
27
27
|
roomVersion: string | null;
|
|
28
28
|
attachments: readonly RoomAttachment[];
|
|
29
|
+
documents: number;
|
|
29
30
|
synchronizationAvailable: boolean;
|
|
30
31
|
refusal: ProviderRefusal | null;
|
|
31
32
|
};
|
|
32
|
-
export type
|
|
33
|
+
export type RoomSchemas = {
|
|
33
34
|
collection: TypesResult;
|
|
34
35
|
typedSelection: TypesResult | null;
|
|
35
36
|
};
|
|
36
|
-
export type ConnectionRefusalReason = '
|
|
37
|
+
export type ConnectionRefusalReason = 'missing-required-guarantee' | 'revoked-authorization';
|
|
37
38
|
export type ConnectionRefusal = {
|
|
38
39
|
reason: ConnectionRefusalReason;
|
|
39
40
|
reauthorizationOffered: boolean;
|
|
@@ -42,9 +43,7 @@ export type ConnectionRefusal = {
|
|
|
42
43
|
export type MdRuntimeOptions = {
|
|
43
44
|
adapter: Adapter;
|
|
44
45
|
shell: RuntimeShell;
|
|
45
|
-
requiredGuarantees: readonly string[];
|
|
46
46
|
authorization?: Authorization;
|
|
47
|
-
discoveryIntervalMs?: number;
|
|
48
47
|
signal?: AbortSignal;
|
|
49
48
|
};
|
|
50
49
|
export type SaveResult = {
|
|
@@ -79,7 +78,7 @@ export type MdRuntime = {
|
|
|
79
78
|
(query: GroupQuery): Promise<GroupResult>;
|
|
80
79
|
};
|
|
81
80
|
search(request: SearchRequest): Promise<SearchResult>;
|
|
82
|
-
types(locator: string):
|
|
81
|
+
types(locator: string): RoomSchemas;
|
|
83
82
|
roomDraft: RoomDraftSurface;
|
|
84
83
|
conversation: ConversationSurface;
|
|
85
84
|
chatDraft: ChatDraftSurface;
|
|
@@ -96,20 +95,21 @@ export type MdRuntime = {
|
|
|
96
95
|
(topic: 'storage-loss'): Promise<Observation<string | null>>;
|
|
97
96
|
(topic: 'sync-status'): Promise<Observation<SyncStatus>>;
|
|
98
97
|
(topic: 'service-mode'): Promise<Observation<ServiceMode>>;
|
|
98
|
+
(topic: 'member'): Promise<Observation<Member | null>>;
|
|
99
99
|
(topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
|
|
100
100
|
(topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
|
|
101
101
|
(topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
|
|
102
102
|
(topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
|
|
103
103
|
(topic: 'presentation', app: string): Promise<Observation<unknown>>;
|
|
104
104
|
(topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
|
|
105
|
+
(topic: 'conversations'): Promise<Observation<readonly ConversationEntry[]>>;
|
|
105
106
|
};
|
|
106
107
|
reauthorize(): Promise<void>;
|
|
107
108
|
};
|
|
108
|
-
export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation';
|
|
109
|
-
export type ComposedRuntime = {
|
|
110
|
-
md: MdRuntime;
|
|
109
|
+
export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'member' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation' | 'conversations';
|
|
110
|
+
export type ComposedRuntime = RuntimeView & {
|
|
111
111
|
stop(): Promise<void>;
|
|
112
|
-
|
|
112
|
+
within(reach: PortReach | null): NarrowedView;
|
|
113
113
|
};
|
|
114
114
|
export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
|
|
115
115
|
//# sourceMappingURL=connection.d.ts.map
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|