@fased/fased 0.1.48 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acp/client.js +2 -2
- package/dist/acp/secret-file.js +2 -2
- package/dist/agents/agent-scope.js +2 -2
- package/dist/agents/apply-patch.js +8 -8
- package/dist/agents/auth-health.js +11 -5
- package/dist/agents/auth-profiles/paths.js +2 -2
- package/dist/agents/auth-profiles/store.js +2 -2
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cli-credentials.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/embedded-pi-mcp.js +4 -4
- package/dist/agents/identity-avatar.js +3 -3
- package/dist/agents/identity-file.js +2 -2
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +3 -3
- package/dist/agents/pi-extensions/compaction-safeguard.js +3 -3
- package/dist/agents/pi-model-discovery.js +6 -6
- package/dist/agents/pi-project-settings.js +3 -3
- package/dist/agents/sandbox/fs-bridge.js +2 -2
- package/dist/agents/session-dirs.js +4 -4
- package/dist/agents/session-write-lock.js +13 -13
- package/dist/agents/shell-utils.js +5 -5
- package/dist/agents/skills/bundled-dir.js +4 -4
- package/dist/agents/skills/local-loader.js +6 -6
- package/dist/agents/skills/plugin-skills.js +2 -2
- package/dist/agents/skills/workspace.js +13 -13
- package/dist/agents/skills-install-download.js +7 -7
- package/dist/agents/skills-install-plan.js +2 -2
- package/dist/agents/skills-install.js +2 -2
- package/dist/agents/skills-status.js +2 -2
- package/dist/agents/subagent-depth.js +2 -2
- package/dist/agents/system-prompt-params.js +2 -2
- package/dist/agents/workspace.js +22 -22
- package/dist/auto-reply/reply/agent-runner-execution.js +2 -2
- package/dist/auto-reply/reply/agent-runner.js +2 -2
- package/dist/auto-reply/reply/commands-export-session.js +7 -7
- package/dist/auto-reply/reply/post-compaction-audit.js +3 -3
- package/dist/auto-reply/reply/post-compaction-context.js +3 -3
- package/dist/auto-reply/reply/session.js +3 -3
- package/dist/auto-reply/skill-commands.js +3 -3
- package/dist/auto-reply/status.js +6 -6
- package/dist/brand.js +1 -1
- package/dist/browser/chrome.executables.js +3 -3
- package/dist/browser/chrome.js +3 -3
- package/dist/browser/chrome.profile-decoration.js +6 -6
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/server-context.js +2 -2
- package/dist/browser/trash.js +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/server.js +4 -4
- package/dist/capabilities/catalog.js +3 -3
- package/dist/channels/plugins/catalog.js +3 -3
- package/dist/cli/browser-cli-extension.js +6 -6
- package/dist/cli/command-format.js +2 -2
- package/dist/cli/cron-cli/register.cron-simple.js +2 -2
- package/dist/cli/dns-cli.js +9 -9
- package/dist/cli/gateway-cli/dev.js +5 -5
- package/dist/cli/gateway-cli/run.js +2 -2
- package/dist/cli/hooks-cli.js +5 -5
- package/dist/cli/memory-cli.js +7 -7
- package/dist/cli/nodes-media-utils.js +2 -2
- package/dist/cli/plugins-cli.js +2 -2
- package/dist/cli/secrets-cli.js +3 -3
- package/dist/cli/windows-argv.js +2 -2
- package/dist/commands/dashboard-link.js +3 -3
- package/dist/commands/doctor-install.js +5 -5
- package/dist/commands/doctor-memory-search.js +2 -2
- package/dist/commands/doctor-platform-notes.js +2 -2
- package/dist/commands/doctor-sandbox.js +2 -2
- package/dist/commands/doctor-state-integrity.js +48 -25
- package/dist/commands/doctor-workspace.js +3 -3
- package/dist/commands/doctor.js +3 -3
- package/dist/commands/managed-up.js +2 -2
- package/dist/commands/onboard-auth.credentials.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/sessions-cleanup.js +2 -2
- package/dist/commands/signal-install.js +6 -6
- package/dist/commands/status-all/channels.js +2 -2
- package/dist/commands/wallet.js +47 -47
- package/dist/config/cache-utils.js +2 -2
- package/dist/config/includes.js +5 -5
- package/dist/config/io.js +2 -2
- package/dist/config/paths.js +3 -3
- package/dist/config/sat-runtime-ids.js +3 -3
- package/dist/config/sessions/disk-budget.js +6 -6
- package/dist/config/sessions/paths.js +2 -2
- package/dist/config/sessions/store.js +17 -17
- package/dist/config/sessions/transcript.js +32 -18
- package/dist/config/sessions.js +2 -2
- package/dist/config/talk.js +2 -2
- package/dist/control-ui/assets/{app-CHqTx3P_.js → app-6iCry787.js} +1274 -1259
- package/dist/control-ui/assets/{chat-model-ref-BbrdMKjQ.js → chat-model-ref-C6CFR-GR.js} +2 -2
- package/dist/control-ui/assets/{config-FFZLTSLS.js → config-CU5Zi8Dh.js} +2 -2
- package/dist/control-ui/assets/{index-CFHfNlLv.js → index-CNFgocD9.js} +3 -3
- package/dist/control-ui/assets/{mining-D_VAMFMY.js → mining-BdhMn18r.js} +3 -3
- package/dist/control-ui/assets/{providers-DqFL6WrJ.js → providers-WTJ1kMKy.js} +14 -3
- package/dist/control-ui/index.html +1 -1
- package/dist/cron/service/store.js +2 -2
- package/dist/cron/store.js +6 -6
- package/dist/daemon/systemd-system.js +5 -5
- package/dist/discord/monitor/thread-bindings.state.js +2 -2
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/gateway/control-ui-boot-check.js +6 -6
- package/dist/gateway/control-ui-login.js +7 -7
- package/dist/gateway/control-ui.js +9 -9
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/protocol/schema/agents-models-skills.js +1 -0
- package/dist/gateway/protocol/schema/frames.js +5 -0
- package/dist/gateway/protocol/schema/snapshot.js +1 -0
- package/dist/gateway/server/ws-connection/message-handler.js +2 -1
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +5 -4
- package/dist/gateway/server-methods/chat.js +7 -32
- package/dist/gateway/server-methods/sessions.js +6 -6
- package/dist/gateway/server-methods/usage.js +2 -2
- package/dist/gateway/server.impl.js +3 -3
- package/dist/gateway/session-compaction-checkpoints.js +4 -4
- package/dist/gateway/session-utils.fs.js +24 -24
- package/dist/gateway/session-utils.js +6 -6
- package/dist/hooks/bundled-dir.js +4 -4
- package/dist/hooks/gmail-setup-utils.js +6 -6
- package/dist/hooks/import-url.js +2 -2
- package/dist/hooks/loader.js +4 -4
- package/dist/hooks/workspace.js +7 -7
- package/dist/infra/archive.js +17 -17
- package/dist/infra/boundary-file-read.js +2 -2
- package/dist/infra/boundary-path.js +15 -15
- package/dist/infra/brew.js +2 -2
- package/dist/infra/control-ui-assets.js +14 -14
- package/dist/infra/device-auth-store.js +8 -8
- package/dist/infra/device-identity.js +8 -8
- package/dist/infra/dotenv.js +2 -2
- package/dist/infra/exec-approvals.js +8 -8
- package/dist/infra/exec-command-resolution.js +4 -4
- package/dist/infra/exec-safe-bin-trust.js +2 -2
- package/dist/infra/fased-root.js +5 -5
- package/dist/infra/fs-safe.js +14 -14
- package/dist/infra/gateway-lock.js +11 -11
- package/dist/infra/git-commit.js +5 -5
- package/dist/infra/git-root.js +4 -4
- package/dist/infra/hosted-runtime-artifact.js +3 -3
- package/dist/infra/is-main.js +2 -2
- package/dist/infra/json-file.js +7 -7
- package/dist/infra/outbound/delivery-queue.js +16 -16
- package/dist/infra/path-env.js +3 -3
- package/dist/infra/ports-lsof.js +4 -4
- package/dist/infra/provider-usage.auth.js +3 -3
- package/dist/infra/safe-open-sync.js +2 -2
- package/dist/infra/session-cost-usage.js +9 -9
- package/dist/infra/shell-env.js +2 -2
- package/dist/infra/state-migrations.fs.js +6 -6
- package/dist/infra/state-migrations.js +23 -23
- package/dist/infra/system-presence.js +4 -2
- package/dist/infra/tmp-fased-dir.js +6 -6
- package/dist/infra/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- package/dist/light-update-status.js +1 -1
- package/dist/line/accounts.js +2 -2
- package/dist/line/download.js +2 -2
- package/dist/logging/config.js +3 -3
- package/dist/logging/logger.js +7 -7
- package/dist/managed/federation.js +3 -3
- package/dist/managed/tunnel.js +3 -3
- package/dist/media/store.js +13 -13
- package/dist/media-understanding/runner.js +3 -3
- package/dist/memory/embeddings.js +2 -2
- package/dist/memory/internal.js +10 -10
- package/dist/memory/inventory.js +19 -0
- package/dist/memory/manager-sync-ops.js +7 -7
- package/dist/memory/repair-executor.js +17 -17
- package/dist/node-host/invoke-system-run-plan.js +8 -8
- package/dist/node-host/invoke.js +2 -2
- package/dist/node-host/runner.js +3 -3
- package/dist/pairing/pairing-store.js +3 -3
- package/dist/plugin-sdk/{accounts-DI5226U8.js → accounts-B5fY9hZy.js} +1 -1
- package/dist/plugin-sdk/{actions-CEj4gOU2.js → actions-D-9SsSEy.js} +2 -2
- package/dist/plugin-sdk/{active-listener-Ss4UKXZb.js → active-listener-BH7rDR47.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-Cu4alGjb.js → audio-preflight-4faayz5S.js} +26 -26
- package/dist/plugin-sdk/{audit-BTskqjJ_.js → audit-BQfsboqd.js} +1 -1
- package/dist/plugin-sdk/{channel-access-B1KciKmw.js → channel-access-CDZ-cJPq.js} +1 -1
- package/dist/plugin-sdk/{channel-access-configure-Y91FLOJc.js → channel-access-configure-DlpuhlH6.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.js +4 -4
- package/dist/plugin-sdk/{chunk-CSUjIQSx.js → chunk-CZuCyS7k.js} +1 -1
- package/dist/plugin-sdk/{chunk-items-Q8HhMuSe.js → chunk-items-Cyc4Kl6A.js} +1 -1
- package/dist/plugin-sdk/command-status.js +26 -26
- package/dist/plugin-sdk/{commands-registry-DJ0pfCcY.js → commands-registry-COIbIjGO.js} +2 -2
- package/dist/plugin-sdk/{common-Cjm8psuW.js → common-LMHJe8KW.js} +1 -1
- package/dist/plugin-sdk/{config-DutIeFge.js → config-ZMbTT0kM.js} +1 -1
- package/dist/plugin-sdk/{config-schema-Cg6PYSHR.js → config-schema-Cku0a8Tm.js} +75 -60
- package/dist/plugin-sdk/discord.d.ts +1 -1
- package/dist/plugin-sdk/discord.js +19 -19
- package/dist/plugin-sdk/{handle-action-Dp2741iu.js → handle-action-C8ZZfORB.js} +13 -13
- package/dist/plugin-sdk/{helpers-BCZ9d3fl.js → helpers-vfzH9tBn.js} +1 -1
- package/dist/plugin-sdk/{image-ops-B-QR_M9Z.js → image-ops-BnOmQA5d.js} +1 -1
- package/dist/plugin-sdk/index.d.ts +13 -13
- package/dist/plugin-sdk/index.js +28 -28
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{login-BFvQxf9o.js → login-C73Wpiw8.js} +3 -3
- package/dist/plugin-sdk/{login-qr-CERTe_nD.js → login-qr-CRKHA7i8.js} +3 -3
- package/dist/plugin-sdk/{manager-Dhq3SXpO.js → manager-CHYhpKHn.js} +2 -2
- package/dist/plugin-sdk/{markdown-tables-B1Tx7c77.js → markdown-tables-B84dPWNG.js} +1 -1
- package/dist/plugin-sdk/{media-BwsqooWC.js → media-4daDcNER.js} +2 -2
- package/dist/plugin-sdk/{monitor-CJiacqtR.js → monitor-CChc6bQV.js} +30 -30
- package/dist/plugin-sdk/{monitor-BYzN5Qr4.js → monitor-DJhU-J5u.js} +31 -31
- package/dist/plugin-sdk/{openresponses-http-VLSSqCZZ.js → openresponses-http-Dvyczr35.js} +26 -26
- package/dist/plugin-sdk/{optional-runtime-dependency-BEBP4VFJ.js → optional-runtime-dependency-BFpqaCzp.js} +1 -1
- package/dist/plugin-sdk/{outbound-BqWgaC5M.js → outbound-C1xBxfNb.js} +6 -6
- package/dist/plugin-sdk/{outbound-attachment-L1q40kiu.js → outbound-attachment-DvcxPP7b.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-CZBahREg.js → pairing-message-DpYT614h.js} +1 -1
- package/dist/plugin-sdk/{pairing-store-D7I1Qmiw.js → pairing-store-CprpGco9.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-C5klknQZ.js → pi-model-discovery-BQ6fFRBA.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-DIEMhCZ5.js → pi-model-discovery-runtime-BF_89lVj.js} +2 -2
- package/dist/plugin-sdk/{pw-ai-Bv-q25gY.js → pw-ai-xgpIbHOr.js} +3 -3
- package/dist/plugin-sdk/{replies-Bd9ktEkq.js → replies-AzJ6U6Ut.js} +2 -2
- package/dist/plugin-sdk/{resolve-outbound-target-CCIyBb5H.js → resolve-outbound-target-COo_TR7B.js} +1 -1
- package/dist/plugin-sdk/{resolve-route-B7vZ3nKp.js → resolve-route-CZFzHOIe.js} +1 -1
- package/dist/plugin-sdk/{retry-policy-ChC3G4lv.js → retry-policy-BSdqqXsI.js} +1 -1
- package/dist/plugin-sdk/{runtime-BLknHFGz.js → runtime-CeoGffDi.js} +31 -18
- package/dist/plugin-sdk/{runtime-dependency-C5rJfC0u.js → runtime-dependency-Cvbs0GXf.js} +2 -2
- package/dist/plugin-sdk/sat-runtime.js +5 -5
- package/dist/plugin-sdk/{send-Bd3Z-jAd.js → send-B_-UtG9F.js} +6 -6
- package/dist/plugin-sdk/{send-Bmtz9ICm.js → send-C0Q1u7N1.js} +8 -8
- package/dist/plugin-sdk/{send-mkyZzhCO.js → send-CGE7OgsA.js} +5 -5
- package/dist/plugin-sdk/{send-CUGEhiUa.js → send-DCxAv7bV.js} +6 -6
- package/dist/plugin-sdk/{send-CMoWt-EX.js → send-DVpCBUuL.js} +7 -7
- package/dist/plugin-sdk/{session-D2zmelOL.js → session-ETYBbhLn.js} +2 -2
- package/dist/plugin-sdk/{skill-commands-BybEjJ1_.js → skill-commands-BQL6TBIv.js} +2 -2
- package/dist/plugin-sdk/{slack-DogXvGG3.js → slack-Bs_4uivd.js} +38 -38
- package/dist/plugin-sdk/{slack-actions-uXb55QWW.js → slack-actions-CBPZkfTS.js} +11 -11
- package/dist/plugin-sdk/slack.d.ts +1 -1
- package/dist/plugin-sdk/slack.js +9 -9
- package/dist/plugin-sdk/{sticker-cache-BuPw7fTf.js → sticker-cache-BBZMp-oQ.js} +3 -3
- package/dist/plugin-sdk/{tables-CVDOT5dX.js → tables-B-G7Bb0l.js} +1 -1
- package/dist/plugin-sdk/{targets-DskkhJAp.js → targets-D8UaoWHd.js} +1 -1
- package/dist/plugin-sdk/{telegram-actions-_KQPbjpI.js → telegram-actions-BARLx9zc.js} +29 -29
- package/dist/plugin-sdk/telegram.d.ts +1 -1
- package/dist/plugin-sdk/telegram.js +8 -8
- package/dist/plugin-sdk/{thread-bindings.lifecycle-CrhQXYEU.js → thread-bindings.lifecycle-DwYKCLLq.js} +3 -3
- package/dist/plugin-sdk/{thread-bindings.state-ssxdG7xV.js → thread-bindings.state-BNWfHA0f.js} +2 -2
- package/dist/plugin-sdk/{wallet-status-CQI89c_6.js → wallet-status-Coekn_SJ.js} +10 -3
- package/dist/plugin-sdk/{web-C8DwA0eO.js → web-BwolzGVF.js} +31 -31
- package/dist/plugin-sdk/{whatsapp-actions-DfvM-mlZ.js → whatsapp-actions-CSvf6eev.js} +13 -13
- package/dist/plugin-sdk/{whatsapp-heartbeat-DyJasLDB.js → whatsapp-heartbeat-Bw7OtTe6.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +10 -10
- package/dist/plugin-sdk/whatsapp.js +12 -12
- package/dist/plugin-sdk/{wsl-JwmI6Zu8.js → wsl-By1Mc-oS.js} +3 -3
- package/dist/plugin-sdk/{zod-schema.providers-core-BE_5DNhj.d.ts → zod-schema.providers-core-TI6sL-6B.d.ts} +82 -82
- package/dist/plugins/bundled-dir.js +3 -3
- package/dist/plugins/discovery.js +11 -11
- package/dist/plugins/loader.js +13 -13
- package/dist/plugins/manifest-registry.js +2 -2
- package/dist/plugins/manifest.js +4 -4
- package/dist/plugins/path-safety.js +3 -3
- package/dist/plugins/status-cache.js +9 -9
- package/dist/plugins/update.js +3 -3
- package/dist/plugins/web-search-install-catalog.js +3 -3
- package/dist/providers/registry.js +1 -1
- package/dist/secrets/apply.js +16 -16
- package/dist/secrets/audit.js +11 -11
- package/dist/secrets/shared.js +9 -9
- package/dist/security/scan-paths.js +2 -2
- package/dist/shared/config-eval.js +2 -2
- package/dist/shared/pid-alive.js +2 -2
- package/dist/tasks/standing-orders.js +5 -5
- package/dist/tasks/task-flow-registry.js +5 -5
- package/dist/tasks/task-registry.js +5 -5
- package/dist/tasks/workflow-definitions.js +6 -6
- package/dist/telegram/token.js +5 -5
- package/dist/utils.js +5 -5
- package/dist/version.js +11 -1
- package/dist/wallet/local-socket-signer-broker.js +16 -16
- package/dist/wallet/providers/embedded-keystore-adapter.js +5 -5
- package/dist/wallet/providers/local-socket-signer-adapter.js +2 -2
- package/dist/wallet/wallet-approval-auth.js +5 -5
- package/dist/wallet/wallet-audit-log.js +5 -5
- package/dist/wallet/wallet-custody.js +21 -21
- package/dist/wallet/wallet-inbound-events.js +5 -5
- package/dist/wallet/wallet-observability.js +5 -5
- package/dist/wallet/wallet-policy.js +9 -9
- package/dist/wallet/wallet-provider-registry.js +7 -7
- package/dist/wallet/wallet-runtime-config.js +3 -3
- package/dist/wallet/wallet-secrets-store.js +22 -22
- package/dist/wallet/wallet-send-approvals.js +5 -5
- package/dist/wallet/wallet-settlement-links.js +5 -5
- package/dist/web/accounts.js +3 -3
- package/dist/web/auth-store.js +18 -18
- package/dist/web/session.js +4 -4
- package/dist/wizard/host-security-capability.js +2 -2
- package/dist/wizard/onboarding.host-security.js +7 -7
- package/dist/wizard/onboarding.js +7 -7
- package/dist/wizard/onboarding.wallet.js +44 -44
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/index.ts +121 -12
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/sat-mining/src/runtime.ts +9 -3
- package/extensions/signal/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/scripts/start-managed.sh +21 -1
|
@@ -784,6 +784,17 @@ const satMiningPlugin = {
|
|
|
784
784
|
const walletId = readWalletProviderRegistry(effectiveEnv).defaultWalletId?.trim();
|
|
785
785
|
return walletId ? walletId : undefined;
|
|
786
786
|
};
|
|
787
|
+
const readRegisteredWalletRole = (walletId: string | undefined) => {
|
|
788
|
+
const resolvedWalletId = walletId?.trim();
|
|
789
|
+
if (!resolvedWalletId) {
|
|
790
|
+
return undefined;
|
|
791
|
+
}
|
|
792
|
+
const { effectiveEnv } = resolveWalletRuntimeContext();
|
|
793
|
+
const wallet = readWalletProviderRegistry(effectiveEnv).wallets.find(
|
|
794
|
+
(entry) => entry.id === resolvedWalletId,
|
|
795
|
+
);
|
|
796
|
+
return wallet ? resolveWalletUserRole(wallet) : undefined;
|
|
797
|
+
};
|
|
787
798
|
const resolveMiningWalletSelection = async (opts?: {
|
|
788
799
|
walletId?: string;
|
|
789
800
|
requireResolvedWallet?: boolean;
|
|
@@ -807,9 +818,46 @@ const satMiningPlugin = {
|
|
|
807
818
|
return { wallets: wallet ? [wallet] : [], wallet, selectedWalletId };
|
|
808
819
|
};
|
|
809
820
|
const ensureStartupWalletBinding = async (opts?: { requireResolvedWallet?: boolean }) => {
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
821
|
+
let selection: Awaited<ReturnType<typeof resolveMiningWalletSelection>>;
|
|
822
|
+
try {
|
|
823
|
+
selection = await resolveMiningWalletSelection({
|
|
824
|
+
requireResolvedWallet: opts?.requireResolvedWallet,
|
|
825
|
+
});
|
|
826
|
+
} catch (error) {
|
|
827
|
+
const configuredWalletId = resolveConfiguredWalletId();
|
|
828
|
+
if (!configuredWalletId) {
|
|
829
|
+
throw error;
|
|
830
|
+
}
|
|
831
|
+
const configuredWalletRole = readRegisteredWalletRole(configuredWalletId);
|
|
832
|
+
if (!configuredWalletRole || configuredWalletRole === "mining") {
|
|
833
|
+
throw error;
|
|
834
|
+
}
|
|
835
|
+
const miningWallets = await listMiningWallets();
|
|
836
|
+
if (miningWallets.length === 1) {
|
|
837
|
+
await attachWallet(miningWallets[0]!.walletId);
|
|
838
|
+
api.logger.warn(
|
|
839
|
+
`[sat-mining] migrated invalid miner profile wallet ${configuredWalletId} to ${miningWallets[0]!.walletId}`,
|
|
840
|
+
);
|
|
841
|
+
selection = await resolveMiningWalletSelection({
|
|
842
|
+
requireResolvedWallet: opts?.requireResolvedWallet,
|
|
843
|
+
});
|
|
844
|
+
} else {
|
|
845
|
+
state.activeConfig.walletId = undefined;
|
|
846
|
+
state.activeConfig.enabled = false;
|
|
847
|
+
state.activeWalletAddress = null;
|
|
848
|
+
state.running = false;
|
|
849
|
+
await stopSatWorkerServices();
|
|
850
|
+
await persistActiveConfig({ includeEnabled: true });
|
|
851
|
+
if (opts?.requireResolvedWallet) {
|
|
852
|
+
throw new Error(
|
|
853
|
+
miningWallets.length === 0
|
|
854
|
+
? "the saved mining profile referenced an invalid wallet and no dedicated Mining wallet exists; create or import @wallet:mining first"
|
|
855
|
+
: "the saved mining profile referenced an invalid wallet; select the dedicated Mining wallet before starting",
|
|
856
|
+
);
|
|
857
|
+
}
|
|
858
|
+
selection = { wallets: [], wallet: undefined, selectedWalletId: undefined };
|
|
859
|
+
}
|
|
860
|
+
}
|
|
813
861
|
state.activeWalletAddress = selection.wallet?.address ?? null;
|
|
814
862
|
await ensureSatCapitalActionSignerReady();
|
|
815
863
|
return selection;
|
|
@@ -3288,8 +3336,20 @@ const satMiningPlugin = {
|
|
|
3288
3336
|
options?: { syncActiveCommit?: boolean; freezeCommitMs?: number },
|
|
3289
3337
|
) => {
|
|
3290
3338
|
const previousWalletId = resolveConfiguredWalletId();
|
|
3291
|
-
|
|
3339
|
+
const requestedWalletId =
|
|
3292
3340
|
typeof profile.walletId === "string" ? profile.walletId.trim() || undefined : undefined;
|
|
3341
|
+
if (requestedWalletId) {
|
|
3342
|
+
const requestedWalletRole = readRegisteredWalletRole(requestedWalletId);
|
|
3343
|
+
if (!requestedWalletRole) {
|
|
3344
|
+
throw new Error(`walletId not found: ${requestedWalletId}`);
|
|
3345
|
+
}
|
|
3346
|
+
if (requestedWalletRole !== "mining") {
|
|
3347
|
+
throw new Error(
|
|
3348
|
+
`walletId ${requestedWalletId} is not the dedicated Mining wallet; create or import @wallet:mining and use that wallet for SAT mining`,
|
|
3349
|
+
);
|
|
3350
|
+
}
|
|
3351
|
+
}
|
|
3352
|
+
state.activeConfig.walletId = requestedWalletId;
|
|
3293
3353
|
state.activeConfig.role =
|
|
3294
3354
|
profile.role === "validator" || profile.role === "admin" || profile.role === "miner"
|
|
3295
3355
|
? profile.role
|
|
@@ -3522,9 +3582,14 @@ const satMiningPlugin = {
|
|
|
3522
3582
|
);
|
|
3523
3583
|
}
|
|
3524
3584
|
if (options?.syncActiveCommit !== false && state.activeWalletAddress) {
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3585
|
+
try {
|
|
3586
|
+
await submitSatSetActiveCommit(state.activeConfig, {
|
|
3587
|
+
lamports: state.activeConfig.commitLamports ?? 250_000_000,
|
|
3588
|
+
});
|
|
3589
|
+
} catch (error) {
|
|
3590
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
3591
|
+
throw new Error(`mining profile saved, but active commit was not confirmed: ${detail}`);
|
|
3592
|
+
}
|
|
3528
3593
|
}
|
|
3529
3594
|
return readProfile();
|
|
3530
3595
|
};
|
|
@@ -5830,6 +5895,40 @@ const satMiningPlugin = {
|
|
|
5830
5895
|
updatedAt: source.updatedAt,
|
|
5831
5896
|
};
|
|
5832
5897
|
};
|
|
5898
|
+
const uiMiningStatusPayload = (status: unknown) => {
|
|
5899
|
+
const source =
|
|
5900
|
+
status && typeof status === "object" && !Array.isArray(status)
|
|
5901
|
+
? (status as Record<string, unknown>)
|
|
5902
|
+
: {};
|
|
5903
|
+
const {
|
|
5904
|
+
recentPlannerOutcomes: _recentPlannerOutcomes,
|
|
5905
|
+
plannerRegimeBuckets: _plannerRegimeBuckets,
|
|
5906
|
+
plannerTimeWindowStats: _plannerTimeWindowStats,
|
|
5907
|
+
deterministicBaseline: _deterministicBaseline,
|
|
5908
|
+
plannerPolicyContexts: _plannerPolicyContexts,
|
|
5909
|
+
plannerCapitalTierStats: _plannerCapitalTierStats,
|
|
5910
|
+
plannerLiveValidation: _plannerLiveValidation,
|
|
5911
|
+
recentCycleFeeBuckets: _recentCycleFeeBuckets,
|
|
5912
|
+
...rest
|
|
5913
|
+
} = source;
|
|
5914
|
+
const settledHistory = Array.isArray(source.settledHistory) ? source.settledHistory : [];
|
|
5915
|
+
const recentActions = Array.isArray(source.recentActions) ? source.recentActions : [];
|
|
5916
|
+
const archivedFailures = Array.isArray(source.archivedFailures)
|
|
5917
|
+
? source.archivedFailures
|
|
5918
|
+
: [];
|
|
5919
|
+
return {
|
|
5920
|
+
...rest,
|
|
5921
|
+
mode: "ui",
|
|
5922
|
+
recentActions: recentActions.slice(0, 30),
|
|
5923
|
+
archivedFailures: archivedFailures.slice(0, 20),
|
|
5924
|
+
settledHistory: settledHistory.slice(0, 12),
|
|
5925
|
+
historyPage: {
|
|
5926
|
+
settledTotal: settledHistory.length,
|
|
5927
|
+
settledReturned: Math.min(settledHistory.length, 12),
|
|
5928
|
+
fullHistoryMethod: "sat.getMiningHistory",
|
|
5929
|
+
},
|
|
5930
|
+
};
|
|
5931
|
+
};
|
|
5833
5932
|
const resolveMiningAuthorityOrThrow = async () => {
|
|
5834
5933
|
const { wallet } = await ensureStartupWalletBinding({ requireResolvedWallet: true });
|
|
5835
5934
|
const authority = wallet?.address?.trim();
|
|
@@ -7712,9 +7811,15 @@ const satMiningPlugin = {
|
|
|
7712
7811
|
? getMiningStatusResponsive({ forceFresh })
|
|
7713
7812
|
: getMiningStatus({ includeTxReceipts: false, forceFresh })),
|
|
7714
7813
|
)
|
|
7715
|
-
:
|
|
7716
|
-
|
|
7717
|
-
|
|
7814
|
+
: statusMode === "ui"
|
|
7815
|
+
? uiMiningStatusPayload(
|
|
7816
|
+
await (effectiveResponsive
|
|
7817
|
+
? getMiningStatusResponsive({ forceFresh })
|
|
7818
|
+
: getMiningStatus({ includeTxReceipts, forceFresh })),
|
|
7819
|
+
)
|
|
7820
|
+
: await (effectiveResponsive
|
|
7821
|
+
? getMiningStatusResponsive({ forceFresh })
|
|
7822
|
+
: getMiningStatus({ includeTxReceipts, forceFresh })),
|
|
7718
7823
|
),
|
|
7719
7824
|
);
|
|
7720
7825
|
} catch (error) {
|
|
@@ -7988,8 +8093,12 @@ const satMiningPlugin = {
|
|
|
7988
8093
|
typeof (params as { walletId?: string })?.walletId === "string"
|
|
7989
8094
|
? String((params as { walletId?: string }).walletId).trim()
|
|
7990
8095
|
: undefined;
|
|
7991
|
-
if (walletId
|
|
7992
|
-
|
|
8096
|
+
if (walletId) {
|
|
8097
|
+
if (walletId !== resolveConfiguredWalletId()) {
|
|
8098
|
+
await attachWallet(walletId);
|
|
8099
|
+
} else {
|
|
8100
|
+
await resolveMiningWalletSelection({ walletId, requireResolvedWallet: true });
|
|
8101
|
+
}
|
|
7993
8102
|
}
|
|
7994
8103
|
const { wallet: activeWallet } = await ensureStartupWalletBinding({
|
|
7995
8104
|
requireResolvedWallet: true,
|
|
@@ -212,6 +212,9 @@ export type SatMiningRuntimeState = {
|
|
|
212
212
|
|
|
213
213
|
const SAT_RATE_LIMIT_BASE_DELAY_MS = 60_000;
|
|
214
214
|
const SAT_RATE_LIMIT_MAX_DELAY_MS = 5 * 60_000;
|
|
215
|
+
const SAT_RATE_LIMIT_CIRCUIT_BREAKER_DELAY_MS = 15 * 60_000;
|
|
216
|
+
const SAT_RATE_LIMIT_CIRCUIT_BREAKER_RETRY_COUNT = 8;
|
|
217
|
+
const SAT_RETRY_COUNT_MAX = 1_000;
|
|
215
218
|
const SAT_CHAIN_TIME_FRESH_MS = 15_000;
|
|
216
219
|
const SAT_CHAIN_TIME_STALE_MS = 60_000;
|
|
217
220
|
const SAT_CLAIM_BATCH_DEFAULT_CYCLES = 5;
|
|
@@ -351,7 +354,7 @@ export function markWorkerFailure(
|
|
|
351
354
|
) {
|
|
352
355
|
const entry = state.workers[worker];
|
|
353
356
|
entry.running = false;
|
|
354
|
-
entry.retryCount
|
|
357
|
+
entry.retryCount = Math.min(SAT_RETRY_COUNT_MAX, entry.retryCount + 1);
|
|
355
358
|
entry.lastFailureAt = new Date().toISOString();
|
|
356
359
|
entry.lastError = error instanceof Error ? error.message : String(error);
|
|
357
360
|
entry.lastDetail = detail ?? entry.lastDetail;
|
|
@@ -442,6 +445,9 @@ export function isSatRateLimitedError(error: unknown): boolean {
|
|
|
442
445
|
|
|
443
446
|
export function satRateLimitBackoffMs(retryCount: number): number {
|
|
444
447
|
const normalizedRetryCount = Math.max(1, Math.floor(retryCount));
|
|
448
|
+
if (normalizedRetryCount >= SAT_RATE_LIMIT_CIRCUIT_BREAKER_RETRY_COUNT) {
|
|
449
|
+
return SAT_RATE_LIMIT_CIRCUIT_BREAKER_DELAY_MS;
|
|
450
|
+
}
|
|
445
451
|
return Math.min(
|
|
446
452
|
SAT_RATE_LIMIT_MAX_DELAY_MS,
|
|
447
453
|
SAT_RATE_LIMIT_BASE_DELAY_MS * 2 ** Math.max(0, normalizedRetryCount - 1),
|
|
@@ -503,7 +509,7 @@ export function upsertSatClaimBacklogEntry(
|
|
|
503
509
|
stage: patch.stage ?? existing?.stage ?? "pending",
|
|
504
510
|
retryCount:
|
|
505
511
|
typeof patch.retryCount === "number" && Number.isFinite(patch.retryCount)
|
|
506
|
-
? Math.max(0, Math.floor(patch.retryCount))
|
|
512
|
+
? Math.min(SAT_RETRY_COUNT_MAX, Math.max(0, Math.floor(patch.retryCount)))
|
|
507
513
|
: (existing?.retryCount ?? 0),
|
|
508
514
|
firstSeenAt: existing?.firstSeenAt ?? now,
|
|
509
515
|
lastUpdatedAt: patch.lastUpdatedAt ?? now,
|
|
@@ -567,7 +573,7 @@ export function markSatClaimBacklogFailure(
|
|
|
567
573
|
const existing = state.claimBacklog.get(cycleId);
|
|
568
574
|
upsertSatClaimBacklogEntry(state, cycleId, {
|
|
569
575
|
stage: "failed",
|
|
570
|
-
retryCount: (existing?.retryCount ?? 0) + 1,
|
|
576
|
+
retryCount: Math.min(SAT_RETRY_COUNT_MAX, (existing?.retryCount ?? 0) + 1),
|
|
571
577
|
lastError: message,
|
|
572
578
|
reason: "claim batch failed; retry will keep the same oldest cycles first",
|
|
573
579
|
});
|
package/package.json
CHANGED
package/scripts/start-managed.sh
CHANGED
|
@@ -14,8 +14,19 @@ runtime_root_has_build() {
|
|
|
14
14
|
|
|
15
15
|
resolve_managed_runtime_root() {
|
|
16
16
|
local root
|
|
17
|
+
if runtime_root_has_build "${FASED_MANAGED_RUNTIME_ROOT:-}"; then
|
|
18
|
+
printf '%s\n' "$FASED_MANAGED_RUNTIME_ROOT"
|
|
19
|
+
return 0
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# A service script owned by a source checkout must run that checkout. This
|
|
23
|
+
# prevents an old managed package cache from silently replacing current code.
|
|
24
|
+
if [[ -d "$FASED_ROOT/.git" ]] && runtime_root_has_build "$FASED_ROOT"; then
|
|
25
|
+
printf '%s\n' "$FASED_ROOT"
|
|
26
|
+
return 0
|
|
27
|
+
fi
|
|
28
|
+
|
|
17
29
|
for root in \
|
|
18
|
-
"${FASED_MANAGED_RUNTIME_ROOT:-}" \
|
|
19
30
|
"$HOME/.fased/install-cache/npm-global/lib/node_modules/@fased/fased" \
|
|
20
31
|
"$FASED_ROOT"; do
|
|
21
32
|
if runtime_root_has_build "$root"; then
|
|
@@ -28,6 +39,15 @@ resolve_managed_runtime_root() {
|
|
|
28
39
|
|
|
29
40
|
FASED_RUNTIME_ROOT="$(resolve_managed_runtime_root)"
|
|
30
41
|
RUN_NODE_SCRIPT="$FASED_RUNTIME_ROOT/scripts/run-node.mjs"
|
|
42
|
+
if [[ -z "${FASED_RUNTIME_SOURCE:-}" ]]; then
|
|
43
|
+
if [[ "$FASED_RUNTIME_ROOT" == "$FASED_ROOT" && -d "$FASED_ROOT/.git" ]]; then
|
|
44
|
+
export FASED_RUNTIME_SOURCE="source-checkout"
|
|
45
|
+
elif [[ "$FASED_RUNTIME_ROOT" == *"/node_modules/@fased/fased" ]]; then
|
|
46
|
+
export FASED_RUNTIME_SOURCE="managed-package"
|
|
47
|
+
else
|
|
48
|
+
export FASED_RUNTIME_SOURCE="packaged-runtime"
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
31
51
|
|
|
32
52
|
node_runtime_ok_for() {
|
|
33
53
|
local node_bin="$1"
|