@agentshouse/mdruntime 0.1.0-alpha.9 → 0.1.0-c3903a68dcbbf

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 (124) hide show
  1. package/AGENTS.md +210 -0
  2. package/README.md +44 -0
  3. package/dist/adapter.d.ts +155 -12
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +2 -3
  6. package/dist/attachment.d.ts +3 -0
  7. package/dist/attachment.d.ts.map +1 -0
  8. package/dist/attachment.js +8 -0
  9. package/dist/bootstrap.d.ts +3 -7
  10. package/dist/bootstrap.d.ts.map +1 -1
  11. package/dist/bootstrap.js +29 -27
  12. package/dist/change-set.d.ts +33 -0
  13. package/dist/change-set.d.ts.map +1 -0
  14. package/dist/change-set.js +87 -0
  15. package/dist/change.d.ts +9 -0
  16. package/dist/change.d.ts.map +1 -1
  17. package/dist/change.js +6 -5
  18. package/dist/client.d.ts +40 -28
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +121 -177
  21. package/dist/collection.d.ts +15 -16
  22. package/dist/collection.d.ts.map +1 -1
  23. package/dist/collection.js +54 -87
  24. package/dist/connection.d.ts +57 -35
  25. package/dist/connection.d.ts.map +1 -1
  26. package/dist/connection.js +1475 -964
  27. package/dist/conversation.d.ts +41 -19
  28. package/dist/conversation.d.ts.map +1 -1
  29. package/dist/conversation.js +483 -327
  30. package/dist/durability.js +6 -6
  31. package/dist/file.d.ts +2 -2
  32. package/dist/file.d.ts.map +1 -1
  33. package/dist/file.js +48 -71
  34. package/dist/host.d.ts +7 -2
  35. package/dist/host.d.ts.map +1 -1
  36. package/dist/host.js +100 -102
  37. package/dist/identity.d.ts +1 -0
  38. package/dist/identity.d.ts.map +1 -1
  39. package/dist/identity.js +10 -9
  40. package/dist/index.d.ts +12 -10
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -2
  43. package/dist/log.js +5 -6
  44. package/dist/memory.d.ts +6 -3
  45. package/dist/memory.d.ts.map +1 -1
  46. package/dist/memory.js +206 -210
  47. package/dist/model.d.ts +10 -25
  48. package/dist/model.d.ts.map +1 -1
  49. package/dist/model.js +18 -21
  50. package/dist/observation.d.ts +25 -0
  51. package/dist/observation.d.ts.map +1 -0
  52. package/dist/observation.js +85 -0
  53. package/dist/outcome.d.ts +17 -20
  54. package/dist/outcome.d.ts.map +1 -1
  55. package/dist/outcome.js +1 -23
  56. package/dist/overlay.d.ts +9 -2
  57. package/dist/overlay.d.ts.map +1 -1
  58. package/dist/overlay.js +187 -43
  59. package/dist/paths.d.ts +0 -1
  60. package/dist/paths.d.ts.map +1 -1
  61. package/dist/paths.js +12 -19
  62. package/dist/query.d.ts +210 -10
  63. package/dist/query.d.ts.map +1 -1
  64. package/dist/query.js +420 -15
  65. package/dist/read-side.d.ts +14 -0
  66. package/dist/read-side.d.ts.map +1 -0
  67. package/dist/read-side.js +371 -0
  68. package/dist/refresh.d.ts +4 -5
  69. package/dist/refresh.d.ts.map +1 -1
  70. package/dist/refresh.js +45 -30
  71. package/dist/replica.d.ts +25 -5
  72. package/dist/replica.d.ts.map +1 -1
  73. package/dist/replica.js +232 -38
  74. package/dist/room-draft.d.ts +124 -0
  75. package/dist/room-draft.d.ts.map +1 -0
  76. package/dist/room-draft.js +327 -0
  77. package/dist/rows.d.ts +41 -0
  78. package/dist/rows.d.ts.map +1 -0
  79. package/dist/rows.js +100 -0
  80. package/dist/save.d.ts +8 -4
  81. package/dist/save.d.ts.map +1 -1
  82. package/dist/save.js +265 -350
  83. package/dist/search.d.ts +61 -0
  84. package/dist/search.d.ts.map +1 -0
  85. package/dist/search.js +125 -0
  86. package/dist/status.d.ts +4 -6
  87. package/dist/status.d.ts.map +1 -1
  88. package/dist/status.js +9 -13
  89. package/dist/store.d.ts +68 -30
  90. package/dist/store.d.ts.map +1 -1
  91. package/dist/store.js +360 -134
  92. package/dist/transfer.d.ts +5 -0
  93. package/dist/transfer.d.ts.map +1 -1
  94. package/dist/transfer.js +1 -5
  95. package/dist/wire.d.ts +4 -3
  96. package/dist/wire.d.ts.map +1 -1
  97. package/dist/wire.js +50 -65
  98. package/package.json +6 -12
  99. package/dist/adapter.js.map +0 -1
  100. package/dist/bootstrap.js.map +0 -1
  101. package/dist/change.js.map +0 -1
  102. package/dist/client.js.map +0 -1
  103. package/dist/collection.js.map +0 -1
  104. package/dist/connection.js.map +0 -1
  105. package/dist/conversation.js.map +0 -1
  106. package/dist/durability.js.map +0 -1
  107. package/dist/file.js.map +0 -1
  108. package/dist/host.js.map +0 -1
  109. package/dist/identity.js.map +0 -1
  110. package/dist/index.js.map +0 -1
  111. package/dist/log.js.map +0 -1
  112. package/dist/memory.js.map +0 -1
  113. package/dist/model.js.map +0 -1
  114. package/dist/outcome.js.map +0 -1
  115. package/dist/overlay.js.map +0 -1
  116. package/dist/paths.js.map +0 -1
  117. package/dist/query.js.map +0 -1
  118. package/dist/refresh.js.map +0 -1
  119. package/dist/replica.js.map +0 -1
  120. package/dist/save.js.map +0 -1
  121. package/dist/status.js.map +0 -1
  122. package/dist/store.js.map +0 -1
  123. package/dist/transfer.js.map +0 -1
  124. package/dist/wire.js.map +0 -1
