kitchen: README + MISSIONS/engine-c keep-drop notes

This commit is contained in:
Hernâni Marques 2026-09-17 21:48:48 +02:00
parent 1d351918da
commit 575d7d29b8
No known key found for this signature in database
130 changed files with 9817 additions and 1 deletions

View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
export PATH="${HOME}/.local/bin:/usr/local/bin:/usr/bin:/bin:${PATH:-}"
export LLM_CONFIGS=/home/vx/src/llm-configs
export OPENCLAW_MODEL=ollama/qwen3:14b
export OPENCLAW_TIMEOUT=900
export AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
cd /home/vx/src/openkknd2-am-coder
exec /home/vx/agent-coder -s ok2meta-r6-qwen314 -A --max-turns 8 --iref 21-always-agent-logs.md RESUME:\ continue\ from\ AGENT_LOG.md\ and\ STATUS.md\ in\ this\ workdir.\ Do\ not\ re-ask.\ Emit\ ##\ AUTONOMOUS_STOP\ only\ when\ truly\ blocked.

View file

@ -0,0 +1,144 @@
# am-meta log
- workdir: `/home/vx/src/openkknd2-am-coder`
- created: 2026-07-22T05:21:20Z
- **2026-07-22T05:21:22Z** · meta-stop · hand off to am-meta
## meta-start 2026-07-22T05:21:24Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38`
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- **2026-07-22T05:21:24Z** · meta detached pid=1722387 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `9 183 0`
- **2026-07-22T05:21:25Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T05:21:34Z** · after `9 183 0`
- **2026-07-22T05:21:34Z** · progress · NO with `--devstral` (streak_fail=1) — next model
### round 2 / 16 · `--coder` · before `9 183 0`
- **2026-07-22T05:21:35Z** · launch · flag=`--coder` session=`ok2meta-r2-coder` turns=8
- **2026-07-22T05:22:20Z** · meta-stop · redeploy race fix
## meta-start 2026-07-22T05:22:25Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38`
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- **2026-07-22T05:22:25Z** · meta detached pid=1725467 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `9 183 0`
- **2026-07-22T05:22:26Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T05:28:56Z** · after `9 183 0`
- **2026-07-22T05:28:56Z** · progress · NO with `--devstral` (streak_fail=1) — next model
### round 2 / 16 · `--coder` · before `9 183 0`
- **2026-07-22T05:28:58Z** · launch · flag=`--coder` session=`ok2meta-r2-coder` turns=8
- **2026-07-22T05:34:48Z** · after `9 183 0`
- **2026-07-22T05:34:48Z** · progress · NO with `--coder` (streak_fail=2) — next model
### round 3 / 16 · `--qwen314` · before `9 183 0`
- **2026-07-22T05:34:49Z** · launch · flag=`--qwen314` session=`ok2meta-r3-qwen314` turns=8
- **2026-07-22T05:50:19Z** · after `10 208 2`
- **2026-07-22T05:50:19Z** · progress · YES with `--qwen314` — keep same model
### round 4 / 16 · `--qwen314` · before `10 208 2`
- **2026-07-22T05:50:20Z** · launch · flag=`--qwen314` session=`ok2meta-r4-qwen314` turns=8
- **2026-07-22T05:54:31Z** · after `10 208 2`
- **2026-07-22T05:54:31Z** · progress · NO with `--qwen314` (streak_fail=1) — next model
### round 5 / 16 · `--qwen14` · before `10 208 2`
- **2026-07-22T05:54:32Z** · launch · flag=`--qwen14` session=`ok2meta-r5-qwen14` turns=8
- **2026-07-22T05:59:02Z** · after `10 208 2`
- **2026-07-22T05:59:02Z** · progress · NO with `--qwen14` (streak_fail=2) — next model
### round 6 / 16 · `--deepseek` · before `10 208 2`
- **2026-07-22T05:59:03Z** · launch · flag=`--deepseek` session=`ok2meta-r6-deepseek` turns=8
- **2026-07-22T05:59:53Z** · after `10 208 2`
- **2026-07-22T05:59:53Z** · progress · NO with `--deepseek` (streak_fail=3) — next model
### round 7 / 16 · `--qwen38` · before `10 208 2`
- **2026-07-22T05:59:54Z** · launch · flag=`--qwen38` session=`ok2meta-r7-qwen38` turns=8
- **2026-07-22T06:03:58Z** · meta-stop · user: beende alle aufgaben
- **2026-07-22T06:05:00Z** · meta-stop · clean restart
## meta-start 2026-07-22T06:05:01Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
- **2026-07-22T06:05:01Z** · meta detached pid=3574950 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:05:02Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T06:05:32Z** · after `11 228 2`
- **2026-07-22T06:05:32Z** · needs · harvested NEED_INSTRUCTIONS → additive.md (mission unchanged)
- **2026-07-22T06:05:32Z** · DONE detected after round 1
- **2026-07-22T06:07:12Z** · meta-stop · restart after false-DONE fix
## meta-start 2026-07-22T06:07:13Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
- **2026-07-22T06:07:13Z** · meta detached pid=3577057 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:07:14Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T06:07:43Z** · after `11 228 2`
- **2026-07-22T06:07:43Z** · progress · NO with `--devstral` (streak_fail=1 < 2) **retry same model**
### round 2 / 16 · `--devstral` · before `11 228 2` · streak_fail=1
- **2026-07-22T06:07:44Z** · launch · flag=`--devstral` session=`ok2meta-r2-devstral` turns=8
- **2026-07-22T06:09:11Z** · meta-stop · user: session end
## meta-start 2026-07-22T06:09:21Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
- **2026-07-22T06:09:21Z** · meta detached pid=3579576 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:09:22Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T06:09:37Z** · meta-stop · user: n — todos beenden
- **2026-07-22T06:09:56Z** · meta-stop · recover after wrong stop
## meta-start 2026-07-22T06:09:57Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
- **2026-07-22T06:09:57Z** · meta detached pid=3580490 out=/home/vx/src/openkknd2-am-coder/.am-meta/meta.out
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:09:59Z** · launch · flag=`--devstral` session=`ok2meta-r1-devstral` turns=8
- **2026-07-22T06:10:28Z** · after `11 228 2`
- **2026-07-22T06:10:28Z** · progress · NO with `--devstral` (streak_fail=1 < 2) **retry same model**
### round 2 / 16 · `--devstral` · before `11 228 2` · streak_fail=1
- **2026-07-22T06:10:29Z** · launch · flag=`--devstral` session=`ok2meta-r2-devstral` turns=8
- **2026-07-22T06:15:58Z** · after `11 228 2`
- **2026-07-22T06:15:58Z** · progress · NO with `--devstral` (streak_fail=2 ≥ 2) — **switch model**
### round 3 / 16 · `--coder` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:15:59Z** · launch · flag=`--coder` session=`ok2meta-r3-coder` turns=8
- **2026-07-22T06:21:48Z** · after `12 273 2`
- **2026-07-22T06:21:48Z** · progress · YES with `--coder` — keep same model; reset stall counter
### round 4 / 16 · `--coder` · before `12 273 2` · streak_fail=0
- **2026-07-22T06:21:50Z** · launch · flag=`--coder` session=`ok2meta-r4-coder` turns=8
- **2026-07-22T06:26:39Z** · after `12 273 2`
- **2026-07-22T06:26:39Z** · progress · NO with `--coder` (streak_fail=1 < 2) **retry same model**
### round 5 / 16 · `--coder` · before `12 273 2` · streak_fail=1
- **2026-07-22T06:26:40Z** · launch · flag=`--coder` session=`ok2meta-r5-coder` turns=8
- **2026-07-22T06:30:49Z** · after `12 273 2`
- **2026-07-22T06:30:49Z** · progress · NO with `--coder` (streak_fail=2 ≥ 2) — **switch model**
### round 6 / 16 · `--qwen314` · before `12 273 2` · streak_fail=0
- **2026-07-22T06:30:50Z** · launch · flag=`--qwen314` session=`ok2meta-r6-qwen314` turns=8
- **2026-07-22T06:46:00Z** · stall · AGENT_LOG frozen ≥900s while task active → stop child

