@fased/fased 0.1.65 → 0.1.67
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/CHANGELOG.md +23 -0
- package/LICENSE +0 -0
- package/README.md +4 -0
- package/assets/avatar-placeholder.svg +0 -0
- package/assets/chrome-extension/README.md +0 -0
- package/assets/chrome-extension/background-utils.js +0 -0
- package/assets/chrome-extension/background.js +0 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/chrome-extension/manifest.json +0 -0
- package/assets/chrome-extension/options-validation.js +0 -0
- package/assets/chrome-extension/options.html +0 -0
- package/assets/chrome-extension/options.js +0 -0
- package/config/official-external-plugin-catalog.json +0 -0
- package/config/sat-runtime.env +0 -0
- 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-profiles/paths.js +2 -2
- package/dist/agents/auth-profiles/store.js +4 -4
- 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/openai-codex-app-server.js +5 -5
- 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/trust.js +6 -6
- package/dist/agents/skills/workspace.js +22 -22
- 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/bundled/boot-md/HOOK.md +0 -0
- package/dist/bundled/bootstrap-extra-files/HOOK.md +0 -0
- package/dist/bundled/command-logger/HOOK.md +0 -0
- package/dist/bundled/session-memory/HOOK.md +0 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/index.html +0 -0
- 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/lightweight/gateway-runtime-probe.js +2 -2
- 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 +23 -23
- 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/onboard.js +0 -8
- 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 +10 -10
- 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 +4 -4
- package/dist/config/talk.js +2 -2
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/{app-MaQnPa5G.js → app-De8gTtZU.js} +5 -5
- package/dist/control-ui/assets/{index-D4YMr1fA.js → index-DYYBRBOS.js} +3 -3
- package/dist/control-ui/assets/{mining-qMYs4aD-.js → mining-Dg-3ll0F.js} +70 -70
- package/dist/control-ui/boot-watchdog.js +0 -0
- package/dist/control-ui/fased-logo.svg +0 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +0 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/manifest.webmanifest +0 -0
- package/dist/control-ui/version.json +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/export-html/template.css +0 -0
- package/dist/export-html/template.html +0 -0
- package/dist/export-html/template.js +0 -0
- package/dist/export-html/vendor/highlight.min.js +0 -0
- package/dist/export-html/vendor/marked.min.js +0 -0
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/extensions/sat-mining/src/solana-submit.js +191 -47
- package/dist/extensions/sat-mining/src/submission-ledger.js +23 -3
- package/dist/federation/marketplace-delivery-outbox.js +5 -5
- package/dist/federation/marketplace-settlement-ledger.js +4 -4
- package/dist/gateway/a2a-task-store.js +22 -22
- 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/federation-marketplace-run-store.js +14 -14
- package/dist/gateway/hooks-mapping.js +4 -4
- package/dist/gateway/server-discovery.js +2 -2
- package/dist/gateway/server-http.js +4 -4
- package/dist/gateway/server-methods/chat.js +3 -3
- package/dist/gateway/server-methods/sessions.js +6 -6
- package/dist/gateway/server-methods/usage.js +2 -2
- 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/managed-runtime-bootstrap.js +6 -6
- 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/runtime-guard.js +16 -0
- 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/tmp-fased-dir.js +6 -6
- package/dist/infra/widearea-dns.js +3 -3
- package/dist/infra/wsl.js +2 -2
- 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/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/{audio-preflight-I4IngVlJ.js → audio-preflight-Dq_rJtqH.js} +2 -2
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/{chunk-items-DLQ6_lLK.js → chunk-items-Dunoq4Er.js} +1 -1
- package/dist/plugin-sdk/command-status.js +2 -2
- package/dist/plugin-sdk/{config-schema-D_8FVI1C.js → config-schema--vl89M7d.js} +52 -17
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +4 -4
- package/dist/plugin-sdk/file-lock.js +10 -10
- package/dist/plugin-sdk/index.d.ts +15 -15
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{monitor-Bb6x1KAG.js → monitor-CV1sr0p2.js} +6 -6
- package/dist/plugin-sdk/{monitor-B4KF4Kpo.js → monitor-DrTy_4CL.js} +4 -4
- package/dist/plugin-sdk/{openresponses-http-DCTO8JkL.js → openresponses-http-BAjgURZa.js} +2 -2
- package/dist/plugin-sdk/{pairing-message-DHPDFZbC.d.ts → pairing-message-BjIJYVvp.d.ts} +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
- package/dist/plugin-sdk/{pw-ai-natjh3rm.js → pw-ai-DlxqX6Es.js} +1 -1
- package/dist/plugin-sdk/{runtime-dependency-DczkvPxn.js → runtime-dependency-nup8niQL.js} +9 -9
- package/dist/plugin-sdk/sat-runtime.d.ts +53 -2
- package/dist/plugin-sdk/sat-runtime.js +2 -2
- package/dist/plugin-sdk/{slack-BHmvqgjH.js → slack-DSC6T2KW.js} +4 -4
- package/dist/plugin-sdk/slack.d.ts +4 -4
- package/dist/plugin-sdk/{sticker-cache-By5AcorL.js → sticker-cache-C0l_5IKg.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-DGnBz1YT.js → telegram-actions-BwGBIVDE.js} +3 -3
- package/dist/plugin-sdk/telegram.d.ts +4 -4
- package/dist/plugin-sdk/{tmp-fased-dir-EJGTmL1Q.d.ts → tmp-fased-dir-DXnGKKgi.d.ts} +1 -1
- package/dist/plugin-sdk/{types-BdwdFCD6.d.ts → types-Cegc86EP.d.ts} +2 -2
- package/dist/plugin-sdk/{types-BrCpYMxn.d.ts → types-eG9aYqXF.d.ts} +1 -1
- package/dist/plugin-sdk/{web-DUJwrTYs.js → web-C_AH5PyB.js} +2 -2
- package/dist/plugin-sdk/whatsapp.d.ts +9 -9
- package/dist/plugin-sdk/{zod-schema.providers-core-CIzCjXH9.d.ts → zod-schema.providers-core-FaYR6KdD.d.ts} +61 -61
- 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/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/wallet/external-submission-ledger.js +14 -14
- package/dist/wallet/local-socket-signer-protocol.js +35 -1
- package/dist/wallet/providers/local-socket-signer-adapter.js +3 -2
- package/dist/wallet/signer-network-admin.js +9 -3
- package/dist/wallet/solana-network-discovery.js +113 -0
- package/dist/wallet/turnkey-reviewed-state.js +14 -14
- package/dist/wallet/wallet-approval-auth.js +3 -3
- package/dist/wallet/wallet-atomic-state.js +12 -12
- package/dist/wallet/wallet-audit-log.js +5 -5
- package/dist/wallet/wallet-inbound-events.js +3 -3
- package/dist/wallet/wallet-observability.js +5 -5
- package/dist/wallet/wallet-policy.js +5 -5
- 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 +21 -21
- package/dist/wallet/wallet-send-execution-ledger.js +3 -3
- package/dist/wallet/wallet-settlement-links.js +3 -3
- package/dist/wallet/wallet-standard-review.js +14 -14
- 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 +3 -3
- package/dist/wizard/onboarding.host-security.js +3 -3
- package/dist/wizard/onboarding.js +17 -15
- package/dist/wizard/onboarding.wallet.js +27 -27
- package/docs/reference/templates/AGENTS.dev.md +0 -0
- package/docs/reference/templates/AGENTS.md +0 -0
- package/docs/reference/templates/BOOT.md +0 -0
- package/docs/reference/templates/BOOTSTRAP.md +0 -0
- package/docs/reference/templates/HEARTBEAT.md +0 -0
- package/docs/reference/templates/IDENTITY.dev.md +0 -0
- package/docs/reference/templates/IDENTITY.md +0 -0
- package/docs/reference/templates/SOUL.dev.md +0 -0
- package/docs/reference/templates/SOUL.md +0 -0
- package/docs/reference/templates/TOOLS.dev.md +0 -0
- package/docs/reference/templates/TOOLS.md +0 -0
- package/docs/reference/templates/USER.dev.md +0 -0
- package/docs/reference/templates/USER.md +0 -0
- package/extensions/acpx/fased.plugin.json +0 -0
- package/extensions/acpx/package.json +1 -1
- package/extensions/acpx/skills/acp-router/SKILL.md +0 -0
- package/extensions/acpx/src/config.ts +0 -0
- package/extensions/acpx/src/ensure.ts +0 -0
- package/extensions/acpx/src/mcp-readonly-tool-registry.ts +0 -0
- package/extensions/acpx/src/mcp-status-adapter.ts +0 -0
- package/extensions/acpx/src/runtime-internals/events.ts +0 -0
- package/extensions/acpx/src/runtime-internals/process.ts +0 -0
- package/extensions/acpx/src/runtime-internals/shared.ts +0 -0
- package/extensions/acpx/src/runtime.ts +0 -0
- package/extensions/acpx/src/service.ts +0 -0
- package/extensions/bluebubbles/README.md +0 -0
- package/extensions/bluebubbles/fased.plugin.json +0 -0
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/bluebubbles/src/account-resolve.ts +0 -0
- package/extensions/bluebubbles/src/accounts.ts +0 -0
- package/extensions/bluebubbles/src/actions.ts +0 -0
- package/extensions/bluebubbles/src/attachments.ts +0 -0
- package/extensions/bluebubbles/src/channel.ts +0 -0
- package/extensions/bluebubbles/src/chat.ts +0 -0
- package/extensions/bluebubbles/src/config-schema.ts +0 -0
- package/extensions/bluebubbles/src/history.ts +0 -0
- package/extensions/bluebubbles/src/media-send.ts +0 -0
- package/extensions/bluebubbles/src/monitor-normalize.ts +0 -0
- package/extensions/bluebubbles/src/monitor-processing.ts +0 -0
- package/extensions/bluebubbles/src/monitor-reply-cache.ts +0 -0
- package/extensions/bluebubbles/src/monitor-shared.ts +0 -0
- package/extensions/bluebubbles/src/monitor.ts +0 -0
- package/extensions/bluebubbles/src/multipart.ts +0 -0
- package/extensions/bluebubbles/src/onboarding.ts +0 -0
- package/extensions/bluebubbles/src/probe.ts +0 -0
- package/extensions/bluebubbles/src/reactions.ts +0 -0
- package/extensions/bluebubbles/src/request-url.ts +0 -0
- package/extensions/bluebubbles/src/runtime.ts +0 -0
- package/extensions/bluebubbles/src/send-helpers.ts +0 -0
- package/extensions/bluebubbles/src/send.ts +0 -0
- package/extensions/bluebubbles/src/targets.ts +0 -0
- package/extensions/bluebubbles/src/test-mocks.ts +0 -0
- package/extensions/bluebubbles/src/types.ts +0 -0
- package/extensions/copilot-proxy/README.md +0 -0
- package/extensions/copilot-proxy/fased.plugin.json +0 -0
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/device-pair/fased.plugin.json +0 -0
- package/extensions/diagnostics-otel/fased.plugin.json +0 -0
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diagnostics-otel/src/service.ts +0 -0
- package/extensions/fased-federation/README.md +0 -0
- package/extensions/fased-federation/fased.plugin.json +0 -0
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/google-gemini-cli-auth/README.md +0 -0
- package/extensions/google-gemini-cli-auth/fased.plugin.json +0 -0
- package/extensions/google-gemini-cli-auth/oauth.ts +0 -0
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/imessage/fased.plugin.json +0 -0
- package/extensions/imessage/package.json +1 -1
- package/extensions/imessage/src/channel.ts +0 -0
- package/extensions/imessage/src/runtime.ts +0 -0
- package/extensions/irc/fased.plugin.json +0 -0
- package/extensions/irc/package.json +1 -1
- package/extensions/irc/src/accounts.ts +0 -0
- package/extensions/irc/src/channel.ts +0 -0
- package/extensions/irc/src/client.ts +0 -0
- package/extensions/irc/src/config-schema.ts +0 -0
- package/extensions/irc/src/connect-options.ts +0 -0
- package/extensions/irc/src/control-chars.ts +0 -0
- package/extensions/irc/src/inbound.ts +0 -0
- package/extensions/irc/src/monitor.ts +0 -0
- package/extensions/irc/src/normalize.ts +0 -0
- package/extensions/irc/src/onboarding.ts +0 -0
- package/extensions/irc/src/policy.ts +0 -0
- package/extensions/irc/src/probe.ts +0 -0
- package/extensions/irc/src/protocol.ts +0 -0
- package/extensions/irc/src/runtime.ts +0 -0
- package/extensions/irc/src/send.ts +0 -0
- package/extensions/irc/src/types.ts +0 -0
- package/extensions/line/fased.plugin.json +0 -0
- package/extensions/line/package.json +1 -1
- package/extensions/line/src/card-command.ts +0 -0
- package/extensions/line/src/channel.ts +0 -0
- package/extensions/line/src/runtime.ts +0 -0
- package/extensions/llm-task/README.md +0 -0
- package/extensions/llm-task/fased.plugin.json +0 -0
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/README.md +0 -0
- package/extensions/lobster/SKILL.md +0 -0
- package/extensions/lobster/fased.plugin.json +0 -0
- package/extensions/lobster/package.json +1 -1
- package/extensions/lobster/src/test-helpers.ts +0 -0
- package/extensions/lobster/src/windows-spawn.ts +0 -0
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/fased.plugin.json +0 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/matrix/src/actions.ts +0 -0
- package/extensions/matrix/src/channel.ts +0 -0
- package/extensions/matrix/src/config-schema.ts +0 -0
- package/extensions/matrix/src/directory-live.ts +0 -0
- package/extensions/matrix/src/group-mentions.ts +0 -0
- package/extensions/matrix/src/matrix/accounts.ts +0 -0
- package/extensions/matrix/src/matrix/actions/client.ts +0 -0
- package/extensions/matrix/src/matrix/actions/limits.ts +0 -0
- package/extensions/matrix/src/matrix/actions/messages.ts +0 -0
- package/extensions/matrix/src/matrix/actions/pins.ts +0 -0
- package/extensions/matrix/src/matrix/actions/reactions.ts +0 -0
- package/extensions/matrix/src/matrix/actions/room.ts +0 -0
- package/extensions/matrix/src/matrix/actions/summary.ts +0 -0
- package/extensions/matrix/src/matrix/actions/types.ts +0 -0
- package/extensions/matrix/src/matrix/actions.ts +0 -0
- package/extensions/matrix/src/matrix/active-client.ts +0 -0
- package/extensions/matrix/src/matrix/client/config.ts +0 -0
- package/extensions/matrix/src/matrix/client/create-client.ts +0 -0
- package/extensions/matrix/src/matrix/client/logging.ts +0 -0
- package/extensions/matrix/src/matrix/client/runtime.ts +0 -0
- package/extensions/matrix/src/matrix/client/shared.ts +0 -0
- package/extensions/matrix/src/matrix/client/storage.ts +0 -0
- package/extensions/matrix/src/matrix/client/types.ts +0 -0
- package/extensions/matrix/src/matrix/client-bootstrap.ts +0 -0
- package/extensions/matrix/src/matrix/client.ts +0 -0
- package/extensions/matrix/src/matrix/credentials.ts +0 -0
- package/extensions/matrix/src/matrix/deps.ts +0 -0
- package/extensions/matrix/src/matrix/format.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/access-policy.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/direct.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/events.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/handler.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/inbound-body.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/location.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/media.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/replies.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/threads.ts +0 -0
- package/extensions/matrix/src/matrix/monitor/types.ts +0 -0
- package/extensions/matrix/src/matrix/poll-types.ts +0 -0
- package/extensions/matrix/src/matrix/probe.ts +0 -0
- package/extensions/matrix/src/matrix/send/client.ts +0 -0
- package/extensions/matrix/src/matrix/send/formatting.ts +0 -0
- package/extensions/matrix/src/matrix/send/media.ts +0 -0
- package/extensions/matrix/src/matrix/send/targets.ts +0 -0
- package/extensions/matrix/src/matrix/send/types.ts +0 -0
- package/extensions/matrix/src/matrix/send-queue.ts +0 -0
- package/extensions/matrix/src/matrix/send.ts +0 -0
- package/extensions/matrix/src/onboarding.ts +0 -0
- package/extensions/matrix/src/outbound.ts +0 -0
- package/extensions/matrix/src/resolve-targets.ts +0 -0
- package/extensions/matrix/src/runtime.ts +0 -0
- package/extensions/matrix/src/tool-actions.ts +0 -0
- package/extensions/matrix/src/types.ts +0 -0
- package/extensions/mattermost/fased.plugin.json +0 -0
- package/extensions/mattermost/package.json +1 -1
- package/extensions/mattermost/src/channel.ts +0 -0
- package/extensions/mattermost/src/config-schema.ts +0 -0
- package/extensions/mattermost/src/group-mentions.ts +0 -0
- package/extensions/mattermost/src/mattermost/accounts.ts +0 -0
- package/extensions/mattermost/src/mattermost/client.ts +0 -0
- package/extensions/mattermost/src/mattermost/monitor-auth.ts +0 -0
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -0
- package/extensions/mattermost/src/mattermost/monitor-onchar.ts +0 -0
- package/extensions/mattermost/src/mattermost/monitor-websocket.ts +0 -0
- package/extensions/mattermost/src/mattermost/monitor.ts +0 -0
- package/extensions/mattermost/src/mattermost/probe.ts +0 -0
- package/extensions/mattermost/src/mattermost/reactions.test-helpers.ts +0 -0
- package/extensions/mattermost/src/mattermost/reactions.ts +0 -0
- package/extensions/mattermost/src/mattermost/reconnect.ts +0 -0
- package/extensions/mattermost/src/mattermost/send.ts +0 -0
- package/extensions/mattermost/src/normalize.ts +0 -0
- package/extensions/mattermost/src/onboarding-helpers.ts +0 -0
- package/extensions/mattermost/src/onboarding.ts +0 -0
- package/extensions/mattermost/src/runtime.ts +0 -0
- package/extensions/mattermost/src/types.ts +0 -0
- package/extensions/memory-core/fased.plugin.json +0 -0
- package/extensions/memory-core/package.json +2 -2
- package/extensions/memory-lancedb/config.ts +0 -0
- package/extensions/memory-lancedb/fased.plugin.json +0 -0
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/README.md +0 -0
- package/extensions/minimax-portal-auth/fased.plugin.json +0 -0
- package/extensions/minimax-portal-auth/oauth.ts +0 -0
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/fased.plugin.json +0 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/msteams/src/attachments/download.ts +0 -0
- package/extensions/msteams/src/attachments/graph.ts +0 -0
- package/extensions/msteams/src/attachments/html.ts +0 -0
- package/extensions/msteams/src/attachments/payload.ts +0 -0
- package/extensions/msteams/src/attachments/remote-media.ts +0 -0
- package/extensions/msteams/src/attachments/shared.ts +0 -0
- package/extensions/msteams/src/attachments/types.ts +0 -0
- package/extensions/msteams/src/attachments.ts +0 -0
- package/extensions/msteams/src/channel.ts +0 -0
- package/extensions/msteams/src/conversation-store-fs.ts +0 -0
- package/extensions/msteams/src/conversation-store-memory.ts +0 -0
- package/extensions/msteams/src/conversation-store.ts +0 -0
- package/extensions/msteams/src/directory-live.ts +0 -0
- package/extensions/msteams/src/errors.ts +0 -0
- package/extensions/msteams/src/file-consent-helpers.ts +0 -0
- package/extensions/msteams/src/file-consent.ts +0 -0
- package/extensions/msteams/src/file-lock.ts +0 -0
- package/extensions/msteams/src/graph-chat.ts +0 -0
- package/extensions/msteams/src/graph-upload.ts +0 -0
- package/extensions/msteams/src/graph-users.ts +0 -0
- package/extensions/msteams/src/graph.ts +0 -0
- package/extensions/msteams/src/inbound.ts +0 -0
- package/extensions/msteams/src/media-helpers.ts +0 -0
- package/extensions/msteams/src/mentions.ts +0 -0
- package/extensions/msteams/src/messenger.ts +0 -0
- package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -0
- package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -0
- package/extensions/msteams/src/monitor-handler.ts +0 -0
- package/extensions/msteams/src/monitor-types.ts +0 -0
- package/extensions/msteams/src/monitor.ts +0 -0
- package/extensions/msteams/src/onboarding.ts +0 -0
- package/extensions/msteams/src/outbound.ts +0 -0
- package/extensions/msteams/src/pending-uploads.ts +0 -0
- package/extensions/msteams/src/policy.ts +0 -0
- package/extensions/msteams/src/polls-store-memory.ts +0 -0
- package/extensions/msteams/src/polls.ts +0 -0
- package/extensions/msteams/src/probe.ts +0 -0
- package/extensions/msteams/src/reply-dispatcher.ts +0 -0
- package/extensions/msteams/src/resolve-allowlist.ts +0 -0
- package/extensions/msteams/src/runtime.ts +0 -0
- package/extensions/msteams/src/sdk-types.ts +0 -0
- package/extensions/msteams/src/sdk.ts +0 -0
- package/extensions/msteams/src/send-context.ts +0 -0
- package/extensions/msteams/src/send.ts +0 -0
- package/extensions/msteams/src/sent-message-cache.ts +0 -0
- package/extensions/msteams/src/storage.ts +0 -0
- package/extensions/msteams/src/store-fs.ts +0 -0
- package/extensions/msteams/src/test-runtime.ts +0 -0
- package/extensions/msteams/src/token-response.ts +0 -0
- package/extensions/msteams/src/token.ts +0 -0
- package/extensions/nextcloud-talk/fased.plugin.json +0 -0
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nextcloud-talk/src/accounts.ts +0 -0
- package/extensions/nextcloud-talk/src/config-schema.ts +0 -0
- package/extensions/nextcloud-talk/src/format.ts +0 -0
- package/extensions/nextcloud-talk/src/inbound.ts +0 -0
- package/extensions/nextcloud-talk/src/monitor.ts +0 -0
- package/extensions/nextcloud-talk/src/normalize.ts +0 -0
- package/extensions/nextcloud-talk/src/onboarding.ts +0 -0
- package/extensions/nextcloud-talk/src/policy.ts +0 -0
- package/extensions/nextcloud-talk/src/replay-guard.ts +0 -0
- package/extensions/nextcloud-talk/src/room-info.ts +0 -0
- package/extensions/nextcloud-talk/src/runtime.ts +0 -0
- package/extensions/nextcloud-talk/src/send.ts +0 -0
- package/extensions/nextcloud-talk/src/signature.ts +0 -0
- package/extensions/nextcloud-talk/src/types.ts +0 -0
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/README.md +0 -0
- package/extensions/nostr/fased.plugin.json +0 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/nostr/src/channel.ts +0 -0
- package/extensions/nostr/src/config-schema.ts +0 -0
- package/extensions/nostr/src/metrics.ts +0 -0
- package/extensions/nostr/src/nostr-bus.ts +0 -0
- package/extensions/nostr/src/nostr-profile-http.ts +0 -0
- package/extensions/nostr/src/nostr-profile-import.ts +0 -0
- package/extensions/nostr/src/nostr-profile.ts +0 -0
- package/extensions/nostr/src/nostr-state-store.ts +0 -0
- package/extensions/nostr/src/onboarding.ts +0 -0
- package/extensions/nostr/src/runtime.ts +0 -0
- package/extensions/nostr/src/seen-tracker.ts +0 -0
- package/extensions/nostr/src/types.ts +0 -0
- package/extensions/nostr/test/setup.ts +0 -0
- package/extensions/open-prose/README.md +0 -0
- package/extensions/open-prose/fased.plugin.json +0 -0
- package/extensions/open-prose/package.json +1 -1
- package/extensions/open-prose/skills/prose/LICENSE +0 -0
- package/extensions/open-prose/skills/prose/SKILL.md +0 -0
- package/extensions/open-prose/skills/prose/alt-borges.md +0 -0
- package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -0
- package/extensions/open-prose/skills/prose/alts/borges.md +0 -0
- package/extensions/open-prose/skills/prose/alts/folk.md +0 -0
- package/extensions/open-prose/skills/prose/alts/homer.md +0 -0
- package/extensions/open-prose/skills/prose/alts/kafka.md +0 -0
- package/extensions/open-prose/skills/prose/compiler.md +0 -0
- package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/README.md +0 -0
- package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -0
- package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -0
- package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -0
- package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -0
- package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -0
- package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -0
- package/extensions/open-prose/skills/prose/help.md +0 -0
- package/extensions/open-prose/skills/prose/lib/README.md +0 -0
- package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -0
- package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -0
- package/extensions/open-prose/skills/prose/primitives/session.md +0 -0
- package/extensions/open-prose/skills/prose/prose.md +0 -0
- package/extensions/open-prose/skills/prose/state/filesystem.md +0 -0
- package/extensions/open-prose/skills/prose/state/in-context.md +0 -0
- package/extensions/open-prose/skills/prose/state/postgres.md +0 -0
- package/extensions/open-prose/skills/prose/state/sqlite.md +0 -0
- package/extensions/phone-control/fased.plugin.json +0 -0
- package/extensions/qwen-portal-auth/README.md +0 -0
- package/extensions/qwen-portal-auth/fased.plugin.json +0 -0
- package/extensions/qwen-portal-auth/oauth.ts +0 -0
- package/extensions/sat-mining/fased.plugin.json +0 -0
- package/extensions/sat-mining/index.ts +21 -10
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/sat-mining/skills/sat-mining/SKILL.md +0 -0
- package/extensions/sat-mining/src/auto-planner.ts +0 -0
- package/extensions/sat-mining/src/chain-time.ts +0 -0
- package/extensions/sat-mining/src/dispute-review.ts +0 -0
- package/extensions/sat-mining/src/hash-spec.ts +0 -0
- package/extensions/sat-mining/src/planner-analytics.ts +0 -0
- package/extensions/sat-mining/src/planner-outcomes.ts +0 -0
- package/extensions/sat-mining/src/planner-policy-eval.ts +0 -0
- package/extensions/sat-mining/src/planner-policy.ts +0 -0
- package/extensions/sat-mining/src/replay.ts +0 -0
- package/extensions/sat-mining/src/service-read-timeout.ts +0 -0
- package/extensions/sat-mining/src/solana-submit.ts +281 -47
- package/extensions/sat-mining/src/strategy-base.ts +0 -0
- package/extensions/sat-mining/src/strategy-engine.ts +0 -0
- package/extensions/sat-mining/src/strategy-validate.ts +0 -0
- package/extensions/sat-mining/src/submission-ledger.ts +18 -3
- package/extensions/shared/resolve-target-test-helpers.ts +0 -0
- package/extensions/signal/fased.plugin.json +0 -0
- package/extensions/signal/package.json +1 -1
- package/extensions/signal/src/channel.ts +0 -0
- package/extensions/signal/src/runtime.ts +0 -0
- package/extensions/synology-chat/fased.plugin.json +0 -0
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/synology-chat/src/accounts.ts +0 -0
- package/extensions/synology-chat/src/channel.ts +0 -0
- package/extensions/synology-chat/src/client.ts +0 -0
- package/extensions/synology-chat/src/runtime.ts +0 -0
- package/extensions/synology-chat/src/security.ts +0 -0
- package/extensions/synology-chat/src/types.ts +0 -0
- package/extensions/synology-chat/src/webhook-handler.ts +0 -0
- package/extensions/talk-voice/fased.plugin.json +0 -0
- package/extensions/thread-ownership/fased.plugin.json +0 -0
- package/extensions/tlon/README.md +0 -0
- package/extensions/tlon/fased.plugin.json +0 -0
- package/extensions/tlon/package.json +1 -1
- package/extensions/tlon/src/account-fields.ts +0 -0
- package/extensions/tlon/src/channel.ts +0 -0
- package/extensions/tlon/src/config-schema.ts +0 -0
- package/extensions/tlon/src/monitor/discovery.ts +0 -0
- package/extensions/tlon/src/monitor/history.ts +0 -0
- package/extensions/tlon/src/monitor/processed-messages.ts +0 -0
- package/extensions/tlon/src/monitor/utils.ts +0 -0
- package/extensions/tlon/src/onboarding.ts +0 -0
- package/extensions/tlon/src/runtime.ts +0 -0
- package/extensions/tlon/src/targets.ts +0 -0
- package/extensions/tlon/src/types.ts +0 -0
- package/extensions/tlon/src/urbit/auth.ts +0 -0
- package/extensions/tlon/src/urbit/base-url.ts +0 -0
- package/extensions/tlon/src/urbit/channel-client.ts +0 -0
- package/extensions/tlon/src/urbit/channel-ops.ts +0 -0
- package/extensions/tlon/src/urbit/context.ts +0 -0
- package/extensions/tlon/src/urbit/errors.ts +0 -0
- package/extensions/tlon/src/urbit/fetch.ts +0 -0
- package/extensions/tlon/src/urbit/send.ts +0 -0
- package/extensions/tlon/src/urbit/sse-client.ts +0 -0
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/README.md +0 -0
- package/extensions/twitch/fased.plugin.json +0 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/twitch/src/access-control.ts +0 -0
- package/extensions/twitch/src/actions.ts +0 -0
- package/extensions/twitch/src/client-manager-registry.ts +0 -0
- package/extensions/twitch/src/config-schema.ts +0 -0
- package/extensions/twitch/src/config.ts +0 -0
- package/extensions/twitch/src/monitor.ts +0 -0
- package/extensions/twitch/src/onboarding.ts +0 -0
- package/extensions/twitch/src/outbound.ts +0 -0
- package/extensions/twitch/src/probe.ts +0 -0
- package/extensions/twitch/src/resolver.ts +0 -0
- package/extensions/twitch/src/runtime.ts +0 -0
- package/extensions/twitch/src/send.ts +0 -0
- package/extensions/twitch/src/status.ts +0 -0
- package/extensions/twitch/src/test-fixtures.ts +0 -0
- package/extensions/twitch/src/twitch-client.ts +0 -0
- package/extensions/twitch/src/utils/markdown.ts +0 -0
- package/extensions/twitch/src/utils/twitch.ts +0 -0
- package/extensions/twitch/test/setup.ts +0 -0
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/README.md +0 -0
- package/extensions/voice-call/fased.plugin.json +0 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/allowlist.ts +0 -0
- package/extensions/voice-call/src/cli.ts +0 -0
- package/extensions/voice-call/src/core-bridge.ts +0 -0
- package/extensions/voice-call/src/http-headers.ts +0 -0
- package/extensions/voice-call/src/manager/context.ts +0 -0
- package/extensions/voice-call/src/manager/events.ts +0 -0
- package/extensions/voice-call/src/manager/lookup.ts +0 -0
- package/extensions/voice-call/src/manager/outbound.ts +0 -0
- package/extensions/voice-call/src/manager/state.ts +0 -0
- package/extensions/voice-call/src/manager/store.ts +0 -0
- package/extensions/voice-call/src/manager/timers.ts +0 -0
- package/extensions/voice-call/src/manager/twiml.ts +0 -0
- package/extensions/voice-call/src/manager.ts +0 -0
- package/extensions/voice-call/src/media-stream.ts +0 -0
- package/extensions/voice-call/src/providers/base.ts +0 -0
- package/extensions/voice-call/src/providers/mock.ts +0 -0
- package/extensions/voice-call/src/providers/plivo.ts +0 -0
- package/extensions/voice-call/src/providers/shared/guarded-json-api.ts +0 -0
- package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -0
- package/extensions/voice-call/src/providers/telnyx.ts +0 -0
- package/extensions/voice-call/src/providers/tts-openai.ts +0 -0
- package/extensions/voice-call/src/providers/twilio/api.ts +0 -0
- package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -0
- package/extensions/voice-call/src/providers/twilio.ts +0 -0
- package/extensions/voice-call/src/response-generator.ts +0 -0
- package/extensions/voice-call/src/runtime.ts +0 -0
- package/extensions/voice-call/src/telephony-audio.ts +0 -0
- package/extensions/voice-call/src/telephony-tts.ts +0 -0
- package/extensions/voice-call/src/tunnel.ts +0 -0
- package/extensions/voice-call/src/types.ts +0 -0
- package/extensions/voice-call/src/utils.ts +0 -0
- package/extensions/voice-call/src/voice-mapping.ts +0 -0
- package/extensions/voice-call/src/webhook/stale-call-reaper.ts +0 -0
- package/extensions/voice-call/src/webhook-security.ts +0 -0
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/README.md +0 -0
- package/extensions/zalo/fased.plugin.json +0 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalo/src/accounts.ts +0 -0
- package/extensions/zalo/src/actions.ts +0 -0
- package/extensions/zalo/src/api.ts +0 -0
- package/extensions/zalo/src/channel.ts +0 -0
- package/extensions/zalo/src/config-schema.ts +0 -0
- package/extensions/zalo/src/group-access.ts +0 -0
- package/extensions/zalo/src/monitor.ts +0 -0
- package/extensions/zalo/src/monitor.webhook.ts +0 -0
- package/extensions/zalo/src/onboarding.ts +0 -0
- package/extensions/zalo/src/probe.ts +0 -0
- package/extensions/zalo/src/proxy.ts +0 -0
- package/extensions/zalo/src/runtime.ts +0 -0
- package/extensions/zalo/src/send.ts +0 -0
- package/extensions/zalo/src/status-issues.ts +0 -0
- package/extensions/zalo/src/token.ts +0 -0
- package/extensions/zalo/src/types.ts +0 -0
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/README.md +0 -0
- package/extensions/zalouser/fased.plugin.json +0 -0
- package/extensions/zalouser/package.json +1 -1
- package/extensions/zalouser/src/accounts.ts +0 -0
- package/extensions/zalouser/src/channel.ts +0 -0
- package/extensions/zalouser/src/config-schema.ts +0 -0
- package/extensions/zalouser/src/monitor.ts +0 -0
- package/extensions/zalouser/src/onboarding.ts +0 -0
- package/extensions/zalouser/src/probe.ts +0 -0
- package/extensions/zalouser/src/runtime.ts +0 -0
- package/extensions/zalouser/src/send.ts +0 -0
- package/extensions/zalouser/src/status-issues.ts +0 -0
- package/extensions/zalouser/src/tool.ts +0 -0
- package/extensions/zalouser/src/types.ts +0 -0
- package/extensions/zalouser/src/zca.ts +0 -0
- package/fased.mjs +14 -1
- package/install.sh +9 -6
- package/package.json +5 -1
- package/scripts/fased-launcher-runtime.mjs +0 -0
- package/scripts/fased-signer-network-hosting.sh +18 -7
- package/scripts/run-node.mjs +0 -0
- package/shared/sat-hash-v1.json +0 -0
- package/skills/1password/SKILL.md +0 -0
- package/skills/1password/references/cli-examples.md +0 -0
- package/skills/1password/references/get-started.md +0 -0
- package/skills/apple-notes/SKILL.md +0 -0
- package/skills/apple-reminders/SKILL.md +0 -0
- package/skills/bear-notes/SKILL.md +0 -0
- package/skills/blogwatcher/SKILL.md +0 -0
- package/skills/blucli/SKILL.md +0 -0
- package/skills/bluebubbles/SKILL.md +0 -0
- package/skills/camsnap/SKILL.md +0 -0
- package/skills/canvas/SKILL.md +0 -0
- package/skills/clawhub/SKILL.md +0 -0
- package/skills/coding-agent/SKILL.md +0 -0
- package/skills/diagram-maker/SKILL.md +0 -0
- package/skills/diagram-maker/references/excalidraw-patterns.md +0 -0
- package/skills/diagram-maker/references/svg-template.md +0 -0
- package/skills/discord/SKILL.md +0 -0
- package/skills/eightctl/SKILL.md +0 -0
- package/skills/food-order/SKILL.md +0 -0
- package/skills/gemini/SKILL.md +0 -0
- package/skills/gh-issues/SKILL.md +0 -0
- package/skills/gifgrep/SKILL.md +0 -0
- package/skills/github/SKILL.md +0 -0
- package/skills/gog/SKILL.md +0 -0
- package/skills/goplaces/SKILL.md +0 -0
- package/skills/healthcheck/SKILL.md +0 -0
- package/skills/himalaya/SKILL.md +0 -0
- package/skills/himalaya/references/configuration.md +0 -0
- package/skills/himalaya/references/message-composition.md +0 -0
- package/skills/imsg/SKILL.md +0 -0
- package/skills/mcporter/SKILL.md +0 -0
- package/skills/model-usage/SKILL.md +0 -0
- package/skills/model-usage/references/codexbar-cli.md +0 -0
- package/skills/model-usage/scripts/model_usage.py +0 -0
- package/skills/model-usage/scripts/test_model_usage.py +0 -0
- package/skills/nano-banana-pro/SKILL.md +0 -0
- package/skills/nano-pdf/SKILL.md +0 -0
- package/skills/node-connect/SKILL.md +0 -0
- package/skills/node-inspect-debugger/SKILL.md +0 -0
- package/skills/notion/SKILL.md +0 -0
- package/skills/obsidian/SKILL.md +0 -0
- package/skills/openai-image-gen/SKILL.md +0 -0
- package/skills/openai-image-gen/scripts/gen.py +0 -0
- package/skills/openai-image-gen/scripts/test_gen.py +0 -0
- package/skills/openai-whisper/SKILL.md +0 -0
- package/skills/openai-whisper-api/SKILL.md +0 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +0 -0
- package/skills/opencode/SKILL.md +0 -0
- package/skills/openhue/SKILL.md +0 -0
- package/skills/oracle/SKILL.md +0 -0
- package/skills/ordercli/SKILL.md +0 -0
- package/skills/peekaboo/SKILL.md +0 -0
- package/skills/python-debugpy/SKILL.md +0 -0
- package/skills/sag/SKILL.md +0 -0
- package/skills/session-logs/SKILL.md +0 -0
- package/skills/sherpa-onnx-tts/SKILL.md +0 -0
- package/skills/skill-creator/SKILL.md +0 -0
- package/skills/skill-creator/license.txt +0 -0
- package/skills/skill-creator/scripts/init_skill.py +0 -0
- package/skills/skill-creator/scripts/package_skill.py +0 -0
- package/skills/skill-creator/scripts/quick_validate.py +0 -0
- package/skills/skill-creator/scripts/test_package_skill.py +0 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +0 -0
- package/skills/skill-workshop/SKILL.md +0 -0
- package/skills/slack/SKILL.md +0 -0
- package/skills/songsee/SKILL.md +0 -0
- package/skills/sonoscli/SKILL.md +0 -0
- package/skills/spotify-player/SKILL.md +0 -0
- package/skills/summarize/SKILL.md +0 -0
- package/skills/things-mac/SKILL.md +0 -0
- package/skills/tmux/SKILL.md +0 -0
- package/skills/trello/SKILL.md +0 -0
- package/skills/video-frames/SKILL.md +0 -0
- package/skills/video-frames/scripts/frame.sh +0 -0
- package/skills/voice-call/SKILL.md +0 -0
- package/skills/wacli/SKILL.md +0 -0
- package/skills/wallet-actions/SKILL.md +0 -0
- package/skills/weather/SKILL.md +0 -0
- package/skills/xurl/SKILL.md +0 -0
|
@@ -329,7 +329,12 @@ type SatInstructionSubmitSpec = {
|
|
|
329
329
|
data: Buffer;
|
|
330
330
|
programId?: string;
|
|
331
331
|
addressLookupTables?: string[];
|
|
332
|
-
manageAddressLookupTable?: {
|
|
332
|
+
manageAddressLookupTable?: {
|
|
333
|
+
lookupTableAddress?: string;
|
|
334
|
+
cycleId: number;
|
|
335
|
+
pageIndex: number;
|
|
336
|
+
onLookupTableResolved?: (lookupTableAddress: string) => Promise<void>;
|
|
337
|
+
};
|
|
333
338
|
accountResolver: (
|
|
334
339
|
solana: SolanaModuleLike,
|
|
335
340
|
signer: import("@solana/web3.js").PublicKey,
|
|
@@ -550,13 +555,27 @@ class SatSubmissionUnresolvedError extends Error {
|
|
|
550
555
|
}
|
|
551
556
|
}
|
|
552
557
|
|
|
558
|
+
class SatSubmissionDefinitiveFailureError extends Error {
|
|
559
|
+
constructor(message: string) {
|
|
560
|
+
super(message);
|
|
561
|
+
this.name = "SatSubmissionDefinitiveFailureError";
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
553
565
|
async function executeTypedSatIntent(params: {
|
|
554
566
|
socketPath: string;
|
|
555
567
|
walletId: string;
|
|
556
568
|
action: SatSignerAction | "cleanupBatch" | "create" | "extend" | "deactivate" | "close";
|
|
557
569
|
instruction?: Awaited<ReturnType<typeof buildLocalSignerInstructionRequest>>;
|
|
558
570
|
instructions?: Array<Awaited<ReturnType<typeof buildLocalSignerInstructionRequest>>>;
|
|
559
|
-
lookupTable?: {
|
|
571
|
+
lookupTable?: {
|
|
572
|
+
address: string;
|
|
573
|
+
cycleId: string;
|
|
574
|
+
pageIndex: string;
|
|
575
|
+
recentSlot?: string;
|
|
576
|
+
addresses?: string[];
|
|
577
|
+
parent?: Awaited<ReturnType<typeof buildLocalSignerInstructionRequest>>;
|
|
578
|
+
};
|
|
560
579
|
cluster: "local" | "devnet" | "mainnet-beta";
|
|
561
580
|
env: NodeJS.ProcessEnv;
|
|
562
581
|
}) {
|
|
@@ -619,6 +638,7 @@ async function executeTypedSatIntent(params: {
|
|
|
619
638
|
operationKey,
|
|
620
639
|
intentDigest,
|
|
621
640
|
action: params.action,
|
|
641
|
+
allowFailedRetry: isLookupTable,
|
|
622
642
|
env: params.env,
|
|
623
643
|
});
|
|
624
644
|
if (!claim.claimed) {
|
|
@@ -633,6 +653,7 @@ async function executeTypedSatIntent(params: {
|
|
|
633
653
|
operationKey,
|
|
634
654
|
intentDigest,
|
|
635
655
|
action: params.action,
|
|
656
|
+
allowFailedRetry: isLookupTable,
|
|
636
657
|
env: params.env,
|
|
637
658
|
owner: claim.owner,
|
|
638
659
|
});
|
|
@@ -900,7 +921,9 @@ async function executeTypedSatIntent(params: {
|
|
|
900
921
|
env: params.env,
|
|
901
922
|
});
|
|
902
923
|
if (operation.state === "failed") {
|
|
903
|
-
throw new
|
|
924
|
+
throw new SatSubmissionDefinitiveFailureError(
|
|
925
|
+
operation.error || `SAT signer operation ${requestId} failed`,
|
|
926
|
+
);
|
|
904
927
|
}
|
|
905
928
|
if (operation.state !== "confirmed" || !operation.signature) {
|
|
906
929
|
throw new SatSubmissionUnresolvedError({
|
|
@@ -928,8 +951,11 @@ async function executeTypedSatLookupOperation(params: {
|
|
|
928
951
|
cfg: FasedAgentConfig;
|
|
929
952
|
action: "create" | "extend" | "deactivate" | "close";
|
|
930
953
|
address: string;
|
|
954
|
+
cycleId: number;
|
|
955
|
+
pageIndex: number;
|
|
931
956
|
recentSlot?: number;
|
|
932
957
|
addresses?: string[];
|
|
958
|
+
parent?: Awaited<ReturnType<typeof buildLocalSignerInstructionRequest>>;
|
|
933
959
|
}) {
|
|
934
960
|
return await executeTypedSatIntent({
|
|
935
961
|
socketPath: params.context.socketPath,
|
|
@@ -937,8 +963,11 @@ async function executeTypedSatLookupOperation(params: {
|
|
|
937
963
|
action: params.action,
|
|
938
964
|
lookupTable: {
|
|
939
965
|
address: params.address,
|
|
966
|
+
cycleId: String(params.cycleId),
|
|
967
|
+
pageIndex: String(params.pageIndex),
|
|
940
968
|
...(params.recentSlot == null ? {} : { recentSlot: String(params.recentSlot) }),
|
|
941
969
|
...(params.addresses?.length ? { addresses: params.addresses } : {}),
|
|
970
|
+
...(params.parent ? { parent: params.parent } : {}),
|
|
942
971
|
},
|
|
943
972
|
cluster: resolveSatCluster(params.cfg),
|
|
944
973
|
env: params.context.effectiveEnv,
|
|
@@ -991,12 +1020,108 @@ async function waitForSatLookupTable(params: {
|
|
|
991
1020
|
);
|
|
992
1021
|
}
|
|
993
1022
|
|
|
1023
|
+
const SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW = 128;
|
|
1024
|
+
|
|
1025
|
+
function recoverSatLookupTableRecentSlot(params: {
|
|
1026
|
+
context: SatLookupSubmitContext;
|
|
1027
|
+
lookupTable: string;
|
|
1028
|
+
currentSlot: number;
|
|
1029
|
+
}): number | undefined {
|
|
1030
|
+
const oldestSlot = Math.max(0, params.currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
|
|
1031
|
+
for (let recentSlot = params.currentSlot; recentSlot >= oldestSlot; recentSlot -= 1) {
|
|
1032
|
+
const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
|
|
1033
|
+
authority: params.context.signer,
|
|
1034
|
+
payer: params.context.signer,
|
|
1035
|
+
recentSlot,
|
|
1036
|
+
});
|
|
1037
|
+
if (derivedAddress.toBase58() === params.lookupTable) {
|
|
1038
|
+
return recentSlot;
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
return undefined;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
type SatLookupBinding = {
|
|
1045
|
+
cycleId: string;
|
|
1046
|
+
pageIndex: string;
|
|
1047
|
+
address?: string;
|
|
1048
|
+
bound: boolean;
|
|
1049
|
+
mutationRequestId?: string;
|
|
1050
|
+
mutationState?: SatSignerOperation["state"];
|
|
1051
|
+
};
|
|
1052
|
+
|
|
1053
|
+
async function readReconciledSatLookupBinding(params: {
|
|
1054
|
+
context: SatLookupSubmitContext;
|
|
1055
|
+
cycleId: number;
|
|
1056
|
+
pageIndex: number;
|
|
1057
|
+
}): Promise<SatLookupBinding> {
|
|
1058
|
+
const request = { cycleId: String(params.cycleId), pageIndex: String(params.pageIndex) };
|
|
1059
|
+
const readBinding = async () =>
|
|
1060
|
+
await callLocalSocketSigner<SatLookupBinding>(params.context.socketPath, {
|
|
1061
|
+
op: "v2.satLookup.binding.get",
|
|
1062
|
+
walletId: params.context.walletId,
|
|
1063
|
+
request,
|
|
1064
|
+
});
|
|
1065
|
+
const binding = await readBinding();
|
|
1066
|
+
if (
|
|
1067
|
+
binding.cycleId !== request.cycleId ||
|
|
1068
|
+
binding.pageIndex !== request.pageIndex ||
|
|
1069
|
+
binding.bound !== Boolean(binding.address) ||
|
|
1070
|
+
Boolean(binding.mutationRequestId) !== Boolean(binding.mutationState)
|
|
1071
|
+
) {
|
|
1072
|
+
throw new Error("signer returned an invalid SAT lookup-table binding");
|
|
1073
|
+
}
|
|
1074
|
+
if (binding.mutationState === "reserved") {
|
|
1075
|
+
throw new Error("SAT lookup-table mutation is already in progress");
|
|
1076
|
+
}
|
|
1077
|
+
if (
|
|
1078
|
+
(binding.mutationState === "broadcast" || binding.mutationState === "unknown") &&
|
|
1079
|
+
binding.mutationRequestId
|
|
1080
|
+
) {
|
|
1081
|
+
const operation = assertSatSignerOperationIdentity(
|
|
1082
|
+
await callLocalSocketSigner<SatSignerOperation>(params.context.socketPath, {
|
|
1083
|
+
op: "v2.operation.reconcile",
|
|
1084
|
+
walletId: params.context.walletId,
|
|
1085
|
+
request: { requestId: binding.mutationRequestId },
|
|
1086
|
+
}),
|
|
1087
|
+
binding.mutationRequestId,
|
|
1088
|
+
);
|
|
1089
|
+
if (
|
|
1090
|
+
operation.state === "reserved" ||
|
|
1091
|
+
operation.state === "broadcast" ||
|
|
1092
|
+
operation.state === "unknown"
|
|
1093
|
+
) {
|
|
1094
|
+
throw new SatSubmissionUnresolvedError({
|
|
1095
|
+
requestId: operation.requestId,
|
|
1096
|
+
state: operation.state,
|
|
1097
|
+
signature: operation.signature,
|
|
1098
|
+
detail: operation.error,
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
const reconciled = await readBinding();
|
|
1102
|
+
if (
|
|
1103
|
+
reconciled.cycleId !== request.cycleId ||
|
|
1104
|
+
reconciled.pageIndex !== request.pageIndex ||
|
|
1105
|
+
reconciled.bound !== Boolean(reconciled.address) ||
|
|
1106
|
+
Boolean(reconciled.mutationRequestId) !== Boolean(reconciled.mutationState)
|
|
1107
|
+
) {
|
|
1108
|
+
throw new Error("signer returned an invalid reconciled SAT lookup-table binding");
|
|
1109
|
+
}
|
|
1110
|
+
return reconciled;
|
|
1111
|
+
}
|
|
1112
|
+
return binding;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
994
1115
|
async function ensureSatDistributionLookupTable(params: {
|
|
995
1116
|
context: SatLookupSubmitContext;
|
|
996
1117
|
cfg: FasedAgentConfig;
|
|
997
1118
|
config: SatMiningConfig;
|
|
998
1119
|
lookupTableAddress?: string;
|
|
1120
|
+
cycleId: number;
|
|
1121
|
+
pageIndex: number;
|
|
999
1122
|
addresses: string[];
|
|
1123
|
+
parent: Awaited<ReturnType<typeof buildLocalSignerInstructionRequest>>;
|
|
1124
|
+
onLookupTableResolved?: (lookupTableAddress: string) => Promise<void>;
|
|
1000
1125
|
}) {
|
|
1001
1126
|
assertSatLookupTableEnabled(params.context.effectiveEnv);
|
|
1002
1127
|
const desiredAddresses = [...new Set(params.addresses.map((entry) => entry.trim()))].filter(
|
|
@@ -1005,7 +1130,15 @@ async function ensureSatDistributionLookupTable(params: {
|
|
|
1005
1130
|
if (desiredAddresses.length === 0 || desiredAddresses.length > 256) {
|
|
1006
1131
|
throw new Error("SAT distribution lookup table requires 1-256 exact account addresses");
|
|
1007
1132
|
}
|
|
1008
|
-
|
|
1133
|
+
const signerBinding = await readReconciledSatLookupBinding({
|
|
1134
|
+
context: params.context,
|
|
1135
|
+
cycleId: params.cycleId,
|
|
1136
|
+
pageIndex: params.pageIndex,
|
|
1137
|
+
});
|
|
1138
|
+
let lookupTable = signerBinding.address?.trim() || "";
|
|
1139
|
+
if (signerBinding.bound && lookupTable) {
|
|
1140
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
1141
|
+
}
|
|
1009
1142
|
let state = lookupTable
|
|
1010
1143
|
? await readValidatedSatLookupTable({
|
|
1011
1144
|
config: params.config,
|
|
@@ -1013,55 +1146,127 @@ async function ensureSatDistributionLookupTable(params: {
|
|
|
1013
1146
|
authority: params.context.signerAddress,
|
|
1014
1147
|
})
|
|
1015
1148
|
: null;
|
|
1149
|
+
|
|
1150
|
+
if (lookupTable && state) {
|
|
1151
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
1152
|
+
}
|
|
1016
1153
|
let created = false;
|
|
1017
1154
|
const transactionHashes: string[] = [];
|
|
1018
|
-
|
|
1155
|
+
let createRecentSlot: number | undefined;
|
|
1156
|
+
const attemptedCreateAddresses = new Set<string>();
|
|
1157
|
+
if (lookupTable && !state) {
|
|
1019
1158
|
const currentSlot = await inspectSatChainSlot(params.config);
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
recentSlot,
|
|
1159
|
+
createRecentSlot = recoverSatLookupTableRecentSlot({
|
|
1160
|
+
context: params.context,
|
|
1161
|
+
lookupTable,
|
|
1162
|
+
currentSlot,
|
|
1025
1163
|
});
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1164
|
+
if (createRecentSlot == null) {
|
|
1165
|
+
if (signerBinding.bound) {
|
|
1166
|
+
throw new Error(
|
|
1167
|
+
"SAT distribution lookup table identity is not recoverable within the signer freshness window",
|
|
1168
|
+
);
|
|
1169
|
+
}
|
|
1170
|
+
// The signer clears a create binding only after two independent RPC
|
|
1171
|
+
// origins prove both blockhash expiry and table absence. Discard the
|
|
1172
|
+
// stale Gateway cache so the next exact workflow attempt can derive and
|
|
1173
|
+
// persist a fresh signer-owned table identity.
|
|
1174
|
+
lookupTable = "";
|
|
1175
|
+
} else {
|
|
1176
|
+
attemptedCreateAddresses.add(lookupTable);
|
|
1177
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
while (!state) {
|
|
1181
|
+
if (!lookupTable || createRecentSlot == null) {
|
|
1182
|
+
const currentSlot = await inspectSatChainSlot(params.config);
|
|
1183
|
+
const oldestSlot = Math.max(0, currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
|
|
1184
|
+
let selected = false;
|
|
1185
|
+
for (
|
|
1186
|
+
let recentSlot = Math.max(0, currentSlot - 1);
|
|
1187
|
+
recentSlot >= oldestSlot;
|
|
1188
|
+
recentSlot -= 1
|
|
1189
|
+
) {
|
|
1190
|
+
const [, derivedAddress] =
|
|
1191
|
+
params.context.solana.AddressLookupTableProgram.createLookupTable({
|
|
1192
|
+
authority: params.context.signer,
|
|
1193
|
+
payer: params.context.signer,
|
|
1194
|
+
recentSlot,
|
|
1053
1195
|
});
|
|
1054
|
-
|
|
1055
|
-
|
|
1196
|
+
const candidate = derivedAddress.toBase58();
|
|
1197
|
+
if (attemptedCreateAddresses.has(candidate)) {
|
|
1198
|
+
continue;
|
|
1056
1199
|
}
|
|
1200
|
+
attemptedCreateAddresses.add(candidate);
|
|
1201
|
+
const existingCandidate = await readValidatedSatLookupTable({
|
|
1202
|
+
config: params.config,
|
|
1203
|
+
address: candidate,
|
|
1204
|
+
authority: params.context.signerAddress,
|
|
1205
|
+
});
|
|
1206
|
+
if (existingCandidate) {
|
|
1207
|
+
continue;
|
|
1208
|
+
}
|
|
1209
|
+
lookupTable = candidate;
|
|
1210
|
+
createRecentSlot = recentSlot;
|
|
1211
|
+
// Persist each deterministic candidate before its first possible
|
|
1212
|
+
// broadcast. Signer reverse binding prevents two page identities from
|
|
1213
|
+
// ever sharing one address; a collision advances to the next fresh slot.
|
|
1214
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
1215
|
+
selected = true;
|
|
1216
|
+
break;
|
|
1057
1217
|
}
|
|
1058
|
-
|
|
1059
|
-
|
|
1218
|
+
if (!selected) {
|
|
1219
|
+
throw new Error(
|
|
1220
|
+
"SAT distribution lookup table has no free signer-owned address in the freshness window",
|
|
1221
|
+
);
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
try {
|
|
1225
|
+
const submitted = await executeTypedSatLookupOperation({
|
|
1226
|
+
context: params.context,
|
|
1227
|
+
cfg: params.cfg,
|
|
1228
|
+
action: "create",
|
|
1060
1229
|
address: lookupTable,
|
|
1061
|
-
|
|
1062
|
-
|
|
1230
|
+
cycleId: params.cycleId,
|
|
1231
|
+
pageIndex: params.pageIndex,
|
|
1232
|
+
recentSlot: createRecentSlot,
|
|
1233
|
+
parent: params.parent,
|
|
1063
1234
|
});
|
|
1235
|
+
transactionHashes.push(submitted.signature);
|
|
1236
|
+
created = true;
|
|
1237
|
+
} catch (error) {
|
|
1238
|
+
if (
|
|
1239
|
+
error instanceof SatSubmissionDefinitiveFailureError &&
|
|
1240
|
+
error.message.includes("address is already bound to another cycle and page")
|
|
1241
|
+
) {
|
|
1242
|
+
lookupTable = "";
|
|
1243
|
+
createRecentSlot = undefined;
|
|
1244
|
+
continue;
|
|
1245
|
+
}
|
|
1246
|
+
if (
|
|
1247
|
+
error instanceof SatSubmissionUnresolvedError ||
|
|
1248
|
+
error instanceof SatSubmissionDefinitiveFailureError
|
|
1249
|
+
) {
|
|
1250
|
+
throw error;
|
|
1251
|
+
}
|
|
1252
|
+
try {
|
|
1253
|
+
state = await waitForSatLookupTable({
|
|
1254
|
+
config: params.config,
|
|
1255
|
+
address: lookupTable,
|
|
1256
|
+
authority: params.context.signerAddress,
|
|
1257
|
+
requireNextSlot: false,
|
|
1258
|
+
});
|
|
1259
|
+
} catch {
|
|
1260
|
+
throw error;
|
|
1261
|
+
}
|
|
1064
1262
|
}
|
|
1263
|
+
state ??= await waitForSatLookupTable({
|
|
1264
|
+
config: params.config,
|
|
1265
|
+
address: lookupTable,
|
|
1266
|
+
authority: params.context.signerAddress,
|
|
1267
|
+
requireNextSlot: false,
|
|
1268
|
+
});
|
|
1269
|
+
break;
|
|
1065
1270
|
}
|
|
1066
1271
|
if (!state) {
|
|
1067
1272
|
throw new Error("SAT distribution lookup table was not found at the confirmed commitment");
|
|
@@ -1076,7 +1281,10 @@ async function ensureSatDistributionLookupTable(params: {
|
|
|
1076
1281
|
cfg: params.cfg,
|
|
1077
1282
|
action: "extend",
|
|
1078
1283
|
address: lookupTable,
|
|
1284
|
+
cycleId: params.cycleId,
|
|
1285
|
+
pageIndex: params.pageIndex,
|
|
1079
1286
|
addresses,
|
|
1287
|
+
parent: params.parent,
|
|
1080
1288
|
});
|
|
1081
1289
|
transactionHashes.push(submitted.signature);
|
|
1082
1290
|
} catch (error) {
|
|
@@ -1140,7 +1348,11 @@ async function submitInstructionViaLocalSigner(
|
|
|
1140
1348
|
cfg: params.cfg,
|
|
1141
1349
|
config: params.cfg as unknown as SatMiningConfig,
|
|
1142
1350
|
lookupTableAddress: params.manageAddressLookupTable.lookupTableAddress,
|
|
1351
|
+
cycleId: params.manageAddressLookupTable.cycleId,
|
|
1352
|
+
pageIndex: params.manageAddressLookupTable.pageIndex,
|
|
1143
1353
|
addresses: baseRequest.keys.filter((key) => !key.isSigner).map((key) => key.pubkey),
|
|
1354
|
+
parent: baseRequest,
|
|
1355
|
+
onLookupTableResolved: params.manageAddressLookupTable.onLookupTableResolved,
|
|
1144
1356
|
});
|
|
1145
1357
|
}
|
|
1146
1358
|
const request = managedLookupTable
|
|
@@ -3000,6 +3212,7 @@ export async function submitSatDistributeCyclePage(
|
|
|
3000
3212
|
chunkIndex: number;
|
|
3001
3213
|
minerCycleAccounts?: string[];
|
|
3002
3214
|
lookupTableAddress?: string;
|
|
3215
|
+
onLookupTableResolved?: (lookupTableAddress: string) => Promise<void>;
|
|
3003
3216
|
},
|
|
3004
3217
|
) {
|
|
3005
3218
|
const cfg = loadConfigForSatRuntime(_config);
|
|
@@ -3013,7 +3226,12 @@ export async function submitSatDistributeCyclePage(
|
|
|
3013
3226
|
...(lookupTableAddress || requiresLookupTable
|
|
3014
3227
|
? {
|
|
3015
3228
|
manageAddressLookupTable: {
|
|
3229
|
+
cycleId: params.cycleId,
|
|
3230
|
+
pageIndex: params.pageIndex,
|
|
3016
3231
|
...(lookupTableAddress ? { lookupTableAddress } : {}),
|
|
3232
|
+
...(params.onLookupTableResolved
|
|
3233
|
+
? { onLookupTableResolved: params.onLookupTableResolved }
|
|
3234
|
+
: {}),
|
|
3017
3235
|
},
|
|
3018
3236
|
}
|
|
3019
3237
|
: {}),
|
|
@@ -3108,7 +3326,11 @@ export async function submitSatDistributeCyclePage(
|
|
|
3108
3326
|
|
|
3109
3327
|
export async function submitSatCleanupDistributionLookupTable(
|
|
3110
3328
|
_config: SatMiningConfig,
|
|
3111
|
-
params: {
|
|
3329
|
+
params: {
|
|
3330
|
+
cycleId: number;
|
|
3331
|
+
pageIndex: number;
|
|
3332
|
+
action: "deactivate" | "close";
|
|
3333
|
+
},
|
|
3112
3334
|
) {
|
|
3113
3335
|
const cfg = loadConfigForSatRuntime(_config);
|
|
3114
3336
|
const context = await prepareLocalSignerSubmitContext(cfg, process.env);
|
|
@@ -3116,15 +3338,27 @@ export async function submitSatCleanupDistributionLookupTable(
|
|
|
3116
3338
|
if (!context.walletId) {
|
|
3117
3339
|
throw new Error("typed SAT lookup-table cleanup requires an explicit mining walletId");
|
|
3118
3340
|
}
|
|
3119
|
-
const
|
|
3120
|
-
|
|
3121
|
-
|
|
3341
|
+
const binding = await readReconciledSatLookupBinding({
|
|
3342
|
+
context: { ...context, walletId: context.walletId },
|
|
3343
|
+
cycleId: params.cycleId,
|
|
3344
|
+
pageIndex: params.pageIndex,
|
|
3345
|
+
});
|
|
3346
|
+
const lookupTable = binding.address?.trim() ?? "";
|
|
3347
|
+
if (
|
|
3348
|
+
binding.cycleId !== String(params.cycleId) ||
|
|
3349
|
+
binding.pageIndex !== String(params.pageIndex) ||
|
|
3350
|
+
!binding.bound ||
|
|
3351
|
+
!lookupTable
|
|
3352
|
+
) {
|
|
3353
|
+
throw new Error("SAT distribution lookup table is not bound to this wallet, cycle, and page");
|
|
3122
3354
|
}
|
|
3123
3355
|
const submitted = await executeTypedSatLookupOperation({
|
|
3124
3356
|
context: { ...context, walletId: context.walletId },
|
|
3125
3357
|
cfg,
|
|
3126
3358
|
action: params.action,
|
|
3127
3359
|
address: lookupTable,
|
|
3360
|
+
cycleId: params.cycleId,
|
|
3361
|
+
pageIndex: params.pageIndex,
|
|
3128
3362
|
});
|
|
3129
3363
|
return {
|
|
3130
3364
|
lookupTable,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -286,22 +286,37 @@ export async function claimSatSubmission(params: {
|
|
|
286
286
|
operationKey: string;
|
|
287
287
|
intentDigest: string;
|
|
288
288
|
action: string;
|
|
289
|
+
allowFailedRetry?: boolean;
|
|
289
290
|
env?: NodeJS.ProcessEnv;
|
|
290
291
|
owner?: string;
|
|
291
292
|
}): Promise<SatSubmissionClaim> {
|
|
292
293
|
const env = params.env ?? process.env;
|
|
293
294
|
const filePath = resolveSatSubmissionLedgerPath({ walletId: params.walletId, env });
|
|
294
|
-
const requestId = buildSatSubmissionRequestId(params);
|
|
295
295
|
const owner = params.owner ?? `${process.pid}:${randomUUID()}`;
|
|
296
296
|
return await withSatSubmissionLedgerLock(filePath, async () => {
|
|
297
297
|
const ledger = await readLedger(filePath);
|
|
298
|
+
let operationKey = params.operationKey;
|
|
299
|
+
let requestId = buildSatSubmissionRequestId({ ...params, operationKey });
|
|
300
|
+
if (params.allowFailedRetry) {
|
|
301
|
+
for (let retry = 1; retry <= 32; retry += 1) {
|
|
302
|
+
const prior = ledger.records[requestId];
|
|
303
|
+
if (!prior || prior.state !== "failed") {
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
operationKey = `${params.operationKey}:retry:${retry}`;
|
|
307
|
+
requestId = buildSatSubmissionRequestId({ ...params, operationKey });
|
|
308
|
+
if (retry === 32 && ledger.records[requestId]?.state === "failed") {
|
|
309
|
+
throw new Error("SAT submission exhausted its safe pre-broadcast retry limit");
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
298
313
|
const existing = ledger.records[requestId];
|
|
299
314
|
if (existing) {
|
|
300
315
|
if (
|
|
301
316
|
existing.intentDigest !== params.intentDigest ||
|
|
302
317
|
existing.walletId !== params.walletId ||
|
|
303
318
|
existing.workflowId !== params.workflowId ||
|
|
304
|
-
existing.operationKey !==
|
|
319
|
+
existing.operationKey !== operationKey
|
|
305
320
|
) {
|
|
306
321
|
throw new Error(
|
|
307
322
|
`SAT idempotency collision for ${requestId}: the workflow key is already bound to a different immutable intent digest`,
|
|
@@ -326,7 +341,7 @@ export async function claimSatSubmission(params: {
|
|
|
326
341
|
const record: SatSubmissionRecord = {
|
|
327
342
|
requestId,
|
|
328
343
|
workflowId: params.workflowId,
|
|
329
|
-
operationKey
|
|
344
|
+
operationKey,
|
|
330
345
|
intentDigest: params.intentDigest,
|
|
331
346
|
walletId: params.walletId,
|
|
332
347
|
action: params.action,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|