@agentshouse/mdruntime 0.1.0-alpha.8 → 0.1.0-c3903a68dcbbf
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 +210 -0
- package/README.md +44 -0
- package/dist/adapter.d.ts +223 -25
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +2 -3
- package/dist/attachment.d.ts +3 -0
- package/dist/attachment.d.ts.map +1 -0
- package/dist/attachment.js +8 -0
- package/dist/bootstrap.d.ts +6 -7
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +32 -28
- package/dist/change-set.d.ts +33 -0
- package/dist/change-set.d.ts.map +1 -0
- package/dist/change-set.js +87 -0
- package/dist/change.d.ts +9 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +6 -5
- package/dist/client.d.ts +75 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +171 -0
- package/dist/collection.d.ts +24 -15
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +69 -77
- package/dist/connection.d.ts +79 -36
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +1699 -953
- package/dist/conversation.d.ts +79 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +557 -0
- package/dist/durability.d.ts +8 -3
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +7 -61
- package/dist/file.d.ts +20 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +126 -0
- package/dist/host.d.ts +14 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +198 -0
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +10 -9
- package/dist/index.d.ts +14 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/log.js +5 -6
- package/dist/memory.d.ts +17 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +269 -113
- package/dist/model.d.ts +10 -25
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +18 -21
- package/dist/observation.d.ts +25 -0
- package/dist/observation.d.ts.map +1 -0
- package/dist/observation.js +85 -0
- package/dist/outcome.d.ts +22 -18
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +1 -13
- package/dist/overlay.d.ts +9 -2
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +187 -43
- package/dist/paths.d.ts +0 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +12 -19
- package/dist/query.d.ts +210 -9
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +420 -15
- package/dist/read-side.d.ts +14 -0
- package/dist/read-side.d.ts.map +1 -0
- package/dist/read-side.js +371 -0
- package/dist/refresh.d.ts +4 -5
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +45 -30
- package/dist/replica.d.ts +27 -6
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +237 -30
- package/dist/room-draft.d.ts +124 -0
- package/dist/room-draft.d.ts.map +1 -0
- package/dist/room-draft.js +327 -0
- package/dist/rows.d.ts +41 -0
- package/dist/rows.d.ts.map +1 -0
- package/dist/rows.js +100 -0
- package/dist/save.d.ts +10 -6
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +267 -333
- package/dist/search.d.ts +61 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +125 -0
- package/dist/status.d.ts +9 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +11 -14
- package/dist/store.d.ts +85 -18
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +380 -97
- package/dist/transfer.d.ts +5 -0
- package/dist/transfer.d.ts.map +1 -1
- package/dist/transfer.js +1 -5
- package/dist/wire.d.ts +64 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +124 -0
- package/package.json +15 -13
- package/dist/adapter.js.map +0 -1
- package/dist/bootstrap.js.map +0 -1
- package/dist/change.js.map +0 -1
- package/dist/collection.js.map +0 -1
- package/dist/connection.js.map +0 -1
- package/dist/durability.js.map +0 -1
- package/dist/identity.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/log.js.map +0 -1
- package/dist/memory.js.map +0 -1
- package/dist/model.js.map +0 -1
- package/dist/outcome.js.map +0 -1
- package/dist/overlay.js.map +0 -1
- package/dist/paths.js.map +0 -1
- package/dist/query.js.map +0 -1
- package/dist/refresh.js.map +0 -1
- package/dist/replica.js.map +0 -1
- package/dist/save.js.map +0 -1
- package/dist/status.js.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/transfer.js.map +0 -1
package/dist/collection.js
CHANGED
|
@@ -1,90 +1,82 @@
|
|
|
1
|
-
import { parse, validate, VERSION } from '@agentshouse/mdmodel';
|
|
2
|
-
import { normalize } from './paths.js';
|
|
3
|
-
export const MD_MODEL = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
export function
|
|
1
|
+
import { parse, validate, VERSION, } from '@agentshouse/mdmodel';
|
|
2
|
+
import { beneath, normalize } from './paths.js';
|
|
3
|
+
export const MD_MODEL = { identity: '@agentshouse/mdmodel', version: VERSION };
|
|
4
|
+
const NO_TYPES = { types: {} };
|
|
5
|
+
function selected(composition, path) {
|
|
6
|
+
return (composition.selection !== null &&
|
|
7
|
+
composition.selection.roots.some((root) => beneath(root, path)));
|
|
8
|
+
}
|
|
9
|
+
export function untyped(roots, path) {
|
|
10
|
+
return roots.some((root) => beneath(root, path));
|
|
11
|
+
}
|
|
12
|
+
export function governing(composition, path) {
|
|
13
|
+
return composition.selection !== null && selected(composition, path)
|
|
14
|
+
? composition.selection.model
|
|
15
|
+
: composition.model;
|
|
16
|
+
}
|
|
17
|
+
function parsedAt(text, path, previous) {
|
|
18
|
+
const retained = previous?.collection.documents[path];
|
|
19
|
+
return retained !== undefined && previous?.text[path] === text[path]
|
|
20
|
+
? { ok: true, document: retained }
|
|
21
|
+
: parse(text[path], path);
|
|
22
|
+
}
|
|
23
|
+
export function parseCollection(text, composition, previous) {
|
|
13
24
|
const documents = {};
|
|
14
|
-
for (const path of Object.keys(text).sort()){
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
for (const path of Object.keys(text).sort()) {
|
|
26
|
+
if (untyped(composition.untypedFolders, path))
|
|
27
|
+
continue;
|
|
28
|
+
const parsed = parsedAt(text, path, previous);
|
|
29
|
+
if (parsed.ok)
|
|
30
|
+
documents[path] = parsed.document;
|
|
17
31
|
}
|
|
18
|
-
return {
|
|
19
|
-
documents,
|
|
20
|
-
types: model.status === 'unavailable' ? [] : model.types
|
|
21
|
-
};
|
|
32
|
+
return { documents, composition };
|
|
22
33
|
}
|
|
23
|
-
export function readCollection(text,
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
export function readCollection(text, composition, previous) {
|
|
35
|
+
const documents = {};
|
|
36
|
+
for (const path of Object.keys(text).sort()) {
|
|
37
|
+
if (untyped(composition.untypedFolders, path))
|
|
38
|
+
continue;
|
|
39
|
+
const parsed = parsedAt(text, path, previous);
|
|
40
|
+
if (!parsed.ok)
|
|
41
|
+
return { kind: 'refused', refusal: parsed.refusal };
|
|
42
|
+
documents[path] = parsed.document;
|
|
43
|
+
}
|
|
44
|
+
return { kind: 'read', collection: { documents, composition } };
|
|
29
45
|
}
|
|
30
46
|
export function validRoot(root) {
|
|
31
47
|
return typeof root === 'string' && normalize(root) === root;
|
|
32
48
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
49
|
+
function validateAgainst(documents, binaryTargets, model) {
|
|
50
|
+
if (model.status === 'unavailable') {
|
|
51
|
+
const typed = Object.entries(documents).find(([, content]) => {
|
|
52
|
+
const parsed = parse(content);
|
|
53
|
+
return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';
|
|
54
|
+
});
|
|
55
|
+
if (typed !== undefined)
|
|
56
|
+
return { verdict: 'refuse', rule: 'model-unavailable', file: typed[0] };
|
|
57
|
+
}
|
|
58
|
+
return validate(documents, { binaryTargets }, model.status === 'unavailable' ? NO_TYPES : { types: model.types });
|
|
35
59
|
}
|
|
36
|
-
export function validateCollection(text, binaryTargets,
|
|
37
|
-
const prefix = collectionRoot === '' ? '' : `${collectionRoot}/`;
|
|
60
|
+
export function validateCollection(text, binaryTargets, composition) {
|
|
38
61
|
const collection = {};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
const selection = {};
|
|
63
|
+
for (const [path, content] of Object.entries(text)) {
|
|
64
|
+
if (untyped(composition.untypedFolders, path))
|
|
42
65
|
continue;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
...parsed.refusal
|
|
48
|
-
};
|
|
49
|
-
if (Object.hasOwn(parsed.document.fields, 'type') && parsed.document.fields.type !== 'any') {
|
|
50
|
-
return {
|
|
51
|
-
verdict: 'refuse',
|
|
52
|
-
rule: 'outside-collection-type',
|
|
53
|
-
file: path,
|
|
54
|
-
version: VERSION
|
|
55
|
-
};
|
|
56
|
-
}
|
|
66
|
+
if (selected(composition, path))
|
|
67
|
+
selection[path] = content;
|
|
68
|
+
else
|
|
69
|
+
collection[path] = content;
|
|
57
70
|
}
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (typed !== undefined) return {
|
|
65
|
-
verdict: 'refuse',
|
|
66
|
-
rule: 'model-unavailable',
|
|
67
|
-
file: `${prefix}${typed[0]}`,
|
|
68
|
-
version: VERSION
|
|
69
|
-
};
|
|
70
|
-
return validate(collection, {
|
|
71
|
-
binaryTargets: targets
|
|
72
|
-
});
|
|
71
|
+
const linked = binaryTargets.filter((path) => !untyped(composition.untypedFolders, path));
|
|
72
|
+
const verdicts = [
|
|
73
|
+
validateAgainst(collection, linked.filter((path) => !selected(composition, path)), composition.model),
|
|
74
|
+
];
|
|
75
|
+
if (composition.selection !== null) {
|
|
76
|
+
verdicts.push(validateAgainst(selection, linked.filter((path) => selected(composition, path)), composition.selection.model));
|
|
73
77
|
}
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
if (verdict.verdict === 'refuse' && verdict.source === 'model') return verdict;
|
|
80
|
-
if (verdict.verdict === 'accept') return verdict;
|
|
81
|
-
return {
|
|
82
|
-
...verdict,
|
|
83
|
-
file: `${prefix}${verdict.file}`,
|
|
84
|
-
...verdict.referrers === undefined ? {} : {
|
|
85
|
-
referrers: verdict.referrers.map((path)=>`${prefix}${path}`)
|
|
86
|
-
}
|
|
87
|
-
};
|
|
78
|
+
const refusals = verdicts.filter((verdict) => verdict.verdict === 'refuse');
|
|
79
|
+
if (refusals.length === 0)
|
|
80
|
+
return verdicts[0];
|
|
81
|
+
return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
|
|
88
82
|
}
|
|
89
|
-
|
|
90
|
-
//# sourceMappingURL=collection.js.map
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,32 +1,56 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
3
|
-
import { type
|
|
4
|
-
import { type
|
|
5
|
-
import type
|
|
6
|
-
import { type
|
|
1
|
+
import { type TypesResult } from './model.js';
|
|
2
|
+
import { type Observation } from './observation.js';
|
|
3
|
+
import { type DocumentQuery, type DocumentResult, type GroupQuery, type GroupResult } from './query.js';
|
|
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';
|
|
7
|
+
import type { WrittenBy } from './change.js';
|
|
8
|
+
import type { CallResult, QueueEntry, SubmissionOutcome } from './outcome.js';
|
|
7
9
|
import { type SaveRefusal } from './save.js';
|
|
10
|
+
import { type RoomDraft, type RoomDraftWrite } from './room-draft.js';
|
|
8
11
|
import { type SyncStatus } from './status.js';
|
|
12
|
+
import { type RuntimeShell } from './durability.js';
|
|
13
|
+
export type AppTypedSelection = {
|
|
14
|
+
roots: readonly string[];
|
|
15
|
+
attachedModel: import('./model.js').ModelIdentity | null;
|
|
16
|
+
model: TypesResult;
|
|
17
|
+
};
|
|
9
18
|
export type AppRoom = {
|
|
10
|
-
collectionRoot: string;
|
|
11
19
|
name: string;
|
|
12
20
|
locator: string;
|
|
13
21
|
operations: import('./adapter.js').OperationScopes;
|
|
14
22
|
replica: import('./adapter.js').ReplicaAdmission;
|
|
15
23
|
attachedModel: import('./model.js').ModelIdentity | null;
|
|
16
24
|
model: TypesResult;
|
|
25
|
+
typedSelection: AppTypedSelection | null;
|
|
26
|
+
untypedFolders: readonly string[];
|
|
17
27
|
providerOwnedPaths: readonly string[];
|
|
18
28
|
roomVersion: string | null;
|
|
29
|
+
attachments: readonly RoomAttachment[];
|
|
19
30
|
synchronizationAvailable: boolean;
|
|
31
|
+
refusal: ProviderRefusal | null;
|
|
32
|
+
};
|
|
33
|
+
export type AppSlotEntry = {
|
|
34
|
+
room: AppRoom;
|
|
35
|
+
segment: string | null;
|
|
36
|
+
};
|
|
37
|
+
export type AppSlot = {
|
|
38
|
+
slot: string;
|
|
39
|
+
entries: readonly AppSlotEntry[];
|
|
20
40
|
};
|
|
21
|
-
export type
|
|
41
|
+
export type RoomTypes = {
|
|
42
|
+
collection: TypesResult;
|
|
43
|
+
typedSelection: TypesResult | null;
|
|
44
|
+
};
|
|
45
|
+
export type ConnectionRefusalReason = 'no-matching-version' | 'missing-required-guarantee' | 'md-model-version-mismatch' | 'revoked-authorization' | 'client-host-protocol-mismatch';
|
|
22
46
|
export type ConnectionRefusal = {
|
|
23
47
|
reason: ConnectionRefusalReason;
|
|
24
48
|
reauthorizationOffered: boolean;
|
|
49
|
+
refusal: ProviderRefusal | null;
|
|
25
50
|
};
|
|
26
51
|
export type MdRuntimeOptions = {
|
|
27
52
|
adapter: Adapter;
|
|
28
|
-
|
|
29
|
-
queryBinding: QueryBinding | null;
|
|
53
|
+
shell: RuntimeShell;
|
|
30
54
|
requiredGuarantees: readonly string[];
|
|
31
55
|
authorization?: Authorization;
|
|
32
56
|
discoveryIntervalMs?: number;
|
|
@@ -34,54 +58,73 @@ export type MdRuntimeOptions = {
|
|
|
34
58
|
};
|
|
35
59
|
export type SaveResult = {
|
|
36
60
|
outcome: 'saved';
|
|
37
|
-
|
|
61
|
+
identifier: string;
|
|
38
62
|
} | ({
|
|
39
63
|
outcome: 'refused';
|
|
40
64
|
} & SaveRefusal);
|
|
41
|
-
export type
|
|
42
|
-
readonly locator: string;
|
|
65
|
+
export type SavedRoomDraft = {
|
|
43
66
|
readonly path: string;
|
|
44
|
-
readonly
|
|
67
|
+
readonly revision: string;
|
|
45
68
|
};
|
|
46
|
-
export type
|
|
47
|
-
list(): Promise<readonly
|
|
48
|
-
read(
|
|
49
|
-
|
|
50
|
-
discard(
|
|
69
|
+
export type RoomDraftSurface = {
|
|
70
|
+
list(): Promise<readonly RoomDraft[]>;
|
|
71
|
+
read(room: string, path: string): RoomDraft | null;
|
|
72
|
+
write(room: string, path: string, revision: string | null, parts: unknown): Promise<RoomDraftWrite>;
|
|
73
|
+
discard(room: string, path: string, revision: string): Promise<RoomDraftWrite>;
|
|
51
74
|
};
|
|
52
|
-
export type
|
|
53
|
-
|
|
75
|
+
export type PresentationSurface = {
|
|
76
|
+
read(app: string): Promise<unknown>;
|
|
77
|
+
write(app: string, value: unknown): Promise<void>;
|
|
54
78
|
};
|
|
55
79
|
export type HistoryQuery = {
|
|
56
80
|
revision?: string;
|
|
57
81
|
pageToken?: string;
|
|
58
82
|
};
|
|
59
|
-
export type CallResult = ActionResult | {
|
|
60
|
-
kind: 'undeclared';
|
|
61
|
-
};
|
|
62
83
|
export type MdRuntime = {
|
|
84
|
+
loaded(): Promise<void>;
|
|
63
85
|
rooms(): readonly AppRoom[];
|
|
64
|
-
|
|
65
|
-
|
|
86
|
+
slots(): readonly AppSlot[];
|
|
87
|
+
query: {
|
|
88
|
+
(query: DocumentQuery): Promise<DocumentResult>;
|
|
89
|
+
(query: GroupQuery): Promise<GroupResult>;
|
|
90
|
+
};
|
|
91
|
+
search(request: SearchRequest): Promise<SearchResult>;
|
|
92
|
+
types(locator: string): RoomTypes;
|
|
66
93
|
syncStatus(): SyncStatus;
|
|
67
|
-
|
|
68
|
-
|
|
94
|
+
serviceMode(): ServiceMode;
|
|
95
|
+
roomDraft: RoomDraftSurface;
|
|
96
|
+
conversation: ConversationSurface;
|
|
97
|
+
chatDraft: ChatDraftSurface;
|
|
98
|
+
presentation: PresentationSurface;
|
|
99
|
+
save(room: string, roomDrafts: readonly SavedRoomDraft[], writtenBy?: WrittenBy): Promise<SaveResult>;
|
|
69
100
|
outcome(identifier: string): SubmissionOutcome | null;
|
|
70
|
-
queue: QueueSurface;
|
|
71
101
|
history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryResult>;
|
|
72
102
|
call(name: string, input: unknown): Promise<CallResult>;
|
|
103
|
+
reached(locator: string, roomVersion: string, path?: string): boolean;
|
|
73
104
|
log(): string;
|
|
74
105
|
storageLoss(): string | null;
|
|
106
|
+
persistence(): boolean;
|
|
75
107
|
observe: {
|
|
76
|
-
(topic: 'rooms'
|
|
77
|
-
(topic: 'connection-refusal'
|
|
78
|
-
(topic: 'storage-loss'
|
|
79
|
-
(topic: 'sync-status'
|
|
80
|
-
(topic: '
|
|
81
|
-
(topic: '
|
|
82
|
-
(topic: '
|
|
108
|
+
(topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
|
|
109
|
+
(topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
|
|
110
|
+
(topic: 'storage-loss'): Promise<Observation<string | null>>;
|
|
111
|
+
(topic: 'sync-status'): Promise<Observation<SyncStatus>>;
|
|
112
|
+
(topic: 'service-mode'): Promise<Observation<ServiceMode>>;
|
|
113
|
+
(topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
|
|
114
|
+
(topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
|
|
115
|
+
(topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
|
|
116
|
+
(topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
|
|
117
|
+
(topic: 'presentation', app: string): Promise<Observation<unknown>>;
|
|
118
|
+
(topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
|
|
83
119
|
};
|
|
84
120
|
reauthorize(): Promise<void>;
|
|
85
121
|
};
|
|
122
|
+
export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation';
|
|
123
|
+
export type ComposedRuntime = {
|
|
124
|
+
md: MdRuntime;
|
|
125
|
+
stop(): Promise<void>;
|
|
126
|
+
watch(topic: RuntimeTopic, input: readonly unknown[], deliver: (message: unknown) => void): () => void;
|
|
127
|
+
};
|
|
86
128
|
export declare function createMdRuntime(options: MdRuntimeOptions): MdRuntime;
|
|
129
|
+
export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
|
|
87
130
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|