@opengeni/sdk 3.3.2 → 3.4.0
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 +1007 -72
- package/dist/adapters/express.d.ts +31 -0
- package/dist/adapters/express.js +87 -0
- package/dist/adapters/express.js.map +1 -0
- package/dist/adapters/hono.d.ts +16 -0
- package/dist/adapters/hono.js +8 -0
- package/dist/adapters/hono.js.map +1 -0
- package/dist/adapters/next.d.ts +29 -0
- package/dist/adapters/next.js +22 -0
- package/dist/adapters/next.js.map +1 -0
- package/dist/allowance-refusal.d.ts +2 -0
- package/dist/allowance-refusal.js +50 -0
- package/dist/allowance-refusal.js.map +1 -0
- package/dist/app-links.d.ts +42 -0
- package/dist/app-links.js +66 -0
- package/dist/app-links.js.map +1 -0
- package/dist/artifact-catalog.d.ts +40 -0
- package/dist/artifact-client.d.ts +20 -8
- package/dist/artifacts.d.ts +1 -1
- package/dist/artifacts.js +8 -6
- package/dist/automations.js +8 -2
- package/dist/automations.js.map +1 -1
- package/dist/azure-live-transport.d.ts +32 -0
- package/dist/browser.d.ts +7 -2
- package/dist/browser.js +27 -5
- package/dist/chat/fold.d.ts +75 -0
- package/dist/chat/handler.d.ts +41 -0
- package/dist/chat/http.d.ts +67 -0
- package/dist/chat/ids.d.ts +34 -0
- package/dist/chat/index.d.ts +9 -0
- package/dist/chat/index.js +1369 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/openai.d.ts +30 -0
- package/dist/chat/opengeni.d.ts +129 -0
- package/dist/chat/types.d.ts +207 -0
- package/dist/chat/vercel.d.ts +49 -0
- package/dist/chats.d.ts +8 -0
- package/dist/chunk-4AHR4KGA.js +301 -0
- package/dist/chunk-4AHR4KGA.js.map +1 -0
- package/dist/chunk-6GYGMLX4.js +332 -0
- package/dist/chunk-6GYGMLX4.js.map +1 -0
- package/dist/chunk-7EWT3PV6.js +368 -0
- package/dist/chunk-7EWT3PV6.js.map +1 -0
- package/dist/chunk-FTWVVPR6.js +1665 -0
- package/dist/chunk-FTWVVPR6.js.map +1 -0
- package/dist/{chunk-VYCTL62C.js → chunk-GZQSWAKD.js} +1 -1
- package/dist/chunk-GZQSWAKD.js.map +1 -0
- package/dist/chunk-KGEABAID.js +71 -0
- package/dist/chunk-KGEABAID.js.map +1 -0
- package/dist/{chunk-YKZME56C.js → chunk-KWADQ227.js} +3 -3
- package/dist/{chunk-YKZME56C.js.map → chunk-KWADQ227.js.map} +1 -1
- package/dist/{chunk-JUS2UYRP.js → chunk-NCU5OAN7.js} +27 -2
- package/dist/chunk-NCU5OAN7.js.map +1 -0
- package/dist/{chunk-YXQX7RQT.js → chunk-OI5YLASH.js} +73 -2
- package/dist/chunk-OI5YLASH.js.map +1 -0
- package/dist/chunk-OV3POE62.js +359 -0
- package/dist/chunk-OV3POE62.js.map +1 -0
- package/dist/chunk-P7UWKORG.js +561 -0
- package/dist/chunk-P7UWKORG.js.map +1 -0
- package/dist/chunk-QGEIL4TR.js +195 -0
- package/dist/chunk-QGEIL4TR.js.map +1 -0
- package/dist/{chunk-TRNI7KEO.js → chunk-S2NLS3ES.js} +3669 -1281
- package/dist/chunk-S2NLS3ES.js.map +1 -0
- package/dist/chunk-UM4ZXXJR.js +9 -0
- package/dist/chunk-UM4ZXXJR.js.map +1 -0
- package/dist/{chunk-QT3KFVDP.js → chunk-UME3X7CP.js} +28 -32
- package/dist/chunk-UME3X7CP.js.map +1 -0
- package/dist/chunk-VT4YM4XQ.js +210 -0
- package/dist/chunk-VT4YM4XQ.js.map +1 -0
- package/dist/chunk-WSYYXONG.js +1602 -0
- package/dist/chunk-WSYYXONG.js.map +1 -0
- package/dist/{chunk-C2H7HBNP.js → chunk-WVCJRSGJ.js} +119 -14
- package/dist/chunk-WVCJRSGJ.js.map +1 -0
- package/dist/chunk-X5ITQVXE.js +15 -0
- package/dist/chunk-X5ITQVXE.js.map +1 -0
- package/dist/chunk-XA7HVIHI.js +126 -0
- package/dist/chunk-XA7HVIHI.js.map +1 -0
- package/dist/{chunk-KKRO2VCP.js → chunk-YJCHB7R3.js} +60 -12
- package/dist/chunk-YJCHB7R3.js.map +1 -0
- package/dist/chunk-YKIHNLWD.js +153 -0
- package/dist/chunk-YKIHNLWD.js.map +1 -0
- package/dist/chunk-ZDUBPV33.js +277 -0
- package/dist/chunk-ZDUBPV33.js.map +1 -0
- package/dist/client.d.ts +1068 -118
- package/dist/codex-realtime-controller.d.ts +13 -0
- package/dist/codex-realtime-controller.js +4 -2
- package/dist/codex-realtime-v3-wire.d.ts +3 -2
- package/dist/codex-realtime.d.ts +5 -1
- package/dist/company-brain.d.ts +1 -11
- package/dist/core.d.ts +7 -2
- package/dist/core.js +25 -6
- package/dist/deprecation.d.ts +47 -0
- package/dist/document-authority-client.d.ts +24 -2
- package/dist/document-authority.js +7 -5
- package/dist/editable-artifacts/index.d.ts +1 -1
- package/dist/editable-artifacts/types.d.ts +12 -2
- package/dist/editable-artifacts.js +19 -3
- package/dist/editable-artifacts.js.map +1 -1
- package/dist/embedding-client.d.ts +129 -0
- package/dist/errors.d.ts +76 -1
- package/dist/external-vault-receiver.d.ts +203 -0
- package/dist/external-vault-receiver.js +564 -0
- package/dist/external-vault-receiver.js.map +1 -0
- package/dist/feedback.d.ts +23 -0
- package/dist/gateway-realtime-transport.js +1 -1
- package/dist/github-repositories.d.ts +10 -0
- package/dist/github-repositories.js +36 -0
- package/dist/github-repositories.js.map +1 -0
- package/dist/index.d.ts +62 -11
- package/dist/index.js +557 -338
- package/dist/index.js.map +1 -1
- package/dist/insights-usage.d.ts +33 -0
- package/dist/insights-usage.js +7 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/interaction.d.ts +165 -71
- package/dist/interaction.js +2 -2
- package/dist/knowledge.d.ts +7 -0
- package/dist/knowledge.js +20 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/known-tools.d.ts +4 -0
- package/dist/message-links.d.ts +68 -0
- package/dist/model-context.d.ts +68 -0
- package/dist/model-display.d.ts +2 -0
- package/dist/model-display.js +17 -0
- package/dist/model-display.js.map +1 -0
- package/dist/model-picker-order.d.ts +1 -0
- package/dist/model-picker-order.js +10 -0
- package/dist/model-picker-order.js.map +1 -0
- package/dist/organization-integration-policy.d.ts +26 -0
- package/dist/organization-integration-policy.js +26 -0
- package/dist/organization-integration-policy.js.map +1 -0
- package/dist/pr-review-client.d.ts +1 -1
- package/dist/pr-review.d.ts +1 -1
- package/dist/pr-review.js.map +1 -1
- package/dist/preference-registry.d.ts +1 -1
- package/dist/prepared-mcp-setup.d.ts +5 -0
- package/dist/proxy.d.ts +13 -11
- package/dist/realtime.d.ts +1 -1
- package/dist/realtime.js +253 -7
- package/dist/realtime.js.map +1 -1
- package/dist/session-history-import.d.ts +22 -0
- package/dist/session-history-import.js +36 -0
- package/dist/session-history-import.js.map +1 -0
- package/dist/session-list-entries.d.ts +1 -0
- package/dist/session-list-entries.js +7 -0
- package/dist/session-list-entries.js.map +1 -0
- package/dist/session-message-search.d.ts +53 -0
- package/dist/session-proxy-client.d.ts +28 -0
- package/dist/session-proxy.d.ts +334 -0
- package/dist/session-proxy.js +24 -0
- package/dist/session-proxy.js.map +1 -0
- package/dist/session-titles.d.ts +2 -28
- package/dist/session-usage-limits.d.ts +10 -0
- package/dist/session-usage-limits.js +43 -0
- package/dist/session-usage-limits.js.map +1 -0
- package/dist/shared-catalog-loader.d.ts +34 -0
- package/dist/site-ai.d.ts +35 -0
- package/dist/site-bridge-host.d.ts +112 -0
- package/dist/site-bridge-host.js +286 -0
- package/dist/site-bridge-host.js.map +1 -0
- package/dist/site-browser-entry.d.ts +1 -0
- package/dist/site-browser-runtime.gen.d.ts +1 -0
- package/dist/site-data.d.ts +178 -0
- package/dist/site-document.d.ts +5 -0
- package/dist/site-document.js +20 -0
- package/dist/site-document.js.map +1 -0
- package/dist/site-document.test.d.ts +1 -0
- package/dist/site-http.d.ts +17 -0
- package/dist/site-sql.d.ts +31 -0
- package/dist/site-tool-bridge.d.ts +57 -0
- package/dist/site.d.ts +186 -0
- package/dist/site.js +63 -0
- package/dist/site.js.map +1 -0
- package/dist/skills.d.ts +75 -0
- package/dist/sse.d.ts +1 -1
- package/dist/stream.d.ts +2 -0
- package/dist/tenant-workspaces.d.ts +47 -0
- package/dist/tenant-workspaces.js +8 -0
- package/dist/tenant-workspaces.js.map +1 -0
- package/dist/tool-auth.d.ts +87 -0
- package/dist/tool-auth.js +23 -0
- package/dist/tool-auth.js.map +1 -0
- package/dist/tool-display-metadata.d.ts +3 -0
- package/dist/tools-37DCTCNZ.js +12 -0
- package/dist/tools-37DCTCNZ.js.map +1 -0
- package/dist/tools.d.ts +81 -0
- package/dist/transcription.d.ts +1 -1
- package/dist/types.d.ts +2807 -583
- package/dist/usage-allowances.d.ts +36 -0
- package/dist/usage-allowances.js +80 -0
- package/dist/usage-allowances.js.map +1 -0
- package/dist/vault-types.d.ts +324 -0
- package/dist/vaults-api.d.ts +65 -0
- package/dist/workspace-artifacts.d.ts +47 -5
- package/dist/workspace-instruction-policies.d.ts +2 -2
- package/dist/workspace-integrations.d.ts +74 -0
- package/dist/workspace-integrations.js +67 -0
- package/dist/workspace-integrations.js.map +1 -0
- package/dist/workspace-state.d.ts +8 -71
- package/package.json +103 -5
- package/src/adapters/express.ts +136 -0
- package/src/adapters/hono.ts +18 -0
- package/src/adapters/next.ts +42 -0
- package/src/allowance-refusal.ts +5 -0
- package/src/app-links.ts +117 -0
- package/src/artifact-catalog.ts +51 -0
- package/src/artifact-client.ts +40 -49
- package/src/artifacts.ts +1 -0
- package/src/automations-client.ts +8 -2
- package/src/azure-live-transport.ts +286 -0
- package/src/browser.ts +37 -0
- package/src/chat/fold.ts +431 -0
- package/src/chat/handler.ts +240 -0
- package/src/chat/http.ts +257 -0
- package/src/chat/ids.ts +85 -0
- package/src/chat/index.ts +88 -0
- package/src/chat/openai.ts +439 -0
- package/src/chat/opengeni.ts +737 -0
- package/src/chat/types.ts +219 -0
- package/src/chat/vercel.ts +204 -0
- package/src/chats.ts +16 -0
- package/src/client.ts +5697 -1833
- package/src/codex-realtime-controller.ts +163 -8
- package/src/codex-realtime-v3-wire.ts +4 -3
- package/src/codex-realtime-v3.ts +12 -3
- package/src/codex-realtime.ts +11 -3
- package/src/company-brain.ts +0 -40
- package/src/core.ts +20 -0
- package/src/deprecation.ts +149 -0
- package/src/document-authority-client.ts +104 -1
- package/src/editable-artifacts/controller.ts +36 -2
- package/src/editable-artifacts/index.ts +1 -0
- package/src/editable-artifacts/types.ts +29 -16
- package/src/embedding-client.ts +519 -0
- package/src/errors.ts +303 -4
- package/src/external-vault-receiver.ts +914 -0
- package/src/feedback.ts +20 -0
- package/src/gateway-realtime-transport.ts +3 -3
- package/src/github-repositories.ts +60 -0
- package/src/index.ts +603 -65
- package/src/insights-usage.ts +64 -0
- package/src/interaction.ts +315 -93
- package/src/knowledge.ts +72 -0
- package/src/known-tools.ts +279 -0
- package/src/message-links.ts +178 -0
- package/src/model-context.ts +113 -0
- package/src/model-display.ts +11 -0
- package/src/model-picker-order.ts +6 -0
- package/src/organization-integration-policy.ts +54 -0
- package/src/pr-review-client.ts +1 -1
- package/src/pr-review.ts +1 -1
- package/src/preference-registry.ts +2 -0
- package/src/prepared-mcp-setup.ts +123 -0
- package/src/proxy.ts +23 -12
- package/src/realtime.ts +15 -6
- package/src/session-history-import.ts +84 -0
- package/src/session-list-entries.ts +1 -0
- package/src/session-message-search.ts +47 -0
- package/src/session-proxy-client.ts +68 -0
- package/src/session-proxy.ts +2098 -0
- package/src/session-titles.ts +8 -82
- package/src/session-usage-limits.ts +71 -0
- package/src/shared-catalog-loader.ts +169 -0
- package/src/site-ai.ts +284 -0
- package/src/site-bridge-host.ts +422 -0
- package/src/site-browser-entry.ts +6 -0
- package/src/site-browser-runtime.gen.ts +2 -0
- package/src/site-data.ts +372 -0
- package/src/site-document.test.ts +64 -0
- package/src/site-document.ts +18 -0
- package/src/site-http.ts +171 -0
- package/src/site-sql.ts +153 -0
- package/src/site-tool-bridge.ts +401 -0
- package/src/site.ts +878 -0
- package/src/skills.ts +69 -0
- package/src/sse.ts +9 -3
- package/src/stream.ts +33 -10
- package/src/tenant-workspaces.ts +148 -0
- package/src/tool-auth.ts +301 -0
- package/src/tool-display-metadata.ts +27 -0
- package/src/tools.ts +452 -0
- package/src/transcription.ts +3 -0
- package/src/types.ts +3170 -582
- package/src/usage-allowances.ts +189 -0
- package/src/vault-types.ts +379 -0
- package/src/vaults-api.ts +339 -0
- package/src/workspace-artifacts.ts +55 -6
- package/src/workspace-instruction-policies.ts +2 -1
- package/src/workspace-integrations.ts +402 -0
- package/src/workspace-state.ts +8 -82
- package/dist/chunk-C2H7HBNP.js.map +0 -1
- package/dist/chunk-C4DJPZRU.js +0 -119
- package/dist/chunk-C4DJPZRU.js.map +0 -1
- package/dist/chunk-JUS2UYRP.js.map +0 -1
- package/dist/chunk-KKRO2VCP.js.map +0 -1
- package/dist/chunk-QT3KFVDP.js.map +0 -1
- package/dist/chunk-TRNI7KEO.js.map +0 -1
- package/dist/chunk-VYCTL62C.js.map +0 -1
- package/dist/chunk-YXQX7RQT.js.map +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { OpenGeniClient as OpenGeniArtifactClient } from "./artifact-client.js";
|
|
2
|
+
import type { AddWorkspaceMemberRequest } from "./types.js";
|
|
3
|
+
import type { ExternalIdentityLink, BeginExternalIdentityLinkRequest, BeginExternalIdentityLinkResponse, ConfirmExternalIdentityLinkRequest, ExternalIdentityLinkPreview, ExternalIdentityLinkPage } from "@opengeni/contracts/external-identities";
|
|
4
|
+
/** Non-secret service attribution, serialized as a flat JSON object of at most 2 KiB. */
|
|
5
|
+
export type ServiceContext = Record<string, string | number | boolean>;
|
|
6
|
+
/** Public product embedding administration, kept out of the native browser client. */
|
|
7
|
+
export declare class OpenGeniEmbeddingClient extends OpenGeniArtifactClient {
|
|
8
|
+
/** Read configuration (null means no configured ceiling). Requires admin or organization-key read authority. */
|
|
9
|
+
getWorkspaceAllowance(workspaceId: string): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceAllowance | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Read the lifecycle version even after clear (config=null). version=0 means
|
|
12
|
+
* never configured. Use the returned version to recreate or reconcile a 409;
|
|
13
|
+
* do not guess a CAS version or silently retry a new mutation.
|
|
14
|
+
* Requires the same budget-read authority as getWorkspaceAllowance.
|
|
15
|
+
*/
|
|
16
|
+
getWorkspaceAllowanceState(workspaceId: string): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceAllowanceState>;
|
|
17
|
+
/**
|
|
18
|
+
* Set a USD-micro ceiling with exact-version CAS (0 only for first creation;
|
|
19
|
+
* after clear reuse its returned version or getWorkspaceAllowanceState). Requires
|
|
20
|
+
* organization key-control authority or account:admin, never workspace admin
|
|
21
|
+
* alone. Shares may oversubscribe the pool; actual post-call settlement can
|
|
22
|
+
* overshoot before the next admission check.
|
|
23
|
+
*/
|
|
24
|
+
setWorkspaceAllowance(workspaceId: string, request: import("@opengeni/contracts/usage-allowances").SetWorkspaceAllowanceRequest): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceAllowance>;
|
|
25
|
+
/**
|
|
26
|
+
* Clear with the exact version; grants and settled usage are not a billing
|
|
27
|
+
* refund. Supply operationId and replay the exact request after a lost response.
|
|
28
|
+
* Replays recheck authority and conflict after a later lifecycle change.
|
|
29
|
+
* On 409 read getWorkspaceAllowanceState before deciding on a new operation.
|
|
30
|
+
*/
|
|
31
|
+
clearWorkspaceAllowance(workspaceId: string, request: import("@opengeni/contracts/usage-allowances").ClearWorkspaceAllowanceRequest): Promise<import("@opengeni/contracts/usage-allowances").ClearWorkspaceAllowanceResponse>;
|
|
32
|
+
/** Grant USD micros once. Reuse the operationId and exact request after an uncertain response. */
|
|
33
|
+
grantWorkspaceCredits(workspaceId: string, request: import("@opengeni/contracts/usage-allowances").GrantWorkspaceCreditsRequest): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceCreditGrant>;
|
|
34
|
+
/**
|
|
35
|
+
* Administer an existing member by canonical subject or external identity.
|
|
36
|
+
* null restores memberDefault; shares >1 are valid ceilings, not reservations.
|
|
37
|
+
* Concurrent calls may exceed the ceiling until their actual cost settles.
|
|
38
|
+
*/
|
|
39
|
+
setMemberAllowance(workspaceId: string, member: string | {
|
|
40
|
+
source: string;
|
|
41
|
+
externalId: string;
|
|
42
|
+
}, request: import("@opengeni/contracts/usage-allowances").SetMemberAllowanceRequest): Promise<import("@opengeni/contracts/usage-allowances").MemberAllowance>;
|
|
43
|
+
/** Paginated settled usage, current or YYYY-MM. Requires admin or organization-key read authority. */
|
|
44
|
+
getUsage(workspaceId: string, query?: import("@opengeni/contracts/usage-allowances").GetUsageRequest, options?: import("./client.js").OpenGeniRequestOptions): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceUsageResponse>;
|
|
45
|
+
/** Own usage only. On your backend use asUser(authenticatedUser); subject selectors are not accepted. */
|
|
46
|
+
getMyUsage(workspaceId: string, query?: import("@opengeni/contracts/usage-allowances").GetMyUsageRequest, options?: import("./client.js").OpenGeniRequestOptions): Promise<import("@opengeni/contracts/usage-allowances").WorkspaceUsageResponse>;
|
|
47
|
+
/** Recover this actor's connection creation result without resending secrets.
|
|
48
|
+
* A 404 means no visible committed result, not proof that an in-flight write failed. */
|
|
49
|
+
getConnectionCreationResult(workspaceId: string, operationId: string): Promise<import("./types.js").ConnectionMetadata>;
|
|
50
|
+
/** Rotate existing inline credentials only while no credential-consuming work
|
|
51
|
+
* is pending or active. Reuse the operation key and exact request to reconcile
|
|
52
|
+
* a lost response. This operation never schedules or retries model work. */
|
|
53
|
+
rotateSessionMcpCredentials(workspaceId: string, sessionId: string, request: import("./types.js").RotateSessionMcpCredentialsRequest): Promise<import("./types.js").RotateSessionMcpCredentialsReceipt>;
|
|
54
|
+
/** Contract-checked successful JSON GET with its headers intact, for same-origin
|
|
55
|
+
* proxies that must forward paging metadata. Non-2xx responses throw. */
|
|
56
|
+
requestJsonResponse(path: string, query?: Record<string, string>, options?: import("./client.js").OpenGeniRequestOptions): Promise<import("./client.js").FetchResponse>;
|
|
57
|
+
/** Server-side organization-key client scoped to one host-authenticated user.
|
|
58
|
+
* Does not mutate this client, provision workspace membership, or link native
|
|
59
|
+
* identities. The API verifies key and membership authority on each request. */
|
|
60
|
+
asUser(externalId: string, options?: {
|
|
61
|
+
source?: string;
|
|
62
|
+
}): this;
|
|
63
|
+
/** Server-side automation attribution under this client's existing credential.
|
|
64
|
+
* Returns a new client of the same class; grants no permissions or human/personal
|
|
65
|
+
* resource authority. Cannot be combined with asUser or asLinkedUser.
|
|
66
|
+
* Reapplying asService replaces the name and context rather than merging them. */
|
|
67
|
+
asService(name: string, context?: ServiceContext): this;
|
|
68
|
+
/** Explicitly use a confirmed native delegation. Unlike asUser, new resources
|
|
69
|
+
* belong to the native user. Existing external resources are never reassigned.
|
|
70
|
+
* A stale, expired or revoked link is rejected by the server on every request. */
|
|
71
|
+
asLinkedUser(externalId: string, options: {
|
|
72
|
+
source?: string;
|
|
73
|
+
linkId: string;
|
|
74
|
+
expectedLinkRevision: number;
|
|
75
|
+
}): this;
|
|
76
|
+
/** Optional native-account delegation. Invoke on a server-side asUser client.
|
|
77
|
+
* Pass the one-time challenge to the native consent screen, never a URL query
|
|
78
|
+
* or analytics event. Ordinary external embedding needs none of this. */
|
|
79
|
+
beginIdentityLink(workspaceId: string, input: BeginExternalIdentityLinkRequest): Promise<BeginExternalIdentityLinkResponse>;
|
|
80
|
+
getIdentityLink(workspaceId: string, linkId: string): Promise<ExternalIdentityLink>;
|
|
81
|
+
/** Only links belonging to the effective participant; no organization-wide directory. */
|
|
82
|
+
listIdentityLinks(workspaceId: string, cursor?: string): Promise<ExternalIdentityLinkPage>;
|
|
83
|
+
/** Requires a canonical native browser session, not an organization API key. */
|
|
84
|
+
previewIdentityLink(workspaceId: string, linkId: string, challenge: string): Promise<ExternalIdentityLinkPreview>;
|
|
85
|
+
confirmIdentityLink(workspaceId: string, linkId: string, input: ConfirmExternalIdentityLinkRequest): Promise<ExternalIdentityLink>;
|
|
86
|
+
revokeIdentityLink(workspaceId: string, linkId: string, expectedRevision: number): Promise<ExternalIdentityLink>;
|
|
87
|
+
/** Service-only lifecycle for an external actor's organization membership.
|
|
88
|
+
* A successful reactivation does not restore revoked workspace grants. */
|
|
89
|
+
updateExternalIdentityMembership(organizationId: string, membershipId: string, request: import("@opengeni/contracts/external-identities").UpdateExternalIdentityMembershipRequest, options?: {
|
|
90
|
+
signal?: AbortSignal;
|
|
91
|
+
}): Promise<import("@opengeni/contracts").OrganizationMember>;
|
|
92
|
+
/** Non-provisioning, content-free service lookup, including inactive identities. */
|
|
93
|
+
lookupExternalIdentity(organizationId: string, identity: import("@opengeni/contracts/external-identities").ExternalIdentityReference): Promise<import("@opengeni/contracts/external-identities").ExternalIdentityLookup>;
|
|
94
|
+
/** Withdraw an external member's shared-workspace access and fence an exact
|
|
95
|
+
* pending keyed grant. Reuse the exact cancellation body after response loss. */
|
|
96
|
+
cancelExternalWorkspaceMemberGrant(organizationId: string, workspaceId: string, membershipId: string, request: import("@opengeni/contracts/external-identities").CancelExternalWorkspaceMemberGrantRequest): Promise<import("@opengeni/contracts/external-identities").CancelExternalWorkspaceMemberGrantResponse>;
|
|
97
|
+
/** Replace an existing external member's permissions in one shared
|
|
98
|
+
* workspace. Keyed by `operationId`: reuse the exact body after response
|
|
99
|
+
* loss. Narrowing makes live authority re-check; nothing is cancelled. */
|
|
100
|
+
updateExternalWorkspaceMember(organizationId: string, workspaceId: string, membershipId: string, request: import("@opengeni/contracts/external-identities").UpdateExternalWorkspaceMemberRequest): Promise<import("@opengeni/contracts/external-identities").UpdateExternalWorkspaceMemberResponse>;
|
|
101
|
+
listConnectProviders(workspaceId: string): Promise<import("@opengeni/contracts/connect").ConnectProvider[]>;
|
|
102
|
+
listConnectAccounts(workspaceId: string): Promise<import("@opengeni/contracts/connect").ConnectAccount[]>;
|
|
103
|
+
getConnectAttempt(workspaceId: string, attemptId: string): Promise<import("@opengeni/contracts/connect").ConnectAttempt>;
|
|
104
|
+
listPendingConnectAttempts(workspaceId: string): Promise<import("@opengeni/contracts/connect").ConnectAttempt[]>;
|
|
105
|
+
advanceConnectAttempt(workspaceId: string, attemptId: string, request: {
|
|
106
|
+
expectedRevision: number;
|
|
107
|
+
idempotencyKey: string;
|
|
108
|
+
action: import("@opengeni/contracts/connect").ConnectAdvance;
|
|
109
|
+
}): Promise<import("@opengeni/contracts/connect").ConnectAttempt>;
|
|
110
|
+
/** Stops setup; does not revoke already committed provider credentials. */
|
|
111
|
+
cancelConnectAttempt(workspaceId: string, attemptId: string, request: {
|
|
112
|
+
expectedRevision: number;
|
|
113
|
+
idempotencyKey: string;
|
|
114
|
+
}): Promise<import("@opengeni/contracts/connect").ConnectAttempt>;
|
|
115
|
+
/**
|
|
116
|
+
* Explicit organization-service-key onboarding with chosen permissions. Not
|
|
117
|
+
* needed for the default path: an `asUser` request through a key with
|
|
118
|
+
* `members:manage` adds a missing member with conversation permissions on
|
|
119
|
+
* first use. Change an existing member with `updateExternalWorkspaceMember`.
|
|
120
|
+
*/
|
|
121
|
+
addExternalWorkspaceMember(workspaceId: string, request: {
|
|
122
|
+
identity: {
|
|
123
|
+
externalId: string;
|
|
124
|
+
source?: string;
|
|
125
|
+
};
|
|
126
|
+
permissions: AddWorkspaceMemberRequest["permissions"];
|
|
127
|
+
operationId?: string;
|
|
128
|
+
}): Promise<import("@opengeni/contracts/external-identities").ExternalIdentity>;
|
|
129
|
+
}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ParsedSessionUsageLimitReachedRefusal } from "@opengeni/contracts/session-usage-limit-refusal";
|
|
2
|
+
/** Error for a non-2xx Opengeni API response. */
|
|
2
3
|
export declare class OpenGeniApiError extends Error {
|
|
3
4
|
readonly status: number;
|
|
4
5
|
readonly code: string | undefined;
|
|
@@ -17,6 +18,74 @@ export declare class OpenGeniApiError extends Error {
|
|
|
17
18
|
mutation?: boolean | undefined;
|
|
18
19
|
});
|
|
19
20
|
}
|
|
21
|
+
/** Deployment or organization setup must be completed before private chats can be created. */
|
|
22
|
+
export declare class OpenGeniSetupError extends OpenGeniApiError {
|
|
23
|
+
constructor(error: OpenGeniApiError);
|
|
24
|
+
}
|
|
25
|
+
/** A settled usage ceiling refuses the next call; retry after reset or an authorized grant. */
|
|
26
|
+
export declare class OpenGeniAllowanceExhaustedError extends OpenGeniApiError {
|
|
27
|
+
readonly scope: "workspace" | "member";
|
|
28
|
+
readonly resetsAt: string | null;
|
|
29
|
+
readonly subjectId: string | undefined;
|
|
30
|
+
constructor(status: number, body: string, options?: ConstructorParameters<typeof OpenGeniApiError>[2]);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The task's root usage limit is reached: recorded API-equivalent model usage
|
|
34
|
+
* is at or above the limit. Not a credit or billing failure and not retryable
|
|
35
|
+
* by waiting; a person can raise or remove the limit, then send again.
|
|
36
|
+
*/
|
|
37
|
+
export declare class OpenGeniSessionUsageLimitReachedError extends OpenGeniApiError {
|
|
38
|
+
readonly rootSessionId: string | undefined;
|
|
39
|
+
readonly limitMicros: number | undefined;
|
|
40
|
+
readonly usedMicros: number | undefined;
|
|
41
|
+
constructor(status: number, body: string, options?: ConstructorParameters<typeof OpenGeniApiError>[2]);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The server did not accept or confirm a requested task usage limit, so it
|
|
45
|
+
* predates usage limits (or limits are not enabled there). `sessionId` is null
|
|
46
|
+
* when the server rejected the create before creating anything; otherwise the
|
|
47
|
+
* session exists without a confirmed limit and no initial work was started by
|
|
48
|
+
* this SDK's request (an older server rejects it up front).
|
|
49
|
+
*/
|
|
50
|
+
export declare class OpenGeniSessionUsageLimitUnsupportedError extends Error {
|
|
51
|
+
readonly code = "session_usage_limit_unsupported";
|
|
52
|
+
readonly sessionId: string | null;
|
|
53
|
+
constructor(message: string, options?: {
|
|
54
|
+
sessionId?: string | null;
|
|
55
|
+
cause?: unknown;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* True only when a create was refused because the server rejected the
|
|
60
|
+
* `startMode` field itself: servers that predate usage limits accept only
|
|
61
|
+
* `realtime` there. Matches the session create route's 422 validation
|
|
62
|
+
* envelope (`Invalid session create request: <fields> failed schema
|
|
63
|
+
* validation`) and a 400 request-body envelope whose issues name `startMode`.
|
|
64
|
+
* Any other validation error stays an ordinary API error.
|
|
65
|
+
*/
|
|
66
|
+
export declare function rejectsStartModeField(error: OpenGeniApiError): boolean;
|
|
67
|
+
/** The committed limit differs from the one requested: never report success. */
|
|
68
|
+
export declare function sessionUsageLimitNotConfirmed(sessionId: string): OpenGeniSessionUsageLimitUnsupportedError;
|
|
69
|
+
/** Parse a session usage limit refusal from an API error envelope body. */
|
|
70
|
+
export declare function sessionUsageLimitReachedFields(body: string): ParsedSessionUsageLimitReachedRefusal | null;
|
|
71
|
+
/** Accept both the API error envelope and the standalone admission refusal. */
|
|
72
|
+
export declare function allowanceExhaustedFields(body: string): {
|
|
73
|
+
scope: "workspace" | "member";
|
|
74
|
+
resetsAt: string | null;
|
|
75
|
+
subjectId?: string;
|
|
76
|
+
} | null;
|
|
77
|
+
export type OpenGeniSecureContextRequiredReason = "insecure_context" | "web_crypto_unavailable";
|
|
78
|
+
/**
|
|
79
|
+
* A browser operation requires secure-context-only platform capabilities.
|
|
80
|
+
* Callers may key UI behavior on the stable `secure_context_required` code;
|
|
81
|
+
* `reason` exists only to keep the human guidance truthful.
|
|
82
|
+
*/
|
|
83
|
+
export declare class OpenGeniSecureContextRequiredError extends Error {
|
|
84
|
+
readonly code: "secure_context_required";
|
|
85
|
+
readonly retryable = false;
|
|
86
|
+
readonly reason: OpenGeniSecureContextRequiredReason;
|
|
87
|
+
constructor(reason: OpenGeniSecureContextRequiredReason);
|
|
88
|
+
}
|
|
20
89
|
/** A legacy short-lived session-list snapshot cursor can no longer be continued. */
|
|
21
90
|
export declare class OpenGeniSessionListCursorError extends OpenGeniApiError {
|
|
22
91
|
}
|
|
@@ -30,6 +99,12 @@ export declare class OpenGeniApiContractMismatchError extends Error {
|
|
|
30
99
|
export declare class OpenGeniStreamError extends Error {
|
|
31
100
|
constructor(message: string);
|
|
32
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Brand-neutral end-user copy for a failed SDK operation. Error.message, body,
|
|
104
|
+
* details and typed fields remain unchanged for diagnostics and host policy.
|
|
105
|
+
* Never use this to rewrite user, assistant or tool content.
|
|
106
|
+
*/
|
|
107
|
+
export declare function formatErrorMessage(error: unknown, fallback?: string): string;
|
|
33
108
|
export declare function isAbortError(error: unknown): boolean;
|
|
34
109
|
/**
|
|
35
110
|
* Transient conditions worth a reconnect: network-level failures (`fetch`
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { VaultProviderWireFreshness, VaultProviderWireRequest, type VaultProviderWireAuthority, type VaultProviderWireErrorCode, type VaultProviderWireOperationName, type VaultProviderWirePage, type VaultProviderWireProvider, type VaultProviderWireResult, type VaultProviderWireWriteItem } from "@opengeni/contracts/vault-provider-wire";
|
|
2
|
+
export { VAULT_PROVIDER_WIRE_ERROR_CODES, VAULT_PROVIDER_WIRE_LIMITS, VAULT_PROVIDER_WIRE_RESPONSE_SIGNATURE_HEADER, VAULT_PROVIDER_WIRE_VERSION, vaultProviderWireResponseKey, } from "@opengeni/contracts/vault-provider-wire";
|
|
3
|
+
export type { VaultProviderWireAuthority, VaultProviderWireDescribeResult, VaultProviderWireErrorCode, VaultProviderWireFieldMeta, VaultProviderWireFieldValue, VaultProviderWireFreshness, VaultProviderWireItemMeta, VaultProviderWireOperation, VaultProviderWireOperationName, VaultProviderWirePage, VaultProviderWireProvider, VaultProviderWireRequest, VaultProviderWireResponse, VaultProviderWireResult, VaultProviderWireVault, VaultProviderWireWriteField, VaultProviderWireWriteItem, } from "@opengeni/contracts/vault-provider-wire";
|
|
4
|
+
/** A definite, safe receiver failure. Its message is never sent to Opengeni. */
|
|
5
|
+
export declare class ExternalVaultReceiverError extends Error {
|
|
6
|
+
readonly code: VaultProviderWireErrorCode;
|
|
7
|
+
readonly retryAfterMs: number | null;
|
|
8
|
+
readonly freshness: VaultProviderWireFreshness | null;
|
|
9
|
+
constructor(code: VaultProviderWireErrorCode, options?: {
|
|
10
|
+
retryAfterMs?: number;
|
|
11
|
+
freshness?: VaultProviderWireFreshness;
|
|
12
|
+
message?: string;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export interface ExternalVaultReceiverConnection<TConnection> {
|
|
16
|
+
provider: VaultProviderWireProvider;
|
|
17
|
+
/**
|
|
18
|
+
* Accepted signing secrets: the current one first, then a previous one
|
|
19
|
+
* during rotation. Responses are signed with the secret that verified.
|
|
20
|
+
*/
|
|
21
|
+
signingSecrets: readonly string[];
|
|
22
|
+
/** When set, requests for any other Opengeni account are refused. */
|
|
23
|
+
accountId?: string;
|
|
24
|
+
/** When set, requests for a connection owned by another workspace are refused. */
|
|
25
|
+
connectionWorkspaceId?: string;
|
|
26
|
+
/** Host data for this connection: its fixed inventory scope, not a user. */
|
|
27
|
+
context: TConnection;
|
|
28
|
+
}
|
|
29
|
+
export type ExternalVaultMutationClaim = {
|
|
30
|
+
state: "claimed";
|
|
31
|
+
} | {
|
|
32
|
+
state: "completed";
|
|
33
|
+
result: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** In flight, or uncertain after a failure: report an unknown outcome. */
|
|
36
|
+
| {
|
|
37
|
+
state: "pending";
|
|
38
|
+
}
|
|
39
|
+
/** Same key, different operation or caller. */
|
|
40
|
+
| {
|
|
41
|
+
state: "mismatch";
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Caller-owned replay and idempotency storage. Use durable shared storage
|
|
45
|
+
* (for example a database table with unique keys) when the receiver runs in
|
|
46
|
+
* more than one process or must survive restarts.
|
|
47
|
+
*/
|
|
48
|
+
export interface ExternalVaultReceiverStore {
|
|
49
|
+
/** Atomically record a request id. False when it was already recorded. */
|
|
50
|
+
rememberRequest(input: {
|
|
51
|
+
connectionId: string;
|
|
52
|
+
requestId: string;
|
|
53
|
+
expiresAt: Date;
|
|
54
|
+
}): Promise<boolean>;
|
|
55
|
+
/** Atomically claim a mutation key, or report its existing state. */
|
|
56
|
+
claimMutation(input: {
|
|
57
|
+
connectionId: string;
|
|
58
|
+
idempotencyKey: string;
|
|
59
|
+
digest: string;
|
|
60
|
+
expiresAt: Date;
|
|
61
|
+
}): Promise<ExternalVaultMutationClaim>;
|
|
62
|
+
/** Record the metadata-only result of a confirmed mutation. */
|
|
63
|
+
completeMutation(input: {
|
|
64
|
+
connectionId: string;
|
|
65
|
+
idempotencyKey: string;
|
|
66
|
+
digest: string;
|
|
67
|
+
result: unknown;
|
|
68
|
+
}): Promise<void>;
|
|
69
|
+
/** The handler definitely changed nothing: allow the key to be claimed again. */
|
|
70
|
+
releaseMutation(input: {
|
|
71
|
+
connectionId: string;
|
|
72
|
+
idempotencyKey: string;
|
|
73
|
+
digest: string;
|
|
74
|
+
}): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
export interface ExternalVaultHandlerOutput<R> {
|
|
77
|
+
result: R;
|
|
78
|
+
freshness?: VaultProviderWireFreshness | null;
|
|
79
|
+
}
|
|
80
|
+
type ReadContext = {
|
|
81
|
+
forceRefresh: boolean;
|
|
82
|
+
cacheEpoch: string | null;
|
|
83
|
+
};
|
|
84
|
+
export interface ExternalVaultCallContext<TConnection, TPrincipal> {
|
|
85
|
+
connectionId: string;
|
|
86
|
+
connection: TConnection;
|
|
87
|
+
/** The host principal returned by `authorize` for this exact request. */
|
|
88
|
+
principal: TPrincipal;
|
|
89
|
+
authority: VaultProviderWireAuthority;
|
|
90
|
+
requestId: string;
|
|
91
|
+
signal?: AbortSignal;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Inventory handlers receive the connection, not the acting principal: one
|
|
95
|
+
* connection has one fixed inventory, so listings must not vary by subject.
|
|
96
|
+
*/
|
|
97
|
+
export interface ExternalVaultInventoryContext<TConnection> {
|
|
98
|
+
connectionId: string;
|
|
99
|
+
connection: TConnection;
|
|
100
|
+
requestId: string;
|
|
101
|
+
signal?: AbortSignal;
|
|
102
|
+
}
|
|
103
|
+
export interface ExternalVaultReceiverHandlers<TConnection, TPrincipal> {
|
|
104
|
+
describe(ctx: ExternalVaultInventoryContext<TConnection>): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"describe">>>;
|
|
105
|
+
/** Deliberate upstream refresh; omit when the store is always live. */
|
|
106
|
+
refresh?(ctx: ExternalVaultInventoryContext<TConnection>): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"refresh">>>;
|
|
107
|
+
listVaults(ctx: ExternalVaultInventoryContext<TConnection>, input: {
|
|
108
|
+
page: VaultProviderWirePage;
|
|
109
|
+
} & ReadContext): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"list_vaults">>>;
|
|
110
|
+
listItems(ctx: ExternalVaultInventoryContext<TConnection>, input: {
|
|
111
|
+
externalVaultId: string;
|
|
112
|
+
page: VaultProviderWirePage;
|
|
113
|
+
} & ReadContext): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"list_items">>>;
|
|
114
|
+
readFields(ctx: ExternalVaultCallContext<TConnection, TPrincipal>, input: {
|
|
115
|
+
externalVaultId: string;
|
|
116
|
+
externalItemId: string;
|
|
117
|
+
externalFieldIds: readonly string[];
|
|
118
|
+
} & ReadContext): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"read_fields">>>;
|
|
119
|
+
/** Omit when the connection is read-only. Throw only definite failures. */
|
|
120
|
+
writeItem?(ctx: ExternalVaultCallContext<TConnection, TPrincipal>, input: {
|
|
121
|
+
externalVaultId: string;
|
|
122
|
+
item: VaultProviderWireWriteItem;
|
|
123
|
+
idempotencyKey: string;
|
|
124
|
+
}): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"write_item">>>;
|
|
125
|
+
archiveItem?(ctx: ExternalVaultCallContext<TConnection, TPrincipal>, input: {
|
|
126
|
+
externalVaultId: string;
|
|
127
|
+
externalItemId: string;
|
|
128
|
+
idempotencyKey: string;
|
|
129
|
+
}): Promise<ExternalVaultHandlerOutput<VaultProviderWireResult<"archive_item">>>;
|
|
130
|
+
}
|
|
131
|
+
export interface ExternalVaultAuthorizeInput<TConnection> {
|
|
132
|
+
connectionId: string;
|
|
133
|
+
connection: TConnection;
|
|
134
|
+
authority: VaultProviderWireAuthority;
|
|
135
|
+
operation: {
|
|
136
|
+
op: VaultProviderWireOperationName;
|
|
137
|
+
externalVaultId?: string;
|
|
138
|
+
externalItemId?: string;
|
|
139
|
+
};
|
|
140
|
+
requestId: string;
|
|
141
|
+
}
|
|
142
|
+
export interface ExternalVaultReceiverOptions<TConnection, TPrincipal> {
|
|
143
|
+
/** Unknown connections are indistinguishable from bad signatures. */
|
|
144
|
+
resolveConnection(connectionId: string): Promise<ExternalVaultReceiverConnection<TConnection> | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Map Opengeni's native account/workspace/subject to the host tenant and
|
|
147
|
+
* user and recheck access for this operation. Return null to refuse.
|
|
148
|
+
* Called for every request, including inventory reads.
|
|
149
|
+
*/
|
|
150
|
+
authorize(input: ExternalVaultAuthorizeInput<TConnection>): Promise<TPrincipal | null>;
|
|
151
|
+
handlers: ExternalVaultReceiverHandlers<TConnection, TPrincipal>;
|
|
152
|
+
store: ExternalVaultReceiverStore;
|
|
153
|
+
/** How long mutation results stay replayable. Default 24 hours. */
|
|
154
|
+
mutationRetentionMs?: number;
|
|
155
|
+
now?: () => number;
|
|
156
|
+
/** Host diagnostics. Never forward these errors to Opengeni. */
|
|
157
|
+
onError?(event: {
|
|
158
|
+
stage: "authorize" | "handler" | "store" | "output";
|
|
159
|
+
op: VaultProviderWireOperationName;
|
|
160
|
+
connectionId: string;
|
|
161
|
+
error: unknown;
|
|
162
|
+
}): void;
|
|
163
|
+
}
|
|
164
|
+
export interface ExternalVaultReceiverHttpRequest {
|
|
165
|
+
/** The exact raw request body; parse nothing before calling `handle`. */
|
|
166
|
+
body: string;
|
|
167
|
+
headers: Headers | Record<string, string | string[] | undefined>;
|
|
168
|
+
signal?: AbortSignal;
|
|
169
|
+
}
|
|
170
|
+
export interface ExternalVaultReceiverHttpResponse {
|
|
171
|
+
status: number;
|
|
172
|
+
headers: Record<string, string>;
|
|
173
|
+
body: string;
|
|
174
|
+
}
|
|
175
|
+
export interface ExternalVaultReceiver {
|
|
176
|
+
handle(request: ExternalVaultReceiverHttpRequest): Promise<ExternalVaultReceiverHttpResponse>;
|
|
177
|
+
/** Fetch-style adapter: POST only, bounded body, then `handle`. */
|
|
178
|
+
fetch(request: Request): Promise<Response>;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Keyed digest of one mutation's exact scope: connection, provider, trusted
|
|
182
|
+
* caller tuple and operation (without its idempotency key). Keyed so the
|
|
183
|
+
* store never holds a plain hash of submitted secret values.
|
|
184
|
+
*/
|
|
185
|
+
export declare function externalVaultMutationDigest(input: {
|
|
186
|
+
signingSecret: string;
|
|
187
|
+
request: VaultProviderWireRequest;
|
|
188
|
+
}): Promise<string>;
|
|
189
|
+
/** Mirrors Opengeni's secret-name rule: usable item/field names from upstream titles. */
|
|
190
|
+
export declare function safeExternalVaultName(raw: string, fallback?: string): string;
|
|
191
|
+
/** A safe field name, unique case-insensitively within `taken` (which it updates). */
|
|
192
|
+
export declare function uniqueExternalVaultFieldName(raw: string, taken: Set<string>, fallback?: string): string;
|
|
193
|
+
/**
|
|
194
|
+
* Process-local store for tests, development and a single-process bridge
|
|
195
|
+
* that accepts losing replay/idempotency memory on restart. It is not durable.
|
|
196
|
+
*/
|
|
197
|
+
export declare function createInMemoryExternalVaultReceiverStore(options?: {
|
|
198
|
+
maxEntries?: number;
|
|
199
|
+
now?: () => number;
|
|
200
|
+
}): ExternalVaultReceiverStore & {
|
|
201
|
+
size(): number;
|
|
202
|
+
};
|
|
203
|
+
export declare function createExternalVaultReceiver<TConnection, TPrincipal>(options: ExternalVaultReceiverOptions<TConnection, TPrincipal>): ExternalVaultReceiver;
|