View file

@ -0,0 +1,6 @@
# Additive instructions (harvested / evolved)
These lines may grow when the agent emits `## NEED_INSTRUCTIONS`.
They **must not** contradict the mission in `mission.md`.
Mission always wins.

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1722763 log=/tmp/agent-coder-detach-20260722T052130Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
(none active)
### RECENT HISTORY (5) (/home/vx/.am-agent-tasks/history)
════════════════════════════════════════════════════════════
id: 20260722T051649Z-1717777
status: interrupted [process dead]
kind: agent-coder
host: amanita
model: ollama/devstral:latest
session: ok2-rot1-devstral
pid / pgid: 1717646 / 1717475
started: 2026-07-22T05:16:49Z
stopped: 2026-07-22T05:21:20Z
elapsed: 4m 31s
stop_reason: hand off to am-meta
stop_how: am-task stop
stop_hard: False

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1723577 log=/tmp/agent-coder-detach-20260722T052143Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
════════════════════════════════════════════════════════════
id: 20260722T052138Z-1723242
status: running [process alive]
kind: agent-coder
host: amanita
model: ollama/devstral:latest
session: ok2meta-r1-devstral
pid / pgid: 1722763 / 1722243
started: 2026-07-22T05:21:38Z
stopped: — (still running)
elapsed: 6s
title: CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this workdir).
Headless smoke is GREEN (map + units). You implement the next milestones yourself.
This turn must produce REAL file changes (not just plans):
1. Add building placement (HQ and/or barracks) with resource cost — new headers/sources if needed
2. Add a simple faction AI tick (gather / build / train)

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1725651 log=/tmp/agent-coder-detach-20260722T052230Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
(none active)
### RECENT HISTORY (5) (/home/vx/.am-agent-tasks/history)
════════════════════════════════════════════════════════════
id: 20260722T052152Z-1724054
status: done [process dead]
kind: agent-coder
host: amanita
model: ollama/qwen3-coder:latest
session: ok2meta-r2-coder
pid / pgid: 1723577 / 1722243
started: 2026-07-22T05:21:52Z
stopped: 2026-07-22T05:22:19Z
elapsed: 27s
exit_code: 0
stop_reason: completed
stop_how: finish

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1737910 log=/tmp/agent-coder-detach-20260722T052901Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
(none active)
### RECENT HISTORY (5) (/home/vx/.am-agent-tasks/history)
════════════════════════════════════════════════════════════
id: 20260722T052232Z-1725762
status: done [process dead]
kind: agent-coder
host: amanita
model: ollama/devstral:latest
session: ok2meta-r1-devstral
pid / pgid: 1725651 / 1725180
started: 2026-07-22T05:22:32Z
stopped: 2026-07-22T05:28:47Z
elapsed: 6m 15s
exit_code: 0
stop_reason: completed
stop_how: finish

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=2574247 log=/tmp/agent-coder-detach-20260722T053453Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
(none active)
### RECENT HISTORY (5) (/home/vx/.am-agent-tasks/history)
════════════════════════════════════════════════════════════
id: 20260722T052904Z-1738030
status: done [process dead]
kind: agent-coder
host: amanita
model: ollama/qwen3-coder:latest
session: ok2meta-r2-coder
pid / pgid: 1737910 / 1725180
started: 2026-07-22T05:29:04Z
stopped: 2026-07-22T05:34:35Z
elapsed: 5m 31s
exit_code: 0
stop_reason: completed
stop_how: finish

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3217597 log=/tmp/agent-coder-detach-20260722T055024Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: WARN
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 12.2GiB/62.7GiB used (19%) avail 50.5GiB
load 9.86 13.58 10.98 cpus=32
swap 7.7GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 4987/6144 MiB (81%) util 0% high
ollama qwen3:14b bdbd181c33f2 12 GB 68%/32% CPU/GPU 32768 4 minutes from now
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T053455Z-2574378 done qwen3:14b 15m13s 207 ok2meta-r3-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T052904Z-1738030 done qwen3-coder:latest 5m31s 207 ok2meta-r2-coder ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T052232Z-1725762 done devstral:latest 6m15s 207 ok2meta-r1-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3338342 log=/tmp/agent-coder-detach-20260722T055435Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.9GiB/62.7GiB used (14%) avail 53.8GiB
load 8.99 10.51 10.27 cpus=32
swap 7.7GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T055027Z-3217726 done qwen3:14b 4m04s 207 ok2meta-r4-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T053455Z-2574378 done qwen3:14b 15m13s 207 ok2meta-r3-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T052904Z-1738030 done qwen3-coder:latest 5m31s 207 ok2meta-r2-coder ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3346536 log=/tmp/agent-coder-detach-20260722T055907Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.9GiB/62.7GiB used (14%) avail 53.7GiB
load 7.76 8.74 9.51 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T055438Z-3338469 done qwen2.5-coder:14b 4m08s 207 ok2meta-r5-qwen1 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055027Z-3217726 done qwen3:14b 4m04s 207 ok2meta-r4-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T053455Z-2574378 done qwen3:14b 15m13s 207 ok2meta-r3-qwen3 ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3348289 log=/tmp/agent-coder-detach-20260722T055958Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.8GiB/62.7GiB used (14%) avail 53.9GiB
load 6.07 8.23 9.30 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T055909Z-3346665 done deepseek-coder:6.7b 29s 207 ok2meta-r6-deeps ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055438Z-3338469 done qwen2.5-coder:14b 4m08s 207 ok2meta-r5-qwen1 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055027Z-3217726 done qwen3:14b 4m04s 207 ok2meta-r4-qwen3 ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3575225 log=/tmp/agent-coder-detach-20260722T060506Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.8GiB/62.7GiB used (14%) avail 53.9GiB
load 5.14 8.06 9.00 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T060000Z-3348413 interrupted qwen3:8b 3m57s 226 ok2meta-r7-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055909Z-3346665 done deepseek-coder:6.7b 29s 226 ok2meta-r6-deeps ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055438Z-3338469 done qwen2.5-coder:14b 4m08s 226 ok2meta-r5-qwen1 ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3577255 log=/tmp/agent-coder-detach-20260722T060718Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.5GiB/62.7GiB used (14%) avail 54.2GiB
load 1.46 5.59 7.96 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T060509Z-3575357 done devstral:latest 13s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060000Z-3348413 interrupted qwen3:8b 3m57s 226 ok2meta-r7-qwen3 ~/src/openkknd2-am-coder
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this w…
20260722T055909Z-3346665 done deepseek-coder:6.7b 29s 226 ok2meta-r6-deeps ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3578155 log=/tmp/agent-coder-detach-20260722T060748Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.6GiB/62.7GiB used (14%) avail 54.1GiB
load 1.39 5.18 7.75 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T060720Z-3577414 done devstral:latest 14s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060509Z-3575357 done devstral:latest 13s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060000Z-3348413 interrupted qwen3:8b 3m57s 226 ok2meta-r7-qwen3 ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3579768 log=/tmp/agent-coder-detach-20260722T060925Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.7GiB/62.7GiB used (14%) avail 54.0GiB
load 2.27 4.51 7.25 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T060750Z-3578279 interrupted devstral:latest 1m20s 226 ok2meta-r2-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060720Z-3577414 done devstral:latest 14s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060509Z-3575357 done devstral:latest 13s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3580679 log=/tmp/agent-coder-detach-20260722T061002Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.7GiB/62.7GiB used (14%) avail 54.0GiB
load 1.71 4.12 7.02 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T060928Z-3579895 interrupted devstral:latest 8s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060750Z-3578279 interrupted devstral:latest 1m20s 226 ok2meta-r2-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060720Z-3577414 done devstral:latest 14s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3581522 log=/tmp/agent-coder-detach-20260722T061032Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.7GiB/62.7GiB used (14%) avail 54.0GiB
load 1.62 3.87 6.84 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T061005Z-3580802 done devstral:latest 13s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060928Z-3579895 interrupted devstral:latest 8s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060750Z-3578279 interrupted devstral:latest 1m20s 226 ok2meta-r2-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3590824 log=/tmp/agent-coder-detach-20260722T061603Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 8.9GiB/62.7GiB used (14%) avail 53.8GiB
load 10.51 8.21 7.68 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T061035Z-3581648 done devstral:latest 5m10s 226 ok2meta-r2-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061005Z-3580802 done devstral:latest 13s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T060928Z-3579895 interrupted devstral:latest 8s 226 ok2meta-r1-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=424118 log=/tmp/agent-coder-detach-20260722T062153Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: WARN
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 10.0GiB/62.7GiB used (16%) avail 52.7GiB
load 5.82 6.64 7.07 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 5069/6144 MiB (83%) util 0% high
ollama qwen3-coder:latest 06c1097efce0 20 GB 80%/20% CPU/GPU 32768 4 minutes fro
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T061605Z-3590955 done qwen3-coder:latest 5m40s 270 ok2meta-r3-coder ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061035Z-3581648 done devstral:latest 5m10s 270 ok2meta-r2-devst ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061005Z-3580802 done devstral:latest 13s 270 ok2meta-r1-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1588119 log=/tmp/agent-coder-detach-20260722T062643Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: WARN
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 9.9GiB/62.7GiB used (16%) avail 52.8GiB
load 7.55 7.23 7.16 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 5069/6144 MiB (83%) util 0% high
ollama qwen3-coder:latest 06c1097efce0 20 GB 80%/20% CPU/GPU 32768 4 minutes fro
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T062156Z-424245 done qwen3-coder:latest 4m40s 270 ok2meta-r4-coder ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061605Z-3590955 done qwen3-coder:latest 5m40s 270 ok2meta-r3-coder ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061035Z-3581648 done devstral:latest 5m10s 270 ok2meta-r2-devst ~/src/openkknd2-am-coder

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=2474402 log=/tmp/agent-coder-detach-20260722T063054Z.log
control: am-task list | am-task stop latest | am-task resume latest
am-task overview · host resources: OK
────────────────────────────────────────────────────────────────────────────────────────────────
RAM 9.0GiB/62.7GiB used (14%) avail 53.7GiB
load 5.73 6.57 6.86 cpus=32
swap 7.8GiB/62.7GiB (12%)
GPU0 NVIDIA GeForce GTX 1060 6GB VRAM 1063/6144 MiB (17%) util 0%
ollama (no chat model loaded)
────────────────────────────────────────────────────────────────────────────────────────────────
● running ● done ● interrupted ● failed ● run/DEAD · am-task show <id> | list --full
ID STATUS MODEL ELAPSED CODE SESSION WORKDIR / TITLE
────────────────────────────────────────────────────────────────────────────────────────────────
ACTIVE (none)
RECENT HISTORY (8)
20260722T062646Z-1588248 done qwen3-coder:latest 3m50s 270 ok2meta-r5-coder ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T062156Z-424245 done qwen3-coder:latest 4m40s 270 ok2meta-r4-coder ~/src/openkknd2-am-coder
# MISSION (immutable — do not renegotiate) # Mission (immutable) — o…
20260722T061605Z-3590955 done qwen3-coder:latest 5m40s 270 ok2meta-r3-coder ~/src/openkknd2-am-coder

