Skip to content

Commit bfb8995

Browse files
committed
chore(docs): let #9521's generator own the miner tool table
The hand-edited list this branch added is replaced by the generated one now that #9590 has landed -- which is what the issue asked for: the tool tables pick new tools up with no hand-edits. 163 registry entries across the three servers.
1 parent 2397278 commit bfb8995

2 files changed

Lines changed: 99 additions & 0 deletions

File tree

apps/loopover-ui/src/lib/mcp-tool-reference.ts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,20 @@ export const MCP_TOOL_REFERENCE: readonly McpToolReferenceEntry[] = [
108108
"availability": "both",
109109
"description": "Create a queued copilot-only LoopOver agent run. The agent plans and explains; it does not edit code or open PRs."
110110
},
111+
{
112+
"name": "loopover_ams_tenant_health",
113+
"category": "tenant",
114+
"locality": "remote",
115+
"availability": "cloud",
116+
"description": "Operator only. One hosted AMS tenant's health: lifecycle state, its cron-wake cadence, when it last woke, that cycle's outcome, and container health. Read-only, and scoped server-side to the authenticated tenant — a name outside that scope is refused rather than answered."
117+
},
118+
{
119+
"name": "loopover_ams_tenant_wake",
120+
"category": "tenant",
121+
"locality": "remote",
122+
"availability": "cloud",
123+
"description": "Operator only. Trigger an immediate cycle for one hosted AMS tenant, instead of waiting for its next scheduled wake. Bounded by the SAME per-tenant schedule guards the cron path obeys — a wake too soon after the last one is reported as throttled rather than forced through."
124+
},
111125
{
112126
"name": "loopover_apply_labels",
113127
"category": "agent",
@@ -696,6 +710,27 @@ export const MCP_TOOL_REFERENCE: readonly McpToolReferenceEntry[] = [
696710
"availability": "both",
697711
"description": "Mark a contributor's own delivered notifications as read (clears the badge). Self-scoped; pass `ids` to clear specific notifications or omit to clear all."
698712
},
713+
{
714+
"name": "loopover_miner_claim_release",
715+
"category": "ops",
716+
"locality": "miner",
717+
"availability": "selfhost",
718+
"description": "Release this miner's claim on one issue, so the claim ledger no longer reserves it. Dispatches through the governor-gated chokepoint and is recorded in the event ledger with source=mcp."
719+
},
720+
{
721+
"name": "loopover_miner_deny_hooks_decide",
722+
"category": "ops",
723+
"locality": "miner",
724+
"availability": "selfhost",
725+
"description": "Approve or reject one synthesized deny-hook awaiting review. Approving puts it into force for future runs; rejecting discards it. Dispatches through the governor-gated chokepoint and is recorded in the event ledger with source=mcp."
726+
},
727+
{
728+
"name": "loopover_miner_doctor",
729+
"category": "ops",
730+
"locality": "miner",
731+
"availability": "selfhost",
732+
"description": "Read-only diagnostic checks for this AMS miner: state directory, engine version match, store reachability, credentials, and configuration. Split out of loopover_miner_status (#9523) so status stays cheap and doctor can grow checks. Every check runs and reports its own pass/warn/fail — nothing is mutated and nothing stops at the first failure."
733+
},
699734
{
700735
"name": "loopover_miner_get_audit_feed",
701736
"category": "agent",
@@ -724,6 +759,13 @@ export const MCP_TOOL_REFERENCE: readonly McpToolReferenceEntry[] = [
724759
"availability": "selfhost",
725760
"description": "Read-only manage-phase status: the per-managed-PR rows `loopover-miner manage status` reports (branch, CI state, gate verdict, outcome, last-polled-at, queue status/priority) plus the run-level portfolio view (one row per tracked repo: run state, updated-at, PR count). Joins the portfolio queue, the append-only event ledger, and run-state by reusing the existing collectManageStatus/collectRunPortfolio aggregators -- no new join logic. Read-only: never calls GitHub, never mutates local stores. Takes no arguments."
726761
},
762+
{
763+
"name": "loopover_miner_get_metrics_snapshot",
764+
"category": "ops",
765+
"locality": "miner",
766+
"availability": "selfhost",
767+
"description": "The same Prometheus metric families the `metrics` CLI exports, as structured JSON — so an agent can read them without parsing the text exposition format. Read-only."
768+
},
727769
{
728770
"name": "loopover_miner_get_plan",
729771
"category": "agent",
@@ -745,6 +787,20 @@ export const MCP_TOOL_REFERENCE: readonly McpToolReferenceEntry[] = [
745787
"availability": "selfhost",
746788
"description": "Read-only per-repo miner run-state (idle/discovering/planning/preparing). Pass repoFullName for a single repo (a null state means none has been recorded for it yet), or omit it to list every repo's state. The read-only analog of ORB's loopover_get_automation_state; adds no state-set or mutation capability."
747789
},
790+
{
791+
"name": "loopover_miner_governor_pause",
792+
"category": "ops",
793+
"locality": "miner",
794+
"availability": "selfhost",
795+
"description": "Pause this miner's governor: no new work is admitted until it resumes. Administrative control, not a content write — the same action the dashboard's pause button dispatches, through the same governor-gated chokepoint, firing the same notification side-channel. Recorded in the event ledger with source=mcp."
796+
},
797+
{
798+
"name": "loopover_miner_governor_resume",
799+
"category": "ops",
800+
"locality": "miner",
801+
"availability": "selfhost",
802+
"description": "Resume this miner's governor after a pause, re-admitting work. The same action the dashboard's resume button dispatches, through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp."
803+
},
748804
{
749805
"name": "loopover_miner_list_claims",
750806
"category": "agent",
@@ -766,6 +822,34 @@ export const MCP_TOOL_REFERENCE: readonly McpToolReferenceEntry[] = [
766822
"availability": "selfhost",
767823
"description": "Health check for the loopover-miner MCP server. Returns a static status object confirming the server is reachable. Reads no AMS state and takes no arguments."
768824
},
825+
{
826+
"name": "loopover_miner_purge_repo",
827+
"category": "ops",
828+
"locality": "miner",
829+
"availability": "selfhost",
830+
"description": "Right-to-be-forgotten: delete every trace of one repo from this miner's local stores, returning the same per-store report as the CLI. IRREVERSIBLE — the rows are gone, not archived. Requires confirm=true, elicits confirmation where the client supports it, and dispatches through the governor-gated chokepoint."
831+
},
832+
{
833+
"name": "loopover_miner_queue_release",
834+
"category": "ops",
835+
"locality": "miner",
836+
"availability": "selfhost",
837+
"description": "Release one claimed portfolio-queue item back to unclaimed, so another cycle can pick it up. Mirrors the dashboard's release action and dispatches through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp."
838+
},
839+
{
840+
"name": "loopover_miner_queue_requeue",
841+
"category": "ops",
842+
"locality": "miner",
843+
"availability": "selfhost",
844+
"description": "Return one portfolio-queue item to the pending pool for another attempt. Mirrors the dashboard's requeue action and dispatches through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp."
845+
},
846+
{
847+
"name": "loopover_miner_run_migrations",
848+
"category": "ops",
849+
"locality": "miner",
850+
"availability": "selfhost",
851+
"description": "Apply pending schema migrations to this miner's EXISTING local stores — it never creates a store that is not already there. Reports each store as migrated, up-to-date, or failed. There is no dry-run mode: applying a migration is opening the store, and the CLI has none either. Dispatches through the governor-gated chokepoint."
852+
},
769853
{
770854
"name": "loopover_miner_status",
771855
"category": "utility",

packages/loopover-miner/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,21 @@ It exposes these read-only tools, generated from the `@loopover/contract` regist
262262
| `loopover_miner_list_claims` | Read-only listing of the local claim ledger: which issues this miner has claimed (repo, issue number, status, claimed-at, note). Optional repoFullName/status filters pass through to the existing listClaims query. Exposes no claim/release mutation and no conflict-resolution logic. |
263263
| `loopover_miner_list_plans` | Read-only list of the miner's PERSISTED plan store (planId, plan DAG, status, updatedAt), optionally filtered by status. Wraps plan-store.js's existing listPlans query -- no new logic, no mutation. NOTE: this is the store-backed AMS plan store; it is distinct from ORB's stateless loopover_plan_status tool, which reads the caller's in-memory plan object rather than any persisted store. |
264264

265+
#### ops
266+
267+
| Tool | Description |
268+
| --- | --- |
269+
| `loopover_miner_claim_release` | Release this miner's claim on one issue, so the claim ledger no longer reserves it. Dispatches through the governor-gated chokepoint and is recorded in the event ledger with source=mcp. |
270+
| `loopover_miner_deny_hooks_decide` | Approve or reject one synthesized deny-hook awaiting review. Approving puts it into force for future runs; rejecting discards it. Dispatches through the governor-gated chokepoint and is recorded in the event ledger with source=mcp. |
271+
| `loopover_miner_doctor` | Read-only diagnostic checks for this AMS miner: state directory, engine version match, store reachability, credentials, and configuration. Split out of loopover_miner_status (#9523) so status stays cheap and doctor can grow checks. Every check runs and reports its own pass/warn/fail — nothing is mutated and nothing stops at the first failure. |
272+
| `loopover_miner_get_metrics_snapshot` | The same Prometheus metric families the `metrics` CLI exports, as structured JSON — so an agent can read them without parsing the text exposition format. Read-only. |
273+
| `loopover_miner_governor_pause` | Pause this miner's governor: no new work is admitted until it resumes. Administrative control, not a content write — the same action the dashboard's pause button dispatches, through the same governor-gated chokepoint, firing the same notification side-channel. Recorded in the event ledger with source=mcp. |
274+
| `loopover_miner_governor_resume` | Resume this miner's governor after a pause, re-admitting work. The same action the dashboard's resume button dispatches, through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp. |
275+
| `loopover_miner_purge_repo` | Right-to-be-forgotten: delete every trace of one repo from this miner's local stores, returning the same per-store report as the CLI. IRREVERSIBLE — the rows are gone, not archived. Requires confirm=true, elicits confirmation where the client supports it, and dispatches through the governor-gated chokepoint. |
276+
| `loopover_miner_queue_release` | Release one claimed portfolio-queue item back to unclaimed, so another cycle can pick it up. Mirrors the dashboard's release action and dispatches through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp. |
277+
| `loopover_miner_queue_requeue` | Return one portfolio-queue item to the pending pool for another attempt. Mirrors the dashboard's requeue action and dispatches through the same governor-gated chokepoint. Recorded in the event ledger with source=mcp. |
278+
| `loopover_miner_run_migrations` | Apply pending schema migrations to this miner's EXISTING local stores — it never creates a store that is not already there. Reports each store as migrated, up-to-date, or failed. There is no dry-run mode: applying a migration is opening the store, and the CLI has none either. Dispatches through the governor-gated chokepoint. |
279+
265280
#### utility
266281

267282
| Tool | Description |

0 commit comments

Comments
 (0)