Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

HTTP API: guard

Zda je zápis do souboru tohoto checkoutu pokrytý claimem: rozsahem aktivní úlohy, nebo živým mesh claimem píšící relace. Posouzení, na které se před každou úpravou ptá pre-tool hook providera (majordomus guard hook), přepínané session.edits_require_claim.

Vykresleno z docs/generated/openapi.json, který spustitelný soubor generuje ze svého registru schopností a CI jej odmítne, je-li zastaralý. Surový dokument je na /openapi.json; běžící server servíruje stejný dokument na vlastní /openapi.json a Swagger UI na /swagger.

guard

Zda je zápis do souboru tohoto checkoutu pokrytý claimem: rozsahem aktivní úlohy, nebo živým mesh claimem píšící relace. Posouzení, na které se před každou úpravou ptá pre-tool hook providera (majordomus guard hook), přepínané session.edits_require_claim.

GET /api/v1/guard/edit guard.edit

Posoudit jednu úpravu

Zda smí daná relace nyní zapsat danou cestu: povoleno, když je vypnuto session.edits_require_claim politiky, cesta je mimo checkout nebo jeho lokální stav, repozitář nedeklaruje povolený mesh, rozsah aktivní úlohy ji pokrývá nebo ji pokrývá živý mesh claim relace; jinak odmítnuto jako nenárokované, s nápravou. Co nelze přečíst — politika, mesh — se propustí a pojmenuje, nikdy se neodmítne.

  • query
  • experimentální
  • vyžaduje se měření výkonu
  • cache vypnuta
  • Nástroj MCP majordomus_guard_edit

Parametry dotazu

názevtyppovinnépopispříklady
path string ano Cesta, která se má zapsat: absolutní, nebo relativní ke kořeni repozitáře. v repozitáři: "docs/MESH.md"outside: "/nonexistent/outside.txt"
session string ne Id zapisující relace na meshi (`claude-code-<session id>` pro Claude Code); bez něj může zápis pokrýt jen rozsah aktivní úlohy. in-repository: "claude-code-bench"

Vyzkoušejte

Port je ten, který server zalogoval; 8741 je ten, o který žádá jako první. Hodnoty jsou první příklad operace.

curl -s "http://127.0.0.1:8741/api/v1/guard/edit?path=docs%2FMESH.md&session=claude-code-bench"

Testováno v apps/majordomus-cli/tests/http_serve.rs, který přehrává routu s těmito hodnotami proti serveru na skutečném socketu.

Odpovědi

statustělovýznam
200 EditVerdict Posoudit jednu úpravu: výsledek.
400 ErrorBody invalid_input: Vstup neodpovídá schématu: parametr špatného typu, neznámý parametr nebo hodnota, kterou schopnost odmítne.
404 ErrorBody not_found: Vstup pojmenovává něco, co repozitář nemá.
500 ErrorBody internal: Schopnost selhala z vlastního důvodu; zpráva ho pojmenovává.
výchozí ErrorBody Jakékoli jiné selhání, které transport hlásí: 405 method_not_allowed pro jinou metodu na této cestě, 400 invalid_input pro tělo, které není objektem JSON.

Schémata

Komponenty, které používají jen operace tohoto tagu. Každý řádek je pole daného typu, jeho doc komentář je popis; typ vlastněný jinou stránkou na ni odkazuje.

EditVerdict

object
Odpověď na jednu úpravu: zda smí pokračovat, jedno slovo, na kterém se rozhodlo, věta, kterou člověk čte, a u odmítnutí to, co by ji dovolilo. guard.edit ji vrátí tak, jak je; guard hook ji promění v kód ukončení.

use majordomus_cli::guard::{judge_facts, ClaimSource, EditFacts, EditVerdict};

let facts = EditFacts {
    required: Ok(false),
    mesh_enabled: true,
    task: None,
    session: None,
    claims: ClaimSource::Claims(vec![]),
};
let v: EditVerdict = judge_facts("a.md", Some("a.md"), facts);
assert!(v.allowed);
assert_eq!(v.ground, "off");
let json = serde_json::to_value(&v).unwrap();
assert!(json.get("remedy").is_none(), "an allowed edit carries no remedy");
vlastnosttyppovinnépopis
povoleno boolean ano Zda úprava smí pokračovat.
path string ano Cesta, na kterou se ptalo, relativní k repozitáři, když je uvnitř checkoutu.
základ string ano Proč, jedním slovem: off, outside, local, no_mesh, task, claim, undecided nebo unclaimed. Odmítá jen unclaimed.
detail string ano Věta, kterou člověk čte.
náprava string | null ne Co úpravu dovoluje, když je odmítnuta.

Používá guard.edit

Prohledává názvy a popisy všech stránek, které tento web publikuje.