@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
@@ -4,9 +4,9 @@ import { applyConfigOverrides, getConfigOverrides, resetConfigOverrides, setConf
4
4
  import { MODEL_APIS } from "./types.models.js";
5
5
  import { FasedAgentSchema } from "./zod-schema.js";
6
6
  import { validateConfigObject, validateConfigObjectRaw, validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins } from "./validation.js";
7
- import { clearConfigCache, clearRuntimeConfigSnapshot, createConfigIO, getRuntimeConfigSnapshot, loadConfig, parseConfigJson5, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resolveConfigSnapshotHash, setRuntimeConfigSnapshot, writeConfigFile } from "./io.js";
7
+ import { clearConfigCache, clearRuntimeConfigSnapshot, createConfigIO, getRuntimeConfigSnapshot, loadConfig, parseConfigJson5, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resolveConfigSnapshotHash, setRuntimeConfigSnapshot, updateConfigFile, writeConfigFile } from "./io.js";
8
8
  import { migrateLegacyConfig } from "./legacy-migrate.js";
9
9
  import { TOOLS_BY_SENDER_KEY_TYPES, parseToolsBySenderTypedKey } from "./types.tools.js";
10
10
  import "./types.js";
11
11
 
12
- export { CONFIG_PATH, DEFAULT_GATEWAY_PORT, DEFAULT_SECRET_PROVIDER_ALIAS, FasedAgentSchema, MODEL_APIS, STATE_DIR, TOOLS_BY_SENDER_KEY_TYPES, applyConfigOverrides, assertSecretInputResolved, clearConfigCache, clearRuntimeConfigSnapshot, coerceSecretRef, createConfigIO, getConfigOverrides, getRuntimeConfigSnapshot, isNixMode, isSecretRef, loadConfig, migrateLegacyConfig, parseConfigJson5, parseEnvTemplateSecretRef, parseToolsBySenderTypedKey, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resetConfigOverrides, resolveCanonicalConfigPath, resolveConfigPath, resolveConfigPathCandidate, resolveConfigSnapshotHash, resolveDefaultConfigCandidates, resolveGatewayLockDir, resolveGatewayPort, resolveIsNixMode, resolveLegacyStateDir, resolveLegacyStateDirs, resolveNewStateDir, resolveOAuthDir, resolveOAuthPath, resolveStateDir, setConfigOverride, setRuntimeConfigSnapshot, unsetConfigOverride, validateConfigObject, validateConfigObjectRaw, validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins, writeConfigFile };
12
+ export { CONFIG_PATH, DEFAULT_GATEWAY_PORT, DEFAULT_SECRET_PROVIDER_ALIAS, FasedAgentSchema, MODEL_APIS, STATE_DIR, TOOLS_BY_SENDER_KEY_TYPES, applyConfigOverrides, assertSecretInputResolved, clearConfigCache, clearRuntimeConfigSnapshot, coerceSecretRef, createConfigIO, getConfigOverrides, getRuntimeConfigSnapshot, isNixMode, isSecretRef, loadConfig, migrateLegacyConfig, parseConfigJson5, parseEnvTemplateSecretRef, parseToolsBySenderTypedKey, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resetConfigOverrides, resolveCanonicalConfigPath, resolveConfigPath, resolveConfigPathCandidate, resolveConfigSnapshotHash, resolveDefaultConfigCandidates, resolveGatewayLockDir, resolveGatewayPort, resolveIsNixMode, resolveLegacyStateDir, resolveLegacyStateDirs, resolveNewStateDir, resolveOAuthDir, resolveOAuthPath, resolveStateDir, setConfigOverride, setRuntimeConfigSnapshot, unsetConfigOverride, updateConfigFile, validateConfigObject, validateConfigObjectRaw, validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins, writeConfigFile };
package/dist/config/io.js CHANGED
@@ -2,6 +2,8 @@ import { resolveRequiredHomeDir } from "../infra/home-dir.js";
2
2
  import { resolveConfigPath, resolveDefaultConfigCandidates, resolveStateDir } from "./paths.js";
3
3
  import { isBlockedObjectKey } from "../infra/prototype-keys.js";
4
4
  import { VERSION } from "../version.js";
5
+ import { withFileLock } from "../plugin-sdk/file-lock.js";
6
+ import "../infra/file-lock.js";
5
7
  import { ensureOwnerDisplaySecret } from "../agents/owner-display.js";
6
8
  import { loadDotEnv } from "../infra/dotenv.js";
7
9
  import { loadShellEnvFallback, resolveShellEnvFallbackTimeoutMs, shouldDeferShellEnvFallback, shouldEnableShellEnvFallback } from "../infra/shell-env.js";
@@ -71,6 +73,36 @@ function pruneLegacyRemovedPlugins(cfg) {
71
73
  const OPEN_DM_POLICY_ALLOW_FROM_RE = /^(?<policyPath>[a-z0-9_.-]+)\s*=\s*"open"\s+requires\s+(?<allowPath>[a-z0-9_.-]+)(?:\s+\(or\s+[a-z0-9_.-]+\))?\s+to include "\*"$/i;
72
74
  const CONFIG_AUDIT_LOG_FILENAME = "config-audit.jsonl";
73
75
  const loggedInvalidConfigs = new Set();
76
+ const CONFIG_WRITE_QUEUES = new Map();
77
+ async function inConfigWriteQueue(configPath, fn) {
78
+ const previous = CONFIG_WRITE_QUEUES.get(configPath) ?? Promise.resolve();
79
+ let release;
80
+ const current = new Promise((resolve) => {
81
+ release = resolve;
82
+ });
83
+ CONFIG_WRITE_QUEUES.set(configPath, current);
84
+ await previous.catch(() => undefined);
85
+ try {
86
+ return await fn();
87
+ } finally {
88
+ release?.();
89
+ if (CONFIG_WRITE_QUEUES.get(configPath) === current) {
90
+ CONFIG_WRITE_QUEUES.delete(configPath);
91
+ }
92
+ }
93
+ }
94
+ async function withConfigWriteLock(configPath, fn) {
95
+ return await inConfigWriteQueue(configPath, async () => await withFileLock(configPath, {
96
+ retries: {
97
+ retries: 160,
98
+ factor: 1.08,
99
+ minTimeout: 10,
100
+ maxTimeout: 250,
101
+ randomize: true
102
+ },
103
+ stale: 12e4
104
+ }, fn));
105
+ }
74
106
  function hashConfigRaw(raw) {
75
107
  return crypto.createHash("sha256").update(raw ?? "").digest("hex");
76
108
  }
@@ -857,7 +889,7 @@ function createConfigIO(overrides = {}) {
857
889
  }
858
890
  };
859
891
  }
