@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,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Step-by-step release checklist for npm + macOS app"
|
|
3
|
+
read_when:
|
|
4
|
+
- Cutting a new npm release
|
|
5
|
+
- Cutting a new macOS app release
|
|
6
|
+
- Verifying metadata before publishing
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Release Checklist (npm + macOS)
|
|
10
|
+
|
|
11
|
+
Use `pnpm` (Node 22+) from the repo root. Keep the working tree clean before tagging/publishing.
|
|
12
|
+
|
|
13
|
+
1) **Version & metadata**
|
|
14
|
+
- [ ] Bump `package.json` version (e.g., `1.1.0`).
|
|
15
|
+
- [ ] Update CLI/version strings: `src/cli/program.ts` and the Baileys user agent in `src/provider-web.ts`.
|
|
16
|
+
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to `dist/index.js` for `nexus`.
|
|
17
|
+
- [ ] If dependencies changed, run `pnpm install` so `pnpm-lock.yaml` is current.
|
|
18
|
+
|
|
19
|
+
2) **Build & artifacts**
|
|
20
|
+
- [ ] If A2UI inputs changed, run `pnpm canvas:a2ui:bundle` and commit any updated `src/canvas-host/a2ui/a2ui.bundle.js`.
|
|
21
|
+
- [ ] `pnpm run build` (regenerates `dist/`).
|
|
22
|
+
- [ ] Optional: `npm pack --pack-destination /tmp` after the build; inspect the tarball contents and keep it handy for the GitHub release (do **not** commit it).
|
|
23
|
+
|
|
24
|
+
3) **Changelog & docs**
|
|
25
|
+
- [ ] Update `CHANGELOG.md` with user-facing highlights (create the file if missing); keep entries strictly descending by version.
|
|
26
|
+
- [ ] Ensure README examples/flags match current CLI behavior (notably new commands or options).
|
|
27
|
+
|
|
28
|
+
4) **Validation**
|
|
29
|
+
- [ ] `pnpm lint`
|
|
30
|
+
- [ ] `pnpm test` (or `pnpm test:coverage` if you need coverage output)
|
|
31
|
+
- [ ] `pnpm run build` (last sanity check after tests)
|
|
32
|
+
- [ ] `pnpm release:check` (verifies npm pack contents)
|
|
33
|
+
- [ ] `pnpm test:install:smoke` (Docker install smoke test; required before release)
|
|
34
|
+
- If the immediate previous npm release is known broken, set `NEXUS_INSTALL_SMOKE_PREVIOUS=<last-good-version>` or `NEXUS_INSTALL_SMOKE_SKIP_PREVIOUS=1` for the preinstall step.
|
|
35
|
+
- [ ] (Optional) Installer E2E (Docker, runs `curl -fsSL https://nexus.bot/install.sh | bash`, onboards, then runs real tool calls):
|
|
36
|
+
- `pnpm test:install:e2e:openai` (requires `OPENAI_API_KEY`)
|
|
37
|
+
- `pnpm test:install:e2e:anthropic` (requires `ANTHROPIC_API_KEY`)
|
|
38
|
+
- [ ] (Optional) Spot-check the web gateway if your changes affect send/receive paths.
|
|
39
|
+
|
|
40
|
+
5) **macOS app (Sparkle)**
|
|
41
|
+
- [ ] Build + sign the macOS app, then zip it for distribution.
|
|
42
|
+
- [ ] Generate the Sparkle appcast (HTML notes via `scripts/make_appcast.sh`) and update `appcast.xml`.
|
|
43
|
+
- [ ] Keep the app zip (and optional dSYM zip) ready to attach to the GitHub release.
|
|
44
|
+
- [ ] Follow [`docs/mac/release.md`](https://docs.nexus.bot/mac/release) for the exact commands and required env vars.
|
|
45
|
+
- `APP_BUILD` must be numeric + monotonic (no `-beta`) so Sparkle compares versions correctly.
|
|
46
|
+
- If notarizing, use the `nexus-notary` keychain profile created from App Store Connect API env vars (see [`docs/mac/release.md`](https://docs.nexus.bot/mac/release)).
|
|
47
|
+
|
|
48
|
+
6) **Publish (npm)**
|
|
49
|
+
- [ ] Confirm git status is clean; commit and push as needed.
|
|
50
|
+
- [ ] `npm login` (verify 2FA) if needed.
|
|
51
|
+
- [ ] `npm publish --access public` (use `--tag beta` for pre-releases).
|
|
52
|
+
- [ ] Verify the registry: `npm view nexus version` and `npx -y nexus@X.Y.Z --version` (or `--help`).
|
|
53
|
+
|
|
54
|
+
### Troubleshooting (notes from 2.0.0-beta2 release)
|
|
55
|
+
- **npm pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/Nexus.app` (and release zips) get swept into the package. Fix by whitelisting publish contents via `package.json` `files` (include dist subdirs, docs, skills; exclude app bundles). Confirm with `npm pack --dry-run` that `dist/Nexus.app` is not listed.
|
|
56
|
+
- **npm auth web loop for dist-tags**: use legacy auth to get an OTP prompt:
|
|
57
|
+
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add nexus@X.Y.Z latest`
|
|
58
|
+
- **`npx` verification fails with `ECOMPROMISED: Lock compromised`**: retry with a fresh cache:
|
|
59
|
+
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y nexus@X.Y.Z --version`
|
|
60
|
+
- **Tag needs repointing after a late fix**: force-update and push the tag, then ensure the GitHub release assets still match:
|
|
61
|
+
- `git tag -f vX.Y.Z && git push -f origin vX.Y.Z`
|
|
62
|
+
|
|
63
|
+
7) **GitHub release + appcast**
|
|
64
|
+
- [ ] Tag and push: `git tag vX.Y.Z && git push origin vX.Y.Z` (or `git push --tags`).
|
|
65
|
+
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `nexus X.Y.Z`** (not just the tag); body should inline the product-facing bullets from the changelog (no bare links) **and must not repeat the title inside the body**.
|
|
66
|
+
- [ ] Attach artifacts: `npm pack` tarball (optional), `Nexus-X.Y.Z.zip`, and `Nexus-X.Y.Z.dSYM.zip` (if generated).
|
|
67
|
+
- [ ] Commit the updated `appcast.xml` and push it (Sparkle feeds from main).
|
|
68
|
+
- [ ] From a clean temp directory (no `package.json`), run `npx -y nexus@X.Y.Z send --help` to confirm install/CLI entrypoints work.
|
|
69
|
+
- [ ] Announce/share release notes.
|
package/docs/_config.yml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
title: "NEXUS Docs"
|
|
2
|
+
description: "A TypeScript/Node gateway + macOS/iOS/Android companions for WhatsApp (web) and Telegram (bot)."
|
|
3
|
+
markdown: kramdown
|
|
4
|
+
highlighter: rouge
|
|
5
|
+
|
|
6
|
+
# Keep GitHub Pages' default page URLs (e.g. /gateway.html). Many docs links
|
|
7
|
+
# are written as relative *.md links and are rewritten during the build.
|
|
8
|
+
|
|
9
|
+
plugins:
|
|
10
|
+
- jekyll-relative-links
|
|
11
|
+
|
|
12
|
+
relative_links:
|
|
13
|
+
enabled: true
|
|
14
|
+
collections: true
|
|
15
|
+
|
|
16
|
+
defaults:
|
|
17
|
+
- scope:
|
|
18
|
+
path: ""
|
|
19
|
+
values:
|
|
20
|
+
layout: default
|
|
21
|
+
|
|
22
|
+
nav:
|
|
23
|
+
- title: "Home"
|
|
24
|
+
url: "/"
|
|
25
|
+
- title: "Nexus Setup"
|
|
26
|
+
url: "/nexus.html"
|
|
27
|
+
- title: "Gateway"
|
|
28
|
+
url: "/gateway.html"
|
|
29
|
+
- title: "Remote"
|
|
30
|
+
url: "/remote.html"
|
|
31
|
+
- title: "Discovery"
|
|
32
|
+
url: "/discovery.html"
|
|
33
|
+
- title: "Configuration"
|
|
34
|
+
url: "/configuration.html"
|
|
35
|
+
- title: "WebChat"
|
|
36
|
+
url: "/webchat.html"
|
|
37
|
+
- title: "macOS App"
|
|
38
|
+
url: "/macos.html"
|
|
39
|
+
- title: "iOS App"
|
|
40
|
+
url: "/ios.html"
|
|
41
|
+
- title: "Android App"
|
|
42
|
+
url: "/android.html"
|
|
43
|
+
- title: "Telegram"
|
|
44
|
+
url: "/telegram.html"
|
|
45
|
+
- title: "Security"
|
|
46
|
+
url: "/security.html"
|
|
47
|
+
- title: "Troubleshooting"
|
|
48
|
+
url: "/troubleshooting.html"
|
|
49
|
+
|
|
50
|
+
kramdown:
|
|
51
|
+
input: GFM
|
|
52
|
+
hard_wrap: false
|
|
53
|
+
syntax_highlighter: rouge
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="auto">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="color-scheme" content="light dark" />
|
|
7
|
+
<title>
|
|
8
|
+
{% if page.url == "/" %}{{ site.title }}{% else %}{{ page.title | default: page.path | split: "/" | last | replace: ".md", "" }} · {{ site.title }}{% endif %}
|
|
9
|
+
</title>
|
|
10
|
+
|
|
11
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
12
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
13
|
+
<link
|
|
14
|
+
href="https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400..700&family=Fragment+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap"
|
|
15
|
+
rel="stylesheet"
|
|
16
|
+
/>
|
|
17
|
+
<script>
|
|
18
|
+
(() => {
|
|
19
|
+
try {
|
|
20
|
+
const stored = localStorage.getItem("nexus:theme");
|
|
21
|
+
if (stored === "light" || stored === "dark") document.documentElement.dataset.theme = stored;
|
|
22
|
+
} catch {
|
|
23
|
+
// ignore
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
26
|
+
</script>
|
|
27
|
+
<link rel="stylesheet" href="{{ "/assets/terminal.css" | relative_url }}" />
|
|
28
|
+
<link rel="stylesheet" href="{{ "/assets/markdown.css" | relative_url }}" />
|
|
29
|
+
<script defer src="{{ "/assets/theme.js" | relative_url }}"></script>
|
|
30
|
+
</head>
|
|
31
|
+
|
|
32
|
+
<body>
|
|
33
|
+
<a class="skip-link" href="#content">Skip to content</a>
|
|
34
|
+
|
|
35
|
+
<header class="shell">
|
|
36
|
+
<div class="shell__frame" role="banner">
|
|
37
|
+
<div class="shell__titlebar">
|
|
38
|
+
<div class="brand" aria-label="NEXUS docs terminal">
|
|
39
|
+
<img
|
|
40
|
+
class="brand__logo"
|
|
41
|
+
src="{{ "/assets/pixel-lobster.svg" | relative_url }}"
|
|
42
|
+
alt=""
|
|
43
|
+
width="40"
|
|
44
|
+
height="40"
|
|
45
|
+
decoding="async"
|
|
46
|
+
/>
|
|
47
|
+
<div class="brand__text">
|
|
48
|
+
<div class="brand__name">NEXUS</div>
|
|
49
|
+
<div class="brand__hint">docs // lobster terminal</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="titlebar__actions">
|
|
54
|
+
<a class="titlebar__cta" href="https://github.com/nexus/nexus">
|
|
55
|
+
<span class="titlebar__cta-label">GitHub</span>
|
|
56
|
+
<span class="titlebar__cta-meta">repo</span>
|
|
57
|
+
</a>
|
|
58
|
+
<a class="titlebar__cta titlebar__cta--accent" href="https://github.com/nexus/nexus/releases/latest">
|
|
59
|
+
<span class="titlebar__cta-label">Download</span>
|
|
60
|
+
<span class="titlebar__cta-meta">latest</span>
|
|
61
|
+
</a>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="shell__nav" aria-label="Primary">
|
|
66
|
+
<nav class="nav">
|
|
67
|
+
{% assign nav = site.nav | default: empty %}
|
|
68
|
+
{% for item in nav %}
|
|
69
|
+
{% assign item_url = item.url | relative_url %}
|
|
70
|
+
<a class="nav__link" href="{{ item_url }}">
|
|
71
|
+
<span class="nav__chev">›</span>{{ item.title }}
|
|
72
|
+
</a>
|
|
73
|
+
{% endfor %}
|
|
74
|
+
</nav>
|
|
75
|
+
|
|
76
|
+
<div class="shell__status" aria-hidden="true">
|
|
77
|
+
<span class="status__dot"></span>
|
|
78
|
+
<span class="status__text">
|
|
79
|
+
{% if page.url == "/" %}
|
|
80
|
+
ready
|
|
81
|
+
{% else %}
|
|
82
|
+
viewing: {{ page.path }}
|
|
83
|
+
{% endif %}
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</header>
|
|
89
|
+
|
|
90
|
+
<main id="content" class="content" role="main">
|
|
91
|
+
<div class="terminal">
|
|
92
|
+
<div class="terminal__prompt" aria-hidden="true">
|
|
93
|
+
<span class="prompt__user">nexus</span>@<span class="prompt__host">nexus</span>:<span class="prompt__path">~/docs</span>$<span class="prompt__cmd">
|
|
94
|
+
{% if page.url == "/" %}cat index.md{% else %}less {{ page.path }}{% endif %}
|
|
95
|
+
</span>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
{% if page.summary %}
|
|
99
|
+
<p class="terminal__summary">{{ page.summary }}</p>
|
|
100
|
+
{% endif %}
|
|
101
|
+
|
|
102
|
+
{% if page.read_when %}
|
|
103
|
+
<details class="terminal__meta">
|
|
104
|
+
<summary>Read when…</summary>
|
|
105
|
+
<ul>
|
|
106
|
+
{% for hint in page.read_when %}
|
|
107
|
+
<li>{{ hint }}</li>
|
|
108
|
+
{% endfor %}
|
|
109
|
+
</ul>
|
|
110
|
+
</details>
|
|
111
|
+
{% endif %}
|
|
112
|
+
|
|
113
|
+
<article class="markdown">
|
|
114
|
+
{{ content }}
|
|
115
|
+
</article>
|
|
116
|
+
|
|
117
|
+
<footer class="terminal__footer" role="contentinfo">
|
|
118
|
+
<div class="footer__line">
|
|
119
|
+
<span class="footer__sig">nexus.ai</span>
|
|
120
|
+
<span class="footer__sep">·</span>
|
|
121
|
+
<a href="https://github.com/nexus/nexus">source</a>
|
|
122
|
+
<span class="footer__sep">·</span>
|
|
123
|
+
<a href="https://github.com/nexus/nexus/releases">releases</a>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="footer__hint" aria-hidden="true">
|
|
126
|
+
tip: press <kbd>F2</kbd> (Mac: <kbd>fn</kbd>+<kbd>F2</kbd>) to flip
|
|
127
|
+
the universe
|
|
128
|
+
</div>
|
|
129
|
+
<div class="footer__actions">
|
|
130
|
+
<button
|
|
131
|
+
class="theme-toggle"
|
|
132
|
+
type="button"
|
|
133
|
+
data-theme-toggle
|
|
134
|
+
aria-label="Toggle theme (F2; on Mac: fn+F2)"
|
|
135
|
+
aria-pressed="false"
|
|
136
|
+
>
|
|
137
|
+
<span class="theme-toggle__key">F2</span>
|
|
138
|
+
<span class="theme-toggle__label" data-theme-label>theme</span>
|
|
139
|
+
</button>
|
|
140
|
+
</div>
|
|
141
|
+
</footer>
|
|
142
|
+
</div>
|
|
143
|
+
</main>
|
|
144
|
+
</body>
|
|
145
|
+
</html>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Agent-assisted install (macOS)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Agent-assisted install (macOS)
|
|
6
|
+
|
|
7
|
+
This is a copy/paste guide you can send to a friend/family member to get Nexus running quickly on macOS.
|
|
8
|
+
|
|
9
|
+
## What you’ll need
|
|
10
|
+
|
|
11
|
+
- A Mac
|
|
12
|
+
- Admin access (you may be prompted for your password)
|
|
13
|
+
- An AI billing method:
|
|
14
|
+
- **OpenAI Codex / ChatGPT** (recommended if you have it), or
|
|
15
|
+
- **Anthropic API key** (pay-as-you-go)
|
|
16
|
+
|
|
17
|
+
> Note: Having the Claude desktop/Code app installed does **not** necessarily mean you have API billing enabled.
|
|
18
|
+
|
|
19
|
+
## Step 1 — Install Node.js (if you don’t have it)
|
|
20
|
+
|
|
21
|
+
In Terminal:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
node -v
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If that fails, install Node with Homebrew:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
31
|
+
brew install node
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Step 2 — Install Nexus CLI
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g nexus
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Step 3 — Initialize your Nexus workspace
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
nexus init
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This creates:
|
|
47
|
+
- `~/nexus/home` (your workspace)
|
|
48
|
+
- `~/nexus/state` (local state, sessions, credentials)
|
|
49
|
+
|
|
50
|
+
## Step 4 — QuickStart onboarding (local gateway)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
nexus onboard --quickstart
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This will:
|
|
57
|
+
- pick safe defaults (local loopback gateway)
|
|
58
|
+
- try to auto-detect existing credentials (ex: OpenAI Codex)
|
|
59
|
+
- start the gateway and show the Control UI URL
|
|
60
|
+
|
|
61
|
+
If Nexus tells you billing/auth is missing, run:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
nexus onboard
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
and pick an auth option (OpenAI Codex OAuth, or paste an Anthropic API key).
|
|
68
|
+
|
|
69
|
+
## Step 5 — Name your Nexus (first run ritual)
|
|
70
|
+
|
|
71
|
+
Open your workspace folder:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
open ~/nexus/home
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Identity files live under `~/nexus/state/`:
|
|
78
|
+
- `state/agents/{agent}/identity/IDENTITY.md` (what the agent is called)
|
|
79
|
+
- `state/user/identity/PROFILE.md` (who you are)
|
|
80
|
+
- `state/agents/{agent}/identity/SOUL.md` (tone/boundaries)
|
|
81
|
+
- `state/nexus/onboarding/BOOTSTRAP.md` (one-time ritual prompt)
|
|
82
|
+
|
|
83
|
+
If `BOOTSTRAP.md` exists, you can either:
|
|
84
|
+
- **Chat with Nexus** and let it fill these in, or
|
|
85
|
+
- edit `IDENTITY.md` and `PROFILE.md` manually.
|
|
86
|
+
|
|
87
|
+
## Optional — iMessage “Nexus bot” (later)
|
|
88
|
+
|
|
89
|
+
To message Nexus from your phone via iMessage, you’ll eventually:
|
|
90
|
+
- create a dedicated Apple ID (ex: `nexus.bot@icloud.com`)
|
|
91
|
+
- sign into Messages.app with that Apple ID on the Mac running Nexus
|
|
92
|
+
- enable the iMessage provider in Nexus and grant macOS permissions
|
|
93
|
+
|
|
94
|
+
We intentionally recommend doing this **after** the first “wow moment”.
|
|
95
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Agent loop lifecycle, streams, and wait semantics"
|
|
3
|
+
read_when:
|
|
4
|
+
- You need an exact walkthrough of the agent loop or lifecycle events
|
|
5
|
+
---
|
|
6
|
+
# Agent Loop (Nexus)
|
|
7
|
+
|
|
8
|
+
Short, exact flow of one agent run. Source of truth: current code in `src/`.
|
|
9
|
+
|
|
10
|
+
## Entry points
|
|
11
|
+
- Gateway RPC: `agent` and `agent.wait` in `src/gateway/server-methods/agent.ts`.
|
|
12
|
+
- CLI: `agentCommand` in `src/commands/agent.ts`.
|
|
13
|
+
|
|
14
|
+
## High-level flow
|
|
15
|
+
1) `agent` RPC validates params, resolves session (sessionKey/sessionId), persists session metadata, returns `{ runId, acceptedAt }` immediately.
|
|
16
|
+
2) `agentCommand` runs the agent:
|
|
17
|
+
- resolves model + thinking/verbose defaults
|
|
18
|
+
- loads skills snapshot
|
|
19
|
+
- calls `runEmbeddedPiAgent` (pi-agent-core runtime)
|
|
20
|
+
- emits **lifecycle end/error** if the embedded loop does not emit one
|
|
21
|
+
3) `runEmbeddedPiAgent`:
|
|
22
|
+
- builds `AgentSession` and subscribes to pi events
|
|
23
|
+
- streams assistant deltas + tool events
|
|
24
|
+
- enforces timeout -> aborts run if exceeded
|
|
25
|
+
- returns payloads + usage metadata
|
|
26
|
+
4) `subscribeEmbeddedPiSession` bridges pi-agent-core events to Nexus `agent` stream:
|
|
27
|
+
- tool events => `stream: "tool"`
|
|
28
|
+
- assistant deltas => `stream: "assistant"`
|
|
29
|
+
- lifecycle events => `stream: "lifecycle"` (`phase: "start" | "end" | "error"`)
|
|
30
|
+
5) `agent.wait` uses `waitForAgentJob`:
|
|
31
|
+
- waits for **lifecycle end/error** for `runId`
|
|
32
|
+
- returns `{ status: ok|error|timeout, startedAt, endedAt, error? }`
|
|
33
|
+
|
|
34
|
+
## Event streams (today)
|
|
35
|
+
- `lifecycle`: emitted by `subscribeEmbeddedPiSession` (and as a fallback by `agentCommand`)
|
|
36
|
+
- `assistant`: streamed deltas from pi-agent-core
|
|
37
|
+
- `tool`: streamed tool events from pi-agent-core
|
|
38
|
+
|
|
39
|
+
## Chat provider handling
|
|
40
|
+
- `createAgentEventHandler` in `src/gateway/server-chat.ts`:
|
|
41
|
+
- buffers assistant deltas
|
|
42
|
+
- emits chat `delta` messages
|
|
43
|
+
- emits chat `final` when **lifecycle end/error** arrives
|
|
44
|
+
|
|
45
|
+
## Timeouts
|
|
46
|
+
- `agent.wait` default: 30s (just the wait). `timeoutMs` param overrides.
|
|
47
|
+
- Agent runtime: `agent.timeoutSeconds` default 600s; enforced in `runEmbeddedPiAgent` abort timer.
|
|
48
|
+
|
|
49
|
+
## Where things can end early
|
|
50
|
+
- Agent timeout (abort)
|
|
51
|
+
- AbortSignal (cancel)
|
|
52
|
+
- Gateway disconnect or RPC timeout
|
|
53
|
+
- `agent.wait` timeout (wait-only, does not stop agent)
|
|
54
|
+
|
|
55
|
+
## Files
|
|
56
|
+
- `src/gateway/server-methods/agent.ts`
|
|
57
|
+
- `src/gateway/server-methods/agent-job.ts`
|
|
58
|
+
- `src/commands/agent.ts`
|
|
59
|
+
- `src/agents/pi-embedded-runner.ts`
|
|
60
|
+
- `src/agents/pi-embedded-subscribe.ts`
|
|
61
|
+
- `src/gateway/server-chat.ts`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Design notes for a direct `nexus agent` CLI subcommand without WhatsApp delivery"
|
|
3
|
+
read_when:
|
|
4
|
+
- Adding or modifying the agent CLI entrypoint
|
|
5
|
+
---
|
|
6
|
+
# `nexus agent` (direct-to-agent invocation)
|
|
7
|
+
|
|
8
|
+
`nexus agent` lets you talk to the **embedded** agent runtime directly (no chat send unless you opt in), while reusing the same session store and thinking/verbose persistence as inbound auto-replies.
|
|
9
|
+
|
|
10
|
+
## Behavior
|
|
11
|
+
- Required: `--message <text>`
|
|
12
|
+
- Session selection:
|
|
13
|
+
- If `--session-id` is given, reuse it.
|
|
14
|
+
- Else if `--to <e164>` is given, derive the session key from `session.scope` (direct chats collapse to `main`, or `global` when scope is global).
|
|
15
|
+
- Runs the embedded Pi agent (configured via `agent`).
|
|
16
|
+
- Thinking/verbose:
|
|
17
|
+
- Flags `--thinking <off|minimal|low|medium|high>` and `--verbose <on|off>` persist into the session store.
|
|
18
|
+
- Output:
|
|
19
|
+
- Default: prints text (and `MEDIA:<url>` lines) to stdout.
|
|
20
|
+
- `--json`: prints structured payloads + meta.
|
|
21
|
+
- Optional: `--deliver` sends the reply back to the selected provider (`whatsapp`, `telegram`, `discord`, `signal`, `imessage`).
|
package/docs/agent.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Agent runtime (embedded p-mono), workspace contract, and session bootstrap"
|
|
3
|
+
read_when:
|
|
4
|
+
- Changing agent runtime, workspace bootstrap, or session behavior
|
|
5
|
+
---
|
|
6
|
+
# Agent Runtime 🤖
|
|
7
|
+
|
|
8
|
+
NEXUS runs a single embedded agent runtime derived from **p-mono** (internal name: **p**).
|
|
9
|
+
|
|
10
|
+
## Workspace (required)
|
|
11
|
+
|
|
12
|
+
NEXUS uses a single agent workspace directory (`agent.workspace`) as the agent’s **only** working directory (`cwd`) for tools and context.
|
|
13
|
+
|
|
14
|
+
Recommended: use `nexus init` to create `~/nexus/state/nexus/config.json` if missing and initialize the workspace files.
|
|
15
|
+
|
|
16
|
+
If `agent.sandbox` is enabled, non-main sessions can override this with
|
|
17
|
+
per-session workspaces under `agent.sandbox.workspaceRoot` (see
|
|
18
|
+
[`docs/configuration.md`](https://docs.nexus.bot/configuration)).
|
|
19
|
+
|
|
20
|
+
## Bootstrap files (injected)
|
|
21
|
+
|
|
22
|
+
Nexus stores identity and bootstrap files under `~/nexus/state/`:
|
|
23
|
+
- `~/nexus/AGENTS.md` — operating instructions
|
|
24
|
+
- `~/nexus/state/agents/{agent}/identity/SOUL.md` — persona, boundaries, tone
|
|
25
|
+
- `~/nexus/state/agents/{agent}/identity/IDENTITY.md` — agent name/vibe/emoji
|
|
26
|
+
- `~/nexus/state/agents/{agent}/identity/MEMORY.md` — curated memory
|
|
27
|
+
- `~/nexus/state/user/identity/PROFILE.md` — user profile + preferred address
|
|
28
|
+
- `~/nexus/state/nexus/onboarding/BOOTSTRAP.md` — first-run ritual prompt
|
|
29
|
+
|
|
30
|
+
`nexus status` is the entry point and will surface bootstrap guidance when identity is missing.
|
|
31
|
+
|
|
32
|
+
Large bootstrap files are truncated when injected. Control the per-file limit with `agent.bootstrapMaxChars` (default: 20000).
|
|
33
|
+
|
|
34
|
+
To disable bootstrap file creation entirely (for pre-seeded workspaces), set:
|
|
35
|
+
|
|
36
|
+
```json5
|
|
37
|
+
{ agent: { skipBootstrap: true } }
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Built-in tools (internal)
|
|
41
|
+
|
|
42
|
+
p’s embedded core tools (read/bash/edit/write and related internals) are defined in code and always available. `TOOLS.md` does **not** control which tools exist; it’s guidance for how *you* want them used.
|
|
43
|
+
|
|
44
|
+
## Skills
|
|
45
|
+
|
|
46
|
+
Nexus loads skills from three locations (higher wins on name conflict):
|
|
47
|
+
- Project: `<projectRoot>/skills`
|
|
48
|
+
- Home: `~/nexus/home/skills`
|
|
49
|
+
- Bundled baseline (shipped with the install)
|
|
50
|
+
|
|
51
|
+
Skills can be gated by config/env (see `skills` in [`docs/configuration.md`](https://docs.nexus.bot/configuration)).
|
|
52
|
+
|
|
53
|
+
## p-mono integration
|
|
54
|
+
|
|
55
|
+
Nexus reuses pieces of the p-mono codebase (models/tools), but **session management, discovery, and tool wiring are Nexus-owned**.
|
|
56
|
+
|
|
57
|
+
- No p-coding agent runtime.
|
|
58
|
+
- No `~/.pi/agent` or `<workspace>/.pi` settings are consulted.
|
|
59
|
+
|
|
60
|
+
## Peter @ steipete (only)
|
|
61
|
+
|
|
62
|
+
Apply these notes **only** when the user is Peter Steinberger at steipete.
|
|
63
|
+
|
|
64
|
+
- Gateway runs on the **Mac Studio in London**.
|
|
65
|
+
- Primary work computer: **MacBook Pro**.
|
|
66
|
+
- Peter travels between **Vienna** and **London**; there are two networks bridged via **Tailscale**.
|
|
67
|
+
- For debugging, connect to the Mac Studio (London) or MacBook Pro (primary).
|
|
68
|
+
- There is also an **M1 MacBook Pro** on the Vienna tailnet you can use to access the Vienna network.
|
|
69
|
+
- Nodes can be accessed via the `nexus` binary (`pnpm nexus` in `~/Projects/nexus`).
|
|
70
|
+
- See also `skills/nexus*` for node/browser/canvas/cron usage.
|
|
71
|
+
|
|
72
|
+
## Sessions
|
|
73
|
+
|
|
74
|
+
Session transcripts are stored as JSONL at:
|
|
75
|
+
- `~/nexus/state/agents/<agentId>/sessions/<SessionId>.jsonl`
|
|
76
|
+
|
|
77
|
+
The session ID is stable and chosen by NEXUS.
|
|
78
|
+
Legacy Pi/Tau session folders are **not** read.
|
|
79
|
+
|
|
80
|
+
## Steering while streaming
|
|
81
|
+
|
|
82
|
+
When queue mode is `steer`, inbound messages are injected into the current run.
|
|
83
|
+
The queue is checked **after each tool call**; if a queued message is present,
|
|
84
|
+
remaining tool calls from the current assistant message are skipped (error tool
|
|
85
|
+
results with "Skipped due to queued user message."), then the queued user
|
|
86
|
+
message is injected before the next assistant response.
|
|
87
|
+
|
|
88
|
+
When queue mode is `followup` or `collect`, inbound messages are held until the
|
|
89
|
+
current turn ends, then a new agent turn starts with the queued payloads. See
|
|
90
|
+
[`docs/queue.md`](https://docs.nexus.bot/queue) for mode + debounce/cap behavior.
|
|
91
|
+
|
|
92
|
+
Block streaming sends completed assistant blocks as soon as they finish; disable
|
|
93
|
+
via `agent.blockStreamingDefault: "off"` if you only want the final response.
|
|
94
|
+
Tune the boundary via `agent.blockStreamingBreak` (`text_end` vs `message_end`; defaults to text_end).
|
|
95
|
+
Control soft block chunking with `agent.blockStreamingChunk` (defaults to
|
|
96
|
+
800–1200 chars; prefers paragraph breaks, then newlines; sentences last).
|
|
97
|
+
Verbose tool summaries are emitted at tool start (no debounce); Control UI
|
|
98
|
+
streams tool output via agent events when available.
|
|
99
|
+
|
|
100
|
+
## Configuration (minimal)
|
|
101
|
+
|
|
102
|
+
At minimum, set:
|
|
103
|
+
- `agent.workspace`
|
|
104
|
+
- `whatsapp.allowFrom` (strongly recommended)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
*Next: [Group Chats](https://docs.nexus.bot/group-messages)* 🦞
|