View file

@ -0,0 +1,150 @@
## meta-start 2026-07-22T05:21:24Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38`
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
<stdin>:25: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
<stdin>:25: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `9 183 0`
- **2026-07-22T05:21:34Z** · after `9 183 0`
- **2026-07-22T05:21:34Z** · progress · NO with `--devstral` (streak_fail=1) — next model
<stdin>:25: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
<stdin>:25: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 2 / 16 · `--coder` · before `9 183 0`
## meta-start 2026-07-22T05:22:25Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38`
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `9 183 0`
- **2026-07-22T05:28:56Z** · after `9 183 0`
- **2026-07-22T05:28:56Z** · progress · NO with `--devstral` (streak_fail=1) — next model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 2 / 16 · `--coder` · before `9 183 0`
- **2026-07-22T05:34:48Z** · after `9 183 0`
- **2026-07-22T05:34:48Z** · progress · NO with `--coder` (streak_fail=2) — next model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 3 / 16 · `--qwen314` · before `9 183 0`
- **2026-07-22T05:50:19Z** · after `10 208 2`
- **2026-07-22T05:50:19Z** · progress · YES with `--qwen314` — keep same model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 4 / 16 · `--qwen314` · before `10 208 2`
- **2026-07-22T05:54:31Z** · after `10 208 2`
- **2026-07-22T05:54:31Z** · progress · NO with `--qwen314` (streak_fail=1) — next model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 5 / 16 · `--qwen14` · before `10 208 2`
- **2026-07-22T05:59:02Z** · after `10 208 2`
- **2026-07-22T05:59:02Z** · progress · NO with `--qwen14` (streak_fail=2) — next model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 6 / 16 · `--deepseek` · before `10 208 2`
- **2026-07-22T05:59:53Z** · after `10 208 2`
- **2026-07-22T05:59:53Z** · progress · NO with `--deepseek` (streak_fail=3) — next model
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 7 / 16 · `--qwen38` · before `10 208 2`
## meta-start 2026-07-22T06:05:01Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:05:32Z** · after `11 228 2`
- **2026-07-22T06:05:32Z** · needs · harvested NEED_INSTRUCTIONS → additive.md (mission unchanged)
- **2026-07-22T06:05:32Z** · DONE detected after round 1
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
## meta-start 2026-07-22T06:07:13Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:07:43Z** · after `11 228 2`
- **2026-07-22T06:07:43Z** · progress · NO with `--devstral` (streak_fail=1 < 2) — **retry same model**
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 2 / 16 · `--devstral` · before `11 228 2` · streak_fail=1
## meta-start 2026-07-22T06:09:21Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
## meta-start 2026-07-22T06:09:57Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- models: `--devstral --coder --qwen314 --qwen14 --deepseek --qwen38` (first = standard)
- stalls_before_switch: 2 accept_needs: 1
- max_rounds: 16 max_turns/round: 8 min_line_delta: 30
- mission: /home/vx/src/llm-configs/prompts/openkknd2-mission.md
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 1 / 16 · `--devstral` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:10:28Z** · after `11 228 2`
- **2026-07-22T06:10:28Z** · progress · NO with `--devstral` (streak_fail=1 < 2) — **retry same model**
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 2 / 16 · `--devstral` · before `11 228 2` · streak_fail=1
- **2026-07-22T06:15:58Z** · after `11 228 2`
- **2026-07-22T06:15:58Z** · progress · NO with `--devstral` (streak_fail=2 ≥ 2) — **switch model**
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 3 / 16 · `--coder` · before `11 228 2` · streak_fail=0
- **2026-07-22T06:21:48Z** · after `12 273 2`
- **2026-07-22T06:21:48Z** · progress · YES with `--coder` — keep same model; reset stall counter
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 4 / 16 · `--coder` · before `12 273 2` · streak_fail=0
- **2026-07-22T06:26:39Z** · after `12 273 2`
- **2026-07-22T06:26:39Z** · progress · NO with `--coder` (streak_fail=1 < 2) — **retry same model**
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 5 / 16 · `--coder` · before `12 273 2` · streak_fail=1
- **2026-07-22T06:30:49Z** · after `12 273 2`
- **2026-07-22T06:30:49Z** · progress · NO with `--coder` (streak_fail=2 ≥ 2) — **switch model**
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
/home/vx/src/openkknd2-am-coder/.am-meta/state.json
### round 6 / 16 · `--qwen314` · before `12 273 2` · streak_fail=0
- **2026-07-22T06:46:00Z** · stall · AGENT_LOG frozen ≥900s while task active → stop child
20260722T063056Z-2474530