860
- async function writeConfigFile(cfg, options = {}) {
892
+ async function writeConfigFileUnlocked(cfg, options = {}) {
861
893
  clearConfigCache();
862
894
  let persistCandidate = cfg;
863
895
  const { snapshot } = await readConfigFileSnapshotInternal();
@@ -1047,11 +1079,38 @@ function createConfigIO(overrides = {}) {
1047
1079
  throw err;
1048
1080
  }
1049
1081
  }
1082
+ async function writeConfigFile(cfg, options = {}) {
1083
+ await withConfigWriteLock(configPath, async () => {
1084
+ await writeConfigFileUnlocked(cfg, options);
1085
+ });
1086
+ }
1087
+ async function updateConfigFile(mutator) {
1088
+ return await withConfigWriteLock(configPath, async () => {
1089
+ const read = await readConfigFileSnapshotInternal();
1090
+ if (!read.snapshot.valid) {
1091
+ throw new Error("Config update transaction refused an invalid config snapshot");
1092
+ }
1093
+ const decision = await mutator(structuredClone(read.snapshot.config), read.snapshot);
1094
+ const shouldWrite = decision.write !== false;
1095
+ if (shouldWrite) {
1096
+ await writeConfigFileUnlocked(decision.config, {
1097
+ envSnapshotForRestore: read.envSnapshotForRestore,
1098
+ expectedConfigPath: configPath
1099
+ });
1100
+ }
1101
+ return {
1102
+ config: shouldWrite ? decision.config : read.snapshot.config,
1103
+ result: decision.result,
1104
+ written: shouldWrite
1105
+ };
1106
+ });
1107
+ }
1050
1108
  return {
1051
1109
  configPath,
1052
1110
  loadConfig,
1053
1111
  readConfigFileSnapshot,
1054
1112
  readConfigFileSnapshotForWrite,
1113
+ updateConfigFile,
1055
1114
  writeConfigFile
1056
1115
  };
1057
1116
  }
@@ -1145,6 +1204,9 @@ async function writeConfigFile(cfg, options = {}) {
1145
1204
  unsetPaths: options.unsetPaths
1146
1205
  });
1147
1206
  }
1207
+ async function updateConfigFile(mutator) {
1208
+ return await createConfigIO().updateConfigFile(mutator);
1209
+ }
1148
1210
 
1149
1211
  //#endregion
