Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
367 changes: 367 additions & 0 deletions apps/loopover-ui/public/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -15256,6 +15256,108 @@
"required": [
"ok"
]
},
"GatePrecisionResponse": {
"type": "object",
"properties": {
"repoFullName": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"windowDays": {
"type": "number",
"nullable": true
},
"perGateType": {
"type": "array",
"items": {
"nullable": true
}
},
"overall": {
"nullable": true
},
"signals": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"OutcomeCalibrationResponse": {
"type": "object",
"properties": {
"repoFullName": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"windowDays": {
"type": "number",
"nullable": true
},
"slop": {
"nullable": true
},
"recommendations": {
"nullable": true
},
"signals": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"ActivationPreviewResponse": {
"type": "object",
"properties": {
"repoFullName": {
"type": "string"
},
"generatedAt": {
"type": "string"
},
"currentReviewCheckMode": {
"type": "string"
},
"aiReviewConfigured": {
"type": "boolean"
},
"evaluatedCount": {
"type": "number"
},
"withFindingsCount": {
"type": "number"
},
"findingCodeCounts": {
"type": "array",
"items": {
"nullable": true
}
},
"samples": {
"type": "array",
"items": {
"nullable": true
}
},
"recommendedAction": {
"type": "string",
"nullable": true
},
"summary": {
"type": "string"
}
}
}
},
"parameters": {},
Expand Down Expand Up @@ -20022,6 +20124,271 @@
}
]
}
},
"/v1/repos/{owner}/{repo}/maintainer-noise": {
"get": {
"summary": "Maintainer queue-noise triage report for a repository (#9302)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "Noise score/level, specific noise sources to clear first, and recommended maintainer actions — mirrors the loopover_get_maintainer_noise MCP tool. Maintainer-authenticated; advisory only",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintainerNoiseReport"
}
}
}
},
"401": {
"description": "Missing or invalid static protected API token"
},
"403": {
"description": "Static mcp credential is outside MCP_READ_REPO_ALLOWLIST for this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/ams-miner-cohort": {
"get": {
"summary": "AMS-vs-human contributor-mix cohort comparison for a repository (#9302)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "Submitter counts, PR volume, acceptance rate, review-cycle, and time-to-merge metrics for AMS-tracked vs human submitters — mirrors the loopover_get_ams_miner_cohort MCP tool. Maintainer-authenticated; advisory only",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AmsMinerCohortComparison"
}
}
}
},
"401": {
"description": "Missing or invalid static protected API token"
},
"403": {
"description": "Static mcp credential is outside MCP_READ_REPO_ALLOWLIST for this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/gate-precision": {
"get": {
"summary": "Per-gate-type false-positive precision measurement for a repository (#9302)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
},
{
"schema": {
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"required": false,
"name": "windowDays",
"in": "query"
}
],
"responses": {
"200": {
"description": "Blocked / blocked-then-merged / overridden counts and false-positive rates with low-sample guards — mirrors the loopover_get_gate_precision MCP tool. Maintainer-authenticated; measurement only",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatePrecisionResponse"
}
}
}
},
"401": {
"description": "Missing or invalid static protected API token"
},
"403": {
"description": "Static mcp credential is outside MCP_READ_REPO_ALLOWLIST for this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/outcome-calibration": {
"get": {
"summary": "Slop-band and recommendation outcome calibration for a repository (#9302)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
},
{
"schema": {
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true
},
"required": false,
"name": "windowDays",
"in": "query"
}
],
"responses": {
"200": {
"description": "Whether higher-slop bands merge less often and how agent recommendations are panning out — mirrors the loopover_get_outcome_calibration MCP tool. Maintainer-authenticated; measurement only",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OutcomeCalibrationResponse"
}
}
}
},
"401": {
"description": "Missing or invalid static protected API token"
},
"403": {
"description": "Static mcp credential is outside MCP_READ_REPO_ALLOWLIST for this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/activation-preview": {
"get": {
"summary": "Deterministic maintainer activation preview for a repository (#9302)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "A deterministic \"here's what LoopOver would have surfaced\" run of the advisory engine over recent PRs — mirrors the loopover_get_activation_preview MCP tool. Maintainer-authenticated; advisory only, never runs AI",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivationPreviewResponse"
}
}
}
},
"401": {
"description": "Missing or invalid static protected API token"
},
"403": {
"description": "Static mcp credential is outside MCP_READ_REPO_ALLOWLIST for this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
}
},
"servers": [
Expand Down
Loading
Loading