View file

@ -0,0 +1 @@
3580490

View file

@ -0,0 +1,19 @@
# Mission (immutable) — openkknd2
Build and grow **openkknd2**: an original open-source post-apoc RTS scaffold (genre-inspired only; **not** commercial KKnD).
## Fixed goals
1. Work only under the designated workdir (`openkknd2-am-coder` / `$OPENKKND2_ROOT`).
2. Keep `./scripts/ci-headless.sh` **GREEN** after meaningful changes.
3. Advance the milestone ladder: map/units → buildings/economy → faction AI → playable skirmish loop → (later) cinematics.
4. **Legal:** MIT/original only — never proprietary KKnD assets, rips, or reverse-engineered game files.
5. Always append `AGENT_LOG.md` and keep `STATUS.md` current.
## Non-goals (do not replace the mission with these)
- Rewriting the project as a different game
- Asking the user for permission to continue
- Stopping after planning without code/test changes
This mission text is **law** for all models and all meta rounds.

View file

@ -0,0 +1,20 @@
{
"status": "running",
"stop_reason": "recover after wrong stop",
"updated": "2026-07-22T06:30:49Z",
"meta_pid": 3580490,
"workdir": "/home/vx/src/openkknd2-am-coder",
"round": 6,
"max_rounds": 16,
"model_flag": "--qwen314",
"session": "ok2meta-r6-qwen314",
"before": "12 273 2",
"streak_fail": 0,
"after": "12 273 2",
"next_model": "--qwen314",
"last_progress": "--coder",
"stalls_before_switch": 2,
"accept_needs": 1,
"winner": "--devstral",
"switched": 1
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.10)
project(openkknd2 C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
add_executable(openkknd2 src/main.c src/ok_map.c src/ok_unit.c)
target_include_directories(openkknd2 PRIVATE include)
enable_testing()
add_test(NAME smoke_test COMMAND openkknd2 --headless --smoke)

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 openkknd2 contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,12 @@
# openkknd2
An original open-source post-apocalyptic RTS game, inspired by 1990s wasteland RTS games.
## Status
This is a work in progress. See [STATUS.md](STATUS.md) for current status.
## Legal
This project uses only original work, CC0/CC-BY (attributed), MIT/BSD/Zlib code with compatible license policy.
No KKnD / KKnD2 / Xtreme game files, ISOs, rips, sprites, music, maps, voices, or FMV are used.

View file

@ -0,0 +1,13 @@
# Resume
- **task_id:** `20260722T060928Z-3579895`
- **interrupted:** 2026-07-22T06:09:37Z
- **reason:** user: n — todos beenden
## Command
```bash
bash /home/vx/src/openkknd2-am-coder/.agent-coder-resume.sh
```
Or: `am-task resume 20260722T060928Z-3579895`

View file

@ -0,0 +1,64 @@
# Status
- **state:** RUNNING
- **updated:** 2026-07-22T06:30:56Z
- **host:** amanita
- **workdir:** `/home/vx/src/openkknd2-am-coder`
- **title:** # MISSION (immutable — do not renegotiate)
# Mission (immutable) — openkknd2
Build and grow **openkknd2**: an original open-source post-apoc RTS scaffold (genre-inspired only; **not** commercial KKnD).
## Fixed goals
1. Work only under the designated workdir (`openkknd2-am-coder` / `$OPENKKND2_ROOT`).
2. Keep `./scripts/ci-headless.sh` **GREEN** after meaningful changes.
3. Advance the milestone ladder: map/units → buildings/economy → faction AI → playable skirmish loop → (later) cinematics.
4. **Legal:** MIT/original only — never proprietary KKnD assets, rips, or reverse-engineered game files.
5. Always append `AGENT_LOG.md` and keep `STATUS.md` current.
## Non-goals (do not replace the mission with these)
- Rewriting the project as a different game
- Asking the user for permission to continue
- Stopping after planning without code/test changes
This mission text is **law** for all models and all meta rounds.
---
# This round
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this workdir).
Headless smoke is GREEN (map + units). You implement the next milestones yourself.
This turn must produce REAL file changes (not just plans):
1. Add building placement (HQ and/or barracks) with resource cost — new headers/sources if needed
2. Add a simple faction AI tick (gather / build / train)
3. Wire into `ok_world_tick` or main smoke
4. Run `./scripts/ci-headless.sh` and keep it GREEN
5. Append AGENT_LOG.md + update STATUS.md
Rules: MIT/original only; no proprietary KKnD assets. No empty turns. AUTONOMOUS_STOP only if blocked or verified done.
Read src/ and include/ first.
---
## Protocol
- Work thoroughly; no empty turns.
- Emit ## AUTONOMOUS_STOP only when DONE or truly blocked.
- If missing *actionable* rules would unlock autonomy (not a rewrite of the mission),
append exactly one block:
## NEED_INSTRUCTIONS
why: <one line>
need:
- <concrete rule or checklist item the next rounds should remember>
Do not use NEED_INSTRUCTIONS to change the mission goal.
## Last note
Session started.

