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 @@ -14856,6 +14856,108 @@
"login",
"marked"
]
},
"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 @@ -19437,6 +19539,271 @@
}
]
}
},
"/v1/repos/{owner}/{repo}/maintainer-noise": {
"get": {
"summary": "Maintainer queue-noise triage report for a repo (#2228)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "Read-only queue-noise triage report — noise score/level, sources, recommended maintainer actions, and queue health (mirrors loopover_get_maintainer_noise)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MaintainerNoiseReport"
}
}
}
},
"401": {
"description": "Missing or invalid credential"
},
"403": {
"description": "Caller is not a maintainer of this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/ams-miner-cohort": {
"get": {
"summary": "AMS-vs-human contributor-mix cohort comparison for a repo (#6488)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "AMS-miner vs human cohort metrics over the comparison window; `present: false` (never a 404) when the AMS reputation bridge is off or the repo has no submitter activity (mirrors loopover_get_ams_miner_cohort)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AmsMinerCohortComparison"
}
}
}
},
"401": {
"description": "Missing or invalid credential"
},
"403": {
"description": "Caller is not a maintainer of this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/gate-precision": {
"get": {
"summary": "Per-gate-type false-positive precision report for a repo (#554)",
"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": "Read-only per-gate-type precision measurement — blocked / blocked-then-merged / overridden counts and false-positive rates with low-sample guards; never adjusts a gate (mirrors loopover_get_gate_precision)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatePrecisionResponse"
}
}
}
},
"401": {
"description": "Missing or invalid credential"
},
"403": {
"description": "Caller is not a maintainer of this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/outcome-calibration": {
"get": {
"summary": "Slop-band and recommendation outcome calibration for a repo (#543)",
"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": "Read-only measurement of whether higher slop bands merge less often and how agent recommendations are panning out over the optional window (mirrors loopover_get_outcome_calibration)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OutcomeCalibrationResponse"
}
}
}
},
"401": {
"description": "Missing or invalid credential"
},
"403": {
"description": "Caller is not a maintainer of this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
},
"/v1/repos/{owner}/{repo}/activation-preview": {
"get": {
"summary": "Maintainer activation preview over recent PRs for a repo (#701)",
"parameters": [
{
"schema": {
"type": "string"
},
"required": true,
"name": "owner",
"in": "path"
},
{
"schema": {
"type": "string"
},
"required": true,
"name": "repo",
"in": "path"
}
],
"responses": {
"200": {
"description": "Deterministic \"here's what LoopOver would have surfaced\" preview — evaluated/with-findings counts, distinct finding codes, per-PR samples, current review-check mode, and the single recommended next action (mirrors loopover_get_activation_preview)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivationPreviewResponse"
}
}
}
},
"401": {
"description": "Missing or invalid credential"
},
"403": {
"description": "Caller is not a maintainer of this repo"
}
},
"security": [
{
"LoopOverBearer": []
},
{
"LoopOverSessionCookie": []
}
]
}
}
},
"servers": [
Expand Down
Loading
Loading