prostředí
Čím tento checkout právě teď je: projekt a jeho verze, repozitář a jeho vrstva, správa verzí, toolchainy, které deklaruje, co vrstva obsahuje, workflow, která člověk může spustit, projekce providerů a lokální služby — jeden typovaný snímek s položkou původu pro každou hodnotu v něm. Banner direnv, přehled Cockpitu i tato trasa jsou vykreslení téže hodnoty.
Prostředí repozitáře
Jeden snímek tohoto checkoutu: identita projektu, identita repozitáře, správa verzí, deklarované toolchainy, co vrstva obsahuje spočítané podle druhu, workflow, která runner popisuje, projekce providerů vůči politice, která je vykresluje, a lokální služby s adresou, kterou zveřejnil běžící server. Každá hodnota nese, odkud pochází.
- query
- behaviorally_verified
- vyžaduje se měření výkonu
- cache vypnuta
- Nástroj MCP majordomus_environment
- zdroj MCP {"name": "environment", "uri": "majordomus://environment"}
Parametry dotazu
| název | typ | povinné | popis | příklady |
| probe_services |
boolean |
ne |
Kontaktovat lokální adresu, kterou publikoval běžící server, a říct, zda odpovídá. Ve výchozím stavu vypnuto: obsluhovaný požadavek by neměl otevírat socket k jinému serveru jménem svého volajícího a volající je obvykle ten server. |
výchozí: false |
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/environment?probe_services=false"
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
| status | tělo | význam |
| 200 |
RepositoryEnvironment |
Prostředí repozitáře: 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. |
Odkud se vzala hodnota prostředí
Původ snímku: pro každé pole, co o něm rozhodlo — konstanta z doby kompilace, soubor, příkaz nebo cache — který resolver je četl a jak moc lze důvěřovat. Zúžit na jedno pole nebo na prefix lze jménem.
- query
- behaviorally_verified
- vyžaduje se měření výkonu
- cache vypnuta
- nástroj MCP majordomus_environment_explain
Parametry dotazu
| název | typ | povinné | popis | příklady |
| pole |
string |
ne |
Pole v tečkované formě (`services.url`, `capabilities.objects`); každé pole, když chybí. |
one-field: "project.version" |
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/environment/explain?field=project.version"
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
| status | tělo | význam |
| 200 |
EnvironmentProvenance |
Odkud pochází hodnota prostředí: 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. |
Zda je Majordomus zde v platnosti a co to dokazuje
Jeden verdikt za každé tvrzení o tomto checkoutu — git; epizoda, její zasvěcení, úloha a předávka; politika, korpus pravidel a ADR; sdílený server a povrchy MCP, API a Cockpit, které servíruje; nástěnka peerů; zaznamenané běhy testů, vynucování pravidel, projekce providerů, vygenerovaná dokumentace a nasazení — každý `verified`, `active`, `fresh`, `stale`, `degraded`, `unavailable`, `failed`, `unknown` nebo `not_applicable`, s důkazy, na nichž stojí. Verdikt, který tvrdí, že něco platí, nelze vytvořit bez důkazů. Stejná hodnota, kterou vypisuje příkazová řádka a shrnuje úvodní banner.
- query
- behaviorally_verified
- vyžaduje se měření výkonu
- cache vypnuta
- Nástroj MCP majordomus_preflight
- Zdroj MCP {"name": "preflight", "uri": "majordomus://environment/preflight"}
Parametry dotazu
| název | typ | povinné | popis | příklady |
| probe |
boolean |
ne |
Zeptá se na loopback adresu, kterou publikoval server tohoto checkoutu, a na jeho nástěnku peerů. Ve výchozím stavu vypnuto: obsloužený požadavek odpovídá z toho, co tento proces vidí, a když tento proces drží lease checkoutu, je to samo o sobě důkaz. |
sealed: false |
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/environment/preflight?probe=false"
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
| status | tělo | význam |
| 200 |
Preflight |
Zda je Majordomus zde v platnosti a co to dokazuje: 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.
Jistota
"exact" | "cached" | "unknown"
Nakolik lze rozlišené hodnotě důvěřovat.
exactPři tomto vyřešení načteno z kanonického zdroje.cachedČteno z cache, jejíž otisk stále odpovídá jejím vstupům.unknownNevyřešeno.
Používá FieldSource
EnvironmentProvenance
object
Odkud pocházejí hodnoty jednoho snímku.
| vlastnost | typ | povinné | popis |
| rozlišení |
Resolution → Resolution |
ano |
Jak byl rozřešen snapshot za těmito položkami. |
| pole |
array of FieldSource → FieldSource |
ano |
Jedna položka na pole, v pořadí, v jakém je resolver vytvořil. |
Používá environment.explain
FieldSource
object
Odkud pochází jedno pole snapshotu. Díky tomu lze odvozený systém ladit: každý fakt může jmenovat věc, která o něm rozhodla, takže na „proč to říká“ odpovídá nástroj, ne čtení jeho zdroje.
| vlastnost | typ | povinné | popis |
| pole |
string |
ano |
Pole v tečkované formě: services.cockpit.url, vcs.branch. |
| hodnota |
string | null |
ne |
Hodnota tak, jak se objevuje ve snímku, vykreslená pro člověka; chybí u pole, které se rozlišilo na nic. |
| zdroj |
string |
ano |
Co rozhodlo: soubor, příkaz, konstanta z doby kompilace, cache. |
| resolver |
string |
ano |
Část tohoto spustitelného souboru, která to přečetla. |
| jistota |
Confidence → Confidence |
ano |
Jak jistá je hodnota. |
Používá EnvironmentProvenance RepositoryEnvironment
GitWorkingTree
object
Stav jednoho pracovního stromu, jak ho hlásí porcelain v2.
| vlastnost | typ | povinné | popis |
| head |
string | null |
ne |
Commit, který HEAD jmenuje, nebo None v repozitáři, který ještě nemá commity. |
| větev |
string | null |
ne |
Větev, nebo None, když je HEAD odpojený nebo nenarozený. |
| detached |
boolean |
ano |
Zda HEAD jmenuje přímo commit, a ne větev. |
| upstream |
string | null |
ne |
Upstream, který větev sleduje, pokud nějaký sleduje. |
| napřed |
integer | null |
ne |
Commity, které tato větev má a její upstream ne; None bez upstreamu. |
| pozadu |
integer | null |
ne |
Commity, které má upstream a tato větev ne; None bez upstreamu. |
| připraveno k zapsání |
integer (uint32) |
ano |
Sledované soubory s připravenými změnami. |
| změněno |
integer (uint32) |
ano |
Sledované soubory změněné v pracovním stromu a nezařazené do stage. |
| nesledováno |
integer (uint32) |
ano |
Soubory, které git nesleduje a neignoruje. |
| v konfliktu |
integer (uint32) |
ano |
Soubory s nevyřešeným sloučením. |
| čisté |
boolean |
ano |
Zda není vůbec nic staged, upraveno, nesledováno ani v konfliktu. |
| changed_paths |
array of string |
ne |
Každá cesta, která není čistá, relativní k repozitáři, v pořadí gitu. Slouží k rozhodnutí, zda je cachovaná vrstva stále platná, a nikomu se neukazuje. |
Používá VcsState
KindCount
object
Kolik platných objektů jednoho druhu vrstva drží.
| vlastnost | typ | povinné | popis |
| druh |
string |
ano |
Druh, jak jej deklaruje share/kinds.yaml. |
| počet |
integer (uint) |
ano |
Kolik jeho objektů index drží. |
Používá LayerSummary
LayerSummary
object
Co vrstva drží, spočítáno podle druhu, plus registr, který spustitelný soubor skládá. Každé zde uvedené číslo pochází z indexu — týchž objektů, které servíruje každý jiný povrch — a nikdy z počítání souborů odpovídajících vzoru: soubor, který se neparsuje, není pravidlo, a počet, který tvrdí opak, je lež, podle které člověk jedná.
| vlastnost | typ | povinné | popis |
| state |
TierState → TierState |
ano |
Odkud tato čísla pocházejí. |
| kinds |
pole KindCount → KindCount |
ne |
Jeden záznam na přítomný druh, seřazeno podle druhu. |
| objekty |
integer | null |
ne |
Kolik objektů index obsahuje. |
| capabilities |
integer | null |
ne |
Kolik schopností registr drží. |
| neplatné |
integer | null |
ne |
Kolik souborů vrstva deklarovala, které se nestaly objekty. |
| odmítnuto |
pole Diagnostic → Diagnostic |
ne |
Které, a co rozhodlo: vlastní chybové diagnostiky indexu, každá jmenující soubor, kód a omezení, které porušil. Počet říká, že je něco špatně; jen tohle říká co a kde, a čtenář, který má počet a ne seznam, musí hledat v logu odpověď, kterou index už vytvořil. |
| degradováno |
boolean | null |
ne |
Zda se vrstva četla čistě. |
Používá RepositoryEnvironment
Preflight
object
Zda je Majordomus v tomto checkoutu v platnosti, tvrzení po tvrzení, s důkazy.
use majordomus_cli::environment::preflight::{derive, Observations, Preflight};
let p = derive(&Observations::empty("demo", 0));
assert_eq!(p.schema, Preflight::schema_id());
assert_eq!(p.verdicts().len(), p.sections.iter().map(|s| s.checks.len()).sum::<usize>());
| vlastnost | typ | povinné | popis |
| schema |
string |
ano |
majordomus/preflight/v1. |
| generated_at |
string |
ano |
Kdy byla pozorování pořízena, RFC 3339 v UTC. |
| rozlišení |
Resolution → Resolution |
ano |
Jak bylo určeno prostředí za ní. |
| repozitář |
string |
ano |
Název repozitáře. |
| větev |
string | null |
ne |
Větev, když ji git pojmenoval. |
| head |
string | null |
ne |
Commit, který pojmenovává HEAD. |
| sekce |
pole PreflightSection → PreflightSection |
ano |
Skupiny kontrol. |
| pozornost |
array of string |
ano |
Id všech kontrol, které vyžadují pozornost, od nejnaléhavější. |
Používá environment.preflight
PreflightCheck
object
Jedno tvrzení, jeho verdikt a na čem verdikt stojí.
use majordomus_cli::environment::preflight::{Check, Evidence, Verdict};
// a claim of something in force without evidence is not accepted as one
let bare = Check::new("integration.mcp", "MCP", Verdict::Verified, "healthy", vec![]);
assert_eq!(bare.verdict, Verdict::Unknown);
assert!(bare.summary.contains("no evidence"));
let backed = Check::new(
"integration.mcp", "MCP", Verdict::Verified, "served",
vec![Evidence::new("GET /", "surface mcp ready")],
);
assert_eq!(backed.verdict, Verdict::Verified);
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Stabilní id s tečkami, <section>.<claim>. |
| název |
string |
ano |
Krátký název, který člověk čte. |
| verdikt |
PreflightVerdict → PreflightVerdict |
ano |
Co repozitář může ukázat. |
| summary |
string |
ano |
Verdikt jednou větou, s čísly, která o něm rozhodla. |
| evidence |
pole PreflightEvidence → PreflightEvidence |
ne |
Všechno, na čem verdikt stojí. Nikdy prázdné pro verdikt, který něco dokazuje. |
| next |
string | null |
ne |
Příkaz, který ukáže víc, nebo který mění verdikt. |
Používá PreflightSection
PreflightEvidence
object
Jedna věc, na které verdikt spočívá: kde byla přečtena a co se tam vidělo.
use majordomus_cli::environment::preflight::Evidence;
let e = Evidence::new(".ai/repo/evidence/ledger.json", "6 recorded runs");
assert_eq!(e.source, ".ai/repo/evidence/ledger.json");
| vlastnost | typ | povinné | popis |
| zdroj |
string |
ano |
Soubor, příkaz, trasa nebo schopnost, která byla přečtena. |
| pozorováno |
string |
ano |
Co řekl, jednou frází. |
Používá PreflightCheck
PreflightSection
object
Skupina kontrol: repository, session, governance, integration, verification.
use majordomus_cli::environment::preflight::{derive, Observations, Section};
let p = derive(&Observations::empty("demo", 0));
let ids: Vec<&str> = p.sections.iter().map(|s| s.id.as_str()).collect();
assert_eq!(ids, ["repository", "session", "governance", "integration", "verification"]);
// every check in a section carries the section's id as its prefix
let session: &Section = &p.sections[1];
assert!(session.checks.iter().all(|c| c.id.starts_with("session.")));
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Stabilní id, předpona každé kontroly v něm. |
| název |
string |
ano |
Nadpis, který člověk čte. |
| kontroly |
pole typu PreflightCheck → PreflightCheck |
ano |
Kontroly v pořadí, v jakém se vykreslují. |
Používá Preflight
PreflightVerdict
"verified" | "active" | "fresh" | "stale" | "degraded" | "unavailable" | "failed" | "unknown" | "not_applicable"
Co o jednom tvrzení může repozitář ukázat.
Devět slov, ne boolean, protože akce, které vyžadují, se liší: stale je znovu spustit důkaz, unavailable je nic tam není, unknown je nikdo se nepodíval a not_applicable je není co hledat.
use majordomus_cli::environment::preflight::Verdict;
assert!(Verdict::Verified.proves() && Verdict::Active.proves() && Verdict::Fresh.proves());
assert!(!Verdict::Stale.proves() && !Verdict::NotApplicable.proves());
assert_eq!(Verdict::NotApplicable.as_str(), "not_applicable");
// the most urgent first: a failure outranks a stale proof, which outranks an absence
assert!(Verdict::Failed.urgency() < Verdict::Stale.urgency());
assert_eq!(Verdict::Verified.urgency(), None);
verifiedDokázáno proti tomuto stromu zaznamenaným výsledkem nebo přímou odpovědí.activeV platnosti nyní, pozorováno přímo, bez zaznamenaného k ověření.freshPosouzeno jako dostatečně čerstvé, aby se podle něj jednalo, vůči deklarovanému prahu nebo aktuálnímu commitu.staleDůkaz existuje, ale týká se jiného commitu, stromu nebo okamžiku.degradedV platnosti, ale ve formě, kterou by tento program neposkytoval.unavailableNení co pozorovat.failedPozorováno a neplatilo.unknownNikdo se nepodíval, nebo se pohled nedokončil.not_applicableNení tu co posuzovat.
Používá PreflightCheck
ProjectIdentity
object
Čím projekt je, z manifestu crate a prózy zapsané jednou v crate::about. Každé pole zde je konstanta tohoto programu v době kompilace: není co číst, není co parsovat a nic, co by se mohlo rozcházet s binárkou, která odpovídá.
| vlastnost | typ | povinné | popis |
| název |
string |
ano |
Název produktu. |
| verze |
string |
ano |
Verze tohoto spustitelného souboru z manifestu cratu. |
| summary |
string |
ano |
Jedna věta: co to je. |
| licence |
string |
ano |
Identifikátor licence SPDX. |
| repozitář |
string |
ano |
Zdrojový repozitář. |
| cíl |
string |
ano |
Cílový triple Rustu, pro který byl tento spustitelný soubor sestaven. |
| profil |
string |
ano |
Profil cargo, s nímž bylo sestaveno. |
| commit |
string |
ano |
Commit, ze kterého bylo sestaveno, nebo unknown mimo pracovní strom. |
Používá RepositoryEnvironment
ProjectionState
"current" | "stale" | "absent" | "unknown"
Jak si jedna projekce providera stojí vůči své politice.
currentSoubor odpovídá vykreslení bajt po bajtu.staleSoubor se liší: byl upraven ručně, nebo se pod ním posunula politika.absentSoubor tam není.unknownNebylo možné vykreslit, takže nelze nic říct.
Používá ProviderState
ProviderState
object
Jedna projekce poskytovatele, kterou politika deklaruje, a zda soubor na disku stále odpovídá tomu, co politika vykresluje.
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Id poskytovatele, jak ho politika jmenuje: agents, claude-code. |
| cíl |
string |
ano |
Soubor relativní k repozitáři, do kterého se vykresluje. |
| state |
ProjectionState → ProjectionState |
ano |
Zda soubor odpovídá tomu, co politika nyní vykresluje. |
| always_loaded |
boolean |
ano |
Zda poskytovatel načítá tento soubor do každého kontextu. |
Používá RepositoryEnvironment
ReasoningSummary
object
Uvažování tak, jak ho hlásí prostředí: souhrn
reasoning.advisors ze stejného odvození, nikdy vlastní seznam poskytovatelů.
use majordomus_cli::environment::ReasoningSummary;
let summary: ReasoningSummary = serde_json::from_value(serde_json::json!({
"operational": true, "mode": "offline", "available": ["local"], "unavailable": 2,
})).unwrap();
assert!(summary.operational);
assert_eq!(summary.available, ["local"]);
assert_eq!(serde_json::to_value(&summary).unwrap()["unavailable"], 2);
| vlastnost | typ | povinné | popis |
| provozní |
boolean |
ano |
Uvažování funguje i bez jediného poradce; vždy true. |
| režim |
string |
ano |
Platný režim: offline, ci, fast, standard, strict. |
| dostupné |
array of string |
ano |
Advisoři, kterých se lze nyní ptát, v pořadí preference. |
| nedostupné |
integer (uint) |
ano |
Kolik deklarovaných poradců nemusí, každý volitelný. |
Používá RepositoryEnvironment
RepositoryEnvironment
object
Snímek: čím tento checkout právě teď je.
Každý povrch, který cokoli z toho hlásí, vykresluje tuto hodnotu. Kolekce jsou v zdokumentovaném, stabilním pořadí — druhy a workflow podle jména, služby a poskytovatelé v pořadí, v jakém je deklaruje jejich kanonický zdroj, diagnostika v pořadí nalezení — takže dva snímky téhož repozitáře se serializují shodně až na RepositoryEnvironment::generated_at.
| vlastnost | typ | povinné | popis |
| schema |
string |
ano |
Smlouva, kterou se tento dokument řídí, majordomus/repository-environment/v1. |
| generated_at |
string |
ano |
Kdy byl pořízen, RFC 3339 v UTC. |
| rozlišení |
Resolution → Resolution |
ano |
Jak úplně se vyřešilo. |
| projekt |
ProjectIdentity → ProjectIdentity |
ano |
Co projekt je. |
| repozitář |
RepositoryIdentity → RepositoryIdentity |
ano |
Čím checkout je. |
| vcs |
VcsState → VcsState |
ano |
Co říká správa verzí. |
| toolchainy |
pole ToolchainState → ToolchainState |
ano |
Toolchainy, které repozitář deklaruje, seřazené podle id. |
| vrstva |
LayerSummary → LayerSummary |
ano |
Co vrstva obsahuje. |
| workflow |
WorkflowCatalogue → WorkflowCatalogue |
ano |
Pracovní postupy, které může člověk spustit. |
| providers |
pole ProviderState → ProviderState |
ano |
Projekce poskytovatelů, které politika deklaruje, v pořadí politiky. |
| služby |
pole ServiceState → ServiceState |
ano |
Lokální služby v pořadí, v jakém je deklaruje tabulka služeb. |
| reasoning |
ReasoningSummary | null → ReasoningSummary |
ne |
Reasoning (ADR 0098): funkční bez ohledu na poradce, platný režim a kolik volitelných poradců lze oslovit. Chybí, když distribuce žádné nedeklaruje. |
| diagnostika |
pole Diagnostic → Diagnostic |
ano |
Vše, co se pokazilo nebo stojí za zmínku, v pořadí, v jakém to bylo nalezeno. |
| provenance |
array of FieldSource → FieldSource |
ano |
Odkud pochází každé pole. |
Používá environment.status
RepositoryIdentity
object
Checkout, jehož je tento snímek.
| vlastnost | typ | povinné | popis |
| název |
string |
ano |
Jméno, kterým jej osoba nazývá: základní název kořenového adresáře. |
| root |
string |
ano |
Kořen, absolutně. Stejná hodnota, kterou hlásí repository.info. |
| layer_schema |
string |
ano |
schema, ai-repository/v1 manifestu. |
| sekce |
mapa řetězců |
ano |
Název sekce k cestě relativní k repozitáři, jak je deklaruje manifest. |
| local_path |
string |
ano |
Lokální polovina vrstvy pro checkout, relativně k repozitáři. Nikdy se nesleduje a ukládá se tam vše, co ví jen tento checkout — lease serveru, cache tohoto snímku. |
| linked_worktree |
boolean |
ano |
Zda je tento checkout propojený pracovní strom, a ne hlavní. |
Používá RepositoryEnvironment
Řešení
"fast" | "full"
Jak úplně byl snapshot rozlišen. Nese se ve snapshotu, protože spotřebitel musí umět rozlišit „neběží žádný server“ od „nikdo se nepodíval“.
fastJen to, co je dost levné pro prompt shellu; zbytek z cache.fullVšechno, včetně indexu. Zapisuje cache.
Používá EnvironmentProvenance Preflight RepositoryEnvironment
ServiceAvailability
"available" | "not_running" | "unknown"
Zda služba odpovídá. Unknown je skutečná odpověď a nikdy zamaskované no: sonda, která vypršela, a port, který odmítl spojení, vedou čtenáře k odlišným akcím.
availableAdresa přijala spojení.not_runningŽádný server nedrží lease repozitáře, nebo adresa odmítla spojení.unknownSonda neskončila v rozpočtu, nebo toto rozlišení nesondovalo.
Používá ServiceState
ServiceState
object
Jedna lokální služba tohoto repozitáře: co to je, kde je a zda tam něco odpovídá. Cesta je ta, kterou obsluhuje router; URL existuje jen dokud běží server.
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Stabilní id, [a-z][a-z0-9-]*. |
| název |
string |
ano |
Krátký název, který člověk čte. |
| path |
string |
ano |
Absolutní cesta, pod níž ji router obsluhuje. |
| url |
string | null |
ne |
Úplné URL, když server běží a publikoval svou adresu. |
| dostupnost |
ServiceAvailability → ServiceAvailability |
ano |
Zda tam něco odpovídá. |
Používá RepositoryEnvironment
TierState
"resolved" | "cached" | "unavailable"
Odkud pochází úroveň snímku. Úroveň, kterou aktivní vyřešení nedosáhne, je TierState::Unavailable s důvodem a její hodnoty chybí místo aby byly nula.
resolvedPři tomto vyřešení načteno z kanonického zdroje.cachedPřevzato z cache zapsané dřívějším úplným rozlišením.unavailableAni jedno není dostupné; hodnoty chybí a důvodem je diagnostika.
Používá LayerSummary WorkflowCatalogue
ToolchainAvailability
"installed" | "missing" | "unknown" | "mismatch"
Zda je deklarovaný toolchain zde použitelný.
installedNainstalováno a jeho verze odpověděla.missingSpustitelný soubor není na cestě.unknownNikdo se neptal: toto vyhodnocení pro to nesmí spustit podproces a žádná cache jej nedržela.mismatchNainstalováno a odpovídá a jeho verze nesplňuje tu, kterou repozitář deklaruje. Hlásí se jako ona sama, ne jako nainstalováno, protože binárka na cestě, která odpovídá špatnou verzí, je případ, který člověk jinak ladí hodinu (ADR 0064). Rozhoduje se jen tehdy, když jsou obě verze prosté tečkované číslice.
Používá ToolchainState
ToolchainState
object
Toolchain, který repozitář deklaruje, a co je pro něj nainstalováno. Tři věci jsou záměrně drženy odděleně: repozitář může deklarovat verzi, kterou nikdo nemá, a stroj může mít verzi, o niž žádný repozitář nežádal, a hlásit jedno jako druhé je způsob, jak nesoulad verzí zůstane týden neviditelný.
| vlastnost | typ | povinné | popis |
| id |
string |
ano |
Stabilní id, [a-z][a-z0-9-]*: rust, node. |
| název |
string |
ano |
Krátký název, který člověk čte. |
| deklarováno |
string | null |
ne |
Verze, kterou repozitář deklaruje, pokud nějakou deklaruje. |
| declared_by |
string |
ano |
Soubor relativně k repozitáři, který ji deklaruje. |
| nainstalováno |
string | null |
ne |
Zde nainstalovaná verze, když se na ni dalo zeptat a odpověď není zastaralá. |
| dostupnost |
ToolchainAvailability → ToolchainAvailability |
ano |
Kde stojí nainstalovaná verze. |
Používá RepositoryEnvironment
VcsState
jedna ze 2 variant
Co o checkoutu říká správa verzí, nebo proč se na to nešlo zeptat.
variant git odpověděl.
variant git se nepodařilo zeptat, nebo toto není pracovní strom.
| důvod | string | ano | Co se pokazilo. |
| state | "unavailable" | ano | |
Používá RepositoryEnvironment
WorkflowCatalogue
object
Workflow, které zde člověk může spustit, tak, jak je popisuje sám workflow runner.
| vlastnost | typ | povinné | popis |
| state |
TierState → TierState |
ano |
Odkud tyto pocházejí. |
| zdroj |
string | null |
ne |
Příkaz, který je vytvořil, když nějaký byl. |
| workflow |
pole WorkflowDescriptor → WorkflowDescriptor |
ne |
Každý veřejný workflow, seřazený podle názvu. |
| vstupní body |
pole WorkflowEntrypoint → WorkflowEntrypoint |
ne |
Vstupní bod každé skupiny, v pořadí, v jakém jsou skupiny deklarovány: co spustí jako první člověk, který je v repozitáři nový. Odvozeno, nikde nevypisováno. |
Používá RepositoryEnvironment
WorkflowDescriptor
object
Jeden workflow: recept justfile repozitáře, jak ho popisuje just.
| vlastnost | typ | povinné | popis |
| název |
string |
ano |
Název, který člověk píše za just. |
| jmenný prostor |
string | null |
ne |
Cesta modulu, pro recept v importovaném modulu; v kořeni prázdná. |
| popis |
string | null |
ne |
Dokumentační komentář receptu, pokud nějaký má. |
| group |
string | null |
ne |
[group(...)], ke kterému patří, když jedno deklaruje. |
| parametry |
pole WorkflowParameter → WorkflowParameter |
ne |
Jeho parametry v pořadí deklarace. |
| závislosti |
array of string |
ne |
Recepty, které spouští jako první, v pořadí. |
| potvrdit |
boolean |
ano |
Zda se ptá před spuštěním ([confirm]). |
Používá WorkflowCatalogue
WorkflowEntrypoint
object
Vstupní bod jedné skupiny workflow: co skupina je a jedno workflow, které ji zastupuje.
| vlastnost | typ | povinné | popis |
| group |
string |
ano |
Skupina, jak ji deklaruje justfile. |
| workflow |
string |
ano |
Workflow, které skupinu zastupuje. |
| command |
string |
ano |
Příkaz, který člověk píše. |
| popis |
string | null |
ne |
Popis workflow, když ho má. |
Používá WorkflowCatalogue
WorkflowParameter
object
Jeden parametr workflow.
| vlastnost | typ | povinné | popis |
| název |
string |
ano |
Název. |
| variadic |
boolean |
ano |
Zda se smí opakovat (*args, +args). |
| povinné |
boolean |
ano |
Zda se musí zadat. |
Používá WorkflowDescriptor