diff --git a/k8s/apps/agent-pod/deployment.yaml b/k8s/apps/agent-pod/deployment.yaml index 2f703b5..be6cdd2 100644 --- a/k8s/apps/agent-pod/deployment.yaml +++ b/k8s/apps/agent-pod/deployment.yaml @@ -56,7 +56,7 @@ spec: - -c - | set -e - apt-get update && apt-get install -y git curl jq openssh-client tmux python3 sqlite3 + apt-get update && apt-get install -y git curl jq openssh-client tmux python3 sqlite3 gcc build-essential ssh-keygen -y -f /root/.ssh/id_forgejo > /root/.ssh/id_forgejo.pub eval "$(ssh-agent -s)" ssh-add /root/.ssh/id_forgejo @@ -69,6 +69,19 @@ spec: https://github.com/Riotpiaole/agent-manager.git /root/agent-manager-src (cd /root/agent-manager-src && go build -o /usr/local/bin/agent-manager .) + # Language toolchains for whatever repos the implementer/investigator/ + # judge roles actually build and test -- go was already fetched above + # only for building agent-manager itself, and its PATH export above is + # local to this script, invisible to `kubectl exec` sessions into the + # already-running container. Symlinking both into /usr/local/bin (on + # PATH for every exec session, interactive or not) instead of relying + # on shell rc sourcing, which pi's non-interactive tool calls don't do. + ln -sf /usr/local/go/bin/go /usr/local/bin/go + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable + ln -sf /root/.cargo/bin/cargo /usr/local/bin/cargo + ln -sf /root/.cargo/bin/rustc /usr/local/bin/rustc + ln -sf /root/.cargo/bin/rustup /usr/local/bin/rustup + node /root/hub.js env: - name: PI_BIN @@ -140,8 +153,6 @@ spec: path: judge/SKILL.md - key: resolver-SKILL.md path: resolver/SKILL.md - - key: brave-search-SKILL.md - path: brave-search/SKILL.md - name: hub-src configMap: name: hub-src diff --git a/k8s/apps/agent-pod/pi-skills-configmap.yaml b/k8s/apps/agent-pod/pi-skills-configmap.yaml index 135ded4..c2f0686 100644 --- a/k8s/apps/agent-pod/pi-skills-configmap.yaml +++ b/k8s/apps/agent-pod/pi-skills-configmap.yaml @@ -1,44 +1,5 @@ apiVersion: v1 data: - brave-search-SKILL.md: | - --- - name: brave-search - description: Web search via the Brave Search API, called directly with curl. Use for searching documentation, facts, or any current web content. - allowed-tools: Bash - --- - - # Brave Search - - Direct HTTP call to the Brave Search API — no separate script or package, just `curl` (`BRAVE_API_KEY` is already set in the environment). - - ## Search - - ```bash - curl -s -H "Accept: application/json" -H "X-Subscription-Token: $BRAVE_API_KEY" \ - --get --data-urlencode "q=" --data-urlencode "count=5" \ - "https://api.search.brave.com/res/v1/web/search" - ``` - - Options (add as extra `--data-urlencode` pairs): - - `count=` — number of results (max 20, default 5) - - `country=` — two-letter country code (default US) - - `freshness=pd|pw|pm|py` — past day/week/month/year, or `freshness=YYYY-MM-DDtoYYYY-MM-DD` - - Response is JSON; the results live at `.web.results[]`, each with `title`, `url`, `description`, `age`. Pipe through `jq` if you want a shorter view, e.g.: - - ```bash - curl -s -H "Accept: application/json" -H "X-Subscription-Token: $BRAVE_API_KEY" \ - --get --data-urlencode "q=" "https://api.search.brave.com/res/v1/web/search" \ - | jq -r '.web.results[] | "- \(.title)\n \(.url)\n \(.description)\n"' - ``` - - There's no page-content-extraction helper here — if a result needs reading in full, `curl` the URL directly and read the raw HTML/text; don't expect readability-cleaned markdown. - - ## When to Use - - - Searching for documentation or API references - - Looking up facts or current information - - Confirming a claim or approach against real sources implementer-SKILL.md: | --- name: implementer @@ -74,7 +35,7 @@ data: **Modes:** - - **Collect mode** (default) — use the `brave-search` skill (`curl` against the Brave Search API) with varied queries to cover the topic from multiple angles, then produce a structured summary: topic areas found, key facts, and links to sources for each. Do not editorialize about which approach is "right" — that's out of scope for this skill. + - **Collect mode** (default) — search the web (`curl` against `https://api.search.brave.com/res/v1/web/search`, header `X-Subscription-Token: $BRAVE_API_KEY`, `--data-urlencode "q="`) with varied queries to cover the topic from multiple angles, then produce a structured summary: topic areas found, key facts, and links to sources for each. Do not editorialize about which approach is "right" — that's out of scope for this skill. - If asked to write the summary to a file, write it and report the path; otherwise return it directly in your response. investigator-SKILL.md: | --- @@ -85,7 +46,7 @@ data: Check whether the plan's claims about the real world are actually true right now. Cite sources; don't assert without one. - - Read `PLAN.md` and the spec docs on disk. For each claim depending on external facts (a library's current API, a service's behavior), use `brave-search` to confirm or refute it. Append a `## Investigation` section to `PLAN.md`: each claim, its source(s), PASS/FLAG. Commit: `git add PLAN.md && git commit -m "investigate: confirm plan against sources"`. + - Read `PLAN.md` and the spec docs on disk. For each claim depending on external facts (a library's current API, a service's behavior), search the web (`curl` against `https://api.search.brave.com/res/v1/web/search`, header `X-Subscription-Token: $BRAVE_API_KEY`) to confirm or refute it. Append a `## Investigation` section to `PLAN.md`: each claim, its source(s), PASS/FLAG. Commit: `git add PLAN.md && git commit -m "investigate: confirm plan against sources"`. - No `PLAN.md`? Just answer the question asked, citing sources. Flag unconfirmed/contradicted claims rather than silently fixing them — that decision belongs to whoever reads the flag next.