@agentshouse/mdruntime 0.1.0-alpha.8 → 0.1.0-alpha.9
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/dist/adapter.d.ts +76 -21
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js.map +1 -1
- package/dist/bootstrap.d.ts +4 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +4 -2
- package/dist/bootstrap.js.map +1 -1
- package/dist/client.d.ts +63 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +227 -0
- package/dist/client.js.map +1 -0
- package/dist/collection.d.ts +14 -4
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +60 -35
- package/dist/collection.js.map +1 -1
- package/dist/connection.d.ts +28 -7
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +603 -368
- package/dist/connection.js.map +1 -1
- package/dist/conversation.d.ts +57 -0
- package/dist/conversation.d.ts.map +1 -0
- package/dist/conversation.js +401 -0
- package/dist/conversation.js.map +1 -0
- package/dist/durability.d.ts +8 -3
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +5 -59
- package/dist/durability.js.map +1 -1
- package/dist/file.d.ts +20 -0
- package/dist/file.d.ts.map +1 -0
- package/dist/file.js +149 -0
- package/dist/file.js.map +1 -0
- package/dist/host.d.ts +9 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +200 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/memory.d.ts +14 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +171 -11
- package/dist/memory.js.map +1 -1
- package/dist/outcome.d.ts +16 -9
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +10 -0
- package/dist/outcome.js.map +1 -1
- package/dist/query.d.ts +1 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js.map +1 -1
- package/dist/replica.d.ts +2 -1
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +16 -3
- package/dist/replica.js.map +1 -1
- package/dist/save.d.ts +3 -3
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +33 -14
- package/dist/save.js.map +1 -1
- package/dist/status.d.ts +11 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +5 -4
- package/dist/status.js.map +1 -1
- package/dist/store.d.ts +32 -3
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +64 -7
- package/dist/store.js.map +1 -1
- package/dist/wire.d.ts +63 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +139 -0
- package/dist/wire.js.map +1 -0
- package/package.json +10 -2
package/dist/collection.d.ts
CHANGED
|
@@ -12,12 +12,22 @@ export type MdType = {
|
|
|
12
12
|
};
|
|
13
13
|
export type Collection = {
|
|
14
14
|
documents: Readonly<Record<string, Document>>;
|
|
15
|
-
|
|
15
|
+
composition: Composition;
|
|
16
16
|
};
|
|
17
|
-
export
|
|
18
|
-
|
|
17
|
+
export type Composition = {
|
|
18
|
+
collectionRoot: string;
|
|
19
|
+
model: ModelState;
|
|
20
|
+
selection: {
|
|
21
|
+
roots: readonly string[];
|
|
22
|
+
model: ModelState;
|
|
23
|
+
} | null;
|
|
24
|
+
};
|
|
25
|
+
export declare function governing(composition: Composition, path: string): ModelState;
|
|
26
|
+
export declare function typesAt(composition: Composition, path: string): readonly MdType[];
|
|
27
|
+
export declare function parseCollection(text: Readonly<Record<string, string>>, composition: Composition): Collection;
|
|
28
|
+
export declare function readCollection(text: Readonly<Record<string, string>>, composition: Composition): Collection | null;
|
|
19
29
|
export declare function validRoot(root: unknown): root is string;
|
|
20
|
-
export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[],
|
|
30
|
+
export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition, binding: AttachedModelBinding | null): Validation & {
|
|
21
31
|
source?: 'content' | 'model';
|
|
22
32
|
};
|
|
23
33
|
//# 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,EAA4B,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAEhG,eAAO,MAAM,SAAS,EAAE,QAAyC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAEhG,eAAO,MAAM,SAAS,EAAE,QAAyC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,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;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGjF;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,UAAU,CAOZ;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,UAAU,GAAG,IAAI,CAenB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAyCD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,oBAAoB,GAAG,IAAI,GACnC,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;CAAE,CA4C/C"}
|
package/dist/collection.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parse, validate, VERSION } from '@agentshouse/mdmodel';
|
|
2
|
-
import { normalize } from './paths.js';
|
|
2
|
+
import { beneath, normalize } from './paths.js';
|
|
3
3
|
export const MD_MODEL = {
|
|
4
4
|
identity: '@agentshouse/mdmodel',
|
|
5
5
|
version: VERSION
|
|
@@ -9,7 +9,17 @@ export const PRESENTED = {
|
|
|
9
9
|
$regex: '\\.md$'
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
function selected(composition, path) {
|
|
13
|
+
return composition.selection !== null && composition.selection.roots.some((root)=>beneath(root, path));
|
|
14
|
+
}
|
|
15
|
+
export function governing(composition, path) {
|
|
16
|
+
return composition.selection !== null && selected(composition, path) ? composition.selection.model : composition.model;
|
|
17
|
+
}
|
|
18
|
+
export function typesAt(composition, path) {
|
|
19
|
+
const model = governing(composition, path);
|
|
20
|
+
return model.status === 'unavailable' ? [] : model.types;
|
|
21
|
+
}
|
|
22
|
+
export function parseCollection(text, composition) {
|
|
13
23
|
const documents = {};
|
|
14
24
|
for (const path of Object.keys(text).sort()){
|
|
15
25
|
const parsed = parse(text[path], path);
|
|
@@ -17,14 +27,14 @@ export function parseCollection(text, model) {
|
|
|
17
27
|
}
|
|
18
28
|
return {
|
|
19
29
|
documents,
|
|
20
|
-
|
|
30
|
+
composition
|
|
21
31
|
};
|
|
22
32
|
}
|
|
23
|
-
export function readCollection(text,
|
|
24
|
-
if (!validRoot(collectionRoot)) return null;
|
|
25
|
-
const collection = parseCollection(text,
|
|
33
|
+
export function readCollection(text, composition) {
|
|
34
|
+
if (!validRoot(composition.collectionRoot)) return null;
|
|
35
|
+
const collection = parseCollection(text, composition);
|
|
26
36
|
if (Object.keys(collection.documents).length !== Object.keys(text).length) return null;
|
|
27
|
-
if (Object.entries(collection.documents).some(([path, document])=>!member(path, collectionRoot) && document.type !== undefined && document.type !== 'any')) return null;
|
|
37
|
+
if (Object.entries(collection.documents).some(([path, document])=>!member(path, composition.collectionRoot) && !selected(composition, path) && document.type !== undefined && document.type !== 'any')) return null;
|
|
28
38
|
return collection;
|
|
29
39
|
}
|
|
30
40
|
export function validRoot(root) {
|
|
@@ -33,31 +43,9 @@ export function validRoot(root) {
|
|
|
33
43
|
function member(path, root) {
|
|
34
44
|
return root === '' || path.startsWith(`${root}/`);
|
|
35
45
|
}
|
|
36
|
-
|
|
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));
|
|
46
|
+
function validateAgainst(documents, binaryTargets, prefix, model, binding) {
|
|
59
47
|
if (model.status === 'unavailable' || binding === null) {
|
|
60
|
-
const typed = Object.entries(
|
|
48
|
+
const typed = Object.entries(documents).find(([, content])=>{
|
|
61
49
|
const parsed = parse(content);
|
|
62
50
|
return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';
|
|
63
51
|
});
|
|
@@ -67,14 +55,14 @@ export function validateCollection(text, binaryTargets, collectionRoot, model, b
|
|
|
67
55
|
file: `${prefix}${typed[0]}`,
|
|
68
56
|
version: VERSION
|
|
69
57
|
};
|
|
70
|
-
return validate(
|
|
71
|
-
binaryTargets
|
|
58
|
+
return validate(documents, {
|
|
59
|
+
binaryTargets
|
|
72
60
|
});
|
|
73
61
|
}
|
|
74
62
|
const verdict = binding.validate({
|
|
75
63
|
model: model.snapshot,
|
|
76
|
-
documents
|
|
77
|
-
binaryTargets
|
|
64
|
+
documents,
|
|
65
|
+
binaryTargets
|
|
78
66
|
});
|
|
79
67
|
if (verdict.verdict === 'refuse' && verdict.source === 'model') return verdict;
|
|
80
68
|
if (verdict.verdict === 'accept') return verdict;
|
|
@@ -86,5 +74,42 @@ export function validateCollection(text, binaryTargets, collectionRoot, model, b
|
|
|
86
74
|
}
|
|
87
75
|
};
|
|
88
76
|
}
|
|
77
|
+
export function validateCollection(text, binaryTargets, composition, binding) {
|
|
78
|
+
const prefix = composition.collectionRoot === '' ? '' : `${composition.collectionRoot}/`;
|
|
79
|
+
const collection = {};
|
|
80
|
+
const selection = {};
|
|
81
|
+
for (const [path, content] of Object.entries(text)){
|
|
82
|
+
if (member(path, composition.collectionRoot)) {
|
|
83
|
+
collection[path.slice(prefix.length)] = content;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (selected(composition, path)) {
|
|
87
|
+
selection[path] = content;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const parsed = parse(content, path);
|
|
91
|
+
if (!parsed.ok) return {
|
|
92
|
+
verdict: 'refuse',
|
|
93
|
+
...parsed.refusal
|
|
94
|
+
};
|
|
95
|
+
if (Object.hasOwn(parsed.document.fields, 'type') && parsed.document.fields.type !== 'any') {
|
|
96
|
+
return {
|
|
97
|
+
verdict: 'refuse',
|
|
98
|
+
rule: 'outside-collection-type',
|
|
99
|
+
file: path,
|
|
100
|
+
version: VERSION
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const verdicts = [
|
|
105
|
+
validateAgainst(collection, binaryTargets.filter((path)=>member(path, composition.collectionRoot)).map((path)=>path.slice(prefix.length)), prefix, composition.model, binding)
|
|
106
|
+
];
|
|
107
|
+
if (composition.selection !== null) {
|
|
108
|
+
verdicts.push(validateAgainst(selection, binaryTargets.filter((path)=>selected(composition, path)), '', composition.selection.model, binding));
|
|
109
|
+
}
|
|
110
|
+
const refusals = verdicts.filter((verdict)=>verdict.verdict === 'refuse');
|
|
111
|
+
if (refusals.length === 0) return verdicts[0];
|
|
112
|
+
return refusals.find((refusal)=>refusal.rule !== 'model-unavailable') ?? refusals[0];
|
|
113
|
+
}
|
|
89
114
|
|
|
90
115
|
//# sourceMappingURL=collection.js.map
|
package/dist/collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/workspace/packages/mdruntime/src/collection.ts"],"sourcesContent":["import { parse, validate, VERSION, type Document, type Validation } from '@agentshouse/mdmodel';\nimport type { Selector } from '@agentshouse/query';\nimport { normalize } from './paths.js';\nimport type { AttachedModelBinding, ModelState } from './model.js';\nimport type { MdModelIdentity } from './adapter.js';\n\nexport const MD_MODEL: MdModelIdentity = { identity: '@agentshouse/mdmodel', version: VERSION };\n\nexport const PRESENTED: Selector = { path: { $regex: '\\\\.md$' } };\n\nexport type MdType = {\n name: string;\n path: string;\n fields: Readonly<Record<string, unknown>>;\n sections: Readonly<Record<string, unknown>>;\n};\n\nexport type Collection = {\n documents: Readonly<Record<string, Document>>;\n types: readonly MdType[];\n};\n\nexport function parseCollection(\n text: Readonly<Record<string, string>>,\n model: ModelState,\n): Collection {\n const documents: Record<string, Document> = {};\n for (const path of Object.keys(text).sort()) {\n const parsed = parse(text[path], path);\n if (parsed.ok) documents[path] = parsed.document;\n }\n return { documents, types: model.status === 'unavailable' ? [] : model.types };\n}\n\nexport function readCollection(\n text: Readonly<Record<string, string>>,\n collectionRoot: string,\n model: ModelState,\n): Collection | null {\n if (!validRoot(collectionRoot)) return null;\n const collection = parseCollection(text, model);\n if (Object.keys(collection.documents).length !== Object.keys(text).length) return null;\n if (\n Object.entries(collection.documents).some(\n ([path, document]) =>\n !member(path, collectionRoot) && document.type !== undefined && document.type !== 'any',\n )\n )\n return null;\n return collection;\n}\n\nexport function validRoot(root: unknown): root is string {\n return typeof root === 'string' && normalize(root) === root;\n}\n\nfunction member(path: string, root: string): boolean {\n return root === '' || path.startsWith(`${root}/`);\n}\n\nexport function validateCollection(\n text: Readonly<Record<string, string>>,\n binaryTargets: readonly string[],\n collectionRoot: string,\n model: ModelState,\n binding: AttachedModelBinding | null,\n): Validation & { source?: 'content' | 'model' } {\n const prefix = collectionRoot === '' ? '' : `${collectionRoot}/`;\n const collection: Record<string, string> = {};\n for (const [path, content] of Object.entries(text)) {\n if (member(path, collectionRoot)) {\n collection[path.slice(prefix.length)] = content;\n continue;\n }\n const parsed = parse(content, path);\n if (!parsed.ok) return { verdict: 'refuse', ...parsed.refusal };\n if (Object.hasOwn(parsed.document.fields, 'type') && parsed.document.fields.type !== 'any') {\n return { verdict: 'refuse', rule: 'outside-collection-type', file: path, version: VERSION };\n }\n }\n const targets = binaryTargets\n .filter((path) => member(path, collectionRoot))\n .map((path) => path.slice(prefix.length));\n if (model.status === 'unavailable' || binding === null) {\n const typed = Object.entries(collection).find(([, content]) => {\n const parsed = parse(content);\n return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';\n });\n if (typed !== undefined)\n return {\n verdict: 'refuse',\n rule: 'model-unavailable',\n file: `${prefix}${typed[0]}`,\n version: VERSION,\n };\n return validate(collection, { binaryTargets: targets });\n }\n const verdict = binding.validate({\n model: model.snapshot,\n documents: collection,\n binaryTargets: targets,\n });\n if (verdict.verdict === 'refuse' && verdict.source === 'model') return verdict;\n if (verdict.verdict === 'accept') return verdict;\n return {\n ...verdict,\n file: `${prefix}${verdict.file}`,\n ...(verdict.referrers === undefined\n ? {}\n : { referrers: verdict.referrers.map((path) => `${prefix}${path}`) }),\n };\n}\n"],"names":["parse","validate","VERSION","normalize","MD_MODEL","identity","version","PRESENTED","path","$regex","parseCollection","text","model","documents","Object","keys","sort","parsed","ok","document","types","status","readCollection","collectionRoot","validRoot","collection","length","entries","some","member","type","undefined","root","startsWith","validateCollection","binaryTargets","binding","prefix","content","slice","verdict","refusal","hasOwn","fields","rule","file","targets","filter","map","typed","find","snapshot","source","referrers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["/workspace/packages/mdruntime/src/collection.ts"],"sourcesContent":["import { parse, validate, VERSION, type Document, type Validation } from '@agentshouse/mdmodel';\nimport type { Selector } from '@agentshouse/query';\nimport { beneath, normalize } from './paths.js';\nimport type { AttachedModelBinding, ModelState } from './model.js';\nimport type { MdModelIdentity } from './adapter.js';\n\nexport const MD_MODEL: MdModelIdentity = { identity: '@agentshouse/mdmodel', version: VERSION };\n\nexport const PRESENTED: Selector = { path: { $regex: '\\\\.md$' } };\n\nexport type MdType = {\n name: string;\n path: string;\n fields: Readonly<Record<string, unknown>>;\n sections: Readonly<Record<string, unknown>>;\n};\n\nexport type Collection = {\n documents: Readonly<Record<string, Document>>;\n composition: Composition;\n};\n\nexport type Composition = {\n collectionRoot: string;\n model: ModelState;\n selection: { roots: readonly string[]; model: ModelState } | null;\n};\n\nfunction selected(composition: Composition, path: string): boolean {\n return (\n composition.selection !== null &&\n composition.selection.roots.some((root) => beneath(root, path))\n );\n}\n\nexport function governing(composition: Composition, path: string): ModelState {\n return composition.selection !== null && selected(composition, path)\n ? composition.selection.model\n : composition.model;\n}\n\nexport function typesAt(composition: Composition, path: string): readonly MdType[] {\n const model = governing(composition, path);\n return model.status === 'unavailable' ? [] : model.types;\n}\n\nexport function parseCollection(\n text: Readonly<Record<string, string>>,\n composition: Composition,\n): Collection {\n const documents: Record<string, Document> = {};\n for (const path of Object.keys(text).sort()) {\n const parsed = parse(text[path], path);\n if (parsed.ok) documents[path] = parsed.document;\n }\n return { documents, composition };\n}\n\nexport function readCollection(\n text: Readonly<Record<string, string>>,\n composition: Composition,\n): Collection | null {\n if (!validRoot(composition.collectionRoot)) return null;\n const collection = parseCollection(text, composition);\n if (Object.keys(collection.documents).length !== Object.keys(text).length) return null;\n if (\n Object.entries(collection.documents).some(\n ([path, document]) =>\n !member(path, composition.collectionRoot) &&\n !selected(composition, path) &&\n document.type !== undefined &&\n document.type !== 'any',\n )\n )\n return null;\n return collection;\n}\n\nexport function validRoot(root: unknown): root is string {\n return typeof root === 'string' && normalize(root) === root;\n}\n\nfunction member(path: string, root: string): boolean {\n return root === '' || path.startsWith(`${root}/`);\n}\n\ntype Refusal = Extract<Validation, { verdict: 'refuse' }> & { source?: 'content' | 'model' };\n\nfunction validateAgainst(\n documents: Readonly<Record<string, string>>,\n binaryTargets: readonly string[],\n prefix: string,\n model: ModelState,\n binding: AttachedModelBinding | null,\n): Validation & { source?: 'content' | 'model' } {\n if (model.status === 'unavailable' || binding === null) {\n const typed = Object.entries(documents).find(([, content]) => {\n const parsed = parse(content);\n return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';\n });\n if (typed !== undefined)\n return {\n verdict: 'refuse',\n rule: 'model-unavailable',\n file: `${prefix}${typed[0]}`,\n version: VERSION,\n };\n return validate(documents, { binaryTargets });\n }\n const verdict = binding.validate({ model: model.snapshot, documents, binaryTargets });\n if (verdict.verdict === 'refuse' && verdict.source === 'model') return verdict;\n if (verdict.verdict === 'accept') return verdict;\n return {\n ...verdict,\n file: `${prefix}${verdict.file}`,\n ...(verdict.referrers === undefined\n ? {}\n : { referrers: verdict.referrers.map((path) => `${prefix}${path}`) }),\n };\n}\n\nexport function validateCollection(\n text: Readonly<Record<string, string>>,\n binaryTargets: readonly string[],\n composition: Composition,\n binding: AttachedModelBinding | null,\n): Validation & { source?: 'content' | 'model' } {\n const prefix = composition.collectionRoot === '' ? '' : `${composition.collectionRoot}/`;\n const collection: Record<string, string> = {};\n const selection: Record<string, string> = {};\n for (const [path, content] of Object.entries(text)) {\n if (member(path, composition.collectionRoot)) {\n collection[path.slice(prefix.length)] = content;\n continue;\n }\n if (selected(composition, path)) {\n selection[path] = content;\n continue;\n }\n const parsed = parse(content, path);\n if (!parsed.ok) return { verdict: 'refuse', ...parsed.refusal };\n if (Object.hasOwn(parsed.document.fields, 'type') && parsed.document.fields.type !== 'any') {\n return { verdict: 'refuse', rule: 'outside-collection-type', file: path, version: VERSION };\n }\n }\n const verdicts = [\n validateAgainst(\n collection,\n binaryTargets\n .filter((path) => member(path, composition.collectionRoot))\n .map((path) => path.slice(prefix.length)),\n prefix,\n composition.model,\n binding,\n ),\n ];\n if (composition.selection !== null) {\n verdicts.push(\n validateAgainst(\n selection,\n binaryTargets.filter((path) => selected(composition, path)),\n '',\n composition.selection.model,\n binding,\n ),\n );\n }\n const refusals = verdicts.filter((verdict): verdict is Refusal => verdict.verdict === 'refuse');\n if (refusals.length === 0) return verdicts[0];\n return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];\n}\n"],"names":["parse","validate","VERSION","beneath","normalize","MD_MODEL","identity","version","PRESENTED","path","$regex","selected","composition","selection","roots","some","root","governing","model","typesAt","status","types","parseCollection","text","documents","Object","keys","sort","parsed","ok","document","readCollection","validRoot","collectionRoot","collection","length","entries","member","type","undefined","startsWith","validateAgainst","binaryTargets","prefix","binding","typed","find","content","verdict","rule","file","snapshot","source","referrers","map","validateCollection","slice","refusal","hasOwn","fields","verdicts","filter","push","refusals"],"mappings":"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"}
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { type QueryBinding } from './query.js';
|
|
2
2
|
import { type AttachedModelBinding, type TypesResult } from './model.js';
|
|
3
3
|
import { type QueryOptions, type QueryResult } from '@agentshouse/query';
|
|
4
|
-
import { type
|
|
4
|
+
import { type Adapter, type Authorization, type HistoryResult, type ProviderRefusal } from './adapter.js';
|
|
5
|
+
import { type ConversationSurface, type ConversationView } from './conversation.js';
|
|
5
6
|
import type { Change } from './change.js';
|
|
6
|
-
import { type QueueEntry, type SubmissionOutcome } from './outcome.js';
|
|
7
|
+
import { type CallResult, type QueueEntry, type SubmissionOutcome } from './outcome.js';
|
|
7
8
|
import { type SaveRefusal } from './save.js';
|
|
8
9
|
import { type SyncStatus } from './status.js';
|
|
10
|
+
import { type RuntimeShell } from './durability.js';
|
|
11
|
+
export type AppTypedSelection = {
|
|
12
|
+
roots: readonly string[];
|
|
13
|
+
attachedModel: import('./model.js').ModelIdentity | null;
|
|
14
|
+
model: TypesResult;
|
|
15
|
+
};
|
|
9
16
|
export type AppRoom = {
|
|
10
17
|
collectionRoot: string;
|
|
11
18
|
name: string;
|
|
@@ -14,17 +21,25 @@ export type AppRoom = {
|
|
|
14
21
|
replica: import('./adapter.js').ReplicaAdmission;
|
|
15
22
|
attachedModel: import('./model.js').ModelIdentity | null;
|
|
16
23
|
model: TypesResult;
|
|
24
|
+
typedSelection: AppTypedSelection | null;
|
|
17
25
|
providerOwnedPaths: readonly string[];
|
|
18
26
|
roomVersion: string | null;
|
|
19
27
|
synchronizationAvailable: boolean;
|
|
28
|
+
refusal: ProviderRefusal | null;
|
|
20
29
|
};
|
|
21
|
-
export type
|
|
30
|
+
export type RoomTypes = {
|
|
31
|
+
collection: TypesResult;
|
|
32
|
+
typedSelection: TypesResult | null;
|
|
33
|
+
};
|
|
34
|
+
export type ConnectionRefusalReason = 'no-matching-version' | 'missing-required-guarantee' | 'md-model-version-mismatch' | 'revoked-authorization' | 'client-host-protocol-mismatch';
|
|
22
35
|
export type ConnectionRefusal = {
|
|
23
36
|
reason: ConnectionRefusalReason;
|
|
24
37
|
reauthorizationOffered: boolean;
|
|
38
|
+
refusal: ProviderRefusal | null;
|
|
25
39
|
};
|
|
26
40
|
export type MdRuntimeOptions = {
|
|
27
41
|
adapter: Adapter;
|
|
42
|
+
shell: RuntimeShell;
|
|
28
43
|
modelBinding: AttachedModelBinding | null;
|
|
29
44
|
queryBinding: QueryBinding | null;
|
|
30
45
|
requiredGuarantees: readonly string[];
|
|
@@ -52,19 +67,22 @@ export type DraftSurface = {
|
|
|
52
67
|
export type QueueSurface = {
|
|
53
68
|
discard(locator: string, identifier: string): Promise<void>;
|
|
54
69
|
};
|
|
70
|
+
export type PresentationSurface = {
|
|
71
|
+
read(app: string): Promise<unknown>;
|
|
72
|
+
write(app: string, value: unknown): Promise<void>;
|
|
73
|
+
};
|
|
55
74
|
export type HistoryQuery = {
|
|
56
75
|
revision?: string;
|
|
57
76
|
pageToken?: string;
|
|
58
77
|
};
|
|
59
|
-
export type CallResult = ActionResult | {
|
|
60
|
-
kind: 'undeclared';
|
|
61
|
-
};
|
|
62
78
|
export type MdRuntime = {
|
|
63
79
|
rooms(): readonly AppRoom[];
|
|
64
80
|
query(options?: QueryOptions): QueryResult;
|
|
65
|
-
types(locator: string):
|
|
81
|
+
types(locator: string): RoomTypes;
|
|
66
82
|
syncStatus(): SyncStatus;
|
|
67
83
|
draft: DraftSurface;
|
|
84
|
+
conversation: ConversationSurface;
|
|
85
|
+
presentation: PresentationSurface;
|
|
68
86
|
save(locator: string, changes: readonly Change[], replacing?: string): Promise<SaveResult>;
|
|
69
87
|
outcome(identifier: string): SubmissionOutcome | null;
|
|
70
88
|
queue: QueueSurface;
|
|
@@ -72,6 +90,7 @@ export type MdRuntime = {
|
|
|
72
90
|
call(name: string, input: unknown): Promise<CallResult>;
|
|
73
91
|
log(): string;
|
|
74
92
|
storageLoss(): string | null;
|
|
93
|
+
persistence(): boolean;
|
|
75
94
|
observe: {
|
|
76
95
|
(topic: 'rooms', listener: (rooms: readonly AppRoom[]) => void): () => void;
|
|
77
96
|
(topic: 'connection-refusal', listener: (refusal: ConnectionRefusal | null) => void): () => void;
|
|
@@ -80,6 +99,8 @@ export type MdRuntime = {
|
|
|
80
99
|
(topic: 'query', query: QueryOptions, listener: (result: QueryResult) => void): () => void;
|
|
81
100
|
(topic: 'queue', locator: string, listener: (entries: readonly QueueEntry[]) => void): () => void;
|
|
82
101
|
(topic: 'drafts', listener: (drafts: readonly DraftEntry[]) => void): () => void;
|
|
102
|
+
(topic: 'presentation', app: string, listener: (value: unknown) => void): () => void;
|
|
103
|
+
(topic: 'conversation', conversation: string, listener: (view: ConversationView) => void): () => void;
|
|
83
104
|
};
|
|
84
105
|
reauthorize(): Promise<void>;
|
|
85
106
|
};
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAmB,MAAM,YAAY,CAAC;AAC1E,OAAO,EAKL,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|