@@ -1,11 +1,11 @@
1
- const STORAGE_LOSS_STATEMENT = 'Unsynchronized Drafts and Pending Changes were lost.';
1
+ const STORAGE_LOSS_CODE = 'storage-loss';
2
2
  export function detectStorageLoss(stored, reported) {
3
- if (reported === null || reported === stored) return null;
4
- return STORAGE_LOSS_STATEMENT;
3
+ if (reported === null || reported === stored)
4
+ return null;
5
+ return STORAGE_LOSS_CODE;
5
6
  }
6
7
  export function nextGeneration(stored, reported) {
7
- if (stored !== null && (reported === null || reported === stored)) return stored;
8
+ if (stored !== null && (reported === null || reported === stored))
9
+ return stored;
8
10
  return crypto.randomUUID();
9
11
  }
10
-
11
- //# sourceMappingURL=durability.js.map
package/dist/file.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type InstructionFile = {
1
+ export type ChatDraftFile = {
2
2
  name: string;
3
3
  blob: Blob;
4
4
  };
@@ -16,5 +16,5 @@ export type Extent = {
16
16
  };
17
17
  export declare function extentOf(bytes: Uint8Array): Extent | null;
18
18
  export declare function hexDigest(digest: ArrayBuffer): string;
19
- export declare function declaredFile(file: InstructionFile): Promise<FileDeclaration>;
19
+ export declare function declaredFile(file: ChatDraftFile): Promise<FileDeclaration>;
20
20
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,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;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA2GvD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAQzD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAUlF"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,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;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA2GvD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAQzD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAUhF"}
package/dist/file.js CHANGED
@@ -1,138 +1,117 @@
1
- const PNG_SIGNATURE = [
2
- 0x89,
3
- 0x50,
4
- 0x4e,
5
- 0x47,
6
- 0x0d,
7
- 0x0a,
8
- 0x1a,
9
- 0x0a
10
- ];
11
- const WEBP_SYNC = [
12
- 0x9d,
13
- 0x01,
14
- 0x2a
15
- ];
16
- const SHAPELESS_JPEG_MARKERS = new Set([
17
- 0xc4,
18
- 0xc8,
19
- 0xcc
20
- ]);
21
- const BMFF_CONTAINERS = new Set([
22
- 'meta',
23
- 'iprp',
24
- 'ipco'
25
- ]);
1
+ const PNG_SIGNATURE = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
2
+ const WEBP_SYNC = [0x9d, 0x01, 0x2a];
3
+ const SHAPELESS_JPEG_MARKERS = new Set([0xc4, 0xc8, 0xcc]);
4
+ const BMFF_CONTAINERS = new Set(['meta', 'iprp', 'ipco']);
26
5
  function starts(bytes, signature, at = 0) {
27
- return signature.every((value, index)=>bytes[at + index] === value);
6
+ return signature.every((value, index) => bytes[at + index] === value);
28
7
  }
