@agentshouse/mdruntime 0.1.0-cd1c52311c638 → 0.1.0-cd3ee807e46ae
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 +75 -26
- package/README.md +11 -1
- package/dist/adapter.d.ts +35 -11
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attempt.d.ts +16 -0
- package/dist/attempt.d.ts.map +1 -0
- package/dist/attempt.js +57 -0
- package/dist/binary.d.ts +23 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +8 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +5 -8
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +8 -7
- package/dist/change.d.ts +11 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +26 -1
- package/dist/chat/acts.d.ts +34 -0
- package/dist/chat/acts.d.ts.map +1 -0
- package/dist/chat/acts.js +36 -0
- package/dist/chat/context.d.ts +3 -0
- package/dist/chat/context.d.ts.map +1 -0
- package/dist/chat/context.js +10 -0
- package/dist/chat/input.d.ts +9 -0
- package/dist/chat/input.d.ts.map +1 -0
- package/dist/chat/input.js +99 -0
- package/dist/chat/kit.d.ts +60 -0
- package/dist/chat/kit.d.ts.map +1 -0
- package/dist/chat/kit.js +123 -0
- package/dist/chat/lasting.d.ts +6 -0
- package/dist/chat/lasting.d.ts.map +1 -0
- package/dist/chat/lasting.js +19 -0
- package/dist/chat/list.d.ts +20 -0
- package/dist/chat/list.d.ts.map +1 -0
- package/dist/chat/list.js +59 -0
- package/dist/chat/markdown.d.ts +19 -0
- package/dist/chat/markdown.d.ts.map +1 -0
- package/dist/chat/markdown.js +187 -0
- package/dist/chat/message.d.ts +6 -0
- package/dist/chat/message.d.ts.map +1 -0
- package/dist/chat/message.js +192 -0
- package/dist/chat/messages.d.ts +21 -0
- package/dist/chat/messages.d.ts.map +1 -0
- package/dist/chat/messages.js +151 -0
- package/dist/chat/name.d.ts +6 -0
- package/dist/chat/name.d.ts.map +1 -0
- package/dist/chat/name.js +37 -0
- package/dist/chat/opened.d.ts +11 -0
- package/dist/chat/opened.d.ts.map +1 -0
- package/dist/chat/opened.js +17 -0
- package/dist/chat/overlay.d.ts +31 -0
- package/dist/chat/overlay.d.ts.map +1 -0
- package/dist/chat/overlay.js +97 -0
- package/dist/chat/parts.d.ts +57 -0
- package/dist/chat/parts.d.ts.map +1 -0
- package/dist/chat/parts.js +119 -0
- package/dist/chat/process.d.ts +20 -0
- package/dist/chat/process.d.ts.map +1 -0
- package/dist/chat/process.js +32 -0
- package/dist/chat/provider.d.ts +63 -0
- package/dist/chat/provider.d.ts.map +1 -0
- package/dist/chat/provider.js +645 -0
- package/dist/chat/question.d.ts +9 -0
- package/dist/chat/question.d.ts.map +1 -0
- package/dist/chat/question.js +80 -0
- package/dist/chat/questions.d.ts +31 -0
- package/dist/chat/questions.d.ts.map +1 -0
- package/dist/chat/questions.js +111 -0
- package/dist/chat/read.d.ts +5 -0
- package/dist/chat/read.d.ts.map +1 -0
- package/dist/chat/read.js +13 -0
- package/dist/chat/ready.d.ts +33 -0
- package/dist/chat/ready.d.ts.map +1 -0
- package/dist/chat/ready.js +91 -0
- package/dist/chat/style.d.ts +4 -0
- package/dist/chat/style.d.ts.map +1 -0
- package/dist/chat/style.js +302 -0
- package/dist/chat.d.ts +14 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +8 -0
- package/dist/client.d.ts +10 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -1
- package/dist/connection.d.ts +12 -6
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +239 -46
- package/dist/conversation.d.ts +9 -2
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +45 -6
- package/dist/expectation.d.ts +21 -0
- package/dist/expectation.d.ts.map +1 -0
- package/dist/expectation.js +70 -0
- package/dist/host.d.ts +1 -1
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +6 -2
- package/dist/identity.d.ts +2 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +6 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/memory.d.ts +3 -3
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +31 -11
- package/dist/outcome.d.ts +7 -1
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +6 -0
- package/dist/overlay.d.ts +13 -2
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +56 -22
- package/dist/query.d.ts +2 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/reach.d.ts +2 -0
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +25 -3
- package/dist/react.d.ts +2 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/read-side.d.ts.map +1 -1
- package/dist/read-side.js +9 -2
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +12 -17
- package/dist/replica.d.ts +5 -2
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +33 -28
- package/dist/room-draft.d.ts +19 -2
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +119 -1
- package/dist/rows.d.ts +3 -1
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +3 -1
- package/dist/save.d.ts +24 -0
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +304 -14
- package/dist/store.d.ts +13 -12
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +150 -157
- package/dist/wire.d.ts +3 -0
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +3 -0
- package/package.json +22 -14
- package/dist/attachment.d.ts +0 -3
- package/dist/attachment.d.ts.map +0 -1
- package/dist/attachment.js +0 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ExpectedOf<E extends {
|
|
2
|
+
readonly key: string;
|
|
3
|
+
}> = E | readonly E[] | null;
|
|
4
|
+
export type Expecting<E extends {
|
|
5
|
+
readonly key: string;
|
|
6
|
+
}> = {
|
|
7
|
+
subscribe(listener: () => void): () => void;
|
|
8
|
+
version(): number;
|
|
9
|
+
begin(): number;
|
|
10
|
+
expect(act: number, expected: ExpectedOf<E>, settled?: (one: E) => boolean): void;
|
|
11
|
+
drop(act: number): void;
|
|
12
|
+
heard(shown: (one: E) => boolean): void;
|
|
13
|
+
drawn(): readonly E[];
|
|
14
|
+
};
|
|
15
|
+
export declare function expectedList<E extends {
|
|
16
|
+
readonly key: string;
|
|
17
|
+
}>(expected: ExpectedOf<E>): readonly E[];
|
|
18
|
+
export declare function expecting<E extends {
|
|
19
|
+
readonly key: string;
|
|
20
|
+
}>(): Expecting<E>;
|
|
21
|
+
//# sourceMappingURL=expectation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expectation.d.ts","sourceRoot":"","sources":["../src/expectation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;AAErF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,IAAI;IAC1D,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,OAAO,IAAI,MAAM,CAAC;IAClB,KAAK,IAAI,MAAM,CAAC;IAChB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAClF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IACxC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC;CACvB,CAAC;AAIF,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC7D,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GACtB,SAAS,CAAC,EAAE,CAGd;AAwBD,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CA4C5E"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export function expectedList(expected) {
|
|
2
|
+
if (expected === null)
|
|
3
|
+
return [];
|
|
4
|
+
return 'key' in expected ? [expected] : expected;
|
|
5
|
+
}
|
|
6
|
+
function superseded(entries, at) {
|
|
7
|
+
const key = entries[at]?.expectation.key;
|
|
8
|
+
return entries.slice(at + 1).some((later) => later.expectation.key === key);
|
|
9
|
+
}
|
|
10
|
+
function unended(entries, ends) {
|
|
11
|
+
const ended = new Set();
|
|
12
|
+
const kept = [];
|
|
13
|
+
for (const one of [...entries].reverse()) {
|
|
14
|
+
if (ended.has(one.expectation.key))
|
|
15
|
+
continue;
|
|
16
|
+
if (ends(one.expectation))
|
|
17
|
+
ended.add(one.expectation.key);
|
|
18
|
+
else
|
|
19
|
+
kept.unshift(one);
|
|
20
|
+
}
|
|
21
|
+
return kept;
|
|
22
|
+
}
|
|
23
|
+
export function expecting() {
|
|
24
|
+
let entries = [];
|
|
25
|
+
let version = 0;
|
|
26
|
+
let acts = 0;
|
|
27
|
+
const listeners = new Set();
|
|
28
|
+
const set = (next) => {
|
|
29
|
+
if (next.length === entries.length && next.every((one, at) => one === entries[at]))
|
|
30
|
+
return;
|
|
31
|
+
entries = next;
|
|
32
|
+
version += 1;
|
|
33
|
+
for (const listener of listeners)
|
|
34
|
+
listener();
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
subscribe(listener) {
|
|
38
|
+
listeners.add(listener);
|
|
39
|
+
return () => {
|
|
40
|
+
listeners.delete(listener);
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
version: () => version,
|
|
44
|
+
begin() {
|
|
45
|
+
acts += 1;
|
|
46
|
+
return acts;
|
|
47
|
+
},
|
|
48
|
+
expect(act, expected, settled = () => false) {
|
|
49
|
+
const fresh = expectedList(expected);
|
|
50
|
+
if (fresh.length === 0)
|
|
51
|
+
return;
|
|
52
|
+
const keys = new Set(fresh.map((one) => one.key));
|
|
53
|
+
const kept = entries.filter((one) => one.act !== act || !keys.has(one.expectation.key));
|
|
54
|
+
const over = new Set(kept.map((one) => one.expectation.key));
|
|
55
|
+
set([
|
|
56
|
+
...kept,
|
|
57
|
+
...fresh
|
|
58
|
+
.filter((one) => over.has(one.key) || !settled(one))
|
|
59
|
+
.map((expectation) => ({ act, expectation })),
|
|
60
|
+
]);
|
|
61
|
+
},
|
|
62
|
+
drop(act) {
|
|
63
|
+
set(entries.filter((one) => one.act !== act));
|
|
64
|
+
},
|
|
65
|
+
heard(shown) {
|
|
66
|
+
set(unended(entries, shown));
|
|
67
|
+
},
|
|
68
|
+
drawn: () => entries.flatMap((one, at) => (superseded(entries, at) ? [] : [one.expectation])),
|
|
69
|
+
};
|
|
70
|
+
}
|
package/dist/host.d.ts
CHANGED
|
@@ -15,6 +15,6 @@ export type MdRuntimeHost = {
|
|
|
15
15
|
};
|
|
16
16
|
export declare function serveMdRuntime(options: MdRuntimeHostOptions): MdRuntimeHost;
|
|
17
17
|
export type { PortReach, ReachedDocument } from './reach.js';
|
|
18
|
-
export { STORE_SCHEMA } from './store.js';
|
|
18
|
+
export { AUTHORED_SCHEMA, STORE_SCHEMA } from './store.js';
|
|
19
19
|
export type { RuntimePort } from './wire.js';
|
|
20
20
|
//# sourceMappingURL=host.d.ts.map
|
package/dist/host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,EAGL,KAAK,WAAW,EAOjB,MAAM,WAAW,CAAC;AAInB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1F,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAsFF,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAkH3E;AAED,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/host.js
CHANGED
|
@@ -17,6 +17,10 @@ function answered(md, app, writtenBy, member, input) {
|
|
|
17
17
|
return md.save(input[0], input[1], writtenBy);
|
|
18
18
|
case 'history':
|
|
19
19
|
return md.history(input[0], input[1], input[2]);
|
|
20
|
+
case 'binaryFile.read':
|
|
21
|
+
return md.binaryFile.read(input[0], input[1], input[2]);
|
|
22
|
+
case 'binaryFile.readReference':
|
|
23
|
+
return md.binaryFile.readReference(input[0]);
|
|
20
24
|
case 'call':
|
|
21
25
|
return md.call(input[0], input[1]);
|
|
22
26
|
case 'reached':
|
|
@@ -58,7 +62,7 @@ function answered(md, app, writtenBy, member, input) {
|
|
|
58
62
|
case 'conversation.delete':
|
|
59
63
|
return md.conversation.delete(input[0]);
|
|
60
64
|
case 'chatDraft.write':
|
|
61
|
-
return md.chatDraft.write(input[0], input[1]);
|
|
65
|
+
return md.chatDraft.write(input[0], input[1], input[2]);
|
|
62
66
|
case 'chatDraft.discard':
|
|
63
67
|
return md.chatDraft.discard(input[0]);
|
|
64
68
|
}
|
|
@@ -172,4 +176,4 @@ export function serveMdRuntime(options) {
|
|
|
172
176
|
},
|
|
173
177
|
};
|
|
174
178
|
}
|
|
175
|
-
export { STORE_SCHEMA } from './store.js';
|
|
179
|
+
export { AUTHORED_SCHEMA, STORE_SCHEMA } from './store.js';
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare function changeBatchIdentity(at?: number): string;
|
|
2
2
|
export declare function roomDraftRevision(): string;
|
|
3
|
+
export declare function chatDraftRevision(): string;
|
|
3
4
|
export declare function transferIdentity(): string;
|
|
5
|
+
export declare function binaryLocalId(): string;
|
|
4
6
|
//# sourceMappingURL=identity.d.ts.map
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE;AAQD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE;AAQD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/identity.js
CHANGED
|
@@ -18,6 +18,12 @@ function randomIdentity() {
|
|
|
18
18
|
export function roomDraftRevision() {
|
|
19
19
|
return randomIdentity();
|
|
20
20
|
}
|
|
21
|
+
export function chatDraftRevision() {
|
|
22
|
+
return randomIdentity();
|
|
23
|
+
}
|
|
21
24
|
export function transferIdentity() {
|
|
22
25
|
return randomIdentity();
|
|
23
26
|
}
|
|
27
|
+
export function binaryLocalId() {
|
|
28
|
+
return randomIdentity();
|
|
29
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
export type { AcceptedMessage, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationAgents, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, HeldRoom, ListedConversation, MdModelIdentity, Member, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization,
|
|
1
|
+
export type { AcceptedMessage, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BinaryFile, BinaryRequest, BinaryResult, ReferrerScope, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationAgents, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, HeldRoom, ListedConversation, MdModelIdentity, Member, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomModels, RoomNotReadable, RoomStream, RoomStreamEvent, RoomVersionAt, ServiceMode, ServiceModeSignal, TransportUncertainty, TurnContext, TurnOperation, TypedSelection, } from './adapter.js';
|
|
2
2
|
export type { Change, ChangeBatch, Precondition, WrittenBy } from './change.js';
|
|
3
|
-
export type { ChatDraft, ChatDraftSurface, ConversationEntry, ConversationOptions, ConversationState, ConversationSurface, ConversationView, RunningTurn, } from './conversation.js';
|
|
3
|
+
export type { ChatDraft, ChatDraftSurface, ConversationAgent, ConversationEntry, ConversationOptions, ConversationState, ConversationSurface, ConversationView, RunningTurn, } from './conversation.js';
|
|
4
4
|
export type { ChatDraftFile, FileDeclaration } from './file.js';
|
|
5
|
-
export type { AppRoom, AppTypedSelection, ConnectionRefusal, ConnectionRefusalCode, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, RoomDraftSurface, RoomSchemas, SavedRoomDraft, SaveResult, } from './connection.js';
|
|
5
|
+
export type { AppRoom, AppTypedSelection, BinaryFileSurface, ConnectionRefusal, ConnectionRefusalCode, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, RoomDraftSurface, RoomSchemas, SavedRoomDraft, SaveResult, } from './connection.js';
|
|
6
6
|
export type { Observation } from './observation.js';
|
|
7
|
-
export type { CallResult, Failure, HistoryAnswer, QueueEntry, Submission } from './outcome.js';
|
|
7
|
+
export type { BinaryAnswer, CallResult, Failure, HistoryAnswer, QueueEntry, Submission, } from './outcome.js';
|
|
8
|
+
export type { BinaryFileRecord, BinaryReference } from './binary.js';
|
|
8
9
|
export type { RuntimeError } from './failure.js';
|
|
9
10
|
export type { ChangedPart, FieldValue, ReturnReason, RoomDraft, RoomDraftCreation, RoomDraftParts, RoomDraftWrite, } from './room-draft.js';
|
|
10
11
|
export type { SaveRefusal } from './save.js';
|
|
11
12
|
export type { DocumentHit, DocumentPart, MessageHit, SearchRequest, SearchResult, } from './search.js';
|
|
13
|
+
export { departure } from './change.js';
|
|
12
14
|
export { changeBatchIdentity } from './identity.js';
|
|
15
|
+
export { attempts, identities, intentOf, type Answered, type Attempt, type Attempts, type Identities, } from './attempt.js';
|
|
16
|
+
export { expectedList, expecting, type ExpectedOf, type Expecting } from './expectation.js';
|
|
13
17
|
export type { RuntimeShell } from './durability.js';
|
|
14
18
|
export type { AttentionEntry, SyncStatus } from './status.js';
|
|
15
19
|
export type { Backlink, Direction, DocumentQuery, DocumentResult, Filter, GroupQuery, GroupResult, Key, LocalQuery, OrderOptions, Predicate, QueryDocument, QueryGroup, QueryResult, Related, Select, Value, Where, } from './query.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
package/dist/memory.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ModelResult } from './model.js';
|
|
2
|
-
import { type AcceptedMessage, type ActionResult, type Adapter, type Capability, type ConversationAction, type ConversationEvent, type DiscoveredRoom, type HeadChange, type ListedConversation, type Member, type ProviderLimit, type Retention, type
|
|
2
|
+
import { type AcceptedMessage, type ActionResult, type Adapter, type BinaryFile, type Capability, type ConversationAction, type ConversationEvent, type DiscoveredRoom, type HeadChange, type ListedConversation, type Member, type ProviderLimit, type Retention, type ServiceMode } from './adapter.js';
|
|
3
3
|
export type MemoryRoom = DiscoveredRoom & {
|
|
4
4
|
model?: ModelResult;
|
|
5
5
|
selectionModel?: ModelResult;
|
|
6
6
|
documents?: Readonly<Record<string, string>>;
|
|
7
7
|
revisions?: Readonly<Record<string, string>>;
|
|
8
8
|
changes?: Readonly<Record<string, HeadChange>>;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
binaryFiles?: Readonly<Record<string, BinaryFile>>;
|
|
10
|
+
blobs?: Readonly<Record<string, Blob>>;
|
|
11
11
|
};
|
|
12
12
|
export type MemoryConversation = {
|
|
13
13
|
conversation: string;
|
package/dist/memory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/memory.js
CHANGED
|
@@ -114,24 +114,23 @@ export function createMemoryAdapter(options = {}) {
|
|
|
114
114
|
const size = pageSize ?? paths.length;
|
|
115
115
|
const taken = paths.slice(from, from + size);
|
|
116
116
|
const next = from + taken.length;
|
|
117
|
-
const targets = opening ? (room.
|
|
117
|
+
const targets = opening ? Object.keys(room.binaryFiles ?? {}) : [];
|
|
118
118
|
return {
|
|
119
119
|
kind: 'bootstrap',
|
|
120
120
|
roomVersion: room.roomVersion,
|
|
121
121
|
...(opening ? { models: modelsOf(room) } : {}),
|
|
122
122
|
documents: named(room.documents ?? {}, taken),
|
|
123
|
-
revisions: named(room.revisions ?? {}, taken),
|
|
123
|
+
revisions: named(room.revisions ?? {}, [...taken, ...targets]),
|
|
124
124
|
changes: named(room.changes ?? {}, [...taken, ...targets]),
|
|
125
|
-
|
|
126
|
-
...(opening && room.attachments !== undefined ? { attachments: room.attachments } : {}),
|
|
125
|
+
binaryFiles: named(room.binaryFiles ?? {}, targets),
|
|
127
126
|
...(next < paths.length ? { pageToken: taken.at(-1) } : {}),
|
|
128
127
|
};
|
|
129
128
|
}
|
|
130
129
|
function advancement(room, from, at) {
|
|
131
130
|
const current = room.documents ?? {};
|
|
132
131
|
const previous = from.documents ?? {};
|
|
133
|
-
const currentTargets = new Set(room.
|
|
134
|
-
const previousTargets = new Set(from.
|
|
132
|
+
const currentTargets = new Set(Object.keys(room.binaryFiles ?? {}));
|
|
133
|
+
const previousTargets = new Set(Object.keys(from.binaryFiles ?? {}));
|
|
135
134
|
const headMoved = (path) => room.revisions?.[path] !== from.revisions?.[path] ||
|
|
136
135
|
!sameChange(room.changes?.[path], from.changes?.[path]);
|
|
137
136
|
const changed = Object.keys(current)
|
|
@@ -147,24 +146,21 @@ export function createMemoryAdapter(options = {}) {
|
|
|
147
146
|
const targets = opening
|
|
148
147
|
? [...currentTargets].filter((target) => !previousTargets.has(target) || headMoved(target))
|
|
149
148
|
: [];
|
|
150
|
-
const attachments = room.attachments ?? [];
|
|
151
|
-
const declared = opening && JSON.stringify(attachments) !== JSON.stringify(from.attachments ?? []);
|
|
152
149
|
const models = opening ? changedModels(room, from) : undefined;
|
|
153
150
|
return {
|
|
154
151
|
kind: 'net-advancement',
|
|
155
152
|
roomVersion: room.roomVersion,
|
|
156
153
|
...(models === undefined ? {} : { models }),
|
|
157
154
|
documents: named(current, taken),
|
|
158
|
-
revisions: named(room.revisions ?? {}, taken),
|
|
155
|
+
revisions: named(room.revisions ?? {}, [...taken, ...targets]),
|
|
159
156
|
changes: named(room.changes ?? {}, [...taken, ...targets]),
|
|
160
|
-
|
|
157
|
+
binaryFiles: named(room.binaryFiles ?? {}, targets),
|
|
161
158
|
removals: opening
|
|
162
159
|
? [
|
|
163
160
|
...Object.keys(previous).filter((path) => !(path in current) && !currentTargets.has(path)),
|
|
164
161
|
...[...previousTargets].filter((target) => !currentTargets.has(target) && !(target in current)),
|
|
165
162
|
].sort()
|
|
166
163
|
: [],
|
|
167
|
-
...(declared ? { attachments } : {}),
|
|
168
164
|
...(pageToken === undefined ? {} : { pageToken }),
|
|
169
165
|
};
|
|
170
166
|
}
|
|
@@ -447,6 +443,30 @@ export function createMemoryAdapter(options = {}) {
|
|
|
447
443
|
};
|
|
448
444
|
}, request);
|
|
449
445
|
},
|
|
446
|
+
async binary(_authorization, request) {
|
|
447
|
+
return resolveScript(scripts.binary, () => {
|
|
448
|
+
if (request.kind === 'reference') {
|
|
449
|
+
return { kind: 'rejected', code: 'unscripted-binary', fields: {}, retryable: false };
|
|
450
|
+
}
|
|
451
|
+
const room = rooms.find((entry) => entry.locator === request.locator);
|
|
452
|
+
if (room === undefined)
|
|
453
|
+
return { kind: 'room-not-readable', locator: request.locator };
|
|
454
|
+
const blob = room.blobs?.[request.path];
|
|
455
|
+
return blob === undefined
|
|
456
|
+
? { kind: 'rejected', code: 'file_not_found', fields: {}, retryable: false }
|
|
457
|
+
: { kind: 'binary', blob };
|
|
458
|
+
}, request);
|
|
459
|
+
},
|
|
460
|
+
referrerScope(referrer) {
|
|
461
|
+
if (typeof referrer !== 'object' || referrer === null)
|
|
462
|
+
return null;
|
|
463
|
+
const { room, path, message } = referrer;
|
|
464
|
+
if (typeof message === 'string')
|
|
465
|
+
return { kind: 'conversations' };
|
|
466
|
+
if (typeof room !== 'string')
|
|
467
|
+
return null;
|
|
468
|
+
return { kind: 'room', locator: room, ...(typeof path === 'string' ? { path } : {}) };
|
|
469
|
+
},
|
|
450
470
|
async action(_authorization, request) {
|
|
451
471
|
return resolveScript(scripts.action, () => {
|
|
452
472
|
if (request.name.startsWith('conversation.'))
|
package/dist/outcome.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActionResult, AdapterFailure, HistoryResult, ProviderRefusal, RoomVersionAt, ScopedRefusal } from './adapter.js';
|
|
1
|
+
import type { ActionResult, AdapterFailure, BinaryResult, HistoryResult, ProviderRefusal, RoomVersionAt, ScopedRefusal } from './adapter.js';
|
|
2
2
|
import type { ChangeBatch } from './change.js';
|
|
3
3
|
type Refused<Kind extends string> = ProviderRefusal & {
|
|
4
4
|
kind: Kind;
|
|
@@ -14,6 +14,12 @@ export type CallResult = {
|
|
|
14
14
|
export type HistoryAnswer = Exclude<HistoryResult, {
|
|
15
15
|
kind: Failure['kind'];
|
|
16
16
|
}> | Failure;
|
|
17
|
+
export type BinaryAnswer = {
|
|
18
|
+
kind: 'binary';
|
|
19
|
+
blob: Blob;
|
|
20
|
+
} | Refused<'rejected'> | Refused<'absent'> | Failure;
|
|
21
|
+
export declare function absentBinary(path: string): BinaryAnswer;
|
|
22
|
+
export declare function binaryAnswer(result: BinaryResult): BinaryAnswer;
|
|
17
23
|
export declare const UNCERTAIN: Failure;
|
|
18
24
|
export declare function undeclared(name: string): CallResult;
|
|
19
25
|
export declare function failure(result: AdapterFailure): Failure;
|
package/dist/outcome.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,KAAK,OAAO,CAAC,IAAI,SAAS,MAAM,IAAI,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,OAAO,GACf,OAAO,CAAC,uBAAuB,CAAC,GAChC,OAAO,CAAC,uBAAuB,CAAC,GAChC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,aAAa,CAAC;AAElB,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,aAAa,CAAA;CAAE,GACvD,OAAO,CAAC,UAAU,CAAC,GACnB,OAAO,CAAC,YAAY,CAAC,GACrB,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC;AAExF,eAAO,MAAM,SAAS,EAAE,OAKvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEnD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAiBvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAE7D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAIlE;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,CACvD,UAAU,GACV;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,KAAK,OAAO,CAAC,IAAI,SAAS,MAAM,IAAI,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,OAAO,GACf,OAAO,CAAC,uBAAuB,CAAC,GAChC,OAAO,CAAC,uBAAuB,CAAC,GAChC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,aAAa,CAAC;AAElB,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,aAAa,CAAA;CAAE,GACvD,OAAO,CAAC,UAAU,CAAC,GACnB,OAAO,CAAC,YAAY,CAAC,GACrB,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC;AAExF,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC9B,OAAO,CAAC,UAAU,CAAC,GACnB,OAAO,CAAC,QAAQ,CAAC,GACjB,OAAO,CAAC;AAEZ,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D;AAED,eAAO,MAAM,SAAS,EAAE,OAKvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEnD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAiBvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAE7D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAIlE;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,CAAA;CAAE,GAC3C;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,CACvD,UAAU,GACV;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAC/D,CAAC"}
|
package/dist/outcome.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export function absentBinary(path) {
|
|
2
|
+
return { kind: 'absent', code: 'binary-file-absent', fields: { path }, retryable: false };
|
|
3
|
+
}
|
|
4
|
+
export function binaryAnswer(result) {
|
|
5
|
+
return result.kind === 'binary' || result.kind === 'rejected' ? result : failure(result);
|
|
6
|
+
}
|
|
1
7
|
export const UNCERTAIN = {
|
|
2
8
|
kind: 'transport-uncertainty',
|
|
3
9
|
code: 'transport-uncertainty',
|
package/dist/overlay.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import type { HeadChange } from './adapter.js';
|
|
1
|
+
import type { BinaryFile, HeadChange } from './adapter.js';
|
|
2
2
|
import type { ChangeBatch } from './change.js';
|
|
3
3
|
export type Heads = {
|
|
4
4
|
revisions: Readonly<Record<string, string>>;
|
|
5
5
|
changes: Readonly<Record<string, HeadChange>>;
|
|
6
6
|
};
|
|
7
|
+
export type HeldBinary = ({
|
|
8
|
+
readonly state: 'accepted';
|
|
9
|
+
} & BinaryFile) | {
|
|
10
|
+
readonly state: 'pending';
|
|
11
|
+
readonly localId: string;
|
|
12
|
+
readonly byteLength: number;
|
|
13
|
+
readonly mediaType: string;
|
|
14
|
+
readonly sha256: string;
|
|
15
|
+
};
|
|
7
16
|
export type Layer = Heads & {
|
|
8
17
|
documents: Readonly<Record<string, string>>;
|
|
9
|
-
|
|
18
|
+
binaries: Readonly<Record<string, HeldBinary>>;
|
|
10
19
|
};
|
|
20
|
+
export declare function acceptedBinaries(files: Readonly<Record<string, BinaryFile>>): Record<string, HeldBinary>;
|
|
21
|
+
export declare function sameBinary(left: HeldBinary | undefined, right: HeldBinary | undefined): boolean;
|
|
11
22
|
export declare function sameChange(left: HeadChange | undefined, right: HeadChange | undefined): boolean;
|
|
12
23
|
export declare function overlay(base: Layer, queue: readonly ChangeBatch[], unapplied?: () => void): Layer;
|
|
13
24
|
export declare function sameLayerText(left: Layer, right: Layer): boolean;
|
package/dist/overlay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAU,WAAW,EAAgB,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,UAAU,CAAC,GAC7C;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG;IAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAI5B;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAW/F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQ/F;AAoKD,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,KAAK,CAmBjG;AAQD,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAOhE;AAiCD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,YAAY,EAAE,KAAK,EACnB,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,eAAe,EAAE,KAAK,GACrB,KAAK,CAyFP"}
|
package/dist/overlay.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { apply, parse, serialize } from '@agentshouse/mdmodel';
|
|
2
|
+
export function acceptedBinaries(files) {
|
|
3
|
+
return Object.fromEntries(Object.entries(files).map(([path, file]) => [path, { state: 'accepted', ...file }]));
|
|
4
|
+
}
|
|
5
|
+
export function sameBinary(left, right) {
|
|
6
|
+
if (left === undefined || right === undefined)
|
|
7
|
+
return left === right;
|
|
8
|
+
return (left.state === right.state &&
|
|
9
|
+
left.byteLength === right.byteLength &&
|
|
10
|
+
left.mediaType === right.mediaType &&
|
|
11
|
+
left.sha256 === right.sha256 &&
|
|
12
|
+
(left.state === 'accepted'
|
|
13
|
+
? right.state === 'accepted' && left.fileRef === right.fileRef
|
|
14
|
+
: right.state === 'pending' && left.localId === right.localId));
|
|
15
|
+
}
|
|
2
16
|
export function sameChange(left, right) {
|
|
3
17
|
if (left === undefined || right === undefined)
|
|
4
18
|
return left === right;
|
|
@@ -92,8 +106,9 @@ function relocate(staged, from, to) {
|
|
|
92
106
|
delete staged.documents[from];
|
|
93
107
|
staged.documents[to] = text;
|
|
94
108
|
}
|
|
95
|
-
else if (staged.
|
|
96
|
-
staged.
|
|
109
|
+
else if (staged.binaries[from] !== undefined) {
|
|
110
|
+
staged.binaries[to] = staged.binaries[from];
|
|
111
|
+
delete staged.binaries[from];
|
|
97
112
|
}
|
|
98
113
|
else {
|
|
99
114
|
return false;
|
|
@@ -116,7 +131,7 @@ function erase(staged, path) {
|
|
|
116
131
|
delete staged.documents[path];
|
|
117
132
|
delete staged.revisions[path];
|
|
118
133
|
delete staged.changes[path];
|
|
119
|
-
staged.
|
|
134
|
+
delete staged.binaries[path];
|
|
120
135
|
}
|
|
121
136
|
function stage(staged, change, priors) {
|
|
122
137
|
if (change.kind === 'field' || change.kind === 'section' || change.kind === 'preamble') {
|
|
@@ -134,6 +149,20 @@ function stage(staged, change, priors) {
|
|
|
134
149
|
staged.documents[change.path] = change.content;
|
|
135
150
|
return true;
|
|
136
151
|
}
|
|
152
|
+
if (change.kind === 'binary') {
|
|
153
|
+
if (staged.documents[change.path] !== undefined)
|
|
154
|
+
return false;
|
|
155
|
+
staged.binaries[change.path] = {
|
|
156
|
+
state: 'pending',
|
|
157
|
+
localId: change.localId,
|
|
158
|
+
byteLength: change.byteLength,
|
|
159
|
+
mediaType: change.mediaType,
|
|
160
|
+
sha256: change.sha256,
|
|
161
|
+
};
|
|
162
|
+
delete staged.revisions[change.path];
|
|
163
|
+
delete staged.changes[change.path];
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
137
166
|
if (change.kind === 'move') {
|
|
138
167
|
return relocate(staged, change.path, change.to);
|
|
139
168
|
}
|
|
@@ -143,7 +172,7 @@ function stage(staged, change, priors) {
|
|
|
143
172
|
export function overlay(base, queue, unapplied) {
|
|
144
173
|
const staged = {
|
|
145
174
|
documents: { ...base.documents },
|
|
146
|
-
|
|
175
|
+
binaries: { ...base.binaries },
|
|
147
176
|
revisions: { ...base.revisions },
|
|
148
177
|
changes: { ...base.changes },
|
|
149
178
|
};
|
|
@@ -156,7 +185,7 @@ export function overlay(base, queue, unapplied) {
|
|
|
156
185
|
}
|
|
157
186
|
return {
|
|
158
187
|
documents: staged.documents,
|
|
159
|
-
|
|
188
|
+
binaries: staged.binaries,
|
|
160
189
|
revisions: staged.revisions,
|
|
161
190
|
changes: staged.changes,
|
|
162
191
|
};
|
|
@@ -168,8 +197,12 @@ export function sameLayerText(left, right) {
|
|
|
168
197
|
const paths = Object.keys(left.documents);
|
|
169
198
|
return (paths.length === Object.keys(right.documents).length &&
|
|
170
199
|
paths.every((path) => left.documents[path] === right.documents[path]) &&
|
|
171
|
-
left.
|
|
172
|
-
|
|
200
|
+
sameBinaries(left.binaries, right.binaries));
|
|
201
|
+
}
|
|
202
|
+
function sameBinaries(left, right) {
|
|
203
|
+
const paths = Object.keys(left);
|
|
204
|
+
return (paths.length === Object.keys(right).length &&
|
|
205
|
+
paths.every((path) => sameBinary(left[path], right[path])));
|
|
173
206
|
}
|
|
174
207
|
function replayHeads(base, queue) {
|
|
175
208
|
const heads = { revisions: { ...base.revisions }, changes: { ...base.changes } };
|
|
@@ -182,6 +215,10 @@ function replayHeads(base, queue) {
|
|
|
182
215
|
else if (change.kind === 'create') {
|
|
183
216
|
delete heads.changes[change.path];
|
|
184
217
|
}
|
|
218
|
+
else if (change.kind === 'binary') {
|
|
219
|
+
delete heads.revisions[change.path];
|
|
220
|
+
delete heads.changes[change.path];
|
|
221
|
+
}
|
|
185
222
|
else if (change.kind === 'move') {
|
|
186
223
|
moveHead(heads, change.path, change.to);
|
|
187
224
|
}
|
|
@@ -197,7 +234,7 @@ export function overlayChanged(base, queue, previousBase, previousQueue, previou
|
|
|
197
234
|
sameLayerText(base, previousBase)) {
|
|
198
235
|
return {
|
|
199
236
|
documents: previousVisible.documents,
|
|
200
|
-
|
|
237
|
+
binaries: previousVisible.binaries,
|
|
201
238
|
...replayHeads(base, queue),
|
|
202
239
|
};
|
|
203
240
|
}
|
|
@@ -209,14 +246,14 @@ export function overlayChanged(base, queue, previousBase, previousQueue, previou
|
|
|
209
246
|
...Object.keys(previousBase.revisions),
|
|
210
247
|
...Object.keys(base.changes),
|
|
211
248
|
...Object.keys(previousBase.changes),
|
|
212
|
-
...base.
|
|
213
|
-
...previousBase.
|
|
249
|
+
...Object.keys(base.binaries),
|
|
250
|
+
...Object.keys(previousBase.binaries),
|
|
214
251
|
]);
|
|
215
252
|
for (const path of paths) {
|
|
216
253
|
if (base.documents[path] !== previousBase.documents[path] ||
|
|
217
254
|
base.revisions[path] !== previousBase.revisions[path] ||
|
|
218
255
|
!sameChange(base.changes[path], previousBase.changes[path]) ||
|
|
219
|
-
base.
|
|
256
|
+
!sameBinary(base.binaries[path], previousBase.binaries[path]))
|
|
220
257
|
affected.add(path);
|
|
221
258
|
}
|
|
222
259
|
const oldIds = new Set(before);
|
|
@@ -249,6 +286,7 @@ export function overlayChanged(base, queue, previousBase, previousQueue, previou
|
|
|
249
286
|
const documents = {};
|
|
250
287
|
const revisions = {};
|
|
251
288
|
const changes = {};
|
|
289
|
+
const binaries = {};
|
|
252
290
|
for (const path of affected) {
|
|
253
291
|
if (base.documents[path] !== undefined)
|
|
254
292
|
documents[path] = base.documents[path];
|
|
@@ -256,32 +294,28 @@ export function overlayChanged(base, queue, previousBase, previousQueue, previou
|
|
|
256
294
|
revisions[path] = base.revisions[path];
|
|
257
295
|
if (base.changes[path] !== undefined)
|
|
258
296
|
changes[path] = base.changes[path];
|
|
297
|
+
if (base.binaries[path] !== undefined)
|
|
298
|
+
binaries[path] = base.binaries[path];
|
|
259
299
|
}
|
|
260
|
-
const staged = overlay({
|
|
261
|
-
documents,
|
|
262
|
-
revisions,
|
|
263
|
-
changes,
|
|
264
|
-
binaryTargets: base.binaryTargets.filter((path) => affected.has(path)),
|
|
265
|
-
}, queue.filter((batch) => pathsOf(batch).some((path) => affected.has(path))));
|
|
300
|
+
const staged = overlay({ documents, revisions, changes, binaries }, queue.filter((batch) => pathsOf(batch).some((path) => affected.has(path))));
|
|
266
301
|
const mergedDocuments = { ...previousVisible.documents };
|
|
267
302
|
const mergedRevisions = { ...previousVisible.revisions };
|
|
268
303
|
const mergedChanges = { ...previousVisible.changes };
|
|
269
|
-
const
|
|
304
|
+
const mergedBinaries = { ...previousVisible.binaries };
|
|
270
305
|
for (const path of affected) {
|
|
271
306
|
delete mergedDocuments[path];
|
|
272
307
|
delete mergedRevisions[path];
|
|
273
308
|
delete mergedChanges[path];
|
|
274
|
-
|
|
309
|
+
delete mergedBinaries[path];
|
|
275
310
|
}
|
|
276
311
|
Object.assign(mergedDocuments, staged.documents);
|
|
277
312
|
Object.assign(mergedRevisions, staged.revisions);
|
|
278
313
|
Object.assign(mergedChanges, staged.changes);
|
|
279
|
-
|
|
280
|
-
mergedTargets.add(path);
|
|
314
|
+
Object.assign(mergedBinaries, staged.binaries);
|
|
281
315
|
return {
|
|
282
316
|
documents: mergedDocuments,
|
|
283
317
|
revisions: mergedRevisions,
|
|
284
318
|
changes: mergedChanges,
|
|
285
|
-
|
|
319
|
+
binaries: mergedBinaries,
|
|
286
320
|
};
|
|
287
321
|
}
|
package/dist/query.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Definition } from '@agentshouse/mdmodel';
|
|
2
2
|
import type { HeadChange } from './adapter.js';
|
|
3
|
+
import type { BinaryFileRecord } from './binary.js';
|
|
3
4
|
export type Value = string | number | boolean | null;
|
|
4
5
|
export type Predicate = Value | {
|
|
5
6
|
$eq: Value;
|
|
@@ -93,6 +94,7 @@ export type QueryDocument = {
|
|
|
93
94
|
markdown?: string;
|
|
94
95
|
backlinks?: readonly Backlink[];
|
|
95
96
|
change?: HeadChange | null;
|
|
97
|
+
binaryFile?: BinaryFileRecord;
|
|
96
98
|
};
|
|
97
99
|
export type QueryGroup = {
|
|
98
100
|
key: readonly unknown[];
|