View file

@ -0,0 +1,72 @@
# Task
- **started:** 2026-07-22T06:30:56Z
- **host:** amanita
- **workdir:** `/home/vx/src/openkknd2-am-coder`
## Brief
# MISSION (immutable — do not renegotiate)
# Mission (immutable) — openkknd2
Build and grow **openkknd2**: an original open-source post-apoc RTS scaffold (genre-inspired only; **not** commercial KKnD).
## Fixed goals
1. Work only under the designated workdir (`openkknd2-am-coder` / `$OPENKKND2_ROOT`).
2. Keep `./scripts/ci-headless.sh` **GREEN** after meaningful changes.
3. Advance the milestone ladder: map/units → buildings/economy → faction AI → playable skirmish loop → (later) cinematics.
4. **Legal:** MIT/original only — never proprietary KKnD assets, rips, or reverse-engineered game files.
5. Always append `AGENT_LOG.md` and keep `STATUS.md` current.
## Non-goals (do not replace the mission with these)
- Rewriting the project as a different game
- Asking the user for permission to continue
- Stopping after planning without code/test changes
This mission text is **law** for all models and all meta rounds.
---
# This round
CONTINUE openkknd2 ONLY under /home/vx/src/openkknd2-am-coder (this workdir).
Headless smoke is GREEN (map + units). You implement the next milestones yourself.
This turn must produce REAL file changes (not just plans):
1. Add building placement (HQ and/or barracks) with resource cost — new headers/sources if needed
2. Add a simple faction AI tick (gather / build / train)
3. Wire into `ok_world_tick` or main smoke
4. Run `./scripts/ci-headless.sh` and keep it GREEN
5. Append AGENT_LOG.md + update STATUS.md
Rules: MIT/original only; no proprietary KKnD assets. No empty turns. AUTONOMOUS_STOP only if blocked or verified done.
Read src/ and include/ first.
---
## Protocol
- Work thoroughly; no empty turns.
- Emit ## AUTONOMOUS_STOP only when DONE or truly blocked.
- If missing *actionable* rules would unlock autonomy (not a rewrite of the mission),
append exactly one block:
## NEED_INSTRUCTIONS
why: <one line>
need:
- <concrete rule or checklist item the next rounds should remember>
Do not use NEED_INSTRUCTIONS to change the mission goal.
## Instruction refs
(filled by launcher if any)
## Notes
- Always append to `AGENT_LOG.md` after each chunk.
- Keep `STATUS.md` current.
- On finish or hard stop, set STATUS and log `AUTONOMOUS_STOP` / DONE.

