@elizaos/app-core 2.0.0-alpha.84 → 2.0.0-beta.1

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 (1885) hide show
  1. package/account-pool.d.ts +6 -0
  2. package/account-pool.d.ts.map +1 -0
  3. package/account-pool.js +5 -0
  4. package/api/__tests__/sandbox-test-helpers.d.ts +10 -0
  5. package/api/__tests__/sandbox-test-helpers.d.ts.map +1 -0
  6. package/api/__tests__/sandbox-test-helpers.js +15 -0
  7. package/api/auth/audit.d.ts +52 -0
  8. package/api/auth/audit.d.ts.map +1 -0
  9. package/api/auth/audit.js +126 -0
  10. package/api/auth/auth-context.d.ts +40 -0
  11. package/api/auth/auth-context.d.ts.map +1 -0
  12. package/api/auth/auth-context.js +68 -0
  13. package/api/auth/bootstrap-token.d.ts +50 -0
  14. package/api/auth/bootstrap-token.d.ts.map +1 -0
  15. package/api/auth/bootstrap-token.js +157 -0
  16. package/api/auth/index.d.ts +14 -0
  17. package/api/auth/index.d.ts.map +1 -0
  18. package/api/auth/index.js +13 -0
  19. package/api/auth/passwords.d.ts +65 -0
  20. package/api/auth/passwords.d.ts.map +1 -0
  21. package/api/auth/passwords.js +87 -0
  22. package/api/auth/sensitive-rate-limit.d.ts +56 -0
  23. package/api/auth/sensitive-rate-limit.d.ts.map +1 -0
  24. package/api/auth/sensitive-rate-limit.js +95 -0
  25. package/api/auth/sessions.d.ts +152 -0
  26. package/api/auth/sessions.d.ts.map +1 -0
  27. package/api/auth/sessions.js +298 -0
  28. package/api/auth/tokens.d.ts +3 -0
  29. package/api/auth/tokens.d.ts.map +1 -0
  30. package/api/auth/tokens.js +13 -0
  31. package/api/auth-bootstrap-routes.d.ts +32 -0
  32. package/api/auth-bootstrap-routes.d.ts.map +1 -0
  33. package/api/auth-bootstrap-routes.js +179 -0
  34. package/api/auth-pairing-compat-routes.d.ts +17 -0
  35. package/api/auth-pairing-compat-routes.d.ts.map +1 -0
  36. package/api/auth-pairing-compat-routes.js +301 -0
  37. package/api/auth-session-routes.d.ts +31 -0
  38. package/api/auth-session-routes.d.ts.map +1 -0
  39. package/api/auth-session-routes.js +560 -0
  40. package/api/auth.d.ts +153 -0
  41. package/api/auth.d.ts.map +1 -0
  42. package/api/auth.js +290 -0
  43. package/api/automation-node-contributors.d.ts +14 -0
  44. package/api/automation-node-contributors.d.ts.map +1 -0
  45. package/api/automation-node-contributors.js +14 -0
  46. package/api/automations-compat-routes.d.ts +18 -0
  47. package/api/automations-compat-routes.d.ts.map +1 -0
  48. package/api/automations-compat-routes.js +274 -0
  49. package/api/catalog-routes.d.ts +4 -0
  50. package/api/catalog-routes.d.ts.map +1 -0
  51. package/api/catalog-routes.js +61 -0
  52. package/api/compat-route-shared.d.ts +29 -0
  53. package/api/compat-route-shared.d.ts.map +1 -0
  54. package/api/compat-route-shared.js +298 -0
  55. package/api/credential-resolver.d.ts +31 -0
  56. package/api/credential-resolver.d.ts.map +1 -0
  57. package/api/credential-resolver.js +199 -0
  58. package/api/database-rows-compat-routes.d.ts +4 -0
  59. package/api/database-rows-compat-routes.d.ts.map +1 -0
  60. package/api/database-rows-compat-routes.js +100 -0
  61. package/api/dev-compat-routes.d.ts +11 -0
  62. package/api/dev-compat-routes.d.ts.map +1 -0
  63. package/api/dev-compat-routes.js +144 -0
  64. package/api/dev-console-log.d.ts +21 -0
  65. package/api/dev-console-log.d.ts.map +1 -0
  66. package/api/dev-console-log.js +65 -0
  67. package/api/dev-stack.d.ts +49 -0
  68. package/api/dev-stack.d.ts.map +1 -0
  69. package/api/dev-stack.js +60 -0
  70. package/api/local-inference-compat-routes.d.ts +16 -0
  71. package/api/local-inference-compat-routes.d.ts.map +1 -0
  72. package/api/local-inference-compat-routes.js +617 -0
  73. package/api/onboarding-compat-routes.d.ts +4 -0
  74. package/api/onboarding-compat-routes.d.ts.map +1 -0
  75. package/api/onboarding-compat-routes.js +207 -0
  76. package/api/plugins-compat-routes.d.ts +103 -0
  77. package/api/plugins-compat-routes.d.ts.map +1 -0
  78. package/api/plugins-compat-routes.js +1181 -0
  79. package/api/response.d.ts +4 -0
  80. package/api/response.d.ts.map +1 -0
  81. package/api/response.js +28 -0
  82. package/api/runtime-mode-routes.d.ts +13 -0
  83. package/api/runtime-mode-routes.d.ts.map +1 -0
  84. package/api/runtime-mode-routes.js +32 -0
  85. package/api/secrets-inventory-routes.d.ts +39 -0
  86. package/api/secrets-inventory-routes.d.ts.map +1 -0
  87. package/api/secrets-inventory-routes.js +487 -0
  88. package/api/secrets-manager-routes.d.ts +9 -0
  89. package/api/secrets-manager-routes.d.ts.map +1 -0
  90. package/api/secrets-manager-routes.js +476 -0
  91. package/api/sensitive-request-routes.d.ts +20 -0
  92. package/api/sensitive-request-routes.d.ts.map +1 -0
  93. package/api/sensitive-request-routes.js +489 -0
  94. package/api/sensitive-request-store.d.ts +39 -0
  95. package/api/sensitive-request-store.d.ts.map +1 -0
  96. package/api/sensitive-request-store.js +204 -0
  97. package/api/server-config-filter.d.ts +14 -0
  98. package/api/server-config-filter.d.ts.map +1 -0
  99. package/api/server-config-filter.js +77 -0
  100. package/api/server-cors.d.ts +30 -0
  101. package/api/server-cors.d.ts.map +1 -0
  102. package/api/server-cors.js +128 -0
  103. package/api/server-html.d.ts +4 -0
  104. package/api/server-html.d.ts.map +1 -0
  105. package/api/server-html.js +5 -0
  106. package/api/server-onboarding-compat.d.ts +31 -0
  107. package/api/server-onboarding-compat.d.ts.map +1 -0
  108. package/api/server-onboarding-compat.js +283 -0
  109. package/api/server-security.d.ts +11 -0
  110. package/api/server-security.d.ts.map +1 -0
  111. package/api/server-security.js +29 -0
  112. package/api/server-startup.d.ts +5 -0
  113. package/api/server-startup.d.ts.map +1 -0
  114. package/api/server-startup.js +74 -0
  115. package/api/server-wallet-trade.d.ts +10 -0
  116. package/api/server-wallet-trade.d.ts.map +1 -0
  117. package/api/server-wallet-trade.js +240 -0
  118. package/api/server.d.ts +32 -0
  119. package/api/server.d.ts.map +1 -0
  120. package/api/server.js +768 -0
  121. package/api/workbench-compat-routes.d.ts +11 -0
  122. package/api/workbench-compat-routes.d.ts.map +1 -0
  123. package/api/workbench-compat-routes.js +325 -0
  124. package/benchmark/cua-routes.d.ts +10 -0
  125. package/benchmark/cua-routes.d.ts.map +1 -0
  126. package/benchmark/cua-routes.js +179 -0
  127. package/benchmark/lifeops-bench-handler.d.ts +94 -0
  128. package/benchmark/lifeops-bench-handler.d.ts.map +1 -0
  129. package/benchmark/lifeops-bench-handler.js +280 -0
  130. package/benchmark/lifeops-fake-backend.d.ts +227 -0
  131. package/benchmark/lifeops-fake-backend.d.ts.map +1 -0
  132. package/benchmark/lifeops-fake-backend.js +499 -0
  133. package/benchmark/mock-plugin-base.d.ts +9 -0
  134. package/benchmark/mock-plugin-base.d.ts.map +1 -0
  135. package/benchmark/mock-plugin-base.js +325 -0
  136. package/benchmark/mock-plugin.d.ts +3 -0
  137. package/benchmark/mock-plugin.d.ts.map +1 -0
  138. package/benchmark/mock-plugin.js +504 -0
  139. package/benchmark/params.d.ts +2 -0
  140. package/benchmark/params.d.ts.map +1 -0
  141. package/benchmark/params.js +18 -0
  142. package/benchmark/plugin.d.ts +42 -0
  143. package/benchmark/plugin.d.ts.map +1 -0
  144. package/benchmark/plugin.js +422 -0
  145. package/benchmark/replay-capture.d.ts +73 -0
  146. package/benchmark/replay-capture.d.ts.map +1 -0
  147. package/benchmark/replay-capture.js +223 -0
  148. package/benchmark/server-utils.d.ts +100 -0
  149. package/benchmark/server-utils.d.ts.map +1 -0
  150. package/benchmark/server-utils.js +289 -0
  151. package/benchmark/server.d.ts +2 -0
  152. package/benchmark/server.d.ts.map +1 -0
  153. package/benchmark/server.js +1176 -0
  154. package/browser.d.ts +13 -0
  155. package/browser.d.ts.map +1 -0
  156. package/browser.js +15 -0
  157. package/cli/argv.d.ts +17 -0
  158. package/cli/argv.d.ts.map +1 -0
  159. package/cli/argv.js +140 -0
  160. package/cli/banner.d.ts +11 -0
  161. package/cli/banner.d.ts.map +1 -0
  162. package/cli/banner.js +36 -0
  163. package/cli/cli-name.d.ts +5 -0
  164. package/cli/cli-name.d.ts.map +1 -0
  165. package/cli/cli-name.js +21 -0
  166. package/cli/cli-utils.d.ts +5 -0
  167. package/cli/cli-utils.d.ts.map +1 -0
  168. package/cli/cli-utils.js +13 -0
  169. package/cli/command-format.d.ts +2 -0
  170. package/cli/command-format.d.ts.map +1 -0
  171. package/cli/command-format.js +20 -0
  172. package/cli/doctor/checks.d.ts +96 -0
  173. package/cli/doctor/checks.d.ts.map +1 -0
  174. package/cli/doctor/checks.js +483 -0
  175. package/cli/git-commit.d.ts +5 -0
  176. package/cli/git-commit.d.ts.map +1 -0
  177. package/cli/git-commit.js +106 -0
  178. package/cli/parse-duration.d.ts +5 -0
  179. package/cli/parse-duration.d.ts.map +1 -0
  180. package/cli/parse-duration.js +27 -0
  181. package/cli/plugins-cli.d.ts +26 -0
  182. package/cli/plugins-cli.d.ts.map +1 -0
  183. package/cli/plugins-cli.js +892 -0
  184. package/cli/profile-utils.d.ts +3 -0
  185. package/cli/profile-utils.d.ts.map +1 -0
  186. package/cli/profile-utils.js +21 -0
  187. package/cli/profile.d.ts +15 -0
  188. package/cli/profile.d.ts.map +1 -0
  189. package/cli/profile.js +93 -0
  190. package/cli/program/build-program.d.ts +3 -0
  191. package/cli/program/build-program.d.ts.map +1 -0
  192. package/cli/program/build-program.js +12 -0
  193. package/cli/program/command-registry.d.ts +3 -0
  194. package/cli/program/command-registry.d.ts.map +1 -0
  195. package/cli/program/command-registry.js +24 -0
  196. package/cli/program/help.d.ts +3 -0
  197. package/cli/program/help.d.ts.map +1 -0
  198. package/cli/program/help.js +57 -0
  199. package/cli/program/preaction.d.ts +3 -0
  200. package/cli/program/preaction.d.ts.map +1 -0
  201. package/cli/program/preaction.js +40 -0
  202. package/cli/program/register.auth.d.ts +51 -0
  203. package/cli/program/register.auth.d.ts.map +1 -0
  204. package/cli/program/register.auth.js +203 -0
  205. package/cli/program/register.benchmark.d.ts +3 -0
  206. package/cli/program/register.benchmark.d.ts.map +1 -0
  207. package/cli/program/register.benchmark.js +12 -0
  208. package/cli/program/register.config.d.ts +3 -0
  209. package/cli/program/register.config.d.ts.map +1 -0
  210. package/cli/program/register.config.js +150 -0
  211. package/cli/program/register.configure.d.ts +3 -0
  212. package/cli/program/register.configure.d.ts.map +1 -0
  213. package/cli/program/register.configure.js +18 -0
  214. package/cli/program/register.dashboard.d.ts +3 -0
  215. package/cli/program/register.dashboard.d.ts.map +1 -0
  216. package/cli/program/register.dashboard.js +124 -0
  217. package/cli/program/register.db.d.ts +3 -0
  218. package/cli/program/register.db.d.ts.map +1 -0
  219. package/cli/program/register.db.js +45 -0
  220. package/cli/program/register.doctor.d.ts +3 -0
  221. package/cli/program/register.doctor.d.ts.map +1 -0
  222. package/cli/program/register.doctor.js +170 -0
  223. package/cli/program/register.models.d.ts +3 -0
  224. package/cli/program/register.models.d.ts.map +1 -0
  225. package/cli/program/register.models.js +32 -0
  226. package/cli/program/register.setup.d.ts +16 -0
  227. package/cli/program/register.setup.d.ts.map +1 -0
  228. package/cli/program/register.setup.js +333 -0
  229. package/cli/program/register.start.d.ts +3 -0
  230. package/cli/program/register.start.d.ts.map +1 -0
  231. package/cli/program/register.start.js +95 -0
  232. package/cli/program/register.subclis.d.ts +4 -0
  233. package/cli/program/register.subclis.d.ts.map +1 -0
  234. package/cli/program/register.subclis.js +87 -0
  235. package/cli/program/register.update.d.ts +12 -0
  236. package/cli/program/register.update.d.ts.map +1 -0
  237. package/cli/program/register.update.js +173 -0
  238. package/cli/program.d.ts +2 -0
  239. package/cli/program.d.ts.map +1 -0
  240. package/cli/program.js +1 -0
  241. package/cli/run-main.d.ts +2 -0
  242. package/cli/run-main.d.ts.map +1 -0
  243. package/cli/run-main.js +71 -0
  244. package/cli/version.d.ts +2 -0
  245. package/cli/version.d.ts.map +1 -0
  246. package/cli/version.js +2 -0
  247. package/connectors/capacitor-jsc.d.ts +66 -0
  248. package/connectors/capacitor-jsc.d.ts.map +1 -0
  249. package/connectors/capacitor-jsc.js +39 -0
  250. package/connectors/capacitor-quickjs.d.ts +64 -0
  251. package/connectors/capacitor-quickjs.d.ts.map +1 -0
  252. package/connectors/capacitor-quickjs.js +50 -0
  253. package/connectors/capacitor-sqlite.d.ts +41 -0
  254. package/connectors/capacitor-sqlite.d.ts.map +1 -0
  255. package/connectors/capacitor-sqlite.js +87 -0
  256. package/diagnostics/integration-observability.d.ts +40 -0
  257. package/diagnostics/integration-observability.d.ts.map +1 -0
  258. package/diagnostics/integration-observability.js +68 -0
  259. package/entry.d.ts +10 -0
  260. package/entry.d.ts.map +1 -0
  261. package/entry.js +66 -0
  262. package/index.d.ts +34 -4
  263. package/index.d.ts.map +1 -1
  264. package/index.js +42 -6
  265. package/package.json +81 -151
  266. package/packaging/PUBLISHING_GUIDE.md +707 -0
  267. package/packaging/debian/changelog +9 -0
  268. package/packaging/debian/control +26 -0
  269. package/packaging/debian/copyright +27 -0
  270. package/packaging/debian/elizaos-app.service +15 -0
  271. package/packaging/debian/install +4 -0
  272. package/packaging/debian/postinst +28 -0
  273. package/packaging/debian/prerm +14 -0
  274. package/packaging/debian/rules +44 -0
  275. package/packaging/debian/source/format +1 -0
  276. package/packaging/flatpak/README.md +150 -0
  277. package/packaging/flatpak/ai.elizaos.App.desktop +11 -0
  278. package/packaging/flatpak/ai.elizaos.App.metainfo.xml +81 -0
  279. package/packaging/flatpak/ai.elizaos.App.store.yml +142 -0
  280. package/packaging/flatpak/ai.elizaos.App.yml +142 -0
  281. package/packaging/flatpak/elizaos-app-wrapper.sh +5 -0
  282. package/packaging/flatpak/elizaos-app-wrapper.store.sh +16 -0
  283. package/packaging/flatpak/icons/128x128/ai.elizaos.App.png +0 -0
  284. package/packaging/flatpak/icons/256x256/ai.elizaos.App.png +0 -0
  285. package/packaging/flatpak/icons/512x512/ai.elizaos.App.png +0 -0
  286. package/packaging/homebrew/README.md +80 -0
  287. package/packaging/homebrew/elizaos-app.cask.rb +60 -0
  288. package/packaging/homebrew/elizaos-app.rb +49 -0
  289. package/packaging/inno/ElizaOSApp.iss +53 -0
  290. package/packaging/inno/build-inno.ps1 +231 -0
  291. package/packaging/msix/AppxManifest.store.xml +79 -0
  292. package/packaging/msix/AppxManifest.xml +53 -0
  293. package/packaging/msix/README.md +201 -0
  294. package/packaging/msix/assets/LargeTile.png +0 -0
  295. package/packaging/msix/assets/Square150x150Logo.png +0 -0
  296. package/packaging/msix/assets/Square44x44Logo.png +0 -0
  297. package/packaging/msix/assets/StoreLogo.png +0 -0
  298. package/packaging/msix/assets/Wide310x150Logo.png +0 -0
  299. package/packaging/msix/build-msix.ps1 +206 -0
  300. package/packaging/msix/generate-placeholder-assets.ps1 +49 -0
  301. package/packaging/msix/store/description.md +31 -0
  302. package/packaging/msix/store/listing.json +27 -0
  303. package/packaging/pypi/README.md +14 -0
  304. package/packaging/pypi/elizaos_app/__init__.py +7 -0
  305. package/packaging/pypi/elizaos_app/__main__.py +6 -0
  306. package/packaging/pypi/elizaos_app/cli.py +21 -0
  307. package/packaging/pypi/elizaos_app/loader.py +127 -0
  308. package/packaging/pypi/elizaos_app/py.typed +1 -0
  309. package/packaging/pypi/pyproject.toml +38 -0
  310. package/packaging/snap/snapcraft.yaml +560 -0
  311. package/packaging/test-packaging.sh +309 -0
  312. package/patches/@noble%2Fcurves@2.0.1.patch +33 -0
  313. package/patches/@pixiv%2Fthree-vrm@3.5.2.patch +26 -0
  314. package/patches/coding-agent-adapters@0.16.3.patch +44 -0
  315. package/patches/electrobun@1.16.0.patch +13 -0
  316. package/patches/llama-cpp-capacitor@0.1.5.patch +2387 -0
  317. package/patches/proper-lockfile@4.1.2.patch +14 -0
  318. package/patches/pty-manager@1.11.0.patch +194 -0
  319. package/permissions/types.d.ts +8 -0
  320. package/permissions/types.d.ts.map +1 -0
  321. package/permissions/types.js +7 -0
  322. package/platform/agent-browser-stub.d.ts +27 -0
  323. package/platform/agent-browser-stub.d.ts.map +1 -0
  324. package/platform/agent-browser-stub.js +16 -0
  325. package/platform/empty-node-module.d.ts +31 -0
  326. package/platform/empty-node-module.d.ts.map +1 -0
  327. package/platform/empty-node-module.js +22 -0
  328. package/platforms/android/Gemfile +6 -0
  329. package/platforms/android/README.md +79 -0
  330. package/platforms/android/app/build.gradle +124 -0
  331. package/platforms/android/app/capacitor.build.gradle +32 -0
  332. package/platforms/android/app/proguard-rules.pro +46 -0
  333. package/platforms/android/app/src/androidTest/java/ai/elizaos/app/ElizaOsInstrumentedTest.java +162 -0
  334. package/platforms/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +26 -0
  335. package/platforms/android/app/src/main/AndroidManifest.xml +83 -0
  336. package/platforms/android/app/src/main/java/ai/elizaos/app/AgentPlugin.java +232 -0
  337. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAgentService.java +1514 -0
  338. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaAssistActivity.java +21 -0
  339. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBootReceiver.java +61 -0
  340. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaBrowserActivity.java +39 -0
  341. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCalendarActivity.java +75 -0
  342. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaCameraActivity.java +54 -0
  343. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaClockActivity.java +70 -0
  344. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaContactsActivity.java +56 -0
  345. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaDialActivity.java +83 -0
  346. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaInCallService.java +168 -0
  347. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaMmsReceiver.java +70 -0
  348. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaNativeBridge.java +38 -0
  349. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaRespondViaMessageService.java +119 -0
  350. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsComposeActivity.java +50 -0
  351. package/platforms/android/app/src/main/java/ai/elizaos/app/ElizaSmsReceiver.java +84 -0
  352. package/platforms/android/app/src/main/java/ai/elizaos/app/GatewayConnectionService.java +211 -0
  353. package/platforms/android/app/src/main/java/ai/elizaos/app/MainActivity.java +202 -0
  354. package/platforms/android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  355. package/platforms/android/app/src/main/res/drawable/splash.png +0 -0
  356. package/platforms/android/app/src/main/res/drawable-land-hdpi/splash.png +0 -0
  357. package/platforms/android/app/src/main/res/drawable-land-mdpi/splash.png +0 -0
  358. package/platforms/android/app/src/main/res/drawable-land-xhdpi/splash.png +0 -0
  359. package/platforms/android/app/src/main/res/drawable-land-xxhdpi/splash.png +0 -0
  360. package/platforms/android/app/src/main/res/drawable-land-xxxhdpi/splash.png +0 -0
  361. package/platforms/android/app/src/main/res/drawable-port-hdpi/splash.png +0 -0
  362. package/platforms/android/app/src/main/res/drawable-port-mdpi/splash.png +0 -0
  363. package/platforms/android/app/src/main/res/drawable-port-xhdpi/splash.png +0 -0
  364. package/platforms/android/app/src/main/res/drawable-port-xxhdpi/splash.png +0 -0
  365. package/platforms/android/app/src/main/res/drawable-port-xxxhdpi/splash.png +0 -0
  366. package/platforms/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
  367. package/platforms/android/app/src/main/res/layout/activity_main.xml +12 -0
  368. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  369. package/platforms/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  370. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  371. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  372. package/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  373. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  374. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  375. package/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  376. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  377. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  378. package/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  379. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  380. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  381. package/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  382. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  383. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  384. package/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  385. package/platforms/android/app/src/main/res/values/ic_launcher_background.xml +4 -0
  386. package/platforms/android/app/src/main/res/values/strings.xml +7 -0
  387. package/platforms/android/app/src/main/res/values/styles.xml +22 -0
  388. package/platforms/android/app/src/main/res/xml/file_paths.xml +5 -0
  389. package/platforms/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +18 -0
  390. package/platforms/android/build.gradle +63 -0
  391. package/platforms/android/capacitor-cordova-android-plugins/build.gradle +53 -0
  392. package/platforms/android/capacitor-cordova-android-plugins/cordova.variables.gradle +3 -0
  393. package/platforms/android/capacitor-cordova-android-plugins/src/main/AndroidManifest.xml +3 -0
  394. package/platforms/android/capacitor-cordova-android-plugins/src/main/java/.gitkeep +1 -0
  395. package/platforms/android/capacitor-cordova-android-plugins/src/main/res/.gitkeep +1 -0
  396. package/platforms/android/capacitor.settings.gradle +45 -0
  397. package/platforms/android/fastlane/Appfile +2 -0
  398. package/platforms/android/fastlane/Fastfile +59 -0
  399. package/platforms/android/fastlane/metadata/android/en-US/full_description.txt +24 -0
  400. package/platforms/android/fastlane/metadata/android/en-US/short_description.txt +1 -0
  401. package/platforms/android/fastlane/metadata/android/en-US/title.txt +1 -0
  402. package/platforms/android/fastlane/metadata/android/en-US/video.txt +0 -0
  403. package/platforms/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  404. package/platforms/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  405. package/platforms/android/gradle.properties +27 -0
  406. package/platforms/android/gradlew +251 -0
  407. package/platforms/android/gradlew.bat +94 -0
  408. package/platforms/android/settings.gradle +13 -0
  409. package/platforms/android/variables.gradle +17 -0
  410. package/platforms/electrobun/.generated/brand-config.json +8 -0
  411. package/platforms/electrobun/README.md +44 -0
  412. package/platforms/electrobun/assets/appIcon.ico +0 -0
  413. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128.png +0 -0
  414. package/platforms/electrobun/assets/appIcon.iconset/icon_128x128@2x.png +0 -0
  415. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16.png +0 -0
  416. package/platforms/electrobun/assets/appIcon.iconset/icon_16x16@2x.png +0 -0
  417. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256.png +0 -0
  418. package/platforms/electrobun/assets/appIcon.iconset/icon_256x256@2x.png +0 -0
  419. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32.png +0 -0
  420. package/platforms/electrobun/assets/appIcon.iconset/icon_32x32@2x.png +0 -0
  421. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512.png +0 -0
  422. package/platforms/electrobun/assets/appIcon.iconset/icon_512x512@2x.png +0 -0
  423. package/platforms/electrobun/assets/appIcon.png +0 -0
  424. package/platforms/electrobun/assets/brand-config.json +8 -0
  425. package/platforms/electrobun/biome.json +11 -0
  426. package/platforms/electrobun/electrobun.config.ts +435 -0
  427. package/platforms/electrobun/entitlements/README.md +54 -0
  428. package/platforms/electrobun/entitlements/mas-child.entitlements +10 -0
  429. package/platforms/electrobun/entitlements/mas.entitlements +41 -0
  430. package/platforms/electrobun/native/macos/window-effects.mm +927 -0
  431. package/platforms/electrobun/package.json +33 -0
  432. package/platforms/electrobun/scripts/bin/zip +2 -0
  433. package/platforms/electrobun/scripts/build-macos-effects.sh +31 -0
  434. package/platforms/electrobun/scripts/build-whisper-universal.sh +137 -0
  435. package/platforms/electrobun/scripts/build-whisper.sh +95 -0
  436. package/platforms/electrobun/scripts/ensure-whisper-model.sh +93 -0
  437. package/platforms/electrobun/scripts/hdiutil-wrapper.sh +33 -0
  438. package/platforms/electrobun/scripts/lib/app-dir.mjs +74 -0
  439. package/platforms/electrobun/scripts/lib/repo-root.mjs +77 -0
  440. package/platforms/electrobun/scripts/local-adhoc-sign-macos.ts +214 -0
  441. package/platforms/electrobun/scripts/macos-direct-launcher.c +84 -0
  442. package/platforms/electrobun/scripts/postwrap-diagnostics.ts +423 -0
  443. package/platforms/electrobun/scripts/postwrap-sign-runtime-macos.ts +352 -0
  444. package/platforms/electrobun/scripts/sign-windows.ps1 +121 -0
  445. package/platforms/electrobun/scripts/smoke-test-windows.ps1 +907 -0
  446. package/platforms/electrobun/scripts/smoke-test.sh +1186 -0
  447. package/platforms/electrobun/scripts/stage-macos-release-artifacts.sh +491 -0
  448. package/platforms/electrobun/scripts/sync-web-assets.mjs +48 -0
  449. package/platforms/electrobun/scripts/verify-rpc-handlers.ts +162 -0
  450. package/platforms/electrobun/scripts/verify-windows-installer-proof.ps1 +203 -0
  451. package/platforms/electrobun/scripts/xcrun-wrapper.sh +80 -0
  452. package/platforms/electrobun/scripts/zip-wrapper.sh +6 -0
  453. package/platforms/electrobun/src/__stubs__/bun-ffi.ts +35 -0
  454. package/platforms/electrobun/src/__stubs__/electrobun-bun.ts +20 -0
  455. package/platforms/electrobun/src/agent-ready-state.ts +35 -0
  456. package/platforms/electrobun/src/agent-reset-from-main.ts +87 -0
  457. package/platforms/electrobun/src/api-base.ts +169 -0
  458. package/platforms/electrobun/src/application-menu-action-registry.ts +21 -0
  459. package/platforms/electrobun/src/application-menu.ts +418 -0
  460. package/platforms/electrobun/src/background-notice.ts +65 -0
  461. package/platforms/electrobun/src/brand-config.ts +184 -0
  462. package/platforms/electrobun/src/bridge/browser-tabs-renderer-registry.ts +60 -0
  463. package/platforms/electrobun/src/bridge/electrobun-direct-rpc.ts +430 -0
  464. package/platforms/electrobun/src/bridge/electrobun-preload.ts +1 -0
  465. package/platforms/electrobun/src/bridge/electrobun-stub.ts +21 -0
  466. package/platforms/electrobun/src/browser-workspace-bridge-server.ts +284 -0
  467. package/platforms/electrobun/src/cloud-auth-window.ts +216 -0
  468. package/platforms/electrobun/src/cloud-disconnect-from-main.ts +118 -0
  469. package/platforms/electrobun/src/constants.ts +2 -0
  470. package/platforms/electrobun/src/desktop-http-request.test.ts +85 -0
  471. package/platforms/electrobun/src/desktop-http-request.ts +103 -0
  472. package/platforms/electrobun/src/desktop-test-bridge-server.ts +248 -0
  473. package/platforms/electrobun/src/devtools-layout.ts +63 -0
  474. package/platforms/electrobun/src/diagnostic-format.ts +65 -0
  475. package/platforms/electrobun/src/fatal-shutdown.test.ts +30 -0
  476. package/platforms/electrobun/src/fatal-shutdown.ts +10 -0
  477. package/platforms/electrobun/src/floating-chat-window.ts +239 -0
  478. package/platforms/electrobun/src/index.ts +2510 -0
  479. package/platforms/electrobun/src/libMacWindowEffects.dylib +0 -0
  480. package/platforms/electrobun/src/lifecycle/api-base-owner.ts +119 -0
  481. package/platforms/electrobun/src/lifecycle/desktop-session-prime.ts +77 -0
  482. package/platforms/electrobun/src/logger.ts +23 -0
  483. package/platforms/electrobun/src/main-window-runtime.ts +117 -0
  484. package/platforms/electrobun/src/main-window-session.ts +88 -0
  485. package/platforms/electrobun/src/menu-reset-from-main.ts +211 -0
  486. package/platforms/electrobun/src/native/agent.ts +1892 -0
  487. package/platforms/electrobun/src/native/auth-bridge.ts +525 -0
  488. package/platforms/electrobun/src/native/browser-workspace.ts +574 -0
  489. package/platforms/electrobun/src/native/camera.ts +68 -0
  490. package/platforms/electrobun/src/native/canvas.ts +504 -0
  491. package/platforms/electrobun/src/native/credentials.ts +765 -0
  492. package/platforms/electrobun/src/native/desktop.ts +2284 -0
  493. package/platforms/electrobun/src/native/editor-bridge.ts +292 -0
  494. package/platforms/electrobun/src/native/file-watcher.ts +220 -0
  495. package/platforms/electrobun/src/native/gateway.ts +218 -0
  496. package/platforms/electrobun/src/native/gpu-window.ts +301 -0
  497. package/platforms/electrobun/src/native/index.ts +105 -0
  498. package/platforms/electrobun/src/native/location.ts +110 -0
  499. package/platforms/electrobun/src/native/loopback-port.ts +81 -0
  500. package/platforms/electrobun/src/native/mac-window-effects.ts +118 -0
  501. package/platforms/electrobun/src/native/music-player.ts +61 -0
  502. package/platforms/electrobun/src/native/permissions-darwin.ts +342 -0
  503. package/platforms/electrobun/src/native/permissions-linux.ts +34 -0
  504. package/platforms/electrobun/src/native/permissions-shared.ts +170 -0
  505. package/platforms/electrobun/src/native/permissions-win32.ts +56 -0
  506. package/platforms/electrobun/src/native/permissions.ts +237 -0
  507. package/platforms/electrobun/src/native/power-state.ts +195 -0
  508. package/platforms/electrobun/src/native/screencapture.ts +654 -0
  509. package/platforms/electrobun/src/native/steward.ts +343 -0
  510. package/platforms/electrobun/src/native/swabble.ts +349 -0
  511. package/platforms/electrobun/src/native/talkmode.ts +441 -0
  512. package/platforms/electrobun/src/native/webgpu-browser-support.ts +220 -0
  513. package/platforms/electrobun/src/native/whisper.ts +280 -0
  514. package/platforms/electrobun/src/preload-validation.ts +65 -0
  515. package/platforms/electrobun/src/preload.js +1 -0
  516. package/platforms/electrobun/src/print-electrobun-dev-settings-banner.ts +140 -0
  517. package/platforms/electrobun/src/renderer-static.ts +77 -0
  518. package/platforms/electrobun/src/rpc-handlers.ts +1072 -0
  519. package/platforms/electrobun/src/rpc-schema.ts +1835 -0
  520. package/platforms/electrobun/src/runtime-layout.ts +150 -0
  521. package/platforms/electrobun/src/runtime-permissions.ts +125 -0
  522. package/platforms/electrobun/src/screenshot-dev-server.ts +125 -0
  523. package/platforms/electrobun/src/startup-trace.ts +351 -0
  524. package/platforms/electrobun/src/surface-windows.ts +475 -0
  525. package/platforms/electrobun/src/types/web-speech.d.ts +52 -0
  526. package/platforms/electrobun/src/types.ts +18 -0
  527. package/platforms/electrobun/src/windows-cef-profile.ts +124 -0
  528. package/platforms/electrobun/tsconfig.json +75 -0
  529. package/platforms/electrobun/vitest.electrobun.config.ts +54 -0
  530. package/platforms/ios/App/App/App.entitlements +18 -0
  531. package/platforms/ios/App/App/AppDelegate.swift +93 -0
  532. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ios-marketing-1024.png +0 -0
  533. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@1x.png +0 -0
  534. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-20x20@2x.png +0 -0
  535. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@1x.png +0 -0
  536. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-29x29@2x.png +0 -0
  537. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@1x.png +0 -0
  538. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-40x40@2x.png +0 -0
  539. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@1x.png +0 -0
  540. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-76x76@2x.png +0 -0
  541. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-ipad-83_5x83_5@2x.png +0 -0
  542. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@2x.png +0 -0
  543. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-20x20@3x.png +0 -0
  544. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@2x.png +0 -0
  545. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-29x29@3x.png +0 -0
  546. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@2x.png +0 -0
  547. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-40x40@3x.png +0 -0
  548. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@2x.png +0 -0
  549. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-iphone-60x60@3x.png +0 -0
  550. package/platforms/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +116 -0
  551. package/platforms/ios/App/App/Assets.xcassets/Contents.json +6 -0
  552. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +23 -0
  553. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  554. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  555. package/platforms/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  556. package/platforms/ios/App/App/Base.lproj/LaunchScreen.storyboard +32 -0
  557. package/platforms/ios/App/App/Base.lproj/Main.storyboard +19 -0
  558. package/platforms/ios/App/App/ElizaIntentPlugin.swift +185 -0
  559. package/platforms/ios/App/App/Info.plist +123 -0
  560. package/platforms/ios/App/App/PrivacyInfo.xcprivacy +55 -0
  561. package/platforms/ios/App/App/SceneDelegate.swift +77 -0
  562. package/platforms/ios/App/App/WebsiteBlockerContentExtension/ActionRequestHandler.swift +142 -0
  563. package/platforms/ios/App/App/WebsiteBlockerContentExtension/Info.plist +29 -0
  564. package/platforms/ios/App/App/WebsiteBlockerContentExtension/PrivacyInfo.xcprivacy +23 -0
  565. package/platforms/ios/App/App/WebsiteBlockerContentExtension/WebsiteBlockerContentExtension.entitlements +10 -0
  566. package/platforms/ios/App/App.xcodeproj/project.pbxproj +596 -0
  567. package/platforms/ios/App/App.xcworkspace/contents.xcworkspacedata +10 -0
  568. package/platforms/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  569. package/platforms/ios/App/ExportOptions.plist +18 -0
  570. package/platforms/ios/App/Podfile +51 -0
  571. package/platforms/ios/App/Podfile.lock +131 -0
  572. package/platforms/ios/Gemfile +6 -0
  573. package/platforms/ios/fastlane/Appfile +4 -0
  574. package/platforms/ios/fastlane/Fastfile +94 -0
  575. package/platforms/ios/fastlane/Matchfile +12 -0
  576. package/platforms/ios/fastlane/metadata/en-US/description.txt +22 -0
  577. package/platforms/ios/fastlane/metadata/en-US/keywords.txt +1 -0
  578. package/platforms/ios/fastlane/metadata/en-US/marketing_url.txt +1 -0
  579. package/platforms/ios/fastlane/metadata/en-US/name.txt +1 -0
  580. package/platforms/ios/fastlane/metadata/en-US/privacy_url.txt +1 -0
  581. package/platforms/ios/fastlane/metadata/en-US/promotional_text.txt +1 -0
  582. package/platforms/ios/fastlane/metadata/en-US/subtitle.txt +1 -0
  583. package/platforms/ios/fastlane/metadata/en-US/support_url.txt +1 -0
  584. package/register-runtime-hooks.d.ts +2 -0
  585. package/register-runtime-hooks.d.ts.map +1 -0
  586. package/register-runtime-hooks.js +13 -0
  587. package/registry/generate-apps.d.ts +2 -0
  588. package/registry/generate-apps.d.ts.map +1 -0
  589. package/registry/generate-apps.js +338 -0
  590. package/registry/generate.d.ts +2 -0
  591. package/registry/generate.d.ts.map +1 -0
  592. package/registry/generate.js +506 -0
  593. package/registry/index.d.ts +6 -0
  594. package/registry/index.d.ts.map +1 -0
  595. package/registry/index.js +68 -0
  596. package/registry/loader.d.ts +27 -0
  597. package/registry/loader.d.ts.map +1 -0
  598. package/registry/loader.js +111 -0
  599. package/registry/schema.d.ts +989 -0
  600. package/registry/schema.d.ts.map +1 -0
  601. package/registry/schema.js +264 -0
  602. package/runtime/api-dev-settings-banner.d.ts +7 -0
  603. package/runtime/api-dev-settings-banner.d.ts.map +1 -0
  604. package/runtime/api-dev-settings-banner.js +104 -0
  605. package/runtime/app-route-plugin-registry.d.ts +3 -0
  606. package/runtime/app-route-plugin-registry.d.ts.map +1 -0
  607. package/runtime/app-route-plugin-registry.js +1 -0
  608. package/runtime/build-character-from-config.d.ts +3 -0
  609. package/runtime/build-character-from-config.d.ts.map +1 -0
  610. package/runtime/build-character-from-config.js +59 -0
  611. package/runtime/build-variant.d.ts +8 -0
  612. package/runtime/build-variant.d.ts.map +1 -0
  613. package/runtime/build-variant.js +7 -0
  614. package/runtime/channel-plugin-map.d.ts +6 -0
  615. package/runtime/channel-plugin-map.d.ts.map +1 -0
  616. package/runtime/channel-plugin-map.js +38 -0
  617. package/runtime/dev-server.d.ts +2 -0
  618. package/runtime/dev-server.d.ts.map +1 -0
  619. package/runtime/dev-server.js +383 -0
  620. package/runtime/dev-settings-figlet-heading.d.ts +22 -0
  621. package/runtime/dev-settings-figlet-heading.d.ts.map +1 -0
  622. package/runtime/dev-settings-figlet-heading.js +55 -0
  623. package/runtime/eliza.d.ts +21 -0
  624. package/runtime/eliza.d.ts.map +1 -0
  625. package/runtime/eliza.js +863 -0
  626. package/runtime/embedding-manager-support.d.ts +77 -0
  627. package/runtime/embedding-manager-support.d.ts.map +1 -0
  628. package/runtime/embedding-manager-support.js +309 -0
  629. package/runtime/embedding-presets.d.ts +5 -0
  630. package/runtime/embedding-presets.d.ts.map +1 -0
  631. package/runtime/embedding-presets.js +47 -0
  632. package/runtime/embedding-warmup-policy.d.ts +13 -0
  633. package/runtime/embedding-warmup-policy.d.ts.map +1 -0
  634. package/runtime/embedding-warmup-policy.js +33 -0
  635. package/runtime/ensure-local-inference-handler.d.ts +24 -0
  636. package/runtime/ensure-local-inference-handler.d.ts.map +1 -0
  637. package/runtime/ensure-local-inference-handler.js +380 -0
  638. package/runtime/ensure-text-to-speech-handler.d.ts +18 -0
  639. package/runtime/ensure-text-to-speech-handler.d.ts.map +1 -0
  640. package/runtime/ensure-text-to-speech-handler.js +50 -0
  641. package/runtime/error-handlers.d.ts +12 -0
  642. package/runtime/error-handlers.d.ts.map +1 -0
  643. package/runtime/error-handlers.js +49 -0
  644. package/runtime/mobile-local-inference-gate.d.ts +21 -0
  645. package/runtime/mobile-local-inference-gate.d.ts.map +1 -0
  646. package/runtime/mobile-local-inference-gate.js +24 -0
  647. package/runtime/mobile-safe-runtime.d.ts +123 -0
  648. package/runtime/mobile-safe-runtime.d.ts.map +1 -0
  649. package/runtime/mobile-safe-runtime.js +290 -0
  650. package/runtime/mode/remote-forwarder.d.ts +35 -0
  651. package/runtime/mode/remote-forwarder.d.ts.map +1 -0
  652. package/runtime/mode/remote-forwarder.js +119 -0
  653. package/runtime/mode/route-mode-guard.d.ts +21 -0
  654. package/runtime/mode/route-mode-guard.d.ts.map +1 -0
  655. package/runtime/mode/route-mode-guard.js +30 -0
  656. package/runtime/mode/route-mode-matrix.d.ts +64 -0
  657. package/runtime/mode/route-mode-matrix.d.ts.map +1 -0
  658. package/runtime/mode/route-mode-matrix.js +125 -0
  659. package/runtime/mode/runtime-mode.d.ts +54 -0
  660. package/runtime/mode/runtime-mode.d.ts.map +1 -0
  661. package/runtime/mode/runtime-mode.js +99 -0
  662. package/runtime/runtime-bootstrap-policy.d.ts +17 -0
  663. package/runtime/runtime-bootstrap-policy.d.ts.map +1 -0
  664. package/runtime/runtime-bootstrap-policy.js +37 -0
  665. package/runtime/sandbox-policy.d.ts +8 -0
  666. package/runtime/sandbox-policy.d.ts.map +1 -0
  667. package/runtime/sandbox-policy.js +7 -0
  668. package/runtime/startup-overlay.d.ts +14 -0
  669. package/runtime/startup-overlay.d.ts.map +1 -0
  670. package/runtime/startup-overlay.js +55 -0
  671. package/runtime/telegram-standalone-handler.d.ts +34 -0
  672. package/runtime/telegram-standalone-handler.d.ts.map +1 -0
  673. package/runtime/telegram-standalone-handler.js +195 -0
  674. package/runtime/telegram-standalone-policy.d.ts +2 -0
  675. package/runtime/telegram-standalone-policy.d.ts.map +1 -0
  676. package/runtime/telegram-standalone-policy.js +14 -0
  677. package/scripts/README.md +27 -0
  678. package/scripts/align-electrobun-version.mjs +37 -0
  679. package/scripts/aosp/README.md +66 -0
  680. package/scripts/aosp/avd-test.mjs +403 -0
  681. package/scripts/aosp/boot-validate.mjs +536 -0
  682. package/scripts/aosp/build-aosp.mjs +448 -0
  683. package/scripts/aosp/build-bootanimation.mjs +178 -0
  684. package/scripts/aosp/capture-screens.mjs +325 -0
  685. package/scripts/aosp/compile-libllama.mjs +1333 -0
  686. package/scripts/aosp/compile-shim.mjs +328 -0
  687. package/scripts/aosp/e2e-validate.mjs +225 -0
  688. package/scripts/aosp/lib/load-variant-config.mjs +182 -0
  689. package/scripts/aosp/lint-init-rc.mjs +258 -0
  690. package/scripts/aosp/llama-cpp-patches/README.md +49 -0
  691. package/scripts/aosp/llama-cpp-patches/apply-patches.mjs +198 -0
  692. package/scripts/aosp/llama-cpp-patches/polarquant/0001-Q4_POLAR-register-GGML_TYPE_Q4_POLAR-45-and-block_q4.patch +108 -0
  693. package/scripts/aosp/llama-cpp-patches/polarquant/0002-Q4_POLAR-vendor-PolarQuant-ref-kernels-into-ggml-bas.patch +460 -0
  694. package/scripts/aosp/llama-cpp-patches/polarquant/0003-tests-cover-Q4_POLAR-fix-latent-buffer-overflow.patch +102 -0
  695. package/scripts/aosp/llama-cpp-patches/polarquant/0004-Q4_POLAR-gate-QJL-residual-on-runtime-flag-default-o.patch +97 -0
  696. package/scripts/aosp/llama-cpp-patches/qjl/0001-ggml-add-GGML_TYPE_QJL1_256-GGML_OP_ATTN_SCORE_QJL-e.patch +120 -0
  697. package/scripts/aosp/llama-cpp-patches/qjl/0002-ggml-register-QJL1_256-type-traits-ATTN_SCORE_QJL-op.patch +1392 -0
  698. package/scripts/aosp/llama-cpp-patches/qjl/0003-ggml-set-QJL1_256-blck_size-to-head_dim-128-not-sket.patch +56 -0
  699. package/scripts/aosp/llama-cpp-patches/qjl/0004-tests-add-test-qjl-cache-verifying-type-traits-score.patch +335 -0
  700. package/scripts/aosp/llama-cpp-patches/qjl/0005-ggml-flip-block_qjl1_256-to-signs-then-norm.patch +69 -0
  701. package/scripts/aosp/llama-shim/eliza_llama_shim.c +276 -0
  702. package/scripts/aosp/seccomp-shim/loader-wrap.c +141 -0
  703. package/scripts/aosp/seccomp-shim/sigsys-handler.c +338 -0
  704. package/scripts/aosp/sim.mjs +277 -0
  705. package/scripts/aosp/smoke-cuttlefish.mjs +673 -0
  706. package/scripts/aosp/stage-default-models.mjs +340 -0
  707. package/scripts/aosp/stage-models-dfm.mjs +384 -0
  708. package/scripts/aosp/sync-to-aosp.mjs +134 -0
  709. package/scripts/aosp/validate.mjs +1273 -0
  710. package/scripts/aosp/variant-config-schema.ts +10 -0
  711. package/scripts/audit-live-test-surface.mjs +590 -0
  712. package/scripts/audit-server-test-surface.mjs +163 -0
  713. package/scripts/benchmark-preflight.mjs +170 -0
  714. package/scripts/bin/.gitkeep +0 -0
  715. package/scripts/build-bundled-agent-skills-artifact.mjs +58 -0
  716. package/scripts/build-bundled-orchestrator-artifact.mjs +66 -0
  717. package/scripts/build-capacitor-app.mjs +122 -0
  718. package/scripts/build-electrobun-preload.mjs +117 -0
  719. package/scripts/build-flatpak.mjs +125 -0
  720. package/scripts/build-image.sh +461 -0
  721. package/scripts/build-llama-cpp-dflash.mjs +1831 -0
  722. package/scripts/build-native-plugins.mjs +153 -0
  723. package/scripts/build-patched-electrobun-cli.mjs +424 -0
  724. package/scripts/build-win.mjs +82 -0
  725. package/scripts/bump-elizaos.sh +438 -0
  726. package/scripts/check-i18n.mjs +328 -0
  727. package/scripts/check-secret-hygiene.mjs +344 -0
  728. package/scripts/check-upstream-drift.mjs +102 -0
  729. package/scripts/clean-repo.mjs +187 -0
  730. package/scripts/codesign-mas.mjs +297 -0
  731. package/scripts/container-entrypoint.mjs +101 -0
  732. package/scripts/coordinator-cross-platform-review.mjs +192 -0
  733. package/scripts/copy-package-assets.mjs +31 -0
  734. package/scripts/copy-runtime-node-modules.ts +1782 -0
  735. package/scripts/coverage-policy.d.mts +16 -0
  736. package/scripts/coverage-policy.mjs +38 -0
  737. package/scripts/css-coverage.mjs +241 -0
  738. package/scripts/deploy-image.sh +318 -0
  739. package/scripts/desktop-build.mjs +867 -0
  740. package/scripts/desktop-stack-status.mjs +80 -0
  741. package/scripts/dev-platform.mjs +975 -0
  742. package/scripts/dev-ui.mjs +1178 -0
  743. package/scripts/dev-win.mjs +25 -0
  744. package/scripts/disable-local-eliza-workspace.mjs +420 -0
  745. package/scripts/docker-ci-smoke.sh +500 -0
  746. package/scripts/docker-entrypoint.sh +11 -0
  747. package/scripts/docker-runtime-review.mjs +230 -0
  748. package/scripts/docs-list.js +206 -0
  749. package/scripts/ensure-avatars.mjs +335 -0
  750. package/scripts/ensure-bundled-workspaces.mjs +143 -0
  751. package/scripts/ensure-capacitor-platform.mjs +58 -0
  752. package/scripts/ensure-electrobun-core.mjs +318 -0
  753. package/scripts/ensure-generated-core-proto-js.mjs +125 -0
  754. package/scripts/ensure-shared-i18n-data.mjs +67 -0
  755. package/scripts/ensure-skills.mjs +177 -0
  756. package/scripts/ensure-type-package-aliases.mjs +246 -0
  757. package/scripts/ensure-vision-deps.mjs +196 -0
  758. package/scripts/entry.ts +11 -0
  759. package/scripts/find-collisions.mjs +765 -0
  760. package/scripts/find-duplicate-components.mjs +203 -0
  761. package/scripts/fix-workspace-deps.mjs +328 -0
  762. package/scripts/generate-onboarding-voicelines.mjs +194 -0
  763. package/scripts/generate-plugin-index.js +1055 -0
  764. package/scripts/generate-static-asset-manifest.mjs +15 -0
  765. package/scripts/generated/static-asset-manifest.json +4 -0
  766. package/scripts/i18n-dynamic-keys.json +128 -0
  767. package/scripts/init-submodules.mjs +425 -0
  768. package/scripts/ios-xcframework/README.md +233 -0
  769. package/scripts/ios-xcframework/build-xcframework.mjs +487 -0
  770. package/scripts/kernel-patches/metal-kernels.mjs +636 -0
  771. package/scripts/kernel-patches/vulkan-dispatch-patches/01-vulkan-shaders-gen.patch +41 -0
  772. package/scripts/kernel-patches/vulkan-dispatch-patches/02-ggml-vulkan-pipelines.patch +86 -0
  773. package/scripts/kernel-patches/vulkan-kernels.mjs +281 -0
  774. package/scripts/lib/allocate-loopback-port.mjs +58 -0
  775. package/scripts/lib/api-supervisor.mjs +115 -0
  776. package/scripts/lib/app-dir.mjs +74 -0
  777. package/scripts/lib/asset-cdn.mjs +118 -0
  778. package/scripts/lib/bun-version-guard.mjs +44 -0
  779. package/scripts/lib/capacitor-platform-templates.mjs +306 -0
  780. package/scripts/lib/capacitor-plugin-build-needed.mjs +79 -0
  781. package/scripts/lib/capacitor-plugin-names.mjs +35 -0
  782. package/scripts/lib/desktop-preflight.mjs +122 -0
  783. package/scripts/lib/desktop-stack-status.mjs +151 -0
  784. package/scripts/lib/dev-ui-onchain.mjs +22 -0
  785. package/scripts/lib/dev-ui-vision.mjs +15 -0
  786. package/scripts/lib/kill-process-tree.mjs +87 -0
  787. package/scripts/lib/kill-ui-listen-port.mjs +74 -0
  788. package/scripts/lib/node-path-env.mjs +11 -0
  789. package/scripts/lib/orchestrator-desktop-dev-banner.mjs +285 -0
  790. package/scripts/lib/patch-bun-exports.mjs +1446 -0
  791. package/scripts/lib/read-app-identity.mjs +50 -0
  792. package/scripts/lib/release-check-pack-dry-run.ts +34 -0
  793. package/scripts/lib/repo-root.mjs +77 -0
  794. package/scripts/lib/stage-android-agent.mjs +704 -0
  795. package/scripts/lib/static-asset-manifest.mjs +151 -0
  796. package/scripts/lib/sync-eliza-env-aliases.mjs +37 -0
  797. package/scripts/lib/vite-renderer-dist-stale.mjs +141 -0
  798. package/scripts/lib/workspace-discovery.mjs +108 -0
  799. package/scripts/lifeops-prompt-benchmark.ts +206 -0
  800. package/scripts/link-browser-server.mjs +157 -0
  801. package/scripts/link-docker-local-app-packages.mjs +345 -0
  802. package/scripts/link-external-plugins.mjs +195 -0
  803. package/scripts/mobile-auth-simulator-smoke.mjs +373 -0
  804. package/scripts/normalize-parallax-capture.ts +97 -0
  805. package/scripts/omnivoice-fuse/Makefile +44 -0
  806. package/scripts/omnivoice-fuse/README.md +266 -0
  807. package/scripts/omnivoice-fuse/cmake-graft.mjs +180 -0
  808. package/scripts/omnivoice-fuse/ffi-stub.c +222 -0
  809. package/scripts/omnivoice-fuse/ffi.h +158 -0
  810. package/scripts/omnivoice-fuse/libelizainference_stub.dylib +0 -0
  811. package/scripts/omnivoice-fuse/prepare.mjs +263 -0
  812. package/scripts/omnivoice-fuse/verify-symbols.mjs +138 -0
  813. package/scripts/pack-upstreams.mjs +392 -0
  814. package/scripts/patch-deps.mjs +597 -0
  815. package/scripts/patch-workspace-plugins.mjs +148 -0
  816. package/scripts/playwright-ui-live-stack.ts +667 -0
  817. package/scripts/playwright-ui-smoke-api-stub.mjs +1838 -0
  818. package/scripts/plugin-index-local-additions.json +12 -0
  819. package/scripts/plugin-metadata-overrides.json +165 -0
  820. package/scripts/pre-review-local.mjs +599 -0
  821. package/scripts/prepare-ios-cocoapods.sh +30 -0
  822. package/scripts/prepare-package-dist.mjs +358 -0
  823. package/scripts/process-vrms.mjs +203 -0
  824. package/scripts/prune-cdn-local-assets.mjs +44 -0
  825. package/scripts/publish-local-plugins-next.mjs +122 -0
  826. package/scripts/release-check.ts +1402 -0
  827. package/scripts/relink-workspace-packages-to-dist.mjs +115 -0
  828. package/scripts/replace-workspace-versions.mjs +128 -0
  829. package/scripts/report-coverage-surfaces.mjs +121 -0
  830. package/scripts/restore-workspace-refs.mjs +128 -0
  831. package/scripts/rt.mjs +29 -0
  832. package/scripts/rt.sh +4 -0
  833. package/scripts/run-biome-check.mjs +191 -0
  834. package/scripts/run-coding-agent-e2e.mjs +46 -0
  835. package/scripts/run-desktop-playwright.mjs +35 -0
  836. package/scripts/run-local-plugin-live-smoke.mjs +185 -0
  837. package/scripts/run-mobile-build.mjs +3308 -0
  838. package/scripts/run-node-runtime.mjs +75 -0
  839. package/scripts/run-node-tsx.mjs +62 -0
  840. package/scripts/run-node.mjs +294 -0
  841. package/scripts/run-playwright.mjs +66 -0
  842. package/scripts/run-production-build.mjs +138 -0
  843. package/scripts/run-release-contract-suite.mjs +57 -0
  844. package/scripts/run-repo-setup.mjs +230 -0
  845. package/scripts/run-screenshotter.mjs +140 -0
  846. package/scripts/run-ui-smoke-playwright-suite.mjs +96 -0
  847. package/scripts/run-windows-smoke-launcher.ps1 +35 -0
  848. package/scripts/run-with-env.mjs +60 -0
  849. package/scripts/runtime-package-manifest.ts +107 -0
  850. package/scripts/sandbox-setup.sh +7 -0
  851. package/scripts/sanitize-npm-package-metadata.mjs +165 -0
  852. package/scripts/set-package-version.mjs +13 -0
  853. package/scripts/setup-upstreams.mjs +838 -0
  854. package/scripts/smoke-api-status.mjs +113 -0
  855. package/scripts/smoke-lifeops.mjs +305 -0
  856. package/scripts/startup-integration-script-drift.test.ts +94 -0
  857. package/scripts/sync-desktop-renderer.mjs +308 -0
  858. package/scripts/sync-dod-gap-issues-lib.mjs +214 -0
  859. package/scripts/sync-dod-gap-issues.mjs +218 -0
  860. package/scripts/type-audit.mjs +606 -0
  861. package/scripts/validate-cdn-assets.mjs +307 -0
  862. package/scripts/validate-regression-matrix.mjs +360 -0
  863. package/scripts/workspace-plugin-patches/plugin-anthropic-elizaos-core-api-compat.patch +34 -0
  864. package/scripts/workspace-prepare.mjs +192 -0
  865. package/scripts/worktree-env.sh +41 -0
  866. package/scripts/write-build-info.ts +69 -0
  867. package/scripts/write-homepage-release-data.mjs +393 -0
  868. package/security/agent-vault-id.d.ts +16 -0
  869. package/security/agent-vault-id.d.ts.map +1 -0
  870. package/security/agent-vault-id.js +32 -0
  871. package/security/cloud-secret-store.d.ts +34 -0
  872. package/security/cloud-secret-store.d.ts.map +1 -0
  873. package/security/cloud-secret-store.js +65 -0
  874. package/security/export-guard.d.ts +34 -0
  875. package/security/export-guard.d.ts.map +1 -0
  876. package/security/export-guard.js +127 -0
  877. package/security/hydrate-wallet-keys-from-platform-store.d.ts +13 -0
  878. package/security/hydrate-wallet-keys-from-platform-store.d.ts.map +1 -0
  879. package/security/hydrate-wallet-keys-from-platform-store.js +116 -0
  880. package/security/platform-secure-store-node.d.ts +13 -0
  881. package/security/platform-secure-store-node.d.ts.map +1 -0
  882. package/security/platform-secure-store-node.js +311 -0
  883. package/security/platform-secure-store.d.ts +47 -0
  884. package/security/platform-secure-store.d.ts.map +1 -0
  885. package/security/platform-secure-store.js +10 -0
  886. package/security/wallet-os-store-actions.d.ts +45 -0
  887. package/security/wallet-os-store-actions.d.ts.map +1 -0
  888. package/security/wallet-os-store-actions.js +125 -0
  889. package/services/account-pool.d.ts +134 -0
  890. package/services/account-pool.d.ts.map +1 -0
  891. package/services/account-pool.js +693 -0
  892. package/services/account-usage.d.ts +75 -0
  893. package/services/account-usage.d.ts.map +1 -0
  894. package/services/account-usage.js +179 -0
  895. package/services/auth-store.d.ts +179 -0
  896. package/services/auth-store.d.ts.map +1 -0
  897. package/services/auth-store.js +404 -0
  898. package/services/cloud-jwks-store.d.ts +62 -0
  899. package/services/cloud-jwks-store.d.ts.map +1 -0
  900. package/services/cloud-jwks-store.js +118 -0
  901. package/services/connector-target-catalog.d.ts +78 -0
  902. package/services/connector-target-catalog.d.ts.map +1 -0
  903. package/services/connector-target-catalog.js +64 -0
  904. package/services/discord-target-source.d.ts +53 -0
  905. package/services/discord-target-source.d.ts.map +1 -0
  906. package/services/discord-target-source.js +116 -0
  907. package/services/github-credentials.d.ts +95 -0
  908. package/services/github-credentials.d.ts.map +1 -0
  909. package/services/github-credentials.js +144 -0
  910. package/services/local-inference/__stress__/cache-stress-helpers.d.ts +76 -0
  911. package/services/local-inference/__stress__/cache-stress-helpers.d.ts.map +1 -0
  912. package/services/local-inference/__stress__/cache-stress-helpers.js +238 -0
  913. package/services/local-inference/active-model.d.ts +180 -0
  914. package/services/local-inference/active-model.d.ts.map +1 -0
  915. package/services/local-inference/active-model.js +362 -0
  916. package/services/local-inference/assignments.d.ts +58 -0
  917. package/services/local-inference/assignments.d.ts.map +1 -0
  918. package/services/local-inference/assignments.js +179 -0
  919. package/services/local-inference/backend.d.ts +200 -0
  920. package/services/local-inference/backend.d.ts.map +1 -0
  921. package/services/local-inference/backend.js +242 -0
  922. package/services/local-inference/bundled-models.d.ts +34 -0
  923. package/services/local-inference/bundled-models.d.ts.map +1 -0
  924. package/services/local-inference/bundled-models.js +104 -0
  925. package/services/local-inference/cache-bridge.d.ts +184 -0
  926. package/services/local-inference/cache-bridge.d.ts.map +1 -0
  927. package/services/local-inference/cache-bridge.js +333 -0
  928. package/services/local-inference/catalog.d.ts +56 -0
  929. package/services/local-inference/catalog.d.ts.map +1 -0
  930. package/services/local-inference/catalog.js +143 -0
  931. package/services/local-inference/conversation-registry.d.ts +122 -0
  932. package/services/local-inference/conversation-registry.d.ts.map +1 -0
  933. package/services/local-inference/conversation-registry.js +182 -0
  934. package/services/local-inference/device-bridge.d.ts +139 -0
  935. package/services/local-inference/device-bridge.d.ts.map +1 -0
  936. package/services/local-inference/device-bridge.js +774 -0
  937. package/services/local-inference/dflash-doctor.d.ts +27 -0
  938. package/services/local-inference/dflash-doctor.d.ts.map +1 -0
  939. package/services/local-inference/dflash-doctor.js +149 -0
  940. package/services/local-inference/dflash-server.d.ts +248 -0
  941. package/services/local-inference/dflash-server.d.ts.map +1 -0
  942. package/services/local-inference/dflash-server.js +1076 -0
  943. package/services/local-inference/downloader.d.ts +46 -0
  944. package/services/local-inference/downloader.d.ts.map +1 -0
  945. package/services/local-inference/downloader.js +389 -0
  946. package/services/local-inference/engine.d.ts +282 -0
  947. package/services/local-inference/engine.d.ts.map +1 -0
  948. package/services/local-inference/engine.js +743 -0
  949. package/services/local-inference/external-scanner.d.ts +17 -0
  950. package/services/local-inference/external-scanner.d.ts.map +1 -0
  951. package/services/local-inference/external-scanner.js +261 -0
  952. package/services/local-inference/handler-registry.d.ts +72 -0
  953. package/services/local-inference/handler-registry.d.ts.map +1 -0
  954. package/services/local-inference/handler-registry.js +159 -0
  955. package/services/local-inference/hardware.d.ts +26 -0
  956. package/services/local-inference/hardware.d.ts.map +1 -0
  957. package/services/local-inference/hardware.js +139 -0
  958. package/services/local-inference/hf-search.d.ts +19 -0
  959. package/services/local-inference/hf-search.d.ts.map +1 -0
  960. package/services/local-inference/hf-search.js +169 -0
  961. package/services/local-inference/index.d.ts +10 -0
  962. package/services/local-inference/index.d.ts.map +1 -0
  963. package/services/local-inference/index.js +7 -0
  964. package/services/local-inference/llama-server-metrics.d.ts +108 -0
  965. package/services/local-inference/llama-server-metrics.d.ts.map +1 -0
  966. package/services/local-inference/llama-server-metrics.js +175 -0
  967. package/services/local-inference/manifest/index.d.ts +4 -0
  968. package/services/local-inference/manifest/index.d.ts.map +1 -0
  969. package/services/local-inference/manifest/index.js +5 -0
  970. package/services/local-inference/manifest/schema.d.ts +419 -0
  971. package/services/local-inference/manifest/schema.d.ts.map +1 -0
  972. package/services/local-inference/manifest/schema.js +227 -0
  973. package/services/local-inference/manifest/types.d.ts +23 -0
  974. package/services/local-inference/manifest/types.d.ts.map +1 -0
  975. package/services/local-inference/manifest/types.js +5 -0
  976. package/services/local-inference/manifest/validator.d.ts +43 -0
  977. package/services/local-inference/manifest/validator.d.ts.map +1 -0
  978. package/services/local-inference/manifest/validator.js +132 -0
  979. package/services/local-inference/paths.d.ts +8 -0
  980. package/services/local-inference/paths.d.ts.map +1 -0
  981. package/services/local-inference/paths.js +7 -0
  982. package/services/local-inference/providers.d.ts +61 -0
  983. package/services/local-inference/providers.d.ts.map +1 -0
  984. package/services/local-inference/providers.js +334 -0
  985. package/services/local-inference/ram-budget.d.ts +57 -0
  986. package/services/local-inference/ram-budget.d.ts.map +1 -0
  987. package/services/local-inference/ram-budget.js +107 -0
  988. package/services/local-inference/readiness.d.ts +9 -0
  989. package/services/local-inference/readiness.d.ts.map +1 -0
  990. package/services/local-inference/readiness.js +153 -0
  991. package/services/local-inference/recommendation.d.ts +62 -0
  992. package/services/local-inference/recommendation.d.ts.map +1 -0
  993. package/services/local-inference/recommendation.js +309 -0
  994. package/services/local-inference/registry.d.ts +35 -0
  995. package/services/local-inference/registry.d.ts.map +1 -0
  996. package/services/local-inference/registry.js +108 -0
  997. package/services/local-inference/router-handler.d.ts +51 -0
  998. package/services/local-inference/router-handler.d.ts.map +1 -0
  999. package/services/local-inference/router-handler.js +165 -0
  1000. package/services/local-inference/routing-policy.d.ts +55 -0
  1001. package/services/local-inference/routing-policy.d.ts.map +1 -0
  1002. package/services/local-inference/routing-policy.js +195 -0
  1003. package/services/local-inference/routing-preferences.d.ts +8 -0
  1004. package/services/local-inference/routing-preferences.d.ts.map +1 -0
  1005. package/services/local-inference/routing-preferences.js +7 -0
  1006. package/services/local-inference/service.d.ts +88 -0
  1007. package/services/local-inference/service.d.ts.map +1 -0
  1008. package/services/local-inference/service.js +210 -0
  1009. package/services/local-inference/session-pool.d.ts +72 -0
  1010. package/services/local-inference/session-pool.d.ts.map +1 -0
  1011. package/services/local-inference/session-pool.js +125 -0
  1012. package/services/local-inference/types.d.ts +303 -0
  1013. package/services/local-inference/types.d.ts.map +1 -0
  1014. package/services/local-inference/types.js +23 -0
  1015. package/services/local-inference/verify.d.ts +8 -0
  1016. package/services/local-inference/verify.d.ts.map +1 -0
  1017. package/services/local-inference/verify.js +7 -0
  1018. package/services/local-inference/voice/barge-in.d.ts +15 -0
  1019. package/services/local-inference/voice/barge-in.d.ts.map +1 -0
  1020. package/services/local-inference/voice/barge-in.js +20 -0
  1021. package/services/local-inference/voice/engine-bridge.d.ts +256 -0
  1022. package/services/local-inference/voice/engine-bridge.d.ts.map +1 -0
  1023. package/services/local-inference/voice/engine-bridge.js +398 -0
  1024. package/services/local-inference/voice/ffi-bindings.d.ts +114 -0
  1025. package/services/local-inference/voice/ffi-bindings.d.ts.map +1 -0
  1026. package/services/local-inference/voice/ffi-bindings.js +281 -0
  1027. package/services/local-inference/voice/index.d.ts +51 -0
  1028. package/services/local-inference/voice/index.d.ts.map +1 -0
  1029. package/services/local-inference/voice/index.js +50 -0
  1030. package/services/local-inference/voice/lifecycle.d.ts +135 -0
  1031. package/services/local-inference/voice/lifecycle.d.ts.map +1 -0
  1032. package/services/local-inference/voice/lifecycle.js +189 -0
  1033. package/services/local-inference/voice/phoneme-tokenizer.d.ts +58 -0
  1034. package/services/local-inference/voice/phoneme-tokenizer.d.ts.map +1 -0
  1035. package/services/local-inference/voice/phoneme-tokenizer.js +53 -0
  1036. package/services/local-inference/voice/phrase-cache.d.ts +24 -0
  1037. package/services/local-inference/voice/phrase-cache.d.ts.map +1 -0
  1038. package/services/local-inference/voice/phrase-cache.js +32 -0
  1039. package/services/local-inference/voice/phrase-chunker.d.ts +20 -0
  1040. package/services/local-inference/voice/phrase-chunker.d.ts.map +1 -0
  1041. package/services/local-inference/voice/phrase-chunker.js +85 -0
  1042. package/services/local-inference/voice/ring-buffer.d.ts +40 -0
  1043. package/services/local-inference/voice/ring-buffer.d.ts.map +1 -0
  1044. package/services/local-inference/voice/ring-buffer.js +85 -0
  1045. package/services/local-inference/voice/rollback-queue.d.ts +24 -0
  1046. package/services/local-inference/voice/rollback-queue.d.ts.map +1 -0
  1047. package/services/local-inference/voice/rollback-queue.js +49 -0
  1048. package/services/local-inference/voice/scheduler.d.ts +47 -0
  1049. package/services/local-inference/voice/scheduler.d.ts.map +1 -0
  1050. package/services/local-inference/voice/scheduler.js +123 -0
  1051. package/services/local-inference/voice/shared-resources.d.ts +119 -0
  1052. package/services/local-inference/voice/shared-resources.d.ts.map +1 -0
  1053. package/services/local-inference/voice/shared-resources.js +83 -0
  1054. package/services/local-inference/voice/speaker-preset-cache.d.ts +28 -0
  1055. package/services/local-inference/voice/speaker-preset-cache.d.ts.map +1 -0
  1056. package/services/local-inference/voice/speaker-preset-cache.js +44 -0
  1057. package/services/local-inference/voice/types.d.ts +80 -0
  1058. package/services/local-inference/voice/types.d.ts.map +1 -0
  1059. package/services/local-inference/voice/voice-preset-format.d.ts +56 -0
  1060. package/services/local-inference/voice/voice-preset-format.d.ts.map +1 -0
  1061. package/services/local-inference/voice/voice-preset-format.js +184 -0
  1062. package/services/persistence.d.ts +48 -0
  1063. package/services/persistence.d.ts.map +1 -0
  1064. package/services/persistence.js +128 -0
  1065. package/services/plugin-installer.d.ts +22 -0
  1066. package/services/plugin-installer.d.ts.map +1 -0
  1067. package/services/plugin-installer.js +41 -0
  1068. package/services/secrets-manager-installer.d.ts +140 -0
  1069. package/services/secrets-manager-installer.d.ts.map +1 -0
  1070. package/services/secrets-manager-installer.js +374 -0
  1071. package/services/steward-credentials.d.ts +37 -0
  1072. package/services/steward-credentials.d.ts.map +1 -0
  1073. package/services/steward-credentials.js +93 -0
  1074. package/services/steward-sidecar/health-check.d.ts +9 -0
  1075. package/services/steward-sidecar/health-check.d.ts.map +1 -0
  1076. package/services/steward-sidecar/health-check.js +34 -0
  1077. package/services/steward-sidecar/helpers.d.ts +21 -0
  1078. package/services/steward-sidecar/helpers.d.ts.map +1 -0
  1079. package/services/steward-sidecar/helpers.js +71 -0
  1080. package/services/steward-sidecar/process-management.d.ts +9 -0
  1081. package/services/steward-sidecar/process-management.d.ts.map +1 -0
  1082. package/services/steward-sidecar/process-management.js +53 -0
  1083. package/services/steward-sidecar/types.d.ts +60 -0
  1084. package/services/steward-sidecar/types.d.ts.map +1 -0
  1085. package/services/steward-sidecar/types.js +17 -0
  1086. package/services/steward-sidecar/wallet-setup.d.ts +9 -0
  1087. package/services/steward-sidecar/wallet-setup.d.ts.map +1 -0
  1088. package/services/steward-sidecar/wallet-setup.js +114 -0
  1089. package/services/steward-sidecar.d.ts +70 -0
  1090. package/services/steward-sidecar.d.ts.map +1 -0
  1091. package/services/steward-sidecar.js +385 -0
  1092. package/services/tool-call-cache/index.d.ts +13 -0
  1093. package/services/tool-call-cache/index.d.ts.map +1 -0
  1094. package/services/tool-call-cache/index.js +11 -0
  1095. package/services/trigger-event-bridge.d.ts +52 -0
  1096. package/services/trigger-event-bridge.d.ts.map +1 -0
  1097. package/services/trigger-event-bridge.js +217 -0
  1098. package/services/update-notifier.d.ts +6 -0
  1099. package/services/update-notifier.d.ts.map +1 -0
  1100. package/services/update-notifier.js +33 -0
  1101. package/services/vault-bootstrap.d.ts +31 -0
  1102. package/services/vault-bootstrap.d.ts.map +1 -0
  1103. package/services/vault-bootstrap.js +209 -0
  1104. package/services/vault-mirror.d.ts +44 -0
  1105. package/services/vault-mirror.d.ts.map +1 -0
  1106. package/services/vault-mirror.js +80 -0
  1107. package/styles/electrobun-mac-window-drag.css +66 -0
  1108. package/test/helpers/__tests__/live-agent-test.smoke.test.ts +105 -0
  1109. package/test/helpers/action-assertions.ts +364 -0
  1110. package/test/helpers/action-spy.ts +354 -0
  1111. package/test/helpers/browser-launch.ts +103 -0
  1112. package/test/helpers/browser-mocks.ts +275 -0
  1113. package/test/helpers/conditional-tests.ts +42 -0
  1114. package/test/helpers/conversation-harness.ts +334 -0
  1115. package/test/helpers/http.ts +150 -0
  1116. package/test/helpers/i18n.ts +5 -0
  1117. package/test/helpers/isolated-config.ts +34 -0
  1118. package/test/helpers/live-agent-test.ts +660 -0
  1119. package/test/helpers/live-child-env.ts +72 -0
  1120. package/test/helpers/live-provider.test.ts +124 -0
  1121. package/test/helpers/live-provider.ts +362 -0
  1122. package/test/helpers/live-runtime-server.ts +88 -0
  1123. package/test/helpers/loopback.ts +33 -0
  1124. package/test/helpers/pglite-runtime.ts +173 -0
  1125. package/test/helpers/react-test.ts +40 -0
  1126. package/test/helpers/real-connector.ts +250 -0
  1127. package/test/helpers/real-runtime.ts +542 -0
  1128. package/test/helpers/skip-without.ts +53 -0
  1129. package/test/helpers/stochastic-test.ts +186 -0
  1130. package/test/helpers/test-utils.ts +94 -0
  1131. package/test/helpers/trajectory-assertions.ts +168 -0
  1132. package/test/helpers/trajectory-harness.test.ts +101 -0
  1133. package/test/helpers/trajectory-harness.ts +988 -0
  1134. package/test/scripts/managed-test-command.mjs +632 -0
  1135. package/test/scripts/task-agent-live-smoke.ts +1335 -0
  1136. package/test/scripts/test-parallel.mjs +237 -0
  1137. package/test/scripts/test-root-unit.mjs +169 -0
  1138. package/test/scripts/test-runner.mjs +78 -0
  1139. package/test/scripts/validate-all-features.sh +541 -0
  1140. package/test-support/test-helpers.d.ts +111 -0
  1141. package/test-support/test-helpers.d.ts.map +1 -0
  1142. package/test-support/test-helpers.js +410 -0
  1143. package/ui-compat.d.ts +3 -0
  1144. package/ui-compat.d.ts.map +1 -0
  1145. package/ui-compat.js +3 -0
  1146. package/utils/eliza-root.d.ts +9 -0
  1147. package/utils/eliza-root.d.ts.map +1 -0
  1148. package/utils/eliza-root.js +101 -0
  1149. package/utils/globals.d.ts +7 -0
  1150. package/utils/globals.d.ts.map +1 -0
  1151. package/utils/globals.js +47 -0
  1152. package/App.d.ts +0 -5
  1153. package/App.d.ts.map +0 -1
  1154. package/App.js +0 -220
  1155. package/LICENSE +0 -21
  1156. package/actions/character.d.ts +0 -39
  1157. package/actions/character.d.ts.map +0 -1
  1158. package/actions/character.js +0 -247
  1159. package/actions/chat-helpers.d.ts +0 -47
  1160. package/actions/chat-helpers.d.ts.map +0 -1
  1161. package/actions/chat-helpers.js +0 -79
  1162. package/actions/cloud.d.ts +0 -17
  1163. package/actions/cloud.d.ts.map +0 -1
  1164. package/actions/cloud.js +0 -43
  1165. package/actions/index.d.ts +0 -12
  1166. package/actions/index.d.ts.map +0 -1
  1167. package/actions/index.js +0 -11
  1168. package/actions/lifecycle.d.ts +0 -43
  1169. package/actions/lifecycle.d.ts.map +0 -1
  1170. package/actions/lifecycle.js +0 -118
  1171. package/actions/onboarding.d.ts +0 -13
  1172. package/actions/onboarding.d.ts.map +0 -1
  1173. package/actions/onboarding.js +0 -26
  1174. package/actions/triggers.d.ts +0 -23
  1175. package/actions/triggers.d.ts.map +0 -1
  1176. package/actions/triggers.js +0 -148
  1177. package/api/client.d.ts +0 -2742
  1178. package/api/client.d.ts.map +0 -1
  1179. package/api/client.js +0 -2520
  1180. package/api/index.d.ts +0 -2
  1181. package/api/index.d.ts.map +0 -1
  1182. package/api/index.js +0 -1
  1183. package/autonomy/index.d.ts +0 -48
  1184. package/autonomy/index.d.ts.map +0 -1
  1185. package/autonomy/index.js +0 -330
  1186. package/bridge/capacitor-bridge.d.ts +0 -153
  1187. package/bridge/capacitor-bridge.d.ts.map +0 -1
  1188. package/bridge/capacitor-bridge.js +0 -193
  1189. package/bridge/electrobun-rpc.d.ts +0 -28
  1190. package/bridge/electrobun-rpc.d.ts.map +0 -1
  1191. package/bridge/electrobun-rpc.js +0 -35
  1192. package/bridge/electrobun-runtime.d.ts +0 -3
  1193. package/bridge/electrobun-runtime.d.ts.map +0 -1
  1194. package/bridge/electrobun-runtime.js +0 -17
  1195. package/bridge/index.d.ts +0 -6
  1196. package/bridge/index.d.ts.map +0 -1
  1197. package/bridge/index.js +0 -5
  1198. package/bridge/native-plugins.d.ts +0 -82
  1199. package/bridge/native-plugins.d.ts.map +0 -1
  1200. package/bridge/native-plugins.js +0 -39
  1201. package/bridge/plugin-bridge.d.ts +0 -116
  1202. package/bridge/plugin-bridge.d.ts.map +0 -1
  1203. package/bridge/plugin-bridge.js +0 -203
  1204. package/bridge/storage-bridge.d.ts +0 -39
  1205. package/bridge/storage-bridge.d.ts.map +0 -1
  1206. package/bridge/storage-bridge.js +0 -135
  1207. package/chat/index.d.ts +0 -57
  1208. package/chat/index.d.ts.map +0 -1
  1209. package/chat/index.js +0 -160
  1210. package/coding/index.d.ts +0 -25
  1211. package/coding/index.d.ts.map +0 -1
  1212. package/coding/index.js +0 -25
  1213. package/components/AdvancedPageView.d.ts +0 -17
  1214. package/components/AdvancedPageView.d.ts.map +0 -1
  1215. package/components/AdvancedPageView.js +0 -146
  1216. package/components/AgentActivityBox.d.ts +0 -7
  1217. package/components/AgentActivityBox.d.ts.map +0 -1
  1218. package/components/AgentActivityBox.js +0 -25
  1219. package/components/ApiKeyConfig.d.ts +0 -26
  1220. package/components/ApiKeyConfig.d.ts.map +0 -1
  1221. package/components/ApiKeyConfig.js +0 -119
  1222. package/components/AppsPageView.d.ts +0 -7
  1223. package/components/AppsPageView.d.ts.map +0 -1
  1224. package/components/AppsPageView.js +0 -31
  1225. package/components/AppsView.d.ts +0 -8
  1226. package/components/AppsView.d.ts.map +0 -1
  1227. package/components/AppsView.js +0 -149
  1228. package/components/AvatarLoader.d.ts +0 -13
  1229. package/components/AvatarLoader.d.ts.map +0 -1
  1230. package/components/AvatarLoader.js +0 -53
  1231. package/components/AvatarSelector.d.ts +0 -23
  1232. package/components/AvatarSelector.d.ts.map +0 -1
  1233. package/components/AvatarSelector.js +0 -105
  1234. package/components/BscTradePanel.d.ts +0 -22
  1235. package/components/BscTradePanel.d.ts.map +0 -1
  1236. package/components/BscTradePanel.js +0 -221
  1237. package/components/BugReportModal.d.ts +0 -2
  1238. package/components/BugReportModal.d.ts.map +0 -1
  1239. package/components/BugReportModal.js +0 -219
  1240. package/components/CharacterRoster.d.ts +0 -31
  1241. package/components/CharacterRoster.d.ts.map +0 -1
  1242. package/components/CharacterRoster.js +0 -41
  1243. package/components/CharacterView.d.ts +0 -8
  1244. package/components/CharacterView.d.ts.map +0 -1
  1245. package/components/CharacterView.js +0 -685
  1246. package/components/ChatAvatar.d.ts +0 -8
  1247. package/components/ChatAvatar.d.ts.map +0 -1
  1248. package/components/ChatAvatar.js +0 -89
  1249. package/components/ChatComposer.d.ts +0 -37
  1250. package/components/ChatComposer.d.ts.map +0 -1
  1251. package/components/ChatComposer.js +0 -136
  1252. package/components/ChatMessage.d.ts +0 -24
  1253. package/components/ChatMessage.d.ts.map +0 -1
  1254. package/components/ChatMessage.js +0 -187
  1255. package/components/ChatModalView.d.ts +0 -10
  1256. package/components/ChatModalView.d.ts.map +0 -1
  1257. package/components/ChatModalView.js +0 -57
  1258. package/components/ChatView.d.ts +0 -14
  1259. package/components/ChatView.d.ts.map +0 -1
  1260. package/components/ChatView.js +0 -526
  1261. package/components/CloudOnboarding.d.ts +0 -7
  1262. package/components/CloudOnboarding.d.ts.map +0 -1
  1263. package/components/CloudOnboarding.js +0 -22
  1264. package/components/CloudSourceControls.d.ts +0 -13
  1265. package/components/CloudSourceControls.d.ts.map +0 -1
  1266. package/components/CloudSourceControls.js +0 -16
  1267. package/components/CodingAgentSettingsSection.d.ts +0 -6
  1268. package/components/CodingAgentSettingsSection.d.ts.map +0 -1
  1269. package/components/CodingAgentSettingsSection.js +0 -272
  1270. package/components/CommandPalette.d.ts +0 -2
  1271. package/components/CommandPalette.d.ts.map +0 -1
  1272. package/components/CommandPalette.js +0 -181
  1273. package/components/CompanionSceneHost.d.ts +0 -14
  1274. package/components/CompanionSceneHost.d.ts.map +0 -1
  1275. package/components/CompanionSceneHost.js +0 -362
  1276. package/components/CompanionShell.d.ts +0 -17
  1277. package/components/CompanionShell.d.ts.map +0 -1
  1278. package/components/CompanionShell.js +0 -15
  1279. package/components/CompanionView.d.ts +0 -2
  1280. package/components/CompanionView.d.ts.map +0 -1
  1281. package/components/CompanionView.js +0 -22
  1282. package/components/ConfigPageView.d.ts +0 -11
  1283. package/components/ConfigPageView.d.ts.map +0 -1
  1284. package/components/ConfigPageView.js +0 -311
  1285. package/components/ConfigSaveFooter.d.ts +0 -8
  1286. package/components/ConfigSaveFooter.d.ts.map +0 -1
  1287. package/components/ConfigSaveFooter.js +0 -10
  1288. package/components/ConfirmModal.d.ts +0 -61
  1289. package/components/ConfirmModal.d.ts.map +0 -1
  1290. package/components/ConfirmModal.js +0 -164
  1291. package/components/ConnectionFailedBanner.d.ts +0 -6
  1292. package/components/ConnectionFailedBanner.d.ts.map +0 -1
  1293. package/components/ConnectionFailedBanner.js +0 -22
  1294. package/components/ConnectorsPageView.d.ts +0 -7
  1295. package/components/ConnectorsPageView.d.ts.map +0 -1
  1296. package/components/ConnectorsPageView.js +0 -8
  1297. package/components/ConversationsSidebar.d.ts +0 -9
  1298. package/components/ConversationsSidebar.d.ts.map +0 -1
  1299. package/components/ConversationsSidebar.js +0 -116
  1300. package/components/CustomActionEditor.d.ts +0 -10
  1301. package/components/CustomActionEditor.d.ts.map +0 -1
  1302. package/components/CustomActionEditor.js +0 -596
  1303. package/components/CustomActionsPanel.d.ts +0 -9
  1304. package/components/CustomActionsPanel.d.ts.map +0 -1
  1305. package/components/CustomActionsPanel.js +0 -107
  1306. package/components/CustomActionsView.d.ts +0 -2
  1307. package/components/CustomActionsView.d.ts.map +0 -1
  1308. package/components/CustomActionsView.js +0 -134
  1309. package/components/DatabasePageView.d.ts +0 -5
  1310. package/components/DatabasePageView.d.ts.map +0 -1
  1311. package/components/DatabasePageView.js +0 -28
  1312. package/components/DatabaseView.d.ts +0 -9
  1313. package/components/DatabaseView.d.ts.map +0 -1
  1314. package/components/DatabaseView.js +0 -311
  1315. package/components/ElizaCloudDashboard.d.ts +0 -2
  1316. package/components/ElizaCloudDashboard.d.ts.map +0 -1
  1317. package/components/ElizaCloudDashboard.js +0 -657
  1318. package/components/EmotePicker.d.ts +0 -2
  1319. package/components/EmotePicker.d.ts.map +0 -1
  1320. package/components/EmotePicker.js +0 -343
  1321. package/components/ErrorBoundary.d.ts +0 -22
  1322. package/components/ErrorBoundary.d.ts.map +0 -1
  1323. package/components/ErrorBoundary.js +0 -31
  1324. package/components/FineTuningView.d.ts +0 -2
  1325. package/components/FineTuningView.d.ts.map +0 -1
  1326. package/components/FineTuningView.js +0 -433
  1327. package/components/FlaminaGuide.d.ts +0 -10
  1328. package/components/FlaminaGuide.d.ts.map +0 -1
  1329. package/components/FlaminaGuide.js +0 -64
  1330. package/components/GameView.d.ts +0 -11
  1331. package/components/GameView.d.ts.map +0 -1
  1332. package/components/GameView.js +0 -294
  1333. package/components/GameViewOverlay.d.ts +0 -8
  1334. package/components/GameViewOverlay.d.ts.map +0 -1
  1335. package/components/GameViewOverlay.js +0 -70
  1336. package/components/GlobalEmoteOverlay.d.ts +0 -2
  1337. package/components/GlobalEmoteOverlay.d.ts.map +0 -1
  1338. package/components/GlobalEmoteOverlay.js +0 -112
  1339. package/components/Header.d.ts +0 -9
  1340. package/components/Header.d.ts.map +0 -1
  1341. package/components/Header.js +0 -123
  1342. package/components/HeartbeatsView.d.ts +0 -2
  1343. package/components/HeartbeatsView.d.ts.map +0 -1
  1344. package/components/HeartbeatsView.js +0 -378
  1345. package/components/InventoryView.d.ts +0 -10
  1346. package/components/InventoryView.d.ts.map +0 -1
  1347. package/components/InventoryView.js +0 -176
  1348. package/components/KnowledgeView.d.ts +0 -20
  1349. package/components/KnowledgeView.d.ts.map +0 -1
  1350. package/components/KnowledgeView.js +0 -483
  1351. package/components/LanguageDropdown.d.ts +0 -30
  1352. package/components/LanguageDropdown.d.ts.map +0 -1
  1353. package/components/LanguageDropdown.js +0 -99
  1354. package/components/LifoMonitorPanel.d.ts +0 -21
  1355. package/components/LifoMonitorPanel.d.ts.map +0 -1
  1356. package/components/LifoMonitorPanel.js +0 -24
  1357. package/components/LifoSandboxView.d.ts +0 -5
  1358. package/components/LifoSandboxView.d.ts.map +0 -1
  1359. package/components/LifoSandboxView.js +0 -333
  1360. package/components/LoadingScreen.d.ts +0 -13
  1361. package/components/LoadingScreen.d.ts.map +0 -1
  1362. package/components/LoadingScreen.js +0 -70
  1363. package/components/LogsPageView.d.ts +0 -2
  1364. package/components/LogsPageView.d.ts.map +0 -1
  1365. package/components/LogsPageView.js +0 -7
  1366. package/components/LogsView.d.ts +0 -5
  1367. package/components/LogsView.d.ts.map +0 -1
  1368. package/components/LogsView.js +0 -71
  1369. package/components/MediaGalleryView.d.ts +0 -9
  1370. package/components/MediaGalleryView.d.ts.map +0 -1
  1371. package/components/MediaGalleryView.js +0 -236
  1372. package/components/MediaSettingsSection.d.ts +0 -11
  1373. package/components/MediaSettingsSection.d.ts.map +0 -1
  1374. package/components/MediaSettingsSection.js +0 -329
  1375. package/components/MessageContent.d.ts +0 -51
  1376. package/components/MessageContent.d.ts.map +0 -1
  1377. package/components/MessageContent.js +0 -553
  1378. package/components/OnboardingWizard.d.ts +0 -2
  1379. package/components/OnboardingWizard.d.ts.map +0 -1
  1380. package/components/OnboardingWizard.js +0 -86
  1381. package/components/PairingView.d.ts +0 -5
  1382. package/components/PairingView.d.ts.map +0 -1
  1383. package/components/PairingView.js +0 -29
  1384. package/components/PermissionsSection.d.ts +0 -20
  1385. package/components/PermissionsSection.d.ts.map +0 -1
  1386. package/components/PermissionsSection.js +0 -573
  1387. package/components/PluginsPageView.d.ts +0 -5
  1388. package/components/PluginsPageView.d.ts.map +0 -1
  1389. package/components/PluginsPageView.js +0 -8
  1390. package/components/PluginsView.d.ts +0 -21
  1391. package/components/PluginsView.d.ts.map +0 -1
  1392. package/components/PluginsView.js +0 -1534
  1393. package/components/ProviderSwitcher.d.ts +0 -42
  1394. package/components/ProviderSwitcher.d.ts.map +0 -1
  1395. package/components/ProviderSwitcher.js +0 -493
  1396. package/components/RestartBanner.d.ts +0 -2
  1397. package/components/RestartBanner.d.ts.map +0 -1
  1398. package/components/RestartBanner.js +0 -36
  1399. package/components/RuntimeView.d.ts +0 -10
  1400. package/components/RuntimeView.d.ts.map +0 -1
  1401. package/components/RuntimeView.js +0 -165
  1402. package/components/SaveCommandModal.d.ts +0 -12
  1403. package/components/SaveCommandModal.d.ts.map +0 -1
  1404. package/components/SaveCommandModal.js +0 -84
  1405. package/components/SecretsView.d.ts +0 -9
  1406. package/components/SecretsView.d.ts.map +0 -1
  1407. package/components/SecretsView.js +0 -249
  1408. package/components/SettingsView.d.ts +0 -9
  1409. package/components/SettingsView.d.ts.map +0 -1
  1410. package/components/SettingsView.js +0 -230
  1411. package/components/ShellOverlays.d.ts +0 -8
  1412. package/components/ShellOverlays.d.ts.map +0 -1
  1413. package/components/ShellOverlays.js +0 -10
  1414. package/components/ShortcutsOverlay.d.ts +0 -2
  1415. package/components/ShortcutsOverlay.d.ts.map +0 -1
  1416. package/components/ShortcutsOverlay.js +0 -79
  1417. package/components/SkillsView.d.ts +0 -11
  1418. package/components/SkillsView.d.ts.map +0 -1
  1419. package/components/SkillsView.js +0 -358
  1420. package/components/StartupFailureView.d.ts +0 -8
  1421. package/components/StartupFailureView.d.ts.map +0 -1
  1422. package/components/StartupFailureView.js +0 -16
  1423. package/components/StreamView.d.ts +0 -16
  1424. package/components/StreamView.d.ts.map +0 -1
  1425. package/components/StreamView.js +0 -300
  1426. package/components/StripeEmbeddedCheckout.d.ts +0 -24
  1427. package/components/StripeEmbeddedCheckout.d.ts.map +0 -1
  1428. package/components/StripeEmbeddedCheckout.js +0 -101
  1429. package/components/SubscriptionStatus.d.ts +0 -23
  1430. package/components/SubscriptionStatus.d.ts.map +0 -1
  1431. package/components/SubscriptionStatus.js +0 -301
  1432. package/components/SystemWarningBanner.d.ts +0 -6
  1433. package/components/SystemWarningBanner.d.ts.map +0 -1
  1434. package/components/SystemWarningBanner.js +0 -46
  1435. package/components/ThemeToggle.d.ts +0 -21
  1436. package/components/ThemeToggle.d.ts.map +0 -1
  1437. package/components/ThemeToggle.js +0 -24
  1438. package/components/TrajectoriesView.d.ts +0 -12
  1439. package/components/TrajectoriesView.d.ts.map +0 -1
  1440. package/components/TrajectoriesView.js +0 -183
  1441. package/components/TrajectoryDetailView.d.ts +0 -13
  1442. package/components/TrajectoryDetailView.d.ts.map +0 -1
  1443. package/components/TrajectoryDetailView.js +0 -112
  1444. package/components/TriggersView.d.ts +0 -2
  1445. package/components/TriggersView.d.ts.map +0 -1
  1446. package/components/TriggersView.js +0 -1
  1447. package/components/VectorBrowserView.d.ts +0 -10
  1448. package/components/VectorBrowserView.d.ts.map +0 -1
  1449. package/components/VectorBrowserView.js +0 -1000
  1450. package/components/VoiceConfigView.d.ts +0 -11
  1451. package/components/VoiceConfigView.d.ts.map +0 -1
  1452. package/components/VoiceConfigView.js +0 -331
  1453. package/components/VrmStage.d.ts +0 -28
  1454. package/components/VrmStage.d.ts.map +0 -1
  1455. package/components/VrmStage.js +0 -178
  1456. package/components/WhatsAppQrOverlay.d.ts +0 -8
  1457. package/components/WhatsAppQrOverlay.d.ts.map +0 -1
  1458. package/components/WhatsAppQrOverlay.js +0 -63
  1459. package/components/apps/AppDetailPane.d.ts +0 -15
  1460. package/components/apps/AppDetailPane.d.ts.map +0 -1
  1461. package/components/apps/AppDetailPane.js +0 -13
  1462. package/components/apps/AppsCatalogGrid.d.ts +0 -20
  1463. package/components/apps/AppsCatalogGrid.d.ts.map +0 -1
  1464. package/components/apps/AppsCatalogGrid.js +0 -18
  1465. package/components/apps/extensions/registry.d.ts +0 -4
  1466. package/components/apps/extensions/registry.d.ts.map +0 -1
  1467. package/components/apps/extensions/registry.js +0 -7
  1468. package/components/apps/extensions/types.d.ts +0 -7
  1469. package/components/apps/extensions/types.d.ts.map +0 -1
  1470. package/components/apps/helpers.d.ts +0 -7
  1471. package/components/apps/helpers.d.ts.map +0 -1
  1472. package/components/apps/helpers.js +0 -44
  1473. package/components/avatar/VrmAnimationLoader.d.ts +0 -30
  1474. package/components/avatar/VrmAnimationLoader.d.ts.map +0 -1
  1475. package/components/avatar/VrmAnimationLoader.js +0 -99
  1476. package/components/avatar/VrmBlinkController.d.ts +0 -37
  1477. package/components/avatar/VrmBlinkController.d.ts.map +0 -1
  1478. package/components/avatar/VrmBlinkController.js +0 -98
  1479. package/components/avatar/VrmCameraManager.d.ts +0 -57
  1480. package/components/avatar/VrmCameraManager.d.ts.map +0 -1
  1481. package/components/avatar/VrmCameraManager.js +0 -277
  1482. package/components/avatar/VrmEngine.d.ts +0 -246
  1483. package/components/avatar/VrmEngine.d.ts.map +0 -1
  1484. package/components/avatar/VrmEngine.js +0 -2087
  1485. package/components/avatar/VrmFootShadow.d.ts +0 -18
  1486. package/components/avatar/VrmFootShadow.d.ts.map +0 -1
  1487. package/components/avatar/VrmFootShadow.js +0 -83
  1488. package/components/avatar/VrmViewer.d.ts +0 -60
  1489. package/components/avatar/VrmViewer.d.ts.map +0 -1
  1490. package/components/avatar/VrmViewer.js +0 -396
  1491. package/components/avatar/mixamoVRMRigMap.d.ts +0 -3
  1492. package/components/avatar/mixamoVRMRigMap.d.ts.map +0 -1
  1493. package/components/avatar/mixamoVRMRigMap.js +0 -56
  1494. package/components/avatar/retargetMixamoFbxToVrm.d.ts +0 -9
  1495. package/components/avatar/retargetMixamoFbxToVrm.d.ts.map +0 -1
  1496. package/components/avatar/retargetMixamoFbxToVrm.js +0 -88
  1497. package/components/avatar/retargetMixamoGltfToVrm.d.ts +0 -11
  1498. package/components/avatar/retargetMixamoGltfToVrm.d.ts.map +0 -1
  1499. package/components/avatar/retargetMixamoGltfToVrm.js +0 -80
  1500. package/components/chainConfig.d.ts +0 -89
  1501. package/components/chainConfig.d.ts.map +0 -1
  1502. package/components/chainConfig.js +0 -287
  1503. package/components/companion/CompanionHeader.d.ts +0 -15
  1504. package/components/companion/CompanionHeader.d.ts.map +0 -1
  1505. package/components/companion/CompanionHeader.js +0 -7
  1506. package/components/companion/CompanionSceneHost.d.ts +0 -2
  1507. package/components/companion/CompanionSceneHost.d.ts.map +0 -1
  1508. package/components/companion/CompanionSceneHost.js +0 -1
  1509. package/components/companion/VrmStage.d.ts +0 -3
  1510. package/components/companion/VrmStage.d.ts.map +0 -1
  1511. package/components/companion/VrmStage.js +0 -1
  1512. package/components/companion/index.d.ts +0 -18
  1513. package/components/companion/index.d.ts.map +0 -1
  1514. package/components/companion/index.js +0 -17
  1515. package/components/companion/walletUtils.d.ts +0 -95
  1516. package/components/companion/walletUtils.d.ts.map +0 -1
  1517. package/components/companion/walletUtils.js +0 -167
  1518. package/components/companion-shell-styles.d.ts +0 -38
  1519. package/components/companion-shell-styles.d.ts.map +0 -1
  1520. package/components/companion-shell-styles.js +0 -248
  1521. package/components/confirm-delete-control.d.ts +0 -16
  1522. package/components/confirm-delete-control.d.ts.map +0 -1
  1523. package/components/confirm-delete-control.js +0 -12
  1524. package/components/conversations/ConversationListItem.d.ts +0 -31
  1525. package/components/conversations/ConversationListItem.d.ts.map +0 -1
  1526. package/components/conversations/ConversationListItem.js +0 -52
  1527. package/components/conversations/conversation-utils.d.ts +0 -9
  1528. package/components/conversations/conversation-utils.d.ts.map +0 -1
  1529. package/components/conversations/conversation-utils.js +0 -138
  1530. package/components/format.d.ts +0 -54
  1531. package/components/format.d.ts.map +0 -1
  1532. package/components/format.js +0 -82
  1533. package/components/index.d.ts +0 -96
  1534. package/components/index.d.ts.map +0 -1
  1535. package/components/index.js +0 -95
  1536. package/components/inventory/CopyableAddress.d.ts +0 -8
  1537. package/components/inventory/CopyableAddress.d.ts.map +0 -1
  1538. package/components/inventory/CopyableAddress.js +0 -18
  1539. package/components/inventory/InventoryToolbar.d.ts +0 -25
  1540. package/components/inventory/InventoryToolbar.d.ts.map +0 -1
  1541. package/components/inventory/InventoryToolbar.js +0 -28
  1542. package/components/inventory/NftGrid.d.ts +0 -13
  1543. package/components/inventory/NftGrid.d.ts.map +0 -1
  1544. package/components/inventory/NftGrid.js +0 -29
  1545. package/components/inventory/TokenLogo.d.ts +0 -12
  1546. package/components/inventory/TokenLogo.d.ts.map +0 -1
  1547. package/components/inventory/TokenLogo.js +0 -33
  1548. package/components/inventory/TokensTable.d.ts +0 -24
  1549. package/components/inventory/TokensTable.d.ts.map +0 -1
  1550. package/components/inventory/TokensTable.js +0 -26
  1551. package/components/inventory/constants.d.ts +0 -52
  1552. package/components/inventory/constants.d.ts.map +0 -1
  1553. package/components/inventory/constants.js +0 -121
  1554. package/components/inventory/index.d.ts +0 -9
  1555. package/components/inventory/index.d.ts.map +0 -1
  1556. package/components/inventory/index.js +0 -8
  1557. package/components/inventory/media-url.d.ts +0 -6
  1558. package/components/inventory/media-url.d.ts.map +0 -1
  1559. package/components/inventory/media-url.js +0 -28
  1560. package/components/inventory/useInventoryData.d.ts +0 -53
  1561. package/components/inventory/useInventoryData.d.ts.map +0 -1
  1562. package/components/inventory/useInventoryData.js +0 -332
  1563. package/components/knowledge-upload-image.d.ts +0 -27
  1564. package/components/knowledge-upload-image.d.ts.map +0 -1
  1565. package/components/knowledge-upload-image.js +0 -146
  1566. package/components/labels.d.ts +0 -6
  1567. package/components/labels.d.ts.map +0 -1
  1568. package/components/labels.js +0 -40
  1569. package/components/onboarding/ActivateStep.d.ts +0 -2
  1570. package/components/onboarding/ActivateStep.d.ts.map +0 -1
  1571. package/components/onboarding/ActivateStep.js +0 -10
  1572. package/components/onboarding/CloudLoginStep.d.ts +0 -2
  1573. package/components/onboarding/CloudLoginStep.d.ts.map +0 -1
  1574. package/components/onboarding/CloudLoginStep.js +0 -20
  1575. package/components/onboarding/ConnectionStep.d.ts +0 -2
  1576. package/components/onboarding/ConnectionStep.d.ts.map +0 -1
  1577. package/components/onboarding/ConnectionStep.js +0 -609
  1578. package/components/onboarding/IdentityStep.d.ts +0 -2
  1579. package/components/onboarding/IdentityStep.d.ts.map +0 -1
  1580. package/components/onboarding/IdentityStep.js +0 -102
  1581. package/components/onboarding/OnboardingPanel.d.ts +0 -9
  1582. package/components/onboarding/OnboardingPanel.d.ts.map +0 -1
  1583. package/components/onboarding/OnboardingPanel.js +0 -24
  1584. package/components/onboarding/OnboardingStepNav.d.ts +0 -2
  1585. package/components/onboarding/OnboardingStepNav.d.ts.map +0 -1
  1586. package/components/onboarding/OnboardingStepNav.js +0 -24
  1587. package/components/onboarding/PermissionsStep.d.ts +0 -2
  1588. package/components/onboarding/PermissionsStep.d.ts.map +0 -1
  1589. package/components/onboarding/PermissionsStep.js +0 -7
  1590. package/components/onboarding/RpcStep.d.ts +0 -2
  1591. package/components/onboarding/RpcStep.d.ts.map +0 -1
  1592. package/components/onboarding/RpcStep.js +0 -125
  1593. package/components/onboarding/SaveKeysStep.d.ts +0 -2
  1594. package/components/onboarding/SaveKeysStep.d.ts.map +0 -1
  1595. package/components/onboarding/SaveKeysStep.js +0 -44
  1596. package/components/onboarding/WelcomeStep.d.ts +0 -2
  1597. package/components/onboarding/WelcomeStep.d.ts.map +0 -1
  1598. package/components/onboarding/WelcomeStep.js +0 -30
  1599. package/components/permissions/PermissionIcon.d.ts +0 -4
  1600. package/components/permissions/PermissionIcon.d.ts.map +0 -1
  1601. package/components/permissions/PermissionIcon.js +0 -12
  1602. package/components/permissions/StreamingPermissions.d.ts +0 -20
  1603. package/components/permissions/StreamingPermissions.d.ts.map +0 -1
  1604. package/components/permissions/StreamingPermissions.js +0 -178
  1605. package/components/plugins/showcase-data.d.ts +0 -7
  1606. package/components/plugins/showcase-data.d.ts.map +0 -1
  1607. package/components/plugins/showcase-data.js +0 -464
  1608. package/components/shared/ShellHeaderControls.d.ts +0 -27
  1609. package/components/shared/ShellHeaderControls.d.ts.map +0 -1
  1610. package/components/shared/ShellHeaderControls.js +0 -55
  1611. package/components/shared-companion-scene-context.d.ts +0 -3
  1612. package/components/shared-companion-scene-context.d.ts.map +0 -1
  1613. package/components/shared-companion-scene-context.js +0 -13
  1614. package/components/skeletons.d.ts +0 -17
  1615. package/components/skeletons.d.ts.map +0 -1
  1616. package/components/skeletons.js +0 -22
  1617. package/components/stream/ActivityFeed.d.ts +0 -5
  1618. package/components/stream/ActivityFeed.d.ts.map +0 -1
  1619. package/components/stream/ActivityFeed.js +0 -57
  1620. package/components/stream/AvatarPip.d.ts +0 -5
  1621. package/components/stream/AvatarPip.d.ts.map +0 -1
  1622. package/components/stream/AvatarPip.js +0 -6
  1623. package/components/stream/ChatContent.d.ts +0 -6
  1624. package/components/stream/ChatContent.d.ts.map +0 -1
  1625. package/components/stream/ChatContent.js +0 -69
  1626. package/components/stream/ChatTicker.d.ts +0 -5
  1627. package/components/stream/ChatTicker.d.ts.map +0 -1
  1628. package/components/stream/ChatTicker.js +0 -34
  1629. package/components/stream/IdleContent.d.ts +0 -5
  1630. package/components/stream/IdleContent.d.ts.map +0 -1
  1631. package/components/stream/IdleContent.js +0 -17
  1632. package/components/stream/StatusBar.d.ts +0 -36
  1633. package/components/stream/StatusBar.d.ts.map +0 -1
  1634. package/components/stream/StatusBar.js +0 -140
  1635. package/components/stream/StreamSettings.d.ts +0 -33
  1636. package/components/stream/StreamSettings.d.ts.map +0 -1
  1637. package/components/stream/StreamSettings.js +0 -99
  1638. package/components/stream/StreamTerminal.d.ts +0 -2
  1639. package/components/stream/StreamTerminal.d.ts.map +0 -1
  1640. package/components/stream/StreamTerminal.js +0 -52
  1641. package/components/stream/StreamVoiceConfig.d.ts +0 -10
  1642. package/components/stream/StreamVoiceConfig.d.ts.map +0 -1
  1643. package/components/stream/StreamVoiceConfig.js +0 -88
  1644. package/components/stream/helpers.d.ts +0 -32
  1645. package/components/stream/helpers.d.ts.map +0 -1
  1646. package/components/stream/helpers.js +0 -110
  1647. package/components/stream/overlays/OverlayLayer.d.ts +0 -20
  1648. package/components/stream/overlays/OverlayLayer.d.ts.map +0 -1
  1649. package/components/stream/overlays/OverlayLayer.js +0 -24
  1650. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts +0 -8
  1651. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts.map +0 -1
  1652. package/components/stream/overlays/built-in/ActionTickerWidget.js +0 -44
  1653. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts +0 -7
  1654. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts.map +0 -1
  1655. package/components/stream/overlays/built-in/AlertPopupWidget.js +0 -62
  1656. package/components/stream/overlays/built-in/BrandingWidget.d.ts +0 -7
  1657. package/components/stream/overlays/built-in/BrandingWidget.d.ts.map +0 -1
  1658. package/components/stream/overlays/built-in/BrandingWidget.js +0 -36
  1659. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts +0 -26
  1660. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts.map +0 -1
  1661. package/components/stream/overlays/built-in/CustomHtmlWidget.js +0 -78
  1662. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts +0 -11
  1663. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts.map +0 -1
  1664. package/components/stream/overlays/built-in/PeonGlassWidget.js +0 -188
  1665. package/components/stream/overlays/built-in/PeonHudWidget.d.ts +0 -10
  1666. package/components/stream/overlays/built-in/PeonHudWidget.d.ts.map +0 -1
  1667. package/components/stream/overlays/built-in/PeonHudWidget.js +0 -168
  1668. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts +0 -11
  1669. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts.map +0 -1
  1670. package/components/stream/overlays/built-in/PeonSakuraWidget.js +0 -213
  1671. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts +0 -8
  1672. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts.map +0 -1
  1673. package/components/stream/overlays/built-in/ThoughtBubbleWidget.js +0 -59
  1674. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts +0 -7
  1675. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts.map +0 -1
  1676. package/components/stream/overlays/built-in/ViewerCountWidget.js +0 -34
  1677. package/components/stream/overlays/built-in/index.d.ts +0 -13
  1678. package/components/stream/overlays/built-in/index.d.ts.map +0 -1
  1679. package/components/stream/overlays/built-in/index.js +0 -12
  1680. package/components/stream/overlays/registry.d.ts +0 -11
  1681. package/components/stream/overlays/registry.d.ts.map +0 -1
  1682. package/components/stream/overlays/registry.js +0 -16
  1683. package/components/stream/overlays/types.d.ts +0 -67
  1684. package/components/stream/overlays/types.d.ts.map +0 -1
  1685. package/components/stream/overlays/types.js +0 -7
  1686. package/components/stream/overlays/useOverlayLayout.d.ts +0 -27
  1687. package/components/stream/overlays/useOverlayLayout.d.ts.map +0 -1
  1688. package/components/stream/overlays/useOverlayLayout.js +0 -162
  1689. package/components/trajectory-format.d.ts +0 -6
  1690. package/components/trajectory-format.d.ts.map +0 -1
  1691. package/components/trajectory-format.js +0 -43
  1692. package/components/ui-badges.d.ts +0 -23
  1693. package/components/ui-badges.d.ts.map +0 -1
  1694. package/components/ui-badges.js +0 -38
  1695. package/components/ui-switch.d.ts +0 -14
  1696. package/components/ui-switch.d.ts.map +0 -1
  1697. package/components/ui-switch.js +0 -15
  1698. package/components/vector-browser-three.d.ts +0 -4
  1699. package/components/vector-browser-three.d.ts.map +0 -1
  1700. package/components/vector-browser-three.js +0 -21
  1701. package/config/branding.d.ts +0 -49
  1702. package/config/branding.d.ts.map +0 -1
  1703. package/config/branding.js +0 -16
  1704. package/config/config-catalog.d.ts +0 -376
  1705. package/config/config-catalog.d.ts.map +0 -1
  1706. package/config/config-catalog.js +0 -724
  1707. package/config/config-field.d.ts +0 -68
  1708. package/config/config-field.d.ts.map +0 -1
  1709. package/config/config-field.js +0 -840
  1710. package/config/config-renderer.d.ts +0 -176
  1711. package/config/config-renderer.d.ts.map +0 -1
  1712. package/config/config-renderer.js +0 -405
  1713. package/config/index.d.ts +0 -6
  1714. package/config/index.d.ts.map +0 -1
  1715. package/config/index.js +0 -5
  1716. package/config/ui-renderer.d.ts +0 -26
  1717. package/config/ui-renderer.d.ts.map +0 -1
  1718. package/config/ui-renderer.js +0 -815
  1719. package/config/ui-spec.d.ts +0 -164
  1720. package/config/ui-spec.d.ts.map +0 -1
  1721. package/config/ui-spec.js +0 -13
  1722. package/events/index.d.ts +0 -48
  1723. package/events/index.d.ts.map +0 -1
  1724. package/events/index.js +0 -45
  1725. package/hooks/index.d.ts +0 -15
  1726. package/hooks/index.d.ts.map +0 -1
  1727. package/hooks/index.js +0 -14
  1728. package/hooks/useBugReport.d.ts +0 -14
  1729. package/hooks/useBugReport.d.ts.map +0 -1
  1730. package/hooks/useBugReport.js +0 -18
  1731. package/hooks/useCanvasWindow.d.ts +0 -38
  1732. package/hooks/useCanvasWindow.d.ts.map +0 -1
  1733. package/hooks/useCanvasWindow.js +0 -273
  1734. package/hooks/useChatAvatarVoice.d.ts +0 -10
  1735. package/hooks/useChatAvatarVoice.d.ts.map +0 -1
  1736. package/hooks/useChatAvatarVoice.js +0 -71
  1737. package/hooks/useClickOutside.d.ts +0 -6
  1738. package/hooks/useClickOutside.d.ts.map +0 -1
  1739. package/hooks/useClickOutside.js +0 -25
  1740. package/hooks/useContextMenu.d.ts +0 -17
  1741. package/hooks/useContextMenu.d.ts.map +0 -1
  1742. package/hooks/useContextMenu.js +0 -100
  1743. package/hooks/useKeyboardShortcuts.d.ts +0 -17
  1744. package/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  1745. package/hooks/useKeyboardShortcuts.js +0 -67
  1746. package/hooks/useLifoSync.d.ts +0 -18
  1747. package/hooks/useLifoSync.d.ts.map +0 -1
  1748. package/hooks/useLifoSync.js +0 -113
  1749. package/hooks/useMemoryMonitor.d.ts +0 -87
  1750. package/hooks/useMemoryMonitor.d.ts.map +0 -1
  1751. package/hooks/useMemoryMonitor.js +0 -209
  1752. package/hooks/useRenderGuard.d.ts +0 -17
  1753. package/hooks/useRenderGuard.d.ts.map +0 -1
  1754. package/hooks/useRenderGuard.js +0 -36
  1755. package/hooks/useRetakeCapture.d.ts +0 -12
  1756. package/hooks/useRetakeCapture.d.ts.map +0 -1
  1757. package/hooks/useRetakeCapture.js +0 -60
  1758. package/hooks/useStreamPopoutNavigation.d.ts +0 -3
  1759. package/hooks/useStreamPopoutNavigation.d.ts.map +0 -1
  1760. package/hooks/useStreamPopoutNavigation.js +0 -17
  1761. package/hooks/useTimeout.d.ts +0 -11
  1762. package/hooks/useTimeout.d.ts.map +0 -1
  1763. package/hooks/useTimeout.js +0 -32
  1764. package/hooks/useVoiceChat.d.ts +0 -94
  1765. package/hooks/useVoiceChat.d.ts.map +0 -1
  1766. package/hooks/useVoiceChat.js +0 -1077
  1767. package/hooks/useWhatsAppPairing.d.ts +0 -11
  1768. package/hooks/useWhatsAppPairing.d.ts.map +0 -1
  1769. package/hooks/useWhatsAppPairing.js +0 -95
  1770. package/i18n/index.d.ts +0 -7
  1771. package/i18n/index.d.ts.map +0 -1
  1772. package/i18n/index.js +0 -53
  1773. package/i18n/locales/en.json +0 -1268
  1774. package/i18n/locales/es.json +0 -1236
  1775. package/i18n/locales/ko.json +0 -1236
  1776. package/i18n/locales/pt.json +0 -1236
  1777. package/i18n/locales/zh-CN.json +0 -1236
  1778. package/i18n/messages.d.ts +0 -6
  1779. package/i18n/messages.d.ts.map +0 -1
  1780. package/i18n/messages.js +0 -14
  1781. package/navigation/index.d.ts +0 -27
  1782. package/navigation/index.d.ts.map +0 -1
  1783. package/navigation/index.js +0 -232
  1784. package/onboarding-config.d.ts +0 -25
  1785. package/onboarding-config.d.ts.map +0 -1
  1786. package/onboarding-config.js +0 -76
  1787. package/platform/browser-launch.d.ts +0 -2
  1788. package/platform/browser-launch.d.ts.map +0 -1
  1789. package/platform/browser-launch.js +0 -109
  1790. package/platform/index.d.ts +0 -14
  1791. package/platform/index.d.ts.map +0 -1
  1792. package/platform/index.js +0 -24
  1793. package/platform/init.d.ts +0 -40
  1794. package/platform/init.d.ts.map +0 -1
  1795. package/platform/init.js +0 -160
  1796. package/platform/lifo.d.ts +0 -51
  1797. package/platform/lifo.d.ts.map +0 -1
  1798. package/platform/lifo.js +0 -138
  1799. package/providers/index.d.ts +0 -19
  1800. package/providers/index.d.ts.map +0 -1
  1801. package/providers/index.js +0 -80
  1802. package/shell-params.d.ts +0 -12
  1803. package/shell-params.d.ts.map +0 -1
  1804. package/shell-params.js +0 -19
  1805. package/state/AppContext.d.ts +0 -12
  1806. package/state/AppContext.d.ts.map +0 -1
  1807. package/state/AppContext.js +0 -5102
  1808. package/state/index.d.ts +0 -7
  1809. package/state/index.d.ts.map +0 -1
  1810. package/state/index.js +0 -6
  1811. package/state/internal.d.ts +0 -7
  1812. package/state/internal.d.ts.map +0 -1
  1813. package/state/internal.js +0 -6
  1814. package/state/onboarding-resume.d.ts +0 -11
  1815. package/state/onboarding-resume.d.ts.map +0 -1
  1816. package/state/onboarding-resume.js +0 -187
  1817. package/state/parsers.d.ts +0 -26
  1818. package/state/parsers.d.ts.map +0 -1
  1819. package/state/parsers.js +0 -255
  1820. package/state/persistence.d.ts +0 -59
  1821. package/state/persistence.d.ts.map +0 -1
  1822. package/state/persistence.js +0 -328
  1823. package/state/shell-routing.d.ts +0 -12
  1824. package/state/shell-routing.d.ts.map +0 -1
  1825. package/state/shell-routing.js +0 -26
  1826. package/state/types.d.ts +0 -426
  1827. package/state/types.d.ts.map +0 -1
  1828. package/state/types.js +0 -89
  1829. package/state/ui-preferences.d.ts +0 -3
  1830. package/state/ui-preferences.d.ts.map +0 -1
  1831. package/state/ui-preferences.js +0 -1
  1832. package/state/useApp.d.ts +0 -4
  1833. package/state/useApp.d.ts.map +0 -1
  1834. package/state/useApp.js +0 -22
  1835. package/state/vrm.d.ts +0 -30
  1836. package/state/vrm.d.ts.map +0 -1
  1837. package/state/vrm.js +0 -82
  1838. package/styles/anime.css +0 -6364
  1839. package/styles/base.css +0 -255
  1840. package/styles/onboarding-game.css +0 -1095
  1841. package/styles/styles.css +0 -2087
  1842. package/styles/xterm.css +0 -241
  1843. package/types/index.d.ts +0 -657
  1844. package/types/index.d.ts.map +0 -1
  1845. package/types/index.js +0 -1
  1846. package/utils/asset-url.d.ts +0 -26
  1847. package/utils/asset-url.d.ts.map +0 -1
  1848. package/utils/asset-url.js +0 -99
  1849. package/utils/assistant-text.d.ts +0 -2
  1850. package/utils/assistant-text.d.ts.map +0 -1
  1851. package/utils/assistant-text.js +0 -161
  1852. package/utils/clipboard.d.ts +0 -2
  1853. package/utils/clipboard.d.ts.map +0 -1
  1854. package/utils/clipboard.js +0 -38
  1855. package/utils/desktop-dialogs.d.ts +0 -19
  1856. package/utils/desktop-dialogs.d.ts.map +0 -1
  1857. package/utils/desktop-dialogs.js +0 -50
  1858. package/utils/eliza-globals.d.ts +0 -11
  1859. package/utils/eliza-globals.d.ts.map +0 -1
  1860. package/utils/eliza-globals.js +0 -33
  1861. package/utils/index.d.ts +0 -8
  1862. package/utils/index.d.ts.map +0 -1
  1863. package/utils/index.js +0 -7
  1864. package/utils/number-parsing.d.ts +0 -44
  1865. package/utils/number-parsing.d.ts.map +0 -1
  1866. package/utils/number-parsing.js +0 -56
  1867. package/utils/openExternalUrl.d.ts +0 -2
  1868. package/utils/openExternalUrl.d.ts.map +0 -1
  1869. package/utils/openExternalUrl.js +0 -17
  1870. package/utils/spoken-text.d.ts +0 -2
  1871. package/utils/spoken-text.d.ts.map +0 -1
  1872. package/utils/spoken-text.js +0 -56
  1873. package/utils/streaming-text.d.ts +0 -3
  1874. package/utils/streaming-text.d.ts.map +0 -1
  1875. package/utils/streaming-text.js +0 -87
  1876. package/voice/index.d.ts +0 -2
  1877. package/voice/index.d.ts.map +0 -1
  1878. package/voice/index.js +0 -1
  1879. package/voice/types.d.ts +0 -25
  1880. package/voice/types.d.ts.map +0 -1
  1881. package/voice/types.js +0 -166
  1882. package/wallet-rpc.d.ts +0 -8
  1883. package/wallet-rpc.d.ts.map +0 -1
  1884. package/wallet-rpc.js +0 -131
  1885. /package/{components/apps/extensions → services/local-inference/voice}/types.js +0 -0
