@hashgraphonline/standards-sdk 0.1.146-chore-jsr-improvements.canary.46c0c0f.91 → 0.1.146-chore-jsr-improvements.canary.62a5b19.93

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 (175) hide show
  1. package/dist/cjs/services/registry-broker/client/adapters.d.ts +4 -19
  2. package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -1
  3. package/dist/cjs/services/registry-broker/client/agents.d.ts +4 -15
  4. package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -1
  5. package/dist/cjs/services/registry-broker/client/base-client.d.ts +64 -1
  6. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  7. package/dist/cjs/services/registry-broker/client/chat-history.d.ts +4 -22
  8. package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -1
  9. package/dist/cjs/services/registry-broker/client/chat.d.ts +4 -32
  10. package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -1
  11. package/dist/cjs/services/registry-broker/client/credits.d.ts +4 -39
  12. package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -1
  13. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +4 -34
  14. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -1
  15. package/dist/cjs/services/registry-broker/client/encryption.d.ts +4 -32
  16. package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -1
  17. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +4 -9
  18. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -1
  19. package/dist/cjs/services/registry-broker/client/search-helpers.d.ts +16 -0
  20. package/dist/cjs/services/registry-broker/client/search-helpers.d.ts.map +1 -0
  21. package/dist/cjs/services/registry-broker/client/search.d.ts +5 -18
  22. package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -1
  23. package/dist/cjs/services/registry-broker/client.d.ts +4 -0
  24. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  25. package/dist/cjs/standards-sdk.cjs +3 -3
  26. package/dist/cjs/standards-sdk.cjs.map +1 -1
  27. package/dist/es/services/registry-broker/client/adapters.d.ts +4 -19
  28. package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -1
  29. package/dist/es/services/registry-broker/client/agents.d.ts +4 -15
  30. package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -1
  31. package/dist/es/services/registry-broker/client/base-client.d.ts +64 -1
  32. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  33. package/dist/es/services/registry-broker/client/chat-history.d.ts +4 -22
  34. package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -1
  35. package/dist/es/services/registry-broker/client/chat.d.ts +4 -32
  36. package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -1
  37. package/dist/es/services/registry-broker/client/credits.d.ts +4 -39
  38. package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -1
  39. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +4 -34
  40. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -1
  41. package/dist/es/services/registry-broker/client/encryption.d.ts +4 -32
  42. package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -1
  43. package/dist/es/services/registry-broker/client/ledger-auth.d.ts +4 -9
  44. package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -1
  45. package/dist/es/services/registry-broker/client/search-helpers.d.ts +16 -0
  46. package/dist/es/services/registry-broker/client/search-helpers.d.ts.map +1 -0
  47. package/dist/es/services/registry-broker/client/search.d.ts +5 -18
  48. package/dist/es/services/registry-broker/client/search.d.ts.map +1 -1
  49. package/dist/es/services/registry-broker/client.d.ts +4 -0
  50. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  51. package/dist/es/standards-sdk.es.js +9 -17
  52. package/dist/es/standards-sdk.es.js.map +1 -1
  53. package/dist/es/standards-sdk.es101.js +1 -1
  54. package/dist/es/standards-sdk.es103.js +1 -1
  55. package/dist/es/standards-sdk.es109.js +2 -10
  56. package/dist/es/standards-sdk.es109.js.map +1 -1
  57. package/dist/es/standards-sdk.es11.js +1 -1
  58. package/dist/es/standards-sdk.es110.js +5 -5
  59. package/dist/es/standards-sdk.es12.js +1 -1
  60. package/dist/es/standards-sdk.es120.js +1 -1
  61. package/dist/es/standards-sdk.es121.js +1 -1
  62. package/dist/es/standards-sdk.es122.js +5 -5
  63. package/dist/es/standards-sdk.es124.js +1 -1
  64. package/dist/es/standards-sdk.es125.js +1 -1
  65. package/dist/es/standards-sdk.es127.js +624 -155
  66. package/dist/es/standards-sdk.es127.js.map +1 -1
  67. package/dist/es/standards-sdk.es128.js +15 -205
  68. package/dist/es/standards-sdk.es128.js.map +1 -1
  69. package/dist/es/standards-sdk.es129.js +74 -97
  70. package/dist/es/standards-sdk.es129.js.map +1 -1
  71. package/dist/es/standards-sdk.es130.js +78 -112
  72. package/dist/es/standards-sdk.es130.js.map +1 -1
  73. package/dist/es/standards-sdk.es131.js +51 -238
  74. package/dist/es/standards-sdk.es131.js.map +1 -1
  75. package/dist/es/standards-sdk.es132.js +146 -167
  76. package/dist/es/standards-sdk.es132.js.map +1 -1
  77. package/dist/es/standards-sdk.es133.js +8 -123
  78. package/dist/es/standards-sdk.es133.js.map +1 -1
  79. package/dist/es/standards-sdk.es134.js +77 -317
  80. package/dist/es/standards-sdk.es134.js.map +1 -1
  81. package/dist/es/standards-sdk.es135.js +61 -460
  82. package/dist/es/standards-sdk.es135.js.map +1 -1
  83. package/dist/es/standards-sdk.es136.js +30 -17
  84. package/dist/es/standards-sdk.es136.js.map +1 -1
  85. package/dist/es/standards-sdk.es137.js +34 -81
  86. package/dist/es/standards-sdk.es137.js.map +1 -1
  87. package/dist/es/standards-sdk.es138.js +28 -87
  88. package/dist/es/standards-sdk.es138.js.map +1 -1
  89. package/dist/es/standards-sdk.es139.js +932 -59
  90. package/dist/es/standards-sdk.es139.js.map +1 -1
  91. package/dist/es/standards-sdk.es140.js +12263 -133
  92. package/dist/es/standards-sdk.es140.js.map +1 -1
  93. package/dist/es/standards-sdk.es141.js +138 -7
  94. package/dist/es/standards-sdk.es141.js.map +1 -1
  95. package/dist/es/standards-sdk.es142.js +36 -80
  96. package/dist/es/standards-sdk.es142.js.map +1 -1
  97. package/dist/es/standards-sdk.es143.js +49 -58
  98. package/dist/es/standards-sdk.es143.js.map +1 -1
  99. package/dist/es/standards-sdk.es144.js +84 -30
  100. package/dist/es/standards-sdk.es144.js.map +1 -1
  101. package/dist/es/standards-sdk.es145.js +17 -34
  102. package/dist/es/standards-sdk.es145.js.map +1 -1
  103. package/dist/es/standards-sdk.es146.js +172 -28
  104. package/dist/es/standards-sdk.es146.js.map +1 -1
  105. package/dist/es/standards-sdk.es147.js +299 -115
  106. package/dist/es/standards-sdk.es147.js.map +1 -1
  107. package/dist/es/standards-sdk.es148.js +340 -36
  108. package/dist/es/standards-sdk.es148.js.map +1 -1
  109. package/dist/es/standards-sdk.es149.js +453 -959
  110. package/dist/es/standards-sdk.es149.js.map +1 -1
  111. package/dist/es/standards-sdk.es150.js +267 -12225
  112. package/dist/es/standards-sdk.es150.js.map +1 -1
  113. package/dist/es/standards-sdk.es151.js +74 -15
  114. package/dist/es/standards-sdk.es151.js.map +1 -1
  115. package/dist/es/standards-sdk.es152.js +132 -49
  116. package/dist/es/standards-sdk.es152.js.map +1 -1
  117. package/dist/es/standards-sdk.es16.js +2 -10
  118. package/dist/es/standards-sdk.es16.js.map +1 -1
  119. package/dist/es/standards-sdk.es18.js +5 -13
  120. package/dist/es/standards-sdk.es18.js.map +1 -1
  121. package/dist/es/standards-sdk.es19.js +3 -11
  122. package/dist/es/standards-sdk.es19.js.map +1 -1
  123. package/dist/es/standards-sdk.es22.js +1 -1
  124. package/dist/es/standards-sdk.es27.js +5 -13
  125. package/dist/es/standards-sdk.es27.js.map +1 -1
  126. package/dist/es/standards-sdk.es30.js +1 -1
  127. package/dist/es/standards-sdk.es31.js +1 -1
  128. package/dist/es/standards-sdk.es35.js +3 -11
  129. package/dist/es/standards-sdk.es35.js.map +1 -1
  130. package/dist/es/standards-sdk.es36.js +3 -3
  131. package/dist/es/standards-sdk.es37.js +1 -1
  132. package/dist/es/standards-sdk.es4.js +1 -1
  133. package/dist/es/standards-sdk.es53.js +1 -1
  134. package/dist/es/standards-sdk.es56.js +1 -1
  135. package/dist/es/standards-sdk.es58.js +1 -1
  136. package/dist/es/standards-sdk.es59.js +1 -1
  137. package/dist/es/standards-sdk.es60.js +3 -11
  138. package/dist/es/standards-sdk.es60.js.map +1 -1
  139. package/dist/es/standards-sdk.es62.js +1 -1
  140. package/dist/es/standards-sdk.es64.js +1 -1
  141. package/dist/es/standards-sdk.es65.js +2 -2
  142. package/dist/es/standards-sdk.es68.js +2 -2
  143. package/dist/es/standards-sdk.es69.js +1 -1
  144. package/dist/es/standards-sdk.es7.js +1 -1
  145. package/dist/es/standards-sdk.es71.js +1 -1
  146. package/dist/es/standards-sdk.es76.js +1 -1
  147. package/dist/es/standards-sdk.es77.js +2 -10
  148. package/dist/es/standards-sdk.es77.js.map +1 -1
  149. package/dist/es/standards-sdk.es78.js +1 -1
  150. package/dist/es/standards-sdk.es81.js +1 -1
  151. package/dist/es/standards-sdk.es83.js +1 -1
  152. package/dist/es/standards-sdk.es87.js +3 -3
  153. package/dist/es/standards-sdk.es91.js +1 -1
  154. package/dist/es/standards-sdk.es92.js +1 -1
  155. package/dist/es/standards-sdk.es97.js +1 -1
  156. package/dist/es/standards-sdk.es99.js +1 -1
  157. package/package.json +1 -1
  158. package/dist/es/standards-sdk.es153.js +0 -87
  159. package/dist/es/standards-sdk.es153.js.map +0 -1
  160. package/dist/es/standards-sdk.es154.js +0 -175
  161. package/dist/es/standards-sdk.es154.js.map +0 -1
  162. package/dist/es/standards-sdk.es155.js +0 -325
  163. package/dist/es/standards-sdk.es155.js.map +0 -1
  164. package/dist/es/standards-sdk.es156.js +0 -349
  165. package/dist/es/standards-sdk.es156.js.map +0 -1
  166. package/dist/es/standards-sdk.es157.js +0 -456
  167. package/dist/es/standards-sdk.es157.js.map +0 -1
  168. package/dist/es/standards-sdk.es158.js +0 -334
  169. package/dist/es/standards-sdk.es158.js.map +0 -1
  170. package/dist/es/standards-sdk.es159.js +0 -79
  171. package/dist/es/standards-sdk.es159.js.map +0 -1
  172. package/dist/es/standards-sdk.es160.js +0 -242
  173. package/dist/es/standards-sdk.es160.js.map +0 -1
  174. package/dist/es/standards-sdk.es161.js +0 -247
  175. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,329 +1,89 @@
