@agentshouse/mdruntime 0.1.0-cefbc8bb8a1c0 → 0.1.0-cf1e7fdb9c600

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 (118) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter.d.ts +69 -49
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/bootstrap.d.ts +5 -8
  5. package/dist/bootstrap.d.ts.map +1 -1
  6. package/dist/bootstrap.js +20 -21
  7. package/dist/chain.d.ts +2 -1
  8. package/dist/chain.d.ts.map +1 -1
  9. package/dist/client.d.ts +6 -5
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +0 -1
  12. package/dist/collection.d.ts +2 -4
  13. package/dist/collection.d.ts.map +1 -1
  14. package/dist/collection.js +1 -17
  15. package/dist/compile.d.ts +1 -6
  16. package/dist/compile.d.ts.map +1 -1
  17. package/dist/compile.js +97 -281
  18. package/dist/connection.d.ts +5 -7
  19. package/dist/connection.d.ts.map +1 -1
  20. package/dist/connection.js +816 -846
  21. package/dist/context.d.ts +2 -0
  22. package/dist/context.d.ts.map +1 -0
  23. package/dist/context.js +7 -0
  24. package/dist/conversation.d.ts +15 -13
  25. package/dist/conversation.d.ts.map +1 -1
  26. package/dist/conversation.js +133 -142
  27. package/dist/durability.d.ts +0 -1
  28. package/dist/durability.d.ts.map +1 -1
  29. package/dist/entry.d.ts +2 -2
  30. package/dist/entry.d.ts.map +1 -1
  31. package/dist/entry.js +14 -5
  32. package/dist/host.d.ts +3 -7
  33. package/dist/host.d.ts.map +1 -1
  34. package/dist/host.js +12 -26
  35. package/dist/index.d.ts +9 -6
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +3 -1
  38. package/dist/job.d.ts +14 -0
  39. package/dist/job.d.ts.map +1 -0
  40. package/dist/job.js +28 -0
  41. package/dist/live.d.ts +2 -1
  42. package/dist/live.d.ts.map +1 -1
  43. package/dist/live.js +10 -7
  44. package/dist/memory.d.ts +9 -4
  45. package/dist/memory.d.ts.map +1 -1
  46. package/dist/memory.js +132 -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 +1 -3
  51. package/dist/model.d.ts.map +1 -1
  52. package/dist/model.js +0 -12
  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/query.d.ts +5 -209
  59. package/dist/query.d.ts.map +1 -1
  60. package/dist/query.js +3 -505
  61. package/dist/reach.d.ts +7 -7
  62. package/dist/reach.d.ts.map +1 -1
  63. package/dist/reach.js +31 -44
  64. package/dist/react.d.ts +3 -1
  65. package/dist/react.d.ts.map +1 -1
  66. package/dist/readiness.d.ts +2 -15
  67. package/dist/readiness.d.ts.map +1 -1
  68. package/dist/readiness.js +4 -10
  69. package/dist/refresh.d.ts +7 -5
  70. package/dist/refresh.d.ts.map +1 -1
  71. package/dist/refresh.js +46 -6
  72. package/dist/replica.d.ts +2 -2
  73. package/dist/replica.d.ts.map +1 -1
  74. package/dist/replica.js +5 -5
  75. package/dist/room-draft.d.ts +2 -1
  76. package/dist/room-draft.d.ts.map +1 -1
  77. package/dist/room-draft.js +65 -52
  78. package/dist/rows.d.ts +3 -19
  79. package/dist/rows.d.ts.map +1 -1
  80. package/dist/rows.js +36 -164
  81. package/dist/search.d.ts +12 -63
  82. package/dist/search.d.ts.map +1 -1
  83. package/dist/search.js +9 -52
  84. package/dist/shared.d.ts +0 -1
  85. package/dist/shared.d.ts.map +1 -1
  86. package/dist/shared.js +0 -10
  87. package/dist/status.d.ts +0 -4
  88. package/dist/status.d.ts.map +1 -1
  89. package/dist/store.d.ts +15 -19
  90. package/dist/store.d.ts.map +1 -1
  91. package/dist/store.js +40 -39
  92. package/dist/stored.d.ts +33 -6
  93. package/dist/stored.d.ts.map +1 -1
  94. package/dist/stored.js +87 -124
  95. package/dist/tables.d.ts +34 -33
  96. package/dist/tables.d.ts.map +1 -1
  97. package/dist/tables.js +21 -54
  98. package/dist/transfer.d.ts +0 -5
  99. package/dist/transfer.d.ts.map +1 -1
  100. package/dist/validation.d.ts +3 -4
  101. package/dist/validation.d.ts.map +1 -1
  102. package/dist/validation.js +39 -97
  103. package/dist/windows.d.ts +1 -12
  104. package/dist/windows.d.ts.map +1 -1
  105. package/dist/windows.js +2 -75
  106. package/dist/wire.d.ts +1 -4
  107. package/dist/wire.d.ts.map +1 -1
  108. package/dist/wire.js +1 -1
  109. package/package.json +2 -2
  110. package/dist/fulltext.d.ts +0 -27
  111. package/dist/fulltext.d.ts.map +0 -1
  112. package/dist/fulltext.js +0 -370
  113. package/dist/reads.d.ts +0 -11
  114. package/dist/reads.d.ts.map +0 -1
  115. package/dist/reads.js +0 -91
  116. package/dist/words.d.ts +0 -19
  117. package/dist/words.d.ts.map +0 -1
  118. package/dist/words.js +0 -156
