@elizaos/ui 2.0.0-alpha.526 → 2.0.0-alpha.528
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/apps/app-elizamaker/src/index.d.ts +2 -0
- package/apps/app-elizamaker/src/index.d.ts.map +1 -1
- package/apps/app-elizamaker/src/index.js +2 -0
- package/apps/app-elizamaker/src/init-registry-services.d.ts +18 -0
- package/apps/app-elizamaker/src/init-registry-services.d.ts.map +1 -0
- package/apps/app-elizamaker/src/init-registry-services.js +63 -0
- package/apps/app-elizamaker/src/plugin.d.ts.map +1 -1
- package/apps/app-elizamaker/src/plugin.js +7 -0
- package/apps/app-elizamaker/src/registry-service-registry.d.ts +4 -0
- package/apps/app-elizamaker/src/registry-service-registry.d.ts.map +1 -0
- package/apps/app-elizamaker/src/registry-service-registry.js +7 -0
- package/apps/app-lifeops/src/automation-node-contributor.d.ts +2 -0
- package/apps/app-lifeops/src/automation-node-contributor.d.ts.map +1 -0
- package/apps/app-lifeops/src/automation-node-contributor.js +93 -0
- package/apps/app-lifeops/src/public.d.ts.map +1 -1
- package/apps/app-lifeops/src/public.js +2 -0
- package/apps/app-training/src/services/training-service-registry.d.ts +4 -0
- package/apps/app-training/src/services/training-service-registry.d.ts.map +1 -0
- package/apps/app-training/src/services/training-service-registry.js +7 -0
- package/package.json +1 -1
- package/packages/agent/src/api/agent-status-routes.d.ts +3 -23
- package/packages/agent/src/api/agent-status-routes.d.ts.map +1 -1
- package/packages/agent/src/api/agent-status-routes.js +7 -40
- package/packages/agent/src/api/coordinator-wiring.d.ts.map +1 -0
- package/packages/agent/src/api/misc-routes.d.ts.map +1 -1
- package/packages/agent/src/api/misc-routes.js +3 -37
- package/packages/agent/src/api/nfa-routes.d.ts.map +1 -1
- package/packages/agent/src/api/nfa-routes.js +1 -9
- package/packages/agent/src/api/provider-switch-routes.d.ts +8 -7
- package/packages/agent/src/api/provider-switch-routes.d.ts.map +1 -1
- package/packages/agent/src/api/provider-switch-routes.js +41 -26
- package/packages/agent/src/api/server-types.d.ts +0 -6
- package/packages/agent/src/api/server-types.d.ts.map +1 -1
- package/packages/agent/src/api/server.d.ts.map +1 -1
- package/packages/agent/src/api/server.js +31 -138
- package/packages/agent/src/api/stream-routes.d.ts.map +1 -1
- package/packages/agent/src/api/stream-routes.js +6 -8
- package/packages/agent/src/api/wallet-trading-profile.d.ts.map +1 -1
- package/packages/agent/src/api/wallet-trading-profile.js +2 -23
- package/packages/agent/src/auth/account-storage.d.ts.map +1 -1
- package/packages/agent/src/auth/account-storage.js +4 -15
- package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
- package/packages/agent/src/runtime/eliza.js +2 -6
- package/packages/agent/src/runtime/first-time-setup.d.ts.map +1 -1
- package/packages/agent/src/runtime/first-time-setup.js +1 -7
- package/packages/agent/src/runtime/operations/cold-strategy.d.ts +4 -4
- package/packages/agent/src/runtime/operations/cold-strategy.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/cold-strategy.js +13 -46
- package/packages/agent/src/runtime/operations/health-checks.d.ts +1 -0
- package/packages/agent/src/runtime/operations/health-checks.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/health-checks.js +1 -1
- package/packages/agent/src/runtime/operations/health.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/health.js +1 -13
- package/packages/agent/src/runtime/operations/index.d.ts +1 -0
- package/packages/agent/src/runtime/operations/index.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/index.js +1 -0
- package/packages/agent/src/runtime/operations/manager.d.ts +2 -0
- package/packages/agent/src/runtime/operations/manager.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/manager.js +27 -7
- package/packages/agent/src/runtime/operations/reload-hot.d.ts +4 -1
- package/packages/agent/src/runtime/operations/reload-hot.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/reload-hot.js +46 -41
- package/packages/agent/src/runtime/operations/repository.d.ts +30 -8
- package/packages/agent/src/runtime/operations/repository.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/repository.js +140 -54
- package/packages/agent/src/runtime/operations/types.d.ts +26 -24
- package/packages/agent/src/runtime/operations/types.d.ts.map +1 -1
- package/packages/agent/src/runtime/operations/types.js +8 -20
- package/packages/agent/src/runtime/operations/vault-bridge.d.ts +60 -0
- package/packages/agent/src/runtime/operations/vault-bridge.d.ts.map +1 -0
- package/packages/agent/src/runtime/operations/vault-bridge.js +80 -0
- package/packages/agent/src/runtime/plugin-resolver.d.ts.map +1 -1
- package/packages/agent/src/runtime/plugin-resolver.js +1 -3
- package/packages/agent/src/runtime/plugin-types.d.ts.map +1 -1
- package/packages/agent/src/runtime/plugin-types.js +1 -3
- package/packages/agent/src/services/app-package-modules.d.ts.map +1 -1
- package/packages/agent/src/services/app-package-modules.js +1 -8
- package/packages/agent/src/services/app-run-store.d.ts.map +1 -1
- package/packages/agent/src/services/app-run-store.js +2 -23
- package/packages/agent/src/services/registry-client-local.d.ts.map +1 -1
- package/packages/agent/src/services/registry-client-local.js +1 -9
- package/packages/agent/src/utils/atomic-json.d.ts +37 -0
- package/packages/agent/src/utils/atomic-json.d.ts.map +1 -0
- package/packages/agent/src/utils/atomic-json.js +98 -0
- package/packages/app-core/src/api/automation-node-contributors.d.ts +14 -0
- package/packages/app-core/src/api/automation-node-contributors.d.ts.map +1 -0
- package/packages/app-core/src/api/automation-node-contributors.js +14 -0
- package/packages/app-core/src/api/client-agent.d.ts +627 -0
- package/packages/app-core/src/api/client-agent.d.ts.map +1 -0
- package/packages/app-core/src/api/client-agent.js +1442 -0
- package/packages/app-core/src/api/client-automations.d.ts +8 -0
- package/packages/app-core/src/api/client-automations.d.ts.map +1 -0
- package/packages/app-core/src/api/client-automations.js +7 -0
- package/packages/app-core/src/api/client-base.d.ts +82 -0
- package/packages/app-core/src/api/client-base.d.ts.map +1 -0
- package/packages/app-core/src/api/client-base.js +729 -0
- package/packages/app-core/src/api/client-browser-workspace.d.ts +25 -0
- package/packages/app-core/src/api/client-browser-workspace.d.ts.map +1 -0
- package/packages/app-core/src/api/client-browser-workspace.js +98 -0
- package/packages/app-core/src/api/client-chat.d.ts +355 -0
- package/packages/app-core/src/api/client-chat.d.ts.map +1 -0
- package/packages/app-core/src/api/client-chat.js +582 -0
- package/packages/app-core/src/api/client-cloud.d.ts +286 -0
- package/packages/app-core/src/api/client-cloud.d.ts.map +1 -0
- package/packages/app-core/src/api/client-cloud.js +410 -0
- package/packages/app-core/src/api/client-computeruse.d.ts +32 -0
- package/packages/app-core/src/api/client-computeruse.d.ts.map +1 -0
- package/packages/app-core/src/api/client-computeruse.js +16 -0
- package/packages/app-core/src/api/client-imessage.d.ts +68 -0
- package/packages/app-core/src/api/client-imessage.d.ts.map +1 -0
- package/packages/app-core/src/api/client-imessage.js +74 -0
- package/packages/app-core/src/api/client-local-inference.d.ts +62 -0
- package/packages/app-core/src/api/client-local-inference.d.ts.map +1 -0
- package/packages/app-core/src/api/client-local-inference.js +87 -0
- package/packages/app-core/src/api/client-n8n.d.ts +27 -0
- package/packages/app-core/src/api/client-n8n.d.ts.map +1 -0
- package/packages/app-core/src/api/client-n8n.js +61 -0
- package/packages/app-core/src/api/client-skills.d.ts +475 -0
- package/packages/app-core/src/api/client-skills.d.ts.map +1 -0
- package/packages/app-core/src/api/client-skills.js +608 -0
- package/packages/app-core/src/api/client-types-babylon.d.ts +254 -0
- package/packages/app-core/src/api/client-types-babylon.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-babylon.js +2 -0
- package/packages/app-core/src/api/client-types-character.d.ts +39 -0
- package/packages/app-core/src/api/client-types-character.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-character.js +1 -0
- package/packages/app-core/src/api/client-types-chat.d.ts +428 -0
- package/packages/app-core/src/api/client-types-chat.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-chat.js +9 -0
- package/packages/app-core/src/api/client-types-config.d.ts +587 -0
- package/packages/app-core/src/api/client-types-config.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-config.js +5 -0
- package/packages/app-core/src/api/client-types-experience.d.ts +97 -0
- package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-experience.js +1 -0
- package/packages/app-core/src/api/client-types-relationships.d.ts +181 -0
- package/packages/app-core/src/api/client-types-relationships.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-relationships.js +1 -0
- package/packages/app-core/src/api/client-types-steward.d.ts +85 -0
- package/packages/app-core/src/api/client-types-steward.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types-steward.js +9 -0
- package/packages/app-core/src/api/client-types.d.ts +9 -0
- package/packages/app-core/src/api/client-types.d.ts.map +1 -0
- package/packages/app-core/src/api/client-types.js +12 -0
- package/packages/app-core/src/api/client-wallet.d.ts +130 -0
- package/packages/app-core/src/api/client-wallet.d.ts.map +1 -0
- package/packages/app-core/src/api/client-wallet.js +228 -0
- package/packages/app-core/src/api/client.d.ts +36 -0
- package/packages/app-core/src/api/client.d.ts.map +1 -0
- package/packages/app-core/src/api/client.js +36 -0
- package/packages/app-core/src/api/index.d.ts +2 -0
- package/packages/app-core/src/api/index.d.ts.map +1 -0
- package/packages/app-core/src/api/index.js +1 -0
- package/packages/app-core/src/bridge/electrobun-rpc.d.ts +57 -0
- package/packages/app-core/src/bridge/electrobun-rpc.d.ts.map +1 -0
- package/packages/app-core/src/bridge/electrobun-rpc.js +87 -0
- package/packages/app-core/src/bridge/electrobun-runtime.d.ts +3 -0
- package/packages/app-core/src/bridge/electrobun-runtime.d.ts.map +1 -0
- package/packages/app-core/src/bridge/electrobun-runtime.js +34 -0
- package/packages/app-core/src/bridge/native-plugins.d.ts +504 -0
- package/packages/app-core/src/bridge/native-plugins.d.ts.map +1 -0
- package/packages/app-core/src/bridge/native-plugins.js +67 -0
- package/packages/app-core/src/chat/coding-agent-session-state.d.ts +16 -0
- package/packages/app-core/src/chat/coding-agent-session-state.d.ts.map +1 -0
- package/packages/app-core/src/chat/coding-agent-session-state.js +27 -0
- package/packages/app-core/src/components/pages/browser-workspace-wallet.d.ts +80 -0
- package/packages/app-core/src/components/pages/browser-workspace-wallet.d.ts.map +1 -0
- package/packages/app-core/src/components/pages/browser-workspace-wallet.js +135 -0
- package/packages/app-core/src/services/account-pool.d.ts +98 -0
- package/packages/app-core/src/services/account-pool.d.ts.map +1 -0
- package/packages/app-core/src/services/account-pool.js +506 -0
- package/packages/app-core/src/services/account-usage.d.ts +75 -0
- package/packages/app-core/src/services/account-usage.d.ts.map +1 -0
- package/packages/app-core/src/services/account-usage.js +179 -0
- package/packages/app-core/src/services/local-inference/active-model.d.ts +59 -0
- package/packages/app-core/src/services/local-inference/active-model.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/active-model.js +120 -0
- package/packages/app-core/src/services/local-inference/device-bridge.d.ts +131 -0
- package/packages/app-core/src/services/local-inference/device-bridge.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/device-bridge.js +748 -0
- package/packages/app-core/src/services/local-inference/engine.d.ts +52 -0
- package/packages/app-core/src/services/local-inference/engine.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/engine.js +138 -0
- package/packages/app-core/src/services/local-inference/external-scanner.d.ts +17 -0
- package/packages/app-core/src/services/local-inference/external-scanner.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/external-scanner.js +261 -0
- package/packages/app-core/src/services/local-inference/handler-registry.d.ts +72 -0
- package/packages/app-core/src/services/local-inference/handler-registry.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/handler-registry.js +160 -0
- package/packages/app-core/src/services/local-inference/paths.d.ts +24 -0
- package/packages/app-core/src/services/local-inference/paths.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/paths.js +41 -0
- package/packages/app-core/src/services/local-inference/providers.d.ts +61 -0
- package/packages/app-core/src/services/local-inference/providers.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/providers.js +277 -0
- package/packages/app-core/src/services/local-inference/registry.d.ts +35 -0
- package/packages/app-core/src/services/local-inference/registry.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/registry.js +108 -0
- package/packages/app-core/src/services/local-inference/routing-preferences.d.ts +31 -0
- package/packages/app-core/src/services/local-inference/routing-preferences.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/routing-preferences.js +72 -0
- package/packages/app-core/src/services/local-inference/types.d.ts +121 -0
- package/packages/app-core/src/services/local-inference/types.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/types.js +14 -0
- package/packages/app-core/src/services/local-inference/verify.d.ts +39 -0
- package/packages/app-core/src/services/local-inference/verify.d.ts.map +1 -0
- package/packages/app-core/src/services/local-inference/verify.js +104 -0
- package/packages/app-core/src/types/index.d.ts +658 -0
- package/packages/app-core/src/types/index.d.ts.map +1 -0
- package/packages/app-core/src/types/index.js +4 -0
- package/packages/app-core/src/utils/assistant-text.d.ts +2 -0
- package/packages/app-core/src/utils/assistant-text.d.ts.map +1 -0
- package/packages/app-core/src/utils/assistant-text.js +167 -0
- package/packages/app-core/src/utils/eliza-globals.d.ts +15 -0
- package/packages/app-core/src/utils/eliza-globals.d.ts.map +1 -0
- package/packages/app-core/src/utils/eliza-globals.js +50 -0
- package/packages/app-core/src/utils/streaming-text.d.ts +9 -0
- package/packages/app-core/src/utils/streaming-text.d.ts.map +1 -0
- package/packages/app-core/src/utils/streaming-text.js +112 -0
- package/packages/shared/src/format-error.d.ts +14 -0
- package/packages/shared/src/format-error.d.ts.map +1 -0
- package/packages/shared/src/format-error.js +17 -0
- package/packages/shared/src/index.d.ts +1 -0
- package/packages/shared/src/index.d.ts.map +1 -1
- package/packages/shared/src/index.js +1 -0
- package/packages/typescript/src/runtime.d.ts +14 -0
- package/packages/typescript/src/runtime.d.ts.map +1 -1
- package/packages/typescript/src/runtime.js +42 -0
- package/packages/typescript/src/services/message.d.ts +8 -0
- package/packages/typescript/src/services/message.d.ts.map +1 -1
- package/packages/typescript/src/services/message.js +51 -0
- package/packages/typescript/src/services/task.d.ts +1 -0
- package/packages/typescript/src/services/task.d.ts.map +1 -1
- package/packages/typescript/src/services/task.js +26 -3
- package/apps/app-task-coordinator/src/api/coordinator-wiring.d.ts.map +0 -1
- /package/{apps/app-task-coordinator → packages/agent}/src/api/coordinator-wiring.d.ts +0 -0
- /package/{apps/app-task-coordinator → packages/agent}/src/api/coordinator-wiring.js +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { WalletAddresses, WalletConfigStatus } from "@elizaos/shared";
|
|
2
|
+
import type { StewardSignResponse, StewardStatusResponse } from "../../api/client-types-steward";
|
|
3
|
+
export declare const BROWSER_WALLET_REQUEST_TYPE = "ELIZA_BROWSER_WALLET_REQUEST";
|
|
4
|
+
export declare const BROWSER_WALLET_RESPONSE_TYPE = "ELIZA_BROWSER_WALLET_RESPONSE";
|
|
5
|
+
export declare const BROWSER_WALLET_READY_TYPE = "ELIZA_BROWSER_WALLET_READY";
|
|
6
|
+
export type BrowserWorkspaceWalletMode = "steward" | "local" | "blocked" | "none";
|
|
7
|
+
export interface BrowserWorkspaceWalletState {
|
|
8
|
+
address: string | null;
|
|
9
|
+
connected: boolean;
|
|
10
|
+
evmAddress: string | null;
|
|
11
|
+
evmConnected: boolean;
|
|
12
|
+
mode: BrowserWorkspaceWalletMode;
|
|
13
|
+
pendingApprovals: number;
|
|
14
|
+
reason: string | null;
|
|
15
|
+
messageSigningAvailable: boolean;
|
|
16
|
+
transactionSigningAvailable: boolean;
|
|
17
|
+
chainSwitchingAvailable: boolean;
|
|
18
|
+
signingAvailable: boolean;
|
|
19
|
+
solanaAddress: string | null;
|
|
20
|
+
solanaConnected: boolean;
|
|
21
|
+
solanaMessageSigningAvailable: boolean;
|
|
22
|
+
solanaTransactionSigningAvailable: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface BrowserWorkspaceWalletTransactionResult extends Pick<StewardSignResponse, "approved" | "denied" | "pending" | "txHash" | "txId" | "violations"> {
|
|
25
|
+
mode: "local-key" | "steward";
|
|
26
|
+
}
|
|
27
|
+
export interface BrowserWorkspaceWalletMessageSignatureResult {
|
|
28
|
+
mode: "local-key";
|
|
29
|
+
signature: string;
|
|
30
|
+
}
|
|
31
|
+
export interface BrowserWorkspaceSolanaMessageSignatureResult {
|
|
32
|
+
address: string;
|
|
33
|
+
mode: "local-key";
|
|
34
|
+
signatureBase64: string;
|
|
35
|
+
}
|
|
36
|
+
export interface BrowserWorkspaceSolanaTransactionResult {
|
|
37
|
+
address: string;
|
|
38
|
+
mode: "local-key" | "steward";
|
|
39
|
+
/** Base64-encoded fully-signed transaction (always present on success). */
|
|
40
|
+
signedTransactionBase64: string;
|
|
41
|
+
/**
|
|
42
|
+
* Optional broadcast signature (base58) when the steward broadcast the
|
|
43
|
+
* transaction. Omitted when the caller asked for signing only.
|
|
44
|
+
*/
|
|
45
|
+
signature?: string;
|
|
46
|
+
/** Cluster the steward signed/broadcast against. */
|
|
47
|
+
cluster: "mainnet" | "devnet" | "testnet";
|
|
48
|
+
}
|
|
49
|
+
export type BrowserWorkspaceWalletRpcMethod = "eth_accounts" | "eth_requestAccounts" | "eth_chainId" | "eth_sendTransaction" | "personal_sign" | "eth_sign" | "wallet_switchEthereumChain";
|
|
50
|
+
export type BrowserWorkspaceSolanaMethod = "solana_connect" | "solana_signMessage" | "solana_signTransaction" | "solana_signAndSendTransaction";
|
|
51
|
+
export type BrowserWorkspaceWalletMethod = "getState" | "requestAccounts" | "sendTransaction" | BrowserWorkspaceWalletRpcMethod | BrowserWorkspaceSolanaMethod;
|
|
52
|
+
export interface BrowserWorkspaceWalletRequest {
|
|
53
|
+
type: typeof BROWSER_WALLET_REQUEST_TYPE;
|
|
54
|
+
requestId: string;
|
|
55
|
+
method: BrowserWorkspaceWalletMethod;
|
|
56
|
+
params?: unknown;
|
|
57
|
+
}
|
|
58
|
+
export interface BrowserWorkspaceWalletResponse {
|
|
59
|
+
type: typeof BROWSER_WALLET_RESPONSE_TYPE;
|
|
60
|
+
requestId: string;
|
|
61
|
+
ok: boolean;
|
|
62
|
+
result?: unknown;
|
|
63
|
+
error?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface BrowserWorkspaceWalletReadyPayload {
|
|
66
|
+
type: typeof BROWSER_WALLET_READY_TYPE;
|
|
67
|
+
state: BrowserWorkspaceWalletState;
|
|
68
|
+
}
|
|
69
|
+
export declare const EMPTY_BROWSER_WORKSPACE_WALLET_STATE: BrowserWorkspaceWalletState;
|
|
70
|
+
export declare function getBrowserWorkspaceWalletAddress(walletAddresses: WalletAddresses | null, walletConfig: WalletConfigStatus | null, stewardStatus: StewardStatusResponse | null): string | null;
|
|
71
|
+
export declare function getBrowserWorkspaceSolanaAddress(walletAddresses: WalletAddresses | null, walletConfig: WalletConfigStatus | null, stewardStatus: StewardStatusResponse | null): string | null;
|
|
72
|
+
export declare function resolveBrowserWorkspaceWalletMode(stewardStatus: StewardStatusResponse | null, evmAddress: string | null, solanaAddress: string | null, walletConfig: WalletConfigStatus | null): BrowserWorkspaceWalletMode;
|
|
73
|
+
export declare function buildBrowserWorkspaceWalletState(params: {
|
|
74
|
+
pendingApprovals: number;
|
|
75
|
+
stewardStatus: StewardStatusResponse | null;
|
|
76
|
+
walletAddresses: WalletAddresses | null;
|
|
77
|
+
walletConfig: WalletConfigStatus | null;
|
|
78
|
+
}): BrowserWorkspaceWalletState;
|
|
79
|
+
export declare function isBrowserWorkspaceWalletRequest(value: unknown): value is BrowserWorkspaceWalletRequest;
|
|
80
|
+
//# sourceMappingURL=browser-workspace-wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-workspace-wallet.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/browser-workspace-wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
export const BROWSER_WALLET_REQUEST_TYPE = "ELIZA_BROWSER_WALLET_REQUEST";
|
|
2
|
+
export const BROWSER_WALLET_RESPONSE_TYPE = "ELIZA_BROWSER_WALLET_RESPONSE";
|
|
3
|
+
export const BROWSER_WALLET_READY_TYPE = "ELIZA_BROWSER_WALLET_READY";
|
|
4
|
+
export const EMPTY_BROWSER_WORKSPACE_WALLET_STATE = {
|
|
5
|
+
address: null,
|
|
6
|
+
connected: false,
|
|
7
|
+
evmAddress: null,
|
|
8
|
+
evmConnected: false,
|
|
9
|
+
mode: "none",
|
|
10
|
+
pendingApprovals: 0,
|
|
11
|
+
reason: null,
|
|
12
|
+
messageSigningAvailable: false,
|
|
13
|
+
transactionSigningAvailable: false,
|
|
14
|
+
chainSwitchingAvailable: false,
|
|
15
|
+
signingAvailable: false,
|
|
16
|
+
solanaAddress: null,
|
|
17
|
+
solanaConnected: false,
|
|
18
|
+
solanaMessageSigningAvailable: false,
|
|
19
|
+
solanaTransactionSigningAvailable: false,
|
|
20
|
+
};
|
|
21
|
+
export function getBrowserWorkspaceWalletAddress(walletAddresses, walletConfig, stewardStatus) {
|
|
22
|
+
return (stewardStatus?.walletAddresses?.evm ??
|
|
23
|
+
stewardStatus?.evmAddress ??
|
|
24
|
+
walletAddresses?.evmAddress ??
|
|
25
|
+
walletConfig?.evmAddress ??
|
|
26
|
+
null);
|
|
27
|
+
}
|
|
28
|
+
export function getBrowserWorkspaceSolanaAddress(walletAddresses, walletConfig, stewardStatus) {
|
|
29
|
+
return (stewardStatus?.walletAddresses?.solana ??
|
|
30
|
+
walletAddresses?.solanaAddress ??
|
|
31
|
+
walletConfig?.solanaAddress ??
|
|
32
|
+
null);
|
|
33
|
+
}
|
|
34
|
+
export function resolveBrowserWorkspaceWalletMode(stewardStatus, evmAddress, solanaAddress, walletConfig) {
|
|
35
|
+
if (stewardStatus?.connected) {
|
|
36
|
+
return "steward";
|
|
37
|
+
}
|
|
38
|
+
if ((evmAddress && walletConfig?.executionReady) ||
|
|
39
|
+
(solanaAddress && walletConfig?.solanaSigningAvailable)) {
|
|
40
|
+
return "local";
|
|
41
|
+
}
|
|
42
|
+
if (evmAddress || solanaAddress) {
|
|
43
|
+
return "blocked";
|
|
44
|
+
}
|
|
45
|
+
return "none";
|
|
46
|
+
}
|
|
47
|
+
export function buildBrowserWorkspaceWalletState(params) {
|
|
48
|
+
const { pendingApprovals, stewardStatus, walletAddresses, walletConfig } = params;
|
|
49
|
+
const evmAddress = getBrowserWorkspaceWalletAddress(walletAddresses, walletConfig, stewardStatus);
|
|
50
|
+
const solanaAddress = getBrowserWorkspaceSolanaAddress(walletAddresses, walletConfig, stewardStatus);
|
|
51
|
+
const address = evmAddress ?? solanaAddress;
|
|
52
|
+
const mode = resolveBrowserWorkspaceWalletMode(stewardStatus, evmAddress, solanaAddress, walletConfig);
|
|
53
|
+
const evmConnected = Boolean(evmAddress);
|
|
54
|
+
const solanaConnected = Boolean(solanaAddress);
|
|
55
|
+
const solanaMessageSigningAvailable = Boolean(solanaAddress && walletConfig?.solanaSigningAvailable);
|
|
56
|
+
if (mode === "steward") {
|
|
57
|
+
return {
|
|
58
|
+
address,
|
|
59
|
+
connected: evmConnected || solanaConnected,
|
|
60
|
+
evmAddress,
|
|
61
|
+
evmConnected,
|
|
62
|
+
mode,
|
|
63
|
+
pendingApprovals,
|
|
64
|
+
reason: null,
|
|
65
|
+
messageSigningAvailable: false,
|
|
66
|
+
transactionSigningAvailable: true,
|
|
67
|
+
chainSwitchingAvailable: true,
|
|
68
|
+
signingAvailable: true,
|
|
69
|
+
solanaAddress,
|
|
70
|
+
solanaConnected,
|
|
71
|
+
solanaMessageSigningAvailable: false,
|
|
72
|
+
solanaTransactionSigningAvailable: solanaConnected,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (mode === "local") {
|
|
76
|
+
const solanaTransactionSigningAvailable = Boolean(solanaAddress && walletConfig?.solanaSigningAvailable);
|
|
77
|
+
return {
|
|
78
|
+
address,
|
|
79
|
+
connected: evmConnected || solanaConnected,
|
|
80
|
+
evmAddress,
|
|
81
|
+
evmConnected,
|
|
82
|
+
mode,
|
|
83
|
+
pendingApprovals: 0,
|
|
84
|
+
reason: null,
|
|
85
|
+
messageSigningAvailable: Boolean(evmAddress && walletConfig?.executionReady),
|
|
86
|
+
transactionSigningAvailable: Boolean(evmAddress && walletConfig?.executionReady),
|
|
87
|
+
chainSwitchingAvailable: Boolean(evmAddress && walletConfig?.executionReady),
|
|
88
|
+
signingAvailable: Boolean(evmAddress && walletConfig?.executionReady) ||
|
|
89
|
+
solanaMessageSigningAvailable ||
|
|
90
|
+
solanaTransactionSigningAvailable,
|
|
91
|
+
solanaAddress,
|
|
92
|
+
solanaConnected,
|
|
93
|
+
solanaMessageSigningAvailable,
|
|
94
|
+
solanaTransactionSigningAvailable,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (mode === "blocked") {
|
|
98
|
+
return {
|
|
99
|
+
address,
|
|
100
|
+
connected: evmConnected || solanaConnected,
|
|
101
|
+
evmAddress,
|
|
102
|
+
evmConnected,
|
|
103
|
+
mode,
|
|
104
|
+
pendingApprovals: 0,
|
|
105
|
+
reason: walletConfig?.executionBlockedReason?.trim() ||
|
|
106
|
+
(solanaConnected && !solanaMessageSigningAvailable
|
|
107
|
+
? "Local Solana signing is unavailable."
|
|
108
|
+
: "Local wallet execution is blocked."),
|
|
109
|
+
messageSigningAvailable: false,
|
|
110
|
+
transactionSigningAvailable: false,
|
|
111
|
+
chainSwitchingAvailable: false,
|
|
112
|
+
signingAvailable: false,
|
|
113
|
+
solanaAddress,
|
|
114
|
+
solanaConnected,
|
|
115
|
+
solanaMessageSigningAvailable: false,
|
|
116
|
+
solanaTransactionSigningAvailable: false,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
...EMPTY_BROWSER_WORKSPACE_WALLET_STATE,
|
|
121
|
+
mode,
|
|
122
|
+
reason: stewardStatus?.configured && !stewardStatus.connected
|
|
123
|
+
? stewardStatus.error?.trim() || "Steward is unavailable."
|
|
124
|
+
: "No wallet configured.",
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
export function isBrowserWorkspaceWalletRequest(value) {
|
|
128
|
+
if (!value || typeof value !== "object") {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
const entry = value;
|
|
132
|
+
return (entry.type === BROWSER_WALLET_REQUEST_TYPE &&
|
|
133
|
+
typeof entry.requestId === "string" &&
|
|
134
|
+
typeof entry.method === "string");
|
|
135
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-account selection brain.
|
|
3
|
+
*
|
|
4
|
+
* Owns the runtime decision "which `LinkedAccountConfig` should serve this
|
|
5
|
+
* request?" given a strategy (priority / round-robin / least-used /
|
|
6
|
+
* quota-aware), session affinity, and per-account health state.
|
|
7
|
+
*
|
|
8
|
+
* The pool never reads OAuth credentials directly — callers resolve them
|
|
9
|
+
* via `getAccessToken(providerId, accountId)` from `@elizaos/agent` once
|
|
10
|
+
* the pool returns an account. Health, priority, and usage live in this
|
|
11
|
+
* layer; the OAuth blob lives under `~/.eliza/auth/` (see WS1's
|
|
12
|
+
* `account-storage.ts`).
|
|
13
|
+
*
|
|
14
|
+
* Persistence: the pool layers rich metadata (priority, enabled, health,
|
|
15
|
+
* usage) on top of WS1's credential records. The metadata is written to
|
|
16
|
+
* `<ELIZA_HOME>/auth/_pool-metadata.json` atomically so it survives
|
|
17
|
+
* process restarts and is independent of WS3's eventual `milady.json`
|
|
18
|
+
* field — when WS3 lands its CRUD API on top of `LinkedAccountsConfig`
|
|
19
|
+
* we can swap `createDefaultAccountPool()`'s deps without touching the
|
|
20
|
+
* pool itself.
|
|
21
|
+
*/
|
|
22
|
+
import type { LinkedAccountConfig, LinkedAccountProviderId, LinkedAccountsConfig } from "@elizaos/shared";
|
|
23
|
+
export type Strategy = "priority" | "round-robin" | "least-used" | "quota-aware";
|
|
24
|
+
export type PoolProviderId = LinkedAccountProviderId | "anthropic-api" | "openai-api";
|
|
25
|
+
export interface AccountPoolDeps {
|
|
26
|
+
/** Read the current `LinkedAccountsConfig` (live). */
|
|
27
|
+
readAccounts: () => Record<string, LinkedAccountConfig>;
|
|
28
|
+
/** Persist a single account's mutated fields. */
|
|
29
|
+
writeAccount: (account: LinkedAccountConfig) => Promise<void>;
|
|
30
|
+
/** Remove the metadata overlay for an account. */
|
|
31
|
+
deleteAccount?: (providerId: PoolProviderId, accountId: string) => Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export interface SelectInput {
|
|
34
|
+
providerId: PoolProviderId;
|
|
35
|
+
/** Stable session key for affinity (e.g. agent id + run id). */
|
|
36
|
+
sessionKey?: string;
|
|
37
|
+
/** Defaults to `"priority"`. */
|
|
38
|
+
strategy?: Strategy;
|
|
39
|
+
/** Explicit pool; defaults to all enabled accounts for `providerId`. */
|
|
40
|
+
accountIds?: string[];
|
|
41
|
+
/** Account IDs to skip (e.g. just-failed accounts). */
|
|
42
|
+
exclude?: string[];
|
|
43
|
+
}
|
|
44
|
+
export declare class AccountPool {
|
|
45
|
+
private readonly deps;
|
|
46
|
+
private readonly affinity;
|
|
47
|
+
private readonly roundRobinCursor;
|
|
48
|
+
constructor(deps: AccountPoolDeps);
|
|
49
|
+
select(input: SelectInput): Promise<LinkedAccountConfig | null>;
|
|
50
|
+
private filterEligible;
|
|
51
|
+
private applyStrategy;
|
|
52
|
+
list(providerId?: PoolProviderId): LinkedAccountConfig[];
|
|
53
|
+
get(accountId: string): LinkedAccountConfig | null;
|
|
54
|
+
upsert(account: LinkedAccountConfig): Promise<void>;
|
|
55
|
+
deleteMetadata(providerId: PoolProviderId, accountId: string): Promise<void>;
|
|
56
|
+
recordCall(accountId: string, result: {
|
|
57
|
+
tokens?: number;
|
|
58
|
+
latencyMs?: number;
|
|
59
|
+
ok: boolean;
|
|
60
|
+
errorCode?: string;
|
|
61
|
+
model?: string;
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
refreshUsage(accountId: string, accessToken: string, opts?: {
|
|
64
|
+
codexAccountId?: string;
|
|
65
|
+
fetch?: typeof fetch;
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
markRateLimited(accountId: string, untilMs: number, detail?: string): Promise<void>;
|
|
68
|
+
markNeedsReauth(accountId: string, detail?: string): Promise<void>;
|
|
69
|
+
markInvalid(accountId: string, detail?: string): Promise<void>;
|
|
70
|
+
markHealthy(accountId: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Re-probe accounts whose `health` is non-OK and whose `healthDetail.until`
|
|
73
|
+
* has passed (or is absent). Used by background sweepers to recover
|
|
74
|
+
* temporarily flagged accounts. We don't load access tokens here — the
|
|
75
|
+
* caller probes via `refreshUsage` separately.
|
|
76
|
+
*/
|
|
77
|
+
reprobeFlagged(): Promise<string[]>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Module-level singleton for the default pool wired against WS1's
|
|
81
|
+
* `account-storage` and the pool-owned metadata file. Plugins / runtime
|
|
82
|
+
* resolvers should import `getDefaultAccountPool()` rather than building
|
|
83
|
+
* a new pool. WS3 may later swap the default deps to read/write the
|
|
84
|
+
* `LinkedAccountsConfig` field directly out of `milady.json`; consumers
|
|
85
|
+
* keep the same accessor.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getDefaultAccountPool(): AccountPool;
|
|
88
|
+
/**
|
|
89
|
+
* @deprecated kept for compatibility with the WS2 spec naming. Use
|
|
90
|
+
* {@link getDefaultAccountPool}.
|
|
91
|
+
*/
|
|
92
|
+
export declare function createDefaultAccountPool(): AccountPool;
|
|
93
|
+
/**
|
|
94
|
+
* Resets the cached singleton. Test-only.
|
|
95
|
+
*/
|
|
96
|
+
export declare function __resetDefaultAccountPoolForTests(): void;
|
|
97
|
+
export type { LinkedAccountsConfig };
|
|
98
|
+
//# sourceMappingURL=account-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../../../app-core/src/services/account-pool.ts"],"names":[],"mappings":"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"}
|