Effect primitives: - git-provider: GitProvider, connection states, normalized errors, URL normalization, host compatibility, credential freshness window - git-provisioning: validated Puter commands, migration states, idempotency keys, safe replacement rules, owner-safe guards - git-webhook: supported events, signature verification, delivery states - host-repository: provider-neutral credential-safe clone via GIT_ASKPASS Normalized Convex schema: - gitProviderAccounts, refined gitConnections, gitProviderOrganizations, gitRepositories, gitMigrations, gitWebhookDeliveries - projects: gitRepositoryId + instructions fields - Schema fields optional for backward compatibility, with backfill cron Backend: - Connection health: verify action, hourly reconciliation (covers stale active + reauth-required + undefined-state legacy connections) - Puter provisioning: createPuterUser/Organization/Repository with owner binding, startGithubMigration (durable via scheduler), getMigration - Org ownership: explicit member add with admin role + verification - Webhook HTTP actions: HMAC verification, delivery persistence with idempotency, repository resolution, byte-length payload limit - Automatic Puter webhook creation after repo creation/migration with fail-loud state tracking - Repository sync after connection (Gitea + GitHub) - AgentOS execution resolves gitRepositoryId for real clone URL - Credential gating: state + freshness checks before execution and project creation - listForOrganization for cross-project Work filtering Frontend: - /projects onboarding page with GitHub OAuth (linkSocial) and Puter PAT - Zero-project redirect, repository selection, context editor - Provider-aware settings panel (no serverUrl for Puter) - Project selection via ?project= query param - GitHub scopes: repo + read:org Agent runtime: - Clones user repository with GIT_ASKPASS credential helper (no token in URL, args, or git config), provider-aware username - Removed fixed Zopu source path and .env copy
98 lines
3.5 KiB
JSON
98 lines
3.5 KiB
JSON
{
|
|
"name": "code",
|
|
"private": true,
|
|
"workspaces": {
|
|
"packages": [
|
|
"apps/web",
|
|
"packages/agents",
|
|
"packages/auth",
|
|
"packages/backend",
|
|
"packages/config",
|
|
"packages/env",
|
|
"packages/primitives",
|
|
"packages/ui"
|
|
],
|
|
"catalog": {
|
|
"@rivet-dev/agentos": "0.2.14",
|
|
"@rivet-dev/agentos-core": "0.2.14",
|
|
"@effect/platform-bun": "4.0.0-beta.99",
|
|
"dotenv": "17.4.2",
|
|
"zod": "4.4.3",
|
|
"lucide-react": "1.27.0",
|
|
"next-themes": "0.4.6",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"sonner": "2.0.7",
|
|
"convex": "1.42.3",
|
|
"better-auth": "1.6.15",
|
|
"@convex-dev/better-auth": "0.12.5",
|
|
"@tanstack/react-form": "1.33.2",
|
|
"@types/react-dom": "19.2.3",
|
|
"tailwindcss": "4.3.3",
|
|
"tailwind-merge": "3.6.0",
|
|
"@better-auth/expo": "1.6.15",
|
|
"effect": "4.0.0-beta.99",
|
|
"typescript": "7.0.2",
|
|
"@types/bun": "1.3.14",
|
|
"heroui-native": "1.0.6",
|
|
"vite": "8.1.5",
|
|
"vitest": "4.1.10",
|
|
"convex-test": "0.0.54",
|
|
"react-native": "0.86.0",
|
|
"@types/react": "19.2.17",
|
|
"@types/node": "22.20.1",
|
|
"hono": "4.12.32",
|
|
"valibot": "1.4.2",
|
|
"streamdown": "2.5.0",
|
|
"@tailwindcss/postcss": "4.3.3",
|
|
"@tailwindcss/vite": "4.3.3"
|
|
}
|
|
},
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vp run -r dev",
|
|
"build": "vp run -r build",
|
|
"check-types": "vp run -r check-types",
|
|
"check": "ultracite check package.json vite.config.ts apps/web/package.json apps/web/src/root.tsx apps/web/src/index.css apps/web/src/components/chat apps/web/src/components/workspace apps/web/src/hooks/chat apps/web/src/hooks/workspace apps/web/src/lib/chat apps/web/src/lib/workspace apps/web/src/routes.ts apps/web/src/routes/app/dashboard/page.tsx apps/web/src/routes/app/workspace/page.tsx packages/agents/package.json packages/agents/src/agents/zopu.ts packages/agents/src/app.ts packages/agents/src/auth.ts packages/agents/src/tools/slice-one.ts packages/backend/package.json packages/backend/convex/conversationMessages.ts packages/backend/convex/conversationMessages.test.ts packages/backend/convex/fluePersistence.test.ts packages/backend/convex/projects.ts",
|
|
"lint": "oxlint --disable-nested-config",
|
|
"format": "vp fmt",
|
|
"staged": "vp staged",
|
|
"hooks:setup": "vp config",
|
|
"dev:web": "vp run --filter web dev",
|
|
"dev:agents": "vp run --filter @code/agents dev",
|
|
"dev:tailscale:web": "vp run --filter web dev:tailscale",
|
|
"dev:tailscale:agents": "vp run --filter @code/agents dev:tailscale",
|
|
"dev:server": "vp run --filter @code/backend dev",
|
|
"dev:setup": "vp run --filter @code/backend dev:setup",
|
|
"build:agents": "vp run --filter @code/agents build",
|
|
"docs:update": "node scripts/update-docs.ts",
|
|
"subtree": "node scripts/subtree.ts",
|
|
"fix": "ultracite fix"
|
|
},
|
|
"devDependencies": {
|
|
"@code/backend": "workspace:*",
|
|
"@code/config": "workspace:*",
|
|
"@code/env": "workspace:*",
|
|
"@code/primitives": "workspace:*",
|
|
"@flue/sdk": "1.0.0-beta.9",
|
|
"@types/bun": "catalog:",
|
|
"@types/node": "catalog:",
|
|
"convex": "catalog:",
|
|
"convex-test": "catalog:",
|
|
"effect": "catalog:",
|
|
"oxfmt": "0.61.0",
|
|
"oxlint": "1.76.0",
|
|
"rolldown": "1.1.4",
|
|
"typescript": "catalog:",
|
|
"ultracite": "7.9.3",
|
|
"vite-plus": "0.2.2",
|
|
"vitest": "catalog:"
|
|
},
|
|
"overrides": {
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"vite": "npm:@voidzero-dev/vite-plus-core@0.2.2"
|
|
},
|
|
"packageManager": "pnpm@11.17.0"
|
|
}
|