pilothub 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.local.example +19 -0
- package/.github/workflows/ci.yml +40 -0
- package/.oxlintrc.json +3 -0
- package/AGENTS.md +45 -0
- package/CHANGELOG.md +138 -0
- package/DEPRECATIONS.md +7 -0
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/biome.json +41 -0
- package/convex/_generated/api.d.ts +153 -0
- package/convex/_generated/api.js +23 -0
- package/convex/_generated/dataModel.d.ts +60 -0
- package/convex/_generated/server.d.ts +143 -0
- package/convex/_generated/server.js +93 -0
- package/convex/auth.config.ts +8 -0
- package/convex/auth.ts +19 -0
- package/convex/comments.ts +88 -0
- package/convex/crons.ts +34 -0
- package/convex/devSeed.ts +459 -0
- package/convex/devSeedExtra.ts +541 -0
- package/convex/downloads.ts +78 -0
- package/convex/githubBackups.ts +170 -0
- package/convex/githubBackupsNode.ts +183 -0
- package/convex/githubImport.ts +317 -0
- package/convex/githubSoulBackups.ts +170 -0
- package/convex/githubSoulBackupsNode.ts +186 -0
- package/convex/http.ts +194 -0
- package/convex/httpApi.handlers.test.ts +488 -0
- package/convex/httpApi.test.ts +70 -0
- package/convex/httpApi.ts +305 -0
- package/convex/httpApiV1.handlers.test.ts +584 -0
- package/convex/httpApiV1.ts +1172 -0
- package/convex/leaderboards.ts +39 -0
- package/convex/lib/access.ts +36 -0
- package/convex/lib/apiTokenAuth.ts +36 -0
- package/convex/lib/badges.ts +50 -0
- package/convex/lib/changelog.test.ts +34 -0
- package/convex/lib/changelog.ts +278 -0
- package/convex/lib/embeddings.ts +38 -0
- package/convex/lib/githubBackup.ts +443 -0
- package/convex/lib/githubImport.test.ts +247 -0
- package/convex/lib/githubImport.ts +425 -0
- package/convex/lib/githubSoulBackup.ts +443 -0
- package/convex/lib/leaderboards.ts +103 -0
- package/convex/lib/moderation.ts +42 -0
- package/convex/lib/public.ts +89 -0
- package/convex/lib/searchText.test.ts +46 -0
- package/convex/lib/searchText.ts +27 -0
- package/convex/lib/skillBackfill.test.ts +34 -0
- package/convex/lib/skillBackfill.ts +67 -0
- package/convex/lib/skillPublish.test.ts +28 -0
- package/convex/lib/skillPublish.ts +284 -0
- package/convex/lib/skillStats.ts +80 -0
- package/convex/lib/skills.test.ts +197 -0
- package/convex/lib/skills.ts +273 -0
- package/convex/lib/soulChangelog.ts +273 -0
- package/convex/lib/soulPublish.ts +236 -0
- package/convex/lib/tokens.test.ts +33 -0
- package/convex/lib/tokens.ts +51 -0
- package/convex/lib/webhooks.test.ts +91 -0
- package/convex/lib/webhooks.ts +112 -0
- package/convex/maintenance.test.ts +270 -0
- package/convex/maintenance.ts +840 -0
- package/convex/rateLimits.ts +50 -0
- package/convex/schema.ts +472 -0
- package/convex/search.test.ts +12 -0
- package/convex/search.ts +254 -0
- package/convex/seed.test.ts +37 -0
- package/convex/seed.ts +254 -0
- package/convex/seedSouls.ts +111 -0
- package/convex/skillStatEvents.ts +568 -0
- package/convex/skills.ts +1606 -0
- package/convex/soulComments.ts +88 -0
- package/convex/soulDownloads.ts +14 -0
- package/convex/soulStars.ts +71 -0
- package/convex/souls.ts +570 -0
- package/convex/stars.ts +108 -0
- package/convex/statsMaintenance.ts +205 -0
- package/convex/telemetry.ts +434 -0
- package/convex/tokens.ts +88 -0
- package/convex/tsconfig.json +7 -0
- package/convex/uploads.ts +20 -0
- package/convex/users.ts +122 -0
- package/convex/webhooks.ts +50 -0
- package/convex.json +3 -0
- package/docs/README.md +32 -0
- package/docs/api.md +51 -0
- package/docs/architecture.md +61 -0
- package/docs/auth.md +54 -0
- package/docs/cli.md +117 -0
- package/docs/deploy.md +78 -0
- package/docs/diffing.md +84 -0
- package/docs/github-import.md +171 -0
- package/docs/http-api.md +187 -0
- package/docs/manual-testing.md +64 -0
- package/docs/mintlify.md +43 -0
- package/docs/quickstart.md +120 -0
- package/docs/skill-format.md +58 -0
- package/docs/soul-format.md +37 -0
- package/docs/spec.md +177 -0
- package/docs/telemetry.md +91 -0
- package/docs/troubleshooting.md +49 -0
- package/docs/webhook.md +51 -0
- package/e2e/menu-smoke.pw.test.ts +49 -0
- package/e2e/pilothub.e2e.test.ts +494 -0
- package/e2e/search-exact.pw.test.ts +97 -0
- package/package.json +84 -0
- package/packages/pilothub/LICENSE +22 -0
- package/packages/pilothub/README.md +57 -0
- package/packages/pilothub/bin/pilothub.js +2 -0
- package/packages/pilothub/package.json +41 -0
- package/packages/pilothub/src/browserAuth.test.ts +96 -0
- package/packages/pilothub/src/browserAuth.ts +174 -0
- package/packages/pilothub/src/cli/buildInfo.ts +94 -0
- package/packages/pilothub/src/cli/commands/auth.ts +97 -0
- package/packages/pilothub/src/cli/commands/delete.test.ts +73 -0
- package/packages/pilothub/src/cli/commands/delete.ts +83 -0
- package/packages/pilothub/src/cli/commands/publish.test.ts +122 -0
- package/packages/pilothub/src/cli/commands/publish.ts +108 -0
- package/packages/pilothub/src/cli/commands/skills.test.ts +191 -0
- package/packages/pilothub/src/cli/commands/skills.ts +380 -0
- package/packages/pilothub/src/cli/commands/star.ts +46 -0
- package/packages/pilothub/src/cli/commands/sync.test.ts +310 -0
- package/packages/pilothub/src/cli/commands/sync.ts +200 -0
- package/packages/pilothub/src/cli/commands/syncHelpers.test.ts +26 -0
- package/packages/pilothub/src/cli/commands/syncHelpers.ts +427 -0
- package/packages/pilothub/src/cli/commands/syncTypes.ts +27 -0
- package/packages/pilothub/src/cli/commands/unstar.ts +48 -0
- package/packages/pilothub/src/cli/helpStyle.ts +45 -0
- package/packages/pilothub/src/cli/pilotbotConfig.test.ts +159 -0
- package/packages/pilothub/src/cli/pilotbotConfig.ts +147 -0
- package/packages/pilothub/src/cli/registry.test.ts +63 -0
- package/packages/pilothub/src/cli/registry.ts +43 -0
- package/packages/pilothub/src/cli/scanSkills.test.ts +64 -0
- package/packages/pilothub/src/cli/scanSkills.ts +84 -0
- package/packages/pilothub/src/cli/slug.ts +16 -0
- package/packages/pilothub/src/cli/types.ts +12 -0
- package/packages/pilothub/src/cli/ui.ts +75 -0
- package/packages/pilothub/src/cli.ts +311 -0
- package/packages/pilothub/src/config.ts +36 -0
- package/packages/pilothub/src/discovery.test.ts +75 -0
- package/packages/pilothub/src/discovery.ts +19 -0
- package/packages/pilothub/src/http.test.ts +156 -0
- package/packages/pilothub/src/http.ts +301 -0
- package/packages/pilothub/src/schema/ark.ts +29 -0
- package/packages/pilothub/src/schema/index.ts +5 -0
- package/packages/pilothub/src/schema/routes.ts +22 -0
- package/packages/pilothub/src/schema/schemas.ts +260 -0
- package/packages/pilothub/src/schema/textFiles.test.ts +23 -0
- package/packages/pilothub/src/schema/textFiles.ts +66 -0
- package/packages/pilothub/src/skills.test.ts +191 -0
- package/packages/pilothub/src/skills.ts +172 -0
- package/packages/pilothub/src/types.ts +10 -0
- package/packages/pilothub/tsconfig.json +14 -0
- package/packages/schema/README.md +3 -0
- package/packages/schema/dist/ark.d.ts +4 -0
- package/packages/schema/dist/ark.js +26 -0
- package/packages/schema/dist/ark.js.map +1 -0
- package/packages/schema/dist/index.d.ts +5 -0
- package/packages/schema/dist/index.js +5 -0
- package/packages/schema/dist/index.js.map +1 -0
- package/packages/schema/dist/routes.d.ts +21 -0
- package/packages/schema/dist/routes.js +22 -0
- package/packages/schema/dist/routes.js.map +1 -0
- package/packages/schema/dist/schemas.d.ts +297 -0
- package/packages/schema/dist/schemas.js +243 -0
- package/packages/schema/dist/schemas.js.map +1 -0
- package/packages/schema/dist/textFiles.d.ts +5 -0
- package/packages/schema/dist/textFiles.js +66 -0
- package/packages/schema/dist/textFiles.js.map +1 -0
- package/packages/schema/package.json +26 -0
- package/packages/schema/src/ark.ts +29 -0
- package/packages/schema/src/index.ts +5 -0
- package/packages/schema/src/routes.ts +22 -0
- package/packages/schema/src/schemas.test.ts +123 -0
- package/packages/schema/src/schemas.ts +287 -0
- package/packages/schema/src/textFiles.test.ts +23 -0
- package/packages/schema/src/textFiles.ts +66 -0
- package/packages/schema/tsconfig.json +15 -0
- package/pilothub +46 -0
- package/playwright.config.ts +33 -0
- package/public/.well-known/pilothub.json +6 -0
- package/public/api/v1/openapi.json +379 -0
- package/public/favicon.ico +0 -0
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +25 -0
- package/public/og.png +0 -0
- package/public/og.svg +98 -0
- package/public/pilot-logo.png +0 -0
- package/public/pilot-mark.png +0 -0
- package/public/robots.txt +3 -0
- package/public/tanstack-circle-logo.png +0 -0
- package/public/tanstack-word-logo-white.svg +1 -0
- package/scripts/check-peer-deps.ts +56 -0
- package/scripts/docs-list.ts +148 -0
- package/scripts/run-playwright-local.sh +14 -0
- package/server/og/fetchSkillOgMeta.ts +27 -0
- package/server/og/fetchSoulOgMeta.ts +27 -0
- package/server/og/ogAssets.ts +80 -0
- package/server/og/skillOgSvg.test.ts +59 -0
- package/server/og/skillOgSvg.ts +258 -0
- package/server/og/soulOgSvg.ts +209 -0
- package/server/routes/og/skill.png.ts +103 -0
- package/server/routes/og/soul.png.ts +111 -0
- package/src/__tests__/skill-detail-page.test.tsx +86 -0
- package/src/__tests__/skills-index.test.tsx +145 -0
- package/src/__tests__/upload.route.test.tsx +228 -0
- package/src/components/AppProviders.tsx +19 -0
- package/src/components/ClientOnly.tsx +18 -0
- package/src/components/Footer.tsx +29 -0
- package/src/components/Header.tsx +295 -0
- package/src/components/InstallSwitcher.tsx +53 -0
- package/src/components/SkillCard.tsx +36 -0
- package/src/components/SkillDetailPage.tsx +817 -0
- package/src/components/SkillDiffCard.tsx +485 -0
- package/src/components/SoulCard.tsx +19 -0
- package/src/components/SoulDetailPage.tsx +263 -0
- package/src/components/UserBootstrap.tsx +18 -0
- package/src/components/ui/dropdown-menu.tsx +67 -0
- package/src/components/ui/toggle-group.tsx +35 -0
- package/src/convex/client.ts +3 -0
- package/src/lib/badges.ts +29 -0
- package/src/lib/diffing.test.ts +163 -0
- package/src/lib/diffing.ts +106 -0
- package/src/lib/gravatar.test.ts +9 -0
- package/src/lib/gravatar.ts +158 -0
- package/src/lib/og.test.ts +142 -0
- package/src/lib/og.ts +156 -0
- package/src/lib/publicUser.ts +39 -0
- package/src/lib/roles.ts +19 -0
- package/src/lib/site.test.ts +130 -0
- package/src/lib/site.ts +84 -0
- package/src/lib/theme-transition.test.ts +134 -0
- package/src/lib/theme-transition.ts +134 -0
- package/src/lib/theme.test.tsx +88 -0
- package/src/lib/theme.ts +43 -0
- package/src/lib/uploadFiles.jsdom.test.ts +33 -0
- package/src/lib/uploadFiles.test.ts +123 -0
- package/src/lib/uploadFiles.ts +245 -0
- package/src/lib/uploadUtils.test.ts +78 -0
- package/src/lib/uploadUtils.ts +93 -0
- package/src/lib/useAuthStatus.ts +12 -0
- package/src/lib/utils.test.ts +9 -0
- package/src/lib/utils.ts +6 -0
- package/src/logo.svg +12 -0
- package/src/routeTree.gen.ts +345 -0
- package/src/router.tsx +17 -0
- package/src/routes/$owner/$slug.tsx +55 -0
- package/src/routes/__root.tsx +136 -0
- package/src/routes/admin.tsx +11 -0
- package/src/routes/cli/auth.tsx +168 -0
- package/src/routes/dashboard.tsx +97 -0
- package/src/routes/import.tsx +415 -0
- package/src/routes/index.tsx +252 -0
- package/src/routes/management.tsx +529 -0
- package/src/routes/settings.tsx +203 -0
- package/src/routes/skills/index.tsx +422 -0
- package/src/routes/souls/$slug.tsx +55 -0
- package/src/routes/souls/index.tsx +243 -0
- package/src/routes/stars.tsx +68 -0
- package/src/routes/u/$handle.tsx +307 -0
- package/src/routes/upload/utils.ts +81 -0
- package/src/routes/upload.tsx +499 -0
- package/src/styles.css +2718 -0
- package/tsconfig.json +24 -0
- package/tsconfig.oxlint.json +16 -0
- package/vercel.json +8 -0
- package/vite.config.ts +48 -0
- package/vitest.config.ts +47 -0
- package/vitest.e2e.config.ts +11 -0
- package/vitest.setup.ts +1 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Frontend
|
|
2
|
+
VITE_CONVEX_URL=
|
|
3
|
+
VITE_CONVEX_SITE_URL=
|
|
4
|
+
VITE_SOULHUB_SITE_URL=
|
|
5
|
+
VITE_SOULHUB_HOST=
|
|
6
|
+
VITE_SITE_MODE=
|
|
7
|
+
SITE_URL=http://localhost:3000
|
|
8
|
+
CONVEX_SITE_URL=
|
|
9
|
+
|
|
10
|
+
# Convex Auth (GitHub OAuth App)
|
|
11
|
+
AUTH_GITHUB_ID=
|
|
12
|
+
AUTH_GITHUB_SECRET=
|
|
13
|
+
|
|
14
|
+
# Convex Auth JWT keys (generated via @convex-dev/auth CLI)
|
|
15
|
+
JWT_PRIVATE_KEY=
|
|
16
|
+
JWKS=
|
|
17
|
+
|
|
18
|
+
# Embeddings
|
|
19
|
+
OPENAI_API_KEY=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
timeout-minutes: 15
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- uses: oven-sh/setup-bun@v2
|
|
17
|
+
with:
|
|
18
|
+
bun-version: 1.3.6
|
|
19
|
+
|
|
20
|
+
- name: Install
|
|
21
|
+
run: bun install --frozen-lockfile
|
|
22
|
+
- name: Peer deps
|
|
23
|
+
run: bun run check:peers
|
|
24
|
+
|
|
25
|
+
- name: Lint
|
|
26
|
+
run: bun run lint
|
|
27
|
+
|
|
28
|
+
- name: Test
|
|
29
|
+
run: bun run test
|
|
30
|
+
|
|
31
|
+
- name: Coverage
|
|
32
|
+
run: bun run coverage
|
|
33
|
+
|
|
34
|
+
- name: Typecheck packages
|
|
35
|
+
run: |
|
|
36
|
+
bunx tsc -p packages/schema/tsconfig.json --noEmit
|
|
37
|
+
bunx tsc -p packages/pilothub/tsconfig.json --noEmit
|
|
38
|
+
|
|
39
|
+
- name: Build
|
|
40
|
+
run: bun run build
|
package/.oxlintrc.json
ADDED
package/AGENTS.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Structure & Module Organization
|
|
4
|
+
- `src/` — TanStack Start app code (routes, components, styles).
|
|
5
|
+
- `convex/` — Convex backend (schema, queries/mutations/actions, HTTP routes).
|
|
6
|
+
- `convex/_generated/` — generated Convex API/types; committed for builds.
|
|
7
|
+
- `docs/` — product/spec docs (see `docs/spec.md`).
|
|
8
|
+
- `public/` — static assets.
|
|
9
|
+
|
|
10
|
+
## Build, Test, and Development Commands
|
|
11
|
+
- `bun run dev` — local app server at `http://localhost:3000`.
|
|
12
|
+
- `bun run build` — production build (Vite + Nitro).
|
|
13
|
+
- `bun run preview` — preview built app.
|
|
14
|
+
- `bunx convex dev` — Convex dev deployment + function watcher.
|
|
15
|
+
- `bunx convex codegen` — regenerate `convex/_generated`.
|
|
16
|
+
- `bun run lint` — Biome + oxlint (type-aware).
|
|
17
|
+
- `bun run test` — Vitest (unit tests).
|
|
18
|
+
- `bun run coverage` — coverage run; keep global >= 80%.
|
|
19
|
+
|
|
20
|
+
## Coding Style & Naming Conventions
|
|
21
|
+
- TypeScript strict; ESM.
|
|
22
|
+
- Indentation: 2 spaces, single quotes (Biome).
|
|
23
|
+
- Lint/format: Biome + oxlint (type-aware).
|
|
24
|
+
- Convex function names: verb-first (`getBySlug`, `publishVersion`).
|
|
25
|
+
|
|
26
|
+
## Testing Guidelines
|
|
27
|
+
- Framework: Vitest 4 + jsdom.
|
|
28
|
+
- Tests live in `src/**` and `convex/lib/**`.
|
|
29
|
+
- Coverage threshold: 80% global (lines/functions/branches/statements).
|
|
30
|
+
- Example: `convex/lib/skills.test.ts`.
|
|
31
|
+
|
|
32
|
+
## Commit & Pull Request Guidelines
|
|
33
|
+
- Commit messages: Conventional Commits (`feat:`, `fix:`, `chore:`, `docs:`…).
|
|
34
|
+
- Keep changes scoped; avoid repo-wide search/replace.
|
|
35
|
+
- PRs: include summary + test commands run. Add screenshots for UI changes.
|
|
36
|
+
|
|
37
|
+
## Configuration & Security
|
|
38
|
+
- Local env: `.env.local` (never commit secrets).
|
|
39
|
+
- Convex env holds JWT keys; Vercel only needs `VITE_CONVEX_URL` + `VITE_CONVEX_SITE_URL`.
|
|
40
|
+
- OAuth: GitHub OAuth App credentials required for login.
|
|
41
|
+
|
|
42
|
+
## Convex Ops (Gotchas)
|
|
43
|
+
- New Convex functions must be pushed before `convex run`: use `bunx convex dev --once` (dev) or `bunx convex deploy` (prod).
|
|
44
|
+
- For non-interactive prod deploys, use `bunx convex deploy -y` to skip confirmation.
|
|
45
|
+
- If `bunx convex run --env-file .env.local ...` returns `401 MissingAccessToken` despite `bunx convex login`, workaround: omit `--env-file` and use `--deployment-name <name>` / `--prod`.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Web: show published skills on user profiles (thanks @njoylab, #20).
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- Registry: drop missing skills during search hydration (thanks @aaronn, #28).
|
|
10
|
+
- CLI: use path-based skill metadata lookup for updates (thanks @daveonkels, #22).
|
|
11
|
+
- Search: keep highlighted-only filtering and clamp vector candidates to Convex limits (thanks @aaronn, #30).
|
|
12
|
+
|
|
13
|
+
## 0.3.0 - 2026-01-19
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- CLI: add `explore` command for latest updates, with limit clamping + tests/docs (thanks @jdrhyne, #14).
|
|
17
|
+
- CLI: `explore --json` output + new sorts (`installs`, `installsAllTime`, `trending`) and limit up to 200.
|
|
18
|
+
- API: `/api/v1/skills` supports installs + trending sorts (7-day installs).
|
|
19
|
+
- API: idempotent `POST/DELETE /api/v1/stars/{slug}` endpoints.
|
|
20
|
+
- Registry: trending leaderboard + daily stats backfill for installs-based sorts.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- Web: keep search mode navigation and state in sync (thanks @NACC96, #12).
|
|
24
|
+
|
|
25
|
+
## 0.2.0 - 2026-01-13
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- Web: dynamic OG image cards for skills (name, description, version).
|
|
29
|
+
- CLI: auto-scan Pilotbot skill roots (per-agent workspaces, shared skills, extraDirs).
|
|
30
|
+
- Web: import skills from public GitHub URLs (auto-detect `SKILL.md`, smart file selection, provenance).
|
|
31
|
+
- Web/API: SoulHub (SOUL.md registry) with v1 endpoints and first-run auto-seed.
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Web: stabilize skill OG image generation on server runtimes.
|
|
35
|
+
- Web: prevent skill OG text overflow outside the card.
|
|
36
|
+
- Registry: make SoulHub auto-seed idempotent and non-user-owned.
|
|
37
|
+
- Registry: keep GitHub backup state + publish backups intact (thanks @joshp123, #1).
|
|
38
|
+
- CLI/Registry: restore fork lineage on sync + clamp bulk list queries (thanks @joshp123, #1).
|
|
39
|
+
- CLI: default workdir falls back to Pilotbot workspace (override with `--workdir` / `PILOTHUB_WORKDIR`).
|
|
40
|
+
|
|
41
|
+
## 0.0.6 - 2026-01-07
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- API: v1 public REST endpoints with rate limits, raw file fetch, and OpenAPI spec.
|
|
46
|
+
- Docs: `docs/api.md` and `DEPRECATIONS.md` for the v1 cutover plan.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- CLI: publish now uses single multipart `POST /api/v1/skills`.
|
|
50
|
+
- Registry: legacy `/api/*` + `/api/cli/*` marked for deprecation (kept for now).
|
|
51
|
+
|
|
52
|
+
## 0.0.5 - 2026-01-06
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- Telemetry: track installs via `pilothub sync` (logged-in only), per root, with 120-day staleness.
|
|
56
|
+
- Skills: show current + all-time installs; sort by installs.
|
|
57
|
+
- Profile: private "Installed" tab with JSON export + delete telemetry controls.
|
|
58
|
+
- Docs: add `docs/telemetry.md` (what we track + how to opt out).
|
|
59
|
+
- Web: custom Open Graph image (`/og.png`) + richer OG/Twitter tags.
|
|
60
|
+
- Web: dashboard for managing your published skills (thanks @dbhurley!).
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
- CLI: telemetry opt-out via `PILOTHUB_DISABLE_TELEMETRY=1`.
|
|
64
|
+
- Web: move theme picker into mobile menu.
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
- Web: handle shorthand hex colors in diff theme (thanks @dbhurley!).
|
|
68
|
+
|
|
69
|
+
## 0.0.5 - 2026-01-06
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- Maintenance: admin backfill to re-parse `SKILL.md` and repair stored summaries/parsed metadata.
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
- CLI sync: ignore plural `skills.md` docs files when scanning for skills.
|
|
76
|
+
- Registry: parse YAML frontmatter (incl multiline `description`) and accept YAML `metadata` objects.
|
|
77
|
+
|
|
78
|
+
## 0.0.4 - 2026-01-05
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
- Web: `/skills` list view with sorting (newest/downloads/stars/name) + quick filter.
|
|
82
|
+
- Web: admin/moderator highlight toggle on skill detail.
|
|
83
|
+
- Web: canonical skill URLs as `/<owner>/<slug>` (legacy `/skills/<slug>` redirects).
|
|
84
|
+
- Web: upload auto-generates a changelog via OpenAI when left blank (marked as auto-generated).
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
- Web: skill detail shows a loading state instead of flashing "Skill not found".
|
|
88
|
+
- Web: user profile shows avatar + loading state (no "User not found" flash).
|
|
89
|
+
- Web: improved mobile responsiveness (nav menu, skill detail layout, install command overflow).
|
|
90
|
+
- Web: upload now unwraps folder picks so `SKILL.md` can be at the bundle root.
|
|
91
|
+
- Registry: cap embedding payload size to avoid model context errors.
|
|
92
|
+
- CLI: ignore legacy `auth.pilothub.com` registry and prefer site discovery.
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
- Web: homepage search now expands into full search mode with live results + highlighted toggle.
|
|
96
|
+
- CLI: sync no longer prompts for changelog; registry auto-generates when blank.
|
|
97
|
+
|
|
98
|
+
## 0.0.3 - 2026-01-04
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
- CLI sync: concurrency flag to limit registry checks.
|
|
102
|
+
- Home: install command switcher (npm/pnpm/bun).
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
- CLI sync: default `--concurrency` is now 4 (was 8).
|
|
106
|
+
- CLI sync: replace boxed notes with plain output for long lists.
|
|
107
|
+
|
|
108
|
+
### Fixed
|
|
109
|
+
- CLI sync: wrap note output to avoid terminal overflow; cap list lengths.
|
|
110
|
+
- CLI sync: label fallback scans as fallback locations.
|
|
111
|
+
- CLI package: bundle schema internally (no external `pilothub-schema` publish).
|
|
112
|
+
- Repo: mark `pilothub-schema` as private to prevent publishing.
|
|
113
|
+
|
|
114
|
+
## 0.0.2 - 2026-01-04
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
- CLI: delete/undelete commands for soft-deleted skills (owner/admin).
|
|
118
|
+
|
|
119
|
+
### Fixed
|
|
120
|
+
- CLI sync: dedupe duplicate slugs across scan roots; skip duplicates to avoid double-publish errors.
|
|
121
|
+
- CLI sync: show parsing progress while hashing local skills.
|
|
122
|
+
- CLI sync: prompt only actionable skills; preselect all by default; list synced separately; condensed synced summary when nothing to sync.
|
|
123
|
+
- CLI sync: cap long status lists to avoid massive terminal boxes.
|
|
124
|
+
- CLI publish/sync: allow empty changelog on updates; registry accepts empty changelog for updates.
|
|
125
|
+
- CLI: use `--cli-version` to avoid conflict with skill `--version` flags.
|
|
126
|
+
- Registry: hide soft-deleted skills from search/skill/download unless restored.
|
|
127
|
+
- Tests: add delete/undelete coverage (unit + e2e).
|
|
128
|
+
|
|
129
|
+
## 0.0.1 - 2026-01-04
|
|
130
|
+
|
|
131
|
+
### Features
|
|
132
|
+
- CLI auth: login/logout/whoami; browser loopback auth; token storage; site/registry discovery; config overrides.
|
|
133
|
+
- CLI workflow: search, install, update (single/all), list, publish, sync (scan workdir + legacy roots), dry-run, version bumping, tags.
|
|
134
|
+
- Registry/API: skills + versions with semver; tags (latest + custom); changelog per version; SKILL.md frontmatter parsing; text-only validation; zip download; hash resolve; stats (downloads/stars/versions/comments).
|
|
135
|
+
- Web app: home (highlighted + latest), search, skill detail (README, versions, tags, stats, files), upload UI, user profiles, stars, settings (profile + API tokens + delete account).
|
|
136
|
+
- Social: stars + comments with moderation hooks; admin console for roles + highlighted curation.
|
|
137
|
+
- Search: semantic/vector search over skill content with limit/approved filters.
|
|
138
|
+
- Security: GitHub OAuth; role-based access (admin/moderator/user); audit logging for admin actions.
|
package/DEPRECATIONS.md
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Peter Steinberger
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# PilotHub
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://github.com/pilotbot/pilothub/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/pilotbot/pilothub/ci.yml?branch=main&style=for-the-badge" alt="CI status"></a>
|
|
5
|
+
<a href="https://discord.gg/pilot"><img src="https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt="Discord"></a>
|
|
6
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="MIT License"></a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
PilotHub is the **public skill registry for Pilotbot**: publish, version, and search text-based agent skills (a `SKILL.md` plus supporting files).
|
|
10
|
+
It’s designed for fast browsing + a CLI-friendly API, with moderation hooks and vector search.
|
|
11
|
+
|
|
12
|
+
onlycrabs.ai is the **SOUL.md registry**: publish and share system lore the same way you publish skills.
|
|
13
|
+
|
|
14
|
+
Live: `https://pilothub.com`
|
|
15
|
+
onlycrabs.ai: `https://onlycrabs.ai`
|
|
16
|
+
|
|
17
|
+
## What you can do
|
|
18
|
+
|
|
19
|
+
- Browse skills + render their `SKILL.md`.
|
|
20
|
+
- Publish new skill versions with changelogs + tags (including `latest`).
|
|
21
|
+
- Browse souls + render their `SOUL.md`.
|
|
22
|
+
- Publish new soul versions with changelogs + tags.
|
|
23
|
+
- Search via embeddings (vector index) instead of brittle keywords.
|
|
24
|
+
- Star + comment; admins/mods can curate and approve skills.
|
|
25
|
+
|
|
26
|
+
## onlycrabs.ai (SOUL.md registry)
|
|
27
|
+
|
|
28
|
+
- Entry point is host-based: `onlycrabs.ai`.
|
|
29
|
+
- On the onlycrabs.ai host, the home page and nav default to souls.
|
|
30
|
+
- On PilotHub, souls live under `/souls`.
|
|
31
|
+
- Soul bundles only accept `SOUL.md` for now (no extra files).
|
|
32
|
+
|
|
33
|
+
## How it works (high level)
|
|
34
|
+
|
|
35
|
+
- Web app: TanStack Start (React, Vite/Nitro).
|
|
36
|
+
- Backend: Convex (DB + file storage + HTTP actions) + Convex Auth (GitHub OAuth).
|
|
37
|
+
- Search: OpenAI embeddings (`text-embedding-3-small`) + Convex vector search.
|
|
38
|
+
- API schema + routes: `packages/schema` (`pilothub-schema`).
|
|
39
|
+
|
|
40
|
+
## Telemetry
|
|
41
|
+
|
|
42
|
+
PilotHub tracks minimal **install telemetry** (to compute install counts) when you run `pilothub sync` while logged in.
|
|
43
|
+
Disable via:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
export PILOTHUB_DISABLE_TELEMETRY=1
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Details: `docs/telemetry.md`.
|
|
50
|
+
|
|
51
|
+
## Repo layout
|
|
52
|
+
|
|
53
|
+
- `src/` — TanStack Start app (routes, components, styles).
|
|
54
|
+
- `convex/` — schema + queries/mutations/actions + HTTP API routes.
|
|
55
|
+
- `packages/schema/` — shared API types/routes for the CLI and app.
|
|
56
|
+
- `docs/spec.md` — product + implementation spec (good first read).
|
|
57
|
+
|
|
58
|
+
## Local dev
|
|
59
|
+
|
|
60
|
+
Prereqs: Bun + Convex CLI.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
bun install
|
|
64
|
+
cp .env.local.example .env.local
|
|
65
|
+
|
|
66
|
+
# terminal A: web app
|
|
67
|
+
bun run dev
|
|
68
|
+
|
|
69
|
+
# terminal B: Convex dev deployment
|
|
70
|
+
bunx convex dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Auth (GitHub OAuth) setup
|
|
74
|
+
|
|
75
|
+
Create a GitHub OAuth App, set `AUTH_GITHUB_ID` / `AUTH_GITHUB_SECRET`, then:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
bunx auth --deployment-name <deployment> --web-server-url http://localhost:3000
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This writes `JWT_PRIVATE_KEY` + `JWKS` to the deployment and prints values for your local `.env.local`.
|
|
82
|
+
|
|
83
|
+
## Environment
|
|
84
|
+
|
|
85
|
+
- `VITE_CONVEX_URL`: Convex deployment URL (`https://<deployment>.convex.cloud`).
|
|
86
|
+
- `VITE_CONVEX_SITE_URL`: Convex site URL (`https://<deployment>.convex.site`).
|
|
87
|
+
- `VITE_SOULHUB_SITE_URL`: onlycrabs.ai site URL (`https://onlycrabs.ai`).
|
|
88
|
+
- `VITE_SOULHUB_HOST`: onlycrabs.ai host match (`onlycrabs.ai`).
|
|
89
|
+
- `VITE_SITE_MODE`: Optional override (`skills` or `souls`) for SSR builds.
|
|
90
|
+
- `CONVEX_SITE_URL`: same as `VITE_CONVEX_SITE_URL` (auth + cookies).
|
|
91
|
+
- `SITE_URL`: App URL (local: `http://localhost:3000`).
|
|
92
|
+
- `AUTH_GITHUB_ID` / `AUTH_GITHUB_SECRET`: GitHub OAuth App.
|
|
93
|
+
- `JWT_PRIVATE_KEY` / `JWKS`: Convex Auth keys.
|
|
94
|
+
- `OPENAI_API_KEY`: embeddings for search + indexing.
|
|
95
|
+
|
|
96
|
+
## Nix plugins (nixmode skills)
|
|
97
|
+
|
|
98
|
+
PilotHub can store a nix-pilotbot plugin pointer in SKILL frontmatter so the registry knows which
|
|
99
|
+
Nix package bundle to install. A nix plugin is different from a regular skill pack: it bundles the
|
|
100
|
+
skill pack, the CLI binary, and its config flags/requirements together.
|
|
101
|
+
|
|
102
|
+
Add this to `SKILL.md`:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
---
|
|
106
|
+
name: peekaboo
|
|
107
|
+
description: Capture and automate macOS UI with the Peekaboo CLI.
|
|
108
|
+
metadata: {"pilotbot":{"nix":{"plugin":"github:pilotbot/nix-steipete-tools?dir=tools/peekaboo","systems":["aarch64-darwin"]}}}
|
|
109
|
+
---
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Install via nix-pilotbot:
|
|
113
|
+
|
|
114
|
+
```nix
|
|
115
|
+
programs.pilotbot.plugins = [
|
|
116
|
+
{ source = "github:pilotbot/nix-steipete-tools?dir=tools/peekaboo"; }
|
|
117
|
+
];
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
You can also declare config requirements + an example snippet:
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
---
|
|
124
|
+
name: padel
|
|
125
|
+
description: Check padel court availability and manage bookings via Playtomic.
|
|
126
|
+
metadata: {"pilotbot":{"config":{"requiredEnv":["PADEL_AUTH_FILE"],"stateDirs":[".config/padel"],"example":"config = { env = { PADEL_AUTH_FILE = \\\"/run/agenix/padel-auth\\\"; }; };"}}}
|
|
127
|
+
---
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
To show CLI help (recommended for nix plugins), include the `cli --help` output:
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
---
|
|
134
|
+
name: padel
|
|
135
|
+
description: Check padel court availability and manage bookings via Playtomic.
|
|
136
|
+
metadata: {"pilotbot":{"cliHelp":"padel --help\\nUsage: padel [command]\\n"}}
|
|
137
|
+
---
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`metadata.pilotbot` is preferred, but `metadata.pilotbot` is accepted as an alias for compatibility.
|
|
141
|
+
|
|
142
|
+
## Scripts
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
bun run dev
|
|
146
|
+
bun run build
|
|
147
|
+
bun run test
|
|
148
|
+
bun run coverage
|
|
149
|
+
bun run lint
|
|
150
|
+
```
|
package/biome.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
|
|
3
|
+
"files": {
|
|
4
|
+
"includes": [
|
|
5
|
+
"**",
|
|
6
|
+
"!**/.cta.json",
|
|
7
|
+
"!**/.vscode",
|
|
8
|
+
"!**/node_modules",
|
|
9
|
+
"!**/dist",
|
|
10
|
+
"!**/.output",
|
|
11
|
+
"!**/coverage",
|
|
12
|
+
"!**/convex/_generated",
|
|
13
|
+
"!**/test-results",
|
|
14
|
+
"!**/src/routeTree.gen.ts",
|
|
15
|
+
"!**/.tanstack",
|
|
16
|
+
"!**/public",
|
|
17
|
+
"!**/.devenv",
|
|
18
|
+
"!**/.devenv"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"assist": { "actions": { "source": { "organizeImports": "on" } } },
|
|
22
|
+
"formatter": {
|
|
23
|
+
"enabled": true,
|
|
24
|
+
"indentStyle": "space",
|
|
25
|
+
"indentWidth": 2,
|
|
26
|
+
"lineWidth": 100
|
|
27
|
+
},
|
|
28
|
+
"linter": {
|
|
29
|
+
"enabled": true,
|
|
30
|
+
"rules": {
|
|
31
|
+
"recommended": true
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"javascript": {
|
|
35
|
+
"formatter": {
|
|
36
|
+
"quoteStyle": "single",
|
|
37
|
+
"semicolons": "asNeeded",
|
|
38
|
+
"trailingCommas": "all"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* Generated `api` utility.
|
|
4
|
+
*
|
|
5
|
+
* THIS CODE IS AUTOMATICALLY GENERATED.
|
|
6
|
+
*
|
|
7
|
+
* To regenerate, run `npx convex dev`.
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type * as auth from "../auth.js";
|
|
12
|
+
import type * as comments from "../comments.js";
|
|
13
|
+
import type * as crons from "../crons.js";
|
|
14
|
+
import type * as devSeed from "../devSeed.js";
|
|
15
|
+
import type * as devSeedExtra from "../devSeedExtra.js";
|
|
16
|
+
import type * as downloads from "../downloads.js";
|
|
17
|
+
import type * as githubBackups from "../githubBackups.js";
|
|
18
|
+
import type * as githubBackupsNode from "../githubBackupsNode.js";
|
|
19
|
+
import type * as githubImport from "../githubImport.js";
|
|
20
|
+
import type * as githubSoulBackups from "../githubSoulBackups.js";
|
|
21
|
+
import type * as githubSoulBackupsNode from "../githubSoulBackupsNode.js";
|
|
22
|
+
import type * as http from "../http.js";
|
|
23
|
+
import type * as httpApi from "../httpApi.js";
|
|
24
|
+
import type * as httpApiV1 from "../httpApiV1.js";
|
|
25
|
+
import type * as leaderboards from "../leaderboards.js";
|
|
26
|
+
import type * as lib_access from "../lib/access.js";
|
|
27
|
+
import type * as lib_apiTokenAuth from "../lib/apiTokenAuth.js";
|
|
28
|
+
import type * as lib_badges from "../lib/badges.js";
|
|
29
|
+
import type * as lib_changelog from "../lib/changelog.js";
|
|
30
|
+
import type * as lib_embeddings from "../lib/embeddings.js";
|
|
31
|
+
import type * as lib_githubBackup from "../lib/githubBackup.js";
|
|
32
|
+
import type * as lib_githubImport from "../lib/githubImport.js";
|
|
33
|
+
import type * as lib_githubSoulBackup from "../lib/githubSoulBackup.js";
|
|
34
|
+
import type * as lib_leaderboards from "../lib/leaderboards.js";
|
|
35
|
+
import type * as lib_moderation from "../lib/moderation.js";
|
|
36
|
+
import type * as lib_public from "../lib/public.js";
|
|
37
|
+
import type * as lib_searchText from "../lib/searchText.js";
|
|
38
|
+
import type * as lib_skillBackfill from "../lib/skillBackfill.js";
|
|
39
|
+
import type * as lib_skillPublish from "../lib/skillPublish.js";
|
|
40
|
+
import type * as lib_skillStats from "../lib/skillStats.js";
|
|
41
|
+
import type * as lib_skills from "../lib/skills.js";
|
|
42
|
+
import type * as lib_soulChangelog from "../lib/soulChangelog.js";
|
|
43
|
+
import type * as lib_soulPublish from "../lib/soulPublish.js";
|
|
44
|
+
import type * as lib_tokens from "../lib/tokens.js";
|
|
45
|
+
import type * as lib_webhooks from "../lib/webhooks.js";
|
|
46
|
+
import type * as maintenance from "../maintenance.js";
|
|
47
|
+
import type * as rateLimits from "../rateLimits.js";
|
|
48
|
+
import type * as search from "../search.js";
|
|
49
|
+
import type * as seed from "../seed.js";
|
|
50
|
+
import type * as seedSouls from "../seedSouls.js";
|
|
51
|
+
import type * as skillStatEvents from "../skillStatEvents.js";
|
|
52
|
+
import type * as skills from "../skills.js";
|
|
53
|
+
import type * as soulComments from "../soulComments.js";
|
|
54
|
+
import type * as soulDownloads from "../soulDownloads.js";
|
|
55
|
+
import type * as soulStars from "../soulStars.js";
|
|
56
|
+
import type * as souls from "../souls.js";
|
|
57
|
+
import type * as stars from "../stars.js";
|
|
58
|
+
import type * as statsMaintenance from "../statsMaintenance.js";
|
|
59
|
+
import type * as telemetry from "../telemetry.js";
|
|
60
|
+
import type * as tokens from "../tokens.js";
|
|
61
|
+
import type * as uploads from "../uploads.js";
|
|
62
|
+
import type * as users from "../users.js";
|
|
63
|
+
import type * as webhooks from "../webhooks.js";
|
|
64
|
+
|
|
65
|
+
import type {
|
|
66
|
+
ApiFromModules,
|
|
67
|
+
FilterApi,
|
|
68
|
+
FunctionReference,
|
|
69
|
+
} from "convex/server";
|
|
70
|
+
|
|
71
|
+
declare const fullApi: ApiFromModules<{
|
|
72
|
+
auth: typeof auth;
|
|
73
|
+
comments: typeof comments;
|
|
74
|
+
crons: typeof crons;
|
|
75
|
+
devSeed: typeof devSeed;
|
|
76
|
+
devSeedExtra: typeof devSeedExtra;
|
|
77
|
+
downloads: typeof downloads;
|
|
78
|
+
githubBackups: typeof githubBackups;
|
|
79
|
+
githubBackupsNode: typeof githubBackupsNode;
|
|
80
|
+
githubImport: typeof githubImport;
|
|
81
|
+
githubSoulBackups: typeof githubSoulBackups;
|
|
82
|
+
githubSoulBackupsNode: typeof githubSoulBackupsNode;
|
|
83
|
+
http: typeof http;
|
|
84
|
+
httpApi: typeof httpApi;
|
|
85
|
+
httpApiV1: typeof httpApiV1;
|
|
86
|
+
leaderboards: typeof leaderboards;
|
|
87
|
+
"lib/access": typeof lib_access;
|
|
88
|
+
"lib/apiTokenAuth": typeof lib_apiTokenAuth;
|
|
89
|
+
"lib/badges": typeof lib_badges;
|
|
90
|
+
"lib/changelog": typeof lib_changelog;
|
|
91
|
+
"lib/embeddings": typeof lib_embeddings;
|
|
92
|
+
"lib/githubBackup": typeof lib_githubBackup;
|
|
93
|
+
"lib/githubImport": typeof lib_githubImport;
|
|
94
|
+
"lib/githubSoulBackup": typeof lib_githubSoulBackup;
|
|
95
|
+
"lib/leaderboards": typeof lib_leaderboards;
|
|
96
|
+
"lib/moderation": typeof lib_moderation;
|
|
97
|
+
"lib/public": typeof lib_public;
|
|
98
|
+
"lib/searchText": typeof lib_searchText;
|
|
99
|
+
"lib/skillBackfill": typeof lib_skillBackfill;
|
|
100
|
+
"lib/skillPublish": typeof lib_skillPublish;
|
|
101
|
+
"lib/skillStats": typeof lib_skillStats;
|
|
102
|
+
"lib/skills": typeof lib_skills;
|
|
103
|
+
"lib/soulChangelog": typeof lib_soulChangelog;
|
|
104
|
+
"lib/soulPublish": typeof lib_soulPublish;
|
|
105
|
+
"lib/tokens": typeof lib_tokens;
|
|
106
|
+
"lib/webhooks": typeof lib_webhooks;
|
|
107
|
+
maintenance: typeof maintenance;
|
|
108
|
+
rateLimits: typeof rateLimits;
|
|
109
|
+
search: typeof search;
|
|
110
|
+
seed: typeof seed;
|
|
111
|
+
seedSouls: typeof seedSouls;
|
|
112
|
+
skillStatEvents: typeof skillStatEvents;
|
|
113
|
+
skills: typeof skills;
|
|
114
|
+
soulComments: typeof soulComments;
|
|
115
|
+
soulDownloads: typeof soulDownloads;
|
|
116
|
+
soulStars: typeof soulStars;
|
|
117
|
+
souls: typeof souls;
|
|
118
|
+
stars: typeof stars;
|
|
119
|
+
statsMaintenance: typeof statsMaintenance;
|
|
120
|
+
telemetry: typeof telemetry;
|
|
121
|
+
tokens: typeof tokens;
|
|
122
|
+
uploads: typeof uploads;
|
|
123
|
+
users: typeof users;
|
|
124
|
+
webhooks: typeof webhooks;
|
|
125
|
+
}>;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* A utility for referencing Convex functions in your app's public API.
|
|
129
|
+
*
|
|
130
|
+
* Usage:
|
|
131
|
+
* ```js
|
|
132
|
+
* const myFunctionReference = api.myModule.myFunction;
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare const api: FilterApi<
|
|
136
|
+
typeof fullApi,
|
|
137
|
+
FunctionReference<any, "public">
|
|
138
|
+
>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* A utility for referencing Convex functions in your app's internal API.
|
|
142
|
+
*
|
|
143
|
+
* Usage:
|
|
144
|
+
* ```js
|
|
145
|
+
* const myFunctionReference = internal.myModule.myFunction;
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export declare const internal: FilterApi<
|
|
149
|
+
typeof fullApi,
|
|
150
|
+
FunctionReference<any, "internal">
|
|
151
|
+
>;
|
|
152
|
+
|
|
153
|
+
export declare const components: {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* Generated `api` utility.
|
|
4
|
+
*
|
|
5
|
+
* THIS CODE IS AUTOMATICALLY GENERATED.
|
|
6
|
+
*
|
|
7
|
+
* To regenerate, run `npx convex dev`.
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { anyApi, componentsGeneric } from "convex/server";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A utility for referencing Convex functions in your app's API.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* ```js
|
|
18
|
+
* const myFunctionReference = api.myModule.myFunction;
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export const api = anyApi;
|
|
22
|
+
export const internal = anyApi;
|
|
23
|
+
export const components = componentsGeneric();
|