@agentshouse/mdruntime 0.1.0-ccbb89b0ca151 → 0.1.0-ccc0e3407f107

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 (138) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter.d.ts +74 -57
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/attached-model.d.ts +3 -10
  5. package/dist/attached-model.d.ts.map +1 -1
  6. package/dist/attached-model.js +29 -47
  7. package/dist/bootstrap.d.ts +11 -18
  8. package/dist/bootstrap.d.ts.map +1 -1
  9. package/dist/bootstrap.js +85 -108
  10. package/dist/chain.d.ts +2 -1
  11. package/dist/chain.d.ts.map +1 -1
  12. package/dist/client.d.ts +9 -5
  13. package/dist/client.d.ts.map +1 -1
  14. package/dist/client.js +2 -1
  15. package/dist/collection.d.ts +7 -4
  16. package/dist/collection.d.ts.map +1 -1
  17. package/dist/collection.js +23 -17
  18. package/dist/compile.d.ts +1 -6
  19. package/dist/compile.d.ts.map +1 -1
  20. package/dist/compile.js +91 -270
  21. package/dist/connection.d.ts +10 -9
  22. package/dist/connection.d.ts.map +1 -1
  23. package/dist/connection.js +1009 -1063
  24. package/dist/context.d.ts +2 -0
  25. package/dist/context.d.ts.map +1 -0
  26. package/dist/context.js +7 -0
  27. package/dist/conversation.d.ts +16 -13
  28. package/dist/conversation.d.ts.map +1 -1
  29. package/dist/conversation.js +229 -155
  30. package/dist/durability.d.ts +6 -1
  31. package/dist/durability.d.ts.map +1 -1
  32. package/dist/entry.d.ts +3 -2
  33. package/dist/entry.d.ts.map +1 -1
  34. package/dist/entry.js +17 -8
  35. package/dist/host.d.ts +3 -7
  36. package/dist/host.d.ts.map +1 -1
  37. package/dist/host.js +22 -27
  38. package/dist/identity.d.ts +0 -1
  39. package/dist/identity.d.ts.map +1 -1
  40. package/dist/identity.js +0 -3
  41. package/dist/index.d.ts +11 -7
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -1
  44. package/dist/job.d.ts +14 -0
  45. package/dist/job.d.ts.map +1 -0
  46. package/dist/job.js +28 -0
  47. package/dist/live.d.ts +2 -1
  48. package/dist/live.d.ts.map +1 -1
  49. package/dist/live.js +10 -7
  50. package/dist/media.d.ts +1 -1
  51. package/dist/media.d.ts.map +1 -1
  52. package/dist/media.js +27 -4
  53. package/dist/memory.d.ts +11 -5
  54. package/dist/memory.d.ts.map +1 -1
  55. package/dist/memory.js +167 -84
  56. package/dist/messages.d.ts +2 -2
  57. package/dist/messages.d.ts.map +1 -1
  58. package/dist/messages.js +15 -16
  59. package/dist/model.d.ts +8 -8
  60. package/dist/model.d.ts.map +1 -1
  61. package/dist/model.js +6 -12
  62. package/dist/observation.d.ts +3 -2
  63. package/dist/observation.d.ts.map +1 -1
  64. package/dist/observation.js +8 -3
  65. package/dist/outcome.d.ts +0 -3
  66. package/dist/outcome.d.ts.map +1 -1
  67. package/dist/outcome.js +3 -1
  68. package/dist/paths.d.ts +1 -0
  69. package/dist/paths.d.ts.map +1 -1
  70. package/dist/paths.js +4 -0
  71. package/dist/query.d.ts +4 -209
  72. package/dist/query.d.ts.map +1 -1
  73. package/dist/query.js +3 -505
  74. package/dist/reach.d.ts +9 -8
  75. package/dist/reach.d.ts.map +1 -1
  76. package/dist/reach.js +37 -48
  77. package/dist/react.d.ts +3 -1
  78. package/dist/react.d.ts.map +1 -1
  79. package/dist/readiness.d.ts +3 -17
  80. package/dist/readiness.d.ts.map +1 -1
  81. package/dist/readiness.js +4 -10
  82. package/dist/recovery.d.ts +1 -0
  83. package/dist/recovery.d.ts.map +1 -1
  84. package/dist/recovery.js +26 -0
  85. package/dist/refresh.d.ts +7 -5
  86. package/dist/refresh.d.ts.map +1 -1
  87. package/dist/refresh.js +29 -5
  88. package/dist/replica.d.ts +10 -8
  89. package/dist/replica.d.ts.map +1 -1
  90. package/dist/replica.js +29 -14
  91. package/dist/room-draft.d.ts +21 -5
  92. package/dist/room-draft.d.ts.map +1 -1
  93. package/dist/room-draft.js +98 -51
  94. package/dist/rows.d.ts +14 -21
  95. package/dist/rows.d.ts.map +1 -1
  96. package/dist/rows.js +48 -184
  97. package/dist/save.d.ts +2 -0
  98. package/dist/save.d.ts.map +1 -1
  99. package/dist/save.js +20 -12
  100. package/dist/search.d.ts +12 -63
  101. package/dist/search.d.ts.map +1 -1
  102. package/dist/search.js +9 -52
  103. package/dist/shared.d.ts +0 -1
  104. package/dist/shared.d.ts.map +1 -1
  105. package/dist/shared.js +0 -10
  106. package/dist/status.d.ts +4 -3
  107. package/dist/status.d.ts.map +1 -1
  108. package/dist/status.js +3 -1
  109. package/dist/store.d.ts +21 -34
  110. package/dist/store.d.ts.map +1 -1
  111. package/dist/store.js +34 -77
  112. package/dist/stored.d.ts +11 -34
  113. package/dist/stored.d.ts.map +1 -1
  114. package/dist/stored.js +158 -241
  115. package/dist/tables.d.ts +23 -48
  116. package/dist/tables.d.ts.map +1 -1
  117. package/dist/tables.js +29 -66
  118. package/dist/transfer.d.ts +0 -5
  119. package/dist/transfer.d.ts.map +1 -1
  120. package/dist/validation.d.ts +3 -4
  121. package/dist/validation.d.ts.map +1 -1
  122. package/dist/validation.js +42 -100
  123. package/dist/windows.d.ts +1 -12
  124. package/dist/windows.d.ts.map +1 -1
  125. package/dist/windows.js +2 -75
  126. package/dist/wire.d.ts +9 -4
  127. package/dist/wire.d.ts.map +1 -1
  128. package/dist/wire.js +3 -1
  129. package/package.json +2 -2
  130. package/dist/fulltext.d.ts +0 -27
  131. package/dist/fulltext.d.ts.map +0 -1
  132. package/dist/fulltext.js +0 -368
  133. package/dist/reads.d.ts +0 -11
  134. package/dist/reads.d.ts.map +0 -1
  135. package/dist/reads.js +0 -100
  136. package/dist/words.d.ts +0 -19
  137. package/dist/words.d.ts.map +0 -1
  138. package/dist/words.js +0 -150