29
8
  function text(bytes, at, length) {
30
9
  return String.fromCharCode(...bytes.subarray(at, at + length));
31
10
  }
32
11
  function bigEndian(bytes, at, length) {
33
12
  let value = 0;
34
- for(let index = 0; index < length; index += 1)value = value * 256 + (bytes[at + index] ?? 0);
13
+ for (let index = 0; index < length; index += 1)
14
+ value = value * 256 + (bytes[at + index] ?? 0);
35
15
  return value;
36
16
  }
37
17
  function littleEndian(bytes, at, length) {
38
18
  let value = 0;
39
- for(let index = length - 1; index >= 0; index -= 1)value = value * 256 + (bytes[at + index] ?? 0);
19
+ for (let index = length - 1; index >= 0; index -= 1)
20
+ value = value * 256 + (bytes[at + index] ?? 0);
40
21
  return value;
41
22
  }
42
23
  function pngExtent(bytes) {
43
- if (bytes.length < 24 || !starts(bytes, PNG_SIGNATURE)) return null;
44
- if (text(bytes, 12, 4) !== 'IHDR') return null;
45
- return {
46
- width: bigEndian(bytes, 16, 4),
47
- height: bigEndian(bytes, 20, 4)
48
- };
24
+ if (bytes.length < 24 || !starts(bytes, PNG_SIGNATURE))
25
+ return null;
26
+ if (text(bytes, 12, 4) !== 'IHDR')
27
+ return null;
28
+ return { width: bigEndian(bytes, 16, 4), height: bigEndian(bytes, 20, 4) };
49
29
  }
50
30
  function gifExtent(bytes) {
51
- if (bytes.length < 10 || text(bytes, 0, 3) !== 'GIF') return null;
52
- return {
53
- width: littleEndian(bytes, 6, 2),
54
- height: littleEndian(bytes, 8, 2)
55
- };
31
+ if (bytes.length < 10 || text(bytes, 0, 3) !== 'GIF')
32
+ return null;
33
+ return { width: littleEndian(bytes, 6, 2), height: littleEndian(bytes, 8, 2) };
56
34
  }
