The standalone half of the Gitea layer; orchestrator wiring follows once the executor loop lands, to avoid colliding with it in control.py. - gitea.py: GiteaClient over httpx — open PRs, list and post issue comments, close PRs. find_pull_request is the A3 external-truth query that makes opening a PR idempotent across a crash, and it checks closed PRs too, since a crash after opening must not be answered with "nothing is open, so open another" - pull_request_reconciler: an unreachable Gitea returns None rather than a guess, so the agent gates to the human instead of risking a duplicate side effect - git.py: branch, commit, push for the workspace. The token is passed per-invocation rather than stored as a remote, so it never lands in .git/config, and anything raised is scrubbed of it - commit_all returns None when there is nothing to commit: an empty milestone is a fact to report, not an error - Live test does the real round trip against the sandbox repo and cleans up after itself Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
1.5 KiB
Bash
34 lines
1.5 KiB
Bash
# Copy to .env (chmod 600). Real environment variables win over this file.
|
|
# .env is gitignored; never commit real values.
|
|
|
|
# --- LLM access (A5): the LiteLLM proxy is the single LLM destination ---
|
|
NISSE_LLM_BASE_URL=http://litellm.example:4000
|
|
NISSE_LLM_TOKEN=sk-your-litellm-virtual-key
|
|
|
|
# --- Role mapping (A11): roles resolve to concrete model strings ---
|
|
NISSE_ROLE_EXECUTOR=anthropic/claude-haiku-4-5-20251001
|
|
NISSE_ROLE_PLANNER=anthropic/claude-opus-5
|
|
NISSE_ROLE_DELEGATE=anthropic/claude-opus-5
|
|
NISSE_ROLE_CONSULTANT=anthropic/claude-opus-5
|
|
|
|
# Opt-in for the live planning test: a model the virtual key can reach that
|
|
# holds the tool-call contract. Planning escalates unconditionally (A12), and
|
|
# small local models do not hold the contract reliably — llama3.2 returns
|
|
# truncated tool arguments, Haiku-class and up are solid.
|
|
NISSE_LIVE_PLANNER_MODEL=claude-haiku-4-5
|
|
|
|
# --- Matrix transport (A1), used by nisse-dev's MatrixTransport ---
|
|
NISSE_MATRIX_HOMESERVER=https://matrix.example
|
|
NISSE_MATRIX_USER_ID=@nisse-dev:example
|
|
NISSE_MATRIX_TOKEN=syt_your_matrix_access_token
|
|
NISSE_MATRIX_ROOM_ID=!roomid:example
|
|
# Dedicated room for the live integration test; never the production room.
|
|
NISSE_MATRIX_TEST_ROOM_ID=!testroomid:example
|
|
NISSE_MATRIX_OPERATORS=@you:example
|
|
|
|
# --- Gitea (B2): service account for branches, PRs, and comment intake ---
|
|
NISSE_GITEA_URL=https://gitea.example
|
|
NISSE_GITEA_TOKEN=your-scoped-service-account-token
|
|
# Sandbox repo for live tests; never the real project repo.
|
|
NISSE_GITEA_TEST_REPO=owner/sandbox-repo
|