@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,277 @@
|
|
|
1
|
+
# Nexus Home Userspace
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Your Nexus home userspace is a portable, user-owned workspace at `~/nexus/home` that contains your customizations, memory, and projects. This directory is designed to be version-controlled with git and backed up to a private remote repository.
|
|
6
|
+
|
|
7
|
+
## Directory Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
~/nexus/home/
|
|
11
|
+
├── .git/ # Git repository (created by nexus init)
|
|
12
|
+
├── .gitignore # Sensible defaults (created by nexus init)
|
|
13
|
+
├── memory/ # Daily notes and memory (user-created)
|
|
14
|
+
├── .intent/ # Intent layer for life/work/projects (user-created)
|
|
15
|
+
├── skills/ # Workspace skill overrides and custom skills
|
|
16
|
+
└── projects/ # Independent git repos for your projects
|
|
17
|
+
└── project-name/ # Each project is its own git repo
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Identity, credentials, and agent state live under `~/nexus/state/`.
|
|
21
|
+
|
|
22
|
+
## Git Setup
|
|
23
|
+
|
|
24
|
+
### Initial Setup
|
|
25
|
+
|
|
26
|
+
When you run `nexus init`, Nexus automatically:
|
|
27
|
+
1. Creates the `~/nexus/home` directory structure
|
|
28
|
+
2. Initializes a git repository with `git init`
|
|
29
|
+
3. Creates a `.gitignore` file with sensible defaults
|
|
30
|
+
|
|
31
|
+
### Adding a Git Remote
|
|
32
|
+
|
|
33
|
+
To back up your home userspace to a private repository:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cd ~/nexus/home
|
|
37
|
+
|
|
38
|
+
# Add your private repository as the remote
|
|
39
|
+
git remote add origin git@github.com:yourusername/nexus-home.git
|
|
40
|
+
|
|
41
|
+
# Or use HTTPS
|
|
42
|
+
git remote add origin https://github.com/yourusername/nexus-home.git
|
|
43
|
+
|
|
44
|
+
# Make your first commit
|
|
45
|
+
git add .
|
|
46
|
+
git commit -m "Initial Nexus home setup"
|
|
47
|
+
|
|
48
|
+
# Push to remote
|
|
49
|
+
git push -u origin main
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Recommended Remote Options
|
|
53
|
+
|
|
54
|
+
- **GitHub**: Create a private repository at https://github.com/new
|
|
55
|
+
- **GitLab**: Create a private project at https://gitlab.com/projects/new
|
|
56
|
+
- **Gitea/Forgejo**: Self-hosted git server for complete privacy
|
|
57
|
+
- **Company Git**: Use your organization's internal git server
|
|
58
|
+
|
|
59
|
+
**Important**: Keep this repository **private** as it may contain personal information and preferences.
|
|
60
|
+
|
|
61
|
+
## What to Commit vs Gitignore
|
|
62
|
+
|
|
63
|
+
### ✅ Safe to Commit
|
|
64
|
+
|
|
65
|
+
These files are designed to be version-controlled:
|
|
66
|
+
|
|
67
|
+
- `memory/` directory (daily notes, agent memory)
|
|
68
|
+
- `.intent/` directory (intent layer artifacts)
|
|
69
|
+
- `skills/` directory (custom skills and overrides)
|
|
70
|
+
- Build/config files specific to your workflow
|
|
71
|
+
|
|
72
|
+
### ❌ Should Be Gitignored
|
|
73
|
+
|
|
74
|
+
The default `.gitignore` already excludes:
|
|
75
|
+
|
|
76
|
+
- `node_modules/`, `venv/`, `__pycache__/` (dependencies)
|
|
77
|
+
- `*.log`, `*.pyc`, `*.pyo` (build artifacts)
|
|
78
|
+
- `.DS_Store`, `Thumbs.db` (OS files)
|
|
79
|
+
- `*.key`, `*.pem`, `*.cert` (secrets)
|
|
80
|
+
- `.env`, `.env.*` (environment files with secrets)
|
|
81
|
+
- Editor files (`.vscode/`, `.idea/`, `*.swp`)
|
|
82
|
+
|
|
83
|
+
### ⚠️ Projects Directory
|
|
84
|
+
|
|
85
|
+
The `projects/` directory contains independent git repositories. You have two options:
|
|
86
|
+
|
|
87
|
+
**Option 1: Gitignore (default)**
|
|
88
|
+
```gitignore
|
|
89
|
+
# Add to .gitignore
|
|
90
|
+
projects/*
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Each project maintains its own git history and remotes. You manage them independently.
|
|
94
|
+
|
|
95
|
+
**Option 2: Git Submodules**
|
|
96
|
+
```bash
|
|
97
|
+
# Explicitly track specific projects as submodules
|
|
98
|
+
git submodule add git@github.com:you/project-a.git projects/project-a
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
This embeds project commits in your home repo, making it easier to restore exact versions.
|
|
102
|
+
|
|
103
|
+
**Recommendation**: Start with Option 1 (gitignore). Only use submodules if you need strict version pinning.
|
|
104
|
+
|
|
105
|
+
## Backup Strategy
|
|
106
|
+
|
|
107
|
+
### Regular Backups
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Daily/weekly routine
|
|
111
|
+
cd ~/nexus/home
|
|
112
|
+
git add .
|
|
113
|
+
git commit -m "Update memory and customizations $(date +%Y-%m-%d)"
|
|
114
|
+
git push
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Automated Backups
|
|
118
|
+
|
|
119
|
+
Add to your crontab for automatic daily backups:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Edit crontab
|
|
123
|
+
crontab -e
|
|
124
|
+
|
|
125
|
+
# Add this line (backup at 2 AM daily)
|
|
126
|
+
0 2 * * * cd ~/nexus/home && git add . && git commit -m "Auto backup $(date +\%Y-\%m-\%d)" && git push origin main
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Or use a git-based backup tool like [git-sync](https://github.com/simonthum/git-sync) for continuous syncing.
|
|
130
|
+
|
|
131
|
+
### State Directory Backups
|
|
132
|
+
|
|
133
|
+
The state directory `~/nexus/state` contains:
|
|
134
|
+
- Credentials and tokens
|
|
135
|
+
- Session transcripts
|
|
136
|
+
- Runtime caches
|
|
137
|
+
- Provider configurations
|
|
138
|
+
|
|
139
|
+
**This is NOT automatically git-tracked** for security reasons. To back it up:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Manual backup (encrypted recommended)
|
|
143
|
+
tar -czf nexus-state-backup-$(date +%Y%m%d).tar.gz -C ~/nexus state
|
|
144
|
+
|
|
145
|
+
# Or use rsync for incremental backups
|
|
146
|
+
rsync -av ~/nexus/state/ /path/to/backup/nexus-state/
|
|
147
|
+
|
|
148
|
+
# Encrypted backup with gpg
|
|
149
|
+
tar -czf - -C ~/nexus state | gpg --symmetric --cipher-algo AES256 > nexus-state-backup.tar.gz.gpg
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Important**: Keep state backups secure as they may contain authentication tokens.
|
|
153
|
+
|
|
154
|
+
## Restoring on a New Machine
|
|
155
|
+
|
|
156
|
+
### 1. Install Nexus Core
|
|
157
|
+
|
|
158
|
+
Install the Nexus CLI on your new machine (via package manager or build from source).
|
|
159
|
+
|
|
160
|
+
### 2. Clone Your Home Repo
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Clone your home userspace
|
|
164
|
+
git clone git@github.com:yourusername/nexus-home.git ~/nexus/home
|
|
165
|
+
cd ~/nexus/home
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 3. Initialize State Directory
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Create state directory
|
|
172
|
+
mkdir -p ~/nexus/state
|
|
173
|
+
|
|
174
|
+
# Restore state from backup (optional)
|
|
175
|
+
tar -xzf nexus-state-backup.tar.gz -C ~/nexus
|
|
176
|
+
|
|
177
|
+
# Or restore from encrypted backup
|
|
178
|
+
gpg --decrypt nexus-state-backup.tar.gz.gpg | tar -xzf - -C ~/nexus
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 4. Re-authenticate Providers
|
|
182
|
+
|
|
183
|
+
If you didn't restore state, re-authenticate with providers:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
nexus login discord
|
|
187
|
+
nexus login telegram
|
|
188
|
+
# etc.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 5. Verify Setup
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Check that everything is working
|
|
195
|
+
nexus doctor
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Multi-Machine Sync
|
|
199
|
+
|
|
200
|
+
If you work on multiple machines, keep your home userspace in sync:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# On Machine A
|
|
204
|
+
cd ~/nexus/home
|
|
205
|
+
git pull --rebase # Get latest changes
|
|
206
|
+
# ... make changes ...
|
|
207
|
+
git add .
|
|
208
|
+
git commit -m "Update from Machine A"
|
|
209
|
+
git push
|
|
210
|
+
|
|
211
|
+
# On Machine B
|
|
212
|
+
cd ~/nexus/home
|
|
213
|
+
git pull --rebase # Get changes from Machine A
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Best Practice**: Always `git pull --rebase` before starting work to avoid merge conflicts.
|
|
217
|
+
|
|
218
|
+
## Security Considerations
|
|
219
|
+
|
|
220
|
+
1. **Private Repository**: Keep your home repo private. It contains personal information and preferences.
|
|
221
|
+
|
|
222
|
+
2. **No Secrets in Home**: Never commit secrets (API keys, tokens, passwords) to `~/nexus/home`. Use the state directory (`~/nexus/state`) for secrets, or use environment variables.
|
|
223
|
+
|
|
224
|
+
3. **Review Before Commit**: Check what you're committing:
|
|
225
|
+
```bash
|
|
226
|
+
git status
|
|
227
|
+
git diff
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
4. **Sensitive Files**: If you accidentally commit sensitive data, use tools like [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) or `git filter-repo` to remove it from history.
|
|
231
|
+
|
|
232
|
+
5. **State Backups**: Encrypt state directory backups since they contain credentials.
|
|
233
|
+
|
|
234
|
+
## Troubleshooting
|
|
235
|
+
|
|
236
|
+
### Git Not Initialized
|
|
237
|
+
|
|
238
|
+
If `git init` failed during `nexus init`:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
cd ~/nexus/home
|
|
242
|
+
git init
|
|
243
|
+
git add .
|
|
244
|
+
git commit -m "Initial commit"
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Lost Remote Connection
|
|
248
|
+
|
|
249
|
+
If you need to change or re-add the remote:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
cd ~/nexus/home
|
|
253
|
+
git remote remove origin
|
|
254
|
+
git remote add origin git@github.com:yourusername/new-repo.git
|
|
255
|
+
git push -u origin main
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Merge Conflicts
|
|
259
|
+
|
|
260
|
+
If you have conflicts after `git pull`:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# View conflicts
|
|
264
|
+
git status
|
|
265
|
+
|
|
266
|
+
# Edit conflicting files, then:
|
|
267
|
+
git add .
|
|
268
|
+
git commit -m "Resolve merge conflicts"
|
|
269
|
+
git push
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## See Also
|
|
273
|
+
|
|
274
|
+
- [ADR 003: Nexus Home Workspace and State Layout](../.intent/decisions/003-nexus-home-workspace-and-state-layout.md)
|
|
275
|
+
- [Three-Layer Architecture](../.intent/decisions/004-three-layer-architecture.md)
|
|
276
|
+
- `nexus init --help` - Initialize home workspace
|
|
277
|
+
- `nexus reset --help` - Reset workspace for testing
|
package/docs/hubs.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Hubs that link to every Nexus doc"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a complete map of the documentation
|
|
5
|
+
---
|
|
6
|
+
# Docs hubs
|
|
7
|
+
|
|
8
|
+
Use these hubs to discover every page, including deep dives and reference docs that don’t appear in the left nav.
|
|
9
|
+
|
|
10
|
+
## Start here
|
|
11
|
+
|
|
12
|
+
- [Index](https://docs.nexus.bot)
|
|
13
|
+
- [Onboarding](https://docs.nexus.bot/onboarding)
|
|
14
|
+
- [Wizard](https://docs.nexus.bot/wizard)
|
|
15
|
+
- [Setup](https://docs.nexus.bot/setup)
|
|
16
|
+
- [FAQ](https://docs.nexus.bot/faq)
|
|
17
|
+
- [Configuration](https://docs.nexus.bot/configuration)
|
|
18
|
+
- [Nexus (personal assistant)](https://docs.nexus.bot/nexus)
|
|
19
|
+
- [Lore](https://docs.nexus.bot/lore)
|
|
20
|
+
|
|
21
|
+
## Installation + distribution
|
|
22
|
+
|
|
23
|
+
- [Docker](https://docs.nexus.bot/docker)
|
|
24
|
+
- [Nix](https://docs.nexus.bot/nix)
|
|
25
|
+
|
|
26
|
+
## Core concepts
|
|
27
|
+
|
|
28
|
+
- [Architecture](https://docs.nexus.bot/architecture)
|
|
29
|
+
- [Agent runtime](https://docs.nexus.bot/agent)
|
|
30
|
+
- [Agent loop](https://docs.nexus.bot/agent-loop)
|
|
31
|
+
- [Multi-agent routing](https://docs.nexus.bot/multi-agent)
|
|
32
|
+
- [Sessions](https://docs.nexus.bot/session)
|
|
33
|
+
- [Sessions (alias)](https://docs.nexus.bot/sessions)
|
|
34
|
+
- [Session tools](https://docs.nexus.bot/session-tool)
|
|
35
|
+
- [Queue](https://docs.nexus.bot/queue)
|
|
36
|
+
- [RPC adapters](https://docs.nexus.bot/rpc)
|
|
37
|
+
- [TypeBox schemas](https://docs.nexus.bot/typebox)
|
|
38
|
+
- [Presence](https://docs.nexus.bot/presence)
|
|
39
|
+
- [Discovery + transports](https://docs.nexus.bot/discovery)
|
|
40
|
+
- [Bonjour](https://docs.nexus.bot/bonjour)
|
|
41
|
+
- [Channel routing](https://docs.nexus.bot/channel-routing)
|
|
42
|
+
- [Groups](https://docs.nexus.bot/groups)
|
|
43
|
+
- [Group messages](https://docs.nexus.bot/group-messages)
|
|
44
|
+
|
|
45
|
+
## Providers + ingress
|
|
46
|
+
|
|
47
|
+
- [WhatsApp](https://docs.nexus.bot/whatsapp)
|
|
48
|
+
- [Telegram](https://docs.nexus.bot/telegram)
|
|
49
|
+
- [Telegram (grammY notes)](https://docs.nexus.bot/grammy)
|
|
50
|
+
- [Slack](https://docs.nexus.bot/slack)
|
|
51
|
+
- [Discord](https://docs.nexus.bot/discord)
|
|
52
|
+
- [Signal](https://docs.nexus.bot/signal)
|
|
53
|
+
- [iMessage](https://docs.nexus.bot/imessage)
|
|
54
|
+
- [WebChat](https://docs.nexus.bot/webchat)
|
|
55
|
+
- [Webhooks](https://docs.nexus.bot/webhook)
|
|
56
|
+
- [Gmail Pub/Sub](https://docs.nexus.bot/gmail-pubsub)
|
|
57
|
+
|
|
58
|
+
## Gateway + operations
|
|
59
|
+
|
|
60
|
+
- [Gateway runbook](https://docs.nexus.bot/gateway)
|
|
61
|
+
- [Gateway pairing](https://docs.nexus.bot/gateway/pairing)
|
|
62
|
+
- [Gateway lock](https://docs.nexus.bot/gateway-lock)
|
|
63
|
+
- [Background process](https://docs.nexus.bot/background-process)
|
|
64
|
+
- [Health](https://docs.nexus.bot/health)
|
|
65
|
+
- [Heartbeat](https://docs.nexus.bot/heartbeat)
|
|
66
|
+
- [Doctor](https://docs.nexus.bot/doctor)
|
|
67
|
+
- [Logging](https://docs.nexus.bot/logging)
|
|
68
|
+
- [Dashboard](https://docs.nexus.bot/dashboard)
|
|
69
|
+
- [Control UI](https://docs.nexus.bot/control-ui)
|
|
70
|
+
- [Remote access](https://docs.nexus.bot/remote)
|
|
71
|
+
- [Remote gateway README](https://docs.nexus.bot/remote-gateway-readme)
|
|
72
|
+
- [Tailscale](https://docs.nexus.bot/tailscale)
|
|
73
|
+
- [Security](https://docs.nexus.bot/security)
|
|
74
|
+
- [Troubleshooting](https://docs.nexus.bot/troubleshooting)
|
|
75
|
+
|
|
76
|
+
## Tools + automation
|
|
77
|
+
|
|
78
|
+
- [Tools surface](https://docs.nexus.bot/tools)
|
|
79
|
+
- [Exec tool](https://docs.nexus.bot/exec)
|
|
80
|
+
- [Elevated mode](https://docs.nexus.bot/elevated)
|
|
81
|
+
- [Cron + wakeups](https://docs.nexus.bot/cron)
|
|
82
|
+
- [Thinking + verbose](https://docs.nexus.bot/thinking)
|
|
83
|
+
- [Models](https://docs.nexus.bot/models)
|
|
84
|
+
- [Agent send CLI](https://docs.nexus.bot/agent-send)
|
|
85
|
+
- [Terminal UI](https://docs.nexus.bot/tui)
|
|
86
|
+
- [Browser control](https://docs.nexus.bot/browser)
|
|
87
|
+
- [Browser (Linux troubleshooting)](https://docs.nexus.bot/browser-linux-troubleshooting)
|
|
88
|
+
|
|
89
|
+
## Nodes, media, voice
|
|
90
|
+
|
|
91
|
+
- [Nodes overview](https://docs.nexus.bot/nodes)
|
|
92
|
+
- [Camera](https://docs.nexus.bot/camera)
|
|
93
|
+
- [Images](https://docs.nexus.bot/images)
|
|
94
|
+
- [Audio](https://docs.nexus.bot/audio)
|
|
95
|
+
- [Location command](https://docs.nexus.bot/location-command)
|
|
96
|
+
- [Voice wake](https://docs.nexus.bot/voicewake)
|
|
97
|
+
- [Talk mode](https://docs.nexus.bot/talk)
|
|
98
|
+
|
|
99
|
+
## Platforms
|
|
100
|
+
|
|
101
|
+
- [macOS app overview](https://docs.nexus.bot/macos)
|
|
102
|
+
- [macOS dev setup](https://docs.nexus.bot/mac/dev-setup)
|
|
103
|
+
- [macOS menu bar](https://docs.nexus.bot/mac/menu-bar)
|
|
104
|
+
- [macOS voice wake](https://docs.nexus.bot/mac/voicewake)
|
|
105
|
+
- [macOS voice overlay](https://docs.nexus.bot/mac/voice-overlay)
|
|
106
|
+
- [macOS WebChat](https://docs.nexus.bot/mac/webchat)
|
|
107
|
+
- [macOS Canvas](https://docs.nexus.bot/mac/canvas)
|
|
108
|
+
- [macOS child process](https://docs.nexus.bot/mac/child-process)
|
|
109
|
+
- [macOS health](https://docs.nexus.bot/mac/health)
|
|
110
|
+
- [macOS icon](https://docs.nexus.bot/mac/icon)
|
|
111
|
+
- [macOS logging](https://docs.nexus.bot/mac/logging)
|
|
112
|
+
- [macOS permissions](https://docs.nexus.bot/mac/permissions)
|
|
113
|
+
- [macOS remote](https://docs.nexus.bot/mac/remote)
|
|
114
|
+
- [macOS signing](https://docs.nexus.bot/mac/signing)
|
|
115
|
+
- [macOS release](https://docs.nexus.bot/mac/release)
|
|
116
|
+
- [macOS bun gateway](https://docs.nexus.bot/mac/bun)
|
|
117
|
+
- [macOS XPC](https://docs.nexus.bot/mac/xpc)
|
|
118
|
+
- [macOS skills](https://docs.nexus.bot/mac/skills)
|
|
119
|
+
- [macOS Peekaboo plan](https://docs.nexus.bot/mac/peekaboo)
|
|
120
|
+
- [iOS node](https://docs.nexus.bot/ios)
|
|
121
|
+
- [Android node](https://docs.nexus.bot/android)
|
|
122
|
+
- [Windows app](https://docs.nexus.bot/windows)
|
|
123
|
+
- [Linux app](https://docs.nexus.bot/linux)
|
|
124
|
+
- [Web surfaces](https://docs.nexus.bot/web)
|
|
125
|
+
|
|
126
|
+
## Workspace + templates
|
|
127
|
+
|
|
128
|
+
- [Skills](https://docs.nexus.bot/skills)
|
|
129
|
+
- [Skills config](https://docs.nexus.bot/skills-config)
|
|
130
|
+
- [Default AGENTS](https://docs.nexus.bot/AGENTS.default)
|
|
131
|
+
- [Templates: AGENTS](https://docs.nexus.bot/templates/AGENTS)
|
|
132
|
+
- [Templates: BOOTSTRAP](https://docs.nexus.bot/templates/BOOTSTRAP)
|
|
133
|
+
- [Templates: IDENTITY](https://docs.nexus.bot/templates/IDENTITY)
|
|
134
|
+
- [Templates: SOUL](https://docs.nexus.bot/templates/SOUL)
|
|
135
|
+
- [Templates: TOOLS](https://docs.nexus.bot/templates/TOOLS)
|
|
136
|
+
- [Templates: USER](https://docs.nexus.bot/templates/USER)
|
|
137
|
+
|
|
138
|
+
## Experiments + proposals
|
|
139
|
+
|
|
140
|
+
- [Onboarding config protocol](https://docs.nexus.bot/onboarding-config-protocol)
|
|
141
|
+
- [Research: memory](https://docs.nexus.bot/research/memory)
|
|
142
|
+
- [Proposal: model config](https://docs.nexus.bot/proposals/model-config)
|
|
143
|
+
|
|
144
|
+
## Testing + release
|
|
145
|
+
|
|
146
|
+
- [Testing](https://docs.nexus.bot/test)
|
|
147
|
+
- [Release checklist](https://docs.nexus.bot/RELEASING)
|
|
148
|
+
- [Device models](https://docs.nexus.bot/device-models)
|
package/docs/images.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Image and media handling rules for send, gateway, and agent replies"
|
|
3
|
+
read_when:
|
|
4
|
+
- Modifying media pipeline or attachments
|
|
5
|
+
---
|
|
6
|
+
# Image & Media Support — 2025-12-05
|
|
7
|
+
|
|
8
|
+
NEXUS is now **web-only** (Baileys). This document captures the current media handling rules for send, gateway, and agent replies.
|
|
9
|
+
|
|
10
|
+
## Goals
|
|
11
|
+
- Send media with optional captions via `nexus send --media`.
|
|
12
|
+
- Allow auto-replies from the web inbox to include media alongside text.
|
|
13
|
+
- Keep per-type limits sane and predictable.
|
|
14
|
+
|
|
15
|
+
## CLI Surface
|
|
16
|
+
- `nexus send --media <path-or-url> [--message <caption>]`
|
|
17
|
+
- `--media` optional; caption can be empty for media-only sends.
|
|
18
|
+
- `--dry-run` prints the resolved payload; `--json` emits `{ provider, to, messageId, mediaUrl, caption }`.
|
|
19
|
+
|
|
20
|
+
## Web Provider Behavior
|
|
21
|
+
- Input: local file path **or** HTTP(S) URL.
|
|
22
|
+
- Flow: load into a Buffer, detect media kind, and build the correct payload:
|
|
23
|
+
- **Images:** resize & recompress to JPEG (max side 2048px) targeting `agent.mediaMaxMb` (default 5 MB), capped at 6 MB.
|
|
24
|
+
- **Audio/Voice/Video:** pass-through up to 16 MB; audio is sent as a voice note (`ptt: true`).
|
|
25
|
+
- **Documents:** anything else, up to 100 MB, with filename preserved when available.
|
|
26
|
+
- WhatsApp GIF-style playback: send an MP4 with `gifPlayback: true` (CLI: `--gif-playback`) so mobile clients loop inline.
|
|
27
|
+
- MIME detection prefers magic bytes, then headers, then file extension.
|
|
28
|
+
- Caption comes from `--message` or `reply.text`; empty caption is allowed.
|
|
29
|
+
- Logging: non-verbose shows `↩️`/`✅`; verbose includes size and source path/URL.
|
|
30
|
+
|
|
31
|
+
## Auto-Reply Pipeline
|
|
32
|
+
- `getReplyFromConfig` returns `{ text?, mediaUrl?, mediaUrls? }`.
|
|
33
|
+
- When media is present, the web sender resolves local paths or URLs using the same pipeline as `nexus send`.
|
|
34
|
+
- Multiple media entries are sent sequentially if provided.
|
|
35
|
+
|
|
36
|
+
## Inbound Media to Commands (Pi)
|
|
37
|
+
- When inbound web messages include media, NEXUS downloads to a temp file and exposes templating variables:
|
|
38
|
+
- `{{MediaUrl}}` pseudo-URL for the inbound media.
|
|
39
|
+
- `{{MediaPath}}` local temp path written before running the command.
|
|
40
|
+
- When a per-session Docker sandbox is enabled, inbound media is copied into the sandbox workspace and `MediaPath`/`MediaUrl` are rewritten to a relative path like `media/inbound/<filename>`.
|
|
41
|
+
- Audio transcription (if configured) runs before templating and can replace `Body` with the transcript.
|
|
42
|
+
|
|
43
|
+
## Limits & Errors
|
|
44
|
+
- Images: ~6 MB cap after recompression.
|
|
45
|
+
- Audio/voice/video: 16 MB cap; documents: 100 MB cap.
|
|
46
|
+
- Oversize or unreadable media → clear error in logs and the reply is skipped.
|
|
47
|
+
|
|
48
|
+
## Notes for Tests
|
|
49
|
+
- Cover send + reply flows for image/audio/document cases.
|
|
50
|
+
- Validate recompression for images (size bound) and voice-note flag for audio.
|
|
51
|
+
- Ensure multi-media replies fan out as sequential sends.
|
package/docs/imessage.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "iMessage support via imsg (JSON-RPC over stdio), setup, and chat_id routing"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up iMessage support
|
|
5
|
+
- Debugging iMessage send/receive
|
|
6
|
+
---
|
|
7
|
+
# iMessage (imsg)
|
|
8
|
+
|
|
9
|
+
Status: external CLI integration. No daemon.
|
|
10
|
+
|
|
11
|
+
## Model
|
|
12
|
+
- Nexus spawns `imsg rpc` as a child process.
|
|
13
|
+
- JSON-RPC runs over stdin/stdout (one JSON object per line).
|
|
14
|
+
- Gateway owns the process; no TCP port needed.
|
|
15
|
+
|
|
16
|
+
## Multi-account (Apple IDs)
|
|
17
|
+
|
|
18
|
+
iMessage “multi-account” in one Gateway process is not currently supported in a meaningful way:
|
|
19
|
+
- Messages accounts are owned by the signed-in macOS user session.
|
|
20
|
+
- `imsg` reads the local Messages DB and sends via that user’s configured services.
|
|
21
|
+
- There isn’t a robust “pick AppleID X as the sender” switch we can depend on.
|
|
22
|
+
|
|
23
|
+
### Practical approach: multiple gateways on multiple Macs/users
|
|
24
|
+
|
|
25
|
+
If you need two iMessage identities:
|
|
26
|
+
- Run one Gateway on each macOS user/machine that’s signed into the desired Apple ID.
|
|
27
|
+
- Connect to the desired Gateway remotely (Tailscale preferred; SSH tunnel is the universal fallback).
|
|
28
|
+
|
|
29
|
+
See:
|
|
30
|
+
- `docs/remote.md` (SSH tunnel to `127.0.0.1:18789`)
|
|
31
|
+
- `docs/discovery.md` (bridge vs SSH transport model)
|
|
32
|
+
|
|
33
|
+
### Could we do “iMessage over SSH” from a single Gateway?
|
|
34
|
+
|
|
35
|
+
Maybe, but it’s a new design:
|
|
36
|
+
- Outbound could theoretically pipe `imsg rpc` over SSH (stdio bridge).
|
|
37
|
+
- Inbound still needs a remote watcher (DB polling / event stream) and a transport back to the main Gateway.
|
|
38
|
+
|
|
39
|
+
That’s closer to “remote provider instances” (or “multi-gateway aggregation”) than a small config tweak.
|
|
40
|
+
|
|
41
|
+
## Requirements
|
|
42
|
+
- macOS with Messages signed in.
|
|
43
|
+
- Full Disk Access for Nexus + the `imsg` binary (Messages DB access).
|
|
44
|
+
- Automation permission for Messages when sending.
|
|
45
|
+
|
|
46
|
+
## Config
|
|
47
|
+
|
|
48
|
+
```json5
|
|
49
|
+
{
|
|
50
|
+
imessage: {
|
|
51
|
+
enabled: true,
|
|
52
|
+
cliPath: "imsg",
|
|
53
|
+
dbPath: "~/Library/Messages/chat.db",
|
|
54
|
+
dmPolicy: "pairing", // pairing | allowlist | open | disabled
|
|
55
|
+
allowFrom: ["+15555550123", "user@example.com", "chat_id:123"],
|
|
56
|
+
groupPolicy: "open",
|
|
57
|
+
groupAllowFrom: ["chat_id:123"],
|
|
58
|
+
includeAttachments: false,
|
|
59
|
+
mediaMaxMb: 16,
|
|
60
|
+
service: "auto",
|
|
61
|
+
region: "US"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Notes:
|
|
67
|
+
- `allowFrom` accepts handles (phone/email) or `chat_id:<id>` entries.
|
|
68
|
+
- Default: `imessage.dmPolicy="pairing"` — unknown DM senders get a pairing code (approve via `nexus pairing approve --provider imessage <code>`). `"open"` requires `allowFrom=["*"]`.
|
|
69
|
+
- `groupPolicy` controls group handling (`open|disabled|allowlist`).
|
|
70
|
+
- `groupAllowFrom` accepts the same entries as `allowFrom`.
|
|
71
|
+
- `service` defaults to `auto` (use `imessage` or `sms` to pin).
|
|
72
|
+
- `region` is only used for SMS targeting.
|
|
73
|
+
|
|
74
|
+
## Addressing / targets
|
|
75
|
+
|
|
76
|
+
Prefer `chat_id` for stable routing:
|
|
77
|
+
- `chat_id:123` (preferred)
|
|
78
|
+
- `chat_guid:...` (fallback)
|
|
79
|
+
- `chat_identifier:...` (fallback)
|
|
80
|
+
- direct handles: `imessage:+1555` / `sms:+1555` / `user@example.com`
|
|
81
|
+
|
|
82
|
+
List chats:
|
|
83
|
+
```
|
|
84
|
+
imsg chats --limit 20
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Group chat behavior
|
|
88
|
+
- Group messages set `ChatType=group`, `GroupSubject`, and `GroupMembers`.
|
|
89
|
+
- Group activation respects `imessage.groups."*".requireMention` and `routing.groupChat.mentionPatterns` (patterns are required to detect mentions on iMessage). When `imessage.groups` is set, it also acts as a group allowlist; include `"*"` to allow all groups.
|
|
90
|
+
- Replies go back to the same `chat_id` (group or direct).
|
|
91
|
+
|
|
92
|
+
## Troubleshooting
|
|
93
|
+
- `nexus gateway call providers.status --params '{"probe":true}'`
|
|
94
|
+
- Verify `imsg` is on PATH and has access to Messages DB.
|