View file

@ -0,0 +1,10 @@
# Third-Party Dependencies
This project uses only original work, CC0/CC-BY (attributed), MIT/BSD/Zlib code with compatible license policy.
No KKnD / KKnD2 / Xtreme game files, ISOs, rips, sprites, music, maps, voices, or FMV are used.
## Tools Used
- CMake for build system
- SDL2 for windowing and input
- GCC/Clang for compilation

View file

@ -0,0 +1,11 @@
# Build openkknd2
```bash
cd ~/src/openkknd2-am-coder
./scripts/ci-headless.sh
# or:
cmake -S . -B build && cmake --build build
./build/openkknd2 --headless --smoke
```
Deps: CMake, C compiler. SDL2 optional (not required for headless sim).

View file

@ -0,0 +1,8 @@
# Lore (original)
Working names (change freely; **do not** use commercial KKnD faction trademarks as official names):
- Faction A: **Ashcoat Compact** (scrap tech, discipline)
- Faction B: **Bloomed** (mutated ecology, swarm tactics)
Tone: dry wasteland humor, not a copy of any commercial script.

View file

@ -0,0 +1,25 @@
#ifndef OK_BUILDINGS_H
#define OK_BUILDINGS_H
#include "ok_types.h"
// Building types
enum OkBuildingKind {
OK_BUILDING_HQ = 0,
OK_BUILDING_BARRACKS = 1,
OK_BUILDING_MAX
};
// Building structure
typedef struct {
int x, y;
OkBuildingKind kind;
OkFaction faction;
int resource_cost;
bool built;
} OkBuilding;
// Function declarations
void ok_buildings_init(OkWorld *w);
void ok_buildings_place(OkWorld *w, int x, int y, OkBuildingKind kind, OkFaction faction);
void ok_buildings_update(OkWorld *w);
#endif // OK_BUILDINGS_H

View file

@ -0,0 +1,6 @@
#ifndef OK_MAP_H
#define OK_MAP_H
#include "ok_types.h"
void ok_map_init(OkWorld *w, uint32_t seed);
bool ok_map_walkable(const OkWorld *w, int x, int y);
#endif

View file

@ -0,0 +1,31 @@
#ifndef OK_TYPES_H
#define OK_TYPES_H
#include <stdint.h>
#include <stdbool.h>
#define OK_WORLD_W 32
#define OK_WORLD_H 24
#define OK_MAX_UNITS 64
typedef enum { OK_TILE_EMPTY = 0, OK_TILE_BLOCK = 1, OK_TILE_RES = 2 } OkTile;
typedef enum { OK_FACTION_A = 0, OK_FACTION_B = 1 } OkFaction;
typedef enum { OK_UNIT_SCOUT = 0, OK_UNIT_WORKER = 1 } OkUnitKind;
typedef struct {
int x, y;
OkFaction faction;
OkUnitKind kind;
int hp;
bool alive;
} OkUnit;
typedef struct {
OkTile tiles[OK_WORLD_H][OK_WORLD_W];
OkUnit units[OK_MAX_UNITS];
int unit_count;
int tick;
int resources_a;
int resources_b;
} OkWorld;
#endif

View file

@ -0,0 +1,8 @@
#ifndef OK_UNIT_H
#define OK_UNIT_H
#include "ok_types.h"
int ok_unit_spawn(OkWorld *w, OkFaction f, OkUnitKind k, int x, int y);
void ok_unit_step_toward(OkWorld *w, int uid, int tx, int ty);
void ok_world_tick(OkWorld *w);
int ok_world_alive_count(const OkWorld *w, OkFaction f);
#endif

View file

