fix(agent-pod): install rust+gcc toolchain, symlink go, drop brave-search skill

poiman is Rust, portfolio is Go -- neither toolchain was reachable from an
interactive kubectl exec session (go's PATH export was local to its own
install script; rust was entirely absent, and cargo needs gcc as a linker
which also wasn't present).

brave-search was just a curl one-liner wrapped in its own skill file --
inlined the same curl command directly into info-collector/investigator's
instructions instead of dispatching to a separate skill for it.
This commit is contained in:
Story Crater Bot
2026-08-19 15:59:11 -07:00
parent 596b5cb4d7
commit d1b650041e
2 changed files with 16 additions and 44 deletions
+14 -3
View File
@@ -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
+2 -41
View File
@@ -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=<query>" --data-urlencode "count=5" \
"https://api.search.brave.com/res/v1/web/search"
```
Options (add as extra `--data-urlencode` pairs):
- `count=<n>` — number of results (max 20, default 5)
- `country=<code>` — 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=<query>" "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=<query>"`) 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.