@elizaos/autonomous 2.0.0-alpha.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.
Files changed (241) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +270 -0
  3. package/src/actions/emote.ts +101 -0
  4. package/src/actions/restart.ts +101 -0
  5. package/src/actions/send-message.ts +168 -0
  6. package/src/actions/stream-control.ts +439 -0
  7. package/src/actions/switch-stream-source.ts +126 -0
  8. package/src/actions/terminal.ts +186 -0
  9. package/src/api/agent-admin-routes.ts +178 -0
  10. package/src/api/agent-lifecycle-routes.ts +129 -0
  11. package/src/api/agent-model.ts +143 -0
  12. package/src/api/agent-transfer-routes.ts +211 -0
  13. package/src/api/apps-routes.ts +210 -0
  14. package/src/api/auth-routes.ts +90 -0
  15. package/src/api/bsc-trade.ts +736 -0
  16. package/src/api/bug-report-routes.ts +161 -0
  17. package/src/api/character-routes.ts +421 -0
  18. package/src/api/cloud-billing-routes.ts +598 -0
  19. package/src/api/cloud-compat-routes.ts +192 -0
  20. package/src/api/cloud-routes.ts +529 -0
  21. package/src/api/cloud-status-routes.ts +234 -0
  22. package/src/api/compat-utils.ts +154 -0
  23. package/src/api/connector-health.ts +135 -0
  24. package/src/api/coordinator-wiring.ts +179 -0
  25. package/src/api/credit-detection.ts +47 -0
  26. package/src/api/database.ts +1357 -0
  27. package/src/api/diagnostics-routes.ts +389 -0
  28. package/src/api/drop-service.ts +205 -0
  29. package/src/api/early-logs.ts +111 -0
  30. package/src/api/http-helpers.ts +252 -0
  31. package/src/api/index.ts +85 -0
  32. package/src/api/knowledge-routes.ts +1189 -0
  33. package/src/api/knowledge-service-loader.ts +92 -0
  34. package/src/api/memory-bounds.ts +121 -0
  35. package/src/api/memory-routes.ts +349 -0
  36. package/src/api/merkle-tree.ts +239 -0
  37. package/src/api/models-routes.ts +72 -0
  38. package/src/api/nfa-routes.ts +169 -0
  39. package/src/api/nft-verify.ts +188 -0
  40. package/src/api/og-tracker.ts +72 -0
  41. package/src/api/parse-action-block.ts +145 -0
  42. package/src/api/permissions-routes.ts +222 -0
  43. package/src/api/plugin-validation.ts +355 -0
  44. package/src/api/provider-switch-config.ts +455 -0
  45. package/src/api/registry-routes.ts +165 -0
  46. package/src/api/registry-service.ts +292 -0
  47. package/src/api/route-helpers.ts +21 -0
  48. package/src/api/sandbox-routes.ts +1480 -0
  49. package/src/api/server.ts +17674 -0
  50. package/src/api/signal-routes.ts +265 -0
  51. package/src/api/stream-persistence.ts +297 -0
  52. package/src/api/stream-route-state.ts +48 -0
  53. package/src/api/stream-routes.ts +1046 -0
  54. package/src/api/stream-voice-routes.ts +208 -0
  55. package/src/api/streaming-text.ts +129 -0
  56. package/src/api/streaming-types.ts +23 -0
  57. package/src/api/subscription-routes.ts +283 -0
  58. package/src/api/terminal-run-limits.ts +31 -0
  59. package/src/api/training-backend-check.ts +40 -0
  60. package/src/api/training-routes.ts +314 -0
  61. package/src/api/training-service-like.ts +46 -0
  62. package/src/api/trajectory-routes.ts +714 -0
  63. package/src/api/trigger-routes.ts +438 -0
  64. package/src/api/twitter-verify.ts +226 -0
  65. package/src/api/tx-service.ts +193 -0
  66. package/src/api/wallet-dex-prices.ts +206 -0
  67. package/src/api/wallet-evm-balance.ts +989 -0
  68. package/src/api/wallet-routes.ts +505 -0
  69. package/src/api/wallet-rpc.ts +523 -0
  70. package/src/api/wallet-trading-profile.ts +694 -0
  71. package/src/api/wallet.ts +745 -0
  72. package/src/api/whatsapp-routes.ts +282 -0
  73. package/src/api/zip-utils.ts +130 -0
  74. package/src/auth/anthropic.ts +63 -0
  75. package/src/auth/apply-stealth.ts +38 -0
  76. package/src/auth/claude-code-stealth.ts +141 -0
  77. package/src/auth/credentials.ts +226 -0
  78. package/src/auth/index.ts +18 -0
  79. package/src/auth/openai-codex.ts +94 -0
  80. package/src/auth/types.ts +24 -0
  81. package/src/awareness/registry.ts +220 -0
  82. package/src/bin.ts +10 -0
  83. package/src/cli/index.ts +36 -0
  84. package/src/cli/parse-duration.ts +43 -0
  85. package/src/cloud/auth.test.ts +370 -0
  86. package/src/cloud/auth.ts +176 -0
  87. package/src/cloud/backup.test.ts +150 -0
  88. package/src/cloud/backup.ts +50 -0
  89. package/src/cloud/base-url.ts +45 -0
  90. package/src/cloud/bridge-client.test.ts +481 -0
  91. package/src/cloud/bridge-client.ts +307 -0
  92. package/src/cloud/cloud-manager.test.ts +223 -0
  93. package/src/cloud/cloud-manager.ts +151 -0
  94. package/src/cloud/cloud-proxy.test.ts +122 -0
  95. package/src/cloud/cloud-proxy.ts +52 -0
  96. package/src/cloud/index.ts +23 -0
  97. package/src/cloud/reconnect.test.ts +178 -0
  98. package/src/cloud/reconnect.ts +108 -0
  99. package/src/cloud/validate-url.test.ts +147 -0
  100. package/src/cloud/validate-url.ts +176 -0
  101. package/src/config/character-schema.ts +44 -0
  102. package/src/config/config.ts +149 -0
  103. package/src/config/env-vars.ts +86 -0
  104. package/src/config/includes.ts +196 -0
  105. package/src/config/index.ts +15 -0
  106. package/src/config/object-utils.ts +10 -0
  107. package/src/config/paths.ts +92 -0
  108. package/src/config/plugin-auto-enable.ts +520 -0
  109. package/src/config/schema.ts +1342 -0
  110. package/src/config/telegram-custom-commands.ts +99 -0
  111. package/src/config/types.agent-defaults.ts +342 -0
  112. package/src/config/types.agents.ts +112 -0
  113. package/src/config/types.gateway.ts +243 -0
  114. package/src/config/types.hooks.ts +124 -0
  115. package/src/config/types.messages.ts +201 -0
  116. package/src/config/types.milady.ts +791 -0
  117. package/src/config/types.tools.ts +416 -0
  118. package/src/config/types.ts +7 -0
  119. package/src/config/zod-schema.agent-runtime.ts +777 -0
  120. package/src/config/zod-schema.core.ts +778 -0
  121. package/src/config/zod-schema.hooks.ts +139 -0
  122. package/src/config/zod-schema.providers-core.ts +1126 -0
  123. package/src/config/zod-schema.session.ts +98 -0
  124. package/src/config/zod-schema.ts +865 -0
  125. package/src/contracts/apps.ts +46 -0
  126. package/src/contracts/awareness.ts +56 -0
  127. package/src/contracts/config.ts +172 -0
  128. package/src/contracts/drop.ts +21 -0
  129. package/src/contracts/index.ts +8 -0
  130. package/src/contracts/onboarding.ts +592 -0
  131. package/src/contracts/permissions.ts +52 -0
  132. package/src/contracts/verification.ts +9 -0
  133. package/src/contracts/wallet.ts +503 -0
  134. package/src/diagnostics/integration-observability.ts +132 -0
  135. package/src/emotes/catalog.ts +655 -0
  136. package/src/external-modules.d.ts +7 -0
  137. package/src/hooks/discovery.test.ts +357 -0
  138. package/src/hooks/discovery.ts +231 -0
  139. package/src/hooks/eligibility.ts +146 -0
  140. package/src/hooks/hooks.test.ts +320 -0
  141. package/src/hooks/index.ts +8 -0
  142. package/src/hooks/loader.test.ts +418 -0
  143. package/src/hooks/loader.ts +256 -0
  144. package/src/hooks/registry.test.ts +168 -0
  145. package/src/hooks/registry.ts +74 -0
  146. package/src/hooks/types.ts +121 -0
  147. package/src/index.ts +19 -0
  148. package/src/onboarding-presets.ts +828 -0
  149. package/src/plugins/custom-rtmp/index.ts +40 -0
  150. package/src/providers/admin-trust.ts +76 -0
  151. package/src/providers/session-bridge.ts +143 -0
  152. package/src/providers/session-utils.ts +42 -0
  153. package/src/providers/simple-mode.ts +113 -0
  154. package/src/providers/ui-catalog.ts +135 -0
  155. package/src/providers/workspace-provider.ts +213 -0
  156. package/src/providers/workspace.ts +497 -0
  157. package/src/runtime/agent-event-service.ts +57 -0
  158. package/src/runtime/cloud-onboarding.test.ts +489 -0
  159. package/src/runtime/cloud-onboarding.ts +408 -0
  160. package/src/runtime/core-plugins.ts +53 -0
  161. package/src/runtime/custom-actions.ts +605 -0
  162. package/src/runtime/eliza.ts +4941 -0
  163. package/src/runtime/embedding-presets.ts +73 -0
  164. package/src/runtime/index.ts +8 -0
  165. package/src/runtime/milady-plugin.ts +180 -0
  166. package/src/runtime/onboarding-names.ts +76 -0
  167. package/src/runtime/release-plugin-policy.ts +119 -0
  168. package/src/runtime/restart.ts +59 -0
  169. package/src/runtime/trajectory-persistence.ts +2584 -0
  170. package/src/runtime/version.ts +6 -0
  171. package/src/security/audit-log.ts +222 -0
  172. package/src/security/network-policy.ts +91 -0
  173. package/src/server/index.ts +6 -0
  174. package/src/services/agent-export.ts +976 -0
  175. package/src/services/app-manager.ts +755 -0
  176. package/src/services/browser-capture.ts +215 -0
  177. package/src/services/coding-agent-context.ts +355 -0
  178. package/src/services/fallback-training-service.ts +196 -0
  179. package/src/services/index.ts +17 -0
  180. package/src/services/mcp-marketplace.ts +327 -0
  181. package/src/services/plugin-manager-types.ts +185 -0
  182. package/src/services/privy-wallets.ts +352 -0
  183. package/src/services/registry-client-app-meta.ts +201 -0
  184. package/src/services/registry-client-endpoints.ts +253 -0
  185. package/src/services/registry-client-local.ts +485 -0
  186. package/src/services/registry-client-network.ts +173 -0
  187. package/src/services/registry-client-queries.ts +176 -0
  188. package/src/services/registry-client-types.ts +104 -0
  189. package/src/services/registry-client.ts +366 -0
  190. package/src/services/remote-signing-service.ts +261 -0
  191. package/src/services/sandbox-engine.ts +753 -0
  192. package/src/services/sandbox-manager.ts +503 -0
  193. package/src/services/self-updater.ts +213 -0
  194. package/src/services/signal-pairing.ts +189 -0
  195. package/src/services/signing-policy.ts +230 -0
  196. package/src/services/skill-catalog-client.ts +195 -0
  197. package/src/services/skill-marketplace.ts +909 -0
  198. package/src/services/stream-manager.ts +707 -0
  199. package/src/services/tts-stream-bridge.ts +465 -0
  200. package/src/services/update-checker.ts +163 -0
  201. package/src/services/version-compat.ts +367 -0
  202. package/src/services/whatsapp-pairing.ts +279 -0
  203. package/src/shared/ui-catalog-prompt.ts +1158 -0
  204. package/src/test-support/process-helpers.ts +35 -0
  205. package/src/test-support/route-test-helpers.ts +113 -0
  206. package/src/test-support/test-helpers.ts +304 -0
  207. package/src/testing/index.ts +3 -0
  208. package/src/triggers/action.ts +342 -0
  209. package/src/triggers/runtime.ts +432 -0
  210. package/src/triggers/scheduling.ts +472 -0
  211. package/src/triggers/types.ts +133 -0
  212. package/src/types/app-hyperscape-routes-shim.d.ts +29 -0
  213. package/src/types/external-modules.d.ts +7 -0
  214. package/src/utils/exec-safety.ts +23 -0
  215. package/src/utils/number-parsing.ts +112 -0
  216. package/src/utils/spoken-text.ts +65 -0
  217. package/src/version-resolver.ts +60 -0
  218. package/test/api/agent-admin-routes.test.ts +160 -0
  219. package/test/api/agent-lifecycle-routes.test.ts +164 -0
  220. package/test/api/agent-transfer-routes.test.ts +136 -0
  221. package/test/api/apps-routes.test.ts +140 -0
  222. package/test/api/auth-routes.test.ts +160 -0
  223. package/test/api/bug-report-routes.test.ts +88 -0
  224. package/test/api/knowledge-routes.test.ts +73 -0
  225. package/test/api/lifecycle.test.ts +342 -0
  226. package/test/api/memory-routes.test.ts +74 -0
  227. package/test/api/models-routes.test.ts +112 -0
  228. package/test/api/nfa-routes.test.ts +78 -0
  229. package/test/api/permissions-routes.test.ts +185 -0
  230. package/test/api/registry-routes.test.ts +157 -0
  231. package/test/api/signal-routes.test.ts +113 -0
  232. package/test/api/subscription-routes.test.ts +90 -0
  233. package/test/api/trigger-routes.test.ts +87 -0
  234. package/test/api/wallet-routes.observability.test.ts +191 -0
  235. package/test/api/wallet-routes.test.ts +502 -0
  236. package/test/diagnostics/integration-observability.test.ts +135 -0
  237. package/test/security/audit-log.test.ts +229 -0
  238. package/test/security/network-policy.test.ts +143 -0
  239. package/test/services/version-compat.test.ts +127 -0
  240. package/tsconfig.build.json +21 -0
  241. package/tsconfig.json +19 -0
