@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.
- package/dist/cjs/services/registry-broker/client/adapters.d.ts +4 -19
- package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/agents.d.ts +4 -15
- package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +64 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts +4 -22
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/chat.d.ts +4 -32
- package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/credits.d.ts +4 -39
- package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +4 -34
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/encryption.d.ts +4 -32
- package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +4 -9
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/search-helpers.d.ts +16 -0
- package/dist/cjs/services/registry-broker/client/search-helpers.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts +5 -18
- package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client.d.ts +4 -0
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/services/registry-broker/client/adapters.d.ts +4 -19
- package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/agents.d.ts +4 -15
- package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +64 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/chat-history.d.ts +4 -22
- package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/chat.d.ts +4 -32
- package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/credits.d.ts +4 -39
- package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +4 -34
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/encryption.d.ts +4 -32
- package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts +4 -9
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/search-helpers.d.ts +16 -0
- package/dist/es/services/registry-broker/client/search-helpers.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/search.d.ts +5 -18
- package/dist/es/services/registry-broker/client/search.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client.d.ts +4 -0
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +9 -17
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +1 -1
- package/dist/es/standards-sdk.es103.js +1 -1
- package/dist/es/standards-sdk.es109.js +2 -10
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +5 -5
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +1 -1
- package/dist/es/standards-sdk.es121.js +1 -1
- package/dist/es/standards-sdk.es122.js +5 -5
- package/dist/es/standards-sdk.es124.js +1 -1
- package/dist/es/standards-sdk.es125.js +1 -1
- package/dist/es/standards-sdk.es127.js +624 -155
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +15 -205
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +74 -97
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es130.js +78 -112
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +51 -238
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +146 -167
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +8 -123
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +77 -317
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +61 -460
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +30 -17
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +34 -81
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +28 -87
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +932 -59
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es140.js +12263 -133
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +138 -7
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +36 -80
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +49 -58
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +84 -30
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +17 -34
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +172 -28
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +299 -115
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +340 -36
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +453 -959
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +267 -12225
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +74 -15
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +132 -49
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +2 -10
- package/dist/es/standards-sdk.es16.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +5 -13
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +3 -11
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es27.js +5 -13
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +1 -1
- package/dist/es/standards-sdk.es31.js +1 -1
- package/dist/es/standards-sdk.es35.js +3 -11
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +3 -3
- package/dist/es/standards-sdk.es37.js +1 -1
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +1 -1
- package/dist/es/standards-sdk.es58.js +1 -1
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es60.js +3 -11
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +2 -2
- package/dist/es/standards-sdk.es68.js +2 -2
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +1 -1
- package/dist/es/standards-sdk.es76.js +1 -1
- package/dist/es/standards-sdk.es77.js +2 -10
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +1 -1
- package/dist/es/standards-sdk.es83.js +1 -1
- package/dist/es/standards-sdk.es87.js +3 -3
- package/dist/es/standards-sdk.es91.js +1 -1
- package/dist/es/standards-sdk.es92.js +1 -1
- package/dist/es/standards-sdk.es97.js +1 -1
- package/dist/es/standards-sdk.es99.js +1 -1
- package/package.json +1 -1
- package/dist/es/standards-sdk.es153.js +0 -87
- package/dist/es/standards-sdk.es153.js.map +0 -1
- package/dist/es/standards-sdk.es154.js +0 -175
- package/dist/es/standards-sdk.es154.js.map +0 -1
- package/dist/es/standards-sdk.es155.js +0 -325
- package/dist/es/standards-sdk.es155.js.map +0 -1
- package/dist/es/standards-sdk.es156.js +0 -349
- package/dist/es/standards-sdk.es156.js.map +0 -1
- package/dist/es/standards-sdk.es157.js +0 -456
- package/dist/es/standards-sdk.es157.js.map +0 -1
- package/dist/es/standards-sdk.es158.js +0 -334
- package/dist/es/standards-sdk.es158.js.map +0 -1
- package/dist/es/standards-sdk.es159.js +0 -79
- package/dist/es/standards-sdk.es159.js.map +0 -1
- package/dist/es/standards-sdk.es160.js +0 -242
- package/dist/es/standards-sdk.es160.js.map +0 -1
- package/dist/es/standards-sdk.es161.js +0 -247
- package/dist/es/standards-sdk.es161.js.map +0 -1
|
@@ -1,329 +1,89 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
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;"}
|