@cargo-ai/app-sdk

中文文档
1.0.12发布于 2026/11/06UNLICENSEDES Module近 30 天下载 8.1万

Cargo Hosting App SDK: Cargo OAuth auth provider, refine data provider over @cargo-ai/api, shadcn/ui theme, layouts, and hooks for Vite + React apps deployed to Cargo Hosting

原始使用文档
文档目录6 节
  1. Install
  2. Use it
  3. What ships
  4. Env vars
  5. Adding shadcn primitives
  6. Reference

@cargo-ai/app-sdk

The SDK for building Cargo Hosting apps — a Vite + React + refine bundle that gives you working Cargo OAuth sign-in, a typed @cargo-ai/api client (via useCargoApi()), a shadcn/ui-styled theme, and the standard refine view scaffolds — so Claude Code (or you) can spend tokens on the screens that actually matter.

Install

npm install @cargo-ai/app-sdk @cargo-ai/api @auth0/auth0-react react react-dom react-router-dom

Use it

// src/App.tsx
import { CargoRefineApp, CargoSiderLayout } from "@cargo-ai/app-sdk";
import { Routes, Route } from "react-router-dom";
import { Inbox } from "lucide-react";

import { LeadInbox } from "./pages/LeadInbox";

const resources = [
  {
    name: "leads",
    list: "/",
    meta: { label: "Leads", icon: <Inbox className="h-4 w-4" /> },
  },
];

export const App = () => (
  <CargoRefineApp resources={resources}>
    <CargoSiderLayout title="Lead Console">
      <Routes>
        <Route path="/" element={<LeadInbox />} />
      </Routes>
    </CargoSiderLayout>
  </CargoRefineApp>
);

What ships

  • <CargoRefineApp> — Cargo OAuth + refine + router + Cargo API context, all wired.
  • CargoAuthProvider — refine AuthProvider that gates the app on app_metadata.workspaceUuids matching the build-time VITE_CARGO_WORKSPACE_UUID.
  • Hooks: useCargoApi() for the typed API client, useCargoAnalytics() for pageviews + custom events.
  • Layouts: <CargoSiderLayout>, <CargoEmpty>, <CargoErrorBoundary>, <CargoUserMenu>, <CargoWorkspaceBadge>.
  • View wrappers: <List>, <Show>, <Edit>, <Create>, <DataTable>.
  • Cargo domain composites in src/components/domain/<domain>/: read-only icons / badges / cards over the typed @cargo-ai/api domain types — agents, workflows + run statuses, datasets/models, segments, integrations/connectors, members (plus a self-fetching <MemberSelect>).
  • shadcn/ui primitives copy-pasted from the registry into src/components/ui/: forms (<Button>, <Input>, <Textarea>, <Label>, <Checkbox>, <RadioGroup>, <Switch>, <Slider>, <Select>, <Toggle>, <ToggleGroup>, <Calendar>), surfaces (<Card>, <Sheet>, <Dialog>, <AlertDialog>, <Popover>, <HoverCard>, <Tooltip>, <Separator>, <ScrollArea>, <Collapsible>, <Accordion>), nav (<Tabs>, <Breadcrumb>, <Pagination>, <NavigationMenu>, <DropdownMenu>, <ContextMenu>, <Menubar>, <Command>), display (<Table>, <Badge>, <Avatar>, <Skeleton>, <Progress>, <Spinner>, <Alert>, <Toaster>), and charts (<ChartContainer> + helpers, wraps recharts).
  • Tailwind preset (@cargo-ai/app-sdk/tailwind-preset) + base CSS (@cargo-ai/app-sdk/styles.css).

Env vars

Cargo Hosting bakes these into the bundle automatically. For local dev run cargo-ai hosting app env <appUuid> > .env.local:

VITE_CARGO_OAUTH_DOMAIN=...
VITE_CARGO_OAUTH_CLIENT_ID=...
VITE_CARGO_OAUTH_AUDIENCE=...
VITE_CARGO_API_URL=https://api.getcargo.io
VITE_CARGO_WORKSPACE_UUID=...
VITE_CARGO_APP_UUID=...
VITE_APP_BASE_PATH=/

Next.js apps read the same vars with a NEXT_PUBLIC_ prefix (NEXT_PUBLIC_CARGO_API_URL, …); Cargo Hosting injects both.

Adding shadcn primitives

The pack ships shadcn/ui components copy-pasted into src/components/ui/. Pull a new one in via the wired-up CLI:

npm run -w @cargo-ai/app-sdk shadcn:add -- <component>
# e.g.
npm run -w @cargo-ai/app-sdk shadcn:add -- tooltip

That runs shadcn@latest add against this package's components.json, then a post-processor (scripts/shadcn-postprocess.mjs) rewrites the CLI's @/ alias imports to relative ./…/foo.js paths and strips "use client" directives so the file fits the SDK's NodeNext / Vite shape. After it finishes:

  1. Add the new exports to src/index.ts by hand (the CLI doesn't touch barrels).
  2. If the component pulls in CSS variables we don't already define (e.g. --chart-1 for chart), add them to styles.css.

To compare a local primitive against the upstream shadcn source:

npm run -w @cargo-ai/app-sdk shadcn:diff -- <component>

Do not run npx shadcn init in this package. components.json, styles.css, and tailwind.config.ts are hand-curated; init would overwrite them. Only add / diff are safe.

Reference

版本与发布记录

@cargo-ai/app-sdk 共发布 12 个版本,首次发布于 2026/05/12;过去 12 个月发布了 12 个版本。

版本发布日期距今
1.0.12latest2026/11/063 天前
1.0.112026/09/301 个月前
1.0.102026/09/032 个月前
1.0.92026/08/232 个月前
1.0.82026/08/212 个月前
1.0.72026/08/202 个月前

关于 @cargo-ai/app-sdk 的常见问题

@cargo-ai/app-sdk 是什么?

Cargo Hosting App SDK: Cargo OAuth auth provider, refine data provider over @cargo-ai/api, shadcn/ui theme, layouts, and hooks for Vite + React apps deployed to Cargo Hosting

如何安装 @cargo-ai/app-sdk?

在项目目录运行 npm install @cargo-ai/app-sdk,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(18.3.1)、react-dom(18.3.1)、@cargo-ai/api(^1.0.107)、react-router-dom(^6.30.6)、@auth0/auth0-react(^2.11.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cargo-ai/app-sdk 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cargo-ai__app-sdk 是否存在。

@cargo-ai/app-sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cargo-ai/app-sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cargo-ai/app-sdk 可以商用吗?

@cargo-ai/app-sdk 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@cargo-ai/app-sdk 的下载量有多少?

根据 npm 官方下载统计,@cargo-ai/app-sdk 在 2026/10/09 – 2026/11/07 这 30 天内被下载 80,542 次,日均约 2,685 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cargo-ai/app-sdk 还在维护吗?

最新版本 1.0.12 发布于 2026/11/06(3 天前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。