@agentshouse/mdruntime 0.1.0-c7b0ab1aa40a3 → 0.1.0-c7bd7ca3faee4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +40 -19
- package/README.md +9 -9
- package/dist/adapter.d.ts +8 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +15 -2
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +1 -0
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +35 -0
- package/dist/connection.d.ts +4 -2
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +54 -15
- package/dist/host.d.ts +1 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/memory.d.ts +2 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +8 -0
- package/dist/model.d.ts +7 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +2 -0
- package/dist/paths.d.ts +0 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +0 -16
- package/dist/query.d.ts +1 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +49 -19
- package/dist/react.d.ts +22 -14
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -6
- package/dist/read-side.d.ts.map +1 -1
- package/dist/read-side.js +102 -46
- package/dist/replica.d.ts +3 -3
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +4 -3
- package/dist/rows.d.ts +2 -1
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +77 -37
- package/dist/save.d.ts +1 -0
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +90 -43
- package/dist/store.d.ts +5 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +13 -2
- package/dist/wire.d.ts +1 -0
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +1 -0
- package/package.json +2 -2
package/dist/save.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { definitionOf
|
|
2
|
-
import { apply, links, parse, retarget, serialize, target, } from '@agentshouse/mdmodel';
|
|
1
|
+
import { definitionOf } from './model.js';
|
|
2
|
+
import { apply, ATTACHMENT, links, parse, pointerSegments, references, relative, relativize, retarget, serialize, target, } from '@agentshouse/mdmodel';
|
|
3
3
|
import { immutable, } from './change.js';
|
|
4
4
|
import { governing, parseCollection, validateCollection, } from './collection.js';
|
|
5
5
|
import { changeBatchIdentity } from './identity.js';
|
|
6
6
|
import { overlay } from './overlay.js';
|
|
7
|
-
import { covered, normalize
|
|
7
|
+
import { covered, normalize } from './paths.js';
|
|
8
8
|
function refuse(rule, file, location) {
|
|
9
9
|
return {
|
|
10
10
|
kind: 'refused',
|
|
@@ -15,18 +15,34 @@ function refuse(rule, file, location) {
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
function repointed(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
18
|
+
function repointed(document, definition, from, to, moves, settled) {
|
|
19
|
+
const parsed = parse(document.content, from);
|
|
20
|
+
if (!parsed.ok)
|
|
21
|
+
return [];
|
|
22
|
+
let next = parsed.document;
|
|
23
|
+
const names = new Set();
|
|
24
|
+
for (const { pointer, value } of definition === undefined
|
|
25
|
+
? []
|
|
26
|
+
: references(document, definition)) {
|
|
27
|
+
const [name = ''] = pointerSegments(pointer);
|
|
28
|
+
const named = target(from, value);
|
|
29
|
+
if (named === null || settled.has(`${from} ${name}`))
|
|
30
|
+
continue;
|
|
31
|
+
const destination = moves.get(named) ?? named;
|
|
32
|
+
if (target(to, value) === destination)
|
|
33
|
+
continue;
|
|
34
|
+
const applied = apply(next, {
|
|
35
|
+
kind: 'reference',
|
|
36
|
+
pointer,
|
|
37
|
+
value: retarget(value, relative(to, destination)),
|
|
38
|
+
prior: value,
|
|
39
|
+
});
|
|
40
|
+
if (applied.outcome !== 'applied')
|
|
41
|
+
continue;
|
|
42
|
+
next = applied.document;
|
|
43
|
+
names.add(name);
|
|
22
44
|
}
|
|
23
|
-
|
|
24
|
-
return undefined;
|
|
25
|
-
const named = target(from, value);
|
|
26
|
-
if (named === null)
|
|
27
|
-
return undefined;
|
|
28
|
-
const destination = moves.get(named) ?? named;
|
|
29
|
-
return target(to, value) === destination ? undefined : retarget(value, relative(to, destination));
|
|
45
|
+
return [...names].map((name) => ({ kind: 'field', path: from, name, value: next.fields[name] }));
|
|
30
46
|
}
|
|
31
47
|
function edited(document, path, changes) {
|
|
32
48
|
let next = document;
|
|
@@ -119,14 +135,7 @@ function rewrites(changes, visible) {
|
|
|
119
135
|
continue;
|
|
120
136
|
const moved = moves.get(path) ?? path;
|
|
121
137
|
const definition = definitionOf(governing(visible.collection.composition, path), document.type);
|
|
122
|
-
|
|
123
|
-
if (!referenceField(spec) || settled.has(`${path} ${name}`))
|
|
124
|
-
continue;
|
|
125
|
-
const value = repointed(document.fields[name], path, moved, moves);
|
|
126
|
-
if (value === undefined)
|
|
127
|
-
continue;
|
|
128
|
-
added.push({ kind: 'field', path, name, value });
|
|
129
|
-
}
|
|
138
|
+
added.push(...repointed(document, definition, path, moved, moves, settled));
|
|
130
139
|
const relinked = relinks(path, moved, edited(document, path, merged), moves);
|
|
131
140
|
if (relinked.kind === 'refused')
|
|
132
141
|
return relinked;
|
|
@@ -163,18 +172,6 @@ export function providerRewritten(batch, visible) {
|
|
|
163
172
|
...anticipated(batch.changes, batch.preconditions, rewritten.changes, visible),
|
|
164
173
|
};
|
|
165
174
|
}
|
|
166
|
-
function targets(value, from) {
|
|
167
|
-
const values = Array.isArray(value) ? value : [value];
|
|
168
|
-
const resolved = [];
|
|
169
|
-
for (const item of values) {
|
|
170
|
-
if (typeof item !== 'string')
|
|
171
|
-
continue;
|
|
172
|
-
const named = target(from, item);
|
|
173
|
-
if (named !== null)
|
|
174
|
-
resolved.push(named);
|
|
175
|
-
}
|
|
176
|
-
return resolved;
|
|
177
|
-
}
|
|
178
175
|
function incoming(collection, removed) {
|
|
179
176
|
const found = new Map();
|
|
180
177
|
const note = (target, file) => {
|
|
@@ -186,14 +183,13 @@ function incoming(collection, removed) {
|
|
|
186
183
|
};
|
|
187
184
|
for (const [path, document] of Object.entries(collection.documents)) {
|
|
188
185
|
const definition = definitionOf(governing(collection.composition, path), document.type);
|
|
189
|
-
for (const
|
|
190
|
-
if (
|
|
186
|
+
for (const { value, to } of definition === undefined ? [] : references(document, definition)) {
|
|
187
|
+
if (to.includes(ATTACHMENT))
|
|
191
188
|
continue;
|
|
192
|
-
|
|
189
|
+
const named = target(path, value);
|
|
190
|
+
if (named !== null)
|
|
193
191
|
note(named, path);
|
|
194
192
|
}
|
|
195
|
-
for (const link of links(document, path))
|
|
196
|
-
note(link.target, path);
|
|
197
193
|
}
|
|
198
194
|
const [first] = [...found.keys()].sort();
|
|
199
195
|
if (first === undefined)
|
|
@@ -365,19 +361,70 @@ function exceeded(limits, changes, resulting) {
|
|
|
365
361
|
}
|
|
366
362
|
return null;
|
|
367
363
|
}
|
|
364
|
+
function shellRelative(text, path, handle, definition) {
|
|
365
|
+
if (!text.includes(`/rooms/${handle}/`))
|
|
366
|
+
return null;
|
|
367
|
+
const parsed = parse(text, path);
|
|
368
|
+
if (!parsed.ok)
|
|
369
|
+
return null;
|
|
370
|
+
const result = relativize(parsed.document, path, handle, definition(parsed.document.type));
|
|
371
|
+
return result.outcome === 'applied' && result.document.content !== text ? result.document : null;
|
|
372
|
+
}
|
|
373
|
+
function relativeField(path, name, value, handle, definition) {
|
|
374
|
+
const opened = parse('---\n---\n');
|
|
375
|
+
if (definition === undefined ||
|
|
376
|
+
!opened.ok ||
|
|
377
|
+
!JSON.stringify(value ?? null).includes(`/rooms/${handle}/`))
|
|
378
|
+
return value;
|
|
379
|
+
const held = apply(opened.document, { kind: 'field', name, value, prior: undefined });
|
|
380
|
+
if (held.outcome !== 'applied')
|
|
381
|
+
return value;
|
|
382
|
+
const result = relativize(held.document, path, handle, definition);
|
|
383
|
+
return result.outcome === 'applied' ? result.document.fields[name] : value;
|
|
384
|
+
}
|
|
385
|
+
function relativeChanges(input) {
|
|
386
|
+
const { handle, composition, visible } = input;
|
|
387
|
+
const typed = (path) => (type) => definitionOf(governing(composition, path), type);
|
|
388
|
+
const body = (path, text) => shellRelative(text, path, handle, () => undefined)?.content ?? text;
|
|
389
|
+
return input.changes.map((change) => {
|
|
390
|
+
const definition = typed(change.path);
|
|
391
|
+
if (change.kind === 'field') {
|
|
392
|
+
const type = visible.collection.documents[change.path]?.type;
|
|
393
|
+
const value = relativeField(change.path, change.name, change.value, handle, definition(type));
|
|
394
|
+
return value === change.value ? change : { ...change, value };
|
|
395
|
+
}
|
|
396
|
+
if (change.kind === 'section' || change.kind === 'preamble') {
|
|
397
|
+
const value = body(change.path, change.value);
|
|
398
|
+
return value === change.value ? change : { ...change, value };
|
|
399
|
+
}
|
|
400
|
+
if (change.kind === 'replace' || (change.kind === 'create' && 'content' in change)) {
|
|
401
|
+
const content = shellRelative(change.content, change.path, handle, definition)?.content ?? change.content;
|
|
402
|
+
return content === change.content ? change : { ...change, content };
|
|
403
|
+
}
|
|
404
|
+
if (change.kind !== 'create')
|
|
405
|
+
return change;
|
|
406
|
+
const type = typeof change.fields.type === 'string' ? change.fields.type : undefined;
|
|
407
|
+
const fields = Object.fromEntries(Object.entries(change.fields).map(([name, value]) => [
|
|
408
|
+
name,
|
|
409
|
+
relativeField(change.path, name, value, handle, definition(type)),
|
|
410
|
+
]));
|
|
411
|
+
const sections = Object.fromEntries(Object.entries(change.sections).map(([name, value]) => [name, body(change.path, value)]));
|
|
412
|
+
return { ...change, fields, sections };
|
|
413
|
+
});
|
|
414
|
+
}
|
|
368
415
|
export function buildBatch(input) {
|
|
369
|
-
const
|
|
416
|
+
const changes = relativeChanges(input);
|
|
417
|
+
const structural = changes.find((change) => change.kind === 'move' || change.kind === 'remove');
|
|
370
418
|
if (structural !== undefined &&
|
|
371
419
|
Object.entries(input.visible.collection.documents).some(([path, document]) => document.type !== undefined &&
|
|
372
420
|
document.type !== 'any' &&
|
|
373
421
|
governing(input.composition, path).status === 'unavailable'))
|
|
374
422
|
return refuse('model-unavailable', structural.path);
|
|
375
|
-
if (
|
|
423
|
+
if (changes.length === 0)
|
|
376
424
|
return refuse('no-change');
|
|
377
|
-
const rewritten = rewrites(
|
|
425
|
+
const rewritten = rewrites(changes, input.visible);
|
|
378
426
|
if (rewritten.kind === 'refused')
|
|
379
427
|
return rewritten;
|
|
380
|
-
const changes = input.changes;
|
|
381
428
|
const refusal = guard(changes, input);
|
|
382
429
|
if (refusal !== null)
|
|
383
430
|
return refusal;
|
package/dist/store.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { ModelState } from './model.js';
|
|
2
|
-
import type { Capability, HeadChange, OperationScopes, ProviderLimit, ReplicaAdmission, RoomAttachment, TypedSelection } from './adapter.js';
|
|
2
|
+
import type { Capability, HeadChange, Member, OperationScopes, ProviderLimit, ReplicaAdmission, RoomAttachment, TypedSelection } from './adapter.js';
|
|
3
3
|
import type { AcceptedMessage } from './adapter.js';
|
|
4
4
|
import type { ChangeBatch } from './change.js';
|
|
5
5
|
import type { ChatDraftFile } from './file.js';
|
|
6
6
|
import type { Submission } from './outcome.js';
|
|
7
7
|
import type { RoomDraftRecord, SavedDraft } from './room-draft.js';
|
|
8
|
+
export declare const STORE_SCHEMA = 20;
|
|
8
9
|
export type ReplicaRecord = {
|
|
9
10
|
locator: string;
|
|
10
11
|
name: string;
|
|
12
|
+
handle: string;
|
|
11
13
|
operations: OperationScopes;
|
|
12
14
|
replica: ReplicaAdmission;
|
|
13
15
|
model: ModelState;
|
|
@@ -78,6 +80,8 @@ export type RuntimeStore = {
|
|
|
78
80
|
providerLimits(): Promise<readonly ProviderLimit[]>;
|
|
79
81
|
capabilities(): Promise<readonly Capability[]>;
|
|
80
82
|
declare(limits: readonly ProviderLimit[], capabilities: readonly Capability[]): Promise<void>;
|
|
83
|
+
member(): Promise<Member | null>;
|
|
84
|
+
keepMember(member: Member | null): Promise<void>;
|
|
81
85
|
queues(): Promise<readonly QueueRecord[]>;
|
|
82
86
|
submit(locator: string, id: string, submission: Submission, lost: boolean): Promise<void>;
|
|
83
87
|
accept(locator: string, id: string, roomVersion: string): Promise<void>;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -12,7 +12,8 @@ const CONVERSATIONS = 'conversations';
|
|
|
12
12
|
const MESSAGES = 'messages';
|
|
13
13
|
const CHAT_DRAFTS = 'chatDrafts';
|
|
14
14
|
const CURRENT = 'current';
|
|
15
|
-
const
|
|
15
|
+
const MEMBER = 'member';
|
|
16
|
+
export const STORE_SCHEMA = 20;
|
|
16
17
|
function settled(request) {
|
|
17
18
|
return new Promise((resolve, reject) => {
|
|
18
19
|
request.onsuccess = () => resolve(request.result);
|
|
@@ -77,7 +78,7 @@ export function removeRuntimeStore() {
|
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
80
|
export async function openRuntimeStore() {
|
|
80
|
-
const opening = indexedDB.open(DATABASE,
|
|
81
|
+
const opening = indexedDB.open(DATABASE, STORE_SCHEMA);
|
|
81
82
|
opening.onupgradeneeded = () => {
|
|
82
83
|
const database = opening.result;
|
|
83
84
|
for (const name of [...database.objectStoreNames])
|
|
@@ -262,6 +263,16 @@ export async function openRuntimeStore() {
|
|
|
262
263
|
capabilities,
|
|
263
264
|
}));
|
|
264
265
|
},
|
|
266
|
+
async member() {
|
|
267
|
+
const transaction = database.transaction(DECLARATIONS, 'readonly');
|
|
268
|
+
const held = await settled(transaction.objectStore(DECLARATIONS).get(MEMBER));
|
|
269
|
+
return held ?? null;
|
|
270
|
+
},
|
|
271
|
+
async keepMember(member) {
|
|
272
|
+
const transaction = database.transaction(DECLARATIONS, 'readwrite');
|
|
273
|
+
transaction.objectStore(DECLARATIONS).put(member, MEMBER);
|
|
274
|
+
await completed(transaction);
|
|
275
|
+
},
|
|
265
276
|
async queues() {
|
|
266
277
|
const transaction = database.transaction([ROOMS, PENDING_CHANGES], 'readonly');
|
|
267
278
|
const [rooms, pending] = await Promise.all([
|
package/dist/wire.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ declare const TOPICS: {
|
|
|
44
44
|
readonly 'deployment-facts': 'runtime';
|
|
45
45
|
readonly 'sync-status': 'within';
|
|
46
46
|
readonly 'service-mode': 'runtime';
|
|
47
|
+
readonly member: 'runtime';
|
|
47
48
|
readonly query: 'within';
|
|
48
49
|
readonly queue: 'within';
|
|
49
50
|
readonly 'room-drafts': 'within';
|
package/dist/wire.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACjG,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E,QAAA,MAAM,OAAO;oBACJ,QAAQ;oBACR,QAAQ;qBACP,QAAQ;oBACT,QAAQ;mBACT,QAAQ;sBACL,QAAQ;mBACX,SAAS;sBACN,QAAQ;kBACZ,OAAO;0BACC,SAAS;0BACT,SAAS;+BACJ,QAAQ;+BACR,QAAQ;gCACP,QAAQ;kCACN,QAAQ;kCACR,KAAK;mCACJ,KAAK;kCACN,QAAQ;kCACR,QAAQ;oCACN,QAAQ;kCACV,QAAQ;oCACN,QAAQ;uCACL,QAAQ;kCACb,QAAQ;oCACN,QAAQ;oCACR,QAAQ;gCACZ,QAAQ;kCACN,QAAQ;CACyB,CAAC;AAEzD,QAAA,MAAM,MAAM;oBACH,QAAQ;mCACO,SAAS;6BACf,SAAS;iCACL,SAAS;4BACd,QAAQ;6BACP,SAAS;
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
|
package/dist/wire.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentshouse/mdruntime",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-c7bd7ca3faee4",
|
|
4
4
|
"description": "The headless core of MD App",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"LICENSE"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@agentshouse/mdmodel": "0.1.0-
|
|
44
|
+
"@agentshouse/mdmodel": "0.1.0-c896b3d9398b1",
|
|
45
45
|
"@tanstack/db": "0.9.2",
|
|
46
46
|
"minisearch": "7.2.0"
|
|
47
47
|
},
|