gitextract_8yb8dgx_/ ├── .cursor/ │ └── rules/ │ └── general.mdc ├── .editorconfig ├── .github/ │ ├── funding.yml │ └── workflows/ │ ├── main.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .vscode/ │ └── launch.json ├── CLAUDE.md ├── Tiltfile ├── apps/ │ ├── api/ │ │ ├── drizzle.config.ts │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── api-v1/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── github-callback.ts │ │ │ │ │ ├── github-exchange.ts │ │ │ │ │ ├── github-init.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ ├── sign-in-with-password.ts │ │ │ │ │ ├── sign-up-with-password.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── consumers/ │ │ │ │ │ ├── admin-activate-consumer.ts │ │ │ │ │ ├── admin-get-consumer-by-api-key.ts │ │ │ │ │ ├── create-billing-portal-session.ts │ │ │ │ │ ├── create-consumer-billing-portal-session.ts │ │ │ │ │ ├── create-consumer-checkout-session.ts │ │ │ │ │ ├── create-consumer.ts │ │ │ │ │ ├── get-consumer-by-project-identifier.ts │ │ │ │ │ ├── get-consumer.ts │ │ │ │ │ ├── list-consumers.ts │ │ │ │ │ ├── list-project-consumers.ts │ │ │ │ │ ├── refresh-consumer-api-key.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ ├── update-consumer.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── deployments/ │ │ │ │ │ ├── admin-get-deployment-by-identifier.ts │ │ │ │ │ ├── create-deployment.ts │ │ │ │ │ ├── get-deployment-by-identifier.ts │ │ │ │ │ ├── get-deployment.ts │ │ │ │ │ ├── get-public-deployment-by-identifier.ts │ │ │ │ │ ├── list-deployments.ts │ │ │ │ │ ├── publish-deployment.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ └── update-deployment.ts │ │ │ │ ├── health-check.ts │ │ │ │ ├── index.ts │ │ │ │ ├── projects/ │ │ │ │ │ ├── create-project.ts │ │ │ │ │ ├── get-project-by-identifier.ts │ │ │ │ │ ├── get-project.ts │ │ │ │ │ ├── get-public-project-by-identifier.ts │ │ │ │ │ ├── get-public-project.ts │ │ │ │ │ ├── list-projects.ts │ │ │ │ │ ├── list-public-projects.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ └── update-project.ts │ │ │ │ ├── storage/ │ │ │ │ │ └── get-signed-storage-upload-url.ts │ │ │ │ ├── teams/ │ │ │ │ │ ├── create-team.ts │ │ │ │ │ ├── delete-team.ts │ │ │ │ │ ├── get-team.ts │ │ │ │ │ ├── list-teams.ts │ │ │ │ │ ├── members/ │ │ │ │ │ │ ├── create-team-member.ts │ │ │ │ │ │ ├── delete-team-member.ts │ │ │ │ │ │ ├── schemas.ts │ │ │ │ │ │ └── update-team-member.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ └── update-team.ts │ │ │ │ ├── users/ │ │ │ │ │ ├── get-user.ts │ │ │ │ │ ├── schemas.ts │ │ │ │ │ └── update-user.ts │ │ │ │ └── webhooks/ │ │ │ │ └── stripe-webhook.ts │ │ │ ├── db/ │ │ │ │ ├── index.ts │ │ │ │ ├── schema/ │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── auth-data.ts │ │ │ │ │ ├── common.test.ts │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── consumer.ts │ │ │ │ │ ├── deployment.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── log-entry.ts │ │ │ │ │ ├── project.ts │ │ │ │ │ ├── team-member.ts │ │ │ │ │ ├── team.ts │ │ │ │ │ └── user.ts │ │ │ │ ├── schemas.ts │ │ │ │ ├── types.test.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── lib/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── storage.test.ts.snap │ │ │ │ ├── acl-admin.ts │ │ │ │ ├── acl-public-project.ts │ │ │ │ ├── acl-team-admin.ts │ │ │ │ ├── acl-team-member.ts │ │ │ │ ├── acl.ts │ │ │ │ ├── auth/ │ │ │ │ │ ├── auth-storage.ts │ │ │ │ │ ├── create-auth-token.ts │ │ │ │ │ ├── drizzle-auth-storage.ts │ │ │ │ │ └── upsert-or-link-user-account.ts │ │ │ │ ├── billing/ │ │ │ │ │ ├── create-stripe-checkout-session.ts │ │ │ │ │ ├── upsert-stripe-connect-customer.ts │ │ │ │ │ ├── upsert-stripe-customer.ts │ │ │ │ │ ├── upsert-stripe-pricing-resources.ts │ │ │ │ │ └── upsert-stripe-subscription.ts │ │ │ │ ├── cache-control.ts │ │ │ │ ├── consumers/ │ │ │ │ │ ├── upsert-consumer-stripe-checkout.ts │ │ │ │ │ ├── upsert-consumer.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── create-avatar.ts │ │ │ │ ├── create-consumer-api-key.ts │ │ │ │ ├── deployments/ │ │ │ │ │ ├── get-deployment-by-id.ts │ │ │ │ │ ├── normalize-deployment-version.ts │ │ │ │ │ ├── publish-deployment.ts │ │ │ │ │ └── try-get-deployment-by-identifier.ts │ │ │ │ ├── ensure-auth-user.ts │ │ │ │ ├── ensure-unique-namespace.ts │ │ │ │ ├── env.ts │ │ │ │ ├── exit-hooks.ts │ │ │ │ ├── external/ │ │ │ │ │ ├── github.ts │ │ │ │ │ ├── resend.ts │ │ │ │ │ ├── sentry.ts │ │ │ │ │ └── stripe.ts │ │ │ │ ├── middleware/ │ │ │ │ │ ├── authenticate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── me.ts │ │ │ │ │ └── team.ts │ │ │ │ ├── openapi-utils.ts │ │ │ │ ├── projects/ │ │ │ │ │ └── try-get-project-by-identifier.ts │ │ │ │ ├── storage.test.ts │ │ │ │ ├── storage.ts │ │ │ │ ├── temp │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── oauth-redirect.ts │ │ │ ├── reset.d.ts │ │ │ └── server.ts │ │ ├── tsconfig.json │ │ ├── tsup.config.ts │ │ └── vitest.config.ts │ ├── e2e/ │ │ ├── bin/ │ │ │ ├── deploy-fixtures.ts │ │ │ ├── publish-fixtures.ts │ │ │ └── seed-db.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ ├── http-e2e.test.ts.snap │ │ │ │ └── mcp-e2e.test.ts.snap │ │ │ ├── agentic-examples.ts │ │ │ ├── deploy-projects.ts │ │ │ ├── dev-client.ts │ │ │ ├── dev-fixtures.ts │ │ │ ├── env.ts │ │ │ ├── http-e2e.test.ts │ │ │ ├── http-fixtures.ts │ │ │ ├── mcp-e2e.test.ts │ │ │ ├── mcp-fixtures.ts │ │ │ └── publish-deployments.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── gateway/ │ │ ├── .dev.vars.example │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.ts │ │ │ ├── lib/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── utils.test.ts.snap │ │ │ │ ├── agentic-client.ts │ │ │ │ ├── cf-validate-json-schema.ts │ │ │ │ ├── create-http-request-for-openapi-operation.ts │ │ │ │ ├── create-http-response-from-mcp-tool-call-response.ts │ │ │ │ ├── durable-mcp-client.ts │ │ │ │ ├── durable-mcp-server.ts │ │ │ │ ├── env.ts │ │ │ │ ├── external/ │ │ │ │ │ └── stripe.ts │ │ │ │ ├── fetch-cache.ts │ │ │ │ ├── get-admin-consumer.ts │ │ │ │ ├── get-admin-deployment.ts │ │ │ │ ├── get-request-cache-key.ts │ │ │ │ ├── get-tool-args-from-request.ts │ │ │ │ ├── get-tool.ts │ │ │ │ ├── handle-mcp-tool-call-error.ts │ │ │ │ ├── normalize-url.test.ts │ │ │ │ ├── normalize-url.ts │ │ │ │ ├── rate-limits/ │ │ │ │ │ ├── durable-rate-limiter.ts │ │ │ │ │ └── enforce-rate-limit.ts │ │ │ │ ├── record-tool-call-usage.ts │ │ │ │ ├── reset.d.ts │ │ │ │ ├── resolve-edge-request.ts │ │ │ │ ├── resolve-http-edge-request.ts │ │ │ │ ├── resolve-mcp-edge-request.ts │ │ │ │ ├── resolve-origin-tool-call.ts │ │ │ │ ├── temp │ │ │ │ ├── temp-mcp │ │ │ │ ├── transform-http-response-to-mcp-tool-call-response.ts │ │ │ │ ├── types.ts │ │ │ │ ├── update-origin-request.ts │ │ │ │ ├── utils.test.ts │ │ │ │ └── utils.ts │ │ │ └── worker.ts │ │ ├── tsconfig.json │ │ ├── vitest.config.ts │ │ └── wrangler.jsonc │ └── web/ │ ├── components.json │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── public/ │ │ ├── adamsbridge.hdr │ │ └── schema.json │ ├── readme.md │ ├── src/ │ │ ├── app/ │ │ │ ├── about/ │ │ │ │ └── page.tsx │ │ │ ├── app/ │ │ │ │ ├── app-dashboard.tsx │ │ │ │ ├── consumers/ │ │ │ │ │ ├── [consumerId]/ │ │ │ │ │ │ ├── app-consumer-index.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── app-consumers-index.tsx │ │ │ │ │ └── page.tsx │ │ │ │ ├── page.tsx │ │ │ │ ├── projects/ │ │ │ │ │ ├── [namespace]/ │ │ │ │ │ │ └── [project-slug]/ │ │ │ │ │ │ ├── app-project-index.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── app-projects-index.tsx │ │ │ │ │ └── page.tsx │ │ │ │ └── temp-testing │ │ │ ├── auth/ │ │ │ │ └── [provider]/ │ │ │ │ └── success/ │ │ │ │ ├── oauth-success-callback.tsx │ │ │ │ └── page.tsx │ │ │ ├── contact/ │ │ │ │ └── page.tsx │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ ├── login/ │ │ │ │ ├── login-form.tsx │ │ │ │ └── page.tsx │ │ │ ├── logout/ │ │ │ │ └── page.tsx │ │ │ ├── marketplace/ │ │ │ │ ├── marketplace-index.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── projects/ │ │ │ │ └── [namespace]/ │ │ │ │ └── [project-slug]/ │ │ │ │ ├── marketplace-nav.tsx │ │ │ │ ├── marketplace-public-project-detail.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── utils.ts │ │ │ ├── not-found.tsx │ │ │ ├── page.tsx │ │ │ ├── pricing/ │ │ │ │ └── page.tsx │ │ │ ├── privacy/ │ │ │ │ └── page.tsx │ │ │ ├── providers.tsx │ │ │ ├── publishing/ │ │ │ │ └── page.tsx │ │ │ ├── signup/ │ │ │ │ ├── page.tsx │ │ │ │ └── signup-form.tsx │ │ │ └── terms/ │ │ │ └── page.tsx │ │ ├── components/ │ │ │ ├── active-link.tsx │ │ │ ├── agentic-provider.tsx │ │ │ ├── app-consumers-list.tsx │ │ │ ├── app-projects-list.tsx │ │ │ ├── bootstrap.tsx │ │ │ ├── code-block/ │ │ │ │ ├── highlight.ts │ │ │ │ └── index.tsx │ │ │ ├── confetti.tsx │ │ │ ├── dark-mode-toggle.tsx │ │ │ ├── demand-side-cta.tsx │ │ │ ├── dots-section.tsx │ │ │ ├── example-agentic-configs.tsx │ │ │ ├── example-usage-section.tsx │ │ │ ├── example-usage.tsx │ │ │ ├── feature.tsx │ │ │ ├── footer/ │ │ │ │ ├── dynamic.tsx │ │ │ │ └── index.tsx │ │ │ ├── github-star-counter.tsx │ │ │ ├── grid-pattern.tsx │ │ │ ├── header/ │ │ │ │ ├── authenticated-header.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── styles.module.css │ │ │ │ └── unauthenticated-header.tsx │ │ │ ├── hero-button/ │ │ │ │ ├── index.tsx │ │ │ │ └── styles.module.css │ │ │ ├── hero-simulation-2.tsx │ │ │ ├── hero-simulation.tsx │ │ │ ├── loading-indicator/ │ │ │ │ ├── index.tsx │ │ │ │ ├── loading-dark.json │ │ │ │ ├── loading-light.json │ │ │ │ └── styles.module.css │ │ │ ├── markdown/ │ │ │ │ ├── index.tsx │ │ │ │ ├── ssr-markdown.tsx │ │ │ │ └── styles.module.css │ │ │ ├── mcp-gateway-features.tsx │ │ │ ├── mcp-marketplace-features.tsx │ │ │ ├── page-container.tsx │ │ │ ├── posthog-provider.tsx │ │ │ ├── project-pricing-plans/ │ │ │ │ ├── index.tsx │ │ │ │ └── project-pricing-plan.tsx │ │ │ ├── public-project.tsx │ │ │ ├── supply-side-cta.tsx │ │ │ ├── theme-provider.tsx │ │ │ └── ui/ │ │ │ ├── avatar.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── tabs.tsx │ │ │ └── tooltip.tsx │ │ ├── icons/ │ │ │ ├── github.tsx │ │ │ ├── twitter.tsx │ │ │ └── typescript.tsx │ │ ├── lib/ │ │ │ ├── auth-copy.ts │ │ │ ├── bootstrap.ts │ │ │ ├── config.ts │ │ │ ├── default-agentic-api-client.ts │ │ │ ├── developer-config.ts │ │ │ ├── global-api.ts │ │ │ ├── notifications.ts │ │ │ ├── query-client.ts │ │ │ ├── utils.test.ts │ │ │ └── utils.ts │ │ └── reset.d.ts │ └── tsconfig.json ├── contributing.md ├── docs/ │ ├── contact.mdx │ ├── docs.json │ ├── index.mdx │ ├── inject.js │ ├── marketplace/ │ │ ├── index.mdx │ │ ├── mcp-clients/ │ │ │ ├── claude-code.mdx │ │ │ ├── claude-desktop.mdx │ │ │ ├── cline.mdx │ │ │ ├── cursor.mdx │ │ │ ├── raycast.mdx │ │ │ ├── trae.mdx │ │ │ ├── vscode.mdx │ │ │ ├── warp.mdx │ │ │ └── windsurf.mdx │ │ └── ts-sdks/ │ │ ├── ai-sdk.mdx │ │ ├── genkit.mdx │ │ ├── langchain.mdx │ │ ├── llamaindex.mdx │ │ ├── mastra.mdx │ │ ├── openai-chat.mdx │ │ └── openai-responses.mdx │ ├── package.json │ └── publishing/ │ ├── config/ │ │ ├── auth.mdx │ │ ├── caching.mdx │ │ ├── examples.mdx │ │ ├── index.mdx │ │ ├── pricing.mdx │ │ ├── rate-limits.mdx │ │ └── tool-config.mdx │ ├── guides/ │ │ ├── existing-mcp-server.mdx │ │ ├── existing-openapi-service.mdx │ │ ├── py-fastmcp.mdx │ │ ├── ts-fastmcp.mdx │ │ ├── ts-mcp-hono.mdx │ │ ├── ts-modelfetch.mdx │ │ ├── ts-openapi-hono.mdx │ │ └── ts-xmcp.mdx │ ├── index.mdx │ ├── origin/ │ │ ├── index.mdx │ │ ├── metadata.mdx │ │ └── security.mdx │ └── quickstart.mdx ├── eslint.config.js ├── examples/ │ ├── mcp-servers/ │ │ ├── context7/ │ │ │ ├── agentic.config.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── github/ │ │ │ ├── agentic.config.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── search/ │ │ │ ├── .dev.vars.example │ │ │ ├── agentic.config.ts │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── env.ts │ │ │ │ └── worker.ts │ │ │ ├── tsconfig.json │ │ │ └── wrangler.jsonc │ │ └── xmcp/ │ │ ├── .gitignore │ │ ├── agentic.config.ts │ │ ├── package.json │ │ ├── src/ │ │ │ └── tools/ │ │ │ └── greet.ts │ │ ├── tsconfig.json │ │ ├── vercel.json │ │ ├── xmcp-env.d.ts │ │ └── xmcp.config.ts │ └── ts-sdks/ │ ├── ai-sdk/ │ │ ├── bin/ │ │ │ ├── mcp-filesystem.ts │ │ │ ├── weather-experimental-active-tools.ts │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── genkit/ │ │ ├── bin/ │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── langchain/ │ │ ├── bin/ │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── llamaindex/ │ │ ├── bin/ │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── mastra/ │ │ ├── bin/ │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ └── openai/ │ ├── bin/ │ │ ├── weather-responses.ts │ │ └── weather.ts │ ├── package.json │ └── tsconfig.json ├── fixtures/ │ ├── invalid/ │ │ ├── invalid-metadata-0/ │ │ │ └── agentic.config.ts │ │ ├── invalid-metadata-1/ │ │ │ └── agentic.config.ts │ │ ├── invalid-name-0/ │ │ │ └── agentic.config.ts │ │ ├── invalid-name-1/ │ │ │ └── agentic.config.ts │ │ ├── invalid-name-2/ │ │ │ └── agentic.config.ts │ │ ├── invalid-origin-url-0/ │ │ │ └── agentic.config.ts │ │ ├── invalid-origin-url-1/ │ │ │ └── agentic.config.ts │ │ ├── invalid-origin-url-2/ │ │ │ └── agentic.config.json │ │ ├── invalid-origin-url-3/ │ │ │ └── agentic.config.ts │ │ ├── invalid-slug-0/ │ │ │ └── agentic.config.ts │ │ ├── invalid-slug-1/ │ │ │ └── agentic.config.ts │ │ ├── invalid-slug-2/ │ │ │ └── agentic.config.ts │ │ ├── invalid-slug-3/ │ │ │ └── agentic.config.ts │ │ ├── invalid-slug-4/ │ │ │ └── agentic.config.ts │ │ ├── pricing-base-inconsistent/ │ │ │ └── agentic.config.ts │ │ ├── pricing-custom-inconsistent/ │ │ │ └── agentic.config.ts │ │ ├── pricing-duplicate-0/ │ │ │ └── agentic.config.ts │ │ ├── pricing-duplicate-1/ │ │ │ └── agentic.config.ts │ │ ├── pricing-empty-0/ │ │ │ └── agentic.config.ts │ │ ├── pricing-empty-1/ │ │ │ └── agentic.config.ts │ │ └── pricing-empty-2/ │ │ └── agentic.config.ts │ ├── package.json │ ├── tsconfig.json │ └── valid/ │ ├── basic-mcp/ │ │ ├── agentic.config.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── env.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── basic-openapi/ │ │ ├── agentic.config.ts │ │ └── jsonplaceholder.json │ ├── basic-raw-free-json/ │ │ └── agentic.config.json │ ├── basic-raw-free-ts/ │ │ └── agentic.config.ts │ ├── everything-openapi/ │ │ ├── agentic.config.ts │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── exit-hooks.ts │ │ │ ├── lib/ │ │ │ │ └── db.ts │ │ │ ├── routes/ │ │ │ │ ├── custom-cache-control-tool.ts │ │ │ │ ├── custom-rate-limit-approximate-tool.ts │ │ │ │ ├── custom-rate-limit-tool.ts │ │ │ │ ├── disabled-for-free-plan-tool.ts │ │ │ │ ├── disabled-rate-limit-tool.ts │ │ │ │ ├── disabled-tool.ts │ │ │ │ ├── echo-headers.ts │ │ │ │ ├── echo.ts │ │ │ │ ├── get-user.ts │ │ │ │ ├── health-check.ts │ │ │ │ ├── no-cache-cache-control-tool.ts │ │ │ │ ├── no-store-cache-control-tool.ts │ │ │ │ ├── pure.ts │ │ │ │ ├── strict-additional-properties.ts │ │ │ │ └── unpure-marked-pure.ts │ │ │ └── server.ts │ │ └── tsconfig.json │ ├── metadata-0/ │ │ ├── agentic.config.ts │ │ └── readme.md │ ├── metadata-1/ │ │ └── agentic.config.ts │ ├── metadata-2/ │ │ └── agentic.config.ts │ ├── pricing-3-plans/ │ │ └── agentic.config.ts │ ├── pricing-custom-0/ │ │ └── agentic.config.ts │ ├── pricing-freemium/ │ │ └── agentic.config.ts │ ├── pricing-monthly-annual/ │ │ └── agentic.config.ts │ └── pricing-pay-as-you-go/ │ └── agentic.config.ts ├── legacy/ │ ├── .editorconfig │ ├── .github/ │ │ ├── funding.yml │ │ └── workflows/ │ │ ├── main.yml │ │ └── release.yml │ ├── .gitignore │ ├── .husky/ │ │ └── _/ │ │ └── pre-commit │ ├── .npmrc │ ├── .prettierignore │ ├── .vscode/ │ │ └── launch.json │ ├── docs/ │ │ ├── intro.mdx │ │ ├── mint.json │ │ ├── quickstart.mdx │ │ ├── scratch.md │ │ ├── sdks/ │ │ │ ├── genaiscript.mdx │ │ │ └── xsai.mdx │ │ ├── tools/ │ │ │ ├── airtable.mdx │ │ │ ├── apollo.mdx │ │ │ ├── arxiv.mdx │ │ │ ├── bing.mdx │ │ │ ├── brave-search.mdx │ │ │ ├── calculator.mdx │ │ │ ├── clearbit.mdx │ │ │ ├── dexa.mdx │ │ │ ├── diffbot.mdx │ │ │ ├── duck-duck-go.mdx │ │ │ ├── e2b.mdx │ │ │ ├── exa.mdx │ │ │ ├── firecrawl.mdx │ │ │ ├── google-custom-search.mdx │ │ │ ├── google-docs.mdx │ │ │ ├── google-drive.mdx │ │ │ ├── gravatar.mdx │ │ │ ├── hacker-news.mdx │ │ │ ├── hunter.mdx │ │ │ ├── jina.mdx │ │ │ ├── leadmagic.mdx │ │ │ ├── mcp.mdx │ │ │ ├── midjourney.mdx │ │ │ ├── notion.mdx │ │ │ ├── novu.mdx │ │ │ ├── open-meteo.mdx │ │ │ ├── people-data-labs.mdx │ │ │ ├── perigon.mdx │ │ │ ├── polygon.mdx │ │ │ ├── predict-leads.mdx │ │ │ ├── proxycurl.mdx │ │ │ ├── reddit.mdx │ │ │ ├── rocketreach.mdx │ │ │ ├── searxng.mdx │ │ │ ├── serpapi.mdx │ │ │ ├── serper.mdx │ │ │ ├── slack.mdx │ │ │ ├── social-data.mdx │ │ │ ├── tavily.mdx │ │ │ ├── twilio.mdx │ │ │ ├── twitter.mdx │ │ │ ├── typeform.mdx │ │ │ ├── weather.mdx │ │ │ ├── wikidata.mdx │ │ │ ├── wikipedia.mdx │ │ │ ├── wolfram-alpha.mdx │ │ │ ├── youtube.mdx │ │ │ └── zoominfo.mdx │ │ └── usage.mdx │ ├── eslint.config.js │ ├── examples/ │ │ ├── dexter/ │ │ │ ├── bin/ │ │ │ │ ├── code-interpreter.ts │ │ │ │ ├── election-news.ts │ │ │ │ └── weather.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── playground/ │ │ │ ├── bin/ │ │ │ │ └── scratch.ts │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ └── xsai/ │ │ ├── bin/ │ │ │ └── weather.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── license │ ├── package.json │ ├── packages/ │ │ ├── airtable/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── airtable-client.ts │ │ │ │ ├── airtable.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── apollo/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── apollo-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── arxiv/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── arxiv-client.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ └── tsconfig.json │ │ ├── bing/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── bing-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── brave-search/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── brave-search-client.ts │ │ │ │ ├── brave-search.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── calculator/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── calculator.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── clearbit/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── clearbit-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── diffbot/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── diffbot-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── duck-duck-go/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── duck-duck-go-client.ts │ │ │ │ ├── index.ts │ │ │ │ └── paginate.ts │ │ │ └── tsconfig.json │ │ ├── e2b/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── e2b.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── exa/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── exa-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── firecrawl/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── firecrawl-client.test.ts │ │ │ │ ├── firecrawl-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── github/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── github-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── google-custom-search/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── google-custom-search-client.ts │ │ │ │ ├── index.ts │ │ │ │ └── paginate.ts │ │ │ └── tsconfig.json │ │ ├── google-docs/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── google-docs-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── google-drive/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── google-drive-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── gravatar/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── gravatar-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── hacker-news/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── hacker-news-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── hunter/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── hunter-client.ts │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── jigsawstack/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── integration.test.ts │ │ │ │ ├── jigsawstack-client.ts │ │ │ │ └── tool.test.ts │ │ │ └── tsconfig.json │ │ ├── jina/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── jina-client.ts │ │ │ └── tsconfig.json │ │ ├── leadmagic/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── leadmagic-client.ts │ │ │ └── tsconfig.json │ │ ├── midjourney/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── midjourney-client.ts │ │ │ └── tsconfig.json │ │ ├── notion/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── notion-client.ts │ │ │ │ └── notion.ts │ │ │ └── tsconfig.json │ │ ├── novu/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── novu-client.ts │ │ │ └── tsconfig.json │ │ ├── open-meteo/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── open-meteo-client.ts │ │ │ │ └── open-meteo.ts │ │ │ └── tsconfig.json │ │ ├── openapi-to-ts/ │ │ │ ├── bin/ │ │ │ │ └── openapi-to-ts.ts │ │ │ ├── fixtures/ │ │ │ │ ├── generated/ │ │ │ │ │ ├── firecrawl-client.ts │ │ │ │ │ ├── firecrawl.ts │ │ │ │ │ ├── github-client.ts │ │ │ │ │ ├── github.ts │ │ │ │ │ ├── notion-client.ts │ │ │ │ │ ├── notion.ts │ │ │ │ │ ├── open-meteo-client.ts │ │ │ │ │ ├── open-meteo.ts │ │ │ │ │ ├── pet-store-client.ts │ │ │ │ │ ├── pet-store.ts │ │ │ │ │ ├── petstore-expanded-client.ts │ │ │ │ │ ├── petstore-expanded.ts │ │ │ │ │ ├── security-client.ts │ │ │ │ │ ├── security.ts │ │ │ │ │ ├── tic-tac-toe-client.ts │ │ │ │ │ └── tic-tac-toe.ts │ │ │ │ └── openapi/ │ │ │ │ ├── firecrawl.json │ │ │ │ ├── github.json │ │ │ │ ├── notion.json │ │ │ │ ├── open-meteo.yaml │ │ │ │ ├── pet-store.json │ │ │ │ ├── petstore-expanded.json │ │ │ │ ├── readme.json │ │ │ │ ├── security.json │ │ │ │ ├── stripe.json │ │ │ │ └── tic-tac-toe.json │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── generate-ts-from-openapi.test.ts.snap │ │ │ │ ├── generate-ts-from-openapi.test.ts │ │ │ │ ├── generate-ts-from-openapi.ts │ │ │ │ ├── index.ts │ │ │ │ ├── openapi-parameters-to-json-schema.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── tsconfig.json │ │ │ └── tsup.config.ts │ │ ├── people-data-labs/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── people-data-labs-client.ts │ │ │ └── tsconfig.json │ │ ├── perigon/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── perigon-client.ts │ │ │ └── tsconfig.json │ │ ├── polygon/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── polygon-client.ts │ │ │ └── tsconfig.json │ │ ├── predict-leads/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── predict-leads-client.ts │ │ │ └── tsconfig.json │ │ ├── proxycurl/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── proxycurl-client.ts │ │ │ └── tsconfig.json │ │ ├── reddit/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── reddit-client.ts │ │ │ └── tsconfig.json │ │ ├── rocketreach/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── rocketreach-client.ts │ │ │ └── tsconfig.json │ │ ├── searxng/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── searxng-client.ts │ │ │ └── tsconfig.json │ │ ├── slack/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── slack-client.ts │ │ │ │ └── slack.ts │ │ │ └── tsconfig.json │ │ ├── social-data/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── social-data-client.ts │ │ │ └── tsconfig.json │ │ ├── stdlib/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── tavily/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── tavily-client.ts │ │ │ └── tsconfig.json │ │ ├── twilio/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── twilio-client.ts │ │ │ └── tsconfig.json │ │ ├── twitter/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── client.ts │ │ │ │ ├── error.ts │ │ │ │ ├── index.ts │ │ │ │ ├── nango.ts │ │ │ │ ├── twitter-client.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ └── tsconfig.json │ │ ├── typeform/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── typeform-client.ts │ │ │ └── tsconfig.json │ │ ├── weather/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── weather-client.ts │ │ │ └── tsconfig.json │ │ ├── wikidata/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── wikidata-client.ts │ │ │ └── tsconfig.json │ │ ├── wikipedia/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── wikipedia-client.ts │ │ │ └── tsconfig.json │ │ ├── wolfram-alpha/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── wolfram-alpha-client.ts │ │ │ └── tsconfig.json │ │ ├── xsai/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ ├── xsai.test.ts │ │ │ │ └── xsai.ts │ │ │ └── tsconfig.json │ │ ├── youtube/ │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── index.ts │ │ │ │ └── youtube-client.ts │ │ │ └── tsconfig.json │ │ └── zoominfo/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── zoominfo-client.ts │ │ └── tsconfig.json │ ├── pnpm-workspace.yaml │ ├── readme.md │ ├── tsconfig.json │ ├── tsup.config.ts │ ├── turbo.json │ └── vite.config.ts ├── license ├── package.json ├── packages/ │ ├── api-client/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── agentic-api-client.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── cli/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── cli.ts │ │ │ ├── commands/ │ │ │ │ ├── debug.ts │ │ │ │ ├── deploy.ts │ │ │ │ ├── get.ts │ │ │ │ ├── list.ts │ │ │ │ ├── publish.ts │ │ │ │ ├── signin.ts │ │ │ │ ├── signout.ts │ │ │ │ ├── signup.ts │ │ │ │ └── whoami.ts │ │ │ ├── lib/ │ │ │ │ ├── auth-store.ts │ │ │ │ ├── auth.ts │ │ │ │ ├── commander.d.ts │ │ │ │ ├── env.ts │ │ │ │ ├── exit-hooks.ts │ │ │ │ ├── handle-error.ts │ │ │ │ ├── prompt-for-deployment-version.ts │ │ │ │ ├── reset.d.ts │ │ │ │ ├── resolve-deployment.ts │ │ │ │ └── utils.ts │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ ├── emails/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── emails/ │ │ │ │ └── send-verify-code-email.tsx │ │ │ ├── index.ts │ │ │ └── resend-email-client.tsx │ │ └── tsconfig.json │ ├── hono/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── env.ts │ │ │ ├── error-handler.ts │ │ │ ├── header-utils.ts │ │ │ ├── index.ts │ │ │ ├── json-rpc-errors.ts │ │ │ ├── logger/ │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ └── utils.ts │ │ │ ├── middleware/ │ │ │ │ ├── access-logger.ts │ │ │ │ ├── index.ts │ │ │ │ ├── init.ts │ │ │ │ ├── response-time.ts │ │ │ │ └── unless.ts │ │ │ ├── sentry.test.ts │ │ │ ├── sentry.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── json-schema/ │ │ ├── license │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── coercion.ts │ │ │ ├── deep-compare-strict.ts │ │ │ ├── dereference.ts │ │ │ ├── format.ts │ │ │ ├── index.ts │ │ │ ├── pointer.ts │ │ │ ├── types.ts │ │ │ ├── ucs2-length.ts │ │ │ ├── validate.ts │ │ │ └── validator.ts │ │ ├── test/ │ │ │ ├── coercion.test.ts │ │ │ ├── index.test.ts │ │ │ ├── json-schema-test-suite.ts │ │ │ ├── meta-schema.ts │ │ │ ├── types.ts │ │ │ ├── unsupported.ts │ │ │ └── validator.spec.ts │ │ └── tsconfig.json │ ├── openapi-utils/ │ │ ├── fixtures/ │ │ │ ├── basic.json │ │ │ ├── firecrawl.json │ │ │ ├── mixed.json │ │ │ ├── notion.json │ │ │ ├── open-meteo.yaml │ │ │ ├── pet-store.json │ │ │ ├── petstore-expanded.json │ │ │ ├── readme.json │ │ │ ├── security.json │ │ │ └── tic-tac-toe.json │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ ├── get-tools-from-openapi-spec.test.ts.snap │ │ │ │ └── validate-openapi-spec.test.ts.snap │ │ │ ├── get-tools-from-openapi-spec.test.ts │ │ │ ├── get-tools-from-openapi-spec.ts │ │ │ ├── index.ts │ │ │ ├── openapi-parameters-to-json-schema.ts │ │ │ ├── redocly-config.ts │ │ │ ├── types.ts │ │ │ ├── utils.ts │ │ │ ├── validate-json-schema-object.ts │ │ │ ├── validate-openapi-spec.test.ts │ │ │ └── validate-openapi-spec.ts │ │ └── tsconfig.json │ ├── platform/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ └── load-agentic-config.test.ts.snap │ │ │ ├── define-config.ts │ │ │ ├── index.ts │ │ │ ├── load-agentic-config.test.ts │ │ │ ├── load-agentic-config.ts │ │ │ ├── origin-adapters/ │ │ │ │ ├── mcp.ts │ │ │ │ └── openapi.ts │ │ │ ├── parse-agentic-project-config.ts │ │ │ ├── resolve-agentic-project-config.ts │ │ │ ├── resolve-metadata-file.ts │ │ │ ├── resolve-metadata-files.ts │ │ │ ├── resolve-metadata.ts │ │ │ ├── resolve-origin-adapter.ts │ │ │ ├── types.ts │ │ │ ├── validate-agentic-project-config.ts │ │ │ ├── validate-metadata-file.ts │ │ │ ├── validate-metadata-files.ts │ │ │ ├── validate-origin-adapter.ts │ │ │ ├── validate-origin-url.ts │ │ │ ├── validate-pricing.ts │ │ │ └── validate-tools.ts │ │ └── tsconfig.json │ ├── platform-core/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ └── utils.test.ts.snap │ │ │ ├── errors.ts │ │ │ ├── hash-object.test.ts │ │ │ ├── hash-object.ts │ │ │ ├── index.ts │ │ │ ├── rate-limit-headers.ts │ │ │ ├── types.test.ts │ │ │ ├── types.ts │ │ │ ├── utils.test.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── tool-client/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── agentic-tool-client.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── types/ │ │ ├── bin/ │ │ │ └── generate-project-config-json-schema.ts │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ └── rate-limit.test.ts.snap │ │ │ ├── agentic-project-config.test.ts │ │ │ ├── agentic-project-config.ts │ │ │ ├── auth-subjects.ts │ │ │ ├── index.ts │ │ │ ├── mcp.ts │ │ │ ├── openapi.d.ts │ │ │ ├── origin-adapter.ts │ │ │ ├── pricing.test.ts │ │ │ ├── pricing.ts │ │ │ ├── rate-limit.test.ts │ │ │ ├── rate-limit.ts │ │ │ ├── temp │ │ │ ├── tools.ts │ │ │ ├── types.ts │ │ │ ├── utils.ts │ │ │ └── webhook.ts │ │ └── tsconfig.json │ └── validators/ │ ├── package.json │ ├── readme.md │ ├── src/ │ │ ├── __snapshots__/ │ │ │ ├── parse-deployment-identifier.test.ts.snap │ │ │ ├── parse-project-identifier.test.ts.snap │ │ │ └── parse-tool-identifier.test.ts.snap │ │ ├── index.ts │ │ ├── namespace-blacklist.ts │ │ ├── parse-deployment-identifier.test.ts │ │ ├── parse-deployment-identifier.ts │ │ ├── parse-project-identifier.test.ts │ │ ├── parse-project-identifier.ts │ │ ├── parse-tool-identifier.test.ts │ │ ├── parse-tool-identifier.ts │ │ ├── tool-name-blacklist.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ ├── validators.test.ts │ │ └── validators.ts │ └── tsconfig.json ├── pnpm-workspace.yaml ├── readme.md ├── stdlib/ │ ├── ai-sdk/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── ai-sdk.test.ts │ │ │ ├── ai-sdk.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── core/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── __snapshots__/ │ │ │ │ ├── parse-structured-output.test.ts.snap │ │ │ │ └── utils.test.ts.snap │ │ │ ├── _utils.ts │ │ │ ├── ai-function-set.test.ts │ │ │ ├── ai-function-set.ts │ │ │ ├── assert.ts │ │ │ ├── create-ai-function.test.ts │ │ │ ├── create-ai-function.ts │ │ │ ├── echo.ts │ │ │ ├── errors.ts │ │ │ ├── fns.ts │ │ │ ├── index.ts │ │ │ ├── message.test.ts │ │ │ ├── message.ts │ │ │ ├── parse-structured-output.test.ts │ │ │ ├── parse-structured-output.ts │ │ │ ├── reset.d.ts │ │ │ ├── schema.test.ts │ │ │ ├── schema.ts │ │ │ ├── types.ts │ │ │ ├── utils.test.ts │ │ │ ├── utils.ts │ │ │ ├── zod-to-json-schema.test.ts │ │ │ └── zod-to-json-schema.ts │ │ └── tsconfig.json │ ├── genkit/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── genkit.test.ts │ │ │ ├── genkit.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── langchain/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── langchain.test.ts │ │ │ └── langchain.ts │ │ └── tsconfig.json │ ├── license │ ├── llamaindex/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── llamaindex.test.ts │ │ │ └── llamaindex.ts │ │ └── tsconfig.json │ ├── mastra/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── mastra.test.ts │ │ │ └── mastra.ts │ │ └── tsconfig.json │ ├── mcp/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── mcp-tools.ts │ │ │ ├── paginate.ts │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── serpapi/ │ │ ├── package.json │ │ ├── readme.md │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── serpapi-client.ts │ │ └── tsconfig.json │ └── serper/ │ ├── package.json │ ├── readme.md │ ├── src/ │ │ ├── index.ts │ │ └── serper-client.ts │ └── tsconfig.json ├── todo.md ├── tsconfig.json ├── tsup.config.ts └── turbo.json