@hashgraphonline/standards-sdk 0.1.187 → 0.1.188

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 (212) hide show
  1. package/dist/browser/services/registry-broker/client/agent-network.d.ts +974 -0
  2. package/dist/browser/services/registry-broker/client/agent-network.d.ts.map +1 -0
  3. package/dist/browser/services/registry-broker/client/base-client.d.ts +4 -0
  4. package/dist/browser/services/registry-broker/client/base-client.d.ts.map +1 -1
  5. package/dist/browser/services/registry-broker/client.d.ts +1 -0
  6. package/dist/browser/services/registry-broker/client.d.ts.map +1 -1
  7. package/dist/browser/standards-sdk.browser.js +149 -0
  8. package/dist/browser/standards-sdk.browser.js.map +1 -1
  9. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts +974 -0
  10. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts.map +1 -0
  11. package/dist/browser-root/services/registry-broker/client/base-client.d.ts +4 -0
  12. package/dist/browser-root/services/registry-broker/client/base-client.d.ts.map +1 -1
  13. package/dist/browser-root/services/registry-broker/client.d.ts +1 -0
  14. package/dist/browser-root/services/registry-broker/client.d.ts.map +1 -1
  15. package/dist/browser-root/standards-sdk.root-browser.js +404 -15
  16. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  17. package/dist/cjs/services/registry-broker/client/agent-network.d.ts +974 -0
  18. package/dist/cjs/services/registry-broker/client/agent-network.d.ts.map +1 -0
  19. package/dist/cjs/services/registry-broker/client/base-client.d.ts +4 -0
  20. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  21. package/dist/cjs/services/registry-broker/client.d.ts +1 -0
  22. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +2 -2
  24. package/dist/cjs/standards-sdk.cjs.map +1 -1
  25. package/dist/es/services/registry-broker/client/agent-network.d.ts +974 -0
  26. package/dist/es/services/registry-broker/client/agent-network.d.ts.map +1 -0
  27. package/dist/es/services/registry-broker/client/base-client.d.ts +4 -0
  28. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  29. package/dist/es/services/registry-broker/client.d.ts +1 -0
  30. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  31. package/dist/es/standards-sdk.es.js +50 -27
  32. package/dist/es/standards-sdk.es.js.map +1 -1
  33. package/dist/es/standards-sdk.es104.js +1 -1
  34. package/dist/es/standards-sdk.es106.js +1 -1
  35. package/dist/es/standards-sdk.es108.js +1 -1
  36. package/dist/es/standards-sdk.es11.js +1 -1
  37. package/dist/es/standards-sdk.es110.js +1 -1
  38. package/dist/es/standards-sdk.es116.js +2 -2
  39. package/dist/es/standards-sdk.es12.js +1 -1
  40. package/dist/es/standards-sdk.es120.js +4 -4
  41. package/dist/es/standards-sdk.es121.js +11 -11
  42. package/dist/es/standards-sdk.es126.js +1 -1
  43. package/dist/es/standards-sdk.es132.js +3 -2
  44. package/dist/es/standards-sdk.es132.js.map +1 -1
  45. package/dist/es/standards-sdk.es133.js +5 -5
  46. package/dist/es/standards-sdk.es143.js +1 -1
  47. package/dist/es/standards-sdk.es144.js +1 -1
  48. package/dist/es/standards-sdk.es145.js +5 -5
  49. package/dist/es/standards-sdk.es147.js +3 -3
  50. package/dist/es/standards-sdk.es148.js +1 -1
  51. package/dist/es/standards-sdk.es150.js +24 -15
  52. package/dist/es/standards-sdk.es150.js.map +1 -1
  53. package/dist/es/standards-sdk.es152.js +372 -248
  54. package/dist/es/standards-sdk.es152.js.map +1 -1
  55. package/dist/es/standards-sdk.es153.js +259 -4
  56. package/dist/es/standards-sdk.es153.js.map +1 -1
  57. package/dist/es/standards-sdk.es154.js +4 -81
  58. package/dist/es/standards-sdk.es154.js.map +1 -1
  59. package/dist/es/standards-sdk.es155.js +71 -77
  60. package/dist/es/standards-sdk.es155.js.map +1 -1
  61. package/dist/es/standards-sdk.es156.js +80 -53
  62. package/dist/es/standards-sdk.es156.js.map +1 -1
  63. package/dist/es/standards-sdk.es157.js +59 -2546
  64. package/dist/es/standards-sdk.es157.js.map +1 -1
  65. package/dist/es/standards-sdk.es158.js +2547 -159
  66. package/dist/es/standards-sdk.es158.js.map +1 -1
  67. package/dist/es/standards-sdk.es159.js +159 -7
  68. package/dist/es/standards-sdk.es159.js.map +1 -1
  69. package/dist/es/standards-sdk.es16.js +3 -2
  70. package/dist/es/standards-sdk.es16.js.map +1 -1
  71. package/dist/es/standards-sdk.es160.js +7 -86
  72. package/dist/es/standards-sdk.es160.js.map +1 -1
  73. package/dist/es/standards-sdk.es161.js +64 -43
  74. package/dist/es/standards-sdk.es161.js.map +1 -1
  75. package/dist/es/standards-sdk.es162.js +57 -186
  76. package/dist/es/standards-sdk.es162.js.map +1 -1
  77. package/dist/es/standards-sdk.es163.js +188 -20
  78. package/dist/es/standards-sdk.es163.js.map +1 -1
  79. package/dist/es/standards-sdk.es164.js +22 -54
  80. package/dist/es/standards-sdk.es164.js.map +1 -1
  81. package/dist/es/standards-sdk.es165.js +41 -78
  82. package/dist/es/standards-sdk.es165.js.map +1 -1
  83. package/dist/es/standards-sdk.es166.js +81 -35
  84. package/dist/es/standards-sdk.es166.js.map +1 -1
  85. package/dist/es/standards-sdk.es167.js +36 -191
  86. package/dist/es/standards-sdk.es167.js.map +1 -1
  87. package/dist/es/standards-sdk.es168.js +191 -43
  88. package/dist/es/standards-sdk.es168.js.map +1 -1
  89. package/dist/es/standards-sdk.es169.js +46 -39
  90. package/dist/es/standards-sdk.es169.js.map +1 -1
  91. package/dist/es/standards-sdk.es170.js +37 -44
  92. package/dist/es/standards-sdk.es170.js.map +1 -1
  93. package/dist/es/standards-sdk.es171.js +46 -39
  94. package/dist/es/standards-sdk.es171.js.map +1 -1
  95. package/dist/es/standards-sdk.es172.js +29 -102
  96. package/dist/es/standards-sdk.es172.js.map +1 -1
  97. package/dist/es/standards-sdk.es173.js +104 -36
  98. package/dist/es/standards-sdk.es173.js.map +1 -1
  99. package/dist/es/standards-sdk.es174.js +43 -33
  100. package/dist/es/standards-sdk.es174.js.map +1 -1
  101. package/dist/es/standards-sdk.es175.js +44 -72
  102. package/dist/es/standards-sdk.es175.js.map +1 -1
  103. package/dist/es/standards-sdk.es176.js +65 -61
  104. package/dist/es/standards-sdk.es176.js.map +1 -1
  105. package/dist/es/standards-sdk.es177.js +63 -39
  106. package/dist/es/standards-sdk.es177.js.map +1 -1
  107. package/dist/es/standards-sdk.es178.js +44 -36
  108. package/dist/es/standards-sdk.es178.js.map +1 -1
  109. package/dist/es/standards-sdk.es179.js +36 -30
  110. package/dist/es/standards-sdk.es179.js.map +1 -1
  111. package/dist/es/standards-sdk.es18.js +6 -5
  112. package/dist/es/standards-sdk.es18.js.map +1 -1
  113. package/dist/es/standards-sdk.es180.js +30 -34
  114. package/dist/es/standards-sdk.es180.js.map +1 -1
  115. package/dist/es/standards-sdk.es181.js +34 -48
  116. package/dist/es/standards-sdk.es181.js.map +1 -1
  117. package/dist/es/standards-sdk.es182.js +48 -138
  118. package/dist/es/standards-sdk.es182.js.map +1 -1
  119. package/dist/es/standards-sdk.es183.js +133 -37
  120. package/dist/es/standards-sdk.es183.js.map +1 -1
  121. package/dist/es/standards-sdk.es184.js +34 -12474
  122. package/dist/es/standards-sdk.es184.js.map +1 -1
  123. package/dist/es/standards-sdk.es185.js +12425 -615
  124. package/dist/es/standards-sdk.es185.js.map +1 -1
  125. package/dist/es/standards-sdk.es186.js +47 -102
  126. package/dist/es/standards-sdk.es186.js.map +1 -1
  127. package/dist/es/standards-sdk.es187.js +96 -58
  128. package/dist/es/standards-sdk.es187.js.map +1 -1
  129. package/dist/es/standards-sdk.es188.js +73 -48
  130. package/dist/es/standards-sdk.es188.js.map +1 -1
  131. package/dist/es/standards-sdk.es189.js +180 -61
  132. package/dist/es/standards-sdk.es189.js.map +1 -1
  133. package/dist/es/standards-sdk.es19.js +4 -3
  134. package/dist/es/standards-sdk.es19.js.map +1 -1
  135. package/dist/es/standards-sdk.es190.js +14 -197
  136. package/dist/es/standards-sdk.es190.js.map +1 -1
  137. package/dist/es/standards-sdk.es191.js +658 -158
  138. package/dist/es/standards-sdk.es191.js.map +1 -1
  139. package/dist/es/standards-sdk.es192.js +139 -289
  140. package/dist/es/standards-sdk.es192.js.map +1 -1
  141. package/dist/es/standards-sdk.es193.js +274 -298
  142. package/dist/es/standards-sdk.es193.js.map +1 -1
  143. package/dist/es/standards-sdk.es194.js +262 -369
  144. package/dist/es/standards-sdk.es194.js.map +1 -1
  145. package/dist/es/standards-sdk.es195.js +316 -194
  146. package/dist/es/standards-sdk.es195.js.map +1 -1
  147. package/dist/es/standards-sdk.es196.js +319 -64
  148. package/dist/es/standards-sdk.es196.js.map +1 -1
  149. package/dist/es/standards-sdk.es197.js +74 -15
  150. package/dist/es/standards-sdk.es197.js.map +1 -1
  151. package/dist/es/standards-sdk.es198.js +60 -126
  152. package/dist/es/standards-sdk.es198.js.map +1 -1
  153. package/dist/es/standards-sdk.es199.js +104 -482
  154. package/dist/es/standards-sdk.es199.js.map +1 -1
  155. package/dist/es/standards-sdk.es200.js +480 -222
  156. package/dist/es/standards-sdk.es200.js.map +1 -1
  157. package/dist/es/standards-sdk.es201.js +239 -176
  158. package/dist/es/standards-sdk.es201.js.map +1 -1
  159. package/dist/es/standards-sdk.es202.js +178 -101
  160. package/dist/es/standards-sdk.es202.js.map +1 -1
  161. package/dist/es/standards-sdk.es203.js +75 -108
  162. package/dist/es/standards-sdk.es203.js.map +1 -1
  163. package/dist/es/standards-sdk.es204.js +116 -148
  164. package/dist/es/standards-sdk.es204.js.map +1 -1
  165. package/dist/es/standards-sdk.es205.js +146 -646
  166. package/dist/es/standards-sdk.es205.js.map +1 -1
  167. package/dist/es/standards-sdk.es206.js +661 -162
  168. package/dist/es/standards-sdk.es206.js.map +1 -1
  169. package/dist/es/standards-sdk.es207.js +156 -206
  170. package/dist/es/standards-sdk.es207.js.map +1 -1
  171. package/dist/es/standards-sdk.es208.js +219 -223
  172. package/dist/es/standards-sdk.es208.js.map +1 -1
  173. package/dist/es/standards-sdk.es209.js +242 -0
  174. package/dist/es/standards-sdk.es209.js.map +1 -0
  175. package/dist/es/standards-sdk.es22.js +1 -1
  176. package/dist/es/standards-sdk.es27.js +6 -5
  177. package/dist/es/standards-sdk.es27.js.map +1 -1
  178. package/dist/es/standards-sdk.es30.js +1 -1
  179. package/dist/es/standards-sdk.es31.js +1 -1
  180. package/dist/es/standards-sdk.es35.js +4 -3
  181. package/dist/es/standards-sdk.es35.js.map +1 -1
  182. package/dist/es/standards-sdk.es36.js +3 -3
  183. package/dist/es/standards-sdk.es37.js +1 -1
  184. package/dist/es/standards-sdk.es4.js +1 -1
  185. package/dist/es/standards-sdk.es53.js +1 -1
  186. package/dist/es/standards-sdk.es56.js +1 -1
  187. package/dist/es/standards-sdk.es59.js +1 -1
  188. package/dist/es/standards-sdk.es60.js +1 -1
  189. package/dist/es/standards-sdk.es62.js +1 -1
  190. package/dist/es/standards-sdk.es63.js +2 -2
  191. package/dist/es/standards-sdk.es64.js +1 -1
  192. package/dist/es/standards-sdk.es65.js +1 -1
  193. package/dist/es/standards-sdk.es66.js +1 -1
  194. package/dist/es/standards-sdk.es67.js +4 -3
  195. package/dist/es/standards-sdk.es67.js.map +1 -1
  196. package/dist/es/standards-sdk.es69.js +1 -1
  197. package/dist/es/standards-sdk.es7.js +1 -1
  198. package/dist/es/standards-sdk.es71.js +1 -1
  199. package/dist/es/standards-sdk.es72.js +2 -2
  200. package/dist/es/standards-sdk.es75.js +3 -3
  201. package/dist/es/standards-sdk.es76.js +1 -1
  202. package/dist/es/standards-sdk.es78.js +1 -1
  203. package/dist/es/standards-sdk.es83.js +1 -1
  204. package/dist/es/standards-sdk.es84.js +3 -2
  205. package/dist/es/standards-sdk.es84.js.map +1 -1
  206. package/dist/es/standards-sdk.es85.js +1 -1
  207. package/dist/es/standards-sdk.es88.js +1 -1
  208. package/dist/es/standards-sdk.es90.js +1 -1
  209. package/dist/es/standards-sdk.es94.js +3 -3
  210. package/dist/es/standards-sdk.es98.js +1 -1
  211. package/dist/es/standards-sdk.es99.js +1 -1
  212. package/package.json +1 -1
