test: fuzz schema generation for union inputs + docs fixup (#3049)
* test: add fuzzing for input type resolution and OpenAPI generation
Add fuzz coverage for the schema-gen codepaths exercised by union
inputs, which previously had no fuzzing and no validity oracle:
- FuzzResolveInputType: feeds arbitrary TypeAnnotation trees through
ResolveInputType, then validates that any successfully resolved input
type generates an OpenAPI document the build-time validator accepts.
- FuzzInputTypeJSONSchema: builds arbitrary InputType trees directly
(reaching shapes the resolver never produces) and validates the
generated OpenAPI document.
Both use an assertValidOpenAPI oracle (the same kin-openapi validator
as writeAndValidateSchema), so a union shape that resolves cleanly but
emits an invalid schema (e.g. an unsupported `type: null` branch) fails
the fuzzer rather than surfacing as a confusing user build error.
Make the test:fuzz task auto-discover every Fuzz* target via
`go test -list` instead of hardcoding names, so new fuzz tests are
picked up automatically. This also surfaced targets the hardcoded list
missed (pkg/config's three targets and two parser helpers): 11 total
vs the 4 previously run. Manage jq (used for discovery) as a mise tool
and simplify the CI fuzz-go job to call the task.
* docs: correct union input type support in python.md
The union-inputs feature (#3048) added input union support, but the
"Type limitations" section still claimed only Optional[T] was supported,
contradicting the new Union section. Scope the limitation correctly:
output unions remain unsupported, JSON-native input unions are
supported, and input unions of Path/File/Secret/custom-coder/BaseModel
members fail at build. Also add the missing Union table-of-contents
entry and regenerate llms.txt.
* test: use testify require in assertValidOpenAPI
Replace raw t.Fatalf with require.NoError per the project testing
conventions (AGENTS.md).