A vertical slice to bootstrap the product loop on the canonical zopu-code repo. Primitives (packages/primitives, all tested + lint/type clean): - GitRemoteRuntime: Gitea REST client (createIssue, createBranch, createPullRequest, listIssues, getIssue) as an Effect context service with a fetch-backed transport. Live-verified against puter/zopu-code. - GitLocalRuntime: clone, addWorktree, commit, push, currentBranch, setRemoteUrl over a pluggable Shell (host subprocess now, AgentOS VM exec later). Tested against real temp git repos. - agent-os: Codex support via @agentos-software/codex-cli — codexSoftware bundle (codex+git), makeCodexAgentOsConfig(), codexSessionEnv() for the OpenAI base URL/key. Env: - GITEA_URL/GITEA_TOKEN wired into convex.ts and convex.config.ts. - .env.example documents the self-hosted git section. Agents (packages/agents): - zopu-dev: development agent that creates issues on the canonical repo and starts autonomous work runs. git-remote tools (create/list/branch/PR) wired to GitRemoteRuntime; start_workflow tool enqueues a work run. - flue run zopu-dev verified live (lists/creates issues on real Gitea). Backend (packages/backend): - workflows.startIssueWork mutation: fetches a Gitea issue server-side and admits a queued work run. The Codex VM spawn body is the next step.
17 lines
408 B
TypeScript
17 lines
408 B
TypeScript
import betterAuth from "@convex-dev/better-auth/convex.config";
|
|
import { defineApp } from "convex/server";
|
|
import { v } from "convex/values";
|
|
|
|
const app = defineApp({
|
|
env: {
|
|
NATIVE_APP_URL: v.optional(v.string()),
|
|
SITE_URL: v.string(),
|
|
FLUE_DB_TOKEN: v.string(),
|
|
GITEA_URL: v.optional(v.string()),
|
|
GITEA_TOKEN: v.optional(v.string()),
|
|
},
|
|
});
|
|
app.use(betterAuth);
|
|
|
|
export default app;
|