@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,640 @@
1
+ # Skill Deep-Dive: gog
2
+
3
+ **Skill**: `gog`
4
+ **Category**: Communication Data + Agent Reachability
5
+ **Setup Difficulty**: 🔴 Very Hard
6
+ **Time Estimate**: ~20-40 minutes (manual) or ~10 minutes (automated)
7
+ **Platform**: Cross-platform (macOS, Windows, Linux)
8
+
9
+ ---
10
+
11
+ ## What It Enables
12
+
13
+ | Capability | Description | Example |
14
+ |------------|-------------|---------|
15
+ | Gmail access | Read, search, send emails; manage labels | `gog gmail search "is:unread" --max 10` |
16
+ | Calendar access | Read, create, update events across all calendars | `gog calendar events --json` |
17
+ | Drive access | List, search, download, upload files | `gog drive ls --max 5` |
18
+ | Contacts access | Read and manage contacts | `gog contacts list --max 50` |
19
+ | Sheets access | Read, write, append to spreadsheets | `gog sheets get <id> "A1:D10"` |
20
+ | Docs/Slides access | Export documents and presentations | `gog docs export <id> --format txt` |
21
+ | Tasks access | Manage Google Tasks | `gog tasks list <id>` |
22
+ | People API | Access user profile information | `gog people me` |
23
+ | Multi-account support | Manage multiple Google accounts simultaneously | `gog gmail search "test" --account user@gmail.com` |
24
+
25
+ ---
26
+
27
+ ## Dual-Purpose Usage
28
+
29
+ ### For User Data Access
30
+ - Read user's Gmail, Calendar, Drive, etc.
31
+ - Power unified comms layer (aggregates with eve, wacli)
32
+ - Enable agent to understand user's communication context
33
+
34
+ ### For Agent Identity
35
+ - Give agent its own Gmail address for sending/receiving
36
+ - Agent can manage its own calendar
37
+ - Agent can store files in its own Drive
38
+
39
+ ---
40
+
41
+ ## Dependencies
42
+
43
+ ### Hard Dependencies (Required)
44
+ - [ ] `1password` skill — For storing OAuth tokens securely and portably
45
+ - [ ] `brew` or equivalent package manager — For installing gog CLI
46
+ - [ ] `Google Cloud account` — For creating OAuth credentials
47
+ - [ ] `Google account(s)` — The accounts to connect (user's personal/work)
48
+
49
+ ### Soft Dependencies (Recommended)
50
+ - [ ] `computer-use` skill — For automating OAuth consent flow
51
+ - [ ] `uv` and Python 3.11+ — For browser automation scripts
52
+ - [ ] Chrome browser — For CDP (Chrome DevTools Protocol) automation
53
+
54
+ ### This Skill Enables
55
+ - [ ] `comms` — Provides Gmail data to unified communication layer
56
+ - [ ] Agent email identity — Agent can send/receive emails
57
+ - [ ] Morning briefings — Pull calendar events for daily summaries
58
+ - [ ] Contact search — Find people across Google Workspace
59
+
60
+ ---
61
+
62
+ ## Installation
63
+
64
+ ### Prerequisites Check
65
+
66
+ ```bash
67
+ # Check if brew is installed
68
+ which brew || echo "❌ Need to install Homebrew first"
69
+
70
+ # Check if 1Password CLI is ready
71
+ op whoami || echo "❌ Need to setup 1password skill first"
72
+
73
+ # Check if you have a Google account
74
+ echo "✓ You need at least one Google account (gmail.com or Workspace)"
75
+ ```
76
+
77
+ ### Installation Steps
78
+
79
+ ```bash
80
+ # Step 1: Install gog CLI
81
+ brew install steipete/tap/gogcli
82
+
83
+ # Step 2: Verify installation
84
+ gog --version
85
+ # Expected output: e.g., "gog version 1.x.x"
86
+ ```
87
+
88
+ ### Verification
89
+
90
+ ```bash
91
+ # Check gog is accessible
92
+ gog --version
93
+
94
+ # Check if credentials.json exists (empty if not setup yet)
95
+ ls -la ~/.config/gog/credentials.json 2>/dev/null || echo "No credentials yet"
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Configuration
101
+
102
+ ### Phase 1: OAuth Client Setup (credentials.json)
103
+
104
+ This is the MOST COMPLEX part. You have 2 options:
105
+
106
+ #### Option A: Browser Automation (Recommended - Fastest)
107
+
108
+ Prerequisites:
109
+ ```bash
110
+ # Install uv if not already installed
111
+ brew install uv
112
+
113
+ # Setup Python environment (one-time)
114
+ mkdir -p ~/nexus/state/browser/cdp
115
+ cd ~/nexus/state/browser/cdp
116
+ uv venv --python 3.11
117
+ source .venv/bin/activate
118
+ uv pip install playwright==1.57.0
119
+ python -m playwright install chromium
120
+ ```
121
+
122
+ Run automation:
123
+ ```bash
124
+ # Navigate to gog scripts
125
+ cd ~/nexus/skills/gog/scripts/cdp
126
+
127
+ # Launch CDP Chrome (uses your existing Chrome login)
128
+ bash launch_cdp_chrome.sh
129
+
130
+ # Verify CDP is running
131
+ curl -s http://127.0.0.1:9222/json/version
132
+
133
+ # Create OAuth client automatically (requires GCP_PROJECT_ID)
134
+ python create_oauth_client.py
135
+ ```
136
+
137
+ This creates `~/.config/gog/credentials.json` automatically.
138
+
139
+ #### Option B: Manual Setup (More Control)
140
+
141
+ 1. Go to [Google Cloud Console](https://console.cloud.google.com)
142
+ 2. Create a new project:
143
+ - Click "Select a project" dropdown → "New Project"
144
+ - Name it (e.g., "Nexus gog CLI")
145
+ - Click "Create"
146
+ 3. Enable required APIs:
147
+ - Go to "APIs & Services" → "Library"
148
+ - Search and enable: Gmail API, Google Calendar API, Google Drive API, Google People API, Google Sheets API, Google Tasks API
149
+ 4. Create OAuth consent screen:
150
+ - Go to "APIs & Services" → "OAuth consent screen"
151
+ - Choose "External" (unless you have Workspace)
152
+ - Fill in app name: "gog CLI"
153
+ - Add your email as support email
154
+ - Add scopes (or skip - gog will request scopes dynamically)
155
+ - **CRITICAL**: Set Publishing status to "Testing" (NOT Production)
156
+ 5. Create OAuth credentials:
157
+ - Go to "APIs & Services" → "Credentials"
158
+ - Click "Create Credentials" → "OAuth client ID"
159
+ - Application type: "Desktop app"
160
+ - Name: "gog CLI"
161
+ - Click "Create"
162
+ - Click "Download JSON" (downloads `client_secret_xxx.json`)
163
+ 6. Install credentials:
164
+ ```bash
165
+ gog auth credentials ~/Downloads/client_secret_xxx.json
166
+ ```
167
+
168
+ ### Phase 2: Add Test Users (CRITICAL STEP)
169
+
170
+ If you skipped this, you'll get "access_denied" errors.
171
+
172
+ #### Manual Method:
173
+ 1. Go to [Google Auth Platform → Audience](https://console.cloud.google.com/auth/audience)
174
+ 2. Under "Test users" section, click "Add users"
175
+ 3. Add your email address(es) - one per line
176
+ 4. Press Enter after each email
177
+ 5. Click "Save"
178
+
179
+ #### Automated Method:
180
+ ```bash
181
+ cd ~/nexus/skills/gog/scripts/cdp
182
+ python add_test_users.py \
183
+ --project "$GCP_PROJECT_ID" \
184
+ --emails you@gmail.com work@company.com
185
+ ```
186
+
187
+ ### Phase 3: Authorize Accounts
188
+
189
+ #### Manual Method (for each account):
190
+ ```bash
191
+ # Authorize account with all services
192
+ gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
193
+
194
+ # Browser opens automatically → Follow OAuth consent flow:
195
+ # 1. "Choose an account" → select your account
196
+ # 2. "Google hasn't verified this app" → Click "Advanced" → "Go to gog-cli (unsafe)"
197
+ # 3. Review permissions list → Click "Allow"
198
+
199
+ # IMMEDIATELY export token to 1Password for portability
200
+ gog auth tokens export you@gmail.com --out /tmp/gog-token.json
201
+ op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
202
+ rm /tmp/gog-token.json
203
+ ```
204
+
205
+ #### Automated Method (for multiple accounts):
206
+ ```bash
207
+ cd ~/nexus/skills/gog/scripts/cdp
208
+
209
+ # Ensure CDP Chrome is still running
210
+ curl -s http://127.0.0.1:9222/json/version
211
+
212
+ # Authorize all accounts at once
213
+ python auth_add_accounts.py \
214
+ --emails you@gmail.com work@company.com other@gmail.com
215
+ ```
216
+
217
+ ### Phase 4: Verification
218
+
219
+ ```bash
220
+ # List all authorized accounts
221
+ gog auth list
222
+
223
+ # Test each account
224
+ gog gmail labels list --account you@gmail.com
225
+ gog calendar calendars --account you@gmail.com
226
+ gog drive ls --account you@gmail.com
227
+
228
+ # Set a default account (optional)
229
+ export GOG_ACCOUNT=you@gmail.com
230
+ ```
231
+
232
+ ---
233
+
234
+ ## User Actions Required
235
+
236
+ List any manual steps the user MUST perform (can't be automated):
237
+
238
+ 1. **Create Google Cloud account** (if they don't have one)
239
+ 2. **Create OAuth consent screen** (manual web form)
240
+ 3. **Add themselves as test users** (if manual setup)
241
+ 4. **Click "Allow" in OAuth consent flow** (unless using browser automation)
242
+ 5. **Keep credentials.json safe** (should be backed up to 1Password)
243
+
244
+ ---
245
+
246
+ ## Common Failure Points
247
+
248
+ ### Failure: "The developer hasn't given you access to this app" (access_denied)
249
+
250
+ **Symptom**: OAuth consent screen shows: "access_denied" or "The developer hasn't given you access to this app"
251
+
252
+ **Cause**: Email address not added as a test user in Google Cloud Console
253
+
254
+ **Recovery**:
255
+ ```bash
256
+ # Option 1: Manual (via web console)
257
+ # 1. Go to https://console.cloud.google.com/auth/audience
258
+ # 2. Under "Test users", click "Add users"
259
+ # 3. Add your email, press Enter, click Save
260
+ # 4. Wait 1-2 minutes for propagation
261
+ # 5. Re-run: gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
262
+
263
+ # Option 2: Automated (if CDP setup exists)
264
+ cd ~/nexus/skills/gog/scripts/cdp
265
+ python add_test_users.py --project "$GCP_PROJECT_ID" --emails you@gmail.com
266
+ ```
267
+
268
+ **Prevention**: Always add test users immediately after creating OAuth consent screen
269
+
270
+ ---
271
+
272
+ ### Failure: APIs not enabled
273
+
274
+ **Symptom**: Errors like "Gmail API has not been used in project XXX" or "accessNotConfigured"
275
+
276
+ **Cause**: Required Google APIs not enabled for the project
277
+
278
+ **Recovery**:
279
+ ```bash
280
+ # Manual: Go to Google Cloud Console → APIs & Services → Library
281
+ # Search for and enable:
282
+ # - Gmail API
283
+ # - Google Calendar API
284
+ # - Google Drive API
285
+ # - Google People API
286
+ # - Google Sheets API
287
+ # - Google Tasks API
288
+
289
+ # Or use gcloud CLI (if installed):
290
+ gcloud services enable gmail.googleapis.com
291
+ gcloud services enable calendar-json.googleapis.com
292
+ gcloud services enable drive.googleapis.com
293
+ gcloud services enable people.googleapis.com
294
+ gcloud services enable sheets.googleapis.com
295
+ gcloud services enable tasks.googleapis.com
296
+ ```
297
+
298
+ **Prevention**: Enable all APIs during initial OAuth setup
299
+
300
+ ---
301
+
302
+ ### Failure: Tokens not portable between machines
303
+
304
+ **Symptom**: gog works on one machine but not another; need to re-auth
305
+
306
+ **Cause**: Tokens stored in macOS Keychain (not synced) or not exported to 1Password
307
+
308
+ **Recovery**:
309
+ ```bash
310
+ # On OLD machine: Export tokens
311
+ gog auth tokens export you@gmail.com --out /tmp/gog-token.json
312
+ op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
313
+ rm /tmp/gog-token.json
314
+
315
+ # On NEW machine: Import tokens
316
+ # 1. Install gog: brew install steipete/tap/gogcli
317
+ # 2. Copy credentials.json (same one works everywhere)
318
+ cp ~/.config/gog/credentials.json /path/to/backup/
319
+ # Or download from 1Password if stored there
320
+
321
+ # 3. Import token
322
+ op document get "gog-you@gmail.com" --out-file /tmp/gog-token.json
323
+ gog auth tokens import /tmp/gog-token.json
324
+ rm /tmp/gog-token.json
325
+
326
+ # 4. Verify
327
+ gog auth list
328
+ ```
329
+
330
+ **Prevention**: ALWAYS export tokens to 1Password immediately after auth
331
+
332
+ ---
333
+
334
+ ### Failure: Workspace account requires admin approval
335
+
336
+ **Symptom**: OAuth consent shows "Admin approval required" for Google Workspace accounts
337
+
338
+ **Cause**: Organization policy requires admin to approve third-party apps
339
+
340
+ **Recovery**:
341
+ ```bash
342
+ # Option 1: Ask IT admin to approve the app
343
+ # Option 2: Use personal Gmail account instead
344
+ # Option 3: Admin can pre-approve via Workspace Admin Console
345
+
346
+ # For personal projects, avoid Workspace accounts for gog
347
+ ```
348
+
349
+ **Prevention**: Check if target account is Workspace account; use personal Gmail if possible
350
+
351
+ ---
352
+
353
+ ### Failure: CDP Chrome automation fails
354
+
355
+ **Symptom**: Browser automation scripts error out or hang
356
+
357
+ **Cause**: CDP port not open, Chrome not running, or profile issues
358
+
359
+ **Recovery**:
360
+ ```bash
361
+ # Check if CDP Chrome is running
362
+ curl -s http://127.0.0.1:9222/json/version
363
+
364
+ # If not running, kill any existing Chrome and restart
365
+ pkill -9 "Google Chrome"
366
+ cd ~/nexus/skills/gog/scripts/cdp
367
+ bash launch_cdp_chrome.sh
368
+
369
+ # Verify again
370
+ curl -s http://127.0.0.1:9222/json/version
371
+
372
+ # Re-run automation script
373
+ python auth_add_accounts.py --emails you@gmail.com
374
+ ```
375
+
376
+ **Prevention**: Verify CDP Chrome is running before running automation scripts
377
+
378
+ ---
379
+
380
+ ## Automation Opportunities
381
+
382
+ | Step | Automatable? | Tool | Notes |
383
+ |------|--------------|------|-------|
384
+ | Install gog CLI | ✅ Yes | bash | `brew install steipete/tap/gogcli` |
385
+ | Create GCP project | 🟡 Partial | computer-use | Requires web form interaction |
386
+ | Enable APIs | 🟡 Partial | gcloud CLI | If user has gcloud installed |
387
+ | Create OAuth client | ✅ Yes | CDP scripts | `create_oauth_client.py` |
388
+ | Add test users | ✅ Yes | CDP scripts | `add_test_users.py` |
389
+ | OAuth consent flow | ✅ Yes | CDP scripts | `auth_add_accounts.py` |
390
+ | Export to 1Password | ✅ Yes | bash | `gog auth tokens export` + `op document create` |
391
+ | Import from 1Password | ✅ Yes | bash | `op document get` + `gog auth tokens import` |
392
+
393
+ ### Full Automation Script
394
+
395
+ ```bash
396
+ #!/bin/bash
397
+ # Full gog setup automation (requires CDP environment setup)
398
+
399
+ set -e
400
+
401
+ # Prerequisite checks
402
+ command -v gog >/dev/null || { echo "❌ gog not installed"; exit 1; }
403
+ command -v op >/dev/null || { echo "❌ 1Password CLI not installed"; exit 1; }
404
+ op whoami >/dev/null || { echo "❌ Not signed in to 1Password"; exit 1; }
405
+
406
+ # Configuration
407
+ GCP_PROJECT_ID="${GCP_PROJECT_ID:-nexus-gog-cli}"
408
+ EMAILS="${1:-$(whoami)@gmail.com}" # Pass as argument or default
409
+
410
+ echo "Setting up gog for: $EMAILS"
411
+
412
+ # Setup CDP environment (one-time)
413
+ mkdir -p ~/nexus/state/browser/cdp
414
+ cd ~/nexus/state/browser/cdp
415
+ if [ ! -d ".venv" ]; then
416
+ uv venv --python 3.11
417
+ source .venv/bin/activate
418
+ uv pip install playwright==1.57.0
419
+ python -m playwright install chromium
420
+ else
421
+ source .venv/bin/activate
422
+ fi
423
+
424
+ # Launch CDP Chrome
425
+ cd ~/nexus/skills/gog/scripts/cdp
426
+ bash launch_cdp_chrome.sh &
427
+ sleep 5
428
+
429
+ # Verify CDP
430
+ curl -s http://127.0.0.1:9222/json/version >/dev/null || { echo "❌ CDP Chrome not running"; exit 1; }
431
+
432
+ # Create OAuth client (if needed)
433
+ if [ ! -f ~/.config/gog/credentials.json ]; then
434
+ python create_oauth_client.py
435
+ fi
436
+
437
+ # Add test users
438
+ python add_test_users.py --project "$GCP_PROJECT_ID" --emails "$EMAILS"
439
+
440
+ # Authorize accounts
441
+ python auth_add_accounts.py --emails "$EMAILS"
442
+
443
+ # Export tokens to 1Password
444
+ for email in $(echo "$EMAILS" | tr ',' ' '); do
445
+ gog auth tokens export "$email" --out "/tmp/gog-${email}.json"
446
+ op document create "/tmp/gog-${email}.json" --title "gog-${email}" --vault Personal
447
+ rm "/tmp/gog-${email}.json"
448
+ echo "✅ Exported $email to 1Password"
449
+ done
450
+
451
+ # Verify
452
+ echo "✅ Setup complete!"
453
+ gog auth list
454
+ ```
455
+
456
+ ---
457
+
458
+ ## Wow Moments
459
+
460
+ | Moment | What Happens | When to Demo |
461
+ |--------|--------------|--------------|
462
+ | Read user's unread emails | Search and display unread emails with sender, subject, snippet | Right after first successful auth |
463
+ | Access calendar events | Show today's calendar events across all calendars | Morning briefing use case |
464
+ | Search across Drive | Find files by keyword, show how fast it is | After Drive auth |
465
+ | Multi-account switching | Show seamless switching between personal and work accounts | When user mentions multiple accounts |
466
+ | Agent sends email | Agent uses its own Gmail to send a message | Agent identity demo |
467
+
468
+ ### Demo Script
469
+
470
+ ```
471
+ Agent: "Let me show you what gog enables. I can now read your unread emails directly from Gmail."
472
+
473
+ gog gmail search "is:unread" --max 5 --json | jq -r '.[] | "\(.from): \(.subject)"'
474
+
475
+ Agent: "I can also check your calendar for today:"
476
+
477
+ gog calendar events --json | jq -r '.[] | select(.start.dateTime) | "\(.start.dateTime | split("T")[1] | split("-")[0]): \(.summary)"'
478
+
479
+ Agent: "And search your Drive:"
480
+
481
+ gog drive search "budget" --max 3 --plain
482
+
483
+ Agent: "All of this data now flows into the unified comms system, so I can help you find information across Gmail, Calendar, and Drive in one query."
484
+ ```
485
+
486
+ ---
487
+
488
+ ## Integration with Other Skills
489
+
490
+ | Skill | Integration | Notes |
491
+ |-------|-------------|-------|
492
+ | **1password** | Stores OAuth tokens for portability | CRITICAL: Export tokens immediately after auth |
493
+ | **comms** | Provides Gmail data to unified layer | One of three primary data sources (eve, gog, wacli) |
494
+ | **computer-use** | Automates OAuth consent flow | CDP scripts use browser automation |
495
+ | **cron** | Schedule periodic Gmail/Calendar sync | E.g., morning briefing pulls calendar events |
496
+ | **qmd** | Email content can be indexed for search | Semantic search across email history |
497
+
498
+ ---
499
+
500
+ ## Testing Checklist
501
+
502
+ - [ ] Fresh install works: `brew install steipete/tap/gogcli`
503
+ - [ ] Version check: `gog --version`
504
+ - [ ] credentials.json created (manual or automated)
505
+ - [ ] Test users added to OAuth consent screen
506
+ - [ ] First account auth works: `gog auth add you@gmail.com`
507
+ - [ ] OAuth consent flow completes (manual or automated)
508
+ - [ ] Token exported to 1Password
509
+ - [ ] Gmail works: `gog gmail labels list --account you@gmail.com`
510
+ - [ ] Calendar works: `gog calendar calendars --account you@gmail.com`
511
+ - [ ] Drive works: `gog drive ls --account you@gmail.com`
512
+ - [ ] Multi-account works (if multiple accounts)
513
+ - [ ] Token import works on new machine (simulate portability)
514
+ - [ ] Failure recovery: Remove account, re-add, export again
515
+
516
+ ---
517
+
518
+ ## Notes for Onboarding Agent
519
+
520
+ - **WARN USERS UPFRONT**: This is the most complex skill setup. Set expectations.
521
+ - **Recommend automation**: If user is technical, strongly recommend CDP automation route
522
+ - **1Password first**: ALWAYS ensure 1password skill is setup before starting gog
523
+ - **Test users are critical**: Emphasize adding test users to avoid "access_denied" errors
524
+ - **Export immediately**: After EVERY auth, export token to 1Password
525
+ - **Multi-account strategy**: Ask if user wants personal + work, setup both at once
526
+ - **When NOT to recommend**:
527
+ - User doesn't have Google account (rare)
528
+ - User is not comfortable with OAuth security (explain it's standard practice)
529
+ - User's organization blocks third-party apps (check Workspace policies)
530
+ - **Agent identity use case**: Mention that agent can have its own Gmail for sending/receiving
531
+ - **Time estimate**:
532
+ - Automated: ~10 minutes
533
+ - Manual: ~20-40 minutes (first time)
534
+ - With issues: could be 1+ hours (test user errors, API enabling, etc.)
535
+
536
+ ---
537
+
538
+ ## Dual-Purpose Setup Details
539
+
540
+ ### For User Data Access
541
+ ```bash
542
+ # Setup user's personal Gmail
543
+ gog auth add user@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
544
+
545
+ # Export to 1Password
546
+ gog auth tokens export user@gmail.com --out /tmp/gog-user.json
547
+ op document create /tmp/gog-user.json --title "gog-user@gmail.com" --vault Personal
548
+ rm /tmp/gog-user.json
549
+
550
+ # Use for comms integration
551
+ export GOG_ACCOUNT=user@gmail.com
552
+ gog gmail search "is:unread"
553
+ ```
554
+
555
+ ### For Agent Identity
556
+ ```bash
557
+ # Create a new Gmail account for the agent (e.g., agent@example.com)
558
+ # Then authorize it
559
+ gog auth add agent@example.com --services gmail,calendar,drive
560
+
561
+ # Export to 1Password
562
+ gog auth tokens export agent@example.com --out /tmp/gog-agent.json
563
+ op document create /tmp/gog-agent.json --title "gog-agent@example.com" --vault Personal
564
+ rm /tmp/gog-agent.json
565
+
566
+ # Agent can now send emails
567
+ gog gmail send --account agent@example.com --to user@gmail.com --subject "Test" --body "Hi from agent"
568
+ ```
569
+
570
+ **NOTE**: Agent identity requires a separate Gmail account. This is typically:
571
+ - A new free Gmail account created specifically for the agent
572
+ - OR a Google Workspace account provisioned by the user's organization
573
+
574
+ ---
575
+
576
+ ## Portability Pattern
577
+
578
+ The key to gog portability is **1Password as source of truth**:
579
+
580
+ 1. **After auth on Machine A**:
581
+ ```bash
582
+ gog auth tokens export you@gmail.com --out /tmp/gog-token.json
583
+ op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
584
+ rm /tmp/gog-token.json
585
+ ```
586
+
587
+ 2. **On Machine B** (or after OS reinstall):
588
+ ```bash
589
+ brew install steipete/tap/gogcli
590
+ # Copy credentials.json (same one works everywhere)
591
+ op document get "gog-credentials.json" --out-file ~/.config/gog/credentials.json
592
+ # Import token
593
+ op document get "gog-you@gmail.com" --out-file /tmp/gog-token.json
594
+ gog auth tokens import /tmp/gog-token.json
595
+ rm /tmp/gog-token.json
596
+ # Verify
597
+ gog auth list
598
+ ```
599
+
600
+ 3. **Bulk export all accounts**:
601
+ ```bash
602
+ for email in $(gog auth list --plain | cut -f1); do
603
+ gog auth tokens export "$email" --out "/tmp/gog-${email}.json"
604
+ op document create "/tmp/gog-${email}.json" --title "gog-${email}" --vault Personal
605
+ rm "/tmp/gog-${email}.json"
606
+ done
607
+ ```
608
+
609
+ ---
610
+
611
+ ## Security Considerations
612
+
613
+ - **credentials.json is NOT a secret**: It's just OAuth client config, safe to share/backup
614
+ - **Refresh tokens ARE secrets**: Must be stored securely (1Password, encrypted)
615
+ - **Tokens in keychain**: macOS Keychain is secure but not portable
616
+ - **1Password pattern**: Encrypted, portable, scriptable - best of all worlds
617
+ - **OAuth scopes**: Only request scopes you need; gog defaults are reasonable
618
+ - **Token expiration**: Refresh tokens rarely expire (can last years), but if they do, just re-auth
619
+
620
+ ---
621
+
622
+ ## Google Cloud Console Quick Links
623
+
624
+ - [Cloud Console Home](https://console.cloud.google.com)
625
+ - [OAuth Consent Screen](https://console.cloud.google.com/apis/credentials/consent)
626
+ - [OAuth Test Users](https://console.cloud.google.com/auth/audience)
627
+ - [Credentials](https://console.cloud.google.com/apis/credentials)
628
+ - [API Library](https://console.cloud.google.com/apis/library)
629
+
630
+ ---
631
+
632
+ ## Changelog
633
+
634
+ | Date | Change |
635
+ |------|--------|
636
+ | 2026-01-12 | Initial deep-dive created |
637
+
638
+ ---
639
+
640
+ *Template version: 1.0*