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.

MCP, HTTP, OpenAPI, Swagger UI, příkazy capabilities a generovaná reference se odvozují z registru a změna jedné definice se dostane ke všem z nich

Žádné rozhraní spustitelného souboru v Rustu nedeklaruje nic vlastního. Nástroje a zdroje MCP, HTTP routy a operace OpenAPI, stránka Swagger UI, majordomus capabilities list a describe a docs/generated/capabilities.md se na požádání staví z registru. Změňte popis nebo vstupní typ schopnosti v jejím deskriptoru nebo přidejte do vrstvy deklarativní objekt a každé rozhraní změnu ukáže při dalším startu; nic dalšího se needituje.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Žádná projekce nedeklaruje vlastní název, popis, schéma ani route; tests/projections.rs dokazuje, že každá deklarovaná projekce je přítomna a žádná není osiřelá a že změněný vstupní typ a popis dorazí do schématu MCP, operace OpenAPI i reference. MCP a HTTP odpovídají na tentýž handler shodně.

Co to znamená

Žádné rozhraní spustitelného souboru v Rustu nedeklaruje nic vlastního. Nástroje a zdroje MCP, routy HTTP a operace OpenAPI, stránka Swagger UI, majordomus capabilities list a describe i docs/generated/capabilities.md se staví z registru na požádání. Změňte popis nebo typ vstupu schopnosti v jejím deskriptoru nebo přidejte do vrstvy deklarativní objekt a každé rozhraní změnu ukáže při dalším startu; nic jiného se needituje.

Princip

mcp/surface.rs mapuje položky registru s expozicí MCP na nástroje a zdroje a volá registr kanonickým id; http/router.rs mapuje položky s expozicí HTTP na trasy a váže vstup z dotazu nebo těla; http/openapi.rs vykresluje tytéž položky jako dokument OpenAPI 3.1, jehož operationId je kanonické id; http/swagger.rs servíruje stránku, která načítá /openapi.json; příkazy capabilities se odbavují přes expozici CLI registru; generate.rs zapisuje referenci z týchž položek.

Jak to vidět

apps/majordomus-cli/target/debug/majordomus capabilities describe objects.get --format json   # exposure: mcp tool, http route
printf '{"jsonrpc":"2.0","id":1,"method":"tools/list"}\n' | apps/majordomus-cli/target/debug/majordomus mcp 2>/dev/null   # the same id under _meta
apps/majordomus-cli/target/debug/majordomus serve --port 0   # GET /openapi.json: operationId objects.get, x-majordomus-mcp majordomus_get

Co nepokrývá

Ostatní příkazy příkazového řádku (schema, validate, mcp, serve, generate) jsou pohledy na registr nebo jeho servery, ne schopnosti; strom clap je psán ručně a přes registr se dispatchují jen introspektivní příkazy. Aktiva Swagger UI jsou připnutá distribuce na unpkg; stránka nevkládá žádnou specifikaci, ale pro samotný prohlížeč potřebuje síť.

Proč existuje

Invariant, který operátor požadoval, a pravidlo project.interfaces-are-projections: schopnost definovaná jednou, každé rozhraní odvozené. apps/majordomus-cli/tests/projections.rs dokazuje, že každá deklarovaná projekce je přítomna, žádná není osiřelá a změněný typ vstupu i popis dosáhnou schématu MCP, operace OpenAPI i reference; tests/http_serve.rs dokazuje, že MCP a HTTP odpovídají stejným handlerem se stejným JSON; test/cases/76_capabilities_projections.sh čte jednu schopnost zpět přes každé rozhraní z repozitáře, který zapsal init.

Detail vykreslený z docs/claims/interfaces-are-projections.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    MCP, HTTP, OpenAPI, Swagger UI, příkazy capabilities a generovaná reference se odvozují z registru a změna jedné definice se dostane ke všem z nich

    Vytvořeno na Declare once.

  2. 2 · kanonické tvrzení

    interfaces-are-projectionsdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/CAPABILITIES.md

  3. 3 · implementace

    apps/majordomus-cli/src/http/openapi.rs

  4. 4 · test a scénáře

    Test: test/cases/76_capabilities_projections.sh

    Provedeno v Podívejte se, co repozitář obsahuje, a spusťte jednu z jeho schopností, aniž byste četli soubor, Rozšiřte, co spustitelný soubor servíruje, přidáním souboru, nikdy jeho přestavbou, Řekněte jednou, k čemu je vaše práce, a ať to řekne každý povrch.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 76_capabilities_projections

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

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