@gguf/pigbot 0.0.1 → 0.0.2
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 +300 -166
- package/README-header.png +0 -0
- package/assets/chrome-extension/README.md +5 -5
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -6
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +3 -3
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +6 -6
- package/dist/agents/anthropic-payload-log.js +2 -2
- package/dist/agents/auth-health.js +2 -6
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/external-cli-sync.js +5 -150
- package/dist/agents/auth-profiles/oauth.js +26 -7
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/auth-profiles/store.js +5 -13
- package/dist/agents/bash-tools.exec.js +77 -26
- package/dist/agents/bash-tools.shared.js +8 -1
- package/dist/agents/cache-trace.js +5 -5
- package/dist/agents/cli-backends.js +8 -0
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +3 -3
- package/dist/agents/compaction.js +3 -0
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/identity.js +1 -1
- package/dist/agents/live-auth-keys.js +2 -2
- package/dist/agents/memory-search.js +7 -2
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +1 -1
- package/dist/agents/model-catalog.js +23 -5
- package/dist/agents/model-fallback.js +22 -0
- package/dist/agents/model-selection.js +9 -2
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +4 -4
- package/dist/agents/{pigbot-tools.js → moltbot-tools.js} +7 -6
- package/dist/agents/pi-embedded-helpers/errors.js +23 -1
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/extensions.js +5 -0
- package/dist/agents/pi-embedded-runner/model.js +9 -3
- package/dist/agents/pi-embedded-runner/run/attempt.js +10 -6
- package/dist/agents/pi-embedded-runner/run.js +5 -5
- package/dist/agents/pi-embedded-runner/sandbox-info.js +1 -4
- package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
- package/dist/agents/pi-embedded-utils.js +7 -1
- package/dist/agents/pi-extensions/compaction-safeguard-runtime.js +20 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +32 -3
- package/dist/agents/pi-tools.js +26 -15
- package/dist/agents/pi-tools.policy.js +34 -1
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/sandbox/browser.js +10 -12
- package/dist/agents/sandbox/config.js +0 -12
- package/dist/agents/sandbox/constants.js +8 -8
- package/dist/agents/sandbox/context.js +3 -3
- package/dist/agents/sandbox/docker.js +8 -8
- package/dist/agents/sandbox/runtime-status.js +1 -1
- package/dist/agents/session-transcript-repair.js +1 -1
- package/dist/agents/session-write-lock.js +68 -0
- package/dist/agents/skills/bundled-dir.js +1 -1
- package/dist/agents/skills/config.js +9 -8
- package/dist/agents/skills/env-overrides.js +1 -1
- package/dist/agents/skills/frontmatter.js +15 -14
- package/dist/agents/skills/workspace.js +7 -7
- package/dist/agents/skills-install.js +1 -1
- package/dist/agents/skills-status.js +12 -12
- package/dist/agents/subagent-registry.store.js +2 -2
- package/dist/agents/system-prompt.js +21 -32
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +8 -2
- package/dist/agents/tools/agents-list-tool.js +3 -1
- package/dist/agents/tools/browser-tool.js +19 -79
- package/dist/agents/tools/browser-tool.schema.js +1 -2
- package/dist/agents/tools/cron-tool.js +44 -1
- package/dist/agents/tools/discord-actions-guild.js +5 -1
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/message-tool.js +13 -1
- package/dist/agents/tools/sessions-send-helpers.js +17 -2
- package/dist/agents/tools/sessions-spawn-tool.js +1 -1
- package/dist/agents/tools/telegram-actions.js +95 -1
- package/dist/agents/tools/web-fetch.js +123 -103
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/workspace.js +37 -1
- package/dist/auto-reply/chunk.js +71 -26
- package/dist/auto-reply/commands-registry.data.js +73 -22
- package/dist/auto-reply/commands-registry.js +14 -11
- package/dist/auto-reply/heartbeat.js +3 -0
- package/dist/auto-reply/model.js +1 -1
- package/dist/auto-reply/reply/agent-runner-execution.js +21 -3
- package/dist/auto-reply/reply/agent-runner-memory.js +5 -0
- package/dist/auto-reply/reply/bash-command.js +2 -2
- package/dist/auto-reply/reply/block-streaming.js +8 -15
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-info.js +50 -5
- package/dist/auto-reply/reply/commands-plugin.js +4 -2
- package/dist/auto-reply/reply/commands-session.js +4 -4
- package/dist/auto-reply/reply/commands-tts.js +61 -63
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/directives.js +12 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +68 -22
- package/dist/auto-reply/reply/followup-runner.js +5 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply-run.js +4 -0
- package/dist/auto-reply/reply/get-reply.js +1 -1
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/history.js +23 -0
- package/dist/auto-reply/reply/line-directives.js +294 -0
- package/dist/auto-reply/reply/normalize-reply.js +13 -5
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/reply-payloads.js +2 -1
- package/dist/auto-reply/reply/route-reply.js +1 -1
- package/dist/auto-reply/reply/session-updates.js +6 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +144 -42
- package/dist/auto-reply/thinking.js +13 -0
- package/dist/browser/bridge-server.js +1 -3
- package/dist/browser/client-actions-core.js +13 -7
- package/dist/browser/client-actions-observe.js +14 -8
- package/dist/browser/client-actions-state.js +21 -15
- package/dist/browser/client-fetch.js +74 -61
- package/dist/browser/client.js +19 -21
- package/dist/browser/config.js +13 -26
- package/dist/browser/constants.js +1 -1
- package/dist/browser/control-service.js +72 -0
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/pw-session.js +41 -4
- package/dist/browser/pw-tools-core.downloads.js +1 -1
- package/dist/browser/pw-tools-core.interactions.js +5 -5
- package/dist/browser/pw-tools-core.responses.js +1 -1
- package/dist/browser/routes/agent.act.js +13 -0
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/routes/basic.js +0 -1
- package/dist/browser/routes/dispatcher.js +86 -0
- package/dist/browser/server-context.js +3 -3
- package/dist/browser/server.js +7 -9
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +1620 -1618
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +27 -21
- package/dist/canvas-host/server.js +67 -33
- package/dist/channels/plugins/actions/discord/handle-action.guild-admin.js +5 -1
- package/dist/channels/plugins/actions/telegram.js +62 -7
- package/dist/channels/plugins/catalog.js +7 -5
- package/dist/channels/plugins/group-mentions.js +48 -1
- package/dist/channels/plugins/helpers.js +2 -2
- package/dist/channels/plugins/message-action-names.js +1 -0
- package/dist/channels/plugins/normalize/imessage.js +36 -0
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +2 -2
- package/dist/channels/plugins/onboarding/slack.js +4 -4
- package/dist/channels/plugins/onboarding/telegram.js +17 -9
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- package/dist/channels/plugins/outbound/telegram.js +40 -0
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
- package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
- package/dist/channels/registry.js +1 -1
- package/dist/cli/acp-cli.js +2 -2
- package/dist/cli/argv.js +14 -7
- package/dist/cli/banner.js +3 -1
- package/dist/cli/browser-cli-actions-input/register.element.js +72 -44
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +55 -35
- package/dist/cli/browser-cli-actions-input/register.form-wait-eval.js +41 -28
- package/dist/cli/browser-cli-actions-input/register.navigation.js +23 -14
- package/dist/cli/browser-cli-actions-input/shared.js +10 -3
- package/dist/cli/browser-cli-actions-observe.js +29 -21
- package/dist/cli/browser-cli-debug.js +49 -35
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +8 -8
- package/dist/cli/browser-cli-inspect.js +23 -17
- package/dist/cli/browser-cli-manage.js +106 -56
- package/dist/cli/browser-cli-shared.js +34 -1
- package/dist/cli/browser-cli-state.cookies-storage.js +53 -39
- package/dist/cli/browser-cli-state.js +90 -64
- package/dist/cli/browser-cli.js +4 -5
- package/dist/cli/channel-options.js +1 -1
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +26 -0
- package/dist/cli/command-format.js +12 -8
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +3 -2
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +13 -11
- package/dist/cli/daemon-cli/status.gather.js +2 -2
- package/dist/cli/daemon-cli/status.print.js +8 -8
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +7 -7
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +5 -5
- package/dist/cli/gateway-cli/register.js +1 -1
- package/dist/cli/gateway-cli/run.js +19 -16
- package/dist/cli/gateway-cli/shared.js +5 -5
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +1 -1
- package/dist/cli/models-cli.js +2 -2
- package/dist/cli/node-cli/daemon.js +3 -3
- package/dist/cli/node-cli/register.js +1 -1
- package/dist/cli/nodes-camera.js +3 -1
- package/dist/cli/nodes-canvas.js +3 -1
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/nodes-cli/register.js +1 -1
- package/dist/cli/nodes-screen.js +1 -1
- package/dist/cli/pairing-cli.js +3 -3
- package/dist/cli/plugin-registry.js +2 -2
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/profile.js +9 -9
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +15 -16
- package/dist/cli/program/message/register.send.js +2 -1
- package/dist/cli/program/preaction.js +5 -3
- package/dist/cli/program/register.agent.js +12 -12
- package/dist/cli/program/register.configure.js +1 -1
- package/dist/cli/program/register.maintenance.js +4 -4
- package/dist/cli/program/register.message.js +5 -5
- package/dist/cli/program/register.onboard.js +5 -3
- package/dist/cli/program/register.setup.js +2 -2
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/program/register.subclis.js +2 -2
- package/dist/cli/route.js +1 -1
- package/dist/cli/run-main.js +11 -4
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +18 -8
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +2 -2
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +64 -48
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +2 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -3
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +4 -54
- package/dist/commands/auth-choice.apply.anthropic.js +6 -109
- package/dist/commands/auth-choice.apply.openai.js +1 -33
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/channels/list.js +2 -2
- package/dist/commands/channels/shared.js +1 -1
- package/dist/commands/channels/status.js +1 -1
- package/dist/commands/chutes-oauth.js +1 -1
- package/dist/commands/configure.channels.js +4 -4
- package/dist/commands/configure.daemon.js +10 -2
- package/dist/commands/configure.gateway-auth.js +1 -8
- package/dist/commands/configure.gateway.js +1 -10
- package/dist/commands/configure.wizard.js +21 -21
- package/dist/commands/daemon-install-helpers.js +10 -3
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +122 -3
- package/dist/commands/doctor-config-flow.js +7 -7
- package/dist/commands/doctor-format.js +5 -5
- package/dist/commands/doctor-gateway-daemon-flow.js +5 -4
- package/dist/commands/doctor-gateway-services.js +7 -5
- package/dist/commands/doctor-platform-notes.js +7 -7
- package/dist/commands/doctor-security.js +48 -1
- package/dist/commands/doctor-state-integrity.js +3 -3
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +5 -5
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +4 -4
- package/dist/commands/doctor.js +13 -12
- package/dist/commands/gateway-status/helpers.js +2 -2
- package/dist/commands/gateway-status.js +2 -2
- package/dist/commands/health.js +2 -2
- package/dist/commands/models/auth.js +23 -22
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +8 -9
- package/dist/commands/node-daemon-install-helpers.js +1 -1
- package/dist/commands/onboard-auth.credentials.js +2 -2
- package/dist/commands/onboard-channels.js +3 -3
- package/dist/commands/onboard-helpers.js +4 -4
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +38 -34
- package/dist/commands/onboard-non-interactive/local/daemon-install.js +1 -0
- package/dist/commands/onboard-non-interactive/local/gateway-config.js +7 -4
- package/dist/commands/onboard-non-interactive/local.js +1 -1
- package/dist/commands/onboard-non-interactive/remote.js +1 -1
- package/dist/commands/onboard-non-interactive.js +1 -1
- package/dist/commands/onboard-remote.js +2 -2
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +25 -4
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/reset.js +3 -3
- package/dist/commands/sandbox-display.js +1 -1
- package/dist/commands/sandbox-explain.js +2 -2
- package/dist/commands/setup.js +2 -2
- package/dist/commands/signal-install.js +2 -2
- package/dist/commands/status-all/diagnosis.js +1 -1
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status-all.js +5 -5
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.gateway-probe.js +2 -2
- package/dist/commands/status.scan.js +2 -2
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +6 -0
- package/dist/config/config.js +1 -1
- package/dist/config/env-vars.js +21 -0
- package/dist/config/group-policy.js +69 -0
- package/dist/config/io.js +24 -28
- package/dist/config/legacy.migrations.part-3.js +3 -0
- package/dist/config/logging.js +3 -3
- package/dist/config/paths.js +57 -17
- package/dist/config/schema.js +26 -12
- package/dist/config/sessions/store.js +1 -1
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.clawdbot.js +1 -0
- package/dist/config/types.js +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-defaults.js +1 -0
- package/dist/config/zod-schema.agent-runtime.js +39 -7
- package/dist/config/zod-schema.hooks.js +2 -0
- package/dist/config/zod-schema.js +10 -3
- package/dist/config/zod-schema.providers-core.js +24 -0
- package/dist/config/zod-schema.providers-whatsapp.js +3 -0
- package/dist/control-ui/assets/index-BAFzd9IE.css +1 -0
- package/dist/control-ui/assets/index-CxUFDXFX.js +3162 -0
- package/dist/control-ui/assets/index-CxUFDXFX.js.map +1 -0
- package/dist/control-ui/index.html +4 -4
- package/dist/cron/isolated-agent/run.js +38 -3
- package/dist/daemon/constants.js +26 -16
- package/dist/daemon/inspect.js +16 -15
- package/dist/daemon/launchd.js +8 -8
- package/dist/daemon/node-service.js +14 -14
- package/dist/daemon/paths.js +3 -3
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/schtasks.js +6 -6
- package/dist/daemon/service-env.js +21 -21
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/daemon/systemd.js +6 -6
- package/dist/discord/monitor/listeners.js +25 -1
- package/dist/discord/monitor/native-command.js +7 -5
- package/dist/discord/monitor/presence-cache.js +38 -0
- package/dist/discord/monitor/provider.js +21 -7
- package/dist/entry.js +7 -7
- package/dist/gateway/auth.js +55 -22
- package/dist/gateway/call.js +2 -2
- package/dist/gateway/control-ui.js +4 -4
- package/dist/gateway/hooks-mapping.js +18 -4
- package/dist/gateway/hooks.js +5 -7
- package/dist/gateway/http-utils.js +3 -5
- package/dist/gateway/net.js +1 -1
- package/dist/gateway/openai-http.js +3 -3
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/protocol/client-info.js +5 -5
- package/dist/gateway/protocol/schema/logs-chat.js +1 -1
- package/dist/gateway/server/__tests__/test-utils.js +2 -0
- package/dist/gateway/server/health-state.js +3 -3
- package/dist/gateway/server/hooks.js +1 -0
- package/dist/gateway/server/plugins-http.js +23 -2
- package/dist/gateway/server/ws-connection/message-handler.js +66 -19
- package/dist/gateway/server-browser.js +16 -5
- package/dist/gateway/server-chat.js +28 -2
- package/dist/gateway/server-constants.js +2 -2
- package/dist/gateway/server-cron.js +1 -1
- package/dist/gateway/server-discovery-runtime.js +25 -17
- package/dist/gateway/server-discovery.js +7 -7
- package/dist/gateway/server-http.js +13 -7
- package/dist/gateway/server-methods/agent.js +2 -0
- package/dist/gateway/server-methods/browser.js +204 -0
- package/dist/gateway/server-methods/chat.js +5 -0
- package/dist/gateway/server-methods/config.js +8 -8
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/skills.js +3 -3
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-methods-list.js +1 -0
- package/dist/gateway/server-methods.js +3 -0
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-reload-handlers.js +5 -5
- package/dist/gateway/server-restart-sentinel.js +10 -5
- package/dist/gateway/server-runtime-config.js +7 -4
- package/dist/gateway/server-startup.js +5 -5
- package/dist/gateway/server.impl.js +17 -7
- package/dist/gateway/session-utils.fs.js +1 -1
- package/dist/gateway/session-utils.js +31 -11
- package/dist/gateway/test-helpers.mocks.js +8 -7
- package/dist/gateway/test-helpers.server.js +51 -32
- package/dist/gateway/tools-invoke-http.js +15 -8
- package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
- package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
- package/dist/hooks/bundled/command-logger/handler.js +1 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +4 -4
- package/dist/hooks/bundled/session-memory/handler.js +2 -2
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +2 -2
- package/dist/hooks/config.js +8 -7
- package/dist/hooks/frontmatter.js +16 -15
- package/dist/hooks/gmail-ops.js +4 -4
- package/dist/hooks/gmail-watcher.js +1 -1
- package/dist/hooks/hooks-status.js +13 -13
- package/dist/hooks/install.js +8 -7
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +3 -3
- package/dist/hooks/plugin-hooks.js +8 -8
- package/dist/hooks/workspace.js +10 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/imessage/targets.js +19 -0
- package/dist/index.js +4 -4
- package/dist/infra/agent-events.js +3 -0
- package/dist/infra/bonjour-discovery.js +9 -9
- package/dist/infra/bonjour.js +20 -13
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/diagnostic-flags.js +66 -0
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/env.js +22 -0
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/fs-safe.js +76 -0
- package/dist/infra/gateway-lock.js +5 -4
- package/dist/infra/heartbeat-visibility.js +14 -0
- package/dist/infra/heartbeat-wake.js +2 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/{pigbot-root.js → moltbot-root.js} +3 -2
- package/dist/infra/net/ssrf.js +77 -1
- package/dist/infra/node-shell.js +1 -1
- package/dist/infra/outbound/deliver.js +41 -18
- package/dist/infra/outbound/message-action-runner.js +24 -3
- package/dist/infra/outbound/message-action-spec.js +1 -0
- package/dist/infra/outbound/message.js +1 -0
- package/dist/infra/outbound/outbound-policy.js +4 -1
- package/dist/infra/outbound/outbound-send-service.js +10 -0
- package/dist/infra/outbound/payloads.js +15 -5
- package/dist/infra/outbound/target-resolver.js +53 -14
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +9 -9
- package/dist/infra/ports-format.js +2 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +2 -4
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +4 -4
- package/dist/infra/retry-policy.js +4 -1
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +4 -4
- package/dist/infra/skills-remote.js +3 -3
- package/dist/infra/state-migrations.js +1 -1
- package/dist/infra/system-presence.js +1 -1
- package/dist/infra/tailscale.js +63 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +89 -2
- package/dist/infra/update-check.js +2 -4
- package/dist/infra/update-global.js +5 -5
- package/dist/infra/update-runner.js +32 -8
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +10 -10
- package/dist/line/accounts.js +130 -0
- package/dist/line/auto-reply-delivery.js +102 -0
- package/dist/line/bot-access.js +38 -0
- package/dist/line/bot-handlers.js +258 -0
- package/dist/line/bot-message-context.js +374 -0
- package/dist/line/bot.js +48 -0
- package/dist/line/config-schema.js +47 -0
- package/dist/line/download.js +95 -0
- package/dist/line/flex-templates.js +1264 -0
- package/dist/line/http-registry.js +27 -0
- package/dist/line/index.js +19 -0
- package/dist/line/markdown-to-line.js +346 -0
- package/dist/line/monitor.js +266 -0
- package/dist/line/probe.js +37 -0
- package/dist/line/reply-chunks.js +53 -0
- package/dist/line/rich-menu.js +320 -0
- package/dist/line/send.js +451 -0
- package/dist/line/signature.js +11 -0
- package/dist/line/template-messages.js +258 -0
- package/dist/line/types.js +1 -0
- package/dist/line/webhook.js +71 -0
- package/dist/link-understanding/apply.js +22 -0
- package/dist/link-understanding/defaults.js +2 -0
- package/dist/link-understanding/detect.js +49 -0
- package/dist/link-understanding/format.js +10 -0
- package/dist/link-understanding/index.js +4 -0
- package/dist/link-understanding/runner.js +99 -0
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +7 -7
- package/dist/macos/relay-smoke.js +1 -1
- package/dist/macos/relay.js +6 -6
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +3 -3
- package/dist/media/input-files.js +40 -32
- package/dist/media/server.js +39 -15
- package/dist/media/store.js +72 -52
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +69 -1
- package/dist/memory/batch-gemini.js +2 -2
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings-gemini.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/node-host/runner.js +64 -60
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugin-sdk/index.js +12 -2
- package/dist/plugins/bundled-dir.js +1 -1
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/commands.js +1 -1
- package/dist/plugins/discovery.js +6 -5
- package/dist/plugins/http-path.js +10 -0
- package/dist/plugins/http-registry.js +31 -0
- package/dist/plugins/install.js +8 -7
- package/dist/plugins/loader.js +11 -4
- package/dist/plugins/manifest-registry.js +4 -4
- package/dist/plugins/manifest.js +16 -1
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +36 -5
- package/dist/plugins/runtime/index.js +26 -0
- package/dist/plugins/runtime.js +2 -1
- package/dist/plugins/services.js +3 -3
- package/dist/plugins/status.js +2 -2
- package/dist/plugins/tools.js +2 -2
- package/dist/plugins/update.js +3 -3
- package/dist/process/exec.js +11 -7
- package/dist/process/spawn-utils.js +95 -0
- package/dist/providers/qwen-portal-oauth.js +1 -1
- package/dist/routing/session-key.js +17 -12
- package/dist/security/audit-extra.js +120 -70
- package/dist/security/audit-fs.js +78 -0
- package/dist/security/audit.js +145 -87
- package/dist/security/external-content.js +143 -0
- package/dist/security/fix.js +93 -8
- package/dist/security/windows-acl.js +162 -0
- package/dist/shared/text/reasoning-tags.js +48 -0
- package/dist/slack/monitor/media.js +32 -4
- package/dist/slack/monitor/message-handler/dispatch.js +2 -1
- package/dist/slack/monitor/slash.js +3 -3
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/accounts.js +1 -1
- package/dist/telegram/api-logging.js +24 -0
- package/dist/telegram/bot/delivery.js +218 -28
- package/dist/telegram/bot/helpers.js +29 -19
- package/dist/telegram/bot-handlers.js +70 -8
- package/dist/telegram/bot-message-context.js +83 -22
- package/dist/telegram/bot-message-dispatch.js +69 -0
- package/dist/telegram/bot-native-commands.js +245 -94
- package/dist/telegram/bot.js +18 -2
- package/dist/telegram/fetch.js +25 -1
- package/dist/telegram/monitor.js +11 -3
- package/dist/telegram/network-config.js +23 -0
- package/dist/telegram/network-errors.js +103 -0
- package/dist/telegram/send.js +229 -41
- package/dist/telegram/sticker-cache.js +202 -0
- package/dist/telegram/webhook-set.js +13 -6
- package/dist/telegram/webhook.js +8 -3
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +128 -25
- package/dist/tui/components/filterable-select-list.js +1 -1
- package/dist/tui/components/searchable-select-list.js +2 -1
- package/dist/tui/gateway-chat.js +3 -3
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +3 -3
- package/dist/version.js +3 -3
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/process-message.js +1 -1
- package/dist/web/auto-reply/monitor.js +1 -1
- package/dist/web/login.js +1 -1
- package/dist/web/session.js +2 -2
- package/dist/wizard/onboarding.finalize.js +22 -21
- package/dist/wizard/onboarding.gateway-config.js +1 -11
- package/dist/wizard/onboarding.js +24 -13
- package/docs/CNAME +1 -1
- package/docs/_config.yml +2 -2
- package/docs/_layouts/default.html +9 -9
- package/docs/assets/terminal.css +3 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +19 -19
- package/docs/automation/cron-vs-heartbeat.md +8 -8
- package/docs/automation/gmail-pubsub.md +27 -25
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +13 -8
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +4 -4
- package/docs/channels/bluebubbles.md +14 -12
- package/docs/channels/discord.md +23 -18
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/grammy.md +1 -1
- package/docs/channels/imessage.md +14 -14
- package/docs/channels/index.md +6 -4
- package/docs/channels/line.md +183 -0
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +16 -16
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +31 -27
- package/docs/channels/nextcloud-talk.md +8 -8
- package/docs/channels/nostr.md +9 -9
- package/docs/channels/signal.md +11 -11
- package/docs/channels/slack.md +31 -29
- package/docs/channels/telegram.md +152 -22
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +366 -0
- package/docs/channels/whatsapp.md +26 -26
- package/docs/channels/zalo.md +8 -8
- package/docs/channels/zalouser.md +12 -12
- package/docs/cli/acp.md +24 -24
- package/docs/cli/agent.md +6 -6
- package/docs/cli/agents.md +9 -9
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +33 -35
- package/docs/cli/channels.md +21 -21
- package/docs/cli/config.md +15 -15
- package/docs/cli/configure.md +6 -6
- package/docs/cli/cron.md +5 -5
- package/docs/cli/dashboard.md +4 -4
- package/docs/cli/devices.md +13 -13
- package/docs/cli/directory.md +12 -12
- package/docs/cli/dns.md +5 -5
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +11 -11
- package/docs/cli/gateway.md +26 -26
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +34 -34
- package/docs/cli/index.md +46 -52
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +11 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +17 -17
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -6
- package/docs/cli/pairing.md +4 -4
- package/docs/cli/plugins.md +16 -16
- package/docs/cli/reset.md +5 -5
- package/docs/cli/sandbox.md +28 -28
- package/docs/cli/security.md +5 -5
- package/docs/cli/sessions.md +5 -5
- package/docs/cli/setup.md +6 -6
- package/docs/cli/skills.md +6 -6
- package/docs/cli/status.md +7 -7
- package/docs/cli/system.md +6 -6
- package/docs/cli/tui.md +5 -5
- package/docs/cli/uninstall.md +5 -5
- package/docs/cli/update.md +20 -20
- package/docs/cli/voicecall.md +9 -9
- package/docs/cli/webhooks.md +5 -5
- package/docs/concepts/agent-loop.md +5 -5
- package/docs/concepts/agent-workspace.md +21 -21
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +2 -2
- package/docs/concepts/channel-routing.md +4 -4
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +6 -6
- package/docs/concepts/groups.md +41 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +14 -14
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +22 -22
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +19 -19
- package/docs/concepts/oauth.md +32 -59
- package/docs/concepts/presence.md +2 -2
- package/docs/concepts/retry.md +1 -1
- package/docs/concepts/session-pruning.md +1 -1
- package/docs/concepts/session-tool.md +4 -4
- package/docs/concepts/session.md +14 -14
- package/docs/concepts/streaming.md +4 -4
- package/docs/concepts/system-prompt.md +11 -11
- package/docs/concepts/timezone.md +2 -2
- package/docs/concepts/typebox.md +3 -3
- package/docs/concepts/typing-indicators.md +2 -2
- package/docs/concepts/usage-tracking.md +3 -3
- package/docs/date-time.md +2 -2
- package/docs/debug/node-issue.md +4 -4
- package/docs/debugging.md +18 -18
- package/docs/diagnostics/flags.md +89 -0
- package/docs/docs.json +37 -7
- package/docs/environment.md +7 -7
- package/docs/experiments/plans/cron-add-hardening.md +1 -1
- package/docs/experiments/plans/openresponses-gateway.md +2 -2
- package/docs/experiments/research/memory.md +6 -6
- package/docs/gateway/authentication.md +33 -57
- package/docs/gateway/background-process.md +2 -2
- package/docs/gateway/bonjour.md +25 -25
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +13 -12
- package/docs/gateway/configuration-examples.md +14 -14
- package/docs/gateway/configuration.md +160 -145
- package/docs/gateway/discovery.md +10 -10
- package/docs/gateway/doctor.md +27 -27
- package/docs/gateway/gateway-lock.md +1 -1
- package/docs/gateway/health.md +11 -11
- package/docs/gateway/heartbeat.md +5 -5
- package/docs/gateway/index.md +65 -65
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +27 -27
- package/docs/gateway/openai-http-api.md +12 -12
- package/docs/gateway/openresponses-http-api.md +12 -12
- package/docs/gateway/pairing.md +9 -9
- package/docs/gateway/protocol.md +6 -5
- package/docs/gateway/remote-gateway-readme.md +16 -14
- package/docs/gateway/remote.md +5 -5
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +10 -7
- package/docs/gateway/sandboxing.md +8 -6
- package/docs/gateway/security/formal-verification.md +107 -0
- package/docs/gateway/{security.md → security/index.md} +172 -75
- package/docs/gateway/tailscale.md +19 -38
- package/docs/gateway/tools-invoke-http-api.md +5 -5
- package/docs/gateway/troubleshooting.md +114 -119
- package/docs/help/faq.md +369 -355
- package/docs/help/troubleshooting.md +16 -16
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +60 -60
- package/docs/index.md +35 -35
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +44 -44
- package/docs/install/index.md +34 -33
- package/docs/install/installer.md +24 -24
- package/docs/install/migrating.md +190 -0
- package/docs/install/nix.md +18 -18
- package/docs/install/node.md +7 -6
- package/docs/install/uninstall.md +30 -30
- package/docs/install/updating.md +50 -49
- package/docs/logging.md +82 -58
- package/docs/multi-agent-sandbox-tools.md +7 -7
- package/docs/network.md +1 -1
- package/docs/nodes/audio.md +2 -2
- package/docs/nodes/camera.md +18 -18
- package/docs/nodes/images.md +4 -4
- package/docs/nodes/index.md +57 -57
- package/docs/nodes/location-command.md +2 -2
- package/docs/nodes/media-understanding.md +5 -5
- package/docs/nodes/talk.md +1 -1
- package/docs/nodes/voicewake.md +2 -2
- package/docs/northflank.mdx +53 -0
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +13 -13
- package/docs/platforms/digitalocean.md +243 -0
- package/docs/platforms/exe-dev.md +25 -25
- package/docs/platforms/fly.md +149 -24
- package/docs/platforms/gcp.md +498 -0
- package/docs/platforms/hetzner.md +42 -42
- package/docs/platforms/index.md +9 -9
- package/docs/platforms/ios.md +13 -13
- package/docs/platforms/linux.md +11 -11
- package/docs/platforms/mac/bundled-gateway.md +16 -16
- package/docs/platforms/mac/canvas.md +14 -14
- package/docs/platforms/mac/child-process.md +9 -9
- package/docs/platforms/mac/dev-setup.md +11 -11
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +7 -7
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +3 -3
- package/docs/platforms/mac/release.md +20 -20
- package/docs/platforms/mac/remote.md +14 -14
- package/docs/platforms/mac/signing.md +7 -7
- package/docs/platforms/mac/skills.md +4 -4
- package/docs/platforms/mac/voice-overlay.md +2 -2
- package/docs/platforms/mac/webchat.md +2 -2
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +20 -20
- package/docs/platforms/oracle.md +291 -0
- package/docs/platforms/raspberry-pi.md +354 -0
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +80 -64
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +96 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +23 -27
- package/docs/providers/claude-max-api-proxy.md +145 -0
- package/docs/providers/deepgram.md +2 -2
- package/docs/providers/github-copilot.md +11 -11
- package/docs/providers/glm.md +4 -4
- package/docs/providers/index.md +7 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +2 -2
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +9 -13
- package/docs/providers/opencode.md +3 -3
- package/docs/providers/openrouter.md +3 -3
- package/docs/providers/qwen.md +6 -6
- package/docs/providers/synthetic.md +4 -4
- package/docs/providers/venice.md +21 -21
- package/docs/providers/vercel-ai-gateway.md +5 -4
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +9 -7
- package/docs/refactor/exec-host.md +5 -5
- package/docs/refactor/plugin-sdk.md +12 -12
- package/docs/refactor/strict-config.md +11 -11
- package/docs/reference/AGENTS.default.md +10 -10
- package/docs/reference/RELEASING.md +29 -29
- package/docs/reference/api-usage-costs.md +6 -6
- package/docs/reference/device-models.md +7 -7
- package/docs/reference/rpc.md +3 -3
- package/docs/reference/session-management-compaction.md +19 -19
- package/docs/reference/templates/AGENTS.dev.md +1 -1
- package/docs/reference/templates/BOOT.md +1 -1
- package/docs/reference/templates/IDENTITY.md +27 -0
- package/docs/reference/templates/TOOLS.dev.md +1 -1
- package/docs/reference/templates/USER.dev.md +2 -2
- package/docs/reference/templates/USER.md +22 -0
- package/docs/reference/test.md +2 -2
- package/docs/reference/transcript-hygiene.md +1 -1
- package/docs/render.mdx +158 -0
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +107 -0
- package/docs/start/clawd.md +29 -29
- package/docs/start/getting-started.md +31 -25
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +74 -38
- package/docs/start/onboarding.md +7 -7
- package/docs/start/pairing.md +10 -10
- package/docs/start/setup.md +30 -17
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +29 -26
- package/docs/testing.md +56 -56
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +10 -10
- package/docs/tools/browser-login.md +4 -4
- package/docs/tools/browser.md +136 -242
- package/docs/tools/chrome-extension.md +31 -48
- package/docs/tools/clawdhub.md +7 -7
- package/docs/tools/creating-skills.md +41 -0
- package/docs/tools/elevated.md +1 -0
- package/docs/tools/exec-approvals.md +8 -5
- package/docs/tools/exec.md +15 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +18 -15
- package/docs/tools/llm-task.md +1 -1
- package/docs/tools/lobster.md +23 -11
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +39 -31
- package/docs/tools/slash-commands.md +10 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +6 -1
- package/docs/web/control-ui.md +15 -14
- package/docs/web/dashboard.md +10 -6
- package/docs/web/index.md +7 -6
- package/docs/web/webchat.md +1 -1
- package/extensions/bluebubbles/index.ts +3 -3
- package/extensions/bluebubbles/package.json +5 -5
- package/extensions/bluebubbles/src/accounts.ts +9 -9
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +6 -6
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +71 -17
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/config-schema.ts +1 -1
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +56 -50
- package/extensions/bluebubbles/src/monitor.ts +181 -6
- package/extensions/bluebubbles/src/onboarding.ts +9 -9
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/runtime.ts +1 -1
- package/extensions/bluebubbles/src/send.test.ts +94 -2
- package/extensions/bluebubbles/src/send.ts +73 -7
- package/extensions/copilot-proxy/README.md +3 -3
- package/extensions/copilot-proxy/index.ts +1 -1
- package/extensions/copilot-proxy/package.json +4 -4
- package/extensions/diagnostics-otel/index.ts +3 -3
- package/extensions/diagnostics-otel/package.json +4 -4
- package/extensions/diagnostics-otel/src/service.test.ts +15 -15
- package/extensions/diagnostics-otel/src/service.ts +85 -85
- package/extensions/discord/index.ts +3 -3
- package/extensions/discord/package.json +4 -4
- package/extensions/discord/src/channel.ts +1 -1
- package/extensions/discord/src/runtime.ts +1 -1
- package/extensions/google-antigravity-auth/README.md +3 -3
- package/extensions/google-antigravity-auth/index.ts +9 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +17 -6
- package/extensions/google-gemini-cli-auth/index.ts +3 -3
- package/extensions/google-gemini-cli-auth/oauth.test.ts +228 -0
- package/extensions/google-gemini-cli-auth/oauth.ts +96 -12
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/package.json +7 -7
- package/extensions/googlechat/src/accounts.ts +9 -9
- package/extensions/googlechat/src/actions.ts +8 -8
- package/extensions/googlechat/src/api.ts +1 -1
- package/extensions/googlechat/src/channel.ts +23 -23
- package/extensions/googlechat/src/monitor.ts +9 -9
- package/extensions/googlechat/src/onboarding.ts +11 -11
- package/extensions/googlechat/src/runtime.ts +1 -1
- package/extensions/googlechat/src/types.config.ts +1 -1
- package/extensions/imessage/index.ts +3 -3
- package/extensions/imessage/package.json +4 -4
- package/extensions/imessage/src/channel.ts +5 -8
- package/extensions/imessage/src/runtime.ts +1 -1
- package/extensions/line/clawdbot.plugin.json +11 -0
- package/extensions/line/index.ts +20 -0
- package/extensions/line/package.json +29 -0
- package/extensions/line/src/card-command.ts +338 -0
- package/extensions/line/src/channel.logout.test.ts +96 -0
- package/extensions/line/src/channel.sendPayload.test.ts +308 -0
- package/extensions/line/src/channel.ts +773 -0
- package/extensions/line/src/runtime.ts +14 -0
- package/extensions/llm-task/README.md +4 -4
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +4 -4
- package/extensions/llm-task/src/llm-task-tool.ts +5 -5
- package/extensions/lobster/README.md +6 -6
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +26 -6
- package/extensions/lobster/src/lobster-tool.ts +24 -6
- package/extensions/matrix/CHANGELOG.md +9 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +2 -2
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +2 -2
- package/extensions/matrix/package.json +7 -7
- package/extensions/matrix/src/actions.ts +1 -1
- package/extensions/matrix/src/channel.directory.test.ts +1 -1
- package/extensions/matrix/src/channel.ts +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -1
- package/extensions/matrix/src/directory-live.ts +1 -1
- package/extensions/matrix/src/group-mentions.ts +1 -1
- package/extensions/matrix/src/matrix/accounts.ts +1 -1
- package/extensions/matrix/src/matrix/actions/client.ts +1 -1
- package/extensions/matrix/src/matrix/actions/messages.ts +1 -1
- package/extensions/matrix/src/matrix/actions/reactions.ts +1 -1
- package/extensions/matrix/src/matrix/actions/room.ts +3 -3
- package/extensions/matrix/src/matrix/actions/summary.ts +1 -1
- package/extensions/matrix/src/matrix/actions/types.ts +1 -1
- package/extensions/matrix/src/matrix/active-client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +2 -2
- package/extensions/matrix/src/matrix/client/create-client.ts +2 -2
- package/extensions/matrix/src/matrix/client/logging.ts +1 -1
- package/extensions/matrix/src/matrix/client/shared.ts +3 -3
- package/extensions/matrix/src/matrix/deps.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +4 -4
- package/extensions/matrix/src/matrix/monitor/direct.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/handler.ts +15 -11
- package/extensions/matrix/src/matrix/monitor/index.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/location.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/media.test.ts +41 -5
- package/extensions/matrix/src/matrix/monitor/media.ts +17 -14
- package/extensions/matrix/src/matrix/monitor/replies.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/room-info.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/threads.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/types.ts +2 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/probe.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +3 -3
- package/extensions/matrix/src/matrix/send/media.ts +1 -1
- package/extensions/matrix/src/matrix/send/targets.test.ts +1 -1
- package/extensions/matrix/src/matrix/send/targets.ts +1 -1
- package/extensions/matrix/src/matrix/send/types.ts +2 -2
- package/extensions/matrix/src/matrix/send.test.ts +3 -3
- package/extensions/matrix/src/matrix/send.ts +4 -4
- package/extensions/matrix/src/onboarding.ts +3 -3
- package/extensions/matrix/src/outbound.ts +1 -1
- package/extensions/matrix/src/resolve-targets.ts +1 -1
- package/extensions/matrix/src/runtime.ts +1 -1
- package/extensions/matrix/src/tool-actions.ts +1 -1
- package/extensions/matrix/src/types.ts +1 -1
- package/extensions/mattermost/index.ts +3 -3
- package/extensions/mattermost/package.json +5 -5
- package/extensions/mattermost/src/channel.ts +1 -1
- package/extensions/mattermost/src/config-schema.ts +1 -1
- package/extensions/mattermost/src/group-mentions.ts +2 -2
- package/extensions/mattermost/src/mattermost/accounts.ts +10 -10
- package/extensions/mattermost/src/mattermost/client.ts +1 -1
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +6 -6
- package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
- package/extensions/mattermost/src/mattermost/probe.ts +1 -1
- package/extensions/mattermost/src/onboarding-helpers.ts +5 -5
- package/extensions/mattermost/src/onboarding.ts +5 -5
- package/extensions/mattermost/src/runtime.ts +1 -1
- package/extensions/mattermost/src/types.ts +1 -1
- package/extensions/memory-core/index.ts +3 -3
- package/extensions/memory-core/package.json +9 -6
- package/extensions/memory-lancedb/{pigbot.plugin.json → clawdbot.plugin.json} +1 -1
- package/extensions/memory-lancedb/config.ts +2 -2
- package/extensions/memory-lancedb/index.test.ts +3 -3
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +2 -2
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +2 -2
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/msteams/CHANGELOG.md +7 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/package.json +6 -6
- package/extensions/msteams/src/attachments.test.ts +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +3 -3
- package/extensions/msteams/src/conversation-store-fs.test.ts +5 -5
- package/extensions/msteams/src/directory-live.ts +1 -1
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/media-helpers.ts +1 -1
- package/extensions/msteams/src/messenger.test.ts +1 -1
- package/extensions/msteams/src/messenger.ts +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +3 -3
- package/extensions/msteams/src/onboarding.ts +11 -11
- package/extensions/msteams/src/outbound.ts +1 -1
- package/extensions/msteams/src/policy.test.ts +1 -1
- package/extensions/msteams/src/policy.ts +50 -5
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +5 -5
- package/extensions/msteams/src/polls.ts +8 -8
- package/extensions/msteams/src/probe.test.ts +1 -1
- package/extensions/msteams/src/probe.ts +1 -1
- package/extensions/msteams/src/reply-dispatcher.ts +36 -36
- package/extensions/msteams/src/runtime.ts +1 -1
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +5 -5
- package/extensions/msteams/src/token.ts +1 -1
- package/extensions/nextcloud-talk/index.ts +3 -3
- package/extensions/nextcloud-talk/package.json +5 -5
- package/extensions/nextcloud-talk/src/accounts.ts +2 -2
- package/extensions/nextcloud-talk/src/channel.ts +8 -8
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
- package/extensions/nextcloud-talk/src/inbound.ts +8 -8
- package/extensions/nextcloud-talk/src/monitor.ts +1 -1
- package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
- package/extensions/nextcloud-talk/src/policy.ts +2 -2
- package/extensions/nextcloud-talk/src/room-info.ts +1 -1
- package/extensions/nextcloud-talk/src/runtime.ts +1 -1
- package/extensions/nextcloud-talk/src/types.ts +1 -1
- package/extensions/nostr/CHANGELOG.md +4 -4
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/package.json +6 -6
- package/extensions/nostr/src/channel.ts +2 -2
- package/extensions/nostr/src/config-schema.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +8 -8
- package/extensions/nostr/src/runtime.ts +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/open-prose/package.json +3 -3
- package/extensions/open-prose/skills/prose/SKILL.md +5 -5
- package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +2 -2
- package/extensions/open-prose/skills/prose/prose.md +4 -4
- package/extensions/qwen-portal-auth/README.md +3 -3
- package/extensions/qwen-portal-auth/index.ts +1 -1
- package/extensions/signal/index.ts +3 -3
- package/extensions/signal/package.json +4 -4
- package/extensions/signal/src/channel.ts +1 -1
- package/extensions/signal/src/runtime.ts +1 -1
- package/extensions/slack/index.ts +3 -3
- package/extensions/slack/package.json +4 -4
- package/extensions/slack/src/channel.ts +1 -1
- package/extensions/slack/src/runtime.ts +1 -1
- package/extensions/telegram/index.ts +3 -3
- package/extensions/telegram/package.json +4 -4
- package/extensions/telegram/src/channel.ts +3 -3
- package/extensions/telegram/src/runtime.ts +1 -1
- package/extensions/tlon/README.md +3 -3
- package/extensions/tlon/index.ts +3 -3
- package/extensions/tlon/package.json +5 -5
- package/extensions/tlon/src/channel.ts +15 -15
- package/extensions/tlon/src/config-schema.ts +1 -1
- package/extensions/tlon/src/monitor/discovery.ts +1 -1
- package/extensions/tlon/src/monitor/history.ts +1 -1
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +4 -4
- package/extensions/tlon/src/runtime.ts +1 -1
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/tlon/src/urbit/send.ts +19 -6
- package/extensions/twitch/CHANGELOG.md +21 -0
- package/extensions/twitch/README.md +89 -0
- package/extensions/twitch/clawdbot.plugin.json +9 -0
- package/extensions/twitch/index.ts +20 -0
- package/extensions/twitch/package.json +20 -0
- package/extensions/twitch/src/access-control.test.ts +489 -0
- package/extensions/twitch/src/access-control.ts +154 -0
- package/extensions/twitch/src/actions.ts +173 -0
- package/extensions/twitch/src/client-manager-registry.ts +115 -0
- package/extensions/twitch/src/config-schema.ts +82 -0
- package/extensions/twitch/src/config.test.ts +88 -0
- package/extensions/twitch/src/config.ts +116 -0
- package/extensions/twitch/src/monitor.ts +257 -0
- package/extensions/twitch/src/onboarding.test.ts +311 -0
- package/extensions/twitch/src/onboarding.ts +411 -0
- package/extensions/twitch/src/outbound.test.ts +373 -0
- package/extensions/twitch/src/outbound.ts +186 -0
- package/extensions/twitch/src/plugin.test.ts +39 -0
- package/extensions/twitch/src/plugin.ts +274 -0
- package/extensions/twitch/src/probe.test.ts +198 -0
- package/extensions/twitch/src/probe.ts +118 -0
- package/extensions/twitch/src/resolver.ts +137 -0
- package/extensions/twitch/src/runtime.ts +14 -0
- package/extensions/twitch/src/send.test.ts +289 -0
- package/extensions/twitch/src/send.ts +136 -0
- package/extensions/twitch/src/status.test.ts +270 -0
- package/extensions/twitch/src/status.ts +176 -0
- package/extensions/twitch/src/token.test.ts +171 -0
- package/extensions/twitch/src/token.ts +87 -0
- package/extensions/twitch/src/twitch-client.test.ts +574 -0
- package/extensions/twitch/src/twitch-client.ts +277 -0
- package/extensions/twitch/src/types.ts +141 -0
- package/extensions/twitch/src/utils/markdown.ts +92 -0
- package/extensions/twitch/src/utils/twitch.ts +78 -0
- package/extensions/twitch/test/setup.ts +7 -0
- package/extensions/voice-call/CHANGELOG.md +19 -11
- package/extensions/voice-call/README.md +38 -16
- package/extensions/voice-call/{pigbot.plugin.json → clawdbot.plugin.json} +210 -14
- package/extensions/voice-call/index.ts +32 -12
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/src/cli.ts +1 -1
- package/extensions/voice-call/src/config.test.ts +204 -0
- package/extensions/voice-call/src/config.ts +134 -26
- package/extensions/voice-call/src/core-bridge.ts +16 -8
- package/extensions/voice-call/src/manager/context.ts +0 -1
- package/extensions/voice-call/src/manager/events.ts +0 -1
- package/extensions/voice-call/src/manager/lookup.ts +0 -1
- package/extensions/voice-call/src/manager/outbound.ts +4 -3
- package/extensions/voice-call/src/manager/state.ts +0 -1
- package/extensions/voice-call/src/manager/store.ts +0 -1
- package/extensions/voice-call/src/manager/timers.ts +0 -1
- package/extensions/voice-call/src/manager/twiml.ts +0 -1
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/manager.ts +4 -2
- package/extensions/voice-call/src/media-stream.test.ts +97 -0
- package/extensions/voice-call/src/media-stream.ts +114 -0
- package/extensions/voice-call/src/providers/plivo.test.ts +0 -1
- package/extensions/voice-call/src/providers/stt-openai-realtime.ts +8 -0
- package/extensions/voice-call/src/providers/twilio/webhook.ts +2 -2
- package/extensions/voice-call/src/providers/twilio.ts +44 -26
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/voice-call/src/runtime.ts +37 -27
- package/extensions/voice-call/src/telephony-audio.ts +88 -0
- package/extensions/voice-call/src/telephony-tts.ts +95 -0
- package/extensions/voice-call/src/types.ts +1 -0
- package/extensions/voice-call/src/webhook-security.test.ts +52 -0
- package/extensions/voice-call/src/webhook-security.ts +16 -5
- package/extensions/voice-call/src/webhook.ts +11 -0
- package/extensions/whatsapp/index.ts +3 -3
- package/extensions/whatsapp/package.json +4 -4
- package/extensions/whatsapp/src/channel.ts +1 -1
- package/extensions/whatsapp/src/runtime.ts +1 -1
- package/extensions/zalo/CHANGELOG.md +9 -9
- package/extensions/zalo/README.md +4 -4
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/package.json +6 -6
- package/extensions/zalo/src/accounts.ts +9 -9
- package/extensions/zalo/src/actions.ts +6 -6
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +20 -20
- package/extensions/zalo/src/config-schema.ts +1 -1
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +27 -27
- package/extensions/zalo/src/runtime.ts +1 -1
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalo/src/status-issues.ts +1 -1
- package/extensions/zalo/src/token.ts +1 -1
- package/extensions/zalouser/CHANGELOG.md +4 -4
- package/extensions/zalouser/README.md +18 -18
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/package.json +6 -6
- package/extensions/zalouser/src/accounts.ts +10 -10
- package/extensions/zalouser/src/channel.test.ts +0 -1
- package/extensions/zalouser/src/channel.ts +27 -27
- package/extensions/zalouser/src/config-schema.ts +1 -1
- package/extensions/zalouser/src/monitor.ts +5 -5
- package/extensions/zalouser/src/onboarding.ts +32 -32
- package/extensions/zalouser/src/runtime.ts +1 -1
- package/extensions/zalouser/src/status-issues.ts +2 -2
- package/package.json +34 -22
- package/scripts/postinstall.js +1 -1
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +1 -1
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/bird/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +2 -2
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +15 -15
- package/skills/clawdhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +6 -5
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/food-order/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -0
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +1 -1
- package/skills/local-places/SKILL.md +2 -2
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-banana-pro/SKILL.md +10 -5
- package/skills/nano-banana-pro/scripts/generate_image.py +42 -27
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +1 -1
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +7 -7
- package/skills/sherpa-onnx-tts/SKILL.md +6 -6
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/slack/SKILL.md +4 -3
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +8 -8
- package/skills/tmux/scripts/find-sessions.sh +2 -2
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/dist/cli/browser-cli-serve.js +0 -91
- package/dist/control-ui/assets/index--6ilUi7V.css +0 -1
- package/dist/control-ui/assets/index-DrGg77je.js +0 -3111
- package/dist/control-ui/assets/index-DrGg77je.js.map +0 -1
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -21
- package/extensions/diagnostics-otel/node_modules/.bin/acorn.CMD +0 -12
- package/extensions/diagnostics-otel/node_modules/.bin/acorn.ps1 +0 -41
- package/extensions/googlechat/node_modules/.bin/pigbot +0 -21
- package/extensions/googlechat/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/googlechat/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/matrix/node_modules/.bin/pigbot +0 -21
- package/extensions/matrix/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/matrix/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/memory-core/node_modules/.bin/pigbot +0 -21
- package/extensions/memory-core/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/memory-core/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -21
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv.CMD +0 -12
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv.ps1 +0 -41
- package/extensions/msteams/node_modules/.bin/pigbot +0 -21
- package/extensions/msteams/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/msteams/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/nostr/node_modules/.bin/pigbot +0 -21
- package/extensions/nostr/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/nostr/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/nostr/node_modules/.bin/tsc +0 -21
- package/extensions/nostr/node_modules/.bin/tsc.CMD +0 -12
- package/extensions/nostr/node_modules/.bin/tsc.ps1 +0 -41
- package/extensions/nostr/node_modules/.bin/tsserver +0 -21
- package/extensions/nostr/node_modules/.bin/tsserver.CMD +0 -12
- package/extensions/nostr/node_modules/.bin/tsserver.ps1 +0 -41
- package/extensions/zalo/node_modules/.bin/pigbot +0 -21
- package/extensions/zalo/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/zalo/node_modules/.bin/pigbot.ps1 +0 -41
- package/extensions/zalouser/node_modules/.bin/pigbot +0 -21
- package/extensions/zalouser/node_modules/.bin/pigbot.CMD +0 -12
- package/extensions/zalouser/node_modules/.bin/pigbot.ps1 +0 -41
- /package/dist/{config/types.pigbot.js → browser/routes/types.js} +0 -0
- /package/extensions/bluebubbles/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/discord/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/googlechat/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/imessage/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/llm-task/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/lobster/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/matrix/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/mattermost/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/memory-core/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/msteams/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/nostr/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/open-prose/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/signal/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/slack/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/telegram/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/tlon/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/whatsapp/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/zalo/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
- /package/extensions/zalouser/{pigbot.plugin.json → clawdbot.plugin.json} +0 -0
package/dist/cli/update-cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import fs from "node:fs/promises";
|
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { readConfigFileSnapshot, writeConfigFile } from "../config/config.js";
|
|
6
|
-
import {
|
|
6
|
+
import { resolveMoltbotPackageRoot } from "../infra/moltbot-root.js";
|
|
7
7
|
import { checkUpdateStatus, compareSemverStrings, fetchNpmTagVersion, resolveNpmChannelTag, } from "../infra/update-check.js";
|
|
8
8
|
import { parseSemver } from "../infra/runtime-guard.js";
|
|
9
9
|
import { runGatewayUpdate, } from "../infra/update-runner.js";
|
|
@@ -13,6 +13,7 @@ import { trimLogTail } from "../infra/restart-sentinel.js";
|
|
|
13
13
|
import { defaultRuntime } from "../runtime.js";
|
|
14
14
|
import { formatDocsLink } from "../terminal/links.js";
|
|
15
15
|
import { formatCliCommand } from "./command-format.js";
|
|
16
|
+
import { replaceCliName, resolveCliName } from "./cli-name.js";
|
|
16
17
|
import { stylePromptHint, stylePromptMessage } from "../terminal/prompt-style.js";
|
|
17
18
|
import { theme } from "../terminal/theme.js";
|
|
18
19
|
import { renderTable } from "../terminal/table.js";
|
|
@@ -33,7 +34,7 @@ const STEP_LABELS = {
|
|
|
33
34
|
"deps install": "Installing dependencies",
|
|
34
35
|
build: "Building",
|
|
35
36
|
"ui:build": "Building UI",
|
|
36
|
-
"
|
|
37
|
+
"moltbot doctor": "Running doctor checks",
|
|
37
38
|
"git rev-parse HEAD (after)": "Verifying update",
|
|
38
39
|
"global update": "Updating via package manager",
|
|
39
40
|
"global install": "Installing global package",
|
|
@@ -61,15 +62,23 @@ const UPDATE_QUIPS = [
|
|
|
61
62
|
"Version bump! Same chaos energy, fewer crashes (probably).",
|
|
62
63
|
];
|
|
63
64
|
const MAX_LOG_CHARS = 8000;
|
|
64
|
-
const
|
|
65
|
-
const
|
|
65
|
+
const DEFAULT_PACKAGE_NAME = "moltbot";
|
|
66
|
+
const CORE_PACKAGE_NAMES = new Set([DEFAULT_PACKAGE_NAME, "moltbot"]);
|
|
67
|
+
const CLI_NAME = resolveCliName();
|
|
68
|
+
const CLAWDBOT_REPO_URL = "https://github.com/moltbot/moltbot.git";
|
|
69
|
+
const DEFAULT_GIT_DIR = path.join(os.homedir(), "moltbot");
|
|
66
70
|
function normalizeTag(value) {
|
|
67
71
|
if (!value)
|
|
68
72
|
return null;
|
|
69
73
|
const trimmed = value.trim();
|
|
70
74
|
if (!trimmed)
|
|
71
75
|
return null;
|
|
72
|
-
|
|
76
|
+
if (trimmed.startsWith("moltbot@"))
|
|
77
|
+
return trimmed.slice("moltbot@".length);
|
|
78
|
+
if (trimmed.startsWith(`${DEFAULT_PACKAGE_NAME}@`)) {
|
|
79
|
+
return trimmed.slice(`${DEFAULT_PACKAGE_NAME}@`.length);
|
|
80
|
+
}
|
|
81
|
+
return trimmed;
|
|
73
82
|
}
|
|
74
83
|
function pickUpdateQuip() {
|
|
75
84
|
return UPDATE_QUIPS[Math.floor(Math.random() * UPDATE_QUIPS.length)] ?? "Update complete.";
|
|
@@ -107,16 +116,21 @@ async function isGitCheckout(root) {
|
|
|
107
116
|
return false;
|
|
108
117
|
}
|
|
109
118
|
}
|
|
110
|
-
async function
|
|
119
|
+
async function readPackageName(root) {
|
|
111
120
|
try {
|
|
112
121
|
const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
|
|
113
122
|
const parsed = JSON.parse(raw);
|
|
114
|
-
|
|
123
|
+
const name = parsed?.name?.trim();
|
|
124
|
+
return name ? name : null;
|
|
115
125
|
}
|
|
116
126
|
catch {
|
|
117
|
-
return
|
|
127
|
+
return null;
|
|
118
128
|
}
|
|
119
129
|
}
|
|
130
|
+
async function isCorePackage(root) {
|
|
131
|
+
const name = await readPackageName(root);
|
|
132
|
+
return Boolean(name && CORE_PACKAGE_NAMES.has(name));
|
|
133
|
+
}
|
|
120
134
|
async function pathExists(targetPath) {
|
|
121
135
|
try {
|
|
122
136
|
await fs.stat(targetPath);
|
|
@@ -136,7 +150,7 @@ async function isEmptyDir(targetPath) {
|
|
|
136
150
|
}
|
|
137
151
|
}
|
|
138
152
|
function resolveGitInstallDir() {
|
|
139
|
-
const override = process.env.
|
|
153
|
+
const override = process.env.CLAWDBOT_GIT_DIR?.trim();
|
|
140
154
|
if (override)
|
|
141
155
|
return path.resolve(override);
|
|
142
156
|
return DEFAULT_GIT_DIR;
|
|
@@ -186,7 +200,7 @@ async function ensureGitCheckout(params) {
|
|
|
186
200
|
if (!dirExists) {
|
|
187
201
|
return await runUpdateStep({
|
|
188
202
|
name: "git clone",
|
|
189
|
-
argv: ["git", "clone",
|
|
203
|
+
argv: ["git", "clone", CLAWDBOT_REPO_URL, params.dir],
|
|
190
204
|
timeoutMs: params.timeoutMs,
|
|
191
205
|
progress: params.progress,
|
|
192
206
|
});
|
|
@@ -194,18 +208,18 @@ async function ensureGitCheckout(params) {
|
|
|
194
208
|
if (!(await isGitCheckout(params.dir))) {
|
|
195
209
|
const empty = await isEmptyDir(params.dir);
|
|
196
210
|
if (!empty) {
|
|
197
|
-
throw new Error(`
|
|
211
|
+
throw new Error(`CLAWDBOT_GIT_DIR points at a non-git directory: ${params.dir}. Set CLAWDBOT_GIT_DIR to an empty folder or a moltbot checkout.`);
|
|
198
212
|
}
|
|
199
213
|
return await runUpdateStep({
|
|
200
214
|
name: "git clone",
|
|
201
|
-
argv: ["git", "clone",
|
|
215
|
+
argv: ["git", "clone", CLAWDBOT_REPO_URL, params.dir],
|
|
202
216
|
cwd: params.dir,
|
|
203
217
|
timeoutMs: params.timeoutMs,
|
|
204
218
|
progress: params.progress,
|
|
205
219
|
});
|
|
206
220
|
}
|
|
207
|
-
if (!(await
|
|
208
|
-
throw new Error(`
|
|
221
|
+
if (!(await isCorePackage(params.dir))) {
|
|
222
|
+
throw new Error(`CLAWDBOT_GIT_DIR does not look like a core checkout: ${params.dir}.`);
|
|
209
223
|
}
|
|
210
224
|
return null;
|
|
211
225
|
}
|
|
@@ -240,7 +254,7 @@ export async function updateStatusCommand(opts) {
|
|
|
240
254
|
defaultRuntime.exit(1);
|
|
241
255
|
return;
|
|
242
256
|
}
|
|
243
|
-
const root = (await
|
|
257
|
+
const root = (await resolveMoltbotPackageRoot({
|
|
244
258
|
moduleUrl: import.meta.url,
|
|
245
259
|
argv1: process.argv[1],
|
|
246
260
|
cwd: process.cwd(),
|
|
@@ -303,7 +317,7 @@ export async function updateStatusCommand(opts) {
|
|
|
303
317
|
Value: updateAvailability.available ? theme.warn(`available · ${updateLine}`) : updateLine,
|
|
304
318
|
},
|
|
305
319
|
];
|
|
306
|
-
defaultRuntime.log(theme.heading("
|
|
320
|
+
defaultRuntime.log(theme.heading("Moltbot update status"));
|
|
307
321
|
defaultRuntime.log("");
|
|
308
322
|
defaultRuntime.log(renderTable({
|
|
309
323
|
width: tableWidth,
|
|
@@ -433,7 +447,7 @@ export async function updateCommand(opts) {
|
|
|
433
447
|
defaultRuntime.exit(1);
|
|
434
448
|
return;
|
|
435
449
|
}
|
|
436
|
-
const root = (await
|
|
450
|
+
const root = (await resolveMoltbotPackageRoot({
|
|
437
451
|
moduleUrl: import.meta.url,
|
|
438
452
|
argv1: process.argv[1],
|
|
439
453
|
cwd: process.cwd(),
|
|
@@ -526,7 +540,7 @@ export async function updateCommand(opts) {
|
|
|
526
540
|
}
|
|
527
541
|
const showProgress = !opts.json && process.stdout.isTTY;
|
|
528
542
|
if (!opts.json) {
|
|
529
|
-
defaultRuntime.log(theme.heading("Updating
|
|
543
|
+
defaultRuntime.log(theme.heading("Updating Moltbot..."));
|
|
530
544
|
defaultRuntime.log("");
|
|
531
545
|
}
|
|
532
546
|
const { progress, stop } = createUpdateProgress(showProgress);
|
|
@@ -543,10 +557,12 @@ export async function updateCommand(opts) {
|
|
|
543
557
|
return { stdout: res.stdout, stderr: res.stderr, code: res.code };
|
|
544
558
|
};
|
|
545
559
|
const pkgRoot = await resolveGlobalPackageRoot(manager, runCommand, timeoutMs ?? 20 * 60_000);
|
|
560
|
+
const packageName = (pkgRoot ? await readPackageName(pkgRoot) : await readPackageName(root)) ??
|
|
561
|
+
DEFAULT_PACKAGE_NAME;
|
|
546
562
|
const beforeVersion = pkgRoot ? await readPackageVersion(pkgRoot) : null;
|
|
547
563
|
const updateStep = await runUpdateStep({
|
|
548
564
|
name: "global update",
|
|
549
|
-
argv: globalInstallArgs(manager,
|
|
565
|
+
argv: globalInstallArgs(manager, `${packageName}@${tag}`),
|
|
550
566
|
timeoutMs: timeoutMs ?? 20 * 60_000,
|
|
551
567
|
progress,
|
|
552
568
|
});
|
|
@@ -557,7 +573,7 @@ export async function updateCommand(opts) {
|
|
|
557
573
|
const entryPath = path.join(pkgRoot, "dist", "entry.js");
|
|
558
574
|
if (await pathExists(entryPath)) {
|
|
559
575
|
const doctorStep = await runUpdateStep({
|
|
560
|
-
name:
|
|
576
|
+
name: `${CLI_NAME} doctor`,
|
|
561
577
|
argv: [resolveNodeRunner(), entryPath, "doctor", "--non-interactive"],
|
|
562
578
|
timeoutMs: timeoutMs ?? 20 * 60_000,
|
|
563
579
|
progress,
|
|
@@ -650,8 +666,8 @@ export async function updateCommand(opts) {
|
|
|
650
666
|
defaultRuntime.log(theme.warn("Skipped: working directory has uncommitted changes. Commit or stash them first."));
|
|
651
667
|
}
|
|
652
668
|
if (result.reason === "not-git-install") {
|
|
653
|
-
defaultRuntime.log(theme.warn(`Skipped: this
|
|
654
|
-
defaultRuntime.log(theme.muted(
|
|
669
|
+
defaultRuntime.log(theme.warn(`Skipped: this Moltbot install isn't a git checkout, and the package manager couldn't be detected. Update via your package manager, then run \`${replaceCliName(formatCliCommand("moltbot doctor"), CLI_NAME)}\` and \`${replaceCliName(formatCliCommand("moltbot gateway restart"), CLI_NAME)}\`.`));
|
|
670
|
+
defaultRuntime.log(theme.muted(`Examples: \`${replaceCliName("npm i -g moltbot@latest", CLI_NAME)}\` or \`${replaceCliName("pnpm add -g moltbot@latest", CLI_NAME)}\``));
|
|
655
671
|
}
|
|
656
672
|
defaultRuntime.exit(0);
|
|
657
673
|
return;
|
|
@@ -739,7 +755,7 @@ export async function updateCommand(opts) {
|
|
|
739
755
|
if (!opts.json && restarted) {
|
|
740
756
|
defaultRuntime.log(theme.success("Daemon restarted successfully."));
|
|
741
757
|
defaultRuntime.log("");
|
|
742
|
-
process.env.
|
|
758
|
+
process.env.CLAWDBOT_UPDATE_IN_PROGRESS = "1";
|
|
743
759
|
try {
|
|
744
760
|
const { doctorCommand } = await import("../commands/doctor.js");
|
|
745
761
|
const interactiveDoctor = Boolean(process.stdin.isTTY) && !opts.json && opts.yes !== true;
|
|
@@ -749,24 +765,24 @@ export async function updateCommand(opts) {
|
|
|
749
765
|
defaultRuntime.log(theme.warn(`Doctor failed: ${String(err)}`));
|
|
750
766
|
}
|
|
751
767
|
finally {
|
|
752
|
-
delete process.env.
|
|
768
|
+
delete process.env.CLAWDBOT_UPDATE_IN_PROGRESS;
|
|
753
769
|
}
|
|
754
770
|
}
|
|
755
771
|
}
|
|
756
772
|
catch (err) {
|
|
757
773
|
if (!opts.json) {
|
|
758
774
|
defaultRuntime.log(theme.warn(`Daemon restart failed: ${String(err)}`));
|
|
759
|
-
defaultRuntime.log(theme.muted(`You may need to restart the service manually: ${formatCliCommand("
|
|
775
|
+
defaultRuntime.log(theme.muted(`You may need to restart the service manually: ${replaceCliName(formatCliCommand("moltbot gateway restart"), CLI_NAME)}`));
|
|
760
776
|
}
|
|
761
777
|
}
|
|
762
778
|
}
|
|
763
779
|
else if (!opts.json) {
|
|
764
780
|
defaultRuntime.log("");
|
|
765
781
|
if (result.mode === "npm" || result.mode === "pnpm") {
|
|
766
|
-
defaultRuntime.log(theme.muted(`Tip: Run \`${formatCliCommand("
|
|
782
|
+
defaultRuntime.log(theme.muted(`Tip: Run \`${replaceCliName(formatCliCommand("moltbot doctor"), CLI_NAME)}\`, then \`${replaceCliName(formatCliCommand("moltbot gateway restart"), CLI_NAME)}\` to apply updates to a running gateway.`));
|
|
767
783
|
}
|
|
768
784
|
else {
|
|
769
|
-
defaultRuntime.log(theme.muted(`Tip: Run \`${formatCliCommand("
|
|
785
|
+
defaultRuntime.log(theme.muted(`Tip: Run \`${replaceCliName(formatCliCommand("moltbot gateway restart"), CLI_NAME)}\` to apply updates to a running gateway.`));
|
|
770
786
|
}
|
|
771
787
|
}
|
|
772
788
|
if (!opts.json) {
|
|
@@ -775,7 +791,7 @@ export async function updateCommand(opts) {
|
|
|
775
791
|
}
|
|
776
792
|
export async function updateWizardCommand(opts = {}) {
|
|
777
793
|
if (!process.stdin.isTTY) {
|
|
778
|
-
defaultRuntime.error("Update wizard requires a TTY. Use `
|
|
794
|
+
defaultRuntime.error("Update wizard requires a TTY. Use `moltbot update --channel <stable|beta|dev>` instead.");
|
|
779
795
|
defaultRuntime.exit(1);
|
|
780
796
|
return;
|
|
781
797
|
}
|
|
@@ -785,7 +801,7 @@ export async function updateWizardCommand(opts = {}) {
|
|
|
785
801
|
defaultRuntime.exit(1);
|
|
786
802
|
return;
|
|
787
803
|
}
|
|
788
|
-
const root = (await
|
|
804
|
+
const root = (await resolveMoltbotPackageRoot({
|
|
789
805
|
moduleUrl: import.meta.url,
|
|
790
806
|
argv1: process.argv[1],
|
|
791
807
|
cwd: process.cwd(),
|
|
@@ -855,13 +871,13 @@ export async function updateWizardCommand(opts = {}) {
|
|
|
855
871
|
if (dirExists) {
|
|
856
872
|
const empty = await isEmptyDir(gitDir);
|
|
857
873
|
if (!empty) {
|
|
858
|
-
defaultRuntime.error(`
|
|
874
|
+
defaultRuntime.error(`CLAWDBOT_GIT_DIR points at a non-git directory: ${gitDir}. Set CLAWDBOT_GIT_DIR to an empty folder or a moltbot checkout.`);
|
|
859
875
|
defaultRuntime.exit(1);
|
|
860
876
|
return;
|
|
861
877
|
}
|
|
862
878
|
}
|
|
863
879
|
const ok = await confirm({
|
|
864
|
-
message: stylePromptMessage(`Create a git checkout at ${gitDir}? (override via
|
|
880
|
+
message: stylePromptMessage(`Create a git checkout at ${gitDir}? (override via CLAWDBOT_GIT_DIR)`),
|
|
865
881
|
initialValue: true,
|
|
866
882
|
});
|
|
867
883
|
if (isCancel(ok) || ok === false) {
|
|
@@ -895,7 +911,7 @@ export async function updateWizardCommand(opts = {}) {
|
|
|
895
911
|
export function registerUpdateCli(program) {
|
|
896
912
|
const update = program
|
|
897
913
|
.command("update")
|
|
898
|
-
.description("Update
|
|
914
|
+
.description("Update Moltbot to the latest version")
|
|
899
915
|
.option("--json", "Output result as JSON", false)
|
|
900
916
|
.option("--no-restart", "Skip restarting the gateway service after a successful update")
|
|
901
917
|
.option("--channel <stable|beta|dev>", "Persist update channel (git + npm)")
|
|
@@ -904,15 +920,15 @@ export function registerUpdateCli(program) {
|
|
|
904
920
|
.option("--yes", "Skip confirmation prompts (non-interactive)", false)
|
|
905
921
|
.addHelpText("after", () => {
|
|
906
922
|
const examples = [
|
|
907
|
-
["
|
|
908
|
-
["
|
|
909
|
-
["
|
|
910
|
-
["
|
|
911
|
-
["
|
|
912
|
-
["
|
|
913
|
-
["
|
|
914
|
-
["
|
|
915
|
-
["
|
|
923
|
+
["moltbot update", "Update a source checkout (git)"],
|
|
924
|
+
["moltbot update --channel beta", "Switch to beta channel (git + npm)"],
|
|
925
|
+
["moltbot update --channel dev", "Switch to dev channel (git + npm)"],
|
|
926
|
+
["moltbot update --tag beta", "One-off update to a dist-tag or version"],
|
|
927
|
+
["moltbot update --no-restart", "Update without restarting the service"],
|
|
928
|
+
["moltbot update --json", "Output result as JSON"],
|
|
929
|
+
["moltbot update --yes", "Non-interactive (accept downgrade prompts)"],
|
|
930
|
+
["moltbot update wizard", "Interactive update wizard"],
|
|
931
|
+
["moltbot --update", "Shorthand for moltbot update"],
|
|
916
932
|
];
|
|
917
933
|
const fmtExamples = examples
|
|
918
934
|
.map(([cmd, desc]) => ` ${theme.command(cmd)} ${theme.muted(`# ${desc}`)}`)
|
|
@@ -924,7 +940,7 @@ ${theme.heading("What this does:")}
|
|
|
924
940
|
|
|
925
941
|
${theme.heading("Switch channels:")}
|
|
926
942
|
- Use --channel stable|beta|dev to persist the update channel in config
|
|
927
|
-
- Run
|
|
943
|
+
- Run moltbot update status to see the active channel and source
|
|
928
944
|
- Use --tag <dist-tag|version> for a one-off npm update without persisting
|
|
929
945
|
|
|
930
946
|
${theme.heading("Non-interactive:")}
|
|
@@ -940,7 +956,7 @@ ${theme.heading("Notes:")}
|
|
|
940
956
|
- Downgrades require confirmation (can break configuration)
|
|
941
957
|
- Skips update if the working directory has uncommitted changes
|
|
942
958
|
|
|
943
|
-
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
959
|
+
${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.molt.bot/cli/update")}`;
|
|
944
960
|
})
|
|
945
961
|
.action(async (opts) => {
|
|
946
962
|
try {
|
|
@@ -962,7 +978,7 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.clawd.bot/cli/upda
|
|
|
962
978
|
.command("wizard")
|
|
963
979
|
.description("Interactive update wizard")
|
|
964
980
|
.option("--timeout <seconds>", "Timeout for each update step in seconds (default: 1200)")
|
|
965
|
-
.addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
981
|
+
.addHelpText("after", `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.molt.bot/cli/update")}\n`)
|
|
966
982
|
.action(async (opts) => {
|
|
967
983
|
try {
|
|
968
984
|
await updateWizardCommand({ timeout: opts.timeout });
|
|
@@ -978,10 +994,10 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.clawd.bot/cli/upda
|
|
|
978
994
|
.option("--json", "Output result as JSON", false)
|
|
979
995
|
.option("--timeout <seconds>", "Timeout for update checks in seconds (default: 3)")
|
|
980
996
|
.addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples([
|
|
981
|
-
["
|
|
982
|
-
["
|
|
983
|
-
["
|
|
984
|
-
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.
|
|
997
|
+
["moltbot update status", "Show channel + version status."],
|
|
998
|
+
["moltbot update status --json", "JSON output."],
|
|
999
|
+
["moltbot update status --timeout 10", "Custom timeout."],
|
|
1000
|
+
])}\n\n${theme.heading("Notes:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.molt.bot/cli/update")}`)
|
|
985
1001
|
.action(async (opts) => {
|
|
986
1002
|
try {
|
|
987
1003
|
await updateStatusCommand({
|
package/dist/cli/webhooks-cli.js
CHANGED
|
@@ -8,18 +8,18 @@ export function registerWebhooksCli(program) {
|
|
|
8
8
|
const webhooks = program
|
|
9
9
|
.command("webhooks")
|
|
10
10
|
.description("Webhook helpers and integrations")
|
|
11
|
-
.addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.
|
|
11
|
+
.addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/webhooks", "docs.molt.bot/cli/webhooks")}\n`);
|
|
12
12
|
const gmail = webhooks.command("gmail").description("Gmail Pub/Sub hooks (via gogcli)");
|
|
13
13
|
gmail
|
|
14
14
|
.command("setup")
|
|
15
|
-
.description("Configure Gmail watch + Pub/Sub +
|
|
15
|
+
.description("Configure Gmail watch + Pub/Sub + Moltbot hooks")
|
|
16
16
|
.requiredOption("--account <email>", "Gmail account to watch")
|
|
17
17
|
.option("--project <id>", "GCP project id (OAuth client owner)")
|
|
18
18
|
.option("--topic <name>", "Pub/Sub topic name", DEFAULT_GMAIL_TOPIC)
|
|
19
19
|
.option("--subscription <name>", "Pub/Sub subscription name", DEFAULT_GMAIL_SUBSCRIPTION)
|
|
20
20
|
.option("--label <label>", "Gmail label to watch", DEFAULT_GMAIL_LABEL)
|
|
21
|
-
.option("--hook-url <url>", "
|
|
22
|
-
.option("--hook-token <token>", "
|
|
21
|
+
.option("--hook-url <url>", "Moltbot hook URL")
|
|
22
|
+
.option("--hook-token <token>", "Moltbot hook token")
|
|
23
23
|
.option("--push-token <token>", "Push token for gog watch serve")
|
|
24
24
|
.option("--bind <host>", "gog watch serve bind host", DEFAULT_GMAIL_SERVE_BIND)
|
|
25
25
|
.option("--port <port>", "gog watch serve port", String(DEFAULT_GMAIL_SERVE_PORT))
|
|
@@ -49,8 +49,8 @@ export function registerWebhooksCli(program) {
|
|
|
49
49
|
.option("--topic <topic>", "Pub/Sub topic path (projects/.../topics/..)")
|
|
50
50
|
.option("--subscription <name>", "Pub/Sub subscription name")
|
|
51
51
|
.option("--label <label>", "Gmail label to watch")
|
|
52
|
-
.option("--hook-url <url>", "
|
|
53
|
-
.option("--hook-token <token>", "
|
|
52
|
+
.option("--hook-url <url>", "Moltbot hook URL")
|
|
53
|
+
.option("--hook-token <token>", "Moltbot hook token")
|
|
54
54
|
.option("--push-token <token>", "Push token for gog watch serve")
|
|
55
55
|
.option("--bind <host>", "gog watch serve bind host")
|
|
56
56
|
.option("--port <port>", "gog watch serve port")
|
|
@@ -42,7 +42,7 @@ export async function agentViaGatewayCommand(opts, runtime) {
|
|
|
42
42
|
if (agentId) {
|
|
43
43
|
const knownAgents = listAgentIds(cfg);
|
|
44
44
|
if (!knownAgents.includes(agentId)) {
|
|
45
|
-
throw new Error(`Unknown agent id "${agentIdRaw}". Use "${formatCliCommand("
|
|
45
|
+
throw new Error(`Unknown agent id "${agentIdRaw}". Use "${formatCliCommand("moltbot agents list")}" to see configured agents.`);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
const timeoutSeconds = parseTimeoutSeconds({ cfg, timeout: opts.timeout });
|
package/dist/commands/agent.js
CHANGED
|
@@ -42,7 +42,7 @@ export async function agentCommand(opts, runtime = defaultRuntime, deps = create
|
|
|
42
42
|
if (agentIdOverride) {
|
|
43
43
|
const knownAgents = listAgentIds(cfg);
|
|
44
44
|
if (!knownAgents.includes(agentIdOverride)) {
|
|
45
|
-
throw new Error(`Unknown agent id "${agentIdOverrideRaw}". Use "${formatCliCommand("
|
|
45
|
+
throw new Error(`Unknown agent id "${agentIdOverrideRaw}". Use "${formatCliCommand("moltbot agents list")}" to see configured agents.`);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
if (agentIdOverride && opts.sessionKey) {
|
|
@@ -303,6 +303,7 @@ export async function agentCommand(opts, runtime = defaultRuntime, deps = create
|
|
|
303
303
|
cfg,
|
|
304
304
|
provider,
|
|
305
305
|
model,
|
|
306
|
+
agentDir,
|
|
306
307
|
fallbacksOverride: resolveAgentModelFallbacksOverride(cfg, sessionAgentId),
|
|
307
308
|
run: (providerOverride, modelOverride) => {
|
|
308
309
|
if (isCliProvider(providerOverride, cfg)) {
|
|
@@ -10,7 +10,7 @@ export async function requireValidConfig(runtime) {
|
|
|
10
10
|
? snapshot.issues.map((issue) => `- ${issue.path}: ${issue.message}`).join("\n")
|
|
11
11
|
: "Unknown validation issue.";
|
|
12
12
|
runtime.error(`Config invalid:\n${issues}`);
|
|
13
|
-
runtime.error(`Fix the config or run ${formatCliCommand("
|
|
13
|
+
runtime.error(`Fix the config or run ${formatCliCommand("moltbot doctor")}.`);
|
|
14
14
|
runtime.exit(1);
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
@@ -129,7 +129,7 @@ export async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
|
|
|
129
129
|
}
|
|
130
130
|
const prompter = createClackPrompter();
|
|
131
131
|
try {
|
|
132
|
-
await prompter.intro("Add
|
|
132
|
+
await prompter.intro("Add Moltbot agent");
|
|
133
133
|
const name = nameInput ??
|
|
134
134
|
(await prompter.text({
|
|
135
135
|
message: "Agent name",
|
|
@@ -204,7 +204,6 @@ export async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
|
|
|
204
204
|
prompter,
|
|
205
205
|
store: authStore,
|
|
206
206
|
includeSkip: true,
|
|
207
|
-
includeClaudeCliIfMissing: true,
|
|
208
207
|
});
|
|
209
208
|
const authResult = await applyAuthChoice({
|
|
210
209
|
authChoice,
|
|
@@ -263,7 +262,7 @@ export async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
|
|
|
263
262
|
else {
|
|
264
263
|
await prompter.note([
|
|
265
264
|
"Routing unchanged. Add bindings when you're ready.",
|
|
266
|
-
"Docs: https://docs.
|
|
265
|
+
"Docs: https://docs.molt.bot/concepts/multi-agent",
|
|
267
266
|
].join("\n"), "Routing");
|
|
268
267
|
}
|
|
269
268
|
}
|
|
@@ -93,6 +93,6 @@ export async function agentsListCommand(opts, runtime = defaultRuntime) {
|
|
|
93
93
|
}
|
|
94
94
|
const lines = ["Agents:", ...summaries.map(formatSummary)];
|
|
95
95
|
lines.push("Routing rules map channel/account/peer to an agent. Use --bindings for full rules.");
|
|
96
|
-
lines.push(`Channel status reflects local config/creds. For live health: ${formatCliCommand("
|
|
96
|
+
lines.push(`Channel status reflects local config/creds. For live health: ${formatCliCommand("moltbot channels status --probe")}.`);
|
|
97
97
|
runtime.log(lines.join("\n"));
|
|
98
98
|
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { CLAUDE_CLI_PROFILE_ID, CODEX_CLI_PROFILE_ID } from "../agents/auth-profiles.js";
|
|
2
|
-
import { colorize, isRich, theme } from "../terminal/theme.js";
|
|
3
1
|
const AUTH_CHOICE_GROUP_DEFS = [
|
|
4
2
|
{
|
|
5
3
|
value: "openai",
|
|
6
4
|
label: "OpenAI",
|
|
7
5
|
hint: "Codex OAuth + API key",
|
|
8
|
-
choices: ["
|
|
6
|
+
choices: ["openai-codex", "openai-api-key"],
|
|
9
7
|
},
|
|
10
8
|
{
|
|
11
9
|
value: "anthropic",
|
|
12
10
|
label: "Anthropic",
|
|
13
|
-
hint: "
|
|
14
|
-
choices: ["token", "
|
|
11
|
+
hint: "setup-token + API key",
|
|
12
|
+
choices: ["token", "apiKey"],
|
|
15
13
|
},
|
|
16
14
|
{
|
|
17
15
|
value: "minimax",
|
|
@@ -80,57 +78,9 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
80
78
|
choices: ["opencode-zen"],
|
|
81
79
|
},
|
|
82
80
|
];
|
|
83
|
-
function formatOAuthHint(expires, opts) {
|
|
84
|
-
const rich = isRich();
|
|
85
|
-
if (!expires) {
|
|
86
|
-
return colorize(rich, theme.muted, "token unavailable");
|
|
87
|
-
}
|
|
88
|
-
const now = Date.now();
|
|
89
|
-
const remaining = expires - now;
|
|
90
|
-
if (remaining <= 0) {
|
|
91
|
-
if (opts?.allowStale) {
|
|
92
|
-
return colorize(rich, theme.warn, "token present · refresh on use");
|
|
93
|
-
}
|
|
94
|
-
return colorize(rich, theme.error, "token expired");
|
|
95
|
-
}
|
|
96
|
-
const minutes = Math.round(remaining / (60 * 1000));
|
|
97
|
-
const duration = minutes >= 120
|
|
98
|
-
? `${Math.round(minutes / 60)}h`
|
|
99
|
-
: minutes >= 60
|
|
100
|
-
? "1h"
|
|
101
|
-
: `${Math.max(minutes, 1)}m`;
|
|
102
|
-
const label = `token ok · expires in ${duration}`;
|
|
103
|
-
if (minutes <= 10) {
|
|
104
|
-
return colorize(rich, theme.warn, label);
|
|
105
|
-
}
|
|
106
|
-
return colorize(rich, theme.success, label);
|
|
107
|
-
}
|
|
108
81
|
export function buildAuthChoiceOptions(params) {
|
|
82
|
+
void params.store;
|
|
109
83
|
const options = [];
|
|
110
|
-
const platform = params.platform ?? process.platform;
|
|
111
|
-
const codexCli = params.store.profiles[CODEX_CLI_PROFILE_ID];
|
|
112
|
-
if (codexCli?.type === "oauth") {
|
|
113
|
-
options.push({
|
|
114
|
-
value: "codex-cli",
|
|
115
|
-
label: "OpenAI Codex OAuth (Codex CLI)",
|
|
116
|
-
hint: formatOAuthHint(codexCli.expires, { allowStale: true }),
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
const claudeCli = params.store.profiles[CLAUDE_CLI_PROFILE_ID];
|
|
120
|
-
if (claudeCli?.type === "oauth" || claudeCli?.type === "token") {
|
|
121
|
-
options.push({
|
|
122
|
-
value: "claude-cli",
|
|
123
|
-
label: "Anthropic token (Claude Code CLI)",
|
|
124
|
-
hint: `reuses existing Claude Code auth · ${formatOAuthHint(claudeCli.expires)}`,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
else if (params.includeClaudeCliIfMissing && platform === "darwin") {
|
|
128
|
-
options.push({
|
|
129
|
-
value: "claude-cli",
|
|
130
|
-
label: "Anthropic token (Claude Code CLI)",
|
|
131
|
-
hint: "reuses existing Claude Code auth · requires Keychain access",
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
84
|
options.push({
|
|
135
85
|
value: "token",
|
|
136
86
|
label: "Anthropic token (paste setup-token)",
|
|
@@ -1,117 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { upsertAuthProfile } from "../agents/auth-profiles.js";
|
|
2
2
|
import { formatApiKeyPreview, normalizeApiKeyInput, validateApiKeyInput, } from "./auth-choice.api-key.js";
|
|
3
3
|
import { buildTokenProfileId, validateAnthropicSetupToken } from "./auth-token.js";
|
|
4
4
|
import { applyAuthProfileConfig, setAnthropicApiKey } from "./onboard-auth.js";
|
|
5
5
|
export async function applyAuthChoiceAnthropic(params) {
|
|
6
|
-
if (params.authChoice === "
|
|
6
|
+
if (params.authChoice === "setup-token" ||
|
|
7
|
+
params.authChoice === "oauth" ||
|
|
8
|
+
params.authChoice === "token") {
|
|
7
9
|
let nextConfig = params.config;
|
|
8
|
-
|
|
9
|
-
allowKeychainPrompt: false,
|
|
10
|
-
});
|
|
11
|
-
const hasClaudeCli = Boolean(store.profiles[CLAUDE_CLI_PROFILE_ID]);
|
|
12
|
-
if (!hasClaudeCli && process.platform === "darwin") {
|
|
13
|
-
await params.prompter.note([
|
|
14
|
-
"macOS will show a Keychain prompt next.",
|
|
15
|
-
'Choose "Always Allow" so the launchd gateway can start without prompts.',
|
|
16
|
-
'If you choose "Allow" or "Deny", each restart will block on a Keychain alert.',
|
|
17
|
-
].join("\n"), "Claude Code CLI Keychain");
|
|
18
|
-
const proceed = await params.prompter.confirm({
|
|
19
|
-
message: "Check Keychain for Claude Code CLI credentials now?",
|
|
20
|
-
initialValue: true,
|
|
21
|
-
});
|
|
22
|
-
if (!proceed)
|
|
23
|
-
return { config: nextConfig };
|
|
24
|
-
}
|
|
25
|
-
const storeWithKeychain = hasClaudeCli
|
|
26
|
-
? store
|
|
27
|
-
: ensureAuthProfileStore(params.agentDir, {
|
|
28
|
-
allowKeychainPrompt: true,
|
|
29
|
-
});
|
|
30
|
-
if (!storeWithKeychain.profiles[CLAUDE_CLI_PROFILE_ID]) {
|
|
31
|
-
if (process.stdin.isTTY) {
|
|
32
|
-
const runNow = await params.prompter.confirm({
|
|
33
|
-
message: "Run `claude setup-token` now?",
|
|
34
|
-
initialValue: true,
|
|
35
|
-
});
|
|
36
|
-
if (runNow) {
|
|
37
|
-
const res = await (async () => {
|
|
38
|
-
const { spawnSync } = await import("node:child_process");
|
|
39
|
-
return spawnSync("claude", ["setup-token"], { stdio: "inherit" });
|
|
40
|
-
})();
|
|
41
|
-
if (res.error) {
|
|
42
|
-
await params.prompter.note(`Failed to run claude: ${String(res.error)}`, "Claude setup-token");
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
await params.prompter.note("`claude setup-token` requires an interactive TTY.", "Claude setup-token");
|
|
48
|
-
}
|
|
49
|
-
const refreshed = ensureAuthProfileStore(params.agentDir, {
|
|
50
|
-
allowKeychainPrompt: true,
|
|
51
|
-
});
|
|
52
|
-
if (!refreshed.profiles[CLAUDE_CLI_PROFILE_ID]) {
|
|
53
|
-
await params.prompter.note(process.platform === "darwin"
|
|
54
|
-
? 'No Claude Code CLI credentials found in Keychain ("Claude Code-credentials") or ~/.claude/.credentials.json.'
|
|
55
|
-
: "No Claude Code CLI credentials found at ~/.claude/.credentials.json.", "Claude Code CLI OAuth");
|
|
56
|
-
return { config: nextConfig };
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
60
|
-
profileId: CLAUDE_CLI_PROFILE_ID,
|
|
61
|
-
provider: "anthropic",
|
|
62
|
-
mode: "oauth",
|
|
63
|
-
});
|
|
64
|
-
return { config: nextConfig };
|
|
65
|
-
}
|
|
66
|
-
if (params.authChoice === "setup-token" || params.authChoice === "oauth") {
|
|
67
|
-
let nextConfig = params.config;
|
|
68
|
-
await params.prompter.note([
|
|
69
|
-
"This will run `claude setup-token` to create a long-lived Anthropic token.",
|
|
70
|
-
"Requires an interactive TTY and a Claude Pro/Max subscription.",
|
|
71
|
-
].join("\n"), "Anthropic setup-token");
|
|
72
|
-
if (!process.stdin.isTTY) {
|
|
73
|
-
await params.prompter.note("`claude setup-token` requires an interactive TTY.", "Anthropic setup-token");
|
|
74
|
-
return { config: nextConfig };
|
|
75
|
-
}
|
|
76
|
-
const proceed = await params.prompter.confirm({
|
|
77
|
-
message: "Run `claude setup-token` now?",
|
|
78
|
-
initialValue: true,
|
|
79
|
-
});
|
|
80
|
-
if (!proceed)
|
|
81
|
-
return { config: nextConfig };
|
|
82
|
-
const res = await (async () => {
|
|
83
|
-
const { spawnSync } = await import("node:child_process");
|
|
84
|
-
return spawnSync("claude", ["setup-token"], { stdio: "inherit" });
|
|
85
|
-
})();
|
|
86
|
-
if (res.error) {
|
|
87
|
-
await params.prompter.note(`Failed to run claude: ${String(res.error)}`, "Anthropic setup-token");
|
|
88
|
-
return { config: nextConfig };
|
|
89
|
-
}
|
|
90
|
-
if (typeof res.status === "number" && res.status !== 0) {
|
|
91
|
-
await params.prompter.note(`claude setup-token failed (exit ${res.status})`, "Anthropic setup-token");
|
|
92
|
-
return { config: nextConfig };
|
|
93
|
-
}
|
|
94
|
-
const store = ensureAuthProfileStore(params.agentDir, {
|
|
95
|
-
allowKeychainPrompt: true,
|
|
96
|
-
});
|
|
97
|
-
if (!store.profiles[CLAUDE_CLI_PROFILE_ID]) {
|
|
98
|
-
await params.prompter.note(`No Claude Code CLI credentials found after setup-token. Expected ${CLAUDE_CLI_PROFILE_ID}.`, "Anthropic setup-token");
|
|
99
|
-
return { config: nextConfig };
|
|
100
|
-
}
|
|
101
|
-
nextConfig = applyAuthProfileConfig(nextConfig, {
|
|
102
|
-
profileId: CLAUDE_CLI_PROFILE_ID,
|
|
103
|
-
provider: "anthropic",
|
|
104
|
-
mode: "oauth",
|
|
105
|
-
});
|
|
106
|
-
return { config: nextConfig };
|
|
107
|
-
}
|
|
108
|
-
if (params.authChoice === "token") {
|
|
109
|
-
let nextConfig = params.config;
|
|
110
|
-
const provider = (await params.prompter.select({
|
|
111
|
-
message: "Token provider",
|
|
112
|
-
options: [{ value: "anthropic", label: "Anthropic (only supported)" }],
|
|
113
|
-
}));
|
|
114
|
-
await params.prompter.note(["Run `claude setup-token` in your terminal.", "Then paste the generated token below."].join("\n"), "Anthropic token");
|
|
10
|
+
await params.prompter.note(["Run `claude setup-token` in your terminal.", "Then paste the generated token below."].join("\n"), "Anthropic setup-token");
|
|
115
11
|
const tokenRaw = await params.prompter.text({
|
|
116
12
|
message: "Paste Anthropic setup-token",
|
|
117
13
|
validate: (value) => validateAnthropicSetupToken(String(value ?? "")),
|
|
@@ -121,6 +17,7 @@ export async function applyAuthChoiceAnthropic(params) {
|
|
|
121
17
|
message: "Token name (blank = default)",
|
|
122
18
|
placeholder: "default",
|
|
123
19
|
});
|
|
20
|
+
const provider = "anthropic";
|
|
124
21
|
const namedProfileId = buildTokenProfileId({
|
|
125
22
|
provider,
|
|
126
23
|
name: String(profileNameRaw ?? ""),
|