@agentshouse/mdruntime 0.1.0-c967d1ca66fee → 0.1.0-c96e80d38e5f0
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 +22 -9
- package/dist/adapter.d.ts +172 -49
- 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 +27 -11
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +184 -84
- 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 +41 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +34 -0
- package/dist/client.d.ts +34 -15
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +104 -8
- package/dist/collection.d.ts +10 -7
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +38 -79
- package/dist/compile.d.ts +16 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +789 -0
- package/dist/connection.d.ts +51 -17
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +3951 -907
- package/dist/conversation.d.ts +48 -19
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +726 -240
- 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 +4 -1
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +5 -0
- package/dist/entry.d.ts +20 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +152 -0
- package/dist/expectation.d.ts +21 -0
- package/dist/expectation.d.ts.map +1 -0
- package/dist/expectation.js +70 -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/host.d.ts +12 -3
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +125 -18
- 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 +9 -0
- package/dist/live.d.ts +22 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +123 -0
- package/dist/media.d.ts +8 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +218 -0
- package/dist/memory.d.ts +18 -7
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +231 -91
- package/dist/messages.d.ts +28 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +89 -0
- package/dist/model.d.ts +9 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +8 -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/opened.d.ts +22 -0
- package/dist/opened.d.ts.map +1 -0
- package/dist/opened.js +107 -0
- package/dist/outcome.d.ts +52 -4
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +46 -0
- package/dist/overlay.d.ts +15 -5
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +129 -177
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -0
- package/dist/phrase.d.ts +3 -0
- package/dist/phrase.d.ts.map +1 -0
- package/dist/phrase.js +8 -0
- package/dist/query.d.ts +72 -4
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +67 -7
- package/dist/reach.d.ts +16 -2
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +222 -56
- package/dist/react.d.ts +11 -7
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -17
- package/dist/readiness.d.ts +50 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +27 -0
- package/dist/recovery.d.ts +26 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +224 -0
- package/dist/refresh.d.ts +17 -14
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +155 -56
- package/dist/replica.d.ts +58 -33
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +310 -159
- package/dist/room-draft.d.ts +52 -5
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +261 -56
- package/dist/rows.d.ts +38 -35
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +178 -102
- package/dist/save.d.ts +70 -3
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +805 -147
- package/dist/search.d.ts +15 -55
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +10 -121
- 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 +15 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +421 -0
- package/dist/status.d.ts +5 -0
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +3 -1
- package/dist/store.d.ts +116 -80
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +355 -461
- package/dist/stored.d.ts +162 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +549 -0
- package/dist/tables.d.ts +353 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +585 -0
- package/dist/transfer.d.ts +0 -5
- package/dist/transfer.d.ts.map +1 -1
- 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 +29 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +101 -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 +166 -30
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +57 -29
- package/package.json +26 -15
- package/AGENTS.md +0 -269
- 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/room-draft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"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"}
|
package/dist/room-draft.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { apply, equalValue, frontmatterValue, parse, serialize } from '@agentshouse/mdmodel';
|
|
1
|
+
import { apply, equalValue, frontmatterValue, parse, serialize, } from '@agentshouse/mdmodel';
|
|
2
2
|
import { runtimeError } from './failure.js';
|
|
3
|
+
import { sha256 } from './digest.js';
|
|
4
|
+
import { binaryLocalId } from './identity.js';
|
|
3
5
|
import { normalize } from './paths.js';
|
|
4
6
|
export function returnedBy(kind) {
|
|
5
7
|
return { kind, code: kind, fields: {}, retryable: false };
|
|
@@ -7,52 +9,60 @@ export function returnedBy(kind) {
|
|
|
7
9
|
export function staleWrite(current) {
|
|
8
10
|
return { outcome: 'stale', code: 'stale', retryable: false, current };
|
|
9
11
|
}
|
|
10
|
-
function malformed() {
|
|
11
|
-
throw runtimeError('room-draft-malformed');
|
|
12
|
+
function malformed(at, needs) {
|
|
13
|
+
throw runtimeError('room-draft-malformed', at === undefined ? 'room-draft-malformed' : `room-draft-malformed at ${at}: ${needs}`);
|
|
12
14
|
}
|
|
13
15
|
function plain(value) {
|
|
14
16
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
15
17
|
}
|
|
16
|
-
function text(value) {
|
|
17
|
-
return typeof value === 'string' ? value : malformed();
|
|
18
|
+
function text(value, at) {
|
|
19
|
+
return typeof value === 'string' ? value : malformed(at, 'text');
|
|
18
20
|
}
|
|
19
|
-
function optionalText(value) {
|
|
20
|
-
return value === undefined ? undefined : text(value);
|
|
21
|
+
function optionalText(value, at) {
|
|
22
|
+
return value === undefined ? undefined : text(value, at);
|
|
21
23
|
}
|
|
22
|
-
function markdownBase(value) {
|
|
23
|
-
return value === null ? null : optionalText(value);
|
|
24
|
+
function markdownBase(value, at) {
|
|
25
|
+
return value === null ? null : optionalText(value, at);
|
|
24
26
|
}
|
|
25
|
-
function entries(value, each) {
|
|
27
|
+
function entries(value, at, each) {
|
|
26
28
|
if (!plain(value))
|
|
27
|
-
malformed();
|
|
29
|
+
malformed(at, 'an object of named values');
|
|
28
30
|
const read = {};
|
|
29
31
|
for (const [name, item] of Object.entries(value))
|
|
30
|
-
read[name] = each(item);
|
|
32
|
+
read[name] = each(item, `${at}.${name}`);
|
|
31
33
|
return read;
|
|
32
34
|
}
|
|
33
|
-
function
|
|
35
|
+
function frontmatter(item, at) {
|
|
36
|
+
return frontmatterValue(item) ? item : malformed(at, 'a frontmatter value');
|
|
37
|
+
}
|
|
38
|
+
function fieldValue(value, at) {
|
|
34
39
|
if (value === null)
|
|
35
40
|
return null;
|
|
36
41
|
if (!plain(value) || !Object.hasOwn(value, 'value') || !frontmatterValue(value.value)) {
|
|
37
|
-
malformed();
|
|
42
|
+
malformed(at, '{ value } with a frontmatter value, or null where the document lacks it');
|
|
38
43
|
}
|
|
39
44
|
return { value: value.value };
|
|
40
45
|
}
|
|
41
|
-
function textPart(value) {
|
|
46
|
+
function textPart(value, at) {
|
|
42
47
|
if (!plain(value))
|
|
43
|
-
malformed();
|
|
44
|
-
const base = optionalText(value.base);
|
|
45
|
-
return { value: text(value.value), ...(base === undefined ? {} : { base }) };
|
|
48
|
+
malformed(at, '{ value, base }');
|
|
49
|
+
const base = optionalText(value.base, `${at}.base`);
|
|
50
|
+
return { value: text(value.value, `${at}.value`), ...(base === undefined ? {} : { base }) };
|
|
46
51
|
}
|
|
47
|
-
function creationOf(value) {
|
|
52
|
+
function creationOf(value, at) {
|
|
48
53
|
if (!plain(value))
|
|
49
|
-
malformed();
|
|
54
|
+
malformed(at, '{ type, fields, sections }, or { markdown }');
|
|
50
55
|
if (Object.hasOwn(value, 'markdown'))
|
|
51
|
-
return { markdown: text(value.markdown) };
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
return { markdown: text(value.markdown, `${at}.markdown`) };
|
|
57
|
+
if (typeof value.type !== 'string')
|
|
58
|
+
malformed(`${at}.type`, 'a type name, or markdown in place of type, fields and sections');
|
|
59
|
+
return {
|
|
60
|
+
type: value.type,
|
|
61
|
+
fields: entries(value.fields, `${at}.fields`, frontmatter),
|
|
62
|
+
sections: entries(value.sections, `${at}.sections`, text),
|
|
63
|
+
};
|
|
54
64
|
}
|
|
55
|
-
const PART_NAMES =
|
|
65
|
+
const PART_NAMES = [
|
|
56
66
|
'fields',
|
|
57
67
|
'sections',
|
|
58
68
|
'preamble',
|
|
@@ -60,41 +70,59 @@ const PART_NAMES = new Set([
|
|
|
60
70
|
'creation',
|
|
61
71
|
'move',
|
|
62
72
|
'removal',
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
'file',
|
|
74
|
+
];
|
|
75
|
+
const NAMED_PARTS = `a part named ${PART_NAMES.slice(0, -1).join(', ')} or ${PART_NAMES.at(-1)}`;
|
|
76
|
+
export function readParts(value, path) {
|
|
77
|
+
if (!plain(value))
|
|
78
|
+
malformed(path, 'an object of parts');
|
|
79
|
+
const unknown = Object.keys(value).find((name) => !PART_NAMES.includes(name));
|
|
80
|
+
if (unknown !== undefined)
|
|
81
|
+
malformed(`${path} ${unknown}`, NAMED_PARTS);
|
|
67
82
|
const parts = {};
|
|
68
83
|
if (value.fields !== undefined) {
|
|
69
|
-
parts.fields = entries(value.fields, (item) => {
|
|
84
|
+
parts.fields = entries(value.fields, `${path} fields`, (item, at) => {
|
|
70
85
|
if (!plain(item) || !Object.hasOwn(item, 'value') || !frontmatterValue(item.value)) {
|
|
71
|
-
malformed();
|
|
86
|
+
malformed(at, '{ value, base } with a frontmatter value');
|
|
72
87
|
}
|
|
73
88
|
return item.base === undefined
|
|
74
89
|
? { value: item.value }
|
|
75
|
-
: { value: item.value, base: fieldValue(item.base) };
|
|
90
|
+
: { value: item.value, base: fieldValue(item.base, `${at}.base`) };
|
|
76
91
|
});
|
|
77
92
|
}
|
|
78
93
|
if (value.sections !== undefined)
|
|
79
|
-
parts.sections = entries(value.sections, textPart);
|
|
94
|
+
parts.sections = entries(value.sections, `${path} sections`, textPart);
|
|
80
95
|
if (value.preamble !== undefined)
|
|
81
|
-
parts.preamble = textPart(value.preamble);
|
|
96
|
+
parts.preamble = textPart(value.preamble, `${path} preamble`);
|
|
82
97
|
if (value.markdown !== undefined)
|
|
83
|
-
parts.markdown = textPart(value.markdown);
|
|
98
|
+
parts.markdown = textPart(value.markdown, `${path} markdown`);
|
|
84
99
|
if (value.creation !== undefined)
|
|
85
|
-
parts.creation = creationOf(value.creation);
|
|
100
|
+
parts.creation = creationOf(value.creation, `${path} creation`);
|
|
86
101
|
if (value.move !== undefined) {
|
|
87
102
|
if (!plain(value.move))
|
|
88
|
-
malformed();
|
|
89
|
-
const base = markdownBase(value.move.base);
|
|
90
|
-
|
|
103
|
+
malformed(`${path} move`, '{ to, room, base }');
|
|
104
|
+
const base = markdownBase(value.move.base, `${path} move.base`);
|
|
105
|
+
const room = optionalText(value.move.room, `${path} move.room`);
|
|
106
|
+
parts.move = {
|
|
107
|
+
to: text(value.move.to, `${path} move.to`),
|
|
108
|
+
...(room === undefined ? {} : { room }),
|
|
109
|
+
...(base === undefined ? {} : { base }),
|
|
110
|
+
};
|
|
91
111
|
}
|
|
92
112
|
if (value.removal !== undefined) {
|
|
93
113
|
if (!plain(value.removal))
|
|
94
|
-
malformed();
|
|
95
|
-
const base = markdownBase(value.removal.base);
|
|
114
|
+
malformed(`${path} removal`, '{ base }');
|
|
115
|
+
const base = markdownBase(value.removal.base, `${path} removal.base`);
|
|
96
116
|
parts.removal = base === undefined ? {} : { base };
|
|
97
117
|
}
|
|
118
|
+
if (value.file !== undefined) {
|
|
119
|
+
if (!plain(value.file) || !(value.file.blob instanceof Blob))
|
|
120
|
+
malformed(`${path} file`, '{ blob, base } with a Blob');
|
|
121
|
+
if (Object.keys(value).length > 1)
|
|
122
|
+
throw runtimeError('room-draft-file-exclusive');
|
|
123
|
+
const base = markdownBase(value.file.base, `${path} file.base`);
|
|
124
|
+
parts.file = base === undefined ? { blob: value.file.blob } : { blob: value.file.blob, base };
|
|
125
|
+
}
|
|
98
126
|
return parts;
|
|
99
127
|
}
|
|
100
128
|
function named(record) {
|
|
@@ -110,15 +138,76 @@ function kept(prior, base) {
|
|
|
110
138
|
throw runtimeError('room-draft-base-missing');
|
|
111
139
|
return base;
|
|
112
140
|
}
|
|
141
|
+
function movePart(current, move) {
|
|
142
|
+
return {
|
|
143
|
+
to: move.to,
|
|
144
|
+
...(move.room === undefined ? {} : { room: move.room }),
|
|
145
|
+
base: kept(current, move.base),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
113
148
|
function editsText(parts) {
|
|
114
149
|
return (parts.preamble !== undefined ||
|
|
115
150
|
named(parts.fields).length > 0 ||
|
|
116
151
|
named(parts.sections).length > 0);
|
|
117
152
|
}
|
|
118
|
-
|
|
153
|
+
function partNames(parts) {
|
|
154
|
+
const names = [];
|
|
155
|
+
for (const [name, part] of Object.entries(parts)) {
|
|
156
|
+
if (name === 'preamble' || name === 'markdown')
|
|
157
|
+
names.push(name);
|
|
158
|
+
else if ((name === 'fields' || name === 'sections') && plain(part))
|
|
159
|
+
names.push(...Object.keys(part).map((one) => `${name}/${one}`));
|
|
160
|
+
else
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
return names.sort().join('\u0000');
|
|
164
|
+
}
|
|
165
|
+
function withBaseOf(prior, part) {
|
|
166
|
+
return plain(part) && plain(prior) && Object.hasOwn(prior, 'base')
|
|
167
|
+
? { ...part, base: prior.base }
|
|
168
|
+
: part;
|
|
169
|
+
}
|
|
170
|
+
export function gatheredParts(earlier, later) {
|
|
171
|
+
if (!plain(earlier) || !plain(later))
|
|
172
|
+
return null;
|
|
173
|
+
const named = partNames(earlier);
|
|
174
|
+
if (named === null || named !== partNames(later))
|
|
175
|
+
return null;
|
|
176
|
+
return Object.fromEntries(Object.entries(later).map(([name, part]) => [
|
|
177
|
+
name,
|
|
178
|
+
name === 'fields' || name === 'sections'
|
|
179
|
+
? Object.fromEntries(Object.entries(part).map(([one, value]) => [
|
|
180
|
+
one,
|
|
181
|
+
withBaseOf(earlier[name][one], value),
|
|
182
|
+
]))
|
|
183
|
+
: withBaseOf(earlier[name], part),
|
|
184
|
+
]));
|
|
185
|
+
}
|
|
186
|
+
export function held(current, parts, file) {
|
|
119
187
|
if (parts.markdown !== undefined && editsText(parts)) {
|
|
120
188
|
throw runtimeError('room-draft-markdown-exclusive');
|
|
121
189
|
}
|
|
190
|
+
if (file !== undefined) {
|
|
191
|
+
if (current !== undefined && current.file === undefined) {
|
|
192
|
+
throw runtimeError('room-draft-file-exclusive');
|
|
193
|
+
}
|
|
194
|
+
return { file: { ...file, base: current?.file === undefined ? file.base : current.file.base } };
|
|
195
|
+
}
|
|
196
|
+
if (current?.file !== undefined) {
|
|
197
|
+
if (editsText(parts) ||
|
|
198
|
+
parts.markdown !== undefined ||
|
|
199
|
+
parts.creation !== undefined ||
|
|
200
|
+
(parts.move === undefined && parts.removal === undefined)) {
|
|
201
|
+
throw runtimeError('room-draft-file-exclusive');
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
file: current.file,
|
|
205
|
+
...(parts.move === undefined ? {} : { move: movePart(current.move, parts.move) }),
|
|
206
|
+
...(parts.removal === undefined
|
|
207
|
+
? {}
|
|
208
|
+
: { removal: { base: kept(current.removal, parts.removal.base) } }),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
122
211
|
const next = {};
|
|
123
212
|
const fields = named(parts.fields);
|
|
124
213
|
if (fields.length > 0) {
|
|
@@ -148,9 +237,8 @@ export function held(current, parts) {
|
|
|
148
237
|
}
|
|
149
238
|
if (parts.creation !== undefined)
|
|
150
239
|
next.creation = parts.creation;
|
|
151
|
-
if (parts.move !== undefined)
|
|
152
|
-
next.move =
|
|
153
|
-
}
|
|
240
|
+
if (parts.move !== undefined)
|
|
241
|
+
next.move = movePart(current?.move, parts.move);
|
|
154
242
|
if (parts.removal !== undefined) {
|
|
155
243
|
next.removal = { base: kept(current?.removal, parts.removal.base) };
|
|
156
244
|
}
|
|
@@ -198,17 +286,41 @@ export function underneath(parts, path, visible) {
|
|
|
198
286
|
report.move = markdown;
|
|
199
287
|
if (parts.removal !== undefined && markdown !== parts.removal.base)
|
|
200
288
|
report.removal = markdown;
|
|
289
|
+
if (parts.file !== undefined) {
|
|
290
|
+
const file = binaryBase(visible, path);
|
|
291
|
+
if (file !== parts.file.base || markdown !== null)
|
|
292
|
+
report.file = file;
|
|
293
|
+
}
|
|
201
294
|
return report;
|
|
202
295
|
}
|
|
203
|
-
|
|
296
|
+
const UNTYPED_MEDIA_TYPE = 'application/octet-stream';
|
|
297
|
+
export async function heldFile(blob, base) {
|
|
298
|
+
return {
|
|
299
|
+
localId: binaryLocalId(),
|
|
300
|
+
...(blob instanceof File ? { name: blob.name } : {}),
|
|
301
|
+
byteLength: blob.size,
|
|
302
|
+
mediaType: blob.type === '' ? UNTYPED_MEDIA_TYPE : blob.type,
|
|
303
|
+
sha256: await sha256(blob),
|
|
304
|
+
base,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
export function binaryBase(visible, path) {
|
|
308
|
+
const binary = visible?.binaries[path];
|
|
309
|
+
if (binary === undefined)
|
|
310
|
+
return null;
|
|
311
|
+
return visible?.revisions[path] ?? (binary.state === 'pending' ? binary.localId : null);
|
|
312
|
+
}
|
|
313
|
+
export function changedParts(path, parts, visible) {
|
|
314
|
+
const report = underneath(parts, path, visible);
|
|
315
|
+
const made = parts.file?.base === null;
|
|
204
316
|
return [
|
|
205
|
-
...(report.creation === undefined ? [] : [{ path, part: 'creation' }]),
|
|
206
317
|
...named(report.fields).map(([name]) => ({ path, part: 'field', name })),
|
|
207
318
|
...named(report.sections).map(([name]) => ({ path, part: 'section', name })),
|
|
208
319
|
...(report.preamble === undefined ? [] : [{ path, part: 'preamble' }]),
|
|
209
320
|
...(report.markdown === undefined ? [] : [{ path, part: 'markdown' }]),
|
|
210
321
|
...(report.move === undefined ? [] : [{ path, part: 'move' }]),
|
|
211
322
|
...(report.removal === undefined ? [] : [{ path, part: 'removal' }]),
|
|
323
|
+
...(report.file === undefined || made ? [] : [{ path, part: 'file' }]),
|
|
212
324
|
];
|
|
213
325
|
}
|
|
214
326
|
function joined(existing, returned) {
|
|
@@ -225,16 +337,15 @@ function frontmatterOf(fields) {
|
|
|
225
337
|
const opened = parse('---\n---\n');
|
|
226
338
|
if (!opened.ok)
|
|
227
339
|
return malformed();
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return serialize(document);
|
|
340
|
+
const next = apply(opened.document, fields.map(([name, part]) => ({
|
|
341
|
+
kind: 'field',
|
|
342
|
+
name,
|
|
343
|
+
value: part.value,
|
|
344
|
+
prior: undefined,
|
|
345
|
+
})));
|
|
346
|
+
return next.outcome === 'applied' ? serialize(next.document) : malformed();
|
|
236
347
|
}
|
|
237
|
-
function
|
|
348
|
+
export function partsAfter(markdown, parts) {
|
|
238
349
|
const fields = named(parts.fields);
|
|
239
350
|
const pieces = [
|
|
240
351
|
...(fields.length === 0 ? [] : [frontmatterOf(fields)]),
|
|
@@ -265,24 +376,57 @@ export function returnedInto(existing, returned) {
|
|
|
265
376
|
delete next.fields;
|
|
266
377
|
delete next.sections;
|
|
267
378
|
delete next.preamble;
|
|
268
|
-
const value =
|
|
379
|
+
const value = partsAfter(whole.value, existing.markdown === undefined ? existing : returned);
|
|
269
380
|
next.markdown = { value, base: whole.base };
|
|
270
381
|
}
|
|
271
382
|
const creation = existing.creation ?? returned.creation;
|
|
272
383
|
const move = existing.move ?? returned.move;
|
|
273
384
|
const removal = existing.removal ?? returned.removal;
|
|
385
|
+
const file = existing.file ?? returned.file;
|
|
274
386
|
if (creation !== undefined)
|
|
275
387
|
next.creation = creation;
|
|
276
388
|
if (move !== undefined)
|
|
277
389
|
next.move = move;
|
|
278
390
|
if (removal !== undefined)
|
|
279
391
|
next.removal = removal;
|
|
392
|
+
if (file !== undefined)
|
|
393
|
+
next.file = file;
|
|
280
394
|
return next;
|
|
281
395
|
}
|
|
282
396
|
export function moveTarget(move) {
|
|
283
397
|
const to = normalize(move.to);
|
|
284
398
|
return to === null || to === '' ? move.to : to;
|
|
285
399
|
}
|
|
400
|
+
export function readSavedParts(named) {
|
|
401
|
+
const read = named.map(({ path, parts }) => ({ path, parts: readParts(parts, path) }));
|
|
402
|
+
read.forEach(({ path }, at) => {
|
|
403
|
+
if (path === '' || normalize(path) !== path)
|
|
404
|
+
malformed(path, 'a path inside the Room, such as notes/a.md');
|
|
405
|
+
if (read.findIndex((one) => one.path === path) !== at)
|
|
406
|
+
malformed(path, 'each path once in one save');
|
|
407
|
+
});
|
|
408
|
+
return read;
|
|
409
|
+
}
|
|
410
|
+
export function partsChanges(named) {
|
|
411
|
+
const changes = [];
|
|
412
|
+
const preconditions = [];
|
|
413
|
+
for (const { path, parts } of readSavedParts(named)) {
|
|
414
|
+
const parted = held(undefined, parts);
|
|
415
|
+
const made = changesOf(path, parted);
|
|
416
|
+
changes.push(...made.changes);
|
|
417
|
+
preconditions.push(...made.bases);
|
|
418
|
+
for (const change of made.changes) {
|
|
419
|
+
if (change.kind === 'create')
|
|
420
|
+
preconditions.push({ kind: 'absent', path });
|
|
421
|
+
if (change.kind === 'move')
|
|
422
|
+
preconditions.push({ kind: 'absent', path: change.to });
|
|
423
|
+
}
|
|
424
|
+
const revision = parted.markdown?.base ?? parted.move?.base ?? parted.removal?.base;
|
|
425
|
+
if (typeof revision === 'string')
|
|
426
|
+
preconditions.push({ kind: 'revision', path, revision });
|
|
427
|
+
}
|
|
428
|
+
return { changes, preconditions };
|
|
429
|
+
}
|
|
286
430
|
export function changesOf(path, parts) {
|
|
287
431
|
const changes = [];
|
|
288
432
|
const bases = [];
|
|
@@ -312,9 +456,70 @@ export function changesOf(path, parts) {
|
|
|
312
456
|
if (parts.markdown !== undefined) {
|
|
313
457
|
changes.push({ kind: 'replace', path, content: parts.markdown.value });
|
|
314
458
|
}
|
|
459
|
+
if (parts.file !== undefined && parts.removal === undefined) {
|
|
460
|
+
const { base, name: _name, ...file } = parts.file;
|
|
461
|
+
const at = parts.move === undefined ? path : moveTarget(parts.move);
|
|
462
|
+
if (base !== null && at !== path)
|
|
463
|
+
changes.push({ kind: 'move', path, to: at });
|
|
464
|
+
changes.push({ kind: 'binary', path: at, ...file });
|
|
465
|
+
if (base === null)
|
|
466
|
+
bases.push({ kind: 'absent', path: at });
|
|
467
|
+
return { changes, bases };
|
|
468
|
+
}
|
|
469
|
+
if (parts.file?.base === null)
|
|
470
|
+
return { changes, bases };
|
|
315
471
|
if (parts.move !== undefined)
|
|
316
472
|
changes.push({ kind: 'move', path, to: moveTarget(parts.move) });
|
|
317
473
|
if (parts.removal !== undefined)
|
|
318
474
|
changes.push({ kind: 'remove', path });
|
|
319
475
|
return { changes, bases };
|
|
320
476
|
}
|
|
477
|
+
function rebased(before, after) {
|
|
478
|
+
return before === undefined ? after : { ...after, base: before.base };
|
|
479
|
+
}
|
|
480
|
+
function rebasedAll(before, after) {
|
|
481
|
+
return {
|
|
482
|
+
...before,
|
|
483
|
+
...Object.fromEntries(Object.entries(after).map(([name, part]) => [name, rebased(before?.[name], part)])),
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
export function joinedDraft(carried, saved) {
|
|
487
|
+
const draft = saved.find((item) => item.path === carried.path);
|
|
488
|
+
if (draft === undefined)
|
|
489
|
+
return carried;
|
|
490
|
+
const held = carried.parts;
|
|
491
|
+
const next = draft.parts;
|
|
492
|
+
return {
|
|
493
|
+
path: carried.path,
|
|
494
|
+
parts: {
|
|
495
|
+
...held,
|
|
496
|
+
...next,
|
|
497
|
+
...(next.fields === undefined ? {} : { fields: rebasedAll(held.fields, next.fields) }),
|
|
498
|
+
...(next.sections === undefined
|
|
499
|
+
? {}
|
|
500
|
+
: { sections: rebasedAll(held.sections, next.sections) }),
|
|
501
|
+
...(next.preamble === undefined ? {} : { preamble: rebased(held.preamble, next.preamble) }),
|
|
502
|
+
...(next.markdown === undefined ? {} : { markdown: rebased(held.markdown, next.markdown) }),
|
|
503
|
+
},
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
export function withdrawnDrafts(drafts, changes) {
|
|
507
|
+
return drafts.flatMap((draft) => {
|
|
508
|
+
const file = draft.parts.file;
|
|
509
|
+
const at = draft.parts.move?.to ?? draft.path;
|
|
510
|
+
const change = changes.find((item) => (item.kind === 'move' || item.kind === 'remove') && item.path === at);
|
|
511
|
+
if (file === undefined || change === undefined)
|
|
512
|
+
return [draft];
|
|
513
|
+
if (change.kind === 'move') {
|
|
514
|
+
return [
|
|
515
|
+
{
|
|
516
|
+
path: draft.path,
|
|
517
|
+
parts: change.to === draft.path ? { file } : { file, move: { to: change.to, base: null } },
|
|
518
|
+
},
|
|
519
|
+
];
|
|
520
|
+
}
|
|
521
|
+
return file.base === null
|
|
522
|
+
? []
|
|
523
|
+
: [{ path: draft.path, parts: { file, removal: { base: null } } }];
|
|
524
|
+
});
|
|
525
|
+
}
|
package/dist/rows.d.ts
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type { HeadChange } from './adapter.js';
|
|
1
|
+
import { type Outline } from '@agentshouse/mdmodel';
|
|
3
2
|
import { type Composition } from './collection.js';
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
values: Fields;
|
|
13
|
-
reached: Readonly<Record<string, readonly unknown[]>>;
|
|
14
|
-
directories: readonly string[];
|
|
15
|
-
body: string;
|
|
16
|
-
change: HeadChange | null;
|
|
3
|
+
export type ValueKind = 'string' | 'number' | 'boolean' | 'null' | 'array' | 'object' | 'undefined';
|
|
4
|
+
type HeldValue = {
|
|
5
|
+
readonly keys: string;
|
|
6
|
+
readonly places: string;
|
|
7
|
+
readonly item: number;
|
|
8
|
+
readonly kind: ValueKind;
|
|
9
|
+
readonly value: string | number | null;
|
|
10
|
+
readonly size: number | null;
|
|
17
11
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
kind:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
markdown: string;
|
|
12
|
+
type LinkKind = 'field' | 'section' | 'body';
|
|
13
|
+
type HeldLink = {
|
|
14
|
+
readonly kind: LinkKind;
|
|
15
|
+
readonly keys: string;
|
|
16
|
+
readonly places: string;
|
|
17
|
+
readonly target: string;
|
|
18
|
+
readonly field: string;
|
|
26
19
|
};
|
|
27
|
-
export type
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
export type Described = {
|
|
21
|
+
readonly type: string | null;
|
|
22
|
+
readonly declared: string | null;
|
|
23
|
+
readonly queried: boolean;
|
|
24
|
+
readonly folder: string;
|
|
25
|
+
readonly fields: string | null;
|
|
26
|
+
};
|
|
27
|
+
export type Derived = Described & {
|
|
28
|
+
readonly values: readonly HeldValue[];
|
|
29
|
+
readonly links: readonly HeldLink[];
|
|
37
30
|
};
|
|
38
|
-
export type Row = DocumentRow | BodyRow | ReferenceRow;
|
|
39
31
|
export declare function documentKey(room: string, path: string): string;
|
|
40
32
|
export declare function roomOfKey(key: string): string;
|
|
33
|
+
export declare function pathOfKey(key: string): string;
|
|
41
34
|
export declare function markdownPath(path: string): boolean;
|
|
42
|
-
export declare function
|
|
35
|
+
export declare function folderOf(path: string): string;
|
|
36
|
+
export type Reach = 'exact' | 'value' | 'link';
|
|
37
|
+
export type Placed = {
|
|
38
|
+
readonly keys: string;
|
|
39
|
+
readonly places: string;
|
|
40
|
+
readonly glob: boolean;
|
|
41
|
+
};
|
|
42
|
+
export declare function placedOf(pointer: string, reach: Reach): Placed;
|
|
43
|
+
export declare function kindOf(value: unknown): ValueKind;
|
|
44
|
+
export declare function described(path: string, content: string | null, outlined: Outline | null): Described;
|
|
45
|
+
export declare function derived(path: string, content: string | null, outlined: Outline | null, composition: Composition): Derived;
|
|
43
46
|
export {};
|
|
44
47
|
//# sourceMappingURL=rows.d.ts.map
|
package/dist/rows.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEpG,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;CACrC,CAAC;AAMF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAWD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhG,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAuB9D;AAwBD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAMhD;AAiKD,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,OAAO,GAAG,IAAI,GACvB,SAAS,CAEX;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,QAAQ,EAAE,OAAO,GAAG,IAAI,EACxB,WAAW,EAAE,WAAW,GACvB,OAAO,CAOT"}
|