@fased/fased 0.1.61 → 0.1.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +38 -30
  3. package/config/dependency-ownership.json +1 -1
  4. package/config/signer-policies/README.md +49 -0
  5. package/config/signer-policies/agent.json.template +32 -0
  6. package/config/signer-policies/mining.json.template +69 -0
  7. package/config/signer-policies/network.json.template +5 -0
  8. package/config/signer-policies/vault.json.template +70 -0
  9. package/config/signer-protocol-v2.json +76 -0
  10. package/config/typescript-noemit-baseline.json +680 -0
  11. package/dist/acp/client.js +2 -2
  12. package/dist/acp/secret-file.js +2 -2
  13. package/dist/agents/agent-scope.js +2 -2
  14. package/dist/agents/apply-patch.js +8 -8
  15. package/dist/agents/auth-profiles/paths.js +2 -2
  16. package/dist/agents/auth-profiles/store.js +269 -33
  17. package/dist/agents/bash-tools.exec.js +10 -4
  18. package/dist/agents/bash-tools.shared.js +2 -2
  19. package/dist/agents/cli-credentials.js +4 -4
  20. package/dist/agents/current-model-catalog.js +3 -3
  21. package/dist/agents/docs-path.js +3 -3
  22. package/dist/agents/embedded-pi-mcp.js +4 -4
  23. package/dist/agents/identity-avatar.js +3 -3
  24. package/dist/agents/identity-file.js +2 -2
  25. package/dist/agents/memory-search.js +7 -1
  26. package/dist/agents/model-catalog-access.js +1 -2
  27. package/dist/agents/model-catalog-snapshot.js +1 -1
  28. package/dist/agents/model-catalog-source.js +1 -1
  29. package/dist/agents/model-metadata.js +1 -1
  30. package/dist/agents/model-selection.js +2 -28
  31. package/dist/agents/models-config.providers.js +6 -6
  32. package/dist/agents/openai-codex-app-server.js +5 -5
  33. package/dist/agents/pi-embedded-runner/compact.js +15 -7
  34. package/dist/agents/pi-embedded-runner/model.js +1 -1
  35. package/dist/agents/pi-embedded-runner/run/attempt.js +24 -13
  36. package/dist/agents/pi-embedded-runner/run.js +2 -0
  37. package/dist/agents/pi-embedded-runner/tool-split.js +40 -2
  38. package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
  39. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
  40. package/dist/agents/pi-model-discovery.js +6 -6
  41. package/dist/agents/pi-project-settings.js +3 -3
  42. package/dist/agents/pi-tool-definition-adapter.js +16 -1
  43. package/dist/agents/pi-tools.js +2 -1
  44. package/dist/agents/sandbox/config.js +1 -1
  45. package/dist/agents/sandbox/context.js +27 -2
  46. package/dist/agents/sandbox/fs-bridge.js +2 -2
  47. package/dist/agents/session-dirs.js +4 -4
  48. package/dist/agents/session-write-lock.js +13 -13
  49. package/dist/agents/shell-utils.js +5 -5
  50. package/dist/agents/skills/bundled-dir.js +4 -4
  51. package/dist/agents/skills/env-overrides.js +38 -28
  52. package/dist/agents/skills/local-loader.js +6 -6
  53. package/dist/agents/skills/plugin-skills.js +2 -2
  54. package/dist/agents/skills/trust.js +93 -0
  55. package/dist/agents/skills/workspace.js +141 -13
  56. package/dist/agents/skills-clawhub.js +36 -11
  57. package/dist/agents/skills-install-download.js +7 -7
  58. package/dist/agents/skills-install-plan.js +2 -2
  59. package/dist/agents/skills-install.js +2 -2
  60. package/dist/agents/skills-marketplace-scan.js +49 -0
  61. package/dist/agents/skills-status.js +2 -2
  62. package/dist/agents/subagent-depth.js +2 -2
  63. package/dist/agents/system-prompt-params.js +2 -2
  64. package/dist/agents/tools/marketplace-offer-draft-tool.js +1 -1
  65. package/dist/agents/tools/mining-tool.js +1 -1
  66. package/dist/agents/tools/session-status-tool.js +1 -1
  67. package/dist/agents/tools/wallet-action-tool.js +172 -36
  68. package/dist/agents/tools/wallet-skill-policy.js +65 -23
  69. package/dist/agents/tools/wallet-tool.js +7 -11
  70. package/dist/agents/workspace.js +22 -22
  71. package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
  72. package/dist/auto-reply/reply/agent-runner.js +2 -2
  73. package/dist/auto-reply/reply/commands-export-session.js +7 -7
  74. package/dist/auto-reply/reply/directive-handling.fast-lane.js +2 -1
  75. package/dist/auto-reply/reply/directive-handling.impl.js +2 -1
  76. package/dist/auto-reply/reply/directive-handling.model.js +2 -1
  77. package/dist/auto-reply/reply/directive-handling.persist.js +2 -2
  78. package/dist/auto-reply/reply/get-reply-directives-apply.js +2 -0
  79. package/dist/auto-reply/reply/get-reply-inline-actions.js +25 -1
  80. package/dist/auto-reply/reply/model-selection.js +7 -4
  81. package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
  82. package/dist/auto-reply/reply/post-compaction-context.js +3 -3
  83. package/dist/auto-reply/reply/session-reset-model.js +4 -4
  84. package/dist/auto-reply/reply/session.js +3 -3
  85. package/dist/auto-reply/skill-commands.js +3 -3
  86. package/dist/auto-reply/status.js +6 -6
  87. package/dist/brand.js +1 -1
  88. package/dist/browser/chrome.executables.js +3 -3
  89. package/dist/browser/chrome.js +3 -3
  90. package/dist/browser/chrome.profile-decoration.js +6 -6
  91. package/dist/browser/profiles-service.js +2 -2
  92. package/dist/browser/server-context.js +2 -2
  93. package/dist/browser/trash.js +4 -4
  94. package/dist/build-info.json +3 -3
  95. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  96. package/dist/canvas-host/server.js +4 -4
  97. package/dist/capabilities/catalog.js +3 -3
  98. package/dist/channel-web.js +2 -2
  99. package/dist/channels/plugins/catalog.js +3 -3
  100. package/dist/cli/browser-cli-extension.js +6 -6
  101. package/dist/cli/command-format.js +2 -2
  102. package/dist/cli/cron-cli/register.cron-simple.js +2 -2
  103. package/dist/cli/dns-cli.js +9 -9
  104. package/dist/cli/gateway-cli/dev.js +5 -5
  105. package/dist/cli/gateway-cli/run.js +10 -2
  106. package/dist/cli/hooks-cli.js +5 -5
  107. package/dist/cli/lightweight/gateway-runtime-probe.js +2 -2
  108. package/dist/cli/memory-cli.js +7 -7
  109. package/dist/cli/nodes-media-utils.js +2 -2
  110. package/dist/cli/plugins-cli.js +2 -2
  111. package/dist/cli/program/command-registry.js +1 -1
  112. package/dist/cli/program/register.onboard.js +2 -3
  113. package/dist/cli/program/register.wallet.js +16 -123
  114. package/dist/cli/providers-cli.js +1 -1
  115. package/dist/cli/sat-cli.js +129 -2
  116. package/dist/cli/secrets-cli.js +3 -3
  117. package/dist/cli/update-cli/update-command.js +260 -11
  118. package/dist/cli/windows-argv.js +2 -2
  119. package/dist/commands/auth-choice.apply.api-providers.js +3 -3
  120. package/dist/commands/dashboard-link.js +3 -3
  121. package/dist/commands/doctor-config-flow.js +1 -1
  122. package/dist/commands/doctor-install.js +5 -5
  123. package/dist/commands/doctor-legacy-config.js +2 -13
  124. package/dist/commands/doctor-memory-search.js +2 -2
  125. package/dist/commands/doctor-platform-notes.js +2 -2
  126. package/dist/commands/doctor-sandbox.js +2 -2
  127. package/dist/commands/doctor-state-integrity.js +23 -23
  128. package/dist/commands/doctor-workspace.js +3 -3
  129. package/dist/commands/doctor.js +3 -3
  130. package/dist/commands/managed-up.js +2 -2
  131. package/dist/commands/model-picker.js +6 -6
  132. package/dist/commands/models/auth.js +1 -1
  133. package/dist/commands/onboard-auth.config-gateways.js +1 -1
  134. package/dist/commands/onboard-auth.credentials.js +35 -11
  135. package/dist/commands/onboard-non-interactive/local/wallet-config.js +28 -27
  136. package/dist/commands/onboard-non-interactive/local.js +5 -1
  137. package/dist/commands/onboarding/plugin-install.js +2 -2
  138. package/dist/commands/sessions-cleanup.js +2 -2
  139. package/dist/commands/signal-install.js +6 -6
  140. package/dist/commands/status-all/channels.js +2 -2
  141. package/dist/commands/wallet.js +570 -1913
  142. package/dist/config/cache-utils.js +2 -2
  143. package/dist/config/config.js +2 -2
  144. package/dist/config/includes.js +5 -5
  145. package/dist/config/io.js +66 -4
  146. package/dist/config/paths.js +3 -3
  147. package/dist/config/sat-runtime-ids.js +3 -3
  148. package/dist/config/schema.help.js +8 -7
  149. package/dist/config/schema.labels.js +5 -4
  150. package/dist/config/sessions/disk-budget.js +6 -6
  151. package/dist/config/sessions/paths.js +2 -2
  152. package/dist/config/sessions/store.js +17 -17
  153. package/dist/config/sessions/transcript.js +4 -4
  154. package/dist/config/talk.js +2 -2
  155. package/dist/config/zod-schema.agent-runtime.js +1 -0
  156. package/dist/config/zod-schema.js +5 -0
  157. package/dist/control-ui/assets/{app-BXA4gPvN.js → app-bR-fO5ty.js} +1511 -1555
  158. package/dist/control-ui/assets/{config-CU5Zi8Dh.js → config-LeImukCW.js} +10 -10
  159. package/dist/control-ui/assets/{federation-D10Q4eP_.js → federation-DgA9e-Pn.js} +364 -422
  160. package/dist/control-ui/assets/{index-D2QbJhVg.js → index-ckCxHwjy.js} +3 -3
  161. package/dist/control-ui/assets/{mining-BdhMn18r.js → mining-BgHFh0ei.js} +134 -114
  162. package/dist/control-ui/assets/mining-commit-DFpB_4JN.js +2 -0
  163. package/dist/control-ui/assets/{open-external-url-DwSiwMPl.js → open-external-url-ulF1B-sA.js} +3 -3
  164. package/dist/control-ui/assets/{providers-QMn4w2_f.js → providers-CIx9fxc6.js} +2 -2
  165. package/dist/control-ui/assets/{wallet-C2g294QT.js → wallet-DvStR_AT.js} +259 -377
  166. package/dist/control-ui/index.html +1 -1
  167. package/dist/control-ui/version.json +1 -1
  168. package/dist/cron/service/store.js +2 -2
  169. package/dist/cron/store.js +6 -6
  170. package/dist/daemon/systemd-system.js +60 -54
  171. package/dist/discord/monitor/thread-bindings.state.js +2 -2
  172. package/dist/extensions/sat-mining/src/protocol-contract.js +43 -3
  173. package/dist/extensions/sat-mining/src/rpc-read.js +235 -67
  174. package/dist/extensions/sat-mining/src/sat-bond-layout.js +14 -11
  175. package/dist/extensions/sat-mining/src/signer-codec-manifest.js +406 -0
  176. package/dist/extensions/sat-mining/src/solana-submit.js +1038 -397
  177. package/dist/extensions/sat-mining/src/submission-ledger.js +349 -0
  178. package/dist/federation/auto-connect.js +98 -8
  179. package/dist/federation/marketplace-capability-adapter.js +33 -7
  180. package/dist/federation/marketplace-delivery-outbox.js +196 -0
  181. package/dist/federation/marketplace-delivery.js +351 -215
  182. package/dist/federation/marketplace-direct-payment.js +272 -141
  183. package/dist/federation/marketplace-escrow.js +607 -249
  184. package/dist/federation/marketplace-settlement-ledger.js +352 -0
  185. package/dist/federation/offers.js +9 -7
  186. package/dist/federation/peer-auth-v2.js +529 -0
  187. package/dist/gateway/a2a-http.js +425 -96
  188. package/dist/gateway/a2a-settlement.js +259 -153
  189. package/dist/gateway/a2a-task-store.js +524 -0
  190. package/dist/gateway/auth.js +38 -2
  191. package/dist/gateway/config-reload.js +46 -33
  192. package/dist/gateway/control-ui-boot-check.js +6 -6
  193. package/dist/gateway/control-ui-login.js +7 -7
  194. package/dist/gateway/control-ui.js +9 -9
  195. package/dist/gateway/durable-capacity.js +31 -0
  196. package/dist/gateway/federation-http.js +540 -135
  197. package/dist/gateway/federation-marketplace-run-store.js +397 -0
  198. package/dist/gateway/federation-marketplace.js +535 -230
  199. package/dist/gateway/hooks-mapping.js +4 -4
  200. package/dist/gateway/mutating-admin-rpc-rate-limit.js +5 -0
  201. package/dist/gateway/security-path.js +1 -1
  202. package/dist/gateway/server-discovery.js +2 -2
  203. package/dist/gateway/server-http.js +1088 -1209
  204. package/dist/gateway/server-methods/chat.js +3 -3
  205. package/dist/gateway/server-methods/models.js +1 -1
  206. package/dist/gateway/server-methods/secrets.js +40 -0
  207. package/dist/gateway/server-methods/sessions.js +6 -6
  208. package/dist/gateway/server-methods/usage.js +2 -2
  209. package/dist/gateway/server-methods.js +1 -2
  210. package/dist/gateway/server-reload-handlers.js +196 -66
  211. package/dist/gateway/server-runtime-config.js +1 -1
  212. package/dist/gateway/server-secrets-runtime.js +288 -0
  213. package/dist/gateway/server.impl.js +73 -42
  214. package/dist/gateway/session-compaction-checkpoints.js +4 -4
  215. package/dist/gateway/session-utils.fs.js +24 -24
  216. package/dist/gateway/session-utils.js +6 -6
  217. package/dist/gateway/sessions-patch.js +3 -5
  218. package/dist/hooks/bundled-dir.js +4 -4
  219. package/dist/hooks/gmail-setup-utils.js +6 -6
  220. package/dist/hooks/import-url.js +2 -2
  221. package/dist/hooks/loader.js +4 -4
  222. package/dist/hooks/workspace.js +7 -7
  223. package/dist/index.js +4 -2
  224. package/dist/infra/archive.js +17 -17
  225. package/dist/infra/boundary-file-read.js +2 -2
  226. package/dist/infra/boundary-path.js +15 -15
  227. package/dist/infra/brew.js +2 -2
  228. package/dist/infra/control-ui-assets.js +14 -14
  229. package/dist/infra/device-auth-store.js +8 -8
  230. package/dist/infra/device-identity.js +8 -8
  231. package/dist/infra/dotenv.js +2 -2
  232. package/dist/infra/exec-approvals.js +8 -8
  233. package/dist/infra/exec-command-resolution.js +4 -4
  234. package/dist/infra/exec-safe-bin-trust.js +2 -2
  235. package/dist/infra/fased-root.js +5 -5
  236. package/dist/infra/fasedhub.js +64 -1
  237. package/dist/infra/fs-safe.js +14 -14
  238. package/dist/infra/gateway-lock.js +11 -11
  239. package/dist/infra/git-commit.js +5 -5
  240. package/dist/infra/git-root.js +4 -4
  241. package/dist/infra/hosted-runtime-artifact.js +3 -3
  242. package/dist/infra/is-main.js +2 -2
  243. package/dist/infra/json-file.js +7 -7
  244. package/dist/infra/local-source-paired-update.js +538 -0
  245. package/dist/infra/managed-runtime-bootstrap.js +6 -6
  246. package/dist/infra/outbound/delivery-queue.js +16 -16
  247. package/dist/infra/path-env.js +3 -3
  248. package/dist/infra/ports-lsof.js +4 -4
  249. package/dist/infra/provider-usage.auth.js +3 -3
  250. package/dist/infra/restart.js +41 -10
  251. package/dist/infra/safe-open-sync.js +2 -2
  252. package/dist/infra/session-cost-usage.js +9 -9
  253. package/dist/infra/shell-env.js +2 -2
  254. package/dist/infra/state-migrations.fs.js +6 -6
  255. package/dist/infra/state-migrations.js +23 -23
  256. package/dist/infra/tmp-fased-dir.js +6 -6
  257. package/dist/infra/update-runner.js +96 -0
  258. package/dist/infra/widearea-dns.js +3 -3
  259. package/dist/infra/wsl.js +2 -2
  260. package/dist/light-update-status.js +11 -11
  261. package/dist/line/accounts.js +2 -2
  262. package/dist/line/download.js +2 -2
  263. package/dist/logging/config.js +3 -3
  264. package/dist/logging/logger.js +7 -7
  265. package/dist/managed/federation.js +3 -3
  266. package/dist/managed/tunnel.js +3 -3
  267. package/dist/media/store.js +13 -13
  268. package/dist/media-understanding/runner.js +3 -3
  269. package/dist/memory/backend-config.js +2 -1
  270. package/dist/memory/embeddings.js +2 -2
  271. package/dist/memory/internal.js +10 -10
  272. package/dist/memory/manager-sync-ops.js +7 -7
  273. package/dist/memory/repair-executor.js +17 -17
  274. package/dist/memory/session-files.js +16 -2
  275. package/dist/node-host/invoke-system-run-plan.js +8 -8
  276. package/dist/node-host/invoke.js +2 -2
  277. package/dist/node-host/runner.js +3 -3
  278. package/dist/pairing/pairing-store.js +3 -3
  279. package/dist/plugin-sdk/{accounts-DxblobYM.js → accounts-Brn3-uWN.js} +1 -1
  280. package/dist/plugin-sdk/{actions-D4UNimWa.js → actions-DRu135h0.js} +2 -2
  281. package/dist/plugin-sdk/{active-listener-CFuy106s.js → active-listener-B_NMtgPL.js} +1 -1
  282. package/dist/plugin-sdk/{audio-preflight-Bv0hUOWL.js → audio-preflight-BYxAt775.js} +27 -27
  283. package/dist/plugin-sdk/{audit-Cs0K7LBp.js → audit-C5d2z5U1.js} +1 -1
  284. package/dist/plugin-sdk/{channel-access-D5aHoTY8.js → channel-access-CcFRdRPO.js} +1 -1
  285. package/dist/plugin-sdk/{channel-access-configure-Dvch9mMQ.js → channel-access-configure-DaI5wevh.js} +1 -1
  286. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  287. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  288. package/dist/plugin-sdk/{chunk-B0FUGc5A.js → chunk-CyoyqpbG.js} +1 -1
  289. package/dist/plugin-sdk/{chunk-items-Bk--NU3E.js → chunk-items-DIRHG2gJ.js} +1 -1
  290. package/dist/plugin-sdk/command-status.d.ts +2 -2
  291. package/dist/plugin-sdk/command-status.js +27 -27
  292. package/dist/plugin-sdk/{commands-registry-DmDRhRAU.js → commands-registry-BfqdEWdF.js} +2 -2
  293. package/dist/plugin-sdk/{common-CfUOowOp.js → common-HCcXU-NR.js} +1 -1
  294. package/dist/plugin-sdk/{config-mxULv0fQ.js → config-DlWVeLFB.js} +7113 -6877
  295. package/dist/plugin-sdk/{config-schema-CGW6J3Pv.js → config-schema-BOT7kHb6.js} +6779 -3696
  296. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  297. package/dist/plugin-sdk/discord.d.ts +5 -5
  298. package/dist/plugin-sdk/discord.js +19 -19
  299. package/dist/plugin-sdk/file-lock.js +35 -4
  300. package/dist/plugin-sdk/{filesystem-manager-ZoHU8oA7.js → filesystem-manager-DoI8IBNF.js} +1 -1
  301. package/dist/plugin-sdk/{group-mentions-BHRff6j8.d.ts → group-mentions-q3hUTCt7.d.ts} +1 -1
  302. package/dist/plugin-sdk/{handle-action-DbVCF9HZ.js → handle-action-hvwapMKg.js} +13 -13
  303. package/dist/plugin-sdk/{helpers-BXbdgs5H.js → helpers-DMBU4oTo.js} +1 -1
  304. package/dist/plugin-sdk/{image-ops-D7jPxaph.js → image-ops-DQi0n_Tt.js} +1 -1
  305. package/dist/plugin-sdk/index.d.ts +9 -27
  306. package/dist/plugin-sdk/index.js +29 -29
  307. package/dist/plugin-sdk/json-store.js +6 -6
  308. package/dist/plugin-sdk/{login-BRxww6nv.js → login-Ca583Okc.js} +3 -3
  309. package/dist/plugin-sdk/{login-qr-DJXsk9XH.js → login-qr-CGciBSNP.js} +3 -3
  310. package/dist/plugin-sdk/{manager-Y2S_5IlI.js → manager-BegWxNYX.js} +4 -4
  311. package/dist/plugin-sdk/{markdown-tables-DHLFQqaF.js → markdown-tables-DCOXEUfZ.js} +1 -1
  312. package/dist/plugin-sdk/{media-Czo4carg.js → media-CAdQF5TG.js} +47 -47
  313. package/dist/plugin-sdk/{memory-search-DTjIMw8J.js → memory-search-CrFPOeTH.js} +4 -1
  314. package/dist/plugin-sdk/{monitor-B9Cmt_Je.js → monitor-BCFDaqJ-.js} +31 -31
  315. package/dist/plugin-sdk/{monitor-B71iwAgC.js → monitor-BgbjRiPM.js} +32 -32
  316. package/dist/plugin-sdk/{openresponses-http-Du4GMmwo.js → openresponses-http-DFf87SMM.js} +27 -27
  317. package/dist/plugin-sdk/{optional-runtime-dependency-DdMbxS24.js → optional-runtime-dependency-0dznm3ZO.js} +1 -1
  318. package/dist/plugin-sdk/{outbound-Db8mRN6P.js → outbound-BgVDdHxx.js} +6 -6
  319. package/dist/plugin-sdk/{outbound-attachment-BqFjcypb.js → outbound-attachment-QqTnIhZL.js} +2 -2
  320. package/dist/plugin-sdk/{pairing-message-BMkkS038.d.ts → pairing-message-CS-9BHug.d.ts} +2 -2
  321. package/dist/plugin-sdk/{pairing-message-B3GC_7CD.js → pairing-message-D0CoLHRJ.js} +1 -1
  322. package/dist/plugin-sdk/{pairing-store-CQikgIbw.js → pairing-store-BChahgI2.js} +2 -2
  323. package/dist/plugin-sdk/{pi-model-discovery-CY3m5zJP.js → pi-model-discovery-BX_JLcEJ.js} +1 -1
  324. package/dist/plugin-sdk/{pi-model-discovery-runtime-DSh1T2pn.js → pi-model-discovery-runtime-DxTMz_XF.js} +2 -2
  325. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  326. package/dist/plugin-sdk/{pw-ai-AFUqn-tQ.js → pw-ai-natjh3rm.js} +3 -3
  327. package/dist/plugin-sdk/{qmd-manager-DSyx77KY.js → qmd-manager-CgRaTxUq.js} +1 -1
  328. package/dist/plugin-sdk/{query-expansion-CAI2kKLQ.js → query-expansion-BG3FgzF7.js} +14 -3
  329. package/dist/plugin-sdk/{replies-Fzh9PhXl.js → replies-ChYo5ZQM.js} +2 -2
  330. package/dist/plugin-sdk/{resolve-outbound-target-KpF3co6T.js → resolve-outbound-target-D-KGgHJZ.js} +1 -1
  331. package/dist/plugin-sdk/{resolve-route-CDl74O19.js → resolve-route-C8tvQm8Z.js} +1 -1
  332. package/dist/plugin-sdk/{retry-policy-D4uiqUOG.js → retry-policy-C6SjKjQA.js} +1 -1
  333. package/dist/plugin-sdk/{runtime-Bb6KRnCC.js → runtime-2B9_WKoI.js} +8 -3
  334. package/dist/plugin-sdk/{runtime-dependency-DLDmB94f.js → runtime-dependency-DczkvPxn.js} +2 -2
  335. package/dist/plugin-sdk/sat-runtime.d.ts +549 -309
  336. package/dist/plugin-sdk/sat-runtime.js +29 -29
  337. package/dist/plugin-sdk/{send-C4k4JuJN.js → send-B6KkGKZD.js} +6 -6
  338. package/dist/plugin-sdk/{send-D-uDKGIq.js → send-CFzGKJXo.js} +6 -6
  339. package/dist/plugin-sdk/{send-Du8ykP1k.js → send-DCO441U7.js} +8 -8
  340. package/dist/plugin-sdk/{send-5nFktR1n.js → send-gDoGA-7e.js} +5 -5
  341. package/dist/plugin-sdk/{send-Bfzf11VY.js → send-q9HXrSwK.js} +7 -7
  342. package/dist/plugin-sdk/{session-CS-Td9EM.js → session-DHD4ZKyG.js} +2 -2
  343. package/dist/plugin-sdk/{skill-commands-CFAlXWHk.js → skill-commands-FKEPLS7T.js} +201 -26
  344. package/dist/plugin-sdk/{slack-D_bbE6Yd.js → slack-BUTt8cxK.js} +39 -39
  345. package/dist/plugin-sdk/{slack-actions-BcMkNv1Z.js → slack-actions-DhbMcp8M.js} +11 -11
  346. package/dist/plugin-sdk/slack.d.ts +5 -5
  347. package/dist/plugin-sdk/slack.js +9 -9
  348. package/dist/plugin-sdk/{sticker-cache-Dqo9nRhi.js → sticker-cache-D0wHVqjt.js} +3 -3
  349. package/dist/plugin-sdk/{tables-bFXyRpkx.js → tables-B3jr0Pvq.js} +1 -1
  350. package/dist/plugin-sdk/{targets-DH7a9lKB.js → targets-CtSbTxYX.js} +1 -1
  351. package/dist/plugin-sdk/{telegram-actions-Cnag7JTH.js → telegram-actions-CC_qN4v0.js} +30 -30
  352. package/dist/plugin-sdk/telegram.d.ts +5 -5
  353. package/dist/plugin-sdk/telegram.js +8 -8
  354. package/dist/plugin-sdk/{thread-bindings.lifecycle-CgOvvdw8.js → thread-bindings.lifecycle-QbkNl-m6.js} +3 -3
  355. package/dist/plugin-sdk/{thread-bindings.state-CQpk44Hq.js → thread-bindings.state-D9hg_M1c.js} +2 -2
  356. package/dist/plugin-sdk/tmp-fased-dir-xOTGlzBE.d.ts +486 -0
  357. package/dist/plugin-sdk/{types-CLIvQaVg.d.ts → types-C3avNytw.d.ts} +3 -4
  358. package/dist/plugin-sdk/{types-DyhXnYUr.d.ts → types-D0kDG8l0.d.ts} +3 -2
  359. package/dist/plugin-sdk/{types-BYDL6dQj.d.ts → types-DWfbSAaM.d.ts} +2 -2
  360. package/dist/plugin-sdk/{types.plugin-_fbu40Re.d.ts → types.plugin-BcSBq42x.d.ts} +8 -3
  361. package/dist/plugin-sdk/{web-BInKQkc4.js → web-BXsJ1vqe.js} +32 -32
  362. package/dist/plugin-sdk/{whatsapp-actions-BtSc2CBv.js → whatsapp-actions-Bj_rOncr.js} +13 -13
  363. package/dist/plugin-sdk/{whatsapp-heartbeat-Bg9TuYzl.js → whatsapp-heartbeat-B1WHkJIg.js} +2 -2
  364. package/dist/plugin-sdk/whatsapp.d.ts +5 -5
  365. package/dist/plugin-sdk/whatsapp.js +12 -12
  366. package/dist/plugin-sdk/{wsl-C4DGFkOd.js → wsl-J-HscWxS.js} +3 -3
  367. package/dist/plugins/bundled-dir.js +3 -3
  368. package/dist/plugins/discovery.js +11 -11
  369. package/dist/plugins/loader.js +13 -13
  370. package/dist/plugins/manifest-registry.js +2 -2
  371. package/dist/plugins/manifest.js +4 -4
  372. package/dist/plugins/path-safety.js +3 -3
  373. package/dist/plugins/status-cache.js +9 -9
  374. package/dist/plugins/update.js +3 -3
  375. package/dist/plugins/web-search-install-catalog.js +3 -3
  376. package/dist/providers/refresh.js +1 -1
  377. package/dist/providers/registry.js +1 -1
  378. package/dist/secrets/apply.js +17 -17
  379. package/dist/secrets/audit.js +11 -11
  380. package/dist/secrets/runtime.js +1 -1
  381. package/dist/secrets/shared.js +9 -9
  382. package/dist/security/scan-paths.js +2 -2
  383. package/dist/shared/config-eval.js +2 -2
  384. package/dist/shared/pid-alive.js +2 -2
  385. package/dist/tasks/standing-orders.js +5 -5
  386. package/dist/tasks/task-flow-registry.js +5 -5
  387. package/dist/tasks/task-registry.js +5 -5
  388. package/dist/tasks/workflow-definitions.js +6 -6
  389. package/dist/telegram/token.js +5 -5
  390. package/dist/utils.js +5 -5
  391. package/dist/wallet/external-submission-ledger.js +376 -0
  392. package/dist/wallet/legacy-embedded-keystore.js +40 -0
  393. package/dist/wallet/local-socket-signer-archive.js +30 -0
  394. package/dist/wallet/local-socket-signer-lifecycle.js +97 -0
  395. package/dist/wallet/local-socket-signer-policy.js +166 -0
  396. package/dist/wallet/local-socket-signer-protocol.js +561 -118
  397. package/dist/wallet/native-signer-wallet-id.js +25 -0
  398. package/dist/wallet/providers/alchemy-adapter.js +3 -0
  399. package/dist/wallet/providers/local-socket-signer-adapter.js +382 -107
  400. package/dist/wallet/providers/turnkey-adapter.js +292 -34
  401. package/dist/wallet/providers/wallet-standard-adapter.js +100 -0
  402. package/dist/wallet/signer-network-admin.js +184 -0
  403. package/dist/wallet/signer-protocol-v2.generated.js +90 -0
  404. package/dist/wallet/solana-bond-signing.js +157 -69
  405. package/dist/wallet/solana-reviewed-transaction.js +375 -0
  406. package/dist/wallet/solana-swap.js +520 -64
  407. package/dist/wallet/solana-transaction-inspection.js +106 -4
  408. package/dist/wallet/solana-trigger.js +658 -320
  409. package/dist/wallet/turnkey-reviewed-state.js +370 -0
  410. package/dist/wallet/wallet-approval-auth.js +20 -31
  411. package/dist/wallet/wallet-atomic-state.js +53 -0
  412. package/dist/wallet/wallet-audit-log.js +5 -5
  413. package/dist/wallet/wallet-canary.js +0 -1
  414. package/dist/wallet/wallet-inbound-events.js +19 -14
  415. package/dist/wallet/wallet-observability.js +5 -5
  416. package/dist/wallet/wallet-policy-simulation.js +1 -1
  417. package/dist/wallet/wallet-policy.js +95 -41
  418. package/dist/wallet/wallet-provider-capabilities.js +28 -4
  419. package/dist/wallet/wallet-provider-registry.js +64 -51
  420. package/dist/wallet/wallet-provider-resolver.js +62 -63
  421. package/dist/wallet/wallet-runtime-config.js +31 -44
  422. package/dist/wallet/wallet-secrets-store.js +44 -22
  423. package/dist/wallet/wallet-send-approvals.js +1894 -592
  424. package/dist/wallet/wallet-send-execution-ledger.js +292 -0
  425. package/dist/wallet/wallet-settlement-links.js +17 -16
  426. package/dist/wallet/wallet-standard-review.js +353 -0
  427. package/dist/wallet/wallet-status.js +0 -9
  428. package/dist/wallet/wallet-task-ledger.js +16 -2
  429. package/dist/web/accounts.js +3 -3
  430. package/dist/web/auth-store.js +18 -18
  431. package/dist/web/auto-reply/heartbeat-runner.js +1 -1
  432. package/dist/web/auto-reply/monitor.js +2 -2
  433. package/dist/web/session.js +4 -4
  434. package/dist/wizard/host-security-capability.js +15 -24
  435. package/dist/wizard/onboarding.finalize.js +63 -184
  436. package/dist/wizard/onboarding.host-security.js +118 -1368
  437. package/dist/wizard/onboarding.js +180 -242
  438. package/dist/wizard/onboarding.wallet.js +323 -829
  439. package/extensions/acpx/package.json +1 -1
  440. package/extensions/bluebubbles/package.json +1 -1
  441. package/extensions/copilot-proxy/package.json +1 -1
  442. package/extensions/diagnostics-otel/package.json +1 -1
  443. package/extensions/fased-federation/package.json +1 -1
  444. package/extensions/google-gemini-cli-auth/package.json +1 -1
  445. package/extensions/imessage/package.json +1 -1
  446. package/extensions/irc/package.json +1 -1
  447. package/extensions/line/package.json +1 -1
  448. package/extensions/llm-task/package.json +1 -1
  449. package/extensions/lobster/package.json +1 -1
  450. package/extensions/matrix/CHANGELOG.md +18 -0
  451. package/extensions/matrix/package.json +1 -1
  452. package/extensions/mattermost/package.json +1 -1
  453. package/extensions/memory-core/package.json +2 -2
  454. package/extensions/memory-lancedb/package.json +1 -1
  455. package/extensions/minimax-portal-auth/package.json +1 -1
  456. package/extensions/msteams/CHANGELOG.md +18 -0
  457. package/extensions/msteams/package.json +1 -1
  458. package/extensions/nextcloud-talk/package.json +1 -1
  459. package/extensions/nostr/CHANGELOG.md +18 -0
  460. package/extensions/nostr/package.json +1 -1
  461. package/extensions/open-prose/package.json +1 -1
  462. package/extensions/sat-mining/index.ts +498 -153
  463. package/extensions/sat-mining/package.json +1 -1
  464. package/extensions/sat-mining/signer-codec-schema.v1.json +374 -0
  465. package/extensions/sat-mining/src/audit-store.ts +50 -5
  466. package/extensions/sat-mining/src/claim-service.ts +85 -14
  467. package/extensions/sat-mining/src/config.ts +9 -0
  468. package/extensions/sat-mining/src/cycle-progress.ts +16 -8
  469. package/extensions/sat-mining/src/epoch-service.ts +9 -5
  470. package/extensions/sat-mining/src/gateway-runner.ts +21 -1
  471. package/extensions/sat-mining/src/protocol-contract.ts +45 -1
  472. package/extensions/sat-mining/src/recovery-service.ts +312 -0
  473. package/extensions/sat-mining/src/round-watcher.ts +391 -81
  474. package/extensions/sat-mining/src/rpc-read.ts +330 -89
  475. package/extensions/sat-mining/src/runtime.ts +14 -0
  476. package/extensions/sat-mining/src/sat-bond-layout.ts +6 -0
  477. package/extensions/sat-mining/src/signer-codec-manifest.ts +429 -0
  478. package/extensions/sat-mining/src/solana-submit.ts +1199 -428
  479. package/extensions/sat-mining/src/submission-ledger.ts +433 -0
  480. package/extensions/signal/package.json +1 -1
  481. package/extensions/synology-chat/package.json +1 -1
  482. package/extensions/tlon/package.json +1 -1
  483. package/extensions/twitch/CHANGELOG.md +18 -0
  484. package/extensions/twitch/package.json +1 -1
  485. package/extensions/voice-call/CHANGELOG.md +18 -0
  486. package/extensions/voice-call/package.json +1 -1
  487. package/extensions/zalo/CHANGELOG.md +18 -0
  488. package/extensions/zalo/package.json +1 -1
  489. package/extensions/zalouser/CHANGELOG.md +18 -0
  490. package/extensions/zalouser/package.json +1 -1
  491. package/install.sh +4955 -0
  492. package/package.json +24 -5
  493. package/scripts/fased-host-updater.mjs +1421 -0
  494. package/scripts/fased-host-updaterctl.mjs +186 -0
  495. package/scripts/fased-managed-service.sh +36 -0
  496. package/scripts/fased-managed-updater.mjs +3065 -156
  497. package/scripts/fased-signer-enroll-hosting.sh +275 -0
  498. package/scripts/fased-signer-network-hosting.sh +143 -0
  499. package/scripts/fased-signer-owner-policy.mjs +1430 -0
  500. package/scripts/fased-signer-policy-hosting.sh +50 -0
  501. package/scripts/fased-signer-policy-local.sh +26 -0
  502. package/scripts/hosted-release-manifest.mjs +185 -0
  503. package/scripts/install-fased-signerd.sh +217 -0
  504. package/scripts/install-managed-runtime.mjs +212 -10
  505. package/scripts/managed-runtime-layout.mjs +75 -3
  506. package/scripts/migrate-hosted-signer-v2.mjs +58 -0
  507. package/scripts/start-managed.sh +169 -360
  508. package/dist/control-ui/assets/mining-commit-R-6nu87p.js +0 -2
  509. package/dist/plugin-sdk/tmp-fased-dir-BdFQvrvw.d.ts +0 -77
  510. package/dist/wallet/local-socket-signer-broker.js +0 -224
  511. package/dist/wallet/local-socket-signer-custody.js +0 -42
  512. package/dist/wallet/providers/embedded-keystore-adapter.js +0 -402
  513. package/dist/wallet/providers/privy-adapter.js +0 -80
  514. package/dist/wallet/wallet-custody.js +0 -1836
