@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.
Files changed (827) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/LICENSE +21 -0
  3. package/README-header.png +0 -0
  4. package/README.md +462 -0
  5. package/dist/agents/agent-paths.js +16 -0
  6. package/dist/agents/agent-scope.js +44 -0
  7. package/dist/agents/auth-profiles.js +626 -0
  8. package/dist/agents/bash-process-registry.js +126 -0
  9. package/dist/agents/bash-tools.js +838 -0
  10. package/dist/agents/chutes-oauth.js +47 -0
  11. package/dist/agents/clawdbot-tools.js +62 -0
  12. package/dist/agents/context.js +34 -0
  13. package/dist/agents/defaults.js +6 -0
  14. package/dist/agents/memory-search.js +80 -0
  15. package/dist/agents/model-auth.js +115 -0
  16. package/dist/agents/model-catalog.js +55 -0
  17. package/dist/agents/model-fallback.js +210 -0
  18. package/dist/agents/model-scan.js +263 -0
  19. package/dist/agents/model-selection.js +152 -0
  20. package/dist/agents/models-config.js +171 -0
  21. package/dist/agents/nexus-tools.js +46 -0
  22. package/dist/agents/pi-embedded-block-chunker.js +188 -0
  23. package/dist/agents/pi-embedded-helpers.js +139 -0
  24. package/dist/agents/pi-embedded-runner.js +932 -0
  25. package/dist/agents/pi-embedded-subscribe.js +541 -0
  26. package/dist/agents/pi-embedded-utils.js +20 -0
  27. package/dist/agents/pi-embedded.js +1 -0
  28. package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
  29. package/dist/agents/pi-tool-definition-adapter.js +17 -0
  30. package/dist/agents/pi-tools.js +510 -0
  31. package/dist/agents/pi-tools.schema.js +358 -0
  32. package/dist/agents/sandbox-paths.js +68 -0
  33. package/dist/agents/sandbox.js +667 -0
  34. package/dist/agents/shell-utils.js +53 -0
  35. package/dist/agents/skill-runner.js +224 -0
  36. package/dist/agents/skill-state.js +164 -0
  37. package/dist/agents/skill-tools.js +191 -0
  38. package/dist/agents/skill-usage.js +43 -0
  39. package/dist/agents/skills-install.js +244 -0
  40. package/dist/agents/skills-status.js +157 -0
  41. package/dist/agents/skills.js +472 -0
  42. package/dist/agents/subagent-registry.js +321 -0
  43. package/dist/agents/subagent-registry.store.js +47 -0
  44. package/dist/agents/system-prompt.js +179 -0
  45. package/dist/agents/timeout.js +26 -0
  46. package/dist/agents/tool-display.js +155 -0
  47. package/dist/agents/tool-display.json +236 -0
  48. package/dist/agents/tool-images.js +138 -0
  49. package/dist/agents/tool-policy.js +87 -0
  50. package/dist/agents/tools/agent-step.js +41 -0
  51. package/dist/agents/tools/browser-tool.js +295 -0
  52. package/dist/agents/tools/canvas-tool.js +193 -0
  53. package/dist/agents/tools/common.js +88 -0
  54. package/dist/agents/tools/cron-tool.js +141 -0
  55. package/dist/agents/tools/discord-actions-guild.js +186 -0
  56. package/dist/agents/tools/discord-actions-messaging.js +313 -0
  57. package/dist/agents/tools/discord-actions-moderation.js +70 -0
  58. package/dist/agents/tools/discord-actions.js +56 -0
  59. package/dist/agents/tools/discord-schema.js +199 -0
  60. package/dist/agents/tools/discord-tool.js +16 -0
  61. package/dist/agents/tools/gateway-tool.js +46 -0
  62. package/dist/agents/tools/gateway.js +28 -0
  63. package/dist/agents/tools/image-tool.js +140 -0
  64. package/dist/agents/tools/memory-tool.js +92 -0
  65. package/dist/agents/tools/nodes-tool.js +413 -0
  66. package/dist/agents/tools/nodes-utils.js +92 -0
  67. package/dist/agents/tools/sessions-announce-target.js +35 -0
  68. package/dist/agents/tools/sessions-helpers.js +88 -0
  69. package/dist/agents/tools/sessions-history-tool.js +137 -0
  70. package/dist/agents/tools/sessions-list-tool.js +196 -0
  71. package/dist/agents/tools/sessions-send-helpers.js +103 -0
  72. package/dist/agents/tools/sessions-send-tool.js +371 -0
  73. package/dist/agents/tools/sessions-spawn-tool.js +319 -0
  74. package/dist/agents/tools/slack-actions.js +129 -0
  75. package/dist/agents/tools/slack-schema.js +59 -0
  76. package/dist/agents/tools/slack-tool.js +16 -0
  77. package/dist/agents/tools/telegram-actions.js +159 -0
  78. package/dist/agents/tools/telegram-schema.js +28 -0
  79. package/dist/agents/tools/telegram-tool.js +16 -0
  80. package/dist/agents/tools/whatsapp-login-tool.js +63 -0
  81. package/dist/agents/usage.js +58 -0
  82. package/dist/agents/workspace.js +264 -0
  83. package/dist/auto-reply/chunk.js +177 -0
  84. package/dist/auto-reply/command-auth.js +44 -0
  85. package/dist/auto-reply/command-detection.js +22 -0
  86. package/dist/auto-reply/envelope.js +30 -0
  87. package/dist/auto-reply/group-activation.js +20 -0
  88. package/dist/auto-reply/heartbeat.js +58 -0
  89. package/dist/auto-reply/model.js +22 -0
  90. package/dist/auto-reply/reply/abort.js +14 -0
  91. package/dist/auto-reply/reply/agent-runner.js +426 -0
  92. package/dist/auto-reply/reply/bash-command.js +314 -0
  93. package/dist/auto-reply/reply/block-streaming.js +34 -0
  94. package/dist/auto-reply/reply/body.js +29 -0
  95. package/dist/auto-reply/reply/commands.js +332 -0
  96. package/dist/auto-reply/reply/directive-handling.js +626 -0
  97. package/dist/auto-reply/reply/directives.js +59 -0
  98. package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
  99. package/dist/auto-reply/reply/followup-runner.js +181 -0
  100. package/dist/auto-reply/reply/groups.js +152 -0
  101. package/dist/auto-reply/reply/mentions.js +64 -0
  102. package/dist/auto-reply/reply/model-selection.js +209 -0
  103. package/dist/auto-reply/reply/queue.js +399 -0
  104. package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
  105. package/dist/auto-reply/reply/reply-tags.js +26 -0
  106. package/dist/auto-reply/reply/session-updates.js +103 -0
  107. package/dist/auto-reply/reply/session.js +169 -0
  108. package/dist/auto-reply/reply/typing.js +125 -0
  109. package/dist/auto-reply/reply.js +655 -0
  110. package/dist/auto-reply/send-policy.js +28 -0
  111. package/dist/auto-reply/status.js +197 -0
  112. package/dist/auto-reply/templating.js +9 -0
  113. package/dist/auto-reply/thinking.js +49 -0
  114. package/dist/auto-reply/tokens.js +2 -0
  115. package/dist/auto-reply/tool-meta.js +74 -0
  116. package/dist/auto-reply/transcription.js +57 -0
  117. package/dist/auto-reply/types.js +1 -0
  118. package/dist/browser/bridge-server.js +37 -0
  119. package/dist/browser/cdp.js +382 -0
  120. package/dist/browser/chrome.js +432 -0
  121. package/dist/browser/client-actions-core.js +67 -0
  122. package/dist/browser/client-actions-observe.js +24 -0
  123. package/dist/browser/client-actions-types.js +1 -0
  124. package/dist/browser/client-actions.js +3 -0
  125. package/dist/browser/client-fetch.js +43 -0
  126. package/dist/browser/client.js +105 -0
  127. package/dist/browser/config.js +155 -0
  128. package/dist/browser/constants.js +5 -0
  129. package/dist/browser/profiles-service.js +124 -0
  130. package/dist/browser/profiles.js +96 -0
  131. package/dist/browser/pw-ai.js +2 -0
  132. package/dist/browser/pw-session.js +144 -0
  133. package/dist/browser/pw-tools-core.js +363 -0
  134. package/dist/browser/routes/agent.js +535 -0
  135. package/dist/browser/routes/basic.js +155 -0
  136. package/dist/browser/routes/index.js +8 -0
  137. package/dist/browser/routes/tabs.js +105 -0
  138. package/dist/browser/routes/utils.js +62 -0
  139. package/dist/browser/screenshot.js +40 -0
  140. package/dist/browser/server-context.js +377 -0
  141. package/dist/browser/server.js +81 -0
  142. package/dist/browser/target-id.js +18 -0
  143. package/dist/browser/trash.js +21 -0
  144. package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
  145. package/dist/canvas-host/a2ui/index.html +246 -0
  146. package/dist/canvas-host/a2ui.js +187 -0
  147. package/dist/canvas-host/server.js +382 -0
  148. package/dist/channel-web.js +8 -0
  149. package/dist/cli/browser-cli-actions-input.js +459 -0
  150. package/dist/cli/browser-cli-actions-observe.js +56 -0
  151. package/dist/cli/browser-cli-examples.js +31 -0
  152. package/dist/cli/browser-cli-inspect.js +97 -0
  153. package/dist/cli/browser-cli-manage.js +286 -0
  154. package/dist/cli/browser-cli-shared.js +1 -0
  155. package/dist/cli/browser-cli.js +26 -0
  156. package/dist/cli/canvas-cli.js +416 -0
  157. package/dist/cli/cloud-cli.js +336 -0
  158. package/dist/cli/credential-cli.js +227 -0
  159. package/dist/cli/cron-cli.js +454 -0
  160. package/dist/cli/deps.js +17 -0
  161. package/dist/cli/dns-cli.js +180 -0
  162. package/dist/cli/gateway-cli.js +665 -0
  163. package/dist/cli/gateway-rpc.js +20 -0
  164. package/dist/cli/hooks-cli.js +135 -0
  165. package/dist/cli/memory-cli.js +101 -0
  166. package/dist/cli/models-cli.js +248 -0
  167. package/dist/cli/nodes-camera.js +57 -0
  168. package/dist/cli/nodes-canvas.js +26 -0
  169. package/dist/cli/nodes-cli.js +946 -0
  170. package/dist/cli/nodes-screen.js +37 -0
  171. package/dist/cli/pairing-cli.js +100 -0
  172. package/dist/cli/parse-duration.js +20 -0
  173. package/dist/cli/plugins-cli.js +158 -0
  174. package/dist/cli/ports.js +97 -0
  175. package/dist/cli/profile.js +81 -0
  176. package/dist/cli/program.js +162 -0
  177. package/dist/cli/prompt.js +19 -0
  178. package/dist/cli/run-main.js +48 -0
  179. package/dist/cli/skills-cli.js +132 -0
  180. package/dist/cli/skills-hub-cli.js +1093 -0
  181. package/dist/cli/telegram-cli.js +56 -0
  182. package/dist/cli/tool-connector-cli.js +118 -0
  183. package/dist/cli/tui-cli.js +35 -0
  184. package/dist/cli/upstream-sync-cli.js +2833 -0
  185. package/dist/cli/usage-cli.js +24 -0
  186. package/dist/cli/wait.js +8 -0
  187. package/dist/commands/agent-via-gateway.js +115 -0
  188. package/dist/commands/agent.js +665 -0
  189. package/dist/commands/antigravity-oauth.js +327 -0
  190. package/dist/commands/auth-choice-options.js +80 -0
  191. package/dist/commands/auth-choice.js +134 -0
  192. package/dist/commands/auth-token.js +31 -0
  193. package/dist/commands/bootstrap-preset.js +214 -0
  194. package/dist/commands/capabilities.js +36 -0
  195. package/dist/commands/chutes-oauth.js +144 -0
  196. package/dist/commands/claude-md.js +137 -0
  197. package/dist/commands/config-view.js +11 -0
  198. package/dist/commands/configure.js +648 -0
  199. package/dist/commands/credential.js +236 -0
  200. package/dist/commands/cursor-rules.js +230 -0
  201. package/dist/commands/doctor-state-migrations.js +358 -0
  202. package/dist/commands/doctor-ui.js +113 -0
  203. package/dist/commands/doctor.js +673 -0
  204. package/dist/commands/health.js +112 -0
  205. package/dist/commands/identity.js +54 -0
  206. package/dist/commands/init.js +167 -0
  207. package/dist/commands/models/aliases.js +85 -0
  208. package/dist/commands/models/fallbacks.js +123 -0
  209. package/dist/commands/models/image-fallbacks.js +123 -0
  210. package/dist/commands/models/list.js +347 -0
  211. package/dist/commands/models/scan.js +271 -0
  212. package/dist/commands/models/set-image.js +27 -0
  213. package/dist/commands/models/set.js +27 -0
  214. package/dist/commands/models/shared.js +73 -0
  215. package/dist/commands/models.js +7 -0
  216. package/dist/commands/onboard-auth.js +101 -0
  217. package/dist/commands/onboard-channels.js +814 -0
  218. package/dist/commands/onboard-eve-identity.js +98 -0
  219. package/dist/commands/onboard-github.js +153 -0
  220. package/dist/commands/onboard-helpers.js +303 -0
  221. package/dist/commands/onboard-interactive.js +17 -0
  222. package/dist/commands/onboard-non-interactive.js +228 -0
  223. package/dist/commands/onboard-providers.js +829 -0
  224. package/dist/commands/onboard-quickstart.js +185 -0
  225. package/dist/commands/onboard-remote.js +120 -0
  226. package/dist/commands/onboard-skills.js +148 -0
  227. package/dist/commands/onboard-types.js +1 -0
  228. package/dist/commands/onboard.js +19 -0
  229. package/dist/commands/openai-codex-model-default.js +38 -0
  230. package/dist/commands/poll.js +64 -0
  231. package/dist/commands/quest.js +27 -0
  232. package/dist/commands/reset.js +61 -0
  233. package/dist/commands/send.js +124 -0
  234. package/dist/commands/sessions-ingest.js +359 -0
  235. package/dist/commands/sessions.js +212 -0
  236. package/dist/commands/setup.js +59 -0
  237. package/dist/commands/signal-install.js +135 -0
  238. package/dist/commands/skills-manifest.js +235 -0
  239. package/dist/commands/status.js +139 -0
  240. package/dist/commands/suggestions.js +54 -0
  241. package/dist/commands/systemd-linger.js +71 -0
  242. package/dist/commands/update.js +16 -0
  243. package/dist/commands/usage-upload.js +27 -0
  244. package/dist/config/config.js +6 -0
  245. package/dist/config/defaults.js +140 -0
  246. package/dist/config/group-policy.js +49 -0
  247. package/dist/config/includes.js +183 -0
  248. package/dist/config/io.js +188 -0
  249. package/dist/config/legacy-migrate.js +13 -0
  250. package/dist/config/legacy.js +425 -0
  251. package/dist/config/paths.js +82 -0
  252. package/dist/config/port-defaults.js +32 -0
  253. package/dist/config/schema.js +173 -0
  254. package/dist/config/sessions.js +611 -0
  255. package/dist/config/talk.js +31 -0
  256. package/dist/config/types.js +1 -0
  257. package/dist/config/validation.js +29 -0
  258. package/dist/config/zod-schema.js +1110 -0
  259. package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
  260. package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
  261. package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
  262. package/dist/control-ui/favicon.ico +0 -0
  263. package/dist/control-ui/index.html +16 -0
  264. package/dist/cron/isolated-agent.js +529 -0
  265. package/dist/cron/normalize.js +73 -0
  266. package/dist/cron/parse.js +24 -0
  267. package/dist/cron/run-log.js +72 -0
  268. package/dist/cron/schedule.js +24 -0
  269. package/dist/cron/service.js +471 -0
  270. package/dist/cron/store.js +43 -0
  271. package/dist/cron/types.js +1 -0
  272. package/dist/daemon/constants.js +10 -0
  273. package/dist/daemon/launchd.js +295 -0
  274. package/dist/daemon/legacy.js +63 -0
  275. package/dist/daemon/program-args.js +141 -0
  276. package/dist/daemon/schtasks.js +269 -0
  277. package/dist/daemon/service.js +69 -0
  278. package/dist/daemon/systemd.js +332 -0
  279. package/dist/discord/index.js +2 -0
  280. package/dist/discord/monitor.js +1089 -0
  281. package/dist/discord/probe.js +54 -0
  282. package/dist/discord/send.js +652 -0
  283. package/dist/discord/token.js +8 -0
  284. package/dist/entry.js +16 -0
  285. package/dist/gateway/auth.js +121 -0
  286. package/dist/gateway/call.js +103 -0
  287. package/dist/gateway/chat-attachments.js +41 -0
  288. package/dist/gateway/client.js +180 -0
  289. package/dist/gateway/config-reload.js +274 -0
  290. package/dist/gateway/control-ui.js +184 -0
  291. package/dist/gateway/hooks-mapping.js +282 -0
  292. package/dist/gateway/hooks.js +168 -0
  293. package/dist/gateway/net.js +29 -0
  294. package/dist/gateway/protocol/index.js +62 -0
  295. package/dist/gateway/protocol/schema.js +577 -0
  296. package/dist/gateway/server-bridge-subscriptions.js +93 -0
  297. package/dist/gateway/server-bridge.js +1066 -0
  298. package/dist/gateway/server-browser.js +11 -0
  299. package/dist/gateway/server-channels.js +680 -0
  300. package/dist/gateway/server-chat.js +159 -0
  301. package/dist/gateway/server-constants.js +8 -0
  302. package/dist/gateway/server-discovery.js +62 -0
  303. package/dist/gateway/server-http.js +165 -0
  304. package/dist/gateway/server-methods/agent-job.js +114 -0
  305. package/dist/gateway/server-methods/agent.js +254 -0
  306. package/dist/gateway/server-methods/channels.js +239 -0
  307. package/dist/gateway/server-methods/chat.js +207 -0
  308. package/dist/gateway/server-methods/config.js +50 -0
  309. package/dist/gateway/server-methods/connect.js +6 -0
  310. package/dist/gateway/server-methods/cron.js +89 -0
  311. package/dist/gateway/server-methods/health.js +28 -0
  312. package/dist/gateway/server-methods/models.js +16 -0
  313. package/dist/gateway/server-methods/nodes.js +294 -0
  314. package/dist/gateway/server-methods/providers.js +257 -0
  315. package/dist/gateway/server-methods/send.js +254 -0
  316. package/dist/gateway/server-methods/sessions.js +382 -0
  317. package/dist/gateway/server-methods/skills.js +83 -0
  318. package/dist/gateway/server-methods/system.js +118 -0
  319. package/dist/gateway/server-methods/talk.js +22 -0
  320. package/dist/gateway/server-methods/types.js +1 -0
  321. package/dist/gateway/server-methods/voicewake.js +30 -0
  322. package/dist/gateway/server-methods/web.js +81 -0
  323. package/dist/gateway/server-methods/wizard.js +100 -0
  324. package/dist/gateway/server-methods.js +53 -0
  325. package/dist/gateway/server-providers.js +687 -0
  326. package/dist/gateway/server-shared.js +1 -0
  327. package/dist/gateway/server-utils.js +35 -0
  328. package/dist/gateway/server.js +1478 -0
  329. package/dist/gateway/session-utils.js +355 -0
  330. package/dist/gateway/ws-log.js +343 -0
  331. package/dist/gateway/ws-logging.js +8 -0
  332. package/dist/globals.js +41 -0
  333. package/dist/hooks/gmail-ops.js +236 -0
  334. package/dist/hooks/gmail-setup-utils.js +278 -0
  335. package/dist/hooks/gmail-watcher.js +190 -0
  336. package/dist/hooks/gmail.js +177 -0
  337. package/dist/imessage/client.js +165 -0
  338. package/dist/imessage/index.js +3 -0
  339. package/dist/imessage/monitor.js +365 -0
  340. package/dist/imessage/probe.js +26 -0
  341. package/dist/imessage/send.js +83 -0
  342. package/dist/imessage/targets.js +176 -0
  343. package/dist/index.js +55 -0
  344. package/dist/infra/agent-events.js +46 -0
  345. package/dist/infra/binaries.js +9 -0
  346. package/dist/infra/bonjour-discovery.js +163 -0
  347. package/dist/infra/bonjour.js +200 -0
  348. package/dist/infra/bridge/server.js +564 -0
  349. package/dist/infra/canvas-host-url.js +54 -0
  350. package/dist/infra/channel-summary.js +78 -0
  351. package/dist/infra/control-ui-assets.js +112 -0
  352. package/dist/infra/dotenv.js +15 -0
  353. package/dist/infra/env.js +8 -0
  354. package/dist/infra/errors.js +28 -0
  355. package/dist/infra/event-log.js +251 -0
  356. package/dist/infra/gateway-lock.js +8 -0
  357. package/dist/infra/git-commit.js +91 -0
  358. package/dist/infra/heartbeat-events.js +21 -0
  359. package/dist/infra/heartbeat-runner.js +458 -0
  360. package/dist/infra/heartbeat-wake.js +61 -0
  361. package/dist/infra/is-main.js +37 -0
  362. package/dist/infra/json-file.js +21 -0
  363. package/dist/infra/machine-name.js +40 -0
  364. package/dist/infra/nexus-root.js +56 -0
  365. package/dist/infra/node-pairing.js +212 -0
  366. package/dist/infra/path-env.js +93 -0
  367. package/dist/infra/ports.js +87 -0
  368. package/dist/infra/provider-summary.js +80 -0
  369. package/dist/infra/provider-usage.auth.js +189 -0
  370. package/dist/infra/provider-usage.fetch.claude.js +129 -0
  371. package/dist/infra/provider-usage.fetch.codex.js +62 -0
  372. package/dist/infra/provider-usage.fetch.copilot.js +42 -0
  373. package/dist/infra/provider-usage.fetch.gemini.js +57 -0
  374. package/dist/infra/provider-usage.fetch.js +6 -0
  375. package/dist/infra/provider-usage.fetch.minimax.js +214 -0
  376. package/dist/infra/provider-usage.fetch.shared.js +11 -0
  377. package/dist/infra/provider-usage.fetch.zai.js +62 -0
  378. package/dist/infra/provider-usage.format.js +77 -0
  379. package/dist/infra/provider-usage.js +145 -0
  380. package/dist/infra/provider-usage.load.js +54 -0
  381. package/dist/infra/provider-usage.shared.js +19 -0
  382. package/dist/infra/provider-usage.types.js +1 -0
  383. package/dist/infra/restart.js +29 -0
  384. package/dist/infra/retry.js +16 -0
  385. package/dist/infra/runtime-guard.js +59 -0
  386. package/dist/infra/shell-env.js +88 -0
  387. package/dist/infra/system-events.js +71 -0
  388. package/dist/infra/system-presence.js +217 -0
  389. package/dist/infra/tailnet.js +46 -0
  390. package/dist/infra/tailscale.js +149 -0
  391. package/dist/infra/unhandled-rejections.js +19 -0
  392. package/dist/infra/usage-suggestions.js +241 -0
  393. package/dist/infra/usage-upload.js +290 -0
  394. package/dist/infra/voicewake.js +78 -0
  395. package/dist/infra/widearea-dns.js +123 -0
  396. package/dist/infra/ws.js +13 -0
  397. package/dist/logger.js +52 -0
  398. package/dist/logging.js +506 -0
  399. package/dist/macos/gateway-daemon.js +145 -0
  400. package/dist/macos/relay.js +49 -0
  401. package/dist/media/constants.js +33 -0
  402. package/dist/media/host.js +42 -0
  403. package/dist/media/image-ops.js +119 -0
  404. package/dist/media/mime.js +123 -0
  405. package/dist/media/parse.js +83 -0
  406. package/dist/media/server.js +64 -0
  407. package/dist/media/store.js +139 -0
  408. package/dist/polls.js +43 -0
  409. package/dist/process/command-queue.js +97 -0
  410. package/dist/process/exec.js +75 -0
  411. package/dist/provider-web.js +8 -0
  412. package/dist/providers/github-copilot-auth.js +123 -0
  413. package/dist/providers/github-copilot-models.js +35 -0
  414. package/dist/providers/github-copilot-token.js +11 -0
  415. package/dist/providers/location.js +48 -0
  416. package/dist/providers/web/index.js +2 -0
  417. package/dist/runtime.js +8 -0
  418. package/dist/sessions/level-overrides.js +9 -0
  419. package/dist/sessions/send-policy.js +68 -0
  420. package/dist/signal/client.js +134 -0
  421. package/dist/signal/daemon.js +69 -0
  422. package/dist/signal/index.js +3 -0
  423. package/dist/signal/monitor.js +411 -0
  424. package/dist/signal/probe.js +46 -0
  425. package/dist/signal/send.js +91 -0
  426. package/dist/slack/actions.js +97 -0
  427. package/dist/slack/index.js +5 -0
  428. package/dist/slack/monitor.js +1270 -0
  429. package/dist/slack/probe.js +47 -0
  430. package/dist/slack/send.js +131 -0
  431. package/dist/slack/token.js +10 -0
  432. package/dist/telegram/allowed-updates.js +8 -0
  433. package/dist/telegram/bot.js +724 -0
  434. package/dist/telegram/download.js +34 -0
  435. package/dist/telegram/index.js +4 -0
  436. package/dist/telegram/monitor.js +47 -0
  437. package/dist/telegram/pairing-store.js +77 -0
  438. package/dist/telegram/probe.js +63 -0
  439. package/dist/telegram/proxy.js +9 -0
  440. package/dist/telegram/reaction-level.js +45 -0
  441. package/dist/telegram/send.js +151 -0
  442. package/dist/telegram/sent-message-cache.js +65 -0
  443. package/dist/telegram/token.js +30 -0
  444. package/dist/telegram/update-offset-store.js +61 -0
  445. package/dist/telegram/webhook-set.js +12 -0
  446. package/dist/telegram/webhook.js +56 -0
  447. package/dist/tui/commands.js +87 -0
  448. package/dist/tui/components/assistant-message.js +16 -0
  449. package/dist/tui/components/chat-log.js +92 -0
  450. package/dist/tui/components/custom-editor.js +55 -0
  451. package/dist/tui/components/selectors.js +8 -0
  452. package/dist/tui/components/tool-execution.js +111 -0
  453. package/dist/tui/components/user-message.js +17 -0
  454. package/dist/tui/gateway-chat.js +140 -0
  455. package/dist/tui/theme/theme.js +80 -0
  456. package/dist/tui/tui.js +708 -0
  457. package/dist/utils.js +153 -0
  458. package/dist/version.js +18 -0
  459. package/dist/web/accounts.js +86 -0
  460. package/dist/web/active-listener.js +25 -0
  461. package/dist/web/auto-reply.js +1256 -0
  462. package/dist/web/inbound.js +649 -0
  463. package/dist/web/login-qr.js +230 -0
  464. package/dist/web/login.js +71 -0
  465. package/dist/web/media.js +175 -0
  466. package/dist/web/outbound.js +102 -0
  467. package/dist/web/qr-image.js +97 -0
  468. package/dist/web/reconnect.js +60 -0
  469. package/dist/web/session.js +370 -0
  470. package/dist/wizard/clack-prompter.js +56 -0
  471. package/dist/wizard/onboarding.js +620 -0
  472. package/dist/wizard/prompts.js +6 -0
  473. package/dist/wizard/session.js +203 -0
  474. package/docs/AGENTS.default.md +116 -0
  475. package/docs/CAPABILITIES.md +444 -0
  476. package/docs/CNAME +1 -0
  477. package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
  478. package/docs/RELEASING.md +69 -0
  479. package/docs/_config.yml +53 -0
  480. package/docs/_layouts/default.html +145 -0
  481. package/docs/agent-assisted-install.md +95 -0
  482. package/docs/agent-loop.md +61 -0
  483. package/docs/agent-send.md +21 -0
  484. package/docs/agent.md +108 -0
  485. package/docs/android.md +133 -0
  486. package/docs/architecture.md +114 -0
  487. package/docs/assets/markdown.css +133 -0
  488. package/docs/assets/pixel-lobster.svg +60 -0
  489. package/docs/assets/terminal.css +470 -0
  490. package/docs/assets/theme.js +55 -0
  491. package/docs/audio.md +48 -0
  492. package/docs/automation/nexus-sync.md +371 -0
  493. package/docs/background-process.md +74 -0
  494. package/docs/bash.md +32 -0
  495. package/docs/bedrock.md +71 -0
  496. package/docs/bonjour.md +159 -0
  497. package/docs/browser-linux-troubleshooting.md +114 -0
  498. package/docs/browser.md +293 -0
  499. package/docs/bun.md +56 -0
  500. package/docs/camera.md +152 -0
  501. package/docs/clawd.md +212 -0
  502. package/docs/concepts/usage-tracking.md +29 -0
  503. package/docs/configuration.md +1666 -0
  504. package/docs/control-ui.md +83 -0
  505. package/docs/cron.md +385 -0
  506. package/docs/dashboard.md +17 -0
  507. package/docs/device-models.md +46 -0
  508. package/docs/discord.md +308 -0
  509. package/docs/discovery.md +112 -0
  510. package/docs/docker.md +258 -0
  511. package/docs/docs.json +105 -0
  512. package/docs/doctor.md +68 -0
  513. package/docs/elevated.md +31 -0
  514. package/docs/faq.md +736 -0
  515. package/docs/feature-inventory/overview.md +141 -0
  516. package/docs/feature-inventory/rollout-checklist.md +53 -0
  517. package/docs/feature-inventory/test-matrix.md +87 -0
  518. package/docs/feature-inventory.md +9 -0
  519. package/docs/gateway/configuration-examples.md +221 -0
  520. package/docs/gateway/configuration.md +172 -0
  521. package/docs/gateway/cron.md +61 -0
  522. package/docs/gateway/heartbeat.md +207 -0
  523. package/docs/gateway/pairing.md +109 -0
  524. package/docs/gateway-lock.md +28 -0
  525. package/docs/gateway.md +227 -0
  526. package/docs/gmail-pubsub.md +191 -0
  527. package/docs/grammy.md +27 -0
  528. package/docs/group-messages.md +73 -0
  529. package/docs/groups.md +130 -0
  530. package/docs/health.md +28 -0
  531. package/docs/heartbeat.md +73 -0
  532. package/docs/home-userspace.md +277 -0
  533. package/docs/hubs.md +148 -0
  534. package/docs/images.md +51 -0
  535. package/docs/imessage.md +94 -0
  536. package/docs/index.md +196 -0
  537. package/docs/ios.md +372 -0
  538. package/docs/linux.md +11 -0
  539. package/docs/location-command.md +95 -0
  540. package/docs/location.md +46 -0
  541. package/docs/logging.md +110 -0
  542. package/docs/lore.md +131 -0
  543. package/docs/mac/bun.md +133 -0
  544. package/docs/mac/canvas.md +161 -0
  545. package/docs/mac/child-process.md +72 -0
  546. package/docs/mac/dev-setup.md +81 -0
  547. package/docs/mac/health.md +28 -0
  548. package/docs/mac/icon.md +26 -0
  549. package/docs/mac/logging.md +51 -0
  550. package/docs/mac/menu-bar.md +69 -0
  551. package/docs/mac/peekaboo.md +170 -0
  552. package/docs/mac/permissions.md +40 -0
  553. package/docs/mac/release.md +76 -0
  554. package/docs/mac/remote.md +57 -0
  555. package/docs/mac/signing.md +41 -0
  556. package/docs/mac/skills.md +27 -0
  557. package/docs/mac/voice-overlay.md +52 -0
  558. package/docs/mac/voicewake.md +56 -0
  559. package/docs/mac/webchat.md +27 -0
  560. package/docs/mac/xpc.md +40 -0
  561. package/docs/macos.md +104 -0
  562. package/docs/model-failover.md +75 -0
  563. package/docs/models.md +91 -0
  564. package/docs/multi-agent.md +74 -0
  565. package/docs/nix.md +95 -0
  566. package/docs/nodes.md +157 -0
  567. package/docs/onboarding-config-protocol.md +34 -0
  568. package/docs/onboarding.md +189 -0
  569. package/docs/pairing.md +85 -0
  570. package/docs/plans/cron-add-hardening.md +72 -0
  571. package/docs/plans/group-policy-hardening.md +121 -0
  572. package/docs/poll.md +52 -0
  573. package/docs/prereqs.md +67 -0
  574. package/docs/presence.md +133 -0
  575. package/docs/proposals/model-config.md +147 -0
  576. package/docs/provider-routing.md +25 -0
  577. package/docs/queue.md +78 -0
  578. package/docs/reference/templates/AGENTS.md +164 -0
  579. package/docs/remote-gateway-readme.md +153 -0
  580. package/docs/remote.md +61 -0
  581. package/docs/research/memory.md +227 -0
  582. package/docs/rpc.md +35 -0
  583. package/docs/security.md +200 -0
  584. package/docs/session-ingestion.md +119 -0
  585. package/docs/session-tool.md +154 -0
  586. package/docs/session.md +85 -0
  587. package/docs/sessions.md +8 -0
  588. package/docs/setup.md +131 -0
  589. package/docs/showcase.md +37 -0
  590. package/docs/signal.md +122 -0
  591. package/docs/skills-config.md +58 -0
  592. package/docs/skills.md +153 -0
  593. package/docs/slack.md +221 -0
  594. package/docs/subagents.md +72 -0
  595. package/docs/tailscale.md +71 -0
  596. package/docs/talk.md +79 -0
  597. package/docs/telegram.md +96 -0
  598. package/docs/templates/AGENTS.md +286 -0
  599. package/docs/templates/BOOTSTRAP.md +35 -0
  600. package/docs/templates/IDENTITY.md +17 -0
  601. package/docs/templates/PROFILE.md +14 -0
  602. package/docs/templates/SOUL.md +41 -0
  603. package/docs/templates/TOOLS.md +41 -0
  604. package/docs/templates/USER.md +8 -0
  605. package/docs/test.md +43 -0
  606. package/docs/testing-onboarding-quickstart.md +76 -0
  607. package/docs/testing-philosophy.md +211 -0
  608. package/docs/thinking.md +46 -0
  609. package/docs/timezone.md +40 -0
  610. package/docs/tools.md +346 -0
  611. package/docs/troubleshooting.md +257 -0
  612. package/docs/tui.md +71 -0
  613. package/docs/typebox.md +42 -0
  614. package/docs/updating.md +138 -0
  615. package/docs/usage-cloud-aggregation-spec.md +133 -0
  616. package/docs/usage-suggestions-pipeline.md +126 -0
  617. package/docs/voicewake.md +61 -0
  618. package/docs/web.md +115 -0
  619. package/docs/webchat.md +34 -0
  620. package/docs/webhook.md +132 -0
  621. package/docs/whatsapp-clawd.jpg +0 -0
  622. package/docs/whatsapp.md +170 -0
  623. package/docs/windows.md +11 -0
  624. package/docs/wizard.md +167 -0
  625. package/package.json +209 -0
  626. package/skills/1password/SKILL.md +54 -0
  627. package/skills/1password/docs/setup.md +85 -0
  628. package/skills/1password/docs/troubleshooting.md +63 -0
  629. package/skills/1password/references/cli-examples.md +29 -0
  630. package/skills/1password/references/get-started.md +17 -0
  631. package/skills/agent-browser/SKILL.md +450 -0
  632. package/skills/agent-browser/docs/browser-use-eval.md +95 -0
  633. package/skills/agent-browser/docs/first-tests.md +261 -0
  634. package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
  635. package/skills/aix/SKILL.md +93 -0
  636. package/skills/aix/docs/embeddings.md +40 -0
  637. package/skills/aix/docs/setup.md +58 -0
  638. package/skills/aix/docs/troubleshooting.md +41 -0
  639. package/skills/aix/references/sql.md +48 -0
  640. package/skills/apple-notes/SKILL.md +50 -0
  641. package/skills/apple-reminders/SKILL.md +67 -0
  642. package/skills/bear-notes/SKILL.md +79 -0
  643. package/skills/bird/SKILL.md +32 -0
  644. package/skills/bird/docs/auth.md +31 -0
  645. package/skills/bird/docs/troubleshooting.md +31 -0
  646. package/skills/blogwatcher/SKILL.md +46 -0
  647. package/skills/blucli/SKILL.md +27 -0
  648. package/skills/brave-search/SKILL.md +36 -0
  649. package/skills/brave-search/docs/setup.md +40 -0
  650. package/skills/brave-search/docs/troubleshooting.md +37 -0
  651. package/skills/brave-search/docs/usage.md +28 -0
  652. package/skills/brave-search/scripts/content.mjs +53 -0
  653. package/skills/brave-search/scripts/search.mjs +79 -0
  654. package/skills/browser-use-agent-sdk/SKILL.md +90 -0
  655. package/skills/camsnap/SKILL.md +25 -0
  656. package/skills/clawdhub/SKILL.md +53 -0
  657. package/skills/coding-agent/SKILL.md +274 -0
  658. package/skills/comms/SKILL.md +249 -0
  659. package/skills/comms/docs/adapters.md +54 -0
  660. package/skills/comms/docs/setup.md +56 -0
  661. package/skills/comms/docs/troubleshooting.md +44 -0
  662. package/skills/comms/references/schema.md +49 -0
  663. package/skills/computer-use/SKILL.md +204 -0
  664. package/skills/computer-use/docs/open-interpreter.md +26 -0
  665. package/skills/computer-use/docs/peekaboo.md +26 -0
  666. package/skills/computer-use/docs/setup.md +47 -0
  667. package/skills/computer-use/docs/troubleshooting.md +33 -0
  668. package/skills/discord/SKILL.md +370 -0
  669. package/skills/eightctl/SKILL.md +29 -0
  670. package/skills/eve/SKILL.md +215 -0
  671. package/skills/eve/docs/dual-account.md +84 -0
  672. package/skills/eve/docs/intelligence.md +58 -0
  673. package/skills/eve/docs/setup.md +60 -0
  674. package/skills/eve/docs/troubleshooting.md +54 -0
  675. package/skills/eve/scripts/setup-dual-account.sh +125 -0
  676. package/skills/filesystem/SKILL.md +217 -0
  677. package/skills/food-order/SKILL.md +41 -0
  678. package/skills/gemini/SKILL.md +23 -0
  679. package/skills/gh/SKILL.md +22 -0
  680. package/skills/gh/docs/usage.md +41 -0
  681. package/skills/gifgrep/SKILL.md +47 -0
  682. package/skills/github/SKILL.md +26 -0
  683. package/skills/github/docs/setup.md +21 -0
  684. package/skills/github/docs/troubleshooting.md +24 -0
  685. package/skills/gog/SKILL.md +104 -0
  686. package/skills/gog/docs/portability.md +94 -0
  687. package/skills/gog/docs/setup.md +76 -0
  688. package/skills/gog/docs/troubleshooting.md +94 -0
  689. package/skills/gog/scripts/cdp/README.md +90 -0
  690. package/skills/gog/scripts/cdp/add_test_users.py +69 -0
  691. package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
  692. package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
  693. package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
  694. package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
  695. package/skills/google-oauth/SKILL.md +94 -0
  696. package/skills/goplaces/SKILL.md +30 -0
  697. package/skills/imsg/SKILL.md +25 -0
  698. package/skills/json-render/SKILL.md +154 -0
  699. package/skills/json-render/assets/components/README.md +21 -0
  700. package/skills/json-render/assets/components/catalog.ts +78 -0
  701. package/skills/json-render/assets/components/registry.tsx +172 -0
  702. package/skills/json-render/assets/demo/App.css +397 -0
  703. package/skills/json-render/assets/demo/App.tsx +897 -0
  704. package/skills/json-render/assets/demo/README.md +22 -0
  705. package/skills/json-render/assets/demo/catalog.ts +78 -0
  706. package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
  707. package/skills/json-render/assets/demo/index.css +27 -0
  708. package/skills/json-render/assets/demo/registry.tsx +150 -0
  709. package/skills/json-render/docs/nexus-state-demo.md +84 -0
  710. package/skills/json-render/docs/shadcn-preset.md +33 -0
  711. package/skills/json-render/scripts/create-vite-demo.sh +45 -0
  712. package/skills/json-render/scripts/llm-server/README.md +33 -0
  713. package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
  714. package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
  715. package/skills/json-render/scripts/llm-server/package.json +18 -0
  716. package/skills/json-render/scripts/llm-server/server.ts +285 -0
  717. package/skills/local-places/SERVER_README.md +101 -0
  718. package/skills/local-places/SKILL.md +91 -0
  719. package/skills/local-places/pyproject.toml +27 -0
  720. package/skills/local-places/src/local_places/__init__.py +2 -0
  721. package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
  722. package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
  723. package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
  724. package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
  725. package/skills/local-places/src/local_places/google_places.py +314 -0
  726. package/skills/local-places/src/local_places/main.py +65 -0
  727. package/skills/local-places/src/local_places/schemas.py +107 -0
  728. package/skills/mcporter/SKILL.md +38 -0
  729. package/skills/model-usage/SKILL.md +45 -0
  730. package/skills/model-usage/references/codexbar-cli.md +28 -0
  731. package/skills/model-usage/scripts/model_usage.py +310 -0
  732. package/skills/nano-banana-pro/SKILL.md +30 -0
  733. package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
  734. package/skills/nano-pdf/SKILL.md +20 -0
  735. package/skills/nexus-cloud/SKILL.md +53 -0
  736. package/skills/nexus-cloud/docs/security.md +24 -0
  737. package/skills/nexus-cloud/docs/setup.md +51 -0
  738. package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
  739. package/skills/notion/SKILL.md +156 -0
  740. package/skills/obsidian/SKILL.md +55 -0
  741. package/skills/onboarding/SKILL.md +515 -0
  742. package/skills/onboarding/docs/CAPABILITIES.md +444 -0
  743. package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
  744. package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
  745. package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
  746. package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
  747. package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
  748. package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
  749. package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
  750. package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
  751. package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
  752. package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
  753. package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
  754. package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
  755. package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
  756. package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
  757. package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
  758. package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
  759. package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
  760. package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
  761. package/skills/onboarding/docs/agent-apple-id.md +289 -0
  762. package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
  763. package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
  764. package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
  765. package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
  766. package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
  767. package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
  768. package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
  769. package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
  770. package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
  771. package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
  772. package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
  773. package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
  774. package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
  775. package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
  776. package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
  777. package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
  778. package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
  779. package/skills/onboarding/scripts/ralph/prd.json +215 -0
  780. package/skills/onboarding/scripts/ralph/progress.txt +99 -0
  781. package/skills/onboarding/scripts/ralph/prompt.md +87 -0
  782. package/skills/onboarding/scripts/ralph/ralph.log +84 -0
  783. package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
  784. package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
  785. package/skills/openai-image-gen/SKILL.md +31 -0
  786. package/skills/openai-image-gen/scripts/gen.py +173 -0
  787. package/skills/openai-whisper/SKILL.md +19 -0
  788. package/skills/openai-whisper-api/SKILL.md +43 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  790. package/skills/openhue/SKILL.md +30 -0
  791. package/skills/oracle/SKILL.md +105 -0
  792. package/skills/ordercli/SKILL.md +47 -0
  793. package/skills/peekaboo/SKILL.md +153 -0
  794. package/skills/qmd/SKILL.md +32 -0
  795. package/skills/qmd/docs/mcp.md +30 -0
  796. package/skills/qmd/docs/ollama.md +42 -0
  797. package/skills/qmd/docs/setup.md +44 -0
  798. package/skills/sag/SKILL.md +62 -0
  799. package/skills/skill-cli-template/SKILL.md +109 -0
  800. package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
  801. package/skills/slack/SKILL.md +144 -0
  802. package/skills/songsee/SKILL.md +29 -0
  803. package/skills/sonoscli/SKILL.md +26 -0
  804. package/skills/spotify-player/SKILL.md +34 -0
  805. package/skills/summarize/SKILL.md +49 -0
  806. package/skills/telegram/SKILL.md +20 -0
  807. package/skills/telegram/docs/pairing.md +30 -0
  808. package/skills/telegram/docs/setup.md +41 -0
  809. package/skills/telegram/docs/webhook.md +17 -0
  810. package/skills/things-mac/SKILL.md +61 -0
  811. package/skills/tmux/SKILL.md +121 -0
  812. package/skills/tmux/scripts/find-sessions.sh +112 -0
  813. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  814. package/skills/trello/SKILL.md +84 -0
  815. package/skills/upstream-sync/SKILL.md +151 -0
  816. package/skills/upstream-sync/scripts/auto-port.sh +227 -0
  817. package/skills/upstream-sync/scripts/check-all.sh +88 -0
  818. package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
  819. package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
  820. package/skills/video-frames/SKILL.md +29 -0
  821. package/skills/video-frames/scripts/frame.sh +81 -0
  822. package/skills/wacli/SKILL.md +48 -0
  823. package/skills/wacli/docs/auth.md +21 -0
  824. package/skills/wacli/docs/backup.md +9 -0
  825. package/skills/wacli/docs/troubleshooting.md +21 -0
  826. package/skills/weather/SKILL.md +53 -0
  827. package/skills/weather/docs/usage.md +40 -0
