@fased/fased 0.1.48 → 0.1.49

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 (330) hide show
  1. package/dist/acp/client.js +2 -2
  2. package/dist/acp/secret-file.js +2 -2
  3. package/dist/agents/agent-scope.js +2 -2
  4. package/dist/agents/apply-patch.js +8 -8
  5. package/dist/agents/auth-health.js +11 -5
  6. package/dist/agents/auth-profiles/paths.js +2 -2
  7. package/dist/agents/auth-profiles/store.js +2 -2
  8. package/dist/agents/bash-tools.shared.js +2 -2
  9. package/dist/agents/cli-credentials.js +4 -4
  10. package/dist/agents/docs-path.js +3 -3
  11. package/dist/agents/embedded-pi-mcp.js +4 -4
  12. package/dist/agents/identity-avatar.js +3 -3
  13. package/dist/agents/identity-file.js +2 -2
  14. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  15. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  16. package/dist/agents/pi-model-discovery.js +6 -6
  17. package/dist/agents/pi-project-settings.js +3 -3
  18. package/dist/agents/sandbox/fs-bridge.js +2 -2
  19. package/dist/agents/session-dirs.js +4 -4
  20. package/dist/agents/session-write-lock.js +13 -13
  21. package/dist/agents/shell-utils.js +5 -5
  22. package/dist/agents/skills/bundled-dir.js +4 -4
  23. package/dist/agents/skills/local-loader.js +6 -6
  24. package/dist/agents/skills/plugin-skills.js +2 -2
  25. package/dist/agents/skills/workspace.js +13 -13
  26. package/dist/agents/skills-install-download.js +7 -7
  27. package/dist/agents/skills-install-plan.js +2 -2
  28. package/dist/agents/skills-install.js +2 -2
  29. package/dist/agents/skills-status.js +2 -2
  30. package/dist/agents/subagent-depth.js +2 -2
  31. package/dist/agents/system-prompt-params.js +2 -2
  32. package/dist/agents/workspace.js +22 -22
  33. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  34. package/dist/auto-reply/reply/agent-runner.js +2 -2
  35. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  36. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  37. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  38. package/dist/auto-reply/reply/session.js +3 -3
  39. package/dist/auto-reply/skill-commands.js +3 -3
  40. package/dist/auto-reply/status.js +6 -6
  41. package/dist/brand.js +1 -1
  42. package/dist/browser/chrome.executables.js +3 -3
  43. package/dist/browser/chrome.js +3 -3
  44. package/dist/browser/chrome.profile-decoration.js +6 -6
  45. package/dist/browser/profiles-service.js +2 -2
  46. package/dist/browser/server-context.js +2 -2
  47. package/dist/browser/trash.js +4 -4
  48. package/dist/build-info.json +3 -3
  49. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  50. package/dist/canvas-host/server.js +4 -4
  51. package/dist/capabilities/catalog.js +3 -3
  52. package/dist/channels/plugins/catalog.js +3 -3
  53. package/dist/cli/browser-cli-extension.js +6 -6
  54. package/dist/cli/command-format.js +2 -2
  55. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  56. package/dist/cli/dns-cli.js +9 -9
  57. package/dist/cli/gateway-cli/dev.js +5 -5
  58. package/dist/cli/gateway-cli/run.js +2 -2
  59. package/dist/cli/hooks-cli.js +5 -5
  60. package/dist/cli/memory-cli.js +7 -7
  61. package/dist/cli/nodes-media-utils.js +2 -2
  62. package/dist/cli/plugins-cli.js +2 -2
  63. package/dist/cli/secrets-cli.js +3 -3
  64. package/dist/cli/windows-argv.js +2 -2
  65. package/dist/commands/dashboard-link.js +3 -3
  66. package/dist/commands/doctor-install.js +5 -5
  67. package/dist/commands/doctor-memory-search.js +2 -2
  68. package/dist/commands/doctor-platform-notes.js +2 -2
  69. package/dist/commands/doctor-sandbox.js +2 -2
  70. package/dist/commands/doctor-state-integrity.js +48 -25
  71. package/dist/commands/doctor-workspace.js +3 -3
  72. package/dist/commands/doctor.js +3 -3
  73. package/dist/commands/managed-up.js +2 -2
  74. package/dist/commands/onboard-auth.credentials.js +3 -3
  75. package/dist/commands/onboarding/plugin-install.js +2 -2
  76. package/dist/commands/sessions-cleanup.js +2 -2
  77. package/dist/commands/signal-install.js +6 -6
  78. package/dist/commands/status-all/channels.js +2 -2
  79. package/dist/commands/wallet.js +47 -47
  80. package/dist/config/cache-utils.js +2 -2
  81. package/dist/config/includes.js +5 -5
  82. package/dist/config/io.js +2 -2
  83. package/dist/config/paths.js +3 -3
  84. package/dist/config/sat-runtime-ids.js +3 -3
  85. package/dist/config/sessions/disk-budget.js +6 -6
  86. package/dist/config/sessions/paths.js +2 -2
  87. package/dist/config/sessions/store.js +17 -17
  88. package/dist/config/sessions/transcript.js +32 -18
  89. package/dist/config/sessions.js +2 -2
  90. package/dist/config/talk.js +2 -2
  91. package/dist/control-ui/assets/{app-CHqTx3P_.js → app-6iCry787.js} +1274 -1259
  92. package/dist/control-ui/assets/{chat-model-ref-BbrdMKjQ.js → chat-model-ref-C6CFR-GR.js} +2 -2
  93. package/dist/control-ui/assets/{config-FFZLTSLS.js → config-CU5Zi8Dh.js} +2 -2
  94. package/dist/control-ui/assets/{index-CFHfNlLv.js → index-CNFgocD9.js} +3 -3
  95. package/dist/control-ui/assets/{mining-D_VAMFMY.js → mining-BdhMn18r.js} +3 -3
  96. package/dist/control-ui/assets/{providers-DqFL6WrJ.js → providers-WTJ1kMKy.js} +14 -3
  97. package/dist/control-ui/index.html +1 -1
  98. package/dist/cron/service/store.js +2 -2
  99. package/dist/cron/store.js +6 -6
  100. package/dist/daemon/systemd-system.js +5 -5
  101. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  102. package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
  103. package/dist/gateway/control-ui-boot-check.js +6 -6
  104. package/dist/gateway/control-ui-login.js +7 -7
  105. package/dist/gateway/control-ui.js +9 -9
  106. package/dist/gateway/hooks-mapping.js +4 -4
  107. package/dist/gateway/protocol/schema/agents-models-skills.js +1 -0
  108. package/dist/gateway/protocol/schema/frames.js +5 -0
  109. package/dist/gateway/protocol/schema/snapshot.js +1 -0
  110. package/dist/gateway/server/ws-connection/message-handler.js +2 -1
  111. package/dist/gateway/server-discovery.js +2 -2
  112. package/dist/gateway/server-http.js +5 -4
  113. package/dist/gateway/server-methods/chat.js +7 -32
  114. package/dist/gateway/server-methods/sessions.js +6 -6
  115. package/dist/gateway/server-methods/usage.js +2 -2
  116. package/dist/gateway/server.impl.js +3 -3
  117. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  118. package/dist/gateway/session-utils.fs.js +24 -24
  119. package/dist/gateway/session-utils.js +6 -6
  120. package/dist/hooks/bundled-dir.js +4 -4
  121. package/dist/hooks/gmail-setup-utils.js +6 -6
  122. package/dist/hooks/import-url.js +2 -2
  123. package/dist/hooks/loader.js +4 -4
  124. package/dist/hooks/workspace.js +7 -7
  125. package/dist/infra/archive.js +17 -17
  126. package/dist/infra/boundary-file-read.js +2 -2
  127. package/dist/infra/boundary-path.js +15 -15
  128. package/dist/infra/brew.js +2 -2
  129. package/dist/infra/control-ui-assets.js +14 -14
  130. package/dist/infra/device-auth-store.js +8 -8
  131. package/dist/infra/device-identity.js +8 -8
  132. package/dist/infra/dotenv.js +2 -2
  133. package/dist/infra/exec-approvals.js +8 -8
  134. package/dist/infra/exec-command-resolution.js +4 -4
  135. package/dist/infra/exec-safe-bin-trust.js +2 -2
  136. package/dist/infra/fased-root.js +5 -5
  137. package/dist/infra/fs-safe.js +14 -14
  138. package/dist/infra/gateway-lock.js +11 -11
  139. package/dist/infra/git-commit.js +5 -5
  140. package/dist/infra/git-root.js +4 -4
  141. package/dist/infra/hosted-runtime-artifact.js +3 -3
  142. package/dist/infra/is-main.js +2 -2
  143. package/dist/infra/json-file.js +7 -7
  144. package/dist/infra/outbound/delivery-queue.js +16 -16
  145. package/dist/infra/path-env.js +3 -3
  146. package/dist/infra/ports-lsof.js +4 -4
  147. package/dist/infra/provider-usage.auth.js +3 -3
  148. package/dist/infra/safe-open-sync.js +2 -2
  149. package/dist/infra/session-cost-usage.js +9 -9
  150. package/dist/infra/shell-env.js +2 -2
  151. package/dist/infra/state-migrations.fs.js +6 -6
  152. package/dist/infra/state-migrations.js +23 -23
  153. package/dist/infra/system-presence.js +4 -2
  154. package/dist/infra/tmp-fased-dir.js +6 -6
  155. package/dist/infra/widearea-dns.js +3 -3
  156. package/dist/infra/wsl.js +2 -2
  157. package/dist/light-update-status.js +1 -1
  158. package/dist/line/accounts.js +2 -2
  159. package/dist/line/download.js +2 -2
  160. package/dist/logging/config.js +3 -3
  161. package/dist/logging/logger.js +7 -7
  162. package/dist/managed/federation.js +3 -3
  163. package/dist/managed/tunnel.js +3 -3
  164. package/dist/media/store.js +13 -13
  165. package/dist/media-understanding/runner.js +3 -3
  166. package/dist/memory/embeddings.js +2 -2
  167. package/dist/memory/internal.js +10 -10
  168. package/dist/memory/inventory.js +19 -0
  169. package/dist/memory/manager-sync-ops.js +7 -7
  170. package/dist/memory/repair-executor.js +17 -17
  171. package/dist/node-host/invoke-system-run-plan.js +8 -8
  172. package/dist/node-host/invoke.js +2 -2
  173. package/dist/node-host/runner.js +3 -3
  174. package/dist/pairing/pairing-store.js +3 -3
  175. package/dist/plugin-sdk/{accounts-DI5226U8.js → accounts-B5fY9hZy.js} +1 -1
  176. package/dist/plugin-sdk/{actions-CEj4gOU2.js → actions-D-9SsSEy.js} +2 -2
  177. package/dist/plugin-sdk/{active-listener-Ss4UKXZb.js → active-listener-BH7rDR47.js} +1 -1
  178. package/dist/plugin-sdk/{audio-preflight-Cu4alGjb.js → audio-preflight-4faayz5S.js} +26 -26
  179. package/dist/plugin-sdk/{audit-BTskqjJ_.js → audit-BQfsboqd.js} +1 -1
  180. package/dist/plugin-sdk/{channel-access-B1KciKmw.js → channel-access-CDZ-cJPq.js} +1 -1
  181. package/dist/plugin-sdk/{channel-access-configure-Y91FLOJc.js → channel-access-configure-DlpuhlH6.js} +1 -1
  182. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  183. package/dist/plugin-sdk/{chunk-CSUjIQSx.js → chunk-CZuCyS7k.js} +1 -1
  184. package/dist/plugin-sdk/{chunk-items-Q8HhMuSe.js → chunk-items-Cyc4Kl6A.js} +1 -1
  185. package/dist/plugin-sdk/command-status.js +26 -26
  186. package/dist/plugin-sdk/{commands-registry-DJ0pfCcY.js → commands-registry-COIbIjGO.js} +2 -2
  187. package/dist/plugin-sdk/{common-Cjm8psuW.js → common-LMHJe8KW.js} +1 -1
  188. package/dist/plugin-sdk/{config-DutIeFge.js → config-ZMbTT0kM.js} +1 -1
  189. package/dist/plugin-sdk/{config-schema-Cg6PYSHR.js → config-schema-Cku0a8Tm.js} +75 -60
  190. package/dist/plugin-sdk/discord.d.ts +1 -1
  191. package/dist/plugin-sdk/discord.js +19 -19
  192. package/dist/plugin-sdk/{handle-action-Dp2741iu.js → handle-action-C8ZZfORB.js} +13 -13
  193. package/dist/plugin-sdk/{helpers-BCZ9d3fl.js → helpers-vfzH9tBn.js} +1 -1
  194. package/dist/plugin-sdk/{image-ops-B-QR_M9Z.js → image-ops-BnOmQA5d.js} +1 -1
  195. package/dist/plugin-sdk/index.d.ts +13 -13
  196. package/dist/plugin-sdk/index.js +28 -28
  197. package/dist/plugin-sdk/json-store.js +6 -6
  198. package/dist/plugin-sdk/{login-BFvQxf9o.js → login-C73Wpiw8.js} +3 -3
  199. package/dist/plugin-sdk/{login-qr-CERTe_nD.js → login-qr-CRKHA7i8.js} +3 -3
  200. package/dist/plugin-sdk/{manager-Dhq3SXpO.js → manager-CHYhpKHn.js} +2 -2
  201. package/dist/plugin-sdk/{markdown-tables-B1Tx7c77.js → markdown-tables-B84dPWNG.js} +1 -1
  202. package/dist/plugin-sdk/{media-BwsqooWC.js → media-4daDcNER.js} +2 -2
  203. package/dist/plugin-sdk/{monitor-CJiacqtR.js → monitor-CChc6bQV.js} +30 -30
  204. package/dist/plugin-sdk/{monitor-BYzN5Qr4.js → monitor-DJhU-J5u.js} +31 -31
  205. package/dist/plugin-sdk/{openresponses-http-VLSSqCZZ.js → openresponses-http-Dvyczr35.js} +26 -26
  206. package/dist/plugin-sdk/{optional-runtime-dependency-BEBP4VFJ.js → optional-runtime-dependency-BFpqaCzp.js} +1 -1
  207. package/dist/plugin-sdk/{outbound-BqWgaC5M.js → outbound-C1xBxfNb.js} +6 -6
  208. package/dist/plugin-sdk/{outbound-attachment-L1q40kiu.js → outbound-attachment-DvcxPP7b.js} +2 -2
  209. package/dist/plugin-sdk/{pairing-message-CZBahREg.js → pairing-message-DpYT614h.js} +1 -1
  210. package/dist/plugin-sdk/{pairing-store-D7I1Qmiw.js → pairing-store-CprpGco9.js} +2 -2
  211. package/dist/plugin-sdk/{pi-model-discovery-C5klknQZ.js → pi-model-discovery-BQ6fFRBA.js} +1 -1
  212. package/dist/plugin-sdk/{pi-model-discovery-runtime-DIEMhCZ5.js → pi-model-discovery-runtime-BF_89lVj.js} +2 -2
  213. package/dist/plugin-sdk/{pw-ai-Bv-q25gY.js → pw-ai-xgpIbHOr.js} +3 -3
  214. package/dist/plugin-sdk/{replies-Bd9ktEkq.js → replies-AzJ6U6Ut.js} +2 -2
  215. package/dist/plugin-sdk/{resolve-outbound-target-CCIyBb5H.js → resolve-outbound-target-COo_TR7B.js} +1 -1
  216. package/dist/plugin-sdk/{resolve-route-B7vZ3nKp.js → resolve-route-CZFzHOIe.js} +1 -1
  217. package/dist/plugin-sdk/{retry-policy-ChC3G4lv.js → retry-policy-BSdqqXsI.js} +1 -1
  218. package/dist/plugin-sdk/{runtime-BLknHFGz.js → runtime-CeoGffDi.js} +31 -18
  219. package/dist/plugin-sdk/{runtime-dependency-C5rJfC0u.js → runtime-dependency-Cvbs0GXf.js} +2 -2
  220. package/dist/plugin-sdk/sat-runtime.js +5 -5
  221. package/dist/plugin-sdk/{send-Bd3Z-jAd.js → send-B_-UtG9F.js} +6 -6
  222. package/dist/plugin-sdk/{send-Bmtz9ICm.js → send-C0Q1u7N1.js} +8 -8
  223. package/dist/plugin-sdk/{send-mkyZzhCO.js → send-CGE7OgsA.js} +5 -5
  224. package/dist/plugin-sdk/{send-CUGEhiUa.js → send-DCxAv7bV.js} +6 -6
  225. package/dist/plugin-sdk/{send-CMoWt-EX.js → send-DVpCBUuL.js} +7 -7
  226. package/dist/plugin-sdk/{session-D2zmelOL.js → session-ETYBbhLn.js} +2 -2
  227. package/dist/plugin-sdk/{skill-commands-BybEjJ1_.js → skill-commands-BQL6TBIv.js} +2 -2
  228. package/dist/plugin-sdk/{slack-DogXvGG3.js → slack-Bs_4uivd.js} +38 -38
  229. package/dist/plugin-sdk/{slack-actions-uXb55QWW.js → slack-actions-CBPZkfTS.js} +11 -11
  230. package/dist/plugin-sdk/slack.d.ts +1 -1
  231. package/dist/plugin-sdk/slack.js +9 -9
  232. package/dist/plugin-sdk/{sticker-cache-BuPw7fTf.js → sticker-cache-BBZMp-oQ.js} +3 -3
  233. package/dist/plugin-sdk/{tables-CVDOT5dX.js → tables-B-G7Bb0l.js} +1 -1
  234. package/dist/plugin-sdk/{targets-DskkhJAp.js → targets-D8UaoWHd.js} +1 -1
  235. package/dist/plugin-sdk/{telegram-actions-_KQPbjpI.js → telegram-actions-BARLx9zc.js} +29 -29
  236. package/dist/plugin-sdk/telegram.d.ts +1 -1
  237. package/dist/plugin-sdk/telegram.js +8 -8
  238. package/dist/plugin-sdk/{thread-bindings.lifecycle-CrhQXYEU.js → thread-bindings.lifecycle-DwYKCLLq.js} +3 -3
  239. package/dist/plugin-sdk/{thread-bindings.state-ssxdG7xV.js → thread-bindings.state-BNWfHA0f.js} +2 -2
  240. package/dist/plugin-sdk/{wallet-status-CQI89c_6.js → wallet-status-Coekn_SJ.js} +10 -3
  241. package/dist/plugin-sdk/{web-C8DwA0eO.js → web-BwolzGVF.js} +31 -31
  242. package/dist/plugin-sdk/{whatsapp-actions-DfvM-mlZ.js → whatsapp-actions-CSvf6eev.js} +13 -13
  243. package/dist/plugin-sdk/{whatsapp-heartbeat-DyJasLDB.js → whatsapp-heartbeat-Bw7OtTe6.js} +2 -2
  244. package/dist/plugin-sdk/whatsapp.d.ts +10 -10
  245. package/dist/plugin-sdk/whatsapp.js +12 -12
  246. package/dist/plugin-sdk/{wsl-JwmI6Zu8.js → wsl-By1Mc-oS.js} +3 -3
  247. package/dist/plugin-sdk/{zod-schema.providers-core-BE_5DNhj.d.ts → zod-schema.providers-core-TI6sL-6B.d.ts} +82 -82
  248. package/dist/plugins/bundled-dir.js +3 -3
  249. package/dist/plugins/discovery.js +11 -11
  250. package/dist/plugins/loader.js +13 -13
  251. package/dist/plugins/manifest-registry.js +2 -2
  252. package/dist/plugins/manifest.js +4 -4
  253. package/dist/plugins/path-safety.js +3 -3
  254. package/dist/plugins/status-cache.js +9 -9
  255. package/dist/plugins/update.js +3 -3
  256. package/dist/plugins/web-search-install-catalog.js +3 -3
  257. package/dist/providers/registry.js +1 -1
  258. package/dist/secrets/apply.js +16 -16
  259. package/dist/secrets/audit.js +11 -11
  260. package/dist/secrets/shared.js +9 -9
  261. package/dist/security/scan-paths.js +2 -2
  262. package/dist/shared/config-eval.js +2 -2
  263. package/dist/shared/pid-alive.js +2 -2
  264. package/dist/tasks/standing-orders.js +5 -5
  265. package/dist/tasks/task-flow-registry.js +5 -5
  266. package/dist/tasks/task-registry.js +5 -5
  267. package/dist/tasks/workflow-definitions.js +6 -6
  268. package/dist/telegram/token.js +5 -5
  269. package/dist/utils.js +5 -5
  270. package/dist/version.js +11 -1
  271. package/dist/wallet/local-socket-signer-broker.js +16 -16
  272. package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
  273. package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
  274. package/dist/wallet/wallet-approval-auth.js +5 -5
  275. package/dist/wallet/wallet-audit-log.js +5 -5
  276. package/dist/wallet/wallet-custody.js +21 -21
  277. package/dist/wallet/wallet-inbound-events.js +5 -5
  278. package/dist/wallet/wallet-observability.js +5 -5
  279. package/dist/wallet/wallet-policy.js +9 -9
  280. package/dist/wallet/wallet-provider-registry.js +7 -7
  281. package/dist/wallet/wallet-runtime-config.js +3 -3
  282. package/dist/wallet/wallet-secrets-store.js +22 -22
  283. package/dist/wallet/wallet-send-approvals.js +5 -5
  284. package/dist/wallet/wallet-settlement-links.js +5 -5
  285. package/dist/web/accounts.js +3 -3
  286. package/dist/web/auth-store.js +18 -18
  287. package/dist/web/session.js +4 -4
  288. package/dist/wizard/host-security-capability.js +2 -2
  289. package/dist/wizard/onboarding.host-security.js +7 -7
  290. package/dist/wizard/onboarding.js +7 -7
  291. package/dist/wizard/onboarding.wallet.js +44 -44
  292. package/extensions/acpx/package.json +1 -1
  293. package/extensions/bluebubbles/package.json +1 -1
  294. package/extensions/copilot-proxy/package.json +1 -1
  295. package/extensions/diagnostics-otel/package.json +1 -1
  296. package/extensions/fased-federation/package.json +1 -1
  297. package/extensions/google-gemini-cli-auth/package.json +1 -1
  298. package/extensions/imessage/package.json +1 -1
  299. package/extensions/irc/package.json +1 -1
  300. package/extensions/line/package.json +1 -1
  301. package/extensions/llm-task/package.json +1 -1
  302. package/extensions/lobster/package.json +1 -1
  303. package/extensions/matrix/CHANGELOG.md +6 -0
  304. package/extensions/matrix/package.json +1 -1
  305. package/extensions/mattermost/package.json +1 -1
  306. package/extensions/memory-core/package.json +2 -2
  307. package/extensions/memory-lancedb/package.json +1 -1
  308. package/extensions/minimax-portal-auth/package.json +1 -1
  309. package/extensions/msteams/CHANGELOG.md +6 -0
  310. package/extensions/msteams/package.json +1 -1
  311. package/extensions/nextcloud-talk/package.json +1 -1
  312. package/extensions/nostr/CHANGELOG.md +6 -0
  313. package/extensions/nostr/package.json +1 -1
  314. package/extensions/open-prose/package.json +1 -1
  315. package/extensions/sat-mining/index.ts +121 -12
  316. package/extensions/sat-mining/package.json +1 -1
  317. package/extensions/sat-mining/src/runtime.ts +9 -3
  318. package/extensions/signal/package.json +1 -1
  319. package/extensions/synology-chat/package.json +1 -1
  320. package/extensions/tlon/package.json +1 -1
  321. package/extensions/twitch/CHANGELOG.md +6 -0
  322. package/extensions/twitch/package.json +1 -1
  323. package/extensions/voice-call/CHANGELOG.md +6 -0
  324. package/extensions/voice-call/package.json +1 -1
  325. package/extensions/zalo/CHANGELOG.md +6 -0
  326. package/extensions/zalo/package.json +1 -1
  327. package/extensions/zalouser/CHANGELOG.md +6 -0
  328. package/extensions/zalouser/package.json +1 -1
  329. package/package.json +1 -1
  330. package/scripts/start-managed.sh +21 -1
