@awiki/dsh-plugin 0.2.3 → 0.2.5
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/README.md +86 -18
- package/README.zh.md +71 -17
- package/THIRD_PARTY_NOTICES.md +8 -1
- package/cordis.patch.yml +13 -0
- package/lib/client.js +8223 -1939
- package/lib/client.js.map +1 -1
- package/lib/index.js +1487 -60
- package/lib/model-proxy-contract.js +89 -0
- package/lib/model-proxy.js +383 -0
- package/lib/provider.js +2 -1
- package/lib/sdk-adapter-DKgkyApB.mjs +669 -0
- package/lib/typert.host.js +470 -482
- package/lib/typert.remote-client.d.ts +15 -1
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +469 -103
- package/lib/types/attachment-cache.d.ts +28 -0
- package/lib/types/attachment-cache.d.ts.map +1 -0
- package/lib/types/attachment-cache.js +194 -0
- package/lib/types/attachment-cache.js.map +1 -0
- package/lib/types/client/AwikiMail.d.ts +14 -0
- package/lib/types/client/AwikiMail.d.ts.map +1 -0
- package/lib/types/client/AwikiMail.js +260 -0
- package/lib/types/client/AwikiMail.js.map +1 -0
- package/lib/types/client/AwikiOnboarding.d.ts +22 -0
- package/lib/types/client/AwikiOnboarding.d.ts.map +1 -0
- package/lib/types/client/AwikiOnboarding.js +87 -0
- package/lib/types/client/AwikiOnboarding.js.map +1 -0
- package/lib/types/client/AwikiOverlay.d.ts +15 -0
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +251 -20
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts +20 -4
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +279 -23
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/RechargeComingSoonDialog.d.ts +11 -0
- package/lib/types/client/RechargeComingSoonDialog.d.ts.map +1 -0
- package/lib/types/client/RechargeComingSoonDialog.js +8 -0
- package/lib/types/client/RechargeComingSoonDialog.js.map +1 -0
- package/lib/types/client/controller.d.ts +82 -4
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +517 -74
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/image-cache.d.ts +20 -0
- package/lib/types/client/image-cache.d.ts.map +1 -0
- package/lib/types/client/image-cache.js +177 -0
- package/lib/types/client/image-cache.js.map +1 -0
- package/lib/types/client/index.d.ts +2 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +84 -41
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/model-account-settings-availability.d.ts +4 -0
- package/lib/types/client/model-account-settings-availability.d.ts.map +1 -0
- package/lib/types/client/model-account-settings-availability.js +4 -0
- package/lib/types/client/model-account-settings-availability.js.map +1 -0
- package/lib/types/client/model-availability-controller.d.ts +27 -0
- package/lib/types/client/model-availability-controller.d.ts.map +1 -0
- package/lib/types/client/model-availability-controller.js +111 -0
- package/lib/types/client/model-availability-controller.js.map +1 -0
- package/lib/types/client/model-proxy-controller.d.ts +41 -0
- package/lib/types/client/model-proxy-controller.d.ts.map +1 -0
- package/lib/types/client/model-proxy-controller.js +241 -0
- package/lib/types/client/model-proxy-controller.js.map +1 -0
- package/lib/types/client/recharge-availability.d.ts +6 -0
- package/lib/types/client/recharge-availability.d.ts.map +1 -0
- package/lib/types/client/recharge-availability.js +6 -0
- package/lib/types/client/recharge-availability.js.map +1 -0
- package/lib/types/client/settings-locales.d.ts +1 -1
- package/lib/types/client/settings-locales.d.ts.map +1 -1
- package/lib/types/client/settings-locales.js +180 -2
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +15 -2
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/index.d.ts +56 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +462 -31
- package/lib/types/index.js.map +1 -1
- package/lib/types/listener-state.d.ts +23 -0
- package/lib/types/listener-state.d.ts.map +1 -0
- package/lib/types/listener-state.js +124 -0
- package/lib/types/listener-state.js.map +1 -0
- package/lib/types/listener.d.ts +96 -0
- package/lib/types/listener.d.ts.map +1 -0
- package/lib/types/listener.js +575 -0
- package/lib/types/listener.js.map +1 -0
- package/lib/types/mail.d.ts +8 -0
- package/lib/types/mail.d.ts.map +1 -0
- package/lib/types/mail.js +75 -0
- package/lib/types/mail.js.map +1 -0
- package/lib/types/model-proxy-contract.d.ts +61 -0
- package/lib/types/model-proxy-contract.d.ts.map +1 -0
- package/lib/types/model-proxy-contract.js +129 -0
- package/lib/types/model-proxy-contract.js.map +1 -0
- package/lib/types/model-proxy.d.ts +14 -0
- package/lib/types/model-proxy.d.ts.map +1 -0
- package/lib/types/model-proxy.js +371 -0
- package/lib/types/model-proxy.js.map +1 -0
- package/lib/types/provider-api.d.ts +78 -2
- package/lib/types/provider-api.d.ts.map +1 -1
- package/lib/types/provider.d.ts.map +1 -1
- package/lib/types/provider.js +1 -0
- package/lib/types/provider.js.map +1 -1
- package/lib/types/sdk-adapter.d.ts +26 -2
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +380 -24
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/settings-rpc.js +1 -1
- package/lib/types/settings-rpc.js.map +1 -1
- package/lib/types/tools.d.ts +10 -0
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +98 -0
- package/lib/types/tools.js.map +1 -1
- package/lib/types/types.d.ts +103 -1
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/package.json +65 -40
- package/lib/sdk-adapter-DK6RqV-c.mjs +0 -355
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/** Host-only AWiki-authenticated model-proxy provider and loopback account API. */
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
import { getOrCreateAnonymousUserId } from '@deepseek-ai/dsh-anonymous-user-id';
|
|
4
|
+
import { credentialRef } from '@deepseek-ai/dsh-credentials';
|
|
5
|
+
import { LlmError, resolveRetryPolicy } from '@deepseek-ai/dsh-llm';
|
|
6
|
+
import { DeepSeekAdapter } from '@deepseek-ai/dsh-llm-deepseek';
|
|
7
|
+
import { settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
8
|
+
import { AWIKI_MODEL_PROXY_RPC_CHANNEL, AWIKI_MODEL_PROXY_RPC_ENDPOINTS, decodeModelProxyStatus, decodeModelProxyUsage, decodeRechargeOrder, } from "./model-proxy-contract.js";
|
|
9
|
+
export const name = 'awiki-model-proxy';
|
|
10
|
+
export const inject = ['awiki', 'llm', 'settings', 'agentDefaultModel', 'connection'];
|
|
11
|
+
const SETTINGS = settingsNamespace('awiki-model-proxy');
|
|
12
|
+
const PROVIDER = 'awiki-deepseek';
|
|
13
|
+
const FLASH = 'deepseek-v4-flash';
|
|
14
|
+
const PRO = 'deepseek-v4-pro';
|
|
15
|
+
const MODELS = [FLASH, PRO];
|
|
16
|
+
const PROVIDER_NAME = 'AWiki-hosted DeepSeek';
|
|
17
|
+
const SettingsSchema = z.object({
|
|
18
|
+
enabled: z.boolean().default(false),
|
|
19
|
+
previousProvider: z.string(),
|
|
20
|
+
previousModel: z.string(),
|
|
21
|
+
previousReasoningEffort: z.string(),
|
|
22
|
+
});
|
|
23
|
+
export const Config = z.object({
|
|
24
|
+
baseURL: z.string().default('https://model.awiki.info'),
|
|
25
|
+
contextWindow: z.number().step(1).min(1).default(1_000_000),
|
|
26
|
+
maxTokens: z.number().step(1).min(1).default(8_192),
|
|
27
|
+
tokenRefreshSkewSeconds: z.number().step(1).min(0).default(60),
|
|
28
|
+
});
|
|
29
|
+
export function apply(ctx, input = {}) {
|
|
30
|
+
const config = resolveConfig(input);
|
|
31
|
+
const settings = ctx.settings.register(SETTINGS, SettingsSchema, {
|
|
32
|
+
base: { enabled: false },
|
|
33
|
+
applies: 'live',
|
|
34
|
+
});
|
|
35
|
+
const token = new ModelProxyToken(ctx, config);
|
|
36
|
+
const adapter = new AwikiHostedDeepSeekAdapter({
|
|
37
|
+
options: () => ({
|
|
38
|
+
baseURL: new URL('/v1', config.baseURL).toString().replace(/\/$/, ''),
|
|
39
|
+
apiKeyEnv: credentialRef('AWIKI_MODEL_PROXY_TOKEN'),
|
|
40
|
+
defaults: {},
|
|
41
|
+
maxTokens: config.maxTokens,
|
|
42
|
+
defaultContextWindow: config.contextWindow,
|
|
43
|
+
models: [
|
|
44
|
+
{ id: FLASH, name: 'DeepSeek V4 Flash', contextWindow: config.contextWindow, maxTokens: config.maxTokens },
|
|
45
|
+
{ id: PRO, name: 'DeepSeek V4 Pro', contextWindow: config.contextWindow, maxTokens: config.maxTokens },
|
|
46
|
+
],
|
|
47
|
+
streamIdleTimeoutMs: 300_000,
|
|
48
|
+
retryPolicy: resolveRetryPolicy(undefined, 'awiki-model-proxy: retryPolicy'),
|
|
49
|
+
}),
|
|
50
|
+
resolveApiKey: () => token.get(),
|
|
51
|
+
resolveUserId: () => getOrCreateAnonymousUserId(),
|
|
52
|
+
});
|
|
53
|
+
let route;
|
|
54
|
+
let directory;
|
|
55
|
+
let sessionStatus;
|
|
56
|
+
let sessionRefresh;
|
|
57
|
+
const sync = () => {
|
|
58
|
+
const enabled = settings.get().enabled;
|
|
59
|
+
if (enabled && sessionStatus === 'active' && route === undefined) {
|
|
60
|
+
directory = ctx.llm.registerConfigurableProviders([{
|
|
61
|
+
provider: PROVIDER,
|
|
62
|
+
displayName: PROVIDER_NAME,
|
|
63
|
+
settingsNs: SETTINGS,
|
|
64
|
+
settingsPath: [],
|
|
65
|
+
}]);
|
|
66
|
+
route = ctx.llm.registerAdapter([PROVIDER], adapter);
|
|
67
|
+
}
|
|
68
|
+
else if ((!enabled || sessionStatus !== 'active') && route !== undefined) {
|
|
69
|
+
route();
|
|
70
|
+
directory?.();
|
|
71
|
+
route = undefined;
|
|
72
|
+
directory = undefined;
|
|
73
|
+
token.clear();
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const publishSession = (session) => {
|
|
77
|
+
sessionStatus = session.status;
|
|
78
|
+
token.clear();
|
|
79
|
+
sync();
|
|
80
|
+
};
|
|
81
|
+
const refreshSession = () => {
|
|
82
|
+
if (sessionStatus !== undefined)
|
|
83
|
+
return Promise.resolve(sessionStatus);
|
|
84
|
+
return sessionRefresh ??= ctx.awiki.getSession().then((result) => {
|
|
85
|
+
if (!result.ok)
|
|
86
|
+
return undefined;
|
|
87
|
+
publishSession(result.value);
|
|
88
|
+
return result.value.status;
|
|
89
|
+
}).finally(() => { sessionRefresh = undefined; });
|
|
90
|
+
};
|
|
91
|
+
sync();
|
|
92
|
+
void refreshSession();
|
|
93
|
+
ctx.on('awiki/session', (session) => { publishSession(session); });
|
|
94
|
+
ctx.on('settings/updated', (namespace) => {
|
|
95
|
+
if (namespace === SETTINGS)
|
|
96
|
+
sync();
|
|
97
|
+
});
|
|
98
|
+
ctx.effect(() => () => {
|
|
99
|
+
route?.();
|
|
100
|
+
directory?.();
|
|
101
|
+
token.clear();
|
|
102
|
+
}, 'awiki-model-proxy: release adapter and token');
|
|
103
|
+
const handler = createRpcHandler(ctx, config, token, () => settings.get(), sync, async () => (await refreshSession()) === 'active');
|
|
104
|
+
ctx.connection.rpc.handle(AWIKI_MODEL_PROXY_RPC_CHANNEL, handler, { authority: 'loopback' });
|
|
105
|
+
}
|
|
106
|
+
class ModelProxyToken {
|
|
107
|
+
ctx;
|
|
108
|
+
config;
|
|
109
|
+
value;
|
|
110
|
+
expiresAt = 0;
|
|
111
|
+
pending;
|
|
112
|
+
generation = 0;
|
|
113
|
+
constructor(ctx, config) {
|
|
114
|
+
this.ctx = ctx;
|
|
115
|
+
this.config = config;
|
|
116
|
+
}
|
|
117
|
+
get() {
|
|
118
|
+
if (this.value !== undefined && Date.now() < this.expiresAt - this.config.tokenRefreshSkewMs) {
|
|
119
|
+
return Promise.resolve(this.value);
|
|
120
|
+
}
|
|
121
|
+
if (this.pending !== undefined)
|
|
122
|
+
return this.pending;
|
|
123
|
+
const generation = this.generation;
|
|
124
|
+
const pending = this.refresh(generation).finally(() => {
|
|
125
|
+
if (this.pending === pending)
|
|
126
|
+
this.pending = undefined;
|
|
127
|
+
});
|
|
128
|
+
this.pending = pending;
|
|
129
|
+
return pending;
|
|
130
|
+
}
|
|
131
|
+
clear() {
|
|
132
|
+
this.generation += 1;
|
|
133
|
+
this.value = undefined;
|
|
134
|
+
this.expiresAt = 0;
|
|
135
|
+
this.pending = undefined;
|
|
136
|
+
}
|
|
137
|
+
invalidate(value) {
|
|
138
|
+
if (this.value === value)
|
|
139
|
+
this.clear();
|
|
140
|
+
}
|
|
141
|
+
async refresh(generation) {
|
|
142
|
+
const response = await this.ctx.awiki.externalHttpAuth.dispatch(new Request(new URL('/api/token', this.config.baseURL), { method: 'POST' }), request => fetch(request));
|
|
143
|
+
if (!response.ok)
|
|
144
|
+
throw await modelProxyError(response, 'AWiki-hosted DeepSeek authentication failed');
|
|
145
|
+
const value = await response.json();
|
|
146
|
+
if (!isRecord(value)
|
|
147
|
+
|| typeof value.access_token !== 'string'
|
|
148
|
+
|| value.access_token.length === 0
|
|
149
|
+
|| !Number.isSafeInteger(value.expires_in)
|
|
150
|
+
|| value.expires_in <= 0) {
|
|
151
|
+
throw new LlmError('AWiki-hosted DeepSeek authentication returned an invalid response', 'AUTH');
|
|
152
|
+
}
|
|
153
|
+
const token = value;
|
|
154
|
+
if (generation !== this.generation) {
|
|
155
|
+
throw new LlmError('AWiki-hosted DeepSeek authentication state changed', 'AUTH');
|
|
156
|
+
}
|
|
157
|
+
this.value = token.access_token;
|
|
158
|
+
this.expiresAt = Date.now() + token.expires_in * 1_000;
|
|
159
|
+
return token.access_token;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
class AwikiHostedDeepSeekAdapter extends DeepSeekAdapter {
|
|
163
|
+
providerInfo(provider) {
|
|
164
|
+
return { id: provider, name: PROVIDER_NAME };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function createRpcHandler(ctx, config, token, currentSettings, sync, sessionActive) {
|
|
168
|
+
return async (endpoint, payload, signal) => {
|
|
169
|
+
try {
|
|
170
|
+
if (signal.aborted)
|
|
171
|
+
throw new Error('request cancelled');
|
|
172
|
+
if (!await sessionActive())
|
|
173
|
+
throw new LlmError('Sign in to AWiki before using AWiki-hosted DeepSeek.', 'AUTH');
|
|
174
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.status) {
|
|
175
|
+
return { ok: true, value: await status(config, token, currentSettings().enabled, signal) };
|
|
176
|
+
}
|
|
177
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.usage) {
|
|
178
|
+
const value = await authenticatedJson(config, token, '/api/usage', { signal });
|
|
179
|
+
const usage = decodeModelProxyUsage(value);
|
|
180
|
+
if (usage === undefined)
|
|
181
|
+
throw new Error('invalid usage response');
|
|
182
|
+
return { ok: true, value: usage };
|
|
183
|
+
}
|
|
184
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.createRecharge) {
|
|
185
|
+
if (!isRecord(payload) || !Number.isSafeInteger(payload.amount_cents))
|
|
186
|
+
return badRequest();
|
|
187
|
+
const value = await authenticatedJson(config, token, '/api/recharge/orders', {
|
|
188
|
+
method: 'POST',
|
|
189
|
+
headers: {
|
|
190
|
+
'content-type': 'application/json',
|
|
191
|
+
'idempotency-key': globalThis.crypto.randomUUID(),
|
|
192
|
+
},
|
|
193
|
+
body: JSON.stringify({ amount_cents: payload.amount_cents }),
|
|
194
|
+
signal,
|
|
195
|
+
});
|
|
196
|
+
const order = decodeRechargeOrder(value);
|
|
197
|
+
if (order === undefined || order.payment_action === undefined)
|
|
198
|
+
throw new Error('invalid recharge response');
|
|
199
|
+
return { ok: true, value: order };
|
|
200
|
+
}
|
|
201
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.rechargeStatus) {
|
|
202
|
+
if (!isRecord(payload) || typeof payload.out_trade_no !== 'string')
|
|
203
|
+
return badRequest();
|
|
204
|
+
const value = await authenticatedJson(config, token, `/api/recharge/orders/${encodeURIComponent(payload.out_trade_no)}`, { signal });
|
|
205
|
+
const order = decodeRechargeOrder(value);
|
|
206
|
+
if (order === undefined)
|
|
207
|
+
throw new Error('invalid recharge status response');
|
|
208
|
+
return { ok: true, value: order };
|
|
209
|
+
}
|
|
210
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.closeRecharge) {
|
|
211
|
+
if (!isRecord(payload) || typeof payload.out_trade_no !== 'string')
|
|
212
|
+
return badRequest();
|
|
213
|
+
const response = await authenticatedResponse(config, token, `/api/recharge/orders/${encodeURIComponent(payload.out_trade_no)}/close`, { method: 'POST', signal });
|
|
214
|
+
if (response.status !== 204)
|
|
215
|
+
throw new Error('invalid recharge close response');
|
|
216
|
+
return { ok: true, value: { closed: true } };
|
|
217
|
+
}
|
|
218
|
+
if (endpoint === AWIKI_MODEL_PROXY_RPC_ENDPOINTS.setEnabled) {
|
|
219
|
+
if (!isRecord(payload) || typeof payload.enabled !== 'boolean')
|
|
220
|
+
return badRequest();
|
|
221
|
+
if (payload.enabled) {
|
|
222
|
+
const current = await status(config, token, false, signal);
|
|
223
|
+
if (!current.account.model_access_available) {
|
|
224
|
+
return modelUnavailable('Account balance is required before enabling AWiki-hosted DeepSeek.');
|
|
225
|
+
}
|
|
226
|
+
const previous = ctx.agentDefaultModel.currentSelection();
|
|
227
|
+
await ctx.settings.update(SETTINGS, {
|
|
228
|
+
enabled: true,
|
|
229
|
+
previousProvider: previous.provider,
|
|
230
|
+
previousModel: previous.model,
|
|
231
|
+
...previous.reasoningEffort === undefined
|
|
232
|
+
? {}
|
|
233
|
+
: { previousReasoningEffort: String(previous.reasoningEffort) },
|
|
234
|
+
});
|
|
235
|
+
sync();
|
|
236
|
+
await ctx.agentDefaultModel.saveSelection({ provider: PROVIDER, model: FLASH });
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const stored = currentSettings();
|
|
240
|
+
await ctx.settings.update(SETTINGS, { enabled: false });
|
|
241
|
+
sync();
|
|
242
|
+
const selected = ctx.agentDefaultModel.currentSelection();
|
|
243
|
+
if (selected.provider === PROVIDER) {
|
|
244
|
+
await ctx.agentDefaultModel.saveSelection({
|
|
245
|
+
provider: stored.previousProvider ?? 'deepseek-official',
|
|
246
|
+
model: stored.previousModel ?? FLASH,
|
|
247
|
+
...stored.previousReasoningEffort === undefined
|
|
248
|
+
? {}
|
|
249
|
+
: { reasoningEffort: stored.previousReasoningEffort },
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return { ok: true, value: await status(config, token, payload.enabled, signal) };
|
|
254
|
+
}
|
|
255
|
+
return badRequest();
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
ctx.logger.warn('awiki-model-proxy: loopback request failed');
|
|
259
|
+
ctx.logger.warn(error);
|
|
260
|
+
return internal(displayMessage(error));
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
async function status(config, token, enabled, signal) {
|
|
265
|
+
const [account, pendingRechargeOrder] = await Promise.all([
|
|
266
|
+
authenticatedJson(config, token, '/api/account', { signal }),
|
|
267
|
+
authenticatedJson(config, token, '/api/recharge/orders/pending', { signal }),
|
|
268
|
+
]);
|
|
269
|
+
const value = {
|
|
270
|
+
enabled,
|
|
271
|
+
account,
|
|
272
|
+
pending_recharge_order: pendingRechargeOrder,
|
|
273
|
+
recommended_model: FLASH,
|
|
274
|
+
models: MODELS,
|
|
275
|
+
};
|
|
276
|
+
const decoded = decodeModelProxyStatus(value);
|
|
277
|
+
if (decoded === undefined)
|
|
278
|
+
throw new Error('invalid account response');
|
|
279
|
+
return decoded;
|
|
280
|
+
}
|
|
281
|
+
async function authenticatedJson(config, token, path, init) {
|
|
282
|
+
const response = await authenticatedResponse(config, token, path, init);
|
|
283
|
+
return response.json();
|
|
284
|
+
}
|
|
285
|
+
async function authenticatedResponse(config, token, path, init) {
|
|
286
|
+
const send = async () => {
|
|
287
|
+
const accessToken = await token.get();
|
|
288
|
+
const response = await fetch(new URL(path, config.baseURL), {
|
|
289
|
+
...init,
|
|
290
|
+
headers: { ...headersRecord(init.headers), authorization: `Bearer ${accessToken}` },
|
|
291
|
+
});
|
|
292
|
+
return { response, accessToken };
|
|
293
|
+
};
|
|
294
|
+
let result = await send();
|
|
295
|
+
if (result.response.status === 401) {
|
|
296
|
+
token.invalidate(result.accessToken);
|
|
297
|
+
result = await send();
|
|
298
|
+
}
|
|
299
|
+
const { response } = result;
|
|
300
|
+
if (!response.ok)
|
|
301
|
+
throw await modelProxyError(response, `AWiki-hosted DeepSeek service returned HTTP ${response.status}`);
|
|
302
|
+
return response;
|
|
303
|
+
}
|
|
304
|
+
async function modelProxyError(response, fallback) {
|
|
305
|
+
let message = fallback;
|
|
306
|
+
try {
|
|
307
|
+
const body = await response.text();
|
|
308
|
+
if (body !== '') {
|
|
309
|
+
try {
|
|
310
|
+
const value = JSON.parse(body);
|
|
311
|
+
if (isRecord(value) && isRecord(value.error) && typeof value.error.message === 'string') {
|
|
312
|
+
message = value.error.message;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
message = body;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
catch { }
|
|
321
|
+
return new LlmError(message, response.status === 401 || response.status === 403 ? 'AUTH' : `HTTP_${response.status}`, {
|
|
322
|
+
status: response.status,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
function resolveConfig(input) {
|
|
326
|
+
const baseURL = new URL(input.baseURL ?? 'https://model.awiki.info');
|
|
327
|
+
if (baseURL.username !== '' || baseURL.password !== '' || baseURL.search !== '' || baseURL.hash !== '') {
|
|
328
|
+
throw new Error('awiki-model-proxy: baseURL must not contain credentials, query, or fragment');
|
|
329
|
+
}
|
|
330
|
+
if (baseURL.protocol !== 'https:'
|
|
331
|
+
&& !(baseURL.protocol === 'http:' && ['127.0.0.1', 'localhost', '::1'].includes(baseURL.hostname))) {
|
|
332
|
+
throw new Error('awiki-model-proxy: baseURL must use HTTPS or loopback HTTP');
|
|
333
|
+
}
|
|
334
|
+
const contextWindow = positiveInteger(input.contextWindow ?? 1_000_000, 'contextWindow');
|
|
335
|
+
const maxTokens = positiveInteger(input.maxTokens ?? 8_192, 'maxTokens');
|
|
336
|
+
const skew = input.tokenRefreshSkewSeconds ?? 60;
|
|
337
|
+
if (!Number.isSafeInteger(skew) || skew < 0) {
|
|
338
|
+
throw new Error('awiki-model-proxy: tokenRefreshSkewSeconds must be a non-negative integer');
|
|
339
|
+
}
|
|
340
|
+
return { baseURL, contextWindow, maxTokens, tokenRefreshSkewMs: skew * 1_000 };
|
|
341
|
+
}
|
|
342
|
+
function positiveInteger(value, name) {
|
|
343
|
+
if (!Number.isSafeInteger(value) || value <= 0)
|
|
344
|
+
throw new Error(`awiki-model-proxy: ${name} must be a positive integer`);
|
|
345
|
+
return value;
|
|
346
|
+
}
|
|
347
|
+
function headersRecord(headers) {
|
|
348
|
+
return Object.fromEntries(new Headers(headers));
|
|
349
|
+
}
|
|
350
|
+
function isRecord(value) {
|
|
351
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
352
|
+
}
|
|
353
|
+
function displayMessage(error) {
|
|
354
|
+
return error instanceof Error && error.message !== '' ? error.message : 'AWiki-hosted DeepSeek service is unavailable.';
|
|
355
|
+
}
|
|
356
|
+
function badRequest() {
|
|
357
|
+
return {
|
|
358
|
+
ok: false,
|
|
359
|
+
error: { code: 'bad-request', message: 'The AWiki-hosted DeepSeek request is invalid.', details: { issues: [] } },
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
function modelUnavailable(message) {
|
|
363
|
+
return {
|
|
364
|
+
ok: false,
|
|
365
|
+
error: { code: 'model-unavailable', message, details: { provider: PROVIDER, model: FLASH } },
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
function internal(message) {
|
|
369
|
+
return { ok: false, error: { code: 'internal', message, details: {} } };
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=model-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-proxy.js","sourceRoot":"","sources":["../../src/model-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,69 @@
|
|
|
1
1
|
/** Provider interface between the AWiki Host service and one high-level TypeScript client. */
|
|
2
|
-
import type { AwikiAttachment, AwikiConversation, AwikiHistoryRequest, AwikiIdentity, AwikiMessage, AwikiConversationId, AwikiPage, AwikiPageRequest, AwikiResolvedPeer, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSendTextRequest, AwikiUpdateDisplayNameRequest } from './types.ts';
|
|
3
|
-
import type { AwikiAttachmentId, AwikiMessageId, AwikiMessageTarget } from './types.ts';
|
|
2
|
+
import type { AwikiAttachment, AwikiConversation, AwikiGroupConversation, AwikiGroupMember, AwikiHistoryRequest, AwikiIdentity, AwikiMessage, AwikiMailAccount, AwikiMailInboxPage, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailMarkReadResult, AwikiMailMessage, AwikiMailReadRequest, AwikiMailSendRequest, AwikiMailSendResult, AwikiConversationId, AwikiPage, AwikiPageRequest, AwikiResolvedPeer, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSendTextRequest, AwikiUpdateDisplayNameRequest } from './types.ts';
|
|
3
|
+
import type { AwikiAttachmentId, AwikiDid, AwikiMessageId, AwikiMessageTarget } from './types.ts';
|
|
4
|
+
/** Reliable synchronization reasons the listener is allowed to schedule. */
|
|
5
|
+
export type AwikiSdkListenerSyncReason = 'session_start' | 'websocket_hint' | 'websocket_reconnect';
|
|
6
|
+
/** Product-safe realtime causes copied from the Core-owned Node session. */
|
|
7
|
+
export type AwikiSdkListenerSyncCause = 'connection_ready' | 'reconnected' | 'message' | 'message_update' | 'group' | 'system_notification' | 'stream_recovery';
|
|
8
|
+
/** Realtime events intentionally exclude raw frames, sequence values, and checkpoints. */
|
|
9
|
+
export type AwikiSdkListenerRealtimeEvent = {
|
|
10
|
+
readonly kind: 'connection_state_changed';
|
|
11
|
+
readonly state: 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'closed';
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: 'sync_required';
|
|
14
|
+
readonly cause: AwikiSdkListenerSyncCause;
|
|
15
|
+
readonly dirty: boolean;
|
|
16
|
+
readonly gapDetected: boolean;
|
|
17
|
+
};
|
|
18
|
+
/** One Core-owned realtime session. A null event requires stop/sync/restart recovery. */
|
|
19
|
+
export interface AwikiSdkListenerRealtimeSession {
|
|
20
|
+
nextEvent(): Promise<AwikiSdkListenerRealtimeEvent | null>;
|
|
21
|
+
stop(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/** Minimal conversation projection used only by the Agent listener. */
|
|
24
|
+
export type AwikiSdkListenerConversation = {
|
|
25
|
+
readonly kind: 'direct';
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly peerDid: string;
|
|
28
|
+
readonly peerHandle?: string;
|
|
29
|
+
readonly unreadCount: number;
|
|
30
|
+
readonly lastMessageAt?: number;
|
|
31
|
+
} | {
|
|
32
|
+
readonly kind: 'group';
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly unreadCount: number;
|
|
35
|
+
readonly lastMessageAt?: number;
|
|
36
|
+
};
|
|
37
|
+
/** Listener history projection. Non-plain content remains an opaque ignored marker. */
|
|
38
|
+
export interface AwikiSdkListenerMessage {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
readonly conversationId: string;
|
|
41
|
+
readonly conversationKind: 'direct' | 'group';
|
|
42
|
+
readonly senderDid: string;
|
|
43
|
+
readonly sentAt: number;
|
|
44
|
+
readonly outgoing: boolean;
|
|
45
|
+
readonly content: {
|
|
46
|
+
readonly kind: 'text';
|
|
47
|
+
readonly text: string;
|
|
48
|
+
} | {
|
|
49
|
+
readonly kind: 'ignored';
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Optional high-level feature seam supplied by providers that support realtime listening. */
|
|
53
|
+
export interface AwikiSdkListenerClient {
|
|
54
|
+
syncNow(reason: AwikiSdkListenerSyncReason): Promise<void>;
|
|
55
|
+
startRealtime(): Promise<AwikiSdkListenerRealtimeSession>;
|
|
56
|
+
listConversations(request?: AwikiPageRequest): Promise<AwikiPage<AwikiSdkListenerConversation>>;
|
|
57
|
+
getHistory(request: AwikiHistoryRequest): Promise<AwikiPage<AwikiSdkListenerMessage>>;
|
|
58
|
+
markConversationRead(conversationId: AwikiConversationId): Promise<number>;
|
|
59
|
+
sendText(request: AwikiSendTextRequest): Promise<AwikiMessage>;
|
|
60
|
+
}
|
|
4
61
|
/** SDK initialization values owned by the Host deployment configuration. */
|
|
5
62
|
export interface AwikiClientOptions {
|
|
6
63
|
readonly userServiceUrl: string;
|
|
7
64
|
readonly userServiceDomain: string;
|
|
8
65
|
readonly messageServiceUrl: string;
|
|
66
|
+
readonly mailServiceUrl: string;
|
|
9
67
|
readonly messageServicePublicUrl: string;
|
|
10
68
|
readonly messageServiceDid: string;
|
|
11
69
|
readonly allowedAttachmentOrigins: readonly string[];
|
|
@@ -61,6 +119,8 @@ export interface AwikiSdkExternalHttpAttempt {
|
|
|
61
119
|
export interface AwikiSdkClient {
|
|
62
120
|
/** Prepare one exact external HTTP request without sending it. Host-only. */
|
|
63
121
|
prepareExternalHttpRequest(request: AwikiSdkExternalHttpRequest): Promise<AwikiSdkExternalHttpAttempt>;
|
|
122
|
+
/** Present only when the provider supports Core-owned realtime listening. */
|
|
123
|
+
readonly listener?: AwikiSdkListenerClient;
|
|
64
124
|
/** Return the persisted deployment identity or `null`. */
|
|
65
125
|
getIdentity(): Promise<AwikiIdentity | null>;
|
|
66
126
|
/** Send one Legacy registration verification code. */
|
|
@@ -71,10 +131,16 @@ export interface AwikiSdkClient {
|
|
|
71
131
|
updateDisplayName(request: AwikiUpdateDisplayNameRequest): Promise<AwikiIdentity>;
|
|
72
132
|
/** Resolve one Handle or DID and persist the direct conversation row. */
|
|
73
133
|
resolvePeer(peer: string): Promise<AwikiResolvedPeer>;
|
|
134
|
+
/** Create one private, open-join, transport-protected group. */
|
|
135
|
+
createGroup(name: string): Promise<AwikiGroupConversation>;
|
|
136
|
+
/** Add one Handle or DID to an existing group and return its authoritative identity. */
|
|
137
|
+
addGroupMember(groupDid: AwikiDid, member: string): Promise<AwikiGroupMember>;
|
|
74
138
|
/** List direct and existing group conversations. */
|
|
75
139
|
listConversations(request?: AwikiPageRequest): Promise<AwikiPage<AwikiConversation>>;
|
|
76
140
|
/** Read one conversation's paginated history. */
|
|
77
141
|
getHistory(request: AwikiHistoryRequest): Promise<AwikiPage<AwikiMessage>>;
|
|
142
|
+
/** Read one canonical conversation page only from the committed local projection. */
|
|
143
|
+
getLocalHistory(request: AwikiHistoryRequest): Promise<AwikiPage<AwikiMessage>>;
|
|
78
144
|
/** Mark every currently unread inbox message in one conversation as read. */
|
|
79
145
|
markConversationRead(conversationId: AwikiConversationId): Promise<number>;
|
|
80
146
|
/** Send one idempotent text message. */
|
|
@@ -86,6 +152,16 @@ export interface AwikiSdkClient {
|
|
|
86
152
|
readonly attachmentId: AwikiAttachmentId;
|
|
87
153
|
readonly messageId: AwikiMessageId;
|
|
88
154
|
}): Promise<AwikiSdkDownloadedAttachment>;
|
|
155
|
+
/** Return the deployment identity's public mailbox state. */
|
|
156
|
+
getMailAccount(): Promise<AwikiMailAccount>;
|
|
157
|
+
/** List one bounded mailbox page. */
|
|
158
|
+
listMailInbox(request?: AwikiMailInboxRequest): Promise<AwikiMailInboxPage>;
|
|
159
|
+
/** Read one bounded plain-text mail message. */
|
|
160
|
+
readMail(request: AwikiMailReadRequest): Promise<AwikiMailMessage>;
|
|
161
|
+
/** Mark selected mail messages read. */
|
|
162
|
+
markMailRead(request: AwikiMailMarkReadRequest): Promise<AwikiMailMarkReadResult>;
|
|
163
|
+
/** Send one plain-text mail once, without automatic retry. */
|
|
164
|
+
sendMail(request: AwikiMailSendRequest): Promise<AwikiMailSendResult>;
|
|
89
165
|
/** Permanently clear this installation's persisted and process-local AWiki state. */
|
|
90
166
|
clearLocalData(): Promise<{
|
|
91
167
|
readonly cleared: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-api.d.ts","sourceRoot":"","sources":["../../src/provider-api.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAE9F,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"provider-api.d.ts","sourceRoot":"","sources":["../../src/provider-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,qDAAqD;AACrD,eAAO,MAAM,IAAI,4BAA4B,CAAA;AAC7C,iFAAiF;AACjF,eAAO,MAAM,MAAM,UAAY,CAAA;AAE/B,4EAA4E;AAC5E,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,qDAAqD;AACrD,eAAO,MAAM,IAAI,4BAA4B,CAAA;AAC7C,iFAAiF;AACjF,eAAO,MAAM,MAAM,UAAY,CAAA;AAE/B,4EAA4E;AAC5E,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAiBxC"}
|
package/lib/types/provider.js
CHANGED
|
@@ -13,6 +13,7 @@ export function apply(ctx) {
|
|
|
13
13
|
didDomain: options.userServiceDomain,
|
|
14
14
|
userServiceEndpoint: options.userServiceUrl,
|
|
15
15
|
messageServiceEndpoint: options.messageServiceUrl,
|
|
16
|
+
mailServiceEndpoint: options.mailServiceUrl,
|
|
16
17
|
anpServiceEndpoint: options.messageServiceUrl,
|
|
17
18
|
anpServiceDid: options.messageServiceDid,
|
|
18
19
|
externalHttpAllowInsecureLoopbackForTesting: options.allowInsecureLoopbackForTesting,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,IAAI,GAAG,yBAAyB,CAAA;AAC7C,iFAAiF;AACjF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;AAE/B,4EAA4E;AAC5E,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,cAAc,CACjE,oBAAoB,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,SAAS,EAAE,OAAO,CAAC,iBAAiB;QACpC,mBAAmB,EAAE,OAAO,CAAC,cAAc;QAC3C,sBAAsB,EAAE,OAAO,CAAC,iBAAiB;QACjD,kBAAkB,EAAE,OAAO,CAAC,iBAAiB;QAC7C,aAAa,EAAE,OAAO,CAAC,iBAAiB;QACxC,2CAA2C,EAAE,OAAO,CAAC,+BAA+B;KACrF,CAAC,CACH,CAAC,EACF,uBAAuB,CACxB,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,IAAI,GAAG,yBAAyB,CAAA;AAC7C,iFAAiF;AACjF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;AAE/B,4EAA4E;AAC5E,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,cAAc,CACjE,oBAAoB,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,SAAS,EAAE,OAAO,CAAC,iBAAiB;QACpC,mBAAmB,EAAE,OAAO,CAAC,cAAc;QAC3C,sBAAsB,EAAE,OAAO,CAAC,iBAAiB;QACjD,mBAAmB,EAAE,OAAO,CAAC,cAAc;QAC3C,kBAAkB,EAAE,OAAO,CAAC,iBAAiB;QAC7C,aAAa,EAAE,OAAO,CAAC,iBAAiB;QACxC,2CAA2C,EAAE,OAAO,CAAC,+BAA+B;KACrF,CAAC,CACH,CAAC,EACF,uBAAuB,CACxB,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Rust IM Core adapter that copies native values into Host-owned public DTOs. */
|
|
2
2
|
import type { ImCoreNodeClient } from '@awiki/im-core-node';
|
|
3
|
-
import type { AwikiAttachmentId, AwikiConversation, AwikiConversationId, AwikiDownloadedAttachment, AwikiFailureCode, AwikiHistoryRequest, AwikiIdentity, AwikiMessage, AwikiMessageId, AwikiPage, AwikiPageRequest, AwikiResolvedPeer, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSendTextRequest, AwikiUpdateDisplayNameRequest } from './types.ts';
|
|
4
|
-
import type { AwikiSdkClient, AwikiSdkDownloadedAttachment, AwikiSdkExternalHttpAttempt, AwikiSdkExternalHttpRequest, AwikiSdkSendAttachmentRequest } from './provider-api.ts';
|
|
3
|
+
import type { AwikiAttachmentId, AwikiConversation, AwikiConversationId, AwikiDid, AwikiDownloadedAttachment, AwikiFailureCode, AwikiGroupConversation, AwikiGroupMember, AwikiHistoryRequest, AwikiIdentity, AwikiMessage, AwikiMessageId, AwikiMailAccount, AwikiMailInboxPage, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailMarkReadResult, AwikiMailMessage, AwikiMailReadRequest, AwikiMailSendRequest, AwikiMailSendResult, AwikiPage, AwikiPageRequest, AwikiResolvedPeer, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiSendTextRequest, AwikiUpdateDisplayNameRequest } from './types.ts';
|
|
4
|
+
import type { AwikiSdkClient, AwikiSdkDownloadedAttachment, AwikiSdkExternalHttpAttempt, AwikiSdkExternalHttpRequest, AwikiSdkListenerClient, AwikiSdkSendAttachmentRequest } from './provider-api.ts';
|
|
5
5
|
/** Closed provider error consumed by the Host's fixed public failure mapping. */
|
|
6
6
|
export declare class AwikiSdkError extends Error {
|
|
7
7
|
readonly code: AwikiFailureCode;
|
|
@@ -13,10 +13,26 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
|
|
|
13
13
|
private readonly client;
|
|
14
14
|
private readonly attachmentConversations;
|
|
15
15
|
private disposal;
|
|
16
|
+
readonly listener: AwikiSdkListenerClient;
|
|
16
17
|
constructor(client: ImCoreNodeClient | Promise<ImCoreNodeClient>);
|
|
17
18
|
private run;
|
|
19
|
+
private displayableMessages;
|
|
20
|
+
/**
|
|
21
|
+
* Join the persisted Core peer-profile projection onto direct roster rows.
|
|
22
|
+
* The conversation registry intentionally keeps routing identifiers separate
|
|
23
|
+
* from display metadata, so a bare roster row may otherwise regress to a Handle.
|
|
24
|
+
*/
|
|
25
|
+
private displayableConversations;
|
|
18
26
|
private message;
|
|
19
27
|
private conversation;
|
|
28
|
+
private createdGroup;
|
|
29
|
+
private groupMember;
|
|
30
|
+
private listenerConversation;
|
|
31
|
+
private listenerMessage;
|
|
32
|
+
private listenerSyncNow;
|
|
33
|
+
private listenerStartRealtime;
|
|
34
|
+
private listenerConversations;
|
|
35
|
+
private listenerHistory;
|
|
20
36
|
private conversationId;
|
|
21
37
|
prepareExternalHttpRequest(request: AwikiSdkExternalHttpRequest): Promise<AwikiSdkExternalHttpAttempt>;
|
|
22
38
|
getIdentity(): Promise<AwikiIdentity | null>;
|
|
@@ -24,8 +40,11 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
|
|
|
24
40
|
registerIdentity(request: AwikiRegistrationRequest): Promise<AwikiIdentity>;
|
|
25
41
|
updateDisplayName(request: AwikiUpdateDisplayNameRequest): Promise<AwikiIdentity>;
|
|
26
42
|
resolvePeer(peer: string): Promise<AwikiResolvedPeer>;
|
|
43
|
+
createGroup(name: string): Promise<AwikiGroupConversation>;
|
|
44
|
+
addGroupMember(groupDid: AwikiDid, member: string): Promise<AwikiGroupMember>;
|
|
27
45
|
listConversations(request?: AwikiPageRequest): Promise<AwikiPage<AwikiConversation>>;
|
|
28
46
|
getHistory(request: AwikiHistoryRequest): Promise<AwikiPage<AwikiMessage>>;
|
|
47
|
+
getLocalHistory(request: AwikiHistoryRequest): Promise<AwikiPage<AwikiMessage>>;
|
|
29
48
|
markConversationRead(conversationId: AwikiConversationId): Promise<number>;
|
|
30
49
|
sendText(request: AwikiSendTextRequest): Promise<AwikiMessage>;
|
|
31
50
|
sendAttachment(request: AwikiSdkSendAttachmentRequest): Promise<AwikiMessage>;
|
|
@@ -33,6 +52,11 @@ export declare class RustSdkAdapter implements AwikiSdkClient {
|
|
|
33
52
|
readonly attachmentId: AwikiAttachmentId;
|
|
34
53
|
readonly messageId: AwikiMessageId;
|
|
35
54
|
}): Promise<AwikiSdkDownloadedAttachment>;
|
|
55
|
+
getMailAccount(): Promise<AwikiMailAccount>;
|
|
56
|
+
listMailInbox(request?: AwikiMailInboxRequest): Promise<AwikiMailInboxPage>;
|
|
57
|
+
readMail(request: AwikiMailReadRequest): Promise<AwikiMailMessage>;
|
|
58
|
+
markMailRead(request: AwikiMailMarkReadRequest): Promise<AwikiMailMarkReadResult>;
|
|
59
|
+
sendMail(request: AwikiMailSendRequest): Promise<AwikiMailSendResult>;
|
|
36
60
|
clearLocalData(): Promise<{
|
|
37
61
|
readonly cleared: boolean;
|
|
38
62
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,KAAK,EAGV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"sdk-adapter.d.ts","sourceRoot":"","sources":["../../src/sdk-adapter.ts"],"names":[],"mappings":"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"}
|