mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-11 14:10:50 +02:00
## Thinking Path > - Paperclip is the open source app people use to manage AI agents for work. > - A useful app store needs accurate and selectable provider definitions. > - Local brand assets now cover the expanded provider set. > - Provider methods differ in transport, authentication, ownership, and required scope. > - This pull request expands the catalog and encodes those provider contracts. > - The benefit is a larger self-serve store with explicit setup choices. ## Linked Issues or Issue Description Refs #11965 This is stack 6 of 11. It depends on stack 5 and replaces another reviewable part of #11965. ## What Changed - Add and update provider definitions for the self-serve catalog. - Add Google Workspace connection methods and capability profiles. - Add catalog generation, ingestion, URL matching, and contract tests. - Update legacy key tests to use a provider that still uses header credentials. ## Verification - `pnpm --filter @paperclipai/server typecheck` - `pnpm --filter @paperclipai/server exec vitest run src/__tests__/tool-access-service.test.ts` - Result: 164 tests passed. - `pnpm build` ## Risks - An incorrect provider definition can offer the wrong setup method. - Contract tests verify transport, authentication, and provider URL behavior. - The change does not add a database migration. > I checked `ROADMAP.md`. This stack continues the existing app connection work from #11965 and does not duplicate another planned item. ## Model Used OpenAI Codex, GPT-5. The runtime model ID and context window were not exposed. The model used reasoning, tool use, and code execution. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used (with version and capability details) - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have either (a) linked existing issues with `Refs #` or (b) described the issue in this pull request - [x] I have not referenced internal or instance-local Paperclip issues or links - [x] My branch name describes the change and contains no internal Paperclip ticket id or instance-derived details - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation to reflect my changes - [x] I have considered and documented any risks above - [x] All Paperclip CI gates are green - [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups - [x] I will address all Greptile and reviewer comments before requesting merge --------- Co-authored-by: Paperclip <noreply@paperclip.ing>
65 lines
4.8 KiB
TypeScript
65 lines
4.8 KiB
TypeScript
import a0 from "./app-definitions/zapier.json" with { type: "json" };
|
|
import a1 from "./app-definitions/github.json" with { type: "json" };
|
|
import a2 from "./app-definitions/slack.json" with { type: "json" };
|
|
import a3 from "./app-definitions/notion.json" with { type: "json" };
|
|
import a4 from "./app-definitions/posthog.json" with { type: "json" };
|
|
import a5 from "./app-definitions/linear.json" with { type: "json" };
|
|
import a6 from "./app-definitions/context7.json" with { type: "json" };
|
|
import a7 from "./app-definitions/shopify.json" with { type: "json" };
|
|
import a8 from "./app-definitions/composio.json" with { type: "json" };
|
|
import a9 from "./app-definitions/oauth-generic.json" with { type: "json" };
|
|
import a10 from "./app-definitions/api-key-generic.json" with { type: "json" };
|
|
import a11 from "./app-definitions/sentry.json" with { type: "json" };
|
|
import a12 from "./app-definitions/vercel.json" with { type: "json" };
|
|
import a13 from "./app-definitions/anthropic.json" with { type: "json" };
|
|
import a14 from "./app-definitions/jira.json" with { type: "json" };
|
|
import a15 from "./app-definitions/airtable.json" with { type: "json" };
|
|
import a16 from "./app-definitions/beehiiv.json" with { type: "json" };
|
|
import a17 from "./app-definitions/bitly.json" with { type: "json" };
|
|
import a18 from "./app-definitions/candid.json" with { type: "json" };
|
|
import a19 from "./app-definitions/cloudflare.json" with { type: "json" };
|
|
import a20 from "./app-definitions/cloudinary.json" with { type: "json" };
|
|
import a21 from "./app-definitions/coda.json" with { type: "json" };
|
|
import a22 from "./app-definitions/hugging-face.json" with { type: "json" };
|
|
import a23 from "./app-definitions/kernel.json" with { type: "json" };
|
|
import a24 from "./app-definitions/local-falcon.json" with { type: "json" };
|
|
import a25 from "./app-definitions/make.json" with { type: "json" };
|
|
import a26 from "./app-definitions/manufact.json" with { type: "json" };
|
|
import a27 from "./app-definitions/miro.json" with { type: "json" };
|
|
import a28 from "./app-definitions/netlify.json" with { type: "json" };
|
|
import a29 from "./app-definitions/oreilly.json" with { type: "json" };
|
|
import a30 from "./app-definitions/planetscale.json" with { type: "json" };
|
|
import a31 from "./app-definitions/resend.json" with { type: "json" };
|
|
import a32 from "./app-definitions/ticktick.json" with { type: "json" };
|
|
import a33 from "./app-definitions/todoist.json" with { type: "json" };
|
|
import a34 from "./app-definitions/webflow.json" with { type: "json" };
|
|
import a35 from "./app-definitions/wix.json" with { type: "json" };
|
|
import a36 from "./app-definitions/brex.json" with { type: "json" };
|
|
import a37 from "./app-definitions/clickhouse.json" with { type: "json" };
|
|
import a38 from "./app-definitions/egnyte.json" with { type: "json" };
|
|
import a39 from "./app-definitions/embat.json" with { type: "json" };
|
|
import a40 from "./app-definitions/mixpanel.json" with { type: "json" };
|
|
import a41 from "./app-definitions/postman.json" with { type: "json" };
|
|
import a42 from "./app-definitions/razorpay.json" with { type: "json" };
|
|
import a43 from "./app-definitions/sanity.json" with { type: "json" };
|
|
import a44 from "./app-definitions/stripe.json" with { type: "json" };
|
|
import a45 from "./app-definitions/supabase.json" with { type: "json" };
|
|
import a46 from "./app-definitions/ticket-tailor.json" with { type: "json" };
|
|
import a47 from "./app-definitions/asana.json" with { type: "json" };
|
|
import a48 from "./app-definitions/box.json" with { type: "json" };
|
|
import a49 from "./app-definitions/mem0.json" with { type: "json" };
|
|
import a50 from "./app-definitions/pagerduty.json" with { type: "json" };
|
|
import a51 from "./app-definitions/similarweb.json" with { type: "json" };
|
|
import a52 from "./app-definitions/xero.json" with { type: "json" };
|
|
import a53 from "./app-definitions/gmail.json" with { type: "json" };
|
|
import a54 from "./app-definitions/google-drive.json" with { type: "json" };
|
|
import a55 from "./app-definitions/google-docs.json" with { type: "json" };
|
|
import a56 from "./app-definitions/google-sheets.json" with { type: "json" };
|
|
import a57 from "./app-definitions/google-slides.json" with { type: "json" };
|
|
import a58 from "./app-definitions/google-calendar.json" with { type: "json" };
|
|
import a59 from "./app-definitions/google-chat.json" with { type: "json" };
|
|
import a60 from "./app-definitions/google-people.json" with { type: "json" };
|
|
import a61 from "./app-definitions/google-workspace-search.json" with { type: "json" };
|
|
import type { AppDefinition } from "./types/app-definition.js";
|
|
export const APP_DEFINITIONS=[a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61] as AppDefinition[];
|