Mesh
Mesh tohoto procesu: objevování (discovery) — ověřená pozorování dalších běžících instancí Majordomus v jednom registru — a spolupráce (cooperation) — ověřená spojení s důvěryhodnými runtime téhož repozitáře, která replikují relace, tvrzení, předávky a revize jedním žurnálem, jejž každý runtime skládá do stejného stavu. Objevení nic neuděluje; spojení se připouští po jednotlivých peerech a nic, co peer pošle, tu nic nespustí.
Mesh tohoto procesu: objevování (discovery) — ověřená pozorování dalších běžících instancí Majordomus v jednom registru — a spolupráce (cooperation) — ověřená spojení s důvěryhodnými runtime téhož repozitáře, která replikují relace, tvrzení, předávky a revize jedním žurnálem, jejž každý runtime skládá do stejného stavu. Objevení nic neuděluje; spojení se připouští po jednotlivých peerech a nic, co peer pošle, tu nic nespustí.
- modul mesh
- builtin
- experimentální
- 24 schopností
Schopnosti
Každý je složen v souboru tohoto modulu; každý má vlastní stránku.
mesh.claimNárokovat cesty repozitáře pro relaci. Exkluzivní claim, který se setká s živým exkluzivním claimem jiné relace — na tomto runtime nebo na kterémkoli, který tento slyšel — je odmítnut jako `claim_conflict` s claimy, se kterými se setkává; poradní claim se zaznamená a jeho překryvy se ohlásí. Claim žije, dokud je jeho relace otevřená a jeho runtime bije: claim zhavarovaného držitele vyprší všude sám. Zapisuje jen žurnál tohoto runtime.command · experimental · majordomus_mesh_claim · POST /api/v1/mesh/claimsmesh.cooperationZda tento runtime spolupracuje a proč ne, když nespolupracuje: jeho runtime a proud, identita repozitáře, podle které se odkazy párují, protokol a funkce odkazu, heartbeat a vypršení, každý propojený peer se stavem odkazu, poslední výměnou, round trip a selháními, každý odmítnutý kandidát s pravidlem, které jej odmítlo, a počitadla handshaků, synchronizací, opětovných připojení, vypršení, replikovaných a odmítnutých událostí.query · experimental · majordomus_mesh_cooperation · GET /api/v1/mesh/cooperationmesh.doctorKaždý předpoklad ověřený na samotném tomto stroji — deklarace se parsuje, identita se načte a pod allowlistem je na něm, repozitář má identitu meshe, UDP socket se naváže, multicastová skupina se připojí, broadcast se povolí a protokoly objevování a propojení se podepisují a ověřují end to end v paměti — a pak vlastní verdikt serveru: ve sdíleném serveru, zda povolená deklarace mesh skutečně aktivovala, a když ne, důvod serveru, který hlášení shodí. Každá selhaná kontrola pojmenovává svůj dopad a nápravu. Deterministické, druhý uzel není třeba.query · experimental · majordomus_mesh_doctor · GET /api/v1/mesh/doctormesh.eventsUdálosti žurnálu nad Lamportovým razítkem, v Lamportově pořadí, nejvýše jedna stránka: každá se svým proudem, pořadím, razítkem, repozitářem, podpisovým klíčem, druhem a tělem. Lamport odpovědi je `after` další stránky.query · experimental · majordomus_mesh_events · GET /api/v1/mesh/eventsmesh.firewallJaký příchozí provoz deklarace implikuje, že tento stroj musí připustit — port multicastové skupiny, port broadcastu, když je povoleným záložním řešením, každý deklarovaný port hubu, jehož adresa je adresou tohoto stroje, a vlastní port serveru, když naslouchá mimo loopback — z privátních sítí, které deklarace uvádí; kterou frontu firewallu tento hostitel provozuje (ufw, nftables, aplikační firewall macOS); příkazy, které plán tam připustí; co o plánu nyní říká sám firewall (přítomný, chybí, neaktivní nebo bez roota nepozorovatelný); a co jádro zalogovalo jako zahozené k těmto portům za posledních pět minut. Selže, když je pozorováno, že pravidlo chybí, nebo bylo zalogováno zahození. Čte hostitele; nic nemění.query · experimental · majordomus_mesh_firewall · GET /api/v1/mesh/firewallmesh.firewall.applySpustí příkazy, které vykresluje mesh.firewall, na tomto hostiteli, jako root: jedno povolení na pravidlo a zdrojovou síť na ufw nebo nftables, spustitelný soubor povolený na aplikačním firewallu macOS; nic jiného se nedotkne a každé zapsané pravidlo nese komentář `majordomus mesh`, aby šlo odlišit od vlastních pravidel operátora. Odmítne, aniž by cokoli spustilo, bez rootu nebo bez backendu; zaznamená každý příkaz s jeho exit kódem a výstupem; a poté se firewallu zeptá znovu, takže verdikt je verdiktem firewallu. Nabízeno jen v příkazové řádce: spouští privilegovaný hostitelský nástroj, což nesmí nic dosažitelné přes HTTP nebo MCP.command · experimentalmesh.handover.consumePřevzít předávku, kterou publikoval jiný runtime: zaznamenat převzetí na mesh a zapsat ji do adresáře předávek tohoto checkoutu jako záznam, který `majordomus handover --resolve` najde na téže větvi — jednou, ať se převezme kolikrát.command · experimental · majordomus_mesh_handover_consume · POST /api/v1/mesh/handovers/consumemesh.handover.publishPublikuje záznam předávky tohoto checkoutu — nejnovější, nebo ten jmenovaný pod .ai/local/state/handovers/ — do každého propojeného runtime: jeho úlohu, větev, hlavu a čas z front matter, zadaný úkol a milník a jeho Markdown tělo, omezené a identifikované digestem těla. Žádná cesta tohoto stroje necestuje a nikdy se nečte žádný soubor mimo adresář předávek.command · experimental · majordomus_mesh_handover_publish · POST /api/v1/mesh/handoversmesh.identityIdentita uzlu uložená v adresáři stavu uživatele, jen veřejná polovina: id uzlu, veřejný klíč, zobrazovaný název. Podpisový klíč se neobjeví v žádné projekci. Chybějící je odpověď, ne chyba — identita se vytvoří, když se mesh poprvé aktivuje.query · experimental · majordomus_mesh_identity · GET /api/v1/mesh/identitymesh.link.helloHandshake linku, který zasílá jiný runtime: podepsaný hello nesoucí kartu runtimu, čerstvý nonce a rozsah protokolu. Odmítnut, typovaně, když je malformovaný, příliš velký, špatně podepsaný, zastaralý, přehraný, nepodporovaného protokolu, jiného repozitáře, nedůvěryhodný nebo je to samotný tento runtime; jinak odpovězen podepsaným welcome: karta tohoto runtimu, id linku, jeho značky a vrácený nonce. Mění pouze tabulku linků tohoto procesu.command · experimental · POST /api/v1/mesh/link/hellomesh.link.syncKolo replikace, které propojený runtime posílá při každém heartbeatu, podepsané pod jeho id odkazu se stoupajícím počítadlem: jeho značky a události, které tomuto runtime chybí. Přijme se — ověří od konce ke konci, deduplikuje, aplikuje v pořadí proudu — a odpoví se, podepsaně, značkami tohoto runtime a událostmi, které peeru chybí. Neznámý odkaz nebo restartovaný peer se vyzve, aby pozdravil znovu.command · experimental · POST /api/v1/mesh/link/syncmesh.nodesKaždý runtime, který tento proces pozoroval, jeden záznam na uzel a slot runtime, deduplikovaný napříč všemi zdroji objevování, v pořadí id uzlů: identita, důvěra, presence, endpointy, schopnosti, repozitáře, původ a verze. V paměti, zanikne s procesem.query · experimental · majordomus_mesh_nodes · GET /api/v1/mesh/nodesmesh.peerJeden runtime podle svého klíče (`<node>-<runtime>`, nebo id uzlu pro jeho první runtime): stroj, na kterém běží, jeho liveness, jeho link odsud, jeho relace a claimy a každé odmítnutí zaznamenané proti němu. Nenalezeno je odpověď s důvodem.query · experimental · majordomus_mesh_peer · GET /api/v1/mesh/peermesh.peersStroj → runtime → relace → claim: každý runtime, s nímž je tento propojen nebo o němž slyšel přes žurnál, seskupený podle stroje, lokální první; každý runtime s živostí, milisekundami od vzestupu jeho beatu, spojením a nejnovějším živým claimem. Výchozí pohled `summary` vypisuje jen aktivní relace, každou s počtem živých claimů a zkráceným záměrem; `view=full` vypisuje každou relaci s každým claimem. `session` a `runtime` zužují oba. Vzdálené a lokální runtimy sdílejí jeden tvar a odpověď uzavírá digest celého skládání: stejné digesty, stejný stav.query · experimental · majordomus_mesh_peers · GET /api/v1/mesh/peersmesh.registerPředloží jednu podepsanou obálku; ověří se přesně jako datagram — meze, zastaralost, podpis, politika důvěry — a při platnosti se zaznamená jako pozorování rendezvous. Odpověď nese vlastní obálku tohoto uzlu a kandidáty, které jeho registr drží, každého ověřitelného od začátku do konce podle vlastního podpisu. Registrace nic neuděluje: volající se stane záznamem, nikdy oprávněním. Mění jen paměť tohoto procesu.command · experimental · majordomus_mesh_register · POST /api/v1/mesh/registermesh.releaseUvolní claim, který drží aktuální běh tohoto runtimu, podle jeho klíče. Claim zapsaný jinde se odmítne jako `not_own`: uvolnit jej smí jen jeho držitel a claim mrtvého držitele místo toho vyprší. Zapisuje pouze žurnál tohoto runtimu.command · experimental · majordomus_mesh_release · POST /api/v1/mesh/claims/releasemesh.review.answerOdpoví na žádost o posouzení z libovolného runtime hodnotou approved, changes_requested nebo commented a poznámkou. Replikuje se na každý propojený runtime. Zapisuje jen žurnál tohoto runtime.command · experimental · majordomus_mesh_review_answer · POST /api/v1/mesh/reviews/answermesh.review.requestPožádat o review větve, commitu nebo pull requestu, volitelně jednoho jmenovaného runtimu — ten musí být propojený a nést funkci `reviews`, jinak se žádost odmítne jako `feature_unsupported`. Replikuje se do každého propojeného runtimu. Zapisuje jen žurnál tohoto runtimu.příkaz · experimentální · majordomus_mesh_review_request · POST /api/v1/mesh/reviewsmesh.review.withdrawUkončí žádost o review, o kterou tento runtime požádal — done, void nebo superseded — s volitelnou poznámkou k výsledku, kterou žádost poté nese. Smí to kterákoli relace žádajícího runtimu (znovu připojený žadatel je jiná jeho relace); žádný jiný runtime ne a nikdy se nepočítá jako odpověď. Nezodpovězená žádost se také čte jako vypršelá, dokud jeho runtime přestal vysílat heartbeat. Replikováno do každého propojeného runtimu. Zapisuje jen žurnál tohoto runtimu.command · experimental · majordomus_mesh_review_withdraw · POST /api/v1/mesh/reviews/withdrawmesh.session.closeUkončí relaci tohoto runtime; každý nárok, který drží, končí s ní, na každém propojeném runtime. Zapisuje pouze žurnál tohoto runtime.command · experimental · majordomus_mesh_session_close · POST /api/v1/mesh/sessions/closemesh.session.openŘekne, čím je relace tohoto runtime: jeho klient, pracovník, záměr, úloha, úkol, milník, větev, hlava, špinavost a revize kontextu. Replikuje se na každý propojený runtime; pozdější slovo nahradí dřívější. Zapisuje jen žurnál tohoto runtime.command · experimental · majordomus_mesh_session_open · POST /api/v1/mesh/sessionsmesh.stateSložený žurnál. Výchozí pohled `summary` je omezený bez ohledu na historii: relace a claimy spočítané podle stavu, každý runtime s jeho živostí, počty a jeho nejnovějším živým claimem, otevřené žádosti o revizi a předávky, které nikdo nevzal, a digest, který dva runtimy porovnávají. `view=full` je každá relace, každý claim s jeho stavem (držen, uvolněn, vypršel, v konfliktu s vítězem), poradní překryvy, každá předávka s tím, kdo ji spotřeboval, každá žádost o revizi s odpověďmi a živost každého streamu na hodinách tohoto runtime. `claims=live`, `after` (Lamportova značka), `session` a `runtime` zužují kterýkoli pohled; digest je vždy digestem celého složení.query · experimental · majordomus_mesh_state · GET /api/v1/mesh/statemesh.statusZda mesh běží v tomto procesu a proč ne, když neběží; veřejná identita tohoto uzlu; každý poskytovatel objevování se stavem a čítači; součty registru; a odmítnuté datagramy podle důvodu. Jediný stav, který ukazuje každý povrch.query · experimental · majordomus_mesh · GET /api/v1/meshmesh.verifySpustí živé ověření: spolupráce je aktivní, identita repozitáře se vyřeší, endpointy jsou dosažitelné mimo loopback, heartbeat bije, žurnál nedrží zaseknutou mezeru; pak jedno kolo synchronizace s každým peerem, kterého tento runtime volá, s měřením času, a zda nyní obě strany drží stejné značky high-water. Každá selhavší kontrola jmenuje svůj dopad a nápravu. Nemění nic kromě replikace žurnálu.command · experimental · majordomus_mesh_verify · POST /api/v1/mesh/verify