@agentshouse/mdruntime 0.1.0-ca7c26c6bc27e → 0.1.0-cacb4c3f6734e

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.
Files changed (54) hide show
  1. package/AGENTS.md +53 -24
  2. package/README.md +10 -10
  3. package/dist/adapter.d.ts +24 -6
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +1 -9
  6. package/dist/bootstrap.d.ts.map +1 -1
  7. package/dist/bootstrap.js +1 -0
  8. package/dist/client.d.ts +3 -2
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +3 -10
  11. package/dist/connection.d.ts +7 -6
  12. package/dist/connection.d.ts.map +1 -1
  13. package/dist/connection.js +25 -46
  14. package/dist/conversation.d.ts +17 -6
  15. package/dist/conversation.d.ts.map +1 -1
  16. package/dist/conversation.js +167 -78
  17. package/dist/host.d.ts.map +1 -1
  18. package/dist/host.js +3 -11
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/memory.d.ts +2 -3
  22. package/dist/memory.d.ts.map +1 -1
  23. package/dist/memory.js +13 -7
  24. package/dist/model.d.ts +3 -6
  25. package/dist/model.d.ts.map +1 -1
  26. package/dist/model.js +4 -3
  27. package/dist/paths.d.ts +0 -1
  28. package/dist/paths.d.ts.map +1 -1
  29. package/dist/paths.js +0 -16
  30. package/dist/query.d.ts +1 -1
  31. package/dist/query.d.ts.map +1 -1
  32. package/dist/query.js +100 -33
  33. package/dist/reach.d.ts.map +1 -1
  34. package/dist/reach.js +9 -16
  35. package/dist/react.d.ts +32 -0
  36. package/dist/react.d.ts.map +1 -0
  37. package/dist/react.js +62 -0
  38. package/dist/read-side.d.ts.map +1 -1
  39. package/dist/read-side.js +102 -46
  40. package/dist/replica.d.ts +2 -3
  41. package/dist/replica.d.ts.map +1 -1
  42. package/dist/replica.js +5 -10
  43. package/dist/rows.d.ts +2 -1
  44. package/dist/rows.d.ts.map +1 -1
  45. package/dist/rows.js +75 -38
  46. package/dist/save.d.ts +1 -2
  47. package/dist/save.d.ts.map +1 -1
  48. package/dist/save.js +90 -48
  49. package/dist/store.d.ts +1 -0
  50. package/dist/store.d.ts.map +1 -1
  51. package/dist/wire.d.ts +1 -12
  52. package/dist/wire.d.ts.map +1 -1
  53. package/dist/wire.js +1 -15
  54. package/package.json +14 -2
package/dist/save.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { definitionOf } from './model.js';
2
- import { apply, links, parse, retarget, serialize, target, } from '@agentshouse/mdmodel';
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, relative } from './paths.js';
7
+ import { covered, normalize } from './paths.js';
8
8
  function refuse(rule, file, location) {
9
9
  return {
10
10
  kind: 'refused',
@@ -15,21 +15,34 @@ function refuse(rule, file, location) {
15
15
  },
16
16
  };
17
17
  }
18
- function referenceField(spec) {
19
- return spec.kind === 'reference' || (spec.kind === 'list' && spec.of.kind === 'reference');
20
- }
21
- function repointed(value, from, to, moves) {
22
- if (Array.isArray(value)) {
23
- const next = value.map((item) => repointed(item, from, to, moves) ?? item);
24
- return next.some((item, index) => item !== value[index]) ? next : undefined;
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);
25
44
  }
26
- if (typeof value !== 'string')
27
- return undefined;
28
- const named = target(from, value);
29
- if (named === null)
30
- return undefined;
31
- const destination = moves.get(named) ?? named;
32
- 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] }));
33
46
  }