1150
- export { clearConfigCache, clearRuntimeConfigSnapshot, createConfigIO, getRuntimeConfigSnapshot, loadConfig, parseConfigJson5, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resolveConfigSnapshotHash, setRuntimeConfigSnapshot, writeConfigFile };
1212
+ export { clearConfigCache, clearRuntimeConfigSnapshot, createConfigIO, getRuntimeConfigSnapshot, loadConfig, parseConfigJson5, readConfigFileSnapshot, readConfigFileSnapshotForWrite, resolveConfigSnapshotHash, setRuntimeConfigSnapshot, updateConfigFile, writeConfigFile };
@@ -178,6 +178,7 @@ const FIELD_HELP_BASE = {
178
178
  "agents.defaults.memorySearch.remote.baseUrl": "Custom base URL for remote embeddings (OpenAI-compatible proxies or Gemini overrides).",
179
179
  "agents.defaults.memorySearch.remote.apiKey": "Custom API key for the remote embedding provider.",
180
180
  "agents.defaults.memorySearch.remote.headers": "Extra headers for remote embeddings (merged; remote overrides OpenAI headers).",
181
+ "agents.defaults.memorySearch.remote.allowSessionContent": "Explicitly allow sanitized session transcript text to leave this host for remote embedding. Default: false.",
181
182
  "agents.defaults.memorySearch.remote.batch.enabled": "Enable batch API for memory embeddings (OpenAI/Gemini; default: true).",
182
183
  "agents.defaults.memorySearch.remote.batch.wait": "Wait for batch completion when indexing (default: true).",
183
184
  "agents.defaults.memorySearch.remote.batch.concurrency": "Max concurrent embedding batch jobs for memory indexing (default: 2).",
@@ -219,15 +220,15 @@ const FIELD_HELP_BASE = {
219
220
  "memory.qmd.limits.timeoutMs": "Per-query timeout for QMD searches (default: 4000).",
220
221
  "memory.qmd.scope": "Session/channel scope for QMD recall (same syntax as session.sendPolicy; default: direct-only). Use match.rawKeyPrefix to match full agent-prefixed session keys.",
221
222
  wallet: "Wallet subsystem configuration.",
222
- "wallet.provider.id": "Wallet backend provider id for the current self-hosted runtime (\"local-socket-signer\" preferred; \"embedded-keystore\" legacy). Hosted provider ids are CLI/admin-only compatibility plumbing.",
223
+ "wallet.provider.id": "Wallet backend provider id. Local, WSL2, macOS, and Hosting use \"local-socket-signer\"; Wallet Standard and Turnkey remain supported. Legacy \"embedded-keystore\" values are migration-only and fail closed.",
223
224
  "wallet.execution.mode": "Wallet send execution mode (\"manual\" queues approvals; \"autonomous\" executes immediately when policy allows).",
224
225
  "wallet.approvalAuth.mode": "Approval auth mode for sensitive wallet actions (\"none\" or \"webauthn\").",
225
226
  "wallet.approvalAuth.challengeTtlSeconds": "Wallet WebAuthn challenge TTL in seconds (default: 300).",
226
227
  "wallet.approvalAuth.grantTtlSeconds": "Wallet approval grant TTL in seconds (default: 120).",
227
- "wallet.keystore.enabled": "Enable embedded encrypted keystore provider for local self-hosted signing.",
228
- "wallet.keystore.path": "Path to encrypted embedded keystore file (defaults under wallet state dir).",
229
- "wallet.keystore.chainSupport": "Enabled chains for embedded keystore. Normal Fased wallet setup is Solana-first.",
230
- "wallet.keystore.autoLockSeconds": "Optional idle auto-lock timeout for embedded keystore.",
228
+ "wallet.keystore.enabled": "Retired legacy field. Embedded keystores are migration-only and fail closed.",
229
+ "wallet.keystore.path": "Retired legacy path retained only so the native signer migration can be performed explicitly.",
230
+ "wallet.keystore.chainSupport": "Retired legacy field; production wallet keys are signer/provider-owned.",
231
+ "wallet.keystore.autoLockSeconds": "Retired legacy embedded-keystore field.",
231
232
  "wallet.runtime.enabled": "Enable wallet runtime compatibility settings (provider-agnostic replacement for legacy wallet runtime config).",
232
233
  "wallet.runtime.mode": "Wallet runtime mode (\"managed\" or \"external\").",
233
234
  "wallet.runtime.runtime": "Wallet runtime source (\"external-docker\" or \"external-custom\").",
@@ -241,8 +242,8 @@ const FIELD_HELP_BASE = {
241
242
  "wallet.runtime.install.enabled": "Whether onboarding/install flows should record wallet runtime install metadata.",
242
243
  "wallet.runtime.install.version": "Installed wallet runtime version recorded by onboarding/install flows.",
243
244
  "wallet.runtime.policy.directSigning": "Allow background/agent wallet execution from wallet tooling (must be paired with caps/allowlists). Manual reviewed sends are separate.",
244
- "wallet.runtime.policy.capsEnabled": "Enable wallet spend cap enforcement. When false, role, custody, signer, allowlist, and audit gates still apply, but SOL/token cap comparisons are skipped.",
245
- "wallet.runtime.policy.solana.allowPrograms": "Optional Solana program allowlist. For Agent market swaps this restricts inspected Jupiter DEX route programs; empty allows inspected routes.",
245
+ "wallet.runtime.policy.capsEnabled": "Enable wallet spend cap enforcement. When false, role, signer policy, allowlist, and audit gates still apply, but SOL/token cap comparisons are skipped.",
246
+ "wallet.runtime.policy.solana.allowPrograms": "Explicit Solana program/token allowlist. Empty denies program and token execution; Agent market swaps also require every inspected Jupiter route program.",
246
247
  "wallet.runtime.policy.solana.tokenCaps": "Per-mint SPL token caps for token sends, token-input swaps, and token-input limit orders. Keys are mint addresses; values are base-unit maxPerTx/maxDaily strings.",
247
248
  "wallet.runtime.policy.solana.maxPerTx": "Maximum Solana value allowed per transaction (base unit string; e.g. lamports).",
248
249
  "wallet.runtime.policy.solana.maxDaily": "Maximum cumulative Solana value allowed per UTC day (base unit string).",
@@ -194,6 +194,7 @@ const FIELD_LABELS_BASE = {
194
194
  "agents.defaults.memorySearch.remote.baseUrl": "Remote Embedding Base URL",
195
195
  "agents.defaults.memorySearch.remote.apiKey": "Remote Embedding API Key",
196
196
  "agents.defaults.memorySearch.remote.headers": "Remote Embedding Headers",
197
+ "agents.defaults.memorySearch.remote.allowSessionContent": "Allow Session Content in Remote Embeddings",
197
198
  "models.providers.*.request.allowPrivateNetwork": "Allow Private Model Network",
198
199
  "agents.defaults.memorySearch.remote.batch.concurrency": "Remote Batch Concurrency",
199
200
  "agents.defaults.memorySearch.model": "Memory Search Model",
@@ -249,10 +250,10 @@ const FIELD_LABELS_BASE = {
249
250
  "wallet.approvalAuth.mode": "Wallet Approval Auth Mode",
250
251
  "wallet.approvalAuth.challengeTtlSeconds": "Wallet Approval Challenge TTL (sec)",
251
252
  "wallet.approvalAuth.grantTtlSeconds": "Wallet Approval Grant TTL (sec)",
252
- "wallet.keystore.enabled": "Embedded Keystore Enabled",
253
- "wallet.keystore.path": "Embedded Keystore Path",
254
- "wallet.keystore.chainSupport": "Embedded Keystore Chains",
255
- "wallet.keystore.autoLockSeconds": "Embedded Keystore Auto Lock (sec)",
253
+ "wallet.keystore.enabled": "Legacy Keystore (Retired)",
254
+ "wallet.keystore.path": "Legacy Keystore Migration Path",
255
+ "wallet.keystore.chainSupport": "Legacy Keystore Chains",
256
+ "wallet.keystore.autoLockSeconds": "Legacy Keystore Auto Lock (Retired)",
256
257
  "wallet.runtime.enabled": "Wallet Runtime Enabled",
257
258
  "wallet.runtime.mode": "Wallet Runtime Mode",
258
259
  "wallet.runtime.runtime": "Wallet Runtime Kind",
@@ -458,6 +458,7 @@ const MemorySearchSchema = z.object({
458
458
  baseUrl: z.string().optional(),
459
459
  apiKey: z.string().optional().register(sensitive),
460
460
  headers: z.record(z.string(), z.string()).optional(),
461
+ allowSessionContent: z.boolean().optional(),
461
462
  batch: z.object({
462
463
  enabled: z.boolean().optional(),
463
464
  wait: z.boolean().optional(),
@@ -522,6 +522,10 @@ const FederationMarketplaceOrderSchema = z.object({
522
522
  sellerSyncError: z.string().optional(),
523
523
  sellerSyncedAt: z.string().optional(),
524
524
  sellerAcceptedAt: z.string().optional(),
525
+ peerNodeId: z.string().optional(),
526
+ peerRemoteOrderId: z.string().optional(),
527
+ peerRequestDigest: z.string().optional(),
528
+ peerDeliveryDigest: z.string().optional(),
525
529
  serviceKind: z.string().optional(),
526
530
  title: z.string().optional(),
527
531
  pricing: FederationOfferPricingSchema,
@@ -555,6 +559,7 @@ const WalletSchema = z.object({
555
559
  z.literal("local-socket-signer"),
556
560
  z.literal("alchemy"),
557
561
  z.literal("turnkey"),
562
+ z.literal("wallet-standard"),
558
563
  z.literal("privy")
559
564
  ]).optional() }).strict().optional(),
560
565
  execution: z.object({ mode: z.union([z.literal("manual"), z.literal("autonomous")]).optional() }).strict().optional(),