@agentshouse/mdruntime 0.1.0-alpha.8 → 0.1.0-c009335e08279
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 +208 -0
- package/README.md +44 -0
- package/dist/adapter.d.ts +215 -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 +31 -28
- package/dist/change-set.d.ts +33 -0
- package/dist/change-set.d.ts.map +1 -0
- package/dist/change-set.js +83 -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 +69 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +165 -0
- package/dist/collection.d.ts +22 -15
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +60 -78
- package/dist/connection.d.ts +68 -40
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +1597 -961
- 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 +13 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +175 -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 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -3
- 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 +268 -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 +12 -24
- 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 +233 -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 +266 -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 +75 -18
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +358 -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 +118 -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,72 @@
|
|
|
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
|
-
|
|
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 governing(composition, path) {
|
|
10
|
+
return composition.selection !== null && selected(composition, path)
|
|
11
|
+
? composition.selection.model
|
|
12
|
+
: composition.model;
|
|
13
|
+
}
|
|
14
|
+
function parsedAt(text, path, previous) {
|
|
15
|
+
const retained = previous?.collection.documents[path];
|
|
16
|
+
return retained !== undefined && previous?.text[path] === text[path]
|
|
17
|
+
? { ok: true, document: retained }
|
|
18
|
+
: parse(text[path], path);
|
|
19
|
+
}
|
|
20
|
+
export function parseCollection(text, composition, previous) {
|
|
13
21
|
const documents = {};
|
|
14
|
-
for (const path of Object.keys(text).sort()){
|
|
15
|
-
const parsed =
|
|
16
|
-
if (parsed.ok)
|
|
22
|
+
for (const path of Object.keys(text).sort()) {
|
|
23
|
+
const parsed = parsedAt(text, path, previous);
|
|
24
|
+
if (parsed.ok)
|
|
25
|
+
documents[path] = parsed.document;
|
|
17
26
|
}
|
|
18
|
-
return {
|
|
19
|
-
documents,
|
|
20
|
-
types: model.status === 'unavailable' ? [] : model.types
|
|
21
|
-
};
|
|
27
|
+
return { documents, composition };
|
|
22
28
|
}
|
|
23
|
-
export function readCollection(text,
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
export function readCollection(text, composition, previous) {
|
|
30
|
+
const documents = {};
|
|
31
|
+
for (const path of Object.keys(text).sort()) {
|
|
32
|
+
const parsed = parsedAt(text, path, previous);
|
|
33
|
+
if (!parsed.ok)
|
|
34
|
+
return { kind: 'refused', refusal: parsed.refusal };
|
|
35
|
+
documents[path] = parsed.document;
|
|
36
|
+
}
|
|
37
|
+
return { kind: 'read', collection: { documents, composition } };
|
|
29
38
|
}
|
|
30
39
|
export function validRoot(root) {
|
|
31
40
|
return typeof root === 'string' && normalize(root) === root;
|
|
32
41
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export function validateCollection(text, binaryTargets, collectionRoot, model, binding) {
|
|
37
|
-
const prefix = collectionRoot === '' ? '' : `${collectionRoot}/`;
|
|
38
|
-
const collection = {};
|
|
39
|
-
for (const [path, content] of Object.entries(text)){
|
|
40
|
-
if (member(path, collectionRoot)) {
|
|
41
|
-
collection[path.slice(prefix.length)] = content;
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const parsed = parse(content, path);
|
|
45
|
-
if (!parsed.ok) return {
|
|
46
|
-
verdict: 'refuse',
|
|
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
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const targets = binaryTargets.filter((path)=>member(path, collectionRoot)).map((path)=>path.slice(prefix.length));
|
|
59
|
-
if (model.status === 'unavailable' || binding === null) {
|
|
60
|
-
const typed = Object.entries(collection).find(([, content])=>{
|
|
42
|
+
function validateAgainst(documents, binaryTargets, model) {
|
|
43
|
+
if (model.status === 'unavailable') {
|
|
44
|
+
const typed = Object.entries(documents).find(([, content]) => {
|
|
61
45
|
const parsed = parse(content);
|
|
62
46
|
return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';
|
|
63
47
|
});
|
|
64
|
-
if (typed !== undefined)
|
|
65
|
-
verdict: 'refuse',
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
48
|
+
if (typed !== undefined)
|
|
49
|
+
return { verdict: 'refuse', rule: 'model-unavailable', file: typed[0] };
|
|
50
|
+
}
|
|
51
|
+
return validate(documents, { binaryTargets }, model.status === 'unavailable' ? NO_TYPES : { types: model.types });
|
|
52
|
+
}
|
|
53
|
+
export function validateCollection(text, binaryTargets, composition) {
|
|
54
|
+
const collection = {};
|
|
55
|
+
const selection = {};
|
|
56
|
+
for (const [path, content] of Object.entries(text)) {
|
|
57
|
+
if (selected(composition, path))
|
|
58
|
+
selection[path] = content;
|
|
59
|
+
else
|
|
60
|
+
collection[path] = content;
|
|
61
|
+
}
|
|
62
|
+
const verdicts = [
|
|
63
|
+
validateAgainst(collection, binaryTargets.filter((path) => !selected(composition, path)), composition.model),
|
|
64
|
+
];
|
|
65
|
+
if (composition.selection !== null) {
|
|
66
|
+
verdicts.push(validateAgainst(selection, binaryTargets.filter((path) => selected(composition, path)), composition.selection.model));
|
|
73
67
|
}
|
|
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
|
-
};
|
|
68
|
+
const refusals = verdicts.filter((verdict) => verdict.verdict === 'refuse');
|
|
69
|
+
if (refusals.length === 0)
|
|
70
|
+
return verdicts[0];
|
|
71
|
+
return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
|
|
88
72
|
}
|
|
89
|
-
|
|
90
|
-
//# sourceMappingURL=collection.js.map
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,32 +1,47 @@
|
|
|
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 } 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;
|
|
17
26
|
providerOwnedPaths: readonly string[];
|
|
18
27
|
roomVersion: string | null;
|
|
28
|
+
attachments: readonly RoomAttachment[];
|
|
19
29
|
synchronizationAvailable: boolean;
|
|
30
|
+
refusal: ProviderRefusal | null;
|
|
31
|
+
};
|
|
32
|
+
export type RoomTypes = {
|
|
33
|
+
collection: TypesResult;
|
|
34
|
+
typedSelection: TypesResult | null;
|
|
20
35
|
};
|
|
21
|
-
export type ConnectionRefusalReason = 'no-matching-version' | 'missing-required-guarantee' | 'md-model-version-mismatch' | 'revoked-authorization';
|
|
36
|
+
export type ConnectionRefusalReason = 'no-matching-version' | 'missing-required-guarantee' | 'md-model-version-mismatch' | 'revoked-authorization' | 'client-host-protocol-mismatch';
|
|
22
37
|
export type ConnectionRefusal = {
|
|
23
38
|
reason: ConnectionRefusalReason;
|
|
24
39
|
reauthorizationOffered: boolean;
|
|
40
|
+
refusal: ProviderRefusal | null;
|
|
25
41
|
};
|
|
26
42
|
export type MdRuntimeOptions = {
|
|
27
43
|
adapter: Adapter;
|
|
28
|
-
|
|
29
|
-
queryBinding: QueryBinding | null;
|
|
44
|
+
shell: RuntimeShell;
|
|
30
45
|
requiredGuarantees: readonly string[];
|
|
31
46
|
authorization?: Authorization;
|
|
32
47
|
discoveryIntervalMs?: number;
|
|
@@ -34,54 +49,67 @@ export type MdRuntimeOptions = {
|
|
|
34
49
|
};
|
|
35
50
|
export type SaveResult = {
|
|
36
51
|
outcome: 'saved';
|
|
37
|
-
|
|
52
|
+
identifier: string;
|
|
38
53
|
} | ({
|
|
39
54
|
outcome: 'refused';
|
|
40
55
|
} & SaveRefusal);
|
|
41
|
-
export type
|
|
42
|
-
readonly locator: string;
|
|
56
|
+
export type SavedRoomDraft = {
|
|
43
57
|
readonly path: string;
|
|
44
|
-
readonly
|
|
58
|
+
readonly revision: string;
|
|
45
59
|
};
|
|
46
|
-
export type
|
|
47
|
-
list(): Promise<readonly
|
|
48
|
-
read(
|
|
49
|
-
|
|
50
|
-
discard(
|
|
60
|
+
export type RoomDraftSurface = {
|
|
61
|
+
list(): Promise<readonly RoomDraft[]>;
|
|
62
|
+
read(room: string, path: string): RoomDraft | null;
|
|
63
|
+
write(room: string, path: string, revision: string | null, parts: unknown): Promise<RoomDraftWrite>;
|
|
64
|
+
discard(room: string, path: string, revision: string): Promise<RoomDraftWrite>;
|
|
51
65
|
};
|
|
52
|
-
export type
|
|
53
|
-
|
|
66
|
+
export type PresentationSurface = {
|
|
67
|
+
read(app: string): Promise<unknown>;
|
|
68
|
+
write(app: string, value: unknown): Promise<void>;
|
|
54
69
|
};
|
|
55
70
|
export type HistoryQuery = {
|
|
56
71
|
revision?: string;
|
|
57
72
|
pageToken?: string;
|
|
58
73
|
};
|
|
59
|
-
export type CallResult = ActionResult | {
|
|
60
|
-
kind: 'undeclared';
|
|
61
|
-
};
|
|
62
74
|
export type MdRuntime = {
|
|
75
|
+
loaded(): Promise<void>;
|
|
63
76
|
rooms(): readonly AppRoom[];
|
|
64
|
-
query
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
query: {
|
|
78
|
+
(query: DocumentQuery): Promise<DocumentResult>;
|
|
79
|
+
(query: GroupQuery): Promise<GroupResult>;
|
|
80
|
+
};
|
|
81
|
+
search(request: SearchRequest): Promise<SearchResult>;
|
|
82
|
+
types(locator: string): RoomTypes;
|
|
83
|
+
roomDraft: RoomDraftSurface;
|
|
84
|
+
conversation: ConversationSurface;
|
|
85
|
+
chatDraft: ChatDraftSurface;
|
|
86
|
+
presentation: PresentationSurface;
|
|
87
|
+
save(room: string, roomDrafts: readonly SavedRoomDraft[], writtenBy?: WrittenBy): Promise<SaveResult>;
|
|
71
88
|
history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryResult>;
|
|
72
89
|
call(name: string, input: unknown): Promise<CallResult>;
|
|
90
|
+
reached(locator: string, roomVersion: string, path?: string): boolean;
|
|
73
91
|
log(): string;
|
|
74
|
-
|
|
92
|
+
persistence(): boolean;
|
|
75
93
|
observe: {
|
|
76
|
-
(topic: 'rooms'
|
|
77
|
-
(topic: 'connection-refusal'
|
|
78
|
-
(topic: 'storage-loss'
|
|
79
|
-
(topic: 'sync-status'
|
|
80
|
-
(topic: '
|
|
81
|
-
(topic: '
|
|
82
|
-
(topic: '
|
|
94
|
+
(topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
|
|
95
|
+
(topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
|
|
96
|
+
(topic: 'storage-loss'): Promise<Observation<string | null>>;
|
|
97
|
+
(topic: 'sync-status'): Promise<Observation<SyncStatus>>;
|
|
98
|
+
(topic: 'service-mode'): Promise<Observation<ServiceMode>>;
|
|
99
|
+
(topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
|
|
100
|
+
(topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
|
|
101
|
+
(topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
|
|
102
|
+
(topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
|
|
103
|
+
(topic: 'presentation', app: string): Promise<Observation<unknown>>;
|
|
104
|
+
(topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
|
|
83
105
|
};
|
|
84
106
|
reauthorize(): Promise<void>;
|
|
85
107
|
};
|
|
86
|
-
export
|
|
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;
|
|
111
|
+
stop(): Promise<void>;
|
|
112
|
+
watch(topic: RuntimeTopic, input: readonly unknown[], deliver: (message: unknown) => void): () => void;
|
|
113
|
+
};
|
|
114
|
+
export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
|
|
87
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":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|