7 Commits

Author SHA1 Message Date
EugeneTes
a5e5796d18 Drop GOOGLE_REFRESH_TOKEN env seeding; link Calendar only via /connect_calendar 2026-09-24 20:10:03 +00:00
EugeneTes
b3fc87a2f5 Document Fortress stealth-browser tools 2026-09-23 19:40:58 +00:00
EugeneTes
8d663685b3 Document the /connect_calendar flow in README and .env.example 2026-09-23 10:33:20 +00:00
EugeneTes
3a43391eb0 Document Playwright MCP env vars and manual E2E steps 2026-09-08 10:56:54 +00:00
EugeneTes
9fc348f0e2 Add Google Calendar as a native Pi custom tool
pi-claude-code-provider fences off Claude Code's MCP servers by design,
so managed MCPs like Google Calendar can't reach the bot through that
provider. Implement calendar access as a first-class Pi tool instead —
it lives alongside `schedule` and calls Google Calendar API v3 directly
with a subscription-free refresh-token grant.

Config: three new optional env vars (GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN) — set all three to enable
the tool, leave all three blank to disable. Partial config raises a
ConfigError at startup so mis-set env is caught early.

Tool: list / create / update / delete on any calendar (default
'primary'). Access tokens are cached until expiry and refreshed on
demand from the long-lived refresh token. Invalid_grant surfaces a
clear "re-run device flow" error.
2026-09-06 20:51:00 +00:00
EugeneTes
0eed2fa36d List usable model ids when PI_MODEL points at a provider without credentials
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 18:38:43 +02:00
EugeneTes
7373c51995 Scaffold project with logger and config
Claude-Session: https://claude.ai/code/session_01JtuZTCMW9TyogEmBgGf8JT
2026-09-06 14:19:31 +02:00