@awiki/dsh-plugin 0.3.7 → 0.3.10
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 +109 -71
- package/README.zh.md +89 -61
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/cordis.patch.yml +6 -5
- package/lib/builtin-tenants.json +22 -0
- package/lib/builtin-tenants.sha256 +1 -0
- package/lib/client.js +7973 -2264
- package/lib/client.js.map +1 -1
- package/lib/index.js +3481 -1145
- package/lib/model-proxy-contract.js +11 -3
- package/lib/provider.js +73 -17
- package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-CYcJH7sM.mjs} +374 -101
- package/lib/typert.host.js +1595 -168
- package/lib/typert.remote-client.d.ts +43 -7
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +1595 -168
- package/lib/types/builtin-tenant-config.d.ts +19 -0
- package/lib/types/builtin-tenant-config.d.ts.map +1 -0
- package/lib/types/builtin-tenant-config.js +57 -0
- package/lib/types/builtin-tenant-config.js.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts +15 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js +74 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js.map +1 -0
- package/lib/types/client/AwikiDevices.d.ts +33 -0
- package/lib/types/client/AwikiDevices.d.ts.map +1 -0
- package/lib/types/client/AwikiDevices.js +141 -0
- package/lib/types/client/AwikiDevices.js.map +1 -0
- package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
- package/lib/types/client/AwikiGroupDetails.js +16 -13
- package/lib/types/client/AwikiGroupDetails.js.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts +15 -8
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +203 -39
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- package/lib/types/client/AwikiIntegrationSettings.d.ts +21 -0
- package/lib/types/client/AwikiIntegrationSettings.d.ts.map +1 -0
- package/lib/types/client/AwikiIntegrationSettings.js +105 -0
- package/lib/types/client/AwikiIntegrationSettings.js.map +1 -0
- package/lib/types/client/AwikiMail.d.ts +1 -1
- package/lib/types/client/AwikiMail.d.ts.map +1 -1
- package/lib/types/client/AwikiMail.js +17 -137
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts +0 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +26 -28
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiProfileCard.d.ts.map +1 -1
- package/lib/types/client/AwikiProfileCard.js +17 -18
- package/lib/types/client/AwikiProfileCard.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts +5 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +73 -30
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts +28 -13
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +93 -61
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/AwikiUpdates.d.ts +10 -0
- package/lib/types/client/AwikiUpdates.d.ts.map +1 -0
- package/lib/types/client/AwikiUpdates.js +57 -0
- package/lib/types/client/AwikiUpdates.js.map +1 -0
- package/lib/types/client/awiki-client-bridge.d.ts +1 -1
- package/lib/types/client/awiki-client-bridge.d.ts.map +1 -1
- package/lib/types/client/awiki-client-bridge.js +4 -1
- package/lib/types/client/awiki-client-bridge.js.map +1 -1
- package/lib/types/client/controller.d.ts +84 -44
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +515 -309
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/drafts.d.ts +31 -0
- package/lib/types/client/drafts.d.ts.map +1 -0
- package/lib/types/client/drafts.js +94 -0
- package/lib/types/client/drafts.js.map +1 -0
- package/lib/types/client/image-cache.d.ts +2 -2
- package/lib/types/client/image-cache.d.ts.map +1 -1
- package/lib/types/client/image-cache.js +15 -2
- package/lib/types/client/image-cache.js.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +63 -19
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/integration-operation.d.ts +9 -0
- package/lib/types/client/integration-operation.d.ts.map +1 -0
- package/lib/types/client/integration-operation.js +54 -0
- package/lib/types/client/integration-operation.js.map +1 -0
- package/lib/types/client/mail-list-cache.d.ts +2 -0
- package/lib/types/client/mail-list-cache.d.ts.map +1 -1
- package/lib/types/client/mail-list-cache.js +18 -0
- package/lib/types/client/mail-list-cache.js.map +1 -1
- package/lib/types/client/otp-cooldown.d.ts +6 -0
- package/lib/types/client/otp-cooldown.d.ts.map +1 -0
- package/lib/types/client/otp-cooldown.js +18 -0
- package/lib/types/client/otp-cooldown.js.map +1 -0
- package/lib/types/client/settings-controller.d.ts +34 -0
- package/lib/types/client/settings-controller.d.ts.map +1 -1
- package/lib/types/client/settings-controller.js +182 -2
- package/lib/types/client/settings-controller.js.map +1 -1
- 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 +192 -14
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +20 -10
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/client/slots.js +0 -1
- package/lib/types/client/slots.js.map +1 -1
- package/lib/types/conversation-preferences.d.ts.map +1 -1
- package/lib/types/conversation-preferences.js +0 -17
- package/lib/types/conversation-preferences.js.map +1 -1
- package/lib/types/desktop-distribution.d.ts +25 -0
- package/lib/types/desktop-distribution.d.ts.map +1 -0
- package/lib/types/desktop-distribution.js +57 -0
- package/lib/types/desktop-distribution.js.map +1 -0
- package/lib/types/domain.d.ts +1 -1
- package/lib/types/domain.d.ts.map +1 -1
- package/lib/types/domain.js +2 -1
- package/lib/types/domain.js.map +1 -1
- package/lib/types/index.d.ts +164 -41
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1562 -529
- package/lib/types/index.js.map +1 -1
- package/lib/types/integration-client.d.ts +17 -0
- package/lib/types/integration-client.d.ts.map +1 -0
- package/lib/types/integration-client.js +233 -0
- package/lib/types/integration-client.js.map +1 -0
- package/lib/types/legacy-sent-mail-cache.d.ts +4 -0
- package/lib/types/legacy-sent-mail-cache.d.ts.map +1 -0
- package/lib/types/legacy-sent-mail-cache.js +29 -0
- package/lib/types/legacy-sent-mail-cache.js.map +1 -0
- package/lib/types/listener-state.d.ts +5 -3
- package/lib/types/listener-state.d.ts.map +1 -1
- package/lib/types/listener-state.js +28 -13
- package/lib/types/listener-state.js.map +1 -1
- package/lib/types/listener.d.ts +9 -32
- package/lib/types/listener.d.ts.map +1 -1
- package/lib/types/listener.js +11 -127
- package/lib/types/listener.js.map +1 -1
- package/lib/types/mail-list-client.d.ts +12 -0
- package/lib/types/mail-list-client.d.ts.map +1 -0
- package/lib/types/mail-list-client.js +254 -0
- package/lib/types/mail-list-client.js.map +1 -0
- package/lib/types/mail-recovery-observability.d.ts +8 -0
- package/lib/types/mail-recovery-observability.d.ts.map +1 -0
- package/lib/types/mail-recovery-observability.js +119 -0
- package/lib/types/mail-recovery-observability.js.map +1 -0
- package/lib/types/mail.d.ts +2 -28
- package/lib/types/mail.d.ts.map +1 -1
- package/lib/types/mail.js +2 -79
- package/lib/types/mail.js.map +1 -1
- package/lib/types/model-proxy-contract.d.ts.map +1 -1
- package/lib/types/model-proxy-contract.js +7 -0
- package/lib/types/model-proxy-contract.js.map +1 -1
- package/lib/types/package-version.generated.d.ts +4 -0
- package/lib/types/package-version.generated.d.ts.map +1 -0
- package/lib/types/package-version.generated.js +4 -0
- package/lib/types/package-version.generated.js.map +1 -0
- package/lib/types/profile-state.d.ts +2 -13
- package/lib/types/profile-state.d.ts.map +1 -1
- package/lib/types/profile-state.js +3 -20
- package/lib/types/profile-state.js.map +1 -1
- package/lib/types/provider-api.d.ts +134 -43
- package/lib/types/provider-api.d.ts.map +1 -1
- package/lib/types/provider.d.ts +8 -2
- package/lib/types/provider.d.ts.map +1 -1
- package/lib/types/provider.js +76 -16
- package/lib/types/provider.js.map +1 -1
- package/lib/types/realtime-supervisor.d.ts +60 -0
- package/lib/types/realtime-supervisor.d.ts.map +1 -0
- package/lib/types/realtime-supervisor.js +255 -0
- package/lib/types/realtime-supervisor.js.map +1 -0
- package/lib/types/sdk-adapter.d.ts +62 -11
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +285 -123
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/settings-rpc-contract.d.ts +58 -0
- package/lib/types/settings-rpc-contract.d.ts.map +1 -1
- package/lib/types/settings-rpc-contract.js +103 -0
- package/lib/types/settings-rpc-contract.js.map +1 -1
- package/lib/types/settings-rpc.d.ts +14 -1
- package/lib/types/settings-rpc.d.ts.map +1 -1
- package/lib/types/settings-rpc.js +130 -1
- package/lib/types/settings-rpc.js.map +1 -1
- package/lib/types/tenant-registry.d.ts +74 -0
- package/lib/types/tenant-registry.d.ts.map +1 -0
- package/lib/types/tenant-registry.js +440 -0
- package/lib/types/tenant-registry.js.map +1 -0
- package/lib/types/tools.d.ts +1 -1
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +4 -20
- package/lib/types/tools.js.map +1 -1
- package/lib/types/types.d.ts +249 -66
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib/types/update-policy.d.ts +51 -0
- package/lib/types/update-policy.d.ts.map +1 -0
- package/lib/types/update-policy.js +379 -0
- package/lib/types/update-policy.js.map +1 -0
- package/lib/types/version.d.ts +4 -0
- package/lib/types/version.d.ts.map +1 -0
- package/lib/types/version.js +44 -0
- package/lib/types/version.js.map +1 -0
- package/package.json +26 -8
- package/lib/types/base64.d.ts +0 -4
- package/lib/types/base64.d.ts.map +0 -1
- package/lib/types/base64.js +0 -28
- package/lib/types/base64.js.map +0 -1
- package/lib/types/client/mail-attachment.d.ts +0 -40
- package/lib/types/client/mail-attachment.d.ts.map +0 -1
- package/lib/types/client/mail-attachment.js +0 -187
- package/lib/types/client/mail-attachment.js.map +0 -1
- package/lib/types/sent-mail-store.d.ts +0 -27
- package/lib/types/sent-mail-store.d.ts.map +0 -1
- package/lib/types/sent-mail-store.js +0 -348
- package/lib/types/sent-mail-store.js.map +0 -1
|
@@ -37,7 +37,7 @@ function decodeModelProxyUsage(value) {
|
|
|
37
37
|
return usage.every((item) => item !== void 0) ? usage : void 0;
|
|
38
38
|
}
|
|
39
39
|
function decodeRechargeOrder(value) {
|
|
40
|
-
if (!isRecord(value) || typeof value.out_trade_no !== "string" || !Number.isSafeInteger(value.amount_cents) || ![
|
|
40
|
+
if (!isRecord(value) || containsPrivateIdentityOwner(value) || typeof value.out_trade_no !== "string" || !Number.isSafeInteger(value.amount_cents) || ![
|
|
41
41
|
"pending",
|
|
42
42
|
"paid",
|
|
43
43
|
"closed"
|
|
@@ -61,7 +61,7 @@ function decodeCloseRechargeResult(value) {
|
|
|
61
61
|
return isRecord(value) && value.closed === true ? { closed: true } : void 0;
|
|
62
62
|
}
|
|
63
63
|
function decodeAccount(value) {
|
|
64
|
-
if (!(isRecord(value) && typeof value.did === "string" && Number.isSafeInteger(value.balance_cents) && typeof value.balance === "string" && value.currency === "CNY" && typeof value.model_access_available === "boolean" && (value.model_access_reason === null || typeof value.model_access_reason === "string") && ["strict", "development_bypass"].includes(String(value.billing_mode)) && typeof value.payments_available === "boolean")) return void 0;
|
|
64
|
+
if (!(isRecord(value) && !containsPrivateIdentityOwner(value) && typeof value.did === "string" && Number.isSafeInteger(value.balance_cents) && typeof value.balance === "string" && value.currency === "CNY" && typeof value.model_access_available === "boolean" && (value.model_access_reason === null || typeof value.model_access_reason === "string") && ["strict", "development_bypass"].includes(String(value.billing_mode)) && typeof value.payments_available === "boolean")) return void 0;
|
|
65
65
|
return {
|
|
66
66
|
did: value.did,
|
|
67
67
|
balance_cents: value.balance_cents,
|
|
@@ -74,7 +74,7 @@ function decodeAccount(value) {
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
function decodeUsage(value) {
|
|
77
|
-
if (!(isRecord(value) && Number.isSafeInteger(value.id) && typeof value.endpoint === "string" && typeof value.model === "string" && Number.isSafeInteger(value.cache_hit_tokens) && Number.isSafeInteger(value.cache_miss_tokens) && Number.isSafeInteger(value.completion_tokens) && ["strict", "development_bypass"].includes(String(value.billing_mode)) && (value.calculated_cost_micros === null || Number.isSafeInteger(value.calculated_cost_micros)) && Number.isSafeInteger(value.charged_micros) && typeof value.estimated === "boolean" && typeof value.created_at === "string")) return void 0;
|
|
77
|
+
if (!(isRecord(value) && !containsPrivateIdentityOwner(value) && Number.isSafeInteger(value.id) && typeof value.endpoint === "string" && typeof value.model === "string" && Number.isSafeInteger(value.cache_hit_tokens) && Number.isSafeInteger(value.cache_miss_tokens) && Number.isSafeInteger(value.completion_tokens) && ["strict", "development_bypass"].includes(String(value.billing_mode)) && (value.calculated_cost_micros === null || Number.isSafeInteger(value.calculated_cost_micros)) && Number.isSafeInteger(value.charged_micros) && typeof value.estimated === "boolean" && typeof value.created_at === "string")) return void 0;
|
|
78
78
|
return {
|
|
79
79
|
id: value.id,
|
|
80
80
|
endpoint: value.endpoint,
|
|
@@ -89,6 +89,14 @@ function decodeUsage(value) {
|
|
|
89
89
|
created_at: value.created_at
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
+
function containsPrivateIdentityOwner(value) {
|
|
93
|
+
return [
|
|
94
|
+
"canonical_did",
|
|
95
|
+
"stable_subject_hash",
|
|
96
|
+
"path",
|
|
97
|
+
"proof"
|
|
98
|
+
].some((key) => key in value) || "did" in value && !("balance_cents" in value);
|
|
99
|
+
}
|
|
92
100
|
function isRecord(value) {
|
|
93
101
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
94
102
|
}
|
package/lib/provider.js
CHANGED
|
@@ -1,26 +1,82 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as RustSdkAdapter } from "./sdk-adapter-CYcJH7sM.mjs";
|
|
2
|
+
import { setTimeout } from "node:timers/promises";
|
|
2
3
|
import { openImCoreNodeClient } from "@awiki/im-core-node";
|
|
3
4
|
//#region lib/types/provider.js
|
|
4
5
|
/** Production AWiki provider backed by the versioned Rust IM Core Node bridge. */
|
|
5
6
|
/** Cordis plugin name used by Loader diagnostics. */
|
|
6
7
|
const name = "awiki-rust-sdk-provider";
|
|
7
|
-
/**
|
|
8
|
-
const inject = ["awiki"];
|
|
8
|
+
/** AWiki orchestration and the independent identity service must load first. */
|
|
9
|
+
const inject = ["awiki", "anpIdentity"];
|
|
10
|
+
const IDENTITY_PROVIDER_CAPABILITIES = [
|
|
11
|
+
"IDENTITY_READ",
|
|
12
|
+
"IDENTITY_CREATE",
|
|
13
|
+
"IDENTITY_IMPORT",
|
|
14
|
+
"IDENTITY_SIGN",
|
|
15
|
+
"IDENTITY_ECDH_SEALED",
|
|
16
|
+
"IDENTITY_DOCUMENT_UPDATE",
|
|
17
|
+
"IDENTITY_KEY_LIFECYCLE",
|
|
18
|
+
"IDENTITY_DELETE",
|
|
19
|
+
"IDENTITY_HTTP_SIGNATURE",
|
|
20
|
+
"AWIKI_LEGACY_ROOT_TRANSFER_V1"
|
|
21
|
+
];
|
|
22
|
+
const IDENTITY_PROVIDER_READY_TIMEOUT_MS = 1e4;
|
|
23
|
+
const IDENTITY_PROVIDER_READY_POLL_MS = 50;
|
|
9
24
|
/** Register one SDK client whose disposal follows this provider's fiber. */
|
|
10
|
-
function apply(ctx) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
async function apply(ctx) {
|
|
26
|
+
await waitForIdentityProvider(ctx.anpIdentity);
|
|
27
|
+
ctx.effect(() => {
|
|
28
|
+
const lease = ctx.anpIdentity.acquireProvider({
|
|
29
|
+
consumer: "@awiki/dsh-plugin",
|
|
30
|
+
capabilities: [...IDENTITY_PROVIDER_CAPABILITIES],
|
|
31
|
+
ttlSeconds: 3600
|
|
32
|
+
});
|
|
33
|
+
try {
|
|
34
|
+
const unregister = ctx.awiki.registerClientFactory((options) => {
|
|
35
|
+
const openOptions = {
|
|
36
|
+
stateRoot: options.stateRoot,
|
|
37
|
+
serviceBaseUrl: options.userServiceUrl,
|
|
38
|
+
didDomain: options.userServiceDomain,
|
|
39
|
+
userServiceEndpoint: options.userServiceUrl,
|
|
40
|
+
messageServiceEndpoint: options.messageServiceUrl,
|
|
41
|
+
mailServiceEndpoint: options.mailServiceUrl,
|
|
42
|
+
anpServiceEndpoint: options.messageServiceUrl,
|
|
43
|
+
anpServiceDid: options.messageServiceDid,
|
|
44
|
+
clientVersionInfo: {
|
|
45
|
+
product: "awiki-daemon",
|
|
46
|
+
release: "0815",
|
|
47
|
+
version: "0.1.93"
|
|
48
|
+
},
|
|
49
|
+
multiDeviceHandleRecoveryEnabled: true,
|
|
50
|
+
multiDeviceDeviceRevokeEnabled: true,
|
|
51
|
+
multiDeviceAudience: "awiki-user-service",
|
|
52
|
+
externalHttpAllowInsecureLoopbackForTesting: options.allowInsecureLoopbackForTesting,
|
|
53
|
+
identityProvider: lease
|
|
54
|
+
};
|
|
55
|
+
return new RustSdkAdapter(openImCoreNodeClient(openOptions));
|
|
56
|
+
});
|
|
57
|
+
return async () => {
|
|
58
|
+
try {
|
|
59
|
+
await unregister();
|
|
60
|
+
} finally {
|
|
61
|
+
lease.dispose();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
} catch (error) {
|
|
65
|
+
lease.dispose();
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}, "awiki Rust SDK client");
|
|
69
|
+
}
|
|
70
|
+
async function waitForIdentityProvider(identity) {
|
|
71
|
+
const deadline = Date.now() + IDENTITY_PROVIDER_READY_TIMEOUT_MS;
|
|
72
|
+
while (!providerIsReady(await identity.health())) {
|
|
73
|
+
const remaining = deadline - Date.now();
|
|
74
|
+
if (remaining <= 0) throw new Error(`awiki: ANP Identity provider did not become ready within ${IDENTITY_PROVIDER_READY_TIMEOUT_MS}ms`);
|
|
75
|
+
await setTimeout(Math.min(IDENTITY_PROVIDER_READY_POLL_MS, remaining));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function providerIsReady(health) {
|
|
79
|
+
return health.status !== "unavailable" && health.providerProtocol !== void 0;
|
|
24
80
|
}
|
|
25
81
|
//#endregion
|
|
26
82
|
export { apply, inject, name };
|