@@ -1,13 +1,11 @@
1
- import { assess, checkDocument, parse, parseFrontmatter, resolves, verdicts, } from '@agentshouse/mdmodel';
2
- import { governing, selected } from './collection.js';
3
- import { sameTyping } from './model.js';
1
+ import { assess, parse, parseFrontmatter, verdicts, } from '@agentshouse/mdmodel';
2
+ import { selected } from './collection.js';
4
3
  import { paced, ROW_WEIGHT, yielded } from './turn.js';
5
4
  const NO_TYPES = { types: {} };
6
5
  function modelOf(model) {
7
6
  return model.status === 'unavailable' ? NO_TYPES : { types: model.types };
8
7
  }
9
- function typedText(content) {
10
- const read = parse(content);
8
+ function typedText(read) {
11
9
  return read.ok && read.document.type !== undefined && read.document.type !== 'any';
12
10
  }
13
11
  function partVerdict(part) {
@@ -29,10 +27,14 @@ export async function validatedCollection(walk, lookup, composition) {
29
27
  if (content === null)
30
28
  continue;
31
29
  const part = partOf(path);
32
- if (part.model.status === 'unavailable' && part.unmodeled === null && typedText(content)) {
30
+ const parsed = parse(content, path);
31
+ if (part.model.status === 'unavailable' && part.unmodeled === null && typedText(parsed)) {
33
32
  part.unmodeled = path;
34
33
  }
35
- const assessment = assess(path, content, false, modelOf(part.model), { anyRoom: true });
34
+ const assessment = assess(path, parsed, false, modelOf(part.model), {
35
+ anyRoom: true,
36
+ typedPaths: composition.typedPaths,
37
+ });
36
38
  assessed.push({ part, assessment });
37
39
  await pace(content.length + assessment.targets.length * ROW_WEIGHT);
38
40
  }
@@ -60,103 +62,43 @@ function declared(content) {
60
62
  const read = parseFrontmatter(content);
61
63
  return read.ok ? (read.frontmatter.type ?? 'any') : undefined;
62
64
  }
63
- function typedIn(content) {
64
- const type = declared(content);
65
- return type !== undefined && type !== 'any';
65
+ function shifted({ was, now }) {
66
+ return ((now === undefined) !== (was === undefined) ||
67
+ (now === null) !== (was === null) ||
68
+ declared(now) !== declared(was));
66
69
  }
67
- export function sameComposition(left, right) {
68
- return (sameTyping(left.model, right.model) &&
69
- (left.selection === null || right.selection === null
70
- ? left.selection === right.selection
71
- : sameTyping(left.selection.model, right.selection.model)) &&
72
- JSON.stringify(left.selection?.roots ?? null) === JSON.stringify(right.selection?.roots ?? null));
73
- }
74
- function checked(path, content, composition) {
75
- const model = governing(composition, path);
76
- return checkDocument(path, content, modelOf(model), { anyRoom: true });
77
- }
78
- async function reachingAll(checks, composition, next) {
79
- const targets = [
80
- ...new Set(checks.flatMap(({ check }) => check.ok ? check.references.flatMap(({ target }) => (target === null ? [] : [target])) : [])),
81
- ];
82
- const known = await next(targets);
70
+ const PAGE_TEXT = 1 << 20;
71
+ export async function validatedNeighbourhood(changes, composition, source) {
83
72
  const pace = paced();
84
- for (const { path, check } of checks) {
85
- if (!check.ok)
86
- return false;
87
- const part = (other) => selected(composition, other) === selected(composition, path);
88
- const resolved = check.references.every((reference) => resolves(reference, (other) => (part(other) ? known.get(other)?.type : undefined), (other) => part(other) && known.get(other)?.binary === true));
89
- if (!resolved)
90
- return false;
91
- await pace((check.references.length + 1) * ROW_WEIGHT);
73
+ const changedAt = new Set();
74
+ const moved = [];
75
+ for (const change of changes) {
76
+ changedAt.add(change.path);
77
+ if (shifted(change))
78
+ moved.push(change.path);
79
+ await pace((change.now?.length ?? 0) + (change.was?.length ?? 0) + ROW_WEIGHT);
92
80
  }
93
- return true;
94
- }
95
- export async function changedCleanly(changes, previous, composition, source) {
96
- if (!sameComposition(previous, composition))
97
- return false;
98
- const changedAt = new Map(changes.map((change) => [change.path, change]));
99
- const next = async (paths) => {
100
- const asked = paths.filter((path) => !changedAt.has(path));
101
- const known = new Map(await source.lookup(asked));
102
- for (const path of paths) {
103
- const change = changedAt.get(path);
104
- if (change === undefined)
81
+ const referring = moved.length === 0
82
+ ? []
83
+ : (await source.referrers(moved)).filter((path) => !changedAt.has(path));
84
+ const texts = await source.texts(referring);
85
+ const total = changes.length + referring.length;
86
+ let at = 0;
87
+ const walk = async () => {
88
+ const entries = [];
89
+ let text = 0;
90
+ while (at < total && text < PAGE_TEXT) {
91
+ const change = changes[at];
92
+ const path = change?.path ?? referring[at - changes.length];
93
+ const content = change === undefined ? texts.get(path) : change.now;
94
+ at += 1;
95
+ text += ROW_WEIGHT;
96
+ if (content === undefined || content === null)
105
97
  continue;
106
- if (change.now === undefined)
107
- known.delete(path);
108
- else
109
- known.set(path, { type: declared(change.now), binary: change.now === null });
98
+ entries.push({ path, content });
99
+ text += content.length;
110
100
  }
111
- return known;
101
+ return { entries, next: at < total ? String(at) : null };
112
102
  };
113
- const shifted = [];
114
- const checks = [];
115
- const pace = paced();
116
- for (const { path, was, now } of changes) {
117
- await pace((now?.length ?? 0) + (was?.length ?? 0) + ROW_WEIGHT);
118
- const modeled = governing(composition, path).status !== 'unavailable';
119
- if ((now === undefined) !== (was === undefined) ||
120
- declared(now) !== declared(was) ||
121
- (now === null) !== (was === null)) {
122
- shifted.push(path);
123
- }
124
- if (!modeled && typedIn(was) && !typedIn(now))
125
- return false;
126
- if (now === undefined)
127
- continue;
128
- if (now === null)
129
- return false;
130
- if (!modeled) {
131
- if (declared(now) === undefined)
132
- return false;
133
- if (typedIn(now))
134
- continue;
135
- const check = checked(path, now, composition);
136
- if (!check.ok)
137
- return false;
138
- checks.push({ path, check });
139
- continue;
140
- }
141
- checks.push({ path, check: checked(path, now, composition) });
142
- }
143
- if (!(await reachingAll(checks, composition, next)))
144
- return false;
145
- if (shifted.length === 0)
146
- return true;
147
- if (source.referrers === null)
148
- return false;
149
- const files = (await source.referrers(shifted)).filter((file) => !changedAt.has(file));
150
- if (files.length === 0)
151
- return true;
152
- const texts = await source.texts(files);
153
- const rechecked = [];
154
- for (const file of files) {
155
- const content = texts.get(file);
156
- if (content === undefined || content === null)
157
- return false;
158
- await pace(content.length + ROW_WEIGHT);
159
- rechecked.push({ path: file, check: checked(file, content, composition) });
160
- }
161
- return reachingAll(rechecked, composition, next);
103
+ return validatedCollection(walk, source.lookup, composition);
162
104
  }
package/dist/windows.d.ts CHANGED
@@ -1,22 +1,11 @@
1
1
  export declare const MAXIMUM_WINDOW = 1000;
2
- export declare const FROM_START = "[]";
2
+ export declare const FROM_START: string;
3
3
  export declare function capped(limit: number | null | undefined): number;
4
- export type Ordering = {
5
- readonly direction: 'asc' | 'desc';
6
- readonly nulls: 'first' | 'last';
7
- readonly stringSort: 'lexical' | 'locale';
8
- readonly locale: string | undefined;
9
- readonly localeOptions: Intl.CollatorOptions | undefined;
10
- };
11
4
  interface Placed {
12
5
  readonly position: string;
13
6
  readonly identity: string;
14
7
  }
15
8
  export declare function messageOrder(left: Placed, right: Placed): number;
16
9
  export declare function precedes(message: Placed, before: readonly [string, string] | null): boolean;
17
- export declare function byCodePoint(left: string, right: string): number;
18
- export declare function compared(left: unknown, right: unknown, ordering: Ordering): number;
19
- export declare function cursorOf(values: readonly unknown[]): string;
20
- export declare function decodedCursor(text: string): readonly unknown[] | null;
21
10
  export {};
22
11
  //# sourceMappingURL=windows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../src/windows.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,UAAU,MAAM;IACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,CAE3F;AAaD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/D;AA4BD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAMlF;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,GAAG,IAAI,CAOrE"}
1
+ {"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../src/windows.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,UAAU,MAAM;IACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,CAE3F"}
package/dist/windows.js CHANGED
@@ -1,5 +1,6 @@
1
+ import { cursorOf } from '@agentshouse/mdmodel';
1
2
  export const MAXIMUM_WINDOW = 1000;
2
- export const FROM_START = '[]';
3
+ export const FROM_START = cursorOf([]);
3
4
  export function capped(limit) {
4
5
  return limit == null ? MAXIMUM_WINDOW : Math.min(limit, MAXIMUM_WINDOW);
5
6
  }
@@ -13,77 +14,3 @@ export function messageOrder(left, right) {
13
14
  export function precedes(message, before) {
14
15
  return before === null || messageOrder(message, { position: before[0], identity: before[1] }) < 0;
15
16
  }
16
- function rank(value) {
17
- if (typeof value === 'boolean' || typeof value === 'number')
18
- return 1;
19
- if (typeof value === 'string')
20
- return 2;
21
- return Array.isArray(value) ? 3 : 4;
22
- }
23
- function unit(code) {
24
- if (code >= 0xd800 && code < 0xe000)
25
- return code + 0x2000;
26
- return code >= 0xe000 ? code - 0x800 : code;
27
- }
28
- export function byCodePoint(left, right) {
29
- for (let at = 0; at < Math.min(left.length, right.length); at += 1) {
30
- const ours = left.charCodeAt(at);
31
- const theirs = right.charCodeAt(at);
32
- if (ours !== theirs)
33
- return unit(ours) - unit(theirs);
34
- }
35
- return left.length - right.length;
36
- }
37
- function ascending(left, right, ordering) {
38
- if (left == null && right == null)
39
- return 0;
40
- if (left == null)
41
- return ordering.nulls === 'first' ? -1 : 1;
42
- if (right == null)
43
- return ordering.nulls === 'first' ? 1 : -1;
44
- const ranked = rank(left) - rank(right);
45
- if (ranked !== 0)
46
- return ranked;
47
- if (typeof left === 'string' && typeof right === 'string') {
48
- return ordering.stringSort === 'locale'
49
- ? left.localeCompare(right, ordering.locale, ordering.localeOptions)
50
- : byCodePoint(left, right);
51
- }
52
- if (Array.isArray(left) && Array.isArray(right)) {
53
- for (let at = 0; at < Math.min(left.length, right.length); at += 1) {
54
- const result = ascending(left[at], right[at], ordering);
55
- if (result !== 0)
56
- return result;
57
- }
58
- return left.length - right.length;
59
- }
60
- if (typeof left === 'object')
61
- return 0;
62
- const held = left;
63
- const other = right;
64
- if (held < other)
65
- return -1;
66
- if (held > other)
67
- return 1;
68
- return 0;
69
- }
70
- export function compared(left, right, ordering) {
71
- if (ordering.direction === 'asc')
72
- return ascending(left, right, ordering);
73
- return ascending(right, left, {
74
- ...ordering,
75
- nulls: ordering.nulls === 'first' ? 'last' : 'first',
76
- });
77
- }
78
- export function cursorOf(values) {
79
- return JSON.stringify(values);
80
- }
81
- export function decodedCursor(text) {
82
- try {
83
- const decoded = JSON.parse(text);
84
- return Array.isArray(decoded) ? decoded : null;
85
- }
86
- catch {
87
- return null;
88
- }
89
- }
package/dist/wire.d.ts CHANGED
@@ -82,6 +82,14 @@ declare const MEMBERS: {
82
82
  readonly reach: 'whole';
83
83
  readonly effect: 'write';
84
84
  };
85
+ readonly unsent: {
86
+ readonly reach: 'whole';
87
+ readonly effect: 'read';
88
+ };
89
+ readonly reset: {
90
+ readonly reach: 'whole';
91
+ readonly effect: 'write';
92
+ };
85
93
  readonly persistence: {
86
94
  readonly reach: 'runtime';
87
95
  readonly effect: 'read';
@@ -150,10 +158,6 @@ declare const MEMBERS: {
150
158
  readonly reach: 'within';
151
159
  readonly effect: 'action';
152
160
  };
153
- readonly 'conversation.cancel': {
154
- readonly reach: 'within';
155
- readonly effect: 'action';
156
- };
157
161
  readonly 'conversation.delete': {
158
162
  readonly reach: 'within';
159
163
  readonly effect: 'action';
@@ -180,6 +184,7 @@ declare const TOPICS: {
180
184
  readonly 'sync-status': 'within';
181
185
  readonly 'service-mode': 'runtime';
182
186
  readonly member: 'runtime';
187
+ readonly 'authority-changes': 'runtime';
183
188
  readonly query: 'within';
184
189
  readonly queue: 'within';
185
190
  readonly 'room-drafts': 'within';
@@ -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
@@ -17,6 +17,8 @@ const MEMBERS = {
17
17
  reached: { reach: 'within', effect: 'read' },
18
18
  log: { reach: 'whole', effect: 'read' },
19
19
  cleanUp: { reach: 'whole', effect: 'write' },
20
+ unsent: { reach: 'whole', effect: 'read' },
21
+ reset: { reach: 'whole', effect: 'write' },
20
22
  persistence: { reach: 'runtime', effect: 'read' },
21
23
  retry: { reach: 'runtime', effect: 'write' },
22
24
  reauthorize: { reach: 'runtime', effect: 'write' },
@@ -34,7 +36,6 @@ const MEMBERS = {
34
36
  'conversation.answer': { reach: 'within', effect: 'action' },
35
37
  'conversation.interrupt': { reach: 'within', effect: 'action' },
36
38
  'conversation.kill': { reach: 'within', effect: 'action' },
37
- 'conversation.cancel': { reach: 'within', effect: 'action' },
38
39
  'conversation.delete': { reach: 'within', effect: 'action' },
39
40
  'chatDraft.write': { reach: 'within', effect: 'write' },
40
41
  'chatDraft.prepend': { reach: 'within', effect: 'write' },
@@ -49,6 +50,7 @@ const TOPICS = {
49
50
  'sync-status': 'within',
50
51
  'service-mode': 'runtime',
51
52
  member: 'runtime',
53
+ 'authority-changes': 'runtime',
52
54
  query: 'within',
53
55
  queue: 'within',
54
56
  'room-drafts': 'within',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime",
3
- "version": "0.1.0-ccbb89b0ca151",
3
+ "version": "0.1.0-ccc0e3407f107",
4
4
  "description": "The headless core of MD App",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -54,7 +54,7 @@
54
54
  "LICENSE"
55
55
  ],
56
56
  "dependencies": {
57
- "@agentshouse/mdmodel": "0.1.0-cf6b1b0d279a5"
57
+ "@agentshouse/mdmodel": "0.1.0-c69a8c1d0563b"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "react": ">=18"
@@ -1,27 +0,0 @@
1
- import { type QueryRoom } from './compile.js';
2
- import type { Plan } from './query.js';
3
- import type { HitCursor, SearchWindow } from './search.js';
4
- import type { Connection } from './tables.js';
5
- export declare const SEARCH_TABLES: readonly string[];
6
- export type SearchAsk = {
7
- readonly text: string;
8
- readonly limit: number;
9
- readonly after: readonly [HitCursor, HitCursor] | null;
10
- readonly total: boolean;
11
- readonly documents: {
12
- readonly plan: Plan;
13
- readonly rooms: readonly QueryRoom[];
14
- readonly beneath: readonly {
15
- readonly key: number;
16
- readonly roots: readonly string[];
17
- }[];
18
- } | null;
19
- readonly conversations: readonly string[];
20
- };
21
- export declare function indexDocument(connection: Connection, id: number, path: string, content: string): void;
22
- export declare function indexMessage(connection: Connection, id: number, text: string): void;
23
- export declare function unindexDocuments(connection: Connection, ids: Iterable<number>): void;
24
- export declare function unindexMessages(connection: Connection, ids: Iterable<number>): void;
25
- export declare function unindexAll(connection: Connection): void;
26
- export declare function searched(connection: Connection, ask: SearchAsk): SearchWindow;
27
- //# sourceMappingURL=fulltext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fulltext.d.ts","sourceRoot":"","sources":["../src/fulltext.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAGV,SAAS,EAET,YAAY,EAEb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,aAAa,CAAC;AAmBrD,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAG1C,CAAC;AAsCF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;QACrC,QAAQ,CAAC,OAAO,EAAE,SAAS;YAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,EAAE,CAAC;KAC1F,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AA2CF,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAgBN;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOnF;AAWD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAEpF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAEnF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAIvD;AAgTD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,CAsB7E"}