package/dist/tables.js CHANGED
@@ -1,11 +1,15 @@
1
+ import { sql } from '@agentshouse/mdmodel';
1
2
  import { answerQuery } from './compile.js';
2
- import { searched, SEARCH_TABLES } from './fulltext.js';
3
3
  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';
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(sql.HOLDS_PHRASE, sql.holdsPhrase, {
10
+ arity: 2,
11
+ deterministic: true,
12
+ });
9
13
  function prepared(sql) {
10
14
  if (sql.includes(';'))
11
15
  return null;
@@ -89,7 +93,6 @@ export const RUNTIME_TABLES = [
89
93
  'CREATE INDEX opened_files_name ON opened_files (locator, path, revision)',
90
94
  ...REPLICA_TABLES,
91
95
  ...MESSAGE_TABLES,
92
- ...SEARCH_TABLES,
93
96
  ];
94
97
  const OWNERS = ['authored_pending', 'authored_room_drafts', 'authored_calls'];
95
98
  const AUTHORED_KEYS = OWNERS.map((table) => `SELECT value FROM ${table}, json_each(${table}.files)`).join(' UNION ');
@@ -107,14 +110,11 @@ const READS = new Set([
107
110
  'replica.entries',
108
111
  'replica.typed',
109
112
  'replica.referrers',
110
- 'replica.walk',
111
113
  'replica.files',
112
114
  'replica.folders',
113
115
  'replica.typedWithin',
114
116
  'replica.counts',
115
- 'replica.search',
116
- 'replica.received',
117
- 'replica.receivedParts',
117
+ 'replica.wanted',
118
118
  'opened.find',
119
119
  'file.part',
120
120
  'conversation.held',
@@ -140,10 +140,11 @@ const KINDS = new Set([
140
140
  'replica.abandon',
141
141
  'replica.release',
142
142
  'replica.rederive',
143
+ 'replica.hold',
144
+ 'replica.remember',
145
+ 'replica.unhold',
143
146
  'replica.fact',
144
147
  'replica.present',
145
- 'replica.receive',
146
- 'replica.unreceive',
147
148
  'opened.begin',
148
149
  'opened.part',
149
150
  'opened.keep',
@@ -243,10 +244,7 @@ function heldOrder(connection, locator) {
243
244
  const [held] = connection.rows('SELECT ids FROM authored_queues WHERE locator = ?', [locator]);
244
245
  return held === undefined ? [] : JSON.parse(text(held.ids));
245
246
  }
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
- }
247
+ function keptRows(connection, { locator, order, added, founded, roomDrafts, consumedRoomDrafts }) {
250
248
  for (const path of consumedRoomDrafts ?? []) {
251
249
  connection.run('DELETE FROM authored_room_drafts WHERE locator = ? AND path = ?', [
252
250
  locator,
@@ -464,28 +462,6 @@ async function committed(connection, { authored, rooms }) {
464
462
  ...commit(connection, rooms.filter(({ locator }) => !fenced(connection, locator))),
465
463
  };
466
464
  }
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
465
  export function answerRuntime(connection, request, spool) {
490
466
  switch (request.kind) {
491
467
  case 'authored.queues':
@@ -526,8 +502,6 @@ export function answerRuntime(connection, request, spool) {
526
502
  return typed(connection, request.key, request.view, request.paths);
527
503
  case 'replica.referrers':
528
504
  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
505
  case 'replica.files':
532
506
  return files(connection, request.key, request.view, request.after, request.limit);
533
507
  case 'replica.folders':
@@ -536,17 +510,6 @@ export function answerRuntime(connection, request, spool) {
536
510
  return typedWithin(connection, request.key, request.view, request.roots, request.within);
537
511
  case 'replica.counts':
538
512
  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
513
  case 'replica.stage':
551
514
  return fenced(connection, request.locator) ? null : stage(connection, request);
552
515
  case 'replica.refresh':
@@ -565,6 +528,14 @@ export function answerRuntime(connection, request, spool) {
565
528
  return release(connection, request.key);
566
529
  case 'replica.rederive':
567
530
  return rederive(connection, request.key, request.composed, request.bytes, request.ms, request.floor);
531
+ case 'replica.hold':
532
+ return holdTexts(connection, request);
533
+ case 'replica.unhold':
534
+ return unholdTexts(connection, request);
535
+ case 'replica.wanted':
536
+ return wanted(connection, request);
537
+ case 'replica.remember':
538
+ return remembered(connection, request);
568
539
  case 'replica.fact':
569
540
  connection.run('INSERT OR REPLACE INTO replica_facts (name, value) VALUES (?, ?)', [
570
541
  request.name,
@@ -577,10 +548,6 @@ export function answerRuntime(connection, request, spool) {
577
548
  request.value,
578
549
  ]);
579
550
  return null;
580
- case 'replica.receive':
581
- return receive(connection, request);
582
- case 'replica.unreceive':
583
- return unreceive(connection, request.keys);
584
551
  case 'opened.find':
585
552
  return openedFile(connection, request);
586
553
  case 'opened.begin':
@@ -602,9 +569,9 @@ export function answerRuntime(connection, request, spool) {
602
569
  return keptMessages(connection, write);
603
570
  }
604
571
  case 'conversation.window':
605
- return messageWindow(connection, request.conversation, request.limit, request.before);
572
+ return messageWindow(connection, request.conversation, request.limit, request.before, request.phrase);
606
573
  case 'conversation.count':
607
- return messageCount(connection, request.conversation);
574
+ return messageCount(connection, request.conversation, request.phrase);
608
575
  case 'conversation.turn':
609
576
  return turnArrived(connection, request.conversation, request.turn);
610
577
  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,CA4CrB;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) {
@@ -32,7 +31,10 @@ export async function validatedCollection(walk, lookup, composition) {
32
31
  if (part.model.status === 'unavailable' && part.unmodeled === null && typedText(content)) {
33
32
  part.unmodeled = path;
34
33
  }
35
- const assessment = assess(path, content, false, modelOf(part.model), { anyRoom: true });
34
+ const assessment = assess(path, content, 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
@@ -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-cefbc8bb8a1c0",
3
+ "version": "0.1.0-cf1e7fdb9c600",
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-ce8ef91054ad1"
57
+ "@agentshouse/mdmodel": "0.1.0-c6480dd87a894"
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"}