@agentshouse/mdruntime 0.1.0-cefbc8bb8a1c0 → 0.1.0-cf08ada271a7f
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 +10 -10
- package/dist/acceptance.d.ts +3 -0
- package/dist/acceptance.d.ts.map +1 -0
- package/dist/acceptance.js +309 -0
- package/dist/actions.d.ts +20 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +251 -0
- package/dist/adapter.d.ts +95 -104
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +3 -10
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +21 -56
- package/dist/bootstrap.d.ts +11 -10
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +205 -88
- package/dist/cell.d.ts +6 -0
- package/dist/cell.d.ts.map +1 -0
- package/dist/cell.js +9 -0
- package/dist/chain.d.ts +2 -1
- package/dist/chain.d.ts.map +1 -1
- package/dist/change-set.d.ts +4 -0
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +6 -0
- package/dist/change.d.ts +1 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +4 -2
- package/dist/chat-types.d.ts +5 -0
- package/dist/chat-types.d.ts.map +1 -0
- package/dist/chat-types.js +13 -0
- package/dist/client.d.ts +24 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -5
- package/dist/collection.d.ts +23 -7
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +13 -19
- package/dist/compile.d.ts +6 -6
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +272 -334
- package/dist/connection.d.ts +5 -143
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +101 -5310
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +7 -0
- package/dist/conversation-live.d.ts +135 -0
- package/dist/conversation-live.d.ts.map +1 -0
- package/dist/conversation-live.js +247 -0
- package/dist/conversation-row.d.ts +33 -0
- package/dist/conversation-row.d.ts.map +1 -0
- package/dist/conversation-row.js +53 -0
- package/dist/conversation.d.ts +41 -47
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +873 -912
- package/dist/declaration.d.ts +10 -0
- package/dist/declaration.d.ts.map +1 -0
- package/dist/declaration.js +24 -0
- package/dist/discovery.d.ts +10 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +177 -0
- package/dist/durability.d.ts +15 -1
- package/dist/durability.d.ts.map +1 -1
- package/dist/entry.d.ts +2 -2
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +17 -7
- package/dist/expectation.d.ts +4 -2
- package/dist/expectation.d.ts.map +1 -1
- package/dist/expectation.js +33 -11
- package/dist/failure.d.ts +1 -0
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +3 -0
- package/dist/figures.d.ts +49 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +197 -0
- package/dist/holdings.d.ts +29 -0
- package/dist/holdings.d.ts.map +1 -0
- package/dist/holdings.js +95 -0
- package/dist/host.d.ts +20 -8
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +38 -33
- package/dist/identity.d.ts +0 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +0 -3
- package/dist/index.d.ts +27 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/install.d.ts +55 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +543 -0
- package/dist/job.d.ts +5 -0
- package/dist/job.d.ts.map +1 -0
- package/dist/job.js +7 -0
- package/dist/lifecycle.d.ts +7 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +271 -0
- package/dist/listing.d.ts +53 -0
- package/dist/listing.d.ts.map +1 -0
- package/dist/listing.js +169 -0
- package/dist/live.d.ts +5 -4
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +64 -23
- package/dist/locks.d.ts +9 -0
- package/dist/locks.d.ts.map +1 -0
- package/dist/locks.js +62 -0
- package/dist/log.d.ts +1 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/lost.d.ts +5 -0
- package/dist/lost.d.ts.map +1 -0
- package/dist/lost.js +61 -0
- package/dist/media.d.ts +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +3 -3
- package/dist/memory.d.ts +14 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +177 -85
- package/dist/messages.d.ts +24 -3
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +89 -31
- package/dist/model.d.ts +2 -11
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -23
- package/dist/models.d.ts +10 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +170 -0
- package/dist/observation.d.ts +2 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +14 -14
- package/dist/opened.js +3 -3
- package/dist/opening.d.ts +4 -0
- package/dist/opening.d.ts.map +1 -0
- package/dist/opening.js +59 -0
- package/dist/outcome.d.ts +4 -4
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +3 -0
- package/dist/overlay.d.ts +3 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +43 -21
- package/dist/parts.d.ts +11 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +21 -0
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +22 -0
- package/dist/preparation.d.ts +20 -0
- package/dist/preparation.d.ts.map +1 -0
- package/dist/preparation.js +233 -0
- package/dist/queries.d.ts +16 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +272 -0
- package/dist/query.d.ts +14 -210
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -505
- package/dist/questions.d.ts +34 -0
- package/dist/questions.d.ts.map +1 -0
- package/dist/questions.js +122 -0
- package/dist/queue.d.ts +39 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +455 -0
- package/dist/reach.d.ts +15 -13
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +187 -140
- package/dist/react.d.ts +14 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +10 -1
- package/dist/read.d.ts +7 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/read.js +17 -0
- package/dist/readiness.d.ts +2 -16
- package/dist/readiness.d.ts.map +1 -1
- package/dist/readiness.js +4 -10
- package/dist/reads.d.ts +36 -10
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +160 -77
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +9 -1
- package/dist/refresh.d.ts +7 -5
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +35 -7
- package/dist/refusal.d.ts +5 -0
- package/dist/refusal.d.ts.map +1 -0
- package/dist/refusal.js +57 -0
- package/dist/replica.d.ts +11 -17
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +64 -34
- package/dist/room-draft.d.ts +7 -8
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +100 -103
- package/dist/room-drafts.d.ts +24 -0
- package/dist/room-drafts.d.ts.map +1 -0
- package/dist/room-drafts.js +217 -0
- package/dist/rows.d.ts +14 -21
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +49 -186
- package/dist/runtime.d.ts +32 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1 -0
- package/dist/save.d.ts +41 -86
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +239 -116
- package/dist/saves.d.ts +32 -0
- package/dist/saves.d.ts.map +1 -0
- package/dist/saves.js +413 -0
- package/dist/search.d.ts +12 -63
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +9 -52
- package/dist/seed.d.ts +11 -2
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +71 -1
- package/dist/shared.d.ts +1 -7
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +13 -105
- package/dist/shown.d.ts +32 -0
- package/dist/shown.d.ts.map +1 -0
- package/dist/shown.js +299 -0
- package/dist/socket/admission.d.ts +7 -0
- package/dist/socket/admission.d.ts.map +1 -0
- package/dist/socket/admission.js +39 -0
- package/dist/socket/answers.d.ts +6 -0
- package/dist/socket/answers.d.ts.map +1 -0
- package/dist/socket/answers.js +20 -0
- package/dist/socket/lanes.d.ts +20 -0
- package/dist/socket/lanes.d.ts.map +1 -0
- package/dist/socket/lanes.js +77 -0
- package/dist/socket/reads.d.ts +10 -0
- package/dist/socket/reads.d.ts.map +1 -0
- package/dist/socket/reads.js +31 -0
- package/dist/socket/rooms.d.ts +41 -0
- package/dist/socket/rooms.d.ts.map +1 -0
- package/dist/socket/rooms.js +90 -0
- package/dist/socket/session.d.ts +38 -0
- package/dist/socket/session.d.ts.map +1 -0
- package/dist/socket/session.js +23 -0
- package/dist/socket.d.ts +69 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/socket.js +175 -0
- package/dist/source.d.ts +61 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +82 -0
- package/dist/status.d.ts +0 -6
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +0 -6
- package/dist/store/fences.d.ts +16 -0
- package/dist/store/fences.d.ts.map +1 -0
- package/dist/store/fences.js +26 -0
- package/dist/store/installs.d.ts +30 -0
- package/dist/store/installs.d.ts.map +1 -0
- package/dist/store/installs.js +34 -0
- package/dist/store/readiness.d.ts +10 -0
- package/dist/store/readiness.d.ts.map +1 -0
- package/dist/store/readiness.js +52 -0
- package/dist/store/records.d.ts +210 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/store/records.js +428 -0
- package/dist/store/room-held.d.ts +8 -0
- package/dist/store/room-held.d.ts.map +1 -0
- package/dist/store/room-held.js +17 -0
- package/dist/store/space.d.ts +11 -0
- package/dist/store/space.d.ts.map +1 -0
- package/dist/store/space.js +41 -0
- package/dist/store/watchers.d.ts +17 -0
- package/dist/store/watchers.d.ts.map +1 -0
- package/dist/store/watchers.js +56 -0
- package/dist/store/writes.d.ts +24 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js +125 -0
- package/dist/store.d.ts +107 -157
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +143 -395
- package/dist/stored.d.ts +59 -38
- package/dist/stored.d.ts.map +1 -1
- package/dist/stored.js +279 -210
- package/dist/surface.d.ts +88 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +224 -0
- package/dist/sync.d.ts +19 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +530 -0
- package/dist/tables.d.ts +116 -56
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +214 -98
- package/dist/tallies.d.ts +18 -0
- package/dist/tallies.d.ts.map +1 -0
- package/dist/tallies.js +129 -0
- package/dist/transfer.d.ts +0 -5
- package/dist/transfer.d.ts.map +1 -1
- package/dist/validation.d.ts +3 -4
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +42 -100
- package/dist/windows.d.ts +1 -12
- package/dist/windows.d.ts.map +1 -1
- package/dist/windows.js +2 -75
- package/dist/wire.d.ts +21 -9
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +10 -4
- package/package.json +3 -2
- package/dist/fence.d.ts +0 -6
- package/dist/fence.d.ts.map +0 -1
- package/dist/fence.js +0 -10
- package/dist/fulltext.d.ts +0 -27
- package/dist/fulltext.d.ts.map +0 -1
- package/dist/fulltext.js +0 -370
- package/dist/words.d.ts +0 -19
- package/dist/words.d.ts.map +0 -1
- package/dist/words.js +0 -156
package/dist/rows.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { governing } from './collection.js';
|
|
3
|
-
import { definitionOf } from './model.js';
|
|
1
|
+
import { byCodePoint, documentFacts, indexed, parse } from '@agentshouse/mdmodel';
|
|
2
|
+
import { definitionsAt, governing } from './collection.js';
|
|
4
3
|
function keyOf(...parts) {
|
|
5
4
|
return `${parts.join('\u0000')}\u0000`;
|
|
6
5
|
}
|
|
@@ -19,196 +18,60 @@ export function markdownPath(path) {
|
|
|
19
18
|
export function folderOf(path) {
|
|
20
19
|
return path.slice(0, Math.max(path.lastIndexOf('/'), 0));
|
|
21
20
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const keys = [first];
|
|
25
|
-
const gaps = [[]];
|
|
26
|
-
for (const segment of rest) {
|
|
27
|
-
if (ARRAY_INDEX.test(segment)) {
|
|
28
|
-
gaps.at(-1).push(segment);
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
keys.push(segment);
|
|
32
|
-
gaps.push([]);
|
|
33
|
-
}
|
|
34
|
-
const places = gaps
|
|
35
|
-
.map((gap, at) => {
|
|
36
|
-
const open = at < gaps.length - 1 ? reach !== 'exact' : reach === 'link';
|
|
37
|
-
return `/${gap.map((number) => `[.:]${number}`).join('')}.${open ? '*' : ''}`;
|
|
38
|
-
})
|
|
39
|
-
.join('');
|
|
40
|
-
return {
|
|
41
|
-
keys: keys.map((key) => `/${key}`).join(''),
|
|
42
|
-
places,
|
|
43
|
-
glob: /[[*]/u.test(places),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function placesOf({ done, head, tail }) {
|
|
47
|
-
return `${done}/${head}${tail}.`;
|
|
48
|
-
}
|
|
49
|
-
function throughOf(keys, places) {
|
|
50
|
-
const gaps = places.split('/').slice(1);
|
|
51
|
-
return keys
|
|
52
|
-
.split('/')
|
|
53
|
-
.slice(1)
|
|
54
|
-
.map((key, at) => `/${key}${gaps[at].replace(/\.\d*/gu, '').replaceAll(':', '/')}`)
|
|
55
|
-
.join('');
|
|
56
|
-
}
|
|
57
|
-
function plainObject(value) {
|
|
58
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
59
|
-
}
|
|
60
|
-
function compared(reading, exact, value) {
|
|
61
|
-
if (!reading.references.has(exact))
|
|
62
|
-
return value;
|
|
63
|
-
return (typeof value === 'string' ? target(reading.path, value) : null) ?? undefined;
|
|
64
|
-
}
|
|
65
|
-
export function kindOf(value) {
|
|
66
|
-
if (value === undefined)
|
|
67
|
-
return 'undefined';
|
|
68
|
-
if (value === null)
|
|
69
|
-
return 'null';
|
|
70
|
-
if (Array.isArray(value))
|
|
71
|
-
return 'array';
|
|
72
|
-
if (typeof value === 'object')
|
|
73
|
-
return 'object';
|
|
74
|
-
return typeof value;
|
|
75
|
-
}
|
|
76
|
-
function scalarOf(value) {
|
|
77
|
-
if (typeof value === 'string' || typeof value === 'number')
|
|
21
|
+
function byKey(_key, value) {
|
|
22
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
78
23
|
return value;
|
|
79
|
-
|
|
80
|
-
return value ? 1 : 0;
|
|
81
|
-
if (Array.isArray(value))
|
|
82
|
-
return JSON.stringify(value);
|
|
83
|
-
return null;
|
|
24
|
+
return Object.fromEntries(Object.entries(value).sort(([one], [other]) => byCodePoint(one, other)));
|
|
84
25
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
87
|
-
keys,
|
|
88
|
-
places,
|
|
89
|
-
item: -1,
|
|
90
|
-
kind: kindOf(value),
|
|
91
|
-
value: scalarOf(value),
|
|
92
|
-
size: Array.isArray(value) ? value.length : null,
|
|
93
|
-
});
|
|
94
|
-
if (!Array.isArray(value))
|
|
95
|
-
return;
|
|
96
|
-
value.forEach((item, index) => {
|
|
97
|
-
const itemKind = kindOf(item);
|
|
98
|
-
reading.values.push({
|
|
99
|
-
keys,
|
|
100
|
-
places,
|
|
101
|
-
item: index,
|
|
102
|
-
kind: itemKind,
|
|
103
|
-
value: itemKind === 'array' ? null : scalarOf(item),
|
|
104
|
-
size: null,
|
|
105
|
-
});
|
|
106
|
-
});
|
|
26
|
+
function fieldsText(fields) {
|
|
27
|
+
return JSON.stringify(fields, byKey);
|
|
107
28
|
}
|
|
108
|
-
function
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
:
|
|
112
|
-
const places = placesOf(at);
|
|
113
|
-
held(reading, at.keys, places, value);
|
|
114
|
-
if (typeof value !== 'string' || !reading.references.has(at.exact))
|
|
115
|
-
return;
|
|
116
|
-
reading.links.push({
|
|
117
|
-
kind: 'field',
|
|
118
|
-
keys: at.keys,
|
|
119
|
-
places,
|
|
120
|
-
target: value,
|
|
121
|
-
field: throughOf(at.keys, places),
|
|
29
|
+
export function writtenFacts(path, content, composition) {
|
|
30
|
+
const model = governing(composition, path);
|
|
31
|
+
const facts = documentFacts(path, parse(content, path, definitionsAt(composition, path)), {
|
|
32
|
+
types: model.status === 'unavailable' ? {} : model.types,
|
|
122
33
|
});
|
|
34
|
+
return facts === null
|
|
35
|
+
? null
|
|
36
|
+
: { ...facts, fields: JSON.parse(fieldsText(facts.fields)) };
|
|
123
37
|
}
|
|
124
|
-
function
|
|
125
|
-
record(reading, node, at);
|
|
126
|
-
if (Array.isArray(node)) {
|
|
127
|
-
node.forEach((item, index) => walk(reading, item, { ...at, tail: `${at.tail}.${index}`, exact: `${at.exact}/${index}` }));
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
if (!plainObject(node))
|
|
131
|
-
return;
|
|
132
|
-
for (const [key, value] of Object.entries(node)) {
|
|
133
|
-
const segment = escapePointer(key);
|
|
134
|
-
const exact = `${at.exact}/${segment}`;
|
|
135
|
-
walk(reading, value, ARRAY_INDEX.test(segment)
|
|
136
|
-
? { ...at, head: `${at.head}${at.tail.replaceAll('.', ':')}:${segment}`, tail: '', exact }
|
|
137
|
-
: { keys: `${at.keys}/${segment}`, done: placesOf(at), head: '', tail: '', exact });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function bodyTargets(path, content) {
|
|
141
|
-
const seen = new Set();
|
|
142
|
-
const found = [];
|
|
143
|
-
for (const { target: reached } of bodyLinks(bodyAfterFrontmatter(content), path)) {
|
|
144
|
-
if (seen.has(reached))
|
|
145
|
-
continue;
|
|
146
|
-
seen.add(reached);
|
|
147
|
-
found.push({ kind: 'body', keys: '', places: '', target: reached, field: '' });
|
|
148
|
-
}
|
|
149
|
-
return found;
|
|
150
|
-
}
|
|
151
|
-
function typedRows(path, content, document, composition) {
|
|
152
|
-
const definition = definitionOf(governing(composition, path), document.type);
|
|
153
|
-
const reading = {
|
|
154
|
-
path,
|
|
155
|
-
references: new Set(definition === undefined ? [] : references(document, definition).map((one) => one.pointer)),
|
|
156
|
-
values: [],
|
|
157
|
-
links: [],
|
|
158
|
-
};
|
|
159
|
-
for (const [name, value] of Object.entries(document.fields)) {
|
|
160
|
-
const segment = escapePointer(name);
|
|
161
|
-
walk(reading, value, {
|
|
162
|
-
keys: `/${segment}`,
|
|
163
|
-
done: '',
|
|
164
|
-
head: '',
|
|
165
|
-
tail: '',
|
|
166
|
-
exact: `/${segment}`,
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
const links = reading.links;
|
|
170
|
-
if (definition !== undefined) {
|
|
171
|
-
const sectioned = new Set();
|
|
172
|
-
for (const { target: reached } of sectionReferences(path, content, definition)) {
|
|
173
|
-
if (reached === null || sectioned.has(reached))
|
|
174
|
-
continue;
|
|
175
|
-
sectioned.add(reached);
|
|
176
|
-
links.push({ kind: 'section', keys: '', places: '', target: reached, field: '' });
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return { values: reading.values, links: [...links, ...bodyTargets(path, content)] };
|
|
180
|
-
}
|
|
181
|
-
function read(path, content) {
|
|
38
|
+
export function described(path, content, facts) {
|
|
182
39
|
const folder = folderOf(path);
|
|
183
|
-
const unread = {
|
|
184
|
-
if (content === null)
|
|
185
|
-
return {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const
|
|
189
|
-
if (!markdownPath(path)
|
|
190
|
-
return {
|
|
191
|
-
}
|
|
192
|
-
const document = parsed.frontmatter;
|
|
40
|
+
const unread = { type: null, fields: null, links: null, folder };
|
|
41
|
+
if (content === null)
|
|
42
|
+
return { ...unread, declared: null, queried: true };
|
|
43
|
+
if (facts === null)
|
|
44
|
+
return { ...unread, declared: null, queried: !markdownPath(path) };
|
|
45
|
+
const links = JSON.stringify(facts.links);
|
|
46
|
+
if (!markdownPath(path))
|
|
47
|
+
return { ...unread, declared: facts.type, queried: true, links };
|
|
193
48
|
return {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
},
|
|
201
|
-
document,
|
|
49
|
+
type: facts.type,
|
|
50
|
+
declared: facts.type,
|
|
51
|
+
queried: true,
|
|
52
|
+
folder,
|
|
53
|
+
fields: fieldsText(facts.fields),
|
|
54
|
+
links,
|
|
202
55
|
};
|
|
203
56
|
}
|
|
204
|
-
export function
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const
|
|
213
|
-
|
|
57
|
+
export function heldOf(path, content, facts) {
|
|
58
|
+
if (content === null || facts === null)
|
|
59
|
+
return { type: null, fields: null, links: [] };
|
|
60
|
+
return markdownPath(path)
|
|
61
|
+
? { type: facts.type, fields: facts.fields, links: facts.links }
|
|
62
|
+
: { type: null, fields: null, links: facts.links };
|
|
63
|
+
}
|
|
64
|
+
export function derived(path, held, composition) {
|
|
65
|
+
const stored = held.links.map((target) => ({
|
|
66
|
+
kind: 'link',
|
|
67
|
+
keys: '',
|
|
68
|
+
places: '',
|
|
69
|
+
target,
|
|
70
|
+
field: '',
|
|
71
|
+
}));
|
|
72
|
+
if (held.type === null || held.fields === null)
|
|
73
|
+
return { values: [], links: stored };
|
|
74
|
+
const definition = definitionsAt(composition, path)(held.type);
|
|
75
|
+
const { values, links: fields } = indexed(path, held.fields, definition);
|
|
76
|
+
return { values, links: [...fields, ...stored] };
|
|
214
77
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RoomDeclaration, TypedPath } from './adapter.js';
|
|
2
|
+
import type { RuntimeShell } from './durability.js';
|
|
3
|
+
import type { LiveConversations } from './conversation-live.js';
|
|
4
|
+
import type { WriteRule } from './declaration.js';
|
|
5
|
+
import type { FiguresRead } from './figures.js';
|
|
6
|
+
import type { LiveQueries } from './live.js';
|
|
7
|
+
import type { Log } from './log.js';
|
|
8
|
+
import type { ModelState } from './model.js';
|
|
9
|
+
import type { ReadAnswers } from './reads.js';
|
|
10
|
+
import type { Recovery } from './recovery.js';
|
|
11
|
+
import type { RuntimeSocket } from './socket.js';
|
|
12
|
+
import type { HeldCover, Store } from './store.js';
|
|
13
|
+
import type { schemaTypes } from './attached-model.js';
|
|
14
|
+
export type Runtime = {
|
|
15
|
+
readonly store: Store;
|
|
16
|
+
readonly socket: RuntimeSocket;
|
|
17
|
+
readonly journal: Log;
|
|
18
|
+
readonly recovery: Recovery;
|
|
19
|
+
readonly shell: RuntimeShell;
|
|
20
|
+
readonly localSaves: boolean;
|
|
21
|
+
readonly roomTypes: Parameters<typeof schemaTypes>[1];
|
|
22
|
+
readonly builtIn: ModelState;
|
|
23
|
+
readonly typedPaths: readonly TypedPath[];
|
|
24
|
+
readonly writeRule: (declaration: RoomDeclaration) => WriteRule;
|
|
25
|
+
readonly usableWhenHeld: readonly string[];
|
|
26
|
+
readonly build: string;
|
|
27
|
+
readonly conversations: LiveConversations;
|
|
28
|
+
readonly liveQueries: LiveQueries<HeldCover>;
|
|
29
|
+
readonly figures: FiguresRead;
|
|
30
|
+
readonly lastAnswers: ReadAnswers;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,SAAS,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/save.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type Validation } from '@agentshouse/mdmodel';
|
|
2
|
-
import type {
|
|
3
|
-
import { type
|
|
2
|
+
import type { ProviderLimit } from './adapter.js';
|
|
3
|
+
import { type ChangeBatch, type WrittenBy } from './change.js';
|
|
4
4
|
import { type Composition } from './collection.js';
|
|
5
|
+
import type { WriteRule } from './declaration.js';
|
|
5
6
|
import { type Layer } from './overlay.js';
|
|
6
|
-
import type { VisibleLayer } from './replica.js';
|
|
7
|
-
import type
|
|
7
|
+
import type { ReplicaRecord, VisibleLayer } from './replica.js';
|
|
8
|
+
import { type ChangedPart, type RoomDraftRecord, type SavedDraft } from './room-draft.js';
|
|
8
9
|
export type SaveRefusal = {
|
|
9
10
|
code: string;
|
|
10
11
|
retryable: boolean;
|
|
@@ -13,91 +14,45 @@ export type SaveRefusal = {
|
|
|
13
14
|
referrers?: readonly string[];
|
|
14
15
|
parts?: readonly ChangedPart[];
|
|
15
16
|
};
|
|
16
|
-
export type
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
providerLimits: readonly ProviderLimit[];
|
|
23
|
-
visible: VisibleLayer;
|
|
24
|
-
folders: ReadonlySet<string>;
|
|
25
|
-
handle: string;
|
|
26
|
-
changes: readonly Change[];
|
|
27
|
-
bases: readonly Precondition[];
|
|
28
|
-
queued?: ReadonlySet<string>;
|
|
29
|
-
writtenBy?: WrittenBy;
|
|
30
|
-
unmodeled: boolean;
|
|
31
|
-
validate: Validator;
|
|
17
|
+
export type SaveAsk = {
|
|
18
|
+
readonly saved: readonly SavedDraft[];
|
|
19
|
+
readonly consumed: ReadonlySet<string>;
|
|
20
|
+
readonly writtenBy?: WrittenBy;
|
|
21
|
+
readonly local: boolean;
|
|
22
|
+
readonly providerLimits: readonly ProviderLimit[];
|
|
32
23
|
};
|
|
33
|
-
export type
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
export type SavingRoom = {
|
|
25
|
+
readonly record: ReplicaRecord;
|
|
26
|
+
readonly rule: WriteRule;
|
|
27
|
+
readonly composition: Composition;
|
|
28
|
+
readonly queue: readonly ChangeBatch[];
|
|
29
|
+
readonly changeable: ReadonlySet<string>;
|
|
30
|
+
readonly saved: ReadonlyMap<string, readonly SavedDraft[]>;
|
|
31
|
+
readonly replay: (queue: readonly ChangeBatch[]) => Generator<number, VisibleLayer, void>;
|
|
32
|
+
readonly folders: ReadonlySet<string>;
|
|
33
|
+
readonly modelled: boolean;
|
|
34
|
+
readonly drafts: ReadonlyMap<string, RoomDraftRecord>;
|
|
35
|
+
readonly validate: Validator;
|
|
37
36
|
};
|
|
38
|
-
export type
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export declare function rewriting(batch: ChangeBatch, locator: string): boolean;
|
|
45
|
-
export declare function effectiveIn(batch: ChangeBatch, locator: string, visible: VisibleLayer): Generator<number, ChangeBatch, void>;
|
|
46
|
-
export declare function queuedDocuments(queue: readonly ChangeBatch[]): ReadonlySet<string>;
|
|
47
|
-
export type Requeued = {
|
|
48
|
-
kind: 'requeued';
|
|
49
|
-
queue: readonly ChangeBatch[];
|
|
50
|
-
changes: readonly Change[];
|
|
51
|
-
queued: ReadonlySet<string>;
|
|
52
|
-
withdrawn: ReadonlyMap<string, ChangeBatch | null>;
|
|
53
|
-
owners: ReadonlySet<string>;
|
|
54
|
-
} | {
|
|
55
|
-
kind: 'refused';
|
|
56
|
-
refusal: SaveRefusal;
|
|
37
|
+
export type PlannedRoom = {
|
|
38
|
+
readonly locator: string;
|
|
39
|
+
readonly queue: readonly ChangeBatch[];
|
|
40
|
+
readonly saved: ReadonlyMap<string, readonly SavedDraft[]>;
|
|
41
|
+
readonly consumed: readonly string[];
|
|
42
|
+
readonly carried: readonly RoomDraftRecord[];
|
|
57
43
|
};
|
|
58
|
-
export type
|
|
59
|
-
kind: '
|
|
60
|
-
|
|
61
|
-
queue: readonly ChangeBatch[];
|
|
44
|
+
export type SavePlan = {
|
|
45
|
+
readonly kind: 'refused';
|
|
46
|
+
readonly refusal: SaveRefusal;
|
|
62
47
|
} | {
|
|
63
|
-
kind: '
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
type VisibleOver = (queue: readonly ChangeBatch[]) => Generator<number, VisibleLayer, void>;
|
|
67
|
-
export declare function requeuing(queue: readonly ChangeBatch[], changes: readonly Change[], visible: VisibleLayer, changeable: (batch: ChangeBatch) => boolean, state: VisibleOver): Generator<number, Requeued, void>;
|
|
68
|
-
export declare function joined(queue: readonly ChangeBatch[], owner: ChangeBatch, extra: ChangeBatch): Joining;
|
|
69
|
-
export declare function limiting(queue: readonly ChangeBatch[], batch: ChangeBatch, limits: readonly ProviderLimit[], state: VisibleOver): Generator<number, SaveRefusal | null, void>;
|
|
70
|
-
export declare const MOVE_DOCUMENTS = "move-documents";
|
|
71
|
-
export type MoveSide = {
|
|
72
|
-
room: string;
|
|
73
|
-
handle: string;
|
|
74
|
-
baseRoomVersion: string;
|
|
75
|
-
composition: Composition;
|
|
76
|
-
operations: OperationScopes;
|
|
77
|
-
providerOwnedPaths: readonly string[];
|
|
78
|
-
visible: VisibleLayer;
|
|
79
|
-
folders: ReadonlySet<string>;
|
|
80
|
-
queued: ReadonlySet<string>;
|
|
81
|
-
unmodeled: boolean;
|
|
82
|
-
validate: Validator;
|
|
48
|
+
readonly kind: 'planned';
|
|
49
|
+
readonly identifier: string;
|
|
50
|
+
readonly rooms: readonly PlannedRoom[];
|
|
83
51
|
};
|
|
84
|
-
export type
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}[];
|
|
91
|
-
providerLimits: readonly ProviderLimit[];
|
|
92
|
-
local: boolean;
|
|
93
|
-
writtenBy?: WrittenBy;
|
|
94
|
-
};
|
|
95
|
-
export type MoveResult = {
|
|
96
|
-
kind: 'moved';
|
|
97
|
-
leaving: ChangeBatch;
|
|
98
|
-
arriving: ChangeBatch;
|
|
99
|
-
} | Refusing;
|
|
100
|
-
export declare function buildMove(input: MoveInput): Promise<MoveResult>;
|
|
101
|
-
export declare function buildBatch(input: SaveInput): Promise<BatchResult>;
|
|
102
|
-
export {};
|
|
52
|
+
export type Validator = (resulting: Layer, touched: readonly string[]) => Promise<Validation>;
|
|
53
|
+
export declare function providerRewritten(batch: ChangeBatch, visible: VisibleLayer): Generator<number, ChangeBatch, void>;
|
|
54
|
+
export declare function rewriting(batch: ChangeBatch, locator: string): boolean;
|
|
55
|
+
export declare function effectiveIn(batch: ChangeBatch, locator: string, visible: VisibleLayer): Generator<number, ChangeBatch, void>;
|
|
56
|
+
export declare function destination(locator: string, saved: readonly SavedDraft[]): string | null;
|
|
57
|
+
export declare function planSave(ask: SaveAsk, room: SavingRoom, into?: SavingRoom): Promise<SavePlan>;
|
|
103
58
|
//# sourceMappingURL=save.d.ts.map
|
package/dist/save.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../src/save.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../src/save.ts"],"names":[],"mappings":"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"}
|