@agentshouse/mdruntime 0.1.0-cf6d5f0a5c9c8 → 0.1.0-cf6e25bcd52f6
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/README.md +21 -8
- package/dist/adapter.d.ts +139 -32
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +5 -1
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +38 -4
- package/dist/attempt.d.ts +16 -0
- package/dist/attempt.d.ts.map +1 -0
- package/dist/attempt.js +70 -0
- package/dist/binary.d.ts +18 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +8 -0
- package/dist/bootstrap.d.ts +32 -9
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +192 -67
- package/dist/chain.d.ts +11 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +64 -0
- package/dist/change-set.d.ts +9 -14
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +11 -62
- package/dist/change.d.ts +45 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +34 -0
- package/dist/client.d.ts +33 -14
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +123 -21
- package/dist/collection.d.ts +12 -6
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +51 -76
- package/dist/compile.d.ts +16 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +765 -0
- package/dist/connection.d.ts +60 -20
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +3825 -793
- package/dist/conversation.d.ts +42 -12
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +642 -188
- package/dist/digest.d.ts +7 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +113 -0
- package/dist/durability.d.ts +5 -1
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +5 -0
- package/dist/entry.d.ts +19 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +151 -0
- package/dist/expectation.d.ts +21 -0
- package/dist/expectation.d.ts.map +1 -0
- package/dist/expectation.js +70 -0
- package/dist/failure.d.ts +13 -0
- package/dist/failure.d.ts.map +1 -0
- package/dist/failure.js +19 -0
- package/dist/fence.d.ts +6 -0
- package/dist/fence.d.ts.map +1 -0
- package/dist/fence.js +10 -0
- package/dist/file.d.ts +2 -19
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +7 -122
- package/dist/fulltext.d.ts +27 -0
- package/dist/fulltext.d.ts.map +1 -0
- package/dist/fulltext.js +368 -0
- package/dist/host.d.ts +15 -3
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +134 -22
- package/dist/identity.d.ts +3 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +9 -0
- package/dist/index.d.ts +19 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/live.d.ts +22 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +124 -0
- package/dist/media.d.ts +8 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +208 -0
- package/dist/memory.d.ts +12 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +128 -29
- package/dist/messages.d.ts +28 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +90 -0
- package/dist/model.d.ts +13 -4
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +17 -2
- package/dist/name.d.ts +4 -0
- package/dist/name.d.ts.map +1 -0
- package/dist/name.js +122 -0
- package/dist/observation.d.ts +20 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +113 -12
- package/dist/open.d.ts +2 -0
- package/dist/open.d.ts.map +1 -0
- package/dist/open.js +1 -0
- package/dist/opened.d.ts +22 -0
- package/dist/opened.d.ts.map +1 -0
- package/dist/opened.js +107 -0
- package/dist/outcome.d.ts +73 -3
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +81 -1
- package/dist/overlay.d.ts +15 -5
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +136 -180
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -0
- package/dist/query.d.ts +70 -4
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +51 -7
- package/dist/reach.d.ts +18 -4
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +246 -68
- package/dist/react.d.ts +12 -8
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +8 -17
- package/dist/readiness.d.ts +64 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +33 -0
- package/dist/reads.d.ts +11 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +100 -0
- package/dist/recovery.d.ts +25 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +198 -0
- package/dist/refresh.d.ts +16 -15
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +113 -54
- package/dist/replica.d.ts +59 -33
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +320 -159
- package/dist/room-draft.d.ts +41 -9
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +185 -36
- package/dist/rows.d.ts +37 -35
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +173 -102
- package/dist/save.d.ts +73 -4
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +820 -151
- package/dist/search.d.ts +41 -29
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +37 -105
- package/dist/seed.d.ts +16 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +75 -0
- package/dist/shared.d.ts +16 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +431 -0
- package/dist/status.d.ts +11 -2
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +3 -9
- package/dist/store.d.ts +130 -80
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +376 -457
- package/dist/stored.d.ts +154 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +578 -0
- package/dist/tables.d.ts +362 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +627 -0
- package/dist/turn.d.ts +9 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +75 -0
- package/dist/validation.d.ts +30 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +162 -0
- package/dist/windows.d.ts +22 -0
- package/dist/windows.d.ts.map +1 -0
- package/dist/windows.js +89 -0
- package/dist/wire.d.ts +172 -33
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +68 -31
- package/dist/words.d.ts +19 -0
- package/dist/words.d.ts.map +1 -0
- package/dist/words.js +156 -0
- package/package.json +26 -15
- package/AGENTS.md +0 -253
- package/dist/attachment.d.ts +0 -3
- package/dist/attachment.d.ts.map +0 -1
- package/dist/attachment.js +0 -8
- package/dist/read-side.d.ts +0 -18
- package/dist/read-side.d.ts.map +0 -1
- package/dist/read-side.js +0 -433
package/dist/collection.js
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
|
-
import { parse,
|
|
1
|
+
import { parse, VERSION } from '@agentshouse/mdmodel';
|
|
2
2
|
import { beneath, normalize } from './paths.js';
|
|
3
|
+
import { hashed } from './observation.js';
|
|
4
|
+
import { keysIn, sortedKeys } from './shared.js';
|
|
5
|
+
import { ROW_WEIGHT } from './turn.js';
|
|
3
6
|
export const MD_MODEL = { identity: '@agentshouse/mdmodel', version: VERSION };
|
|
4
|
-
const
|
|
5
|
-
function
|
|
7
|
+
const typesPrinted = new WeakMap();
|
|
8
|
+
function typesPrint(model) {
|
|
9
|
+
if (model.status === 'unavailable')
|
|
10
|
+
return '';
|
|
11
|
+
let print = typesPrinted.get(model.types);
|
|
12
|
+
if (print === undefined) {
|
|
13
|
+
print = hashed(JSON.stringify(model.types)).toString(36);
|
|
14
|
+
typesPrinted.set(model.types, print);
|
|
15
|
+
}
|
|
16
|
+
return print;
|
|
17
|
+
}
|
|
18
|
+
export function composedOf(composition) {
|
|
19
|
+
const { model, selection } = composition;
|
|
20
|
+
return {
|
|
21
|
+
composition,
|
|
22
|
+
fingerprint: JSON.stringify([
|
|
23
|
+
typesPrint(model),
|
|
24
|
+
selection === null ? null : [selection.roots, typesPrint(selection.model)],
|
|
25
|
+
]),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function selected(composition, path) {
|
|
6
29
|
return (composition.selection !== null &&
|
|
7
30
|
composition.selection.roots.some((root) => beneath(root, path)));
|
|
8
31
|
}
|
|
@@ -11,22 +34,14 @@ export function governing(composition, path) {
|
|
|
11
34
|
? composition.selection.model
|
|
12
35
|
: composition.model;
|
|
13
36
|
}
|
|
14
|
-
|
|
15
|
-
export function collectionOf(text, composition, previous) {
|
|
37
|
+
export function collectionOf(text, composition) {
|
|
16
38
|
const parsed = new Map();
|
|
17
|
-
|
|
18
|
-
for (const [path, held] of parsedIn.get(previous) ?? []) {
|
|
19
|
-
if (previous.text[path] === text[path])
|
|
20
|
-
parsed.set(path, held);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
const collection = {
|
|
39
|
+
return {
|
|
24
40
|
text,
|
|
25
41
|
composition,
|
|
26
42
|
document(path) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return held ?? undefined;
|
|
43
|
+
if (parsed.has(path))
|
|
44
|
+
return parsed.get(path) ?? undefined;
|
|
30
45
|
const content = text[path];
|
|
31
46
|
if (content === undefined)
|
|
32
47
|
return undefined;
|
|
@@ -35,75 +50,35 @@ export function collectionOf(text, composition, previous) {
|
|
|
35
50
|
return read.ok ? read.document : undefined;
|
|
36
51
|
},
|
|
37
52
|
};
|
|
38
|
-
parsedIn.set(collection, parsed);
|
|
39
|
-
return collection;
|
|
40
|
-
}
|
|
41
|
-
export function passingDocument(collection, path) {
|
|
42
|
-
const held = parsedIn.get(collection)?.get(path);
|
|
43
|
-
if (held !== undefined)
|
|
44
|
-
return held ?? undefined;
|
|
45
|
-
const content = collection.text[path];
|
|
46
|
-
if (content === undefined)
|
|
47
|
-
return undefined;
|
|
48
|
-
const read = parse(content, path);
|
|
49
|
-
return read.ok ? read.document : undefined;
|
|
50
53
|
}
|
|
51
54
|
export function* documentsOf(collection) {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
yield [path, held];
|
|
59
|
-
continue;
|
|
55
|
+
const paths = yield* sortedKeys(collection.text);
|
|
56
|
+
return (function* () {
|
|
57
|
+
for (const path of paths) {
|
|
58
|
+
const document = collection.document(path);
|
|
59
|
+
if (document !== undefined)
|
|
60
|
+
yield [path, document];
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
if (read.ok)
|
|
63
|
-
yield [path, read.document];
|
|
64
|
-
}
|
|
62
|
+
})();
|
|
65
63
|
}
|
|
66
|
-
export function unreadable(text,
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
export function* unreadable(text, paths = null) {
|
|
65
|
+
const named = paths ?? (yield* keysIn(text));
|
|
66
|
+
let least = null;
|
|
67
|
+
for (const path of named) {
|
|
68
|
+
const content = Object.hasOwn(text, path) ? text[path] : undefined;
|
|
69
|
+
if (content === undefined)
|
|
69
70
|
continue;
|
|
70
|
-
const read = parse(
|
|
71
|
-
if (!read.ok)
|
|
72
|
-
|
|
71
|
+
const read = parse(content, path);
|
|
72
|
+
if (!read.ok && (least === null || path < least.path)) {
|
|
73
|
+
least = { path, refused: { kind: 'refused', refusal: read.refusal } };
|
|
74
|
+
}
|
|
75
|
+
yield ROW_WEIGHT + content.length;
|
|
73
76
|
}
|
|
74
|
-
return null;
|
|
77
|
+
return least?.refused ?? null;
|
|
75
78
|
}
|
|
76
79
|
export function validRoot(root) {
|
|
77
80
|
return typeof root === 'string' && normalize(root) === root;
|
|
78
81
|
}
|
|
79
|
-
function
|
|
80
|
-
|
|
81
|
-
const typed = Object.entries(documents).find(([, content]) => {
|
|
82
|
-
const parsed = parse(content);
|
|
83
|
-
return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';
|
|
84
|
-
});
|
|
85
|
-
if (typed !== undefined)
|
|
86
|
-
return { verdict: 'refuse', rule: 'model-unavailable', file: typed[0] };
|
|
87
|
-
}
|
|
88
|
-
return validate(documents, { binaryTargets }, model.status === 'unavailable' ? NO_TYPES : { types: model.types });
|
|
89
|
-
}
|
|
90
|
-
export function validateCollection(text, binaryTargets, composition) {
|
|
91
|
-
const collection = {};
|
|
92
|
-
const selection = {};
|
|
93
|
-
for (const [path, content] of Object.entries(text)) {
|
|
94
|
-
if (selected(composition, path))
|
|
95
|
-
selection[path] = content;
|
|
96
|
-
else
|
|
97
|
-
collection[path] = content;
|
|
98
|
-
}
|
|
99
|
-
const verdicts = [
|
|
100
|
-
validateAgainst(collection, binaryTargets.filter((path) => !selected(composition, path)), composition.model),
|
|
101
|
-
];
|
|
102
|
-
if (composition.selection !== null) {
|
|
103
|
-
verdicts.push(validateAgainst(selection, binaryTargets.filter((path) => selected(composition, path)), composition.selection.model));
|
|
104
|
-
}
|
|
105
|
-
const refusals = verdicts.filter((verdict) => verdict.verdict === 'refuse');
|
|
106
|
-
if (refusals.length === 0)
|
|
107
|
-
return verdicts[0];
|
|
108
|
-
return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
|
|
82
|
+
export function available(composition) {
|
|
83
|
+
return composition.model.status !== 'unavailable';
|
|
109
84
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Plan, QueryRows } from './query.js';
|
|
2
|
+
import type { Connection, Value } from './tables.js';
|
|
3
|
+
export type QueryRoom = {
|
|
4
|
+
readonly locator: string;
|
|
5
|
+
readonly key: number;
|
|
6
|
+
};
|
|
7
|
+
export type Fragment = {
|
|
8
|
+
readonly sql: string;
|
|
9
|
+
readonly bind: readonly Value[];
|
|
10
|
+
};
|
|
11
|
+
export type QueryAnswer = QueryRows & {
|
|
12
|
+
readonly more?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function selected(connection: Connection, plan: Plan, rooms: readonly QueryRoom[]): Fragment;
|
|
15
|
+
export declare function answerQuery(connection: Connection, plan: Plan, rooms: readonly QueryRoom[], budget?: number | null): QueryAnswer;
|
|
16
|
+
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAOV,IAAI,EAGJ,SAAS,EAIV,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,CAAC;AAwrBjF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA4TjE,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,QAAQ,CAEV;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,GAAE,MAAM,GAAG,IAAW,GAC3B,WAAW,CAUb"}
|