@@ -1,520 +1,142 @@
1
- import { createSessionResponseSchema, chatSessionResumeResponseSchema, chatReadinessResponseSchema, chatHistoryCompactionResponseSchema, sessionEncryptionStatusResponseSchema, encryptionHandshakeResponseSchema, sendMessageResponseSchema, chatSessionEndResponseSchema } from "./standards-sdk.es157.js";
2
- import { serialiseAuthConfig, toJsonObject } from "./standards-sdk.es208.js";
3
- import { EncryptionUnavailableError } from "./standards-sdk.es200.js";
4
- function createChatApi(client, encryptedManager) {
5
- return {
6
- start: (options) => client.startChat(options),
7
- readiness: (payload) => client.checkChatReadiness(payload),
8
- createSession: (payload) => client.createSession(payload),
9
- resumeSession: (sessionId) => client.resumeSession(sessionId),
10
- sendMessage: (payload) => client.sendMessage(payload),
11
- retryMessage: (messageId, payload) => client.retryMessage(messageId, payload),
12
- cancelSession: (sessionId) => client.cancelSession(sessionId),
13
- endSession: (sessionId) => client.endSession(sessionId),
14
- getHistory: (sessionId, options) => client.fetchHistorySnapshot(sessionId, options),
15
- compactHistory: (payload) => client.compactHistory(payload),
16
- getEncryptionStatus: (sessionId) => client.fetchEncryptionStatus(sessionId),
17
- submitEncryptionHandshake: (sessionId, payload) => client.postEncryptionHandshake(sessionId, payload),
18
- startConversation: (options) => client.startConversation(options),
19
- acceptConversation: (options) => client.acceptConversation(options),
20
- createEncryptedSession: (options) => encryptedManager.startSession(options),
21
- acceptEncryptedSession: (options) => encryptedManager.acceptSession(options)
22
- };
23
- }
24
- async function checkChatReadiness(client, payload) {
25
- const body = {};
26
- const uaid = "uaid" in payload ? payload.uaid?.trim() : void 0;
27
- const agentUrl = "agentUrl" in payload ? payload.agentUrl?.trim() : void 0;
28
- if (!uaid && !agentUrl) {
29
- throw new Error("uaid or agentUrl is required to check chat readiness");
30
- }
31
- if (uaid) {
32
- body.uaid = uaid;
33
- }
34
- if (agentUrl) {
35
- body.agentUrl = agentUrl;
36
- }
37
- if (payload.forceRefresh !== void 0) {
38
- body.forceRefresh = payload.forceRefresh;
39
- }
40
- const raw = await client.requestJson("/chat/readiness", {
41
- method: "POST",
42
- body,
43
- headers: { "content-type": "application/json" }
44
- });
45
- return client.parseWithSchema(
46
- raw,
47
- chatReadinessResponseSchema,
48
- "chat readiness response"
49
- );
50
- }
51
- async function createSession(client, payload, allowHistoryAutoTopUp = true) {
52
- const body = {};
53
- if ("uaid" in payload && payload.uaid) {
54
- body.uaid = payload.uaid;
55
- }
56
- if ("agentUrl" in payload && payload.agentUrl) {
57
- body.agentUrl = payload.agentUrl;
58
- }
59
- if (payload.auth) {
60
- body.auth = serialiseAuthConfig(payload.auth);
61
- }
62
- if (payload.historyTtlSeconds !== void 0) {
63
- body.historyTtlSeconds = payload.historyTtlSeconds;
64
- }
65
- if (payload.encryptionRequested !== void 0) {
66
- body.encryptionRequested = payload.encryptionRequested;
67
- }
68
- if (payload.senderUaid) {
69
- body.senderUaid = payload.senderUaid;
70
- }
71
- if (payload.visibility) {
72
- body.visibility = payload.visibility;
73
- }
74
- if (payload.idempotencyKey) {
75
- body.idempotencyKey = payload.idempotencyKey;
76
- }
77
- try {
78
- const raw = await client.requestJson("/chat/session", {
79
- method: "POST",
80
- body,
81
- headers: { "content-type": "application/json" }
82
- });
83
- return client.parseWithSchema(
84
- raw,
85
- createSessionResponseSchema,
86
- "chat session response"
87
- );
88
- } catch (error) {
89
- const maybeError = error instanceof Error ? error : null;
90
- if (allowHistoryAutoTopUp && client.shouldAutoTopUpHistory(payload, maybeError)) {
91
- await client.executeHistoryAutoTopUp("chat.session");
92
- return createSession(client, payload, false);
93
- }
94
- throw error;
95
- }
96
- }
97
- async function resumeSession(client, sessionId) {
98
- const normalized = sessionId.trim();
99
- if (!normalized) {
100
- throw new Error("sessionId is required to resume a chat session");
101
- }
102
- const raw = await client.requestJson(
103
- `/chat/session/${encodeURIComponent(normalized)}/resume`,
104
- { method: "GET" }
105
- );
106
- return client.parseWithSchema(
107
- raw,
108
- chatSessionResumeResponseSchema,
109
- "chat session resume response"
110
- );
111
- }
112
- async function startChat(client, encryptedManager, options) {
113
- if ("uaid" in options && options.uaid) {
114
- return startConversation(client, encryptedManager, {
115
- uaid: options.uaid,
116
- senderUaid: options.senderUaid,
117
- historyTtlSeconds: options.historyTtlSeconds,
118
- auth: options.auth,
119
- encryption: options.encryption,
120
- onSessionCreated: options.onSessionCreated
121
- });
1
+ import { Buffer } from "buffer";
2
+ import { chatHistorySnapshotResponseSchema } from "./standards-sdk.es158.js";
3
+ function identitiesMatch(a, b) {
4
+ if (!a && !b) {
5
+ return true;
122
6
  }
123
- if ("agentUrl" in options && options.agentUrl) {
124
- const session = await createSession(client, {
125
- agentUrl: options.agentUrl,
126
- auth: options.auth,
127
- historyTtlSeconds: options.historyTtlSeconds,
128
- senderUaid: options.senderUaid
129
- });
130
- options.onSessionCreated?.(session.sessionId);
131
- return createPlaintextConversationHandle(
132
- client,
133
- session.sessionId,
134
- session.encryption ?? null,
135
- options.auth,
136
- { agentUrl: options.agentUrl, uaid: options.uaid }
137
- );
7
+ if (!a || !b) {
8
+ return false;
138
9
  }
139
- throw new Error("startChat requires either uaid or agentUrl");
140
- }
141
- async function startConversation(client, encryptedManager, options) {
142
- const preference = options.encryption?.preference ?? "preferred";
143
- const requestEncryption = preference !== "disabled";
144
- if (!requestEncryption) {
145
- const session = await createSession(client, {
146
- uaid: options.uaid,
147
- auth: options.auth,
148
- historyTtlSeconds: options.historyTtlSeconds,
149
- senderUaid: options.senderUaid,
150
- encryptionRequested: false
151
- });
152
- options.onSessionCreated?.(session.sessionId);
153
- return createPlaintextConversationHandle(
154
- client,
155
- session.sessionId,
156
- session.encryption ?? null,
157
- options.auth,
158
- { uaid: options.uaid }
159
- );
10
+ if (a.uaid && b.uaid && a.uaid.toLowerCase() === b.uaid.toLowerCase()) {
11
+ return true;
160
12
  }
161
- try {
162
- const handle = await encryptedManager.startSession({
163
- uaid: options.uaid,
164
- senderUaid: options.senderUaid,
165
- historyTtlSeconds: options.historyTtlSeconds,
166
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
167
- pollIntervalMs: options.encryption?.pollIntervalMs,
168
- onSessionCreated: (sessionId) => {
169
- options.onSessionCreated?.(sessionId);
170
- },
171
- auth: options.auth
172
- });
173
- return handle;
174
- } catch (error) {
175
- if (error instanceof EncryptionUnavailableError) {
176
- if (preference === "required") {
177
- throw error;
178
- }
179
- return createPlaintextConversationHandle(
180
- client,
181
- error.sessionId,
182
- error.summary ?? null,
183
- options.auth,
184
- { uaid: options.uaid }
185
- );
186
- }
187
- throw error;
13
+ if (a.ledgerAccountId && b.ledgerAccountId && a.ledgerAccountId.toLowerCase() === b.ledgerAccountId.toLowerCase()) {
14
+ return true;
188
15
  }
189
- }
190
- async function acceptConversation(client, encryptedManager, options) {
191
- const preference = options.encryption?.preference ?? "preferred";
192
- if (preference === "disabled") {
193
- return createPlaintextConversationHandle(client, options.sessionId, null);
194
- }
195
- try {
196
- const handle = await encryptedManager.acceptSession({
197
- sessionId: options.sessionId,
198
- responderUaid: options.responderUaid,
199
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
200
- pollIntervalMs: options.encryption?.pollIntervalMs
201
- });
202
- return handle;
203
- } catch (error) {
204
- if (error instanceof EncryptionUnavailableError && preference !== "required") {
205
- return createPlaintextConversationHandle(
206
- client,
207
- options.sessionId,
208
- null,
209
- void 0,
210
- { uaid: options.responderUaid }
211
- );
212
- }
213
- throw error;
214
- }
215
- }
216
- function createPlaintextConversationHandle(client, sessionId, summary, defaultAuth, context) {
217
- const uaid = context?.uaid?.trim();
218
- const agentUrl = context?.agentUrl?.trim();
219
- const fetchHistory = async (options) => {
220
- const snapshot = await client.fetchHistorySnapshot(sessionId, options);
221
- if (snapshot.decryptedHistory) {
222
- return snapshot.decryptedHistory;
223
- }
224
- return snapshot.history.map((entry) => ({
225
- entry,
226
- plaintext: entry.content
227
- }));
228
- };
229
- return {
230
- sessionId,
231
- mode: "plaintext",
232
- summary: summary ?? null,
233
- send: async (options) => {
234
- const plaintext = options.plaintext;
235
- if (!plaintext || plaintext.trim().length === 0) {
236
- throw new Error("plaintext is required for chat messages");
237
- }
238
- const message = options.message ?? plaintext;
239
- return sendMessage(client, {
240
- sessionId,
241
- message,
242
- streaming: options.streaming,
243
- auth: options.auth ?? defaultAuth,
244
- uaid,
245
- agentUrl
246
- });
247
- },
248
- decryptHistoryEntry: (entry) => entry.content,
249
- fetchHistory
250
- };
251
- }
252
- async function compactHistory(client, payload) {
253
- if (!payload.sessionId || payload.sessionId.trim().length === 0) {
254
- throw new Error("sessionId is required to compact chat history");
16
+ if (a.userId && b.userId && a.userId === b.userId) {
17
+ return true;
255
18
  }
256
- const body = {};
257
- if (typeof payload.preserveEntries === "number" && Number.isFinite(payload.preserveEntries) && payload.preserveEntries >= 0) {
258
- body.preserveEntries = Math.floor(payload.preserveEntries);
19
+ if (a.email && b.email && a.email.toLowerCase() === b.email.toLowerCase()) {
20
+ return true;
259
21
  }
260
- const raw = await client.requestJson(
261
- `/chat/session/${encodeURIComponent(payload.sessionId)}/compact`,
262
- {
263
- method: "POST",
264
- headers: { "content-type": "application/json" },
265
- body
266
- }
267
- );
268
- return client.parseWithSchema(
269
- raw,
270
- chatHistoryCompactionResponseSchema,
271
- "chat history compaction response"
272
- );
22
+ return false;
273
23
  }
274
- async function fetchEncryptionStatus(client, sessionId) {
24
+ async function fetchHistorySnapshot(conversationContexts, client, sessionId, options) {
275
25
  if (!sessionId || sessionId.trim().length === 0) {
276
- throw new Error("sessionId is required for encryption status");
26
+ throw new Error("sessionId is required to fetch chat history");
277
27
  }
278
28
  const raw = await client.requestJson(
279
- `/chat/session/${encodeURIComponent(sessionId)}/encryption`,
29
+ `/chat/session/${encodeURIComponent(sessionId)}/history`,
280
30
  {
281
31
  method: "GET"
282
32
  }
283
33
  );
284
- return client.parseWithSchema(
34
+ const snapshot = client.parseWithSchema(
285
35
  raw,
286
- sessionEncryptionStatusResponseSchema,
287
- "session encryption status response"
36
+ chatHistorySnapshotResponseSchema,
37
+ "chat history snapshot response"
288
38
  );
289
- }
290
- async function postEncryptionHandshake(client, sessionId, payload) {
291
- if (!sessionId || sessionId.trim().length === 0) {
292
- throw new Error("sessionId is required for encryption handshake");
293
- }
294
- const raw = await client.requestJson(
295
- `/chat/session/${encodeURIComponent(sessionId)}/encryption-handshake`,
296
- {
297
- method: "POST",
298
- headers: { "content-type": "application/json" },
299
- body: {
300
- role: payload.role,
301
- keyType: payload.keyType,
302
- ephemeralPublicKey: payload.ephemeralPublicKey,
303
- longTermPublicKey: payload.longTermPublicKey,
304
- signature: payload.signature,
305
- uaid: payload.uaid,
306
- userId: payload.userId,
307
- ledgerAccountId: payload.ledgerAccountId,
308
- metadata: payload.metadata
309
- }
310
- }
311
- );
312
- const response = client.parseWithSchema(
313
- raw,
314
- encryptionHandshakeResponseSchema,
315
- "encryption handshake response"
316
- );
317
- return response.handshake;
318
- }
319
- async function sendMessage(client, payload) {
320
- const body = {
321
- message: payload.message
322
- };
323
- if (payload.streaming !== void 0) {
324
- body.streaming = payload.streaming;
325
- }
326
- if (payload.idempotencyKey) {
327
- body.idempotencyKey = payload.idempotencyKey;
328
- }
329
- if (payload.senderUaid) {
330
- body.senderUaid = payload.senderUaid;
331
- }
332
- if (payload.transport) {
333
- body.transport = payload.transport;
334
- }
335
- if (payload.auth) {
336
- body.auth = serialiseAuthConfig(payload.auth);
337
- }
338
- if ("uaid" in payload) {
339
- body.uaid = payload.uaid;
340
- }
341
- if ("sessionId" in payload && payload.sessionId) {
342
- body.sessionId = payload.sessionId;
343
- }
344
- if ("agentUrl" in payload && payload.agentUrl) {
345
- body.agentUrl = payload.agentUrl;
346
- }
347
- let cipherEnvelope = payload.cipherEnvelope ?? null;
348
- if (payload.encryption) {
349
- const sessionIdForEncryption = payload.encryption.sessionId ?? (typeof body.sessionId === "string" ? body.sessionId : void 0);
350
- if (!sessionIdForEncryption) {
351
- throw new Error(
352
- "sessionId is required when using encrypted chat payloads"
353
- );
354
- }
355
- if (!payload.encryption.recipients?.length) {
356
- throw new Error("recipients are required for encrypted chat payloads");
357
- }
358
- cipherEnvelope = client.encryption.encryptCipherEnvelope({
359
- ...payload.encryption,
360
- sessionId: sessionIdForEncryption
361
- });
362
- }
363
- if (cipherEnvelope) {
364
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
365
- }
366
- const raw = await client.requestJson("/chat/message", {
367
- method: "POST",
368
- body,
369
- headers: { "content-type": "application/json" }
370
- });
371
- return client.parseWithSchema(
372
- raw,
373
- sendMessageResponseSchema,
374
- "chat message response"
39
+ return attachDecryptedHistory(
40
+ conversationContexts,
41
+ client,
42
+ sessionId,
43
+ snapshot,
44
+ options
375
45
  );
376
46
  }
377
- async function endSession(client, sessionId) {
378
- const normalizedSessionId = sessionId?.trim();
379
- if (!normalizedSessionId) {
380
- throw new Error("sessionId is required to end a chat session");
47
+ function attachDecryptedHistory(conversationContexts, client, sessionId, snapshot, options) {
48
+ const shouldDecrypt = options?.decrypt !== void 0 ? options.decrypt : client.encryptionOptions?.autoDecryptHistory === true;
49
+ if (!shouldDecrypt) {
50
+ return snapshot;
381
51
  }
382
- const response = await client.request(
383
- `/chat/session/${encodeURIComponent(normalizedSessionId)}`,
384
- { method: "DELETE" }
52
+ const requiresContext = snapshot.history.some(
53
+ (entry) => Boolean(entry.cipherEnvelope)
385
54
  );
386
- if (response.status === 204) {
55
+ if (!requiresContext) {
387
56
  return {
388
- message: "Session ended",
389
- sessionId: normalizedSessionId,
390
- state: "ended"
57
+ ...snapshot,
58
+ decryptedHistory: snapshot.history.map((entry) => ({
59
+ entry,
60
+ plaintext: entry.content
61
+ }))
391
62
  };
392
63
  }
393
- const contentType = response.headers?.get("content-type") ?? "";
394
- if (!contentType.toLowerCase().includes("json")) {
395
- await response.text();
396
- return {
397
- message: "Session ended",
398
- sessionId: normalizedSessionId,
399
- state: "ended"
400
- };
401
- }
402
- const responseBody = await response.text();
403
- if (responseBody.trim().length === 0) {
404
- return {
405
- message: "Session ended",
406
- sessionId: normalizedSessionId,
407
- state: "ended"
408
- };
409
- }
410
- const raw = JSON.parse(responseBody);
411
- return client.parseWithSchema(
412
- raw,
413
- chatSessionEndResponseSchema,
414
- "chat session end response"
64
+ const context = resolveDecryptionContext(
65
+ conversationContexts,
66
+ client,
67
+ sessionId,
68
+ options
415
69
  );
416
- }
417
- async function cancelSession(client, sessionId) {
418
- const normalizedSessionId = sessionId?.trim();
419
- if (!normalizedSessionId) {
420
- throw new Error("sessionId is required to cancel a chat session");
70
+ if (!context) {
71
+ throw new Error(
72
+ "Unable to decrypt chat history: encryption context unavailable"
73
+ );
421
74
  }
422
- const raw = await client.requestJson(
423
- `/chat/session/${encodeURIComponent(normalizedSessionId)}/cancel`,
424
- {
425
- method: "POST"
426
- }
427
- );
428
- return client.parseWithSchema(
429
- raw,
430
- chatSessionEndResponseSchema,
431
- "chat session cancel response"
432
- );
75
+ const decryptedHistory = snapshot.history.map((entry) => ({
76
+ entry,
77
+ plaintext: decryptHistoryEntryFromContext(client, entry, context)
78
+ }));
79
+ return { ...snapshot, decryptedHistory };
433
80
  }
434
- async function retryMessage(client, messageId, payload) {
435
- const normalizedMessageId = messageId?.trim();
436
- const normalizedSessionId = payload.sessionId?.trim();
437
- const normalizedMessage = payload.message?.trim();
438
- if (!normalizedMessageId) {
439
- throw new Error("messageId is required to retry a message");
440
- }
441
- if (!normalizedSessionId) {
442
- throw new Error("sessionId is required to retry a message");
443
- }
444
- if (!normalizedMessage) {
445
- throw new Error("message is required to retry a message");
446
- }
447
- const body = {
448
- sessionId: normalizedSessionId,
449
- message: payload.message
81
+ function registerConversationContextForEncryption(conversationContexts, context) {
82
+ const normalized = {
83
+ sessionId: context.sessionId,
84
+ sharedSecret: Buffer.from(context.sharedSecret),
85
+ identity: context.identity ? { ...context.identity } : void 0
450
86
  };
451
- if (payload.streaming !== void 0) {
452
- body.streaming = payload.streaming;
453
- }
454
- if (payload.transport) {
455
- body.transport = payload.transport;
456
- }
457
- const uaid = payload.uaid?.trim();
458
- const agentUrl = payload.agentUrl?.trim();
459
- const idempotencyKey = payload.idempotencyKey?.trim();
460
- const senderUaid = payload.senderUaid?.trim();
461
- if (uaid) {
462
- body.uaid = uaid;
87
+ const entries = conversationContexts.get(context.sessionId) ?? [];
88
+ const existingIndex = entries.findIndex(
89
+ (existing) => identitiesMatch(existing.identity, normalized.identity)
90
+ );
91
+ if (existingIndex >= 0) {
92
+ entries[existingIndex] = normalized;
93
+ } else {
94
+ entries.push(normalized);
463
95
  }
464
- if (agentUrl) {
465
- body.agentUrl = agentUrl;
96
+ conversationContexts.set(context.sessionId, entries);
97
+ }
98
+ function resolveDecryptionContext(conversationContexts, client, sessionId, options) {
99
+ if (options?.sharedSecret) {
100
+ return {
101
+ sessionId,
102
+ sharedSecret: client.normalizeSharedSecret(options.sharedSecret),
103
+ identity: options.identity
104
+ };
466
105
  }
467
- if (idempotencyKey) {
468
- body.idempotencyKey = idempotencyKey;
106
+ const contexts = conversationContexts.get(sessionId);
107
+ if (!contexts || contexts.length === 0) {
108
+ return null;
469
109
  }
470
- if (senderUaid) {
471
- body.senderUaid = senderUaid;
110
+ if (options?.identity) {
111
+ const match = contexts.find(
112
+ (context) => identitiesMatch(context.identity, options.identity)
113
+ );
114
+ if (match) {
115
+ return match;
116
+ }
472
117
  }
473
- if (payload.auth) {
474
- body.auth = serialiseAuthConfig(payload.auth);
118
+ return contexts[0];
119
+ }
120
+ function decryptHistoryEntryFromContext(client, entry, context) {
121
+ const envelope = entry.cipherEnvelope;
122
+ if (!envelope) {
123
+ return entry.content;
475
124
  }
476
- let cipherEnvelope = payload.cipherEnvelope ?? null;
477
- if (payload.encryption) {
478
- if (!payload.encryption.recipients?.length) {
479
- throw new Error("recipients are required for encrypted chat payloads");
480
- }
481
- cipherEnvelope = client.encryption.encryptCipherEnvelope({
482
- ...payload.encryption,
483
- sessionId: payload.encryption.sessionId ?? normalizedSessionId
125
+ const secret = Buffer.from(context.sharedSecret);
126
+ try {
127
+ return client.encryption.decryptCipherEnvelope({
128
+ envelope,
129
+ sharedSecret: secret
484
130
  });
131
+ } catch (_error) {
132
+ return null;
485
133
  }
486
- if (cipherEnvelope) {
487
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
488
- }
489
- const raw = await client.requestJson(
490
- `/chat/message/${encodeURIComponent(normalizedMessageId)}/retry`,
491
- {
492
- method: "POST",
493
- body,
494
- headers: { "content-type": "application/json" }
495
- }
496
- );
497
- return client.parseWithSchema(
498
- raw,
499
- sendMessageResponseSchema,
500
- "chat retry response"
501
- );
502
134
  }
503
135
  export {
504
- acceptConversation,
505
- cancelSession,
506
- checkChatReadiness,
507
- compactHistory,
508
- createChatApi,
509
- createPlaintextConversationHandle,
510
- createSession,
511
- endSession,
512
- fetchEncryptionStatus,
513
- postEncryptionHandshake,
514
- resumeSession,
515
- retryMessage,
516
- sendMessage,
517
- startChat,
518
- startConversation
136
+ attachDecryptedHistory,
137
+ decryptHistoryEntryFromContext,
138
+ fetchHistorySnapshot,
139
+ registerConversationContextForEncryption,
140
+ resolveDecryptionContext
519
141
  };
520
142
  //# sourceMappingURL=standards-sdk.es199.js.map