@intent-systems/nexus 2026.1.5-3
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 +222 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +462 -0
- package/dist/agents/agent-paths.js +16 -0
- package/dist/agents/agent-scope.js +44 -0
- package/dist/agents/auth-profiles.js +626 -0
- package/dist/agents/bash-process-registry.js +126 -0
- package/dist/agents/bash-tools.js +838 -0
- package/dist/agents/chutes-oauth.js +47 -0
- package/dist/agents/clawdbot-tools.js +62 -0
- package/dist/agents/context.js +34 -0
- package/dist/agents/defaults.js +6 -0
- package/dist/agents/memory-search.js +80 -0
- package/dist/agents/model-auth.js +115 -0
- package/dist/agents/model-catalog.js +55 -0
- package/dist/agents/model-fallback.js +210 -0
- package/dist/agents/model-scan.js +263 -0
- package/dist/agents/model-selection.js +152 -0
- package/dist/agents/models-config.js +171 -0
- package/dist/agents/nexus-tools.js +46 -0
- package/dist/agents/pi-embedded-block-chunker.js +188 -0
- package/dist/agents/pi-embedded-helpers.js +139 -0
- package/dist/agents/pi-embedded-runner.js +932 -0
- package/dist/agents/pi-embedded-subscribe.js +541 -0
- package/dist/agents/pi-embedded-utils.js +20 -0
- package/dist/agents/pi-embedded.js +1 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
- package/dist/agents/pi-tool-definition-adapter.js +17 -0
- package/dist/agents/pi-tools.js +510 -0
- package/dist/agents/pi-tools.schema.js +358 -0
- package/dist/agents/sandbox-paths.js +68 -0
- package/dist/agents/sandbox.js +667 -0
- package/dist/agents/shell-utils.js +53 -0
- package/dist/agents/skill-runner.js +224 -0
- package/dist/agents/skill-state.js +164 -0
- package/dist/agents/skill-tools.js +191 -0
- package/dist/agents/skill-usage.js +43 -0
- package/dist/agents/skills-install.js +244 -0
- package/dist/agents/skills-status.js +157 -0
- package/dist/agents/skills.js +472 -0
- package/dist/agents/subagent-registry.js +321 -0
- package/dist/agents/subagent-registry.store.js +47 -0
- package/dist/agents/system-prompt.js +179 -0
- package/dist/agents/timeout.js +26 -0
- package/dist/agents/tool-display.js +155 -0
- package/dist/agents/tool-display.json +236 -0
- package/dist/agents/tool-images.js +138 -0
- package/dist/agents/tool-policy.js +87 -0
- package/dist/agents/tools/agent-step.js +41 -0
- package/dist/agents/tools/browser-tool.js +295 -0
- package/dist/agents/tools/canvas-tool.js +193 -0
- package/dist/agents/tools/common.js +88 -0
- package/dist/agents/tools/cron-tool.js +141 -0
- package/dist/agents/tools/discord-actions-guild.js +186 -0
- package/dist/agents/tools/discord-actions-messaging.js +313 -0
- package/dist/agents/tools/discord-actions-moderation.js +70 -0
- package/dist/agents/tools/discord-actions.js +56 -0
- package/dist/agents/tools/discord-schema.js +199 -0
- package/dist/agents/tools/discord-tool.js +16 -0
- package/dist/agents/tools/gateway-tool.js +46 -0
- package/dist/agents/tools/gateway.js +28 -0
- package/dist/agents/tools/image-tool.js +140 -0
- package/dist/agents/tools/memory-tool.js +92 -0
- package/dist/agents/tools/nodes-tool.js +413 -0
- package/dist/agents/tools/nodes-utils.js +92 -0
- package/dist/agents/tools/sessions-announce-target.js +35 -0
- package/dist/agents/tools/sessions-helpers.js +88 -0
- package/dist/agents/tools/sessions-history-tool.js +137 -0
- package/dist/agents/tools/sessions-list-tool.js +196 -0
- package/dist/agents/tools/sessions-send-helpers.js +103 -0
- package/dist/agents/tools/sessions-send-tool.js +371 -0
- package/dist/agents/tools/sessions-spawn-tool.js +319 -0
- package/dist/agents/tools/slack-actions.js +129 -0
- package/dist/agents/tools/slack-schema.js +59 -0
- package/dist/agents/tools/slack-tool.js +16 -0
- package/dist/agents/tools/telegram-actions.js +159 -0
- package/dist/agents/tools/telegram-schema.js +28 -0
- package/dist/agents/tools/telegram-tool.js +16 -0
- package/dist/agents/tools/whatsapp-login-tool.js +63 -0
- package/dist/agents/usage.js +58 -0
- package/dist/agents/workspace.js +264 -0
- package/dist/auto-reply/chunk.js +177 -0
- package/dist/auto-reply/command-auth.js +44 -0
- package/dist/auto-reply/command-detection.js +22 -0
- package/dist/auto-reply/envelope.js +30 -0
- package/dist/auto-reply/group-activation.js +20 -0
- package/dist/auto-reply/heartbeat.js +58 -0
- package/dist/auto-reply/model.js +22 -0
- package/dist/auto-reply/reply/abort.js +14 -0
- package/dist/auto-reply/reply/agent-runner.js +426 -0
- package/dist/auto-reply/reply/bash-command.js +314 -0
- package/dist/auto-reply/reply/block-streaming.js +34 -0
- package/dist/auto-reply/reply/body.js +29 -0
- package/dist/auto-reply/reply/commands.js +332 -0
- package/dist/auto-reply/reply/directive-handling.js +626 -0
- package/dist/auto-reply/reply/directives.js +59 -0
- package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
- package/dist/auto-reply/reply/followup-runner.js +181 -0
- package/dist/auto-reply/reply/groups.js +152 -0
- package/dist/auto-reply/reply/mentions.js +64 -0
- package/dist/auto-reply/reply/model-selection.js +209 -0
- package/dist/auto-reply/reply/queue.js +399 -0
- package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
- package/dist/auto-reply/reply/reply-tags.js +26 -0
- package/dist/auto-reply/reply/session-updates.js +103 -0
- package/dist/auto-reply/reply/session.js +169 -0
- package/dist/auto-reply/reply/typing.js +125 -0
- package/dist/auto-reply/reply.js +655 -0
- package/dist/auto-reply/send-policy.js +28 -0
- package/dist/auto-reply/status.js +197 -0
- package/dist/auto-reply/templating.js +9 -0
- package/dist/auto-reply/thinking.js +49 -0
- package/dist/auto-reply/tokens.js +2 -0
- package/dist/auto-reply/tool-meta.js +74 -0
- package/dist/auto-reply/transcription.js +57 -0
- package/dist/auto-reply/types.js +1 -0
- package/dist/browser/bridge-server.js +37 -0
- package/dist/browser/cdp.js +382 -0
- package/dist/browser/chrome.js +432 -0
- package/dist/browser/client-actions-core.js +67 -0
- package/dist/browser/client-actions-observe.js +24 -0
- package/dist/browser/client-actions-types.js +1 -0
- package/dist/browser/client-actions.js +3 -0
- package/dist/browser/client-fetch.js +43 -0
- package/dist/browser/client.js +105 -0
- package/dist/browser/config.js +155 -0
- package/dist/browser/constants.js +5 -0
- package/dist/browser/profiles-service.js +124 -0
- package/dist/browser/profiles.js +96 -0
- package/dist/browser/pw-ai.js +2 -0
- package/dist/browser/pw-session.js +144 -0
- package/dist/browser/pw-tools-core.js +363 -0
- package/dist/browser/routes/agent.js +535 -0
- package/dist/browser/routes/basic.js +155 -0
- package/dist/browser/routes/index.js +8 -0
- package/dist/browser/routes/tabs.js +105 -0
- package/dist/browser/routes/utils.js +62 -0
- package/dist/browser/screenshot.js +40 -0
- package/dist/browser/server-context.js +377 -0
- package/dist/browser/server.js +81 -0
- package/dist/browser/target-id.js +18 -0
- package/dist/browser/trash.js +21 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
- package/dist/canvas-host/a2ui/index.html +246 -0
- package/dist/canvas-host/a2ui.js +187 -0
- package/dist/canvas-host/server.js +382 -0
- package/dist/channel-web.js +8 -0
- package/dist/cli/browser-cli-actions-input.js +459 -0
- package/dist/cli/browser-cli-actions-observe.js +56 -0
- package/dist/cli/browser-cli-examples.js +31 -0
- package/dist/cli/browser-cli-inspect.js +97 -0
- package/dist/cli/browser-cli-manage.js +286 -0
- package/dist/cli/browser-cli-shared.js +1 -0
- package/dist/cli/browser-cli.js +26 -0
- package/dist/cli/canvas-cli.js +416 -0
- package/dist/cli/cloud-cli.js +336 -0
- package/dist/cli/credential-cli.js +227 -0
- package/dist/cli/cron-cli.js +454 -0
- package/dist/cli/deps.js +17 -0
- package/dist/cli/dns-cli.js +180 -0
- package/dist/cli/gateway-cli.js +665 -0
- package/dist/cli/gateway-rpc.js +20 -0
- package/dist/cli/hooks-cli.js +135 -0
- package/dist/cli/memory-cli.js +101 -0
- package/dist/cli/models-cli.js +248 -0
- package/dist/cli/nodes-camera.js +57 -0
- package/dist/cli/nodes-canvas.js +26 -0
- package/dist/cli/nodes-cli.js +946 -0
- package/dist/cli/nodes-screen.js +37 -0
- package/dist/cli/pairing-cli.js +100 -0
- package/dist/cli/parse-duration.js +20 -0
- package/dist/cli/plugins-cli.js +158 -0
- package/dist/cli/ports.js +97 -0
- package/dist/cli/profile.js +81 -0
- package/dist/cli/program.js +162 -0
- package/dist/cli/prompt.js +19 -0
- package/dist/cli/run-main.js +48 -0
- package/dist/cli/skills-cli.js +132 -0
- package/dist/cli/skills-hub-cli.js +1093 -0
- package/dist/cli/telegram-cli.js +56 -0
- package/dist/cli/tool-connector-cli.js +118 -0
- package/dist/cli/tui-cli.js +35 -0
- package/dist/cli/upstream-sync-cli.js +2833 -0
- package/dist/cli/usage-cli.js +24 -0
- package/dist/cli/wait.js +8 -0
- package/dist/commands/agent-via-gateway.js +115 -0
- package/dist/commands/agent.js +665 -0
- package/dist/commands/antigravity-oauth.js +327 -0
- package/dist/commands/auth-choice-options.js +80 -0
- package/dist/commands/auth-choice.js +134 -0
- package/dist/commands/auth-token.js +31 -0
- package/dist/commands/bootstrap-preset.js +214 -0
- package/dist/commands/capabilities.js +36 -0
- package/dist/commands/chutes-oauth.js +144 -0
- package/dist/commands/claude-md.js +137 -0
- package/dist/commands/config-view.js +11 -0
- package/dist/commands/configure.js +648 -0
- package/dist/commands/credential.js +236 -0
- package/dist/commands/cursor-rules.js +230 -0
- package/dist/commands/doctor-state-migrations.js +358 -0
- package/dist/commands/doctor-ui.js +113 -0
- package/dist/commands/doctor.js +673 -0
- package/dist/commands/health.js +112 -0
- package/dist/commands/identity.js +54 -0
- package/dist/commands/init.js +167 -0
- package/dist/commands/models/aliases.js +85 -0
- package/dist/commands/models/fallbacks.js +123 -0
- package/dist/commands/models/image-fallbacks.js +123 -0
- package/dist/commands/models/list.js +347 -0
- package/dist/commands/models/scan.js +271 -0
- package/dist/commands/models/set-image.js +27 -0
- package/dist/commands/models/set.js +27 -0
- package/dist/commands/models/shared.js +73 -0
- package/dist/commands/models.js +7 -0
- package/dist/commands/onboard-auth.js +101 -0
- package/dist/commands/onboard-channels.js +814 -0
- package/dist/commands/onboard-eve-identity.js +98 -0
- package/dist/commands/onboard-github.js +153 -0
- package/dist/commands/onboard-helpers.js +303 -0
- package/dist/commands/onboard-interactive.js +17 -0
- package/dist/commands/onboard-non-interactive.js +228 -0
- package/dist/commands/onboard-providers.js +829 -0
- package/dist/commands/onboard-quickstart.js +185 -0
- package/dist/commands/onboard-remote.js +120 -0
- package/dist/commands/onboard-skills.js +148 -0
- package/dist/commands/onboard-types.js +1 -0
- package/dist/commands/onboard.js +19 -0
- package/dist/commands/openai-codex-model-default.js +38 -0
- package/dist/commands/poll.js +64 -0
- package/dist/commands/quest.js +27 -0
- package/dist/commands/reset.js +61 -0
- package/dist/commands/send.js +124 -0
- package/dist/commands/sessions-ingest.js +359 -0
- package/dist/commands/sessions.js +212 -0
- package/dist/commands/setup.js +59 -0
- package/dist/commands/signal-install.js +135 -0
- package/dist/commands/skills-manifest.js +235 -0
- package/dist/commands/status.js +139 -0
- package/dist/commands/suggestions.js +54 -0
- package/dist/commands/systemd-linger.js +71 -0
- package/dist/commands/update.js +16 -0
- package/dist/commands/usage-upload.js +27 -0
- package/dist/config/config.js +6 -0
- package/dist/config/defaults.js +140 -0
- package/dist/config/group-policy.js +49 -0
- package/dist/config/includes.js +183 -0
- package/dist/config/io.js +188 -0
- package/dist/config/legacy-migrate.js +13 -0
- package/dist/config/legacy.js +425 -0
- package/dist/config/paths.js +82 -0
- package/dist/config/port-defaults.js +32 -0
- package/dist/config/schema.js +173 -0
- package/dist/config/sessions.js +611 -0
- package/dist/config/talk.js +31 -0
- package/dist/config/types.js +1 -0
- package/dist/config/validation.js +29 -0
- package/dist/config/zod-schema.js +1110 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
- package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/index.html +16 -0
- package/dist/cron/isolated-agent.js +529 -0
- package/dist/cron/normalize.js +73 -0
- package/dist/cron/parse.js +24 -0
- package/dist/cron/run-log.js +72 -0
- package/dist/cron/schedule.js +24 -0
- package/dist/cron/service.js +471 -0
- package/dist/cron/store.js +43 -0
- package/dist/cron/types.js +1 -0
- package/dist/daemon/constants.js +10 -0
- package/dist/daemon/launchd.js +295 -0
- package/dist/daemon/legacy.js +63 -0
- package/dist/daemon/program-args.js +141 -0
- package/dist/daemon/schtasks.js +269 -0
- package/dist/daemon/service.js +69 -0
- package/dist/daemon/systemd.js +332 -0
- package/dist/discord/index.js +2 -0
- package/dist/discord/monitor.js +1089 -0
- package/dist/discord/probe.js +54 -0
- package/dist/discord/send.js +652 -0
- package/dist/discord/token.js +8 -0
- package/dist/entry.js +16 -0
- package/dist/gateway/auth.js +121 -0
- package/dist/gateway/call.js +103 -0
- package/dist/gateway/chat-attachments.js +41 -0
- package/dist/gateway/client.js +180 -0
- package/dist/gateway/config-reload.js +274 -0
- package/dist/gateway/control-ui.js +184 -0
- package/dist/gateway/hooks-mapping.js +282 -0
- package/dist/gateway/hooks.js +168 -0
- package/dist/gateway/net.js +29 -0
- package/dist/gateway/protocol/index.js +62 -0
- package/dist/gateway/protocol/schema.js +577 -0
- package/dist/gateway/server-bridge-subscriptions.js +93 -0
- package/dist/gateway/server-bridge.js +1066 -0
- package/dist/gateway/server-browser.js +11 -0
- package/dist/gateway/server-channels.js +680 -0
- package/dist/gateway/server-chat.js +159 -0
- package/dist/gateway/server-constants.js +8 -0
- package/dist/gateway/server-discovery.js +62 -0
- package/dist/gateway/server-http.js +165 -0
- package/dist/gateway/server-methods/agent-job.js +114 -0
- package/dist/gateway/server-methods/agent.js +254 -0
- package/dist/gateway/server-methods/channels.js +239 -0
- package/dist/gateway/server-methods/chat.js +207 -0
- package/dist/gateway/server-methods/config.js +50 -0
- package/dist/gateway/server-methods/connect.js +6 -0
- package/dist/gateway/server-methods/cron.js +89 -0
- package/dist/gateway/server-methods/health.js +28 -0
- package/dist/gateway/server-methods/models.js +16 -0
- package/dist/gateway/server-methods/nodes.js +294 -0
- package/dist/gateway/server-methods/providers.js +257 -0
- package/dist/gateway/server-methods/send.js +254 -0
- package/dist/gateway/server-methods/sessions.js +382 -0
- package/dist/gateway/server-methods/skills.js +83 -0
- package/dist/gateway/server-methods/system.js +118 -0
- package/dist/gateway/server-methods/talk.js +22 -0
- package/dist/gateway/server-methods/types.js +1 -0
- package/dist/gateway/server-methods/voicewake.js +30 -0
- package/dist/gateway/server-methods/web.js +81 -0
- package/dist/gateway/server-methods/wizard.js +100 -0
- package/dist/gateway/server-methods.js +53 -0
- package/dist/gateway/server-providers.js +687 -0
- package/dist/gateway/server-shared.js +1 -0
- package/dist/gateway/server-utils.js +35 -0
- package/dist/gateway/server.js +1478 -0
- package/dist/gateway/session-utils.js +355 -0
- package/dist/gateway/ws-log.js +343 -0
- package/dist/gateway/ws-logging.js +8 -0
- package/dist/globals.js +41 -0
- package/dist/hooks/gmail-ops.js +236 -0
- package/dist/hooks/gmail-setup-utils.js +278 -0
- package/dist/hooks/gmail-watcher.js +190 -0
- package/dist/hooks/gmail.js +177 -0
- package/dist/imessage/client.js +165 -0
- package/dist/imessage/index.js +3 -0
- package/dist/imessage/monitor.js +365 -0
- package/dist/imessage/probe.js +26 -0
- package/dist/imessage/send.js +83 -0
- package/dist/imessage/targets.js +176 -0
- package/dist/index.js +55 -0
- package/dist/infra/agent-events.js +46 -0
- package/dist/infra/binaries.js +9 -0
- package/dist/infra/bonjour-discovery.js +163 -0
- package/dist/infra/bonjour.js +200 -0
- package/dist/infra/bridge/server.js +564 -0
- package/dist/infra/canvas-host-url.js +54 -0
- package/dist/infra/channel-summary.js +78 -0
- package/dist/infra/control-ui-assets.js +112 -0
- package/dist/infra/dotenv.js +15 -0
- package/dist/infra/env.js +8 -0
- package/dist/infra/errors.js +28 -0
- package/dist/infra/event-log.js +251 -0
- package/dist/infra/gateway-lock.js +8 -0
- package/dist/infra/git-commit.js +91 -0
- package/dist/infra/heartbeat-events.js +21 -0
- package/dist/infra/heartbeat-runner.js +458 -0
- package/dist/infra/heartbeat-wake.js +61 -0
- package/dist/infra/is-main.js +37 -0
- package/dist/infra/json-file.js +21 -0
- package/dist/infra/machine-name.js +40 -0
- package/dist/infra/nexus-root.js +56 -0
- package/dist/infra/node-pairing.js +212 -0
- package/dist/infra/path-env.js +93 -0
- package/dist/infra/ports.js +87 -0
- package/dist/infra/provider-summary.js +80 -0
- package/dist/infra/provider-usage.auth.js +189 -0
- package/dist/infra/provider-usage.fetch.claude.js +129 -0
- package/dist/infra/provider-usage.fetch.codex.js +62 -0
- package/dist/infra/provider-usage.fetch.copilot.js +42 -0
- package/dist/infra/provider-usage.fetch.gemini.js +57 -0
- package/dist/infra/provider-usage.fetch.js +6 -0
- package/dist/infra/provider-usage.fetch.minimax.js +214 -0
- package/dist/infra/provider-usage.fetch.shared.js +11 -0
- package/dist/infra/provider-usage.fetch.zai.js +62 -0
- package/dist/infra/provider-usage.format.js +77 -0
- package/dist/infra/provider-usage.js +145 -0
- package/dist/infra/provider-usage.load.js +54 -0
- package/dist/infra/provider-usage.shared.js +19 -0
- package/dist/infra/provider-usage.types.js +1 -0
- package/dist/infra/restart.js +29 -0
- package/dist/infra/retry.js +16 -0
- package/dist/infra/runtime-guard.js +59 -0
- package/dist/infra/shell-env.js +88 -0
- package/dist/infra/system-events.js +71 -0
- package/dist/infra/system-presence.js +217 -0
- package/dist/infra/tailnet.js +46 -0
- package/dist/infra/tailscale.js +149 -0
- package/dist/infra/unhandled-rejections.js +19 -0
- package/dist/infra/usage-suggestions.js +241 -0
- package/dist/infra/usage-upload.js +290 -0
- package/dist/infra/voicewake.js +78 -0
- package/dist/infra/widearea-dns.js +123 -0
- package/dist/infra/ws.js +13 -0
- package/dist/logger.js +52 -0
- package/dist/logging.js +506 -0
- package/dist/macos/gateway-daemon.js +145 -0
- package/dist/macos/relay.js +49 -0
- package/dist/media/constants.js +33 -0
- package/dist/media/host.js +42 -0
- package/dist/media/image-ops.js +119 -0
- package/dist/media/mime.js +123 -0
- package/dist/media/parse.js +83 -0
- package/dist/media/server.js +64 -0
- package/dist/media/store.js +139 -0
- package/dist/polls.js +43 -0
- package/dist/process/command-queue.js +97 -0
- package/dist/process/exec.js +75 -0
- package/dist/provider-web.js +8 -0
- package/dist/providers/github-copilot-auth.js +123 -0
- package/dist/providers/github-copilot-models.js +35 -0
- package/dist/providers/github-copilot-token.js +11 -0
- package/dist/providers/location.js +48 -0
- package/dist/providers/web/index.js +2 -0
- package/dist/runtime.js +8 -0
- package/dist/sessions/level-overrides.js +9 -0
- package/dist/sessions/send-policy.js +68 -0
- package/dist/signal/client.js +134 -0
- package/dist/signal/daemon.js +69 -0
- package/dist/signal/index.js +3 -0
- package/dist/signal/monitor.js +411 -0
- package/dist/signal/probe.js +46 -0
- package/dist/signal/send.js +91 -0
- package/dist/slack/actions.js +97 -0
- package/dist/slack/index.js +5 -0
- package/dist/slack/monitor.js +1270 -0
- package/dist/slack/probe.js +47 -0
- package/dist/slack/send.js +131 -0
- package/dist/slack/token.js +10 -0
- package/dist/telegram/allowed-updates.js +8 -0
- package/dist/telegram/bot.js +724 -0
- package/dist/telegram/download.js +34 -0
- package/dist/telegram/index.js +4 -0
- package/dist/telegram/monitor.js +47 -0
- package/dist/telegram/pairing-store.js +77 -0
- package/dist/telegram/probe.js +63 -0
- package/dist/telegram/proxy.js +9 -0
- package/dist/telegram/reaction-level.js +45 -0
- package/dist/telegram/send.js +151 -0
- package/dist/telegram/sent-message-cache.js +65 -0
- package/dist/telegram/token.js +30 -0
- package/dist/telegram/update-offset-store.js +61 -0
- package/dist/telegram/webhook-set.js +12 -0
- package/dist/telegram/webhook.js +56 -0
- package/dist/tui/commands.js +87 -0
- package/dist/tui/components/assistant-message.js +16 -0
- package/dist/tui/components/chat-log.js +92 -0
- package/dist/tui/components/custom-editor.js +55 -0
- package/dist/tui/components/selectors.js +8 -0
- package/dist/tui/components/tool-execution.js +111 -0
- package/dist/tui/components/user-message.js +17 -0
- package/dist/tui/gateway-chat.js +140 -0
- package/dist/tui/theme/theme.js +80 -0
- package/dist/tui/tui.js +708 -0
- package/dist/utils.js +153 -0
- package/dist/version.js +18 -0
- package/dist/web/accounts.js +86 -0
- package/dist/web/active-listener.js +25 -0
- package/dist/web/auto-reply.js +1256 -0
- package/dist/web/inbound.js +649 -0
- package/dist/web/login-qr.js +230 -0
- package/dist/web/login.js +71 -0
- package/dist/web/media.js +175 -0
- package/dist/web/outbound.js +102 -0
- package/dist/web/qr-image.js +97 -0
- package/dist/web/reconnect.js +60 -0
- package/dist/web/session.js +370 -0
- package/dist/wizard/clack-prompter.js +56 -0
- package/dist/wizard/onboarding.js +620 -0
- package/dist/wizard/prompts.js +6 -0
- package/dist/wizard/session.js +203 -0
- package/docs/AGENTS.default.md +116 -0
- package/docs/CAPABILITIES.md +444 -0
- package/docs/CNAME +1 -0
- package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
- package/docs/RELEASING.md +69 -0
- package/docs/_config.yml +53 -0
- package/docs/_layouts/default.html +145 -0
- package/docs/agent-assisted-install.md +95 -0
- package/docs/agent-loop.md +61 -0
- package/docs/agent-send.md +21 -0
- package/docs/agent.md +108 -0
- package/docs/android.md +133 -0
- package/docs/architecture.md +114 -0
- package/docs/assets/markdown.css +133 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/terminal.css +470 -0
- package/docs/assets/theme.js +55 -0
- package/docs/audio.md +48 -0
- package/docs/automation/nexus-sync.md +371 -0
- package/docs/background-process.md +74 -0
- package/docs/bash.md +32 -0
- package/docs/bedrock.md +71 -0
- package/docs/bonjour.md +159 -0
- package/docs/browser-linux-troubleshooting.md +114 -0
- package/docs/browser.md +293 -0
- package/docs/bun.md +56 -0
- package/docs/camera.md +152 -0
- package/docs/clawd.md +212 -0
- package/docs/concepts/usage-tracking.md +29 -0
- package/docs/configuration.md +1666 -0
- package/docs/control-ui.md +83 -0
- package/docs/cron.md +385 -0
- package/docs/dashboard.md +17 -0
- package/docs/device-models.md +46 -0
- package/docs/discord.md +308 -0
- package/docs/discovery.md +112 -0
- package/docs/docker.md +258 -0
- package/docs/docs.json +105 -0
- package/docs/doctor.md +68 -0
- package/docs/elevated.md +31 -0
- package/docs/faq.md +736 -0
- package/docs/feature-inventory/overview.md +141 -0
- package/docs/feature-inventory/rollout-checklist.md +53 -0
- package/docs/feature-inventory/test-matrix.md +87 -0
- package/docs/feature-inventory.md +9 -0
- package/docs/gateway/configuration-examples.md +221 -0
- package/docs/gateway/configuration.md +172 -0
- package/docs/gateway/cron.md +61 -0
- package/docs/gateway/heartbeat.md +207 -0
- package/docs/gateway/pairing.md +109 -0
- package/docs/gateway-lock.md +28 -0
- package/docs/gateway.md +227 -0
- package/docs/gmail-pubsub.md +191 -0
- package/docs/grammy.md +27 -0
- package/docs/group-messages.md +73 -0
- package/docs/groups.md +130 -0
- package/docs/health.md +28 -0
- package/docs/heartbeat.md +73 -0
- package/docs/home-userspace.md +277 -0
- package/docs/hubs.md +148 -0
- package/docs/images.md +51 -0
- package/docs/imessage.md +94 -0
- package/docs/index.md +196 -0
- package/docs/ios.md +372 -0
- package/docs/linux.md +11 -0
- package/docs/location-command.md +95 -0
- package/docs/location.md +46 -0
- package/docs/logging.md +110 -0
- package/docs/lore.md +131 -0
- package/docs/mac/bun.md +133 -0
- package/docs/mac/canvas.md +161 -0
- package/docs/mac/child-process.md +72 -0
- package/docs/mac/dev-setup.md +81 -0
- package/docs/mac/health.md +28 -0
- package/docs/mac/icon.md +26 -0
- package/docs/mac/logging.md +51 -0
- package/docs/mac/menu-bar.md +69 -0
- package/docs/mac/peekaboo.md +170 -0
- package/docs/mac/permissions.md +40 -0
- package/docs/mac/release.md +76 -0
- package/docs/mac/remote.md +57 -0
- package/docs/mac/signing.md +41 -0
- package/docs/mac/skills.md +27 -0
- package/docs/mac/voice-overlay.md +52 -0
- package/docs/mac/voicewake.md +56 -0
- package/docs/mac/webchat.md +27 -0
- package/docs/mac/xpc.md +40 -0
- package/docs/macos.md +104 -0
- package/docs/model-failover.md +75 -0
- package/docs/models.md +91 -0
- package/docs/multi-agent.md +74 -0
- package/docs/nix.md +95 -0
- package/docs/nodes.md +157 -0
- package/docs/onboarding-config-protocol.md +34 -0
- package/docs/onboarding.md +189 -0
- package/docs/pairing.md +85 -0
- package/docs/plans/cron-add-hardening.md +72 -0
- package/docs/plans/group-policy-hardening.md +121 -0
- package/docs/poll.md +52 -0
- package/docs/prereqs.md +67 -0
- package/docs/presence.md +133 -0
- package/docs/proposals/model-config.md +147 -0
- package/docs/provider-routing.md +25 -0
- package/docs/queue.md +78 -0
- package/docs/reference/templates/AGENTS.md +164 -0
- package/docs/remote-gateway-readme.md +153 -0
- package/docs/remote.md +61 -0
- package/docs/research/memory.md +227 -0
- package/docs/rpc.md +35 -0
- package/docs/security.md +200 -0
- package/docs/session-ingestion.md +119 -0
- package/docs/session-tool.md +154 -0
- package/docs/session.md +85 -0
- package/docs/sessions.md +8 -0
- package/docs/setup.md +131 -0
- package/docs/showcase.md +37 -0
- package/docs/signal.md +122 -0
- package/docs/skills-config.md +58 -0
- package/docs/skills.md +153 -0
- package/docs/slack.md +221 -0
- package/docs/subagents.md +72 -0
- package/docs/tailscale.md +71 -0
- package/docs/talk.md +79 -0
- package/docs/telegram.md +96 -0
- package/docs/templates/AGENTS.md +286 -0
- package/docs/templates/BOOTSTRAP.md +35 -0
- package/docs/templates/IDENTITY.md +17 -0
- package/docs/templates/PROFILE.md +14 -0
- package/docs/templates/SOUL.md +41 -0
- package/docs/templates/TOOLS.md +41 -0
- package/docs/templates/USER.md +8 -0
- package/docs/test.md +43 -0
- package/docs/testing-onboarding-quickstart.md +76 -0
- package/docs/testing-philosophy.md +211 -0
- package/docs/thinking.md +46 -0
- package/docs/timezone.md +40 -0
- package/docs/tools.md +346 -0
- package/docs/troubleshooting.md +257 -0
- package/docs/tui.md +71 -0
- package/docs/typebox.md +42 -0
- package/docs/updating.md +138 -0
- package/docs/usage-cloud-aggregation-spec.md +133 -0
- package/docs/usage-suggestions-pipeline.md +126 -0
- package/docs/voicewake.md +61 -0
- package/docs/web.md +115 -0
- package/docs/webchat.md +34 -0
- package/docs/webhook.md +132 -0
- package/docs/whatsapp-clawd.jpg +0 -0
- package/docs/whatsapp.md +170 -0
- package/docs/windows.md +11 -0
- package/docs/wizard.md +167 -0
- package/package.json +209 -0
- package/skills/1password/SKILL.md +54 -0
- package/skills/1password/docs/setup.md +85 -0
- package/skills/1password/docs/troubleshooting.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/agent-browser/SKILL.md +450 -0
- package/skills/agent-browser/docs/browser-use-eval.md +95 -0
- package/skills/agent-browser/docs/first-tests.md +261 -0
- package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
- package/skills/aix/SKILL.md +93 -0
- package/skills/aix/docs/embeddings.md +40 -0
- package/skills/aix/docs/setup.md +58 -0
- package/skills/aix/docs/troubleshooting.md +41 -0
- package/skills/aix/references/sql.md +48 -0
- package/skills/apple-notes/SKILL.md +50 -0
- package/skills/apple-reminders/SKILL.md +67 -0
- package/skills/bear-notes/SKILL.md +79 -0
- package/skills/bird/SKILL.md +32 -0
- package/skills/bird/docs/auth.md +31 -0
- package/skills/bird/docs/troubleshooting.md +31 -0
- package/skills/blogwatcher/SKILL.md +46 -0
- package/skills/blucli/SKILL.md +27 -0
- package/skills/brave-search/SKILL.md +36 -0
- package/skills/brave-search/docs/setup.md +40 -0
- package/skills/brave-search/docs/troubleshooting.md +37 -0
- package/skills/brave-search/docs/usage.md +28 -0
- package/skills/brave-search/scripts/content.mjs +53 -0
- package/skills/brave-search/scripts/search.mjs +79 -0
- package/skills/browser-use-agent-sdk/SKILL.md +90 -0
- package/skills/camsnap/SKILL.md +25 -0
- package/skills/clawdhub/SKILL.md +53 -0
- package/skills/coding-agent/SKILL.md +274 -0
- package/skills/comms/SKILL.md +249 -0
- package/skills/comms/docs/adapters.md +54 -0
- package/skills/comms/docs/setup.md +56 -0
- package/skills/comms/docs/troubleshooting.md +44 -0
- package/skills/comms/references/schema.md +49 -0
- package/skills/computer-use/SKILL.md +204 -0
- package/skills/computer-use/docs/open-interpreter.md +26 -0
- package/skills/computer-use/docs/peekaboo.md +26 -0
- package/skills/computer-use/docs/setup.md +47 -0
- package/skills/computer-use/docs/troubleshooting.md +33 -0
- package/skills/discord/SKILL.md +370 -0
- package/skills/eightctl/SKILL.md +29 -0
- package/skills/eve/SKILL.md +215 -0
- package/skills/eve/docs/dual-account.md +84 -0
- package/skills/eve/docs/intelligence.md +58 -0
- package/skills/eve/docs/setup.md +60 -0
- package/skills/eve/docs/troubleshooting.md +54 -0
- package/skills/eve/scripts/setup-dual-account.sh +125 -0
- package/skills/filesystem/SKILL.md +217 -0
- package/skills/food-order/SKILL.md +41 -0
- package/skills/gemini/SKILL.md +23 -0
- package/skills/gh/SKILL.md +22 -0
- package/skills/gh/docs/usage.md +41 -0
- package/skills/gifgrep/SKILL.md +47 -0
- package/skills/github/SKILL.md +26 -0
- package/skills/github/docs/setup.md +21 -0
- package/skills/github/docs/troubleshooting.md +24 -0
- package/skills/gog/SKILL.md +104 -0
- package/skills/gog/docs/portability.md +94 -0
- package/skills/gog/docs/setup.md +76 -0
- package/skills/gog/docs/troubleshooting.md +94 -0
- package/skills/gog/scripts/cdp/README.md +90 -0
- package/skills/gog/scripts/cdp/add_test_users.py +69 -0
- package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
- package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
- package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
- package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
- package/skills/google-oauth/SKILL.md +94 -0
- package/skills/goplaces/SKILL.md +30 -0
- package/skills/imsg/SKILL.md +25 -0
- package/skills/json-render/SKILL.md +154 -0
- package/skills/json-render/assets/components/README.md +21 -0
- package/skills/json-render/assets/components/catalog.ts +78 -0
- package/skills/json-render/assets/components/registry.tsx +172 -0
- package/skills/json-render/assets/demo/App.css +397 -0
- package/skills/json-render/assets/demo/App.tsx +897 -0
- package/skills/json-render/assets/demo/README.md +22 -0
- package/skills/json-render/assets/demo/catalog.ts +78 -0
- package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
- package/skills/json-render/assets/demo/index.css +27 -0
- package/skills/json-render/assets/demo/registry.tsx +150 -0
- package/skills/json-render/docs/nexus-state-demo.md +84 -0
- package/skills/json-render/docs/shadcn-preset.md +33 -0
- package/skills/json-render/scripts/create-vite-demo.sh +45 -0
- package/skills/json-render/scripts/llm-server/README.md +33 -0
- package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
- package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
- package/skills/json-render/scripts/llm-server/package.json +18 -0
- package/skills/json-render/scripts/llm-server/server.ts +285 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +91 -0
- package/skills/local-places/pyproject.toml +27 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +38 -0
- package/skills/model-usage/SKILL.md +45 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +30 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
- package/skills/nano-pdf/SKILL.md +20 -0
- package/skills/nexus-cloud/SKILL.md +53 -0
- package/skills/nexus-cloud/docs/security.md +24 -0
- package/skills/nexus-cloud/docs/setup.md +51 -0
- package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
- package/skills/notion/SKILL.md +156 -0
- package/skills/obsidian/SKILL.md +55 -0
- package/skills/onboarding/SKILL.md +515 -0
- package/skills/onboarding/docs/CAPABILITIES.md +444 -0
- package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
- package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
- package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
- package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
- package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
- package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
- package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
- package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
- package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
- package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
- package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
- package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
- package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
- package/skills/onboarding/docs/agent-apple-id.md +289 -0
- package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
- package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
- package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
- package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
- package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
- package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
- package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
- package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
- package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
- package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
- package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
- package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
- package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
- package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
- package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
- package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
- package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
- package/skills/onboarding/scripts/ralph/prd.json +215 -0
- package/skills/onboarding/scripts/ralph/progress.txt +99 -0
- package/skills/onboarding/scripts/ralph/prompt.md +87 -0
- package/skills/onboarding/scripts/ralph/ralph.log +84 -0
- package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
- package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
- package/skills/openai-image-gen/SKILL.md +31 -0
- package/skills/openai-image-gen/scripts/gen.py +173 -0
- package/skills/openai-whisper/SKILL.md +19 -0
- package/skills/openai-whisper-api/SKILL.md +43 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +30 -0
- package/skills/oracle/SKILL.md +105 -0
- package/skills/ordercli/SKILL.md +47 -0
- package/skills/peekaboo/SKILL.md +153 -0
- package/skills/qmd/SKILL.md +32 -0
- package/skills/qmd/docs/mcp.md +30 -0
- package/skills/qmd/docs/ollama.md +42 -0
- package/skills/qmd/docs/setup.md +44 -0
- package/skills/sag/SKILL.md +62 -0
- package/skills/skill-cli-template/SKILL.md +109 -0
- package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +29 -0
- package/skills/sonoscli/SKILL.md +26 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/summarize/SKILL.md +49 -0
- package/skills/telegram/SKILL.md +20 -0
- package/skills/telegram/docs/pairing.md +30 -0
- package/skills/telegram/docs/setup.md +41 -0
- package/skills/telegram/docs/webhook.md +17 -0
- package/skills/things-mac/SKILL.md +61 -0
- package/skills/tmux/SKILL.md +121 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +84 -0
- package/skills/upstream-sync/SKILL.md +151 -0
- package/skills/upstream-sync/scripts/auto-port.sh +227 -0
- package/skills/upstream-sync/scripts/check-all.sh +88 -0
- package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
- package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
- package/skills/video-frames/SKILL.md +29 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/wacli/SKILL.md +48 -0
- package/skills/wacli/docs/auth.md +21 -0
- package/skills/wacli/docs/backup.md +9 -0
- package/skills/wacli/docs/troubleshooting.md +21 -0
- package/skills/weather/SKILL.md +53 -0
- package/skills/weather/docs/usage.md +40 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Quick troubleshooting guide for common Nexus failures"
|
|
3
|
+
read_when:
|
|
4
|
+
- Investigating runtime issues or failures
|
|
5
|
+
---
|
|
6
|
+
# Troubleshooting 🔧
|
|
7
|
+
|
|
8
|
+
When your NEXUS misbehaves, here's how to fix it.
|
|
9
|
+
|
|
10
|
+
## Common Issues
|
|
11
|
+
|
|
12
|
+
### "Agent was aborted"
|
|
13
|
+
|
|
14
|
+
The agent was interrupted mid-response.
|
|
15
|
+
|
|
16
|
+
**Causes:**
|
|
17
|
+
- User sent `stop`, `abort`, `esc`, or `exit`
|
|
18
|
+
- Timeout exceeded
|
|
19
|
+
- Process crashed
|
|
20
|
+
|
|
21
|
+
**Fix:** Just send another message. The session continues.
|
|
22
|
+
|
|
23
|
+
### Messages Not Triggering
|
|
24
|
+
|
|
25
|
+
**Check 1:** Is the sender in `whatsapp.allowFrom`?
|
|
26
|
+
```bash
|
|
27
|
+
cat ~/nexus/state/nexus.json | jq '.whatsapp.allowFrom'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Check 2:** For group chats, is mention required?
|
|
31
|
+
```bash
|
|
32
|
+
# The message must match mentionPatterns or explicit mentions; defaults live in provider groups/guilds.
|
|
33
|
+
cat ~/nexus/state/nexus.json | jq '.routing.groupChat, .whatsapp.groups, .telegram.groups, .imessage.groups, .discord.guilds'
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Check 3:** Check the logs
|
|
37
|
+
```bash
|
|
38
|
+
tail -f "$(ls -t ~/nexus/state/logs/nexus-*.log | head -1)" | grep "blocked\\|skip\\|unauthorized"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Image + Mention Not Working
|
|
42
|
+
|
|
43
|
+
Known issue: When you send an image with ONLY a mention (no other text), WhatsApp sometimes doesn't include the mention metadata.
|
|
44
|
+
|
|
45
|
+
**Workaround:** Add some text with the mention:
|
|
46
|
+
- ❌ `@nexus` + image
|
|
47
|
+
- ✅ `@nexus check this` + image
|
|
48
|
+
|
|
49
|
+
### Session Not Resuming
|
|
50
|
+
|
|
51
|
+
**Check 1:** Is the session file there?
|
|
52
|
+
```bash
|
|
53
|
+
ls -la ~/nexus/state/sessions/
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Check 2:** Is `idleMinutes` too short?
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"session": {
|
|
60
|
+
"idleMinutes": 10080 // 7 days
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Check 3:** Did someone send `/new`, `/reset`, or a reset trigger?
|
|
66
|
+
|
|
67
|
+
### Agent Timing Out
|
|
68
|
+
|
|
69
|
+
Default timeout is 30 minutes. For long tasks:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"reply": {
|
|
74
|
+
"timeoutSeconds": 3600 // 1 hour
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or use the `process` tool to background long commands.
|
|
80
|
+
|
|
81
|
+
### WhatsApp Disconnected
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Check local status (creds, sessions, queued events)
|
|
85
|
+
nexus status
|
|
86
|
+
# Probe the running gateway + providers (WA connect + Telegram + Discord APIs)
|
|
87
|
+
nexus status --deep
|
|
88
|
+
|
|
89
|
+
# View recent connection events
|
|
90
|
+
tail -100 ~/nexus/state/logs/nexus-*.log | grep "connection\\|disconnect\\|logout"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Fix:** Usually reconnects automatically once the Gateway is running. If you’re stuck, restart the Gateway process (however you supervise it), or run it manually with verbose output:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
nexus gateway --verbose
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
If you’re logged out / unlinked:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
nexus logout
|
|
103
|
+
trash ~/nexus/state/credentials # if logout can't cleanly remove everything
|
|
104
|
+
nexus login --verbose # re-scan QR
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Media Send Failing
|
|
108
|
+
|
|
109
|
+
**Check 1:** Is the file path valid?
|
|
110
|
+
```bash
|
|
111
|
+
ls -la /path/to/your/image.jpg
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Check 2:** Is it too large?
|
|
115
|
+
- Images: max 6MB
|
|
116
|
+
- Audio/Video: max 16MB
|
|
117
|
+
- Documents: max 100MB
|
|
118
|
+
|
|
119
|
+
**Check 3:** Check media logs
|
|
120
|
+
```bash
|
|
121
|
+
grep "media\\|fetch\\|download" "$(ls -t ~/nexus/state/logs/nexus-*.log | head -1)" | tail -20
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### High Memory Usage
|
|
125
|
+
|
|
126
|
+
NEXUS keeps conversation history in memory.
|
|
127
|
+
|
|
128
|
+
**Fix:** Restart periodically or set session limits:
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"session": {
|
|
132
|
+
"historyLimit": 100 // Max messages to keep
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## macOS Specific Issues
|
|
138
|
+
|
|
139
|
+
### App Crashes when Granting Permissions (Speech/Mic)
|
|
140
|
+
|
|
141
|
+
If the app disappears or shows "Abort trap 6" when you click "Allow" on a privacy prompt:
|
|
142
|
+
|
|
143
|
+
**Fix 1: Reset TCC Cache**
|
|
144
|
+
```bash
|
|
145
|
+
tccutil reset All com.nexus.mac.debug
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Fix 2: Force New Bundle ID**
|
|
149
|
+
If resetting doesn't work, change the `BUNDLE_ID` in `scripts/package-mac-app.sh` (e.g., add a `.test` suffix) and rebuild. This forces macOS to treat it as a new app.
|
|
150
|
+
|
|
151
|
+
### Gateway stuck on "Starting..."
|
|
152
|
+
|
|
153
|
+
The app connects to a local gateway on port `18789`. If it stays stuck:
|
|
154
|
+
|
|
155
|
+
**Fix 1: Kill Zombie Processes**
|
|
156
|
+
Another process might be holding the port.
|
|
157
|
+
```bash
|
|
158
|
+
lsof -nP -i :18789
|
|
159
|
+
# Kill any matching PIDs
|
|
160
|
+
kill -9 <PID>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
If the gateway is supervised by launchd, killing the PID will just respawn it.
|
|
164
|
+
Stop the supervisor instead:
|
|
165
|
+
```bash
|
|
166
|
+
nexus gateway stop
|
|
167
|
+
# Or: launchctl bootout gui/$UID/com.nexus.gateway
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Fix 2: Check embedded gateway**
|
|
171
|
+
Ensure the gateway relay was properly bundled. Run `./scripts/package-mac-app.sh` and ensure `bun` is installed.
|
|
172
|
+
|
|
173
|
+
## Debug Mode
|
|
174
|
+
|
|
175
|
+
Get verbose logging:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Turn on trace logging in config:
|
|
179
|
+
# ~/nexus/state/nexus.json -> { logging: { level: "trace" } }
|
|
180
|
+
#
|
|
181
|
+
# Then run verbose commands to mirror debug output to stdout:
|
|
182
|
+
nexus gateway --verbose
|
|
183
|
+
nexus login --verbose
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Log Locations
|
|
187
|
+
|
|
188
|
+
| Log | Location |
|
|
189
|
+
|-----|----------|
|
|
190
|
+
| Main logs (default) | `~/nexus/state/logs/nexus-YYYY-MM-DD.log` |
|
|
191
|
+
| Session files | `~/nexus/state/sessions/` |
|
|
192
|
+
| Media cache | `~/nexus/state/media/` |
|
|
193
|
+
| Credentials | `~/nexus/state/credentials/` |
|
|
194
|
+
|
|
195
|
+
## Health Check
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Is the gateway reachable?
|
|
199
|
+
nexus health --json
|
|
200
|
+
|
|
201
|
+
# Is something listening on the default port?
|
|
202
|
+
lsof -nP -iTCP:18789 -sTCP:LISTEN
|
|
203
|
+
|
|
204
|
+
# Recent activity
|
|
205
|
+
tail -20 ~/nexus/state/logs/nexus-*.log
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Reset Everything
|
|
209
|
+
|
|
210
|
+
Nuclear option:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
trash ~/nexus/state
|
|
214
|
+
nexus login # re-pair WhatsApp
|
|
215
|
+
nexus gateway # start the Gateway again
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
⚠️ This loses all sessions and requires re-pairing WhatsApp.
|
|
219
|
+
|
|
220
|
+
## Getting Help
|
|
221
|
+
|
|
222
|
+
1. Check logs first: `~/nexus/state/logs/` (default: `nexus-YYYY-MM-DD.log`, or your configured `logging.file`)
|
|
223
|
+
2. Search existing issues on GitHub
|
|
224
|
+
3. Open a new issue with:
|
|
225
|
+
- NEXUS version
|
|
226
|
+
- Relevant log snippets
|
|
227
|
+
- Steps to reproduce
|
|
228
|
+
- Your config (redact secrets!)
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
*"Have you tried turning it off and on again?"* — Every IT person ever
|
|
233
|
+
|
|
234
|
+
🦞🔧
|
|
235
|
+
|
|
236
|
+
### Browser Not Starting (Linux)
|
|
237
|
+
|
|
238
|
+
If you see `"Failed to start Chrome CDP on port 18800"`:
|
|
239
|
+
|
|
240
|
+
**Most likely cause:** Snap-packaged Chromium on Ubuntu.
|
|
241
|
+
|
|
242
|
+
**Quick fix:** Install Google Chrome instead:
|
|
243
|
+
```bash
|
|
244
|
+
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
|
245
|
+
sudo dpkg -i google-chrome-stable_current_amd64.deb
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Then set in config:
|
|
249
|
+
```json
|
|
250
|
+
{
|
|
251
|
+
"browser": {
|
|
252
|
+
"executablePath": "/usr/bin/google-chrome-stable"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Full guide:** See [browser-linux-troubleshooting](https://docs.nexus.bot/browser-linux-troubleshooting)
|
package/docs/tui.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Terminal UI (TUI) for Nexus via the Gateway"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a terminal UI that connects to the Gateway from any machine
|
|
5
|
+
- You are debugging the TUI client or Gateway chat stream
|
|
6
|
+
---
|
|
7
|
+
# TUI (Gateway chat client)
|
|
8
|
+
|
|
9
|
+
Updated: 2026-01-03
|
|
10
|
+
|
|
11
|
+
## What it is
|
|
12
|
+
- A terminal UI that connects to the Gateway WebSocket and speaks the same chat APIs as WebChat.
|
|
13
|
+
- Uses Gateway agent events for tool cards while streaming responses.
|
|
14
|
+
- Works locally (loopback) or remotely (Tailscale/SSH tunnel) without running a separate agent process.
|
|
15
|
+
|
|
16
|
+
## Run
|
|
17
|
+
```bash
|
|
18
|
+
nexus tui
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Remote
|
|
22
|
+
```bash
|
|
23
|
+
nexus tui --url ws://127.0.0.1:18789 --token <gateway-token>
|
|
24
|
+
```
|
|
25
|
+
Use SSH tunneling or Tailscale to reach the Gateway WS.
|
|
26
|
+
|
|
27
|
+
## Options
|
|
28
|
+
- `--url <url>`: Gateway WebSocket URL (defaults to config `gateway.remote.url` or `ws://127.0.0.1:18789`).
|
|
29
|
+
- `--token <token>`: Gateway token (if required).
|
|
30
|
+
- `--password <password>`: Gateway password (if required).
|
|
31
|
+
- `--session <key>`: Session key (default: `main`, or `global` when scope is global).
|
|
32
|
+
- `--deliver`: Deliver assistant replies to the provider (default off).
|
|
33
|
+
- `--thinking <level>`: Override thinking level for sends.
|
|
34
|
+
- `--timeout-ms <ms>`: Agent timeout in ms (default 30000).
|
|
35
|
+
- `--history-limit <n>`: History entries to load (default 200).
|
|
36
|
+
|
|
37
|
+
## Controls
|
|
38
|
+
- Enter: send message
|
|
39
|
+
- Esc: abort active run
|
|
40
|
+
- Ctrl+C: clear input (press twice to exit)
|
|
41
|
+
- Ctrl+D: exit
|
|
42
|
+
- Ctrl+L: model picker
|
|
43
|
+
- Ctrl+P: session picker
|
|
44
|
+
- Ctrl+O: toggle tool output expansion
|
|
45
|
+
- Ctrl+T: toggle thinking visibility
|
|
46
|
+
|
|
47
|
+
## Slash commands
|
|
48
|
+
- `/help`
|
|
49
|
+
- `/status`
|
|
50
|
+
- `/session <key>` (or `/sessions`)
|
|
51
|
+
- `/model <provider/model>` (or `/model list`, `/models`)
|
|
52
|
+
- `/think <off|minimal|low|medium|high>`
|
|
53
|
+
- `/verbose <on|off>`
|
|
54
|
+
- `/elevated <on|off>`
|
|
55
|
+
- `/elev <on|off>`
|
|
56
|
+
- `/activation <mention|always>`
|
|
57
|
+
- `/deliver <on|off>`
|
|
58
|
+
- `/new` or `/reset`
|
|
59
|
+
- `/compact [instructions]`
|
|
60
|
+
- `/abort`
|
|
61
|
+
- `/settings`
|
|
62
|
+
- `/exit`
|
|
63
|
+
|
|
64
|
+
## Notes
|
|
65
|
+
- The TUI shows Gateway chat deltas (`event: chat`) and agent tool events.
|
|
66
|
+
- It registers as a Gateway client with `mode: "tui"` for presence and debugging.
|
|
67
|
+
|
|
68
|
+
## Files
|
|
69
|
+
- CLI: `src/cli/tui-cli.ts`
|
|
70
|
+
- Runner: `src/tui/tui.ts`
|
|
71
|
+
- Gateway client: `src/tui/gateway-chat.ts`
|
package/docs/typebox.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "TypeBox schemas as the single source of truth for the gateway protocol"
|
|
3
|
+
read_when:
|
|
4
|
+
- Updating protocol schemas or codegen
|
|
5
|
+
---
|
|
6
|
+
# TypeBox as Protocol Source of Truth
|
|
7
|
+
|
|
8
|
+
Last updated: 2025-12-09
|
|
9
|
+
|
|
10
|
+
We use TypeBox schemas in `src/gateway/protocol/schema.ts` as the single source of truth for the Gateway control plane (connect/req/res/event frames and payloads). All derived artifacts should be generated from these schemas, not edited by hand.
|
|
11
|
+
|
|
12
|
+
## Current pipeline
|
|
13
|
+
|
|
14
|
+
- **TypeBox → JSON Schema**: `pnpm protocol:gen` writes `dist/protocol.schema.json` (draft-07) and runs AJV in the server tests.
|
|
15
|
+
- **TypeBox → Swift**: `pnpm protocol:gen:swift` generates `apps/macos/Sources/NexusProtocol/GatewayModels.swift`.
|
|
16
|
+
|
|
17
|
+
## Problem
|
|
18
|
+
|
|
19
|
+
- We want strong typing in Swift, including a sealed `GatewayFrame` enum with a discriminator and a forward-compatible `unknown` case.
|
|
20
|
+
|
|
21
|
+
## Preferred plan (next step)
|
|
22
|
+
|
|
23
|
+
- Add a small, custom Swift generator driven directly by the TypeBox schemas:
|
|
24
|
+
- Emit a sealed `enum GatewayFrame: Codable { case req(RequestFrame), res(ResponseFrame), event(EventFrame) }`.
|
|
25
|
+
- Emit strongly typed payload structs/enums (`ConnectParams`, `HelloOk`, `RequestFrame`, `ResponseFrame`, `EventFrame`, `PresenceEntry`, `Snapshot`, `StateVersion`, `ErrorShape`, `AgentEvent`, `TickEvent`, `ShutdownEvent`, `SendParams`, `AgentParams`, `ErrorCode`, `PROTOCOL_VERSION`).
|
|
26
|
+
- Custom `init(from:)` / `encode(to:)` enforces the `type` discriminator and can include an `unknown` case for forward compatibility.
|
|
27
|
+
- Wire a new script (e.g., `pnpm protocol:gen:swift`) into `protocol:check` so CI fails if the generated Swift is stale.
|
|
28
|
+
|
|
29
|
+
Why this path:
|
|
30
|
+
- Single source of truth stays TypeBox; no new IDL to maintain.
|
|
31
|
+
- Predictable, strongly typed Swift (no optional soup).
|
|
32
|
+
- Small deterministic codegen (~150–200 LOC script) we control.
|
|
33
|
+
|
|
34
|
+
## Alternative (if we want off-the-shelf codegen)
|
|
35
|
+
|
|
36
|
+
- Wrap the existing JSON Schema into an OpenAPI 3.1 doc (auto-generated) and use **swift-openapi-generator** or **openapi-generator swift5**. More moving parts, but also yields enums with discriminator support. Keep this as a fallback if we don’t want a custom emitter.
|
|
37
|
+
|
|
38
|
+
## Action items
|
|
39
|
+
|
|
40
|
+
- Implement `protocol:gen:swift` that reads the TypeBox schemas and emits the sealed Swift enum + payload structs.
|
|
41
|
+
- Update `protocol:check` to include the Swift generator output in the diff check.
|
|
42
|
+
- Remove quicktype output once the custom generator is in place (or keep it for docs only).
|
package/docs/updating.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Updating Nexus safely (npm or source), plus rollback strategy"
|
|
3
|
+
read_when:
|
|
4
|
+
- Updating Nexus
|
|
5
|
+
- Something breaks after an update
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Updating
|
|
9
|
+
|
|
10
|
+
Nexus is moving fast (pre “1.0”). Treat updates like shipping infra: update → run checks → restart → verify.
|
|
11
|
+
|
|
12
|
+
## Before you update
|
|
13
|
+
|
|
14
|
+
- Know how you installed: **npm** (global) vs **from source** (git clone).
|
|
15
|
+
- Know how your Gateway is running: **foreground terminal** vs **supervised service** (launchd/systemd/Scheduled Task).
|
|
16
|
+
- Snapshot your tailoring:
|
|
17
|
+
- Config: `~/nexus/state/nexus.json`
|
|
18
|
+
- Credentials: `~/nexus/state/credentials/`
|
|
19
|
+
- Workspace: `~/nexus`
|
|
20
|
+
|
|
21
|
+
## Update (npm install)
|
|
22
|
+
|
|
23
|
+
Global install (pick one):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm i -g nexus@latest
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pnpm add -g nexus@latest
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Then:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
nexus doctor
|
|
37
|
+
nexus gateway restart
|
|
38
|
+
nexus health
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Notes:
|
|
42
|
+
- If your Gateway runs as a service, `nexus gateway restart` is preferred over killing PIDs.
|
|
43
|
+
- If you’re pinned to a specific version, see “Rollback / pinning” below.
|
|
44
|
+
|
|
45
|
+
## Update (from source)
|
|
46
|
+
|
|
47
|
+
From the repo checkout:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git pull
|
|
51
|
+
pnpm install
|
|
52
|
+
pnpm build
|
|
53
|
+
pnpm ui:install
|
|
54
|
+
pnpm ui:build
|
|
55
|
+
pnpm nexus doctor
|
|
56
|
+
pnpm nexus health
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Notes:
|
|
60
|
+
- `pnpm build` matters when you run the packaged `nexus` binary (`dist/entry.js`) or use Node to run `dist/`.
|
|
61
|
+
- If you run directly from TypeScript (`pnpm nexus ...` / `bun run nexus ...`), a rebuild is usually unnecessary, but **config migrations still apply** → run doctor.
|
|
62
|
+
|
|
63
|
+
## Always run: `nexus doctor`
|
|
64
|
+
|
|
65
|
+
Doctor is the “safe update” command. It’s intentionally boring: repair + migrate + warn.
|
|
66
|
+
|
|
67
|
+
Typical things it does:
|
|
68
|
+
- Migrate deprecated config keys / legacy config file locations.
|
|
69
|
+
- Audit DM policies and warn on risky “open” settings.
|
|
70
|
+
- Check Gateway health and can offer to restart.
|
|
71
|
+
- Detect and migrate older gateway services (launchd/systemd/schtasks) to current Nexus services.
|
|
72
|
+
- On Linux, ensure systemd user lingering (so the Gateway survives logout).
|
|
73
|
+
|
|
74
|
+
Details: https://docs.nexus.bot/doctor
|
|
75
|
+
|
|
76
|
+
## Start / stop / restart the Gateway
|
|
77
|
+
|
|
78
|
+
CLI (works regardless of OS):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
nexus gateway stop
|
|
82
|
+
nexus gateway restart
|
|
83
|
+
nexus gateway --port 18789
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
If you’re supervised:
|
|
87
|
+
- macOS launchd (app-bundled LaunchAgent): `launchctl kickstart -k gui/$UID/com.nexus.gateway`
|
|
88
|
+
- Linux systemd user service: `systemctl --user restart nexus-gateway.service`
|
|
89
|
+
- Windows: restart the `Nexus Gateway` Scheduled Task (Task Scheduler)
|
|
90
|
+
|
|
91
|
+
Runbook + exact service labels: https://docs.nexus.bot/gateway
|
|
92
|
+
|
|
93
|
+
## Rollback / pinning (when something breaks)
|
|
94
|
+
|
|
95
|
+
### Pin (npm)
|
|
96
|
+
|
|
97
|
+
Install a known-good version:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm i -g nexus@2026.1.5-3
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Then restart + re-run doctor:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
nexus doctor
|
|
107
|
+
nexus gateway restart
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Pin (source) by date
|
|
111
|
+
|
|
112
|
+
Pick a commit from a date (example: “state of main as of 2026-01-01”):
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
git fetch origin
|
|
116
|
+
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Then reinstall deps + restart:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
pnpm install
|
|
123
|
+
pnpm build
|
|
124
|
+
pnpm nexus gateway restart
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
If you want to go back to latest later:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git checkout main
|
|
131
|
+
git pull
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## If you’re stuck
|
|
135
|
+
|
|
136
|
+
- Run `nexus doctor` again and read the output carefully (it often tells you the fix).
|
|
137
|
+
- Check: https://docs.nexus.bot/troubleshooting
|
|
138
|
+
- Ask in Discord: https://discord.gg/nexus
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Nexus Usage Cloud Aggregation Spec (Draft)
|
|
2
|
+
|
|
3
|
+
This spec defines the anonymized usage event schema and the local upload
|
|
4
|
+
batching mechanism. It is designed to preserve ordering while minimizing
|
|
5
|
+
privacy risk.
|
|
6
|
+
|
|
7
|
+
## Goals
|
|
8
|
+
|
|
9
|
+
- Aggregate usage patterns across users without storing PII.
|
|
10
|
+
- Preserve event order within a session.
|
|
11
|
+
- Allow local-only operation by default (opt-in for upload).
|
|
12
|
+
- Support backfill from local event logs.
|
|
13
|
+
|
|
14
|
+
## Non-Goals
|
|
15
|
+
|
|
16
|
+
- Rich content capture (no args, no file paths).
|
|
17
|
+
- Per-user personalization in the cloud.
|
|
18
|
+
- Any biometric, location, or personal identifiers.
|
|
19
|
+
|
|
20
|
+
## Anonymization Model
|
|
21
|
+
|
|
22
|
+
### Identifiers
|
|
23
|
+
|
|
24
|
+
- `anon_user_id`: stable random UUID stored locally.
|
|
25
|
+
- `anon_session_id`: SHA-256 of `(anon_salt + session_id)`.
|
|
26
|
+
- `anon_salt`: local-only random secret. Never uploaded.
|
|
27
|
+
|
|
28
|
+
### Data Removed
|
|
29
|
+
|
|
30
|
+
- Command arguments
|
|
31
|
+
- File paths
|
|
32
|
+
- Freeform text
|
|
33
|
+
- Secrets or tokens
|
|
34
|
+
|
|
35
|
+
### Allowed Fields
|
|
36
|
+
|
|
37
|
+
- `command_path` (e.g., `status`, `skills search`)
|
|
38
|
+
- `tool_name` (e.g., `run_terminal_cmd`)
|
|
39
|
+
- `event_type`, `source`, `seq`, `ts`
|
|
40
|
+
- `invocation_kind` (optional)
|
|
41
|
+
|
|
42
|
+
## Upload Event Schema (JSON)
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"schema_version": 1,
|
|
47
|
+
"anon_user_id": "uuid",
|
|
48
|
+
"anon_session_id": "sha256",
|
|
49
|
+
"ts": 1712345678901,
|
|
50
|
+
"seq": 12,
|
|
51
|
+
"source": "nexus_cli",
|
|
52
|
+
"event_type": "command_finished",
|
|
53
|
+
"command_path": "status",
|
|
54
|
+
"tool_name": "run_terminal_cmd",
|
|
55
|
+
"tool_phase": "start",
|
|
56
|
+
"invocation_kind": "node_dist",
|
|
57
|
+
"status": "ok"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Batch Schema (JSON)
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"batch_id": "uuid",
|
|
66
|
+
"generated_at": 1712345680000,
|
|
67
|
+
"schema_version": 1,
|
|
68
|
+
"anon_user_id": "uuid",
|
|
69
|
+
"events": [ ... ]
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Upload Pipeline (Local)
|
|
74
|
+
|
|
75
|
+
1. Read `~/nexus/state/events/*.jsonl`
|
|
76
|
+
2. Filter to allowed event types:
|
|
77
|
+
- `command_started|finished|failed`
|
|
78
|
+
- `agent_event` with `stream=tool` and `phase=start`
|
|
79
|
+
3. Transform into upload events:
|
|
80
|
+
- anonymize `session_id`
|
|
81
|
+
- drop args and freeform content
|
|
82
|
+
4. Write to outbox:
|
|
83
|
+
- `~/nexus/state/events-outbox/usage-batch-<ts>-<id>.json`
|
|
84
|
+
5. Upload outbox file to cloud endpoint
|
|
85
|
+
|
|
86
|
+
### Cursor State
|
|
87
|
+
|
|
88
|
+
An upload state file tracks the last processed event:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
~/nexus/state/usage/upload-state.json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Fields:
|
|
95
|
+
- `cursor_ts`
|
|
96
|
+
- `cursor_id`
|
|
97
|
+
- `anon_id`
|
|
98
|
+
- `anon_salt`
|
|
99
|
+
|
|
100
|
+
## Configuration
|
|
101
|
+
|
|
102
|
+
Environment variables:
|
|
103
|
+
|
|
104
|
+
- `NEXUS_USAGE_UPLOAD_URL` (required to upload)
|
|
105
|
+
- `NEXUS_USAGE_UPLOAD_TOKEN` (optional bearer token)
|
|
106
|
+
- `NEXUS_USAGE_OUTBOX_DIR` (optional override)
|
|
107
|
+
|
|
108
|
+
Disable upload:
|
|
109
|
+
- Do not set `NEXUS_USAGE_UPLOAD_URL`
|
|
110
|
+
|
|
111
|
+
Disable event log entirely:
|
|
112
|
+
- `NEXUS_EVENT_LOG=0`
|
|
113
|
+
|
|
114
|
+
## CLI Surface
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
nexus usage upload --dry-run --json
|
|
118
|
+
nexus usage upload --limit 500
|
|
119
|
+
nexus usage upload --only-flush
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Server Requirements
|
|
123
|
+
|
|
124
|
+
The upload endpoint should:
|
|
125
|
+
- accept JSON batches
|
|
126
|
+
- validate schema_version
|
|
127
|
+
- respond 2xx on success
|
|
128
|
+
|
|
129
|
+
## Privacy Notes
|
|
130
|
+
|
|
131
|
+
- `anon_user_id` is local-only and never reversible.
|
|
132
|
+
- `anon_session_id` is salted; a single session cannot be linked across devices.
|
|
133
|
+
- If the user opts out, the outbox remains empty.
|