@fased/fased 0.1.62 → 0.1.64

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 (341) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +38 -30
  3. package/config/dependency-ownership.json +1 -1
  4. package/config/signer-policies/README.md +49 -0
  5. package/config/signer-policies/agent.json.template +32 -0
  6. package/config/signer-policies/mining.json.template +69 -0
  7. package/config/signer-policies/network.json.template +5 -0
  8. package/config/signer-policies/vault.json.template +70 -0
  9. package/config/signer-protocol-v2.json +76 -0
  10. package/config/typescript-noemit-baseline.json +680 -0
  11. package/dist/agents/auth-profiles/store.js +267 -31
  12. package/dist/agents/bash-tools.exec.js +10 -4
  13. package/dist/agents/current-model-catalog.js +3 -3
  14. package/dist/agents/memory-search.js +7 -1
  15. package/dist/agents/model-catalog-access.js +1 -2
  16. package/dist/agents/model-catalog-snapshot.js +1 -1
  17. package/dist/agents/model-catalog-source.js +1 -1
  18. package/dist/agents/model-metadata.js +1 -1
  19. package/dist/agents/model-selection.js +2 -28
  20. package/dist/agents/models-config.providers.js +6 -6
  21. package/dist/agents/pi-embedded-runner/compact.js +15 -7
  22. package/dist/agents/pi-embedded-runner/model.js +1 -1
  23. package/dist/agents/pi-embedded-runner/run/attempt.js +24 -13
  24. package/dist/agents/pi-embedded-runner/run.js +2 -0
  25. package/dist/agents/pi-embedded-runner/tool-split.js +40 -2
  26. package/dist/agents/pi-tool-definition-adapter.js +16 -1
  27. package/dist/agents/pi-tools.js +2 -1
  28. package/dist/agents/sandbox/config.js +1 -1
  29. package/dist/agents/sandbox/context.js +27 -2
  30. package/dist/agents/skills/env-overrides.js +38 -28
  31. package/dist/agents/skills/trust.js +93 -0
  32. package/dist/agents/skills/workspace.js +128 -0
  33. package/dist/agents/skills-clawhub.js +36 -11
  34. package/dist/agents/skills-marketplace-scan.js +49 -0
  35. package/dist/agents/tools/marketplace-offer-draft-tool.js +1 -1
  36. package/dist/agents/tools/mining-tool.js +1 -1
  37. package/dist/agents/tools/session-status-tool.js +1 -1
  38. package/dist/agents/tools/wallet-action-tool.js +172 -36
  39. package/dist/agents/tools/wallet-skill-policy.js +65 -23
  40. package/dist/agents/tools/wallet-tool.js +7 -11
  41. package/dist/auto-reply/reply/directive-handling.fast-lane.js +2 -1
  42. package/dist/auto-reply/reply/directive-handling.impl.js +2 -1
  43. package/dist/auto-reply/reply/directive-handling.model.js +2 -1
  44. package/dist/auto-reply/reply/directive-handling.persist.js +2 -2
  45. package/dist/auto-reply/reply/get-reply-directives-apply.js +2 -0
  46. package/dist/auto-reply/reply/get-reply-inline-actions.js +25 -1
  47. package/dist/auto-reply/reply/model-selection.js +7 -4
  48. package/dist/auto-reply/reply/session-reset-model.js +4 -4
  49. package/dist/brand.js +1 -1
  50. package/dist/build-info.json +3 -3
  51. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  52. package/dist/channel-web.js +2 -2
  53. package/dist/cli/gateway-cli/run.js +8 -0
  54. package/dist/cli/program/command-registry.js +1 -1
  55. package/dist/cli/program/register.onboard.js +2 -3
  56. package/dist/cli/program/register.wallet.js +16 -123
  57. package/dist/cli/providers-cli.js +1 -1
  58. package/dist/cli/sat-cli.js +129 -2
  59. package/dist/cli/update-cli/update-command.js +260 -11
  60. package/dist/commands/auth-choice.apply.api-providers.js +3 -3
  61. package/dist/commands/doctor-config-flow.js +1 -1
  62. package/dist/commands/doctor-legacy-config.js +2 -13
  63. package/dist/commands/model-picker.js +6 -6
  64. package/dist/commands/models/auth.js +1 -1
  65. package/dist/commands/onboard-auth.config-gateways.js +1 -1
  66. package/dist/commands/onboard-auth.credentials.js +32 -8
  67. package/dist/commands/onboard-non-interactive/local/wallet-config.js +28 -27
  68. package/dist/commands/onboard-non-interactive/local.js +5 -1
  69. package/dist/commands/wallet.js +568 -1911
  70. package/dist/config/config.js +2 -2
  71. package/dist/config/io.js +64 -2
  72. package/dist/config/schema.help.js +8 -7
  73. package/dist/config/schema.labels.js +5 -4
  74. package/dist/config/zod-schema.agent-runtime.js +1 -0
  75. package/dist/config/zod-schema.js +5 -0
  76. package/dist/control-ui/assets/{app-DLil9VO1.js → app-bR-fO5ty.js} +1511 -1555
  77. package/dist/control-ui/assets/{config-CU5Zi8Dh.js → config-LeImukCW.js} +10 -10
  78. package/dist/control-ui/assets/{federation-D10Q4eP_.js → federation-DgA9e-Pn.js} +364 -422
  79. package/dist/control-ui/assets/{index-DdE_NIXo.js → index-ckCxHwjy.js} +3 -3
  80. package/dist/control-ui/assets/{mining-BdhMn18r.js → mining-BgHFh0ei.js} +134 -114
  81. package/dist/control-ui/assets/mining-commit-DFpB_4JN.js +2 -0
  82. package/dist/control-ui/assets/{open-external-url-DwSiwMPl.js → open-external-url-ulF1B-sA.js} +3 -3
  83. package/dist/control-ui/assets/{providers-QMn4w2_f.js → providers-CIx9fxc6.js} +2 -2
  84. package/dist/control-ui/assets/{wallet-C2g294QT.js → wallet-DvStR_AT.js} +259 -377
  85. package/dist/control-ui/index.html +1 -1
  86. package/dist/control-ui/version.json +1 -1
  87. package/dist/daemon/systemd-system.js +56 -50
  88. package/dist/extensions/sat-mining/src/protocol-contract.js +43 -3
  89. package/dist/extensions/sat-mining/src/rpc-read.js +235 -67
  90. package/dist/extensions/sat-mining/src/sat-bond-layout.js +5 -2
  91. package/dist/extensions/sat-mining/src/signer-codec-manifest.js +406 -0
  92. package/dist/extensions/sat-mining/src/solana-submit.js +1038 -397
  93. package/dist/extensions/sat-mining/src/submission-ledger.js +349 -0
  94. package/dist/federation/auto-connect.js +98 -8
  95. package/dist/federation/marketplace-capability-adapter.js +33 -7
  96. package/dist/federation/marketplace-delivery-outbox.js +196 -0
  97. package/dist/federation/marketplace-delivery.js +351 -215
  98. package/dist/federation/marketplace-direct-payment.js +272 -141
  99. package/dist/federation/marketplace-escrow.js +607 -249
  100. package/dist/federation/marketplace-settlement-ledger.js +352 -0
  101. package/dist/federation/offers.js +9 -7
  102. package/dist/federation/peer-auth-v2.js +529 -0
  103. package/dist/gateway/a2a-http.js +425 -96
  104. package/dist/gateway/a2a-settlement.js +259 -153
  105. package/dist/gateway/a2a-task-store.js +524 -0
  106. package/dist/gateway/auth.js +38 -2
  107. package/dist/gateway/config-reload.js +46 -33
  108. package/dist/gateway/durable-capacity.js +31 -0
  109. package/dist/gateway/federation-http.js +540 -135
  110. package/dist/gateway/federation-marketplace-run-store.js +397 -0
  111. package/dist/gateway/federation-marketplace.js +535 -230
  112. package/dist/gateway/mutating-admin-rpc-rate-limit.js +5 -0
  113. package/dist/gateway/security-path.js +1 -1
  114. package/dist/gateway/server-http.js +1084 -1205
  115. package/dist/gateway/server-methods/models.js +1 -1
  116. package/dist/gateway/server-methods/secrets.js +40 -0
  117. package/dist/gateway/server-methods.js +1 -2
  118. package/dist/gateway/server-reload-handlers.js +196 -66
  119. package/dist/gateway/server-runtime-config.js +1 -1
  120. package/dist/gateway/server-secrets-runtime.js +288 -0
  121. package/dist/gateway/server.impl.js +73 -42
  122. package/dist/gateway/sessions-patch.js +3 -5
  123. package/dist/index.js +4 -2
  124. package/dist/infra/fasedhub.js +64 -1
  125. package/dist/infra/local-source-paired-update.js +538 -0
  126. package/dist/infra/restart.js +41 -10
  127. package/dist/infra/update-runner.js +96 -0
  128. package/dist/light-update-status.js +11 -11
  129. package/dist/memory/backend-config.js +2 -1
  130. package/dist/memory/session-files.js +16 -2
  131. package/dist/plugin-sdk/{accounts-DxblobYM.js → accounts-Brn3-uWN.js} +1 -1
  132. package/dist/plugin-sdk/{actions-D4UNimWa.js → actions-DRu135h0.js} +2 -2
  133. package/dist/plugin-sdk/{active-listener-CFuy106s.js → active-listener-B_NMtgPL.js} +1 -1
  134. package/dist/plugin-sdk/{audio-preflight-Bwi2Oq03.js → audio-preflight-BYxAt775.js} +27 -27
  135. package/dist/plugin-sdk/{audit-Cs0K7LBp.js → audit-C5d2z5U1.js} +1 -1
  136. package/dist/plugin-sdk/{channel-access-D5aHoTY8.js → channel-access-CcFRdRPO.js} +1 -1
  137. package/dist/plugin-sdk/{channel-access-configure-Dvch9mMQ.js → channel-access-configure-DaI5wevh.js} +1 -1
  138. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  139. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  140. package/dist/plugin-sdk/{chunk-B0FUGc5A.js → chunk-CyoyqpbG.js} +1 -1
  141. package/dist/plugin-sdk/{chunk-items-DzT4L4Ty.js → chunk-items-DIRHG2gJ.js} +1 -1
  142. package/dist/plugin-sdk/command-status.d.ts +2 -2
  143. package/dist/plugin-sdk/command-status.js +27 -27
  144. package/dist/plugin-sdk/{commands-registry-DmDRhRAU.js → commands-registry-BfqdEWdF.js} +2 -2
  145. package/dist/plugin-sdk/{common-CfUOowOp.js → common-HCcXU-NR.js} +1 -1
  146. package/dist/plugin-sdk/{config-mxULv0fQ.js → config-DlWVeLFB.js} +7113 -6877
  147. package/dist/plugin-sdk/{config-schema-BrkmtFxB.js → config-schema-BOT7kHb6.js} +6779 -3696
  148. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  149. package/dist/plugin-sdk/discord.d.ts +6 -6
  150. package/dist/plugin-sdk/discord.js +19 -19
  151. package/dist/plugin-sdk/file-lock.js +35 -4
  152. package/dist/plugin-sdk/{filesystem-manager-ZoHU8oA7.js → filesystem-manager-DoI8IBNF.js} +1 -1
  153. package/dist/plugin-sdk/{group-mentions-BHRff6j8.d.ts → group-mentions-q3hUTCt7.d.ts} +1 -1
  154. package/dist/plugin-sdk/{handle-action-DbVCF9HZ.js → handle-action-hvwapMKg.js} +13 -13
  155. package/dist/plugin-sdk/{helpers-BXbdgs5H.js → helpers-DMBU4oTo.js} +1 -1
  156. package/dist/plugin-sdk/{image-ops-D7jPxaph.js → image-ops-DQi0n_Tt.js} +1 -1
  157. package/dist/plugin-sdk/index.d.ts +21 -39
  158. package/dist/plugin-sdk/index.js +29 -29
  159. package/dist/plugin-sdk/{login-BRxww6nv.js → login-Ca583Okc.js} +3 -3
  160. package/dist/plugin-sdk/{login-qr-DJXsk9XH.js → login-qr-CGciBSNP.js} +3 -3
  161. package/dist/plugin-sdk/{manager-Y2S_5IlI.js → manager-BegWxNYX.js} +4 -4
  162. package/dist/plugin-sdk/{markdown-tables-DHLFQqaF.js → markdown-tables-DCOXEUfZ.js} +1 -1
  163. package/dist/plugin-sdk/{media-Czo4carg.js → media-CAdQF5TG.js} +47 -47
  164. package/dist/plugin-sdk/{memory-search-DTjIMw8J.js → memory-search-CrFPOeTH.js} +4 -1
  165. package/dist/plugin-sdk/{monitor-M_ta2lMc.js → monitor-BCFDaqJ-.js} +31 -31
  166. package/dist/plugin-sdk/{monitor-wYVncM9w.js → monitor-BgbjRiPM.js} +32 -32
  167. package/dist/plugin-sdk/{openresponses-http-B2GmeSt4.js → openresponses-http-DFf87SMM.js} +27 -27
  168. package/dist/plugin-sdk/{optional-runtime-dependency-DdMbxS24.js → optional-runtime-dependency-0dznm3ZO.js} +1 -1
  169. package/dist/plugin-sdk/{outbound-Db8mRN6P.js → outbound-BgVDdHxx.js} +6 -6
  170. package/dist/plugin-sdk/{outbound-attachment-BqFjcypb.js → outbound-attachment-QqTnIhZL.js} +2 -2
  171. package/dist/plugin-sdk/{pairing-message-B3bHYGaw.d.ts → pairing-message-CS-9BHug.d.ts} +2 -2
  172. package/dist/plugin-sdk/{pairing-message-B3GC_7CD.js → pairing-message-D0CoLHRJ.js} +1 -1
  173. package/dist/plugin-sdk/{pairing-store-CQikgIbw.js → pairing-store-BChahgI2.js} +2 -2
  174. package/dist/plugin-sdk/{pi-model-discovery-CY3m5zJP.js → pi-model-discovery-BX_JLcEJ.js} +1 -1
  175. package/dist/plugin-sdk/{pi-model-discovery-runtime-DSh1T2pn.js → pi-model-discovery-runtime-DxTMz_XF.js} +2 -2
  176. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  177. package/dist/plugin-sdk/{pw-ai-AFUqn-tQ.js → pw-ai-natjh3rm.js} +3 -3
  178. package/dist/plugin-sdk/{qmd-manager-DSyx77KY.js → qmd-manager-CgRaTxUq.js} +1 -1
  179. package/dist/plugin-sdk/{query-expansion-CAI2kKLQ.js → query-expansion-BG3FgzF7.js} +14 -3
  180. package/dist/plugin-sdk/{replies-Fzh9PhXl.js → replies-ChYo5ZQM.js} +2 -2
  181. package/dist/plugin-sdk/{resolve-outbound-target-KpF3co6T.js → resolve-outbound-target-D-KGgHJZ.js} +1 -1
  182. package/dist/plugin-sdk/{resolve-route-CDl74O19.js → resolve-route-C8tvQm8Z.js} +1 -1
  183. package/dist/plugin-sdk/{retry-policy-D4uiqUOG.js → retry-policy-C6SjKjQA.js} +1 -1
  184. package/dist/plugin-sdk/{runtime-Bb6KRnCC.js → runtime-2B9_WKoI.js} +8 -3
  185. package/dist/plugin-sdk/{runtime-dependency-DLDmB94f.js → runtime-dependency-DczkvPxn.js} +2 -2
  186. package/dist/plugin-sdk/sat-runtime.d.ts +549 -309
  187. package/dist/plugin-sdk/sat-runtime.js +29 -29
  188. package/dist/plugin-sdk/{send-C4k4JuJN.js → send-B6KkGKZD.js} +6 -6
  189. package/dist/plugin-sdk/{send-D-uDKGIq.js → send-CFzGKJXo.js} +6 -6
  190. package/dist/plugin-sdk/{send-Du8ykP1k.js → send-DCO441U7.js} +8 -8
  191. package/dist/plugin-sdk/{send-5nFktR1n.js → send-gDoGA-7e.js} +5 -5
  192. package/dist/plugin-sdk/{send-Bfzf11VY.js → send-q9HXrSwK.js} +7 -7
  193. package/dist/plugin-sdk/{session-CS-Td9EM.js → session-DHD4ZKyG.js} +2 -2
  194. package/dist/plugin-sdk/{skill-commands-CFAlXWHk.js → skill-commands-FKEPLS7T.js} +201 -26
  195. package/dist/plugin-sdk/{slack-CxE1mfzj.js → slack-BUTt8cxK.js} +39 -39
  196. package/dist/plugin-sdk/{slack-actions-BcMkNv1Z.js → slack-actions-DhbMcp8M.js} +11 -11
  197. package/dist/plugin-sdk/slack.d.ts +6 -6
  198. package/dist/plugin-sdk/slack.js +9 -9
  199. package/dist/plugin-sdk/{sticker-cache-CGzGWu00.js → sticker-cache-D0wHVqjt.js} +3 -3
  200. package/dist/plugin-sdk/{tables-bFXyRpkx.js → tables-B3jr0Pvq.js} +1 -1
  201. package/dist/plugin-sdk/{targets-DH7a9lKB.js → targets-CtSbTxYX.js} +1 -1
  202. package/dist/plugin-sdk/{telegram-actions-DaEcYQ8r.js → telegram-actions-CC_qN4v0.js} +30 -30
  203. package/dist/plugin-sdk/telegram.d.ts +6 -6
  204. package/dist/plugin-sdk/telegram.js +8 -8
  205. package/dist/plugin-sdk/{thread-bindings.lifecycle-CgOvvdw8.js → thread-bindings.lifecycle-QbkNl-m6.js} +3 -3
  206. package/dist/plugin-sdk/{thread-bindings.state-CQpk44Hq.js → thread-bindings.state-D9hg_M1c.js} +2 -2
  207. package/dist/plugin-sdk/tmp-fased-dir-xOTGlzBE.d.ts +486 -0
  208. package/dist/plugin-sdk/{types-vcJrC_uv.d.ts → types-C3avNytw.d.ts} +3 -4
  209. package/dist/plugin-sdk/{types-DyhXnYUr.d.ts → types-D0kDG8l0.d.ts} +3 -2
  210. package/dist/plugin-sdk/{types-DFAW-n1J.d.ts → types-DWfbSAaM.d.ts} +2 -2
  211. package/dist/plugin-sdk/{types.plugin-_fbu40Re.d.ts → types.plugin-BcSBq42x.d.ts} +8 -3
  212. package/dist/plugin-sdk/{web-CInY-lCv.js → web-BXsJ1vqe.js} +32 -32
  213. package/dist/plugin-sdk/{whatsapp-actions-BtSc2CBv.js → whatsapp-actions-Bj_rOncr.js} +13 -13
  214. package/dist/plugin-sdk/{whatsapp-heartbeat-Bg9TuYzl.js → whatsapp-heartbeat-B1WHkJIg.js} +2 -2
  215. package/dist/plugin-sdk/whatsapp.d.ts +13 -13
  216. package/dist/plugin-sdk/whatsapp.js +12 -12
  217. package/dist/plugin-sdk/{wsl-C4DGFkOd.js → wsl-J-HscWxS.js} +3 -3
  218. package/dist/plugin-sdk/{zod-schema.providers-core-BEbNizPe.d.ts → zod-schema.providers-core-CIzCjXH9.d.ts} +61 -61
  219. package/dist/providers/refresh.js +1 -1
  220. package/dist/providers/registry.js +1 -1
  221. package/dist/secrets/apply.js +1 -1
  222. package/dist/secrets/runtime.js +1 -1
  223. package/dist/wallet/external-submission-ledger.js +376 -0
  224. package/dist/wallet/legacy-embedded-keystore.js +40 -0
  225. package/dist/wallet/local-socket-signer-archive.js +30 -0
  226. package/dist/wallet/local-socket-signer-lifecycle.js +97 -0
  227. package/dist/wallet/local-socket-signer-policy.js +166 -0
  228. package/dist/wallet/local-socket-signer-protocol.js +561 -118
  229. package/dist/wallet/native-signer-wallet-id.js +25 -0
  230. package/dist/wallet/providers/alchemy-adapter.js +3 -0
  231. package/dist/wallet/providers/local-socket-signer-adapter.js +380 -105
  232. package/dist/wallet/providers/turnkey-adapter.js +292 -34
  233. package/dist/wallet/providers/wallet-standard-adapter.js +100 -0
  234. package/dist/wallet/signer-network-admin.js +184 -0
  235. package/dist/wallet/signer-protocol-v2.generated.js +90 -0
  236. package/dist/wallet/solana-bond-signing.js +157 -69
  237. package/dist/wallet/solana-reviewed-transaction.js +375 -0
  238. package/dist/wallet/solana-swap.js +520 -64
  239. package/dist/wallet/solana-transaction-inspection.js +106 -4
  240. package/dist/wallet/solana-trigger.js +658 -320
  241. package/dist/wallet/turnkey-reviewed-state.js +370 -0
  242. package/dist/wallet/wallet-approval-auth.js +17 -28
  243. package/dist/wallet/wallet-atomic-state.js +53 -0
  244. package/dist/wallet/wallet-canary.js +0 -1
  245. package/dist/wallet/wallet-inbound-events.js +16 -11
  246. package/dist/wallet/wallet-policy-simulation.js +1 -1
  247. package/dist/wallet/wallet-policy.js +90 -36
  248. package/dist/wallet/wallet-provider-capabilities.js +28 -4
  249. package/dist/wallet/wallet-provider-registry.js +57 -44
  250. package/dist/wallet/wallet-provider-resolver.js +62 -63
  251. package/dist/wallet/wallet-runtime-config.js +28 -41
  252. package/dist/wallet/wallet-secrets-store.js +22 -0
  253. package/dist/wallet/wallet-send-approvals.js +1891 -589
  254. package/dist/wallet/wallet-send-execution-ledger.js +292 -0
  255. package/dist/wallet/wallet-settlement-links.js +14 -13
  256. package/dist/wallet/wallet-standard-review.js +353 -0
  257. package/dist/wallet/wallet-status.js +0 -9
  258. package/dist/wallet/wallet-task-ledger.js +16 -2
  259. package/dist/web/auto-reply/heartbeat-runner.js +1 -1
  260. package/dist/web/auto-reply/monitor.js +2 -2
  261. package/dist/wizard/host-security-capability.js +14 -23
  262. package/dist/wizard/onboarding.finalize.js +63 -184
  263. package/dist/wizard/onboarding.host-security.js +117 -1367
  264. package/dist/wizard/onboarding.js +172 -217
  265. package/dist/wizard/onboarding.wallet.js +232 -785
  266. package/extensions/acpx/package.json +1 -1
  267. package/extensions/bluebubbles/package.json +1 -1
  268. package/extensions/copilot-proxy/package.json +1 -1
  269. package/extensions/diagnostics-otel/package.json +1 -1
  270. package/extensions/fased-federation/package.json +1 -1
  271. package/extensions/google-gemini-cli-auth/package.json +1 -1
  272. package/extensions/imessage/package.json +1 -1
  273. package/extensions/irc/package.json +1 -1
  274. package/extensions/line/package.json +1 -1
  275. package/extensions/llm-task/package.json +1 -1
  276. package/extensions/lobster/package.json +1 -1
  277. package/extensions/matrix/CHANGELOG.md +12 -0
  278. package/extensions/matrix/package.json +1 -1
  279. package/extensions/mattermost/package.json +1 -1
  280. package/extensions/memory-core/package.json +2 -2
  281. package/extensions/memory-lancedb/package.json +1 -1
  282. package/extensions/minimax-portal-auth/package.json +1 -1
  283. package/extensions/msteams/CHANGELOG.md +12 -0
  284. package/extensions/msteams/package.json +1 -1
  285. package/extensions/nextcloud-talk/package.json +1 -1
  286. package/extensions/nostr/CHANGELOG.md +12 -0
  287. package/extensions/nostr/package.json +1 -1
  288. package/extensions/open-prose/package.json +1 -1
  289. package/extensions/sat-mining/index.ts +498 -153
  290. package/extensions/sat-mining/package.json +1 -1
  291. package/extensions/sat-mining/signer-codec-schema.v1.json +374 -0
  292. package/extensions/sat-mining/src/audit-store.ts +50 -5
  293. package/extensions/sat-mining/src/claim-service.ts +85 -14
  294. package/extensions/sat-mining/src/config.ts +9 -0
  295. package/extensions/sat-mining/src/cycle-progress.ts +16 -8
  296. package/extensions/sat-mining/src/epoch-service.ts +9 -5
  297. package/extensions/sat-mining/src/gateway-runner.ts +21 -1
  298. package/extensions/sat-mining/src/protocol-contract.ts +45 -1
  299. package/extensions/sat-mining/src/recovery-service.ts +312 -0
  300. package/extensions/sat-mining/src/round-watcher.ts +391 -81
  301. package/extensions/sat-mining/src/rpc-read.ts +330 -89
  302. package/extensions/sat-mining/src/runtime.ts +14 -0
  303. package/extensions/sat-mining/src/sat-bond-layout.ts +6 -0
  304. package/extensions/sat-mining/src/signer-codec-manifest.ts +429 -0
  305. package/extensions/sat-mining/src/solana-submit.ts +1199 -428
  306. package/extensions/sat-mining/src/submission-ledger.ts +433 -0
  307. package/extensions/signal/package.json +1 -1
  308. package/extensions/synology-chat/package.json +1 -1
  309. package/extensions/tlon/package.json +1 -1
  310. package/extensions/twitch/CHANGELOG.md +12 -0
  311. package/extensions/twitch/package.json +1 -1
  312. package/extensions/voice-call/CHANGELOG.md +12 -0
  313. package/extensions/voice-call/package.json +1 -1
  314. package/extensions/zalo/CHANGELOG.md +12 -0
  315. package/extensions/zalo/package.json +1 -1
  316. package/extensions/zalouser/CHANGELOG.md +12 -0
  317. package/extensions/zalouser/package.json +1 -1
  318. package/install.sh +4955 -0
  319. package/package.json +23 -5
  320. package/scripts/fased-host-updater.mjs +1421 -0
  321. package/scripts/fased-host-updaterctl.mjs +186 -0
  322. package/scripts/fased-managed-service.sh +36 -0
  323. package/scripts/fased-managed-updater.mjs +3065 -156
  324. package/scripts/fased-signer-enroll-hosting.sh +275 -0
  325. package/scripts/fased-signer-network-hosting.sh +143 -0
  326. package/scripts/fased-signer-owner-policy.mjs +1430 -0
  327. package/scripts/fased-signer-policy-hosting.sh +50 -0
  328. package/scripts/fased-signer-policy-local.sh +26 -0
  329. package/scripts/hosted-release-manifest.mjs +185 -0
  330. package/scripts/install-fased-signerd.sh +183 -108
  331. package/scripts/install-managed-runtime.mjs +212 -10
  332. package/scripts/managed-runtime-layout.mjs +75 -3
  333. package/scripts/migrate-hosted-signer-v2.mjs +58 -0
  334. package/scripts/start-managed.sh +169 -360
  335. package/dist/control-ui/assets/mining-commit-R-6nu87p.js +0 -2
  336. package/dist/plugin-sdk/tmp-fased-dir-CS6zsYEE.d.ts +0 -77
  337. package/dist/wallet/local-socket-signer-broker.js +0 -224
  338. package/dist/wallet/local-socket-signer-custody.js +0 -42
  339. package/dist/wallet/providers/embedded-keystore-adapter.js +0 -402
  340. package/dist/wallet/providers/privy-adapter.js +0 -80
  341. package/dist/wallet/wallet-custody.js +0 -1836
