### What change does this PR introduce?

<!-- Explain the changes this PR introduces to BoringOS. Mention the package(s) touched (e.g. `@boringos/core`, `@boringos/agent`, `@boringos/runtime`) and which primitive — Skill, Tool, Module, runtime, queue, persona — it affects, if applicable. -->

### Why was this change needed?

<!-- If your PR fixes an open issue, use `Closes #999` to link it. Example: Closes #31 -->

### How was this tested?

<!-- e.g. `pnpm -r typecheck`, `pnpm test:run`, manual run via `examples/quickstart/`, smoke test against an agent runtime. -->

- [ ] `pnpm -r build` passes
- [ ] `pnpm -r typecheck` passes
- [ ] `pnpm test:run` passes
- [ ] Updated relevant docs (`CLAUDE.md`, `BUILD-A-MODULE.md`, `MODULES.md`, `TOOLS.md`, `SKILLS.md`, `docs/`) if behavior or APIs changed

### Contributor License Agreement

- [ ] I have read [`CLA.md`](../CLA.md) and I agree to its terms for this contribution and any future contribution I make to this project.

### Other information (screenshots, logs)

<!-- Anything else that helps reviewers: screenshots, run IDs, schema diffs, breaking-change notes, etc. -->
