@fased/fased 0.1.64 → 0.1.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/LICENSE +0 -0
- package/README.md +16 -9
- 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/config/signer-policies/README.md +10 -1
- package/config/signer-protocol-v2.json +2 -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/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-bR-fO5ty.js → app-DYxADzeH.js} +5 -5
- package/dist/control-ui/assets/{index-ckCxHwjy.js → index-vw_10Zeo.js} +3 -3
- package/dist/control-ui/assets/{mining-BgHFh0ei.js → mining-Dg-3ll0F.js} +69 -69
- 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/rpc-read.js +59 -20
- package/dist/extensions/sat-mining/src/sat-bond-layout.js +9 -9
- package/dist/extensions/sat-mining/src/solana-submit.js +396 -9
- package/dist/extensions/sat-mining/src/submission-ledger.js +24 -4
- 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/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-BYxAt775.js → audio-preflight-BFLoas5R.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/{chunk-items-DIRHG2gJ.js → chunk-items-TErs62MC.js} +1 -1
- package/dist/plugin-sdk/command-status.js +1 -1
- package/dist/plugin-sdk/{config-schema-BOT7kHb6.js → config-schema-BPnaDBwZ.js} +63 -8
- package/dist/plugin-sdk/device-pair.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +3 -3
- package/dist/plugin-sdk/file-lock.js +10 -10
- package/dist/plugin-sdk/index.d.ts +4 -4
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/json-store.js +6 -6
- package/dist/plugin-sdk/{monitor-BCFDaqJ-.js → monitor-FuBPk-AL.js} +3 -3
- package/dist/plugin-sdk/{monitor-BgbjRiPM.js → monitor-sW6dQdX1.js} +3 -3
- package/dist/plugin-sdk/{openresponses-http-DFf87SMM.js → openresponses-http-CVZq0H-P.js} +1 -1
- package/dist/plugin-sdk/{pairing-message-CS-9BHug.d.ts → pairing-message-L6L6L2YF.d.ts} +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
- package/dist/plugin-sdk/sat-runtime.d.ts +69 -2
- package/dist/plugin-sdk/sat-runtime.js +1 -1
- package/dist/plugin-sdk/{slack-BUTt8cxK.js → slack-BZISDxDd.js} +3 -3
- package/dist/plugin-sdk/slack.d.ts +3 -3
- package/dist/plugin-sdk/{sticker-cache-D0wHVqjt.js → sticker-cache-B0aPv6Lg.js} +2 -2
- package/dist/plugin-sdk/{telegram-actions-CC_qN4v0.js → telegram-actions-H3gePEn6.js} +2 -2
- package/dist/plugin-sdk/telegram.d.ts +3 -3
- package/dist/plugin-sdk/{tmp-fased-dir-xOTGlzBE.d.ts → tmp-fased-dir-d1CmFAnJ.d.ts} +1 -1
- package/dist/plugin-sdk/{types-C3avNytw.d.ts → types-DUjYaWB2.d.ts} +3 -3
- package/dist/plugin-sdk/{types-DWfbSAaM.d.ts → types-xWjHXl1z.d.ts} +1 -1
- package/dist/plugin-sdk/{web-BXsJ1vqe.js → web-JwP9PAZR.js} +1 -1
- package/dist/plugin-sdk/whatsapp.d.ts +3 -3
- 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 +52 -0
- package/dist/wallet/providers/local-socket-signer-adapter.js +3 -2
- package/dist/wallet/signer-network-admin.js +9 -3
- package/dist/wallet/signer-protocol-v2.generated.js +2 -0
- 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 +8 -6
- 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 +100 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/sat-mining/skills/sat-mining/SKILL.md +0 -0
- package/extensions/sat-mining/src/audit-store.ts +45 -4
- 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/client.ts +13 -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/rpc-read.ts +105 -21
- package/extensions/sat-mining/src/runtime.ts +2 -0
- package/extensions/sat-mining/src/service-read-timeout.ts +0 -0
- package/extensions/sat-mining/src/solana-submit.ts +593 -22
- 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 +20 -4
- 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/install.sh +15 -16
- package/package.json +1 -1
- package/scripts/fased-launcher-runtime.mjs +0 -0
- package/scripts/fased-managed-updater.mjs +1 -1
- package/scripts/fased-signer-network-hosting.sh +18 -7
- package/scripts/fased-signer-owner-policy.mjs +13 -1
- package/scripts/run-node.mjs +0 -0
- package/scripts/start-managed.sh +4 -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
|
@@ -11,28 +11,28 @@ import { loadSessionStore } from "../config/sessions/store.js";
|
|
|
11
11
|
import { ensureSessionTranscriptHeader } from "../config/sessions/transcript.js";
|
|
12
12
|
import "../config/sessions.js";
|
|
13
13
|
import { note } from "../terminal/note.js";
|
|
14
|
-
import
|
|
14
|
+
import fs from "node:fs";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import path from "node:path";
|
|
17
17
|
|
|
18
18
|
//#region src/commands/doctor-state-integrity.ts
|
|
19
19
|
function existsDir(dir) {
|
|
20
20
|
try {
|
|
21
|
-
return
|
|
21
|
+
return fs.existsSync(dir) && fs.statSync(dir).isDirectory();
|
|
22
22
|
} catch {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
function existsFile(filePath) {
|
|
27
27
|
try {
|
|
28
|
-
return
|
|
28
|
+
return fs.existsSync(filePath) && fs.statSync(filePath).isFile();
|
|
29
29
|
} catch {
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
function canWriteDir(dir) {
|
|
34
34
|
try {
|
|
35
|
-
|
|
35
|
+
fs.accessSync(dir, fs.constants.W_OK);
|
|
36
36
|
return true;
|
|
37
37
|
} catch {
|
|
38
38
|
return false;
|
|
@@ -40,7 +40,7 @@ function canWriteDir(dir) {
|
|
|
40
40
|
}
|
|
41
41
|
function ensureDir(dir) {
|
|
42
42
|
try {
|
|
43
|
-
|
|
43
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
44
44
|
return { ok: true };
|
|
45
45
|
} catch (err) {
|
|
46
46
|
return {
|
|
@@ -53,7 +53,7 @@ function dirPermissionHint(dir) {
|
|
|
53
53
|
const uid = typeof process.getuid === "function" ? process.getuid() : null;
|
|
54
54
|
const gid = typeof process.getgid === "function" ? process.getgid() : null;
|
|
55
55
|
try {
|
|
56
|
-
const stat =
|
|
56
|
+
const stat = fs.statSync(dir);
|
|
57
57
|
if (uid !== null && stat.uid !== uid) {
|
|
58
58
|
return `Owner mismatch (uid ${stat.uid}). Run: sudo chown -R $USER "${dir}"`;
|
|
59
59
|
}
|
|
@@ -71,7 +71,7 @@ function addUserRwx(mode) {
|
|
|
71
71
|
}
|
|
72
72
|
function countJsonlLines(filePath) {
|
|
73
73
|
try {
|
|
74
|
-
const raw =
|
|
74
|
+
const raw = fs.readFileSync(filePath, "utf-8");
|
|
75
75
|
if (!raw) {
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
@@ -96,7 +96,7 @@ function findOtherStateDirs(stateDir) {
|
|
|
96
96
|
for (const root of roots) {
|
|
97
97
|
let entries = [];
|
|
98
98
|
try {
|
|
99
|
-
entries =
|
|
99
|
+
entries = fs.readdirSync(root, { withFileTypes: true });
|
|
100
100
|
} catch {
|
|
101
101
|
continue;
|
|
102
102
|
}
|
|
@@ -226,9 +226,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
226
226
|
});
|
|
227
227
|
if (repair) {
|
|
228
228
|
try {
|
|
229
|
-
const stat =
|
|
229
|
+
const stat = fs.statSync(stateDir);
|
|
230
230
|
const target = addUserRwx(stat.mode);
|
|
231
|
-
|
|
231
|
+
fs.chmodSync(stateDir, target);
|
|
232
232
|
changes.push(`- Repaired permissions on ${displayStateDir}`);
|
|
233
233
|
} catch (err) {
|
|
234
234
|
warnings.push(`- Failed to repair ${displayStateDir}: ${String(err)}`);
|
|
@@ -237,10 +237,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
237
237
|
}
|
|
238
238
|
if (stateDirExists && process.platform !== "win32") {
|
|
239
239
|
try {
|
|
240
|
-
const dirLstat =
|
|
240
|
+
const dirLstat = fs.lstatSync(stateDir);
|
|
241
241
|
const isDirSymlink = dirLstat.isSymbolicLink();
|
|
242
|
-
const stat = isDirSymlink ?
|
|
243
|
-
const resolvedDir = isDirSymlink ?
|
|
242
|
+
const stat = isDirSymlink ? fs.statSync(stateDir) : dirLstat;
|
|
243
|
+
const resolvedDir = isDirSymlink ? fs.realpathSync(stateDir) : stateDir;
|
|
244
244
|
const isImmutableStore = resolvedDir.startsWith("/nix/store/");
|
|
245
245
|
if (!isImmutableStore && (stat.mode & 63) !== 0) {
|
|
246
246
|
warnings.push(`- State directory permissions are too open (${displayStateDir}). Recommend chmod 700.`);
|
|
@@ -249,7 +249,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
249
249
|
initialValue: true
|
|
250
250
|
});
|
|
251
251
|
if (tighten) {
|
|
252
|
-
|
|
252
|
+
fs.chmodSync(stateDir, 448);
|
|
253
253
|
changes.push(`- Tightened permissions on ${displayStateDir} to 700`);
|
|
254
254
|
}
|
|
255
255
|
}
|
|
@@ -259,10 +259,10 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
259
259
|
}
|
|
260
260
|
if (configPath && existsFile(configPath) && process.platform !== "win32") {
|
|
261
261
|
try {
|
|
262
|
-
const configLstat =
|
|
262
|
+
const configLstat = fs.lstatSync(configPath);
|
|
263
263
|
const isSymlink = configLstat.isSymbolicLink();
|
|
264
|
-
const stat = isSymlink ?
|
|
265
|
-
const resolvedConfig = isSymlink ?
|
|
264
|
+
const stat = isSymlink ? fs.statSync(configPath) : configLstat;
|
|
265
|
+
const resolvedConfig = isSymlink ? fs.realpathSync(configPath) : configPath;
|
|
266
266
|
const isImmutableConfig = resolvedConfig.startsWith("/nix/store/");
|
|
267
267
|
if (!isImmutableConfig && (stat.mode & 63) !== 0) {
|
|
268
268
|
warnings.push(`- Config file is group/world readable (${displayConfigPath ?? configPath}). Recommend chmod 600.`);
|
|
@@ -271,7 +271,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
271
271
|
initialValue: true
|
|
272
272
|
});
|
|
273
273
|
if (tighten) {
|
|
274
|
-
|
|
274
|
+
fs.chmodSync(configPath, 384);
|
|
275
275
|
changes.push(`- Tightened permissions on ${displayConfigPath ?? configPath} to 600`);
|
|
276
276
|
}
|
|
277
277
|
}
|
|
@@ -330,9 +330,9 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
330
330
|
});
|
|
331
331
|
if (repair) {
|
|
332
332
|
try {
|
|
333
|
-
const stat =
|
|
333
|
+
const stat = fs.statSync(dir);
|
|
334
334
|
const target = addUserRwx(stat.mode);
|
|
335
|
-
|
|
335
|
+
fs.chmodSync(dir, target);
|
|
336
336
|
changes.push(`- Repaired permissions on ${label}: ${displayDir}`);
|
|
337
337
|
} catch (err) {
|
|
338
338
|
warnings.push(`- Failed to repair ${displayDir}: ${String(err)}`);
|
|
@@ -432,7 +432,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
432
432
|
referencedTranscriptPaths.add(path.resolve(resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts)));
|
|
433
433
|
} catch {}
|
|
434
434
|
}
|
|
435
|
-
const sessionDirEntries =
|
|
435
|
+
const sessionDirEntries = fs.readdirSync(sessionsDir, { withFileTypes: true });
|
|
436
436
|
const orphanTranscriptPaths = sessionDirEntries.filter((entry) => entry.isFile() && isPrimarySessionTranscriptFileName(entry.name)).map((entry) => path.resolve(path.join(sessionsDir, entry.name))).filter((filePath) => !referencedTranscriptPaths.has(filePath));
|
|
437
437
|
if (orphanTranscriptPaths.length > 0) {
|
|
438
438
|
warnings.push(`- Found ${orphanTranscriptPaths.length} orphan transcript file(s) in ${displaySessionsDir}. They are not referenced by sessions.json and can consume disk over time.`);
|
|
@@ -446,7 +446,7 @@ async function noteStateIntegrity(cfg, prompter, configPath) {
|
|
|
446
446
|
for (const orphanPath of orphanTranscriptPaths) {
|
|
447
447
|
const archivedPath = `${orphanPath}.deleted.${archivedAt}`;
|
|
448
448
|
try {
|
|
449
|
-
|
|
449
|
+
fs.renameSync(orphanPath, archivedPath);
|
|
450
450
|
archived += 1;
|
|
451
451
|
} catch (err) {
|
|
452
452
|
warnings.push(`- Failed to archive orphan transcript ${shortenHomePath(orphanPath)}: ${String(err)}`);
|
|
@@ -470,7 +470,7 @@ function noteWorkspaceBackupTip(workspaceDir) {
|
|
|
470
470
|
return;
|
|
471
471
|
}
|
|
472
472
|
const gitMarker = path.join(workspaceDir, ".git");
|
|
473
|
-
if (
|
|
473
|
+
if (fs.existsSync(gitMarker)) {
|
|
474
474
|
return;
|
|
475
475
|
}
|
|
476
476
|
note([
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { shortenHomePath } from "../utils.js";
|
|
2
2
|
import { DEFAULT_AGENTS_FILENAME } from "../agents/workspace.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/commands/doctor-workspace.ts
|
|
@@ -16,13 +16,13 @@ async function shouldSuggestMemorySystem(workspaceDir) {
|
|
|
16
16
|
const memoryPaths = [path.join(workspaceDir, "MEMORY.md"), path.join(workspaceDir, "memory.md")];
|
|
17
17
|
for (const memoryPath of memoryPaths) {
|
|
18
18
|
try {
|
|
19
|
-
await
|
|
19
|
+
await fs.promises.access(memoryPath);
|
|
20
20
|
return false;
|
|
21
21
|
} catch {}
|
|
22
22
|
}
|
|
23
23
|
const agentsPath = path.join(workspaceDir, DEFAULT_AGENTS_FILENAME);
|
|
24
24
|
try {
|
|
25
|
-
const content = await
|
|
25
|
+
const content = await fs.promises.readFile(agentsPath, "utf-8");
|
|
26
26
|
if (/memory\.md/i.test(content)) {
|
|
27
27
|
return false;
|
|
28
28
|
}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -37,7 +37,7 @@ import { maybeRepairUiProtocolFreshness } from "./doctor-ui.js";
|
|
|
37
37
|
import { maybeOfferUpdateBeforeDoctor } from "./doctor-update.js";
|
|
38
38
|
import { MEMORY_SYSTEM_PROMPT, shouldSuggestMemorySystem } from "./doctor-workspace.js";
|
|
39
39
|
import { noteWorkspaceStatus } from "./doctor-workspace-status.js";
|
|
40
|
-
import
|
|
40
|
+
import fs from "node:fs";
|
|
41
41
|
import { intro, outro } from "@clack/prompts";
|
|
42
42
|
|
|
43
43
|
//#region src/commands/doctor.ts
|
|
@@ -83,7 +83,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
|
|
|
83
83
|
`Fix: run ${formatCliCommand("fased configure")} and set Gateway mode (local/remote).`,
|
|
84
84
|
`Or set directly: ${formatCliCommand("fased config set gateway.mode local")}`
|
|
85
85
|
];
|
|
86
|
-
if (!
|
|
86
|
+
if (!fs.existsSync(configPath)) {
|
|
87
87
|
lines.push(`Missing config: run ${formatCliCommand("fased setup")} first.`);
|
|
88
88
|
}
|
|
89
89
|
note$1(lines.join("\n"), "Gateway");
|
|
@@ -233,7 +233,7 @@ async function doctorCommand(runtime = defaultRuntime, options = {}) {
|
|
|
233
233
|
await writeConfigFile(cfg);
|
|
234
234
|
logConfigUpdated(runtime);
|
|
235
235
|
const backupPath = `${CONFIG_PATH}.bak`;
|
|
236
|
-
if (
|
|
236
|
+
if (fs.existsSync(backupPath)) {
|
|
237
237
|
runtime.log(`Backup: ${shortenHomePath(backupPath)}`);
|
|
238
238
|
}
|
|
239
239
|
} else if (configResult.hasPendingChanges) {
|
|
@@ -2,7 +2,7 @@ import { defaultRuntime } from "../runtime.js";
|
|
|
2
2
|
import { readManagedFederationTokenSummary } from "../managed/federation.js";
|
|
3
3
|
import { readManagedReservationSummaries } from "../managed/tunnel.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { spawn } from "node:child_process";
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ function resolveManagedScriptPath() {
|
|
|
44
44
|
candidates.push(cwdCandidate);
|
|
45
45
|
}
|
|
46
46
|
for (const candidate of candidates) {
|
|
47
|
-
if (
|
|
47
|
+
if (fs.existsSync(candidate)) {
|
|
48
48
|
return candidate;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -11,7 +11,7 @@ import { VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF } from "../providers/vercel-ai-gate
|
|
|
11
11
|
import "../providers/registry.js";
|
|
12
12
|
import { PROVIDER_ENV_VARS } from "../secrets/provider-env-vars.js";
|
|
13
13
|
import { MISTRAL_DEFAULT_MODEL_REF, XAI_DEFAULT_MODEL_REF } from "./onboard-auth.models.js";
|
|
14
|
-
import
|
|
14
|
+
import fs from "node:fs";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
|
|
17
17
|
//#region src/commands/onboard-auth.credentials.ts
|
|
@@ -96,7 +96,7 @@ function assertValidOAuthCredentialInput(provider, creds) {
|
|
|
96
96
|
/** Resolve real path, returning null if the target doesn't exist. */
|
|
97
97
|
function safeRealpathSync(dir) {
|
|
98
98
|
try {
|
|
99
|
-
return
|
|
99
|
+
return fs.realpathSync(path.resolve(dir));
|
|
100
100
|
} catch {
|
|
101
101
|
return null;
|
|
102
102
|
}
|
|
@@ -109,7 +109,7 @@ function resolveSiblingAgentDirs(primaryAgentDir) {
|
|
|
109
109
|
const agentsRoot = looksLikeStandardLayout ? candidateAgentsRoot : path.join(resolveStateDir(), "agents");
|
|
110
110
|
const entries = (() => {
|
|
111
111
|
try {
|
|
112
|
-
return
|
|
112
|
+
return fs.readdirSync(agentsRoot, { withFileTypes: true });
|
|
113
113
|
} catch {
|
|
114
114
|
return [];
|
|
115
115
|
}
|
|
@@ -7,7 +7,7 @@ import { loadFasedAgentPlugins } from "../../plugins/loader.js";
|
|
|
7
7
|
import { createPluginLoaderLogger } from "../../plugins/logger.js";
|
|
8
8
|
import { finalizeInstalledPluginConfig } from "../../plugins/lifecycle.js";
|
|
9
9
|
import { resolveChannelPluginExpectedPluginIds } from "../../channels/plugins/catalog.js";
|
|
10
|
-
import
|
|
10
|
+
import fs from "node:fs";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
|
|
13
13
|
//#region src/commands/onboarding/plugin-install.ts
|
|
@@ -29,7 +29,7 @@ function resolveLocalPath(entry, workspaceDir) {
|
|
|
29
29
|
candidates.add(path.resolve(packageRoot, raw));
|
|
30
30
|
}
|
|
31
31
|
for (const candidate of candidates) {
|
|
32
|
-
if (
|
|
32
|
+
if (fs.existsSync(candidate)) {
|
|
33
33
|
return candidate;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -7,7 +7,7 @@ import { capEntryCount, loadSessionStore, pruneStaleEntries, resolveMaintenanceC
|
|
|
7
7
|
import "../config/sessions.js";
|
|
8
8
|
import { resolveSessionStoreTargets } from "./session-store-targets.js";
|
|
9
9
|
import { SESSION_AGE_PAD, SESSION_KEY_PAD, SESSION_MODEL_PAD, formatSessionAgeCell, formatSessionFlagsCell, formatSessionKeyCell, formatSessionModelCell, resolveSessionDisplayDefaults, resolveSessionDisplayModel, toSessionDisplayRows } from "./sessions-table.js";
|
|
10
|
-
import
|
|
10
|
+
import fs from "node:fs";
|
|
11
11
|
|
|
12
12
|
//#region src/commands/sessions-cleanup.ts
|
|
13
13
|
const ACTION_PAD = 12;
|
|
@@ -65,7 +65,7 @@ function pruneMissingTranscriptEntries(params) {
|
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
67
|
const transcriptPath = resolveSessionFilePath(entry.sessionId, entry, sessionPathOpts);
|
|
68
|
-
if (!
|
|
68
|
+
if (!fs.existsSync(transcriptPath)) {
|
|
69
69
|
delete params.store[key];
|
|
70
70
|
removed += 1;
|
|
71
71
|
params.onPruned?.(key);
|
|
@@ -5,7 +5,7 @@ import { resolveBrewExecutable } from "../infra/brew.js";
|
|
|
5
5
|
import { createWriteStream } from "node:fs";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import fs from "node:fs/promises";
|
|
8
|
+
import fs$1 from "node:fs/promises";
|
|
9
9
|
import { pipeline } from "node:stream/promises";
|
|
10
10
|
import { request } from "node:https";
|
|
11
11
|
|
|
@@ -79,7 +79,7 @@ async function findSignalCliBinary(root) {
|
|
|
79
79
|
if (depth > 3) {
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
|
-
const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
82
|
+
const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
83
83
|
for (const entry of entries) {
|
|
84
84
|
const full = path.join(dir, entry.name);
|
|
85
85
|
if (entry.isDirectory()) {
|
|
@@ -103,7 +103,7 @@ async function resolveBrewSignalCliPath(brewExe) {
|
|
|
103
103
|
const prefix = result.stdout.trim();
|
|
104
104
|
const candidate = path.join(prefix, "bin", "signal-cli");
|
|
105
105
|
try {
|
|
106
|
-
await fs.access(candidate);
|
|
106
|
+
await fs$1.access(candidate);
|
|
107
107
|
return candidate;
|
|
108
108
|
} catch {
|
|
109
109
|
return findSignalCliBinary(prefix);
|
|
@@ -172,12 +172,12 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
172
172
|
error: "No compatible release asset found for this platform."
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
|
-
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "fased-signal-"));
|
|
175
|
+
const tmpDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "fased-signal-"));
|
|
176
176
|
const archivePath = path.join(tmpDir, asset.name);
|
|
177
177
|
runtime.log(`Downloading signal-cli ${version} (${asset.name})…`);
|
|
178
178
|
await downloadToFile(asset.browser_download_url, archivePath);
|
|
179
179
|
const installRoot = path.join(CONFIG_DIR, "tools", "signal-cli", version);
|
|
180
|
-
await fs.mkdir(installRoot, { recursive: true });
|
|
180
|
+
await fs$1.mkdir(installRoot, { recursive: true });
|
|
181
181
|
if (!looksLikeArchive(asset.name.toLowerCase())) {
|
|
182
182
|
return {
|
|
183
183
|
ok: false,
|
|
@@ -200,7 +200,7 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
200
200
|
error: `signal-cli binary not found after extracting ${asset.name}`
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
|
-
await fs.chmod(cliPath, 493).catch(() => {});
|
|
203
|
+
await fs$1.chmod(cliPath, 493).catch(() => {});
|
|
204
204
|
return {
|
|
205
205
|
ok: true,
|
|
206
206
|
cliPath,
|
|
@@ -4,7 +4,7 @@ import { formatTimeAgo } from "../../infra/format-time/format-relative.js";
|
|
|
4
4
|
import { resolveChannelDefaultAccountId } from "../../channels/plugins/helpers.js";
|
|
5
5
|
import { buildChannelAccountSnapshot, formatChannelAllowFrom } from "../../channels/account-summary.js";
|
|
6
6
|
import "./format.js";
|
|
7
|
-
import
|
|
7
|
+
import fs from "node:fs";
|
|
8
8
|
|
|
9
9
|
//#region src/commands/status-all/channels.ts
|
|
10
10
|
const asRecord = (value) => value && typeof value === "object" ? value : {};
|
|
@@ -27,7 +27,7 @@ function existsSyncMaybe(p) {
|
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
29
|
try {
|
|
30
|
-
return
|
|
30
|
+
return fs.existsSync(path);
|
|
31
31
|
} catch {
|
|
32
32
|
return null;
|
|
33
33
|
}
|
package/dist/commands/wallet.js
CHANGED
|
@@ -16,7 +16,7 @@ import { configureSignerOwnedWalletNetwork } from "../wallet/signer-network-admi
|
|
|
16
16
|
import { listWalletInboundEvents, pollWalletInboundEvents, reconcileWalletInboundEvents } from "../wallet/wallet-inbound-events.js";
|
|
17
17
|
import { buildWalletCanaryReport, runWalletProviderCanaryReport } from "../wallet/wallet-canary.js";
|
|
18
18
|
import { installSignerdBinary, resolveSignerdBinaryPath, restartLocalSocketSigner, writeLocalSignerEnvFile } from "../wizard/onboarding.wallet.js";
|
|
19
|
-
import
|
|
19
|
+
import fs from "node:fs";
|
|
20
20
|
import path from "node:path";
|
|
21
21
|
import { createInterface } from "node:readline/promises";
|
|
22
22
|
|
|
@@ -261,9 +261,9 @@ function rpcEnvKeyFor(chain, walletId) {
|
|
|
261
261
|
}
|
|
262
262
|
return "FASED_WALLET_SOLANA_RPC_URL";
|
|
263
263
|
}
|
|
264
|
-
function
|
|
264
|
+
function executionFallbackRpcEnvKeyFor(walletId) {
|
|
265
265
|
const suffix = walletIdEnvSuffix(walletId);
|
|
266
|
-
return suffix ? `
|
|
266
|
+
return suffix ? `FASED_WALLET_SOLANA_EXECUTION_FALLBACK_RPC_URL__${suffix}` : "FASED_WALLET_SOLANA_EXECUTION_FALLBACK_RPC_URL";
|
|
267
267
|
}
|
|
268
268
|
function resolveRpcUrlForChain(env, chain, walletId, explicit) {
|
|
269
269
|
const explicitValue = explicit?.trim();
|
|
@@ -401,7 +401,7 @@ async function createSignerOwnedWalletForSetup(params) {
|
|
|
401
401
|
env: mergedEnv
|
|
402
402
|
});
|
|
403
403
|
const signerBinPath = resolveSignerdBinaryPath(mergedEnv);
|
|
404
|
-
if (!
|
|
404
|
+
if (!fs.existsSync(signerBinPath)) {
|
|
405
405
|
installSignerdBinary(signerBinPath);
|
|
406
406
|
}
|
|
407
407
|
await restartLocalSocketSigner(undefined, mergedEnv);
|
|
@@ -428,11 +428,11 @@ async function createSignerOwnedWalletForSetup(params) {
|
|
|
428
428
|
if (signerIdCollision) {
|
|
429
429
|
throw new Error(`native signer wallet ID ${signerWalletId} is already registered as ${signerIdCollision.id}; choose a distinct wallet ID`);
|
|
430
430
|
}
|
|
431
|
-
const
|
|
431
|
+
const executionFallbackRpcUrl = hosted ? "" : [mergedEnv[executionFallbackRpcEnvKeyFor(walletId)], mergedEnv[walletIdEnvSuffix(walletId) ? `FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL__${walletIdEnvSuffix(walletId)}` : "FASED_WALLET_SOLANA_WRITE_RPC_FALLBACK_URL"]].map((value) => String(value ?? "").trim()).find(Boolean) ?? "";
|
|
432
432
|
const network = configureSignerOwnedWalletNetwork({
|
|
433
433
|
walletId: signerWalletId,
|
|
434
434
|
primaryRpcUrl: params.rpcUrl,
|
|
435
|
-
|
|
435
|
+
executionFallbackRpcUrl: executionFallbackRpcUrl || undefined,
|
|
436
436
|
env: mergedEnv,
|
|
437
437
|
signerBinPath: hosted ? undefined : resolveSignerdBinaryPath(mergedEnv),
|
|
438
438
|
controlSocketPath: hosted ? undefined : resolveLocalSignerControlSocketPath(mergedEnv)
|
|
@@ -642,7 +642,7 @@ async function walletSetupCommand(runtime = defaultRuntime, options = {}) {
|
|
|
642
642
|
env: effectiveEnv
|
|
643
643
|
});
|
|
644
644
|
const signerBinPath = resolveSignerdBinaryPath(effectiveEnv);
|
|
645
|
-
if (!
|
|
645
|
+
if (!fs.existsSync(signerBinPath)) {
|
|
646
646
|
installSignerdBinary(signerBinPath);
|
|
647
647
|
}
|
|
648
648
|
await restartLocalSocketSigner(undefined, effectiveEnv);
|
|
@@ -1047,7 +1047,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
|
|
|
1047
1047
|
if (isLocalSigner) {
|
|
1048
1048
|
const externallyManaged = isLocalSignerExternallyManaged(effectiveEnv);
|
|
1049
1049
|
try {
|
|
1050
|
-
const st =
|
|
1050
|
+
const st = fs.statSync(socketPath);
|
|
1051
1051
|
push("socket.exists", st.isSocket?.() ?? true, socketPath);
|
|
1052
1052
|
try {
|
|
1053
1053
|
const mode = st.mode & 511;
|
|
@@ -1060,7 +1060,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
|
|
|
1060
1060
|
push("pid.alive", true, "lifecycle=external; process health is verified over the socket");
|
|
1061
1061
|
} else {
|
|
1062
1062
|
try {
|
|
1063
|
-
const pidRaw =
|
|
1063
|
+
const pidRaw = fs.readFileSync(pidPath, "utf8").trim();
|
|
1064
1064
|
const pid = Number.parseInt(pidRaw, 10);
|
|
1065
1065
|
if (Number.isFinite(pid) && pid > 1) {
|
|
1066
1066
|
try {
|
|
@@ -1080,7 +1080,7 @@ async function collectWalletSignerDoctorReport(env = process.env, options = {})
|
|
|
1080
1080
|
push("audit.exists", true, "lifecycle=external; audit state is signer-owned");
|
|
1081
1081
|
} else {
|
|
1082
1082
|
try {
|
|
1083
|
-
const st =
|
|
1083
|
+
const st = fs.statSync(auditPath);
|
|
1084
1084
|
push("audit.exists", true, `bytes=${st.size}`);
|
|
1085
1085
|
} catch (err) {
|
|
1086
1086
|
push("audit.exists", localSignerSetupPending && isNotFoundError(err), localSignerSetupPending && isNotFoundError(err) ? "Configure" : String(err));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
|
|
3
3
|
//#region src/config/cache-utils.ts
|
|
4
4
|
function resolveCacheTtlMs(params) {
|
|
@@ -16,7 +16,7 @@ function isCacheEnabled(ttlMs) {
|
|
|
16
16
|
}
|
|
17
17
|
function getFileMtimeMs(filePath) {
|
|
18
18
|
try {
|
|
19
|
-
return
|
|
19
|
+
return fs.statSync(filePath).mtimeMs;
|
|
20
20
|
} catch {
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
package/dist/config/includes.js
CHANGED
|
@@ -4,7 +4,7 @@ import { isBlockedObjectKey } from "../infra/prototype-keys.js";
|
|
|
4
4
|
import { canUseBoundaryFileOpen, openBoundaryFileSync } from "../infra/boundary-file-read.js";
|
|
5
5
|
import { isPathInside } from "../security/scan-paths.js";
|
|
6
6
|
import "./prototype-keys.js";
|
|
7
|
-
import
|
|
7
|
+
import fs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import JSON5 from "json5";
|
|
10
10
|
|
|
@@ -130,7 +130,7 @@ var IncludeProcessor = class IncludeProcessor {
|
|
|
130
130
|
throw new ConfigIncludeError(`Include path escapes config directory: ${includePath} (root: ${this.rootDir})`, includePath);
|
|
131
131
|
}
|
|
132
132
|
try {
|
|
133
|
-
const real =
|
|
133
|
+
const real = fs.realpathSync(normalized);
|
|
134
134
|
if (!isPathInside(this.rootRealDir, real)) {
|
|
135
135
|
throw new ConfigIncludeError(`Include path resolves outside config directory (symlink): ${includePath} (root: ${this.rootDir})`, includePath);
|
|
136
136
|
}
|
|
@@ -184,13 +184,13 @@ var IncludeProcessor = class IncludeProcessor {
|
|
|
184
184
|
};
|
|
185
185
|
function safeRealpath(target) {
|
|
186
186
|
try {
|
|
187
|
-
return
|
|
187
|
+
return fs.realpathSync(target);
|
|
188
188
|
} catch {
|
|
189
189
|
return target;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
function readConfigIncludeFileWithGuards(params) {
|
|
193
|
-
const ioFs = params.ioFs ??
|
|
193
|
+
const ioFs = params.ioFs ?? fs;
|
|
194
194
|
const maxBytes = params.maxBytes ?? MAX_INCLUDE_FILE_BYTES;
|
|
195
195
|
if (!canUseBoundaryFileOpen(ioFs)) {
|
|
196
196
|
return ioFs.readFileSync(params.resolvedPath, "utf-8");
|
|
@@ -217,7 +217,7 @@ function readConfigIncludeFileWithGuards(params) {
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
const defaultResolver = {
|
|
220
|
-
readFile: (p) =>
|
|
220
|
+
readFile: (p) => fs.readFileSync(p, "utf-8"),
|
|
221
221
|
readFileWithGuards: ({ includePath, resolvedPath, rootRealDir }) => readConfigIncludeFileWithGuards({
|
|
222
222
|
includePath,
|
|
223
223
|
resolvedPath,
|
package/dist/config/io.js
CHANGED
|
@@ -24,7 +24,7 @@ import { repairInstalledPluginAllowlist } from "./plugins-allowlist.js";
|
|
|
24
24
|
import { applyConfigOverrides } from "./runtime-overrides.js";
|
|
25
25
|
import { validateConfigObjectRawWithPlugins, validateConfigObjectWithPlugins } from "./validation.js";
|
|
26
26
|
import { compareFasedAgentVersions } from "./version.js";
|
|
27
|
-
import
|
|
27
|
+
import fs from "node:fs";
|
|
28
28
|
import os from "node:os";
|
|
29
29
|
import path from "node:path";
|
|
30
30
|
import JSON5 from "json5";
|
|
@@ -509,7 +509,7 @@ function resolveConfigPathForDeps(deps) {
|
|
|
509
509
|
}
|
|
510
510
|
function normalizeDeps(overrides = {}) {
|
|
511
511
|
return {
|
|
512
|
-
fs: overrides.fs ??
|
|
512
|
+
fs: overrides.fs ?? fs,
|
|
513
513
|
json5: overrides.json5 ?? JSON5,
|
|
514
514
|
env: overrides.env ?? process.env,
|
|
515
515
|
homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
|
package/dist/config/paths.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expandHomePrefix, resolveRequiredHomeDir } from "../infra/home-dir.js";
|
|
2
|
-
import
|
|
2
|
+
import fs from "node:fs";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
@@ -86,7 +86,7 @@ function resolveConfigPathCandidate(env = process.env, homedir = envHomedir(env)
|
|
|
86
86
|
const candidates = resolveDefaultConfigCandidates(env, homedir);
|
|
87
87
|
const existing = candidates.find((candidate) => {
|
|
88
88
|
try {
|
|
89
|
-
return
|
|
89
|
+
return fs.existsSync(candidate);
|
|
90
90
|
} catch {
|
|
91
91
|
return false;
|
|
92
92
|
}
|
|
@@ -108,7 +108,7 @@ function resolveConfigPath(env = process.env, stateDir = resolveStateDir(env, en
|
|
|
108
108
|
const candidates = [path.join(stateDir, CONFIG_FILENAME)];
|
|
109
109
|
const existing = candidates.find((candidate) => {
|
|
110
110
|
try {
|
|
111
|
-
return
|
|
111
|
+
return fs.existsSync(candidate);
|
|
112
112
|
} catch {
|
|
113
113
|
return false;
|
|
114
114
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/config/sat-runtime-ids.ts
|
|
@@ -63,7 +63,7 @@ function resolveSatRuntimeDefaultsFile(env = process.env) {
|
|
|
63
63
|
path.resolve(import.meta.dirname, "..", "..", "..", "config", "sat-runtime.env")
|
|
64
64
|
];
|
|
65
65
|
for (const candidate of candidates) {
|
|
66
|
-
if (candidate &&
|
|
66
|
+
if (candidate && fs.existsSync(candidate)) {
|
|
67
67
|
return candidate;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -82,7 +82,7 @@ function loadSatRuntimeDefaults(env = process.env) {
|
|
|
82
82
|
if (!file) {
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
85
|
-
const parsed = parseEnvFile(
|
|
85
|
+
const parsed = parseEnvFile(fs.readFileSync(file, "utf8"));
|
|
86
86
|
if (!parsed.programId || !parsed.bondProgramId || !parsed.mintAddress || !parsed.mintProgramId) {
|
|
87
87
|
return null;
|
|
88
88
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isPrimarySessionTranscriptFileName, isSessionArchiveArtifactName } from "./artifacts.js";
|
|
2
2
|
import { resolveSessionFilePath } from "./paths.js";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
|
|
6
6
|
//#region src/config/sessions/disk-budget.ts
|
|
@@ -11,7 +11,7 @@ const NOOP_LOGGER = {
|
|
|
11
11
|
function canonicalizePathForComparison(filePath) {
|
|
12
12
|
const resolved = path.resolve(filePath);
|
|
13
13
|
try {
|
|
14
|
-
return
|
|
14
|
+
return fs.realpathSync(resolved);
|
|
15
15
|
} catch {
|
|
16
16
|
return resolved;
|
|
17
17
|
}
|
|
@@ -83,14 +83,14 @@ function resolveReferencedSessionTranscriptPaths(params) {
|
|
|
83
83
|
return referenced;
|
|
84
84
|
}
|
|
85
85
|
async function readSessionsDirFiles(sessionsDir) {
|
|
86
|
-
const dirEntries = await
|
|
86
|
+
const dirEntries = await fs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
87
87
|
const files = [];
|
|
88
88
|
for (const dirent of dirEntries) {
|
|
89
89
|
if (!dirent.isFile()) {
|
|
90
90
|
continue;
|
|
91
91
|
}
|
|
92
92
|
const filePath = path.join(sessionsDir, dirent.name);
|
|
93
|
-
const stat = await
|
|
93
|
+
const stat = await fs.promises.stat(filePath).catch(() => null);
|
|
94
94
|
if (!stat?.isFile()) {
|
|
95
95
|
continue;
|
|
96
96
|
}
|
|
@@ -105,11 +105,11 @@ async function readSessionsDirFiles(sessionsDir) {
|
|
|
105
105
|
return files;
|
|
106
106
|
}
|
|
107
107
|
async function removeFileIfExists(filePath) {
|
|
108
|
-
const stat = await
|
|
108
|
+
const stat = await fs.promises.stat(filePath).catch(() => null);
|
|
109
109
|
if (!stat?.isFile()) {
|
|
110
110
|
return 0;
|
|
111
111
|
}
|
|
112
|
-
await
|
|
112
|
+
await fs.promises.rm(filePath, { force: true }).catch(() => undefined);
|
|
113
113
|
return stat.size;
|
|
114
114
|
}
|
|
115
115
|
async function removeFileForBudget(params) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expandHomePrefix, resolveRequiredHomeDir } from "../../infra/home-dir.js";
|
|
2
2
|
import { resolveStateDir } from "../paths.js";
|
|
3
3
|
import { DEFAULT_AGENT_ID, normalizeAgentId } from "../../routing/session-key.js";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
@@ -112,7 +112,7 @@ function resolveStructuralSessionFallbackPath(candidateAbsPath, expectedAgentId)
|
|
|
112
112
|
}
|
|
113
113
|
function safeRealpathSync(filePath) {
|
|
114
114
|
try {
|
|
115
|
-
return
|
|
115
|
+
return fs.realpathSync(filePath);
|
|
116
116
|
} catch {
|
|
117
117
|
return undefined;
|
|
118
118
|
}
|