@agentshouse/mdruntime 0.1.0-c52f87bb83a70 → 0.1.0-c55c6f69061ee

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 (219) hide show
  1. package/README.md +11 -9
  2. package/dist/adapter.d.ts +94 -63
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/attached-model.d.ts +2 -1
  5. package/dist/attached-model.d.ts.map +1 -1
  6. package/dist/attached-model.js +28 -4
  7. package/dist/binary.d.ts +0 -5
  8. package/dist/binary.d.ts.map +1 -1
  9. package/dist/binary.js +1 -1
  10. package/dist/bootstrap.d.ts +16 -8
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +142 -94
  13. package/dist/change-set.d.ts +1 -7
  14. package/dist/change-set.d.ts.map +1 -1
  15. package/dist/change-set.js +1 -4
  16. package/dist/client.d.ts +10 -11
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +54 -8
  19. package/dist/collection.d.ts +5 -3
  20. package/dist/collection.d.ts.map +1 -1
  21. package/dist/collection.js +24 -19
  22. package/dist/compile.d.ts +7 -2
  23. package/dist/compile.d.ts.map +1 -1
  24. package/dist/compile.js +125 -48
  25. package/dist/connection.d.ts +10 -10
  26. package/dist/connection.d.ts.map +1 -1
  27. package/dist/connection.js +1611 -1313
  28. package/dist/context.d.ts +2 -0
  29. package/dist/context.d.ts.map +1 -0
  30. package/dist/{chat/context.js → context.js} +1 -4
  31. package/dist/conversation.d.ts +17 -14
  32. package/dist/conversation.d.ts.map +1 -1
  33. package/dist/conversation.js +262 -159
  34. package/dist/durability.d.ts +1 -5
  35. package/dist/durability.d.ts.map +1 -1
  36. package/dist/durability.js +5 -0
  37. package/dist/entry.d.ts +1 -0
  38. package/dist/entry.d.ts.map +1 -1
  39. package/dist/entry.js +2 -1
  40. package/dist/file.d.ts +2 -11
  41. package/dist/file.d.ts.map +1 -1
  42. package/dist/file.js +6 -4
  43. package/dist/host.d.ts +4 -7
  44. package/dist/host.d.ts.map +1 -1
  45. package/dist/host.js +52 -32
  46. package/dist/identity.d.ts +0 -1
  47. package/dist/identity.d.ts.map +1 -1
  48. package/dist/identity.js +0 -3
  49. package/dist/index.d.ts +13 -11
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +6 -3
  52. package/dist/job.d.ts +14 -0
  53. package/dist/job.d.ts.map +1 -0
  54. package/dist/job.js +28 -0
  55. package/dist/live.d.ts +2 -1
  56. package/dist/live.d.ts.map +1 -1
  57. package/dist/live.js +9 -5
  58. package/dist/media.d.ts +8 -0
  59. package/dist/media.d.ts.map +1 -0
  60. package/dist/media.js +218 -0
  61. package/dist/memory.d.ts +10 -6
  62. package/dist/memory.d.ts.map +1 -1
  63. package/dist/memory.js +177 -100
  64. package/dist/messages.d.ts +28 -0
  65. package/dist/messages.d.ts.map +1 -0
  66. package/dist/messages.js +89 -0
  67. package/dist/model.d.ts +6 -1
  68. package/dist/model.d.ts.map +1 -1
  69. package/dist/model.js +7 -10
  70. package/dist/observation.d.ts +3 -2
  71. package/dist/observation.d.ts.map +1 -1
  72. package/dist/observation.js +8 -3
  73. package/dist/outcome.d.ts +13 -6
  74. package/dist/outcome.d.ts.map +1 -1
  75. package/dist/outcome.js +16 -5
  76. package/dist/overlay.js +1 -1
  77. package/dist/paths.d.ts +1 -0
  78. package/dist/paths.d.ts.map +1 -1
  79. package/dist/paths.js +4 -0
  80. package/dist/phrase.d.ts +3 -0
  81. package/dist/phrase.d.ts.map +1 -0
  82. package/dist/phrase.js +8 -0
  83. package/dist/query.d.ts +14 -1
  84. package/dist/query.d.ts.map +1 -1
  85. package/dist/query.js +32 -2
  86. package/dist/reach.d.ts +13 -7
  87. package/dist/reach.d.ts.map +1 -1
  88. package/dist/reach.js +80 -64
  89. package/dist/react.d.ts +1 -0
  90. package/dist/react.d.ts.map +1 -1
  91. package/dist/readiness.d.ts +14 -17
  92. package/dist/readiness.d.ts.map +1 -1
  93. package/dist/readiness.js +2 -8
  94. package/dist/recovery.d.ts +1 -0
  95. package/dist/recovery.d.ts.map +1 -1
  96. package/dist/recovery.js +26 -0
  97. package/dist/refresh.d.ts +10 -4
  98. package/dist/refresh.d.ts.map +1 -1
  99. package/dist/refresh.js +104 -30
  100. package/dist/replica.d.ts +5 -5
  101. package/dist/replica.d.ts.map +1 -1
  102. package/dist/replica.js +7 -7
  103. package/dist/room-draft.d.ts +20 -3
  104. package/dist/room-draft.d.ts.map +1 -1
  105. package/dist/room-draft.js +131 -51
  106. package/dist/rows.d.ts +17 -7
  107. package/dist/rows.d.ts.map +1 -1
  108. package/dist/rows.js +120 -87
  109. package/dist/save.d.ts +2 -0
  110. package/dist/save.d.ts.map +1 -1
  111. package/dist/save.js +13 -7
  112. package/dist/search.d.ts +12 -95
  113. package/dist/search.d.ts.map +1 -1
  114. package/dist/search.js +10 -349
  115. package/dist/shared.d.ts +0 -1
  116. package/dist/shared.d.ts.map +1 -1
  117. package/dist/shared.js +0 -10
  118. package/dist/status.d.ts +4 -3
  119. package/dist/status.d.ts.map +1 -1
  120. package/dist/status.js +3 -1
  121. package/dist/store.d.ts +34 -60
  122. package/dist/store.d.ts.map +1 -1
  123. package/dist/store.js +71 -275
  124. package/dist/stored.d.ts +42 -23
  125. package/dist/stored.d.ts.map +1 -1
  126. package/dist/stored.js +198 -210
  127. package/dist/tables.d.ts +79 -46
  128. package/dist/tables.d.ts.map +1 -1
  129. package/dist/tables.js +101 -53
  130. package/dist/transfer.d.ts +0 -5
  131. package/dist/transfer.d.ts.map +1 -1
  132. package/dist/validation.d.ts +3 -4
  133. package/dist/validation.d.ts.map +1 -1
  134. package/dist/validation.js +35 -96
  135. package/dist/wire.d.ts +6 -9
  136. package/dist/wire.d.ts.map +1 -1
  137. package/dist/wire.js +3 -3
  138. package/package.json +14 -18
  139. package/AGENTS.md +0 -310
  140. package/dist/chat/acts.d.ts +0 -33
  141. package/dist/chat/acts.d.ts.map +0 -1
  142. package/dist/chat/acts.js +0 -36
  143. package/dist/chat/context.d.ts +0 -3
  144. package/dist/chat/context.d.ts.map +0 -1
  145. package/dist/chat/earlier.d.ts +0 -10
  146. package/dist/chat/earlier.d.ts.map +0 -1
  147. package/dist/chat/earlier.js +0 -54
  148. package/dist/chat/house.d.ts +0 -25
  149. package/dist/chat/house.d.ts.map +0 -1
  150. package/dist/chat/house.js +0 -38
  151. package/dist/chat/input.d.ts +0 -11
  152. package/dist/chat/input.d.ts.map +0 -1
  153. package/dist/chat/input.js +0 -92
  154. package/dist/chat/kit.d.ts +0 -61
  155. package/dist/chat/kit.d.ts.map +0 -1
  156. package/dist/chat/kit.js +0 -123
  157. package/dist/chat/lasting.d.ts +0 -6
  158. package/dist/chat/lasting.d.ts.map +0 -1
  159. package/dist/chat/lasting.js +0 -19
  160. package/dist/chat/list.d.ts +0 -28
  161. package/dist/chat/list.d.ts.map +0 -1
  162. package/dist/chat/list.js +0 -103
  163. package/dist/chat/markdown.d.ts +0 -21
  164. package/dist/chat/markdown.d.ts.map +0 -1
  165. package/dist/chat/markdown.js +0 -246
  166. package/dist/chat/message.d.ts +0 -7
  167. package/dist/chat/message.d.ts.map +0 -1
  168. package/dist/chat/message.js +0 -237
  169. package/dist/chat/messages.d.ts +0 -29
  170. package/dist/chat/messages.d.ts.map +0 -1
  171. package/dist/chat/messages.js +0 -190
  172. package/dist/chat/name.d.ts +0 -7
  173. package/dist/chat/name.d.ts.map +0 -1
  174. package/dist/chat/name.js +0 -37
  175. package/dist/chat/opened.d.ts +0 -12
  176. package/dist/chat/opened.d.ts.map +0 -1
  177. package/dist/chat/opened.js +0 -19
  178. package/dist/chat/overlay.d.ts +0 -32
  179. package/dist/chat/overlay.d.ts.map +0 -1
  180. package/dist/chat/overlay.js +0 -103
  181. package/dist/chat/parts.d.ts +0 -58
  182. package/dist/chat/parts.d.ts.map +0 -1
  183. package/dist/chat/parts.js +0 -120
  184. package/dist/chat/pieces.d.ts +0 -62
  185. package/dist/chat/pieces.d.ts.map +0 -1
  186. package/dist/chat/pieces.js +0 -1110
  187. package/dist/chat/process.d.ts +0 -20
  188. package/dist/chat/process.d.ts.map +0 -1
  189. package/dist/chat/process.js +0 -32
  190. package/dist/chat/provider.d.ts +0 -68
  191. package/dist/chat/provider.d.ts.map +0 -1
  192. package/dist/chat/provider.js +0 -619
  193. package/dist/chat/question.d.ts +0 -9
  194. package/dist/chat/question.d.ts.map +0 -1
  195. package/dist/chat/question.js +0 -69
  196. package/dist/chat/questions.d.ts +0 -31
  197. package/dist/chat/questions.d.ts.map +0 -1
  198. package/dist/chat/questions.js +0 -111
  199. package/dist/chat/read.d.ts +0 -5
  200. package/dist/chat/read.d.ts.map +0 -1
  201. package/dist/chat/read.js +0 -13
  202. package/dist/chat/ready.d.ts +0 -37
  203. package/dist/chat/ready.d.ts.map +0 -1
  204. package/dist/chat/ready.js +0 -93
  205. package/dist/chat/room-file.d.ts +0 -8
  206. package/dist/chat/room-file.d.ts.map +0 -1
  207. package/dist/chat/room-file.js +0 -72
  208. package/dist/chat/steady.d.ts +0 -3
  209. package/dist/chat/steady.d.ts.map +0 -1
  210. package/dist/chat/steady.js +0 -26
  211. package/dist/chat/style.d.ts +0 -4
  212. package/dist/chat/style.d.ts.map +0 -1
  213. package/dist/chat/style.js +0 -306
  214. package/dist/chat.d.ts +0 -15
  215. package/dist/chat.d.ts.map +0 -1
  216. package/dist/chat.js +0 -8
  217. package/dist/reads.d.ts +0 -11
  218. package/dist/reads.d.ts.map +0 -1
  219. package/dist/reads.js +0 -98
