@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
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
|
|
15
15
|
<link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
|
|
16
16
|
<script data-fased-boot-watchdog src="./boot-watchdog.js" defer></script>
|
|
17
|
-
<script type="module" crossorigin src="./assets/index-
|
|
17
|
+
<script type="module" crossorigin src="./assets/index-DYYBRBOS.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="./assets/index-RwVraC3c.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.1.
|
|
1
|
+
{"version":"0.1.67"}
|
|
@@ -5,7 +5,7 @@ import { inferLegacyName, normalizeOptionalText } from "./normalize.js";
|
|
|
5
5
|
import { normalizeCronStaggerMs, resolveDefaultCronStaggerMs } from "../stagger.js";
|
|
6
6
|
import { loadCronStore, saveCronStore } from "../store.js";
|
|
7
7
|
import { recomputeNextRuns } from "./jobs.js";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs";
|
|
9
9
|
|
|
10
10
|
//#region src/cron/service/store.ts
|
|
11
11
|
function buildDeliveryPatchFromLegacyPayload(payload) {
|
|
@@ -179,7 +179,7 @@ function stripLegacyTopLevelFields(raw) {
|
|
|
179
179
|
}
|
|
180
180
|
async function getFileMtimeMs(path) {
|
|
181
181
|
try {
|
|
182
|
-
const stats = await
|
|
182
|
+
const stats = await fs.promises.stat(path);
|
|
183
183
|
return stats.mtimeMs;
|
|
184
184
|
} catch {
|
|
185
185
|
return null;
|
package/dist/cron/store.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { expandHomePrefix } from "../infra/home-dir.js";
|
|
2
2
|
import { CONFIG_DIR } from "../utils.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import JSON5 from "json5";
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ function resolveCronStorePath(storePath) {
|
|
|
19
19
|
}
|
|
20
20
|
async function loadCronStore(storePath) {
|
|
21
21
|
try {
|
|
22
|
-
const raw = await
|
|
22
|
+
const raw = await fs.promises.readFile(storePath, "utf-8");
|
|
23
23
|
let parsed;
|
|
24
24
|
try {
|
|
25
25
|
parsed = JSON5.parse(raw);
|
|
@@ -45,14 +45,14 @@ async function loadCronStore(storePath) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
async function saveCronStore(storePath, store) {
|
|
48
|
-
await
|
|
48
|
+
await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
|
|
49
49
|
const { randomBytes } = await import("node:crypto");
|
|
50
50
|
const tmp = `${storePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
51
51
|
const json = JSON.stringify(store, null, 2);
|
|
52
|
-
await
|
|
53
|
-
await
|
|
52
|
+
await fs.promises.writeFile(tmp, json, "utf-8");
|
|
53
|
+
await fs.promises.rename(tmp, storePath);
|
|
54
54
|
try {
|
|
55
|
-
await
|
|
55
|
+
await fs.promises.copyFile(storePath, `${storePath}.bak`);
|
|
56
56
|
} catch {}
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -4,7 +4,7 @@ import { parseSystemdShow } from "./systemd.js";
|
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import fs from "node:fs/promises";
|
|
7
|
+
import fs$1 from "node:fs/promises";
|
|
8
8
|
import { spawn } from "node:child_process";
|
|
9
9
|
|
|
10
10
|
//#region src/daemon/systemd-system.ts
|
|
@@ -40,7 +40,7 @@ async function restartHostedServiceWithoutPrivilege() {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
try {
|
|
43
|
-
const status = await fs.readFile(`/proc/${pid}/status`, "utf8");
|
|
43
|
+
const status = await fs$1.readFile(`/proc/${pid}/status`, "utf8");
|
|
44
44
|
const ownerUid = Number.parseInt(status.match(/^Uid:\s+(\d+)/m)?.[1] ?? "", 10);
|
|
45
45
|
const currentUid = typeof process.getuid === "function" ? process.getuid() : -1;
|
|
46
46
|
if (!Number.isSafeInteger(ownerUid) || ownerUid !== currentUid) {
|
|
@@ -62,7 +62,7 @@ async function restartHostedServiceWithoutPrivilege() {
|
|
|
62
62
|
}
|
|
63
63
|
async function readHostedSystemdCommand(unitPath) {
|
|
64
64
|
try {
|
|
65
|
-
const content = await fs.readFile(unitPath, "utf8");
|
|
65
|
+
const content = await fs$1.readFile(unitPath, "utf8");
|
|
66
66
|
let workingDirectory = "";
|
|
67
67
|
let execStart = "";
|
|
68
68
|
const environment = {};
|
|
@@ -210,8 +210,8 @@ async function installHostedSystemdService(params) {
|
|
|
210
210
|
`${SERVICE_NAME}.service`
|
|
211
211
|
]).catch(() => undefined);
|
|
212
212
|
const userUnit = path.join(os.homedir(), ".config", "systemd", "user", `${SERVICE_NAME}.service`);
|
|
213
|
-
await fs.rm(userUnit, { force: true }).catch(() => undefined);
|
|
214
|
-
await fs.rm(`${userUnit}.d`, {
|
|
213
|
+
await fs$1.rm(userUnit, { force: true }).catch(() => undefined);
|
|
214
|
+
await fs$1.rm(`${userUnit}.d`, {
|
|
215
215
|
recursive: true,
|
|
216
216
|
force: true
|
|
217
217
|
}).catch(() => undefined);
|
|
@@ -3,7 +3,7 @@ import { normalizeAccountId } from "../../routing/account-id.js";
|
|
|
3
3
|
import { resolveAgentIdFromSessionKey } from "../../routing/session-key.js";
|
|
4
4
|
import { loadJsonFile, saveJsonFile } from "../../infra/json-file.js";
|
|
5
5
|
import { DEFAULT_THREAD_BINDING_IDLE_TIMEOUT_MS, DEFAULT_THREAD_BINDING_MAX_AGE_MS, RECENT_UNBOUND_WEBHOOK_ECHO_WINDOW_MS, THREAD_BINDINGS_VERSION } from "./thread-bindings.types.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
|
|
9
9
|
//#region src/discord/monitor/thread-bindings.state.ts
|
|
@@ -320,7 +320,7 @@ function shouldPersistBindingMutations() {
|
|
|
320
320
|
if (shouldPersistAnyBindingState()) {
|
|
321
321
|
return true;
|
|
322
322
|
}
|
|
323
|
-
return
|
|
323
|
+
return fs.existsSync(resolveThreadBindingsPath());
|
|
324
324
|
}
|
|
325
325
|
function saveBindingsToDisk(params = {}) {
|
|
326
326
|
if (!params.force && !shouldPersistAnyBindingState()) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SAT_RUNTIME_DEFAULTS } from "../../../config/sat-runtime-ids.js";
|
|
2
2
|
import "../../../plugin-sdk/sat-runtime.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region extensions/sat-mining/src/sat-bond-layout.ts
|
|
@@ -165,7 +165,7 @@ function resolveLayoutPath(env = process.env) {
|
|
|
165
165
|
path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-position-layout.json")
|
|
166
166
|
];
|
|
167
167
|
for (const candidate of candidates) {
|
|
168
|
-
if (candidate &&
|
|
168
|
+
if (candidate && fs.existsSync(candidate)) {
|
|
169
169
|
return candidate;
|
|
170
170
|
}
|
|
171
171
|
}
|
|
@@ -181,7 +181,7 @@ function resolvePolicyLayoutPath(env = process.env) {
|
|
|
181
181
|
path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-tier-policy-layout.json")
|
|
182
182
|
];
|
|
183
183
|
for (const candidate of candidates) {
|
|
184
|
-
if (candidate &&
|
|
184
|
+
if (candidate && fs.existsSync(candidate)) {
|
|
185
185
|
return candidate;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
@@ -197,7 +197,7 @@ function resolveStakingDistributorLayoutPath(env = process.env) {
|
|
|
197
197
|
path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-distributor-layout.json")
|
|
198
198
|
];
|
|
199
199
|
for (const candidate of candidates) {
|
|
200
|
-
if (candidate &&
|
|
200
|
+
if (candidate && fs.existsSync(candidate)) {
|
|
201
201
|
return candidate;
|
|
202
202
|
}
|
|
203
203
|
}
|
|
@@ -213,7 +213,7 @@ function resolveStakingPositionLayoutPath(env = process.env) {
|
|
|
213
213
|
path.resolve(import.meta.dirname, "..", "..", "..", "..", "..", "token", "sat", "bond-api", "bond-staking-position-layout.json")
|
|
214
214
|
];
|
|
215
215
|
for (const candidate of candidates) {
|
|
216
|
-
if (candidate &&
|
|
216
|
+
if (candidate && fs.existsSync(candidate)) {
|
|
217
217
|
return candidate;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
@@ -227,7 +227,7 @@ function loadSatBondLayout(env = process.env) {
|
|
|
227
227
|
}
|
|
228
228
|
const layoutPath = resolveLayoutPath(env);
|
|
229
229
|
if (layoutPath) {
|
|
230
|
-
const loaded = JSON.parse(
|
|
230
|
+
const loaded = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
|
|
231
231
|
cachedLayout = {
|
|
232
232
|
mode,
|
|
233
233
|
value: loaded
|
|
@@ -247,7 +247,7 @@ function loadSatBondPolicyLayout(env = process.env) {
|
|
|
247
247
|
}
|
|
248
248
|
const layoutPath = resolvePolicyLayoutPath(env);
|
|
249
249
|
if (layoutPath) {
|
|
250
|
-
cachedPolicyLayout = JSON.parse(
|
|
250
|
+
cachedPolicyLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
|
|
251
251
|
return cachedPolicyLayout;
|
|
252
252
|
}
|
|
253
253
|
cachedPolicyLayout = DEDICATED_FALLBACK_POLICY_LAYOUT;
|
|
@@ -260,7 +260,7 @@ function loadSatBondStakingDistributorLayout(env = process.env) {
|
|
|
260
260
|
}
|
|
261
261
|
const layoutPath = resolveStakingDistributorLayoutPath(env);
|
|
262
262
|
if (layoutPath) {
|
|
263
|
-
cachedStakingDistributorLayout = JSON.parse(
|
|
263
|
+
cachedStakingDistributorLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
|
|
264
264
|
return cachedStakingDistributorLayout;
|
|
265
265
|
}
|
|
266
266
|
cachedStakingDistributorLayout ??= DEDICATED_FALLBACK_STAKING_DISTRIBUTOR_LAYOUT;
|
|
@@ -273,7 +273,7 @@ function loadSatBondStakingPositionLayout(env = process.env) {
|
|
|
273
273
|
}
|
|
274
274
|
const layoutPath = resolveStakingPositionLayoutPath(env);
|
|
275
275
|
if (layoutPath) {
|
|
276
|
-
cachedStakingPositionLayout = JSON.parse(
|
|
276
|
+
cachedStakingPositionLayout = JSON.parse(fs.readFileSync(layoutPath, "utf-8"));
|
|
277
277
|
return cachedStakingPositionLayout;
|
|
278
278
|
}
|
|
279
279
|
cachedStakingPositionLayout ??= DEDICATED_FALLBACK_STAKING_POSITION_LAYOUT;
|
|
@@ -337,6 +337,12 @@ var SatSubmissionUnresolvedError = class extends Error {
|
|
|
337
337
|
this.signature = params.signature;
|
|
338
338
|
}
|
|
339
339
|
};
|
|
340
|
+
var SatSubmissionDefinitiveFailureError = class extends Error {
|
|
341
|
+
constructor(message) {
|
|
342
|
+
super(message);
|
|
343
|
+
this.name = "SatSubmissionDefinitiveFailureError";
|
|
344
|
+
}
|
|
345
|
+
};
|
|
340
346
|
async function executeTypedSatIntent(params) {
|
|
341
347
|
const isLookupTable = params.lookupTable != null;
|
|
342
348
|
const isVaultBond = !isLookupTable && params.action !== "cleanupBatch" && VAULT_BOND_ACTIONS.has(params.action);
|
|
@@ -385,6 +391,7 @@ async function executeTypedSatIntent(params) {
|
|
|
385
391
|
operationKey,
|
|
386
392
|
intentDigest,
|
|
387
393
|
action: params.action,
|
|
394
|
+
allowFailedRetry: isLookupTable,
|
|
388
395
|
env: params.env
|
|
389
396
|
});
|
|
390
397
|
if (!claim.claimed) {
|
|
@@ -399,6 +406,7 @@ async function executeTypedSatIntent(params) {
|
|
|
399
406
|
operationKey,
|
|
400
407
|
intentDigest,
|
|
401
408
|
action: params.action,
|
|
409
|
+
allowFailedRetry: isLookupTable,
|
|
402
410
|
env: params.env,
|
|
403
411
|
owner: claim.owner
|
|
404
412
|
});
|
|
@@ -643,7 +651,7 @@ async function executeTypedSatIntent(params) {
|
|
|
643
651
|
env: params.env
|
|
644
652
|
});
|
|
645
653
|
if (operation.state === "failed") {
|
|
646
|
-
throw new
|
|
654
|
+
throw new SatSubmissionDefinitiveFailureError(operation.error || `SAT signer operation ${requestId} failed`);
|
|
647
655
|
}
|
|
648
656
|
if (operation.state !== "confirmed" || !operation.signature) {
|
|
649
657
|
throw new SatSubmissionUnresolvedError({
|
|
@@ -670,8 +678,11 @@ async function executeTypedSatLookupOperation(params) {
|
|
|
670
678
|
action: params.action,
|
|
671
679
|
lookupTable: {
|
|
672
680
|
address: params.address,
|
|
681
|
+
cycleId: String(params.cycleId),
|
|
682
|
+
pageIndex: String(params.pageIndex),
|
|
673
683
|
...params.recentSlot == null ? {} : { recentSlot: String(params.recentSlot) },
|
|
674
|
-
...params.addresses?.length ? { addresses: params.addresses } : {}
|
|
684
|
+
...params.addresses?.length ? { addresses: params.addresses } : {},
|
|
685
|
+
...params.parent ? { parent: params.parent } : {}
|
|
675
686
|
},
|
|
676
687
|
cluster: resolveSatCluster(params.cfg),
|
|
677
688
|
env: params.context.effectiveEnv
|
|
@@ -708,67 +719,178 @@ async function waitForSatLookupTable(params) {
|
|
|
708
719
|
}
|
|
709
720
|
throw new Error(`SAT distribution lookup table did not become active for use within 6s${lastError instanceof Error ? `: ${lastError.message}` : ""}`);
|
|
710
721
|
}
|
|
722
|
+
const SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW = 128;
|
|
723
|
+
function recoverSatLookupTableRecentSlot(params) {
|
|
724
|
+
const oldestSlot = Math.max(0, params.currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
|
|
725
|
+
for (let recentSlot = params.currentSlot; recentSlot >= oldestSlot; recentSlot -= 1) {
|
|
726
|
+
const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
|
|
727
|
+
authority: params.context.signer,
|
|
728
|
+
payer: params.context.signer,
|
|
729
|
+
recentSlot
|
|
730
|
+
});
|
|
731
|
+
if (derivedAddress.toBase58() === params.lookupTable) {
|
|
732
|
+
return recentSlot;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
return undefined;
|
|
736
|
+
}
|
|
737
|
+
async function readReconciledSatLookupBinding(params) {
|
|
738
|
+
const request = {
|
|
739
|
+
cycleId: String(params.cycleId),
|
|
740
|
+
pageIndex: String(params.pageIndex)
|
|
741
|
+
};
|
|
742
|
+
const readBinding = async () => await callLocalSocketSigner(params.context.socketPath, {
|
|
743
|
+
op: "v2.satLookup.binding.get",
|
|
744
|
+
walletId: params.context.walletId,
|
|
745
|
+
request
|
|
746
|
+
});
|
|
747
|
+
const binding = await readBinding();
|
|
748
|
+
if (binding.cycleId !== request.cycleId || binding.pageIndex !== request.pageIndex || binding.bound !== Boolean(binding.address) || Boolean(binding.mutationRequestId) !== Boolean(binding.mutationState)) {
|
|
749
|
+
throw new Error("signer returned an invalid SAT lookup-table binding");
|
|
750
|
+
}
|
|
751
|
+
if (binding.mutationState === "reserved") {
|
|
752
|
+
throw new Error("SAT lookup-table mutation is already in progress");
|
|
753
|
+
}
|
|
754
|
+
if ((binding.mutationState === "broadcast" || binding.mutationState === "unknown") && binding.mutationRequestId) {
|
|
755
|
+
const operation = assertSatSignerOperationIdentity(await callLocalSocketSigner(params.context.socketPath, {
|
|
756
|
+
op: "v2.operation.reconcile",
|
|
757
|
+
walletId: params.context.walletId,
|
|
758
|
+
request: { requestId: binding.mutationRequestId }
|
|
759
|
+
}), binding.mutationRequestId);
|
|
760
|
+
if (operation.state === "reserved" || operation.state === "broadcast" || operation.state === "unknown") {
|
|
761
|
+
throw new SatSubmissionUnresolvedError({
|
|
762
|
+
requestId: operation.requestId,
|
|
763
|
+
state: operation.state,
|
|
764
|
+
signature: operation.signature,
|
|
765
|
+
detail: operation.error
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
const reconciled = await readBinding();
|
|
769
|
+
if (reconciled.cycleId !== request.cycleId || reconciled.pageIndex !== request.pageIndex || reconciled.bound !== Boolean(reconciled.address) || Boolean(reconciled.mutationRequestId) !== Boolean(reconciled.mutationState)) {
|
|
770
|
+
throw new Error("signer returned an invalid reconciled SAT lookup-table binding");
|
|
771
|
+
}
|
|
772
|
+
return reconciled;
|
|
773
|
+
}
|
|
774
|
+
return binding;
|
|
775
|
+
}
|
|
711
776
|
async function ensureSatDistributionLookupTable(params) {
|
|
712
777
|
assertSatLookupTableEnabled(params.context.effectiveEnv);
|
|
713
778
|
const desiredAddresses = [...new Set(params.addresses.map((entry) => entry.trim()))].filter(Boolean);
|
|
714
779
|
if (desiredAddresses.length === 0 || desiredAddresses.length > 256) {
|
|
715
780
|
throw new Error("SAT distribution lookup table requires 1-256 exact account addresses");
|
|
716
781
|
}
|
|
717
|
-
|
|
782
|
+
const signerBinding = await readReconciledSatLookupBinding({
|
|
783
|
+
context: params.context,
|
|
784
|
+
cycleId: params.cycleId,
|
|
785
|
+
pageIndex: params.pageIndex
|
|
786
|
+
});
|
|
787
|
+
let lookupTable = signerBinding.address?.trim() || "";
|
|
788
|
+
if (signerBinding.bound && lookupTable) {
|
|
789
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
790
|
+
}
|
|
718
791
|
let state = lookupTable ? await readValidatedSatLookupTable({
|
|
719
792
|
config: params.config,
|
|
720
793
|
address: lookupTable,
|
|
721
794
|
authority: params.context.signerAddress
|
|
722
795
|
}) : null;
|
|
796
|
+
if (lookupTable && state) {
|
|
797
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
798
|
+
}
|
|
723
799
|
let created = false;
|
|
724
800
|
const transactionHashes = [];
|
|
725
|
-
|
|
801
|
+
let createRecentSlot;
|
|
802
|
+
const attemptedCreateAddresses = new Set();
|
|
803
|
+
if (lookupTable && !state) {
|
|
726
804
|
const currentSlot = await inspectSatChainSlot(params.config);
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
recentSlot
|
|
732
|
-
});
|
|
733
|
-
lookupTable = derivedAddress.toBase58();
|
|
734
|
-
state = await readValidatedSatLookupTable({
|
|
735
|
-
config: params.config,
|
|
736
|
-
address: lookupTable,
|
|
737
|
-
authority: params.context.signerAddress
|
|
805
|
+
createRecentSlot = recoverSatLookupTableRecentSlot({
|
|
806
|
+
context: params.context,
|
|
807
|
+
lookupTable,
|
|
808
|
+
currentSlot
|
|
738
809
|
});
|
|
739
|
-
if (
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
810
|
+
if (createRecentSlot == null) {
|
|
811
|
+
if (signerBinding.bound) {
|
|
812
|
+
throw new Error("SAT distribution lookup table identity is not recoverable within the signer freshness window");
|
|
813
|
+
}
|
|
814
|
+
lookupTable = "";
|
|
815
|
+
} else {
|
|
816
|
+
attemptedCreateAddresses.add(lookupTable);
|
|
817
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
while (!state) {
|
|
821
|
+
if (!lookupTable || createRecentSlot == null) {
|
|
822
|
+
const currentSlot = await inspectSatChainSlot(params.config);
|
|
823
|
+
const oldestSlot = Math.max(0, currentSlot - SAT_LOOKUP_TABLE_CREATE_SLOT_WINDOW);
|
|
824
|
+
let selected = false;
|
|
825
|
+
for (let recentSlot = Math.max(0, currentSlot - 1); recentSlot >= oldestSlot; recentSlot -= 1) {
|
|
826
|
+
const [, derivedAddress] = params.context.solana.AddressLookupTableProgram.createLookupTable({
|
|
827
|
+
authority: params.context.signer,
|
|
828
|
+
payer: params.context.signer,
|
|
746
829
|
recentSlot
|
|
747
830
|
});
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
if (error instanceof SatSubmissionUnresolvedError) {
|
|
752
|
-
throw error;
|
|
831
|
+
const candidate = derivedAddress.toBase58();
|
|
832
|
+
if (attemptedCreateAddresses.has(candidate)) {
|
|
833
|
+
continue;
|
|
753
834
|
}
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
throw error;
|
|
835
|
+
attemptedCreateAddresses.add(candidate);
|
|
836
|
+
const existingCandidate = await readValidatedSatLookupTable({
|
|
837
|
+
config: params.config,
|
|
838
|
+
address: candidate,
|
|
839
|
+
authority: params.context.signerAddress
|
|
840
|
+
});
|
|
841
|
+
if (existingCandidate) {
|
|
842
|
+
continue;
|
|
763
843
|
}
|
|
844
|
+
lookupTable = candidate;
|
|
845
|
+
createRecentSlot = recentSlot;
|
|
846
|
+
await params.onLookupTableResolved?.(lookupTable);
|
|
847
|
+
selected = true;
|
|
848
|
+
break;
|
|
764
849
|
}
|
|
765
|
-
|
|
766
|
-
|
|
850
|
+
if (!selected) {
|
|
851
|
+
throw new Error("SAT distribution lookup table has no free signer-owned address in the freshness window");
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
try {
|
|
855
|
+
const submitted = await executeTypedSatLookupOperation({
|
|
856
|
+
context: params.context,
|
|
857
|
+
cfg: params.cfg,
|
|
858
|
+
action: "create",
|
|
767
859
|
address: lookupTable,
|
|
768
|
-
|
|
769
|
-
|
|
860
|
+
cycleId: params.cycleId,
|
|
861
|
+
pageIndex: params.pageIndex,
|
|
862
|
+
recentSlot: createRecentSlot,
|
|
863
|
+
parent: params.parent
|
|
770
864
|
});
|
|
865
|
+
transactionHashes.push(submitted.signature);
|
|
866
|
+
created = true;
|
|
867
|
+
} catch (error) {
|
|
868
|
+
if (error instanceof SatSubmissionDefinitiveFailureError && error.message.includes("address is already bound to another cycle and page")) {
|
|
869
|
+
lookupTable = "";
|
|
870
|
+
createRecentSlot = undefined;
|
|
871
|
+
continue;
|
|
872
|
+
}
|
|
873
|
+
if (error instanceof SatSubmissionUnresolvedError || error instanceof SatSubmissionDefinitiveFailureError) {
|
|
874
|
+
throw error;
|
|
875
|
+
}
|
|
876
|
+
try {
|
|
877
|
+
state = await waitForSatLookupTable({
|
|
878
|
+
config: params.config,
|
|
879
|
+
address: lookupTable,
|
|
880
|
+
authority: params.context.signerAddress,
|
|
881
|
+
requireNextSlot: false
|
|
882
|
+
});
|
|
883
|
+
} catch {
|
|
884
|
+
throw error;
|
|
885
|
+
}
|
|
771
886
|
}
|
|
887
|
+
state ??= await waitForSatLookupTable({
|
|
888
|
+
config: params.config,
|
|
889
|
+
address: lookupTable,
|
|
890
|
+
authority: params.context.signerAddress,
|
|
891
|
+
requireNextSlot: false
|
|
892
|
+
});
|
|
893
|
+
break;
|
|
772
894
|
}
|
|
773
895
|
if (!state) {
|
|
774
896
|
throw new Error("SAT distribution lookup table was not found at the confirmed commitment");
|
|
@@ -783,7 +905,10 @@ async function ensureSatDistributionLookupTable(params) {
|
|
|
783
905
|
cfg: params.cfg,
|
|
784
906
|
action: "extend",
|
|
785
907
|
address: lookupTable,
|
|
786
|
-
|
|
908
|
+
cycleId: params.cycleId,
|
|
909
|
+
pageIndex: params.pageIndex,
|
|
910
|
+
addresses,
|
|
911
|
+
parent: params.parent
|
|
787
912
|
});
|
|
788
913
|
transactionHashes.push(submitted.signature);
|
|
789
914
|
} catch (error) {
|
|
@@ -841,7 +966,11 @@ async function submitInstructionViaLocalSigner(params) {
|
|
|
841
966
|
cfg: params.cfg,
|
|
842
967
|
config: params.cfg,
|
|
843
968
|
lookupTableAddress: params.manageAddressLookupTable.lookupTableAddress,
|
|
844
|
-
|
|
969
|
+
cycleId: params.manageAddressLookupTable.cycleId,
|
|
970
|
+
pageIndex: params.manageAddressLookupTable.pageIndex,
|
|
971
|
+
addresses: baseRequest.keys.filter((key) => !key.isSigner).map((key) => key.pubkey),
|
|
972
|
+
parent: baseRequest,
|
|
973
|
+
onLookupTableResolved: params.manageAddressLookupTable.onLookupTableResolved
|
|
845
974
|
});
|
|
846
975
|
}
|
|
847
976
|
const request = managedLookupTable ? {
|
|
@@ -2748,7 +2877,12 @@ async function submitSatDistributeCyclePage(_config, params) {
|
|
|
2748
2877
|
cfg,
|
|
2749
2878
|
env: process.env,
|
|
2750
2879
|
data: buildDistributeCyclePageData(params),
|
|
2751
|
-
...lookupTableAddress || requiresLookupTable ? { manageAddressLookupTable: {
|
|
2880
|
+
...lookupTableAddress || requiresLookupTable ? { manageAddressLookupTable: {
|
|
2881
|
+
cycleId: params.cycleId,
|
|
2882
|
+
pageIndex: params.pageIndex,
|
|
2883
|
+
...lookupTableAddress ? { lookupTableAddress } : {},
|
|
2884
|
+
...params.onLookupTableResolved ? { onLookupTableResolved: params.onLookupTableResolved } : {}
|
|
2885
|
+
} } : {},
|
|
2752
2886
|
accountResolver: async (solana, signer) => {
|
|
2753
2887
|
const programId = new solana.PublicKey(SAT_PROGRAM_ID());
|
|
2754
2888
|
const [satCycleState] = solana.PublicKey.findProgramAddressSync([Buffer.from(SAT_CYCLE_STATE_SEED), encodeU64(params.cycleId)], programId);
|
|
@@ -2857,9 +2991,17 @@ async function submitSatCleanupDistributionLookupTable(_config, params) {
|
|
|
2857
2991
|
if (!context.walletId) {
|
|
2858
2992
|
throw new Error("typed SAT lookup-table cleanup requires an explicit mining walletId");
|
|
2859
2993
|
}
|
|
2860
|
-
const
|
|
2861
|
-
|
|
2862
|
-
|
|
2994
|
+
const binding = await readReconciledSatLookupBinding({
|
|
2995
|
+
context: {
|
|
2996
|
+
...context,
|
|
2997
|
+
walletId: context.walletId
|
|
2998
|
+
},
|
|
2999
|
+
cycleId: params.cycleId,
|
|
3000
|
+
pageIndex: params.pageIndex
|
|
3001
|
+
});
|
|
3002
|
+
const lookupTable = binding.address?.trim() ?? "";
|
|
3003
|
+
if (binding.cycleId !== String(params.cycleId) || binding.pageIndex !== String(params.pageIndex) || !binding.bound || !lookupTable) {
|
|
3004
|
+
throw new Error("SAT distribution lookup table is not bound to this wallet, cycle, and page");
|
|
2863
3005
|
}
|
|
2864
3006
|
const submitted = await executeTypedSatLookupOperation({
|
|
2865
3007
|
context: {
|
|
@@ -2868,7 +3010,9 @@ async function submitSatCleanupDistributionLookupTable(_config, params) {
|
|
|
2868
3010
|
},
|
|
2869
3011
|
cfg,
|
|
2870
3012
|
action: params.action,
|
|
2871
|
-
address: lookupTable
|
|
3013
|
+
address: lookupTable,
|
|
3014
|
+
cycleId: params.cycleId,
|
|
3015
|
+
pageIndex: params.pageIndex
|
|
2872
3016
|
});
|
|
2873
3017
|
return {
|
|
2874
3018
|
lookupTable,
|
|
@@ -223,13 +223,33 @@ async function claimSatSubmission(params) {
|
|
|
223
223
|
walletId: params.walletId,
|
|
224
224
|
env
|
|
225
225
|
});
|
|
226
|
-
const requestId = buildSatSubmissionRequestId(params);
|
|
227
226
|
const owner = params.owner ?? `${process.pid}:${randomUUID()}`;
|
|
228
227
|
return await withSatSubmissionLedgerLock(filePath, async () => {
|
|
229
228
|
const ledger = await readLedger(filePath);
|
|
229
|
+
let operationKey = params.operationKey;
|
|
230
|
+
let requestId = buildSatSubmissionRequestId({
|
|
231
|
+
...params,
|
|
232
|
+
operationKey
|
|
233
|
+
});
|
|
234
|
+
if (params.allowFailedRetry) {
|
|
235
|
+
for (let retry = 1; retry <= 32; retry += 1) {
|
|
236
|
+
const prior = ledger.records[requestId];
|
|
237
|
+
if (!prior || prior.state !== "failed") {
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
operationKey = `${params.operationKey}:retry:${retry}`;
|
|
241
|
+
requestId = buildSatSubmissionRequestId({
|
|
242
|
+
...params,
|
|
243
|
+
operationKey
|
|
244
|
+
});
|
|
245
|
+
if (retry === 32 && ledger.records[requestId]?.state === "failed") {
|
|
246
|
+
throw new Error("SAT submission exhausted its safe pre-broadcast retry limit");
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
230
250
|
const existing = ledger.records[requestId];
|
|
231
251
|
if (existing) {
|
|
232
|
-
if (existing.intentDigest !== params.intentDigest || existing.walletId !== params.walletId || existing.workflowId !== params.workflowId || existing.operationKey !==
|
|
252
|
+
if (existing.intentDigest !== params.intentDigest || existing.walletId !== params.walletId || existing.workflowId !== params.workflowId || existing.operationKey !== operationKey) {
|
|
233
253
|
throw new Error(`SAT idempotency collision for ${requestId}: the workflow key is already bound to a different immutable intent digest`);
|
|
234
254
|
}
|
|
235
255
|
if (leaseIsLive(existing.lease) && existing.lease?.owner !== owner) {
|
|
@@ -261,7 +281,7 @@ async function claimSatSubmission(params) {
|
|
|
261
281
|
const record = {
|
|
262
282
|
requestId,
|
|
263
283
|
workflowId: params.workflowId,
|
|
264
|
-
operationKey
|
|
284
|
+
operationKey,
|
|
265
285
|
intentDigest: params.intentDigest,
|
|
266
286
|
walletId: params.walletId,
|
|
267
287
|
action: params.action,
|
|
@@ -3,7 +3,7 @@ import { resolveProcessScopedMap } from "../shared/process-scoped-map.js";
|
|
|
3
3
|
import { acquireFileLock, withFileLock } from "../plugin-sdk/file-lock.js";
|
|
4
4
|
import "../infra/file-lock.js";
|
|
5
5
|
import { serializeWalletState, writeWalletStateFileAtomically } from "../wallet/wallet-atomic-state.js";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { createHash } from "node:crypto";
|
|
9
9
|
|
|
@@ -85,17 +85,17 @@ function readMarketplaceDeliveryOutbox(params) {
|
|
|
85
85
|
return null;
|
|
86
86
|
}
|
|
87
87
|
const filePath = recordPath(deliveryId, params.env ?? process.env);
|
|
88
|
-
if (!
|
|
88
|
+
if (!fs.existsSync(filePath)) {
|
|
89
89
|
return null;
|
|
90
90
|
}
|
|
91
91
|
try {
|
|
92
|
-
return validateRecord(JSON.parse(
|
|
92
|
+
return validateRecord(JSON.parse(fs.readFileSync(filePath, "utf8")), deliveryId);
|
|
93
93
|
} catch (error) {
|
|
94
94
|
throw new Error("marketplace delivery outbox is unreadable; refusing to resend", { cause: error });
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
function writeRecord(record, env) {
|
|
98
|
-
|
|
98
|
+
fs.mkdirSync(outboxDirectory(env), {
|
|
99
99
|
recursive: true,
|
|
100
100
|
mode: 448
|
|
101
101
|
});
|
|
@@ -109,7 +109,7 @@ async function reserveMarketplaceDelivery(params) {
|
|
|
109
109
|
throw new Error("marketplace delivery identity is incomplete");
|
|
110
110
|
}
|
|
111
111
|
const intentDigest = marketplaceDeliveryIntentDigest(params.intent);
|
|
112
|
-
|
|
112
|
+
fs.mkdirSync(outboxDirectory(env), {
|
|
113
113
|
recursive: true,
|
|
114
114
|
mode: 448
|
|
115
115
|
});
|