@agentshouse/mdruntime 0.1.0-cb122f2ba154d → 0.1.0-cb1f56e16291b

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 (121) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter.d.ts +68 -48
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/bootstrap.d.ts +4 -7
  5. package/dist/bootstrap.d.ts.map +1 -1
  6. package/dist/bootstrap.js +19 -14
  7. package/dist/client.d.ts +4 -4
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +0 -1
  10. package/dist/collection.d.ts +0 -3
  11. package/dist/collection.d.ts.map +1 -1
  12. package/dist/collection.js +1 -17
  13. package/dist/compile.d.ts +1 -1
  14. package/dist/compile.d.ts.map +1 -1
  15. package/dist/compile.js +61 -43
  16. package/dist/connection.d.ts +3 -5
  17. package/dist/connection.d.ts.map +1 -1
  18. package/dist/connection.js +900 -861
  19. package/dist/context.d.ts +2 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +7 -0
  22. package/dist/conversation.d.ts +15 -13
  23. package/dist/conversation.d.ts.map +1 -1
  24. package/dist/conversation.js +136 -144
  25. package/dist/durability.d.ts +0 -1
  26. package/dist/durability.d.ts.map +1 -1
  27. package/dist/entry.d.ts.map +1 -1
  28. package/dist/entry.js +1 -0
  29. package/dist/host.d.ts +3 -6
  30. package/dist/host.d.ts.map +1 -1
  31. package/dist/host.js +17 -19
  32. package/dist/index.d.ts +8 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +4 -1
  35. package/dist/job.d.ts +14 -0
  36. package/dist/job.d.ts.map +1 -0
  37. package/dist/job.js +28 -0
  38. package/dist/live.d.ts +2 -1
  39. package/dist/live.d.ts.map +1 -1
  40. package/dist/live.js +10 -7
  41. package/dist/media.d.ts +1 -1
  42. package/dist/media.d.ts.map +1 -1
  43. package/dist/media.js +19 -9
  44. package/dist/memory.d.ts +8 -4
  45. package/dist/memory.d.ts.map +1 -1
  46. package/dist/memory.js +131 -81
  47. package/dist/messages.d.ts +2 -2
  48. package/dist/messages.d.ts.map +1 -1
  49. package/dist/messages.js +15 -16
  50. package/dist/model.d.ts +0 -1
  51. package/dist/model.d.ts.map +1 -1
  52. package/dist/model.js +0 -9
  53. package/dist/observation.d.ts +2 -2
  54. package/dist/observation.d.ts.map +1 -1
  55. package/dist/observation.js +7 -2
  56. package/dist/outcome.d.ts +0 -3
  57. package/dist/outcome.d.ts.map +1 -1
  58. package/dist/phrase.d.ts +3 -0
  59. package/dist/phrase.d.ts.map +1 -0
  60. package/dist/phrase.js +8 -0
  61. package/dist/query.d.ts +5 -1
  62. package/dist/query.d.ts.map +1 -1
  63. package/dist/query.js +20 -1
  64. package/dist/reach.d.ts +6 -5
  65. package/dist/reach.d.ts.map +1 -1
  66. package/dist/reach.js +30 -37
  67. package/dist/react.d.ts +1 -0
  68. package/dist/react.d.ts.map +1 -1
  69. package/dist/readiness.d.ts +2 -15
  70. package/dist/readiness.d.ts.map +1 -1
  71. package/dist/readiness.js +4 -10
  72. package/dist/recovery.d.ts +1 -0
  73. package/dist/recovery.d.ts.map +1 -1
  74. package/dist/recovery.js +26 -0
  75. package/dist/refresh.d.ts +7 -5
  76. package/dist/refresh.d.ts.map +1 -1
  77. package/dist/refresh.js +46 -6
  78. package/dist/replica.d.ts +0 -1
  79. package/dist/replica.d.ts.map +1 -1
  80. package/dist/replica.js +3 -4
  81. package/dist/room-draft.d.ts +2 -1
  82. package/dist/room-draft.d.ts.map +1 -1
  83. package/dist/room-draft.js +65 -52
  84. package/dist/rows.d.ts +3 -2
  85. package/dist/rows.d.ts.map +1 -1
  86. package/dist/rows.js +34 -29
  87. package/dist/search.d.ts +12 -63
  88. package/dist/search.d.ts.map +1 -1
  89. package/dist/search.js +9 -52
  90. package/dist/shared.d.ts +0 -1
  91. package/dist/shared.d.ts.map +1 -1
  92. package/dist/shared.js +0 -10
  93. package/dist/status.d.ts +0 -4
  94. package/dist/status.d.ts.map +1 -1
  95. package/dist/store.d.ts +15 -19
  96. package/dist/store.d.ts.map +1 -1
  97. package/dist/store.js +40 -39
  98. package/dist/stored.d.ts +33 -6
  99. package/dist/stored.d.ts.map +1 -1
  100. package/dist/stored.js +92 -111
  101. package/dist/tables.d.ts +34 -33
  102. package/dist/tables.d.ts.map +1 -1
  103. package/dist/tables.js +18 -54
  104. package/dist/transfer.d.ts +0 -5
  105. package/dist/transfer.d.ts.map +1 -1
  106. package/dist/validation.d.ts +3 -4
  107. package/dist/validation.d.ts.map +1 -1
  108. package/dist/validation.js +35 -96
  109. package/dist/wire.d.ts +1 -4
  110. package/dist/wire.d.ts.map +1 -1
  111. package/dist/wire.js +1 -1
  112. package/package.json +2 -2
  113. package/dist/fulltext.d.ts +0 -27
  114. package/dist/fulltext.d.ts.map +0 -1
  115. package/dist/fulltext.js +0 -370
  116. package/dist/reads.d.ts +0 -11
  117. package/dist/reads.d.ts.map +0 -1
  118. package/dist/reads.js +0 -91
  119. package/dist/words.d.ts +0 -19
  120. package/dist/words.d.ts.map +0 -1
  121. package/dist/words.js +0 -156