@@ -1,16 +1,12 @@
1
1
  import type { Persistence } from './readiness.js';
2
- export type StorageEstimate = {
3
- readonly usage: number;
4
- readonly total: number;
5
- };
6
2
  export type RuntimeShell = {
7
3
  persistence: Persistence;
8
4
  generation: string | null;
9
5
  keepGeneration(value: string): void | Promise<void>;
10
6
  dropGeneration(): void | Promise<void>;
11
- estimate?(): Promise<StorageEstimate | null>;
12
7
  cleanUp?(): Promise<number>;
13
8
  };
9
+ export declare function refusedForSpace(error: unknown): boolean;
14
10
  export declare function detectStorageLoss(stored: string | null, reported: string | null): string | null;
15
11
  export declare function nextGeneration(stored: string | null, reported: string | null): string;
16
12
  //# sourceMappingURL=durability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"durability.d.ts","sourceRoot":"","sources":["../src/durability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAG/F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGrF"}
1
+ {"version":3,"file":"durability.d.ts","sourceRoot":"","sources":["../src/durability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMvD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAG/F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGrF"}
@@ -1,4 +1,9 @@
1
1
  const STORAGE_LOSS_CODE = 'storage-loss';
2
+ export function refusedForSpace(error) {
3
+ return (typeof error === 'object' &&
4
+ error !== null &&
5
+ error.name === 'QuotaExceededError');
6
+ }
2
7
  export function detectStorageLoss(stored, reported) {
3
8
  if (reported === null || reported === stored)
4
9
  return null;
package/dist/entry.d.ts CHANGED
@@ -6,6 +6,7 @@ export type EntryRoom = {
6
6
  locator: string;
7
7
  schema: string | null;
8
8
  documents: Readonly<Record<string, string>>;
9
+ revisions?: Readonly<Record<string, string>>;
9
10
  };
10
11
  export type EntryArguments = Readonly<Record<string, string>>;
11
12
  export type EntryParameterKind = 'string' | 'integer' | 'number' | 'boolean';
@@ -1 +1 @@
1
- {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAML,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AA0D7E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAE3E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAMpE;AAkCD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACzF,CAAC;AAEF,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,UAAU,GACrB,UAAU,CAmDZ"}
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAML,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AA0D7E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAE3E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAMpE;AAkCD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACzF,CAAC;AAEF,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,UAAU,GACrB,UAAU,CAoDZ"}
package/dist/entry.js CHANGED
@@ -129,8 +129,9 @@ export function entryScope(rooms, roomTypes, connection) {
129
129
  .map((path) => ({
130
130
  path,
131
131
  content: room.documents[path],
132
+ outline: null,
132
133
  binary: null,
133
- revision: null,
134
+ revision: room.revisions?.[path] ?? null,
134
135
  fileId: null,
135
136
  change: null,
136
137
  written: null,
package/dist/file.d.ts CHANGED
@@ -1,12 +1,3 @@
1
- export type ChosenFile = {
2
- name: string;
3
- blob: Blob;
4
- };
5
- export type FileDeclaration = {
6
- name: string;
7
- mediaType: string;
8
- byteLength: number;
9
- contentHash: string;
10
- };
11
- export declare function declaredFile(file: ChosenFile): Promise<FileDeclaration>;
1
+ import type { AttachRequest } from './adapter.js';
2
+ export declare function attachedFile(locator: string, file: File): Promise<AttachRequest>;
12
3
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAO7E"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAStF"}
package/dist/file.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { sha256 } from './digest.js';
2
- export async function declaredFile(file) {
2
+ export async function attachedFile(locator, file) {
3
3
  return {
4
+ locator,
4
5
  name: file.name,
5
- mediaType: file.blob.type,
6
- byteLength: file.blob.size,
7
- contentHash: await sha256(file.blob),
6
+ mediaType: file.type,
7
+ byteLength: file.size,
8
+ sha256: await sha256(file),
9
+ blob: file,
8
10
  };
9
11
  }
package/dist/host.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type MdRuntimeOptions } from './connection.js';
2
2
  import type { PortReach } from './reach.js';
3
- import type { CapacityCause, CodeAvailability, Persistence, Readiness, SearchObligation } from './readiness.js';
3
+ import type { CodeAvailability, Persistence, Readiness, Space } from './readiness.js';
4
4
  import type { EntrySeed } from './seed.js';
5
5
  import { type RuntimePort } from './wire.js';
6
6
  export type MdRuntimeHostOptions = MdRuntimeOptions & {
@@ -11,22 +11,19 @@ export type AttachedPort = {
11
11
  narrow(reach: PortReach): void;
12
12
  readiness(deliver: (readiness: Readiness) => void): () => void;
13
13
  answered(queries: readonly unknown[], done: () => void): void;
14
- code(code: CodeAvailability, capacity: CapacityCause | null): void;
15
- search(search: SearchObligation): void;
14
+ code(code: CodeAvailability, space: Space | null): void;
16
15
  };
17
16
  export type MdRuntimeHost = {
18
- attach(port: RuntimePort, app: string, release?: string, reach?: PortReach, code?: CodeAvailability, search?: SearchObligation): AttachedPort;
17
+ attach(port: RuntimePort, app: string, release?: string, reach?: PortReach, code?: CodeAvailability): AttachedPort;
19
18
  seed(entry: EntrySeed): void;
20
19
  persisted(answer: Persistence): void;
21
20
  endAuthorization(holder?: string): Promise<void>;
22
- lose(locators: readonly string[]): Promise<void>;
23
21
  stop(): Promise<void>;
24
22
  };
25
23
  export declare function serveMdRuntime(options: MdRuntimeHostOptions): MdRuntimeHost;
26
24
  export { entrySeedOf, type EntrySeed } from './seed.js';
27
25
  export type { PortReach, ReachedDocument } from './reach.js';
28
- export type { CapacityCause, CodeAvailability, Persistence, SearchObligation, } from './readiness.js';
26
+ export type { CodeAvailability, Persistence, Space } from './readiness.js';
29
27
  export { createRecovery, retryDelay, type Attempt, type Attempted, type AttemptOptions, type Recovery, type RecoveryOptions, } from './recovery.js';
30
- export { openDatabase, STORE_SCHEMA, transacted } from './store.js';
31
28
  export type { RuntimePort } from './wire.js';
32
29
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,gBAAgB,EAItB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAGL,KAAK,WAAW,EAOjB,MAAM,WAAW,CAAC;AAInB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IACnE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CACJ,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,gBAAgB,GACxB,YAAY,CAAC;IAChB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAyHF,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAsK3E;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EAItB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAGL,KAAK,WAAW,EAOjB,MAAM,WAAW,CAAC;AAInB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CACJ,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,gBAAgB,GACtB,YAAY,CAAC;IAChB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAoIF,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA0L3E;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
package/dist/host.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { composeRuntime, } from './connection.js';
2
2
  import { queryKey } from './query.js';
3
+ import { untilAnswered } from './recovery.js';
3
4
  import { described } from './failure.js';
4
- import { endRuntimeStore } from './store.js';
5
5
  import { AUTHORIZATION_ENDED, request, WIRE, } from './wire.js';
6
6
  const NARROWED = new Set(['within', 'whole']);
7
7
  function answered(md, app, writtenBy, member, input) {
@@ -26,8 +26,10 @@ function answered(md, app, writtenBy, member, input) {
26
26
  return md.binaryFile.read(input[0], input[1], input[2]);
27
27
  case 'binaryFile.link':
28
28
  return md.binaryFile.link(input[0], input[1], input[2]);
29
- case 'binaryFile.readReference':
30
- return md.binaryFile.readReference(input[0]);
29
+ case 'binaryFile.show':
30
+ return md.binaryFile.show(input[0], input[1], input[2]);
31
+ case 'binaryFile.attach':
32
+ return md.binaryFile.attach(input[0], input[1]);
31
33
  case 'binaryFile.part':
32
34
  return md.binaryFile.part(input[0], input[1]);
33
35
  case 'call':
@@ -49,7 +51,7 @@ function answered(md, app, writtenBy, member, input) {
49
51
  case 'roomDraft.read':
50
52
  return md.roomDraft.read(input[0], input[1]);
51
53
  case 'roomDraft.write':
52
- return md.roomDraft.write(input[0], input[1], input[2], input[3]);
54
+ return md.roomDraft.write(input[0], input[1], input[2], input[3], input[4]);
53
55
  case 'roomDraft.discard':
54
56
  return md.roomDraft.discard(input[0], input[1], input[2]);
55
57
  case 'presentation.read':
@@ -66,16 +68,12 @@ function answered(md, app, writtenBy, member, input) {
66
68
  return md.conversation.create(input[0]);
67
69
  case 'conversation.send':
68
70
  return md.conversation.send(input[0], input[1], input[2]);
69
- case 'conversation.attach':
70
- return md.conversation.attach(input[0], input[1]);
71
71
  case 'conversation.answer':
72
72
  return md.conversation.answer(input[0], input[1]);
73
73
  case 'conversation.interrupt':
74
74
  return md.conversation.interrupt(input[0]);
75
75
  case 'conversation.kill':
76
76
  return md.conversation.kill(input[0]);
77
- case 'conversation.cancel':
78
- return md.conversation.cancel(input[0], input[1]);
79
77
  case 'conversation.delete':
80
78
  return md.conversation.delete(input[0]);
81
79
  case 'chatDraft.write':
@@ -86,6 +84,14 @@ function answered(md, app, writtenBy, member, input) {
86
84
  return md.chatDraft.discard(input[0]);
87
85
  }
88
86
  }
87
+ function attempted(work) {
88
+ try {
89
+ return Promise.resolve(work());
90
+ }
91
+ catch (error) {
92
+ return Promise.reject(error);
93
+ }
94
+ }
89
95
  function answeredResult(value) {
90
96
  return typeof value === 'object' && value !== null && !('pending' in value);
91
97
  }
@@ -107,15 +113,17 @@ export function serveMdRuntime(options) {
107
113
  const { md } = runtime;
108
114
  const attachments = new Map();
109
115
  let authorized = true;
116
+ let opening = null;
117
+ const opened = () => (opening ??= untilAnswered(() => md.loaded(), closing.signal));
110
118
  const watchFacts = (deliver) => {
111
119
  deliver(structuredClone(deploymentFacts));
112
120
  return () => { };
113
121
  };
114
- function attach(port, app, release, reach, code = 'stored', search = 'unused') {
122
+ function attach(port, app, release, reach, code = 'stored') {
115
123
  if (!authorized)
116
124
  throw new Error(AUTHORIZATION_ENDED);
117
125
  const writtenBy = release === undefined ? undefined : { app, release };
118
- let facts = { target: app, code, capacity: null, search };
126
+ let facts = { target: app, code, space: null };
119
127
  const view = runtime.within(reach ?? null, facts);
120
128
  const observations = new Map();
121
129
  const followed = new Set();
@@ -154,9 +162,30 @@ export function serveMdRuntime(options) {
154
162
  if (topic === 'query' && answeredMessage(value))
155
163
  answeredQuery(input[0]);
156
164
  };
165
+ const fail = (error) => {
166
+ if (!serving || resolved)
167
+ return;
168
+ observations.get(id)?.();
169
+ observations.delete(id);
170
+ send({ kind: 'failure', id, ...described(error) });
171
+ };
157
172
  observations.set(id, topic === 'deployment-facts'
158
173
  ? watchFacts(deliver)
159
- : (NARROWED.has(WIRE.topics[topic]) ? view : runtime).watch(topic, topic === 'presentation' ? [app] : input, deliver));
174
+ : (NARROWED.has(WIRE.topics[topic]) ? view : runtime).watch(topic, topic === 'presentation' ? [app] : input, deliver, fail));
175
+ };
176
+ const reply = async (id, query, pending) => {
177
+ try {
178
+ const value = await pending;
179
+ if (!serving)
180
+ return;
181
+ send({ kind: 'result', id, value });
182
+ if (query !== undefined && answeredResult(value))
183
+ answeredQuery(query);
184
+ }
185
+ catch (error) {
186
+ if (serving)
187
+ send({ kind: 'failure', id, ...described(error) });
188
+ }
160
189
  };
161
190
  const serve = async (message) => {
162
191
  if (message.kind === 'hello')
@@ -167,24 +196,24 @@ export function serveMdRuntime(options) {
167
196
  return;
168
197
  }
169
198
  try {
170
- if (message.kind !== 'observe' || message.topic !== 'room-drafts')
199
+ if (message.kind !== 'observe')
171
200
  await md.loaded();
201
+ else if (message.topic !== 'room-drafts')
202
+ await opened();
172
203
  if (message.kind === 'observe') {
173
204
  if (serving)
174
205
  observe(message.id, message.topic, message.input);
175
206
  return;
176
207
  }
177
- const value = await answered(NARROWED.has(WIRE.members[message.member].reach) ? view.md : md, app, writtenBy, message.member, message.input);
178
- if (!serving)
179
- return;
180
- send({ kind: 'result', id: message.id, value });
181
- if (message.member === 'query' && answeredResult(value))
182
- answeredQuery(message.input[0]);
183
208
  }
184
209
  catch (error) {
185
210
  if (serving)
186
211
  send({ kind: 'failure', id: message.id, ...described(error) });
212
+ return;
187
213
  }
214
+ const { id, member, input } = message;
215
+ const pending = attempted(() => answered(NARROWED.has(WIRE.members[member].reach) ? view.md : md, app, writtenBy, member, input));
216
+ return reply(id, member === 'query' ? input[0] : undefined, pending);
188
217
  };
189
218
  port.addEventListener('message', (event) => {
190
219
  if (!serving)
@@ -203,16 +232,10 @@ export function serveMdRuntime(options) {
203
232
  if (serving)
204
233
  view.narrow(next);
205
234
  },
206
- code(next, capacity) {
235
+ code(next, space) {
207
236
  if (!serving)
208
237
  return;
209
- facts = { ...facts, code: next, capacity };
210
- view.facts(facts);
211
- },
212
- search(next) {
213
- if (!serving)
214
- return;
215
- facts = { ...facts, search: next };
238
+ facts = { ...facts, code: next, space };
216
239
  view.facts(facts);
217
240
  },
218
241
  answered(queries, done) {
@@ -228,7 +251,7 @@ export function serveMdRuntime(options) {
228
251
  const stop = view.watch('readiness', [], (value) => {
229
252
  if (serving)
230
253
  deliver(value);
231
- });
254
+ }, () => { });
232
255
  const end = () => {
233
256
  followed.delete(end);
234
257
  stop();
@@ -253,11 +276,9 @@ export function serveMdRuntime(options) {
253
276
  detach();
254
277
  }
255
278
  close();
256
- if (!(await endRuntimeStore(options.database, holder)))
279
+ if (!(await options.database.ask({ kind: 'authored.end', holder: holder ?? null }))) {
257
280
  await options.shell.dropGeneration();
258
- },
259
- lose(locators) {
260
- return runtime.lose(locators);
281
+ }
261
282
  },
262
283
  stop() {
263
284
  return runtime.stop();
@@ -266,4 +287,3 @@ export function serveMdRuntime(options) {
266
287
  }
267
288
  export { entrySeedOf } from './seed.js';
268
289
  export { createRecovery, retryDelay, } from './recovery.js';
269
- export { openDatabase, STORE_SCHEMA, transacted } from './store.js';
@@ -3,6 +3,5 @@ export declare function identityTime(identity: string): number;
3
3
  export declare function roomDraftRevision(): string;
4
4
  export declare function chatDraftRevision(): string;
5
5
  export declare function transferIdentity(): string;
6
- export declare function indexGeneration(): string;
7
6
  export declare function binaryLocalId(): string;
8
7
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAQD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAQD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
package/dist/identity.js CHANGED
@@ -27,9 +27,6 @@ export function chatDraftRevision() {
27
27
  export function transferIdentity() {
28
28
  return randomIdentity();
29
29
  }
30
- export function indexGeneration() {
31
- return randomIdentity();
32
- }
33
30
  export function binaryLocalId() {
34
31
  return randomIdentity();
35
32
  }
package/dist/index.d.ts CHANGED
@@ -1,26 +1,28 @@
1
- export type { AcceptedMessage, AcceptedRoom, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BinaryFile, BinaryLinkResult, BinaryRequest, BinaryResult, ReferrerScope, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationAgents, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, DiscoveryScope, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, HeldContent, HeldFile, HeldRevisions, HeldRoom, KeptReceipt, ListedConversation, MdModelIdentity, Member, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomModels, RoomNotReadable, RoomStream, RoomStreamEvent, RoomVersionAt, ServiceMode, ServiceModeSignal, StreamReceipts, TransportUncertainty, TurnContext, TurnOperation, TypedSelection, } from './adapter.js';
1
+ export type { AcceptedMessage, AcceptedRoom, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, AttachRequest, AttachResult, AuthorityChange, Authorization, BinaryFile, BinaryLinkResult, BinaryRequest, BinaryResult, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, HeldContent, HeldFile, HeldRoom, ListedAgent, ListedConversation, MdModelIdentity, Member, MutationRequest, MutationResult, Outline, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomChange, RoomModels, RoomNotReadable, RoomStream, RoomStreamEvent, RoomVersionAt, SearchAnswer, SearchAsk, ServiceMode, ServiceModeSignal, TransportUncertainty, TurnContext, TurnOperation, TypedSelection, } from './adapter.js';
2
2
  export type { Change, ChangeBatch, Precondition, RoomMove, WrittenBy } from './change.js';
3
- export type { ChatDraft, ChatDraftSurface, ConversationAgent, ConversationEntry, ConversationOptions, ConversationState, ConversationSurface, ConversationView, RunningTurn, } from './conversation.js';
4
- export type { ChosenFile, FileDeclaration } from './file.js';
3
+ export type { ChatDraft, ChatDraftSurface, ConversationAgent, ConversationAnswer, ConversationEntry, ConversationOptions, ConversationRead, ConversationState, ConversationSurface, ConversationView, RunningTurn, } from './conversation.js';
5
4
  export type { AppRoom, AppTypedSelection, BinaryFileSurface, ConnectionRefusal, ConnectionRefusalCode, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, RoomDraftSurface, RoomSchemas, SavedParts, SavedRoomDraft, SaveResult, } from './connection.js';
6
5
  export type { Observation } from './observation.js';
7
- export type { BinaryAnswer, BinaryLinkAnswer, CallResult, Failure, HistoryAnswer, Offline, QueueEntry, Resolution, Submission, } from './outcome.js';
8
- export type { BinaryFileRecord, BinaryReference } from './binary.js';
6
+ export type { AttachAnswer, BinaryAnswer, BinaryLinkAnswer, CallResult, DownloadAnswer, Failure, HistoryAnswer, Offline, QueueEntry, Resolution, Submission, } from './outcome.js';
7
+ export type { BinaryFileRecord } from './binary.js';
9
8
  export type { RuntimeError } from './failure.js';
10
9
  export type { ChangedPart, FieldValue, ReturnReason, RoomDraft, RoomDraftCreation, RoomDraftParts, RoomDraftWrite, TextParts, } from './room-draft.js';
11
10
  export type { SaveRefusal } from './save.js';
12
- export type { DocumentHit, DocumentPart, MessageHit, PendingConversation, SearchCoverage, SearchHits, SearchPending, SearchRequest, SearchResult, SearchUndeclared, } from './search.js';
11
+ export type { SearchFound, SearchHit, SearchRequest, SearchResult } from './search.js';
13
12
  export { departure } from './change.js';
14
- export { partsAfter } from './room-draft.js';
13
+ export { lineEnded, partsAfter, partsChanges } from './room-draft.js';
15
14
  export { cutName, nameFrom, transliterated } from './name.js';
16
- export { SESSION_STARTED } from './conversation.js';
15
+ export { HISTORY_CONVERSATIONS, SESSION_STARTED } from './conversation.js';
16
+ export { contextFigure } from './context.js';
17
+ export { jobOf, jobsRunning, sessionEnded, type Job, type RunningJob } from './job.js';
17
18
  export { changeBatchIdentity } from './identity.js';
18
- export { ROW_WEIGHT, stepped } from './turn.js';
19
+ export { paced, ROW_WEIGHT, stepped } from './turn.js';
20
+ export { untilAnswered } from './recovery.js';
19
21
  export { entriesIn, patching, sortedKeys } from './shared.js';
20
22
  export { attempts, identities, intentOf, type Answered, type Attempt, type Attempts, type Identities, } from './attempt.js';
21
23
  export { expectedList, expecting, type ExpectedOf, type Expecting } from './expectation.js';
22
- export type { RuntimeShell, StorageEstimate } from './durability.js';
23
- export type { CapacityCause, CodeAvailability, ConnectionAvailability, ConversationCoverage, Durability, HouseOutcome, Persistence, Readiness, ReadinessStatus, RefusedRoom, RoomCoverage, RoomPreparation, SearchObligation, TargetCoverage, } from './readiness.js';
24
+ export type { RuntimeShell } from './durability.js';
25
+ export type { CodeAvailability, ConnectionAvailability, ConversationCoverage, Durability, HouseOutcome, Installation, InstallationAmount, InstallationStep, Persistence, Readiness, ReadinessStatus, RoomCoverage, RoomPreparation, Space, TargetCoverage, } from './readiness.js';
24
26
  export type { AttentionEntry, SyncStatus } from './status.js';
25
27
  export type { Awaits, Backlink, CoveredRoom, Direction, DocumentQuery, DocumentResult, Filter, GroupQuery, GroupResult, Key, LocalQuery, OrderOptions, PendingResult, PendingRoom, Predicate, QueryCoverage, QueryDocument, QueryGroup, QueryResult, QueryRows, Related, Select, Value, Where, } from './query.js';
26
28
  export type { MdType, ModelIdentity, ModelSnapshot, ModelState, ModelResult, TypesResult, ValidationReceipt, } from './model.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  export { departure } from './change.js';
2
- export { partsAfter } from './room-draft.js';
2
+ export { lineEnded, partsAfter, partsChanges } from './room-draft.js';
3
3
  export { cutName, nameFrom, transliterated } from './name.js';
4
- export { SESSION_STARTED } from './conversation.js';
4
+ export { HISTORY_CONVERSATIONS, SESSION_STARTED } from './conversation.js';
5
+ export { contextFigure } from './context.js';
6
+ export { jobOf, jobsRunning, sessionEnded } from './job.js';
5
7
  export { changeBatchIdentity } from './identity.js';
6
- export { ROW_WEIGHT, stepped } from './turn.js';
8
+ export { paced, ROW_WEIGHT, stepped } from './turn.js';
9
+ export { untilAnswered } from './recovery.js';
7
10
  export { entriesIn, patching, sortedKeys } from './shared.js';
8
11
  export { attempts, identities, intentOf, } from './attempt.js';
9
12
  export { expectedList, expecting } from './expectation.js';
package/dist/job.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export type Job = {
2
+ readonly label: string;
3
+ readonly kind: 'started' | 'scheduled' | 'ended';
4
+ readonly state: string;
5
+ readonly next: string | null;
6
+ };
7
+ export type RunningJob = {
8
+ readonly name: string;
9
+ readonly running_since: string;
10
+ };
11
+ export declare function jobOf(said: string): Job;
12
+ export declare function jobsRunning(jobs: readonly RunningJob[], now: number): string[];
13
+ export declare function sessionEnded(jobs: readonly RunningJob[], now: number): string;
14
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAQF,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CASvC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7E"}
package/dist/job.js ADDED
@@ -0,0 +1,28 @@
1
+ const NEXT_RUN = 'next run ';
2
+ const MINUTE = 60_000;
3
+ const ENDED = 'Session ended.';
4
+ export function jobOf(said) {
5
+ const at = said.lastIndexOf(': ');
6
+ const label = at === -1 ? said : said.slice(0, at);
7
+ const state = at === -1 ? '' : said.slice(at + 2);
8
+ if (state === 'running')
9
+ return { label, kind: 'started', state, next: null };
10
+ if (state === 'scheduled')
11
+ return { label, kind: 'scheduled', state, next: null };
12
+ return state.startsWith(NEXT_RUN)
13
+ ? { label, kind: 'scheduled', state, next: state.slice(NEXT_RUN.length) }
14
+ : { label, kind: 'ended', state, next: null };
15
+ }
16
+ export function jobsRunning(jobs, now) {
17
+ return jobs.map((job) => {
18
+ const since = Date.parse(job.running_since);
19
+ const ran = Number.isNaN(since) ? 0 : Math.floor((now - since) / MINUTE);
20
+ return ran >= 1 ? `${job.name} (${ran} min)` : job.name;
21
+ });
22
+ }
23
+ export function sessionEnded(jobs, now) {
24
+ if (jobs.length === 0)
25
+ return ENDED;
26
+ const counted = jobs.length === 1 ? '1 background job' : `${jobs.length} background jobs`;
27
+ return `${ENDED} ${counted} stopped: ${jobsRunning(jobs, now).join(', ')}`;
28
+ }
package/dist/live.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { ChangeSet } from './change-set.js';
2
2
  import { type KeyedResult, type QueryMessage } from './observation.js';
3
3
  import type { PendingResult, Plan, QueryCoverage } from './query.js';
4
+ import type { Fail } from './reach.js';
4
5
  import type { QueryRoom } from './tables.js';
5
6
  export type Cover = {
6
7
  coverage: QueryCoverage;
@@ -14,7 +15,7 @@ type Listener = (message: QueryMessage) => void;
14
15
  export type LiveQueries = {
15
16
  touched(set: ChangeSet): void;
16
17
  recover(): void;
17
- watch(plan: Plan, identity: string, cover: () => Cover, deliver: Listener): () => void;
18
+ watch(plan: Plan, identity: string, cover: () => Cover, deliver: Listener, failed: Fail): () => void;
18
19
  close(): void;
19
20
  };
20
21
  export declare function createLiveQueries(run: Run): LiveQueries;
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAchD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,IAAI,CAAC;IACvF,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAmCF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAuFvD"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAchD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,KAAK,EAClB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,IAAI,GACX,MAAM,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAmCF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CA0FvD"}
package/dist/live.js CHANGED
@@ -38,7 +38,7 @@ export function createLiveQueries(run) {
38
38
  for (const listener of entry.ready)
39
39
  listener(change);
40
40
  }
41
- for (const listener of entry.fresh) {
41
+ for (const listener of entry.fresh.keys()) {
42
42
  entry.ready.add(listener);
43
43
  listener(next);
44
44
  }
@@ -64,8 +64,12 @@ export function createLiveQueries(run) {
64
64
  break;
65
65
  }
66
66
  }
67
- catch {
67
+ catch (error) {
68
68
  entry.dirty = false;
69
+ const unanswered = [...entry.fresh.values()];
70
+ entry.fresh.clear();
71
+ for (const failed of unanswered)
72
+ failed(error);
69
73
  }
70
74
  finally {
71
75
  entry.running = false;
@@ -87,14 +91,14 @@ export function createLiveQueries(run) {
87
91
  schedule(entry);
88
92
  }
89
93
  },
90
- watch(plan, identity, cover, listener) {
94
+ watch(plan, identity, cover, listener, failed) {
91
95
  let entry = entries.get(identity);
92
96
  if (entry === undefined) {
93
97
  entry = {
94
98
  plan,
95
99
  cover,
96
100
  listeners: new Set(),
97
- fresh: new Set(),
101
+ fresh: new Map(),
98
102
  ready: new Set(),
99
103
  digest: undefined,
100
104
  covered: '',
@@ -105,7 +109,7 @@ export function createLiveQueries(run) {
105
109
  }
106
110
  const held = entry;
107
111
  held.listeners.add(listener);
108
- held.fresh.add(listener);
112
+ held.fresh.set(listener, failed);
109
113
  schedule(held);
110
114
  return () => {
111
115
  held.listeners.delete(listener);
@@ -0,0 +1,8 @@
1
+ import type { MdRuntimeClient } from './client.js';
2
+ import { type ShownAnswer } from './outcome.js';
3
+ export declare const ROOM_MEDIA = "room-media";
4
+ type Show = (room: string, path: string, revision?: string) => Promise<ShownAnswer>;
5
+ export declare function shownBy(show: Show, client: MdRuntimeClient): MdRuntimeClient;
6
+ export declare function defineRoomMedia(client: Promise<MdRuntimeClient> | MdRuntimeClient, registry?: CustomElementRegistry): void;
7
+ export {};
8
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,UAAU,eAAe,CAAC;AAwBvC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAIpF,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,CAG5E;AAsBD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,EAClD,QAAQ,GAAE,qBAAsC,GAC/C,IAAI,CA0LN"}