@fased/fased 0.1.65 → 0.1.66

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 (893) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +0 -0
  3. package/assets/avatar-placeholder.svg +0 -0
  4. package/assets/chrome-extension/README.md +0 -0
  5. package/assets/chrome-extension/background-utils.js +0 -0
  6. package/assets/chrome-extension/background.js +0 -0
  7. package/assets/chrome-extension/icons/icon128.png +0 -0
  8. package/assets/chrome-extension/icons/icon16.png +0 -0
  9. package/assets/chrome-extension/icons/icon32.png +0 -0
  10. package/assets/chrome-extension/icons/icon48.png +0 -0
  11. package/assets/chrome-extension/manifest.json +0 -0
  12. package/assets/chrome-extension/options-validation.js +0 -0
  13. package/assets/chrome-extension/options.html +0 -0
  14. package/assets/chrome-extension/options.js +0 -0
  15. package/config/official-external-plugin-catalog.json +0 -0
  16. package/config/sat-runtime.env +0 -0
  17. package/dist/acp/client.js +2 -2
  18. package/dist/acp/secret-file.js +2 -2
  19. package/dist/agents/agent-scope.js +2 -2
  20. package/dist/agents/apply-patch.js +8 -8
  21. package/dist/agents/auth-profiles/paths.js +2 -2
  22. package/dist/agents/auth-profiles/store.js +4 -4
  23. package/dist/agents/bash-tools.shared.js +2 -2
  24. package/dist/agents/cli-credentials.js +4 -4
  25. package/dist/agents/docs-path.js +3 -3
  26. package/dist/agents/embedded-pi-mcp.js +4 -4
  27. package/dist/agents/identity-avatar.js +3 -3
  28. package/dist/agents/identity-file.js +2 -2
  29. package/dist/agents/openai-codex-app-server.js +5 -5
  30. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  31. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  32. package/dist/agents/pi-model-discovery.js +6 -6
  33. package/dist/agents/pi-project-settings.js +3 -3
  34. package/dist/agents/sandbox/fs-bridge.js +2 -2
  35. package/dist/agents/session-dirs.js +4 -4
  36. package/dist/agents/session-write-lock.js +13 -13
  37. package/dist/agents/shell-utils.js +5 -5
  38. package/dist/agents/skills/bundled-dir.js +4 -4
  39. package/dist/agents/skills/local-loader.js +6 -6
  40. package/dist/agents/skills/plugin-skills.js +2 -2
  41. package/dist/agents/skills/trust.js +6 -6
  42. package/dist/agents/skills/workspace.js +22 -22
  43. package/dist/agents/skills-install-download.js +7 -7
  44. package/dist/agents/skills-install-plan.js +2 -2
  45. package/dist/agents/skills-install.js +2 -2
  46. package/dist/agents/skills-status.js +2 -2
  47. package/dist/agents/subagent-depth.js +2 -2
  48. package/dist/agents/system-prompt-params.js +2 -2
  49. package/dist/agents/workspace.js +22 -22
  50. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  51. package/dist/auto-reply/reply/agent-runner.js +2 -2
  52. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  53. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  54. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  55. package/dist/auto-reply/reply/session.js +3 -3
  56. package/dist/auto-reply/skill-commands.js +3 -3
  57. package/dist/auto-reply/status.js +6 -6
  58. package/dist/brand.js +1 -1
  59. package/dist/browser/chrome.executables.js +3 -3
  60. package/dist/browser/chrome.js +3 -3
  61. package/dist/browser/chrome.profile-decoration.js +6 -6
  62. package/dist/browser/profiles-service.js +2 -2
  63. package/dist/browser/server-context.js +2 -2
  64. package/dist/browser/trash.js +4 -4
  65. package/dist/build-info.json +3 -3
  66. package/dist/bundled/boot-md/HOOK.md +0 -0
  67. package/dist/bundled/bootstrap-extra-files/HOOK.md +0 -0
  68. package/dist/bundled/command-logger/HOOK.md +0 -0
  69. package/dist/bundled/session-memory/HOOK.md +0 -0
  70. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  71. package/dist/canvas-host/a2ui/index.html +0 -0
  72. package/dist/canvas-host/server.js +4 -4
  73. package/dist/capabilities/catalog.js +3 -3
  74. package/dist/channels/plugins/catalog.js +3 -3
  75. package/dist/cli/browser-cli-extension.js +6 -6
  76. package/dist/cli/command-format.js +2 -2
  77. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  78. package/dist/cli/dns-cli.js +9 -9
  79. package/dist/cli/gateway-cli/dev.js +5 -5
  80. package/dist/cli/gateway-cli/run.js +2 -2
  81. package/dist/cli/hooks-cli.js +5 -5
  82. package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
  83. package/dist/cli/memory-cli.js +7 -7
  84. package/dist/cli/nodes-media-utils.js +2 -2
  85. package/dist/cli/plugins-cli.js +2 -2
  86. package/dist/cli/secrets-cli.js +3 -3
  87. package/dist/cli/windows-argv.js +2 -2
  88. package/dist/commands/dashboard-link.js +3 -3
  89. package/dist/commands/doctor-install.js +5 -5
  90. package/dist/commands/doctor-memory-search.js +2 -2
  91. package/dist/commands/doctor-platform-notes.js +2 -2
  92. package/dist/commands/doctor-sandbox.js +2 -2
  93. package/dist/commands/doctor-state-integrity.js +23 -23
  94. package/dist/commands/doctor-workspace.js +3 -3
  95. package/dist/commands/doctor.js +3 -3
  96. package/dist/commands/managed-up.js +2 -2
  97. package/dist/commands/onboard-auth.credentials.js +3 -3
  98. package/dist/commands/onboarding/plugin-install.js +2 -2
  99. package/dist/commands/sessions-cleanup.js +2 -2
  100. package/dist/commands/signal-install.js +6 -6
  101. package/dist/commands/status-all/channels.js +2 -2
  102. package/dist/commands/wallet.js +10 -10
  103. package/dist/config/cache-utils.js +2 -2
  104. package/dist/config/includes.js +5 -5
  105. package/dist/config/io.js +2 -2
  106. package/dist/config/paths.js +3 -3
  107. package/dist/config/sat-runtime-ids.js +3 -3
  108. package/dist/config/sessions/disk-budget.js +6 -6
  109. package/dist/config/sessions/paths.js +2 -2
  110. package/dist/config/sessions/store.js +17 -17
  111. package/dist/config/sessions/transcript.js +4 -4
  112. package/dist/config/talk.js +2 -2
  113. package/dist/control-ui/apple-touch-icon.png +0 -0
  114. package/dist/control-ui/assets/{app-MaQnPa5G.js → app-DYxADzeH.js} +5 -5
  115. package/dist/control-ui/assets/{index-D4YMr1fA.js → index-vw_10Zeo.js} +3 -3
  116. package/dist/control-ui/assets/{mining-qMYs4aD-.js → mining-Dg-3ll0F.js} +70 -70
  117. package/dist/control-ui/boot-watchdog.js +0 -0
  118. package/dist/control-ui/fased-logo.svg +0 -0
  119. package/dist/control-ui/favicon-32.png +0 -0
  120. package/dist/control-ui/favicon.ico +0 -0
  121. package/dist/control-ui/favicon.svg +0 -0
  122. package/dist/control-ui/index.html +1 -1
  123. package/dist/control-ui/manifest.webmanifest +0 -0
  124. package/dist/control-ui/version.json +1 -1
  125. package/dist/cron/service/store.js +2 -2
  126. package/dist/cron/store.js +6 -6
  127. package/dist/daemon/systemd-system.js +5 -5
  128. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  129. package/dist/export-html/template.css +0 -0
  130. package/dist/export-html/template.html +0 -0
  131. package/dist/export-html/template.js +0 -0
  132. package/dist/export-html/vendor/highlight.min.js +0 -0
  133. package/dist/export-html/vendor/marked.min.js +0 -0
  134. package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
  135. package/dist/extensions/sat-mining/src/solana-submit.js +191 -47
  136. package/dist/extensions/sat-mining/src/submission-ledger.js +23 -3
  137. package/dist/federation/marketplace-delivery-outbox.js +5 -5
  138. package/dist/federation/marketplace-settlement-ledger.js +4 -4
  139. package/dist/gateway/a2a-task-store.js +22 -22
  140. package/dist/gateway/control-ui-boot-check.js +6 -6
  141. package/dist/gateway/control-ui-login.js +7 -7
  142. package/dist/gateway/control-ui.js +9 -9
  143. package/dist/gateway/federation-marketplace-run-store.js +14 -14
  144. package/dist/gateway/hooks-mapping.js +4 -4
  145. package/dist/gateway/server-discovery.js +2 -2
  146. package/dist/gateway/server-http.js +4 -4
  147. package/dist/gateway/server-methods/chat.js +3 -3
  148. package/dist/gateway/server-methods/sessions.js +6 -6
  149. package/dist/gateway/server-methods/usage.js +2 -2
  150. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  151. package/dist/gateway/session-utils.fs.js +24 -24
  152. package/dist/gateway/session-utils.js +6 -6
  153. package/dist/hooks/bundled-dir.js +4 -4
  154. package/dist/hooks/gmail-setup-utils.js +6 -6
  155. package/dist/hooks/import-url.js +2 -2
  156. package/dist/hooks/loader.js +4 -4
  157. package/dist/hooks/workspace.js +7 -7
  158. package/dist/infra/archive.js +17 -17
  159. package/dist/infra/boundary-file-read.js +2 -2
  160. package/dist/infra/boundary-path.js +15 -15
  161. package/dist/infra/brew.js +2 -2
  162. package/dist/infra/control-ui-assets.js +14 -14
  163. package/dist/infra/device-auth-store.js +8 -8
  164. package/dist/infra/device-identity.js +8 -8
  165. package/dist/infra/dotenv.js +2 -2
  166. package/dist/infra/exec-approvals.js +8 -8
  167. package/dist/infra/exec-command-resolution.js +4 -4
  168. package/dist/infra/exec-safe-bin-trust.js +2 -2
  169. package/dist/infra/fased-root.js +5 -5
  170. package/dist/infra/fs-safe.js +14 -14
  171. package/dist/infra/gateway-lock.js +11 -11
  172. package/dist/infra/git-commit.js +5 -5
  173. package/dist/infra/git-root.js +4 -4
  174. package/dist/infra/hosted-runtime-artifact.js +3 -3
  175. package/dist/infra/is-main.js +2 -2
  176. package/dist/infra/json-file.js +7 -7
  177. package/dist/infra/managed-runtime-bootstrap.js +6 -6
  178. package/dist/infra/outbound/delivery-queue.js +16 -16
  179. package/dist/infra/path-env.js +3 -3
  180. package/dist/infra/ports-lsof.js +4 -4
  181. package/dist/infra/provider-usage.auth.js +3 -3
  182. package/dist/infra/safe-open-sync.js +2 -2
  183. package/dist/infra/session-cost-usage.js +9 -9
  184. package/dist/infra/shell-env.js +2 -2
  185. package/dist/infra/state-migrations.fs.js +6 -6
  186. package/dist/infra/state-migrations.js +23 -23
  187. package/dist/infra/tmp-fased-dir.js +6 -6
  188. package/dist/infra/widearea-dns.js +3 -3
  189. package/dist/infra/wsl.js +2 -2
  190. package/dist/line/accounts.js +2 -2
  191. package/dist/line/download.js +2 -2
  192. package/dist/logging/config.js +3 -3
  193. package/dist/logging/logger.js +7 -7
  194. package/dist/managed/federation.js +3 -3
  195. package/dist/managed/tunnel.js +3 -3
  196. package/dist/media/store.js +13 -13
  197. package/dist/media-understanding/runner.js +3 -3
  198. package/dist/memory/embeddings.js +2 -2
  199. package/dist/memory/internal.js +10 -10
  200. package/dist/memory/manager-sync-ops.js +7 -7
  201. package/dist/memory/repair-executor.js +17 -17
  202. package/dist/node-host/invoke-system-run-plan.js +8 -8
  203. package/dist/node-host/invoke.js +2 -2
  204. package/dist/node-host/runner.js +3 -3
  205. package/dist/pairing/pairing-store.js +3 -3
  206. package/dist/plugin-sdk/{audio-preflight-I4IngVlJ.js → audio-preflight-BFLoas5R.js} +1 -1
  207. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  208. package/dist/plugin-sdk/{chunk-items-DLQ6_lLK.js → chunk-items-TErs62MC.js} +1 -1
  209. package/dist/plugin-sdk/command-status.js +1 -1
  210. package/dist/plugin-sdk/{config-schema-D_8FVI1C.js → config-schema-BPnaDBwZ.js} +43 -8
  211. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  212. package/dist/plugin-sdk/discord.d.ts +3 -3
  213. package/dist/plugin-sdk/file-lock.js +10 -10
  214. package/dist/plugin-sdk/index.d.ts +5 -5
  215. package/dist/plugin-sdk/index.js +1 -1
  216. package/dist/plugin-sdk/json-store.js +6 -6
  217. package/dist/plugin-sdk/{monitor-B4KF4Kpo.js → monitor-FuBPk-AL.js} +3 -3
  218. package/dist/plugin-sdk/{monitor-Bb6x1KAG.js → monitor-sW6dQdX1.js} +3 -3
  219. package/dist/plugin-sdk/{openresponses-http-DCTO8JkL.js → openresponses-http-CVZq0H-P.js} +1 -1
  220. package/dist/plugin-sdk/{pairing-message-DHPDFZbC.d.ts → pairing-message-L6L6L2YF.d.ts} +1 -1
  221. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
  222. package/dist/plugin-sdk/sat-runtime.d.ts +53 -2
  223. package/dist/plugin-sdk/sat-runtime.js +1 -1
  224. package/dist/plugin-sdk/{slack-BHmvqgjH.js → slack-BZISDxDd.js} +3 -3
  225. package/dist/plugin-sdk/slack.d.ts +3 -3
  226. package/dist/plugin-sdk/{sticker-cache-By5AcorL.js → sticker-cache-B0aPv6Lg.js} +2 -2
  227. package/dist/plugin-sdk/{telegram-actions-DGnBz1YT.js → telegram-actions-H3gePEn6.js} +2 -2
  228. package/dist/plugin-sdk/telegram.d.ts +3 -3
  229. package/dist/plugin-sdk/{tmp-fased-dir-EJGTmL1Q.d.ts → tmp-fased-dir-d1CmFAnJ.d.ts} +1 -1
  230. package/dist/plugin-sdk/{types-BdwdFCD6.d.ts → types-DUjYaWB2.d.ts} +3 -3
  231. package/dist/plugin-sdk/{types-BrCpYMxn.d.ts → types-xWjHXl1z.d.ts} +1 -1
  232. package/dist/plugin-sdk/{web-DUJwrTYs.js → web-JwP9PAZR.js} +1 -1
  233. package/dist/plugin-sdk/whatsapp.d.ts +3 -3
  234. package/dist/plugins/bundled-dir.js +3 -3
  235. package/dist/plugins/discovery.js +11 -11
  236. package/dist/plugins/loader.js +13 -13
  237. package/dist/plugins/manifest-registry.js +2 -2
  238. package/dist/plugins/manifest.js +4 -4
  239. package/dist/plugins/path-safety.js +3 -3
  240. package/dist/plugins/status-cache.js +9 -9
  241. package/dist/plugins/update.js +3 -3
  242. package/dist/plugins/web-search-install-catalog.js +3 -3
  243. package/dist/secrets/apply.js +16 -16
  244. package/dist/secrets/audit.js +11 -11
  245. package/dist/secrets/shared.js +9 -9
  246. package/dist/security/scan-paths.js +2 -2
  247. package/dist/shared/config-eval.js +2 -2
  248. package/dist/shared/pid-alive.js +2 -2
  249. package/dist/tasks/standing-orders.js +5 -5
  250. package/dist/tasks/task-flow-registry.js +5 -5
  251. package/dist/tasks/task-registry.js +5 -5
  252. package/dist/tasks/workflow-definitions.js +6 -6
  253. package/dist/telegram/token.js +5 -5
  254. package/dist/utils.js +5 -5
  255. package/dist/wallet/external-submission-ledger.js +14 -14
  256. package/dist/wallet/local-socket-signer-protocol.js +35 -1
  257. package/dist/wallet/providers/local-socket-signer-adapter.js +3 -2
  258. package/dist/wallet/signer-network-admin.js +9 -3
  259. package/dist/wallet/solana-network-discovery.js +113 -0
  260. package/dist/wallet/turnkey-reviewed-state.js +14 -14
  261. package/dist/wallet/wallet-approval-auth.js +3 -3
  262. package/dist/wallet/wallet-atomic-state.js +12 -12
  263. package/dist/wallet/wallet-audit-log.js +5 -5
  264. package/dist/wallet/wallet-inbound-events.js +3 -3
  265. package/dist/wallet/wallet-observability.js +5 -5
  266. package/dist/wallet/wallet-policy.js +5 -5
  267. package/dist/wallet/wallet-provider-registry.js +7 -7
  268. package/dist/wallet/wallet-runtime-config.js +3 -3
  269. package/dist/wallet/wallet-secrets-store.js +22 -22
  270. package/dist/wallet/wallet-send-approvals.js +21 -21
  271. package/dist/wallet/wallet-send-execution-ledger.js +3 -3
  272. package/dist/wallet/wallet-settlement-links.js +3 -3
  273. package/dist/wallet/wallet-standard-review.js +14 -14
  274. package/dist/web/accounts.js +3 -3
  275. package/dist/web/auth-store.js +18 -18
  276. package/dist/web/session.js +4 -4
  277. package/dist/wizard/host-security-capability.js +3 -3
  278. package/dist/wizard/onboarding.host-security.js +3 -3
  279. package/dist/wizard/onboarding.js +17 -15
  280. package/dist/wizard/onboarding.wallet.js +27 -27
  281. package/docs/reference/templates/AGENTS.dev.md +0 -0
  282. package/docs/reference/templates/AGENTS.md +0 -0
  283. package/docs/reference/templates/BOOT.md +0 -0
  284. package/docs/reference/templates/BOOTSTRAP.md +0 -0
  285. package/docs/reference/templates/HEARTBEAT.md +0 -0
  286. package/docs/reference/templates/IDENTITY.dev.md +0 -0
  287. package/docs/reference/templates/IDENTITY.md +0 -0
  288. package/docs/reference/templates/SOUL.dev.md +0 -0
  289. package/docs/reference/templates/SOUL.md +0 -0
  290. package/docs/reference/templates/TOOLS.dev.md +0 -0
  291. package/docs/reference/templates/TOOLS.md +0 -0
  292. package/docs/reference/templates/USER.dev.md +0 -0
  293. package/docs/reference/templates/USER.md +0 -0
  294. package/extensions/acpx/fased.plugin.json +0 -0
  295. package/extensions/acpx/package.json +1 -1
  296. package/extensions/acpx/skills/acp-router/SKILL.md +0 -0
  297. package/extensions/acpx/src/config.ts +0 -0
  298. package/extensions/acpx/src/ensure.ts +0 -0
  299. package/extensions/acpx/src/mcp-readonly-tool-registry.ts +0 -0
  300. package/extensions/acpx/src/mcp-status-adapter.ts +0 -0
  301. package/extensions/acpx/src/runtime-internals/events.ts +0 -0
  302. package/extensions/acpx/src/runtime-internals/process.ts +0 -0
  303. package/extensions/acpx/src/runtime-internals/shared.ts +0 -0
  304. package/extensions/acpx/src/runtime.ts +0 -0
  305. package/extensions/acpx/src/service.ts +0 -0
  306. package/extensions/bluebubbles/README.md +0 -0
  307. package/extensions/bluebubbles/fased.plugin.json +0 -0
  308. package/extensions/bluebubbles/package.json +1 -1
  309. package/extensions/bluebubbles/src/account-resolve.ts +0 -0
  310. package/extensions/bluebubbles/src/accounts.ts +0 -0
  311. package/extensions/bluebubbles/src/actions.ts +0 -0
  312. package/extensions/bluebubbles/src/attachments.ts +0 -0
  313. package/extensions/bluebubbles/src/channel.ts +0 -0
  314. package/extensions/bluebubbles/src/chat.ts +0 -0
  315. package/extensions/bluebubbles/src/config-schema.ts +0 -0
  316. package/extensions/bluebubbles/src/history.ts +0 -0
  317. package/extensions/bluebubbles/src/media-send.ts +0 -0
  318. package/extensions/bluebubbles/src/monitor-normalize.ts +0 -0
  319. package/extensions/bluebubbles/src/monitor-processing.ts +0 -0
  320. package/extensions/bluebubbles/src/monitor-reply-cache.ts +0 -0
  321. package/extensions/bluebubbles/src/monitor-shared.ts +0 -0
  322. package/extensions/bluebubbles/src/monitor.ts +0 -0
  323. package/extensions/bluebubbles/src/multipart.ts +0 -0
  324. package/extensions/bluebubbles/src/onboarding.ts +0 -0
  325. package/extensions/bluebubbles/src/probe.ts +0 -0
  326. package/extensions/bluebubbles/src/reactions.ts +0 -0
  327. package/extensions/bluebubbles/src/request-url.ts +0 -0
  328. package/extensions/bluebubbles/src/runtime.ts +0 -0
  329. package/extensions/bluebubbles/src/send-helpers.ts +0 -0
  330. package/extensions/bluebubbles/src/send.ts +0 -0
  331. package/extensions/bluebubbles/src/targets.ts +0 -0
  332. package/extensions/bluebubbles/src/test-mocks.ts +0 -0
  333. package/extensions/bluebubbles/src/types.ts +0 -0
  334. package/extensions/copilot-proxy/README.md +0 -0
  335. package/extensions/copilot-proxy/fased.plugin.json +0 -0
  336. package/extensions/copilot-proxy/package.json +1 -1
  337. package/extensions/device-pair/fased.plugin.json +0 -0
  338. package/extensions/diagnostics-otel/fased.plugin.json +0 -0
  339. package/extensions/diagnostics-otel/package.json +1 -1
  340. package/extensions/diagnostics-otel/src/service.ts +0 -0
  341. package/extensions/fased-federation/README.md +0 -0
  342. package/extensions/fased-federation/fased.plugin.json +0 -0
  343. package/extensions/fased-federation/package.json +1 -1
  344. package/extensions/google-gemini-cli-auth/README.md +0 -0
  345. package/extensions/google-gemini-cli-auth/fased.plugin.json +0 -0
  346. package/extensions/google-gemini-cli-auth/oauth.ts +0 -0
  347. package/extensions/google-gemini-cli-auth/package.json +1 -1
  348. package/extensions/imessage/fased.plugin.json +0 -0
  349. package/extensions/imessage/package.json +1 -1
  350. package/extensions/imessage/src/channel.ts +0 -0
  351. package/extensions/imessage/src/runtime.ts +0 -0
  352. package/extensions/irc/fased.plugin.json +0 -0
  353. package/extensions/irc/package.json +1 -1
  354. package/extensions/irc/src/accounts.ts +0 -0
  355. package/extensions/irc/src/channel.ts +0 -0
  356. package/extensions/irc/src/client.ts +0 -0
  357. package/extensions/irc/src/config-schema.ts +0 -0
  358. package/extensions/irc/src/connect-options.ts +0 -0
  359. package/extensions/irc/src/control-chars.ts +0 -0
  360. package/extensions/irc/src/inbound.ts +0 -0
  361. package/extensions/irc/src/monitor.ts +0 -0
  362. package/extensions/irc/src/normalize.ts +0 -0
  363. package/extensions/irc/src/onboarding.ts +0 -0
  364. package/extensions/irc/src/policy.ts +0 -0
  365. package/extensions/irc/src/probe.ts +0 -0
  366. package/extensions/irc/src/protocol.ts +0 -0
  367. package/extensions/irc/src/runtime.ts +0 -0
  368. package/extensions/irc/src/send.ts +0 -0
  369. package/extensions/irc/src/types.ts +0 -0
  370. package/extensions/line/fased.plugin.json +0 -0
  371. package/extensions/line/package.json +1 -1
  372. package/extensions/line/src/card-command.ts +0 -0
  373. package/extensions/line/src/channel.ts +0 -0
  374. package/extensions/line/src/runtime.ts +0 -0
  375. package/extensions/llm-task/README.md +0 -0
  376. package/extensions/llm-task/fased.plugin.json +0 -0
  377. package/extensions/llm-task/package.json +1 -1
  378. package/extensions/lobster/README.md +0 -0
  379. package/extensions/lobster/SKILL.md +0 -0
  380. package/extensions/lobster/fased.plugin.json +0 -0
  381. package/extensions/lobster/package.json +1 -1
  382. package/extensions/lobster/src/test-helpers.ts +0 -0
  383. package/extensions/lobster/src/windows-spawn.ts +0 -0
  384. package/extensions/matrix/CHANGELOG.md +6 -0
  385. package/extensions/matrix/fased.plugin.json +0 -0
  386. package/extensions/matrix/package.json +1 -1
  387. package/extensions/matrix/src/actions.ts +0 -0
  388. package/extensions/matrix/src/channel.ts +0 -0
  389. package/extensions/matrix/src/config-schema.ts +0 -0
  390. package/extensions/matrix/src/directory-live.ts +0 -0
  391. package/extensions/matrix/src/group-mentions.ts +0 -0
  392. package/extensions/matrix/src/matrix/accounts.ts +0 -0
  393. package/extensions/matrix/src/matrix/actions/client.ts +0 -0
  394. package/extensions/matrix/src/matrix/actions/limits.ts +0 -0
  395. package/extensions/matrix/src/matrix/actions/messages.ts +0 -0
  396. package/extensions/matrix/src/matrix/actions/pins.ts +0 -0
  397. package/extensions/matrix/src/matrix/actions/reactions.ts +0 -0
  398. package/extensions/matrix/src/matrix/actions/room.ts +0 -0
  399. package/extensions/matrix/src/matrix/actions/summary.ts +0 -0
  400. package/extensions/matrix/src/matrix/actions/types.ts +0 -0
  401. package/extensions/matrix/src/matrix/actions.ts +0 -0
  402. package/extensions/matrix/src/matrix/active-client.ts +0 -0
  403. package/extensions/matrix/src/matrix/client/config.ts +0 -0
  404. package/extensions/matrix/src/matrix/client/create-client.ts +0 -0
  405. package/extensions/matrix/src/matrix/client/logging.ts +0 -0
  406. package/extensions/matrix/src/matrix/client/runtime.ts +0 -0
  407. package/extensions/matrix/src/matrix/client/shared.ts +0 -0
  408. package/extensions/matrix/src/matrix/client/storage.ts +0 -0
  409. package/extensions/matrix/src/matrix/client/types.ts +0 -0
  410. package/extensions/matrix/src/matrix/client-bootstrap.ts +0 -0
  411. package/extensions/matrix/src/matrix/client.ts +0 -0
  412. package/extensions/matrix/src/matrix/credentials.ts +0 -0
  413. package/extensions/matrix/src/matrix/deps.ts +0 -0
  414. package/extensions/matrix/src/matrix/format.ts +0 -0
  415. package/extensions/matrix/src/matrix/monitor/access-policy.ts +0 -0
  416. package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -0
  417. package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -0
  418. package/extensions/matrix/src/matrix/monitor/direct.ts +0 -0
  419. package/extensions/matrix/src/matrix/monitor/events.ts +0 -0
  420. package/extensions/matrix/src/matrix/monitor/handler.ts +0 -0
  421. package/extensions/matrix/src/matrix/monitor/inbound-body.ts +0 -0
  422. package/extensions/matrix/src/matrix/monitor/location.ts +0 -0
  423. package/extensions/matrix/src/matrix/monitor/media.ts +0 -0
  424. package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -0
  425. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -0
  426. package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -0
  427. package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -0
  428. package/extensions/matrix/src/matrix/monitor/threads.ts +0 -0
  429. package/extensions/matrix/src/matrix/monitor/types.ts +0 -0
  430. package/extensions/matrix/src/matrix/poll-types.ts +0 -0
  431. package/extensions/matrix/src/matrix/probe.ts +0 -0
  432. package/extensions/matrix/src/matrix/send/client.ts +0 -0
  433. package/extensions/matrix/src/matrix/send/formatting.ts +0 -0
  434. package/extensions/matrix/src/matrix/send/media.ts +0 -0
  435. package/extensions/matrix/src/matrix/send/targets.ts +0 -0
  436. package/extensions/matrix/src/matrix/send/types.ts +0 -0
  437. package/extensions/matrix/src/matrix/send-queue.ts +0 -0
  438. package/extensions/matrix/src/matrix/send.ts +0 -0
  439. package/extensions/matrix/src/onboarding.ts +0 -0
  440. package/extensions/matrix/src/outbound.ts +0 -0
  441. package/extensions/matrix/src/resolve-targets.ts +0 -0
  442. package/extensions/matrix/src/runtime.ts +0 -0
  443. package/extensions/matrix/src/tool-actions.ts +0 -0
  444. package/extensions/matrix/src/types.ts +0 -0
  445. package/extensions/mattermost/fased.plugin.json +0 -0
  446. package/extensions/mattermost/package.json +1 -1
  447. package/extensions/mattermost/src/channel.ts +0 -0
  448. package/extensions/mattermost/src/config-schema.ts +0 -0
  449. package/extensions/mattermost/src/group-mentions.ts +0 -0
  450. package/extensions/mattermost/src/mattermost/accounts.ts +0 -0
  451. package/extensions/mattermost/src/mattermost/client.ts +0 -0
  452. package/extensions/mattermost/src/mattermost/monitor-auth.ts +0 -0
  453. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -0
  454. package/extensions/mattermost/src/mattermost/monitor-onchar.ts +0 -0
  455. package/extensions/mattermost/src/mattermost/monitor-websocket.ts +0 -0
  456. package/extensions/mattermost/src/mattermost/monitor.ts +0 -0
  457. package/extensions/mattermost/src/mattermost/probe.ts +0 -0
  458. package/extensions/mattermost/src/mattermost/reactions.test-helpers.ts +0 -0
  459. package/extensions/mattermost/src/mattermost/reactions.ts +0 -0
  460. package/extensions/mattermost/src/mattermost/reconnect.ts +0 -0
  461. package/extensions/mattermost/src/mattermost/send.ts +0 -0
  462. package/extensions/mattermost/src/normalize.ts +0 -0
  463. package/extensions/mattermost/src/onboarding-helpers.ts +0 -0
  464. package/extensions/mattermost/src/onboarding.ts +0 -0
  465. package/extensions/mattermost/src/runtime.ts +0 -0
  466. package/extensions/mattermost/src/types.ts +0 -0
  467. package/extensions/memory-core/fased.plugin.json +0 -0
  468. package/extensions/memory-core/package.json +2 -2
  469. package/extensions/memory-lancedb/config.ts +0 -0
  470. package/extensions/memory-lancedb/fased.plugin.json +0 -0
  471. package/extensions/memory-lancedb/package.json +1 -1
  472. package/extensions/minimax-portal-auth/README.md +0 -0
  473. package/extensions/minimax-portal-auth/fased.plugin.json +0 -0
  474. package/extensions/minimax-portal-auth/oauth.ts +0 -0
  475. package/extensions/minimax-portal-auth/package.json +1 -1
  476. package/extensions/msteams/CHANGELOG.md +6 -0
  477. package/extensions/msteams/fased.plugin.json +0 -0
  478. package/extensions/msteams/package.json +1 -1
  479. package/extensions/msteams/src/attachments/download.ts +0 -0
  480. package/extensions/msteams/src/attachments/graph.ts +0 -0
  481. package/extensions/msteams/src/attachments/html.ts +0 -0
  482. package/extensions/msteams/src/attachments/payload.ts +0 -0
  483. package/extensions/msteams/src/attachments/remote-media.ts +0 -0
  484. package/extensions/msteams/src/attachments/shared.ts +0 -0
  485. package/extensions/msteams/src/attachments/types.ts +0 -0
  486. package/extensions/msteams/src/attachments.ts +0 -0
  487. package/extensions/msteams/src/channel.ts +0 -0
  488. package/extensions/msteams/src/conversation-store-fs.ts +0 -0
  489. package/extensions/msteams/src/conversation-store-memory.ts +0 -0
  490. package/extensions/msteams/src/conversation-store.ts +0 -0
  491. package/extensions/msteams/src/directory-live.ts +0 -0
  492. package/extensions/msteams/src/errors.ts +0 -0
  493. package/extensions/msteams/src/file-consent-helpers.ts +0 -0
  494. package/extensions/msteams/src/file-consent.ts +0 -0
  495. package/extensions/msteams/src/file-lock.ts +0 -0
  496. package/extensions/msteams/src/graph-chat.ts +0 -0
  497. package/extensions/msteams/src/graph-upload.ts +0 -0
  498. package/extensions/msteams/src/graph-users.ts +0 -0
  499. package/extensions/msteams/src/graph.ts +0 -0
  500. package/extensions/msteams/src/inbound.ts +0 -0
  501. package/extensions/msteams/src/media-helpers.ts +0 -0
  502. package/extensions/msteams/src/mentions.ts +0 -0
  503. package/extensions/msteams/src/messenger.ts +0 -0
  504. package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -0
  505. package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -0
  506. package/extensions/msteams/src/monitor-handler.ts +0 -0
  507. package/extensions/msteams/src/monitor-types.ts +0 -0
  508. package/extensions/msteams/src/monitor.ts +0 -0
  509. package/extensions/msteams/src/onboarding.ts +0 -0
  510. package/extensions/msteams/src/outbound.ts +0 -0
  511. package/extensions/msteams/src/pending-uploads.ts +0 -0
  512. package/extensions/msteams/src/policy.ts +0 -0
  513. package/extensions/msteams/src/polls-store-memory.ts +0 -0
  514. package/extensions/msteams/src/polls.ts +0 -0
  515. package/extensions/msteams/src/probe.ts +0 -0
  516. package/extensions/msteams/src/reply-dispatcher.ts +0 -0
  517. package/extensions/msteams/src/resolve-allowlist.ts +0 -0
  518. package/extensions/msteams/src/runtime.ts +0 -0
  519. package/extensions/msteams/src/sdk-types.ts +0 -0
  520. package/extensions/msteams/src/sdk.ts +0 -0
  521. package/extensions/msteams/src/send-context.ts +0 -0
  522. package/extensions/msteams/src/send.ts +0 -0
  523. package/extensions/msteams/src/sent-message-cache.ts +0 -0
  524. package/extensions/msteams/src/storage.ts +0 -0
  525. package/extensions/msteams/src/store-fs.ts +0 -0
  526. package/extensions/msteams/src/test-runtime.ts +0 -0
  527. package/extensions/msteams/src/token-response.ts +0 -0
  528. package/extensions/msteams/src/token.ts +0 -0
  529. package/extensions/nextcloud-talk/fased.plugin.json +0 -0
  530. package/extensions/nextcloud-talk/package.json +1 -1
  531. package/extensions/nextcloud-talk/src/accounts.ts +0 -0
  532. package/extensions/nextcloud-talk/src/config-schema.ts +0 -0
  533. package/extensions/nextcloud-talk/src/format.ts +0 -0
  534. package/extensions/nextcloud-talk/src/inbound.ts +0 -0
  535. package/extensions/nextcloud-talk/src/monitor.ts +0 -0
  536. package/extensions/nextcloud-talk/src/normalize.ts +0 -0
  537. package/extensions/nextcloud-talk/src/onboarding.ts +0 -0
  538. package/extensions/nextcloud-talk/src/policy.ts +0 -0
  539. package/extensions/nextcloud-talk/src/replay-guard.ts +0 -0
  540. package/extensions/nextcloud-talk/src/room-info.ts +0 -0
  541. package/extensions/nextcloud-talk/src/runtime.ts +0 -0
  542. package/extensions/nextcloud-talk/src/send.ts +0 -0
  543. package/extensions/nextcloud-talk/src/signature.ts +0 -0
  544. package/extensions/nextcloud-talk/src/types.ts +0 -0
  545. package/extensions/nostr/CHANGELOG.md +6 -0
  546. package/extensions/nostr/README.md +0 -0
  547. package/extensions/nostr/fased.plugin.json +0 -0
  548. package/extensions/nostr/package.json +1 -1
  549. package/extensions/nostr/src/channel.ts +0 -0
  550. package/extensions/nostr/src/config-schema.ts +0 -0
  551. package/extensions/nostr/src/metrics.ts +0 -0
  552. package/extensions/nostr/src/nostr-bus.ts +0 -0
  553. package/extensions/nostr/src/nostr-profile-http.ts +0 -0
  554. package/extensions/nostr/src/nostr-profile-import.ts +0 -0
  555. package/extensions/nostr/src/nostr-profile.ts +0 -0
  556. package/extensions/nostr/src/nostr-state-store.ts +0 -0
  557. package/extensions/nostr/src/onboarding.ts +0 -0
  558. package/extensions/nostr/src/runtime.ts +0 -0
  559. package/extensions/nostr/src/seen-tracker.ts +0 -0
  560. package/extensions/nostr/src/types.ts +0 -0
  561. package/extensions/nostr/test/setup.ts +0 -0
  562. package/extensions/open-prose/README.md +0 -0
  563. package/extensions/open-prose/fased.plugin.json +0 -0
  564. package/extensions/open-prose/package.json +1 -1
  565. package/extensions/open-prose/skills/prose/LICENSE +0 -0
  566. package/extensions/open-prose/skills/prose/SKILL.md +0 -0
  567. package/extensions/open-prose/skills/prose/alt-borges.md +0 -0
  568. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -0
  569. package/extensions/open-prose/skills/prose/alts/borges.md +0 -0
  570. package/extensions/open-prose/skills/prose/alts/folk.md +0 -0
  571. package/extensions/open-prose/skills/prose/alts/homer.md +0 -0
  572. package/extensions/open-prose/skills/prose/alts/kafka.md +0 -0
  573. package/extensions/open-prose/skills/prose/compiler.md +0 -0
  574. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -0
  575. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -0
  576. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -0
  577. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -0
  578. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -0
  579. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -0
  580. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -0
  581. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -0
  582. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -0
  583. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -0
  584. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -0
  585. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -0
  586. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -0
  587. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -0
  588. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -0
  589. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -0
  590. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -0
  591. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -0
  592. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -0
  593. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -0
  594. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -0
  595. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -0
  596. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -0
  597. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -0
  598. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -0
  599. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -0
  600. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -0
  601. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -0
  602. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -0
  603. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -0
  604. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -0
  605. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -0
  606. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -0
  607. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -0
  608. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -0
  609. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -0
  610. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -0
  611. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -0
  612. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -0
  613. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -0
  614. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -0
  615. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -0
  616. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -0
  617. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -0
  618. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -0
  619. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -0
  620. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -0
  621. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -0
  622. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -0
  623. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -0
  624. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -0
  625. package/extensions/open-prose/skills/prose/examples/README.md +0 -0
  626. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -0
  627. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -0
  628. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -0
  629. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -0
  630. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -0
  631. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -0
  632. package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -0
  633. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -0
  634. package/extensions/open-prose/skills/prose/help.md +0 -0
  635. package/extensions/open-prose/skills/prose/lib/README.md +0 -0
  636. package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -0
  637. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -0
  638. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -0
  639. package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -0
  640. package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -0
  641. package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -0
  642. package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -0
  643. package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -0
  644. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -0
  645. package/extensions/open-prose/skills/prose/primitives/session.md +0 -0
  646. package/extensions/open-prose/skills/prose/prose.md +0 -0
  647. package/extensions/open-prose/skills/prose/state/filesystem.md +0 -0
  648. package/extensions/open-prose/skills/prose/state/in-context.md +0 -0
  649. package/extensions/open-prose/skills/prose/state/postgres.md +0 -0
  650. package/extensions/open-prose/skills/prose/state/sqlite.md +0 -0
  651. package/extensions/phone-control/fased.plugin.json +0 -0
  652. package/extensions/qwen-portal-auth/README.md +0 -0
  653. package/extensions/qwen-portal-auth/fased.plugin.json +0 -0
  654. package/extensions/qwen-portal-auth/oauth.ts +0 -0
  655. package/extensions/sat-mining/fased.plugin.json +0 -0
  656. package/extensions/sat-mining/index.ts +21 -10
  657. package/extensions/sat-mining/package.json +1 -1
  658. package/extensions/sat-mining/skills/sat-mining/SKILL.md +0 -0
  659. package/extensions/sat-mining/src/auto-planner.ts +0 -0
  660. package/extensions/sat-mining/src/chain-time.ts +0 -0
  661. package/extensions/sat-mining/src/dispute-review.ts +0 -0
  662. package/extensions/sat-mining/src/hash-spec.ts +0 -0
  663. package/extensions/sat-mining/src/planner-analytics.ts +0 -0
  664. package/extensions/sat-mining/src/planner-outcomes.ts +0 -0
  665. package/extensions/sat-mining/src/planner-policy-eval.ts +0 -0
  666. package/extensions/sat-mining/src/planner-policy.ts +0 -0
  667. package/extensions/sat-mining/src/replay.ts +0 -0
  668. package/extensions/sat-mining/src/service-read-timeout.ts +0 -0
  669. package/extensions/sat-mining/src/solana-submit.ts +281 -47
  670. package/extensions/sat-mining/src/strategy-base.ts +0 -0
  671. package/extensions/sat-mining/src/strategy-engine.ts +0 -0
  672. package/extensions/sat-mining/src/strategy-validate.ts +0 -0
  673. package/extensions/sat-mining/src/submission-ledger.ts +18 -3
  674. package/extensions/shared/resolve-target-test-helpers.ts +0 -0
  675. package/extensions/signal/fased.plugin.json +0 -0
  676. package/extensions/signal/package.json +1 -1
  677. package/extensions/signal/src/channel.ts +0 -0
  678. package/extensions/signal/src/runtime.ts +0 -0
  679. package/extensions/synology-chat/fased.plugin.json +0 -0
  680. package/extensions/synology-chat/package.json +1 -1
  681. package/extensions/synology-chat/src/accounts.ts +0 -0
  682. package/extensions/synology-chat/src/channel.ts +0 -0
  683. package/extensions/synology-chat/src/client.ts +0 -0
  684. package/extensions/synology-chat/src/runtime.ts +0 -0
  685. package/extensions/synology-chat/src/security.ts +0 -0
  686. package/extensions/synology-chat/src/types.ts +0 -0
  687. package/extensions/synology-chat/src/webhook-handler.ts +0 -0
  688. package/extensions/talk-voice/fased.plugin.json +0 -0
  689. package/extensions/thread-ownership/fased.plugin.json +0 -0
  690. package/extensions/tlon/README.md +0 -0
  691. package/extensions/tlon/fased.plugin.json +0 -0
  692. package/extensions/tlon/package.json +1 -1
  693. package/extensions/tlon/src/account-fields.ts +0 -0
  694. package/extensions/tlon/src/channel.ts +0 -0
  695. package/extensions/tlon/src/config-schema.ts +0 -0
  696. package/extensions/tlon/src/monitor/discovery.ts +0 -0
  697. package/extensions/tlon/src/monitor/history.ts +0 -0
  698. package/extensions/tlon/src/monitor/processed-messages.ts +0 -0
  699. package/extensions/tlon/src/monitor/utils.ts +0 -0
  700. package/extensions/tlon/src/onboarding.ts +0 -0
  701. package/extensions/tlon/src/runtime.ts +0 -0
  702. package/extensions/tlon/src/targets.ts +0 -0
  703. package/extensions/tlon/src/types.ts +0 -0
  704. package/extensions/tlon/src/urbit/auth.ts +0 -0
  705. package/extensions/tlon/src/urbit/base-url.ts +0 -0
  706. package/extensions/tlon/src/urbit/channel-client.ts +0 -0
  707. package/extensions/tlon/src/urbit/channel-ops.ts +0 -0
  708. package/extensions/tlon/src/urbit/context.ts +0 -0
  709. package/extensions/tlon/src/urbit/errors.ts +0 -0
  710. package/extensions/tlon/src/urbit/fetch.ts +0 -0
  711. package/extensions/tlon/src/urbit/send.ts +0 -0
  712. package/extensions/tlon/src/urbit/sse-client.ts +0 -0
  713. package/extensions/twitch/CHANGELOG.md +6 -0
  714. package/extensions/twitch/README.md +0 -0
  715. package/extensions/twitch/fased.plugin.json +0 -0
  716. package/extensions/twitch/package.json +1 -1
  717. package/extensions/twitch/src/access-control.ts +0 -0
  718. package/extensions/twitch/src/actions.ts +0 -0
  719. package/extensions/twitch/src/client-manager-registry.ts +0 -0
  720. package/extensions/twitch/src/config-schema.ts +0 -0
  721. package/extensions/twitch/src/config.ts +0 -0
  722. package/extensions/twitch/src/monitor.ts +0 -0
  723. package/extensions/twitch/src/onboarding.ts +0 -0
  724. package/extensions/twitch/src/outbound.ts +0 -0
  725. package/extensions/twitch/src/probe.ts +0 -0
  726. package/extensions/twitch/src/resolver.ts +0 -0
  727. package/extensions/twitch/src/runtime.ts +0 -0
  728. package/extensions/twitch/src/send.ts +0 -0
  729. package/extensions/twitch/src/status.ts +0 -0
  730. package/extensions/twitch/src/test-fixtures.ts +0 -0
  731. package/extensions/twitch/src/twitch-client.ts +0 -0
  732. package/extensions/twitch/src/utils/markdown.ts +0 -0
  733. package/extensions/twitch/src/utils/twitch.ts +0 -0
  734. package/extensions/twitch/test/setup.ts +0 -0
  735. package/extensions/voice-call/CHANGELOG.md +6 -0
  736. package/extensions/voice-call/README.md +0 -0
  737. package/extensions/voice-call/fased.plugin.json +0 -0
  738. package/extensions/voice-call/package.json +1 -1
  739. package/extensions/voice-call/src/allowlist.ts +0 -0
  740. package/extensions/voice-call/src/cli.ts +0 -0
  741. package/extensions/voice-call/src/core-bridge.ts +0 -0
  742. package/extensions/voice-call/src/http-headers.ts +0 -0
  743. package/extensions/voice-call/src/manager/context.ts +0 -0
  744. package/extensions/voice-call/src/manager/events.ts +0 -0
  745. package/extensions/voice-call/src/manager/lookup.ts +0 -0
  746. package/extensions/voice-call/src/manager/outbound.ts +0 -0
  747. package/extensions/voice-call/src/manager/state.ts +0 -0
  748. package/extensions/voice-call/src/manager/store.ts +0 -0
  749. package/extensions/voice-call/src/manager/timers.ts +0 -0
  750. package/extensions/voice-call/src/manager/twiml.ts +0 -0
  751. package/extensions/voice-call/src/manager.ts +0 -0
  752. package/extensions/voice-call/src/media-stream.ts +0 -0
  753. package/extensions/voice-call/src/providers/base.ts +0 -0
  754. package/extensions/voice-call/src/providers/mock.ts +0 -0
  755. package/extensions/voice-call/src/providers/plivo.ts +0 -0
  756. package/extensions/voice-call/src/providers/shared/guarded-json-api.ts +0 -0
  757. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -0
  758. package/extensions/voice-call/src/providers/telnyx.ts +0 -0
  759. package/extensions/voice-call/src/providers/tts-openai.ts +0 -0
  760. package/extensions/voice-call/src/providers/twilio/api.ts +0 -0
  761. package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -0
  762. package/extensions/voice-call/src/providers/twilio.ts +0 -0
  763. package/extensions/voice-call/src/response-generator.ts +0 -0
  764. package/extensions/voice-call/src/runtime.ts +0 -0
  765. package/extensions/voice-call/src/telephony-audio.ts +0 -0
  766. package/extensions/voice-call/src/telephony-tts.ts +0 -0
  767. package/extensions/voice-call/src/tunnel.ts +0 -0
  768. package/extensions/voice-call/src/types.ts +0 -0
  769. package/extensions/voice-call/src/utils.ts +0 -0
  770. package/extensions/voice-call/src/voice-mapping.ts +0 -0
  771. package/extensions/voice-call/src/webhook/stale-call-reaper.ts +0 -0
  772. package/extensions/voice-call/src/webhook-security.ts +0 -0
  773. package/extensions/zalo/CHANGELOG.md +6 -0
  774. package/extensions/zalo/README.md +0 -0
  775. package/extensions/zalo/fased.plugin.json +0 -0
  776. package/extensions/zalo/package.json +1 -1
  777. package/extensions/zalo/src/accounts.ts +0 -0
  778. package/extensions/zalo/src/actions.ts +0 -0
  779. package/extensions/zalo/src/api.ts +0 -0
  780. package/extensions/zalo/src/channel.ts +0 -0
  781. package/extensions/zalo/src/config-schema.ts +0 -0
  782. package/extensions/zalo/src/group-access.ts +0 -0
  783. package/extensions/zalo/src/monitor.ts +0 -0
  784. package/extensions/zalo/src/monitor.webhook.ts +0 -0
  785. package/extensions/zalo/src/onboarding.ts +0 -0
  786. package/extensions/zalo/src/probe.ts +0 -0
  787. package/extensions/zalo/src/proxy.ts +0 -0
  788. package/extensions/zalo/src/runtime.ts +0 -0
  789. package/extensions/zalo/src/send.ts +0 -0
  790. package/extensions/zalo/src/status-issues.ts +0 -0
  791. package/extensions/zalo/src/token.ts +0 -0
  792. package/extensions/zalo/src/types.ts +0 -0
  793. package/extensions/zalouser/CHANGELOG.md +6 -0
  794. package/extensions/zalouser/README.md +0 -0
  795. package/extensions/zalouser/fased.plugin.json +0 -0
  796. package/extensions/zalouser/package.json +1 -1
  797. package/extensions/zalouser/src/accounts.ts +0 -0
  798. package/extensions/zalouser/src/channel.ts +0 -0
  799. package/extensions/zalouser/src/config-schema.ts +0 -0
  800. package/extensions/zalouser/src/monitor.ts +0 -0
  801. package/extensions/zalouser/src/onboarding.ts +0 -0
  802. package/extensions/zalouser/src/probe.ts +0 -0
  803. package/extensions/zalouser/src/runtime.ts +0 -0
  804. package/extensions/zalouser/src/send.ts +0 -0
  805. package/extensions/zalouser/src/status-issues.ts +0 -0
  806. package/extensions/zalouser/src/tool.ts +0 -0
  807. package/extensions/zalouser/src/types.ts +0 -0
  808. package/extensions/zalouser/src/zca.ts +0 -0
  809. package/install.sh +9 -6
  810. package/package.json +1 -1
  811. package/scripts/fased-launcher-runtime.mjs +0 -0
  812. package/scripts/fased-signer-network-hosting.sh +18 -7
  813. package/scripts/run-node.mjs +0 -0
  814. package/shared/sat-hash-v1.json +0 -0
  815. package/skills/1password/SKILL.md +0 -0
  816. package/skills/1password/references/cli-examples.md +0 -0
  817. package/skills/1password/references/get-started.md +0 -0
  818. package/skills/apple-notes/SKILL.md +0 -0
  819. package/skills/apple-reminders/SKILL.md +0 -0
  820. package/skills/bear-notes/SKILL.md +0 -0
  821. package/skills/blogwatcher/SKILL.md +0 -0
  822. package/skills/blucli/SKILL.md +0 -0
  823. package/skills/bluebubbles/SKILL.md +0 -0
  824. package/skills/camsnap/SKILL.md +0 -0
  825. package/skills/canvas/SKILL.md +0 -0
  826. package/skills/clawhub/SKILL.md +0 -0
  827. package/skills/coding-agent/SKILL.md +0 -0
  828. package/skills/diagram-maker/SKILL.md +0 -0
  829. package/skills/diagram-maker/references/excalidraw-patterns.md +0 -0
  830. package/skills/diagram-maker/references/svg-template.md +0 -0
  831. package/skills/discord/SKILL.md +0 -0
  832. package/skills/eightctl/SKILL.md +0 -0
  833. package/skills/food-order/SKILL.md +0 -0
  834. package/skills/gemini/SKILL.md +0 -0
  835. package/skills/gh-issues/SKILL.md +0 -0
  836. package/skills/gifgrep/SKILL.md +0 -0
  837. package/skills/github/SKILL.md +0 -0
  838. package/skills/gog/SKILL.md +0 -0
  839. package/skills/goplaces/SKILL.md +0 -0
  840. package/skills/healthcheck/SKILL.md +0 -0
  841. package/skills/himalaya/SKILL.md +0 -0
  842. package/skills/himalaya/references/configuration.md +0 -0
  843. package/skills/himalaya/references/message-composition.md +0 -0
  844. package/skills/imsg/SKILL.md +0 -0
  845. package/skills/mcporter/SKILL.md +0 -0
  846. package/skills/model-usage/SKILL.md +0 -0
  847. package/skills/model-usage/references/codexbar-cli.md +0 -0
  848. package/skills/model-usage/scripts/model_usage.py +0 -0
  849. package/skills/model-usage/scripts/test_model_usage.py +0 -0
  850. package/skills/nano-banana-pro/SKILL.md +0 -0
  851. package/skills/nano-pdf/SKILL.md +0 -0
  852. package/skills/node-connect/SKILL.md +0 -0
  853. package/skills/node-inspect-debugger/SKILL.md +0 -0
  854. package/skills/notion/SKILL.md +0 -0
  855. package/skills/obsidian/SKILL.md +0 -0
  856. package/skills/openai-image-gen/SKILL.md +0 -0
  857. package/skills/openai-image-gen/scripts/gen.py +0 -0
  858. package/skills/openai-image-gen/scripts/test_gen.py +0 -0
  859. package/skills/openai-whisper/SKILL.md +0 -0
  860. package/skills/openai-whisper-api/SKILL.md +0 -0
  861. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -0
  862. package/skills/opencode/SKILL.md +0 -0
  863. package/skills/openhue/SKILL.md +0 -0
  864. package/skills/oracle/SKILL.md +0 -0
  865. package/skills/ordercli/SKILL.md +0 -0
  866. package/skills/peekaboo/SKILL.md +0 -0
  867. package/skills/python-debugpy/SKILL.md +0 -0
  868. package/skills/sag/SKILL.md +0 -0
  869. package/skills/session-logs/SKILL.md +0 -0
  870. package/skills/sherpa-onnx-tts/SKILL.md +0 -0
  871. package/skills/skill-creator/SKILL.md +0 -0
  872. package/skills/skill-creator/license.txt +0 -0
  873. package/skills/skill-creator/scripts/init_skill.py +0 -0
  874. package/skills/skill-creator/scripts/package_skill.py +0 -0
  875. package/skills/skill-creator/scripts/quick_validate.py +0 -0
  876. package/skills/skill-creator/scripts/test_package_skill.py +0 -0
  877. package/skills/skill-creator/scripts/test_quick_validate.py +0 -0
  878. package/skills/skill-workshop/SKILL.md +0 -0
  879. package/skills/slack/SKILL.md +0 -0
  880. package/skills/songsee/SKILL.md +0 -0
  881. package/skills/sonoscli/SKILL.md +0 -0
  882. package/skills/spotify-player/SKILL.md +0 -0
  883. package/skills/summarize/SKILL.md +0 -0
  884. package/skills/things-mac/SKILL.md +0 -0
  885. package/skills/tmux/SKILL.md +0 -0
  886. package/skills/trello/SKILL.md +0 -0
  887. package/skills/video-frames/SKILL.md +0 -0
  888. package/skills/video-frames/scripts/frame.sh +0 -0
  889. package/skills/voice-call/SKILL.md +0 -0
  890. package/skills/wacli/SKILL.md +0 -0
  891. package/skills/wallet-actions/SKILL.md +0 -0
  892. package/skills/weather/SKILL.md +0 -0
  893. package/skills/xurl/SKILL.md +0 -0
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -14,7 +14,7 @@
14
14
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
15
15
  <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