@@ -3,103 +3,367 @@ import { Value } from "@sinclair/typebox/value";
3
3
 
4
4
  //#region src/wallet/local-socket-signer-protocol.ts
5
5
  const WalletChainSchema = Type.Literal("solana");
6
- const TxRequestSchema = Type.Object({
7
- chain: WalletChainSchema,
6
+ const LOCAL_SIGNER_NATIVE_FEE_RESERVATION_LAMPORTS_V2 = 5e6;
7
+ const SignerWalletRoleSchema = Type.Union([
8
+ Type.Literal("agent"),
9
+ Type.Literal("mining"),
10
+ Type.Literal("vault")
11
+ ]);
12
+ const SignerProtocolRangeV2Schema = Type.Object({
13
+ current: Type.Literal(2),
14
+ min: Type.Integer({ minimum: 2 }),
15
+ max: Type.Integer({ minimum: 2 })
16
+ }, { additionalProperties: false });
17
+ const LocalSocketSignerCapabilitiesV2Schema = Type.Object({
18
+ protocol: SignerProtocolRangeV2Schema,
19
+ nativeFeeReservationLamports: Type.Literal(LOCAL_SIGNER_NATIVE_FEE_RESERVATION_LAMPORTS_V2),
20
+ intentTypes: Type.Array(Type.String()),
21
+ operationStates: Type.Array(Type.String()),
22
+ features: Type.Array(Type.String())
23
+ }, { additionalProperties: false });
24
+ const LocalSocketSignerReleaseIdentityV2Schema = Type.Union([Type.Object({
25
+ version: Type.String({ pattern: "^(?:dev|[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?)$" }),
26
+ commit: Type.String({ pattern: "^(?:unknown|[a-f0-9]{40})$" }),
27
+ buildInputDigest: Type.String({ pattern: "^(?:unknown|sha256:[a-f0-9]{64})$" }),
28
+ development: Type.Literal(true)
29
+ }, { additionalProperties: false }), Type.Object({
30
+ version: Type.String({ pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$" }),
31
+ commit: Type.String({ pattern: "^[a-f0-9]{40}$" }),
32
+ buildInputDigest: Type.String({ pattern: "^sha256:[a-f0-9]{64}$" }),
33
+ development: Type.Literal(false)
34
+ }, { additionalProperties: false })]);
35
+ const SignerPolicyAssetV2Schema = Type.Object({
36
+ asset: Type.String(),
37
+ destinations: Type.Array(Type.String()),
38
+ maxPerTx: Type.String(),
39
+ maxDaily: Type.String()
40
+ }, { additionalProperties: false });
41
+ const SignerPolicyInputV2Schema = Type.Object({
8
42
  walletId: Type.Optional(Type.String()),
9
- to: Type.Optional(Type.String()),
10
- amount: Type.Optional(Type.String()),
11
- contract: Type.Optional(Type.String()),
12
- program: Type.Optional(Type.String()),
13
- tokenMint: Type.Optional(Type.String()),
14
- source: Type.Optional(Type.String()),
15
- destination: Type.Optional(Type.String()),
16
- allowSplInstructions: Type.Optional(Type.Array(Type.String())),
17
- memo: Type.Optional(Type.String()),
18
- serializedTxBase64: Type.Optional(Type.String()),
19
- preparedId: Type.Optional(Type.String())
20
- }, { additionalProperties: false });
21
- const SolanaInstructionAccountSchema = Type.Object({
43
+ role: SignerWalletRoleSchema,
44
+ version: Type.Optional(Type.Integer({ minimum: 0 })),
45
+ operations: Type.Array(Type.String()),
46
+ programs: Type.Array(Type.String()),
47
+ assets: Type.Array(SignerPolicyAssetV2Schema),
48
+ hash: Type.Optional(Type.String())
49
+ }, { additionalProperties: false });
50
+ const LocalSocketSignerPolicyV2Schema = Type.Object({
51
+ walletId: Type.String(),
52
+ role: SignerWalletRoleSchema,
53
+ version: Type.Integer({ minimum: 1 }),
54
+ operations: Type.Array(Type.String()),
55
+ programs: Type.Array(Type.String()),
56
+ assets: Type.Array(SignerPolicyAssetV2Schema),
57
+ hash: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" })
58
+ }, { additionalProperties: false });
59
+ const SignerSatAccountV2Schema = Type.Object({
22
60
  pubkey: Type.String(),
23
61
  isSigner: Type.Boolean(),
24
62
  isWritable: Type.Boolean()
25
63
  }, { additionalProperties: false });
26
- const SolanaInstructionRequestSchema = Type.Object({
27
- walletId: Type.Optional(Type.String()),
64
+ const SignerJupiterTriggerIntentV2Schema = Type.Object({
65
+ operation: Type.Union([Type.Literal("create"), Type.Literal("cancel")]),
66
+ program: Type.String(),
67
+ order: Type.Optional(Type.String()),
68
+ triggerMint: Type.Optional(Type.String()),
69
+ condition: Type.Optional(Type.Union([Type.Literal("above"), Type.Literal("below")])),
70
+ targetPriceUsd: Type.Optional(Type.String({ pattern: "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$" })),
71
+ slippageBps: Type.Optional(Type.Integer({
72
+ minimum: 1,
73
+ maximum: 1e3
74
+ })),
75
+ expiresAt: Type.Optional(Type.String({ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$" })),
76
+ expectedOrderState: Type.Union([Type.Literal("new"), Type.Literal("open")])
77
+ }, { additionalProperties: false });
78
+ const SignerSatContextV2Schema = Type.Object({
79
+ targetAuthority: Type.Optional(Type.String()),
80
+ disputeAuthority: Type.Optional(Type.String()),
81
+ intervalStartCycleId: Type.Optional(Type.String()),
82
+ registryPageIndex: Type.Optional(Type.String()),
83
+ minerAuthorities: Type.Optional(Type.Array(Type.String())),
84
+ frontCycleIds: Type.Optional(Type.Array(Type.String())),
85
+ backCycleIds: Type.Optional(Type.Array(Type.String()))
86
+ }, { additionalProperties: false });
87
+ const SignerJupiterIntentV2Schema = Type.Object({
88
+ owner: Type.String(),
89
+ inputMint: Type.Optional(Type.String()),
90
+ outputMint: Type.Optional(Type.String()),
91
+ inputAmount: Type.Optional(Type.String()),
92
+ maxInputAmount: Type.Optional(Type.String()),
93
+ minimumOutputAmount: Type.Optional(Type.String()),
94
+ maxFeeLamports: Type.String(),
95
+ sourceTokenAccount: Type.Optional(Type.String()),
96
+ destinationTokenAccount: Type.Optional(Type.String()),
97
+ programs: Type.Array(Type.String(), {
98
+ minItems: 1,
99
+ maxItems: 64
100
+ }),
101
+ trigger: Type.Optional(SignerJupiterTriggerIntentV2Schema)
102
+ }, { additionalProperties: false });
103
+ const SignerSatInstructionV2Schema = Type.Object({
104
+ action: Type.String({ minLength: 1 }),
28
105
  programId: Type.String(),
29
106
  dataBase64: Type.String(),
30
- keys: Type.Array(SolanaInstructionAccountSchema)
107
+ keys: Type.Array(SignerSatAccountV2Schema),
108
+ context: Type.Optional(SignerSatContextV2Schema)
31
109
  }, { additionalProperties: false });
32
- const SolanaInstructionsRequestSchema = Type.Object({
33
- walletId: Type.Optional(Type.String()),
34
- purpose: Type.Literal("sat-cleanup"),
35
- instructions: Type.Array(SolanaInstructionRequestSchema, {
36
- minItems: 1,
37
- maxItems: 6
110
+ const SignerFederationBondChallengeV2Schema = Type.Object({
111
+ challengeId: Type.String({
112
+ minLength: 1,
113
+ maxLength: 256
114
+ }),
115
+ federationOrigin: Type.String({
116
+ minLength: 1,
117
+ maxLength: 2048
118
+ }),
119
+ handle: Type.String({
120
+ minLength: 1,
121
+ maxLength: 512
122
+ }),
123
+ nodeId: Type.String({
124
+ minLength: 1,
125
+ maxLength: 512
126
+ }),
127
+ tokenId: Type.String({
128
+ minLength: 1,
129
+ maxLength: 512
130
+ }),
131
+ bondId: Type.String({
132
+ minLength: 1,
133
+ maxLength: 512
134
+ }),
135
+ tier: Type.Union([
136
+ Type.Literal("none"),
137
+ Type.Literal("basic-bond"),
138
+ Type.Literal("operator-bond")
139
+ ]),
140
+ amountRaw: Type.Optional(Type.String({ pattern: "^(0|[1-9][0-9]*)$" })),
141
+ expiresAt: Type.String({
142
+ minLength: 1,
143
+ maxLength: 512
144
+ }),
145
+ payloadBase64: Type.String({
146
+ minLength: 4,
147
+ maxLength: 24 * 1024
38
148
  })
39
149
  }, { additionalProperties: false });
40
- const LocalSocketSignerCustodyUnlockRequestSchema = Type.Object({
41
- sessionId: Type.String(),
42
- host: Type.String(),
43
- walletId: Type.String(),
44
- role: Type.Optional(Type.Union([
45
- Type.Literal("mining"),
46
- Type.Literal("agent"),
47
- Type.Literal("vault")
48
- ])),
49
- chains: Type.Optional(Type.Array(WalletChainSchema)),
50
- allowPrograms: Type.Optional(Type.Array(Type.String())),
51
- expiresAt: Type.String(),
52
- passphrase: Type.String(),
53
- solanaMaxPerTx: Type.Optional(Type.String()),
54
- solanaMaxDaily: Type.Optional(Type.String())
150
+ const SignerIntentV2Schema = Type.Union([
151
+ Type.Object({
152
+ type: Type.Literal("solana.nativeTransfer"),
153
+ destination: Type.String(),
154
+ lamports: Type.String(),
155
+ memo: Type.Optional(Type.String({ pattern: "^fased:a2a-(?:payment|refund):v1:[0-9a-f]{64}$" }))
156
+ }, { additionalProperties: false }),
157
+ Type.Object({
158
+ type: Type.Literal("solana.splTransferChecked"),
159
+ destination: Type.String(),
160
+ tokenProgram: Type.Optional(Type.String()),
161
+ mint: Type.String(),
162
+ amount: Type.String(),
163
+ memo: Type.Optional(Type.String({ pattern: "^fased:a2a-(?:payment|refund):v1:[0-9a-f]{64}$" }))
164
+ }, { additionalProperties: false }),
165
+ Type.Object({
166
+ type: Type.Literal("solana.satAction"),
167
+ action: Type.String({ minLength: 1 }),
168
+ programId: Type.Optional(Type.String()),
169
+ dataBase64: Type.Optional(Type.String()),
170
+ keys: Type.Optional(Type.Array(SignerSatAccountV2Schema)),
171
+ context: Type.Optional(SignerSatContextV2Schema),
172
+ instructions: Type.Optional(Type.Array(SignerSatInstructionV2Schema, {
173
+ minItems: 1,
174
+ maxItems: 6
175
+ }))
176
+ }, { additionalProperties: false }),
177
+ Type.Object({
178
+ type: Type.Literal("solana.vaultBondAction"),
179
+ cluster: Type.Union([
180
+ Type.Literal("local"),
181
+ Type.Literal("devnet"),
182
+ Type.Literal("mainnet-beta")
183
+ ]),
184
+ action: Type.String({ minLength: 1 }),
185
+ programId: Type.String(),
186
+ dataBase64: Type.String(),
187
+ keys: Type.Array(SignerSatAccountV2Schema),
188
+ context: Type.Optional(SignerSatContextV2Schema)
189
+ }, { additionalProperties: false }),
190
+ Type.Object({
191
+ type: Type.Literal("federation.bondChallenge"),
192
+ federation: SignerFederationBondChallengeV2Schema
193
+ }, { additionalProperties: false }),
194
+ Type.Object({
195
+ type: Type.Union([
196
+ Type.Literal("solana.jupiter.swap"),
197
+ Type.Literal("solana.jupiter.trigger.create"),
198
+ Type.Literal("solana.jupiter.trigger.cancel")
199
+ ]),
200
+ jupiter: SignerJupiterIntentV2Schema
201
+ }, { additionalProperties: false })
202
+ ]);
203
+ const SignerReviewModeV2Schema = Type.Union([Type.Literal("autonomous"), Type.Literal("reviewed")]);
204
+ const SignerSolanaTransactionEnvelopeV2Schema = Type.Object({
205
+ serializedTxBase64: Type.String(),
206
+ programs: Type.Array(Type.String(), {
207
+ minItems: 1,
208
+ maxItems: 64
209
+ }),
210
+ writableAccounts: Type.Array(Type.String(), {
211
+ minItems: 1,
212
+ maxItems: 64
213
+ }),
214
+ submission: Type.Literal("rpc")
55
215
  }, { additionalProperties: false });
56
- const LocalSocketSignerCustodyLockRequestSchema = Type.Object({
57
- sessionId: Type.Optional(Type.String()),
58
- host: Type.Optional(Type.String()),
59
- walletId: Type.Optional(Type.String())
216
+ const SignerReviewAuthorizationV2Schema = Type.Object({
217
+ type: Type.Literal("webauthn"),
218
+ proof: Type.Object({ proofId: Type.String({ minLength: 1 }) }, { additionalProperties: false })
60
219
  }, { additionalProperties: false });
220
+ const LocalSocketSignerJupiterTriggerHistoryV2Schema = Type.Object({ orders: Type.Array(Type.Object({
221
+ orderId: Type.String({ minLength: 1 }),
222
+ orderState: Type.String({ minLength: 1 }),
223
+ orderType: Type.Literal("single"),
224
+ inputMint: Type.String({ minLength: 1 }),
225
+ initialInputAmount: Type.String({ pattern: "^[1-9][0-9]*$" }),
226
+ remainingInputAmount: Type.String({ pattern: "^(?:0|[1-9][0-9]*)$" }),
227
+ outputMint: Type.String({ minLength: 1 }),
228
+ triggerMint: Type.String({ minLength: 1 }),
229
+ condition: Type.Union([Type.Literal("above"), Type.Literal("below")]),
230
+ targetPriceUsd: Type.String({ pattern: "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$" }),
231
+ slippageBps: Type.Integer({
232
+ minimum: 1,
233
+ maximum: 1e3
234
+ }),
235
+ expiresAt: Type.String({ pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$" }),
236
+ cancel: Type.Optional(Type.Object({
237
+ expectedOrderState: Type.Literal("open"),
238
+ refundMint: Type.String({ minLength: 1 }),
239
+ refundAmount: Type.String({ pattern: "^[1-9][0-9]*$" }),
240
+ destinationTokenAccount: Type.String({ minLength: 1 }),
241
+ program: Type.String({ minLength: 1 })
242
+ }, { additionalProperties: false }))
243
+ }, { additionalProperties: false })) }, { additionalProperties: false });
244
+ const SignerWalletPolicyCreateV2Schema = Type.Object({
245
+ expectedPolicyVersion: Type.Literal(0),
246
+ policy: SignerPolicyInputV2Schema
247
+ }, { additionalProperties: false });
248
+ const SignerOperationLookupV2Schema = Type.Object({ requestId: Type.String() }, { additionalProperties: false });
61
249
  const LocalSocketSignerRequestSchema = Type.Union([
62
250
  Type.Object({ op: Type.Literal("health") }, { additionalProperties: false }),
251
+ Type.Object({ op: Type.Literal("v2.capabilities") }, { additionalProperties: false }),
63
252
  Type.Object({
64
- op: Type.Literal("getAddresses"),
65
- walletId: Type.Optional(Type.String())
253
+ op: Type.Literal("v2.jupiter.trigger.history"),
254
+ walletId: Type.String()
66
255
  }, { additionalProperties: false }),
67
256
  Type.Object({
68
- op: Type.Literal("getBalance"),
69
- chain: WalletChainSchema,
70
- walletId: Type.Optional(Type.String())
257
+ op: Type.Literal("v2.policy.get"),
258
+ walletId: Type.String()
259
+ }, { additionalProperties: false }),
260
+ Type.Object({
261
+ op: Type.Literal("v2.policy.put"),
262
+ walletId: Type.String(),
263
+ request: Type.Object({
264
+ expectedVersion: Type.Integer({ minimum: 0 }),
265
+ policy: SignerPolicyInputV2Schema
266
+ }, { additionalProperties: false })
267
+ }, { additionalProperties: false }),
268
+ Type.Object({
269
+ op: Type.Literal("v2.policy.tighten"),
270
+ walletId: Type.String(),
271
+ request: Type.Object({
272
+ expectedVersion: Type.Integer({ minimum: 1 }),
273
+ policy: SignerPolicyInputV2Schema
274
+ }, { additionalProperties: false })
275
+ }, { additionalProperties: false }),
276
+ Type.Object({
277
+ op: Type.Literal("v2.wallet.get"),
278
+ walletId: Type.String()
71
279
  }, { additionalProperties: false }),
72
280
  Type.Object({
73
- op: Type.Literal("prepareTx"),
74
- request: TxRequestSchema
281
+ op: Type.Literal("v2.wallet.create"),
282
+ walletId: Type.String(),
283
+ request: SignerWalletPolicyCreateV2Schema
75
284
  }, { additionalProperties: false }),
76
285
  Type.Object({
77
- op: Type.Literal("sendTx"),
78
- request: TxRequestSchema
286
+ op: Type.Literal("v2.wallet.import"),
287
+ walletId: Type.String(),
288
+ request: Type.Object({
289
+ expectedPolicyVersion: Type.Literal(0),
290
+ policy: SignerPolicyInputV2Schema,
291
+ path: Type.String()
292
+ }, { additionalProperties: false })
79
293
  }, { additionalProperties: false }),
80
294
  Type.Object({
81
- op: Type.Literal("signTx"),
82
- request: TxRequestSchema
295
+ op: Type.Literal("v2.wallet.importLegacy"),
296
+ walletId: Type.String(),
297
+ request: Type.Object({
298
+ expectedPolicyVersion: Type.Literal(0),
299
+ policy: SignerPolicyInputV2Schema,
300
+ path: Type.String(),
301
+ passphrasePath: Type.String()
302
+ }, { additionalProperties: false })
83
303
  }, { additionalProperties: false }),
84
304
  Type.Object({
85
- op: Type.Literal("sendSolanaInstruction"),
86
- request: SolanaInstructionRequestSchema
305
+ op: Type.Literal("v2.wallet.reencrypt"),
306
+ walletId: Type.String()
87
307
  }, { additionalProperties: false }),
88
308
  Type.Object({
89
- op: Type.Literal("sendSolanaInstructions"),
90
- request: SolanaInstructionsRequestSchema
309
+ op: Type.Literal("v2.execute"),
310
+ walletId: Type.String(),
311
+ request: Type.Object({
312
+ requestId: Type.String(),
313
+ policyHash: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
314
+ intent: SignerIntentV2Schema
315
+ }, { additionalProperties: false })
91
316
  }, { additionalProperties: false }),
92
317
  Type.Object({
93
- op: Type.Literal("custodyStatus"),
94
- walletId: Type.Optional(Type.String())
318
+ op: Type.Literal("v2.review.get"),
319
+ walletId: Type.String(),
320
+ request: SignerOperationLookupV2Schema
95
321
  }, { additionalProperties: false }),
96
322
  Type.Object({
97
- op: Type.Literal("unlockCustody"),
98
- request: LocalSocketSignerCustodyUnlockRequestSchema
323
+ op: Type.Literal("v2.review.prepare"),
324
+ walletId: Type.String(),
325
+ request: Type.Object({
326
+ requestId: Type.String(),
327
+ policyHash: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
328
+ mode: SignerReviewModeV2Schema,
329
+ intent: SignerIntentV2Schema,
330
+ transaction: Type.Optional(SignerSolanaTransactionEnvelopeV2Schema)
331
+ }, { additionalProperties: false })
99
332
  }, { additionalProperties: false }),
100
333
  Type.Object({
101
- op: Type.Literal("lockCustody"),
102
- request: LocalSocketSignerCustodyLockRequestSchema
334
+ op: Type.Literal("v2.review.execute"),
335
+ walletId: Type.String(),
336
+ request: Type.Object({
337
+ requestId: Type.String(),
338
+ authorization: Type.Optional(SignerReviewAuthorizationV2Schema)
339
+ }, { additionalProperties: false })
340
+ }, { additionalProperties: false }),
341
+ Type.Object({
342
+ op: Type.Literal("v2.review.authorization.begin"),
343
+ walletId: Type.String(),
344
+ request: Type.Object({ requestId: Type.String() }, { additionalProperties: false })
345
+ }, { additionalProperties: false }),
346
+ Type.Object({
347
+ op: Type.Literal("v2.review.authorization.finish"),
348
+ walletId: Type.String(),
349
+ request: Type.Object({
350
+ challengeId: Type.String(),
351
+ credential: Type.Unknown()
352
+ }, { additionalProperties: false })
353
+ }, { additionalProperties: false }),
354
+ Type.Object({
355
+ op: Type.Union([Type.Literal("v2.operation.get"), Type.Literal("v2.operation.reconcile")]),
356
+ walletId: Type.String(),
357
+ request: SignerOperationLookupV2Schema
358
+ }, { additionalProperties: false }),
359
+ Type.Object({
360
+ op: Type.Literal("getAddresses"),
361
+ walletId: Type.String({ minLength: 1 })
362
+ }, { additionalProperties: false }),
363
+ Type.Object({
364
+ op: Type.Literal("getBalance"),
365
+ chain: WalletChainSchema,
366
+ walletId: Type.String({ minLength: 1 })
103
367
  }, { additionalProperties: false })
104
368
  ], { additionalProperties: false });
105
369
  const LocalSocketSignerResponseEnvelopeSchema = Type.Object({
@@ -111,63 +375,232 @@ const LocalSocketSignerHealthResultSchema = Type.Object({
111
375
  details: Type.Optional(Type.String()),
112
376
  readOnly: Type.Optional(Type.Boolean()),
113
377
  keystoreType: Type.Optional(Type.String()),
114
- chains: Type.Optional(Type.Array(WalletChainSchema))
378
+ chains: Type.Optional(Type.Array(WalletChainSchema)),
379
+ ready: Type.Optional(Type.Boolean()),
380
+ release: LocalSocketSignerReleaseIdentityV2Schema,
381
+ schema: Type.Optional(Type.Object({
382
+ version: Type.Integer({ minimum: 0 }),
383
+ supported: Type.Integer({ minimum: 1 }),
384
+ ready: Type.Boolean()
385
+ }, { additionalProperties: false })),
386
+ network: Type.Optional(Type.Object({
387
+ ready: Type.Boolean(),
388
+ wallets: Type.Array(Type.Object({
389
+ walletId: Type.String(),
390
+ configured: Type.Boolean(),
391
+ version: Type.Integer({ minimum: 0 }),
392
+ hash: Type.Optional(Type.String({ pattern: "^hmac-sha256:[0-9a-f]{64}$" })),
393
+ ready: Type.Boolean()
394
+ }, { additionalProperties: false }))
395
+ }, { additionalProperties: false })),
396
+ capabilities: Type.Optional(LocalSocketSignerCapabilitiesV2Schema),
397
+ policies: Type.Optional(Type.Array(Type.Object({
398
+ walletId: Type.String(),
399
+ role: SignerWalletRoleSchema,
400
+ version: Type.Integer({ minimum: 1 }),
401
+ hash: Type.String()
402
+ }, { additionalProperties: false }))),
403
+ webAuthn: Type.Optional(Type.Object({
404
+ configured: Type.Boolean(),
405
+ rpId: Type.Optional(Type.String()),
406
+ origins: Type.Optional(Type.Array(Type.String())),
407
+ credentialCount: Type.Integer({ minimum: 0 }),
408
+ credentialVersion: Type.Integer({ minimum: 0 }),
409
+ ready: Type.Boolean()
410
+ }, { additionalProperties: false })),
411
+ jupiter: Type.Optional(Type.Object({
412
+ triggerConfigured: Type.Boolean(),
413
+ liveEnabled: Type.Optional(Type.Boolean())
414
+ }, { additionalProperties: false })),
415
+ audit: Type.Optional(Type.Object({
416
+ configured: Type.Boolean(),
417
+ healthy: Type.Boolean(),
418
+ lastError: Type.Optional(Type.String())
419
+ }, { additionalProperties: false })),
420
+ state: Type.Optional(Type.Object({
421
+ databaseBytes: Type.Integer({ minimum: 0 }),
422
+ wallets: Type.Integer({ minimum: 0 }),
423
+ operations: Type.Integer({ minimum: 0 }),
424
+ operationReplayArchive: Type.Optional(Type.Integer({ minimum: 0 })),
425
+ reviews: Type.Integer({ minimum: 0 }),
426
+ triggerWorkflows: Type.Integer({ minimum: 0 }),
427
+ dailyUsageBuckets: Type.Integer({ minimum: 0 }),
428
+ capacities: Type.Optional(Type.Record(Type.String(), Type.Object({
429
+ used: Type.Integer({ minimum: 0 }),
430
+ maximum: Type.Integer({ minimum: 1 }),
431
+ warnAt: Type.Integer({ minimum: 1 }),
432
+ warning: Type.Boolean()
433
+ }, { additionalProperties: false }))),
434
+ capacityWarnings: Type.Optional(Type.Array(Type.String()))
435
+ }, { additionalProperties: false }))
115
436
  }, { additionalProperties: false });
116
437
  const LocalSocketSignerAddressMapSchema = Type.Object({ solana: Type.Optional(Type.String()) }, { additionalProperties: false });
117
438
  const LocalSocketSignerBalanceResultSchema = Type.Object({
118
- ok: Type.Boolean(),
439
+ ok: Type.Literal(true),
119
440
  chain: WalletChainSchema,
120
- address: Type.String(),
121
- balance: Type.String(),
122
- unit: Type.Optional(Type.String())
441
+ address: Type.String({ pattern: "^[1-9A-HJ-NP-Za-km-z]{32,44}$" }),
442
+ balance: Type.String({ pattern: "^(0|[1-9][0-9]*)$" }),
443
+ unit: Type.Literal("lamports")
123
444
  }, { additionalProperties: false });
124
- const LocalSocketSignerPrepareResultSchema = Type.Object({
125
- ok: Type.Boolean(),
126
- chain: WalletChainSchema,
127
- preparedId: Type.String(),
128
- signer: Type.Optional(Type.String()),
129
- metadata: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
445
+ const LocalSocketSignerWalletV2Schema = Type.Object({
446
+ walletId: Type.String(),
447
+ publicKey: Type.String(),
448
+ version: Type.Integer({ minimum: 1 }),
449
+ createdAt: Type.String(),
450
+ rotatedAt: Type.Optional(Type.String()),
451
+ nonce: Type.Optional(Type.Literal("")),
452
+ secret: Type.Optional(Type.Literal(""))
130
453
  }, { additionalProperties: false });
131
- const LocalSocketSignerSendResultSchema = Type.Object({
132
- ok: Type.Boolean(),
133
- chain: WalletChainSchema,
134
- txHash: Type.String(),
135
- signer: Type.Optional(Type.String()),
136
- metadata: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
454
+ const LocalSocketSignerOperationV2Schema = Type.Object({
455
+ requestId: Type.String(),
456
+ walletId: Type.String(),
457
+ intentType: Type.String(),
458
+ intentDigest: Type.String(),
459
+ transactionDigest: Type.Optional(Type.String()),
460
+ policyHash: Type.String(),
461
+ asset: Type.String(),
462
+ amount: Type.String(),
463
+ reservations: Type.Optional(Type.Array(Type.Object({
464
+ asset: Type.String(),
465
+ amount: Type.String(),
466
+ usageBucket: Type.String()
467
+ }, { additionalProperties: false }))),
468
+ state: Type.Union([
469
+ Type.Literal("reserved"),
470
+ Type.Literal("broadcast"),
471
+ Type.Literal("confirmed"),
472
+ Type.Literal("failed"),
473
+ Type.Literal("unknown")
474
+ ]),
475
+ reservationActive: Type.Boolean(),
476
+ usageBucket: Type.String(),
477
+ reservedAt: Type.String(),
478
+ broadcastAt: Type.Optional(Type.String()),
479
+ confirmedAt: Type.Optional(Type.String()),
480
+ updatedAt: Type.String(),
481
+ signature: Type.Optional(Type.String()),
482
+ error: Type.Optional(Type.String()),
483
+ executionAttempt: Type.Optional(Type.Integer({ minimum: 1 })),
484
+ executionLeaseUntil: Type.Optional(Type.String()),
485
+ authorizationProof: Type.Optional(Type.String()),
486
+ authorizedAt: Type.Optional(Type.String()),
487
+ externalResult: Type.Optional(Type.Object({
488
+ provider: Type.Literal("jupiter-trigger-v2"),
489
+ action: Type.Union([Type.Literal("create"), Type.Literal("cancel")]),
490
+ orderId: Type.String({ minLength: 1 }),
491
+ orderState: Type.Union([Type.Literal("open"), Type.Literal("cancelled")])
492
+ }, { additionalProperties: false }))
137
493
  }, { additionalProperties: false });
138
- const LocalSocketSignerSignResultSchema = Type.Object({
139
- ok: Type.Boolean(),
140
- chain: WalletChainSchema,
141
- signedTxBase64: Type.String(),
142
- signer: Type.Optional(Type.String()),
143
- metadata: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
144
- }, { additionalProperties: false });
145
- const LocalSocketSignerSendSolanaInstructionResultSchema = LocalSocketSignerSendResultSchema;
146
- const LocalSocketSignerSendSolanaInstructionsResultSchema = LocalSocketSignerSendResultSchema;
147
- const LocalSocketSignerCustodyStatusResultSchema = Type.Object({
148
- active: Type.Boolean(),
149
- sessionId: Type.Optional(Type.String()),
150
- host: Type.Optional(Type.String()),
151
- expiresAt: Type.Optional(Type.String()),
152
- walletId: Type.Optional(Type.String()),
153
- role: Type.Optional(Type.Union([
154
- Type.Literal("mining"),
155
- Type.Literal("agent"),
156
- Type.Literal("vault")
157
- ])),
158
- chains: Type.Optional(Type.Array(WalletChainSchema)),
159
- allowPrograms: Type.Optional(Type.Array(Type.String())),
160
- solanaMaxPerTx: Type.Optional(Type.String()),
161
- solanaMaxDaily: Type.Optional(Type.String())
494
+ const LocalSocketSignerReviewV2Schema = Type.Object({
495
+ requestId: Type.String(),
496
+ walletId: Type.String(),
497
+ intentType: Type.String(),
498
+ intentDigest: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
499
+ policyHash: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
500
+ mode: SignerReviewModeV2Schema,
501
+ nonce: Type.String({ pattern: "^[0-9a-f]{64}$" }),
502
+ semanticIntent: SignerIntentV2Schema,
503
+ walletPublicKey: Type.Optional(Type.String()),
504
+ artifactKind: Type.Union([
505
+ Type.Literal("solana-transaction"),
506
+ Type.Literal("domain-separated-message"),
507
+ Type.Literal("jupiter-trigger-state")
508
+ ]),
509
+ artifactDigest: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
510
+ transaction: Type.Optional(SignerSolanaTransactionEnvelopeV2Schema),
511
+ messageBase64: Type.Optional(Type.String()),
512
+ stateDigest: Type.Optional(Type.String({ pattern: "^sha256:[0-9a-f]{64}$" })),
513
+ stateSlot: Type.Optional(Type.Integer({ minimum: 1 })),
514
+ asset: Type.String({ minLength: 1 }),
515
+ amount: Type.String({ pattern: "^[1-9][0-9]*$" }),
516
+ destination: Type.String({ minLength: 1 }),
517
+ policyOperation: Type.String({ minLength: 1 }),
518
+ requiredPrograms: Type.Array(Type.String({ minLength: 1 }), { minItems: 1 }),
519
+ requiredRole: Type.Optional(SignerWalletRoleSchema),
520
+ issuedAt: Type.String(),
521
+ state: Type.Union([Type.Literal("prepared"), Type.Literal("signed")]),
522
+ preparedAt: Type.String(),
523
+ expiresAt: Type.String(),
524
+ updatedAt: Type.String(),
525
+ transactionDigest: Type.Optional(Type.String({ pattern: "^sha256:[0-9a-f]{64}$" })),
526
+ signature: Type.Optional(Type.String())
527
+ }, { additionalProperties: false });
528
+ const LocalSocketSignerReviewExecutionV2Schema = Type.Object({
529
+ review: LocalSocketSignerReviewV2Schema,
530
+ operation: LocalSocketSignerOperationV2Schema,
531
+ signatureBase64: Type.Optional(Type.String()),
532
+ signer: Type.String()
533
+ }, { additionalProperties: false });
534
+ const LocalSocketSignerReviewBindingV2Schema = Type.Object({
535
+ requestId: Type.String(),
536
+ walletId: Type.String(),
537
+ role: SignerWalletRoleSchema,
538
+ walletPublicKey: Type.Optional(Type.String()),
539
+ intentType: Type.String(),
540
+ intentDigest: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
541
+ semanticIntent: SignerIntentV2Schema,
542
+ artifactKind: Type.Union([
543
+ Type.Literal("solana-transaction"),
544
+ Type.Literal("domain-separated-message"),
545
+ Type.Literal("jupiter-trigger-state")
546
+ ]),
547
+ artifactDigest: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
548
+ transactionDigest: Type.Optional(Type.String({ pattern: "^sha256:[0-9a-f]{64}$" })),
549
+ stateDigest: Type.Optional(Type.String({ pattern: "^sha256:[0-9a-f]{64}$" })),
550
+ stateSlot: Type.Optional(Type.Integer({ minimum: 1 })),
551
+ asset: Type.String({ minLength: 1 }),
552
+ amount: Type.String({ pattern: "^[1-9][0-9]*$" }),
553
+ destination: Type.String({ minLength: 1 }),
554
+ policyOperation: Type.String({ minLength: 1 }),
555
+ requiredPrograms: Type.Array(Type.String({ minLength: 1 }), { minItems: 1 }),
556
+ policyHash: Type.String({ pattern: "^sha256:[0-9a-f]{64}$" }),
557
+ nonce: Type.String(),
558
+ issuedAt: Type.String(),
559
+ expiresAt: Type.String()
162
560
  }, { additionalProperties: false });
163
- const LocalSocketSignerCustodyLockResultSchema = Type.Object({
164
- active: Type.Boolean(),
165
- removed: Type.Boolean()
561
+ const LocalSocketSignerReviewAuthorizationBeginV2Schema = Type.Object({
562
+ challengeId: Type.String(),
563
+ expiresAt: Type.String(),
564
+ binding: LocalSocketSignerReviewBindingV2Schema,
565
+ options: Type.Unknown()
566
+ }, { additionalProperties: false });
567
+ const LocalSocketSignerReviewAuthorizationFinishV2Schema = Type.Object({
568
+ authorization: SignerReviewAuthorizationV2Schema,
569
+ binding: LocalSocketSignerReviewBindingV2Schema,
570
+ credentialId: Type.String(),
571
+ expiresAt: Type.String()
572
+ }, { additionalProperties: false });
573
+ const LocalSocketSignerWalletPolicyResultV2Schema = Type.Object({
574
+ wallet: LocalSocketSignerWalletV2Schema,
575
+ policy: LocalSocketSignerPolicyV2Schema
166
576
  }, { additionalProperties: false });
577
+ function isPositiveUnsignedInteger(value) {
578
+ return typeof value === "string" && /^[1-9][0-9]*$/.test(value);
579
+ }
580
+ function isExactSignerOwnedTriggerIntent(intent) {
581
+ if (intent.type !== "solana.jupiter.trigger.create" && intent.type !== "solana.jupiter.trigger.cancel") {
582
+ return true;
583
+ }
584
+ const jupiter = intent.jupiter;
585
+ const trigger = jupiter.trigger;
586
+ if (!trigger || !jupiter.programs.includes(trigger.program)) {
587
+ return false;
588
+ }
589
+ if (intent.type === "solana.jupiter.trigger.create") {
590
+ return trigger.operation === "create" && trigger.order === undefined && Boolean(trigger.triggerMint) && (trigger.condition === "above" || trigger.condition === "below") && Boolean(trigger.targetPriceUsd) && trigger.slippageBps !== undefined && Boolean(trigger.expiresAt) && trigger.expectedOrderState === "new" && Boolean(jupiter.inputMint) && Boolean(jupiter.outputMint) && jupiter.inputMint !== jupiter.outputMint && isPositiveUnsignedInteger(jupiter.inputAmount) && jupiter.maxInputAmount === jupiter.inputAmount && jupiter.minimumOutputAmount === "0" && jupiter.sourceTokenAccount === undefined && jupiter.destinationTokenAccount === undefined;
591
+ }
592
+ return trigger.operation === "cancel" && Boolean(trigger.order) && trigger.triggerMint === undefined && trigger.condition === undefined && trigger.targetPriceUsd === undefined && trigger.slippageBps === undefined && trigger.expiresAt === undefined && trigger.expectedOrderState === "open" && jupiter.inputMint === undefined && jupiter.inputAmount === undefined && jupiter.maxInputAmount === undefined && Boolean(jupiter.outputMint) && isPositiveUnsignedInteger(jupiter.minimumOutputAmount) && Boolean(jupiter.destinationTokenAccount) && jupiter.sourceTokenAccount === undefined;
593
+ }
167
594
  function parseLocalSocketSignerRequest(input) {
168
595
  if (!Value.Check(LocalSocketSignerRequestSchema, input)) {
169
596
  throw new Error("invalid signer request");
170
597
  }
598
+ if (input.op === "v2.review.prepare" && (input.request.intent.type === "solana.jupiter.trigger.create" || input.request.intent.type === "solana.jupiter.trigger.cancel") && input.request.transaction !== undefined) {
599
+ throw new Error("invalid signer request: Jupiter Trigger transaction bytes are signer-owned");
600
+ }
601
+ if ((input.op === "v2.review.prepare" || input.op === "v2.execute") && !isExactSignerOwnedTriggerIntent(input.request.intent)) {
602
+ throw new Error("invalid signer request: Jupiter Trigger terms are not exact and signer-owned");
603
+ }
171
604
  return input;
172
605
  }
173
606
  function parseLocalSocketSignerResponseEnvelope(input) {
@@ -178,19 +611,29 @@ function parseLocalSocketSignerResponseEnvelope(input) {
178
611
  }
179
612
  function validateLocalSocketSignerResult(op, result) {
180
613
  switch (op) {
181
- case "health": return Value.Check(LocalSocketSignerHealthResultSchema, result);
614
+ case "health":
615
+ case "v2.capabilities": return Value.Check(LocalSocketSignerHealthResultSchema, result);
616
+ case "v2.jupiter.trigger.history": return Value.Check(LocalSocketSignerJupiterTriggerHistoryV2Schema, result);
617
+ case "v2.policy.get":
618
+ case "v2.policy.put":
619
+ case "v2.policy.tighten": return Value.Check(LocalSocketSignerPolicyV2Schema, result);
620
+ case "v2.wallet.get":
621
+ case "v2.wallet.reencrypt": return Value.Check(LocalSocketSignerWalletV2Schema, result);
622
+ case "v2.wallet.create":
623
+ case "v2.wallet.import":
624
+ case "v2.wallet.importLegacy": return Value.Check(LocalSocketSignerWalletPolicyResultV2Schema, result);
625
+ case "v2.execute":
626
+ case "v2.operation.get":
627
+ case "v2.operation.reconcile": return Value.Check(LocalSocketSignerOperationV2Schema, result);
628
+ case "v2.review.get":
629
+ case "v2.review.prepare": return Value.Check(LocalSocketSignerReviewV2Schema, result);
630
+ case "v2.review.execute": return Value.Check(LocalSocketSignerReviewExecutionV2Schema, result);
631
+ case "v2.review.authorization.begin": return Value.Check(LocalSocketSignerReviewAuthorizationBeginV2Schema, result);
632
+ case "v2.review.authorization.finish": return Value.Check(LocalSocketSignerReviewAuthorizationFinishV2Schema, result);
182
633
  case "getAddresses": return Value.Check(LocalSocketSignerAddressMapSchema, result);
183
634
  case "getBalance": return Value.Check(LocalSocketSignerBalanceResultSchema, result);
184
- case "prepareTx": return Value.Check(LocalSocketSignerPrepareResultSchema, result);
185
- case "sendTx": return Value.Check(LocalSocketSignerSendResultSchema, result);
186
- case "signTx": return Value.Check(LocalSocketSignerSignResultSchema, result);
187
- case "sendSolanaInstruction": return Value.Check(LocalSocketSignerSendSolanaInstructionResultSchema, result);
188
- case "sendSolanaInstructions": return Value.Check(LocalSocketSignerSendSolanaInstructionsResultSchema, result);
189
- case "custodyStatus": return Value.Check(LocalSocketSignerCustodyStatusResultSchema, result);
190
- case "unlockCustody": return Value.Check(LocalSocketSignerCustodyStatusResultSchema, result);
191
- case "lockCustody": return Value.Check(LocalSocketSignerCustodyLockResultSchema, result);
192
635
  }
193
636
  }
194
637
 
195
638
  //#endregion
196
- export { parseLocalSocketSignerRequest, parseLocalSocketSignerResponseEnvelope, validateLocalSocketSignerResult };
639
+ export { LOCAL_SIGNER_NATIVE_FEE_RESERVATION_LAMPORTS_V2, parseLocalSocketSignerRequest, parseLocalSocketSignerResponseEnvelope, validateLocalSocketSignerResult };