@@ -784,6 +784,17 @@ const satMiningPlugin = {
784
784
  const walletId = readWalletProviderRegistry(effectiveEnv).defaultWalletId?.trim();
785
785
  return walletId ? walletId : undefined;
786
786
  };
787
+ const readRegisteredWalletRole = (walletId: string | undefined) => {
788
+ const resolvedWalletId = walletId?.trim();
789
+ if (!resolvedWalletId) {
790
+ return undefined;
791
+ }
792
+ const { effectiveEnv } = resolveWalletRuntimeContext();
793
+ const wallet = readWalletProviderRegistry(effectiveEnv).wallets.find(
794
+ (entry) => entry.id === resolvedWalletId,
795
+ );
796
+ return wallet ? resolveWalletUserRole(wallet) : undefined;
797
+ };
787
798
  const resolveMiningWalletSelection = async (opts?: {
788
799
  walletId?: string;
789
800
  requireResolvedWallet?: boolean;
@@ -807,9 +818,46 @@ const satMiningPlugin = {
807
818
  return { wallets: wallet ? [wallet] : [], wallet, selectedWalletId };
808
819
  };
809
820
  const ensureStartupWalletBinding = async (opts?: { requireResolvedWallet?: boolean }) => {
810
- const selection = await resolveMiningWalletSelection({
811
- requireResolvedWallet: opts?.requireResolvedWallet,
812
- });
821
+ let selection: Awaited<ReturnType<typeof resolveMiningWalletSelection>>;
822
+ try {
823
+ selection = await resolveMiningWalletSelection({
824
+ requireResolvedWallet: opts?.requireResolvedWallet,
825
+ });
826
+ } catch (error) {
827
+ const configuredWalletId = resolveConfiguredWalletId();
828
+ if (!configuredWalletId) {
829
+ throw error;
830
+ }
831
+ const configuredWalletRole = readRegisteredWalletRole(configuredWalletId);
832
+ if (!configuredWalletRole || configuredWalletRole === "mining") {
833
+ throw error;
834
+ }
835
+ const miningWallets = await listMiningWallets();
836
+ if (miningWallets.length === 1) {
837
+ await attachWallet(miningWallets[0]!.walletId);
838
+ api.logger.warn(
839
+ `[sat-mining] migrated invalid miner profile wallet ${configuredWalletId} to ${miningWallets[0]!.walletId}`,
840
+ );
841
+ selection = await resolveMiningWalletSelection({
842
+ requireResolvedWallet: opts?.requireResolvedWallet,
843
+ });
844
+ } else {
845
+ state.activeConfig.walletId = undefined;
846
+ state.activeConfig.enabled = false;
847
+ state.activeWalletAddress = null;
848
+ state.running = false;
849
+ await stopSatWorkerServices();
850
+ await persistActiveConfig({ includeEnabled: true });
851
+ if (opts?.requireResolvedWallet) {
852
+ throw new Error(
853
+ miningWallets.length === 0
854
+ ? "the saved mining profile referenced an invalid wallet and no dedicated Mining wallet exists; create or import @wallet:mining first"
855
+ : "the saved mining profile referenced an invalid wallet; select the dedicated Mining wallet before starting",
856
+ );
857
+ }
858
+ selection = { wallets: [], wallet: undefined, selectedWalletId: undefined };
859
+ }
860
+ }
813
861
  state.activeWalletAddress = selection.wallet?.address ?? null;
814
862
  await ensureSatCapitalActionSignerReady();
815
863
  return selection;
@@ -3288,8 +3336,20 @@ const satMiningPlugin = {
3288
3336
  options?: { syncActiveCommit?: boolean; freezeCommitMs?: number },
3289
3337
  ) => {
3290
3338
  const previousWalletId = resolveConfiguredWalletId();
3291
- state.activeConfig.walletId =
3339
+ const requestedWalletId =
3292
3340
  typeof profile.walletId === "string" ? profile.walletId.trim() || undefined : undefined;
3341
+ if (requestedWalletId) {
3342
+ const requestedWalletRole = readRegisteredWalletRole(requestedWalletId);
3343
+ if (!requestedWalletRole) {
3344
+ throw new Error(`walletId not found: ${requestedWalletId}`);
3345
+ }
3346
+ if (requestedWalletRole !== "mining") {
3347
+ throw new Error(
3348
+ `walletId ${requestedWalletId} is not the dedicated Mining wallet; create or import @wallet:mining and use that wallet for SAT mining`,
3349
+ );
3350
+ }
3351
+ }
3352
+ state.activeConfig.walletId = requestedWalletId;
3293
3353
  state.activeConfig.role =
3294
3354
  profile.role === "validator" || profile.role === "admin" || profile.role === "miner"
3295
3355
  ? profile.role
@@ -3522,9 +3582,14 @@ const satMiningPlugin = {
3522
3582
  );
3523
3583
  }
3524
3584
  if (options?.syncActiveCommit !== false && state.activeWalletAddress) {
3525
- await submitSatSetActiveCommit(state.activeConfig, {
3526
- lamports: state.activeConfig.commitLamports ?? 250_000_000,
3527
- }).catch(() => {});
3585
+ try {
3586
+ await submitSatSetActiveCommit(state.activeConfig, {
3587
+ lamports: state.activeConfig.commitLamports ?? 250_000_000,
3588
+ });
3589
+ } catch (error) {
3590
+ const detail = error instanceof Error ? error.message : String(error);
3591
+ throw new Error(`mining profile saved, but active commit was not confirmed: ${detail}`);
3592
+ }
3528
3593
  }
3529
3594
  return readProfile();
3530
3595
  };
@@ -5830,6 +5895,40 @@ const satMiningPlugin = {
5830
5895
  updatedAt: source.updatedAt,
5831
5896
  };
5832
5897
  };
5898
+ const uiMiningStatusPayload = (status: unknown) => {
5899
+ const source =
5900
+ status && typeof status === "object" && !Array.isArray(status)
5901
+ ? (status as Record<string, unknown>)
5902
+ : {};
5903
+ const {
5904
+ recentPlannerOutcomes: _recentPlannerOutcomes,
5905
+ plannerRegimeBuckets: _plannerRegimeBuckets,
5906
+ plannerTimeWindowStats: _plannerTimeWindowStats,
5907
+ deterministicBaseline: _deterministicBaseline,
5908
+ plannerPolicyContexts: _plannerPolicyContexts,
5909
+ plannerCapitalTierStats: _plannerCapitalTierStats,
5910
+ plannerLiveValidation: _plannerLiveValidation,
5911
+ recentCycleFeeBuckets: _recentCycleFeeBuckets,
5912
+ ...rest
5913
+ } = source;
5914
+ const settledHistory = Array.isArray(source.settledHistory) ? source.settledHistory : [];
5915
+ const recentActions = Array.isArray(source.recentActions) ? source.recentActions : [];
5916
+ const archivedFailures = Array.isArray(source.archivedFailures)
5917
+ ? source.archivedFailures
5918
+ : [];
5919
+ return {
5920
+ ...rest,
5921
+ mode: "ui",
5922
+ recentActions: recentActions.slice(0, 30),
5923
+ archivedFailures: archivedFailures.slice(0, 20),
5924
+ settledHistory: settledHistory.slice(0, 12),
5925
+ historyPage: {
5926
+ settledTotal: settledHistory.length,
5927
+ settledReturned: Math.min(settledHistory.length, 12),
5928
+ fullHistoryMethod: "sat.getMiningHistory",
5929
+ },
5930
+ };
5931
+ };
5833
5932
  const resolveMiningAuthorityOrThrow = async () => {
5834
5933
  const { wallet } = await ensureStartupWalletBinding({ requireResolvedWallet: true });
5835
5934
  const authority = wallet?.address?.trim();
@@ -7712,9 +7811,15 @@ const satMiningPlugin = {
7712
7811
  ? getMiningStatusResponsive({ forceFresh })
7713
7812
  : getMiningStatus({ includeTxReceipts: false, forceFresh })),
7714
7813
  )
7715
- : await (effectiveResponsive
7716
- ? getMiningStatusResponsive({ forceFresh })
7717
- : getMiningStatus({ includeTxReceipts, forceFresh })),
7814
+ : statusMode === "ui"
7815
+ ? uiMiningStatusPayload(
7816
+ await (effectiveResponsive
7817
+ ? getMiningStatusResponsive({ forceFresh })
7818
+ : getMiningStatus({ includeTxReceipts, forceFresh })),
7819
+ )
7820
+ : await (effectiveResponsive
7821
+ ? getMiningStatusResponsive({ forceFresh })
7822
+ : getMiningStatus({ includeTxReceipts, forceFresh })),
7718
7823
  ),