16
16
  <script data-fased-boot-watchdog src="./boot-watchdog.js" defer></script>
17
- <script type="module" crossorigin src="./assets/index-D4YMr1fA.js"></script>
17
+ <script type="module" crossorigin src="./assets/index-vw_10Zeo.js"></script>
18
18
  <link rel="stylesheet" crossorigin href="./assets/index-RwVraC3c.css">
19
19
  </head>
20
20
  <body>
File without changes
@@ -1 +1 @@
1
- {"version":"0.1.65"}
1
+ {"version":"0.1.66"}
@@ -5,7 +5,7 @@ import { inferLegacyName, normalizeOptionalText } from "./normalize.js";
5
5
  import { normalizeCronStaggerMs, resolveDefaultCronStaggerMs } from "../stagger.js";
6
6
  import { loadCronStore, saveCronStore } from "../store.js";
7
7
  import { recomputeNextRuns } from "./jobs.js";
8
- import syncFs from "node:fs";
8
+ import fs from "node:fs";
9
9
 
10
10
  //#region src/cron/service/store.ts
11
11
  function buildDeliveryPatchFromLegacyPayload(payload) {
@@ -179,7 +179,7 @@ function stripLegacyTopLevelFields(raw) {
179
179
  }
180
180
  async function getFileMtimeMs(path) {
181
181
  try {
182
- const stats = await syncFs.promises.stat(path);
182
+ const stats = await fs.promises.stat(path);
183
183
  return stats.mtimeMs;
184
184
  } catch {
185
185
  return null;
@@ -1,6 +1,6 @@
1
1
  import { expandHomePrefix } from "../infra/home-dir.js";
2
2
  import { CONFIG_DIR } from "../utils.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import JSON5 from "json5";
6
6
 
@@ -19,7 +19,7 @@ function resolveCronStorePath(storePath) {
19
19
  }
20
20
  async function loadCronStore(storePath) {
21
21
  try {
22
- const raw = await syncFs.promises.readFile(storePath, "utf-8");
22
+ const raw = await fs.promises.readFile(storePath, "utf-8");
23
23
  let parsed;
24
24
  try {
25
25
  parsed = JSON5.parse(raw);
@@ -45,14 +45,14 @@ async function loadCronStore(storePath) {
45
45
  }
46
46
  }
47
47
  async function saveCronStore(storePath, store) {
48
- await syncFs.promises.mkdir(path.dirname(storePath), { recursive: true });
48
+ await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
49
49
  const { randomBytes } = await import("node:crypto");
50
50
  const tmp = `${storePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
51
51
  const json = JSON.stringify(store, null, 2);
52
- await syncFs.promises.writeFile(tmp, json, "utf-8");
53
- await syncFs.promises.rename(tmp, storePath);
52
+ await fs.promises.writeFile(tmp, json, "utf-8");
53
+ await fs.promises.rename(tmp, storePath);
54
54
  try {
55
- await syncFs.promises.copyFile(storePath, `${storePath}.bak`);
55
+ await fs.promises.copyFile(storePath, `${storePath}.bak`);
56
56
  } catch {}
57
57
  }
58
58
 
@@ -4,7 +4,7 @@ import { parseSystemdShow } from "./systemd.js";
4
4
  import { existsSync } from "node:fs";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
- import fs from "node:fs/promises";
7
+ import fs$1 from "node:fs/promises";
8
8
  import { spawn } from "node:child_process";
9
9
 
10
10
  //#region src/daemon/systemd-system.ts
@@ -40,7 +40,7 @@ async function restartHostedServiceWithoutPrivilege() {
40
40
  };
41
41
  }
42
42
  try {
43
- const status = await fs.readFile(`/proc/${pid}/status`, "utf8");
43
+ const status = await fs$1.readFile(`/proc/${pid}/status`, "utf8");
44
44
  const ownerUid = Number.parseInt(status.match(/^Uid:\s+(\d+)/m)?.[1] ?? "", 10);
45
45
  const currentUid = typeof process.getuid === "function" ? process.getuid() : -1;
46
46
  if (!Number.isSafeInteger(ownerUid) || ownerUid !== currentUid) {
@@ -62,7 +62,7 @@ async function restartHostedServiceWithoutPrivilege() {
62
62
  }
63
63
  async function readHostedSystemdCommand(unitPath) {
64
64
  try {
65
- const content = await fs.readFile(unitPath, "utf8");
65
+ const content = await fs$1.readFile(unitPath, "utf8");
66
66
  let workingDirectory = "";
67
67
  let execStart = "";
68
68
  const environment = {};
@@ -210,8 +210,8 @@ async function installHostedSystemdService(params) {
210
210
  `${SERVICE_NAME}.service`
211
211
  ]).catch(() => undefined);
212
212
  const userUnit = path.join(os.homedir(), ".config", "systemd", "user", `${SERVICE_NAME}.service`);
213
- await fs.rm(userUnit, { force: true }).catch(() => undefined);
214
- await fs.rm(`${userUnit}.d`, {
213
+ await fs$1.rm(userUnit, { force: true }).catch(() => undefined);
214
+ await fs$1.rm(`${userUnit}.d`, {
215
215
  recursive: true,
216
216
  force: true
217
217
  }).catch(() => undefined);
@@ -3,7 +3,7 @@ import { normalizeAccountId } from "../../routing/account-id.js";
3
3
  import { resolveAgentIdFromSessionKey } from "../../routing/session-key.js";
4
4
  import { loadJsonFile, saveJsonFile } from "../../infra/json-file.js";
5
5
  import { DEFAULT_THREAD_BINDING_IDLE_TIMEOUT_MS, DEFAULT_THREAD_BINDING_MAX_AGE_MS, RECENT_UNBOUND_WEBHOOK_ECHO_WINDOW_MS, THREAD_BINDINGS_VERSION } from "./thread-bindings.types.js";
6
- import syncFs from "node:fs";
6
+ import fs from "node:fs";
7
7
  import path from "node:path";
8
8
 
9
9
  //#region src/discord/monitor/thread-bindings.state.ts
@@ -320,7 +320,7 @@ function shouldPersistBindingMutations() {
320
320
  if (shouldPersistAnyBindingState()) {
321
321
  return true;
322
322
  }
323
- return syncFs.existsSync(resolveThreadBindingsPath());
323
+ return fs.existsSync(resolveThreadBindingsPath());
324
324
  }
325
325
  function saveBindingsToDisk(params = {}) {
326
326
  if (!params.force && !shouldPersistAnyBindingState()) {
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  import { SAT_RUNTIME_DEFAULTS } from "../../../config/sat-runtime-ids.js";
2
2
  import "../../../plugin-sdk/sat-runtime.js";
3
- import syncFs from "node:fs";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
 
6
6
  //#region extensions/sat-mining/src/sat-bond-layout.ts
@@ -165,7 +165,7 @@ function resolveLayoutPath(env = process.env) {
165
165
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-position-layout.json")
166
166
  ];
167
167
  for (const candidate of candidates) {
168
- if (candidate && syncFs.existsSync(candidate)) {
168
+ if (candidate && fs.existsSync(candidate)) {
169
169
  return candidate;
170
170
  }
171
171
  }
@@ -181,7 +181,7 @@ function resolvePolicyLayoutPath(env = process.env) {
181
181
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-tier-policy-layout.json")
182
182
  ];
183
183
  for (const candidate of candidates) {
184
- if (candidate && syncFs.existsSync(candidate)) {
184
+ if (candidate && fs.existsSync(candidate)) {
185
185
  return candidate;
186
186
  }
187
187
  }
@@ -197,7 +197,7 @@ function resolveStakingDistributorLayoutPath(env = process.env) {
197
197
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-distributor-layout.json")
198
198
  ];
199
199
  for (const candidate of candidates) {
200
- if (candidate && syncFs.existsSync(candidate)) {
200
+ if (candidate && fs.existsSync(candidate)) {
201
201
  return candidate;
202
202
  }
203
203
  }
@@ -213,7 +213,7 @@ function resolveStakingPositionLayoutPath(env = process.env) {
213
213
  path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-position-layout.json")
214
214
  ];
215
215
  for (const candidate of candidates) {
216
- if (candidate && syncFs.existsSync(candidate)) {
216
+ if (candidate && fs.existsSync(candidate)) {
217
217
  return candidate;
218
218
  }
219
219
  }
@@ -227,7 +227,7 @@ function loadSatBondLayout(env = process.env) {
227
227
  }
228
228
  const layoutPath = resolveLayoutPath(env);
229
229
  if (layoutPath) {
230
- const loaded = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
230
+ const loaded = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
231
231
  cachedLayout = {
232
232
  mode,
233
233
  value: loaded
@@ -247,7 +247,7 @@ function loadSatBondPolicyLayout(env = process.env) {
247
247
  }
248
248
  const layoutPath = resolvePolicyLayoutPath(env);
249
249
  if (layoutPath) {
250
- cachedPolicyLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
250
+ cachedPolicyLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
251
251
  return cachedPolicyLayout;
252
252
  }
253
253
  cachedPolicyLayout = DEDICATED_FALLBACK_POLICY_LAYOUT;
@@ -260,7 +260,7 @@ function loadSatBondStakingDistributorLayout(env = process.env) {
260
260
  }
261
261
  const layoutPath = resolveStakingDistributorLayoutPath(env);
262
262
  if (layoutPath) {
263
- cachedStakingDistributorLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
263
+ cachedStakingDistributorLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
264
264
  return cachedStakingDistributorLayout;
265
265
  }
266
266
  cachedStakingDistributorLayout ??= DEDICATED_FALLBACK_STAKING_DISTRIBUTOR_LAYOUT;
@@ -273,7 +273,7 @@ function loadSatBondStakingPositionLayout(env = process.env) {
273
273
  }
274
274
  const layoutPath = resolveStakingPositionLayoutPath(env);
275
275
  if (layoutPath) {
276
- cachedStakingPositionLayout = JSON.parse(syncFs.readFileSync(layoutPath, "utf-8"));
276
+ cachedStakingPositionLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
277
277
  return cachedStakingPositionLayout;
278
278
  }
279
279
  cachedStakingPositionLayout ??= DEDICATED_FALLBACK_STAKING_POSITION_LAYOUT;
@@ -337,6 +337,12 @@ var SatSubmissionUnresolvedError = class extends Error {
337
337
  this.signature = params.signature;
338
338
  }
339
339
  };
340
+ var SatSubmissionDefinitiveFailureError = class extends Error {
341
+ constructor(message) {
342
+ super(message);
343
+ this.name = "SatSubmissionDefinitiveFailureError";
344
+ }
345
+ };
340
346
  async function executeTypedSatIntent(params) {
341
347
  const isLookupTable = params.lookupTable != null;
342
348
  const isVaultBond = !isLookupTable && params.action !== "cleanupBatch" && VAULT_BOND_ACTIONS.has(params.action);
@@ -385,6 +391,7 @@ async function executeTypedSatIntent(params) {
385
391
  operationKey,
386
392
  intentDigest,
387
393
  action: params.action,
394
+ allowFailedRetry: isLookupTable,
388
395
  env: params.env
389
396
  });
390
397
  if (!claim.claimed) {
@@ -399,6 +406,7 @@ async function executeTypedSatIntent(params) {
399
406
  operationKey,
400
407
  intentDigest,
401
408
  action: params.action,
409
+ allowFailedRetry: isLookupTable,
402
410
  env: params.env,
403
411
  owner: claim.owner
404
412
  });
@@ -643,7 +651,7 @@ async function executeTypedSatIntent(params) {
643
651
  env: params.env
644
652
  });
645
653
  if (operation.state === "failed") {
646
- throw new Error(operation.error || `SAT signer operation ${requestId} failed`);
654
+ throw new SatSubmissionDefinitiveFailureError(operation.error || `SAT signer operation ${requestId} failed`);
647
655
  }
648
656
  if (operation.state !== "confirmed" || !operation.signature) {
649
657
  throw new SatSubmissionUnresolvedError({
@@ -670,8 +678,11 @@ async function executeTypedSatLookupOperation(params) {
670
678
  action: params.action,
671
679
  lookupTable: {
672
680
  address: params.address,
681
+ cycleId: String(params.cycleId),
682
+ pageIndex: String(params.pageIndex),
673
683
  ...params.recentSlot == null ? {} : { recentSlot: String(params.recentSlot) },
674
- ...params.addresses?.length ? { addresses: params.addresses } : {}
684
+ ...params.addresses?.length ? { addresses: params.addresses } : {},
685
+ ...params.parent ? { parent: params.parent } : {}
675
686
  },
676
687
  cluster: resolveSatCluster(params.cfg),
677
688
  env: params.context.effectiveEnv
@@ -708,67 +719,178 @@ async function waitForSatLookupTable(params) {
708
719
  }
709
720
  throw new Error(`SAT distribution lookup table did not become active for use within 6s${lastError instanceof Error ? `: ${lastError.message}` : ""}`);
710
721
  }
722
+ const SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW = 128;
723
+ function recoverSatLookupTableRecentSlot(params) {
724
+ const oldestSlot = Math.max(0, params.currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
725
+ for (let recentSlot = params.currentSlot; recentSlot >= oldestSlot; recentSlot -= 1) {
726
+ const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
727
+ authority: params.context.signer,
728
+ payer: params.context.signer,
729
+ recentSlot
730
+ });
731
+ if (derivedAddress.toBase58() === params.lookupTable) {
732
+ return recentSlot;
733
+ }
734
+ }
735
+ return undefined;
736
+ }
737
+ async function readReconciledSatLookupBinding(params) {
738
+ const request = {
739
+ cycleId: String(params.cycleId),
740
+ pageIndex: String(params.pageIndex)
741
+ };
742
+ const readBinding = async () => await callLocalSocketSigner(params.context.socketPath, {
743
+ op: "v2.satLookup.binding.get",
744
+ walletId: params.context.walletId,
745
+ request
746
+ });
747
+ const binding = await readBinding();
748
+ if (binding.cycleId !== request.cycleId || binding.pageIndex !== request.pageIndex || binding.bound !== Boolean(binding.address) || Boolean(binding.mutationRequestId) !== Boolean(binding.mutationState)) {
749
+ throw new Error("signer returned an invalid SAT lookup-table binding");
750
+ }
751
+ if (binding.mutationState === "reserved") {
752
+ throw new Error("SAT lookup-table mutation is already in progress");
753
+ }
754
+ if ((binding.mutationState === "broadcast" || binding.mutationState === "unknown") && binding.mutationRequestId) {
755
+ const operation = assertSatSignerOperationIdentity(await callLocalSocketSigner(params.context.socketPath, {
756
+ op: "v2.operation.reconcile",
757
+ walletId: params.context.walletId,
758
+ request: { requestId: binding.mutationRequestId }
759
+ }), binding.mutationRequestId);
760
+ if (operation.state === "reserved" || operation.state === "broadcast" || operation.state === "unknown") {
761
+ throw new SatSubmissionUnresolvedError({
762
+ requestId: operation.requestId,
763
+ state: operation.state,
764
+ signature: operation.signature,
765
+ detail: operation.error
766
+ });
767
+ }
768
+ const reconciled = await readBinding();
769
+ if (reconciled.cycleId !== request.cycleId || reconciled.pageIndex !== request.pageIndex || reconciled.bound !== Boolean(reconciled.address) || Boolean(reconciled.mutationRequestId) !== Boolean(reconciled.mutationState)) {
770
+ throw new Error("signer returned an invalid reconciled SAT lookup-table binding");
771
+ }
772
+ return reconciled;
773
+ }
774
+ return binding;
775
+ }
711
776
  async function ensureSatDistributionLookupTable(params) {
712
777
  assertSatLookupTableEnabled(params.context.effectiveEnv);
713
778
  const desiredAddresses = [...new Set(params.addresses.map((entry) => entry.trim()))].filter(Boolean);
714
779
  if (desiredAddresses.length === 0 || desiredAddresses.length > 256) {
715
780
  throw new Error("SAT distribution lookup table requires 1-256 exact account addresses");
716
781
  }
717
- let lookupTable = params.lookupTableAddress?.trim() ?? "";
782
+ const signerBinding = await readReconciledSatLookupBinding({
783
+ context: params.context,
784
+ cycleId: params.cycleId,
785
+ pageIndex: params.pageIndex
786
+ });
787
+ let lookupTable = signerBinding.address?.trim() || "";
788
+ if (signerBinding.bound && lookupTable) {
789
+ await params.onLookupTableResolved?.(lookupTable);
790
+ }
718
791
  let state = lookupTable ? await readValidatedSatLookupTable({
719
792
  config: params.config,
720
793
  address: lookupTable,
721
794
  authority: params.context.signerAddress
722
795
  }) : null;
796
+ if (lookupTable && state) {
797
+ await params.onLookupTableResolved?.(lookupTable);
798
+ }
723
799
  let created = false;
724
800
  const transactionHashes = [];
725
- if (!lookupTable) {
801
+ let createRecentSlot;
802
+ const attemptedCreateAddresses = new Set();
803
+ if (lookupTable && !state) {
726
804
  const currentSlot = await inspectSatChainSlot(params.config);
727
- const recentSlot = Math.max(0, currentSlot - 1);
728
- const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
729
- authority: params.context.signer,
730
- payer: params.context.signer,
731
- recentSlot
732
- });
733
- lookupTable = derivedAddress.toBase58();
734
- state = await readValidatedSatLookupTable({
735
- config: params.config,
736
- address: lookupTable,
737
- authority: params.context.signerAddress
805
+ createRecentSlot = recoverSatLookupTableRecentSlot({
806
+ context: params.context,
807
+ lookupTable,
808
+ currentSlot
738
809
  });
739
- if (!state) {
740
- try {
741
- const submitted = await executeTypedSatLookupOperation({
742
- context: params.context,
743
- cfg: params.cfg,
744
- action: "create",
745
- address: lookupTable,
810
+ if (createRecentSlot == null) {
811
+ if (signerBinding.bound) {
812
+ throw new Error("SAT distribution lookup table identity is not recoverable within the signer freshness window");
813
+ }
814
+ lookupTable = "";
815
+ } else {
816
+ attemptedCreateAddresses.add(lookupTable);
817
+ await params.onLookupTableResolved?.(lookupTable);
818
+ }
819
+ }
820
+ while (!state) {
821
+ if (!lookupTable || createRecentSlot == null) {
822
+ const currentSlot = await inspectSatChainSlot(params.config);
823
+ const oldestSlot = Math.max(0, currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
824
+ let selected = false;
825
+ for (let recentSlot = Math.max(0, currentSlot - 1); recentSlot >= oldestSlot; recentSlot -= 1) {
826
+ const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
827
+ authority: params.context.signer,
828
+ payer: params.context.signer,
746
829
  recentSlot
747
830
  });
748
- transactionHashes.push(submitted.signature);
749
- created = true;
750
- } catch (error) {
751
- if (error instanceof SatSubmissionUnresolvedError) {
752
- throw error;
831
+ const candidate = derivedAddress.toBase58();
832
+ if (attemptedCreateAddresses.has(candidate)) {
833
+ continue;
753
834
  }
754
- try {
755
- state = await waitForSatLookupTable({
756
- config: params.config,
757
- address: lookupTable,
758
- authority: params.context.signerAddress,
759
- requireNextSlot: false
760
- });
761
- } catch {
762
- throw error;
835
+ attemptedCreateAddresses.add(candidate);
836
+ const existingCandidate = await readValidatedSatLookupTable({
837
+ config: params.config,
838
+ address: candidate,
839
+ authority: params.context.signerAddress
840
+ });
841
+ if (existingCandidate) {
842
+ continue;
763
843
  }
844
+ lookupTable = candidate;
845
+ createRecentSlot = recentSlot;
846
+ await params.onLookupTableResolved?.(lookupTable);
847
+ selected = true;
848
+ break;
764
849
  }
765
- state ??= await waitForSatLookupTable({
766
- config: params.config,
850
+ if (!selected) {
851
+ throw new Error("SAT distribution lookup table has no free signer-owned address in the freshness window");
852
+ }
853
+ }
854
+ try {
855
+ const submitted = await executeTypedSatLookupOperation({
856
+ context: params.context,
857
+ cfg: params.cfg,
858
+ action: "create",
767
859
  address: lookupTable,
768
- authority: params.context.signerAddress,
769
- requireNextSlot: false
860
+ cycleId: params.cycleId,
861
+ pageIndex: params.pageIndex,
862
+ recentSlot: createRecentSlot,
863
+ parent: params.parent
770
864
  });
865
+ transactionHashes.push(submitted.signature);
866
+ created = true;
867
+ } catch (error) {
868
+ if (error instanceof SatSubmissionDefinitiveFailureError && error.message.includes("address is already bound to another cycle and page")) {
869
+ lookupTable = "";
870
+ createRecentSlot = undefined;
871
+ continue;
872
+ }
873
+ if (error instanceof SatSubmissionUnresolvedError || error instanceof SatSubmissionDefinitiveFailureError) {
874
+ throw error;
875
+ }
876
+ try {
877
+ state = await waitForSatLookupTable({
878
+ config: params.config,
879
+ address: lookupTable,
880
+ authority: params.context.signerAddress,
881
+ requireNextSlot: false
882
+ });
883
+ } catch {
884
+ throw error;
885
+ }
771
886
  }
887
+ state ??= await waitForSatLookupTable({
888
+ config: params.config,
889
+ address: lookupTable,
890
+ authority: params.context.signerAddress,
891
+ requireNextSlot: false
892
+ });
893
+ break;
772
894
  }
773
895
  if (!state) {
774
896
  throw new Error("SAT distribution lookup table was not found at the confirmed commitment");
@@ -783,7 +905,10 @@ async function ensureSatDistributionLookupTable(params) {
783
905
  cfg: params.cfg,
784
906
  action: "extend",
785
907
  address: lookupTable,
786
- addresses
908
+ cycleId: params.cycleId,
909
+ pageIndex: params.pageIndex,
910
+ addresses,
911
+ parent: params.parent
787
912
  });
788
913
  transactionHashes.push(submitted.signature);
789
914
  } catch (error) {
@@ -841,7 +966,11 @@ async function submitInstructionViaLocalSigner(params) {
841
966
  cfg: params.cfg,
842
967
  config: params.cfg,
843
968
  lookupTableAddress: params.manageAddressLookupTable.lookupTableAddress,
844
- addresses: baseRequest.keys.filter((key) => !key.isSigner).map((key) => key.pubkey)
969
+ cycleId: params.manageAddressLookupTable.cycleId,
970
+ pageIndex: params.manageAddressLookupTable.pageIndex,
971
+ addresses: baseRequest.keys.filter((key) => !key.isSigner).map((key) => key.pubkey),
972
+ parent: baseRequest,
973
+ onLookupTableResolved: params.manageAddressLookupTable.onLookupTableResolved
845
974
  });
846
975
  }
847
976
  const request = managedLookupTable ? {
@@ -2748,7 +2877,12 @@ async function submitSatDistributeCyclePage(_config, params) {
2748
2877
  cfg,
2749
2878
  env: process.env,
2750
2879
  data: buildDistributeCyclePageData(params),
2751
- ...lookupTableAddress || requiresLookupTable ? { manageAddressLookupTable: { ...lookupTableAddress ? { lookupTableAddress } : {} } } : {},
2880
+ ...lookupTableAddress || requiresLookupTable ? { manageAddressLookupTable: {
2881
+ cycleId: params.cycleId,
2882
+ pageIndex: params.pageIndex,
2883
+ ...lookupTableAddress ? { lookupTableAddress } : {},
2884
+ ...params.onLookupTableResolved ? { onLookupTableResolved: params.onLookupTableResolved } : {}
2885
+ } } : {},
2752
2886
  accountResolver: async (solana, signer) => {
2753
2887
  const programId = new solana.PublicKey(SAT_PROGRAM_ID());
2754
2888
  const [satCycleState] = solana.PublicKey.findProgramAddressSync([Buffer.from(SAT_CYCLE_STATE_SEED), encodeU64(params.cycleId)], programId);
@@ -2857,9 +2991,17 @@ async function submitSatCleanupDistributionLookupTable(_config, params) {
2857
2991
  if (!context.walletId) {
2858
2992
  throw new Error("typed SAT lookup-table cleanup requires an explicit mining walletId");
2859
2993
  }
2860
- const lookupTable = params.lookupTableAddress.trim();
2861
- if (!lookupTable) {
2862
- throw new Error("SAT distribution lookup table address is required");
2994
+ const binding = await readReconciledSatLookupBinding({
2995
+ context: {
2996
+ ...context,
2997
+ walletId: context.walletId
2998
+ },
2999
+ cycleId: params.cycleId,
3000
+ pageIndex: params.pageIndex
3001
+ });
3002
+ const lookupTable = binding.address?.trim() ?? "";
3003
+ if (binding.cycleId !== String(params.cycleId) || binding.pageIndex !== String(params.pageIndex) || !binding.bound || !lookupTable) {
3004
+ throw new Error("SAT distribution lookup table is not bound to this wallet, cycle, and page");
2863
3005
  }
2864
3006
  const submitted = await executeTypedSatLookupOperation({
2865
3007
  context: {
@@ -2868,7 +3010,9 @@ async function submitSatCleanupDistributionLookupTable(_config, params) {
2868
3010
  },
2869
3011
  cfg,
2870
3012
  action: params.action,
2871
- address: lookupTable
3013
+ address: lookupTable,
3014
+ cycleId: params.cycleId,
3015
+ pageIndex: params.pageIndex
2872
3016
  });
2873
3017
  return {
2874
3018
  lookupTable,
@@ -223,13 +223,33 @@ async function claimSatSubmission(params) {
223
223
  walletId: params.walletId,
224
224
  env
225
225
  });
226
- const requestId = buildSatSubmissionRequestId(params);
227
226
  const owner = params.owner ?? `${process.pid}:${randomUUID()}`;
228
227
  return await withSatSubmissionLedgerLock(filePath, async () => {
229
228
  const ledger = await readLedger(filePath);
229
+ let operationKey = params.operationKey;
230
+ let requestId = buildSatSubmissionRequestId({
231
+ ...params,
232
+ operationKey
233
+ });
234
+ if (params.allowFailedRetry) {
235
+ for (let retry = 1; retry <= 32; retry += 1) {
236
+ const prior = ledger.records[requestId];
237
+ if (!prior || prior.state !== "failed") {
238
+ break;
239
+ }
240
+ operationKey = `${params.operationKey}:retry:${retry}`;
241
+ requestId = buildSatSubmissionRequestId({
242
+ ...params,
243
+ operationKey
244
+ });
245
+ if (retry === 32 && ledger.records[requestId]?.state === "failed") {
246
+ throw new Error("SAT submission exhausted its safe pre-broadcast retry limit");
247
+ }
248
+ }
249
+ }
230
250
  const existing = ledger.records[requestId];
231
251
  if (existing) {
232
- if (existing.intentDigest !== params.intentDigest || existing.walletId !== params.walletId || existing.workflowId !== params.workflowId || existing.operationKey !== params.operationKey) {
252
+ if (existing.intentDigest !== params.intentDigest || existing.walletId !== params.walletId || existing.workflowId !== params.workflowId || existing.operationKey !== operationKey) {
233
253
  throw new Error(`SAT idempotency collision for ${requestId}: the workflow key is already bound to a different immutable intent digest`);
234
254
  }
235
255
  if (leaseIsLive(existing.lease) && existing.lease?.owner !== owner) {
@@ -261,7 +281,7 @@ async function claimSatSubmission(params) {
261
281
  const record = {
262
282
  requestId,
263
283
  workflowId: params.workflowId,
264
- operationKey: params.operationKey,
284
+ operationKey,
265
285
  intentDigest: params.intentDigest,
266
286
  walletId: params.walletId,
267
287
  action: params.action,
@@ -3,7 +3,7 @@ import { resolveProcessScopedMap } from "../shared/process-scoped-map.js";
3
3
  import { acquireFileLock, withFileLock } from "../plugin-sdk/file-lock.js";
4
4
  import "../infra/file-lock.js";
5
5
  import { serializeWalletState, writeWalletStateFileAtomically } from "../wallet/wallet-atomic-state.js";
6
- import syncFs from "node:fs";
6
+ import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import { createHash } from "node:crypto";
9
9
 
@@ -85,17 +85,17 @@ function readMarketplaceDeliveryOutbox(params) {
85
85
  return null;
86
86
  }
87
87
  const filePath = recordPath(deliveryId, params.env ?? process.env);
88
- if (!syncFs.existsSync(filePath)) {
88
+ if (!fs.existsSync(filePath)) {
89
89
  return null;
90
90
  }
91
91
  try {
92
- return validateRecord(JSON.parse(syncFs.readFileSync(filePath, "utf8")), deliveryId);
92
+ return validateRecord(JSON.parse(fs.readFileSync(filePath, "utf8")), deliveryId);
93
93
  } catch (error) {
94
94
  throw new Error("marketplace delivery outbox is unreadable; refusing to resend", { cause: error });
95
95
  }
96
96
  }
97
97
  function writeRecord(record, env) {
98
- syncFs.mkdirSync(outboxDirectory(env), {
98
+ fs.mkdirSync(outboxDirectory(env), {
99
99
  recursive: true,
100
100
  mode: 448
101
101
  });
@@ -109,7 +109,7 @@ async function reserveMarketplaceDelivery(params) {
109
109
  throw new Error("marketplace delivery identity is incomplete");
110
110
  }
111
111
  const intentDigest = marketplaceDeliveryIntentDigest(params.intent);
112
- syncFs.mkdirSync(outboxDirectory(env), {
112
+ fs.mkdirSync(outboxDirectory(env), {
113
113
  recursive: true,
114
114
  mode: 448
115
115
  });