This PR:
- consolidates and bumps TypeScript/npm dependencies across the
monorepo, docs, examples, and e2e fixtures — no runtime behavior changes
- **cleanup:** remove the unused `ansis` dependency from `@composio/cli`
(`picocolors` is the actual color lib), drop the dead `uuid` catalog
entry, catalog `dotenv` + `@types/bun` and repoint drifting examples/e2e
onto them, and replace `chalk` with `picocolors` in `@composio/core`
(smaller, ESM, already used by the CLI)
- **TypeScript 6:** bump `typescript` `5.9 → 6.0.3` everywhere (catalog,
CLI test fixtures, docs); drop vestigial `declaration`/`outDir` from the
provider `tsconfig.json`s to fix the TS 6 `rootDir` regression
(`TS6059`); add `ignoreDeprecations: "6.0"` in docs for the `baseUrl`
deprecation
- **toolchain:** `tsdown 0.18 → 0.22.3`, `vitest` + `@vitest/ui →
4.1.9`, `publint → 0.3.21`, `wrangler → 4.101.0` (each the latest
version within the 3-day `minimumReleaseAge` gate)
- **Effect + hono:** `effect 3.21.3`, `@effect/cli 0.75.2`,
`@effect/platform 0.96.1`, `platform-bun 0.90.0`, `platform-node-shared
0.60.0`, `language-service 0.86.2`, `@effect/vitest 0.29.0`, `hono
4.12.25`; pin the Effect peer cohort
(`printer`/`printer-ansi`/`typeclass`/`rpc`/`sql`/`cluster`/`experimental`/`workflow`)
as `@composio/cli` devDeps so the auto-installed peers resolve
coherently, and bump `@cloudflare/workers-types` to satisfy `wrangler`'s
peer
- changesets: `@composio/cli` patch (ansis removal) and `@composio/core`
patch (chalk → picocolors)
- verified: `build`, `typecheck` (tsgo + real `tsc` 6.0.3), and local
tests (excluding e2e) all pass
## Summary
Reworks the docs welcome page (`/docs`) into a two-column hero with an
animated agent chat mock + tool overlay, plus four restructured homepage
sections.
### Hero (`DocsHeroV2`)
- Left: headline (`Start building with Composio.`), short sub,
brand-blue chip column (Quickstart, API reference, Toolkits).
- Right (lg+ only): mock chat panel with the v1 hero's per-agent skin
(`Claude Cowork` / `ChatGPT Codex` / `Your AI Agent`), step-by-step
timeline-driven animation (user prompt → thinking dots → tool-trail
items → assistant response), and a floating "active tool" card layered
over the chat's left edge.
- L-shape SVG connector between chat and overlay: muted grey resting
state + brand-blue glow + bright line that re-draw via `pathLength` on
every tool change.
- Mock chat hidden below lg.
### Homepage sections
- **`HomeFeatures`** — `Everything you need to ship production agents.`
2×2 grid with bespoke visuals per pillar: 8×2 toolkit grid with `+1K`
cell, sessions panel (`USER_ID` + connected apps), triggers feed (`LIVE`
indicator + recent events), and a workbench mock with animated 4×2 CPU
lights. `auto-rows-fr` on `sm:` so cards equalize on tablet/desktop but
breathe on mobile.
- **`HomeSurfaces`** — `Three ways to use Composio.` bento: Developer
card spans full width (`md:col-span-3`) and shows 8 provider logos
(Anthropic, OpenAI, Vercel AI, Google, LangChain, CrewAI, LlamaIndex,
Mastra). Row 2: For You (with Claude / Codex / Cursor / Windsurf /
OpenClaw client logos), CLI (with `curl ... | bash` install snippet and
functional copy button), Agents.
- **`HomeResources`** — `Reach for the rest.` six-card footer row with
Quickstart, API reference, Cookbooks, Changelog, Toolkits,
Troubleshooting.
### Other
- Ports the landing-page hero into `components/landing-hero/` (kept
under the original `DocsHero` for easy revert; commented out, V2 wired
in).
- Theme-aware `--hero-*` CSS vars for chat-skin colors so the chat reads
in both light and dark.
- Removes the old `Works with your stack` provider grid (the providers
now live inside the Developer surface card).
## Test plan
- [ ] Verify hero animation cycles through 3 examples on desktop
- [ ] Verify L-shape connector pulses in brand blue on every tool change
- [ ] Verify chat mock is hidden on mobile and left column reads on its
own
- [ ] Verify dark mode (chat skins, connector, card surfaces, code
blocks)
- [ ] Verify CLI install copy button copies and toggles the icon to ✓
- [ ] Verify all chip / card hrefs resolve
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
## Summary
- Re-apply the Algolia docs search migration after the previous PR was
merged and reverted.
- Keep the existing Fumadocs search UI while using Algolia API when
search keys are configured, with `/api/search` fallback for local
development and tests.
- Add a first-party Algolia index builder/sync script that creates
section-sized docs records from MDX/OpenAPI/toolkit/changelog content,
configures index relevance settings, and replaces index objects without
relying on Algolia Crawler.
- Add Algolia Insights view/click events and a terminal search relevance
test script.
- Clean search breadcrumbs so results show labels like `Toolkit` and
`Cookbook` instead of duplicated `toolkits > Gmail` formatting.
## Tests
- `cd docs && bun run types:check`
- `cd docs && bun run sync:search --dry-run`
- `cd docs && bunx eslint components/custom-search-dialog.tsx
lib/search-index.ts scripts/sync-algolia-search.ts
scripts/test-algolia-search.ts`
## Notes
- Live Algolia sync requires `ALGOLIA_ADMIN_API_KEY`.
- Live search relevance tests require `ALGOLIA_SEARCH_API_KEY` or
`NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY`.
## Summary
- Switch docs search dialog to Algolia when public Algolia env vars are
configured, with local `/api/search` fallback for development/tests
- Add a shared docs search index builder plus `bun run sync:search` to
publish records to Algolia
- Add a GitHub Actions workflow to dry-run and sync the Algolia index on
`next` docs changes when secrets are configured
- Document required Algolia env vars and sync command
## Tests
- `cd docs && bun run types:check`
- `cd docs && bun run sync:search --dry-run`
- `cd docs && bun test tests/static/`
- `cd docs && bunx eslint components/custom-search-dialog.tsx
lib/search-index.ts scripts/sync-algolia-search.ts`
- `cd docs && bun run build`
## Notes
- `bun run lint` still fails on existing unrelated repo-wide lint errors
in files outside this change (for example `app/global-error.tsx`,
`components/ask-ai-button.tsx`, `components/version-selector.tsx`). The
changed search files pass targeted ESLint.
- Production search requires `NEXT_PUBLIC_ALGOLIA_APP_ID`,
`NEXT_PUBLIC_ALGOLIA_SEARCH_API_KEY`, and optionally
`NEXT_PUBLIC_ALGOLIA_INDEX_NAME` (default `composio_docs`). Index
syncing requires `ALGOLIA_APP_ID`/`ALGOLIA_ADMIN_API_KEY` secrets.
New page at /docs/auth-configuration/shared-connections covers the
account_type and per-user ACL surface added to the Connected Accounts
SDK in 0.9.1:
- When to use SHARED vs PRIVATE (table)
- Creating a SHARED connection via link() with an initial ACL
- The 4-step deny-wins resolution rule + common ACL patterns
- updateAcl() with PATCH semantics + empty-array footgun warning
- Using a shared connection from a tool-router session (pinning) or
via direct execute with connectedAccountId
- Inspecting account_type + aclConfigForShared on get() responses
- Error handling table covering ComposioAclOnlyForSharedError,
ComposioSharedAccessDeniedError, ComposioSharedConnectionNotAccessibleError
Other changes:
- Bump docs/package.json @composio/core dependency from ^0.9.0 to ^0.9.1
so twoslash type-checks against the version that exposes the new
fields.
- Wire the new page into the Authentication sidebar between
connected-accounts and migrating-initiate-to-link.
Verified: bun run build clean (1411 pages including the new one).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bumps `@composio/core` devDependency to ^0.8.1 (the release that ships
`workbench.sandboxSize` and `connectedAccounts.link({ allowMultiple })`)
so the new snippets in this branch type-check end-to-end. Removes the
`// @noErrors` directives that were only there because the SDK predated
those APIs.
While bumping, also fixes the toolkits pagination snippet in
fetching-tools-and-toolkits.mdx for the 0.6 -> 0.8 rename of
`nextCursor` -> `cursor` on `session.toolkits()`, and adds explicit
`enable: true` to the `workbench` examples that set `sandboxSize`
(the inferred config type requires `enable`).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: abir <abir@composio.dev>
SDK 0.6.10 includes the ToolRouterAuthorizeFn alias fix (#3167),
so all code blocks now type-check cleanly without suppression.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Zen Agent <zen@composio.dev>
- Bump @composio/core to ^0.6.9 for multiAccount type support
- Add // ---cut--- preamble to changelog TypeScript code blocks
- Add // @errors: 2353 for session.authorize alias (pending SDK type fix in #3167)
- Add missing session variable to Python code blocks
- Add Python snake_case names to config options table
- Fix changelog intro sentence fragment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Zen Agent <zen@composio.dev>
- Bump @composio/core to ^0.6.9 so connectedAccounts.update() type-checks
- Add import + cut directive to changelog TS code block (fixes twoslash error 2304)
- Update .gitleaksignore with correct commit hashes after rebase
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the verbose auth config / connected accounts pattern with the
modern session API (composio.create, session.tools, session.authorize,
session.toolkits). Switch to OpenAI Agents SDK for the agentic loop.
Also install @ai-sdk/react to fix twoslash build error in chat-app tutorial.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add jsx: react-jsx compiler option to twoslash config (fixes React UMD global errors)
- Install @ai-sdk/react for useChat type resolution
- Exclude examples/ from tsconfig (twoslash handles type-checking via <include>)
- Allow expected error 2307 for local component import in page-with-tools.tsx
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename experimental_createMCPClient to createMCPClient (graduated in @ai-sdk/mcp v1.0)
- Fix multi-turn message history to include tool calls via result.response.messages
- Add missing client.close() cleanup in MCP snippet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename experimental_createMCPClient to createMCPClient (graduated in @ai-sdk/mcp v1.0)
- Fix multi-turn message history to include tool calls via result.response.messages
- Add missing client.close() cleanup in MCP snippet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add loading="lazy" and decoding="async" to toolkit icon images
so the browser only fetches them as they scroll into view instead
of requesting all ~855 icons at once on initial load.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a new docs page explaining the organization/project hierarchy,
project management via API, and project settings. Also set up mermaid
diagram rendering for the docs site (remark plugin + client component).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace WebhookEventTypes enum and ConnectionExpiredEventSchema with
plain string literals since they aren't available in the published SDK yet.
Update @composio/core from 0.5.5 to 0.6.3.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add @vercel/analytics for client-side page view tracking and
server-side 404 logging to Datadog from the not-found page.
This enables monitoring of broken links via Datadog log queries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The @composio/vercel tool types are incompatible with ai@6.0.49.
Added @noErrors directive to Vercel AI examples - the code is
functionally correct, just has type mismatches between packages.
Also simplified message content format back to strings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove Direct MCP usage accordion (complex API, not recommended)
- Keep Native Tools and MCP main sections with session-based approach
- Keep Direct tool usage accordion for single tool use cases
- Update @composio/* packages from 0.4.0 to 0.5.5
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>