{"name":"RepoDiet","description":"AI-code-bloat cleanup tools for JavaScript and TypeScript repositories. Phase 3 agent tools execute the same engine as the web application.","version":"2.0.0","category":"Software Utility","runtime":"nodejs","productionUrl":"https://skillswap-virid-kappa.vercel.app","operator":{"id":"repodiet-operator","publicKeyEnv":"REPODIET_OPERATOR_PUBLIC_KEY","signingAvailable":true},"capabilities":["a2mcp_quick_triage","analyze_repository","a2a_verified_cleanup_pr","signed_receipt_verification","operator_trust_root"],"agentFlow":["analyze_repository","a2a_create_cleanup_pr"],"pricing":{"a2mcpQuickTriage":{"protocol":"A2MCP","serviceId":"32948","operation":"analyze_repository","priceUsdT0":0.03,"priceLabel":"0.03 USD₮0","settlement":"live x402 on X Layer","description":"Bounded repository triage returning up to five prioritized findings."},"a2aVerifiedCleanupPr":{"protocol":"A2A","serviceId":"32947","operation":"create_cleanup_pr","pricing":"negotiated","defaultReferenceUsdT0":1,"priceLabel":"negotiated (default 1 USD₮0)","settlement":"task agreement, escrow, delivery, buyer acceptance and release","description":"Customized repository cleanup delivered as a review-ready GitHub pull request."}},"freeLimits":{"publicReposOnly":true},"timeouts":{"defaultToolSeconds":60,"operatorToolSeconds":300,"quickTriageSeconds":90},"payment":{"a2mcp":{"protocol":"x402","network":"X Layer (eip155:196)","enforcedOnTools":["analyze_repository"],"amount":"0.03 USD₮0"},"a2a":{"protocol":"A2A_escrow","network":"X Layer (eip155:196)","operation":"create_cleanup_pr","pricing":"negotiated","defaultReference":"1 USD₮0"},"note":"Not all paid tasks use x402. A2MCP Quick Triage uses x402; A2A Verified Cleanup PR uses negotiated escrow.","okxGateway":"https://skillswap-virid-kappa.vercel.app/api/okx/health","betaOpenAccess":false},"healthEndpoint":"https://skillswap-virid-kappa.vercel.app/api/tools/health","supportUrl":"https://skillswap-virid-kappa.vercel.app/docs","privacy":{"publicReposOnly":true,"envFilesNeverRead":true,"workspaceRetention":"Ephemeral — isolated workspaces deleted after tool execution.","githubMutation":"Never on A2MCP Quick Triage. A2A PR delivery creates isolated branches only."},"limits":{"maxRepoZipMb":25,"maxFilesAnalyzed":5000,"timeoutSeconds":60,"publicReposOnly":true,"repoMutation":false,"autoDelete":false},"tools":[{"name":"scan_repository","endpoint":"/api/tools/scan_repository","method":"POST","description":"Scan a public repository and persist findings via the shared execution engine.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"analyze_repository","endpoint":"/api/tools/analyze_repository","method":"POST","description":"A2MCP Quick Triage — bounded repository triage returning up to five prioritized findings. Live paid listing: 0.03 USD₮0 per call via x402 on X Layer (service 32948).","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"commitSha":{"type":"string","description":"Exact commit SHA for payment binding."},"quoteId":{"type":"string","description":"Funded x402 quote from POST /api/tasks/pay."},"idempotencyKey":{"type":"string"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_findings","endpoint":"/api/tools/get_findings","method":"POST","description":"Return the full findings payload for a completed scan.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"list_safe_fixes","endpoint":"/api/tools/list_safe_fixes","method":"POST","description":"List Phase 1 eligible safe fixes for automatic cleanup.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"verify_patch","endpoint":"/api/tools/verify_patch","method":"POST","description":"Baseline comparison and verification for a cleanup run patch.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"cleanupRunId":{"type":"string"},"patchId":{"type":"string"},"quoteId":{"type":"string"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"repository_health_delta","endpoint":"/api/tools/repository_health_delta","method":"POST","description":"New, resolved and recurring debt between two repository snapshots.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"baseScanId":{"type":"string"},"headScanId":{"type":"string"},"baseCommitSha":{"type":"string"},"headCommitSha":{"type":"string"},"quoteId":{"type":"string"}}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_repository_health","endpoint":"/api/tools/get_repository_health","method":"POST","description":"Repository health summary with honest analyzer status fields.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_task_status","endpoint":"/api/tools/tasks/{taskId}","method":"GET","description":"Poll task status and result by taskId.","inputSchema":{"type":"object","required":["taskId"],"properties":{"taskId":{"type":"string"}}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"run_free_safe_fix","endpoint":"/api/tools/run_free_safe_fix","method":"POST","description":"Execute one verified safe fix in an isolated workspace (free proof).","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"findingIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"run_quick_cleanup","endpoint":"/api/tools/run_quick_cleanup","method":"POST","description":"Generate Patch Kit cleanup bundle for selected findings (paid tier).","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"findingIds":{"type":"array","items":{"type":"string"}},"quoteId":{"type":"string","description":"Optional task quote for x402 settlement."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"run_cleanup","endpoint":"/api/tools/run_cleanup","method":"POST","description":"Unified cleanup runner — operation free_proof or quick_cleanup.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"operation":{"type":"string","enum":["free_proof","quick_cleanup"]},"findingIds":{"type":"array","items":{"type":"string"}},"quoteId":{"type":"string"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"verify_cleanup","endpoint":"/api/tools/verify_cleanup","method":"POST","description":"Verify a cleanup patch or cleanup run in an isolated workspace.","inputSchema":{"type":"object","properties":{"patchId":{"type":"string"},"cleanupRunId":{"type":"string"},"scanId":{"type":"string"}}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"create_cleanup_pr","endpoint":"/api/tools/create_cleanup_pr","method":"POST","description":"A2A Verified Cleanup PR delivery primitive (operation create_cleanup_pr). Not an A2MCP x402 pay-per-call listing — public settlement is negotiated A2A escrow with buyer acceptance (service 32947, default reference 1 USD₮0).","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"mode":{"type":"string","enum":["safe_only","report_only"]},"findings":{"type":"object"},"patchKit":{"type":"object"},"demo":{"type":"boolean"},"githubToken":{"type":"string"}}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"configure_repository_policy","endpoint":"/api/tools/configure_repository_policy","method":"POST","description":"Store protected path policy for a repository.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"protectedPaths":{"type":"array","items":{"type":"string"}},"protectedGlobs":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"activate_repo_guard","endpoint":"/api/tools/activate_repo_guard","method":"POST","description":"Legacy endpoint — Repo Guard is not part of the public OKX two-service model (A2MCP Quick Triage + A2A Verified Cleanup PR).","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_scan_status","endpoint":"/api/tools/get_scan_status","method":"POST","description":"Read-only scan/task status for a prior scan_repository call.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_repository_coverage","endpoint":"/api/tools/get_repository_coverage","method":"POST","description":"Read-only analyzer coverage and risk-bucket counts for a scanned repository.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"list_findings","endpoint":"/api/tools/list_findings","method":"POST","description":"List structured findings for a completed scan (read-only).","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_finding_evidence","endpoint":"/api/tools/get_finding_evidence","method":"POST","description":"Return evidence bundle for one finding id (read-only).","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"findingId":{"type":"string"}},"additionalProperties":false,"required":["findingId"]},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"prepare_cleanup_plan","endpoint":"/api/tools/prepare_cleanup_plan","method":"POST","description":"Build an automatic cleanup plan from evidence-backed findings. User chooses outcomes; RepoDiet selects operations.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"excludeFindingIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_plan_status","endpoint":"/api/tools/get_plan_status","method":"POST","description":"Read-only status lookup for a prepared cleanup plan.","inputSchema":{"type":"object","properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"scanId":{"type":"string","description":"Prior scan identifier from scan_repository."},"taskId":{"type":"string","description":"Prior task identifier."},"planId":{"type":"string"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"get_delivery_status","endpoint":"/api/tools/get_delivery_status","method":"POST","description":"Read-only OKX A2A delivery status for a cleanup task.","inputSchema":{"type":"object","properties":{"a2aTaskId":{"type":"string"},"taskId":{"type":"string"},"scanId":{"type":"string"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"taskId":{"type":"string"},"tool":{"type":"string"},"version":{"type":"string"},"repository":{"type":"object"},"status":{"type":"string","enum":["queued","running","completed","failed"]},"result":{"type":"object"},"analyzers":{"type":"object"},"limitations":{"type":"array","items":{"type":"string"}},"receipt":{"type":"object"}}}},{"name":"scan_repo_bloat","endpoint":"/api/tools/scan_repo_bloat","method":"POST","description":"Scan a public GitHub repo for structure, bloat signals, analyzer status, and cleanup risk buckets.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"mode":{"type":"string","enum":["quick","full"],"default":"quick"}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"version":{"type":"string"},"repo":{"type":"object"},"scan":{"type":"object"},"findings":{"type":"object"},"analyzerStatus":{"type":"object"},"policy":{"type":"object"},"warnings":{"type":"array","items":{"type":"string"}}}}},{"name":"detect_duplicate_code","endpoint":"/api/tools/detect_duplicate_code","method":"POST","description":"Detect duplicate code clusters in a public GitHub repository.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"duplicates":{"type":"array"},"summary":{"type":"object"}}}},{"name":"find_dead_files","endpoint":"/api/tools/find_dead_files","method":"POST","description":"Find unused files and orphan patterns in a public GitHub repository.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"includeOrphans":{"type":"boolean","default":true}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"unusedFiles":{"type":"array"},"orphans":{"type":"array"},"summary":{"type":"object"},"note":{"type":"string"}}}},{"name":"find_unused_dependencies","endpoint":"/api/tools/find_unused_dependencies","method":"POST","description":"Find potentially unused npm dependencies in a public GitHub repository.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"dependencies":{"type":"array"},"summary":{"type":"object"},"warning":{"type":"string"}}}},{"name":"generate_cleanup_patch","endpoint":"/api/tools/generate_cleanup_patch","method":"POST","description":"Generate conservative Patch Kit artifacts including cleanup.patch, reports, and optional ZIP bundle.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."},"includeZip":{"type":"boolean","default":false}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"summary":{"type":"object"},"artifacts":{"type":"object"},"policy":{"type":"object"}}}},{"name":"generate_regression_checklist","endpoint":"/api/tools/generate_regression_checklist","method":"POST","description":"Generate a regression checklist markdown and structured route/API checks.","inputSchema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"type":"string","description":"Public GitHub repository URL (https://github.com/owner/repo)."},"branch":{"type":"string","description":"Optional branch name. Defaults to repository default branch."}},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"tool":{"type":"string"},"checklistMd":{"type":"string"},"checks":{"type":"object"}}}}],"examples":[{"name":"scan_repository","exampleRequest":{"repoUrl":"https://github.com/repodiet/demo-slop-app","branch":"main"},"exampleResponse":{"success":true,"taskId":"task_abc123","status":"completed","result":{"scanId":"scan_xyz"}}},{"name":"analyze_repository","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_analyze","status":"completed","result":{}}},{"name":"get_findings","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_findings","status":"completed","result":{}}},{"name":"list_safe_fixes","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_safe","status":"completed","result":{"count":1}}},{"name":"verify_patch","exampleRequest":{"cleanupRunId":"cleanup_abc","scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_verify","status":"completed","result":{}}},{"name":"repository_health_delta","exampleRequest":{"baseScanId":"scan_old","scanId":"scan_new"},"exampleResponse":{"success":true,"taskId":"task_delta","status":"completed","result":{}}},{"name":"get_repository_health","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_health","status":"completed","result":{}}},{"name":"get_task_status","exampleRequest":{"taskId":"task_abc123"},"exampleResponse":{"success":true,"taskId":"task_abc123","status":"completed","result":{}}},{"name":"run_free_safe_fix","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_fix","status":"completed","result":{"finalDecision":"retained"}}},{"name":"run_quick_cleanup","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_quick","status":"completed","result":{}}},{"name":"run_cleanup","exampleRequest":{"scanId":"scan_xyz","operation":"free_proof"},"exampleResponse":{"success":true,"taskId":"task_cleanup","status":"completed","result":{}}},{"name":"verify_cleanup","exampleRequest":{"patchId":"patchkit_abc"},"exampleResponse":{"success":true,"taskId":"task_verify","status":"completed","result":{}}},{"name":"create_cleanup_pr","exampleRequest":{"repoUrl":"https://github.com/user/repo","mode":"safe_only"},"exampleResponse":{"success":true,"taskId":"task_pr","status":"completed","result":{}}},{"name":"configure_repository_policy","exampleRequest":{"repoUrl":"https://github.com/user/repo","protectedGlobs":["app/**/route.ts"]},"exampleResponse":{"success":true,"taskId":"task_policy","status":"completed","result":{}}},{"name":"activate_repo_guard","exampleRequest":{"repoUrl":"https://github.com/user/repo"},"exampleResponse":{"success":false,"taskId":"task_guard","status":"failed","limitations":["Repo Guard not implemented"]}},{"name":"get_scan_status","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_status","status":"completed","result":{"status":"completed"}}},{"name":"get_repository_coverage","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_cov","status":"completed","result":{}}},{"name":"list_findings","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_list","status":"completed","result":{"count":0}}},{"name":"get_finding_evidence","exampleRequest":{"scanId":"scan_xyz","findingId":"f_1"},"exampleResponse":{"success":true,"taskId":"task_ev","status":"completed","result":{}}},{"name":"prepare_cleanup_plan","exampleRequest":{"scanId":"scan_xyz"},"exampleResponse":{"success":true,"taskId":"task_plan","status":"completed","result":{"planCount":0}}},{"name":"get_plan_status","exampleRequest":{"planId":"plan_abc"},"exampleResponse":{"success":true,"taskId":"task_ps","status":"completed","result":{}}},{"name":"get_delivery_status","exampleRequest":{"a2aTaskId":"a2a_abc"},"exampleResponse":{"success":true,"taskId":"task_ds","status":"completed","result":{}}},{"name":"scan_repo_bloat","exampleRequest":{"repoUrl":"https://github.com/Ibrahimmovic/Circle-Arc-Net","branch":"main","mode":"quick"},"exampleResponse":{"ok":true,"tool":"scan_repo_bloat","version":"2.0.0","repo":{"owner":"Ibrahimmovic","name":"Circle-Arc-Net","branch":"main"},"warnings":[]}},{"name":"detect_duplicate_code","exampleRequest":{"repoUrl":"https://github.com/vercel/next-learn","branch":"main","limit":25},"exampleResponse":{"ok":true,"tool":"detect_duplicate_code","version":"2.0.0","summary":{"duplicateClusters":0,"source":"jscpd"},"duplicates":[],"warnings":[]}},{"name":"find_dead_files","exampleRequest":{"repoUrl":"https://github.com/Ibrahimmovic/Circle-Arc-Net","branch":"main","includeOrphans":true},"exampleResponse":{"ok":true,"tool":"find_dead_files","version":"2.0.0","summary":{"unusedFiles":0,"orphanPatterns":0,"safeCandidates":0,"reviewFirst":0},"unusedFiles":[],"orphans":[],"note":"Review First items are not automatic delete candidates.","warnings":[]}},{"name":"find_unused_dependencies","exampleRequest":{"repoUrl":"https://github.com/Ibrahimmovic/Circle-Arc-Net","branch":"main"},"exampleResponse":{"ok":true,"tool":"find_unused_dependencies","version":"2.0.0","summary":{"unusedDependencies":0,"source":"fallback","confidencePolicy":"review_before_removing"},"dependencies":[],"warnings":[]}},{"name":"generate_cleanup_patch","exampleRequest":{"repoUrl":"https://github.com/Ibrahimmovic/Circle-Arc-Net","branch":"main","includeZip":false},"exampleResponse":{"ok":true,"tool":"generate_cleanup_patch","version":"2.0.0","summary":{"safeCandidates":0,"reviewFirst":0,"doNotTouch":0,"bundleFiles":7},"policy":{"autoDeletes":false,"safeCandidatesOnly":true},"warnings":[]}},{"name":"generate_regression_checklist","exampleRequest":{"repoUrl":"https://github.com/Ibrahimmovic/Circle-Arc-Net","branch":"main"},"exampleResponse":{"ok":true,"tool":"generate_regression_checklist","version":"2.0.0","checklistMd":"# RepoDiet Regression Checklist","checks":{"build":["npm install"],"routes":["/"],"apiRoutes":["/api/scans/run"]},"warnings":[]}}]}