LXC deployment: live config for agentd-01, oregon rollback config, win10 helpers and board protocol in the repo
- config/agentd.yaml is now the agentd-01 live config (state /var/lib/plane-agentd, logs /var/log/plane-agentd); config/agentd.oregon.yaml keeps the oregon dispatcher settings for rollback (cron/agentd-tick.sh uses it). - cron/agentd-tick-lxc.sh: the LXC cron entry. - tools/win10/: win10-ps.sh / win10-put.sh (vault client dir via AGENT_ACCESS_HOME); relative helpers_dir resolves against the repo, default tools/win10. - config/protocols/gwent-board-protocol.md: copy of gwent/design/board-protocol.md used in prompts. - agentd.log_dir (default state_dir). - smoke --watch: create the item and wait for the scheduled dispatcher instead of ticking locally.
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# plane-agentd dispatcher configuration for oregon -- the ROLLBACK target since the dispatcher moved to the LXC
|
||||
# agentd-01 (PAD-11; live config there: config/agentd.yaml). Used by cron/agentd-tick.sh (not in oregon's crontab
|
||||
# while the LXC dispatches). No secrets: token_key values are Vault key names.
|
||||
plane: {base_url: https://plane.kappiee.com, workspace: kappiee}
|
||||
vault: {client: ~/.local/share/server-access-client/agent-access.py, config: https://nas.tail9531b.ts.net:8443/identity/agent.json}
|
||||
|
||||
agentd:
|
||||
state_dir: ~/.gwent-board/agentd # JSON state, agentd.log, heartbeat.json, local run dirs (runs/)
|
||||
helpers_dir: tools/win10 # win10-ps.sh / win10-put.sh (Windows terminals only); relative = repo
|
||||
interval: 120
|
||||
max_rounds_per_thread: 8
|
||||
comment_max_chars: 6000
|
||||
cli_terminal: oregon
|
||||
|
||||
terminals:
|
||||
win10:
|
||||
transport: warpgate-ssh
|
||||
target: win10
|
||||
os: windows
|
||||
launch: schtasks
|
||||
repo: 'C:\Users\Administrator\Documents\GwentAssistantProject\gwent'
|
||||
run_root: 'C:\Users\Administrator\Documents\GwentAssistantProject\gwent\runtime\agentd'
|
||||
bins: {codex: 'C:\Users\Administrator\AppData\Local\Programs\OpenAI\Codex\bin\codex.exe'}
|
||||
plane_user: window10
|
||||
token_key: PLANE_WINDOW10_API_TOKEN
|
||||
concurrency: 1
|
||||
busy_processes: [codex] # do not start while a codex.exe agentd did not start is running
|
||||
capabilities: [android, game]
|
||||
executors: [codex]
|
||||
oregon:
|
||||
# remote even though agentd runs on oregon today: the dispatcher is moving to an LXC without agent CLIs
|
||||
# (design §9), so this goes through Warpgate like any other host. `transport: local` + `launch: subprocess`
|
||||
# still works for a dispatcher co-located with its executors.
|
||||
transport: warpgate-ssh
|
||||
target: oregon # agent-access.py target name
|
||||
os: linux
|
||||
launch: nohup
|
||||
repo: /home/ubuntu/Documents/wjj/project/gwent
|
||||
run_root: /home/ubuntu/.gwent-board/agentd-runs # absolute: the remote shell does not expand ~ inside quotes
|
||||
plane_user: oregon
|
||||
token_key: PLANE_OREGON_API_TOKEN
|
||||
concurrency: 1 # one shared worktree: no parallel edits
|
||||
bins: {claude: /home/ubuntu/.local/bin/claude} # the SSH non-login shell has the system PATH only; no codex on oregon
|
||||
executors: [claude-code]
|
||||
|
||||
executors:
|
||||
codex:
|
||||
adapter: codex
|
||||
run: "codex exec --json -C '{repo}' -s workspace-write -m {model} -c 'model_reasoning_effort=\"{effort}\"' {tier} -o '{out}' -"
|
||||
# `exec resume` takes no -C/-s: the runner already cd's into the repo, the sandbox goes in as a -c override
|
||||
resume: "codex exec resume {thread} --json -m {model} -c 'model_reasoning_effort=\"{effort}\"' -c 'sandbox_mode=\"workspace-write\"' {tier} -o '{out}' -"
|
||||
tier_arg: "-c 'service_tier=\"{tier}\"'"
|
||||
tier_defaults: {gpt-6.1-sol: fast} # tier when no label sets one (`tier:<x>`, `tier:none` = no tier)
|
||||
thread_from: events.jsonl:thread.started.thread_id
|
||||
last_message: '{out}'
|
||||
models: [gpt-6.1-sol, gpt-6-astra]
|
||||
default_effort: medium
|
||||
claude-code:
|
||||
adapter: claude-code
|
||||
run: "claude -p --model {model} --output-format json --permission-mode {perm}"
|
||||
resume: "claude -p --resume {thread} --model {model} --output-format json --permission-mode {perm}"
|
||||
permission_mode: acceptEdits
|
||||
thread_from: json:session_id
|
||||
last_message: json:result
|
||||
models: [sonnet, opus, haiku]
|
||||
|
||||
projects:
|
||||
GWENT:
|
||||
id: 79cb5a60-aa4f-4138-9864-1dd70426e665
|
||||
key_prefix: GW
|
||||
states: {backlog: Backlog, todo: Todo, running: In Progress, waiting: Waiting, review: Review, done: Done}
|
||||
reviewer: oregon
|
||||
answerer: oregon
|
||||
protocol_file: config/protocols/gwent-board-protocol.md # relative = repo; refresh from gwent/design/board-protocol.md
|
||||
routing:
|
||||
by_assignee: {window10: win10, oregon: oregon}
|
||||
by_label:
|
||||
'model:astra': {model: gpt-6-astra, effort: high}
|
||||
'model:sol': {model: gpt-6.1-sol, tier: fast}
|
||||
'effort:high': {effort: high}
|
||||
'needs-game': {serialize_group: game}
|
||||
default_executor: {win10: codex, oregon: claude-code}
|
||||
retry:
|
||||
transient_max: 3
|
||||
backoff_minutes: [2, 5, 10]
|
||||
timeout_hours: 4
|
||||
max_rounds_per_thread: 8
|
||||
max_progress_rounds: 12
|
||||
# notify (ntfy) is phase 3: left out on purpose
|
||||
Reference in New Issue
Block a user