logicsrc/plugins/agentgit/src/manifest.ts
Anthony Ettinger bf046ae280 Add AgentGit M1: agent-native git layer over a Forgejo backend
AgentGit is a thin, DID-gated source-collaboration layer over a backend
forge (default Forgejo at git.profullstack.com, BBS-members-only) — not a
new git host. M1 implements the contract and engines:

- forge/adapter.ts: ForgeAdapter interface (only forge-specific surface)
- forge/forgejo.ts: ForgejoAdapter over Forgejo/Gitea REST v1 (injectable
  fetch, typed errors), incl. ensureUser for member provisioning
- access.ts: gateAccess DID membership gate (owner/role/visibility)
- merge-policy.ts: evaluateMergePolicy pure engine (reviews, reputation
  floor, checks, escrow, merge method, agent-merge toggle)
- service.ts: AgentGitService ties gate + policy to the adapter; refuses
  policy-failing merges; provisionMember hook for AgentBBS
- schemas: logicsrc-repo + logicsrc-pull-request, registered in
  @logicsrc/validators with fixtures
- docs/agentgit.md spec; plugin wired into root build (default/disabled)

27 vitest tests pass; full monorepo build green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 15:15:06 +00:00

31 lines
748 B
TypeScript

import type { PluginManifest } from "@logicsrc/plugin-core";
export const agentGitManifest: PluginManifest = {
id: "agentgit",
name: "AgentGit",
version: "0.1.0",
type: ["scm", "collaboration", "review"],
default: false,
capabilities: [
"repo.create",
"repo.list",
"repo.get",
"repo.archive",
"branch.create",
"branch.list",
"pr.open",
"pr.list",
"pr.get",
"pr.review",
"pr.merge",
"pr.close",
"merge.evaluate",
"access.gate",
"webhook.push",
"webhook.pr_status",
"reputation.merge_event",
"audit.log"
],
commands: ["repo", "pr", "clone", "review", "merge"],
env: ["AGENTGIT_API_URL", "AGENTGIT_FORGE_URL", "AGENTGIT_API_KEY", "AGENTGIT_WEBHOOK_SECRET"]
};