@ -0,0 +1,16 @@
instruction-ref → /home/vx/src/llm-configs/instructions/18-openkknd2-autonomous-rebuild.md
instruction-ref → /home/vx/src/llm-configs/instructions/20-autonomous-until-blocked.md
instruction-ref → /home/vx/src/llm-configs/instructions/21-always-agent-logs.md
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1582837 log=/tmp/agent-coder-detach-20260722T045311Z.log
control: am-task list | am-task stop latest | am-task resume latest
=== active (/home/vx/.am-agent-tasks/active) ===
(none)
=== recent history (5) ===
20260722T044928Z-1206819 interrupted CONTINUE openkknd2 in /home/vx/src/openkknd2-am-co
20260722T044107Z-3833063 done OPENKKND2 autonomy demo. Work ONLY under /home/vx/
20260722T043957Z-3831609 interrupted resume:w
20260722T043953Z-3831497 resumed w
20260722T043858Z-3830593 resumed heartbeat worker

View file

@ -0,0 +1,16 @@
instruction-ref → /home/vx/src/llm-configs/instructions/18-openkknd2-autonomous-rebuild.md
instruction-ref → /home/vx/src/llm-configs/instructions/20-autonomous-until-blocked.md
instruction-ref → /home/vx/src/llm-configs/instructions/21-always-agent-logs.md
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1206638 log=/tmp/agent-coder-detach-20260722T044925Z.log
control: am-task list | am-task stop latest | am-task resume latest
=== active (/home/vx/.am-agent-tasks/active) ===
(none)
=== recent history (5) ===
20260722T044107Z-3833063 done OPENKKND2 autonomy demo. Work ONLY under /home/vx/
20260722T043957Z-3831609 interrupted resume:w
20260722T043953Z-3831497 resumed w
20260722T043858Z-3830593 resumed heartbeat worker
20260722T043822Z-3830147 interrupted s15

View file

@ -0,0 +1,16 @@
instruction-ref → /home/vx/src/llm-configs/instructions/18-openkknd2-autonomous-rebuild.md
instruction-ref → /home/vx/src/llm-configs/instructions/20-autonomous-until-blocked.md
instruction-ref → /home/vx/src/llm-configs/instructions/21-always-agent-logs.md
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=3832877 log=/tmp/agent-coder-detach-20260722T044105Z.log
control: am-task list | am-task stop latest | am-task resume latest
=== active (/home/vx/.am-agent-tasks/active) ===
(none)
=== recent history (5) ===
20260722T043957Z-3831609 interrupted resume:w
20260722T043953Z-3831497 resumed w
20260722T043858Z-3830593 resumed heartbeat worker
20260722T043822Z-3830147 interrupted s15
20260722T043752Z-3829738 interrupted sleep25

View file

@ -0,0 +1,7 @@
single-flight policy
- only one agent-coder job at a time (am-task)
- only one ollama chat model loaded (devstral during openkknd2 rotate)
- no parallel ollama pull during agent runs
- no parallel pics/vids/showcase on this host while rotation runs
- rotation is sequential (one model finishes before next)
updated: 2026-07-22T05:18:40+00:00

View file

@ -0,0 +1,9 @@
# openkknd2 model rotation
- started: 2026-07-22T05:16:43Z
- workdir: `/home/vx/src/openkknd2-am-coder`
- prompt: `/home/vx/src/llm-configs/prompts/openkknd2-rotate-kick.md`
- max_turns: 10
| # | flag | session | before lines | after lines | progress | ci |
|---|------|---------|--------------|-------------|----------|----|

View file

@ -0,0 +1,6 @@
=== model rotation start 2026-07-22T05:16:43Z ===
ROOT=/home/vx/src/openkknd2-am-coder models=--devstral --coder --qwen314 --qwen14 --deepseek --qwen38
>>> [1/6] model flag=--devstral session=ok2-rot1-devstral 2026-07-22T05:16:43Z
before: files=9 lines=183 build=0 ai=0
launch_ec=0 log=/home/vx/src/openkknd2-am-coder/rotate-logs/run-1devstral.log

View file

@ -0,0 +1,24 @@
AGENT_WORKDIR=/home/vx/src/openkknd2-am-coder
logs: /home/vx/src/openkknd2-am-coder/AGENT_LOG.md /home/vx/src/openkknd2-am-coder/STATUS.md /home/vx/src/openkknd2-am-coder/TASK.md
detached pid=1717646 log=/tmp/agent-coder-detach-20260722T051647Z.log
control: am-task list | am-task stop latest | am-task resume latest
### ACTIVE (/home/vx/.am-agent-tasks/active)
(none active)
### RECENT HISTORY (5) (/home/vx/.am-agent-tasks/history)
════════════════════════════════════════════════════════════
id: 20260722T050209Z-1707242
status: interrupted [process dead]
kind: stats-demo
host: amanita
model: (none / not set)
session: (none)
pid / pgid: 1707246 / 1707246
started: 2026-07-22T05:02:09Z
stopped: 2026-07-22T05:02:11Z
elapsed: 2s
stop_reason: demo: user requested clear stop stats
stop_how: am-task stop
stop_hard: False

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
echo "ci-headless: $ROOT"
mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release >/tmp/ok2-cmake.log 2>&1
cmake --build build -j"$(nproc 2>/dev/null || echo 2)" >/tmp/ok2-build.log 2>&1
./build/openkknd2 --headless --smoke
echo "HEADLESS_GREEN"

View file

@ -0,0 +1,20 @@
# src/building.h
#ifndef BUILDING_H
#define BUILDING_H
#include "entity.h"
enum BuildingType {
BUILDING_HQ,
BUILDING_BARRACKS,
BUILDING_COUNT
};
typedef struct {
Entity entity;
BuildingType type;
int resourceCost;
} Building;
#endif // BUILDING_H

View file

