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
49 lines
1.5 KiB
JSON
49 lines
1.5 KiB
JSON
{
|
|
"name": "@code/primitives",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./agent-os": "./src/agent-os.ts",
|
|
"./execution-runtime": "./src/execution-runtime.ts",
|
|
"./git": "./src/git.ts",
|
|
"./git-provider": "./src/git-provider.ts",
|
|
"./git-provisioning": "./src/git-provisioning.ts",
|
|
"./git-webhook": "./src/git-webhook.ts",
|
|
"./git-local-runtime": "./src/git-local-runtime.ts",
|
|
"./git-remote-runtime": "./src/git-remote-runtime.ts",
|
|
"./project": "./src/project.ts",
|
|
"./project-issue": "./src/project-issue.ts",
|
|
"./project-work": "./src/project-work.ts",
|
|
"./project-workspace": "./src/project-workspace.ts",
|
|
"./signal": "./src/signal.ts",
|
|
"./smoke": "./src/smoke.ts",
|
|
"./work": "./src/work.ts",
|
|
"./work-artifact": "./src/work-artifact.ts",
|
|
"./work-definition": "./src/work-definition.ts",
|
|
"./work-design": "./src/work-design.ts",
|
|
"./work-lifecycle": "./src/work-lifecycle.ts",
|
|
"./resolver": "./src/resolver.ts",
|
|
"./harness-runtime": "./src/harness-runtime.ts",
|
|
"./host-repository": "./src/host-repository.ts"
|
|
},
|
|
"scripts": {
|
|
"check-types": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"dependencies": {
|
|
"@agentos-software/git": "0.3.3",
|
|
"@agentos-software/pi": "0.2.7",
|
|
"@rivet-dev/agentos": "0.2.14",
|
|
"effect": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@code/config": "workspace:*",
|
|
"@types/node": "catalog:",
|
|
"typescript": "catalog:",
|
|
"vitest": "catalog:"
|
|
}
|
|
}
|