Mirrors #26550 (Provider.toPublicInfo): internal runtime objects may legitimately carry function/symbol/bigint/undefined values, but the HTTP API contract is JSON-safe data matching the typed schema. Plugin `config:` hooks are documented to mutate cfg in place (registering agents/providers); that contract is preserved. The projection happens in ConfigHttpApi.get only, so internal consumers keep raw cfg and HTTP clients see a clean response. Active reproducer asserts the actual product invariant — GET /config returns a JSON-safe body even when a plugin attached a function to cfg. Three trigger-output reproducers stay skipped: per-hook design needed because the documented mutation contract makes a blanket clone unsafe and `tool.parameters` is a live Effect Schema with function-valued own keys that recursive in-place scrub would corrupt. |
||
|---|---|---|
| .. | ||
| bin | ||
| migration | ||
| script | ||
| specs | ||
| src | ||
| test | ||
| .gitignore | ||
| AGENTS.md | ||
| BUN_SHELL_MIGRATION_PLAN.md | ||
| bunfig.toml | ||
| Dockerfile | ||
| drizzle.config.ts | ||
| git | ||
| package.json | ||
| parsers-config.ts | ||
| README.md | ||
| sst-env.d.ts | ||
| tsconfig.json | ||