pi-mono/packages/coding-agent/test/suite
robopipi[bot] f6ee9ce9c1
fix(coding-agent): summarize union and multi-line codemode output types in tool descriptions (#11513)
With `codemode.mode: "on"`, each declared tool gets a description suffix
that says what a script call resolves to. For an object output schema,
`describeOutput` shortens this to field names. Any other schema fell
back to the whole rendered TypeScript type, collapsed onto one line. A
tool with a union output schema therefore put its full output type,
nested fields and comments included, into every request. The reporter's
`process` tool, a union of 7 variants, added about 8,000 characters.
Collapsing the type onto one line also left `//` comments in the middle
of the text.

This change:
- **Unions:** for `anyOf`/`oneOf` schemas where every variant is an
object, the suffix lists each variant's field names, joined by ` | `.
- **`const` fields:** `describeFields` now shows the value of `const`
fields, so a discriminator like `action` stays visible. For example: ``
`{ action: "start", process } | { action: "list", processes, truncated?
}` ``.
- **Other multi-line types**, such as an array of objects: instead of
the inlined type, the suffix says `` a value; `await
describeTool("name")` shows its type ``. `describeTool()` already
returns the full declaration.
- **Single-line types** such as `number` are unchanged.

Testing:
- I added a test in `test/suite/agent-session-codemode.test.ts` that
checks the suffix for three tools: one with a union output, one with an
array-of-objects output, and one with a `number` output. It fails
without the change and passes with it.
- `node ../../node_modules/vitest/dist/cli.js --run
test/suite/agent-session-codemode.test.ts
test/suite/agent-session-mcp.test.ts` passes, including the existing MCP
description assertions.
- `npm run check` is clean.

Fixes #11501

Requested by @badlogic

Co-authored-by: triagent <triagent@localhost>
2026-10-28 09:58:20 +01:00
..
regressions feat(coding-agent): show model names in model selectors when they add information 2026-10-23 21:19:51 +02:00
agent-session-bash-persistence.test.ts fix(coding-agent): strip ANSI sequences split across user bash output chunks 2026-10-07 15:02:59 +02:00
agent-session-boundaries.test.ts feat(tui,coding-agent): report program status via OSC 7501 2026-10-07 19:05:41 +00:00
agent-session-codemode.test.ts fix(coding-agent): summarize union and multi-line codemode output types in tool descriptions (#11513) 2026-10-28 09:58:20 +01:00
agent-session-compaction-model-overrides.test.ts fix(coding-agent): remove fixed output limits from summary requests (#11036) 2026-10-16 13:53:16 +02:00
agent-session-compaction.test.ts feat(coding-agent): Virtual models (#10035) 2026-09-28 23:30:45 +02:00
agent-session-mcp-oauth.test.ts fix(coding-agent): cancel MCP OAuth sign-ins and stop refreshing on close 2026-10-07 16:18:46 +02:00
agent-session-mcp.test.ts refactor(codemode,coding-agent): decouple MCP from codemode 2026-10-12 09:19:30 +02:00
agent-session-model-extension.test.ts feat(agent): add Pico storage foundation 2026-09-18 12:32:00 +02:00
agent-session-prompt.test.ts fix(coding-agent): emit before_agent_start for runs started by custom messages (#10739) 2026-10-12 09:53:24 +02:00
agent-session-queue.test.ts Mid conversation system messages (#9548) 2026-09-16 15:54:07 +02:00
agent-session-retry-events.test.ts fix(coding-agent): close compaction cancellation races 2026-09-19 19:18:18 +02:00
agent-session-runtime.test.ts fix(coding-agent): save new session file at the first user message 2026-09-25 16:27:51 +02:00
agent-session-tool-orchestration.test.ts feat(coding-agent): codemode and MCP 2026-09-29 09:12:50 +02:00
agent-session-tool-result-images.test.ts feat(ai,coding-agent): add image input limits (closes #9631) 2026-09-20 22:59:16 +02:00
harness.ts fix(ai): recover from Copilot request-size overflow 2026-10-19 22:46:26 +02:00
lax-message-content.test.ts fix(ai,agent,coding-agent): normalize null message content at ingestion boundaries (#6343) 2026-07-06 20:47:08 +02:00
mcp-oauth-server.ts fix(coding-agent): cancel MCP OAuth sign-ins and stop refreshing on close 2026-10-07 16:18:46 +02:00
README.md docs(coding-agent): remove issue-specific regression test placement rule (#8775) 2026-08-28 16:39:28 +02:00
virtual-models.test.ts fix(coding-agent): remove fixed output limits from summary requests (#11036) 2026-10-16 13:53:16 +02:00

Coding agent suite tests

Use test/suite/ for the new harness-based test suite around AgentSession and AgentSessionRuntime.

Rules:

  • Use test/suite/harness.ts
  • Use the faux provider from packages/ai/src/providers/faux.ts
  • Do not use real provider APIs, real API keys, network calls, or paid tokens
  • Keep these tests CI-safe and deterministic
  • Do not use or extend the legacy test/test-harness.ts path unless a missing capability forces it