@@ -1,1534 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * Plugins view — tag-filtered plugin management.
4
- *
5
- * Renders a unified plugin list with searchable/filterable cards and per-plugin settings.
6
- */
7
- import { Button, Input } from "@elizaos/ui";
8
- import { Binary, BookOpen, Bot, Brain, BrickWall, Briefcase, Calendar, ChevronRight, Chrome, Circle, CircleDashed, CircleDot, ClipboardList, Clock, Cloud, Command, Construction, CreditCard, Diamond, Dna, Droplets, Eye, Feather, FileKey, FileText, Fingerprint, Gamepad, Gamepad2, Github, Handshake, Hash, Layers, Leaf, Link, Lock, LockKeyhole, Mail, MessageCircle, MessageSquare, MessagesSquare, Mic, Monitor, MousePointer2, Package, PenTool, Phone, Pickaxe, Puzzle, RefreshCw, Rss, ScrollText, Send, Server, Settings, Shell, Shuffle, Smartphone, Sparkle, Sparkles, Square, Star, StickyNote, Target, Tornado, TrendingDown, Triangle, Twitter, Video, Volume2, Wallet, Webhook, Wrench, Zap, } from "lucide-react";
9
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
- import { client } from "../api";
11
- import { ConfigRenderer, defaultRegistry, } from "../config";
12
- import { useApp } from "../state";
13
- import { openExternalUrl, resolveAppAssetUrl } from "../utils";
14
- import { autoLabel } from "./labels";
15
- import { SHOWCASE_PLUGIN } from "./plugins/showcase-data";
16
- import { WhatsAppQrOverlay } from "./WhatsAppQrOverlay";
17
- /* ── Always-on plugins (hidden from all views) ────────────────────────── */
18
- /**
19
- * Plugin IDs hidden from Features/Connectors views.
20
- * Core plugins are visible in Admin > Plugins instead.
21
- */
22
- const ALWAYS_ON_PLUGIN_IDS = new Set([
23
- // Core (always loaded)
24
- "sql",
25
- "local-embedding",
26
- "knowledge",
27
- "agent-skills",
28
- "directives",
29
- "commands",
30
- "personality",
31
- "experience",
32
- // Optional core (shown in admin)
33
- "agent-orchestrator",
34
- "shell",
35
- "plugin-manager",
36
- "cli",
37
- "code",
38
- "edge-tts",
39
- "pdf",
40
- "scratchpad",
41
- "secrets-manager",
42
- "todo",
43
- "trust",
44
- "form",
45
- "goals",
46
- "scheduling",
47
- // Internal / infrastructure
48
- "elizacloud",
49
- "evm",
50
- "memory",
51
- "rolodex",
52
- "tts",
53
- "elevenlabs",
54
- "cron",
55
- "webhooks",
56
- "browser",
57
- "vision",
58
- "computeruse",
59
- ]);
60
- /* ── Helpers ────────────────────────────────────────────────────────── */
61
- /** Detect advanced / debug parameters that should be collapsed by default. */
62
- function isAdvancedParam(param) {
63
- const k = param.key.toUpperCase();
64
- const d = (param.description ?? "").toLowerCase();
65
- return (k.includes("EXPERIMENTAL") ||
66
- k.includes("DEBUG") ||
67
- k.includes("VERBOSE") ||
68
- k.includes("TELEMETRY") ||
69
- k.includes("BROWSER_BASE") ||
70
- d.includes("experimental") ||
71
- d.includes("advanced") ||
72
- d.includes("debug"));
73
- }
74
- /** Convert PluginParamDef[] to a JSON Schema + ConfigUiHints for ConfigRenderer. */
75
- export function paramsToSchema(params, pluginId) {
76
- const properties = {};
77
- const required = [];
78
- const hints = {};
79
- for (const p of params) {
80
- // Build JSON Schema property
81
- const prop = {};
82
- if (p.type === "boolean") {
83
- prop.type = "boolean";
84
- }
85
- else if (p.type === "number") {
86
- prop.type = "number";
87
- }
88
- else {
89
- prop.type = "string";
90
- }
91
- if (p.description)
92
- prop.description = p.description;
93
- if (p.default != null)
94
- prop.default = p.default;
95
- if (p.options?.length) {
96
- prop.enum = p.options;
97
- }
98
- // Auto-detect format from key name
99
- const keyUpper = p.key.toUpperCase();
100
- if (keyUpper.includes("URL") ||
101
- keyUpper.includes("ENDPOINT") ||
102
- keyUpper.includes("BASE_URL")) {
103
- prop.format = "uri";
104
- }
105
- else if (keyUpper.includes("EMAIL")) {
106
- prop.format = "email";
107
- }
108
- else if (keyUpper.includes("_DATE") ||
109
- keyUpper.includes("_SINCE") ||
110
- keyUpper.includes("_UNTIL")) {
111
- prop.format = "date";
112
- }
113
- // Auto-detect number types from key patterns
114
- if (keyUpper.includes("PORT") && prop.type === "string") {
115
- prop.type = "number";
116
- }
117
- else if ((keyUpper.includes("TIMEOUT") ||
118
- keyUpper.includes("INTERVAL") ||
119
- keyUpper.includes("_MS")) &&
120
- prop.type === "string") {
121
- prop.type = "number";
122
- }
123
- else if ((keyUpper.includes("COUNT") ||
124
- keyUpper.includes("LIMIT") ||
125
- keyUpper.startsWith("MAX_")) &&
126
- prop.type === "string") {
127
- prop.type = "number";
128
- }
129
- else if ((keyUpper.includes("RETRY") || keyUpper.includes("RETRIES")) &&
130
- prop.type === "string") {
131
- prop.type = "number";
132
- }
133
- // Auto-detect boolean from key patterns
134
- if (prop.type === "string" &&
135
- (keyUpper.includes("SHOULD_") ||
136
- keyUpper.endsWith("_ENABLED") ||
137
- keyUpper.endsWith("_DISABLED") ||
138
- keyUpper.startsWith("USE_") ||
139
- keyUpper.startsWith("ALLOW_") ||
140
- keyUpper.startsWith("IS_") ||
141
- keyUpper.startsWith("ENABLE_") ||
142
- keyUpper.startsWith("DISABLE_") ||
143
- keyUpper.startsWith("FORCE_") ||
144
- keyUpper.endsWith("_AUTONOMOUS_MODE"))) {
145
- prop.type = "boolean";
146
- }
147
- // Auto-detect number from key patterns (RATE, DELAY, THRESHOLD, SIZE, TEMPERATURE)
148
- if (prop.type === "string" &&
149
- (keyUpper.includes("_RATE") ||
150
- keyUpper.includes("DELAY") ||
151
- keyUpper.includes("THRESHOLD") ||
152
- keyUpper.includes("_SIZE") ||
153
- keyUpper.includes("TEMPERATURE") ||
154
- keyUpper.includes("_DEPTH") ||
155
- keyUpper.includes("_PERCENT") ||
156
- keyUpper.includes("_RATIO"))) {
157
- prop.type = "number";
158
- }
159
- // Auto-detect comma-separated lists → array renderer
160
- if (prop.type === "string" && !prop.enum) {
161
- const descLower = (p.description || "").toLowerCase();
162
- const isCommaSep = descLower.includes("comma-separated") ||
163
- descLower.includes("comma separated");
164
- const isListSuffix = keyUpper.endsWith("_IDS") ||
165
- keyUpper.endsWith("_CHANNELS") ||
166
- keyUpper.endsWith("_ROOMS") ||
167
- keyUpper.endsWith("_RELAYS") ||
168
- keyUpper.endsWith("_FEEDS") ||
169
- keyUpper.endsWith("_DEXES") ||
170
- keyUpper.endsWith("_WHITELIST") ||
171
- keyUpper.endsWith("_BLACKLIST") ||
172
- keyUpper.endsWith("_ALLOWLIST") ||
173
- keyUpper.endsWith("_SPACES") ||
174
- keyUpper.endsWith("_THREADS") ||
175
- keyUpper.endsWith("_ROLES") ||
176
- keyUpper.endsWith("_TENANTS") ||
177
- keyUpper.endsWith("_DIRS");
178
- if (isCommaSep || isListSuffix) {
179
- prop.type = "array";
180
- prop.items = { type: "string" };
181
- }
182
- }
183
- // Auto-detect textarea (prompts, instructions, templates, greetings)
184
- if (prop.type === "string" && !prop.enum && !keyUpper.includes("MODEL")) {
185
- if (keyUpper.includes("INSTRUCTIONS") ||
186
- keyUpper.includes("_GREETING") ||
187
- keyUpper.endsWith("_PROMPT") ||
188
- keyUpper.endsWith("_TEMPLATE") ||
189
- keyUpper.includes("SYSTEM_MESSAGE")) {
190
- prop.maxLength = 999;
191
- }
192
- }
193
- // Auto-detect JSON fields (json-encoded or serialized values)
194
- if (prop.type === "string" && !p.sensitive) {
195
- const descLower = (p.description || "").toLowerCase();
196
- if (descLower.includes("json-encoded") ||
197
- descLower.includes("json array") ||
198
- descLower.includes("serialized") ||
199
- descLower.includes("json format")) {
200
- prop.__jsonHint = true;
201
- }
202
- }
203
- // Auto-detect file/directory paths → file renderer
204
- if (prop.type === "string") {
205
- if ((keyUpper.endsWith("_PATH") && !keyUpper.includes("WEBHOOK")) ||
206
- keyUpper.endsWith("_DIR") ||
207
- keyUpper.endsWith("_DIRECTORY") ||
208
- keyUpper.endsWith("_FOLDER") ||
209
- keyUpper.endsWith("_FILE")) {
210
- prop.__fileHint = true;
211
- }
212
- }
213
- // Auto-detect textarea from long descriptions
214
- if (p.description && p.description.length > 200) {
215
- prop.maxLength = 999;
216
- }
217
- properties[p.key] = prop;
218
- if (p.required)
219
- required.push(p.key);
220
- // Build UI hint
221
- const hint = {
222
- label: autoLabel(p.key, pluginId),
223
- sensitive: p.sensitive ?? false,
224
- advanced: isAdvancedParam(p),
225
- };
226
- // Port numbers — constrain range
227
- if (keyUpper.includes("PORT")) {
228
- hint.min = 1;
229
- hint.max = 65535;
230
- prop.minimum = 1;
231
- prop.maximum = 65535;
232
- }
233
- // Timeout/interval — show unit
234
- if (keyUpper.includes("TIMEOUT") ||
235
- keyUpper.includes("INTERVAL") ||
236
- keyUpper.includes("_MS")) {
237
- hint.unit = "ms";
238
- prop.minimum = 0;
239
- hint.min = 0;
240
- }
241
- // Count/limit — non-negative
242
- if (keyUpper.includes("COUNT") ||
243
- keyUpper.includes("LIMIT") ||
244
- keyUpper.startsWith("MAX_")) {
245
- hint.min = 0;
246
- prop.minimum = 0;
247
- }
248
- // Retry — bounded range
249
- if (keyUpper.includes("RETRY") || keyUpper.includes("RETRIES")) {
250
- hint.min = 0;
251
- hint.max = 100;
252
- prop.minimum = 0;
253
- prop.maximum = 100;
254
- }
255
- // Debug/verbose/enabled — mark as advanced
256
- if (keyUpper.includes("DEBUG") ||
257
- keyUpper.includes("VERBOSE") ||
258
- keyUpper.includes("ENABLED")) {
259
- hint.advanced = true;
260
- }
261
- // Model selection — NOT advanced (important user-facing choice)
262
- if (keyUpper.includes("MODEL") && p.options?.length) {
263
- hint.advanced = false;
264
- }
265
- // Region/zone — suggest common cloud regions when no options provided
266
- if ((keyUpper.includes("REGION") || keyUpper.includes("ZONE")) &&
267
- !p.options?.length) {
268
- hint.type = "select";
269
- hint.options = [
270
- { value: "us-east-1", label: "US East (N. Virginia)" },
271
- { value: "us-west-2", label: "US West (Oregon)" },
272
- { value: "eu-west-1", label: "EU (Ireland)" },
273
- { value: "eu-central-1", label: "EU (Frankfurt)" },
274
- { value: "ap-southeast-1", label: "Asia Pacific (Singapore)" },
275
- { value: "ap-northeast-1", label: "Asia Pacific (Tokyo)" },
276
- ];
277
- }
278
- // File/directory path → file renderer
279
- if (prop.__fileHint) {
280
- hint.type = "file";
281
- delete prop.__fileHint;
282
- }
283
- // JSON-encoded value → json renderer
284
- if (prop.__jsonHint) {
285
- hint.type = "json";
286
- delete prop.__jsonHint;
287
- }
288
- // Model name fields — helpful placeholder (overridden by server-provided model options via configUiHints)
289
- if (keyUpper.includes("MODEL") &&
290
- prop.type === "string" &&
291
- !p.options?.length) {
292
- if (!hint.placeholder) {
293
- if (keyUpper.includes("EMBEDDING")) {
294
- hint.placeholder = "e.g., text-embedding-3-small";
295
- }
296
- else if (keyUpper.includes("TTS")) {
297
- hint.placeholder = "e.g., tts-1, eleven_multilingual_v2";
298
- }
299
- else if (keyUpper.includes("STT")) {
300
- hint.placeholder = "e.g., whisper-1";
301
- }
302
- else if (keyUpper.includes("IMAGE")) {
303
- hint.placeholder = "e.g., dall-e-3, gpt-4o";
304
- }
305
- else {
306
- hint.placeholder = "e.g., gpt-4o, claude-sonnet-4-20250514";
307
- }
308
- }
309
- }
310
- // Mode/strategy fields — extract options from description if available
311
- if (prop.type === "string" &&
312
- !prop.enum &&
313
- !p.sensitive &&
314
- (keyUpper.endsWith("_MODE") || keyUpper.endsWith("_STRATEGY"))) {
315
- const desc = p.description ?? "";
316
- // Match "auto | local | mcp" or "filesystem|in-context|sqlite"
317
- const pipeMatch = desc.match(/:\s*([a-z0-9_-]+(?:\s*[|/]\s*[a-z0-9_-]+)+)/i) ??
318
- desc.match(/\(([a-z0-9_-]+(?:\s*[|/,]\s*[a-z0-9_-]+)+)\)/i);
319
- if (pipeMatch) {
320
- const opts = pipeMatch[1]
321
- .split(/[|/,]/)
322
- .map((s) => s.trim())
323
- .filter(Boolean);
324
- const safeOpts = opts.filter((v) => /^[a-z0-9_-]+$/i.test(v));
325
- if (safeOpts.length >= 2 && safeOpts.length <= 10) {
326
- hint.type = "select";
327
- hint.options = safeOpts.map((v) => ({ value: v, label: v }));
328
- }
329
- }
330
- else {
331
- // Match 'polling' or 'webhook' -or- 'env', 'oauth', or 'bearer' style
332
- const quotedOpts = [...desc.matchAll(/'([a-z0-9_-]+)'/gi)].map((m) => m[1]);
333
- const safeQuoted = quotedOpts.filter((v) => /^[a-z0-9_-]+$/i.test(v));
334
- if (safeQuoted.length >= 2 && safeQuoted.length <= 10) {
335
- // Radio for 2 options, select for 3+
336
- hint.type = safeQuoted.length === 2 ? "radio" : "select";
337
- hint.options = safeQuoted.map((v) => ({ value: v, label: v }));
338
- }
339
- }
340
- }
341
- if (p.description) {
342
- hint.help = p.description;
343
- if (p.default != null)
344
- hint.help += ` (default: ${String(p.default)})`;
345
- }
346
- if (p.sensitive)
347
- hint.placeholder = p.isSet ? "******** (already set)" : "Enter value...";
348
- else if (p.default)
349
- hint.placeholder = `Default: ${String(p.default)}`;
350
- hints[p.key] = hint;
351
- }
352
- return {
353
- schema: { type: "object", properties, required },
354
- hints,
355
- };
356
- }
357
- /* ── PluginConfigForm bridge ─────────────────────────────────────────── */
358
- function PluginConfigForm({ plugin, pluginConfigs, onParamChange, }) {
359
- const params = plugin.parameters ?? [];
360
- const { schema, hints: autoHints } = useMemo(() => paramsToSchema(params, plugin.id), [params, plugin.id]);
361
- // Merge server-provided configUiHints over auto-generated hints.
362
- // Server hints take priority (override auto-generated ones).
363
- const hints = useMemo(() => {
364
- const serverHints = plugin.configUiHints;
365
- if (!serverHints || Object.keys(serverHints).length === 0)
366
- return autoHints;
367
- const merged = { ...autoHints };
368
- for (const [key, serverHint] of Object.entries(serverHints)) {
369
- merged[key] = { ...merged[key], ...serverHint };
370
- }
371
- return merged;
372
- }, [autoHints, plugin.configUiHints]);
373
- // Build values from current config state + existing server values.
374
- // Array-typed fields need comma-separated strings parsed into arrays.
375
- const values = useMemo(() => {
376
- const v = {};
377
- const props = (schema.properties ?? {});
378
- for (const p of params) {
379
- const isArrayField = props[p.key]?.type === "array";
380
- const configValue = pluginConfigs[plugin.id]?.[p.key];
381
- if (configValue !== undefined) {
382
- if (isArrayField && typeof configValue === "string") {
383
- v[p.key] = configValue
384
- ? configValue
385
- .split(",")
386
- .map((s) => s.trim())
387
- .filter(Boolean)
388
- : [];
389
- }
390
- else {
391
- v[p.key] = configValue;
392
- }
393
- }
394
- else if (p.isSet && !p.sensitive && p.currentValue != null) {
395
- if (isArrayField && typeof p.currentValue === "string") {
396
- v[p.key] = String(p.currentValue)
397
- ? String(p.currentValue)
398
- .split(",")
399
- .map((s) => s.trim())
400
- .filter(Boolean)
401
- : [];
402
- }
403
- else {
404
- v[p.key] = p.currentValue;
405
- }
406
- }
407
- }
408
- return v;
409
- }, [params, plugin.id, pluginConfigs, schema]);
410
- const setKeys = useMemo(() => new Set(params
411
- .filter((p) => p.isSet)
412
- .map((p) => p.key)), [params]);
413
- const handleChange = useCallback((key, value) => {
414
- // Join array values back to comma-separated strings for env var storage
415
- const stringValue = Array.isArray(value)
416
- ? value.join(", ")
417
- : String(value ?? "");
418
- onParamChange(plugin.id, key, stringValue);
419
- }, [plugin.id, onParamChange]);
420
- return (_jsx(ConfigRenderer, { schema: schema, hints: hints, values: values, setKeys: setKeys, registry: defaultRegistry, pluginId: plugin.id, onChange: handleChange }));
421
- }
422
- /* ── Default Icons ─────────────────────────────────────────────────── */
423
- const DEFAULT_ICONS = {
424
- // AI Providers
425
- anthropic: Brain,
426
- "google-genai": Sparkles,
427
- groq: Zap,
428
- "local-ai": Monitor,
429
- ollama: Bot,
430
- openai: CircleDashed,
431
- openrouter: Shuffle,
432
- "vercel-ai-gateway": Triangle,
433
- xai: Hash,
434
- // Connectors — chat & social
435
- discord: MessageCircle,
436
- telegram: Send,
437
- slack: Briefcase,
438
- twitter: Twitter,
439
- whatsapp: Smartphone,
440
- signal: Lock,
441
- imessage: MessageSquare,
442
- bluebubbles: Droplets,
443
- bluesky: Leaf,
444
- farcaster: Circle,
445
- instagram: Video,
446
- nostr: Fingerprint,
447
- twitch: Gamepad2,
448
- matrix: Link,
449
- mattermost: Diamond,
450
- msteams: Square,
451
- "google-chat": MessagesSquare,
452
- feishu: Feather,
453
- line: Circle,
454
- "nextcloud-talk": Cloud,
455
- tlon: Tornado,
456
- zalo: Circle,
457
- zalouser: Circle,
458
- // Features — voice & audio
459
- "edge-tts": Volume2,
460
- elevenlabs: Mic,
461
- tts: Volume2,
462
- "simple-voice": Mic,
463
- "robot-voice": Bot,
464
- // Features — blockchain & finance
465
- evm: Link,
466
- solana: CircleDot,
467
- "auto-trader": TrendingDown,
468
- "lp-manager": Wallet,
469
- "social-alpha": Layers,
470
- polymarket: Gamepad2,
471
- x402: CreditCard,
472
- trust: Handshake,
473
- iq: Puzzle,
474
- // Features — dev tools & infra
475
- cli: Hash,
476
- code: Puzzle,
477
- shell: Shell,
478
- github: Github,
479
- linear: Square,
480
- mcp: Puzzle,
481
- browser: Chrome,
482
- computeruse: MousePointer2,
483
- n8n: Settings,
484
- webhooks: Webhook,
485
- // Features — knowledge & memory
486
- knowledge: BookOpen,
487
- memory: Dna,
488
- "local-embedding": Binary,
489
- pdf: FileText,
490
- "secrets-manager": FileKey,
491
- scratchpad: StickyNote,
492
- rlm: RefreshCw,
493
- // Features — agents & orchestration
494
- "agent-orchestrator": Target,
495
- "agent-skills": Wrench,
496
- "plugin-manager": Package,
497
- "copilot-proxy": Handshake,
498
- directives: ClipboardList,
499
- goals: Target,
500
- "eliza-classic": Bot,
501
- // Features — media & content
502
- vision: Eye,
503
- rss: Rss,
504
- "gmail-watch": Mail,
505
- prose: PenTool,
506
- form: ClipboardList,
507
- // Features — scheduling & automation
508
- cron: Clock,
509
- scheduling: Calendar,
510
- todo: ClipboardList,
511
- commands: Command,
512
- // Features — storage & logging
513
- "s3-storage": Server,
514
- "trajectory-logger": TrendingDown,
515
- experience: Star,
516
- // Features — gaming & misc
517
- minecraft: Pickaxe,
518
- roblox: BrickWall,
519
- babylon: Gamepad,
520
- mysticism: Sparkle,
521
- personality: Target,
522
- moltbook: ScrollText,
523
- tee: LockKeyhole,
524
- blooio: Circle,
525
- acp: Construction,
526
- elizacloud: Cloud,
527
- twilio: Phone,
528
- };
529
- /** Resolve display icon: explicit plugin.icon, fallback to default map, or null. */
530
- function resolveIcon(p) {
531
- if (p.icon)
532
- return p.icon;
533
- return DEFAULT_ICONS[p.id] ?? null;
534
- }
535
- function iconImageSource(icon) {
536
- const value = icon.trim();
537
- if (!value)
538
- return null;
539
- if (/^(https?:|data:image\/|blob:|file:|capacitor:|electrobun:|app:|\/|\.\/|\.\.\/)/i.test(value)) {
540
- return resolveAppAssetUrl(value);
541
- }
542
- return null;
543
- }
544
- function getPluginResourceLinks(plugin) {
545
- const seen = new Set();
546
- const ordered = [
547
- { key: "guide", label: "Setup guide", url: plugin.setupGuideUrl },
548
- { key: "official", label: "Official", url: plugin.homepage },
549
- { key: "source", label: "Source", url: plugin.repository },
550
- ];
551
- return ordered.flatMap((item) => {
552
- const url = item.url?.trim();
553
- if (!url || seen.has(url))
554
- return [];
555
- seen.add(url);
556
- return [{ key: item.key, label: item.label, url }];
557
- });
558
- }
559
- /* ── Sub-group Classification ──────────────────────────────────────── */
560
- /** Map plugin IDs to fine-grained sub-groups for the "Feature" category. */
561
- const FEATURE_SUBGROUP = {
562
- // Voice & Audio
563
- "edge-tts": "voice",
564
- elevenlabs: "voice",
565
- tts: "voice",
566
- "simple-voice": "voice",
567
- "robot-voice": "voice",
568
- // Blockchain & Finance
569
- evm: "blockchain",
570
- solana: "blockchain",
571
- "auto-trader": "blockchain",
572
- "lp-manager": "blockchain",
573
- "social-alpha": "blockchain",
574
- polymarket: "blockchain",
575
- x402: "blockchain",
576
- trust: "blockchain",
577
- iq: "blockchain",
578
- // Dev Tools & Infrastructure
579
- cli: "devtools",
580
- code: "devtools",
581
- shell: "devtools",
582
- github: "devtools",
583
- linear: "devtools",
584
- mcp: "devtools",
585
- browser: "devtools",
586
- computeruse: "devtools",
587
- n8n: "devtools",
588
- webhooks: "devtools",
589
- // Knowledge & Memory
590
- knowledge: "knowledge",
591
- memory: "knowledge",
592
- "local-embedding": "knowledge",
593
- pdf: "knowledge",
594
- "secrets-manager": "knowledge",
595
- scratchpad: "knowledge",
596
- rlm: "knowledge",
597
- // Agents & Orchestration
598
- "agent-orchestrator": "agents",
599
- "agent-skills": "agents",
600
- "plugin-manager": "agents",
601
- "copilot-proxy": "agents",
602
- directives: "agents",
603
- goals: "agents",
604
- "eliza-classic": "agents",
605
- // Media & Content
606
- vision: "media",
607
- rss: "media",
608
- "gmail-watch": "media",
609
- prose: "media",
610
- form: "media",
611
- // Scheduling & Automation
612
- cron: "automation",
613
- scheduling: "automation",
614
- todo: "automation",
615
- commands: "automation",
616
- // Storage & Logging
617
- "s3-storage": "storage",
618
- "trajectory-logger": "storage",
619
- experience: "storage",
620
- // Gaming & Creative
621
- minecraft: "gaming",
622
- roblox: "gaming",
623
- babylon: "gaming",
624
- mysticism: "gaming",
625
- personality: "gaming",
626
- moltbook: "gaming",
627
- };
628
- const SUBGROUP_DISPLAY_ORDER = [
629
- "ai-provider",
630
- "connector",
631
- "streaming",
632
- "voice",
633
- "blockchain",
634
- "devtools",
635
- "knowledge",
636
- "agents",
637
- "media",
638
- "automation",
639
- "storage",
640
- "gaming",
641
- "feature-other",
642
- "showcase",
643
- ];
644
- const SUBGROUP_LABELS = {
645
- "ai-provider": "AI Providers",
646
- connector: "Connectors",
647
- voice: "Voice & Audio",
648
- blockchain: "Blockchain & Finance",
649
- devtools: "Dev Tools & Infrastructure",
650
- knowledge: "Knowledge & Memory",
651
- agents: "Agents & Orchestration",
652
- media: "Media & Content",
653
- automation: "Scheduling & Automation",
654
- storage: "Storage & Logging",
655
- gaming: "Gaming & Creative",
656
- "feature-other": "Other Features",
657
- streaming: "Streaming Destinations",
658
- showcase: "Showcase",
659
- };
660
- const SUBGROUP_NAV_ICONS = {
661
- all: Package,
662
- "ai-provider": Brain,
663
- connector: MessageCircle,
664
- streaming: Video,
665
- voice: Mic,
666
- blockchain: Wallet,
667
- devtools: Shell,
668
- knowledge: BookOpen,
669
- agents: Target,
670
- media: Eye,
671
- automation: Calendar,
672
- storage: Server,
673
- gaming: Gamepad2,
674
- "feature-other": Puzzle,
675
- showcase: Sparkles,
676
- };
677
- function subgroupForPlugin(plugin) {
678
- if (plugin.id === "__ui-showcase__")
679
- return "showcase";
680
- if (plugin.category === "ai-provider")
681
- return "ai-provider";
682
- if (plugin.category === "connector")
683
- return "connector";
684
- if (plugin.category === "streaming")
685
- return "streaming";
686
- return FEATURE_SUBGROUP[plugin.id] ?? "feature-other";
687
- }
688
- function comparePlugins(left, right) {
689
- if (left.enabled !== right.enabled)
690
- return left.enabled ? -1 : 1;
691
- if (left.enabled && right.enabled) {
692
- const leftNeedsConfig = left.parameters?.some((param) => param.required && !param.isSet) ?? false;
693
- const rightNeedsConfig = right.parameters?.some((param) => param.required && !param.isSet) ?? false;
694
- if (leftNeedsConfig !== rightNeedsConfig) {
695
- return leftNeedsConfig ? -1 : 1;
696
- }
697
- }
698
- return (left.name ?? "").localeCompare(right.name ?? "");
699
- }
700
- function matchesPluginFilters(plugin, searchLower, statusFilter) {
701
- const matchesStatus = statusFilter === "all" ||
702
- (statusFilter === "enabled" && plugin.enabled) ||
703
- (statusFilter === "disabled" && !plugin.enabled);
704
- const matchesSearch = !searchLower ||
705
- (plugin.name ?? "").toLowerCase().includes(searchLower) ||
706
- (plugin.description ?? "").toLowerCase().includes(searchLower) ||
707
- (plugin.tags ?? []).some((tag) => (tag ?? "").toLowerCase().includes(searchLower)) ||
708
- plugin.id.toLowerCase().includes(searchLower);
709
- return matchesStatus && matchesSearch;
710
- }
711
- function sortPlugins(filteredPlugins, pluginOrder, allowCustomOrder) {
712
- if (!allowCustomOrder || pluginOrder.length === 0) {
713
- return [...filteredPlugins].sort(comparePlugins);
714
- }
715
- const orderMap = new Map(pluginOrder.map((id, index) => [id, index]));
716
- return [...filteredPlugins].sort((left, right) => {
717
- const leftIndex = orderMap.get(left.id);
718
- const rightIndex = orderMap.get(right.id);
719
- if (leftIndex != null && rightIndex != null)
720
- return leftIndex - rightIndex;
721
- if (leftIndex != null)
722
- return -1;
723
- if (rightIndex != null)
724
- return 1;
725
- return comparePlugins(left, right);
726
- });
727
- }
728
- function buildPluginListState(options) {
729
- const { allowCustomOrder, effectiveSearch, effectiveStatusFilter, isConnectorLikeMode, mode, pluginOrder, plugins, showSubgroupFilters, subgroupFilter, } = options;
730
- const categoryPlugins = plugins.filter((plugin) => plugin.category !== "database" &&
731
- !ALWAYS_ON_PLUGIN_IDS.has(plugin.id) &&
732
- (!isConnectorLikeMode || plugin.category === "connector") &&
733
- (mode !== "streaming" || plugin.category === "streaming"));
734
- const nonDbPlugins = [SHOWCASE_PLUGIN, ...categoryPlugins];
735
- const searchLower = effectiveSearch.toLowerCase();
736
- const sorted = sortPlugins(categoryPlugins.filter((plugin) => matchesPluginFilters(plugin, searchLower, effectiveStatusFilter)), pluginOrder, allowCustomOrder);
737
- const enabledCount = categoryPlugins.filter((plugin) => plugin.enabled).length;
738
- const subgroupCounts = {};
739
- const visiblePlugins = [];
740
- for (const plugin of sorted) {
741
- const subgroup = subgroupForPlugin(plugin);
742
- subgroupCounts[subgroup] = (subgroupCounts[subgroup] ?? 0) + 1;
743
- if (!showSubgroupFilters ||
744
- subgroupFilter === "all" ||
745
- subgroup === subgroupFilter) {
746
- visiblePlugins.push(plugin);
747
- }
748
- }
749
- const subgroupTags = [
750
- { id: "all", label: "All", count: sorted.length },
751
- ...SUBGROUP_DISPLAY_ORDER.filter((subgroupId) => (subgroupCounts[subgroupId] ?? 0) > 0).map((subgroupId) => ({
752
- id: subgroupId,
753
- label: SUBGROUP_LABELS[subgroupId],
754
- count: subgroupCounts[subgroupId] ?? 0,
755
- })),
756
- ];
757
- return {
758
- categoryPlugins,
759
- enabledCount,
760
- nonDbPlugins,
761
- sorted,
762
- subgroupTags,
763
- visiblePlugins,
764
- };
765
- }
766
- function PluginListView({ label, mode = "all", inModal }) {
767
- const { plugins, pluginStatusFilter, pluginSearch, pluginSettingsOpen, pluginSaving, pluginSaveSuccess, loadPlugins, handlePluginToggle, handlePluginConfigSave, setActionNotice, setState, t, } = useApp();
768
- const [pluginConfigs, setPluginConfigs] = useState({});
769
- const [testResults, setTestResults] = useState(new Map());
770
- const [addDirOpen, setAddDirOpen] = useState(false);
771
- const [addDirPath, setAddDirPath] = useState("");
772
- const [addDirLoading, setAddDirLoading] = useState(false);
773
- const [installingPlugins, setInstallingPlugins] = useState(new Set());
774
- const [installProgress, setInstallProgress] = useState(new Map());
775
- const [togglingPlugins, setTogglingPlugins] = useState(new Set());
776
- const hasPluginToggleInFlight = togglingPlugins.size > 0;
777
- // ── Drag-to-reorder state ────────────────────────────────────────
778
- const [pluginOrder, setPluginOrder] = useState(() => {
779
- try {
780
- const stored = localStorage.getItem("pluginOrder");
781
- return stored ? JSON.parse(stored) : [];
782
- }
783
- catch {
784
- return [];
785
- }
786
- });
787
- const [draggingId, setDraggingId] = useState(null);
788
- const [dragOverId, setDragOverId] = useState(null);
789
- const dragRef = useRef(null);
790
- const isSocialMode = mode === "social";
791
- const isConnectorLikeMode = mode === "connectors" || mode === "social";
792
- const resultLabel = isSocialMode ? "connectors" : label.toLowerCase();
793
- const searchPlaceholder = isSocialMode
794
- ? "Search..."
795
- : `Search ${label.toLowerCase()}...`;
796
- const effectiveStatusFilter = isSocialMode && pluginStatusFilter === "disabled"
797
- ? "all"
798
- : pluginStatusFilter;
799
- const effectiveSearch = pluginSearch;
800
- const showToolbar = true;
801
- const allowCustomOrder = !isSocialMode;
802
- const showPluginManagementActions = !isSocialMode;
803
- // Load plugins on mount
804
- useEffect(() => {
805
- void loadPlugins();
806
- }, [loadPlugins]);
807
- // Listen for install progress events via WebSocket
808
- useEffect(() => {
809
- const unbind = client.onWsEvent("install-progress", (data) => {
810
- const pluginName = data.pluginName;
811
- const phase = data.phase;
812
- const message = data.message;
813
- if (!pluginName)
814
- return;
815
- if (phase === "complete" || phase === "error") {
816
- setInstallProgress((prev) => {
817
- const next = new Map(prev);
818
- next.delete(pluginName);
819
- return next;
820
- });
821
- }
822
- else {
823
- setInstallProgress((prev) => new Map(prev).set(pluginName, { phase, message }));
824
- }
825
- });
826
- return unbind;
827
- }, []);
828
- // Persist custom order
829
- useEffect(() => {
830
- if (pluginOrder.length > 0) {
831
- localStorage.setItem("pluginOrder", JSON.stringify(pluginOrder));
832
- }
833
- }, [pluginOrder]);
834
- const [subgroupFilter, setSubgroupFilter] = useState("all");
835
- const showSubgroupFilters = mode !== "connectors" && mode !== "streaming" && mode !== "social";
836
- const showDesktopSubgroupSidebar = showSubgroupFilters;
837
- const { categoryPlugins, enabledCount, nonDbPlugins, sorted, subgroupTags, visiblePlugins, } = useMemo(() => buildPluginListState({
838
- allowCustomOrder,
839
- effectiveSearch,
840
- effectiveStatusFilter,
841
- isConnectorLikeMode,
842
- mode,
843
- pluginOrder,
844
- plugins,
845
- showSubgroupFilters,
846
- subgroupFilter,
847
- }), [
848
- allowCustomOrder,
849
- effectiveSearch,
850
- effectiveStatusFilter,
851
- isConnectorLikeMode,
852
- mode,
853
- pluginOrder,
854
- plugins,
855
- showSubgroupFilters,
856
- subgroupFilter,
857
- ]);
858
- useEffect(() => {
859
- if (!showSubgroupFilters)
860
- return;
861
- if (subgroupFilter === "all")
862
- return;
863
- if (!subgroupTags.some((tag) => tag.id === subgroupFilter)) {
864
- setSubgroupFilter("all");
865
- }
866
- }, [showSubgroupFilters, subgroupFilter, subgroupTags]);
867
- const renderSubgroupFilterButton = useCallback((tag, options) => {
868
- const isActive = subgroupFilter === tag.id;
869
- if (options?.sidebar) {
870
- const Icon = SUBGROUP_NAV_ICONS[tag.id] ?? Package;
871
- return (_jsxs("button", { type: "button", onClick: () => setSubgroupFilter(tag.id), "aria-current": isActive ? "page" : undefined, className: `flex w-full items-center gap-3 rounded-2xl border px-4 py-3 text-left transition-all duration-200 ${isActive
872
- ? "border-accent/40 bg-accent/12 text-txt shadow-[0_10px_30px_rgba(var(--accent),0.08)]"
873
- : "border-transparent text-muted hover:border-border/60 hover:bg-card/55 hover:text-txt"}`, children: [_jsx("span", { className: `flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border ${isActive
874
- ? "border-accent/30 bg-accent/18 text-txt-strong"
875
- : "border-border/50 bg-bg-accent/80 text-muted"}`, children: _jsx(Icon, { className: "w-4 h-4" }) }), _jsx("span", { className: "min-w-0 flex-1", children: _jsx("span", { className: "block text-sm font-semibold leading-snug text-current", children: tag.label }) }), _jsx("span", { className: `rounded-full border px-2 py-0.5 text-[10px] font-mono leading-none ${isActive
876
- ? "border-accent/20 bg-accent/20 text-txt"
877
- : "border-border/50 bg-black/10 text-muted"}`, children: tag.count })] }, tag.id));
878
- }
879
- return (_jsxs(Button, { variant: isActive ? "default" : "outline", size: "sm", className: `h-7 px-3 text-[11px] font-bold tracking-wide rounded-lg transition-all ${isActive
880
- ? "shadow-[0_0_10px_rgba(var(--accent),0.2)] border-accent"
881
- : "bg-card/40 backdrop-blur-sm border-border/40 text-muted hover:text-txt shadow-sm hover:border-accent/30"}`, onClick: () => setSubgroupFilter(tag.id), children: [tag.label, _jsx("span", { className: `ml-1.5 px-1.5 py-0.5 rounded border text-[9px] font-mono leading-none ${isActive ? "bg-black/20 border-black/10" : "bg-black/10 border-white/5"}`, children: tag.count })] }, tag.id));
882
- }, [subgroupFilter]);
883
- // ── Handlers ───────────────────────────────────────────────────────
884
- const toggleSettings = (pluginId) => {
885
- const next = new Set();
886
- if (!pluginSettingsOpen.has(pluginId))
887
- next.add(pluginId);
888
- setState("pluginSettingsOpen", next);
889
- };
890
- const handleParamChange = (pluginId, paramKey, value) => {
891
- setPluginConfigs((prev) => ({
892
- ...prev,
893
- [pluginId]: { ...prev[pluginId], [paramKey]: value },
894
- }));
895
- };
896
- const handleConfigSave = async (pluginId) => {
897
- // Showcase plugin: no-op save (it's not a real plugin)
898
- if (pluginId === "__ui-showcase__")
899
- return;
900
- const config = pluginConfigs[pluginId] ?? {};
901
- await handlePluginConfigSave(pluginId, config);
902
- setPluginConfigs((prev) => {
903
- const next = { ...prev };
904
- delete next[pluginId];
905
- return next;
906
- });
907
- };
908
- const handleConfigReset = (pluginId) => {
909
- setPluginConfigs((prev) => {
910
- const next = { ...prev };
911
- delete next[pluginId];
912
- return next;
913
- });
914
- };
915
- const handleTestConnection = async (pluginId) => {
916
- setTestResults((prev) => {
917
- const next = new Map(prev);
918
- next.set(pluginId, { success: false, loading: true, durationMs: 0 });
919
- return next;
920
- });
921
- try {
922
- const result = await client.testPluginConnection(pluginId);
923
- setTestResults((prev) => {
924
- const next = new Map(prev);
925
- next.set(pluginId, { ...result, loading: false });
926
- return next;
927
- });
928
- }
929
- catch (err) {
930
- setTestResults((prev) => {
931
- const next = new Map(prev);
932
- next.set(pluginId, {
933
- success: false,
934
- error: err instanceof Error ? err.message : String(err),
935
- loading: false,
936
- durationMs: 0,
937
- });
938
- return next;
939
- });
940
- }
941
- };
942
- const handleInstallPlugin = async (pluginId, npmName) => {
943
- setInstallingPlugins((prev) => new Set(prev).add(pluginId));
944
- try {
945
- await client.installRegistryPlugin(npmName);
946
- await loadPlugins();
947
- setActionNotice(`${npmName} installed. Restart required to activate.`, "success");
948
- }
949
- catch (err) {
950
- setActionNotice(`Failed to install ${npmName}: ${err instanceof Error ? err.message : "unknown error"}`, "error", 3800);
951
- // Still try to refresh in case install succeeded but restart failed
952
- try {
953
- await loadPlugins();
954
- }
955
- catch {
956
- /* ignore */
957
- }
958
- }
959
- finally {
960
- setInstallingPlugins((prev) => {
961
- const next = new Set(prev);
962
- next.delete(pluginId);
963
- return next;
964
- });
965
- }
966
- };
967
- const handleTogglePlugin = useCallback(async (pluginId, enabled) => {
968
- let shouldStart = false;
969
- setTogglingPlugins((prev) => {
970
- if (prev.has(pluginId) || prev.size > 0)
971
- return prev;
972
- shouldStart = true;
973
- return new Set(prev).add(pluginId);
974
- });
975
- if (!shouldStart)
976
- return;
977
- try {
978
- await handlePluginToggle(pluginId, enabled);
979
- }
980
- finally {
981
- setTogglingPlugins((prev) => {
982
- const next = new Set(prev);
983
- next.delete(pluginId);
984
- return next;
985
- });
986
- }
987
- }, [handlePluginToggle]);
988
- const handleOpenPluginExternalUrl = useCallback(async (url) => {
989
- try {
990
- await openExternalUrl(url);
991
- }
992
- catch (err) {
993
- setActionNotice(err instanceof Error ? err.message : "Failed to open external link.", "error", 4200);
994
- }
995
- }, [setActionNotice]);
996
- // ── Add from directory ──────────────────────────────────────────────
997
- const handleAddFromDirectory = async () => {
998
- const trimmed = addDirPath.trim();
999
- if (!trimmed)
1000
- return;
1001
- setAddDirLoading(true);
1002
- try {
1003
- await client.installRegistryPlugin(trimmed);
1004
- await loadPlugins();
1005
- setAddDirPath("");
1006
- setAddDirOpen(false);
1007
- setActionNotice(`Plugin installed from ${trimmed}`, "success");
1008
- }
1009
- catch (err) {
1010
- setActionNotice(`Failed to add plugin: ${err instanceof Error ? err.message : "unknown error"}`, "error", 3800);
1011
- }
1012
- setAddDirLoading(false);
1013
- };
1014
- // ── Drag-to-reorder handlers ─────────────────────────────────────
1015
- const handleDragStart = useCallback((e, pluginId) => {
1016
- dragRef.current = pluginId;
1017
- setDraggingId(pluginId);
1018
- e.dataTransfer.effectAllowed = "move";
1019
- e.dataTransfer.setData("text/plain", pluginId);
1020
- }, []);
1021
- const handleDragOver = useCallback((e, pluginId) => {
1022
- e.preventDefault();
1023
- e.dataTransfer.dropEffect = "move";
1024
- if (dragRef.current && dragRef.current !== pluginId) {
1025
- setDragOverId(pluginId);
1026
- }
1027
- }, []);
1028
- const handleDrop = useCallback((e, targetId) => {
1029
- e.preventDefault();
1030
- const srcId = dragRef.current;
1031
- if (!srcId || srcId === targetId) {
1032
- dragRef.current = null;
1033
- setDraggingId(null);
1034
- setDragOverId(null);
1035
- return;
1036
- }
1037
- // Materialize current sorted order, then splice
1038
- if (!allowCustomOrder)
1039
- return;
1040
- setPluginOrder(() => {
1041
- // Build full order: items in custom order first, then any new ones
1042
- const allIds = nonDbPlugins.map((p) => p.id);
1043
- let ids;
1044
- if (pluginOrder.length > 0) {
1045
- const known = new Set(pluginOrder);
1046
- ids = [...pluginOrder, ...allIds.filter((id) => !known.has(id))];
1047
- }
1048
- else {
1049
- ids = sorted.map((p) => p.id);
1050
- // Pad with any nonDbPlugins not currently in sorted (due to filters)
1051
- const inSorted = new Set(ids);
1052
- for (const id of allIds) {
1053
- if (!inSorted.has(id))
1054
- ids.push(id);
1055
- }
1056
- }
1057
- const fromIdx = ids.indexOf(srcId);
1058
- const toIdx = ids.indexOf(targetId);
1059
- if (fromIdx === -1 || toIdx === -1)
1060
- return ids;
1061
- ids.splice(fromIdx, 1);
1062
- ids.splice(toIdx, 0, srcId);
1063
- return ids;
1064
- });
1065
- dragRef.current = null;
1066
- setDraggingId(null);
1067
- setDragOverId(null);
1068
- }, [allowCustomOrder, nonDbPlugins, pluginOrder, sorted]);
1069
- const handleDragEnd = useCallback(() => {
1070
- dragRef.current = null;
1071
- setDraggingId(null);
1072
- setDragOverId(null);
1073
- }, []);
1074
- const handleResetOrder = useCallback(() => {
1075
- setPluginOrder([]);
1076
- localStorage.removeItem("pluginOrder");
1077
- }, []);
1078
- const renderResolvedIcon = useCallback((plugin, options) => {
1079
- const icon = resolveIcon(plugin);
1080
- if (!icon) {
1081
- return _jsx("span", { className: options?.emojiClassName ?? "text-sm", children: "\uD83E\uDDE9" });
1082
- }
1083
- if (typeof icon === "string") {
1084
- const imageSrc = iconImageSource(icon);
1085
- return imageSrc ? (_jsx("img", { src: imageSrc, alt: "", className: options?.className ?? "w-5 h-5 rounded-sm object-contain", onError: (e) => {
1086
- e.currentTarget.style.display = "none";
1087
- } })) : (_jsx("span", { className: options?.emojiClassName ?? "text-sm", children: icon }));
1088
- }
1089
- const IconComponent = icon;
1090
- return _jsx(IconComponent, { className: options?.className ?? "w-5 h-5" });
1091
- }, []);
1092
- // ── Card renderers ────────────────────────────────────────────────
1093
- const renderPluginCard = (p) => {
1094
- const hasParams = p.parameters && p.parameters.length > 0;
1095
- const isOpen = pluginSettingsOpen.has(p.id);
1096
- const setCount = hasParams
1097
- ? p.parameters.filter((param) => param.isSet).length
1098
- : 0;
1099
- const totalCount = hasParams ? p.parameters.length : 0;
1100
- const allParamsSet = !hasParams || setCount === totalCount;
1101
- const isShowcase = p.id === "__ui-showcase__";
1102
- const categoryLabel = isShowcase
1103
- ? "showcase"
1104
- : p.category === "ai-provider"
1105
- ? "ai provider"
1106
- : p.category;
1107
- const enabledBorder = isShowcase
1108
- ? "border-l-[3px] border-l-accent"
1109
- : p.enabled
1110
- ? !allParamsSet && hasParams
1111
- ? "border-l-[3px] border-l-warn"
1112
- : "border-l-[3px] border-l-accent"
1113
- : "";
1114
- const isToggleBusy = togglingPlugins.has(p.id);
1115
- const toggleDisabled = isToggleBusy || (hasPluginToggleInFlight && !isToggleBusy);
1116
- const isDragging = draggingId === p.id;
1117
- const isDragOver = dragOverId === p.id && draggingId !== p.id;
1118
- const pluginLinks = getPluginResourceLinks(p);
1119
- return (_jsxs("li", { draggable: allowCustomOrder, onDragStart: allowCustomOrder ? (e) => handleDragStart(e, p.id) : undefined, onDragOver: allowCustomOrder ? (e) => handleDragOver(e, p.id) : undefined, onDrop: allowCustomOrder ? (e) => handleDrop(e, p.id) : undefined, onDragEnd: allowCustomOrder ? handleDragEnd : undefined, className: `border border-border bg-card transition-colors duration-150 flex flex-col ${enabledBorder} ${isOpen ? "ring-1 ring-accent" : "hover:border-accent/40"} ${isDragging ? "opacity-30" : ""} ${isDragOver ? "ring-2 ring-accent/60" : ""}`, "data-plugin-id": p.id, children: [_jsxs("div", { className: "flex items-center gap-2 px-3 pt-3 pb-1", children: [allowCustomOrder && (_jsx("span", { className: "text-[10px] text-muted opacity-30 hover:opacity-70 cursor-grab active:cursor-grabbing shrink-0 select-none leading-none", title: t("pluginsview.DragToReorder"), children: t("pluginsview.X2807") })), _jsxs("span", { className: "font-bold text-sm flex items-center gap-1.5 min-w-0 truncate flex-1", children: [(() => {
1120
- const icon = resolveIcon(p);
1121
- if (!icon)
1122
- return null;
1123
- if (typeof icon === "string") {
1124
- const imageSrc = iconImageSource(icon);
1125
- return imageSrc ? (_jsx("img", { src: imageSrc, alt: "", className: "w-5 h-5 rounded-sm object-contain", onError: (e) => {
1126
- e.currentTarget.style.display =
1127
- "none";
1128
- } })) : (_jsx("span", { className: "text-sm", children: icon }));
1129
- }
1130
- const IconComponent = icon;
1131
- return _jsx(IconComponent, { className: "w-5 h-5" });
1132
- })(), p.name] }), isShowcase ? (_jsx("span", { className: "text-[10px] font-bold tracking-wider px-2.5 py-[2px] border border-accent text-txt bg-accent-subtle shrink-0", children: t("pluginsview.DEMO") })) : (_jsx("button", { type: "button", "data-plugin-toggle": p.id, className: `text-[10px] font-bold tracking-wider px-2.5 py-[2px] border transition-colors duration-150 shrink-0 ${p.enabled
1133
- ? "bg-accent text-accent-fg border-accent"
1134
- : "bg-transparent text-muted border-border hover:text-txt"} ${toggleDisabled
1135
- ? "opacity-60 cursor-not-allowed"
1136
- : "cursor-pointer"}`, onClick: (e) => {
1137
- e.stopPropagation();
1138
- void handleTogglePlugin(p.id, !p.enabled);
1139
- }, disabled: toggleDisabled, children: isToggleBusy ? "APPLYING" : p.enabled ? "ON" : "OFF" }))] }), _jsxs("div", { className: "flex items-center gap-1.5 px-3 pb-1.5", children: [_jsx("span", { className: "text-[10px] px-1.5 py-px border border-border bg-surface text-muted lowercase tracking-wide whitespace-nowrap", children: categoryLabel }), p.version && (_jsxs("span", { className: "text-[10px] font-mono text-muted opacity-70", children: ["v", p.version] })), p.enabled && !p.isActive && !isShowcase && (_jsx("span", { className: `text-[10px] px-1.5 py-px border lowercase tracking-wide whitespace-nowrap ${p.loadError
1140
- ? "border-destructive bg-[rgba(153,27,27,0.04)] text-destructive"
1141
- : "border-warn bg-[rgba(234,179,8,0.06)] text-warn"}`, title: p.loadError || "Plugin is enabled but not loaded in the runtime", children: p.loadError ? "load failed" : "not installed" })), isToggleBusy && (_jsx("span", { className: "text-[10px] px-1.5 py-px border border-accent bg-accent-subtle text-txt lowercase tracking-wide whitespace-nowrap", children: t("pluginsview.restarting") }))] }), _jsx("p", { className: "text-xs text-muted px-3 pb-2 flex-1", style: {
1142
- display: "-webkit-box",
1143
- WebkitLineClamp: 3,
1144
- WebkitBoxOrient: "vertical",
1145
- overflow: "hidden",
1146
- }, children: p.description || "No description available" }), (p.tags?.length ?? 0) > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5 px-3 pb-2", children: p.tags?.slice(0, 4).map((tag) => (_jsx("span", { className: "text-[10px] px-1.5 py-px border border-border/50 bg-black/10 text-muted lowercase tracking-wide whitespace-nowrap", children: tag }, `${p.id}:${tag}`))) })), pluginLinks.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 px-3 pb-2", children: pluginLinks.map((link) => (_jsx(Button, { variant: "outline", size: "sm", className: "h-6 px-2 text-[10px] font-bold border-border/40 text-muted hover:text-txt hover:border-accent hover:bg-accent/5 backdrop-blur-sm transition-all", onClick: (e) => {
1147
- e.stopPropagation();
1148
- void handleOpenPluginExternalUrl(link.url);
1149
- }, title: `${link.label}: ${link.url}`, children: link.label }, `${p.id}:${link.key}`))) })), _jsxs("div", { className: "flex items-center gap-3 px-4 py-3 border-t border-border/40 mt-auto bg-black/5", children: [hasParams && !isShowcase ? (_jsxs(_Fragment, { children: [_jsx("span", { className: `inline-block w-2 h-2 rounded-full shadow-[0_0_10px_currentColor] shrink-0 ${allParamsSet
1150
- ? "bg-ok text-ok"
1151
- : "bg-destructive text-destructive"}` }), _jsxs("span", { className: "text-[11px] font-bold tracking-wide text-muted", children: [setCount, "/", totalCount, " ", t("pluginsview.configured")] })] })) : !hasParams && !isShowcase ? (_jsx("span", { className: "text-[11px] font-bold tracking-wide text-muted/60", children: t("pluginsview.NoConfigNeeded") })) : (_jsx("span", { className: "text-[11px] font-bold tracking-wide text-muted/60", children: t("pluginsview.23FieldDemos") })), _jsx("div", { className: "flex-1" }), p.enabled &&
1152
- !p.isActive &&
1153
- p.npmName &&
1154
- !isShowcase &&
1155
- !p.loadError && (_jsx(Button, { variant: "default", size: "sm", className: "h-7 px-3 text-[10px] font-bold tracking-wide shadow-sm max-w-[140px] truncate", disabled: installingPlugins.has(p.id), onClick: (e) => {
1156
- e.stopPropagation();
1157
- handleInstallPlugin(p.id, p.npmName ?? "");
1158
- }, children: installingPlugins.has(p.id)
1159
- ? installProgress.get(p.npmName ?? "")?.message ||
1160
- "Installing..."
1161
- : "Install" })), hasParams && (_jsxs(Button, { variant: "ghost", size: "sm", className: `h-7 px-2.5 text-[11px] font-bold transition-all flex items-center gap-1.5 ${isOpen
1162
- ? "text-txt bg-accent/10 hover:bg-accent/20"
1163
- : "text-muted hover:text-txt hover:bg-white/5"}`, onClick: (e) => {
1164
- e.stopPropagation();
1165
- toggleSettings(p.id);
1166
- }, title: t("pluginsview.Settings"), children: [_jsx("span", { className: "text-[14px] leading-none", children: "\u2699" }), _jsx("span", { className: `inline-block text-[10px] transition-transform duration-200 ${isOpen ? "rotate-90" : ""}`, children: "\u25B6" })] }))] }), p.enabled && p.validationErrors && p.validationErrors.length > 0 && (_jsx("div", { className: "px-3 py-1.5 border-t border-destructive bg-[rgba(153,27,27,0.04)] text-xs", children: p.validationErrors.map((err) => (_jsxs("div", { className: "text-destructive mb-0.5 text-[10px]", children: [err.field, ": ", err.message] }, `${err.field}:${err.message}`))) })), p.enabled &&
1167
- p.validationWarnings &&
1168
- p.validationWarnings.length > 0 && (_jsx("div", { className: "px-3 py-1", children: p.validationWarnings.map((w) => (_jsx("div", { className: "text-warn text-[10px]", children: w.message }, `${w.field}:${w.message}`))) }))] }, p.id));
1169
- };
1170
- /** Render a grid of plugin cards. */
1171
- const renderPluginGrid = (plugins) => (_jsx("ul", { className: "grid grid-cols-[repeat(auto-fill,minmax(260px,1fr))] gap-3 m-0 p-0 list-none", children: plugins.map((p) => renderPluginCard(p)) }));
1172
- // Resolve the plugin whose settings dialog is currently open.
1173
- // Exclude ai-provider plugins — those are configured in Settings.
1174
- const settingsDialogPlugin = Array.from(pluginSettingsOpen)
1175
- .map((id) => nonDbPlugins.find((plugin) => plugin.id === id) ?? null)
1176
- .find((plugin) => (plugin?.parameters?.length ?? 0) > 0) ?? null;
1177
- // ── Game-modal state ──────────────────────────────────────────────
1178
- const [gameSelectedId, setGameSelectedId] = useState(null);
1179
- const [gameMobileDetail, setGameMobileDetail] = useState(false);
1180
- const gameNarrow = typeof window !== "undefined" && typeof window.matchMedia === "function"
1181
- ? window.matchMedia("(max-width: 600px)").matches
1182
- : false;
1183
- const [connectorExpandedIds, setConnectorExpandedIds] = useState(() => new Set());
1184
- const [connectorSelectedId, setConnectorSelectedId] = useState(null);
1185
- const [desktopConnectorLayout, setDesktopConnectorLayout] = useState(() => typeof window !== "undefined" && typeof window.matchMedia === "function"
1186
- ? window.matchMedia("(min-width: 1024px)").matches
1187
- : false);
1188
- const connectorSectionRefs = useRef({});
1189
- // Auto-select first visible plugin in game modal
1190
- const gameVisiblePlugins = visiblePlugins.filter((p) => p.id !== "__ui-showcase__");
1191
- const effectiveGameSelected = gameVisiblePlugins.find((p) => p.id === gameSelectedId)
1192
- ? gameSelectedId
1193
- : (gameVisiblePlugins[0]?.id ?? null);
1194
- const selectedPlugin = gameVisiblePlugins.find((p) => p.id === effectiveGameSelected) ?? null;
1195
- const selectedPluginLinks = selectedPlugin
1196
- ? getPluginResourceLinks(selectedPlugin)
1197
- : [];
1198
- useEffect(() => {
1199
- if (!isSocialMode || !inModal)
1200
- return;
1201
- if (pluginStatusFilter !== "disabled")
1202
- return;
1203
- setState("pluginStatusFilter", "all");
1204
- }, [inModal, isSocialMode, pluginStatusFilter, setState]);
1205
- useEffect(() => {
1206
- if (!isSocialMode || !inModal)
1207
- return;
1208
- if (typeof window === "undefined" ||
1209
- typeof window.matchMedia !== "function")
1210
- return;
1211
- const media = window.matchMedia("(min-width: 1024px)");
1212
- const syncLayout = () => {
1213
- setDesktopConnectorLayout(media.matches);
1214
- };
1215
- syncLayout();
1216
- if (typeof media.addEventListener === "function") {
1217
- media.addEventListener("change", syncLayout);
1218
- return () => media.removeEventListener("change", syncLayout);
1219
- }
1220
- media.addListener(syncLayout);
1221
- return () => media.removeListener(syncLayout);
1222
- }, [inModal, isSocialMode]);
1223
- useEffect(() => {
1224
- if (!isSocialMode || !inModal)
1225
- return;
1226
- if (visiblePlugins.length === 0) {
1227
- setConnectorSelectedId(null);
1228
- setConnectorExpandedIds(new Set());
1229
- return;
1230
- }
1231
- setConnectorSelectedId((prev) => {
1232
- if (visiblePlugins.some((plugin) => plugin.id === prev)) {
1233
- return prev;
1234
- }
1235
- return desktopConnectorLayout ? (visiblePlugins[0]?.id ?? null) : null;
1236
- });
1237
- }, [desktopConnectorLayout, inModal, isSocialMode, visiblePlugins]);
1238
- useEffect(() => {
1239
- if (!isSocialMode || !inModal || !desktopConnectorLayout)
1240
- return;
1241
- if (!connectorSelectedId)
1242
- return;
1243
- setConnectorExpandedIds(new Set([connectorSelectedId]));
1244
- }, [connectorSelectedId, desktopConnectorLayout, inModal, isSocialMode]);
1245
- useEffect(() => {
1246
- if (!isSocialMode || !inModal || desktopConnectorLayout)
1247
- return;
1248
- setConnectorExpandedIds(new Set());
1249
- }, [desktopConnectorLayout, inModal, isSocialMode]);
1250
- const scrollConnectorIntoView = useCallback((pluginId) => {
1251
- const element = connectorSectionRefs.current[pluginId];
1252
- if (element && typeof element.scrollIntoView === "function") {
1253
- element.scrollIntoView({ behavior: "smooth", block: "start" });
1254
- }
1255
- }, []);
1256
- const handleConnectorSelect = useCallback((pluginId) => {
1257
- setConnectorSelectedId(pluginId);
1258
- setConnectorExpandedIds((prev) => {
1259
- if (desktopConnectorLayout) {
1260
- return new Set([pluginId]);
1261
- }
1262
- const next = new Set(prev);
1263
- next.add(pluginId);
1264
- return next;
1265
- });
1266
- scrollConnectorIntoView(pluginId);
1267
- }, [desktopConnectorLayout, scrollConnectorIntoView]);
1268
- const handleConnectorSectionToggle = useCallback((pluginId) => {
1269
- setConnectorSelectedId(pluginId);
1270
- let shouldScroll = false;
1271
- setConnectorExpandedIds((prev) => {
1272
- if (desktopConnectorLayout) {
1273
- // Accordion: toggle off if already open, otherwise open this one only
1274
- if (prev.has(pluginId))
1275
- return new Set();
1276
- shouldScroll = true;
1277
- return new Set([pluginId]);
1278
- }
1279
- const next = new Set(prev);
1280
- if (next.has(pluginId))
1281
- next.delete(pluginId);
1282
- else
1283
- next.add(pluginId);
1284
- return next;
1285
- });
1286
- if (desktopConnectorLayout && shouldScroll) {
1287
- scrollConnectorIntoView(pluginId);
1288
- }
1289
- }, [desktopConnectorLayout, scrollConnectorIntoView]);
1290
- // ── Game-modal render ─────────────────────────────────────────────
1291
- if (inModal && isSocialMode) {
1292
- return (_jsxs("div", { "data-testid": "plugins-view-social", className: `flex min-h-full min-w-0 w-full flex-col bg-bg ${desktopConnectorLayout ? "md:flex-row" : ""}`, children: [desktopConnectorLayout && (_jsx("aside", { "data-testid": "connectors-settings-sidebar", className: "flex w-[22rem] shrink-0 border-r border-border/50 bg-bg/35 backdrop-blur-xl", children: _jsxs("div", { className: "flex min-h-full flex-1 flex-col sticky top-0 max-h-screen", children: [_jsxs("div", { className: "border-b border-border/40 px-5 py-5 text-center", children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-[0.18em] text-muted/80", children: "Connectors" }), _jsxs("div", { className: "mt-2 text-sm text-muted", children: [enabledCount, " enabled of ", categoryPlugins.length] })] }), _jsx("nav", { className: "flex-1 space-y-2 overflow-y-auto px-4 py-4", children: visiblePlugins.map((plugin) => {
1293
- const isSelected = connectorSelectedId === plugin.id;
1294
- const isExpanded = connectorExpandedIds.has(plugin.id);
1295
- const isToggleBusy = togglingPlugins.has(plugin.id);
1296
- const toggleDisabled = isToggleBusy || (hasPluginToggleInFlight && !isToggleBusy);
1297
- return (_jsxs("div", { className: `flex items-center gap-2 rounded-2xl border px-3 py-2 transition-all ${isSelected
1298
- ? "border-accent/40 bg-accent/10 text-txt shadow-[0_10px_30px_rgba(var(--accent),0.08)]"
1299
- : "border-transparent bg-transparent text-muted hover:border-border/60 hover:bg-card/55 hover:text-txt"}`, children: [_jsxs("button", { type: "button", className: "flex min-w-0 flex-1 items-center gap-3 text-left", onClick: () => handleConnectorSelect(plugin.id), "aria-current": isSelected ? "page" : undefined, children: [_jsx("span", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border p-1.5 ${isSelected
1300
- ? "border-accent/30 bg-accent/18 text-txt-strong"
1301
- : "border-border/50 bg-bg-accent/80 text-muted"}`, children: renderResolvedIcon(plugin, {
1302
- className: "h-4 w-4 shrink-0 rounded-sm object-contain",
1303
- emojiClassName: "text-sm",
1304
- }) }), _jsx("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold leading-none", children: plugin.name })] }), _jsx("button", { type: "button", className: `shrink-0 rounded-full border px-2.5 py-1 text-[10px] font-bold tracking-[0.16em] transition-colors ${plugin.enabled
1305
- ? "border-accent bg-accent text-accent-fg"
1306
- : "border-border bg-transparent text-muted hover:border-accent/40 hover:text-txt"} ${toggleDisabled
1307
- ? "cursor-not-allowed opacity-60"
1308
- : "cursor-pointer"}`, onClick: () => void handleTogglePlugin(plugin.id, !plugin.enabled), disabled: toggleDisabled, children: isToggleBusy ? "..." : plugin.enabled ? "ON" : "OFF" }), _jsx("span", { className: `shrink-0 text-muted transition-transform ${isExpanded ? "rotate-90" : ""}`, children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }, plugin.id));
1309
- }) })] }) })), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "sticky top-0 z-20 border-b border-border/50 bg-bg/85 px-4 py-4 shadow-[0_12px_30px_rgba(0,0,0,0.14)] backdrop-blur-xl sm:px-6 lg:px-8", children: _jsx("div", { className: "mx-auto max-w-5xl", children: _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center", children: [_jsx(Input, { type: "text", className: "h-11 w-full rounded-xl border-border/60 bg-card/70 text-sm shadow-sm", placeholder: "Search connectors...", value: pluginSearch, onChange: (e) => setState("pluginSearch", e.target.value) }), _jsx("div", { className: "flex shrink-0 gap-1.5 rounded-xl border border-white/5 bg-black/10 p-1", children: ["all", "enabled"].map((status) => (_jsx(Button, { variant: effectiveStatusFilter === status ? "default" : "ghost", size: "sm", className: `h-8 px-3 text-[11px] font-bold tracking-wide transition-all ${effectiveStatusFilter === status
1310
- ? "shadow-sm"
1311
- : "text-muted hover:bg-white/5 hover:text-txt"}`, onClick: () => setState("pluginStatusFilter", status), children: status === "all"
1312
- ? `All (${categoryPlugins.length})`
1313
- : `Enabled (${enabledCount})` }, status))) })] }) }) }), _jsxs("div", { className: "mx-auto max-w-5xl px-4 py-4 sm:px-6 sm:py-5 lg:px-8 lg:py-6", children: [hasPluginToggleInFlight && (_jsx("div", { className: "mb-4 rounded-2xl border border-accent bg-accent-subtle px-4 py-3 text-[11px] text-txt", children: t("pluginsview.ApplyingPluginChan") })), visiblePlugins.length === 0 ? (_jsx("div", { className: "rounded-2xl border border-dashed border-border px-5 py-10 text-center text-muted", children: effectiveSearch
1314
- ? "No connectors match your search."
1315
- : "No connectors match your filters." })) : (_jsx("div", { "data-testid": "connectors-settings-content", className: "space-y-4", children: (desktopConnectorLayout
1316
- ? visiblePlugins.filter((p) => p.id === connectorSelectedId)
1317
- : visiblePlugins).map((plugin) => {
1318
- const hasParams = (plugin.parameters?.length ?? 0) > 0 &&
1319
- plugin.id !== "__ui-showcase__";
1320
- const isExpanded = connectorExpandedIds.has(plugin.id);
1321
- const isSelected = connectorSelectedId === plugin.id;
1322
- const setCount = hasParams
1323
- ? plugin.parameters.filter((param) => param.isSet).length
1324
- : 0;
1325
- const totalCount = hasParams ? plugin.parameters.length : 0;
1326
- const allParamsSet = !hasParams || setCount === totalCount;
1327
- const isToggleBusy = togglingPlugins.has(plugin.id);
1328
- const toggleDisabled = isToggleBusy || (hasPluginToggleInFlight && !isToggleBusy);
1329
- const isSaving = pluginSaving.has(plugin.id);
1330
- const saveSuccess = pluginSaveSuccess.has(plugin.id);
1331
- const testResult = testResults.get(plugin.id);
1332
- const pluginLinks = getPluginResourceLinks(plugin);
1333
- return (_jsxs("section", { ref: (element) => {
1334
- connectorSectionRefs.current[plugin.id] = element;
1335
- }, "data-testid": `connector-section-${plugin.id}`, className: `overflow-hidden rounded-[1.4rem] border bg-card/90 shadow-sm transition-all ${isSelected
1336
- ? "border-accent/35 shadow-[0_18px_40px_rgba(var(--accent),0.08)]"
1337
- : "border-border/50"}`, children: [_jsxs("div", { className: "flex items-start gap-3 px-4 py-4 sm:px-5", children: [_jsxs("button", { type: "button", "data-testid": `connector-header-${plugin.id}`, className: "flex min-w-0 flex-1 items-start gap-3 text-left", onClick: () => handleConnectorSectionToggle(plugin.id), children: [_jsx("span", { className: `mt-0.5 flex h-11 w-11 shrink-0 items-center justify-center rounded-2xl border p-2.5 ${isSelected
1338
- ? "border-accent/30 bg-accent/18 text-txt-strong"
1339
- : "border-border/50 bg-bg-accent/80 text-muted"}`, children: renderResolvedIcon(plugin, {
1340
- className: "h-4 w-4 shrink-0 rounded-sm object-contain",
1341
- emojiClassName: "text-base",
1342
- }) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsxs("span", { className: "flex min-w-0 flex-wrap items-center gap-2", children: [_jsx("span", { className: "truncate text-sm font-semibold text-txt", children: plugin.name }), _jsx("span", { className: `rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] ${allParamsSet
1343
- ? "border-ok/30 bg-ok/10 text-ok"
1344
- : "border-warn/30 bg-warn/10 text-warn"}`, children: allParamsSet ? "Ready" : "Needs setup" }), plugin.version && (_jsxs("span", { className: "text-[11px] font-mono text-muted/80", children: ["v", plugin.version] }))] }), _jsx("span", { className: "mt-1 block text-sm text-muted", children: plugin.description || "No description available" }), _jsxs("span", { className: "mt-2 flex flex-wrap items-center gap-2 text-[11px] text-muted", children: [_jsx("span", { children: hasParams
1345
- ? `${setCount}/${totalCount} configured`
1346
- : "No configuration needed" }), plugin.enabled && !plugin.isActive && (_jsx("span", { className: `rounded-full border px-2 py-0.5 ${plugin.loadError
1347
- ? "border-danger/30 bg-danger/10 text-danger"
1348
- : "border-warn/30 bg-warn/10 text-warn"}`, children: plugin.loadError
1349
- ? "Load failed"
1350
- : "Not installed" }))] })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsx("button", { type: "button", className: `rounded-full border px-3 py-1.5 text-[10px] font-bold tracking-[0.16em] transition-colors ${plugin.enabled
1351
- ? "border-accent bg-accent text-accent-fg"
1352
- : "border-border bg-transparent text-muted hover:border-accent/40 hover:text-txt"} ${toggleDisabled
1353
- ? "cursor-not-allowed opacity-60"
1354
- : "cursor-pointer"}`, onClick: () => void handleTogglePlugin(plugin.id, !plugin.enabled), disabled: toggleDisabled, children: isToggleBusy
1355
- ? "..."
1356
- : plugin.enabled
1357
- ? "ON"
1358
- : "OFF" }), _jsxs("button", { type: "button", className: `flex items-center gap-1 rounded-full border px-3 py-1.5 text-[11px] font-semibold transition-colors ${isExpanded
1359
- ? "border-accent/40 bg-accent/10 text-txt"
1360
- : "border-border/50 text-muted hover:border-accent/40 hover:text-txt"}`, onClick: () => handleConnectorSectionToggle(plugin.id), "aria-expanded": isExpanded, "aria-label": `${isExpanded ? "Collapse" : "Expand"} ${plugin.name}`, children: [_jsx("span", { children: isExpanded ? "Collapse" : "Expand" }), _jsx(ChevronRight, { className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-90" : ""}` })] })] })] }), isExpanded && (_jsxs("div", { className: "border-t border-border/40 bg-black/5 px-4 py-4 sm:px-5", children: [plugin.validationErrors &&
1361
- plugin.validationErrors.length > 0 && (_jsx("div", { className: "mb-4 rounded-2xl border border-danger/30 bg-danger/10 px-4 py-3 text-sm text-danger", children: plugin.validationErrors.map((error) => (_jsxs("div", { children: [error.field, ": ", error.message] }, `${plugin.id}:${error.field}:${error.message}`))) })), plugin.validationWarnings &&
1362
- plugin.validationWarnings.length > 0 && (_jsx("div", { className: "mb-4 rounded-2xl border border-warn/30 bg-warn/10 px-4 py-3 text-sm text-warn", children: plugin.validationWarnings.map((warning) => (_jsx("div", { children: warning.message }, `${plugin.id}:${warning.field}:${warning.message}`))) })), pluginLinks.length > 0 && (_jsx("div", { className: "mb-4 flex flex-wrap gap-2", children: pluginLinks.map((link) => (_jsx(Button, { variant: "outline", size: "sm", className: "h-8 rounded-xl border-border/40 bg-card/40 px-3 text-[11px] font-semibold text-muted transition-all hover:border-accent hover:bg-accent/5 hover:text-txt", onClick: () => {
1363
- void handleOpenPluginExternalUrl(link.url);
1364
- }, title: `${link.label}: ${link.url}`, children: link.label }, `${plugin.id}:${link.key}`))) })), plugin.enabled &&
1365
- !plugin.isActive &&
1366
- plugin.npmName &&
1367
- !plugin.loadError && (_jsx("div", { className: "mb-4 rounded-2xl border border-warn/30 bg-warn/10 px-4 py-3 text-sm text-txt", children: _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("div", { children: "Install this connector to activate it in the runtime." }), _jsx(Button, { variant: "default", size: "sm", className: "h-8 rounded-xl px-4 text-[11px] font-bold", disabled: installingPlugins.has(plugin.id), onClick: () => handleInstallPlugin(plugin.id, plugin.npmName ?? ""), children: installingPlugins.has(plugin.id)
1368
- ? installProgress.get(plugin.npmName ?? "")?.message || "Installing..."
1369
- : "Install Plugin" })] }) })), hasParams ? (_jsxs("div", { className: "space-y-4", children: [_jsx(PluginConfigForm, { plugin: plugin, pluginConfigs: pluginConfigs, onParamChange: handleParamChange }), plugin.id === "whatsapp" && (_jsx(WhatsAppQrOverlay, { accountId: "default" }))] })) : (_jsx("div", { className: "rounded-2xl border border-border/40 bg-card/40 px-4 py-3 text-sm text-muted", children: "No configuration needed." })), _jsxs("div", { className: "mt-4 flex flex-wrap items-center gap-2", children: [plugin.isActive && (_jsx(Button, { variant: testResult?.success
1370
- ? "default"
1371
- : testResult?.error
1372
- ? "destructive"
1373
- : "outline", size: "sm", className: `h-8 rounded-xl px-4 text-[11px] font-bold transition-all ${testResult?.loading
1374
- ? "cursor-wait opacity-70"
1375
- : testResult?.success
1376
- ? "border-ok bg-ok text-ok-fg hover:bg-ok/90"
1377
- : testResult?.error
1378
- ? "border-danger bg-danger text-danger-fg hover:bg-danger/90"
1379
- : "border-border/40 bg-card/40 hover:border-accent/40"}`, disabled: testResult?.loading, onClick: () => void handleTestConnection(plugin.id), children: testResult?.loading
1380
- ? "Testing..."
1381
- : testResult?.success
1382
- ? `OK (${testResult.durationMs}ms)`
1383
- : testResult?.error
1384
- ? `Failed: ${testResult.error}`
1385
- : "Test Connection" })), hasParams && (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "ghost", size: "sm", className: "h-8 rounded-xl px-4 text-[11px] font-semibold text-muted hover:text-txt", onClick: () => handleConfigReset(plugin.id), children: "Reset" }), _jsx(Button, { variant: saveSuccess ? "default" : "secondary", size: "sm", className: `h-8 rounded-xl px-4 text-[11px] font-bold transition-all ${saveSuccess
1386
- ? "bg-ok text-ok-fg hover:bg-ok/90"
1387
- : "bg-accent text-accent-fg hover:bg-accent/90"}`, onClick: () => void handleConfigSave(plugin.id), disabled: isSaving, children: isSaving
1388
- ? "Saving..."
1389
- : saveSuccess
1390
- ? "Saved"
1391
- : "Save Settings" })] }))] })] }))] }, plugin.id));
1392
- }) }))] })] })] }));
1393
- }
1394
- if (inModal) {
1395
- const sectionTitle = mode === "social"
1396
- ? "Connectors"
1397
- : mode === "connectors"
1398
- ? "Connectors"
1399
- : label;
1400
- return (_jsxs("div", { className: "plugins-game-modal plugins-game-modal--inline", children: [_jsxs("div", { className: `plugins-game-list-panel${gameNarrow && gameMobileDetail ? " is-hidden" : ""}`, children: [_jsx("div", { className: "plugins-game-list-head", children: _jsx("div", { className: "plugins-game-section-title", children: sectionTitle }) }), _jsx("div", { className: "plugins-game-list-scroll", children: gameVisiblePlugins.length === 0 ? (_jsxs("div", { className: "plugins-game-list-empty", children: ["No ", resultLabel, " ", t("pluginsview.found")] })) : (gameVisiblePlugins.map((p) => (_jsxs("button", { type: "button", className: `plugins-game-card${effectiveGameSelected === p.id ? " is-selected" : ""}${!p.enabled ? " is-disabled" : ""}`, onClick: () => {
1401
- setGameSelectedId(p.id);
1402
- if (gameNarrow)
1403
- setGameMobileDetail(true);
1404
- }, children: [_jsx("div", { className: "plugins-game-card-icon-shell", children: _jsx("span", { className: "plugins-game-card-icon", children: (() => {
1405
- const icon = resolveIcon(p);
1406
- if (!icon)
1407
- return "🧩";
1408
- if (typeof icon === "string") {
1409
- const imageSrc = iconImageSource(icon);
1410
- return imageSrc ? (_jsx("img", { src: imageSrc, alt: "", className: "plugins-game-card-icon", style: { objectFit: "contain" } })) : (icon);
1411
- }
1412
- const IconComponent = icon;
1413
- return _jsx(IconComponent, { className: "w-5 h-5" });
1414
- })() }) }), _jsxs("div", { className: "plugins-game-card-body", children: [_jsx("div", { className: "plugins-game-card-name", children: p.name }), _jsx("div", { className: "plugins-game-card-meta", children: _jsx("span", { className: `plugins-game-badge ${p.enabled ? "is-on" : "is-off"}`, children: p.enabled ? "ON" : "OFF" }) })] })] }, p.id)))) })] }), _jsx("div", { className: `plugins-game-detail-panel${gameNarrow && !gameMobileDetail ? " is-hidden" : ""}`, children: selectedPlugin ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "plugins-game-detail-head", children: [gameNarrow && (_jsx("button", { type: "button", className: "plugins-game-back-btn", onClick: () => setGameMobileDetail(false), children: t("pluginsview.Back") })), _jsxs("div", { className: "plugins-game-detail-title-row", children: [_jsx("div", { className: "plugins-game-detail-icon-shell", children: _jsx("span", { className: "plugins-game-detail-icon", children: (() => {
1415
- const icon = resolveIcon(selectedPlugin);
1416
- if (!icon)
1417
- return "🧩";
1418
- if (typeof icon === "string") {
1419
- const imageSrc = iconImageSource(icon);
1420
- return imageSrc ? (_jsx("img", { src: imageSrc, alt: "", className: "plugins-game-detail-icon" })) : (icon);
1421
- }
1422
- const IconComponent = icon;
1423
- return _jsx(IconComponent, { className: "w-6 h-6" });
1424
- })() }) }), _jsxs("div", { className: "plugins-game-detail-main", children: [_jsx("div", { className: "plugins-game-detail-name", children: selectedPlugin.name }), selectedPlugin.version && (_jsxs("span", { className: "plugins-game-version", children: ["v", selectedPlugin.version] }))] }), _jsx("button", { type: "button", className: `plugins-game-toggle ${selectedPlugin.enabled ? "is-on" : "is-off"}`, onClick: () => void handleTogglePlugin(selectedPlugin.id, !selectedPlugin.enabled), disabled: togglingPlugins.has(selectedPlugin.id), children: selectedPlugin.enabled ? "ON" : "OFF" })] })] }), _jsx("div", { className: "plugins-game-detail-description", children: selectedPlugin.description }), (selectedPlugin.tags?.length ?? 0) > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5 px-3 pb-3", children: selectedPlugin.tags?.map((tag) => (_jsx("span", { className: "text-[10px] px-1.5 py-px border border-border bg-black/10 text-muted lowercase tracking-wide whitespace-nowrap", children: tag }, `${selectedPlugin.id}:${tag}`))) })), selectedPluginLinks.length > 0 && (_jsx("div", { className: "plugins-game-detail-links flex flex-wrap gap-2 px-3 pb-3", children: selectedPluginLinks.map((link) => (_jsx("button", { type: "button", className: "plugins-game-link-btn border border-border bg-transparent px-2.5 py-1 text-[11px] text-muted transition-colors hover:border-accent hover:text-txt", onClick: () => {
1425
- void handleOpenPluginExternalUrl(link.url);
1426
- }, children: link.label }, `${selectedPlugin.id}:${link.key}`))) })), selectedPlugin.parameters &&
1427
- selectedPlugin.parameters.length > 0 && (_jsx("div", { className: "plugins-game-detail-config", children: selectedPlugin.parameters.map((param) => (_jsxs("div", { id: `field-${param.key}`, children: [_jsx("label", { htmlFor: `input-${param.key}`, className: "text-[11px] tracking-wider text-muted block mb-1", children: param.key }), _jsx("input", { id: `input-${param.key}`, type: param.sensitive ? "password" : "text", className: "w-full px-2 py-1 text-[12px]", placeholder: param.description, value: pluginConfigs[selectedPlugin.id]?.[param.key] ??
1428
- param.currentValue ??
1429
- "", onChange: (e) => handleParamChange(selectedPlugin.id, param.key, e.target.value) })] }, param.key))) })), _jsxs("div", { className: "plugins-game-detail-actions", children: [_jsx("button", { type: "button", className: "plugins-game-action-btn", onClick: () => void handleTestConnection(selectedPlugin.id), children: t("pluginsview.TestConnection") }), _jsx("button", { type: "button", className: `plugins-game-action-btn plugins-game-save-btn${pluginSaveSuccess.has(selectedPlugin.id) ? " is-saved" : ""}`, onClick: () => void handleConfigSave(selectedPlugin.id), disabled: pluginSaving.has(selectedPlugin.id), children: pluginSaving.has(selectedPlugin.id)
1430
- ? "Saving..."
1431
- : pluginSaveSuccess.has(selectedPlugin.id)
1432
- ? "Saved!"
1433
- : "Save" })] })] })) : (_jsxs("div", { className: "plugins-game-detail-empty", children: [_jsx("span", { className: "plugins-game-detail-empty-icon", children: "\uD83E\uDDE9" }), _jsxs("span", { className: "plugins-game-detail-empty-text", children: [t("pluginsview.SelectA"), " ", isConnectorLikeMode ? "connector" : "plugin", " ", t("pluginsview.toC")] })] })) })] }));
1434
- }
1435
- // ── Main render ────────────────────────────────────────────────────
1436
- return (_jsxs("div", { "data-testid": mode === "social" ? "plugins-view-social" : undefined, className: `relative min-h-0 ${showDesktopSubgroupSidebar ? "md:pl-[18rem]" : ""}`, children: [showDesktopSubgroupSidebar && (_jsx("aside", { className: "hidden md:absolute md:left-0 md:top-0 md:block md:w-64", "data-testid": "plugins-subgroup-sidebar", children: _jsxs("div", { className: "sticky top-0 rounded-[28px] border border-border/50 bg-bg/35 p-5 backdrop-blur-xl shadow-sm", children: [_jsx("div", { className: "mb-4 text-[11px] font-semibold uppercase tracking-[0.18em] text-muted/80", children: "Plugin Types" }), _jsx("nav", { className: "flex flex-col gap-2", children: subgroupTags.map((tag) => renderSubgroupFilterButton(tag, { sidebar: true })) })] }) })), _jsxs("div", { className: "min-w-0", children: [showToolbar && (_jsxs("div", { className: "flex items-center gap-3 mb-4 flex-wrap", children: [_jsxs("div", { className: "relative flex-1 min-w-[220px]", children: [_jsx(Input, { type: "text", name: "plugin-search", autoComplete: "off", "data-1p-ignore": true, "data-lpignore": "true", className: "w-full bg-card/60 backdrop-blur-md shadow-inner pr-8 h-9 rounded-xl focus-visible:ring-accent border-border/40", placeholder: searchPlaceholder, value: pluginSearch, onChange: (e) => setState("pluginSearch", e.target.value) }), pluginSearch && (_jsx(Button, { variant: "ghost", size: "icon", className: "absolute right-1 top-1/2 -translate-y-1/2 w-6 h-6 text-muted hover:text-txt rounded-full", onClick: () => setState("pluginSearch", ""), title: t("pluginsview.ClearSearch"), children: "\u2715" }))] }), _jsx("div", { className: "flex gap-1.5 shrink-0 bg-black/10 p-1 rounded-xl border border-white/5", children: ["all", "enabled"].map((s) => (_jsx(Button, { variant: pluginStatusFilter === s ? "default" : "ghost", size: "sm", className: `h-7 px-3 text-[11px] font-bold tracking-wide rounded-lg transition-all ${pluginStatusFilter === s
1437
- ? "shadow-sm"
1438
- : "text-muted hover:text-txt hover:bg-white/5"}`, onClick: () => setState("pluginStatusFilter", s), children: s === "all"
1439
- ? `All (${categoryPlugins.length})`
1440
- : `Enabled (${enabledCount})` }, s))) }), allowCustomOrder && pluginOrder.length > 0 && (_jsx(Button, { variant: "outline", size: "sm", className: "h-8 px-3 text-[11px] font-bold border-border/40 bg-card/40 backdrop-blur-md shadow-sm rounded-xl shrink-0", onClick: handleResetOrder, title: t("pluginsview.ResetToDefaultSor"), children: t("pluginsview.ResetOrder") })), showPluginManagementActions && (_jsx(Button, { variant: "secondary", size: "sm", className: "h-8 px-4 text-[11px] font-bold tracking-wide border border-accent/30 text-txt bg-accent/10 hover:bg-accent/20 hover:border-accent/50 shadow-sm rounded-xl shrink-0 transition-all", onClick: () => setAddDirOpen(true), children: t("pluginsview.AddPlugin") }))] })), hasPluginToggleInFlight && (_jsx("div", { className: "mb-3 px-3 py-2 border border-accent bg-accent-subtle text-[11px] text-txt", children: t("pluginsview.ApplyingPluginChan") })), showSubgroupFilters && (_jsx("div", { className: "flex items-center gap-2 mb-5 flex-wrap md:hidden", "data-testid": "plugins-subgroup-chips", children: subgroupTags.map((tag) => renderSubgroupFilterButton(tag)) })), _jsx("div", { className: "overflow-y-auto", children: sorted.length === 0 ? (_jsx("div", { className: "text-center py-10 px-5 text-muted border border-dashed border-border", children: effectiveSearch
1441
- ? `No ${resultLabel} match your search.`
1442
- : `No ${resultLabel} available.` })) : visiblePlugins.length === 0 ? (_jsx("div", { className: "text-center py-10 px-5 text-muted border border-dashed border-border", children: showSubgroupFilters
1443
- ? "No plugins match this tag filter."
1444
- : `No ${resultLabel} match your filters.` })) : (renderPluginGrid(visiblePlugins)) })] }), settingsDialogPlugin &&
1445
- (() => {
1446
- const p = settingsDialogPlugin;
1447
- const isShowcase = p.id === "__ui-showcase__";
1448
- const isSaving = pluginSaving.has(p.id);
1449
- const saveSuccess = pluginSaveSuccess.has(p.id);
1450
- const categoryLabel = isShowcase
1451
- ? "showcase"
1452
- : p.category === "ai-provider"
1453
- ? "ai provider"
1454
- : p.category;
1455
- return (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-6 animate-in fade-in duration-200", onClick: (e) => {
1456
- if (e.target === e.currentTarget)
1457
- toggleSettings(p.id);
1458
- }, onKeyDown: (e) => {
1459
- if (e.key === "Escape" || e.key === "Enter" || e.key === " ") {
1460
- e.preventDefault();
1461
- toggleSettings(p.id);
1462
- }
1463
- }, role: "dialog", "aria-modal": "true", children: _jsxs("div", { className: "w-full max-w-2xl max-h-[85vh] border border-border/50 bg-card/90 shadow-2xl flex flex-col overflow-hidden rounded-2xl backdrop-blur-xl", children: [_jsxs("div", { className: "flex items-center gap-3 px-5 py-4 border-b border-border/30 bg-black/10 shrink-0", children: [_jsxs("span", { className: "font-bold text-base flex items-center gap-2 flex-1 min-w-0 tracking-wide text-txt", children: [(() => {
1464
- const icon = resolveIcon(p);
1465
- if (!icon)
1466
- return null;
1467
- if (typeof icon === "string") {
1468
- const imageSrc = iconImageSource(icon);
1469
- return imageSrc ? (_jsx("img", { src: imageSrc, alt: "", className: "w-6 h-6 rounded-md object-contain", onError: (e) => {
1470
- e.currentTarget.style.display = "none";
1471
- } })) : (_jsx("span", { className: "text-base", children: icon }));
1472
- }
1473
- const IconComponent = icon;
1474
- return _jsx(IconComponent, { className: "w-6 h-6 text-txt" });
1475
- })(), p.name] }), _jsx("span", { className: "text-[10px] px-2 py-0.5 rounded-full border border-border/40 bg-black/20 text-muted lowercase tracking-widest font-bold", children: categoryLabel }), p.version && (_jsxs("span", { className: "text-[10px] font-mono text-muted/70", children: ["v", p.version] })), isShowcase && (_jsx("span", { className: "text-[10px] font-bold tracking-widest px-2.5 py-[2px] border border-accent/30 text-txt bg-accent/10 rounded-full", children: t("pluginsview.DEMO") })), _jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8 text-muted hover:bg-white/10 hover:text-txt rounded-full transition-all shrink-0 ml-2", onClick: () => toggleSettings(p.id), children: "\u2715" })] }), _jsxs("div", { className: "overflow-y-auto flex-1 scrollbar-thin scrollbar-thumb-white/10 scrollbar-track-transparent", children: [_jsxs("div", { className: "px-5 pt-4 pb-1 flex items-center gap-3 flex-wrap text-xs text-muted", children: [p.description && (_jsx("span", { className: "text-[12px] text-muted leading-relaxed", children: p.description })), (p.tags?.length ?? 0) > 0 && (_jsx("span", { className: "flex items-center gap-1.5 flex-wrap", children: p.tags?.map((tag) => (_jsx("span", { className: "text-[10px] px-1.5 py-px border border-border/40 bg-black/10 text-muted lowercase tracking-wide whitespace-nowrap", children: tag }, `${p.id}:${tag}:settings`))) }))] }), (p.npmName || (p.pluginDeps && p.pluginDeps.length > 0)) && (_jsxs("div", { className: "px-5 pb-2 flex items-center gap-3 flex-wrap", children: [p.npmName && (_jsx("span", { className: "font-mono text-[10px] text-muted opacity-50", children: p.npmName })), p.pluginDeps && p.pluginDeps.length > 0 && (_jsxs("span", { className: "flex items-center gap-1 flex-wrap", children: [_jsx("span", { className: "text-[10px] text-muted opacity-60", children: t("pluginsview.dependsOn") }), p.pluginDeps.map((dep) => (_jsx("span", { className: "text-[10px] px-1.5 py-px border border-border bg-accent-subtle text-muted rounded-sm", children: dep }, dep)))] }))] })), _jsxs("div", { className: "px-5 py-3", children: [_jsx(PluginConfigForm, { plugin: p, pluginConfigs: pluginConfigs, onParamChange: handleParamChange }), p.id === "whatsapp" && (_jsx(WhatsAppQrOverlay, { accountId: "default" }))] })] }), !isShowcase && (_jsxs("div", { className: "flex justify-end gap-3 px-5 py-4 border-t border-border/30 shrink-0 bg-black/10", children: [p.enabled && !p.isActive && p.npmName && !p.loadError && (_jsx(Button, { variant: "default", size: "sm", className: "h-8 px-4 text-[11px] font-bold tracking-wide shadow-sm", disabled: installingPlugins.has(p.id), onClick: () => handleInstallPlugin(p.id, p.npmName ?? ""), children: installingPlugins.has(p.id)
1476
- ? installProgress.get(p.npmName ?? "")?.message ||
1477
- "Installing..."
1478
- : "Install Plugin" })), p.loadError && (_jsx("span", { className: "px-3 py-1.5 text-[11px] text-danger font-bold tracking-wide", title: p.loadError, children: t("pluginsview.PackageBrokenMis") })), p.isActive && (_jsx(Button, { variant: testResults.get(p.id)?.success
1479
- ? "default"
1480
- : testResults.get(p.id)?.error
1481
- ? "destructive"
1482
- : "outline", size: "sm", className: `h-8 px-4 text-[11px] font-bold tracking-wide transition-all ${testResults.get(p.id)?.loading
1483
- ? "opacity-70 cursor-wait"
1484
- : testResults.get(p.id)?.success
1485
- ? "bg-ok text-ok-fg border-ok hover:bg-ok/90"
1486
- : testResults.get(p.id)?.error
1487
- ? "bg-danger text-danger-fg border-danger hover:bg-danger/90"
1488
- : "border-border/40 bg-card/40 backdrop-blur-md shadow-sm hover:border-accent/40"}`, disabled: testResults.get(p.id)?.loading, onClick: () => handleTestConnection(p.id), children: testResults.get(p.id)?.loading
1489
- ? "Testing..."
1490
- : testResults.get(p.id)?.success
1491
- ? `\u2713 OK (${testResults.get(p.id)?.durationMs}ms)`
1492
- : testResults.get(p.id)?.error
1493
- ? `\u2715 ${testResults.get(p.id)?.error}`
1494
- : "Test Connection" })), _jsx(Button, { variant: "ghost", size: "sm", className: "h-8 px-4 text-[12px] font-bold text-muted hover:text-txt transition-all", onClick: () => handleConfigReset(p.id), children: t("pluginsview.Reset") }), _jsx(Button, { variant: saveSuccess ? "default" : "secondary", size: "sm", className: `h-8 px-5 text-[12px] font-bold tracking-wide transition-all ${saveSuccess
1495
- ? "bg-ok text-ok-fg hover:bg-ok/90"
1496
- : "bg-accent text-accent-fg hover:bg-accent/90 shadow-lg shadow-accent/20"}`, onClick: () => handleConfigSave(p.id), disabled: isSaving, children: isSaving
1497
- ? "Saving..."
1498
- : saveSuccess
1499
- ? "\u2713 Saved"
1500
- : "Save Settings" })] }))] }) }));
1501
- })(), addDirOpen && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-6 duration-200 animate-in fade-in", onClick: (e) => {
1502
- if (e.target === e.currentTarget) {
1503
- setAddDirOpen(false);
1504
- setAddDirPath("");
1505
- }
1506
- }, onKeyDown: (e) => {
1507
- if (e.key === "Escape" || e.key === "Enter" || e.key === " ") {
1508
- e.preventDefault();
1509
- setAddDirOpen(false);
1510
- setAddDirPath("");
1511
- }
1512
- }, role: "dialog", "aria-modal": "true", children: _jsxs("div", { className: "w-full max-w-md border border-border/50 bg-card/90 backdrop-blur-xl p-6 rounded-2xl shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between mb-5", children: [_jsx("div", { className: "font-bold text-base tracking-wide text-txt", children: t("pluginsview.AddPlugin1") }), _jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8 text-muted hover:bg-white/10 hover:text-txt rounded-full transition-all shrink-0 ml-2", onClick: () => {
1513
- setAddDirOpen(false);
1514
- setAddDirPath("");
1515
- }, children: "\u2715" })] }), _jsx("p", { className: "text-sm font-medium tracking-wide text-muted mb-4", children: t("pluginsview.EnterThePathToA") }), _jsx(Input, { type: "text", className: "w-full h-10 px-3 border border-border/40 bg-black/20 text-txt text-[13px] font-mono transition-all duration-150 focus-visible:ring-accent rounded-xl shadow-inner placeholder:text-muted/50", placeholder: t("pluginsview.PathToPluginOrP"), value: addDirPath, onChange: (e) => setAddDirPath(e.target.value), onKeyDown: (e) => {
1516
- if (e.key === "Enter")
1517
- void handleAddFromDirectory();
1518
- } }), _jsxs("div", { className: "flex justify-end gap-3 mt-6", children: [_jsx(Button, { variant: "ghost", size: "sm", className: "h-8 px-4 text-[12px] font-bold text-muted hover:text-txt transition-all", onClick: () => {
1519
- setAddDirOpen(false);
1520
- setAddDirPath("");
1521
- }, children: t("pluginsview.Cancel") }), _jsx(Button, { variant: "default", size: "sm", className: "h-8 px-6 text-[12px] font-bold tracking-wide shadow-sm", onClick: handleAddFromDirectory, disabled: addDirLoading || !addDirPath.trim(), children: addDirLoading ? "Adding..." : "Add" })] })] }) }))] }));
1522
- }
1523
- /* ── Exported views ────────────────────────────────────────────────── */
1524
- /** Unified plugins view — tag-filtered plugin list. */
1525
- export function PluginsView({ mode = "all", inModal, }) {
1526
- const label = mode === "social"
1527
- ? "Connectors"
1528
- : mode === "connectors"
1529
- ? "Connectors"
1530
- : mode === "streaming"
1531
- ? "Streaming"
1532
- : "Plugins";
1533
- return _jsx(PluginListView, { label: label, mode: mode, inModal: inModal });
1534
- }