@ -0,0 +1,36 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "ok_types.h"
#include "ok_map.h"
#include "ok_unit.h"
static int run_smoke(void) {
OkWorld w;
ok_map_init(&w, 42);
int a = ok_unit_spawn(&w, OK_FACTION_A, OK_UNIT_SCOUT, 1, 1);
int b = ok_unit_spawn(&w, OK_FACTION_B, OK_UNIT_SCOUT, OK_WORLD_W - 2, OK_WORLD_H - 2);
if (a < 0 || b < 0) { fprintf(stderr, "spawn failed\n"); return 2; }
for (int t = 0; t < 40; t++) ok_world_tick(&w);
if (ok_world_alive_count(&w, OK_FACTION_A) < 1 || ok_world_alive_count(&w, OK_FACTION_B) < 1) {
fprintf(stderr, "units died\n"); return 3;
}
if (w.units[a].x == 1 && w.units[a].y == 1) {
fprintf(stderr, "unit A did not move\n"); return 4;
}
printf("openkknd2: headless smoke test passed (ticks=%d units=%d resA=%d resB=%d)\n",
w.tick, w.unit_count, w.resources_a, w.resources_b);
return 0;
}
int main(int argc, char *argv[]) {
int headless = 0, smoke = 0;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "--headless") == 0) headless = 1;
else if (strcmp(argv[i], "--smoke") == 0) smoke = 1;
}
if (headless && smoke) return run_smoke();
printf("openkknd2 - original open post-apoc RTS scaffold (not KKnD)\n");
printf("Usage: %s --headless --smoke\n", argv[0]);
return headless ? 0 : 1;
}

View file

@ -0,0 +1,45 @@
#include "ok_buildings.h"
#include "ok_map.h"
#include <stdio.h>
void ok_buildings_init(OkWorld *w) {
// Initialize buildings array - for now we'll use a simple approach
// In a more complete implementation, we'd have an actual building array
}
void ok_buildings_place(OkWorld *w, int x, int y, OkBuildingKind kind, OkFaction faction) {
// Check if placement is valid (walkable tile and not occupied)
if (!ok_map_walkable(w, x, y)) {
return;
}
// For now, we'll just update the resource count when a building is placed
int cost = 0;
switch (kind) {
case OK_BUILDING_HQ:
cost = 50;
break;
case OK_BUILDING_BARRACKS:
cost = 30;
break;
default:
return;
}
// Check if faction has enough resources
int *resources = (faction == OK_FACTION_A) ? &w->resources_a : &w->resources_b;
if (*resources < cost) {
return;
}
// Deduct cost and mark building as placed
*resources -= cost;
printf("Faction %d placed %s at (%d,%d)\n", faction,
(kind == OK_BUILDING_HQ) ? "HQ" : "Barracks", x, y);
}
void ok_buildings_update(OkWorld *w) {
// Simple building update logic - in a real implementation this would handle
// building construction, production, etc.
}

View file

@ -0,0 +1,29 @@
#include "ok_map.h"
#include <string.h>
static uint32_t rng_u32(uint32_t *s) {
*s = *s * 1664525u + 1013904223u;
return *s;
}
void ok_map_init(OkWorld *w, uint32_t seed) {
memset(w, 0, sizeof(*w));
uint32_t s = seed ? seed : 1u;
for (int y = 0; y < OK_WORLD_H; y++) {
for (int x = 0; x < OK_WORLD_W; x++) {
uint32_t r = rng_u32(&s);
if ((r % 17u) == 0u) w->tiles[y][x] = OK_TILE_BLOCK;
else if ((r % 11u) == 0u) w->tiles[y][x] = OK_TILE_RES;
else w->tiles[y][x] = OK_TILE_EMPTY;
}
}
w->tiles[1][1] = OK_TILE_EMPTY;
w->tiles[OK_WORLD_H - 2][OK_WORLD_W - 2] = OK_TILE_EMPTY;
w->resources_a = 100;
w->resources_b = 100;
}
bool ok_map_walkable(const OkWorld *w, int x, int y) {
if (x < 0 || y < 0 || x >= OK_WORLD_W || y >= OK_WORLD_H) return false;
return w->tiles[y][x] != OK_TILE_BLOCK;
}

View file

@ -0,0 +1,46 @@
#include "ok_unit.h"
#include "ok_map.h"
int ok_unit_spawn(OkWorld *w, OkFaction f, OkUnitKind k, int x, int y) {
if (w->unit_count >= OK_MAX_UNITS) return -1;
if (!ok_map_walkable(w, x, y)) return -1;
int id = w->unit_count++;
OkUnit *u = &w->units[id];
u->x = x; u->y = y; u->faction = f; u->kind = k;
u->hp = (k == OK_UNIT_SCOUT) ? 40 : 30;
u->alive = true;
return id;
}
void ok_unit_step_toward(OkWorld *w, int uid, int tx, int ty) {
if (uid < 0 || uid >= w->unit_count) return;
OkUnit *u = &w->units[uid];
if (!u->alive) return;
int nx = u->x + (tx > u->x) - (tx < u->x);
int ny = u->y + (ty > u->y) - (ty < u->y);
if (ok_map_walkable(w, nx, u->y)) u->x = nx;
if (ok_map_walkable(w, u->x, ny)) u->y = ny;
if (w->tiles[u->y][u->x] == OK_TILE_RES) {
if (u->faction == OK_FACTION_A) w->resources_a += 1;
else w->resources_b += 1;
w->tiles[u->y][u->x] = OK_TILE_EMPTY;
}
}
void ok_world_tick(OkWorld *w) {
w->tick++;
for (int i = 0; i < w->unit_count; i++) {
OkUnit *u = &w->units[i];
if (!u->alive) continue;
int tx = (u->faction == OK_FACTION_A) ? (OK_WORLD_W - 3) : 2;
int ty = (u->faction == OK_FACTION_A) ? (OK_WORLD_H - 3) : 2;
ok_unit_step_toward(w, i, tx, ty);
}
}
int ok_world_alive_count(const OkWorld *w, OkFaction f) {
int n = 0;
for (int i = 0; i < w->unit_count; i++)
if (w->units[i].alive && w->units[i].faction == f) n++;
return n;
}