7719
7824
  );
7720
7825
  } catch (error) {
@@ -7988,8 +8093,12 @@ const satMiningPlugin = {
7988
8093
  typeof (params as { walletId?: string })?.walletId === "string"
7989
8094
  ? String((params as { walletId?: string }).walletId).trim()
7990
8095
  : undefined;
7991
- if (walletId && walletId !== resolveConfiguredWalletId()) {
7992
- await attachWallet(walletId);
8096
+ if (walletId) {
8097
+ if (walletId !== resolveConfiguredWalletId()) {
8098
+ await attachWallet(walletId);
8099
+ } else {
8100
+ await resolveMiningWalletSelection({ walletId, requireResolvedWallet: true });
8101
+ }
7993
8102
  }
7994
8103
  const { wallet: activeWallet } = await ensureStartupWalletBinding({
7995
8104
  requireResolvedWallet: true,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/sat-mining",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "private": true,
5
5
  "description": "SAT mining plugin scaffold for FasedAgent",
6
6
  "type": "module",
@@ -212,6 +212,9 @@ export type SatMiningRuntimeState = {
212
212
 
213
213
  const SAT_RATE_LIMIT_BASE_DELAY_MS = 60_000;
214
214
  const SAT_RATE_LIMIT_MAX_DELAY_MS = 5 * 60_000;
215
+ const SAT_RATE_LIMIT_CIRCUIT_BREAKER_DELAY_MS = 15 * 60_000;
216
+ const SAT_RATE_LIMIT_CIRCUIT_BREAKER_RETRY_COUNT = 8;
217
+ const SAT_RETRY_COUNT_MAX = 1_000;
215
218
  const SAT_CHAIN_TIME_FRESH_MS = 15_000;
216
219
  const SAT_CHAIN_TIME_STALE_MS = 60_000;
217
220
  const SAT_CLAIM_BATCH_DEFAULT_CYCLES = 5;
@@ -351,7 +354,7 @@ export function markWorkerFailure(
351
354
  ) {
352
355
  const entry = state.workers[worker];
353
356
  entry.running = false;
354
- entry.retryCount += 1;
357
+ entry.retryCount = Math.min(SAT_RETRY_COUNT_MAX, entry.retryCount + 1);
355
358
  entry.lastFailureAt = new Date().toISOString();
356
359
  entry.lastError = error instanceof Error ? error.message : String(error);
357
360
  entry.lastDetail = detail ?? entry.lastDetail;
@@ -442,6 +445,9 @@ export function isSatRateLimitedError(error: unknown): boolean {
442
445
 
443
446
  export function satRateLimitBackoffMs(retryCount: number): number {
444
447
  const normalizedRetryCount = Math.max(1, Math.floor(retryCount));
448
+ if (normalizedRetryCount >= SAT_RATE_LIMIT_CIRCUIT_BREAKER_RETRY_COUNT) {
449
+ return SAT_RATE_LIMIT_CIRCUIT_BREAKER_DELAY_MS;
450
+ }
445
451
  return Math.min(
446
452
  SAT_RATE_LIMIT_MAX_DELAY_MS,
447
453
  SAT_RATE_LIMIT_BASE_DELAY_MS * 2 ** Math.max(0, normalizedRetryCount - 1),
@@ -503,7 +509,7 @@ export function upsertSatClaimBacklogEntry(
503
509
  stage: patch.stage ?? existing?.stage ?? "pending",
504
510
  retryCount:
505
511
  typeof patch.retryCount === "number" && Number.isFinite(patch.retryCount)
506
- ? Math.max(0, Math.floor(patch.retryCount))
512
+ ? Math.min(SAT_RETRY_COUNT_MAX, Math.max(0, Math.floor(patch.retryCount)))
507
513
  : (existing?.retryCount ?? 0),
508
514
  firstSeenAt: existing?.firstSeenAt ?? now,
509
515
  lastUpdatedAt: patch.lastUpdatedAt ?? now,
@@ -567,7 +573,7 @@ export function markSatClaimBacklogFailure(
567
573
  const existing = state.claimBacklog.get(cycleId);
568
574
  upsertSatClaimBacklogEntry(state, cycleId, {
569
575
  stage: "failed",
570
- retryCount: (existing?.retryCount ?? 0) + 1,
576
+ retryCount: Math.min(SAT_RETRY_COUNT_MAX, (existing?.retryCount ?? 0) + 1),
571
577
  lastError: message,
572
578
  reason: "claim batch failed; retry will keep the same oldest cycles first",
573
579
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/signal",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "private": true,
5
5
  "description": "FasedAgent Signal channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/synology-chat",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "Synology Chat channel plugin for FasedAgent",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/tlon",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "FasedAgent Tlon/Urbit channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.49
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.48
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/twitch",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "FasedAgent Twitch channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.49
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.48
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/voice-call",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "FasedAgent voice-call plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.49
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.48
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/zalo",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "FasedAgent Zalo channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.49
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.48
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/zalouser",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "FasedAgent Zalo Personal Account plugin via zca-cli",
5
5
  "type": "module",
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/fased",
3
- "version": "0.1.48",
3
+ "version": "0.1.49",
4
4
  "description": "Fased Agent self-hosted AI gateway with channels, tools, plugins, and operator modules",
5
5
  "keywords": [
6
6
  "ai-agent",
@@ -14,8 +14,19 @@ runtime_root_has_build() {
14
14
 
15
15
  resolve_managed_runtime_root() {
16
16
  local root
17
+ if runtime_root_has_build "${FASED_MANAGED_RUNTIME_ROOT:-}"; then
18
+ printf '%s\n' "$FASED_MANAGED_RUNTIME_ROOT"
19
+ return 0
20
+ fi
21
+
22
+ # A service script owned by a source checkout must run that checkout. This
23
+ # prevents an old managed package cache from silently replacing current code.
24
+ if [[ -d "$FASED_ROOT/.git" ]] && runtime_root_has_build "$FASED_ROOT"; then
25
+ printf '%s\n' "$FASED_ROOT"
26
+ return 0
27
+ fi
28
+
17
29
  for root in \
18
- "${FASED_MANAGED_RUNTIME_ROOT:-}" \
19
30
  "$HOME/.fased/install-cache/npm-global/lib/node_modules/@fased/fased" \
20
31
  "$FASED_ROOT"; do
21
32
  if runtime_root_has_build "$root"; then
@@ -28,6 +39,15 @@ resolve_managed_runtime_root() {
28
39
 
29
40
  FASED_RUNTIME_ROOT="$(resolve_managed_runtime_root)"
30
41
  RUN_NODE_SCRIPT="$FASED_RUNTIME_ROOT/scripts/run-node.mjs"
42
+ if [[ -z "${FASED_RUNTIME_SOURCE:-}" ]]; then
43
+ if [[ "$FASED_RUNTIME_ROOT" == "$FASED_ROOT" && -d "$FASED_ROOT/.git" ]]; then
44
+ export FASED_RUNTIME_SOURCE="source-checkout"
45
+ elif [[ "$FASED_RUNTIME_ROOT" == *"/node_modules/@fased/fased" ]]; then
46
+ export FASED_RUNTIME_SOURCE="managed-package"
47
+ else
48
+ export FASED_RUNTIME_SOURCE="packaged-runtime"
49
+ fi
50
+ fi
31
51
 
32
52
  node_runtime_ok_for() {
33
53
  local node_bin="$1"