57
35
  function jpegExtent(bytes) {
58
- if (bytes.length < 4 || bytes[0] !== 0xff || bytes[1] !== 0xd8) return null;
36
+ if (bytes.length < 4 || bytes[0] !== 0xff || bytes[1] !== 0xd8)
37
+ return null;
59
38
  let at = 2;
60
- while(at + 9 < bytes.length){
61
- if (bytes[at] !== 0xff) return null;
39
+ while (at + 9 < bytes.length) {
40
+ if (bytes[at] !== 0xff)
41
+ return null;
62
42
  const marker = bytes[at + 1] ?? 0;
63
- if (marker === 0xd8 || marker === 0x01 || marker >= 0xd0 && marker <= 0xd7) {
43
+ if (marker === 0xd8 || marker === 0x01 || (marker >= 0xd0 && marker <= 0xd7)) {
64
44
  at += 2;
65
45
  continue;
66
46
  }
67
47
  const length = bigEndian(bytes, at + 2, 2);
68
48
  if (marker >= 0xc0 && marker <= 0xcf && !SHAPELESS_JPEG_MARKERS.has(marker)) {
69
- return {
70
- width: bigEndian(bytes, at + 7, 2),
71
- height: bigEndian(bytes, at + 5, 2)
72
- };
49
+ return { width: bigEndian(bytes, at + 7, 2), height: bigEndian(bytes, at + 5, 2) };
73
50
  }
74
- if (length < 2) return null;
51
+ if (length < 2)
52
+ return null;
75
53
  at += 2 + length;
76
54
  }
77
55
  return null;
78
56
  }
79
57
  function webpExtent(bytes) {
80
- if (bytes.length < 30 || text(bytes, 0, 4) !== 'RIFF' || text(bytes, 8, 4) !== 'WEBP') return null;
58
+ if (bytes.length < 30 || text(bytes, 0, 4) !== 'RIFF' || text(bytes, 8, 4) !== 'WEBP')
59
+ return null;
81
60
  const chunk = text(bytes, 12, 4);
82
61
  if (chunk === 'VP8X') {
83
62
  return {
84
63
  width: littleEndian(bytes, 24, 3) + 1,
85
- height: littleEndian(bytes, 27, 3) + 1
64
+ height: littleEndian(bytes, 27, 3) + 1,
86
65
  };
87
66
  }
88
67
  if (chunk === 'VP8 ' && starts(bytes, WEBP_SYNC, 23)) {
89
68
  return {
90
69
  width: littleEndian(bytes, 26, 2) & 0x3fff,
91
- height: littleEndian(bytes, 28, 2) & 0x3fff
70
+ height: littleEndian(bytes, 28, 2) & 0x3fff,
92
71
  };
93
72
  }
94
73
  if (chunk === 'VP8L' && bytes[20] === 0x2f) {
95
74
  const packed = littleEndian(bytes, 21, 4);
96
- return {
97
- width: (packed & 0x3fff) + 1,
98
- height: (packed >>> 14 & 0x3fff) + 1
99
- };
75
+ return { width: (packed & 0x3fff) + 1, height: ((packed >>> 14) & 0x3fff) + 1 };
100
76
  }
101
77
  return null;
102
78
  }
103
79
  function spatialExtent(bytes, from, to) {
104
80
  let at = from;
105
- while(at + 8 <= to){
81
+ while (at + 8 <= to) {
106
82
  const size = bigEndian(bytes, at, 4);
107
83
  const name = text(bytes, at + 4, 4);
108
84
  const end = size === 0 ? to : at + size;
109
- if (size === 1 || end <= at || end > to) return null;
85
+ if (size === 1 || end <= at || end > to)
86
+ return null;
110
87
  if (name === 'ispe') {
111
- if (end < at + 20) return null;
112
- return {
113
- width: bigEndian(bytes, at + 12, 4),
114
- height: bigEndian(bytes, at + 16, 4)
115
- };
88
+ if (end < at + 20)
89
+ return null;
90
+ return { width: bigEndian(bytes, at + 12, 4), height: bigEndian(bytes, at + 16, 4) };
116
91
  }
117
92
  if (BMFF_CONTAINERS.has(name)) {
118
93
  const inner = spatialExtent(bytes, at + (name === 'meta' ? 12 : 8), end);
119
- if (inner !== null) return inner;
94
+ if (inner !== null)
95
+ return inner;
120
96
  }
121
97
  at = end;
122
98
  }
123
99
  return null;
124
100
  }
125
101
  function bmffExtent(bytes) {
126
- if (bytes.length < 16 || text(bytes, 4, 4) !== 'ftyp') return null;
102
+ if (bytes.length < 16 || text(bytes, 4, 4) !== 'ftyp')
103
+ return null;
127
104
  return spatialExtent(bytes, 0, bytes.length);
128
105
  }
129
106
  export function extentOf(bytes) {
130
- return pngExtent(bytes) ?? jpegExtent(bytes) ?? gifExtent(bytes) ?? webpExtent(bytes) ?? bmffExtent(bytes);
107
+ return (pngExtent(bytes) ??
108
+ jpegExtent(bytes) ??
109
+ gifExtent(bytes) ??
110
+ webpExtent(bytes) ??
111
+ bmffExtent(bytes));
131
112
  }
132
113
  export function hexDigest(digest) {
133
- return [
134
- ...new Uint8Array(digest)
135
- ].map((value)=>value.toString(16).padStart(2, '0')).join('');
114
+ return [...new Uint8Array(digest)].map((value) => value.toString(16).padStart(2, '0')).join('');
136
115
  }
137
116
  export async function declaredFile(file) {
138
117
  const bytes = new Uint8Array(await file.blob.arrayBuffer());
@@ -142,8 +121,6 @@ export async function declaredFile(file) {
142
121
  mediaType: file.blob.type,
143
122
  byteLength: bytes.byteLength,
144
123
  contentHash: hexDigest(await crypto.subtle.digest('SHA-256', bytes)),
145
- ...extent === null ? {} : extent
124
+ ...(extent === null ? {} : extent),
146
125
  };
147
126
  }
148
-
149
- //# sourceMappingURL=file.js.map
package/dist/host.d.ts CHANGED
@@ -1,9 +1,14 @@
1
1
  import { type MdRuntimeOptions } from './connection.js';
2
2
  import { type RuntimePort } from './wire.js';
3
+ export type MdRuntimeHostOptions = MdRuntimeOptions & {
4
+ deploymentFacts?: unknown;
5
+ };
3
6
  export type MdRuntimeHost = {
4
- attach(port: RuntimePort, app: string): () => void;
7
+ replaceDeploymentFacts(value: unknown): void;
8
+ attach(port: RuntimePort, app: string, release?: string): () => void;
5
9
  endAuthorization(): Promise<void>;
10
+ stop(): Promise<void>;
6
11
  };
7
- export declare function serveMdRuntime(options: MdRuntimeOptions): MdRuntimeHost;
12
+ export declare function serveMdRuntime(options: MdRuntimeHostOptions): MdRuntimeHost;
8
13
  export type { RuntimePort } from './wire.js';
9
14
  //# 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,EACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAML,KAAK,WAAW,EAKjB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACnD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC,CAAC;AA2GF,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAuFvE;AAED,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,EAEtB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAML,KAAK,WAAW,EAIjB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,aAAa,GAAG;IAC1B,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACrE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAuFF,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAwH3E;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
package/dist/host.js CHANGED
@@ -1,42 +1,50 @@
1
- import { createMdRuntime } from './connection.js';
1
+ import { composeRuntime, } from './connection.js';
2
2
  import { removeRuntimeStore } from './store.js';
3
- import { AUTHORIZATION_ENDED, carried, envelope, PROTOCOL_MISMATCH, request } from './wire.js';
4
- function answered(md, app, member, input) {
5
- switch(member){
3
+ import { AUTHORIZATION_ENDED, carried, envelope, PROTOCOL_MISMATCH, request, } from './wire.js';
4
+ function answered(md, app, writtenBy, member, input, deploymentFacts) {
5
+ switch (member) {
6
6
  case 'rooms':
7
7
  return md.rooms();
8
+ case 'slots':
9
+ return md.slots();
8
10
  case 'query':
9
11
  return md.query(input[0]);
12
+ case 'search':
13
+ return md.search(input[0]);
10
14
  case 'types':
11
15
  return md.types(input[0]);
12
16
  case 'syncStatus':
13
17
  return md.syncStatus();
18
+ case 'serviceMode':
19
+ return md.serviceMode();
14
20
  case 'save':
15
- return md.save(input[0], input[1], input[2]);
21
+ return md.save(input[0], input[1], writtenBy);
16
22
  case 'outcome':
17
23
  return md.outcome(input[0]);
18
24
  case 'history':
19
25
  return md.history(input[0], input[1], input[2]);
20
26
  case 'call':
21
27
  return md.call(input[0], input[1]);
28
+ case 'reached':
29
+ return md.reached(input[0], input[1], input[2]);
22
30
  case 'log':
23
31
  return md.log();
24
32
  case 'storageLoss':
25
33
  return md.storageLoss();
34
+ case 'deploymentFacts':
35
+ return structuredClone(deploymentFacts);
26
36
  case 'persistence':
27
37
  return md.persistence();
28
38
  case 'reauthorize':
29
39
  return md.reauthorize();
30
- case 'draft.list':
31
- return md.draft.list();
32
- case 'draft.read':
33
- return md.draft.read(input[0], input[1]);
34
- case 'draft.replace':
35
- return md.draft.replace(input[0], input[1], input[2]);
36
- case 'draft.discard':
37
- return md.draft.discard(input[0], input[1]);
38
- case 'queue.discard':
39
- return md.queue.discard(input[0], input[1]);
40
+ case 'roomDraft.list':
41
+ return md.roomDraft.list();
42
+ case 'roomDraft.read':
43
+ return md.roomDraft.read(input[0], input[1]);
44
+ case 'roomDraft.write':
45
+ return md.roomDraft.write(input[0], input[1], input[2], input[3]);
46
+ case 'roomDraft.discard':
47
+ return md.roomDraft.discard(input[0], input[1], input[2]);
40
48
  case 'presentation.read':
41
49
  return md.presentation.read(app);
42
50
  case 'presentation.write':
@@ -44,13 +52,7 @@ function answered(md, app, member, input) {
44
52
  case 'conversation.list':
45
53
  return md.conversation.list();
46
54
  case 'conversation.read':
47
- return md.conversation.read(input[0]);
48
- case 'conversation.older':
49
- return md.conversation.older(input[0]);
50
- case 'conversation.compose':
51
- return md.conversation.compose(input[0], input[1]);
52
- case 'conversation.discard':
53
- return md.conversation.discard(input[0]);
55
+ return md.conversation.read(input[0], input[1]);
54
56
  case 'conversation.create':
55
57
  return md.conversation.create(input[0]);
56
58
  case 'conversation.send':
@@ -65,112 +67,104 @@ function answered(md, app, member, input) {
65
67
  return md.conversation.cancel(input[0], input[1]);
66
68
  case 'conversation.delete':
67
69
  return md.conversation.delete(input[0]);
68
- }
69
- }
70
- function subscribed(md, app, topic, input, deliver) {
71
- switch(topic){
72
- case 'rooms':
73
- return md.observe('rooms', deliver);
74
- case 'connection-refusal':
75
- return md.observe('connection-refusal', deliver);
76
- case 'storage-loss':
77
- return md.observe('storage-loss', deliver);
78
- case 'sync-status':
79
- return md.observe('sync-status', deliver);
80
- case 'drafts':
81
- return md.observe('drafts', deliver);
82
- case 'queue':
83
- return md.observe('queue', input[0], deliver);
84
- case 'query':
85
- return md.observe('query', input[0], deliver);
86
- case 'presentation':
87
- return md.observe('presentation', app, deliver);
88
- case 'conversation':
89
- return md.observe('conversation', input[0], deliver);
70
+ case 'chatDraft.write':
71
+ return md.chatDraft.write(input[0], input[1]);
72
+ case 'chatDraft.discard':
73
+ return md.chatDraft.discard(input[0]);
90
74
  }
91
75
  }
92
76
  export function serveMdRuntime(options) {
93
- const stopping = new AbortController();
94
- const stop = ()=>{
95
- stopping.abort();
77
+ let deploymentFacts = structuredClone(options.deploymentFacts);
78
+ const closing = new AbortController();
79
+ const close = () => {
80
+ closing.abort();
96
81
  };
97
- options.signal?.addEventListener('abort', stop, {
98
- once: true
99
- });
100
- if (options.signal?.aborted === true) stop();
101
- const md = createMdRuntime({
102
- ...options,
103
- signal: stopping.signal
104
- });
82
+ options.signal?.addEventListener('abort', close, { once: true });
83
+ if (options.signal?.aborted === true)
84
+ close();
85
+ const runtime = composeRuntime({ ...options, signal: closing.signal });
86
+ const { md, watch } = runtime;
105
87
  const attachments = new Map();
106
88
  let authorized = true;
107
- function attach(port, app) {
108
- if (!authorized) throw new Error(AUTHORIZATION_ENDED);
89
+ const factsObservers = new Set();
90
+ const watchFacts = (deliver) => {
91
+ factsObservers.add(deliver);
92
+ deliver(structuredClone(deploymentFacts));
93
+ return () => {
94
+ factsObservers.delete(deliver);
95
+ };
96
+ };
97
+ function attach(port, app, release) {
98
+ if (!authorized)
99
+ throw new Error(AUTHORIZATION_ENDED);
100
+ const writtenBy = release === undefined ? undefined : { app, release };
109
101
  const subscriptions = new Map();
110
102
  let serving = true;
111
- const send = (message)=>{
103
+ const send = (message) => {
112
104
  port.postMessage(envelope(message));
113
105
  };
114
- const detach = ()=>{
115
- if (!serving) return;
106
+ const detach = () => {
107
+ if (!serving)
108
+ return;
116
109
  serving = false;
117
- for (const end of subscriptions.values())end();
110
+ for (const end of subscriptions.values())
111
+ end();
118
112
  subscriptions.clear();
119
113
  attachments.delete(detach);
120
114
  };
121
- const serve = async (message)=>{
122
- if (message.kind === 'hello') return;
115
+ const serve = async (message) => {
116
+ if (message.kind === 'hello')
117
+ return;
123
118
  if (message.kind === 'stop') {
124
119
  subscriptions.get(message.id)?.();
125
120
  subscriptions.delete(message.id);
126
121
  return;
127
122
  }
128
123
  try {
124
+ if (message.kind !== 'observe' || message.topic !== 'room-drafts')
125
+ await md.loaded();
129
126
  if (message.kind === 'observe') {
130
- subscriptions.set(message.id, subscribed(md, app, message.topic, message.input, (value)=>{
131
- if (serving) send({
132
- kind: 'event',
133
- id: message.id,
134
- value
135
- });
136
- }));
137
- if (serving) send({
138
- kind: 'result',
139
- id: message.id,
140
- value: null
141
- });
127
+ const { id, topic } = message;
128
+ let resolved = false;
129
+ const deliver = (value) => {
130
+ if (!serving)
131
+ return;
132
+ send(resolved ? { kind: 'event', id, value } : { kind: 'result', id, value });
133
+ resolved = true;
134
+ };
135
+ subscriptions.set(id, topic === 'deployment-facts'
136
+ ? watchFacts(deliver)
137
+ : watch(topic, topic === 'presentation' ? [app] : message.input, deliver));
142
138
  return;
143
139
  }
144
- const value = await answered(md, app, message.member, message.input);
145
- if (serving) send({
146
- kind: 'result',
147
- id: message.id,
148
- value
149
- });
150
- } catch (error) {
140
+ const value = await answered(md, app, writtenBy, message.member, message.input, deploymentFacts);
141
+ if (serving)
142
+ send({ kind: 'result', id: message.id, value });
143
+ }
144
+ catch (error) {
151
145
  if (serving) {
152
146
  send({
153
147
  kind: 'failure',
154
148
  id: message.id,
155
- message: error instanceof Error ? error.message : String(error)
149
+ message: error instanceof Error ? error.message : String(error),
156
150
  });
157
151
  }
158
152
  }
159
153
  };
160
- port.addEventListener('message', (event)=>{
161
- if (!serving) return;
154
+ port.addEventListener('message', (event) => {
155
+ if (!serving)
156
+ return;
162
157
  const wire = carried(event.data);
163
- if (wire === null) return;
158
+ if (wire === null)
159
+ return;
164
160
  if (!wire.matching) {
165
- send({
166
- kind: 'refusal',
167
- refusal: PROTOCOL_MISMATCH
168
- });
161
+ send({ kind: 'refusal', refusal: PROTOCOL_MISMATCH });
169
162
  detach();
170
163
  return;
171
164
  }
172
165
  const message = request(wire.message);
173
- if (message === null) return;
166
+ if (message === null)
167
+ return;
174
168
  void serve(message);
175
169
  });
176
170
  port.addEventListener('close', detach);
@@ -180,21 +174,25 @@ export function serveMdRuntime(options) {
180
174
  }
181
175
  return {
182
176
  attach,
183
- async endAuthorization () {
177
+ replaceDeploymentFacts(value) {
178
+ if (!authorized)
179
+ throw new Error(AUTHORIZATION_ENDED);
180
+ deploymentFacts = structuredClone(value);
181
+ for (const deliver of factsObservers)
182
+ deliver(structuredClone(deploymentFacts));
183
+ },
184
+ async endAuthorization() {
184
185
  authorized = false;
185
- for (const [detach, send] of [
186
- ...attachments
187
- ]){
188
- send({
189
- kind: 'ended'
190
- });
186
+ for (const [detach, send] of [...attachments]) {
187
+ send({ kind: 'ended' });
191
188
  detach();
192
189
  }
193
- stop();
190
+ close();
194
191
  await removeRuntimeStore();
195
192
  await options.shell.dropGeneration();
196
- }
193
+ },
194
+ stop() {
195
+ return runtime.stop();
196
+ },
197
197
  };
198
198
  }
199
-
200
- //# sourceMappingURL=host.js.map
@@ -1,2 +1,3 @@
1
1
  export declare function changeBatchIdentity(at?: number): string;
2
+ export declare function roomDraftRevision(): string;
2
3
  //# 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"}
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,iBAAiB,IAAI,MAAM,CAI1C"}
package/dist/identity.js CHANGED
@@ -2,15 +2,16 @@ export function changeBatchIdentity(at = Date.now()) {
2
2
  const bytes = new Uint8Array(16);
3
3
  crypto.getRandomValues(bytes);
4
4
  const time = BigInt(at);
5
- for(let index = 0; index < 6; index += 1){
6
- bytes[index] = Number(time >> BigInt(8 * (5 - index)) & 0xffn);
5
+ for (let index = 0; index < 6; index += 1) {
6
+ bytes[index] = Number((time >> BigInt(8 * (5 - index))) & 0xffn);
7
7
  }
8
- bytes[6] = bytes[6] & 0x0f | 0x70;
9
- bytes[8] = bytes[8] & 0x3f | 0x80;
10
- const hex = [
11
- ...bytes
12
- ].map((byte)=>byte.toString(16).padStart(2, '0')).join('');
8
+ bytes[6] = (bytes[6] & 0x0f) | 0x70;
9
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
10
+ const hex = [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');
13
11
  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
14
12
  }
15
-
16
- //# sourceMappingURL=identity.js.map
13
+ export function roomDraftRevision() {
14
+ const bytes = new Uint8Array(16);
15
+ crypto.getRandomValues(bytes);
16
+ return [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');
17
+ }
package/dist/index.d.ts CHANGED
@@ -1,16 +1,18 @@
1
- export type { ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ContractUnavailable, ConversationAction, ConversationCards, ConversationEvent, ConversationMessage, DiscoverResult, DiscoveredRoom, Discovery, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, MdModelIdentity, ModelRequest, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomNotReadable, RoomVersionNotification, SelectedRooms, TransportUncertainty, TypedSelection, ViewedConversations, } from './adapter.js';
2
- export type { Change, ChangeBatch, Precondition } from './change.js';
3
- export type { ConversationEntry, ConversationSurface, ConversationView, GrowingText, UnsentInstruction, } from './conversation.js';
4
- export type { FileDeclaration, InstructionFile } from './file.js';
5
- export type { MdType } from './collection.js';
6
- export type { AppRoom, AppTypedSelection, ConnectionRefusal, ConnectionRefusalReason, DraftEntry, DraftSurface, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, QueueSurface, RoomTypes, SaveResult, } from './connection.js';
7
- export type { AcceptedOutcome, AffectedState, CallResult, QueueEntry, QueueOutcome, SubmissionOutcome, } from './outcome.js';
1
+ export type { AcceptedMessage, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationCards, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, MdModelIdentity, ModelRequest, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomAttachment, RoomNotReadable, RoomVersionAt, RoomVersionNotification, SelectedRooms, ServiceMode, ServiceModeSignal, TransportUncertainty, TypedSelection, WorkingNote, } from './adapter.js';
2
+ export type { Change, ChangeBatch, Precondition, WrittenBy } from './change.js';
3
+ export type { ChatDraft, ChatDraftSurface, ConversationEntry, ConversationOptions, ConversationSurface, ConversationView, GrowingText, } from './conversation.js';
4
+ export type { ChatDraftFile, FileDeclaration } from './file.js';
5
+ export type { AppRoom, AppSlot, AppSlotEntry, AppTypedSelection, ConnectionRefusal, ConnectionRefusalReason, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, RoomDraftSurface, RoomTypes, SavedRoomDraft, SaveResult, } from './connection.js';
6
+ export type { Observation } from './observation.js';
7
+ export type { AcceptedOutcome, AffectedState, CallResult, QueueEntry, Submission, SubmissionOutcome, } from './outcome.js';
8
+ export type { ChangedPart, FieldValue, ReturnReason, RoomDraft, RoomDraftCreation, RoomDraftParts, RoomDraftWrite, } from './room-draft.js';
8
9
  export type { SaveRefusal } from './save.js';
10
+ export type { DocumentHit, DocumentPart, MessageHit, SearchRequest, SearchResult, } from './search.js';
11
+ export { changeBatchIdentity } from './identity.js';
9
12
  export { createMdRuntime } from './connection.js';
10
13
  export type { RuntimeShell } from './durability.js';
11
14
  export type { AttentionEntry, SyncStatus } from './status.js';
12
- export type { Backlink, QueryDocument, QueryGroup, QueryOptions, QueryResult, Selector, } from '@agentshouse/query';
13
- export type { AttachedModelBinding, ModelIdentity, ModelSnapshot, ModelState, ModelResult, ModelValidation, TypesResult, ValidationReceipt, } from './model.js';
15
+ export type { Backlink, Direction, DocumentQuery, DocumentResult, Filter, GroupQuery, GroupResult, Key, LocalQuery, OrderOptions, Predicate, QueryDocument, QueryGroup, QueryResult, Related, Select, Value, Where, } from './query.js';
16
+ export type { MdType, ModelIdentity, ModelSnapshot, ModelState, ModelResult, TypesResult, ValidationReceipt, } from './model.js';
14
17
  export type { OperationScopes, ReplicaAdmission, ScopedRefusal } from './adapter.js';
15
- export type { QueryBinding, QueryInput } from './query.js';
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,MAAM,EACN,UAAU,EACV,WAAW,EACX,GAAG,EACH,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
+ export { changeBatchIdentity } from './identity.js';
1
2
  export { createMdRuntime } from './connection.js';
2
-
3
- //# sourceMappingURL=index.js.map