Š-01: Ţĥé kapi ÇĻÎ
Šüḿḿàŕý
kapi îš ţĥé ƃîñàŕý à þéŕšöñ ţýþéš. Îţ îš à ţĥîñ Çöƃŕà
šĥéļļ (cli/) öṽéŕ ţĥé çöƃŕà-ƒŕéé ĥöšţ ŕüñţîḿé (host/), àššéḿƃļéđ îñ
kapi/cmd/kapi. Ṽéŕƃš àŕé ĝŕöüþéđ ƃý îñţéñţ ŕàţĥéŕ ţĥàñ ƃý šüƃšýšţéḿ (Ŵöŕķ,
Ţŕàñšļàţé, Àššéţš, Àđṽàñçéđ), àñđ éṽéŕý öñé öƒ ţĥéḿ ŕüñš éîţĥéŕ àđ ĥöç öñ
ƒîļéš ýöü ñàḿé öŕ îñšîđé à þŕöĵéçţ, ŵĥîçĥ ţĥé ÇĻÎ ƒîñđš ƃý à ĝîţ-šţýļé üþŵàŕđ
ŵàļķ ƒöŕ à kapi.yaml ŕéçîþé. Ţĥŕéé çöñţŕàçţš ḿàķé ţĥé šüŕƒàçé šçŕîþţàƃļé: öñé
öüţþüţ-ƒöŕḿàţ ŕéšöļüţîöñ šĥàŕéđ ƃý éṽéŕý çöḿḿàñđ, öñé éẋîţ-çöđé ţàƃļé, àñđ öñé
ĴŠÖÑ éŕŕöŕ éñṽéļöþé. Çöñƒîĝüŕàţîöñ ļîṽéš îñ ţĥé üšéŕ çöñƒîĝ đîŕéçţöŕý; þŕöṽîđéŕ
ÀÞÎ ķéýš ļîṽé îñ ţĥé ÖŠ ķéýçĥàîñ. Ţĥé šàḿé ƃîñàŕý àļšö àñšŵéŕš ţö ţĥé ţööļƃöẋ
ñàḿéš (Š-04) àñđ šţàŕţš àñ ḾÇÞ šéŕṽéŕ ƒöŕ àĝéñţš
(Š-03).
Çöñţéẋţ
Ţĥé ƒŕàḿéŵöŕķ ĥàš ţö ŕéàçĥ ţĥŕéé çàļļéŕš ţĥàţ šĥàŕé éṽéŕý çàþàƃîļîţý àñđ šĥàŕé àļḿöšţ ñö îñṽöçàţîöñ šţýļé.
Àñ éñĝîñééŕ þŕöçéššîñĝ à ƒîļé ŵàñţš öñé çöḿḿàñđ, ñö šţàţé, àñđ à üšàƃļé éẋîţ çöđé. À ţéàḿ ŕüññîñĝ à ŕéþéàţàƃļé ŵöŕķƒļöŵ ŵàñţš ţĥé šàḿé çàþàƃîļîţý ƃöüñđ ţö à ŕéçîþé üñđéŕ ṽéŕšîöñ çöñţŕöļ, šö ţĥàţ "ŕüñ îţ àĝàîñ" ḿéàñš ţĥé šàḿé ţĥîñĝ öñ àñöţĥéŕ ḿàçĥîñé. Àñ ÀÎ àššîšţàñţ ŵàñţš ţýþéđ îñþüţ àñđ öüţþüţ àñđ à šîĝñàļ îţ çàñ ƃŕàñçĥ öñ ŵîţĥöüţ ŕéàđîñĝ þŕöšé.
Šþļîţţîñĝ ţĥéšé îñţö šéþàŕàţé ƃîñàŕîéš ŵöüļđ ƒöŕķ ţĥé ƃéĥàṽîöüŕ ţĥŕéé ŵàýš. À šîñĝļé ƃîñàŕý ŵîţĥ þŕöĝŕéššîṽé çöḿþļéẋîţý đöéš ñöţ: ţĥé àđ-ĥöç îñṽöçàţîöñ îš ţĥé þŕöĵéçţ îñṽöçàţîöñ ŵîţĥ ţĥé þŕöĵéçţ ļéƒţ öüţ, àñđ ţĥé àĝéñţ šüŕƒàçéš àŕé ţĥé šàḿé ĥöšţ ƒüñçţîöñš üñđéŕ à đéŕéñţ ţŕàñšþöŕţ.
Ţĥé ḿöđüļé ƃöüñđàŕý ƒöļļöŵš ƒŕöḿ ţĥàţ. host/ ĥöļđš ţĥé ŕüñţîḿé (ŕéĝîšţŕîéš,
šéŕṽîçéš, þŕöĵéçţ ŕéšöļüţîöñ, ţĥé šţöŕàĝé ļàýéŕ) àñđ ķñöŵš ñöţĥîñĝ àƃöüţ Çöƃŕà.
cli/ îš ţĥé Çöƃŕà šĥéļļ ţĥàţ ƃîñđš ƒļàĝš ţö îţ. kapi/ îš ţĥé ƃîñàŕý ţĥàţ ŵîŕéš
ţĥé šĥéļļ üþ, àđđš ţĥé ŕéļéàšé-çĥàññéļ àñđ šéļƒ-üþđàţé ƃéĥàṽîöüŕ, àñđ éḿƃéđš
ñöţĥîñĝ éļšé. Šéé Ƒ-01 ƒöŕ ţĥé
ƒüļļ đéþéñđéñçý đîŕéçţîöñ.
Đéçîšîöñ
Ƃîñàŕý àñđ ḿöđüļé ļàýöüţ
kapi îš à Ĝö ƃîñàŕý àţ kapi/cmd/kapi/, îñ ţĥé kapi ḿöđüļé. Îţ đéþéñđš öñ
ţĥé ƒŕàḿéŵöŕķ, host, àñđ cli, àñđ öñ ñö þļüĝîñ'š çöđé: à þļüĝîñ îš
đîšçöṽéŕéđ àţ ŕüñţîḿé ţĥŕöüĝĥ ţĥé ḿàñîƒéšţ ḿöđéļ àñđ đîšþàţçĥéđ àš à šüƃþŕöçéšš
(É-05), šö ţĥé ƃîñàŕý'š đéþéñđéñçý šéţ îš ţĥé
ţĥŕéé ḿöđüļéš àƃöṽé àñđ ñöţĥîñĝ à þļüĝîñ ƃŕîñĝš.
kapi/
├── go.mod # module github.com/neokapi/neokapi/kapi
├── cmd/kapi/ # root command wiring + telemetry reporter
├── cmd/kapi-wasm-cli/ # the browser build; registers cli.BrowserCommandSet
├── mcptools/ # the hand-authored MCP porcelain
├── preset/ # built-in preset definitions
└── e2e/ # end-to-end suite over the built binary
cli.KapiCommandSet(app) îš ţĥé šîñĝļé šöüŕçé öƒ ţŕüţĥ ƒöŕ ŵĥàţ ţĥé ƃîñàŕý
éẋþöšéš. Ţĥé ŕööţ çöḿḿàñđ àđđš ţĥöšé, ţĥéñ àţţàçĥéš þļüĝîñ çöḿḿàñđš àñđ
çöñţŕîƃüţîöñš öñ ţöþ. Ƃüîļţ-îñš àļŵàýš ŕéĝîšţéŕ ƒîŕšţ, šö îñšţàļļîñĝ à þļüĝîñ çàñ
ñéṽéŕ çĥàñĝé ŵĥàţ àñ éẋîšţîñĝ ṽéŕƃ ḿéàñš; à þļüĝîñ çöḿḿàñđ ţĥàţ çöļļîđéš ŵîţĥ à
ƃüîļţ-îñ àţţàçĥéš üñđéŕ îţš þļüĝîñ ĝŕöüþ îñšţéàđ. Ţĥé ƃŕöŵšéŕ ƃüîļđ ŕéĝîšţéŕš
cli.BrowserCommandSet, ŵĥîçĥ ḿîŕŕöŕš ţĥé ñàţîṽé šéţ ṽéŕƃ ƒöŕ ṽéŕƃ àñđ ŕéçöŕđš
ţĥé ṽéŕƃš à ƃŕöŵšéŕ çàññöţ ŕüñ (ŴÀŠḾ Éñĝîñé ÀƂÎ).
Ṽéŕƃš àŕé ĝŕöüþéđ ƃý îñţéñţ
kapi --help ŕéñđéŕš ƒöüŕ ĝŕöüþš (cli.AddCommandGroups), àñđ ţĥé ĝŕöüþ à ṽéŕƃ
ļàñđš îñ îš ţĥé đéçîšîöñ àƃöüţ ŵĥö îţ îš ƒöŕ.
| Ĝŕöüþ | Ŵĥàţ ļîṽéš ţĥéŕé |
|---|---|
| Ŵöŕķ | ţĥé ļööþ öṽéŕ à þŕöĵéçţ'š öŵñ çöñţéñţ: ƃŕîñĝîñĝ îţ üþ ţö đàţé, çĥéçķîñĝ îţ, ŕéàđîñĝ îţš šţàţüš, ŕéçöŕđîñĝ đéçîšîöñš, àþþļýîñĝ àñ éđîţ, àšķîñĝ ŵĥàţ çöñţéẋţ àþþļîéš, àñđ ţĥé þŕöĵéçţ-çöḿþöšîţîöñ ṽéŕƃš |
| Ţŕàñšļàţé | ţĥé ĝüàŕđŕàîļéđ ƃüîļţ-îñ ƒļöŵš öṽéŕ ƒîļéš ýöü ñàḿé: à ŕéàļ ţŕàñšļàţîöñ þàšš àñđ îţš þšéüđö-ţŕàñšļàţîöñ þŕé-ƒļîĝĥţ |
| Àššéţš | ţĥé šţàñđîñĝ ŕéšöüŕçéš à þŕöĵéçţ đŕàŵš öñ: çöñţéñţ ḿéḿöŕý, ţéŕḿš, ṽöîçé þŕöƒîļéš, ḿöđéļš, çŕéđéñţîàļš |
| Àđṽàñçéđ | ţĥé þļüḿƃîñĝ ţĥé þöŕçéļàîñ çöḿþöšéš, àñđ ţĥé ḿàçĥîñéŕý àŕöüñđ îţ: öñé ñàḿéđ ƒļöŵ, öñé ŕéĝîšţŕý ţööļ, ţĥé ƃîļîñĝüàļ ĥàñđ-öƒƒ, ţĥé þàçķàĝé ṽéŕƃš, ƃļöçķ-ļéṽéļ îñšþéçţîöñ àñđ ḿéàšüŕéḿéñţ, ţĥé ŕéĝîšţŕý ļîšţîñĝš, þļüĝîñ ḿàñàĝéḿéñţ, çöñƒîĝüŕàţîöñ, ţĥé àššîšţàñţ ĥööķš, àñđ ţĥé ḾÇÞ šéŕṽéŕ |
Ṽéŕšîöñ, üþđàţé, àñđ šĥéļļ-çöḿþļéţîöñ šţàý üñĝŕöüþéđ, àñđ ŕéĝîšţŕý ţööļš ŕéñđéŕ ñö ŕööţ ĝŕöüþ àţ àļļ. Ţĥé çöḿḿàñđ ŕéƒéŕéñçé îš ĝéñéŕàţéđ ƒŕöḿ ţĥé ƃîñàŕý, šö îţ îš ţĥé çüŕŕéñţ ļîšţ ŕàţĥéŕ ţĥàñ ţĥîš þŕöšé.
Ţŵö ṽéŕƃš çàŕŕý ţĥé ļàýéŕîñĝ éẋþļîçîţļý. kapi run <flow> éẋéçüţéš öñé ñàḿéđ
ƒļöŵ; kapi exec <tool> éẋéçüţéš éẋàçţļý öñé ŕéĝîšţŕý ţööļ ŵîţĥ ñöţĥîñĝ àŕöüñđ
îţ. Ţĥé þöŕçéļàîñ ṽéŕƃš àŕé çöḿþöšîţîöñš öṽéŕ ţĥàţ ļàýéŕ: à þŕöĵéçţ çàţçĥ-üþ
ŕüñš ḿàñý ţööļš àçŕöšš ḿàñý ƒîļéš, àñđ à ţŕàñšļàţîöñ þàšš îš à ƒļöŵ ŵîţĥ ŕéçýçļîñĝ
àñđ çĥéçķš àŕöüñđ îţ. Ŕéàçĥ ƒöŕ ţĥé þļüḿƃîñĝ ŵĥéñ ýöü ŵàñţ þŕéçîšéļý öñé ţööļ'š
ƃéĥàṽîöüŕ.
Ŕéĝîšţŕý ţööļš đö ñöţ àþþéàŕ àš ţöþ-ļéṽéļ ṽéŕƃš; ţĥéý àŕé ŕéàçĥéđ ţĥŕöüĝĥ
kapi exec. Ţĥé ĝéñéŕàţéđ çöḿḿàñđ ŕéƒéŕéñçé ļîšţš
éàçĥ öñé ŵîţĥ îţš šçĥéḿà, šö ţĥé šéţ šţàýš đéŕîṽéđ ƒŕöḿ ţĥé ŕéĝîšţŕý ŕàţĥéŕ ţĥàñ
ţŕàñšçŕîƃéđ îñţö þŕöšé.
Àđ-ĥöç àñđ þŕöĵéçţ ḿöđéš
Ḿöšţ ṽéŕƃš ŵöŕķ öñ ƒîļéš ýöü ñàḿé. Ŵĥéŕé à þŕöĵéçţ ŵöüļđ šüþþļý đéƒàüļţš, ţĥé
ṽéŕƃ ţàķéš -p / --project (ŕéĝîšţéŕéđ ƃý host.AddProjectFlag) àñđ ŕéšöļṽéš
îţ ţĥŕöüĝĥ öñé šĥàŕéđ ĥéļþéŕ, host.ResolveProjectPath, ŕé-éẋþöŕţéđ àš
cli.ResolveProjectPath.
Þŕöĵéçţ ŕéšöļüţîöñ: àñ éẋþļîçîţ ƒļàĝ ŵîñš, àñ öþţ-öüţ šţöþš đîšçöṽéŕý, àñđ öţĥéŕŵîšé ţĥé ŵàļķ ƒîñđš ţĥé ñéàŕéšţ kapi.ýàḿļ ţĥé ŵàý ĝîţ ƒîñđš .ĝîţ.
Ţĥé üþŵàŕđ ŵàļķ îš ŵĥàţ ḿàķéš à þŕöĵéçţ ƒééļ ļîķé à ŕéþöšîţöŕý: ŕüñ à ṽéŕƃ
àñýŵĥéŕé îñšîđé ţĥé ţŕéé àñđ îţ ƃîñđš ţö ţĥé ŕéçîþé àƃöṽé îţ. KAPI_NO_PROJECT
îš ţĥé öþţ-öüţ, àñđ àñýţĥîñĝ ţĥàţ ŕüñš îñšîđé à þŕöĵéçţ ţŕéé ŵîţĥöüţ ŵàñţîñĝ
ţö àçţ öñ îţ (à ţéšţ ĥàŕñéšš, à ñéšţéđ ƃüîļđ) đéþéñđš öñ îţ. Šéţţîñĝ
KAPI_PROJECT ţö ţĥé éḿþţý šţŕîñĝ đöéš ñöţ đîšàƃļé đîšçöṽéŕý; öñļý à ñöñ-éḿþţý
KAPI_NO_PROJECT đöéš.
Öñçé à þŕöĵéçţ ŕéšöļṽéš, îţ šüþþļîéš ţĥé đéƒàüļţš à ƒļàĝ ŵöüļđ öţĥéŕŵîšé ĥàṽé ţö çàŕŕý: šöüŕçé àñđ ţàŕĝéţ ļöçàļéš, çöñçüŕŕéñçý àñđ éñçöđîñĝ, ţĥé ƃöüñđ šţöŕéš, àñđ ţĥé þļüĝîñ šçöþîñĝ ţĥàţ ñàŕŕöŵš ƒöŕḿàţ đéţéçţîöñ ţö ŵĥàţ ţĥé ŕéçîþé đéçļàŕéš (Ç-01).
Éṽéŕý ļöçàļé ţĥàţ éñţéŕš ţĥŕöüĝĥ à ƒļàĝ, àñ éñṽîŕöñḿéñţ ṽàŕîàƃļé, à ŕéçîþé öŕ à
ƒîļé îš çàñöñîçàļîžéđ öñ ţĥé ŵàý îñ. core/locale.Canonical àççéþţš ŵĥàţ þéöþļé
àñđ ƒîļé ƒöŕḿàţš ŵŕîţé (nb_NO, en_US.UTF-8, NB-no) àñđ ŕéţüŕñš ţĥé ƂÇÞ-47
ƒöŕḿ ţĥé ŕéšţ öƒ ţĥé šýšţéḿ ĥöļđš, àñđ îţ ŕéĵéçţš à ṽàļüé ţĥàţ îš ñöţ à ļöçàļé,
šö à ţýþö çàññöţ ƃéçöḿé àñ îđéñţîţý ñöţĥîñĝ çĥéçķš. Ţĥé ŕéçîþé'š locale_format
(bcp-47, ţĥé đéƒàüļţ, öŕ posix) ĝöṽéŕñš öñļý ĥöŵ à ļöçàļé îš šþéļļéđ îñ ţĥé
þàţĥš kapi ŵŕîţéš; îñţéŕñàļļý ţĥéŕé îš öñé šþéļļîñĝ.
:::ŵàŕñîñĝ -p îš --progress üñđéŕ kapi exec
Öñ kapi exec <tool> ţĥé -p šĥöŕţĥàñđ îš ƃöüñđ ţö --progress, ţĥé þŕöĝŕéšš
ƃàŕ; ţĥöšé çöḿḿàñđš ţàķé ñö --project ƒļàĝ. Šö kapi exec translate -p kapi.yaml þàŕšéš àš à þŕöĝŕéšš ŕéǫüéšţ ŵîţĥ à šţŕàý þöšîţîöñàļ àŕĝüḿéñţ, ñöţ àš
à ļöàđ-þŕöĵéçţ ŕéǫüéšţ. Ĝîṽé kapi exec îţš þŕöĵéçţ çöñţéẋţ ţĥŕöüĝĥ ţĥé üþŵàŕđ
ŵàļķ îñšţéàđ: ŕüñ îţ ƒŕöḿ îñšîđé ţĥé ţŕéé, öŕ þöîñţ KAPI_PROJECT àţ ţĥé ŕéçîþé.
:::
Öñé öüţþüţ çöñţŕàçţ
Éṽéŕý çöḿḿàñđ ţĥàţ þŕöđüçéš öüţþüţ ŕéšöļṽéš îţš ƒöŕḿàţ ţĥŕöüĝĥ host/output,
ŵĥîçĥ ŕéĝîšţéŕš --json, --text, --output-format, àñđ --jq öñçé. Ŕéšöļüţîöñ
îš ƃý þŕéçéđéñçé, ĥîĝĥéšţ ƒîŕšţ:
--jq <expr>: à ƒîļţéŕ îḿþļîéš ĴŠÖÑ.--json.--text.--output-format=<text|table|json|yaml>.- Đéƒàüļţ: ţéẋţ.
ÝÀḾĻ éḿîţš ţĥé šàḿé šţŕüçţüŕéđ ŕéçöŕđ àš ĴŠÖÑ. Ţéẋţ îš ţĥé ĥüḿàñ ŕéñđéŕîñĝ:
ţàƃļéš, àļîĝñéđ çöļüḿñš, çöļöüŕ ŵĥéñ ţĥé ţéŕḿîñàļ šüþþöŕţš îţ àñđ --color /
NO_COLOR þéŕḿîţ îţ.
Éàçĥ çöḿḿàñđ đéçļàŕéš îţš ŕéšüļţ àš à çöñçŕéţé Ĝö ţýþé ŵîţĥ json ţàĝš, àñđ ţĥé
ţýþé îš éẋþéçţéđ ţö ƃé çöḿþļéţé ŕàţĥéŕ ţĥàñ à ţŕàñšçŕîþţîöñ öƒ ŵĥàţ ţéẋţ ḿöđé
šĥöŵš. Ţýþéš ţĥàţ ŕéñđéŕ ţĥéḿšéļṽéš îḿþļéḿéñţ öñé îñţéŕƒàçé:
type TextFormatter interface {
FormatText(w io.Writer) error
}
À ţýþé ŵîţĥöüţ öñé ƒàļļš ƃàçķ ţö ƒöŕḿàţţéđ ĴŠÖÑ, šö à ñéŵ çöḿḿàñđ îš ñéṽéŕ üñŕéàđàƃļé, öñļý üñþöļîšĥéđ.
Éẋîţ çöđéš àñđ ţĥé éŕŕöŕ éñṽéļöþé
| Çöđé | Šýḿƃöļ | Ḿéàñîñĝ |
|---|---|---|
| 0 | ExitOK | šüççéšš |
| 1 | ExitError | öþéŕàţîöñàļ éŕŕöŕ, ţĥé đéƒàüļţ ƒöŕ à ƒàîļéđ çöḿḿàñđ |
| 2 | ExitUsage | üšàĝé éŕŕöŕ, àñđ ţĥé ţööļƃöẋ'š ĝŕéþ-šţýļé "ţŕöüƃļé" šţàţüš |
| 3 | ExitGate | à ǫüàļîţý öŕ ṽöîçé ĝàţé ŵàš ñöţ ḿéţ |
| 4 | ExitNotRun | à çĥéçķ ŕéàçĥéđ ñö ṽéŕđîçţ: îţ çĥéçķéđ ñö çöñţéñţ, öŕ àñ àñàļýžéŕ ḿîššéđ îţš çàñàŕý |
| 130 | ExitSignal | îñţéŕŕüþţéđ (128 + ŠÎĜÎÑŢ) |
À đŕàƒţ ţĥàţ šçöŕéš ƃéļöŵ îţš ţĥŕéšĥöļđ îš ñöţ à çŕàšĥ, àñđ à šçŕîþţ ţĥàţ
çàññöţ ţéļļ ţĥé ţŵö àþàŕţ ĥàš ţö çĥööšé ƃéţŵééñ îĝñöŕîñĝ ŕéàļ ƒàîļüŕéš àñđ
ţŕéàţîñĝ éṽéŕý ļöŵ šçöŕé àš öñé. À çĥéçķ öṽéŕ ñöţĥîñĝ îš ñéîţĥéŕ: îţ îš ñöţ à
þàšš, àñđ îţ ĥàš ñö ƒîñđîñĝš ţö ƒîẋ. host.ErrQualityGate ḿàþš ţö ExitGate
àñđ host.ErrCheckNotRun ţö ExitNotRun; à
çöḿḿàñđ çàñ ŕéǫüéšţ àñý öţĥéŕ çöđé ƃý ţàĝĝîñĝ îţš éŕŕöŕ ŵîţĥ
host.WithExitCode. host.ErrSilentExit ŕéǫüéšţš à ñöñ-žéŕö éẋîţ ŵîţĥ ţĥé
ḿéššàĝé šüþþŕéššéđ, ŵĥîçĥ îš ĥöŵ ţĥé ţööļƃöẋ ŕéþöŕţš "ñö ḿàţçĥ" àš à šţàţüš
ŕàţĥéŕ ţĥàñ àš àñ éŕŕöŕ ļîñé (Š-04).
Üñđéŕ --json, à ƒàîļüŕé îš à šţŕüçţüŕéđ éñṽéļöþé ŕàţĥéŕ ţĥàñ à þŕöšé ļîñé, ŵîţĥ
ţĥé çöđé šýḿƃöļ ḿîŕŕöŕîñĝ ţĥé éẋîţ çöđé:
{
"error": "failed to connect to server",
"code": "gate"
}
Ļöñĝ-ŕüññîñĝ ṽéŕƃš çàñ àļšö šţŕéàḿ þŕöĝŕéšš ţö šţđéŕŕ àš ÑĐĴŠÖÑ ŵîţĥ
--progress=jsonl, ķééþîñĝ šţđöüţ ŕéšéŕṽéđ ƒöŕ ţĥé ŕéšüļţ. Ţĥé ƒüļļ ḿàçĥîñé
çöñţŕàçţ îš đöçüḿéñţéđ îñ Šçŕîþţîñĝ & ĴŠÖÑ çöñţŕàçţ.
Çŕéđéñţîàļš àñđ çöñƒîĝüŕàţîöñ
Ţĥé çŕéđéñţîàļ šţöŕé ļîṽéš îñ host/credentials/ àñđ îš šĥàŕéđ ŵîţĥ Kapi Đéšķţöþ
(Š-02). Ñöñ-šéçŕéţ þŕöṽîđéŕ çöñƒîĝüŕàţîöñ îš ĴŠÖÑ àţ
providers.json üñđéŕ ţĥé kapi çöñƒîĝ đîŕéçţöŕý; ÀÞÎ ķéýš ĝö ţö ţĥé ÖŠ ķéýçĥàîñ
üñđéŕ ţĥé šéŕṽîçé ñàḿé kapi: ḿàçÖŠ Ķéýçĥàîñ, Ŵîñđöŵš Çŕéđéñţîàļ Ḿàñàĝéŕ, öŕ
ļîƃšéçŕéţ öñ Ļîñüẋ. Ŵĥéŕé ñö ķéýçĥàîñ éẋîšţš, à þŕöṽîđéŕ ķéý îš ŕéàđ ƒŕöḿ îţš
çöñṽéñţîöñàļ éñṽîŕöñḿéñţ ṽàŕîàƃļé, ţĥé ļîšţ core/credentials/providerenv
ñàḿéš, àñđ ţĥé ĥöšţ šţŕîþš ţĥöšé ṽàŕîàƃļéš ƒŕöḿ éṽéŕý þļüĝîñ šüƃþŕöçéšš
éñṽîŕöñḿéñţ šö à ķéý kapi ĥöļđš ñéṽéŕ ŕéàçĥéš à þļüĝîñ ƃý àççîđéñţ.
Àþþļîçàţîöñ çöñƒîĝüŕàţîöñ šîţš îñ ţĥé šàḿé đîŕéçţöŕý: ~/.config/kapi öñ Ļîñüẋ,
~/Library/Application Support/kapi öñ ḿàçÖŠ, öṽéŕŕîđàƃļé ŵîţĥ
KAPI_CONFIG_DIR, àñđ þŕîñţéđ ƃý kapi config path:
kapi.yaml # global settings
providers.json # provider configs (keys in the keychain)
plugins/ # installed plugins
kapi.yaml ĥéŕé ĥöļđš ĝļöƃàļ đéƒàüļţš: öüţþüţ ƒöŕḿàţ, ļöĝ ļéṽéļ, þļüĝîñ
đîŕéçţöŕý, ÜÎ ļàñĝüàĝé, üþđàţé çĥàññéļ, ţéļéḿéţŕý öþţ-îñ, đéƒàüļţ þŕöṽîđéŕ. Ţĥîš
îš ţĥé ĝļöƃàļ çöñƒîĝ ƒîļé àñđ îš ñöţ ţĥé þŕöĵéçţ ŕéçîþé, ŵĥîçĥ îš à
kapi.yaml àţ à þŕöĵéçţ ŕööţ (Ç-01). ÇĻÎ
ƒļàĝš öṽéŕŕîđé çöñƒîĝüŕàţîöñ ṽàļüéš; KAPI_-þŕéƒîẋéđ éñṽîŕöñḿéñţ ṽàŕîàƃļéš
öṽéŕŕîđé ţĥé ƒîļé. KAPI_PLUGINS_DIR ñàḿéš àñ àļţéŕñàţîṽé þļüĝîñ ŕööţ.
Àĝéñţ àñđ ţööļƃöẋ šüŕƒàçéš öñ ţĥé šàḿé ƃîñàŕý
kapi mcp šţàŕţš àñ ḾÇÞ šéŕṽéŕ öṽéŕ šţđîö, éẋþöšîñĝ à çüŕàţéđ ţööļ šéţ þļüš ţĥé
context:// ŕéšöüŕçéš; --all-tools àñđ --all-flows ŵîđéñ îţ ƒöŕ đéƃüĝĝîñĝ,
àñđ --all îš ţĥé šĥöŕţĥàñđ ƒöŕ ƃöţĥ. kapi hook þŕöṽîđéš ţĥé
àššîšţàñţ-îñţéĝŕàţîöñ ĥööķš. Ƃöţĥ àŕé çöṽéŕéđ îñ
Š-03.
Ţĥé ƃîñàŕý àļšö àñšŵéŕš ţö kcat, kgrep, ksed, kconv, àñđ kdiff ŵĥéñ
îñṽöķéđ üñđéŕ ţĥöšé ñàḿéš, ƃüšýƃöẋ-šţýļé, àñđ çàŕŕîéš ţĥéḿ àš ĥîđđéñ šüƃçöḿḿàñđš
šö kapi kgrep àñđ kgrep ƃéĥàṽé îđéñţîçàļļý (Š-04).
Çöñšéǫüéñçéš
- Öñé ƃîñàŕý çöṽéŕš àđ-ĥöç þŕöçéššîñĝ, þŕöĵéçţ ŵöŕķƒļöŵš, àĝéñţ îñţéĝŕàţîöñ, àñđ ţĥé ţööļƃöẋ, ŵîţĥ ñö ƃüîļđ ƒļàĝš àñđ ñö šéþàŕàţé đîšţŕîƃüţîöñš.
- Ƃéçàüšé ţĥé ÇĻÎ îš à šĥéļļ öṽéŕ
host, éṽéŕý çàþàƃîļîţý îţ éẋþöšéš îš ŕéàçĥàƃļé ŵîţĥöüţ Çöƃŕà, ŵĥîçĥ îš ŵĥàţ ļéţš Kapi Đéšķţöþ àñđ éḿƃéđđéđ ŕüñš šĥàŕé ţĥé îḿþļéḿéñţàţîöñ îñšţéàđ öƒ ŕéîḿþļéḿéñţîñĝ îţ. - Ĝŕöüþîñĝ ƃý îñţéñţ ḿéàñš ţĥé ĥéļþ öüţþüţ àñšŵéŕš "ŵĥàţ àḿ Î ţŕýîñĝ ţö đö" ŕàţĥéŕ ţĥàñ "ŵĥàţ šüƃšýšţéḿ îš ţĥîš", àñđ îţ ĝîṽéš ţĥé þöŕçéļàîñ/þļüḿƃîñĝ šþļîţ à þļàçé ţö ļîṽé îñ ţĥé îñţéŕƒàçé îţšéļƒ.
- Ţĥé šĥàŕéđ öüţþüţ çöñţŕàçţ ḿàķéš
jqàñđ ļàñĝüàĝé-šþéçîƒîç þàŕšéŕš ŵöŕķ üñîƒöŕḿļý, àñđ ţĥé ĴŠÖÑ éŕŕöŕ éñṽéļöþé ḿéàñš à šçŕîþţéđ çàļļéŕ ñéṽéŕ þàŕšéš þŕöšé. - Ţĥé đîšţîñçţ ĝàţé éẋîţ çöđé ļéţš ÇÎ àñđ àĝéñţš ƃŕàñçĥ öñ "ƃéļöŵ ţĥŕéšĥöļđ" ṽéŕšüš "çŕàšĥéđ" ŵîţĥöüţ ŕéàđîñĝ öüţþüţ, ţĥé þŕöþéŕţý ţĥé àššîšţàñţ ļööþš îñ Š-03 đéþéñđ öñ.
- Ķéýçĥàîñ šţöŕàĝé ķééþš ÀÞÎ ķéýš öüţ öƒ šĥéļļ ĥîšţöŕý àñđ àñýţĥîñĝ çöḿḿîţţéđ; à ķéý šüþþļîéđ ţĥŕöüĝĥ ţĥé éñṽîŕöñḿéñţ îš àççéþţéđ àñđ šçŕüƃƃéđ ƒŕöḿ éṽéŕý šüƃþŕöçéšš.
- Öñé ļöçàļé šþéļļîñĝ îñšîđé ţĥé šýšţéḿ ḿéàñš à ţàŕĝéţ ļàñĝüàĝé ŵŕîţţéñ ţĥŕéé ŵàýš îñ ţĥŕéé þļàçéš šţîļļ ŕéšöļṽéš ţö öñé ţŕàñšļàţîöñ.
- Àđ-ĥöç ḿöđé ĥàš ñö šţàţé ƃéýöñđ ţĥé îñþüţ ƒîļé, šö à ÇÎ ĵöƃ ñééđš ñöţĥîñĝ þŕöṽîšîöñéđ ţö ŕüñ öñé.
Ŕéļàţéđ
- Ƒ-01: Ţĥé ƒŕàḿéŵöŕķ àñđ îţš ḿöđüļéš: ţĥé ḿöđüļé ƃöüñđàŕý ţĥé ÇĻÎ šîţš öñ
- É-01: Ţĥé þŕöçéššîñĝ éñĝîñé: ƒļöŵ éẋéçüţîöñ ƃéĥîñđ
kapi run - É-03: Ţĥé ţööļ šýšţéḿ: ţĥé ŕéĝîšţŕý ƃéĥîñđ
kapi exec - É-05: Ţĥé þļüĝîñ šýšţéḿ: ŕüñţîḿé þļüĝîñ đîšçöṽéŕý àñđ
kapi plugin - É-07: Ḿöđéļ þŕöṽîđéŕš: ţĥé çŕéđéñţîàļš ţĥé šţöŕé ĥöļđš
- Ç-01: Ţĥé þŕöĵéçţ ḿöđéļ: ţĥé
kapi.yamlŕéçîþé ţĥàţ þŕöĵéçţ ḿöđé ļöàđš - Š-02: Kapi Đéšķţöþ: ţĥé ṽîšüàļ çöḿþàñîöñ šĥàŕîñĝ ţĥîš çŕéđéñţîàļ šţöŕé
- Š-03: Àĝéñţ šüŕƒàçéš: ḾÇÞ, šķîļļš, àñđ ţĥé ĥööķš
- Š-04: Ţööļƃöẋ üţîļîţîéš: ţĥé ḿüļţî-çàļļ ñàḿéš öñ ţĥîš ƃîñàŕý
- Š-07: Ţĥé ŕéṽîéŵ ḿöđéļ: ŵĥàţ
kapi status --reviewŕéñđéŕš - ŴÀŠḾ Éñĝîñé ÀƂÎ: ţĥé ƃŕöŵšéŕ ƃüîļđ'š çöḿḿàñđ šéţ àñđ îţš ŕéçöŕđéđ ĝàþš
- Çöḿḿàñđ ŕéƒéŕéñçé: ţĥé ĝéñéŕàţéđ, þéŕ-çöḿḿàñđ šüŕƒàçé
- Šçŕîþţîñĝ & ĴŠÖÑ çöñţŕàçţ: šţŕüçţüŕéđ ŕéšüļţš, þŕöĝŕéšš éṽéñţš, éẋîţ çöđéš