@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,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github
|
|
3
|
+
description: Authenticate to GitHub for CLI/API access (used by the gh tool).
|
|
4
|
+
homepage: https://cli.github.com/
|
|
5
|
+
metadata: {"nexus":{"type":"connector","provides":["repo-access","ci-cd"],"requires":{"bins":["gh"],"credentials":["github"],"env":["GITHUB_TOKEN"]},"primaryEnv":"GITHUB_TOKEN"}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# GitHub Connector
|
|
9
|
+
|
|
10
|
+
This connector manages GitHub authentication for `gh` and API access.
|
|
11
|
+
|
|
12
|
+
## Docs
|
|
13
|
+
|
|
14
|
+
- `docs/setup.md`
|
|
15
|
+
- `docs/troubleshooting.md`
|
|
16
|
+
|
|
17
|
+
## Quick check
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
gh auth status
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Notes
|
|
24
|
+
|
|
25
|
+
- Use `GITHUB_TOKEN` for automation/CI.
|
|
26
|
+
- For interactive use, `gh auth login` is easiest.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# GitHub Connector Setup
|
|
2
|
+
|
|
3
|
+
## Authenticate with gh (interactive)
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
gh auth login
|
|
7
|
+
gh auth status
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Token-based auth (automation)
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
export GITHUB_TOKEN="your-token-here"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Create a token at https://github.com/settings/tokens and grant only the scopes you need.
|
|
17
|
+
|
|
18
|
+
## Notes
|
|
19
|
+
|
|
20
|
+
- When not in a git repo, pass `--repo owner/repo`.
|
|
21
|
+
- For CI, prefer `GITHUB_TOKEN` and `gh auth status` to verify.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# GitHub Connector Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Not logged in
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
gh auth login
|
|
7
|
+
gh auth status
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Repo not found (outside git dir)
|
|
11
|
+
|
|
12
|
+
Use explicit `--repo`:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
gh pr list --repo owner/repo
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Token not picked up
|
|
19
|
+
|
|
20
|
+
Ensure `GITHUB_TOKEN` is exported:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
export GITHUB_TOKEN="your-token-here"
|
|
24
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gog
|
|
3
|
+
description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, People, and Tasks.
|
|
4
|
+
homepage: https://gogcli.sh
|
|
5
|
+
metadata: {"nexus":{"emoji":"📧","type":"tool","provides":["email-read","email-send","calendar","contacts","cloud-storage"],"requires":{"bins":["gog"],"credentials":["google-oauth"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gog (brew)"}]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# gog
|
|
9
|
+
|
|
10
|
+
Google Workspace CLI. Requires OAuth setup via the `google-oauth` connector.
|
|
11
|
+
|
|
12
|
+
## Docs
|
|
13
|
+
|
|
14
|
+
- `docs/setup.md`
|
|
15
|
+
- `docs/portability.md`
|
|
16
|
+
- `docs/troubleshooting.md`
|
|
17
|
+
- `scripts/cdp/README.md` (CDP automation)
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
gog gmail search "is:unread" --max 10
|
|
23
|
+
gog calendar events --json
|
|
24
|
+
gog drive ls --max 5
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Commands
|
|
28
|
+
|
|
29
|
+
### Gmail
|
|
30
|
+
```bash
|
|
31
|
+
gog gmail search "newer_than:7d" --max 20
|
|
32
|
+
gog gmail labels list
|
|
33
|
+
gog gmail send --to user@example.com --subject "Hi" --body "Hello"
|
|
34
|
+
gog gmail thread get <threadId>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Calendar
|
|
38
|
+
```bash
|
|
39
|
+
gog calendar calendars
|
|
40
|
+
gog calendar events # All calendars
|
|
41
|
+
gog calendar events <calendarId> --from 2026-01-01 --to 2026-01-31
|
|
42
|
+
gog calendar create <calendarId> --summary "Meeting" --start "2026-01-15T10:00:00"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Drive
|
|
46
|
+
```bash
|
|
47
|
+
gog drive ls # Root folder
|
|
48
|
+
gog drive ls --parent <folderId>
|
|
49
|
+
gog drive search "budget" --max 10
|
|
50
|
+
gog drive download <fileId> --out ./file.pdf
|
|
51
|
+
gog drive upload ./doc.pdf --parent <folderId>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Contacts / People
|
|
55
|
+
```bash
|
|
56
|
+
gog contacts list --max 50
|
|
57
|
+
gog people me # Your profile
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Tasks
|
|
61
|
+
```bash
|
|
62
|
+
gog tasks lists
|
|
63
|
+
gog tasks list <tasklistId>
|
|
64
|
+
gog tasks add <tasklistId> --title "Do the thing"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Sheets
|
|
68
|
+
```bash
|
|
69
|
+
gog sheets get <spreadsheetId> "Sheet1!A1:D10" --json
|
|
70
|
+
gog sheets update <spreadsheetId> "Sheet1!A1:B2" --values-json '[["A","B"],["1","2"]]'
|
|
71
|
+
gog sheets append <spreadsheetId> "Sheet1!A:C" --values-json '[["x","y","z"]]'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Docs / Slides
|
|
75
|
+
```bash
|
|
76
|
+
gog docs cat <docId>
|
|
77
|
+
gog docs export <docId> --format txt --out ./doc.txt
|
|
78
|
+
gog slides export <presentationId> --format pdf --out ./deck.pdf
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Multi-Account
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
gog auth list # See all accounts
|
|
85
|
+
gog gmail search "test" --account user@gmail.com
|
|
86
|
+
export GOG_ACCOUNT=user@gmail.com # Set default
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Flags
|
|
90
|
+
|
|
91
|
+
| Flag | Description |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `--account` | Specify which Google account to use |
|
|
94
|
+
| `--json` | Output as JSON (for scripting) |
|
|
95
|
+
| `--plain` | TSV output, no colors |
|
|
96
|
+
| `--max N` | Limit results |
|
|
97
|
+
| `--force` | Skip confirmations |
|
|
98
|
+
| `--no-input` | Never prompt (CI mode) |
|
|
99
|
+
|
|
100
|
+
## Setup & Portability
|
|
101
|
+
|
|
102
|
+
- First-time setup: `docs/setup.md`
|
|
103
|
+
- Moving to another machine: `docs/portability.md`
|
|
104
|
+
- Browser automation scripts: `scripts/cdp/README.md`
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# gog Portability
|
|
2
|
+
|
|
3
|
+
How to move your Google auth to another machine.
|
|
4
|
+
|
|
5
|
+
## The Pattern: 1Password is the Source of Truth
|
|
6
|
+
|
|
7
|
+
**Always export tokens to 1Password immediately after auth.** This makes portability trivial.
|
|
8
|
+
|
|
9
|
+
## Export Tokens (Do This After Every Auth)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Export to temp file
|
|
13
|
+
gog auth tokens export you@gmail.com --out /tmp/gog-token.json
|
|
14
|
+
|
|
15
|
+
# Store in 1Password
|
|
16
|
+
op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
|
|
17
|
+
|
|
18
|
+
# Clean up (token file contains secrets!)
|
|
19
|
+
rm /tmp/gog-token.json
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Import Tokens (On New Machine)
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# 1. Install gog
|
|
26
|
+
brew install steipete/tap/gogcli
|
|
27
|
+
|
|
28
|
+
# 2. Copy credentials.json (same one works everywhere)
|
|
29
|
+
# Either from 1Password or from old machine
|
|
30
|
+
cp /path/to/credentials.json ~/.config/gog/credentials.json
|
|
31
|
+
# Or: gog auth credentials /path/to/credentials.json
|
|
32
|
+
|
|
33
|
+
# 3. Download token from 1Password
|
|
34
|
+
op document get "gog-you@gmail.com" --out-file /tmp/gog-token.json
|
|
35
|
+
|
|
36
|
+
# 4. Import into keychain
|
|
37
|
+
gog auth tokens import /tmp/gog-token.json
|
|
38
|
+
|
|
39
|
+
# 5. Clean up
|
|
40
|
+
rm /tmp/gog-token.json
|
|
41
|
+
|
|
42
|
+
# 6. Verify
|
|
43
|
+
gog auth list
|
|
44
|
+
gog gmail labels list --account you@gmail.com
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Bulk Export/Import
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Export all accounts
|
|
51
|
+
for email in $(gog auth list --plain | cut -f1); do
|
|
52
|
+
gog auth tokens export "$email" --out "/tmp/gog-${email}.json"
|
|
53
|
+
op document create "/tmp/gog-${email}.json" --title "gog-${email}" --vault Personal
|
|
54
|
+
rm "/tmp/gog-${email}.json"
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
# Import all (on new machine)
|
|
58
|
+
for item in $(op document list --vault Personal --format json | jq -r '.[] | select(.title | startswith("gog-")) | .title'); do
|
|
59
|
+
op document get "$item" --out-file "/tmp/${item}.json"
|
|
60
|
+
gog auth tokens import "/tmp/${item}.json"
|
|
61
|
+
rm "/tmp/${item}.json"
|
|
62
|
+
done
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## What's Portable
|
|
66
|
+
|
|
67
|
+
| Item | How to Move |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `credentials.json` | Copy file (safe to share, it's just client config) |
|
|
70
|
+
| Refresh tokens | Export -> 1Password -> Import |
|
|
71
|
+
| Account list | Rebuilt automatically when you import tokens |
|
|
72
|
+
|
|
73
|
+
## Security notes
|
|
74
|
+
|
|
75
|
+
- `credentials.json` is not a secret (client config only).
|
|
76
|
+
- Refresh tokens are secrets; store them in 1Password or another secure vault.
|
|
77
|
+
- Remove temporary token files after export/import.
|
|
78
|
+
|
|
79
|
+
## Why 1Password?
|
|
80
|
+
|
|
81
|
+
- Single source of truth for all secrets
|
|
82
|
+
- Syncs across machines automatically
|
|
83
|
+
- Encrypted, biometric unlock
|
|
84
|
+
- Scriptable with `op` CLI for automation
|
|
85
|
+
|
|
86
|
+
## Re-Auth (If Tokens Expire)
|
|
87
|
+
|
|
88
|
+
Tokens rarely expire, but if they do:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
gog auth remove you@gmail.com --force
|
|
92
|
+
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
|
|
93
|
+
# Then export to 1Password again
|
|
94
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# gog Setup Guide
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
1. **gog CLI** installed.
|
|
6
|
+
2. **google-oauth connector** configured (`credentials.json` in `~/.config/gog/`).
|
|
7
|
+
3. **1Password CLI** installed and signed in (for token portability).
|
|
8
|
+
4. **Google account(s)** you want to connect.
|
|
9
|
+
|
|
10
|
+
## Install gog
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
brew install steipete/tap/gogcli
|
|
14
|
+
gog --version
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Configure OAuth client
|
|
18
|
+
|
|
19
|
+
The OAuth client setup lives in the `google-oauth` connector guide:
|
|
20
|
+
- `skills/google-oauth/SKILL.md`
|
|
21
|
+
|
|
22
|
+
If you want automation, see:
|
|
23
|
+
- `skills/gog/scripts/cdp/README.md`
|
|
24
|
+
|
|
25
|
+
## Quick Setup (Recommended)
|
|
26
|
+
|
|
27
|
+
If `credentials.json` is already configured:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 1. Auth each account (browser opens, click Allow)
|
|
31
|
+
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
|
|
32
|
+
|
|
33
|
+
# 2. Export token to 1Password immediately
|
|
34
|
+
gog auth tokens export you@gmail.com --out /tmp/gog-token.json
|
|
35
|
+
op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
|
|
36
|
+
rm /tmp/gog-token.json
|
|
37
|
+
|
|
38
|
+
# 3. Verify
|
|
39
|
+
gog gmail labels list --account you@gmail.com
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Repeat for each Google account.
|
|
43
|
+
|
|
44
|
+
## Authorize accounts
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,people,tasks
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Browser opens -> Click through:
|
|
51
|
+
1. "Choose an account" -> select yours
|
|
52
|
+
2. "Google hasn't verified this app" -> Advanced -> "Go to gog-cli (unsafe)"
|
|
53
|
+
3. Permission list -> "Allow"
|
|
54
|
+
|
|
55
|
+
## What gets stored
|
|
56
|
+
|
|
57
|
+
| Location | Contents |
|
|
58
|
+
|----------|----------|
|
|
59
|
+
| `~/.config/gog/credentials.json` | OAuth client config (shareable) |
|
|
60
|
+
| macOS Keychain | Refresh tokens (per account) |
|
|
61
|
+
| 1Password (recommended) | Exported token files for portability |
|
|
62
|
+
|
|
63
|
+
## After setup
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Verify all accounts
|
|
67
|
+
gog auth list
|
|
68
|
+
|
|
69
|
+
# Test each one
|
|
70
|
+
gog gmail labels list --account you@gmail.com
|
|
71
|
+
gog drive ls --account you@gmail.com
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Troubleshooting
|
|
75
|
+
|
|
76
|
+
See `docs/troubleshooting.md` for common failures (access_denied, APIs not enabled, CDP issues).
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# gog Troubleshooting
|
|
2
|
+
|
|
3
|
+
## access_denied / "developer hasn't given you access"
|
|
4
|
+
|
|
5
|
+
**Symptom:** OAuth consent fails with access_denied.
|
|
6
|
+
|
|
7
|
+
**Cause:** Your account is not listed as a Test user for the OAuth consent screen.
|
|
8
|
+
|
|
9
|
+
**Fix:**
|
|
10
|
+
|
|
11
|
+
1. Go to https://console.cloud.google.com/auth/audience
|
|
12
|
+
2. Under "Test users", click "Add users".
|
|
13
|
+
3. Add your email addresses and save.
|
|
14
|
+
4. Re-run `gog auth add ...` after a minute or two.
|
|
15
|
+
|
|
16
|
+
## APIs not enabled
|
|
17
|
+
|
|
18
|
+
**Symptom:** Errors like "Gmail API has not been used in project" or `accessNotConfigured`.
|
|
19
|
+
|
|
20
|
+
**Cause:** Required APIs not enabled for the GCP project.
|
|
21
|
+
|
|
22
|
+
**Fix:**
|
|
23
|
+
|
|
24
|
+
Enable these APIs in Cloud Console:
|
|
25
|
+
- Gmail API
|
|
26
|
+
- Google Calendar API
|
|
27
|
+
- Google Drive API
|
|
28
|
+
- Google People API
|
|
29
|
+
- Google Sheets API
|
|
30
|
+
- Google Tasks API
|
|
31
|
+
|
|
32
|
+
Optional CLI (if `gcloud` is installed):
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
gcloud services enable gmail.googleapis.com
|
|
36
|
+
gcloud services enable calendar-json.googleapis.com
|
|
37
|
+
gcloud services enable drive.googleapis.com
|
|
38
|
+
gcloud services enable people.googleapis.com
|
|
39
|
+
gcloud services enable sheets.googleapis.com
|
|
40
|
+
gcloud services enable tasks.googleapis.com
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Tokens not portable between machines
|
|
44
|
+
|
|
45
|
+
**Symptom:** gog works on one machine but not another.
|
|
46
|
+
|
|
47
|
+
**Cause:** Tokens are in local keychain, not backed up to 1Password.
|
|
48
|
+
|
|
49
|
+
**Fix:**
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gog auth tokens export you@gmail.com --out /tmp/gog-token.json
|
|
53
|
+
op document create /tmp/gog-token.json --title "gog-you@gmail.com" --vault Personal
|
|
54
|
+
rm /tmp/gog-token.json
|
|
55
|
+
|
|
56
|
+
# On the new machine
|
|
57
|
+
op document get "gog-you@gmail.com" --out-file /tmp/gog-token.json
|
|
58
|
+
gog auth tokens import /tmp/gog-token.json
|
|
59
|
+
rm /tmp/gog-token.json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Workspace account requires admin approval
|
|
63
|
+
|
|
64
|
+
**Symptom:** OAuth consent says "Admin approval required".
|
|
65
|
+
|
|
66
|
+
**Cause:** Google Workspace policy blocks unapproved apps.
|
|
67
|
+
|
|
68
|
+
**Fix:**
|
|
69
|
+
|
|
70
|
+
- Ask your Workspace admin to approve the app, or
|
|
71
|
+
- Use a personal Gmail account instead.
|
|
72
|
+
|
|
73
|
+
## CDP automation fails
|
|
74
|
+
|
|
75
|
+
**Symptom:** CDP scripts hang or error.
|
|
76
|
+
|
|
77
|
+
**Cause:** Chrome not running with `--remote-debugging-port`, or profile copy issues.
|
|
78
|
+
|
|
79
|
+
**Fix:**
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
curl -s http://127.0.0.1:9222/json/version
|
|
83
|
+
|
|
84
|
+
# If not running, restart the CDP Chrome session
|
|
85
|
+
pkill -9 "Google Chrome"
|
|
86
|
+
cd skills/gog/scripts/cdp
|
|
87
|
+
bash launch_cdp_chrome.sh
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Re-run the script you were using:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
python auth_add_accounts.py --emails you@gmail.com
|
|
94
|
+
```
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
## gog CDP autopilot
|
|
2
|
+
|
|
3
|
+
This folder contains scripts for a fully automated `gog` onboarding using your already-logged-in Chrome.
|
|
4
|
+
|
|
5
|
+
Why CDP?
|
|
6
|
+
- Normal browser automation launches a fresh browser -> you have to re-login.
|
|
7
|
+
- CDP (Chrome DevTools Protocol) lets Playwright control a Chrome instance that has your existing cookies/session.
|
|
8
|
+
|
|
9
|
+
### What this accomplishes
|
|
10
|
+
|
|
11
|
+
1. Launch a dedicated Chrome instance with `--remote-debugging-port`
|
|
12
|
+
2. Attach Playwright over CDP
|
|
13
|
+
3. (Optional) Create OAuth client + download `credentials.json`
|
|
14
|
+
4. Add your emails as OAuth Test users (required when publishing status is Testing)
|
|
15
|
+
5. Run `gog auth add` for multiple accounts and click through consent automatically
|
|
16
|
+
|
|
17
|
+
### Prereqs
|
|
18
|
+
|
|
19
|
+
- `brew install steipete/tap/gogcli` (provides `gog`)
|
|
20
|
+
- `uv` installed
|
|
21
|
+
- macOS: Google Chrome installed
|
|
22
|
+
|
|
23
|
+
### 0) One-time environment setup
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
mkdir -p ~/nexus/state/browser/cdp
|
|
27
|
+
cd ~/nexus/state/browser/cdp
|
|
28
|
+
|
|
29
|
+
uv venv --python 3.11
|
|
30
|
+
source .venv/bin/activate
|
|
31
|
+
uv pip install playwright==1.57.0
|
|
32
|
+
python -m playwright install chromium
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 1) Launch CDP Chrome using a copied profile
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
bash ./launch_cdp_chrome.sh
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This copies a minimal set of Chrome profile files into:
|
|
42
|
+
`~/nexus/state/browser/cdp/chrome-user-data/`
|
|
43
|
+
|
|
44
|
+
Then it launches:
|
|
45
|
+
- port: `9222`
|
|
46
|
+
- profile: `Default`
|
|
47
|
+
|
|
48
|
+
Verify CDP is running:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
curl -s http://127.0.0.1:9222/json/version
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2) Ensure gog has OAuth client credentials
|
|
55
|
+
|
|
56
|
+
If you already have a `credentials.json`, store it:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
gog auth credentials /path/to/credentials.json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If you want to create it via CDP automation, see `create_oauth_client.py` (requires `GCP_PROJECT_ID`).
|
|
63
|
+
|
|
64
|
+
### 3) Add OAuth test users (fixes `access_denied`)
|
|
65
|
+
|
|
66
|
+
If your consent screen is Testing, add users:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
python add_test_users.py \
|
|
70
|
+
--project "$GCP_PROJECT_ID" \
|
|
71
|
+
--emails tnapathy@gmail.com tyler@intent-systems.com tyler@merchcraft.com
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4) Authorize multiple accounts (stores refresh tokens)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
python auth_add_accounts.py \
|
|
78
|
+
--emails tnapathy@gmail.com tyler@intent-systems.com tyler@merchcraft.com
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Verify:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
gog auth list
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Notes
|
|
88
|
+
|
|
89
|
+
- If you see "developer hasn't given you access" / `access_denied`, your user is not a Test user (or propagation hasn't completed yet).
|
|
90
|
+
- Workspace accounts may require admin approval depending on org policies.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Add OAuth "Test users" on Google Auth Platform -> Audience via CDP Chrome.
|
|
4
|
+
|
|
5
|
+
This fixes the common error:
|
|
6
|
+
access_denied / "developer hasn't given you access"
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
python add_test_users.py --project <gcp-project-id> --emails a@b.com c@d.com
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import argparse
|
|
13
|
+
import re
|
|
14
|
+
from playwright.sync_api import sync_playwright
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def parse_args():
|
|
18
|
+
ap = argparse.ArgumentParser()
|
|
19
|
+
ap.add_argument("--project", required=True, help="GCP project id (e.g. gen-lang-client-xxxx)")
|
|
20
|
+
ap.add_argument("--emails", nargs="+", required=True, help="Emails to add as test users")
|
|
21
|
+
ap.add_argument("--cdp", default="http://127.0.0.1:9222", help="CDP endpoint (default: 127.0.0.1:9222)")
|
|
22
|
+
return ap.parse_args()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def main():
|
|
26
|
+
args = parse_args()
|
|
27
|
+
url = f"https://console.cloud.google.com/auth/audience?project={args.project}"
|
|
28
|
+
|
|
29
|
+
with sync_playwright() as p:
|
|
30
|
+
browser = p.chromium.connect_over_cdp(args.cdp)
|
|
31
|
+
ctx = browser.contexts[0]
|
|
32
|
+
ctx.set_default_timeout(30000)
|
|
33
|
+
|
|
34
|
+
page = ctx.new_page()
|
|
35
|
+
page.goto(url, wait_until="domcontentloaded")
|
|
36
|
+
page.wait_for_timeout(2500)
|
|
37
|
+
|
|
38
|
+
# Open Add users panel
|
|
39
|
+
page.get_by_role("button", name=re.compile(r"add users", re.I)).first.click(timeout=10000)
|
|
40
|
+
page.wait_for_timeout(1500)
|
|
41
|
+
|
|
42
|
+
# Input expects "chips": type email + Enter
|
|
43
|
+
tb = page.get_by_role("textbox").first
|
|
44
|
+
tb.click()
|
|
45
|
+
|
|
46
|
+
for email in args.emails:
|
|
47
|
+
tb.fill("")
|
|
48
|
+
tb.type(email, delay=20)
|
|
49
|
+
tb.press("Enter")
|
|
50
|
+
page.wait_for_timeout(350)
|
|
51
|
+
|
|
52
|
+
# Save
|
|
53
|
+
page.get_by_role("button", name=re.compile(r"^save$", re.I)).first.click(timeout=10000)
|
|
54
|
+
page.wait_for_timeout(2500)
|
|
55
|
+
|
|
56
|
+
# Reload to verify
|
|
57
|
+
page.reload(wait_until="domcontentloaded")
|
|
58
|
+
page.wait_for_timeout(3000)
|
|
59
|
+
page.screenshot(path="/private/tmp/gog-cdp-add-test-users-verify.png", full_page=True)
|
|
60
|
+
|
|
61
|
+
print("Attempted to add test users.")
|
|
62
|
+
print("Screenshot: /private/tmp/gog-cdp-add-test-users-verify.png")
|
|
63
|
+
print("Next: run gog auth add for each account.")
|
|
64
|
+
|
|
65
|
+
browser.close()
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
if __name__ == "__main__":
|
|
69
|
+
main()
|