Problem
This repo's stated purpose (README + src/schemas.ts header) is to pin nexus-agents code-intelligence tool input schemas so any upstream drift fails the test suite. The schemas have already drifted, and the tests pass green anyway because they only validate the local (stale) copies.
Observed drift against the live tools:
RepoAnalyzeInputSchema (src/schemas.ts) models { url, depth: enum['shallow','full'] }. The live repo_analyze tool takes { repo, depth: enum['shallow','deep'] } — wrong field name (url vs repo) and wrong depth enum value (full vs deep).
RepoSecurityPlanInputSchema models { url, includeSecrets }. The live repo_security_plan tool takes { repo, categories[], maxScanners }.
Suggested fix
- Re-sync all four schemas in
src/schemas.ts to the current upstream tool definitions.
- Re-verify
extract_symbols and search_codebase schemas while doing so.
- Replace (or supplement) the hand-maintained mirror with a test that fetches/compares against the real tool
inputSchema (e.g. via the MCP tool listing) so future drift fails automatically instead of silently passing.
Problem
This repo's stated purpose (README + src/schemas.ts header) is to pin nexus-agents code-intelligence tool input schemas so any upstream drift fails the test suite. The schemas have already drifted, and the tests pass green anyway because they only validate the local (stale) copies.
Observed drift against the live tools:
RepoAnalyzeInputSchema(src/schemas.ts) models{ url, depth: enum['shallow','full'] }. The liverepo_analyzetool takes{ repo, depth: enum['shallow','deep'] }— wrong field name (urlvsrepo) and wrong depth enum value (fullvsdeep).RepoSecurityPlanInputSchemamodels{ url, includeSecrets }. The liverepo_security_plantool takes{ repo, categories[], maxScanners }.Suggested fix
src/schemas.tsto the current upstream tool definitions.extract_symbolsandsearch_codebaseschemas while doing so.inputSchema(e.g. via the MCP tool listing) so future drift fails automatically instead of silently passing.