@intent-systems/nexus 2026.1.5-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +222 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +462 -0
- package/dist/agents/agent-paths.js +16 -0
- package/dist/agents/agent-scope.js +44 -0
- package/dist/agents/auth-profiles.js +626 -0
- package/dist/agents/bash-process-registry.js +126 -0
- package/dist/agents/bash-tools.js +838 -0
- package/dist/agents/chutes-oauth.js +47 -0
- package/dist/agents/clawdbot-tools.js +62 -0
- package/dist/agents/context.js +34 -0
- package/dist/agents/defaults.js +6 -0
- package/dist/agents/memory-search.js +80 -0
- package/dist/agents/model-auth.js +115 -0
- package/dist/agents/model-catalog.js +55 -0
- package/dist/agents/model-fallback.js +210 -0
- package/dist/agents/model-scan.js +263 -0
- package/dist/agents/model-selection.js +152 -0
- package/dist/agents/models-config.js +171 -0
- package/dist/agents/nexus-tools.js +46 -0
- package/dist/agents/pi-embedded-block-chunker.js +188 -0
- package/dist/agents/pi-embedded-helpers.js +139 -0
- package/dist/agents/pi-embedded-runner.js +932 -0
- package/dist/agents/pi-embedded-subscribe.js +541 -0
- package/dist/agents/pi-embedded-utils.js +20 -0
- package/dist/agents/pi-embedded.js +1 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
- package/dist/agents/pi-tool-definition-adapter.js +17 -0
- package/dist/agents/pi-tools.js +510 -0
- package/dist/agents/pi-tools.schema.js +358 -0
- package/dist/agents/sandbox-paths.js +68 -0
- package/dist/agents/sandbox.js +667 -0
- package/dist/agents/shell-utils.js +53 -0
- package/dist/agents/skill-runner.js +224 -0
- package/dist/agents/skill-state.js +164 -0
- package/dist/agents/skill-tools.js +191 -0
- package/dist/agents/skill-usage.js +43 -0
- package/dist/agents/skills-install.js +244 -0
- package/dist/agents/skills-status.js +157 -0
- package/dist/agents/skills.js +472 -0
- package/dist/agents/subagent-registry.js +321 -0
- package/dist/agents/subagent-registry.store.js +47 -0
- package/dist/agents/system-prompt.js +179 -0
- package/dist/agents/timeout.js +26 -0
- package/dist/agents/tool-display.js +155 -0
- package/dist/agents/tool-display.json +236 -0
- package/dist/agents/tool-images.js +138 -0
- package/dist/agents/tool-policy.js +87 -0
- package/dist/agents/tools/agent-step.js +41 -0
- package/dist/agents/tools/browser-tool.js +295 -0
- package/dist/agents/tools/canvas-tool.js +193 -0
- package/dist/agents/tools/common.js +88 -0
- package/dist/agents/tools/cron-tool.js +141 -0
- package/dist/agents/tools/discord-actions-guild.js +186 -0
- package/dist/agents/tools/discord-actions-messaging.js +313 -0
- package/dist/agents/tools/discord-actions-moderation.js +70 -0
- package/dist/agents/tools/discord-actions.js +56 -0
- package/dist/agents/tools/discord-schema.js +199 -0
- package/dist/agents/tools/discord-tool.js +16 -0
- package/dist/agents/tools/gateway-tool.js +46 -0
- package/dist/agents/tools/gateway.js +28 -0
- package/dist/agents/tools/image-tool.js +140 -0
- package/dist/agents/tools/memory-tool.js +92 -0
- package/dist/agents/tools/nodes-tool.js +413 -0
- package/dist/agents/tools/nodes-utils.js +92 -0
- package/dist/agents/tools/sessions-announce-target.js +35 -0
- package/dist/agents/tools/sessions-helpers.js +88 -0
- package/dist/agents/tools/sessions-history-tool.js +137 -0
- package/dist/agents/tools/sessions-list-tool.js +196 -0
- package/dist/agents/tools/sessions-send-helpers.js +103 -0
- package/dist/agents/tools/sessions-send-tool.js +371 -0
- package/dist/agents/tools/sessions-spawn-tool.js +319 -0
- package/dist/agents/tools/slack-actions.js +129 -0
- package/dist/agents/tools/slack-schema.js +59 -0
- package/dist/agents/tools/slack-tool.js +16 -0
- package/dist/agents/tools/telegram-actions.js +159 -0
- package/dist/agents/tools/telegram-schema.js +28 -0
- package/dist/agents/tools/telegram-tool.js +16 -0
- package/dist/agents/tools/whatsapp-login-tool.js +63 -0
- package/dist/agents/usage.js +58 -0
- package/dist/agents/workspace.js +264 -0
- package/dist/auto-reply/chunk.js +177 -0
- package/dist/auto-reply/command-auth.js +44 -0
- package/dist/auto-reply/command-detection.js +22 -0
- package/dist/auto-reply/envelope.js +30 -0
- package/dist/auto-reply/group-activation.js +20 -0
- package/dist/auto-reply/heartbeat.js +58 -0
- package/dist/auto-reply/model.js +22 -0
- package/dist/auto-reply/reply/abort.js +14 -0
- package/dist/auto-reply/reply/agent-runner.js +426 -0
- package/dist/auto-reply/reply/bash-command.js +314 -0
- package/dist/auto-reply/reply/block-streaming.js +34 -0
- package/dist/auto-reply/reply/body.js +29 -0
- package/dist/auto-reply/reply/commands.js +332 -0
- package/dist/auto-reply/reply/directive-handling.js +626 -0
- package/dist/auto-reply/reply/directives.js +59 -0
- package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
- package/dist/auto-reply/reply/followup-runner.js +181 -0
- package/dist/auto-reply/reply/groups.js +152 -0
- package/dist/auto-reply/reply/mentions.js +64 -0
- package/dist/auto-reply/reply/model-selection.js +209 -0
- package/dist/auto-reply/reply/queue.js +399 -0
- package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
- package/dist/auto-reply/reply/reply-tags.js +26 -0
- package/dist/auto-reply/reply/session-updates.js +103 -0
- package/dist/auto-reply/reply/session.js +169 -0
- package/dist/auto-reply/reply/typing.js +125 -0
- package/dist/auto-reply/reply.js +655 -0
- package/dist/auto-reply/send-policy.js +28 -0
- package/dist/auto-reply/status.js +197 -0
- package/dist/auto-reply/templating.js +9 -0
- package/dist/auto-reply/thinking.js +49 -0
- package/dist/auto-reply/tokens.js +2 -0
- package/dist/auto-reply/tool-meta.js +74 -0
- package/dist/auto-reply/transcription.js +57 -0
- package/dist/auto-reply/types.js +1 -0
- package/dist/browser/bridge-server.js +37 -0
- package/dist/browser/cdp.js +382 -0
- package/dist/browser/chrome.js +432 -0
- package/dist/browser/client-actions-core.js +67 -0
- package/dist/browser/client-actions-observe.js +24 -0
- package/dist/browser/client-actions-types.js +1 -0
- package/dist/browser/client-actions.js +3 -0
- package/dist/browser/client-fetch.js +43 -0
- package/dist/browser/client.js +105 -0
- package/dist/browser/config.js +155 -0
- package/dist/browser/constants.js +5 -0
- package/dist/browser/profiles-service.js +124 -0
- package/dist/browser/profiles.js +96 -0
- package/dist/browser/pw-ai.js +2 -0
- package/dist/browser/pw-session.js +144 -0
- package/dist/browser/pw-tools-core.js +363 -0
- package/dist/browser/routes/agent.js +535 -0
- package/dist/browser/routes/basic.js +155 -0
- package/dist/browser/routes/index.js +8 -0
- package/dist/browser/routes/tabs.js +105 -0
- package/dist/browser/routes/utils.js +62 -0
- package/dist/browser/screenshot.js +40 -0
- package/dist/browser/server-context.js +377 -0
- package/dist/browser/server.js +81 -0
- package/dist/browser/target-id.js +18 -0
- package/dist/browser/trash.js +21 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
- package/dist/canvas-host/a2ui/index.html +246 -0
- package/dist/canvas-host/a2ui.js +187 -0
- package/dist/canvas-host/server.js +382 -0
- package/dist/channel-web.js +8 -0
- package/dist/cli/browser-cli-actions-input.js +459 -0
- package/dist/cli/browser-cli-actions-observe.js +56 -0
- package/dist/cli/browser-cli-examples.js +31 -0
- package/dist/cli/browser-cli-inspect.js +97 -0
- package/dist/cli/browser-cli-manage.js +286 -0
- package/dist/cli/browser-cli-shared.js +1 -0
- package/dist/cli/browser-cli.js +26 -0
- package/dist/cli/canvas-cli.js +416 -0
- package/dist/cli/cloud-cli.js +336 -0
- package/dist/cli/credential-cli.js +227 -0
- package/dist/cli/cron-cli.js +454 -0
- package/dist/cli/deps.js +17 -0
- package/dist/cli/dns-cli.js +180 -0
- package/dist/cli/gateway-cli.js +665 -0
- package/dist/cli/gateway-rpc.js +20 -0
- package/dist/cli/hooks-cli.js +135 -0
- package/dist/cli/memory-cli.js +101 -0
- package/dist/cli/models-cli.js +248 -0
- package/dist/cli/nodes-camera.js +57 -0
- package/dist/cli/nodes-canvas.js +26 -0
- package/dist/cli/nodes-cli.js +946 -0
- package/dist/cli/nodes-screen.js +37 -0
- package/dist/cli/pairing-cli.js +100 -0
- package/dist/cli/parse-duration.js +20 -0
- package/dist/cli/plugins-cli.js +158 -0
- package/dist/cli/ports.js +97 -0
- package/dist/cli/profile.js +81 -0
- package/dist/cli/program.js +162 -0
- package/dist/cli/prompt.js +19 -0
- package/dist/cli/run-main.js +48 -0
- package/dist/cli/skills-cli.js +132 -0
- package/dist/cli/skills-hub-cli.js +1093 -0
- package/dist/cli/telegram-cli.js +56 -0
- package/dist/cli/tool-connector-cli.js +118 -0
- package/dist/cli/tui-cli.js +35 -0
- package/dist/cli/upstream-sync-cli.js +2833 -0
- package/dist/cli/usage-cli.js +24 -0
- package/dist/cli/wait.js +8 -0
- package/dist/commands/agent-via-gateway.js +115 -0
- package/dist/commands/agent.js +665 -0
- package/dist/commands/antigravity-oauth.js +327 -0
- package/dist/commands/auth-choice-options.js +80 -0
- package/dist/commands/auth-choice.js +134 -0
- package/dist/commands/auth-token.js +31 -0
- package/dist/commands/bootstrap-preset.js +214 -0
- package/dist/commands/capabilities.js +36 -0
- package/dist/commands/chutes-oauth.js +144 -0
- package/dist/commands/claude-md.js +137 -0
- package/dist/commands/config-view.js +11 -0
- package/dist/commands/configure.js +648 -0
- package/dist/commands/credential.js +236 -0
- package/dist/commands/cursor-rules.js +230 -0
- package/dist/commands/doctor-state-migrations.js +358 -0
- package/dist/commands/doctor-ui.js +113 -0
- package/dist/commands/doctor.js +673 -0
- package/dist/commands/health.js +112 -0
- package/dist/commands/identity.js +54 -0
- package/dist/commands/init.js +167 -0
- package/dist/commands/models/aliases.js +85 -0
- package/dist/commands/models/fallbacks.js +123 -0
- package/dist/commands/models/image-fallbacks.js +123 -0
- package/dist/commands/models/list.js +347 -0
- package/dist/commands/models/scan.js +271 -0
- package/dist/commands/models/set-image.js +27 -0
- package/dist/commands/models/set.js +27 -0
- package/dist/commands/models/shared.js +73 -0
- package/dist/commands/models.js +7 -0
- package/dist/commands/onboard-auth.js +101 -0
- package/dist/commands/onboard-channels.js +814 -0
- package/dist/commands/onboard-eve-identity.js +98 -0
- package/dist/commands/onboard-github.js +153 -0
- package/dist/commands/onboard-helpers.js +303 -0
- package/dist/commands/onboard-interactive.js +17 -0
- package/dist/commands/onboard-non-interactive.js +228 -0
- package/dist/commands/onboard-providers.js +829 -0
- package/dist/commands/onboard-quickstart.js +185 -0
- package/dist/commands/onboard-remote.js +120 -0
- package/dist/commands/onboard-skills.js +148 -0
- package/dist/commands/onboard-types.js +1 -0
- package/dist/commands/onboard.js +19 -0
- package/dist/commands/openai-codex-model-default.js +38 -0
- package/dist/commands/poll.js +64 -0
- package/dist/commands/quest.js +27 -0
- package/dist/commands/reset.js +61 -0
- package/dist/commands/send.js +124 -0
- package/dist/commands/sessions-ingest.js +359 -0
- package/dist/commands/sessions.js +212 -0
- package/dist/commands/setup.js +59 -0
- package/dist/commands/signal-install.js +135 -0
- package/dist/commands/skills-manifest.js +235 -0
- package/dist/commands/status.js +139 -0
- package/dist/commands/suggestions.js +54 -0
- package/dist/commands/systemd-linger.js +71 -0
- package/dist/commands/update.js +16 -0
- package/dist/commands/usage-upload.js +27 -0
- package/dist/config/config.js +6 -0
- package/dist/config/defaults.js +140 -0
- package/dist/config/group-policy.js +49 -0
- package/dist/config/includes.js +183 -0
- package/dist/config/io.js +188 -0
- package/dist/config/legacy-migrate.js +13 -0
- package/dist/config/legacy.js +425 -0
- package/dist/config/paths.js +82 -0
- package/dist/config/port-defaults.js +32 -0
- package/dist/config/schema.js +173 -0
- package/dist/config/sessions.js +611 -0
- package/dist/config/talk.js +31 -0
- package/dist/config/types.js +1 -0
- package/dist/config/validation.js +29 -0
- package/dist/config/zod-schema.js +1110 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
- package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/index.html +16 -0
- package/dist/cron/isolated-agent.js +529 -0
- package/dist/cron/normalize.js +73 -0
- package/dist/cron/parse.js +24 -0
- package/dist/cron/run-log.js +72 -0
- package/dist/cron/schedule.js +24 -0
- package/dist/cron/service.js +471 -0
- package/dist/cron/store.js +43 -0
- package/dist/cron/types.js +1 -0
- package/dist/daemon/constants.js +10 -0
- package/dist/daemon/launchd.js +295 -0
- package/dist/daemon/legacy.js +63 -0
- package/dist/daemon/program-args.js +141 -0
- package/dist/daemon/schtasks.js +269 -0
- package/dist/daemon/service.js +69 -0
- package/dist/daemon/systemd.js +332 -0
- package/dist/discord/index.js +2 -0
- package/dist/discord/monitor.js +1089 -0
- package/dist/discord/probe.js +54 -0
- package/dist/discord/send.js +652 -0
- package/dist/discord/token.js +8 -0
- package/dist/entry.js +16 -0
- package/dist/gateway/auth.js +121 -0
- package/dist/gateway/call.js +103 -0
- package/dist/gateway/chat-attachments.js +41 -0
- package/dist/gateway/client.js +180 -0
- package/dist/gateway/config-reload.js +274 -0
- package/dist/gateway/control-ui.js +184 -0
- package/dist/gateway/hooks-mapping.js +282 -0
- package/dist/gateway/hooks.js +168 -0
- package/dist/gateway/net.js +29 -0
- package/dist/gateway/protocol/index.js +62 -0
- package/dist/gateway/protocol/schema.js +577 -0
- package/dist/gateway/server-bridge-subscriptions.js +93 -0
- package/dist/gateway/server-bridge.js +1066 -0
- package/dist/gateway/server-browser.js +11 -0
- package/dist/gateway/server-channels.js +680 -0
- package/dist/gateway/server-chat.js +159 -0
- package/dist/gateway/server-constants.js +8 -0
- package/dist/gateway/server-discovery.js +62 -0
- package/dist/gateway/server-http.js +165 -0
- package/dist/gateway/server-methods/agent-job.js +114 -0
- package/dist/gateway/server-methods/agent.js +254 -0
- package/dist/gateway/server-methods/channels.js +239 -0
- package/dist/gateway/server-methods/chat.js +207 -0
- package/dist/gateway/server-methods/config.js +50 -0
- package/dist/gateway/server-methods/connect.js +6 -0
- package/dist/gateway/server-methods/cron.js +89 -0
- package/dist/gateway/server-methods/health.js +28 -0
- package/dist/gateway/server-methods/models.js +16 -0
- package/dist/gateway/server-methods/nodes.js +294 -0
- package/dist/gateway/server-methods/providers.js +257 -0
- package/dist/gateway/server-methods/send.js +254 -0
- package/dist/gateway/server-methods/sessions.js +382 -0
- package/dist/gateway/server-methods/skills.js +83 -0
- package/dist/gateway/server-methods/system.js +118 -0
- package/dist/gateway/server-methods/talk.js +22 -0
- package/dist/gateway/server-methods/types.js +1 -0
- package/dist/gateway/server-methods/voicewake.js +30 -0
- package/dist/gateway/server-methods/web.js +81 -0
- package/dist/gateway/server-methods/wizard.js +100 -0
- package/dist/gateway/server-methods.js +53 -0
- package/dist/gateway/server-providers.js +687 -0
- package/dist/gateway/server-shared.js +1 -0
- package/dist/gateway/server-utils.js +35 -0
- package/dist/gateway/server.js +1478 -0
- package/dist/gateway/session-utils.js +355 -0
- package/dist/gateway/ws-log.js +343 -0
- package/dist/gateway/ws-logging.js +8 -0
- package/dist/globals.js +41 -0
- package/dist/hooks/gmail-ops.js +236 -0
- package/dist/hooks/gmail-setup-utils.js +278 -0
- package/dist/hooks/gmail-watcher.js +190 -0
- package/dist/hooks/gmail.js +177 -0
- package/dist/imessage/client.js +165 -0
- package/dist/imessage/index.js +3 -0
- package/dist/imessage/monitor.js +365 -0
- package/dist/imessage/probe.js +26 -0
- package/dist/imessage/send.js +83 -0
- package/dist/imessage/targets.js +176 -0
- package/dist/index.js +55 -0
- package/dist/infra/agent-events.js +46 -0
- package/dist/infra/binaries.js +9 -0
- package/dist/infra/bonjour-discovery.js +163 -0
- package/dist/infra/bonjour.js +200 -0
- package/dist/infra/bridge/server.js +564 -0
- package/dist/infra/canvas-host-url.js +54 -0
- package/dist/infra/channel-summary.js +78 -0
- package/dist/infra/control-ui-assets.js +112 -0
- package/dist/infra/dotenv.js +15 -0
- package/dist/infra/env.js +8 -0
- package/dist/infra/errors.js +28 -0
- package/dist/infra/event-log.js +251 -0
- package/dist/infra/gateway-lock.js +8 -0
- package/dist/infra/git-commit.js +91 -0
- package/dist/infra/heartbeat-events.js +21 -0
- package/dist/infra/heartbeat-runner.js +458 -0
- package/dist/infra/heartbeat-wake.js +61 -0
- package/dist/infra/is-main.js +37 -0
- package/dist/infra/json-file.js +21 -0
- package/dist/infra/machine-name.js +40 -0
- package/dist/infra/nexus-root.js +56 -0
- package/dist/infra/node-pairing.js +212 -0
- package/dist/infra/path-env.js +93 -0
- package/dist/infra/ports.js +87 -0
- package/dist/infra/provider-summary.js +80 -0
- package/dist/infra/provider-usage.auth.js +189 -0
- package/dist/infra/provider-usage.fetch.claude.js +129 -0
- package/dist/infra/provider-usage.fetch.codex.js +62 -0
- package/dist/infra/provider-usage.fetch.copilot.js +42 -0
- package/dist/infra/provider-usage.fetch.gemini.js +57 -0
- package/dist/infra/provider-usage.fetch.js +6 -0
- package/dist/infra/provider-usage.fetch.minimax.js +214 -0
- package/dist/infra/provider-usage.fetch.shared.js +11 -0
- package/dist/infra/provider-usage.fetch.zai.js +62 -0
- package/dist/infra/provider-usage.format.js +77 -0
- package/dist/infra/provider-usage.js +145 -0
- package/dist/infra/provider-usage.load.js +54 -0
- package/dist/infra/provider-usage.shared.js +19 -0
- package/dist/infra/provider-usage.types.js +1 -0
- package/dist/infra/restart.js +29 -0
- package/dist/infra/retry.js +16 -0
- package/dist/infra/runtime-guard.js +59 -0
- package/dist/infra/shell-env.js +88 -0
- package/dist/infra/system-events.js +71 -0
- package/dist/infra/system-presence.js +217 -0
- package/dist/infra/tailnet.js +46 -0
- package/dist/infra/tailscale.js +149 -0
- package/dist/infra/unhandled-rejections.js +19 -0
- package/dist/infra/usage-suggestions.js +241 -0
- package/dist/infra/usage-upload.js +290 -0
- package/dist/infra/voicewake.js +78 -0
- package/dist/infra/widearea-dns.js +123 -0
- package/dist/infra/ws.js +13 -0
- package/dist/logger.js +52 -0
- package/dist/logging.js +506 -0
- package/dist/macos/gateway-daemon.js +145 -0
- package/dist/macos/relay.js +49 -0
- package/dist/media/constants.js +33 -0
- package/dist/media/host.js +42 -0
- package/dist/media/image-ops.js +119 -0
- package/dist/media/mime.js +123 -0
- package/dist/media/parse.js +83 -0
- package/dist/media/server.js +64 -0
- package/dist/media/store.js +139 -0
- package/dist/polls.js +43 -0
- package/dist/process/command-queue.js +97 -0
- package/dist/process/exec.js +75 -0
- package/dist/provider-web.js +8 -0
- package/dist/providers/github-copilot-auth.js +123 -0
- package/dist/providers/github-copilot-models.js +35 -0
- package/dist/providers/github-copilot-token.js +11 -0
- package/dist/providers/location.js +48 -0
- package/dist/providers/web/index.js +2 -0
- package/dist/runtime.js +8 -0
- package/dist/sessions/level-overrides.js +9 -0
- package/dist/sessions/send-policy.js +68 -0
- package/dist/signal/client.js +134 -0
- package/dist/signal/daemon.js +69 -0
- package/dist/signal/index.js +3 -0
- package/dist/signal/monitor.js +411 -0
- package/dist/signal/probe.js +46 -0
- package/dist/signal/send.js +91 -0
- package/dist/slack/actions.js +97 -0
- package/dist/slack/index.js +5 -0
- package/dist/slack/monitor.js +1270 -0
- package/dist/slack/probe.js +47 -0
- package/dist/slack/send.js +131 -0
- package/dist/slack/token.js +10 -0
- package/dist/telegram/allowed-updates.js +8 -0
- package/dist/telegram/bot.js +724 -0
- package/dist/telegram/download.js +34 -0
- package/dist/telegram/index.js +4 -0
- package/dist/telegram/monitor.js +47 -0
- package/dist/telegram/pairing-store.js +77 -0
- package/dist/telegram/probe.js +63 -0
- package/dist/telegram/proxy.js +9 -0
- package/dist/telegram/reaction-level.js +45 -0
- package/dist/telegram/send.js +151 -0
- package/dist/telegram/sent-message-cache.js +65 -0
- package/dist/telegram/token.js +30 -0
- package/dist/telegram/update-offset-store.js +61 -0
- package/dist/telegram/webhook-set.js +12 -0
- package/dist/telegram/webhook.js +56 -0
- package/dist/tui/commands.js +87 -0
- package/dist/tui/components/assistant-message.js +16 -0
- package/dist/tui/components/chat-log.js +92 -0
- package/dist/tui/components/custom-editor.js +55 -0
- package/dist/tui/components/selectors.js +8 -0
- package/dist/tui/components/tool-execution.js +111 -0
- package/dist/tui/components/user-message.js +17 -0
- package/dist/tui/gateway-chat.js +140 -0
- package/dist/tui/theme/theme.js +80 -0
- package/dist/tui/tui.js +708 -0
- package/dist/utils.js +153 -0
- package/dist/version.js +18 -0
- package/dist/web/accounts.js +86 -0
- package/dist/web/active-listener.js +25 -0
- package/dist/web/auto-reply.js +1256 -0
- package/dist/web/inbound.js +649 -0
- package/dist/web/login-qr.js +230 -0
- package/dist/web/login.js +71 -0
- package/dist/web/media.js +175 -0
- package/dist/web/outbound.js +102 -0
- package/dist/web/qr-image.js +97 -0
- package/dist/web/reconnect.js +60 -0
- package/dist/web/session.js +370 -0
- package/dist/wizard/clack-prompter.js +56 -0
- package/dist/wizard/onboarding.js +620 -0
- package/dist/wizard/prompts.js +6 -0
- package/dist/wizard/session.js +203 -0
- package/docs/AGENTS.default.md +116 -0
- package/docs/CAPABILITIES.md +444 -0
- package/docs/CNAME +1 -0
- package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
- package/docs/RELEASING.md +69 -0
- package/docs/_config.yml +53 -0
- package/docs/_layouts/default.html +145 -0
- package/docs/agent-assisted-install.md +95 -0
- package/docs/agent-loop.md +61 -0
- package/docs/agent-send.md +21 -0
- package/docs/agent.md +108 -0
- package/docs/android.md +133 -0
- package/docs/architecture.md +114 -0
- package/docs/assets/markdown.css +133 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/terminal.css +470 -0
- package/docs/assets/theme.js +55 -0
- package/docs/audio.md +48 -0
- package/docs/automation/nexus-sync.md +371 -0
- package/docs/background-process.md +74 -0
- package/docs/bash.md +32 -0
- package/docs/bedrock.md +71 -0
- package/docs/bonjour.md +159 -0
- package/docs/browser-linux-troubleshooting.md +114 -0
- package/docs/browser.md +293 -0
- package/docs/bun.md +56 -0
- package/docs/camera.md +152 -0
- package/docs/clawd.md +212 -0
- package/docs/concepts/usage-tracking.md +29 -0
- package/docs/configuration.md +1666 -0
- package/docs/control-ui.md +83 -0
- package/docs/cron.md +385 -0
- package/docs/dashboard.md +17 -0
- package/docs/device-models.md +46 -0
- package/docs/discord.md +308 -0
- package/docs/discovery.md +112 -0
- package/docs/docker.md +258 -0
- package/docs/docs.json +105 -0
- package/docs/doctor.md +68 -0
- package/docs/elevated.md +31 -0
- package/docs/faq.md +736 -0
- package/docs/feature-inventory/overview.md +141 -0
- package/docs/feature-inventory/rollout-checklist.md +53 -0
- package/docs/feature-inventory/test-matrix.md +87 -0
- package/docs/feature-inventory.md +9 -0
- package/docs/gateway/configuration-examples.md +221 -0
- package/docs/gateway/configuration.md +172 -0
- package/docs/gateway/cron.md +61 -0
- package/docs/gateway/heartbeat.md +207 -0
- package/docs/gateway/pairing.md +109 -0
- package/docs/gateway-lock.md +28 -0
- package/docs/gateway.md +227 -0
- package/docs/gmail-pubsub.md +191 -0
- package/docs/grammy.md +27 -0
- package/docs/group-messages.md +73 -0
- package/docs/groups.md +130 -0
- package/docs/health.md +28 -0
- package/docs/heartbeat.md +73 -0
- package/docs/home-userspace.md +277 -0
- package/docs/hubs.md +148 -0
- package/docs/images.md +51 -0
- package/docs/imessage.md +94 -0
- package/docs/index.md +196 -0
- package/docs/ios.md +372 -0
- package/docs/linux.md +11 -0
- package/docs/location-command.md +95 -0
- package/docs/location.md +46 -0
- package/docs/logging.md +110 -0
- package/docs/lore.md +131 -0
- package/docs/mac/bun.md +133 -0
- package/docs/mac/canvas.md +161 -0
- package/docs/mac/child-process.md +72 -0
- package/docs/mac/dev-setup.md +81 -0
- package/docs/mac/health.md +28 -0
- package/docs/mac/icon.md +26 -0
- package/docs/mac/logging.md +51 -0
- package/docs/mac/menu-bar.md +69 -0
- package/docs/mac/peekaboo.md +170 -0
- package/docs/mac/permissions.md +40 -0
- package/docs/mac/release.md +76 -0
- package/docs/mac/remote.md +57 -0
- package/docs/mac/signing.md +41 -0
- package/docs/mac/skills.md +27 -0
- package/docs/mac/voice-overlay.md +52 -0
- package/docs/mac/voicewake.md +56 -0
- package/docs/mac/webchat.md +27 -0
- package/docs/mac/xpc.md +40 -0
- package/docs/macos.md +104 -0
- package/docs/model-failover.md +75 -0
- package/docs/models.md +91 -0
- package/docs/multi-agent.md +74 -0
- package/docs/nix.md +95 -0
- package/docs/nodes.md +157 -0
- package/docs/onboarding-config-protocol.md +34 -0
- package/docs/onboarding.md +189 -0
- package/docs/pairing.md +85 -0
- package/docs/plans/cron-add-hardening.md +72 -0
- package/docs/plans/group-policy-hardening.md +121 -0
- package/docs/poll.md +52 -0
- package/docs/prereqs.md +67 -0
- package/docs/presence.md +133 -0
- package/docs/proposals/model-config.md +147 -0
- package/docs/provider-routing.md +25 -0
- package/docs/queue.md +78 -0
- package/docs/reference/templates/AGENTS.md +164 -0
- package/docs/remote-gateway-readme.md +153 -0
- package/docs/remote.md +61 -0
- package/docs/research/memory.md +227 -0
- package/docs/rpc.md +35 -0
- package/docs/security.md +200 -0
- package/docs/session-ingestion.md +119 -0
- package/docs/session-tool.md +154 -0
- package/docs/session.md +85 -0
- package/docs/sessions.md +8 -0
- package/docs/setup.md +131 -0
- package/docs/showcase.md +37 -0
- package/docs/signal.md +122 -0
- package/docs/skills-config.md +58 -0
- package/docs/skills.md +153 -0
- package/docs/slack.md +221 -0
- package/docs/subagents.md +72 -0
- package/docs/tailscale.md +71 -0
- package/docs/talk.md +79 -0
- package/docs/telegram.md +96 -0
- package/docs/templates/AGENTS.md +286 -0
- package/docs/templates/BOOTSTRAP.md +35 -0
- package/docs/templates/IDENTITY.md +17 -0
- package/docs/templates/PROFILE.md +14 -0
- package/docs/templates/SOUL.md +41 -0
- package/docs/templates/TOOLS.md +41 -0
- package/docs/templates/USER.md +8 -0
- package/docs/test.md +43 -0
- package/docs/testing-onboarding-quickstart.md +76 -0
- package/docs/testing-philosophy.md +211 -0
- package/docs/thinking.md +46 -0
- package/docs/timezone.md +40 -0
- package/docs/tools.md +346 -0
- package/docs/troubleshooting.md +257 -0
- package/docs/tui.md +71 -0
- package/docs/typebox.md +42 -0
- package/docs/updating.md +138 -0
- package/docs/usage-cloud-aggregation-spec.md +133 -0
- package/docs/usage-suggestions-pipeline.md +126 -0
- package/docs/voicewake.md +61 -0
- package/docs/web.md +115 -0
- package/docs/webchat.md +34 -0
- package/docs/webhook.md +132 -0
- package/docs/whatsapp-clawd.jpg +0 -0
- package/docs/whatsapp.md +170 -0
- package/docs/windows.md +11 -0
- package/docs/wizard.md +167 -0
- package/package.json +209 -0
- package/skills/1password/SKILL.md +54 -0
- package/skills/1password/docs/setup.md +85 -0
- package/skills/1password/docs/troubleshooting.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/agent-browser/SKILL.md +450 -0
- package/skills/agent-browser/docs/browser-use-eval.md +95 -0
- package/skills/agent-browser/docs/first-tests.md +261 -0
- package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
- package/skills/aix/SKILL.md +93 -0
- package/skills/aix/docs/embeddings.md +40 -0
- package/skills/aix/docs/setup.md +58 -0
- package/skills/aix/docs/troubleshooting.md +41 -0
- package/skills/aix/references/sql.md +48 -0
- package/skills/apple-notes/SKILL.md +50 -0
- package/skills/apple-reminders/SKILL.md +67 -0
- package/skills/bear-notes/SKILL.md +79 -0
- package/skills/bird/SKILL.md +32 -0
- package/skills/bird/docs/auth.md +31 -0
- package/skills/bird/docs/troubleshooting.md +31 -0
- package/skills/blogwatcher/SKILL.md +46 -0
- package/skills/blucli/SKILL.md +27 -0
- package/skills/brave-search/SKILL.md +36 -0
- package/skills/brave-search/docs/setup.md +40 -0
- package/skills/brave-search/docs/troubleshooting.md +37 -0
- package/skills/brave-search/docs/usage.md +28 -0
- package/skills/brave-search/scripts/content.mjs +53 -0
- package/skills/brave-search/scripts/search.mjs +79 -0
- package/skills/browser-use-agent-sdk/SKILL.md +90 -0
- package/skills/camsnap/SKILL.md +25 -0
- package/skills/clawdhub/SKILL.md +53 -0
- package/skills/coding-agent/SKILL.md +274 -0
- package/skills/comms/SKILL.md +249 -0
- package/skills/comms/docs/adapters.md +54 -0
- package/skills/comms/docs/setup.md +56 -0
- package/skills/comms/docs/troubleshooting.md +44 -0
- package/skills/comms/references/schema.md +49 -0
- package/skills/computer-use/SKILL.md +204 -0
- package/skills/computer-use/docs/open-interpreter.md +26 -0
- package/skills/computer-use/docs/peekaboo.md +26 -0
- package/skills/computer-use/docs/setup.md +47 -0
- package/skills/computer-use/docs/troubleshooting.md +33 -0
- package/skills/discord/SKILL.md +370 -0
- package/skills/eightctl/SKILL.md +29 -0
- package/skills/eve/SKILL.md +215 -0
- package/skills/eve/docs/dual-account.md +84 -0
- package/skills/eve/docs/intelligence.md +58 -0
- package/skills/eve/docs/setup.md +60 -0
- package/skills/eve/docs/troubleshooting.md +54 -0
- package/skills/eve/scripts/setup-dual-account.sh +125 -0
- package/skills/filesystem/SKILL.md +217 -0
- package/skills/food-order/SKILL.md +41 -0
- package/skills/gemini/SKILL.md +23 -0
- package/skills/gh/SKILL.md +22 -0
- package/skills/gh/docs/usage.md +41 -0
- package/skills/gifgrep/SKILL.md +47 -0
- package/skills/github/SKILL.md +26 -0
- package/skills/github/docs/setup.md +21 -0
- package/skills/github/docs/troubleshooting.md +24 -0
- package/skills/gog/SKILL.md +104 -0
- package/skills/gog/docs/portability.md +94 -0
- package/skills/gog/docs/setup.md +76 -0
- package/skills/gog/docs/troubleshooting.md +94 -0
- package/skills/gog/scripts/cdp/README.md +90 -0
- package/skills/gog/scripts/cdp/add_test_users.py +69 -0
- package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
- package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
- package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
- package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
- package/skills/google-oauth/SKILL.md +94 -0
- package/skills/goplaces/SKILL.md +30 -0
- package/skills/imsg/SKILL.md +25 -0
- package/skills/json-render/SKILL.md +154 -0
- package/skills/json-render/assets/components/README.md +21 -0
- package/skills/json-render/assets/components/catalog.ts +78 -0
- package/skills/json-render/assets/components/registry.tsx +172 -0
- package/skills/json-render/assets/demo/App.css +397 -0
- package/skills/json-render/assets/demo/App.tsx +897 -0
- package/skills/json-render/assets/demo/README.md +22 -0
- package/skills/json-render/assets/demo/catalog.ts +78 -0
- package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
- package/skills/json-render/assets/demo/index.css +27 -0
- package/skills/json-render/assets/demo/registry.tsx +150 -0
- package/skills/json-render/docs/nexus-state-demo.md +84 -0
- package/skills/json-render/docs/shadcn-preset.md +33 -0
- package/skills/json-render/scripts/create-vite-demo.sh +45 -0
- package/skills/json-render/scripts/llm-server/README.md +33 -0
- package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
- package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
- package/skills/json-render/scripts/llm-server/package.json +18 -0
- package/skills/json-render/scripts/llm-server/server.ts +285 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +91 -0
- package/skills/local-places/pyproject.toml +27 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +38 -0
- package/skills/model-usage/SKILL.md +45 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +30 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
- package/skills/nano-pdf/SKILL.md +20 -0
- package/skills/nexus-cloud/SKILL.md +53 -0
- package/skills/nexus-cloud/docs/security.md +24 -0
- package/skills/nexus-cloud/docs/setup.md +51 -0
- package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
- package/skills/notion/SKILL.md +156 -0
- package/skills/obsidian/SKILL.md +55 -0
- package/skills/onboarding/SKILL.md +515 -0
- package/skills/onboarding/docs/CAPABILITIES.md +444 -0
- package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
- package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
- package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
- package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
- package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
- package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
- package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
- package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
- package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
- package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
- package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
- package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
- package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
- package/skills/onboarding/docs/agent-apple-id.md +289 -0
- package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
- package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
- package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
- package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
- package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
- package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
- package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
- package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
- package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
- package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
- package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
- package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
- package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
- package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
- package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
- package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
- package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
- package/skills/onboarding/scripts/ralph/prd.json +215 -0
- package/skills/onboarding/scripts/ralph/progress.txt +99 -0
- package/skills/onboarding/scripts/ralph/prompt.md +87 -0
- package/skills/onboarding/scripts/ralph/ralph.log +84 -0
- package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
- package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
- package/skills/openai-image-gen/SKILL.md +31 -0
- package/skills/openai-image-gen/scripts/gen.py +173 -0
- package/skills/openai-whisper/SKILL.md +19 -0
- package/skills/openai-whisper-api/SKILL.md +43 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +30 -0
- package/skills/oracle/SKILL.md +105 -0
- package/skills/ordercli/SKILL.md +47 -0
- package/skills/peekaboo/SKILL.md +153 -0
- package/skills/qmd/SKILL.md +32 -0
- package/skills/qmd/docs/mcp.md +30 -0
- package/skills/qmd/docs/ollama.md +42 -0
- package/skills/qmd/docs/setup.md +44 -0
- package/skills/sag/SKILL.md +62 -0
- package/skills/skill-cli-template/SKILL.md +109 -0
- package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +29 -0
- package/skills/sonoscli/SKILL.md +26 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/summarize/SKILL.md +49 -0
- package/skills/telegram/SKILL.md +20 -0
- package/skills/telegram/docs/pairing.md +30 -0
- package/skills/telegram/docs/setup.md +41 -0
- package/skills/telegram/docs/webhook.md +17 -0
- package/skills/things-mac/SKILL.md +61 -0
- package/skills/tmux/SKILL.md +121 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +84 -0
- package/skills/upstream-sync/SKILL.md +151 -0
- package/skills/upstream-sync/scripts/auto-port.sh +227 -0
- package/skills/upstream-sync/scripts/check-all.sh +88 -0
- package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
- package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
- package/skills/video-frames/SKILL.md +29 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/wacli/SKILL.md +48 -0
- package/skills/wacli/docs/auth.md +21 -0
- package/skills/wacli/docs/backup.md +9 -0
- package/skills/wacli/docs/troubleshooting.md +21 -0
- package/skills/weather/SKILL.md +53 -0
- package/skills/weather/docs/usage.md +40 -0
|
@@ -0,0 +1,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*
|