1
- import { createSessionResponseSchema, chatHistoryCompactionResponseSchema, sessionEncryptionStatusResponseSchema, encryptionHandshakeResponseSchema, sendMessageResponseSchema } from "./standards-sdk.es149.js";
2
- import { RegistryBrokerClient } from "./standards-sdk.es135.js";
3
- import { serialiseAuthConfig, toJsonObject } from "./standards-sdk.es160.js";
4
- import { EncryptionUnavailableError, EncryptedChatManager } from "./standards-sdk.es161.js";
5
- const encryptedManagers = /* @__PURE__ */ new WeakMap();
6
- const chatApis = /* @__PURE__ */ new WeakMap();
7
- function getEncryptedChatManager(client) {
8
- const existing = encryptedManagers.get(client);
9
- if (existing) {
10
- return existing;
11
- }
12
- const created = new EncryptedChatManager(client);
13
- encryptedManagers.set(client, created);
14
- return created;
15
- }
16
- Object.defineProperty(RegistryBrokerClient.prototype, "chat", {
17
- get() {
18
- const existing = chatApis.get(this);
19
- if (existing) {
20
- return existing;
21
- }
22
- const encryptedManager = getEncryptedChatManager(this);
23
- const api = {
24
- start: (options) => this.startChat(options),
25
- createSession: (payload) => this.createSession(payload),
26
- sendMessage: (payload) => this.sendMessage(payload),
27
- endSession: (sessionId) => this.endSession(sessionId),
28
- getHistory: (sessionId, options) => this.fetchHistorySnapshot(sessionId, options),
29
- compactHistory: (payload) => this.compactHistory(payload),
30
- getEncryptionStatus: (sessionId) => this.fetchEncryptionStatus(sessionId),
31
- submitEncryptionHandshake: (sessionId, payload) => this.postEncryptionHandshake(sessionId, payload),
32
- startConversation: (options) => this.startConversation(options),
33
- acceptConversation: (options) => this.acceptConversation(options),
34
- createEncryptedSession: (options) => encryptedManager.startSession(options),
35
- acceptEncryptedSession: (options) => encryptedManager.acceptSession(options)
36
- };
37
- chatApis.set(this, api);
38
- return api;
39
- }
40
- });
41
- RegistryBrokerClient.prototype.createSession = async function(payload, allowHistoryAutoTopUp = true) {
42
- const body = {};
43
- if ("uaid" in payload && payload.uaid) {
44
- body.uaid = payload.uaid;
45
- }
46
- if ("agentUrl" in payload && payload.agentUrl) {
47
- body.agentUrl = payload.agentUrl;
48
- }
49
- if (payload.auth) {
50
- body.auth = serialiseAuthConfig(payload.auth);
51
- }
52
- if (payload.historyTtlSeconds !== void 0) {
53
- body.historyTtlSeconds = payload.historyTtlSeconds;
54
- }
55
- if (payload.encryptionRequested !== void 0) {
56
- body.encryptionRequested = payload.encryptionRequested;
57
- }
58
- if (payload.senderUaid) {
59
- body.senderUaid = payload.senderUaid;
60
- }
61
- try {
62
- const raw = await this.requestJson("/chat/session", {
63
- method: "POST",
64
- body,
65
- headers: { "content-type": "application/json" }
66
- });
67
- return this.parseWithSchema(
68
- raw,
69
- createSessionResponseSchema,
70
- "chat session response"
71
- );
72
- } catch (error) {
73
- const maybeError = error instanceof Error ? error : null;
74
- if (allowHistoryAutoTopUp && this.shouldAutoTopUpHistory(payload, maybeError)) {
75
- await this.executeHistoryAutoTopUp("chat.session");
76
- return this.createSession(payload, false);
1
+ import { Logger } from "./standards-sdk.es105.js";
2
+ class ContentResolverRegistryImpl {
3
+ constructor() {
4
+ this.resolver = null;
5
+ this.onUnavailableCallbacks = [];
6
+ this.logger = Logger.getInstance({ module: "ContentResolverRegistry" });
7
+ }
8
+ static getInstance() {
9
+ if (!ContentResolverRegistryImpl._instance) {
10
+ ContentResolverRegistryImpl._instance = new ContentResolverRegistryImpl();
77
11
  }
78
- throw error;
79
- }
80
- };
81
- RegistryBrokerClient.prototype.startChat = async function(options) {
82
- if ("uaid" in options && options.uaid) {
83
- return this.startConversation({
84
- uaid: options.uaid,
85
- senderUaid: options.senderUaid,
86
- historyTtlSeconds: options.historyTtlSeconds,
87
- auth: options.auth,
88
- encryption: options.encryption,
89
- onSessionCreated: options.onSessionCreated
90
- });
91
- }
92
- if ("agentUrl" in options && options.agentUrl) {
93
- const session = await this.createSession({
94
- agentUrl: options.agentUrl,
95
- auth: options.auth,
96
- historyTtlSeconds: options.historyTtlSeconds,
97
- senderUaid: options.senderUaid
98
- });
99
- options.onSessionCreated?.(session.sessionId);
100
- return this.createPlaintextConversationHandle(
101
- session.sessionId,
102
- session.encryption ?? null,
103
- options.auth,
104
- { agentUrl: options.agentUrl, uaid: options.uaid }
105
- );
106
- }
107
- throw new Error("startChat requires either uaid or agentUrl");
108
- };
109
- RegistryBrokerClient.prototype.startConversation = async function(options) {
110
- const preference = options.encryption?.preference ?? "preferred";
111
- const requestEncryption = preference !== "disabled";
112
- if (!requestEncryption) {
113
- const session = await this.createSession({
114
- uaid: options.uaid,
115
- auth: options.auth,
116
- historyTtlSeconds: options.historyTtlSeconds,
117
- senderUaid: options.senderUaid,
118
- encryptionRequested: false
119
- });
120
- options.onSessionCreated?.(session.sessionId);
121
- return this.createPlaintextConversationHandle(
122
- session.sessionId,
123
- session.encryption ?? null,
124
- options.auth,
125
- { uaid: options.uaid }
126
- );
127
- }
128
- try {
129
- const encryptedManager = getEncryptedChatManager(this);
130
- const handle = await encryptedManager.startSession({
131
- uaid: options.uaid,
132
- senderUaid: options.senderUaid,
133
- historyTtlSeconds: options.historyTtlSeconds,
134
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
135
- pollIntervalMs: options.encryption?.pollIntervalMs,
136
- onSessionCreated: (sessionId) => {
137
- options.onSessionCreated?.(sessionId);
138
- },
139
- auth: options.auth
140
- });
141
- return handle;
142
- } catch (error) {
143
- if (error instanceof EncryptionUnavailableError) {
144
- if (preference === "required") {
145
- throw error;
146
- }
147
- return this.createPlaintextConversationHandle(
148
- error.sessionId,
149
- error.summary ?? null,
150
- options.auth,
151
- { uaid: options.uaid }
152
- );
153
- }
154
- throw error;
155
- }
156
- };
157
- RegistryBrokerClient.prototype.acceptConversation = async function(options) {
158
- const preference = options.encryption?.preference ?? "preferred";
159
- if (preference === "disabled") {
160
- return this.createPlaintextConversationHandle(options.sessionId, null);
161
- }
162
- try {
163
- const encryptedManager = getEncryptedChatManager(this);
164
- const handle = await encryptedManager.acceptSession({
165
- sessionId: options.sessionId,
166
- responderUaid: options.responderUaid,
167
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
168
- pollIntervalMs: options.encryption?.pollIntervalMs
169
- });
170
- return handle;
171
- } catch (error) {
172
- if (error instanceof EncryptionUnavailableError && preference !== "required") {
173
- return this.createPlaintextConversationHandle(
174
- options.sessionId,
175
- null,
176
- void 0,
177
- { uaid: options.responderUaid }
178
- );
12
+ return ContentResolverRegistryImpl._instance;
13
+ }
14
+ /**
15
+ * Register a content resolver (typically called by ContentStoreManager)
16
+ */
17
+ register(resolver) {
18
+ if (this.resolver) {
19
+ this.logger.warn("Resolver already registered, replacing existing");
179
20
  }
180
- throw error;
181
- }
182
- };
183
- RegistryBrokerClient.prototype.createPlaintextConversationHandle = function(sessionId, summary, defaultAuth, context) {
184
- const uaid = context?.uaid?.trim();
185
- const agentUrl = context?.agentUrl?.trim();
186
- return {
187
- sessionId,
188
- mode: "plaintext",
189
- summary: summary ?? null,
190
- send: async (options) => {
191
- const plaintext = options.plaintext;
192
- if (!plaintext || plaintext.trim().length === 0) {
193
- throw new Error("plaintext is required for chat messages");
194
- }
195
- const message = options.message ?? plaintext;
196
- return this.sendMessage({
197
- sessionId,
198
- message,
199
- streaming: options.streaming,
200
- auth: options.auth ?? defaultAuth,
201
- uaid,
202
- agentUrl
21
+ this.resolver = resolver;
22
+ this.logger.info("Content resolver registered");
23
+ }
24
+ /**
25
+ * Get the registered content resolver
26
+ */
27
+ getResolver() {
28
+ return this.resolver;
29
+ }
30
+ /**
31
+ * Check if a resolver is available
32
+ */
33
+ isAvailable() {
34
+ return this.resolver !== null;
35
+ }
36
+ /**
37
+ * Unregister the current resolver
38
+ */
39
+ unregister() {
40
+ if (this.resolver) {
41
+ this.resolver = null;
42
+ this.logger.info("Content resolver unregistered");
43
+ this.onUnavailableCallbacks.forEach((callback) => {
44
+ try {
45
+ callback();
46
+ } catch (error) {
47
+ this.logger.error("Error in unavailable callback:", error);
48
+ }
203
49
  });
204
- },
205
- decryptHistoryEntry: (entry) => entry.content
206
- };
207
- };
208
- RegistryBrokerClient.prototype.compactHistory = async function(payload) {
209
- if (!payload.sessionId || payload.sessionId.trim().length === 0) {
210
- throw new Error("sessionId is required to compact chat history");
211
- }
212
- const body = {};
213
- if (typeof payload.preserveEntries === "number" && Number.isFinite(payload.preserveEntries) && payload.preserveEntries >= 0) {
214
- body.preserveEntries = Math.floor(payload.preserveEntries);
215
- }
216
- const raw = await this.requestJson(
217
- `/chat/session/${encodeURIComponent(payload.sessionId)}/compact`,
218
- {
219
- method: "POST",
220
- headers: { "content-type": "application/json" },
221
- body
222
50
  }
223
- );
224
- return this.parseWithSchema(
225
- raw,
226
- chatHistoryCompactionResponseSchema,
227
- "chat history compaction response"
228
- );
229
- };
230
- RegistryBrokerClient.prototype.fetchEncryptionStatus = async function(sessionId) {
231
- if (!sessionId || sessionId.trim().length === 0) {
232
- throw new Error("sessionId is required for encryption status");
233
51
  }
234
- const raw = await this.requestJson(
235
- `/chat/session/${encodeURIComponent(sessionId)}/encryption`,
236
- {
237
- method: "GET"
52
+ /**
53
+ * Register callback for when resolver becomes unavailable
54
+ */
55
+ onUnavailable(callback) {
56
+ this.onUnavailableCallbacks.push(callback);
57
+ }
58
+ /**
59
+ * Remove unavailable callback
60
+ */
61
+ offUnavailable(callback) {
62
+ const index = this.onUnavailableCallbacks.indexOf(callback);
63
+ if (index !== -1) {
64
+ this.onUnavailableCallbacks.splice(index, 1);
238
65
  }
239
- );
240
- return this.parseWithSchema(
241
- raw,
242
- sessionEncryptionStatusResponseSchema,
243
- "session encryption status response"
244
- );
245
- };
246
- RegistryBrokerClient.prototype.postEncryptionHandshake = async function(sessionId, payload) {
247
- if (!sessionId || sessionId.trim().length === 0) {
248
- throw new Error("sessionId is required for encryption handshake");
249
66
  }
250
- const raw = await this.requestJson(
251
- `/chat/session/${encodeURIComponent(sessionId)}/encryption-handshake`,
252
- {
253
- method: "POST",
254
- headers: { "content-type": "application/json" },
255
- body: {
256
- role: payload.role,
257
- keyType: payload.keyType,
258
- ephemeralPublicKey: payload.ephemeralPublicKey,
259
- longTermPublicKey: payload.longTermPublicKey,
260
- signature: payload.signature,
261
- uaid: payload.uaid,
262
- userId: payload.userId,
263
- ledgerAccountId: payload.ledgerAccountId,
264
- metadata: payload.metadata
67
+ /**
68
+ * Execute operation with resolver or fallback
69
+ */
70
+ async withResolver(operation, fallback) {
71
+ if (this.resolver) {
72
+ try {
73
+ return await operation(this.resolver);
74
+ } catch (error) {
75
+ this.logger.warn("Resolver operation failed, using fallback:", error);
76
+ return await fallback();
265
77
  }
78
+ } else {
79
+ this.logger.warn("No resolver available, using fallback");
80
+ return await fallback();
266
81
  }
267
- );
268
- const response = this.parseWithSchema(
269
- raw,
270
- encryptionHandshakeResponseSchema,
271
- "encryption handshake response"
272
- );
273
- return response.handshake;
274
- };
275
- RegistryBrokerClient.prototype.sendMessage = async function(payload) {
276
- const body = {
277
- message: payload.message
278
- };
279
- if (payload.streaming !== void 0) {
280
- body.streaming = payload.streaming;
281
- }
282
- if (payload.auth) {
283
- body.auth = serialiseAuthConfig(payload.auth);
284
- }
285
- if ("uaid" in payload) {
286
- body.uaid = payload.uaid;
287
- }
288
- if ("sessionId" in payload && payload.sessionId) {
289
- body.sessionId = payload.sessionId;
290
- }
291
- if ("agentUrl" in payload && payload.agentUrl) {
292
- body.agentUrl = payload.agentUrl;
293
- }
294
- let cipherEnvelope = payload.cipherEnvelope ?? null;
295
- if (payload.encryption) {
296
- const sessionIdForEncryption = payload.encryption.sessionId ?? (typeof body.sessionId === "string" ? body.sessionId : void 0);
297
- if (!sessionIdForEncryption) {
298
- throw new Error(
299
- "sessionId is required when using encrypted chat payloads"
300
- );
301
- }
302
- if (!payload.encryption.recipients?.length) {
303
- throw new Error("recipients are required for encrypted chat payloads");
304
- }
305
- cipherEnvelope = this.encryption.encryptCipherEnvelope({
306
- ...payload.encryption,
307
- sessionId: sessionIdForEncryption
308
- });
309
- }
310
- if (cipherEnvelope) {
311
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
312
82
  }
313
- const raw = await this.requestJson("/chat/message", {
314
- method: "POST",
315
- body,
316
- headers: { "content-type": "application/json" }
317
- });
318
- return this.parseWithSchema(
319
- raw,
320
- sendMessageResponseSchema,
321
- "chat message response"
322
- );
323
- };
324
- RegistryBrokerClient.prototype.endSession = async function(sessionId) {
325
- await this.request(`/chat/session/${encodeURIComponent(sessionId)}`, {
326
- method: "DELETE"
327
- });
83
+ }
84
+ const ContentResolverRegistry = ContentResolverRegistryImpl.getInstance();
85
+ export {
86
+ ContentResolverRegistry,
87
+ ContentResolverRegistryImpl
328
88
  };
329
89
  //# sourceMappingURL=standards-sdk.es134.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es134.js","sources":["../../src/services/registry-broker/client/chat.ts"],"sourcesContent":["import type {\n AcceptConversationOptions,\n AcceptEncryptedChatSessionOptions,\n AgentAuthConfig,\n ChatConversationHandle,\n ChatHistoryCompactionResponse,\n ChatHistoryFetchOptions,\n ChatHistorySnapshotWithDecryptedEntries,\n CompactHistoryRequestPayload,\n CreateSessionRequestPayload,\n CreateSessionResponse,\n EncryptionHandshakeRecord,\n EncryptionHandshakeSubmissionPayload,\n EncryptedChatSessionHandle,\n JsonObject,\n JsonValue,\n SendMessageRequestPayload,\n SendMessageResponse,\n SessionEncryptionStatusResponse,\n SessionEncryptionSummary,\n StartChatOptions,\n StartConversationOptions,\n StartEncryptedChatSessionOptions,\n} from '../types';\nimport {\n chatHistoryCompactionResponseSchema,\n createSessionResponseSchema,\n encryptionHandshakeResponseSchema,\n sendMessageResponseSchema,\n sessionEncryptionStatusResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { serialiseAuthConfig, toJsonObject } from './utils';\nimport {\n EncryptedChatManager,\n EncryptionUnavailableError,\n} from './encrypted-chat-manager';\nconst encryptedManagers = new WeakMap<\n RegistryBrokerClient,\n EncryptedChatManager\n>();\nconst chatApis = new WeakMap<\n RegistryBrokerClient,\n RegistryBrokerClient['chat']\n>();\nfunction getEncryptedChatManager(\n client: RegistryBrokerClient,\n): EncryptedChatManager {\n const existing = encryptedManagers.get(client);\n if (existing) {\n return existing;\n }\n const created = new EncryptedChatManager(client);\n encryptedManagers.set(client, created);\n return created;\n}\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n readonly chat: {\n start: (options: StartChatOptions) => Promise<ChatConversationHandle>;\n createSession: (\n payload: CreateSessionRequestPayload,\n ) => Promise<CreateSessionResponse>;\n sendMessage: (\n payload: SendMessageRequestPayload,\n ) => Promise<SendMessageResponse>;\n endSession: (sessionId: string) => Promise<void>;\n getHistory: (\n sessionId: string,\n options?: ChatHistoryFetchOptions,\n ) => Promise<ChatHistorySnapshotWithDecryptedEntries>;\n compactHistory: (\n payload: CompactHistoryRequestPayload,\n ) => Promise<ChatHistoryCompactionResponse>;\n getEncryptionStatus: (\n sessionId: string,\n ) => Promise<SessionEncryptionStatusResponse>;\n submitEncryptionHandshake: (\n sessionId: string,\n payload: EncryptionHandshakeSubmissionPayload,\n ) => Promise<EncryptionHandshakeRecord>;\n createEncryptedSession?: (\n options: StartEncryptedChatSessionOptions,\n ) => Promise<EncryptedChatSessionHandle>;\n acceptEncryptedSession?: (\n options: AcceptEncryptedChatSessionOptions,\n ) => Promise<EncryptedChatSessionHandle>;\n startConversation: (\n options: StartConversationOptions,\n ) => Promise<ChatConversationHandle>;\n acceptConversation: (\n options: AcceptConversationOptions,\n ) => Promise<ChatConversationHandle>;\n };\n createSession(\n payload: CreateSessionRequestPayload,\n allowHistoryAutoTopUp?: boolean,\n ): Promise<CreateSessionResponse>;\n startChat(options: StartChatOptions): Promise<ChatConversationHandle>;\n startConversation(\n options: StartConversationOptions,\n ): Promise<ChatConversationHandle>;\n acceptConversation(\n options: AcceptConversationOptions,\n ): Promise<ChatConversationHandle>;\n compactHistory(\n payload: CompactHistoryRequestPayload,\n ): Promise<ChatHistoryCompactionResponse>;\n fetchEncryptionStatus(\n sessionId: string,\n ): Promise<SessionEncryptionStatusResponse>;\n postEncryptionHandshake(\n sessionId: string,\n payload: EncryptionHandshakeSubmissionPayload,\n ): Promise<EncryptionHandshakeRecord>;\n sendMessage(\n payload: SendMessageRequestPayload,\n ): Promise<SendMessageResponse>;\n endSession(sessionId: string): Promise<void>;\n createPlaintextConversationHandle(\n sessionId: string,\n summary: SessionEncryptionSummary | null,\n defaultAuth?: AgentAuthConfig,\n context?: { uaid?: string; agentUrl?: string },\n ): ChatConversationHandle;\n }\n}\nObject.defineProperty(RegistryBrokerClient.prototype, 'chat', {\n get(this: RegistryBrokerClient) {\n const existing = chatApis.get(this);\n if (existing) {\n return existing;\n }\n const encryptedManager = getEncryptedChatManager(this);\n const api = {\n start: (options: StartChatOptions) => this.startChat(options),\n createSession: (payload: CreateSessionRequestPayload) =>\n this.createSession(payload),\n sendMessage: (payload: SendMessageRequestPayload) =>\n this.sendMessage(payload),\n endSession: (sessionId: string) => this.endSession(sessionId),\n getHistory: (sessionId: string, options?: ChatHistoryFetchOptions) =>\n this.fetchHistorySnapshot(sessionId, options),\n compactHistory: (payload: CompactHistoryRequestPayload) =>\n this.compactHistory(payload),\n getEncryptionStatus: (sessionId: string) =>\n this.fetchEncryptionStatus(sessionId),\n submitEncryptionHandshake: (\n sessionId: string,\n payload: EncryptionHandshakeSubmissionPayload,\n ) => this.postEncryptionHandshake(sessionId, payload),\n startConversation: (options: StartConversationOptions) =>\n this.startConversation(options),\n acceptConversation: (options: AcceptConversationOptions) =>\n this.acceptConversation(options),\n createEncryptedSession: (options: StartEncryptedChatSessionOptions) =>\n encryptedManager.startSession(options),\n acceptEncryptedSession: (options: AcceptEncryptedChatSessionOptions) =>\n encryptedManager.acceptSession(options),\n };\n chatApis.set(this, api);\n return api;\n },\n});\nRegistryBrokerClient.prototype.createSession = async function (\n this: RegistryBrokerClient,\n payload: CreateSessionRequestPayload,\n allowHistoryAutoTopUp = true,\n): Promise<CreateSessionResponse> {\n const body: JsonObject = {};\n if ('uaid' in payload && payload.uaid) {\n body.uaid = payload.uaid;\n }\n if ('agentUrl' in payload && payload.agentUrl) {\n body.agentUrl = payload.agentUrl;\n }\n if (payload.auth) {\n body.auth = serialiseAuthConfig(payload.auth);\n }\n if (payload.historyTtlSeconds !== undefined) {\n body.historyTtlSeconds = payload.historyTtlSeconds;\n }\n if (payload.encryptionRequested !== undefined) {\n body.encryptionRequested = payload.encryptionRequested;\n }\n if (payload.senderUaid) {\n body.senderUaid = payload.senderUaid;\n }\n try {\n const raw = await this.requestJson<JsonValue>('/chat/session', {\n method: 'POST',\n body,\n headers: { 'content-type': 'application/json' },\n });\n return this.parseWithSchema(\n raw,\n createSessionResponseSchema,\n 'chat session response',\n );\n } catch (error) {\n const maybeError = error instanceof Error ? error : null;\n if (\n allowHistoryAutoTopUp &&\n this.shouldAutoTopUpHistory(payload, maybeError)\n ) {\n await this.executeHistoryAutoTopUp('chat.session');\n return this.createSession(payload, false);\n }\n throw error;\n }\n};\nRegistryBrokerClient.prototype.startChat = async function (\n this: RegistryBrokerClient,\n options: StartChatOptions,\n): Promise<ChatConversationHandle> {\n if ('uaid' in options && options.uaid) {\n return this.startConversation({\n uaid: options.uaid,\n senderUaid: options.senderUaid,\n historyTtlSeconds: options.historyTtlSeconds,\n auth: options.auth,\n encryption: options.encryption,\n onSessionCreated: options.onSessionCreated,\n });\n }\n if ('agentUrl' in options && options.agentUrl) {\n const session = await this.createSession({\n agentUrl: options.agentUrl,\n auth: options.auth,\n historyTtlSeconds: options.historyTtlSeconds,\n senderUaid: options.senderUaid,\n });\n options.onSessionCreated?.(session.sessionId);\n return this.createPlaintextConversationHandle(\n session.sessionId,\n session.encryption ?? null,\n options.auth,\n { agentUrl: options.agentUrl, uaid: options.uaid },\n );\n }\n throw new Error('startChat requires either uaid or agentUrl');\n};\nRegistryBrokerClient.prototype.startConversation = async function (\n this: RegistryBrokerClient,\n options: StartConversationOptions,\n): Promise<ChatConversationHandle> {\n const preference = options.encryption?.preference ?? 'preferred';\n const requestEncryption = preference !== 'disabled';\n if (!requestEncryption) {\n const session = await this.createSession({\n uaid: options.uaid,\n auth: options.auth,\n historyTtlSeconds: options.historyTtlSeconds,\n senderUaid: options.senderUaid,\n encryptionRequested: false,\n });\n options.onSessionCreated?.(session.sessionId);\n return this.createPlaintextConversationHandle(\n session.sessionId,\n session.encryption ?? null,\n options.auth,\n { uaid: options.uaid },\n );\n }\n try {\n const encryptedManager = getEncryptedChatManager(this);\n const handle = await encryptedManager.startSession({\n uaid: options.uaid,\n senderUaid: options.senderUaid,\n historyTtlSeconds: options.historyTtlSeconds,\n handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,\n pollIntervalMs: options.encryption?.pollIntervalMs,\n onSessionCreated: sessionId => {\n options.onSessionCreated?.(sessionId);\n },\n auth: options.auth,\n });\n return handle;\n } catch (error) {\n if (error instanceof EncryptionUnavailableError) {\n if (preference === 'required') {\n throw error;\n }\n return this.createPlaintextConversationHandle(\n error.sessionId,\n error.summary ?? null,\n options.auth,\n { uaid: options.uaid },\n );\n }\n throw error;\n }\n};\nRegistryBrokerClient.prototype.acceptConversation = async function (\n this: RegistryBrokerClient,\n options: AcceptConversationOptions,\n): Promise<ChatConversationHandle> {\n const preference = options.encryption?.preference ?? 'preferred';\n if (preference === 'disabled') {\n return this.createPlaintextConversationHandle(options.sessionId, null);\n }\n try {\n const encryptedManager = getEncryptedChatManager(this);\n const handle = await encryptedManager.acceptSession({\n sessionId: options.sessionId,\n responderUaid: options.responderUaid,\n handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,\n pollIntervalMs: options.encryption?.pollIntervalMs,\n });\n return handle;\n } catch (error) {\n if (\n error instanceof EncryptionUnavailableError &&\n preference !== 'required'\n ) {\n return this.createPlaintextConversationHandle(\n options.sessionId,\n null,\n undefined,\n { uaid: options.responderUaid },\n );\n }\n throw error;\n }\n};\nRegistryBrokerClient.prototype.createPlaintextConversationHandle = function (\n this: RegistryBrokerClient,\n sessionId: string,\n summary: SessionEncryptionSummary | null,\n defaultAuth?: AgentAuthConfig,\n context?: { uaid?: string; agentUrl?: string },\n): ChatConversationHandle {\n const uaid = context?.uaid?.trim();\n const agentUrl = context?.agentUrl?.trim();\n return {\n sessionId,\n mode: 'plaintext',\n summary: summary ?? null,\n send: async options => {\n const plaintext = options.plaintext;\n if (!plaintext || plaintext.trim().length === 0) {\n throw new Error('plaintext is required for chat messages');\n }\n const message = options.message ?? plaintext;\n return this.sendMessage({\n sessionId,\n message,\n streaming: options.streaming,\n auth: options.auth ?? defaultAuth,\n uaid,\n agentUrl,\n });\n },\n decryptHistoryEntry: entry => entry.content,\n };\n};\nRegistryBrokerClient.prototype.compactHistory = async function (\n this: RegistryBrokerClient,\n payload: CompactHistoryRequestPayload,\n): Promise<ChatHistoryCompactionResponse> {\n if (!payload.sessionId || payload.sessionId.trim().length === 0) {\n throw new Error('sessionId is required to compact chat history');\n }\n const body: JsonObject = {};\n if (\n typeof payload.preserveEntries === 'number' &&\n Number.isFinite(payload.preserveEntries) &&\n payload.preserveEntries >= 0\n ) {\n body.preserveEntries = Math.floor(payload.preserveEntries);\n }\n const raw = await this.requestJson<JsonValue>(\n `/chat/session/${encodeURIComponent(payload.sessionId)}/compact`,\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n },\n );\n return this.parseWithSchema(\n raw,\n chatHistoryCompactionResponseSchema,\n 'chat history compaction response',\n );\n};\nRegistryBrokerClient.prototype.fetchEncryptionStatus = async function (\n this: RegistryBrokerClient,\n sessionId: string,\n): Promise<SessionEncryptionStatusResponse> {\n if (!sessionId || sessionId.trim().length === 0) {\n throw new Error('sessionId is required for encryption status');\n }\n const raw = await this.requestJson<JsonValue>(\n `/chat/session/${encodeURIComponent(sessionId)}/encryption`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n sessionEncryptionStatusResponseSchema,\n 'session encryption status response',\n );\n};\nRegistryBrokerClient.prototype.postEncryptionHandshake = async function (\n this: RegistryBrokerClient,\n sessionId: string,\n payload: EncryptionHandshakeSubmissionPayload,\n): Promise<EncryptionHandshakeRecord> {\n if (!sessionId || sessionId.trim().length === 0) {\n throw new Error('sessionId is required for encryption handshake');\n }\n const raw = await this.requestJson<JsonValue>(\n `/chat/session/${encodeURIComponent(sessionId)}/encryption-handshake`,\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: {\n role: payload.role,\n keyType: payload.keyType,\n ephemeralPublicKey: payload.ephemeralPublicKey,\n longTermPublicKey: payload.longTermPublicKey,\n signature: payload.signature,\n uaid: payload.uaid,\n userId: payload.userId,\n ledgerAccountId: payload.ledgerAccountId,\n metadata: payload.metadata,\n },\n },\n );\n const response = this.parseWithSchema(\n raw,\n encryptionHandshakeResponseSchema,\n 'encryption handshake response',\n );\n return response.handshake;\n};\nRegistryBrokerClient.prototype.sendMessage = async function (\n this: RegistryBrokerClient,\n payload: SendMessageRequestPayload,\n): Promise<SendMessageResponse> {\n const body: JsonObject = {\n message: payload.message,\n };\n if (payload.streaming !== undefined) {\n body.streaming = payload.streaming;\n }\n if (payload.auth) {\n body.auth = serialiseAuthConfig(payload.auth);\n }\n if ('uaid' in payload) {\n body.uaid = payload.uaid;\n }\n if ('sessionId' in payload && payload.sessionId) {\n body.sessionId = payload.sessionId;\n }\n if ('agentUrl' in payload && payload.agentUrl) {\n body.agentUrl = payload.agentUrl;\n }\n let cipherEnvelope = payload.cipherEnvelope ?? null;\n if (payload.encryption) {\n const sessionIdForEncryption =\n payload.encryption.sessionId ??\n (typeof body.sessionId === 'string' ? body.sessionId : undefined);\n if (!sessionIdForEncryption) {\n throw new Error(\n 'sessionId is required when using encrypted chat payloads',\n );\n }\n if (!payload.encryption.recipients?.length) {\n throw new Error('recipients are required for encrypted chat payloads');\n }\n cipherEnvelope = this.encryption.encryptCipherEnvelope({\n ...payload.encryption,\n sessionId: sessionIdForEncryption,\n });\n }\n if (cipherEnvelope) {\n body.cipherEnvelope = toJsonObject(cipherEnvelope);\n }\n const raw = await this.requestJson<JsonValue>('/chat/message', {\n method: 'POST',\n body,\n headers: { 'content-type': 'application/json' },\n });\n return this.parseWithSchema(\n raw,\n sendMessageResponseSchema,\n 'chat message response',\n );\n};\nRegistryBrokerClient.prototype.endSession = async function (\n this: RegistryBrokerClient,\n sessionId: string,\n): Promise<void> {\n await this.request(`/chat/session/${encodeURIComponent(sessionId)}`, {\n method: 'DELETE',\n });\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es134.js","sources":["../../src/content-store/ContentResolverRegistry.ts"],"sourcesContent":["/**\n * Content Resolver Registry\n *\n * Dependency injection registry for content resolvers.\n * Allows tools to access content resolution without circular dependencies.\n */\n\nimport type { ContentResolverInterface } from './types';\nimport { Logger } from '../utils/logger';\n\nexport class ContentResolverRegistryImpl {\n private static _instance: ContentResolverRegistryImpl;\n private resolver: ContentResolverInterface | null = null;\n private onUnavailableCallbacks: (() => void)[] = [];\n private logger = Logger.getInstance({ module: 'ContentResolverRegistry' });\n\n static getInstance(): ContentResolverRegistryImpl {\n if (!ContentResolverRegistryImpl._instance) {\n ContentResolverRegistryImpl._instance = new ContentResolverRegistryImpl();\n }\n return ContentResolverRegistryImpl._instance;\n }\n\n /**\n * Register a content resolver (typically called by ContentStoreManager)\n */\n register(resolver: ContentResolverInterface): void {\n if (this.resolver) {\n this.logger.warn('Resolver already registered, replacing existing');\n }\n this.resolver = resolver;\n this.logger.info('Content resolver registered');\n }\n\n /**\n * Get the registered content resolver\n */\n getResolver(): ContentResolverInterface | null {\n return this.resolver;\n }\n\n /**\n * Check if a resolver is available\n */\n isAvailable(): boolean {\n return this.resolver !== null;\n }\n\n /**\n * Unregister the current resolver\n */\n unregister(): void {\n if (this.resolver) {\n this.resolver = null;\n this.logger.info('Content resolver unregistered');\n this.onUnavailableCallbacks.forEach(callback => {\n try {\n callback();\n } catch (error) {\n this.logger.error('Error in unavailable callback:', error);\n }\n });\n }\n }\n\n /**\n * Register callback for when resolver becomes unavailable\n */\n onUnavailable(callback: () => void): void {\n this.onUnavailableCallbacks.push(callback);\n }\n\n /**\n * Remove unavailable callback\n */\n offUnavailable(callback: () => void): void {\n const index = this.onUnavailableCallbacks.indexOf(callback);\n if (index !== -1) {\n this.onUnavailableCallbacks.splice(index, 1);\n }\n }\n\n /**\n * Execute operation with resolver or fallback\n */\n async withResolver<T>(\n operation: (resolver: ContentResolverInterface) => Promise<T>,\n fallback: () => Promise<T>,\n ): Promise<T> {\n if (this.resolver) {\n try {\n return await operation(this.resolver);\n } catch (error) {\n this.logger.warn('Resolver operation failed, using fallback:', error);\n return await fallback();\n }\n } else {\n this.logger.warn('No resolver available, using fallback');\n return await fallback();\n }\n }\n}\n\nexport const ContentResolverRegistry =\n ContentResolverRegistryImpl.getInstance();\n"],"names":[],"mappings":";AAUO,MAAM,4BAA4B;AAAA,EAAlC,cAAA;AAEL,SAAQ,WAA4C;AACpD,SAAQ,yBAAyC,CAAA;AACjD,SAAQ,SAAS,OAAO,YAAY,EAAE,QAAQ,2BAA2B;AAAA,EAAA;AAAA,EAEzE,OAAO,cAA2C;AAChD,QAAI,CAAC,4BAA4B,WAAW;AAC1C,kCAA4B,YAAY,IAAI,4BAAA;AAAA,IAC9C;AACA,WAAO,4BAA4B;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,UAA0C;AACjD,QAAI,KAAK,UAAU;AACjB,WAAK,OAAO,KAAK,iDAAiD;AAAA,IACpE;AACA,SAAK,WAAW;AAChB,SAAK,OAAO,KAAK,6BAA6B;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,cAA+C;AAC7C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,cAAuB;AACrB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW;AAChB,WAAK,OAAO,KAAK,+BAA+B;AAChD,WAAK,uBAAuB,QAAQ,CAAA,aAAY;AAC9C,YAAI;AACF,mBAAA;AAAA,QACF,SAAS,OAAO;AACd,eAAK,OAAO,MAAM,kCAAkC,KAAK;AAAA,QAC3D;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,UAA4B;AACxC,SAAK,uBAAuB,KAAK,QAAQ;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,UAA4B;AACzC,UAAM,QAAQ,KAAK,uBAAuB,QAAQ,QAAQ;AAC1D,QAAI,UAAU,IAAI;AAChB,WAAK,uBAAuB,OAAO,OAAO,CAAC;AAAA,IAC7C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aACJ,WACA,UACY;AACZ,QAAI,KAAK,UAAU;AACjB,UAAI;AACF,eAAO,MAAM,UAAU,KAAK,QAAQ;AAAA,MACtC,SAAS,OAAO;AACd,aAAK,OAAO,KAAK,8CAA8C,KAAK;AACpE,eAAO,MAAM,SAAA;AAAA,MACf;AAAA,IACF,OAAO;AACL,WAAK,OAAO,KAAK,uCAAuC;AACxD,aAAO,MAAM,SAAA;AAAA,IACf;AAAA,EACF;AACF;AAEO,MAAM,0BACX,4BAA4B,YAAA;"}