@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,702 @@
1
+ # Nexus Skill Gateway Design
2
+
3
+ > **Note**: State layout and credential storage are defined in
4
+ > `STATE_ARCHITECTURE.md`. References to per-skill state and usage logs in this
5
+ > design are canonical under `~/nexus/state/nexus/skills/{skill}/`.
6
+
7
+ *Complete specification for the skill gateway CLI that solves the two hard problems.*
8
+
9
+ ---
10
+
11
+ ## Overview
12
+
13
+ The skill gateway is a CLI interface that:
14
+ 1. **Gates all skill discovery** — Agent sees only what's available/configured
15
+ 2. **Wraps all skill execution** — Every invocation is logged automatically
16
+ 3. **Tracks usage patterns** — Build "neural pathways" of what works
17
+ 4. **Simplifies agent instructions** — Just "use `nexus skill run X`"
18
+
19
+ This solves both hard problems:
20
+ - **Problem 1 (Tracking State)**: Automatic via usage logging + execution gating
21
+ - **Problem 2 (Injecting State)**: Agent queries CLI, gets current state
22
+
23
+ ---
24
+
25
+ ## Design Principles
26
+
27
+ 1. **CLI only** — No MCP servers, works everywhere including Cursor
28
+ 2. **Build on existing infrastructure** — Extend current `nexus skills` commands
29
+ 3. **Minimal SKILL.md changes** — New metadata goes in `~/nexus/state/`, not frontmatter
30
+ 4. **Option C verification** — Verify once on first run, trust until failure
31
+ 5. **Automatic logging** — Agent doesn't report, gateway captures everything
32
+
33
+ ---
34
+
35
+ ## Command Structure
36
+
37
+ ### Existing Commands (Keep As-Is)
38
+
39
+ ```bash
40
+ nexus skills list [--ready|--locked|--json] # Existing, enhance with status
41
+ nexus skills refresh # Existing
42
+ nexus skills cursor-rules # Existing
43
+ nexus skills path # Existing
44
+ ```
45
+
46
+ ### New Commands
47
+
48
+ ```bash
49
+ # Skill details (NEW)
50
+ nexus skill show <name> # Show prompt + metadata + setup guide
51
+ nexus skill verify <name> # Check if configured/working
52
+
53
+ # Skill execution (NEW - THE GATEWAY)
54
+ nexus skill run <name> [-- args] # Run tool-based skill OR return prompt
55
+
56
+ # Usage statistics (NEW)
57
+ nexus skill stats [name] # Usage statistics (all or per-skill)
58
+
59
+ # State (NEW - convenience alias)
60
+ nexus status # Overall capability state (alias for skills list --summary)
61
+ ```
62
+
63
+ ---
64
+
65
+ ## New Metadata Schema
66
+
67
+ ### Per-Skill State (`~/nexus/state/nexus/skills/{skill}/state.json`)
68
+
69
+ This is separate from the skills manifest (`state/nexus/skills/manifest.json`). It tracks runtime state that changes:
70
+
71
+ ```typescript
72
+ type SkillState = {
73
+ version: 1;
74
+ // Execution metadata
75
+ tool?: string; // CLI binary name (e.g., "gog", "eve", "op")
76
+ verify?: string; // Command to verify skill works (e.g., "gog gmail labels list")
77
+
78
+ // Runtime state (updated by gateway)
79
+ configured: boolean; // Has verification passed?
80
+ configuredAt?: string; // ISO timestamp of first successful verification
81
+ lastVerified?: string; // ISO timestamp of last verification
82
+ lastUsed?: string; // ISO timestamp of last execution
83
+ lastError?: string; // Last error message if failed
84
+
85
+ // Stats (computed from usage log)
86
+ totalInvocations?: number;
87
+ successRate?: number;
88
+ };
89
+ ```
90
+
91
+ ### Why Separate from SKILL.md?
92
+
93
+ 1. **SKILL.md stays clean** — Standard format, shareable, no nexus-specific cruft
94
+ 2. **State is mutable** — `configured`, `lastUsed`, etc. change frequently
95
+ 3. **Consistent layout** — One file per skill plus the manifest
96
+ 4. **Backward compatible** — Existing skills work without modification
97
+
98
+ ### Initial Population
99
+
100
+ On first run or `nexus skills refresh`, populate per-skill state files by:
101
+ 1. Scanning all skills
102
+ 2. For skills with known tools, auto-populate `tool` field
103
+ 3. Set `configured: false` until verified
104
+
105
+ We can hardcode a mapping for known skills initially:
106
+
107
+ ```typescript
108
+ const KNOWN_SKILL_TOOLS: Record<string, { tool: string; verify: string }> = {
109
+ 'gog': { tool: 'gog', verify: 'gog gmail labels list --account default' },
110
+ 'eve': { tool: 'eve', verify: 'eve messages --limit 1' },
111
+ '1password': { tool: 'op', verify: 'op whoami' },
112
+ 'tmux': { tool: 'tmux', verify: 'tmux -V' },
113
+ 'peekaboo': { tool: 'peekaboo', verify: 'peekaboo --version' },
114
+ // ... etc
115
+ };
116
+ ```
117
+
118
+ Later, this can move to SKILL.md frontmatter or a separate config file per skill.
119
+
120
+ ---
121
+
122
+ ## Command Specifications
123
+
124
+ ### `nexus skill show <name>`
125
+
126
+ **Purpose**: Display skill details, prompt, and setup instructions.
127
+
128
+ **Implementation**:
129
+ 1. Load skill from manifest (existing `loadWorkspaceSkillEntries`)
130
+ 2. Load state from `state/nexus/skills/{skill}/state.json`
131
+ 3. Format and display
132
+
133
+ **Output Format**:
134
+
135
+ ```
136
+ ═══════════════════════════════════════════════════════════════
137
+ 📧 GOG - Google Services Access
138
+ ═══════════════════════════════════════════════════════════════
139
+
140
+ Status: ✅ Configured (last verified: 2026-01-14)
141
+ Tool: gog
142
+ Class: OAuth/Complex (requires Google OAuth setup)
143
+
144
+ Requirements:
145
+ • Binary: gog ✓
146
+ • OAuth: Google account connected ✓
147
+
148
+ Usage Stats:
149
+ • Total invocations: 312
150
+ • Success rate: 98.7%
151
+ • Last used: 2 hours ago
152
+
153
+ ───────────────────────────────────────────────────────────────
154
+ PROMPT
155
+ ───────────────────────────────────────────────────────────────
156
+
157
+ [Full SKILL.md content here]
158
+
159
+ ───────────────────────────────────────────────────────────────
160
+ SETUP (if not configured)
161
+ ───────────────────────────────────────────────────────────────
162
+
163
+ To configure this skill:
164
+ 1. Install: go install github.com/nexus-xyz/gog@latest
165
+ 2. Authenticate: gog auth login
166
+ 3. Verify: nexus skill verify gog
167
+ ```
168
+
169
+ **Flags**:
170
+ - `--json` — Output as JSON
171
+ - `--prompt-only` — Just the prompt content (for agent consumption)
172
+
173
+ ---
174
+
175
+ ### `nexus skill run <name> [-- args]`
176
+
177
+ **Purpose**: The gateway. Execute a skill's tool or return its prompt.
178
+
179
+ **Flow**:
180
+
181
+ ```
182
+ ┌─────────────────────────────────────────────────────────────────┐
183
+ │ nexus skill run <name> [-- args] │
184
+ ├─────────────────────────────────────────────────────────────────┤
185
+ │ │
186
+ │ 1. Load skill metadata │
187
+ │ - From manifest + per-skill state.json │
188
+ │ - If skill not found → error with suggestions │
189
+ │ │
190
+ │ 2. Check if skill has a tool │
191
+ │ - If no tool → return prompt content, log as "prompt", exit │
192
+ │ │
193
+ │ 3. Check if tool binary exists │
194
+ │ - If missing → show install instructions, exit 1 │
195
+ │ │
196
+ │ 4. Check if configured (first-run verification) │
197
+ │ - If never verified → run verify command │
198
+ │ - If verify fails → show setup instructions, exit 1 │
199
+ │ - If verify succeeds → update state, continue │
200
+ │ │
201
+ │ 5. Execute tool with args │
202
+ │ - cmd = exec.Command(tool, args...) │
203
+ │ - Capture stdout/stderr │
204
+ │ - Track duration │
205
+ │ │
206
+ │ 6. Log invocation │
207
+ │ - Append to per-skill usage.log │
208
+ │ - Update per-skill state.json (lastUsed, etc.) │
209
+ │ │
210
+ │ 7. Return output │
211
+ │ - Print captured output to stdout │
212
+ │ - Exit with tool's exit code │
213
+ │ │
214
+ └─────────────────────────────────────────────────────────────────┘
215
+ ```
216
+
217
+ **Implementation (TypeScript)**:
218
+
219
+ ```typescript
220
+ async function runSkill(skillName: string, args: string[]): Promise<void> {
221
+ const skill = await loadSkill(skillName);
222
+ if (!skill) {
223
+ console.error(`Skill '${skillName}' not found.`);
224
+ console.error(`Run 'nexus skills list' to see available skills.`);
225
+ process.exit(1);
226
+ }
227
+
228
+ const state = await loadSkillState(skillName);
229
+
230
+ // Pure prompt skill
231
+ if (!state.tool) {
232
+ console.log(skill.prompt);
233
+ await logUsage({ skill: skillName, type: 'prompt' });
234
+ return;
235
+ }
236
+
237
+ // Check binary exists
238
+ if (!hasBinary(state.tool)) {
239
+ console.error(`Tool '${state.tool}' not found in PATH.`);
240
+ if (skill.install) {
241
+ console.error(`\nInstall with: ${skill.install}`);
242
+ }
243
+ process.exit(1);
244
+ }
245
+
246
+ // First-run verification (Option C)
247
+ if (!state.configured) {
248
+ console.error(`Verifying skill '${skillName}'...`);
249
+ const verified = await verifySkill(skillName, state.verify);
250
+ if (!verified.ok) {
251
+ console.error(`Skill '${skillName}' is not configured.`);
252
+ console.error(`Error: ${verified.error}`);
253
+ console.error(`\nSetup instructions:`);
254
+ console.error(skill.setupGuide || `Run 'nexus skill show ${skillName}' for details.`);
255
+ process.exit(1);
256
+ }
257
+ await updateSkillState(skillName, { configured: true, configuredAt: new Date().toISOString() });
258
+ }
259
+
260
+ // Execute
261
+ const start = Date.now();
262
+ const result = await exec(state.tool, args);
263
+ const duration = Date.now() - start;
264
+
265
+ // Log
266
+ await logUsage({
267
+ skill: skillName,
268
+ type: 'tool',
269
+ args,
270
+ exitCode: result.exitCode,
271
+ durationMs: duration,
272
+ error: result.exitCode !== 0 ? result.stderr : undefined,
273
+ });
274
+
275
+ // Update state
276
+ await updateSkillState(skillName, {
277
+ lastUsed: new Date().toISOString(),
278
+ lastError: result.exitCode !== 0 ? result.stderr.slice(0, 200) : undefined,
279
+ });
280
+
281
+ // Output
282
+ process.stdout.write(result.stdout);
283
+ process.stderr.write(result.stderr);
284
+ process.exit(result.exitCode);
285
+ }
286
+ ```
287
+
288
+ **Flags**:
289
+ - `--dry-run` — Show what would be executed without running
290
+ - `--no-verify` — Skip verification check (for debugging)
291
+ - `--json` — Output as JSON (including metadata)
292
+
293
+ ---
294
+
295
+ ### `nexus skill verify <name>`
296
+
297
+ **Purpose**: Explicitly verify a skill works.
298
+
299
+ **Flow**:
300
+ 1. Load skill state
301
+ 2. If no verify command → "Skill has no verification command"
302
+ 3. Run verify command
303
+ 4. Update state with result
304
+ 5. Report success/failure
305
+
306
+ **Output**:
307
+ ```
308
+ Verifying skill 'gog'...
309
+ Running: gog gmail labels list --account default
310
+
311
+ ✅ Skill 'gog' verified successfully.
312
+ Configured at: 2026-01-14T10:30:00Z
313
+ ```
314
+
315
+ or
316
+
317
+ ```
318
+ Verifying skill 'brave-search'...
319
+ Checking: BRAVE_API_KEY environment variable
320
+
321
+ ❌ Skill 'brave-search' verification failed.
322
+ Error: BRAVE_API_KEY not set
323
+
324
+ Setup instructions:
325
+ 1. Get an API key from https://brave.com/search/api/
326
+ 2. Set: export BRAVE_API_KEY=your-key
327
+ 3. Or add to ~/.zshrc for persistence
328
+ ```
329
+
330
+ ---
331
+
332
+ ### `nexus skill stats [name]`
333
+
334
+ **Purpose**: Show usage statistics.
335
+
336
+ **Implementation**:
337
+ 1. Parse per-skill `usage.log`
338
+ 2. Aggregate by skill
339
+ 3. Calculate success rates, frequency, etc.
340
+ 4. Format output
341
+
342
+ **Output (all skills)**:
343
+ ```
344
+ ═══════════════════════════════════════════════════════════════
345
+ NEXUS SKILL USAGE STATISTICS
346
+ ═══════════════════════════════════════════════════════════════
347
+
348
+ Total invocations: 847 (past 30 days)
349
+ Overall success rate: 96.2%
350
+
351
+ Most Used Skills:
352
+ # Skill Calls Success Avg Time Last Used
353
+ 1. gog 312 98.7% 1.2s 2 hours ago
354
+ 2. eve 198 95.2% 0.8s 1 day ago
355
+ 3. filesystem 89 100% (prompt) 3 hours ago
356
+ 4. 1password 67 99.1% 0.3s 5 hours ago
357
+ 5. computer-use 52 100% (prompt) 1 day ago
358
+
359
+ Recent Failures (past 7 days):
360
+ • brave-search: "API key expired" (3 occurrences)
361
+ • discord: "bot not responding" (1 occurrence)
362
+
363
+ Skill Categories:
364
+ User Data: 412 calls (gog, eve)
365
+ Credentials: 67 calls (1password)
366
+ Prompts: 141 calls (filesystem, computer-use)
367
+ ```
368
+
369
+ **Output (single skill)**:
370
+ ```
371
+ ═══════════════════════════════════════════════════════════════
372
+ GOG USAGE STATISTICS
373
+ ═══════════════════════════════════════════════════════════════
374
+
375
+ Total invocations: 312
376
+ Success rate: 98.7%
377
+ Average duration: 1.2s
378
+
379
+ Daily Usage (past 7 days):
380
+ Mon: ████████████ 45
381
+ Tue: ██████████ 38
382
+ Wed: ████████████████ 52
383
+ Thu: ██████████████ 48
384
+ Fri: ████████ 32
385
+ Sat: ████████████ 44
386
+ Sun: ██████████████ 53
387
+
388
+ Most Common Commands:
389
+ 1. gmail messages list (124 calls)
390
+ 2. calendar events today (89 calls)
391
+ 3. drive files list (56 calls)
392
+
393
+ Recent Errors:
394
+ • 2026-01-13 14:32: "rate limit exceeded"
395
+ • 2026-01-10 09:15: "token expired" (resolved)
396
+ ```
397
+
398
+ **Flags**:
399
+ - `--json` — Output as JSON
400
+ - `--days <n>` — Time window (default: 30)
401
+
402
+ ---
403
+
404
+ ## Usage Log Format
405
+
406
+ **Location**: `~/nexus/state/nexus/skills/{skill}/usage.log`
407
+
408
+ **Format**: JSON Lines (one JSON object per line, append-only)
409
+
410
+ ```json
411
+ {"ts":"2026-01-14T10:00:00.000Z","skill":"gog","type":"tool","args":["gmail","messages","list","--limit","5"],"exit":0,"ms":1234}
412
+ {"ts":"2026-01-14T10:01:00.000Z","skill":"eve","type":"tool","args":["messages"],"exit":1,"ms":50,"error":"not configured"}
413
+ {"ts":"2026-01-14T10:02:00.000Z","skill":"filesystem","type":"prompt","ms":5}
414
+ {"ts":"2026-01-14T10:05:00.000Z","skill":"gog","type":"tool","args":["calendar","events","today"],"exit":0,"ms":890}
415
+ ```
416
+
417
+ **Schema**:
418
+ ```typescript
419
+ type UsageLogEntry = {
420
+ ts: string; // ISO timestamp
421
+ skill: string; // Skill name
422
+ type: 'tool' | 'prompt'; // Execution type
423
+ args?: string[]; // Arguments (for tools)
424
+ exit?: number; // Exit code (for tools)
425
+ ms: number; // Duration in milliseconds
426
+ error?: string; // Error message (truncated to 200 chars)
427
+ };
428
+ ```
429
+
430
+ **Log Rotation**:
431
+ - Keep last 10,000 entries (or 30 days, whichever is smaller)
432
+ - Rotate on `nexus skills refresh` or when log exceeds 10MB
433
+
434
+ ---
435
+
436
+ ## Enhanced `nexus skills list`
437
+
438
+ Update existing command to show configuration status:
439
+
440
+ ```bash
441
+ $ nexus skills list
442
+
443
+ ═══════════════════════════════════════════════════════════════
444
+ NEXUS SKILLS (47 total)
445
+ ═══════════════════════════════════════════════════════════════
446
+
447
+ ✅ READY (configured, working) — 12 skills
448
+ gog Google services (gmail, calendar, drive) [tool: gog]
449
+ eve iMessage access (read tier) [tool: eve]
450
+ 1password Credential management [tool: op]
451
+ filesystem File organization [prompt]
452
+ computer-use Browser/desktop automation [prompt]
453
+ peekaboo Screenshot capture [tool: peekaboo]
454
+ tmux Terminal multiplexing [tool: tmux]
455
+ qmd Markdown rendering [tool: qmd]
456
+ aix AI conversations [tool: aix]
457
+ video-frames Video frame extraction [tool: ffmpeg]
458
+ weather Weather lookup [prompt]
459
+ camsnap Camera capture [tool: camsnap]
460
+
461
+ ⚠️ NEEDS SETUP (requires configuration) — 8 skills
462
+ brave-search Web search needs: BRAVE_API_KEY
463
+ summarize Text summarization needs: API key
464
+ discord Agent communications needs: bot token
465
+ telegram Agent communications needs: bot token
466
+ eve (send) iMessage sending blocked: Apple ID setup
467
+ nexus-cloud Cloud sync needs: Cloudflare setup
468
+ gifgrep GIF search (full) needs: GIPHY_API_KEY
469
+ coding-agent Autonomous coding needs: API key + codex
470
+
471
+ ⏳ NOT INSTALLED (binary missing) — 3 skills
472
+ nano-pdf PDF processing install: brew install nano-pdf
473
+ songsee Music recognition install: brew install songsee
474
+
475
+ 💤 DISABLED (explicitly disabled in config) — 1 skill
476
+ experimental Experimental features disabled in nexus.json
477
+
478
+ Run 'nexus skill show <name>' for details on any skill.
479
+ Run 'nexus skill run <name>' to use a skill.
480
+ ```
481
+
482
+ **New Flags**:
483
+ - `--ready` — Only show configured skills
484
+ - `--locked` — Only show skills needing setup
485
+ - `--summary` — One-line summary (for status command)
486
+
487
+ ---
488
+
489
+ ## Integration with Existing Infrastructure
490
+
491
+ ### Files We Modify
492
+
493
+ 1. **`src/cli/skills-cli.ts`**
494
+ - Add `skill show <name>` subcommand
495
+ - Add `skill run <name>` subcommand
496
+ - Add `skill verify <name>` subcommand
497
+ - Add `skill stats` subcommand
498
+ - Enhance `skills list` with status indicators
499
+
500
+ 2. **`src/cli/program.ts`**
501
+ - Add `status` command (alias for `skills list --summary`)
502
+
503
+ ### Files We Create
504
+
505
+ 1. **`src/agents/skill-state.ts`**
506
+ - `loadSkillState(name)` / `updateSkillState(name, updates)`
507
+ - `getSkillTool(name)` / `getSkillVerify(name)`
508
+ - State file management
509
+
510
+ 2. **`src/agents/skill-usage.ts`**
511
+ - `logUsage(entry)` — Append to log
512
+ - `parseUsageLog(opts)` — Parse and filter log
513
+ - `aggregateStats(entries)` — Compute statistics
514
+
515
+ 3. **`src/agents/skill-runner.ts`**
516
+ - `runSkill(name, args)` — The gateway implementation
517
+ - `verifySkill(name)` — Run verification
518
+
519
+ ### Files We Read (No Modify)
520
+
521
+ - `src/agents/skills.ts` — Use existing `hasBinary()`, `loadWorkspaceSkillEntries()`
522
+ - `src/agents/skills-status.ts` — Use existing requirement checking
523
+ - `src/commands/skills-manifest.ts` — Use existing manifest handling
524
+
525
+ ---
526
+
527
+ ## Agent Instructions (AGENTS.md)
528
+
529
+ With the gateway in place, agent instructions become trivially simple:
530
+
531
+ ```markdown
532
+ # Nexus Workspace
533
+
534
+ ## Skills
535
+
536
+ All capabilities go through the nexus CLI:
537
+
538
+ ```bash
539
+ # See what's available
540
+ nexus skills list --ready
541
+
542
+ # Get skill details
543
+ nexus skill show <name>
544
+
545
+ # Use a skill
546
+ nexus skill run <name> [-- arguments]
547
+ ```
548
+
549
+ If a skill isn't configured, the CLI will tell you what's needed.
550
+
551
+ ## Identity
552
+
553
+ - Your identity: Read `state/agents/{agent}/identity/IDENTITY.md`
554
+ - User profile: Read `state/user/identity/PROFILE.md`
555
+
556
+ ## Memories
557
+
558
+ Store daily memory in `home/memory/` and curated memory in `state/agents/{agent}/identity/MEMORY.md`
559
+ ```
560
+
561
+ That's the entire protocol. Everything else flows through `nexus skill run`.
562
+
563
+ ---
564
+
565
+ ## Cursor Integration
566
+
567
+ ### .cursor/rules
568
+
569
+ The existing `nexus skills cursor-rules` command generates `.cursor/rules`. Update it to include:
570
+
571
+ ```markdown
572
+ # Nexus Skills
573
+
574
+ When you need to use a Nexus skill, use the CLI:
575
+
576
+ ```bash
577
+ # List available skills
578
+ nexus skills list --ready
579
+
580
+ # Get skill details
581
+ nexus skill show <skill-name>
582
+
583
+ # Run a skill
584
+ nexus skill run <skill-name> [-- args]
585
+ ```
586
+
587
+ The CLI will handle verification and logging automatically.
588
+
589
+ ## Configured Skills
590
+
591
+ [Auto-generated list of configured skills with brief descriptions]
592
+ ```
593
+
594
+ ### Cursor Skills Directory
595
+
596
+ The existing infrastructure already symlinks skills to where Cursor can find them. No changes needed.
597
+
598
+ ---
599
+
600
+ ## Implementation Order
601
+
602
+ ### Phase 1: State Infrastructure (Day 1)
603
+ - [ ] Create `src/agents/skill-state.ts`
604
+ - [ ] per-skill `state.json` schema and I/O
605
+ - [ ] `KNOWN_SKILL_TOOLS` mapping for initial population
606
+ - [ ] Auto-populate on first read / `nexus skills refresh`
607
+
608
+ ### Phase 2: Usage Logging (Day 1)
609
+ - [ ] Create `src/agents/skill-usage.ts`
610
+ - [ ] `logUsage()` function
611
+ - [ ] `parseUsageLog()` function
612
+ - [ ] Log rotation logic
613
+
614
+ ### Phase 3: Core Commands (Day 2)
615
+ - [ ] `nexus skill show <name>` in `skills-cli.ts`
616
+ - [ ] `nexus skill verify <name>` in `skills-cli.ts`
617
+ - [ ] `nexus skill run <name>` in `skills-cli.ts`
618
+ - [ ] Pure prompt handling
619
+ - [ ] Tool execution with capture
620
+ - [ ] First-run verification
621
+ - [ ] Logging integration
622
+
623
+ ### Phase 4: Stats & Polish (Day 3)
624
+ - [ ] `nexus skill stats` command
625
+ - [ ] Enhance `nexus skills list` with status indicators
626
+ - [ ] Add `nexus status` alias
627
+ - [ ] Update cursor-rules generation
628
+
629
+ ### Phase 5: Documentation & Testing (Day 4)
630
+ - [ ] Update AGENTS.md template
631
+ - [ ] Test with real skills (gog, eve, filesystem)
632
+ - [ ] Verify Cursor integration
633
+
634
+ ---
635
+
636
+ ## Known Skill Tools (Initial Mapping)
637
+
638
+ | Skill | Tool Binary | Verify Command |
639
+ |-------|-------------|----------------|
640
+ | gog | `gog` | `gog gmail labels list --account default` |
641
+ | eve | `eve` | `eve messages --limit 1` |
642
+ | 1password | `op` | `op whoami` |
643
+ | tmux | `tmux` | `tmux -V` |
644
+ | peekaboo | `peekaboo` | `peekaboo --version` |
645
+ | qmd | `qmd` | `qmd status` |
646
+ | aix | `aix` | `aix --version` |
647
+ | video-frames | `ffmpeg` | `ffmpeg -version` |
648
+ | camsnap | `camsnap` | `camsnap --help` |
649
+ | brave-search | (env check) | `test -n "$BRAVE_API_KEY"` |
650
+ | summarize | (env check) | `test -n "$SUMMARIZE_API_KEY"` |
651
+ | nano-pdf | `nano-pdf` | `nano-pdf --version` |
652
+ | filesystem | (none) | — |
653
+ | computer-use | (none) | — |
654
+ | weather | (none) | — |
655
+
656
+ ---
657
+
658
+ ## Open Questions
659
+
660
+ ### 1. Should `skill run` capture stderr separately?
661
+
662
+ **Current design**: Combined output (stdout + stderr to stdout)
663
+ **Alternative**: Keep them separate, let agent see both
664
+
665
+ **Recommendation**: Combined for simplicity. Agent can parse if needed.
666
+
667
+ ### 2. How do we handle long-running skills?
668
+
669
+ **Current design**: Block until complete
670
+ **Alternative**: Background execution with status checking
671
+
672
+ **Recommendation**: Block for now. Add `--background` flag later if needed.
673
+
674
+ ### 3. Should we truncate args in logs for privacy?
675
+
676
+ **Current design**: Log full args
677
+ **Alternative**: Truncate or hash sensitive-looking args
678
+
679
+ **Recommendation**: Log full args. User controls their own logs. Add `--no-log` flag for sensitive operations if needed.
680
+
681
+ ### 4. How do we handle skill aliases?
682
+
683
+ Example: `gog` is also known as `google`, `gmail`, etc.
684
+
685
+ **Recommendation**: Defer. Use canonical names only for now.
686
+
687
+ ---
688
+
689
+ ## Success Criteria
690
+
691
+ The gateway is successful when:
692
+
693
+ 1. ✅ `nexus skill run gog -- gmail messages list` executes and logs
694
+ 2. ✅ `nexus skill run filesystem` returns the prompt
695
+ 3. ✅ First-run verification works for unconfigured skills
696
+ 4. ✅ `nexus skill stats` shows meaningful usage data
697
+ 5. ✅ Agent can use skills with only "nexus skill run" instructions
698
+ 6. ✅ Cursor integration works via cursor-rules
699
+
700
+ ---
701
+
702
+ *This document is the authoritative specification. Implementation should be mechanical from here.*