34
47
  function edited(document, path, changes) {
35
48
  let next = document;
@@ -122,14 +135,7 @@ function rewrites(changes, visible) {
122
135
  continue;
123
136
  const moved = moves.get(path) ?? path;
124
137
  const definition = definitionOf(governing(visible.collection.composition, path), document.type);
125
- for (const [name, spec] of Object.entries(definition?.fields ?? {})) {
126
- if (!referenceField(spec) || settled.has(`${path} ${name}`))
127
- continue;
128
- const value = repointed(document.fields[name], path, moved, moves);
129
- if (value === undefined)
130
- continue;
131
- added.push({ kind: 'field', path, name, value });
132
- }
138
+ added.push(...repointed(document, definition, path, moved, moves, settled));
133
139
  const relinked = relinks(path, moved, edited(document, path, merged), moves);
134
140
  if (relinked.kind === 'refused')
135
141
  return relinked;
@@ -166,18 +172,6 @@ export function providerRewritten(batch, visible) {
166
172
  ...anticipated(batch.changes, batch.preconditions, rewritten.changes, visible),
167
173
  };
168
174
  }
169
- function targets(value, from) {
170
- const values = Array.isArray(value) ? value : [value];
171
- const resolved = [];
172
- for (const item of values) {
173
- if (typeof item !== 'string')
174
- continue;
175
- const named = target(from, item);
176
- if (named !== null)
177
- resolved.push(named);
178
- }
179
- return resolved;
180
- }
181
175
  function incoming(collection, removed) {
182
176
  const found = new Map();
183
177
  const note = (target, file) => {
@@ -189,14 +183,13 @@ function incoming(collection, removed) {
189
183
  };
190
184
  for (const [path, document] of Object.entries(collection.documents)) {
191
185
  const definition = definitionOf(governing(collection.composition, path), document.type);
192
- for (const [name, spec] of Object.entries(definition?.fields ?? {})) {
193
- if (!referenceField(spec))
186
+ for (const { value, to } of definition === undefined ? [] : references(document, definition)) {
187
+ if (to.includes(ATTACHMENT))
194
188
  continue;
195
- for (const named of targets(document.fields[name], path))
189
+ const named = target(path, value);
190
+ if (named !== null)
196
191
  note(named, path);
197
192
  }
198
- for (const link of links(document, path))
199
- note(link.target, path);
200
193
  }
201
194
  const [first] = [...found.keys()].sort();
202
195
  if (first === undefined)
@@ -368,26 +361,75 @@ function exceeded(limits, changes, resulting) {
368
361
  }
369
362
  return null;
370
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
+ }
371
415
  export function buildBatch(input) {
372
- const structural = input.changes.find((change) => change.kind === 'move' || change.kind === 'remove');
416
+ const changes = relativeChanges(input);
417
+ const structural = changes.find((change) => change.kind === 'move' || change.kind === 'remove');
373
418
  if (structural !== undefined &&
374
419
  Object.entries(input.visible.collection.documents).some(([path, document]) => document.type !== undefined &&
375
420
  document.type !== 'any' &&
376
421
  governing(input.composition, path).status === 'unavailable'))
377
422
  return refuse('model-unavailable', structural.path);
378
- if (input.changes.length === 0)
423
+ if (changes.length === 0)
379
424
  return refuse('no-change');
380
- const rewritten = rewrites(input.changes, input.visible);
425
+ const rewritten = rewrites(changes, input.visible);
381
426
  if (rewritten.kind === 'refused')
382
427
  return rewritten;
383
- const changes = input.rewriting === 'provider' ? input.changes : rewritten.changes;
384
428
  const refusal = guard(changes, input);
385
429
  if (refusal !== null)
386
430
  return refusal;
387
431
  const preconditions = preconditionsOf(changes, input.visible, input.bases);
388
- const predicted = input.rewriting === 'provider'
389
- ? anticipated(changes, preconditions, rewritten.changes, input.visible)
390
- : { changes, preconditions };
432
+ const predicted = anticipated(changes, preconditions, rewritten.changes, input.visible);
391
433
  const resulting = overlay(input.visible, [
392
434
  { id: '', baseRoomVersion: input.baseRoomVersion, ...predicted },
393
435
  ]);
package/dist/store.d.ts CHANGED
@@ -8,6 +8,7 @@ import type { RoomDraftRecord, SavedDraft } from './room-draft.js';
8
8
  export type ReplicaRecord = {
9
9
  locator: string;
10
10
  name: string;
11
+ handle: string;
11
12
  operations: OperationScopes;
12
13
  replica: ReplicaAdmission;
13
14
  model: ModelState;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/wire.d.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  import type { ConnectionRefusal } from './connection.js';
2
- export declare const RUNTIME_WIRE_PROTOCOL = 8;
3
- export declare const PROTOCOL_MISMATCH: ConnectionRefusal;
4
2
  export type RuntimePort = {
5
3
  postMessage(message: unknown): void;
6
4
  addEventListener(type: 'message' | 'close', listener: (event: {
@@ -51,6 +49,7 @@ declare const TOPICS: {
51
49
  readonly 'room-drafts': 'within';
52
50
  readonly presentation: 'app';
53
51
  readonly conversation: 'within';
52
+ readonly conversations: 'within';
54
53
  };
55
54
  export declare const WIRE_REACH: {
56
55
  readonly members: Readonly<Record<string, WireReach>>;
@@ -94,16 +93,6 @@ export type WireAnswer = {
94
93
  };
95
94
  export declare const AUTHORIZATION_ENDED = "the host authorization ended";
96
95
  export declare const PORT_CLOSED = "the port closed";
97
- export type WireEnvelope = {
98
- mdRuntime: number;
99
- message: WireRequest | WireAnswer;
100
- };
101
- export type Carried = {
102
- matching: boolean;
103
- message: unknown;
104
- };
105
- export declare function envelope(message: WireRequest | WireAnswer): WireEnvelope;
106
- export declare function carried(data: unknown): Carried | null;
107
96
  export declare function request(message: unknown): WireRequest | null;
108
97
  export declare function answer(message: unknown): WireAnswer | null;
109
98
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/dist/wire.js CHANGED
@@ -1,9 +1,3 @@
1
- export const RUNTIME_WIRE_PROTOCOL = 8;
2
- export const PROTOCOL_MISMATCH = {
3
- reason: 'client-host-protocol-mismatch',
4
- reauthorizationOffered: false,
5
- refusal: null,
6
- };
7
1
  const MEMBERS = {
8
2
  rooms: 'within',
9
3
  query: 'within',
@@ -46,19 +40,11 @@ const TOPICS = {
46
40
  'room-drafts': 'within',
47
41
  presentation: 'app',
48
42
  conversation: 'within',
43
+ conversations: 'within',
49
44
  };
50
45
  export const WIRE_REACH = { members: MEMBERS, topics: TOPICS };
51
46
  export const AUTHORIZATION_ENDED = 'the host authorization ended';
52
47
  export const PORT_CLOSED = 'the port closed';
53
- export function envelope(message) {
54
- return { mdRuntime: RUNTIME_WIRE_PROTOCOL, message };
55
- }
56
- export function carried(data) {
57
- if (typeof data !== 'object' || data === null || !('mdRuntime' in data))
58
- return null;
59
- const record = data;
60
- return { matching: record.mdRuntime === RUNTIME_WIRE_PROTOCOL, message: record.message };
61
- }
62
48
  function body(message) {
63
49
  if (typeof message !== 'object' || message === null)
64
50
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime",
3
- "version": "0.1.0-ca7c26c6bc27e",
3
+ "version": "0.1.0-cacb4c3f6734e",
4
4
  "description": "The headless core of MD App",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -28,6 +28,10 @@
28
28
  "types": "./dist/memory.d.ts",
29
29
  "import": "./dist/memory.js"
30
30
  },
31
+ "./react": {
32
+ "types": "./dist/react.d.ts",
33
+ "import": "./dist/react.js"
34
+ },
31
35
  "./package.json": "./package.json"
32
36
  },
33
37
  "files": [
@@ -37,8 +41,16 @@
37
41
  "LICENSE"
38
42
  ],
39
43
  "dependencies": {
40
- "@agentshouse/mdmodel": "0.1.0-c6b0c6dc1a195",
44
+ "@agentshouse/mdmodel": "0.1.0-c0bdbbc92d020",
41
45
  "@tanstack/db": "0.9.2",
42
46
  "minisearch": "7.2.0"
47
+ },
48
+ "peerDependencies": {
49
+ "react": ">=18"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "react": {
53
+ "optional": true
54
+ }
43
55
  }
44
56
  }