package/dist/tables.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { answerQuery } from './compile.js';
2
- import { searched, SEARCH_TABLES } from './fulltext.js';
3
2
  import { droppedMessages, forgottenMessages, heldConversations, keptMessages, messageCount, messageWindow, MESSAGE_TABLES, turnArrived, } from './messages.js';
4
- import { abandon, release, commit, counts, ended, entries, erase, fenceRooms, files, folders, opened, rederive, referrers, refreshing, REPLICA_TABLES, stage, typed, typedWithin, unrefresh, walk, } from './stored.js';
3
+ import { HOLDS_PHRASE, holdsPhrase } from './phrase.js';
4
+ import { abandon, release, commit, counts, ended, entries, erase, fenceRooms, files, folders, holdTexts, opened, rederive, referrers, refreshing, remembered, REPLICA_TABLES, stage, typed, typedWithin, unholdTexts, unrefresh, wanted, } from './stored.js';
5
5
  const STATEMENTS_HELD = 256;
6
6
  export function sqliteConnection(engine, database) {
7
7
  const decoder = new TextDecoder();
8
8
  const held = new Map();
9
+ database.createFunction(HOLDS_PHRASE, holdsPhrase, { arity: 2, deterministic: true });
9
10
  function prepared(sql) {
10
11
  if (sql.includes(';'))
11
12
  return null;
@@ -89,7 +90,6 @@ export const RUNTIME_TABLES = [
89
90
  'CREATE INDEX opened_files_name ON opened_files (locator, path, revision)',
90
91
  ...REPLICA_TABLES,
91
92
  ...MESSAGE_TABLES,
92
- ...SEARCH_TABLES,
93
93
  ];
94
94
  const OWNERS = ['authored_pending', 'authored_room_drafts', 'authored_calls'];
95
95
  const AUTHORED_KEYS = OWNERS.map((table) => `SELECT value FROM ${table}, json_each(${table}.files)`).join(' UNION ');
@@ -107,14 +107,11 @@ const READS = new Set([
107
107
  'replica.entries',
108
108
  'replica.typed',
109
109
  'replica.referrers',
110
- 'replica.walk',
111
110
  'replica.files',
112
111
  'replica.folders',
113
112
  'replica.typedWithin',
114
113
  'replica.counts',
115
- 'replica.search',
116
- 'replica.received',
117
- 'replica.receivedParts',
114
+ 'replica.wanted',
118
115
  'opened.find',
119
116
  'file.part',
120
117
  'conversation.held',
@@ -140,10 +137,11 @@ const KINDS = new Set([
140
137
  'replica.abandon',
141
138
  'replica.release',
142
139
  'replica.rederive',
140
+ 'replica.hold',
141
+ 'replica.remember',
142
+ 'replica.unhold',
143
143
  'replica.fact',
144
144
  'replica.present',
145
- 'replica.receive',
146
- 'replica.unreceive',
147
145
  'opened.begin',
148
146
  'opened.part',
149
147
  'opened.keep',
@@ -243,10 +241,7 @@ function heldOrder(connection, locator) {
243
241
  const [held] = connection.rows('SELECT ids FROM authored_queues WHERE locator = ?', [locator]);
244
242
  return held === undefined ? [] : JSON.parse(text(held.ids));
245
243
  }
246
- function keptRows(connection, { locator, order, added, founded, roomDrafts, consumedRoomDrafts, amendments }) {
247
- for (const { id, amendment } of amendments ?? []) {
248
- amended(connection, { kind: 'authored.amend', locator, id, amendment });
249
- }
244
+ function keptRows(connection, { locator, order, added, founded, roomDrafts, consumedRoomDrafts }) {
250
245
  for (const path of consumedRoomDrafts ?? []) {
251
246
  connection.run('DELETE FROM authored_room_drafts WHERE locator = ? AND path = ?', [
252
247
  locator,
@@ -464,28 +459,6 @@ async function committed(connection, { authored, rooms }) {
464
459
  ...commit(connection, rooms.filter(({ locator }) => !fenced(connection, locator))),
465
460
  };
466
461
  }
467
- function receivedParts(connection, key, count) {
468
- return connection
469
- .rows('SELECT value FROM replica_received_parts WHERE key = ? AND part < ? ORDER BY part', [
470
- key,
471
- count,
472
- ])
473
- .map((row) => JSON.parse(text(row.value)));
474
- }
475
- function receive(connection, { key, head, part }) {
476
- connection.run('INSERT OR REPLACE INTO replica_received (key, head) VALUES (?, ?)', [key, head]);
477
- if (part !== undefined) {
478
- connection.run('INSERT OR REPLACE INTO replica_received_parts (key, part, value) VALUES (?, ?, ?)', [key, part.index, part.value]);
479
- }
480
- return null;
481
- }
482
- function unreceive(connection, keys) {
483
- for (const key of keys) {
484
- connection.run('DELETE FROM replica_received WHERE key = ?', [key]);
485
- connection.run('DELETE FROM replica_received_parts WHERE key = ?', [key]);
486
- }
487
- return null;
488
- }
489
462
  export function answerRuntime(connection, request, spool) {
490
463
  switch (request.kind) {
491
464
  case 'authored.queues':
@@ -526,8 +499,6 @@ export function answerRuntime(connection, request, spool) {
526
499
  return typed(connection, request.key, request.view, request.paths);
527
500
  case 'replica.referrers':
528
501
  return referrers(connection, request.key, request.view, request.targets, request.kinds);
529
- case 'replica.walk':
530
- return walk(connection, request.key, request.view, request.after, request.bytes);
531
502
  case 'replica.files':
532
503
  return files(connection, request.key, request.view, request.after, request.limit);
533
504
  case 'replica.folders':
@@ -536,17 +507,6 @@ export function answerRuntime(connection, request, spool) {
536
507
  return typedWithin(connection, request.key, request.view, request.roots, request.within);
537
508
  case 'replica.counts':
538
509
  return counts(connection, request.rooms);
539
- case 'replica.search': {
540
- const { kind: _kind, ...ask } = request;
541
- return searched(connection, ask);
542
- }
543
- case 'replica.received':
544
- return connection.rows('SELECT key, head FROM replica_received').map((row) => ({
545
- key: text(row.key),
546
- head: JSON.parse(text(row.head)),
547
- }));
548
- case 'replica.receivedParts':
549
- return receivedParts(connection, request.key, request.count);
550
510
  case 'replica.stage':
551
511
  return fenced(connection, request.locator) ? null : stage(connection, request);
552
512
  case 'replica.refresh':
@@ -565,6 +525,14 @@ export function answerRuntime(connection, request, spool) {
565
525
  return release(connection, request.key);
566
526
  case 'replica.rederive':
567
527
  return rederive(connection, request.key, request.composed, request.bytes, request.ms, request.floor);
528
+ case 'replica.hold':
529
+ return holdTexts(connection, request);
530
+ case 'replica.unhold':
531
+ return unholdTexts(connection, request);
532
+ case 'replica.wanted':
533
+ return wanted(connection, request);
534
+ case 'replica.remember':
535
+ return remembered(connection, request);
568
536
  case 'replica.fact':
569
537
  connection.run('INSERT OR REPLACE INTO replica_facts (name, value) VALUES (?, ?)', [
570
538
  request.name,
@@ -577,10 +545,6 @@ export function answerRuntime(connection, request, spool) {
577
545
  request.value,
578
546
  ]);
579
547
  return null;
580
- case 'replica.receive':
581
- return receive(connection, request);
582
- case 'replica.unreceive':
583
- return unreceive(connection, request.keys);
584
548
  case 'opened.find':
585
549
  return openedFile(connection, request);
586
550
  case 'opened.begin':
@@ -602,9 +566,9 @@ export function answerRuntime(connection, request, spool) {
602
566
  return keptMessages(connection, write);
603
567
  }
604
568
  case 'conversation.window':
605
- return messageWindow(connection, request.conversation, request.limit, request.before);
569
+ return messageWindow(connection, request.conversation, request.limit, request.before, request.phrase);
606
570
  case 'conversation.count':
607
- return messageCount(connection, request.conversation);
571
+ return messageCount(connection, request.conversation, request.phrase);
608
572
  case 'conversation.turn':
609
573
  return turnArrived(connection, request.conversation, request.turn);
610
574
  case 'conversation.drop':
@@ -1,10 +1,5 @@
1
- import type { Refusal } from '@agentshouse/mdmodel';
2
1
  export type Unconfirmed = {
3
2
  kind: 'unconfirmed';
4
3
  };
5
- export type Refused = {
6
- kind: 'refused';
7
- refusal: Refusal;
8
- };
9
4
  export declare const unconfirmed: Unconfirmed;
10
5
  //# sourceMappingURL=transfer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,WAAW,EAAE,WAAqC,CAAC"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAElD,eAAO,MAAM,WAAW,EAAE,WAAqC,CAAC"}
@@ -19,12 +19,11 @@ export type Changed = {
19
19
  readonly was: string | null | undefined;
20
20
  readonly now: string | null | undefined;
21
21
  };
22
- type CleanSource = {
22
+ type Neighbourhood = {
23
23
  readonly lookup: Lookup;
24
24
  readonly texts: (paths: readonly string[]) => Promise<ReadonlyMap<string, string | null>>;
25
- readonly referrers: ((targets: readonly string[]) => Promise<readonly string[]>) | null;
25
+ readonly referrers: (targets: readonly string[]) => Promise<readonly string[]>;
26
26
  };
27
- export declare function sameComposition(left: Composition, right: Composition): boolean;
28
- export declare function changedCleanly(changes: readonly Changed[], previous: Composition, composition: Composition, source: CleanSource): Promise<boolean>;
27
+ export declare function validatedNeighbourhood(changes: readonly Changed[], composition: Composition, source: Neighbourhood): Promise<Validation>;
29
28
  export {};
30
29
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMxE,KAAK,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,IAAI,GAAG,CACjB,KAAK,EAAE,MAAM,GAAG,IAAI,KACjB,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAyBvF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;CACzF,CAAC;AAaF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAQ9E;AAqCD,wBAAsB,cAAc,CAClC,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAsDlB"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM7D,KAAK,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,IAAI,GAAG,CACjB,KAAK,EAAE,MAAM,GAAG,IAAI,KACjB,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAyBvF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAChF,CAAC;AAkBF,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
@@ -1,6 +1,5 @@
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) {
@@ -60,103 +59,43 @@ function declared(content) {
60
59
  const read = parseFrontmatter(content);
61
60
  return read.ok ? (read.frontmatter.type ?? 'any') : undefined;
62
61
  }
63
- function typedIn(content) {
64
- const type = declared(content);
65
- return type !== undefined && type !== 'any';
62
+ function shifted({ was, now }) {
63
+ return ((now === undefined) !== (was === undefined) ||
64
+ (now === null) !== (was === null) ||
65
+ declared(now) !== declared(was));
66
66
  }
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);
67
+ const PAGE_TEXT = 1 << 20;
68
+ export async function validatedNeighbourhood(changes, composition, source) {
83
69
  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);
70
+ const changedAt = new Set();
71
+ const moved = [];
72
+ for (const change of changes) {
73
+ changedAt.add(change.path);
74
+ if (shifted(change))
75
+ moved.push(change.path);
76
+ await pace((change.now?.length ?? 0) + (change.was?.length ?? 0) + ROW_WEIGHT);
92
77
  }
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)
78
+ const referring = moved.length === 0
79
+ ? []
80
+ : (await source.referrers(moved)).filter((path) => !changedAt.has(path));
81
+ const texts = await source.texts(referring);
82
+ const total = changes.length + referring.length;
83
+ let at = 0;
84
+ const walk = async () => {
85
+ const entries = [];
86
+ let text = 0;
87
+ while (at < total && text < PAGE_TEXT) {
88
+ const change = changes[at];
89
+ const path = change?.path ?? referring[at - changes.length];
90
+ const content = change === undefined ? texts.get(path) : change.now;
91
+ at += 1;
92
+ text += ROW_WEIGHT;
93
+ if (content === undefined || content === null)
105
94
  continue;
106
- if (change.now === undefined)
107
- known.delete(path);
108
- else
109
- known.set(path, { type: declared(change.now), binary: change.now === null });
95
+ entries.push({ path, content });
96
+ text += content.length;
110
97
  }
111
- return known;
98
+ return { entries, next: at < total ? String(at) : null };
112
99
  };
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);
100
+ return validatedCollection(walk, source.lookup, composition);
162
101
  }
package/dist/wire.d.ts CHANGED
@@ -150,10 +150,6 @@ declare const MEMBERS: {
150
150
  readonly reach: 'within';
151
151
  readonly effect: 'action';
152
152
  };
153
- readonly 'conversation.cancel': {
154
- readonly reach: 'within';
155
- readonly effect: 'action';
156
- };
157
153
  readonly 'conversation.delete': {
158
154
  readonly reach: 'within';
159
155
  readonly effect: 'action';
@@ -180,6 +176,7 @@ declare const TOPICS: {
180
176
  readonly 'sync-status': 'within';
181
177
  readonly 'service-mode': 'runtime';
182
178
  readonly member: 'runtime';
179
+ readonly 'authority-changes': 'runtime';
183
180
  readonly query: 'within';
184
181
  readonly queue: 'within';
185
182
  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
@@ -34,7 +34,6 @@ const MEMBERS = {
34
34
  'conversation.answer': { reach: 'within', effect: 'action' },
35
35
  'conversation.interrupt': { reach: 'within', effect: 'action' },
36
36
  'conversation.kill': { reach: 'within', effect: 'action' },
37
- 'conversation.cancel': { reach: 'within', effect: 'action' },
38
37
  'conversation.delete': { reach: 'within', effect: 'action' },
39
38
  'chatDraft.write': { reach: 'within', effect: 'write' },
40
39
  'chatDraft.prepend': { reach: 'within', effect: 'write' },
@@ -49,6 +48,7 @@ const TOPICS = {
49
48
  'sync-status': 'within',
50
49
  'service-mode': 'runtime',
51
50
  member: 'runtime',
51
+ 'authority-changes': 'runtime',
52
52
  query: 'within',
53
53
  queue: 'within',
54
54
  'room-drafts': 'within',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime",
3
- "version": "0.1.0-cb122f2ba154d",
3
+ "version": "0.1.0-cb1f56e16291b",
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-cf26f43c2e4d9"
57
+ "@agentshouse/mdmodel": "0.1.0-ca6c012c54fb0"
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;AAoBrD,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;AAkTD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,GAAG,YAAY,CAsB7E"}