@@ -0,0 +1,2 @@
1
+ async function e(e,t){let n=await fetch(e,t),r=await n.text();if(!n.ok){if(r)try{let e=JSON.parse(r),t=typeof e?.error?.message==`string`?e.error.message:typeof e?.message==`string`?e.message:``;throw Error(t||r)}catch(e){if(e instanceof Error&&e.message&&e.message!==r)throw e}throw Error(r||`Request failed (${n.status})`)}if(!r)return{};try{return JSON.parse(r)}catch{throw Error(r)}}function t(e){switch(e){case`spread`:case`crowd_aware`:case`safe_fallback`:return`conservative`;case`conviction`:case`top_k`:return`aggressive`;case`swarm`:return`swarm`;default:return`balanced`}}function n(e){switch(e){case`conservative`:return`spread`;case`aggressive`:return`conviction`;case`swarm`:return`swarm`;default:return`balanced`}}function r(e){return e===`auto`?`skill`:`base`}function i(e){return e===`skill`?`auto`:`deterministic`}function a(e=``){let n=`balanced`,i=`deterministic`;return{walletId:e,role:`miner`,network:`devnet`,riskMode:t(n),strategyPreset:n,strategyExecution:i,cycleCadence:1,claimMode:`auto`,payout:!0,strategyMode:r(i),automation:{autoFinalizeEpoch:!0,autoClaim:!0,satSweep:{enabled:!1,destinationWalletId:void 0,destinationAddress:void 0,mode:`all`,percentage:100,minRaw:`1`,keepRaw:`0`}},funding:{commitLamports:`250000000`,minSolBalanceLamports:`150000000`},skillConfig:{enabled:!1,useAgentDefaultModel:!0,fallbackToBaseOnFailure:!0,maxDecisionLatencyMs:8e3}}}async function o(){return await e(`/api/mining/profile`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function s(t,n){return await e(`/api/mining/profile`,{method:`PUT`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`,...n?{"x-wallet-approval-token":n}:{}},body:JSON.stringify(t)})}async function c(){return await e(`/api/mining/wallets`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function l(t){return await e(`/api/mining/readiness${t?`?walletId=${encodeURIComponent(t)}`:``}`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function u(t){return await e(`/api/mining/status${t?.forceFresh?`?forceFresh=1`:``}`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function d(t,n){let r=new URLSearchParams({window:t});return n?.activityWindow&&r.set(`activityWindow`,n.activityWindow),await e(`/api/mining/history?${r.toString()}`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function f(){return await e(`/api/mining/recovery`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function p(){return await e(`/api/mining/mainnet-sync`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function m(){return await e(`/api/mining/mainnet-sync`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify({})})}async function h(t){return await e(`/api/mining/start`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}async function g(){return await e(`/api/mining/stop`,{method:`POST`,cache:`no-store`,credentials:`include`})}async function _(t){return await e(`/api/mining/reserve/top-up`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:t?{"x-wallet-approval-token":t}:void 0})}async function v(t,n){return await e(`/api/mining/capital/deposit`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`,...n?{"x-wallet-approval-token":n}:{}},body:JSON.stringify(t)})}async function y(t,n){return await e(`/api/mining/capital/withdraw`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`,...n?{"x-wallet-approval-token":n}:{}},body:JSON.stringify(t)})}async function b(t,n){return await e(`/api/mining/capital/commit`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`,...n?{"x-wallet-approval-token":n}:{}},body:JSON.stringify(t)})}async function x(){return await e(`/api/mining/wallet-attachment`,{method:`GET`,cache:`no-store`,credentials:`include`})}async function S(t){return await e(`/api/mining/recovery/claim`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}async function C(t){return await e(`/api/mining/recovery/resolve-dispute`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}async function w(t){return await e(`/api/mining/recovery/republish-roots`,{method:`POST`,cache:`no-store`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}async function T(){return await e(`/api/mining/history/clear`,{method:`POST`,cache:`no-store`,credentials:`include`})}var E=250000000n,D=10000n,O=100000000n,k=1000000000n;function A(e){try{return BigInt(String(e??`0`))}catch{return 0n}}function j(e){return e<=0n?0n:e*83n/1000000n}function M(e){let t=j(e),n=e>0n?e*100n/D:0n;return n>t?n:t}function N(e){let t=A(e.fundedLamports),n=A(e.lockedLamports);if((typeof e.pendingCycleCount==`number`&&Number.isFinite(e.pendingCycleCount)?e.pendingCycleCount:0)<=0||n<=0n)return 0n;let r=t/10n,i=r<k?r:k;return i>O?i:O}function P(e){let t=A(e.walletLamports),n=A(e.capitalFreeLamports),r=A(e.capitalFundedLamports),i=A(e.signerReserveLamports)+A(e.signerFeeBufferLamports),a=t>=i?0n:i-t,o=N({fundedLamports:r,pendingCycleCount:e.pendingCycleCount,lockedLamports:e.capitalLockedLamports}),s=n>a?n-a:0n,c=E+M(E)+o+a,l=0n;return s>o&&(l=(s-o)*D/10100n),l<E&&(l=0n),{minimumCommitLamports:E,walletReserveTargetLamports:i,walletReserveShortfallLamports:a,retainedFreeLamports:o,usableFreeCapitalLamports:s,safeMaxCommitLamports:l,minimumCapitalForMinimumCommitLamports:c}}function F(e){let t=A(e.requestedCommitLamports),n=e.enforceSafeMax!==!1,r=P({walletLamports:e.walletLamports,capitalFundedLamports:e.capitalFundedLamports,capitalFreeLamports:e.capitalFreeLamports,capitalLockedLamports:e.capitalLockedLamports,pendingCycleCount:e.pendingCycleCount,signerReserveLamports:e.signerReserveLamports,signerFeeBufferLamports:e.signerFeeBufferLamports});return t<r.minimumCommitLamports?{kind:`accepted`,commitLamports:t.toString(),minimumCommitLamports:r.minimumCommitLamports,safeMaxCommitLamports:r.safeMaxCommitLamports,minimumCapitalForMinimumCommitLamports:r.minimumCapitalForMinimumCommitLamports}:n&&r.safeMaxCommitLamports<r.minimumCommitLamports?{kind:`blocked`,commitLamports:t.toString(),minimumCommitLamports:r.minimumCommitLamports,safeMaxCommitLamports:r.safeMaxCommitLamports,minimumCapitalForMinimumCommitLamports:r.minimumCapitalForMinimumCommitLamports}:n&&t>r.safeMaxCommitLamports?{kind:`clamped`,commitLamports:r.safeMaxCommitLamports.toString(),minimumCommitLamports:r.minimumCommitLamports,safeMaxCommitLamports:r.safeMaxCommitLamports,minimumCapitalForMinimumCommitLamports:r.minimumCapitalForMinimumCommitLamports}:{kind:`accepted`,commitLamports:t.toString(),minimumCommitLamports:r.minimumCommitLamports,safeMaxCommitLamports:r.safeMaxCommitLamports,minimumCapitalForMinimumCommitLamports:r.minimumCapitalForMinimumCommitLamports}}export{s as C,t as D,i as E,y as S,r as T,S as _,p as a,g as b,f as c,c as d,T as f,C as g,w as h,d as i,u as l,m,F as n,o,v as p,a as r,l as s,P as t,x as u,b as v,n as w,_ as x,h as y};
2
+ //# sourceMappingURL=mining-commit-DFpB_4JN.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";function r(e){if(e)return Array.isArray(e.type)?e.type.filter(e=>e!==`null`)[0]??e.type[0]:e.type}function i(e){if(!e)return``;if(e.default!==void 0)return e.default;switch(r(e)){case`object`:return{};case`array`:return[];case`boolean`:return!1;case`number`:case`integer`:return 0;case`string`:return``;default:return``}}function a(e){return e.filter(e=>typeof e==`string`).join(`.`)}function o(e,t){let n=a(e),r=t[n];if(r)return r;let i=n.split(`.`);for(let[e,n]of Object.entries(t)){if(!e.includes(`*`))continue;let t=e.split(`.`);if(t.length!==i.length)continue;let r=!0;for(let e=0;e<i.length;e+=1)if(t[e]!==`*`&&t[e]!==i[e]){r=!1;break}if(r)return n}}function s(e){return e.replace(/_/g,` `).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/\s+/g,` `).replace(/^./,e=>e.toUpperCase())}var c=[{label:`Navigation`,tabs:[`overview`,`chat`,`agents`,`wallet`,`mining`,`federation`,`marketplace`,`plugins`,`notifications`,`usage`,`config`,`logs`]}],l={agents:`/agents`,overview:`/dash`,providers:`/providers`,federation:`/federation`,marketplace:`/marketplace`,wallet:`/wallet`,mining:`/mining`,channels:`/channels`,services:`/services`,instances:`/instances`,sessions:`/sessions`,memory:`/memory`,usage:`/usage`,cron:`/cron`,skills:`/skills`,plugins:`/extensions`,nodes:`/nodes`,chat:`/chat`,notifications:`/notifications`,config:`/config`,debug:`/debug`,logs:`/logs`},u=new Map([...Object.entries(l).map(([e,t])=>[t,e]),[`/overview`,`overview`],[`/plugins`,`plugins`]]);function d(e){if(!e)return``;let t=e.trim();return t.startsWith(`/`)||(t=`/${t}`),t===`/`?``:(t.endsWith(`/`)&&(t=t.slice(0,-1)),t)}function f(e){if(!e)return`/`;let t=e.trim();return t.startsWith(`/`)||(t=`/${t}`),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function p(e,t=``){let n=d(t),r=l[e];return n?`${n}${r}`:r}function m(e,t=``){let n=d(t),r=e||`/`;n&&(r===n?r=`/`:r.startsWith(`${n}/`)&&(r=r.slice(n.length)));let i=f(r).toLowerCase();return i.endsWith(`/index.html`)&&(i=`/`),i===`/`?`overview`:u.get(i)??null}function h(e){let t=f(e);if(t.endsWith(`/index.html`)&&(t=f(t.slice(0,-11))),t===`/`)return``;let n=t.split(`/`).filter(Boolean);if(n.length===0)return``;for(let e=0;e<n.length;e++){let t=`/${n.slice(e).join(`/`)}`.toLowerCase();if(u.has(t)){let t=n.slice(0,e);return t.length?`/${t.join(`/`)}`:``}}return`/${n.join(`/`)}`}function g(e){switch(e){case`agents`:return`bot`;case`chat`:return`messageSquare`;case`overview`:return`barChart`;case`providers`:return`settings`;case`federation`:return`network`;case`marketplace`:return`store`;case`wallet`:return`wallet`;case`mining`:return`zap`;case`channels`:return`link`;case`services`:return`link`;case`instances`:return`radio`;case`sessions`:return`fileText`;case`memory`:return`brain`;case`usage`:return`barChart`;case`cron`:return`loader`;case`skills`:return`zap`;case`plugins`:return`plug`;case`nodes`:return`monitor`;case`config`:return`settings`;case`notifications`:return`bell`;case`debug`:return`bug`;case`logs`:return`scrollText`;default:return`folder`}}function _(e){switch(e){case`agents`:return`Agents`;case`overview`:return`Dashboard`;case`providers`:return`Providers`;case`federation`:return`Fased Network`;case`marketplace`:return`Marketplace`;case`wallet`:return`Wallets`;case`mining`:return`Mining`;case`channels`:return`Channels`;case`services`:return`Services`;case`instances`:return`Instances`;case`sessions`:return`Sessions`;case`memory`:return`Memory`;case`usage`:return`Usage`;case`cron`:return`Tasks`;case`skills`:return`Skills`;case`plugins`:return`Extensions`;case`nodes`:return`Nodes`;case`chat`:return`Chat`;case`notifications`:return`Notifications`;case`config`:return`Advanced`;case`debug`:return`Debug`;case`logs`:return`Logs`;default:return`Control`}}function v(e){return e===`federation`?`Network`:e===`channels`?`Channels`:e===`plugins`?`Extensions`:e===`config`?`Advanced`:_(e)}function y(e){switch(e){case`agents`:return`Manage agent workspaces, tools, and identities.`;case`overview`:return`Customizable control dashboard for gateway, agents, and runtime data.`;case`providers`:return`Add model providers, paste API keys, sign in, and choose models for Chat and Agents.`;case`federation`:return`Directory, attestation, and Fased Network join status.`;case`marketplace`:return`Fased Network offers, requests, reviews, and dispute workflow.`;case`wallet`:return`Wallet status, policy, provider health, and runtime health.`;case`mining`:return``;case`channels`:return`Connect chat apps, channel accounts, and command routing.`;case`services`:return`Connect Gmail, calendars, GitHub, web/search, media, and other APIs the agent can use.`;case`instances`:return`Presence beacons from connected clients and nodes.`;case`sessions`:return`Review work history, active sessions, checkpoints, and restore actions.`;case`memory`:return`Session archives, memory backend health, QMD scope, and dreaming status.`;case`usage`:return``;case`cron`:return`Schedule wakeups and recurring agent runs.`;case`skills`:return`Skill Library for install, review, configuration, and creation.`;case`plugins`:return`Runtime extensions, source-trust, dependency, and scanner diagnostics.`;case`nodes`:return`Paired devices, capabilities, and command exposure.`;case`chat`:return`Working terminal for agent sessions, command routes, and media-aware chat.`;case`notifications`:return`Notification routing, delivery preferences, and recent events.`;case`config`:return`Advanced Config for ~/.fased/fased.json when a field has not moved into a friendly page yet.`;case`debug`:return`Provider catalog, command catalog, plugin runtime, memory repair, and raw RPC surfaces.`;case`logs`:return`Live tail of the gateway file logs.`;default:return``}}var b=new Set([`title`,`description`,`default`,`nullable`,`tags`,`x-tags`]),x=new Set([`wallet.runtime.auth`,`wallet.runtime.external`,`wallet.runtime.install`,`wallet.runtime.policy`,`wallet.runtime.service`,`wallet.runtime.source`,`wallet.runtime.toolAccess`]),S=new Set([`embedded-keystore`,`local-socket-signer`]),C=new Set([`solana`]);function w(e){return Object.keys(e??{}).filter(e=>!b.has(e)).length===0}function T(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return``}}var E={chevronDown:e`
1
+ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";function r(e){if(e)return Array.isArray(e.type)?e.type.filter(e=>e!==`null`)[0]??e.type[0]:e.type}function i(e){if(!e)return``;if(e.default!==void 0)return e.default;switch(r(e)){case`object`:return{};case`array`:return[];case`boolean`:return!1;case`number`:case`integer`:return 0;case`string`:return``;default:return``}}function a(e){return e.filter(e=>typeof e==`string`).join(`.`)}function o(e,t){let n=a(e),r=t[n];if(r)return r;let i=n.split(`.`);for(let[e,n]of Object.entries(t)){if(!e.includes(`*`))continue;let t=e.split(`.`);if(t.length!==i.length)continue;let r=!0;for(let e=0;e<i.length;e+=1)if(t[e]!==`*`&&t[e]!==i[e]){r=!1;break}if(r)return n}}function s(e){return e.replace(/_/g,` `).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/\s+/g,` `).replace(/^./,e=>e.toUpperCase())}var c=[{label:`Navigation`,tabs:[`overview`,`chat`,`agents`,`wallet`,`mining`,`federation`,`marketplace`,`plugins`,`notifications`,`usage`,`config`,`logs`]}],l={agents:`/agents`,overview:`/dash`,providers:`/providers`,federation:`/federation`,marketplace:`/marketplace`,wallet:`/wallet`,mining:`/mining`,channels:`/channels`,services:`/services`,instances:`/instances`,sessions:`/sessions`,memory:`/memory`,usage:`/usage`,cron:`/cron`,skills:`/skills`,plugins:`/extensions`,nodes:`/nodes`,chat:`/chat`,notifications:`/notifications`,config:`/config`,debug:`/debug`,logs:`/logs`},u=new Map([...Object.entries(l).map(([e,t])=>[t,e]),[`/overview`,`overview`],[`/plugins`,`plugins`]]);function d(e){if(!e)return``;let t=e.trim();return t.startsWith(`/`)||(t=`/${t}`),t===`/`?``:(t.endsWith(`/`)&&(t=t.slice(0,-1)),t)}function f(e){if(!e)return`/`;let t=e.trim();return t.startsWith(`/`)||(t=`/${t}`),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function p(e,t=``){let n=d(t),r=l[e];return n?`${n}${r}`:r}function m(e,t=``){let n=d(t),r=e||`/`;n&&(r===n?r=`/`:r.startsWith(`${n}/`)&&(r=r.slice(n.length)));let i=f(r).toLowerCase();return i.endsWith(`/index.html`)&&(i=`/`),i===`/`?`overview`:u.get(i)??null}function h(e){let t=f(e);if(t.endsWith(`/index.html`)&&(t=f(t.slice(0,-11))),t===`/`)return``;let n=t.split(`/`).filter(Boolean);if(n.length===0)return``;for(let e=0;e<n.length;e++){let t=`/${n.slice(e).join(`/`)}`.toLowerCase();if(u.has(t)){let t=n.slice(0,e);return t.length?`/${t.join(`/`)}`:``}}return`/${n.join(`/`)}`}function g(e){switch(e){case`agents`:return`bot`;case`chat`:return`messageSquare`;case`overview`:return`barChart`;case`providers`:return`settings`;case`federation`:return`network`;case`marketplace`:return`store`;case`wallet`:return`wallet`;case`mining`:return`zap`;case`channels`:return`link`;case`services`:return`link`;case`instances`:return`radio`;case`sessions`:return`fileText`;case`memory`:return`brain`;case`usage`:return`barChart`;case`cron`:return`loader`;case`skills`:return`zap`;case`plugins`:return`plug`;case`nodes`:return`monitor`;case`config`:return`settings`;case`notifications`:return`bell`;case`debug`:return`bug`;case`logs`:return`scrollText`;default:return`folder`}}function _(e){switch(e){case`agents`:return`Agents`;case`overview`:return`Dashboard`;case`providers`:return`Providers`;case`federation`:return`Fased Network`;case`marketplace`:return`Marketplace`;case`wallet`:return`Wallets`;case`mining`:return`Mining`;case`channels`:return`Channels`;case`services`:return`Services`;case`instances`:return`Instances`;case`sessions`:return`Sessions`;case`memory`:return`Memory`;case`usage`:return`Usage`;case`cron`:return`Tasks`;case`skills`:return`Skills`;case`plugins`:return`Extensions`;case`nodes`:return`Nodes`;case`chat`:return`Chat`;case`notifications`:return`Notifications`;case`config`:return`Advanced`;case`debug`:return`Debug`;case`logs`:return`Logs`;default:return`Control`}}function v(e){return e===`federation`?`Network`:e===`channels`?`Channels`:e===`plugins`?`Extensions`:e===`config`?`Advanced`:_(e)}function y(e){switch(e){case`agents`:return`Manage agent workspaces, tools, and identities.`;case`overview`:return`Customizable control dashboard for gateway, agents, and runtime data.`;case`providers`:return`Add model providers, paste API keys, sign in, and choose models for Chat and Agents.`;case`federation`:return`Directory, attestation, and Fased Network join status.`;case`marketplace`:return`Fased Network offers, requests, reviews, and dispute workflow.`;case`wallet`:return`Wallet status, policy, provider health, and runtime health.`;case`mining`:return``;case`channels`:return`Connect chat apps, channel accounts, and command routing.`;case`services`:return`Connect Gmail, calendars, GitHub, web/search, media, and other APIs the agent can use.`;case`instances`:return`Presence beacons from connected clients and nodes.`;case`sessions`:return`Review work history, active sessions, checkpoints, and restore actions.`;case`memory`:return`Session archives, memory backend health, QMD scope, and dreaming status.`;case`usage`:return``;case`cron`:return`Schedule wakeups and recurring agent runs.`;case`skills`:return`Skill Library for install, review, configuration, and creation.`;case`plugins`:return`Runtime extensions, source-trust, dependency, and scanner diagnostics.`;case`nodes`:return`Paired devices, capabilities, and command exposure.`;case`chat`:return`Working terminal for agent sessions, command routes, and media-aware chat.`;case`notifications`:return`Notification routing, delivery preferences, and recent events.`;case`config`:return`Advanced Config for ~/.fased/fased.json when a field has not moved into a friendly page yet.`;case`debug`:return`Provider catalog, command catalog, plugin runtime, memory repair, and raw RPC surfaces.`;case`logs`:return`Live tail of the gateway file logs.`;default:return``}}var b=new Set([`title`,`description`,`default`,`nullable`,`tags`,`x-tags`]),x=new Set([`wallet.keystore`,`wallet.runtime.auth`,`wallet.runtime.external`,`wallet.runtime.install`,`wallet.runtime.policy`,`wallet.runtime.service`,`wallet.runtime.source`,`wallet.runtime.toolAccess`]),S=new Set([`local-socket-signer`]),C=new Set([`solana`]);function w(e){return Object.keys(e??{}).filter(e=>!b.has(e)).length===0}function T(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return``}}var E={chevronDown:e`
2
2
  <svg
3
3
  viewBox="0 0 24 24"
4
4
  fill="none"
@@ -550,5 +550,5 @@ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";function r(e){if(e)return
550
550
  </section>
551
551
  `})}
552
552
  </div>
553
- `}var oe=new Set([`title`,`description`,`default`,`nullable`]);function J(e){return Object.keys(e??{}).filter(e=>!oe.has(e)).length===0}function Y(e){let t=e.filter(e=>e!=null),n=t.length!==e.length,r=[];for(let e of t)r.some(t=>Object.is(t,e))||r.push(e);return{enumValues:r,nullable:n}}function se(e){return!e||typeof e!=`object`?{schema:null,unsupportedPaths:[`<root>`]}:X(e,[])}function X(e,t){let n=new Set,i={...e},o=a(t)||`<root>`;if(J(e))return{schema:{...e,type:`string`},unsupportedPaths:[]};if(e.anyOf||e.oneOf||e.allOf)return ce(e,t)||{schema:e,unsupportedPaths:[o]};let s=Array.isArray(e.type)&&e.type.includes(`null`),c=r(e)??(e.properties||e.additionalProperties?`object`:void 0);if(i.type=c??e.type,i.nullable=s||e.nullable,i.enum){let{enumValues:e,nullable:t}=Y(i.enum);i.enum=e,t&&(i.nullable=!0),e.length===0&&n.add(o)}if(c===`object`){let r=e.properties??{},a={};for(let[e,i]of Object.entries(r)){let r=X(i,[...t,e]);r.schema&&(a[e]=r.schema);for(let e of r.unsupportedPaths)n.add(e)}if(i.properties=a,e.additionalProperties===!0)i.additionalProperties={};else if(e.additionalProperties===!1)i.additionalProperties=!1;else if(e.additionalProperties&&typeof e.additionalProperties==`object`&&!J(e.additionalProperties)){let r=X(e.additionalProperties,[...t,`*`]);i.additionalProperties=r.schema??e.additionalProperties;for(let e of r.unsupportedPaths)n.add(e)}}else if(c===`array`){let r=Array.isArray(e.items)?e.items[0]:e.items;if(!r)n.add(o);else{let e=X(r,[...t,`*`]);i.items=e.schema??r;for(let t of e.unsupportedPaths)n.add(t)}}else c!==`string`&&c!==`number`&&c!==`integer`&&c!==`boolean`&&!i.enum&&n.add(o);return{schema:i,unsupportedPaths:Array.from(n)}}function ce(e,t){if(e.allOf)return null;let n=e.anyOf??e.oneOf;if(!n)return null;let i=[],a=[],o=!1;for(let e of n){if(!e||typeof e!=`object`)return null;if(Array.isArray(e.enum)){let{enumValues:t,nullable:n}=Y(e.enum);i.push(...t),n&&(o=!0);continue}if(`const`in e){if(e.const==null){o=!0;continue}i.push(e.const);continue}if(r(e)===`null`){o=!0;continue}a.push(e)}let s=[],c=new Set;for(let e of a){let n=X(e,t);n.schema&&s.push(n.schema);for(let e of n.unsupportedPaths)c.add(e)}if(i.length>0&&s.length===0){let t=[];for(let e of i)t.some(t=>Object.is(t,e))||t.push(e);return{schema:{...e,enum:t,nullable:o,anyOf:void 0,oneOf:void 0,allOf:void 0},unsupportedPaths:[]}}if(s.length===1&&i.length===0){let[e]=s;return e.nullable=o||e.nullable,{schema:e,unsupportedPaths:Array.from(c)}}let l=new Set([`string`,`number`,`integer`,`boolean`]);if(s.find(e=>{let t=r(e);return t&&l.has(String(t))}))return{schema:{...e,anyOf:e.anyOf?[...s,...Z(i)]:void 0,oneOf:e.oneOf?[...s,...Z(i)]:void 0,nullable:o},unsupportedPaths:Array.from(c)};let u=new Set([`string`,`number`,`integer`,`boolean`,`object`,`array`]);return s.length>0&&i.length===0&&s.every(e=>{let t=r(e);return t&&u.has(String(t))})?{schema:{...e,anyOf:e.anyOf?s:void 0,oneOf:e.oneOf?s:void 0,nullable:o},unsupportedPaths:Array.from(c)}:null}function Z(e){let t=[];for(let n of e)t.some(e=>Object.is(e,n))||t.push(n);return t.map(e=>({const:e,type:typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:`string`}))}var Q=`data:`,le=new Set([`http:`,`https:`,`blob:`]),ue=new Set([`image/svg+xml`]);function de(e){if(!e.toLowerCase().startsWith(Q))return!1;let t=e.indexOf(`,`);if(t<5)return!1;let n=e.slice(5,t).split(`;`)[0]?.trim().toLowerCase()??``;return n.startsWith(`image/`)?!ue.has(n):!1}function $(e,t,n={}){let r=e.trim();if(!r)return null;if(n.allowDataImage===!0&&de(r))return r;if(r.toLowerCase().startsWith(Q))return null;try{let e=new URL(r,t);return le.has(e.protocol.toLowerCase())?e.toString():null}catch{return null}}function fe(e,t={}){let n=$(e,t.baseHref??window.location.href,t);if(!n)return null;let r=window.open(n,`_blank`,`noopener,noreferrer`);return r&&(r.opener=null),r}function pe(e=`noopener,noreferrer`){let t=window.open(``,`_blank`,e);return t&&(t.opener=null),t}export{_,W as a,r as b,c,v as d,d as f,m as g,y as h,se as i,g as l,p as m,fe as n,q as o,f as p,$ as r,R as s,pe as t,h as u,o as v,s as y};
554
- //# sourceMappingURL=open-external-url-DwSiwMPl.js.map
553
+ `}var oe=new Set([`title`,`description`,`default`,`nullable`]);function J(e){return Object.keys(e??{}).filter(e=>!oe.has(e)).length===0}function Y(e){let t=e.filter(e=>e!=null),n=t.length!==e.length,r=[];for(let e of t)r.some(t=>Object.is(t,e))||r.push(e);return{enumValues:r,nullable:n}}function se(e){return!e||typeof e!=`object`?{schema:null,unsupportedPaths:[`<root>`]}:X(e,[])}function X(e,t){let n=new Set,i={...e},o=a(t)||`<root>`;if(J(e))return{schema:{...e,type:`string`},unsupportedPaths:[]};if(e.anyOf||e.oneOf||e.allOf)return ce(e,t)||{schema:e,unsupportedPaths:[o]};let s=Array.isArray(e.type)&&e.type.includes(`null`),c=r(e)??(e.properties||e.additionalProperties?`object`:void 0);if(i.type=c??e.type,i.nullable=s||e.nullable,i.enum){let{enumValues:e,nullable:t}=Y(i.enum);i.enum=e,t&&(i.nullable=!0),e.length===0&&n.add(o)}if(c===`object`){let r=e.properties??{},a={};for(let[e,i]of Object.entries(r)){let r=X(i,[...t,e]);r.schema&&(a[e]=r.schema);for(let e of r.unsupportedPaths)n.add(e)}if(i.properties=a,e.additionalProperties===!0)i.additionalProperties={};else if(e.additionalProperties===!1)i.additionalProperties=!1;else if(e.additionalProperties&&typeof e.additionalProperties==`object`&&!J(e.additionalProperties)){let r=X(e.additionalProperties,[...t,`*`]);i.additionalProperties=r.schema??e.additionalProperties;for(let e of r.unsupportedPaths)n.add(e)}}else if(c===`array`){let r=Array.isArray(e.items)?e.items[0]:e.items;if(!r)n.add(o);else{let e=X(r,[...t,`*`]);i.items=e.schema??r;for(let t of e.unsupportedPaths)n.add(t)}}else c!==`string`&&c!==`number`&&c!==`integer`&&c!==`boolean`&&!i.enum&&n.add(o);return{schema:i,unsupportedPaths:Array.from(n)}}function ce(e,t){if(e.allOf)return null;let n=e.anyOf??e.oneOf;if(!n)return null;let i=[],a=[],o=!1;for(let e of n){if(!e||typeof e!=`object`)return null;if(Array.isArray(e.enum)){let{enumValues:t,nullable:n}=Y(e.enum);i.push(...t),n&&(o=!0);continue}if(`const`in e){if(e.const==null){o=!0;continue}i.push(e.const);continue}if(r(e)===`null`){o=!0;continue}a.push(e)}let s=[],c=new Set;for(let e of a){let n=X(e,t);n.schema&&s.push(n.schema);for(let e of n.unsupportedPaths)c.add(e)}if(i.length>0&&s.length===0){let t=[];for(let e of i)t.some(t=>Object.is(t,e))||t.push(e);return{schema:{...e,enum:t,nullable:o,anyOf:void 0,oneOf:void 0,allOf:void 0},unsupportedPaths:[]}}if(s.length===1&&i.length===0){let[e]=s;return e.nullable=o||e.nullable,{schema:e,unsupportedPaths:Array.from(c)}}let l=new Set([`string`,`number`,`integer`,`boolean`]);if(s.find(e=>{let t=r(e);return t&&l.has(String(t))}))return{schema:{...e,anyOf:e.anyOf?[...s,...Z(i)]:void 0,oneOf:e.oneOf?[...s,...Z(i)]:void 0,nullable:o},unsupportedPaths:Array.from(c)};let u=new Set([`string`,`number`,`integer`,`boolean`,`object`,`array`]);return s.length>0&&i.length===0&&s.every(e=>{let t=r(e);return t&&u.has(String(t))})?{schema:{...e,anyOf:e.anyOf?s:void 0,oneOf:e.oneOf?s:void 0,nullable:o},unsupportedPaths:Array.from(c)}:null}function Z(e){let t=[];for(let n of e)t.some(e=>Object.is(e,n))||t.push(n);return t.map(e=>({const:e,type:typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:`string`}))}var Q=`data:`,le=new Set([`http:`,`https:`,`blob:`]),ue=new Set([`image/svg+xml`]);function de(e){if(!e.toLowerCase().startsWith(Q))return!1;let t=e.indexOf(`,`);if(t<5)return!1;let n=e.slice(5,t).split(`;`)[0]?.trim().toLowerCase()??``;return n.startsWith(`image/`)?!ue.has(n):!1}function $(e,t,n={}){let r=e.trim();if(!r)return null;if(n.allowDataImage===!0&&de(r))return r;if(r.toLowerCase().startsWith(Q))return null;try{let e=new URL(r,t);return le.has(e.protocol.toLowerCase())?e.toString():null}catch{return null}}function fe(e,t={}){let n=$(e,t.baseHref??window.location.href,t);if(!n)return null;let r=window.open(n,`_blank`,`noopener,noreferrer`);return r&&(r.opener=null),r}export{o as _,q as a,g as c,d,f,_ as g,m as h,W as i,h as l,y as m,$ as n,R as o,p,se as r,c as s,fe as t,v as u,s as v,r as y};
554
+ //# sourceMappingURL=open-external-url-ulF1B-sA.js.map
@@ -1,4 +1,4 @@
1
- import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as a,E as o,F as s,I as c,L as l,M as u,N as d,O as f,P as p,S as m,T as h,_ as g,b as _,c as v,d as y,f as b,g as x,h as S,j as ee,k as te,l as ne,m as re,p as ie,s as ae,t as oe,u as C,v as w,w as T,x as E,y as D}from"./chat-model-ref-Djkv93yn.js";import{buildOrderedProviderProfiles as se,buildProviderAuthSummary as O,calloutClassForProviderAuthActionTone as k}from"./config-CU5Zi8Dh.js";function A(e){return e===`api-key`?`api`:e===`token`?`token`:e===`manual`?`manual`:`interactive`}function j(e){return{id:e.id,label:e.label,routeIds:[...new Set([...e.methods.map(e=>e.route),...e.routeAliases??[]])],authMethods:e.methods.map(e=>({kind:A(e.kind),providerId:e.configProviderId??e.route,statusProviderId:e.statusRoute,methodId:e.id,label:e.label,buttonLabel:e.buttonLabel,reason:e.hint,setupRequirement:e.setupRequirement})),modelProviderIds:e.modelProviderIds,modelRefs:e.models.recommended}}var M=[j(E),j(ae),j(ne),j(_),j(x),j(r),j(g),j(D),j(ie),j(u),j(w),j(ee),j(v),j(i),j(h),j(p),j(T),j(y),j(te),j(m),j(d),j(o),j(a),j(re),j(f),j(S),j(C),j(b)],N={anthropic:`Anthropic API key`,byteplus:`BytePlus API key`,chutes:`Chutes API key`,gemini:`Google Gemini API key`,google:`Google Gemini API key`,huggingface:`Hugging Face token`,"kimi-code":`Kimi Code API key`,"kimi-coding":`Kimi Code API key`,litellm:`LiteLLM API key`,minimax:`MiniMax API key`,"minimax-cn":`MiniMax CN API key`,"minimax-lightning":`MiniMax Highspeed API key`,mistral:`Mistral API key`,moonshot:`Moonshot API key`,"moonshot-cn":`Moonshot CN API key`,opencode:`OpenCode Zen API key`,"opencode-zen":`OpenCode Zen API key`,openai:`OpenAI API key`,openrouter:`OpenRouter API key`,qianfan:`Qianfan API key`,qwen:`Qwen DashScope API key`,"qwen-coding-plan":`Qwen Coding Plan API key`,synthetic:`Synthetic API key`,together:`Together AI API key`,venice:`Venice API key`,"vercel-ai-gateway":`Vercel AI API key`,volcengine:`Volcano Engine API key`,xai:`xAI API key`,xiaomi:`Xiaomi API key`,zai:`Z.AI API key`,"zai-cn":`Z.AI CN API key`,"zai-coding-cn":`Z.AI Coding CN API key`,"zai-coding-global":`Z.AI Coding Global API key`},P={anthropic:`Sign in`,chutes:`Sign in`,"copilot-proxy":`Proxy sign in`,"github-copilot":`GitHub sign in`,"google-gemini-cli":`Sign in`,"minimax-portal":`Sign in`,"openai-codex":`Sign in`,xai:`xAI sign-in`},F={"cloudflare-ai-gateway":`Cloudflare AI uses the Configure form for Account ID, Gateway ID, and Anthropic API key.`,"copilot-proxy":`Copilot Proxy uses a local sign-in/proxy flow, not API-key setup.`,"github-copilot":`GitHub Copilot uses GitHub device login, not API-key setup.`,"google-gemini-cli":`Google Gemini CLI uses OAuth. Use the Google provider row for Gemini API keys.`,"minimax-portal":`MiniMax Portal uses OAuth. Use the MiniMax provider row for API keys.`,"openai-codex":`OpenAI sign-in uses ChatGPT OAuth. Use the OpenAI provider row for OpenAI API keys.`,ollama:`Ollama needs native endpoint/model fields, not generic API-key setup.`,lmstudio:`LM Studio needs endpoint/model fields, not generic API-key setup.`,vllm:`vLLM needs endpoint/model fields, not API-key setup.`},I={gemini:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,google:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,minimax:`Use the MiniMax Portal row for OAuth, or save a MiniMax API key here.`,openai:`Use OpenAI sign-in for ChatGPT OAuth, or save an OpenAI API key here.`};function L(e,t){return e?.providers.find(e=>e.provider===t)??null}function R(e,t){return e?.providers.find(e=>e.provider===t)??null}function z(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`?`chip ok`:e===`missing`||e===`unauthenticated`||e===`unconfigured`||e===`refresh-required`?`chip warn`:e===`error`?`chip danger`:`chip`}function B(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`}function V(e){return e?B(e.status)||e.profiles.some(e=>B(e.status)):!1}function H(e,t){return(t.modelProviderIds??t.routeIds).map(t=>L(e,t)).filter(e=>!!e)}function U(e){return e===`ok`?`chip ok`:e===`fail`?`chip danger`:`chip`}function W(e,t,n){return e===`ok`?t:e===`fail`?n:`unknown`}function G(n){let r=n.find(e=>e.health)?.health;return r?e`
1
+ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as a,E as o,F as s,I as c,L as l,M as u,N as d,O as f,P as p,S as m,T as h,_ as g,b as _,c as v,d as y,f as b,g as x,h as S,j as ee,k as te,l as ne,m as re,p as ie,s as ae,t as oe,u as C,v as w,w as T,x as E,y as D}from"./chat-model-ref-Djkv93yn.js";import{buildOrderedProviderProfiles as se,buildProviderAuthSummary as O,calloutClassForProviderAuthActionTone as k}from"./config-LeImukCW.js";function A(e){return e===`api-key`?`api`:e===`token`?`token`:e===`manual`?`manual`:`interactive`}function j(e){return{id:e.id,label:e.label,routeIds:[...new Set([...e.methods.map(e=>e.route),...e.routeAliases??[]])],authMethods:e.methods.map(e=>({kind:A(e.kind),providerId:e.configProviderId??e.route,statusProviderId:e.statusRoute,methodId:e.id,label:e.label,buttonLabel:e.buttonLabel,reason:e.hint,setupRequirement:e.setupRequirement})),modelProviderIds:e.modelProviderIds,modelRefs:e.models.recommended}}var M=[j(E),j(ae),j(ne),j(_),j(x),j(r),j(g),j(D),j(ie),j(u),j(w),j(ee),j(v),j(i),j(h),j(p),j(T),j(y),j(te),j(m),j(d),j(o),j(a),j(re),j(f),j(S),j(C),j(b)],N={anthropic:`Anthropic API key`,byteplus:`BytePlus API key`,chutes:`Chutes API key`,gemini:`Google Gemini API key`,google:`Google Gemini API key`,huggingface:`Hugging Face token`,"kimi-code":`Kimi Code API key`,"kimi-coding":`Kimi Code API key`,litellm:`LiteLLM API key`,minimax:`MiniMax API key`,"minimax-cn":`MiniMax CN API key`,"minimax-lightning":`MiniMax Highspeed API key`,mistral:`Mistral API key`,moonshot:`Moonshot API key`,"moonshot-cn":`Moonshot CN API key`,opencode:`OpenCode Zen API key`,"opencode-zen":`OpenCode Zen API key`,openai:`OpenAI API key`,openrouter:`OpenRouter API key`,qianfan:`Qianfan API key`,qwen:`Qwen DashScope API key`,"qwen-coding-plan":`Qwen Coding Plan API key`,synthetic:`Synthetic API key`,together:`Together AI API key`,venice:`Venice API key`,"vercel-ai-gateway":`Vercel AI API key`,volcengine:`Volcano Engine API key`,xai:`xAI API key`,xiaomi:`Xiaomi API key`,zai:`Z.AI API key`,"zai-cn":`Z.AI CN API key`,"zai-coding-cn":`Z.AI Coding CN API key`,"zai-coding-global":`Z.AI Coding Global API key`},P={anthropic:`Sign in`,chutes:`Sign in`,"copilot-proxy":`Proxy sign in`,"github-copilot":`GitHub sign in`,"google-gemini-cli":`Sign in`,"minimax-portal":`Sign in`,"openai-codex":`Sign in`,xai:`xAI sign-in`},F={"cloudflare-ai-gateway":`Cloudflare AI uses the Configure form for Account ID, Gateway ID, and Anthropic API key.`,"copilot-proxy":`Copilot Proxy uses a local sign-in/proxy flow, not API-key setup.`,"github-copilot":`GitHub Copilot uses GitHub device login, not API-key setup.`,"google-gemini-cli":`Google Gemini CLI uses OAuth. Use the Google provider row for Gemini API keys.`,"minimax-portal":`MiniMax Portal uses OAuth. Use the MiniMax provider row for API keys.`,"openai-codex":`OpenAI sign-in uses ChatGPT OAuth. Use the OpenAI provider row for OpenAI API keys.`,ollama:`Ollama needs native endpoint/model fields, not generic API-key setup.`,lmstudio:`LM Studio needs endpoint/model fields, not generic API-key setup.`,vllm:`vLLM needs endpoint/model fields, not API-key setup.`},I={gemini:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,google:`Use the Google Gemini CLI row for OAuth, or save a Gemini API key here.`,minimax:`Use the MiniMax Portal row for OAuth, or save a MiniMax API key here.`,openai:`Use OpenAI sign-in for ChatGPT OAuth, or save an OpenAI API key here.`};function L(e,t){return e?.providers.find(e=>e.provider===t)??null}function R(e,t){return e?.providers.find(e=>e.provider===t)??null}function z(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`?`chip ok`:e===`missing`||e===`unauthenticated`||e===`unconfigured`||e===`refresh-required`?`chip warn`:e===`error`?`chip danger`:`chip`}function B(e){return e===`ready`||e===`ok`||e===`configured`||e===`expiring`||e===`static`}function V(e){return e?B(e.status)||e.profiles.some(e=>B(e.status)):!1}function H(e,t){return(t.modelProviderIds??t.routeIds).map(t=>L(e,t)).filter(e=>!!e)}function U(e){return e===`ok`?`chip ok`:e===`fail`?`chip danger`:`chip`}function W(e,t,n){return e===`ok`?t:e===`fail`?n:`unknown`}function G(n){let r=n.find(e=>e.health)?.health;return r?e`
2
2
  <div class="providers-health" role="note">
3
3
  <span class=${U(r.reachable)}>
4
4
  reachable ${W(r.reachable,`ok`,`failed`)}
@@ -1141,4 +1141,4 @@ import{a as e,r as t,t as n}from"./icons-D3-vEvih.js";import{A as r,C as i,D as
1141
1141
  </section>
1142
1142
  </section>
1143
1143
  `}export{Ae as renderProviders};
1144
- //# sourceMappingURL=providers-QMn4w2_f.js.map
1144
+ //# sourceMappingURL=providers-CIx9fxc6.js.map