@@ -0,0 +1,371 @@
1
+ ---
2
+ summary: "Daily NexusBot upstream sync monitoring via cron jobs"
3
+ read_when:
4
+ - Setting up automated upstream monitoring
5
+ - Configuring daily sync checks for nexus and pi-ai
6
+ - Understanding cron job patterns in Nexus
7
+ ---
8
+
9
+ # NexusBot Sync Automation
10
+
11
+ Monitor nexus and pi-ai upstreams daily using Nexus cron jobs to stay informed about changes that may need porting.
12
+
13
+ ## Overview
14
+
15
+ Nexus is a fork of NexusBot and uses pi-ai packages for authentication. To keep nexus current, we need to monitor:
16
+ - **NexusBot repository**: New commits in the main branch
17
+ - **Pi-AI packages**: Version updates for `@mariozechner/pi-agent-core` and `@mariozechner/pi-coding-agent`
18
+
19
+ The `upstream-sync` skill (see `skills/upstream-sync/SKILL.md`) provides scripts to check both upstreams. This document shows how to automate these checks using Nexus cron jobs.
20
+
21
+ ## Quick Start
22
+
23
+ Create a daily cron job that runs at 9 AM:
24
+
25
+ ```bash
26
+ nexus cron add \
27
+ --name "Daily upstream sync check" \
28
+ --cron "0 9 * * *" \
29
+ --tz "America/Los_Angeles" \
30
+ --session isolated \
31
+ --wake now \
32
+ --message "Run the upstream-sync skill (check-all.sh) and show me a summary of any new commits or version updates." \
33
+ --deliver \
34
+ --provider last
35
+ ```
36
+
37
+ This will:
38
+ 1. Run daily at 9 AM (Pacific time)
39
+ 2. Execute in an isolated session (won't pollute your main session)
40
+ 3. Check both nexus and pi-ai for changes
41
+ 4. Send you a notification via your last-used channel (WhatsApp, Telegram, etc.)
42
+
43
+ ## Cron Job Configuration
44
+
45
+ ### Schedule Options
46
+
47
+ **Daily at specific time:**
48
+ ```bash
49
+ --cron "0 9 * * *" --tz "America/Los_Angeles"
50
+ ```
51
+
52
+ **Weekdays only (Mon-Fri):**
53
+ ```bash
54
+ --cron "0 9 * * 1-5" --tz "America/Los_Angeles"
55
+ ```
56
+
57
+ **Every 12 hours:**
58
+ ```bash
59
+ --every "12h"
60
+ ```
61
+
62
+ **One-time check (tomorrow at 9 AM):**
63
+ ```bash
64
+ --at "2026-01-10T09:00:00-08:00"
65
+ ```
66
+
67
+ ### Session Options
68
+
69
+ **Isolated session (recommended):**
70
+ ```bash
71
+ --session isolated --wake now
72
+ ```
73
+ - Runs in separate session (`cron:<jobId>`)
74
+ - Won't clutter your main conversation history
75
+ - Can run in parallel with main session
76
+ - Still posts a summary to main when complete
77
+
78
+ **Main session:**
79
+ ```bash
80
+ --session main --wake now
81
+ ```
82
+ - Runs in your main session
83
+ - Shows full output in conversation history
84
+ - Serialized with other main session activity
85
+
86
+ ### Delivery Options
87
+
88
+ **Deliver to last-used provider:**
89
+ ```bash
90
+ --deliver --provider last
91
+ ```
92
+
93
+ **Deliver to specific provider:**
94
+ ```bash
95
+ --deliver --provider whatsapp --to "+1234567890"
96
+ ```
97
+
98
+ **No delivery (main session summary only):**
99
+ ```bash
100
+ # Omit --deliver flag
101
+ ```
102
+
103
+ ## Example Configurations
104
+
105
+ ### 1. Daily morning check (recommended)
106
+
107
+ Check every morning and get notified via your preferred messaging app:
108
+
109
+ ```bash
110
+ nexus cron add \
111
+ --name "Morning upstream sync" \
112
+ --cron "0 8 * * *" \
113
+ --tz "America/Los_Angeles" \
114
+ --session isolated \
115
+ --wake now \
116
+ --message "Check upstream-sync (all sources) and notify me if there are new commits or package updates. Focus on: auth, sessions, gateway, ODU patterns." \
117
+ --deliver \
118
+ --provider last
119
+ ```
120
+
121
+ ### 2. Weekday check (business hours only)
122
+
123
+ Skip weekends:
124
+
125
+ ```bash
126
+ nexus cron add \
127
+ --name "Weekday upstream sync" \
128
+ --cron "0 9 * * 1-5" \
129
+ --tz "America/Los_Angeles" \
130
+ --session isolated \
131
+ --wake now \
132
+ --message "Run upstream-sync check-all.sh and summarize any changes." \
133
+ --deliver \
134
+ --provider last
135
+ ```
136
+
137
+ ### 3. Quiet check (no notifications)
138
+
139
+ Check daily but only add summary to main session (no push notifications):
140
+
141
+ ```bash
142
+ nexus cron add \
143
+ --name "Silent upstream sync" \
144
+ --cron "0 6 * * *" \
145
+ --tz "America/Los_Angeles" \
146
+ --session isolated \
147
+ --wake now \
148
+ --message "Run upstream-sync check-all.sh and summarize findings."
149
+ # Note: no --deliver flag
150
+ ```
151
+
152
+ ### 4. Weekly detailed review
153
+
154
+ Once per week, get a more detailed summary:
155
+
156
+ ```bash
157
+ nexus cron add \
158
+ --name "Weekly upstream review" \
159
+ --cron "0 10 * * 1" \
160
+ --tz "America/Los_Angeles" \
161
+ --session isolated \
162
+ --wake now \
163
+ --message "Run upstream-sync check-all.sh with --limit 20 to show more commits. Review each commit and highlight any that should be ported to nexus, especially: auth changes, session improvements, gateway fixes, ODU patterns, or API updates." \
164
+ --deliver \
165
+ --provider last
166
+ ```
167
+
168
+ ## Managing Cron Jobs
169
+
170
+ ### List all cron jobs
171
+
172
+ ```bash
173
+ nexus cron list
174
+ ```
175
+
176
+ With JSON output:
177
+ ```bash
178
+ nexus cron list --json
179
+ ```
180
+
181
+ ### View specific job details
182
+
183
+ ```bash
184
+ nexus cron list --json | jq '.jobs[] | select(.name | contains("upstream"))'
185
+ ```
186
+
187
+ ### Edit existing job
188
+
189
+ ```bash
190
+ # Change schedule
191
+ nexus cron edit <job-id> --cron "0 10 * * *"
192
+
193
+ # Change message
194
+ nexus cron edit <job-id> --message "New message text"
195
+
196
+ # Enable/disable delivery
197
+ nexus cron edit <job-id> --deliver
198
+ ```
199
+
200
+ ### Disable/enable job
201
+
202
+ ```bash
203
+ # Temporarily disable
204
+ nexus cron disable <job-id>
205
+
206
+ # Re-enable
207
+ nexus cron enable <job-id>
208
+ ```
209
+
210
+ ### Remove job
211
+
212
+ ```bash
213
+ nexus cron rm <job-id>
214
+ ```
215
+
216
+ ### Test job manually
217
+
218
+ Run the job immediately without waiting for schedule:
219
+
220
+ ```bash
221
+ nexus cron run <job-id>
222
+ ```
223
+
224
+ ### View job run history
225
+
226
+ See past executions:
227
+
228
+ ```bash
229
+ nexus cron runs --id <job-id> --limit 10
230
+ ```
231
+
232
+ ## What to Watch For
233
+
234
+ When you receive upstream sync notifications, prioritize porting these types of changes:
235
+
236
+ ### NexusBot commits to review:
237
+ - **Authentication**: OAuth, token management, credential storage
238
+ - **Sessions**: Session format, metadata, compaction
239
+ - **Gateway**: Message routing, provider integration, WebSocket handling
240
+ - **Agent runtime**: ODU patterns, agent lifecycle, control plane
241
+ - **API changes**: New Anthropic SDK features or breaking changes
242
+
243
+ ### Pi-AI package updates to review:
244
+ - **Auth/OAuth**: Changes to authentication flow
245
+ - **Session management**: Session format or API changes
246
+ - **Agent runtime**: Core agent behavior or tool changes
247
+ - **Breaking changes**: Version jumps or deprecation notices
248
+
249
+ ## Advanced: Custom Filters
250
+
251
+ ### Check only NexusBot commits by specific author
252
+
253
+ ```bash
254
+ nexus cron add \
255
+ --name "Track Peter's commits" \
256
+ --cron "0 9 * * *" \
257
+ --tz "America/Los_Angeles" \
258
+ --session isolated \
259
+ --wake now \
260
+ --message "Run check-nexus.sh --author peter --limit 10 and summarize the changes." \
261
+ --deliver \
262
+ --provider last
263
+ ```
264
+
265
+ ### Check only auth-related commits
266
+
267
+ ```bash
268
+ nexus cron add \
269
+ --name "Auth change monitor" \
270
+ --cron "0 9 * * *" \
271
+ --tz "America/Los_Angeles" \
272
+ --session isolated \
273
+ --wake now \
274
+ --message "Run check-nexus.sh --grep auth --limit 10 and tell me if any auth changes need porting." \
275
+ --deliver \
276
+ --provider last
277
+ ```
278
+
279
+ ### Check recent commits only (last 7 days)
280
+
281
+ ```bash
282
+ nexus cron add \
283
+ --name "Recent changes only" \
284
+ --every "12h" \
285
+ --session isolated \
286
+ --wake now \
287
+ --message "Run check-nexus.sh --since '7 days ago' --limit 20 and highlight important changes." \
288
+ --deliver \
289
+ --provider last
290
+ ```
291
+
292
+ ## Troubleshooting
293
+
294
+ ### Job not running
295
+
296
+ Check if cron is enabled:
297
+ ```bash
298
+ nexus cron status
299
+ ```
300
+
301
+ If disabled, enable via config:
302
+ ```json5
303
+ {
304
+ "cron": {
305
+ "enabled": true
306
+ }
307
+ }
308
+ ```
309
+
310
+ ### Job running but no output
311
+
312
+ Check the job's run history:
313
+ ```bash
314
+ nexus cron runs --id <job-id> --limit 5
315
+ ```
316
+
317
+ Look for errors in the logs:
318
+ ```bash
319
+ # Gateway logs show cron execution
320
+ tail -f ~/nexus/state/logs/gateway.log | grep cron
321
+ ```
322
+
323
+ ### Notification not delivered
324
+
325
+ Verify your provider is configured:
326
+ ```bash
327
+ nexus providers list
328
+ ```
329
+
330
+ Try running manually to see output:
331
+ ```bash
332
+ nexus cron run <job-id> --force
333
+ ```
334
+
335
+ ### Paths not found (nexus or nexus)
336
+
337
+ Set environment variables in your config or shell:
338
+ ```bash
339
+ export NEXUS_PATH="/path/to/nexus"
340
+ export NEXUS_PATH="/path/to/nexus"
341
+ ```
342
+
343
+ Or specify in the cron message:
344
+ ```bash
345
+ --message "Run check-nexus.sh --nexus-path /path/to/nexus and summarize."
346
+ ```
347
+
348
+ ## Disabling Sync Monitoring
349
+
350
+ To temporarily stop all upstream sync checks:
351
+
352
+ 1. List upstream sync jobs:
353
+ ```bash
354
+ nexus cron list | grep -i upstream
355
+ ```
356
+
357
+ 2. Disable each job:
358
+ ```bash
359
+ nexus cron disable <job-id>
360
+ ```
361
+
362
+ 3. Or remove permanently:
363
+ ```bash
364
+ nexus cron rm <job-id>
365
+ ```
366
+
367
+ ## See Also
368
+
369
+ - [Cron system documentation](../cron.md) - Full cron system RFC
370
+ - [Upstream sync skill](../../skills/upstream-sync/SKILL.md) - Manual sync checking
371
+ - [Gateway documentation](../gateway.md) - Gateway architecture and scheduling
@@ -0,0 +1,74 @@
1
+ ---
2
+ summary: "Background bash execution and process management"
3
+ read_when:
4
+ - Adding or modifying background bash behavior
5
+ - Debugging long-running bash tasks
6
+ ---
7
+
8
+ # Background Bash + Process Tool
9
+
10
+ Nexus runs shell commands through the `bash` tool and keeps long‑running tasks in memory. The `process` tool manages those background sessions.
11
+
12
+ ## bash tool
13
+
14
+ Key parameters:
15
+ - `command` (required)
16
+ - `yieldMs` (default 10000): auto‑background after this delay
17
+ - `background` (bool): background immediately
18
+ - `timeout` (seconds, default 1800): kill the process after this timeout
19
+ - `elevated` (bool): run on host if elevated mode is enabled/allowed
20
+ - Need a real TTY? Use the tmux skill.
21
+ - `workdir`, `env`
22
+
23
+ Behavior:
24
+ - Foreground runs return output directly.
25
+ - When backgrounded (explicit or timeout), the tool returns `status: "running"` + `sessionId` and a short tail.
26
+ - Output is kept in memory until the session is polled or cleared.
27
+
28
+ Environment overrides:
29
+ - `PI_BASH_YIELD_MS`: default yield (ms)
30
+ - `PI_BASH_MAX_OUTPUT_CHARS`: in‑memory output cap (chars)
31
+ - `PI_BASH_JOB_TTL_MS`: TTL for finished sessions (ms, bounded to 1m–3h)
32
+
33
+ Config (preferred):
34
+ - `agent.bash.backgroundMs` (default 10000)
35
+ - `agent.bash.timeoutSec` (default 1800)
36
+ - `agent.bash.cleanupMs` (default 1800000)
37
+
38
+ ## process tool
39
+
40
+ Actions:
41
+ - `list`: running + finished sessions
42
+ - `poll`: drain new output for a session (also reports exit status)
43
+ - `log`: read the aggregated output (supports `offset` + `limit`)
44
+ - `write`: send stdin (`data`, optional `eof`)
45
+ - `kill`: terminate a background session
46
+ - `clear`: remove a finished session from memory
47
+ - `remove`: kill if running, otherwise clear if finished
48
+
49
+ Notes:
50
+ - Only backgrounded sessions are listed/persisted in memory.
51
+ - Sessions are lost on process restart (no disk persistence).
52
+ - Session logs are only saved to chat history if you run `process poll/log` and the tool result is recorded.
53
+ - `process list` includes a derived `name` (command verb + target) for quick scans.
54
+ - `process log` uses line-based `offset`/`limit` (omit `offset` to grab the last N lines).
55
+
56
+ ## Examples
57
+
58
+ Run a long task and poll later:
59
+ ```json
60
+ {"tool": "bash", "command": "sleep 5 && echo done", "yieldMs": 1000}
61
+ ```
62
+ ```json
63
+ {"tool": "process", "action": "poll", "sessionId": "<id>"}
64
+ ```
65
+
66
+ Start immediately in background:
67
+ ```json
68
+ {"tool": "bash", "command": "npm run build", "background": true}
69
+ ```
70
+
71
+ Send stdin:
72
+ ```json
73
+ {"tool": "process", "action": "write", "sessionId": "<id>", "data": "y\n"}
74
+ ```
package/docs/bash.md ADDED
@@ -0,0 +1,32 @@
1
+ ---
2
+ summary: "Bash tool usage, stdin modes, and TTY support"
3
+ read_when:
4
+ - Using or modifying the bash tool
5
+ - Debugging stdin or TTY behavior
6
+ ---
7
+
8
+ # Bash tool
9
+
10
+ Run shell commands in the workspace. Supports foreground + background execution via `process`.
11
+
12
+ ## Parameters
13
+
14
+ - `command` (required)
15
+ - `yieldMs` (default 10000): auto-background after delay
16
+ - `background` (bool): background immediately
17
+ - `timeout` (seconds, default 1800): kill on expiry
18
+ - `elevated` (bool): run on host if elevated mode is enabled/allowed
19
+ - Need a real TTY? Use the tmux skill.
20
+
21
+ ## Examples
22
+
23
+ Foreground:
24
+ ```json
25
+ {"tool":"bash","command":"ls -la"}
26
+ ```
27
+
28
+ Background + poll:
29
+ ```json
30
+ {"tool":"bash","command":"npm run build","yieldMs":1000}
31
+ {"tool":"process","action":"poll","sessionId":"<id>"}
32
+ ```
@@ -0,0 +1,71 @@
1
+ ---
2
+ summary: "Use Amazon Bedrock (Converse API) models with Nexus"
3
+ read_when:
4
+ - You want to use Amazon Bedrock models with Nexus
5
+ - You need AWS credential/region setup for model calls
6
+ ---
7
+ # Amazon Bedrock
8
+
9
+ Nexus can use **Amazon Bedrock** models via pi‑ai’s **Bedrock Converse**
10
+ streaming provider. Bedrock auth uses the **AWS SDK default credential chain**,
11
+ not an API key.
12
+
13
+ ## What pi‑ai supports
14
+
15
+ - Provider: `amazon-bedrock`
16
+ - API: `bedrock-converse-stream`
17
+ - Auth: AWS credentials (env vars, shared config, or instance role)
18
+ - Region: `AWS_REGION` or `AWS_DEFAULT_REGION` (default: `us-east-1`)
19
+
20
+ ## Setup (manual)
21
+
22
+ 1) Ensure AWS credentials are available on the **gateway host**:
23
+
24
+ ```bash
25
+ export AWS_ACCESS_KEY_ID="AKIA..."
26
+ export AWS_SECRET_ACCESS_KEY="..."
27
+ export AWS_REGION="us-east-1"
28
+ # Optional:
29
+ export AWS_SESSION_TOKEN="..."
30
+ export AWS_PROFILE="your-profile"
31
+ ```
32
+
33
+ 2) Add a Bedrock provider and model to your config:
34
+
35
+ ```json5
36
+ {
37
+ models: {
38
+ providers: {
39
+ "amazon-bedrock": {
40
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
41
+ api: "bedrock-converse-stream",
42
+ models: [
43
+ {
44
+ id: "anthropic.claude-3-7-sonnet-20250219-v1:0",
45
+ name: "Claude 3.7 Sonnet (Bedrock)",
46
+ reasoning: true,
47
+ input: ["text"],
48
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
49
+ contextWindow: 200000,
50
+ maxTokens: 8192
51
+ }
52
+ ]
53
+ }
54
+ }
55
+ },
56
+ agents: {
57
+ defaults: {
58
+ model: { primary: "amazon-bedrock/anthropic.claude-3-7-sonnet-20250219-v1:0" }
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ## Notes
65
+
66
+ - Bedrock requires **model access** enabled in your AWS account/region.
67
+ - If you use profiles, set `AWS_PROFILE` on the gateway host.
68
+ - Reasoning support depends on the model; check the Bedrock model card for
69
+ current capabilities.
70
+ - If you prefer a managed key flow, you can also place an OpenAI‑compatible
71
+ proxy in front of Bedrock and configure it as an OpenAI provider instead.
@@ -0,0 +1,159 @@
1
+ ---
2
+ summary: "Bonjour/mDNS discovery + debugging (Gateway beacons, clients, and common failure modes)"
3
+ read_when:
4
+ - Debugging Bonjour discovery issues on macOS/iOS
5
+ - Changing mDNS service types, TXT records, or discovery UX
6
+ ---
7
+ # Bonjour / mDNS discovery
8
+
9
+ Nexus uses Bonjour (mDNS / DNS-SD) as a **LAN-only convenience** to discover a running Gateway bridge transport. It is best-effort and does **not** replace SSH or Tailnet-based connectivity.
10
+
11
+ ## Wide-Area Bonjour (Unicast DNS-SD) over Tailscale
12
+
13
+ If you want iOS node auto-discovery while the Gateway is on another network (e.g. Vienna ⇄ London), you can keep the `NWBrowser` UX but switch discovery from multicast mDNS (`local.`) to **unicast DNS-SD** (“Wide-Area Bonjour”) over Tailscale.
14
+
15
+ High level:
16
+
17
+ 1) Run a DNS server on the gateway host (reachable via tailnet IP).
18
+ 2) Publish DNS-SD records for `_nexus-bridge._tcp` in a dedicated zone (example: `nexus.internal.`).
19
+ 3) Configure Tailscale **split DNS** so `nexus.internal` resolves via that DNS server for clients (including iOS).
20
+
21
+ Nexus standardizes on the discovery domain `nexus.internal.` for this mode. iOS/Android nodes browse both `local.` and `nexus.internal.` automatically (no per-device knob).
22
+
23
+ ### Gateway config (recommended)
24
+
25
+ On the gateway host (the machine running the Gateway bridge), add to `~/nexus/state/nexus.json` (JSON5):
26
+
27
+ ```json5
28
+ {
29
+ bridge: { bind: "tailnet" }, // tailnet-only (recommended)
30
+ discovery: { wideArea: { enabled: true } } // enables nexus.internal DNS-SD publishing
31
+ }
32
+ ```
33
+
34
+ ### One-time DNS server setup (gateway host)
35
+
36
+ On the gateway host (macOS), run:
37
+
38
+ ```bash
39
+ nexus dns setup --apply
40
+ ```
41
+
42
+ This installs CoreDNS and configures it to:
43
+ - listen on port 53 **only** on the gateway’s Tailscale interface IPs
44
+ - serve the zone `nexus.internal.` from the gateway-owned zone file `~/nexus/state/dns/nexus.internal.db`
45
+
46
+ The Gateway writes/updates that zone file when `discovery.wideArea.enabled` is true.
47
+
48
+ Validate from any tailnet-connected machine:
49
+
50
+ ```bash
51
+ dns-sd -B _nexus-bridge._tcp nexus.internal.
52
+ dig @<TAILNET_IPV4> -p 53 _nexus-bridge._tcp.nexus.internal PTR +short
53
+ ```
54
+
55
+ ### Tailscale DNS settings
56
+
57
+ In the Tailscale admin console:
58
+
59
+ - Add a nameserver pointing at the gateway’s tailnet IP (UDP/TCP 53).
60
+ - Add split DNS so the domain `nexus.internal` uses that nameserver.
61
+
62
+ Once clients accept tailnet DNS, iOS nodes can browse `_nexus-bridge._tcp` in `nexus.internal.` without multicast.
63
+ Wide-area beacons also include `tailnetDns` (when available) so the macOS app can auto-fill SSH targets off-LAN.
64
+
65
+ ### Bridge listener security (recommended)
66
+
67
+ The bridge port (default `18790`) is a plain TCP service. By default it binds to `0.0.0.0`, which makes it reachable from *any* interface on the gateway machine (LAN/Wi‑Fi/Tailscale).
68
+
69
+ For a tailnet-only setup, bind it to the Tailscale IP instead:
70
+
71
+ - Set `bridge.bind: "tailnet"` in `~/nexus/state/nexus.json`.
72
+ - Restart the Gateway (or restart the macOS menubar app via `./scripts/restart-mac.sh` on that machine).
73
+
74
+ This keeps the bridge reachable only from devices on your tailnet (while still listening on loopback for local/SSH port-forwards).
75
+
76
+ ## What advertises
77
+
78
+ Only the **Node Gateway** (`nexus` / `nexus gateway`) advertises Bonjour beacons.
79
+
80
+ - Implementation: `src/infra/bonjour.ts`
81
+ - Gateway wiring: `src/gateway/server.ts`
82
+
83
+ ## Service types
84
+
85
+ - `_nexus-bridge._tcp` — bridge transport beacon (used by macOS/iOS/Android nodes).
86
+
87
+ ## TXT keys (non-secret hints)
88
+
89
+ The Gateway advertises small non-secret hints to make UI flows convenient:
90
+
91
+ - `role=gateway`
92
+ - `lanHost=<hostname>.local`
93
+ - `sshPort=<port>` (defaults to 22 when not overridden)
94
+ - `gatewayPort=<port>` (informational; the Gateway WS is typically loopback-only)
95
+ - `bridgePort=<port>` (only when bridge is enabled)
96
+ - `canvasPort=<port>` (only when the canvas host is enabled + reachable; default `18793`; serves `/__nexus__/canvas/`)
97
+ - `cliPath=<path>` (optional; absolute path to a runnable `nexus` entrypoint or binary)
98
+ - `tailnetDns=<magicdns>` (optional hint; auto-detected from Tailscale when available; may be absent)
99
+
100
+ ## Debugging on macOS
101
+
102
+ Useful built-in tools:
103
+
104
+ - Browse instances:
105
+ - `dns-sd -B _nexus-bridge._tcp local.`
106
+ - Resolve one instance (replace `<instance>`):
107
+ - `dns-sd -L "<instance>" _nexus-bridge._tcp local.`
108
+
109
+ If browsing shows instances but resolving fails, you’re usually hitting a LAN policy / multicast issue.
110
+
111
+ ## Debugging in Gateway logs
112
+
113
+ The Gateway writes a rolling log file (printed on startup as `gateway log file: ...`).
114
+
115
+ Look for `bonjour:` lines, especially:
116
+
117
+ - `bonjour: advertise failed ...` (probing/announce failure)
118
+ - `bonjour: ... name conflict resolved` / `hostname conflict resolved`
119
+ - `bonjour: watchdog detected non-announced service; attempting re-advertise ...` (self-heal attempt after sleep/interface churn)
120
+
121
+ ## Debugging on iOS node
122
+
123
+ The iOS node app discovers bridges via `NWBrowser` browsing `_nexus-bridge._tcp`.
124
+
125
+ To capture what the browser is doing:
126
+
127
+ - Settings → Bridge → Advanced → enable **Discovery Debug Logs**
128
+ - Settings → Bridge → Advanced → open **Discovery Logs** → reproduce the “Searching…” / “No bridges found” case → **Copy**
129
+
130
+ The log includes browser state transitions (`ready`, `waiting`, `failed`, `cancelled`) and result-set changes (added/removed counts).
131
+
132
+ ## Common failure modes
133
+
134
+ - **Bonjour doesn’t cross networks**: London/Vienna style setups require Tailnet (MagicDNS/IP) or SSH.
135
+ - **Multicast blocked**: some Wi‑Fi networks (enterprise/hotels) disable mDNS; expect “no results”.
136
+ - **Sleep / interface churn**: macOS may temporarily drop mDNS results when switching networks; retry.
137
+ - **Browse works but resolve fails (iOS “NoSuchRecord”)**: make sure the advertiser publishes a valid SRV target hostname.
138
+ - Implementation detail: `@homebridge/ciao` defaults `hostname` to the *service instance name* when `hostname` is omitted. If your instance name contains spaces/parentheses, some resolvers can fail to resolve the implied A/AAAA record.
139
+ - Fix: set an explicit DNS-safe `hostname` (single label; no `.local`) in `src/infra/bonjour.ts`.
140
+
141
+ ## Escaped instance names (`\\032`)
142
+ Bonjour/DNS-SD often escapes bytes in service instance names as decimal `\\DDD` sequences (e.g. spaces become `\\032`).
143
+
144
+ - This is normal at the protocol level.
145
+ - UIs should decode for display (iOS uses `BonjourEscapes.decode` in `apps/shared/NexusKit`).
146
+
147
+ ## Disabling / configuration
148
+
149
+ - `NEXUS_DISABLE_BONJOUR=1` disables advertising.
150
+ - `NEXUS_BRIDGE_ENABLED=0` disables the bridge listener (and therefore the bridge beacon).
151
+ - `bridge.bind` / `bridge.port` in `~/nexus/state/nexus.json` control bridge bind/port (preferred).
152
+ - `NEXUS_BRIDGE_HOST` / `NEXUS_BRIDGE_PORT` still work as a back-compat override when `bridge.bind` / `bridge.port` are not set.
153
+ - `NEXUS_SSH_PORT` overrides the SSH port advertised in `_nexus-bridge._tcp`.
154
+ - `NEXUS_TAILNET_DNS` publishes a `tailnetDns` hint (MagicDNS) in `_nexus-bridge._tcp`. If unset, the gateway auto-detects Tailscale and publishes the MagicDNS name when possible.
155
+
156
+ ## Related docs
157
+
158
+ - Discovery policy and transport selection: [`docs/discovery.md`](https://docs.nexus.bot/discovery)
159
+ - Node pairing + approvals: [`docs/gateway/pairing.md`](https://docs.nexus.bot/gateway/pairing)