@@ -0,0 +1,592 @@
1
+ /**
2
+ * Shared onboarding contracts.
3
+ */
4
+
5
+ import type { WalletConfigUpdateRequest } from "./wallet";
6
+
7
+ export interface StylePreset {
8
+ catchphrase: string;
9
+ hint: string;
10
+ bio: string[];
11
+ system: string;
12
+ adjectives: string[];
13
+ style: {
14
+ all: string[];
15
+ chat: string[];
16
+ post: string[];
17
+ };
18
+ postExamples: string[];
19
+ postExamples_zhCN?: string[];
20
+ messageExamples: Array<
21
+ Array<{
22
+ user: string;
23
+ content: { text: string };
24
+ }>
25
+ >;
26
+ }
27
+
28
+ export type OnboardingProviderFamily =
29
+ | "anthropic"
30
+ | "deepseek"
31
+ | "elizacloud"
32
+ | "gemini"
33
+ | "grok"
34
+ | "groq"
35
+ | "mistral"
36
+ | "ollama"
37
+ | "openai"
38
+ | "openrouter"
39
+ | "pi-ai"
40
+ | "together"
41
+ | "zai";
42
+
43
+ export type OnboardingProviderId =
44
+ | "anthropic"
45
+ | "anthropic-subscription"
46
+ | "deepseek"
47
+ | "elizacloud"
48
+ | "gemini"
49
+ | "grok"
50
+ | "groq"
51
+ | "mistral"
52
+ | "ollama"
53
+ | "openai"
54
+ | "openai-subscription"
55
+ | "openrouter"
56
+ | "pi-ai"
57
+ | "together"
58
+ | "zai";
59
+
60
+ export type OnboardingProviderAuthMode =
61
+ | "api-key"
62
+ | "cloud"
63
+ | "credentials"
64
+ | "local"
65
+ | "subscription";
66
+
67
+ export type OnboardingProviderGroup = "cloud" | "local" | "subscription";
68
+
69
+ export interface ProviderOption {
70
+ id: OnboardingProviderId;
71
+ name: string;
72
+ envKey: string | null;
73
+ pluginName: string;
74
+ keyPrefix: string | null;
75
+ description: string;
76
+ family: OnboardingProviderFamily;
77
+ authMode: OnboardingProviderAuthMode;
78
+ group: OnboardingProviderGroup;
79
+ order: number;
80
+ recommended?: boolean;
81
+ labelKey?: string;
82
+ storedProvider?: string;
83
+ supportsPrimaryModelOverride?: boolean;
84
+ }
85
+
86
+ export interface CloudProviderOption {
87
+ id: "elizacloud";
88
+ name: string;
89
+ description: string;
90
+ }
91
+
92
+ export interface ModelOption {
93
+ id: string;
94
+ name: string;
95
+ provider: string;
96
+ description: string;
97
+ }
98
+
99
+ export interface OpenRouterModelOption {
100
+ id: string;
101
+ name: string;
102
+ description: string;
103
+ }
104
+
105
+ export interface PiAiModelOption {
106
+ id: string;
107
+ name: string;
108
+ provider: string;
109
+ isDefault: boolean;
110
+ }
111
+
112
+ export interface MessageExampleContent {
113
+ text: string;
114
+ actions?: string[];
115
+ }
116
+
117
+ export interface MessageExample {
118
+ user: string;
119
+ content: MessageExampleContent;
120
+ }
121
+
122
+ export interface ConnectorConfig {
123
+ enabled?: boolean;
124
+ botToken?: string;
125
+ token?: string;
126
+ apiKey?: string;
127
+ [key: string]:
128
+ | string
129
+ | boolean
130
+ | number
131
+ | string[]
132
+ | Record<string, unknown>
133
+ | undefined;
134
+ }
135
+
136
+ export interface RpcProviderOption {
137
+ id: string;
138
+ label: string;
139
+ envKey?: string | null;
140
+ requiresKey?: boolean;
141
+ }
142
+
143
+ export interface InventoryProviderOption {
144
+ id: string;
145
+ name: string;
146
+ description: string;
147
+ rpcProviders: RpcProviderOption[];
148
+ }
149
+
150
+ export type SubscriptionProviderSelectionId =
151
+ | "anthropic-subscription"
152
+ | "openai-subscription";
153
+
154
+ export type StoredSubscriptionProviderId =
155
+ | "anthropic-subscription"
156
+ | "openai-codex";
157
+
158
+ export const SUBSCRIPTION_PROVIDER_SELECTIONS = [
159
+ {
160
+ id: "anthropic-subscription",
161
+ storedProvider: "anthropic-subscription",
162
+ family: "anthropic",
163
+ labelKey: "providerswitcher.claudeSubscription",
164
+ },
165
+ {
166
+ id: "openai-subscription",
167
+ storedProvider: "openai-codex",
168
+ family: "openai",
169
+ labelKey: "providerswitcher.chatgptSubscription",
170
+ },
171
+ ] as const satisfies ReadonlyArray<{
172
+ id: SubscriptionProviderSelectionId;
173
+ storedProvider: StoredSubscriptionProviderId;
174
+ family: "anthropic" | "openai";
175
+ labelKey: string;
176
+ }>;
177
+
178
+ export const ONBOARDING_PROVIDER_CATALOG = [
179
+ {
180
+ id: "elizacloud",
181
+ name: "Eliza Cloud",
182
+ envKey: null,
183
+ pluginName: "@elizaos/plugin-elizacloud",
184
+ keyPrefix: null,
185
+ description:
186
+ "Managed hosting for Milady agents and bundled infrastructure.",
187
+ family: "elizacloud",
188
+ authMode: "cloud",
189
+ group: "cloud",
190
+ order: 10,
191
+ recommended: true,
192
+ },
193
+ {
194
+ id: "anthropic-subscription",
195
+ name: "Claude Subscription",
196
+ envKey: null,
197
+ pluginName: "@elizaos/plugin-anthropic",
198
+ keyPrefix: null,
199
+ description:
200
+ "Use your Claude Pro or Max subscription via OAuth or setup token.",
201
+ family: "anthropic",
202
+ authMode: "subscription",
203
+ group: "subscription",
204
+ order: 20,
205
+ recommended: true,
206
+ labelKey: "providerswitcher.claudeSubscription",
207
+ storedProvider: "anthropic-subscription",
208
+ },
209
+ {
210
+ id: "openai-subscription",
211
+ name: "ChatGPT Subscription",
212
+ envKey: null,
213
+ pluginName: "@elizaos/plugin-openai",
214
+ keyPrefix: null,
215
+ description: "Use your ChatGPT Plus or Pro subscription via OAuth.",
216
+ family: "openai",
217
+ authMode: "subscription",
218
+ group: "subscription",
219
+ order: 30,
220
+ recommended: true,
221
+ labelKey: "providerswitcher.chatgptSubscription",
222
+ storedProvider: "openai-codex",
223
+ },
224
+ {
225
+ id: "pi-ai",
226
+ name: "Pi Credentials",
227
+ envKey: null,
228
+ pluginName: "@elizaos/plugin-pi-ai",
229
+ keyPrefix: null,
230
+ description:
231
+ "Use credentials from ~/.pi/agent/auth.json (API keys or OAuth).",
232
+ family: "pi-ai",
233
+ authMode: "credentials",
234
+ group: "local",
235
+ order: 40,
236
+ supportsPrimaryModelOverride: true,
237
+ },
238
+ {
239
+ id: "anthropic",
240
+ name: "Anthropic",
241
+ envKey: "ANTHROPIC_API_KEY",
242
+ pluginName: "@elizaos/plugin-anthropic",
243
+ keyPrefix: "sk-ant-",
244
+ description: "Claude models via API key.",
245
+ family: "anthropic",
246
+ authMode: "api-key",
247
+ group: "local",
248
+ order: 50,
249
+ },
250
+ {
251
+ id: "openai",
252
+ name: "OpenAI",
253
+ envKey: "OPENAI_API_KEY",
254
+ pluginName: "@elizaos/plugin-openai",
255
+ keyPrefix: "sk-",
256
+ description: "GPT models via API key.",
257
+ family: "openai",
258
+ authMode: "api-key",
259
+ group: "local",
260
+ order: 60,
261
+ },
262
+ {
263
+ id: "openrouter",
264
+ name: "OpenRouter",
265
+ envKey: "OPENROUTER_API_KEY",
266
+ pluginName: "@elizaos/plugin-openrouter",
267
+ keyPrefix: "sk-or-",
268
+ description: "Access multiple models via one API key.",
269
+ family: "openrouter",
270
+ authMode: "api-key",
271
+ group: "local",
272
+ order: 70,
273
+ supportsPrimaryModelOverride: true,
274
+ },
275
+ {
276
+ id: "gemini",
277
+ name: "Gemini",
278
+ envKey: "GOOGLE_GENERATIVE_AI_API_KEY",
279
+ pluginName: "@elizaos/plugin-google-genai",
280
+ keyPrefix: null,
281
+ description: "Google's Gemini models.",
282
+ family: "gemini",
283
+ authMode: "api-key",
284
+ group: "local",
285
+ order: 80,
286
+ },
287
+ {
288
+ id: "grok",
289
+ name: "xAI (Grok)",
290
+ envKey: "XAI_API_KEY",
291
+ pluginName: "@elizaos/plugin-xai",
292
+ keyPrefix: "xai-",
293
+ description: "xAI's Grok models.",
294
+ family: "grok",
295
+ authMode: "api-key",
296
+ group: "local",
297
+ order: 90,
298
+ },
299
+ {
300
+ id: "groq",
301
+ name: "Groq",
302
+ envKey: "GROQ_API_KEY",
303
+ pluginName: "@elizaos/plugin-groq",
304
+ keyPrefix: "gsk_",
305
+ description: "Fast inference.",
306
+ family: "groq",
307
+ authMode: "api-key",
308
+ group: "local",
309
+ order: 100,
310
+ },
311
+ {
312
+ id: "deepseek",
313
+ name: "DeepSeek",
314
+ envKey: "DEEPSEEK_API_KEY",
315
+ pluginName: "@elizaos/plugin-deepseek",
316
+ keyPrefix: "sk-",
317
+ description: "DeepSeek models.",
318
+ family: "deepseek",
319
+ authMode: "api-key",
320
+ group: "local",
321
+ order: 110,
322
+ },
323
+ {
324
+ id: "mistral",
325
+ name: "Mistral",
326
+ envKey: "MISTRAL_API_KEY",
327
+ pluginName: "@elizaos/plugin-mistral",
328
+ keyPrefix: null,
329
+ description: "Mistral AI models.",
330
+ family: "mistral",
331
+ authMode: "api-key",
332
+ group: "local",
333
+ order: 120,
334
+ },
335
+ {
336
+ id: "together",
337
+ name: "Together AI",
338
+ envKey: "TOGETHER_API_KEY",
339
+ pluginName: "@elizaos/plugin-together",
340
+ keyPrefix: null,
341
+ description: "Open-source model hosting.",
342
+ family: "together",
343
+ authMode: "api-key",
344
+ group: "local",
345
+ order: 130,
346
+ },
347
+ {
348
+ id: "ollama",
349
+ name: "Ollama",
350
+ envKey: null,
351
+ pluginName: "@elizaos/plugin-ollama",
352
+ keyPrefix: null,
353
+ description: "Local models, no API key needed.",
354
+ family: "ollama",
355
+ authMode: "local",
356
+ group: "local",
357
+ order: 140,
358
+ },
359
+ {
360
+ id: "zai",
361
+ name: "z.ai",
362
+ envKey: "ZAI_API_KEY",
363
+ pluginName: "@homunculuslabs/plugin-zai",
364
+ keyPrefix: null,
365
+ description: "GLM models via z.ai Coding Plan.",
366
+ family: "zai",
367
+ authMode: "api-key",
368
+ group: "local",
369
+ order: 150,
370
+ },
371
+ ] as const satisfies ReadonlyArray<ProviderOption>;
372
+
373
+ export const ONBOARDING_CLOUD_PROVIDER_OPTIONS = [
374
+ {
375
+ id: "elizacloud",
376
+ name: "Eliza Cloud",
377
+ description:
378
+ "Managed cloud infrastructure. Wallets, LLMs, and RPCs included.",
379
+ },
380
+ ] as const satisfies ReadonlyArray<CloudProviderOption>;
381
+
382
+ export type OnboardingLocalProviderId = Exclude<
383
+ OnboardingProviderId,
384
+ "elizacloud"
385
+ >;
386
+
387
+ export interface OnboardingCloudManagedConnection {
388
+ kind: "cloud-managed";
389
+ cloudProvider: "elizacloud";
390
+ apiKey?: string;
391
+ smallModel?: string;
392
+ largeModel?: string;
393
+ }
394
+
395
+ export interface OnboardingLocalProviderConnection {
396
+ kind: "local-provider";
397
+ provider: OnboardingLocalProviderId;
398
+ apiKey?: string;
399
+ primaryModel?: string;
400
+ }
401
+
402
+ export interface OnboardingRemoteProviderConnection {
403
+ kind: "remote-provider";
404
+ remoteApiBase: string;
405
+ remoteAccessToken?: string;
406
+ provider?: OnboardingLocalProviderId;
407
+ apiKey?: string;
408
+ primaryModel?: string;
409
+ }
410
+
411
+ export type OnboardingConnection =
412
+ | OnboardingCloudManagedConnection
413
+ | OnboardingLocalProviderConnection
414
+ | OnboardingRemoteProviderConnection;
415
+
416
+ export interface OnboardingOptions {
417
+ names: string[];
418
+ styles: StylePreset[];
419
+ providers: ProviderOption[];
420
+ cloudProviders: CloudProviderOption[];
421
+ models: {
422
+ small: ModelOption[];
423
+ large: ModelOption[];
424
+ };
425
+ openrouterModels?: OpenRouterModelOption[];
426
+ piAiModels?: PiAiModelOption[];
427
+ piAiDefaultModel?: string | null;
428
+ inventoryProviders: InventoryProviderOption[];
429
+ sharedStyleRules: string;
430
+ githubOAuthAvailable?: boolean;
431
+ }
432
+
433
+ export interface OnboardingData {
434
+ name: string;
435
+ sandboxMode?: "off" | "light" | "standard" | "max";
436
+ bio: string[];
437
+ systemPrompt: string;
438
+ style?: {
439
+ all: string[];
440
+ chat: string[];
441
+ post: string[];
442
+ };
443
+ adjectives?: string[];
444
+ postExamples?: string[];
445
+ messageExamples?: MessageExample[][];
446
+ connection: OnboardingConnection;
447
+ channels?: Record<string, unknown>;
448
+ walletConfig?: WalletConfigUpdateRequest;
449
+ inventoryProviders?: Array<{
450
+ chain: string;
451
+ rpcProvider: string;
452
+ rpcApiKey?: string;
453
+ }>;
454
+ connectors?: Record<string, ConnectorConfig>;
455
+ telegramToken?: string;
456
+ discordToken?: string;
457
+ whatsappSessionPath?: string;
458
+ twilioAccountSid?: string;
459
+ twilioAuthToken?: string;
460
+ twilioPhoneNumber?: string;
461
+ blooioApiKey?: string;
462
+ blooioPhoneNumber?: string;
463
+ githubToken?: string;
464
+ }
465
+
466
+ export interface SubscriptionProviderStatus {
467
+ provider: string;
468
+ configured: boolean;
469
+ valid: boolean;
470
+ expiresAt: number | null;
471
+ }
472
+
473
+ export interface SubscriptionStatusResponse {
474
+ providers: SubscriptionProviderStatus[];
475
+ }
476
+
477
+ const ONBOARDING_PROVIDER_ALIASES: Record<string, OnboardingProviderId> = {
478
+ "openai-codex": "openai-subscription",
479
+ "openai-subscription": "openai-subscription",
480
+ "anthropic-subscription": "anthropic-subscription",
481
+ google: "gemini",
482
+ "google-genai": "gemini",
483
+ gemini: "gemini",
484
+ xai: "grok",
485
+ grok: "grok",
486
+ "together-ai": "together",
487
+ together: "together",
488
+ "z.ai": "zai",
489
+ zai: "zai",
490
+ };
491
+
492
+ export function isSubscriptionProviderSelectionId(
493
+ value: unknown,
494
+ ): value is SubscriptionProviderSelectionId {
495
+ return SUBSCRIPTION_PROVIDER_SELECTIONS.some(
496
+ (provider) => provider.id === value,
497
+ );
498
+ }
499
+
500
+ export function normalizeSubscriptionProviderSelectionId(
501
+ value: unknown,
502
+ ): SubscriptionProviderSelectionId | null {
503
+ if (value === "anthropic-subscription") return "anthropic-subscription";
504
+ if (value === "openai-subscription" || value === "openai-codex") {
505
+ return "openai-subscription";
506
+ }
507
+ return null;
508
+ }
509
+
510
+ export function getStoredSubscriptionProvider(
511
+ selectionId: SubscriptionProviderSelectionId,
512
+ ): StoredSubscriptionProviderId {
513
+ return selectionId === "anthropic-subscription"
514
+ ? "anthropic-subscription"
515
+ : "openai-codex";
516
+ }
517
+
518
+ export function getSubscriptionProviderFamily(
519
+ selectionId: SubscriptionProviderSelectionId,
520
+ ): "anthropic" | "openai" {
521
+ return selectionId === "anthropic-subscription" ? "anthropic" : "openai";
522
+ }
523
+
524
+ export function normalizeOnboardingProviderId(
525
+ value: unknown,
526
+ ): OnboardingProviderId | null {
527
+ if (typeof value !== "string") return null;
528
+ const directMatch = ONBOARDING_PROVIDER_CATALOG.find(
529
+ (provider) => provider.id === value,
530
+ );
531
+ if (directMatch) {
532
+ return directMatch.id;
533
+ }
534
+ return ONBOARDING_PROVIDER_ALIASES[value] ?? null;
535
+ }
536
+
537
+ export function getOnboardingProviderOption(
538
+ providerId: unknown,
539
+ ): ProviderOption | null {
540
+ const normalized = normalizeOnboardingProviderId(providerId);
541
+ if (!normalized) return null;
542
+ return (
543
+ ONBOARDING_PROVIDER_CATALOG.find(
544
+ (provider) => provider.id === normalized,
545
+ ) ?? null
546
+ );
547
+ }
548
+
549
+ export function getOnboardingProviderFamily(
550
+ providerId: unknown,
551
+ ): OnboardingProviderFamily | null {
552
+ return getOnboardingProviderOption(providerId)?.family ?? null;
553
+ }
554
+
555
+ export function getStoredOnboardingProviderId(
556
+ providerId: unknown,
557
+ ): string | null {
558
+ const provider = getOnboardingProviderOption(providerId);
559
+ if (!provider) return null;
560
+ return provider.storedProvider ?? provider.id;
561
+ }
562
+
563
+ export function sortOnboardingProviders(
564
+ providers: readonly ProviderOption[],
565
+ ): ProviderOption[] {
566
+ return [...providers].sort((left, right) => {
567
+ const recommendedDelta =
568
+ Number(Boolean(right.recommended)) - Number(Boolean(left.recommended));
569
+ if (recommendedDelta !== 0) {
570
+ return recommendedDelta;
571
+ }
572
+ return left.order - right.order;
573
+ });
574
+ }
575
+
576
+ export function isCloudManagedConnection(
577
+ connection: OnboardingConnection | null | undefined,
578
+ ): connection is OnboardingCloudManagedConnection {
579
+ return connection?.kind === "cloud-managed";
580
+ }
581
+
582
+ export function isRemoteProviderConnection(
583
+ connection: OnboardingConnection | null | undefined,
584
+ ): connection is OnboardingRemoteProviderConnection {
585
+ return connection?.kind === "remote-provider";
586
+ }
587
+
588
+ export function isLocalProviderConnection(
589
+ connection: OnboardingConnection | null | undefined,
590
+ ): connection is OnboardingLocalProviderConnection {
591
+ return connection?.kind === "local-provider";
592
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared system permission contracts.
3
+ */
4
+
5
+ export type SystemPermissionId =
6
+ | "accessibility"
7
+ | "screen-recording"
8
+ | "microphone"
9
+ | "camera"
10
+ | "shell";
11
+
12
+ export type PermissionStatus =
13
+ | "granted"
14
+ | "denied"
15
+ | "not-determined"
16
+ | "restricted"
17
+ | "not-applicable";
18
+
19
+ export type Platform = "darwin" | "win32" | "linux";
20
+
21
+ export interface SystemPermissionDefinition {
22
+ id: SystemPermissionId;
23
+ name: string;
24
+ description: string;
25
+ icon: string;
26
+ platforms: Platform[];
27
+ requiredForFeatures: string[];
28
+ }
29
+
30
+ export interface PermissionState {
31
+ id: SystemPermissionId;
32
+ status: PermissionStatus;
33
+ lastChecked: number;
34
+ canRequest: boolean;
35
+ }
36
+
37
+ export interface PermissionCheckResult {
38
+ status: PermissionStatus;
39
+ canRequest: boolean;
40
+ }
41
+
42
+ export interface AllPermissionsState {
43
+ accessibility: PermissionState;
44
+ "screen-recording": PermissionState;
45
+ microphone: PermissionState;
46
+ camera: PermissionState;
47
+ shell: PermissionState;
48
+ }
49
+
50
+ export interface PermissionManagerConfig {
51
+ cacheTimeoutMs: number;
52
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared verification API contracts.
3
+ */
4
+
5
+ export interface VerificationResult {
6
+ verified: boolean;
7
+ error: string | null;
8
+ handle: string | null;
9
+ }