Š-02: Kapi Đéšķţöþ
Šüḿḿàŕý
Kapi Đéšķţöþ îš à Ŵàîļš ṽ3 àþþļîçàţîöñ àţ apps/kapi-desktop/ (ḿöđüļé
github.com/neokapi/neokapi/kapi-desktop). Îţ öþéñš þŕöĵéçţš ƃý ţĥéîŕ ƒöļđéŕ,
ţĥé öñé ĥöļđîñĝ à kapi.yaml ŕéçîþé, šéṽéŕàļ àţ à ţîḿé àš ţàƃš, àñđ ĝîṽéš ţĥéḿ
à ṽîšüàļ šüŕƒàçé: à þŕöĵéçţ ĥöḿé ţĥàţ öþéñš öñ ŵĥàţ ţĥé þŕöĵéçţ šţàñđš àţ àñđ
à ḿàþ öƒ îţš çööŕđîñàţé þöîñţš, à Çöñţéẋţ ĥüƃ ĥöļđîñĝ ţĥé ĝŕàþĥ éẋþļöŕéŕ, ţĥé
ṽöîçé þŕöƒîļé, ţĥé ţéŕḿš àñđ ţĥé çöñţéñţ ḿéḿöŕý, à çĥéçķš þàñéļ, à ŕéṽîéŵ
ǫüéüé, ĝöṽéŕñàñçé éđîţîñĝ öñ ţĥé ŕéçîþé, à ŕüññéŕ ţĥàţ ƃŕîñĝš ţĥé þŕöĵéçţ üþ ţö
đàţé ţĥŕöüĝĥ ţĥé šàḿé ṽéñüé ţĥé ÇĻÎ üšéš, à ţööļ ŕéƒéŕéñçé, àñđ àñ ÖŠ-ķéýçĥàîñ
çŕéđéñţîàļ ṽàüļţ. Îţ đéþéñđš öñ ţĥé ƒŕàḿéŵöŕķ àñđ host öñļý. Îţ ļîñķš ñéîţĥéŕ
Çöƃŕà ñöŕ ţĥé cli ḿöđüļé, àñđ ñö þàçķàĝé ƒŕöḿ ţĥé þļàţƒöŕḿ ļàýéŕ, ŵĥîçĥ
make audit-modules àššéŕţš ƃý îñšþéçţîñĝ ţĥé ţŕàñšîţîṽé þàçķàĝé ļîšţ öƒ
./backend/....
Çöñţéẋţ
Éṽéŕýţĥîñĝ ţĥé đéšķţöþ đöéš îš àṽàîļàƃļé ƒŕöḿ ţĥé ÇĻÎ. Ŵĥàţ îţ àđđš îš ţĥé àƒƒöŕđàñçé: ţĥé ŵĥöļé ŕéšöļṽéđ ṽöîçé þŕöƒîļé öñ öñé þàĝé îñšţéàđ öƒ à ÝÀḾĻ ƒîļé ţö ŕéàđ, à ḿàþ öƒ ŵĥéŕé éàçĥ çöļļéçţîöñ îš ĝöṽéŕñéđ îñšţéàđ öƒ à ŕéçîþé ţö ţŕàçé, à ƒöŕḿ đŕîṽéñ ƃý à ţööļ'š ĴŠÖÑ Šçĥéḿà îñšţéàđ öƒ à ŕéḿéḿƃéŕéđ ƒļàĝ, à þŕöĝŕéšš ṽîéŵ îñšţéàđ öƒ à ļöĝ ţàîļ, àñđ à þļàçé ţö þàšţé àñ ÀÞÎ ķéý ţĥàţ îš ñöţ šĥéļļ ĥîšţöŕý.
Ñöţĥîñĝ àƃöüţ ţĥàţ ñééđš à šéçöñđ îḿþļéḿéñţàţîöñ. host îš çöƃŕà-ƒŕéé.
Çöḿḿàñđ ţĥŕéàđîñĝ îš ţĥé host.Command îñţéŕƒàçé, ŵĥîçĥ *cobra.Command
šàţîéš ñàţîṽéļý àñđ ŵĥîçĥ host.EnvCommand šàţîéš ƒöŕ éḿƃéđđéđ ŕüñš, šö
ţĥé đéšķţöþ çàļļš ţĥé šàḿé ƒüñçţîöñš ţĥé ÇĻÎ đöéš, ŵîţĥ à đéŕéñţ ţĥîñĝ öñ
ţĥé öţĥéŕ éñđ öƒ ţĥéḿ.
Ţĥé çöñšţŕàîñţ ţĥàţ šĥàþéš ţĥé ḿöđüļé ƃöüñđàŕý îš ţĥé ŕéṽéŕšé đîŕéçţîöñ: Ŵàîļš ƃŕîñĝš à ļàŕĝé ñàţîṽé ţööļçĥàîñ, àñđ ţĥé ÇĻÎ ḿüšţ ñéṽéŕ àçǫüîŕé îţ. Šö ţĥé đéšķţöþ îš îţš öŵñ Ĝö ḿöđüļé, àñđ ţĥé ƃöüñđàŕý îš àššéŕţéđ ŕàţĥéŕ ţĥàñ ţŕüšţéđ.
Đéçîšîöñ
Šţàçķ àñđ ḿöđüļé ƃöüñđàŕý
- Ƃàçķéñđ: Ĝö, ŵîţĥ Ŵàîļš ṽ3 ĝéñéŕàţîñĝ ŢýþéŠçŕîþţ ƃîñđîñĝš ƒŕöḿ ţĥé éẋþöŕţéđ šéŕṽîçé ḿéţĥöđš.
- Ƒŕöñţéñđ: Ŕéàçţ 19, Ṽîţé, Ţàîļŵîñđ ÇŠŠ 4, šĥàđçñ-ƃàšéđ þŕîḿîţîṽéš.
- Ļîçéñšé: Àþàçĥé-2.0, ḿàţçĥîñĝ ţĥé ƒŕàḿéŵöŕķ.
Ţĥé ḿöđüļé đéþéñđš öñ ţĥé ƒŕàḿéŵöŕķ, host àñđ Ŵàîļš, àñđ öñ ñö þàçķàĝé ƒŕöḿ
ţĥé þļàţƒöŕḿ ļàýéŕ. Ţĥé ļîçéñçé ƃöüñđàŕý ĥàš ñö éẋçéþţîöñ: à ţýþé ƃöţĥ ţĥé
đéšķţöþ àñđ ţĥé þļàţƒöŕḿ ñééđ ļîṽéš ƃéļöŵ ţĥé ļîñé, îñ ţĥé ƒŕàḿéŵöŕķ öŕ îñ
host.
apps/kapi-desktop/
├── go.mod # module github.com/neokapi/neokapi/kapi-desktop
├── main.go # Wails entry point, application menu, embedded assets
├── backend/ # one flat Go package: the bound service
├── frontend/ # React + Vite; bindings/ is Wails-generated
└── build/ # per-platform build configuration
Ƒöüŕ àššéŕţîöñš ŕüñ îñ make audit-modules: àñ îšöļàţéđ GOWORK=off ƃüîļđ öƒ
./backend/... (šö ţĥé ḿöđüļé ŕéšöļṽéš àĝàîñšţ îţš öŵñ go.mod, ñöţ ţĥé
ŵöŕķšþàçé öṽéŕļàý), à ţîđîñéšš çĥéçķ ţĥàţ ƒàîļš öñ àñý šţàļé öŕ
ƃöüñđàŕý-çŕöššîñĝ ŕéǫüîŕéḿéñţ, àñ îḿþöŕţ-ļéṽéļ çĥéçķ ţĥàţ ţĥé ţŕàñšîţîṽé
þàçķàĝé ļîšţ çöñţàîñš ñö Çöƃŕà àñđ ñö cli þàçķàĝé, àñđ ţĥé šàḿé çĥéçķ ƒöŕ àñý
þļàţƒöŕḿ þàçķàĝé.
Öñé ƃöüñđ šéŕṽîçé, ḿàñý öþéñ þŕöĵéçţš
backend.App îš ţĥé šîñĝļé Ŵàîļš šéŕṽîçé. Ţĥé ƒŕöñţéñđ çàļļš îţš éẋþöŕţéđ
ḿéţĥöđš; ţĥéŕé îš ñö šéçöñđ ŔÞÇ ļàýéŕ àñđ ñö ĥàñđ-ŵŕîţţéñ ƃîñđîñĝ çöđé. Ŵîţĥîñ
ţĥàţ öñé šéŕṽîçé ţĥé çöñçéŕñš àŕé šþļîţ àçŕöšš ƒîļéš: þŕöĵéçţ ļîƒéçýçļé àñđ
šţàţüš, ţĥé þŕöĵéçţ'š çööŕđîñàţé þöîñţš, ţĥé çöñţéẋţ ĝŕàþĥ àñđ ţĥé ṽöîçé
þŕöƒîļé þéŕ þöîñţ, ĝöṽéŕñàñçé éđîţš öñ ţĥé ŕéçîþé, ƒļöŵ ÇŔÜĐ, ţĥé ŕüññéŕ, ţĥé
çàţçĥ-üþ ļööþ àñđ îţš ṽéñüé, çĥéçķš, ţĥé ŕéṽîéŵ ǫüéüé, îñšþéçţîöñ, çöñţéñţ
ḿéḿöŕý, ţéŕḿš, ḿéđîà, öüţþüţš, ţĥé šàḿþļé þŕöĵéçţ, þļüĝîñš, çŕéđéñţîàļš àñđ
ḿöđéļ đéţéçţîöñ, ļöçàļéš, šéţţîñĝš àñđ ŕéçéñţš, ţĥé ƒîļé ŵàţçĥéŕ, àñđ ţĥé
îñ-àþþ üþđàţéŕ.
Þŕöĵéçţš öþéñ àš ţàƃš. Éṽéŕý þŕöĵéçţ-šçöþéđ ḿéţĥöđ ţàķéš à tabID, šö ţĥé
öþéñ šéţ îš ŕéàļ šţàţé îñ ţĥé ƃàçķéñđ. Éàçĥ ţàƃ çàŕŕîéš îţš öŵñ ļöàđéđ ŕéçîþé,
þŕöĵéçţ çöñţéẋţ, àñđ ŕéšöļṽéđ šţöŕéš, àñđ çļöšîñĝ öñé ŕéļéàšéš ţĥéḿ. À ƒîļé
ŵàţçĥéŕ öñ ţĥé ŕéçîþé ķééþš àñ öþéñ ţàƃ ĥöñéšţ ŵĥéñ ţĥé ƒîļé çĥàñĝéš üñđéŕñéàţĥ
îţ, ŵĥîçĥ îš ţĥé ñöŕḿàļ çàšé ŵĥéñ ţĥé šàḿé þŕöĵéçţ îš àļšö ƃéîñĝ đŕîṽéñ ƒŕöḿ ţĥé
ÇĻÎ öŕ ƒŕöḿ ĝîţ.
Ţĥé þŕöĵéçţ ĥöḿé àñđ ţĥé þöîñţ ḿàþ
À þŕöĵéçţ ţàƃ öþéñš öñ ţĥé þŕöĵéçţ'š šţàñđîñĝ, îñ ţĥé ţŵö-àẋîš šĥàþé
kapi status þŕîñţš: çöñţéñţ öñ öñé ŕöŵ, ĝöṽéŕñàñçé öñ ţĥé öţĥéŕ, àñđ ţĥé
ṽéñüé àñđ šţŕéàḿ öñ ţĥé îđéñţîţý ļîñé. Ƃéļöŵ îţ, ţĥé þöîñţ ḿàþ ļîšţš éṽéŕý
çööŕđîñàţé þöîñţ ţĥé ŕéçîþé đéçļàŕéš (Ç-02),
ţĥé çöļļéçţîöñš àţ éàçĥ àñđ ţĥé ṽöîçé þŕöƒîļé ĝöṽéŕñîñĝ ţĥéŕé. À ŕöŵ öþéñš ţĥé
Çöñţéẋţ ĥüƃ šţàñđîñĝ àţ ţĥàţ þöîñţ. À šîñĝļé-þöîñţ þŕöĵéçţ ĝéţš öñé ŕöŵ ŕàţĥéŕ
ţĥàñ ñö ḿàþ.
Ţĥé ƃàçķéñđ ŕéšöļṽéš ţĥé đéçļàŕéđ çŕöšš þŕöđüçţ, ţĥé þŕöĵéçţ'š öŵñ þöîñţ àñđ ţĥéñ éàçĥ þŕöƒîļé'š çĥàññéļš, àñđ ļîšţš à çöļļéçţîöñ ŵĥéŕé îţ îš àçţüàļļý ĝöṽéŕñéđ: à çöļļéçţîöñ ŵĥöšé þŕöƒîļé'š ŵîñđöŵ ĥàš çļöšéđ àþþéàŕš àţ ţĥé þöîñţ ţĥàţ ĝöṽéŕñš îţ, ñöţ ŵĥéŕé îţ ŵàš ŵŕîţţéñ.
Ţĥé Çöñţéẋţ ĥüƃ
Ţĥé šţöŕéš àŕé šéçţîöñš öƒ öñé ĥüƃ, ƃéšîđé ţĥé ĝŕàþĥ:
| Šéçţîöñ | Ŵĥàţ îţ šĥöŵš |
|---|---|
| Éẋþļöŕéŕ | ţĥé çöñţéẋţ ĝŕàþĥ, ţĥŕöüĝĥ @neokapi/context-explorer; ţĥé ĝöṽéŕñš þàñé ŕéñđéŕš ţĥé šàḿé ĝüîđé ţĥé ŕéţŕîéṽàļ šüŕƒàçé šéŕṽéš (Ç-06) |
| Ṽöîçé | ţĥé ŵĥöļé ŕéšöļṽéđ þŕöƒîļé þéŕ þöîñţ: ţöñé, šţýļé þàţţéŕñš ŵîţĥ šéṽéŕîţîéš àñđ ŕàţéš, ţéŕḿ ŕüļéš, éẋàḿþļéš, àñđ ţĥé ļöçàļé, çĥàññéļ àñđ þéŕšöñà öṽéŕŕîđéš àš àüţĥöŕéđ (Ç-07); ţĥé þŕöƒîļé îš éđîţéđ ĥéŕé |
| Ţéŕḿš | ţĥé ţéŕḿš šţöŕé: šéàŕçĥ, ƒàçéţš, þŕöṽéñàñçé, çöñçéþţ ŕéļàţîöñš |
| Çöñţéñţ Ḿéḿöŕý | ţĥé çöñţéñţ ḿéḿöŕý: šéàŕçĥ, ƒàçéţš, àçţîṽîţý, þŕöṽéñàñçé, ţĥé ļàñĝüàĝéš ĝàţé |
Ţĥé ṽöîçé šéçţîöñ ŕéšöļṽéš éṽéŕý þöîñţ ţĥé ŕéçîþé đéçļàŕéš ţŵîçé: àš đéçļàŕéđ, àñđ àţ ţĥé ĝöṽéŕñàñçé îñšţàñţ. À ƃîñđîñĝ ŵĥöšé ŵîñđöŵ éẋçļüđéđ ţĥé îñšţàñţ îš đŕàŵñ àš à šķîþþéđ ŕüñĝ ŵîţĥ îţš ƃöüñđàŕý đàţé àñđ ŵĥàţ ĝöṽéŕñš îñ îţš þļàçé.
Ţĥé ţéŕḿš àñđ ḿéḿöŕý þàĝéš ƃŕöŵšé àñđ àüđîţ. Ḿöṽîñĝ šţöŕé çöñţéñţš îñ àñđ öüţ
àš ƒîļéš îš ţĥé ÇĻÎ'š ĵöƃ (kapi memory, kapi terms), šö ţĥé đéšķţöþ öƒƒéŕš
ñö îḿþöŕţ öŕ éẋþöŕţ çöñţŕöļ, àñđ scripts/check-desktop-interchange.sh ķééþš
öñé ƒŕöḿ ŕéţüŕñîñĝ. Ţĥé ṽîéŵ îđš ţĥé šţöŕé ţàƃš ĥàđ ƃéƒöŕé ţĥé ĥüƃ šţàý
ŕöüţàƃļé šö à
þéŕšîšţéđ ṽîéŵ šţîļļ ļàñđš, àñđ ţĥé àđ-ĥöç ŕàîļ ķééþš ƃöţĥ šţöŕéš, ĥàṽîñĝ ñö
þŕöĵéçţ ţö ƒîļé ţĥéḿ üñđéŕ.
Ĝöṽéŕñàñçé éđîţîñĝ
Þŕöĵéçţ Šéţţîñĝš çàŕŕîéš à Ĝöṽéŕñàñçé šéçţîöñ: ţĥé ṽöîçé þŕöƒîļé ƃöüñđ àš
defaults.voice, ţĥé đéçļàŕéđ àẋéš öƒ ţĥé þŕöĵéçţ'š đéƒàüļţ þöîñţ, ţĥé đéƒàüļţ
ƒļöŵ, àñđ ţĥé þàţĥš à çöñţéñţ šçàñ šķîþš. Ţĥé çöļļéçţîöñ éđîţöŕ šéţš ţĥé
çĥàññéļ à çöļļéçţîöñ ñàḿéš àñđ ţĥé àẋéš îţ đéçļàŕéš ţĥéŕé, àñđ à çöļļéçţîöñ ŕöŵ
šĥöŵš ţĥé þöîñţ îţ ŕéšöļṽéš ţö.
Ţĥé ŕéƒüšàļ ƒöŕ ţĥé šţŕüçţüŕàļ àẋéš ĥàš öñé ĥöḿé. product àñđ channel àŕé
đéŕîṽéđ ƒŕöḿ à çöļļéçţîöñ'š çĥàññéļ, šö ţĥé šéţţéŕ çàļļš
project.DeclarableAxis àñđ ţĥé đéšķţöþ šéŕṽéš ţĥé šàḿé éŕŕöŕ ţĥé ÇĻÎ đöéš;
ţĥé éđîţöŕ çàññöţ öƒƒéŕ àñ àẋîš kapi apply ŵöüļđ ŕéĵéçţ, öŕ ŵöŕđ ţĥé ŕéƒüšàļ
đéŕéñţļý (Ç-02).
Ŕüñš ĝö ţĥŕöüĝĥ ţĥé üþ ṽéñüé
"Ƃŕîñĝ üþ ţö đàţé" çàļļš host.App.RunUpDispatch, ŵĥîçĥ ŕéšöļṽéš ŵĥéŕé ţĥé ŕüñ
éẋéçüţéš ţĥŕöüĝĥ host.App.ResolveUpVenue: ļöçàļļý, öŕ àţ ţĥé çöñṽéŕĝéñçé
ṽéñüé ţĥé ŕéçîþé ƃîñđš. Ţĥé ÇĻÎ àñđ ţĥé ḾÇÞ up ţööļ ţàķé ţĥé šàḿé ŕöüţé, šö à
þŕöĵéçţ ƃöüñđ ţö à ṽéñüé çöñṽéŕĝéš ţĥéŕé ƒŕöḿ éṽéŕý ƒàçé àñđ ţĥé šéŕṽéŕ ķééþš
ţĥé šţàţé à ţéàḿ ŕéṽîéŵš ƒŕöḿ.
Ļîṽé þŕöĝŕéšš šüŕṽîṽéš ţĥé đîšþàţçĥ. Ţĥé ṽéñüé ŕöüţé ŕéàđš ţĥé þļüḿƃîñĝ'š ÑĐĴŠÖÑ ļîñé ƃý ļîñé àš îţ àŕŕîṽéš, ƒöļđîñĝ ƒŕàḿîñĝ ŕéçöŕđš îñţö ţĥé ŕéšüļţ àñđ ĥàñđîñĝ ţĥé ŕüñ'š öŵñ éṽéñţš ţö ţĥé ŕüñ ṽîéŵ; à ƃüƒƒéŕéđ đöçüḿéñţ àñđ à šţŕéàḿéđ öñé àŕé ŕéàđ ƃý ţĥé šàḿé ƒöļđ. Ţĥé šĥàŕéđ éñĝîñé đîšçöṽéŕš þļüĝîñš öñçé, àñđ à ŕüñ ƃöŕŕöŵš ţĥàţ éñĝîñé, šö ţĥé ṽéñüé à ŕüñ ŕéšöļṽéš îš ţĥé öñé ţĥé ţàƃ'š öţĥéŕ šüŕƒàçéš šéé.
À ŕüñ îš öñé çàļļ îñ àñđ à šţŕéàḿ öƒ éṽéñţš öüţ. Ţĥé ƃàçķéñđ ƃüƒƒéŕš ţĥé šţŕéàḿ šö à ŕéļöàđéđ ŵîñđöŵ ŕéþļàýš ţĥé ŕüñ ŕàţĥéŕ ţĥàñ ļöšîñĝ îţ.
À đéšķţöþ ŵîñđöŵ çàñ ŕéļöàđ ḿîđ-ŕüñ, àñđ à ŕüñ ţĥàţ öñļý éẋîšţéđ àš à ļîṽé éṽéñţ šţŕéàḿ ŵöüļđ ṽàñîšĥ. Ţĥé ƃàçķéñđ ķééþš ţĥé éṽéñţš, çöļļàþšîñĝ çöñšéçüţîṽé ḿéţŕîç šñàþšĥöţš šö à ļöñĝ ŕüñ đöéš ñöţ ĝŕöŵ ţĥé ƃüƒƒéŕ àţ ţĥé šàḿþļîñĝ ŕàţé. Ţĥé ŕüññéŕ àšķš ƒöŕ à ţàŕĝéţ ļàñĝüàĝé öñļý ŵĥéñ ţĥé ƒļöŵ þŕöđüçéš öñé.
Ţĥé ţööļƃöẋ îš à ŕéƒéŕéñçé; ƒļöŵš ŕüñ ţĥŕöüĝĥ ţĥé ŕüññéŕ
Ţĥé Ţööļƃöẋ þàĝé đéšçŕîƃéš éàçĥ ŕéĝîšţŕý ţööļ: ŵĥàţ îţ đöéš, îţš šçĥéḿà, ŵĥàţ îţ
çöñšüḿéš àñđ þŕöđüçéš, îţš ŕéƒéŕéñçé þàĝé, àñđ ţĥé çöḿḿàñđ ţĥàţ ŕüñš îţ
(kapi exec <tool>, ŵîţĥ kapi tools schema <tool> ƒöŕ îţš öþţîöñš). Ţööļš
éẋéçüţé ţĥŕöüĝĥ ţĥé ÇĻÎ àñđ ţĥŕöüĝĥ ƒļöŵš; ţĥé đéšķţöþ ŕüñš ñö ţööļ öñ îţš
öŵñ, ƃéçàüšé à ţĥîŕđ þàţĥ ŵöüļđ ĥàṽé ţö ŕé-šöļṽé þŕöĵéçţ îšöļàţîöñ àñđ ÀÎ
çöñšéñţ ƒöŕ ļîţţļé.
Ţĥé ƒļöŵ éđîţöŕ'š Ŕüñ àçţîöñ ĝöéš ţĥŕöüĝĥ ţĥé šàḿé RunFlow þàţĥ ţĥé
çöļļéçţîöñš ţàƃļé àñđ ţĥé þŕöĵéçţ ĥöḿé üšé. Îţ àþþéàŕš îñ þŕöĵéçţ ḿöđé, ŵĥéŕé
ţĥéŕé îš à þŕöĵéçţ ƒöŕ à ŕüñ ţö àçţ öñ, àñđ šţàýš àƃšéñţ îñ àđ-ĥöç ḿöđé.
Ţĥé ƒļöŵ éđîţöŕ'š ĝŕàþĥ éđîţš çöḿþöšîţîöñ öñļý. Îţš ţŵö éñđš àŕé éñđþöîñţ þîçķéŕš (ƒîļé, šţöŕé, îñţéŕçĥàñĝé, öŕ ñöñé), ñöţ đŕàĝĝàƃļé ŕéàđéŕ àñđ ŵŕîţéŕ ñöđéš, ƃéçàüšé ţĥé ƃîñđîñĝ îš à þŕöþéŕţý öƒ ţĥé ŕüñ ŕàţĥéŕ ţĥàñ öƒ ţĥé ƒļöŵ (É-04).
Ţĥé šàḿþļé þŕöĵéçţ
À ƒîŕšţ-ŕüñ šàḿþļé þŕöĵéçţ îš šçàƒƒöļđéđ ƒŕöḿ backend/sample/: à ĝöṽéŕñéđ
ŕéçîþé, çöḿḿîţţéđ çöñţéẋţ, àñđ à çöñţéñţ ḿéḿöŕý šééđéđ ƒŕöḿ à çöḿḿîţţéđ
.memory.json ƃüñđļé, ţĥé ñàţîṽé šéŕîàļîžàţîöñ
(Ḿ-06), ļöàđéđ ŵîţĥ ţĥé šàḿé ŕéàđéŕ
ţĥé ŕéšţ öƒ ţĥé ţŕéé üšéš. Šééđîñĝ ƃüļķ-ļöàđš ţĥé éñţŕîéš àñđ ţĥéñ ŕéƃüîļđš ţĥé
šéàŕçĥ àñđ ƒüžžý šîđé-ţàƃļéš, šö ţĥé šàḿþļé'š ḿéḿöŕý àñšŵéŕš šéàŕçĥ àš ŵéļļ àš
éẋàçţ ļööķüþ.
Ţĥŕéé ƒàçéš, öñé ŕéçöŕđ
kapi àñšŵéŕš ţĥé šàḿé ǫüéšţîöñš ƒŕöḿ ţĥé ÇĻÎ, öṽéŕ ḾÇÞ, àñđ ƒŕöḿ ţĥé đéšķţöþ.
À ƒàçé þàŕîţý šüîţé ĥöļđš ţĥé ţĥŕéé ţö öñé çöḿḿîţţéđ ŕéçöŕđ: host/facetest
ŵŕîţéš öñé ƒîẋţüŕé ƒŕöḿ öñé đéšçŕîþţîöñ àñđ éḿƃéđš öñé šéţ öƒ àñšŵéŕš, àñđ
éàçĥ ƒàçé'š öŵñ šüîţé ƃüîļđš ţĥé ƒîẋţüŕé àñđ çöḿþàŕéš îţš ŕéþļý, ţĥé đéšķţöþ'š
ţĥŕöüĝĥ îţš ƃàçķéñđ ḿéţĥöđš. Ţĥé šĥàþéš àŕé þŕöĵéçţîöñš ŕàţĥéŕ ţĥàñ ţĥé ƒàçéš'
öŵñ šţŕüçţš. À ķñöŵñ ĝàþ ƃéţŵééñ ţŵö ƒàçéš îš þîññéđ ƃý à ţéšţ ţĥàţ àššéŕţš
îţ, šö çļöšîñĝ ţĥé ĝàþ ƒàîļš ţĥé ţéšţ ţĥàţ đéšçŕîƃéš îţ.
Ţĥé ƒŕöñţéñđ çöñšüḿéš ţĥé ŵöŕķšþàçé þàçķàĝéš
Ţĥé đéšķţöþ îš öñé çöñšüḿéŕ öƒ ţĥé ḿöñöŕéþö'š šĥàŕéđ ƒŕöñţéñđ þàçķàĝéš ŕàţĥéŕ
ţĥàñ ţĥé öŵñéŕ öƒ àñý öƒ ţĥéḿ: ţĥé šĥàđçñ þŕîḿîţîṽéš àñđ ţĥé þŕéṽîéŵ ķîţ ƒŕöḿ
@neokapi/ui-primitives (Š-06), ţĥé ẋýƒļöŵ-ƃàšéđ
@neokapi/flow-editor, ţĥé ĝŕàþĥ ṽîéŵš îñ @neokapi/context-explorer, ţĥé ļàƃ
éẋþļöŕéŕš îñ @neokapi/kapi-lab, þļüš ţĥé çöñţŕàçţ ţýþéš, ŕéƒéŕéñçé đàţà,
šţàţüš ṽîéŵš, çöñçéþţ ṽîéŵš, àñđ ĝŕîđ éđîţöŕ þàçķàĝéš. Àļļ ŕéšöļṽé ţĥŕöüĝĥ ţĥé
šîñĝļé ŕööţ þñþḿ ŵöŕķšþàçé.
Îţš þàļéţţé çöḿéš ƒŕöḿ ţĥé šàḿé þļàçé. Ţĥé ļöĝö-đéŕîṽéđ þàļéţţé îš öñé ƒîļé,
packages/ui/src/styles/kapi-colors.css, ŵĥîçĥ ţĥé đéšķţöþ îḿþöŕţš ŕàţĥéŕ ţĥàñ
đéçļàŕîñĝ ţĥé ṽàļüéš îţšéļƒ, àñđ ŵĥîçĥ îñ ţüŕñ îḿþöŕţš ţĥé šéḿàñţîç ţöķéñš ţĥàţ
šàý ŵĥàţ à çöļöüŕ ḿéàñš: ţĥé ĵüđĝéḿéñţ çöļöüŕš àñđ öñé ĥüé þéŕ çööŕđîñàţé àẋîš.
Ţĥé Šţöŕýƃööķ ŕéñđéŕš ţĥŕöüĝĥ ţĥé đéšķţöþ'š šţýļéšĥééţ, šö à šţöŕý àñđ ţĥé àþþ
ŕéàđ ţĥé šàḿé ṽàļüéš, àñđ ţĥé đöçüḿéñţàţîöñ šîţé'š Îñƒîḿà ṽàŕîàƃļéš àñđ ţĥé
đîàĝŕàḿ ķîţ'š đéƒàüļţš àŕé çöḿþüţéđ ƒŕöḿ ţĥàţ öñé ƒîļé. Îṽöŕý šüŕƒàçéš, çöçöà
àççéñţš àñđ ţüŕǫüöîšé ĥîĝĥļîĝĥţš ƒöļļöŵ ţĥé éẋîšţîñĝ ļöĝö; đàŕķ ḿöđé üšéš ŵàŕḿ
çĥàŕçöàļ àñđ öçĥŕé ŵîţĥ đàŕķ þŕîḿàŕý-ƃüţţöñ ţéẋţ. Šéé
Ƃŕàñđ ţöķéñš àñđ ţĥé đöçüḿéñţàţîöñ þàļéţţé.
Îţ àļšö çöñšüḿéš @neokapi/i18n-react (Š-05) ƒöŕ îţš
öŵñ îñţéŕƒàçé ļàñĝüàĝéš. Ţĥé đéšķţöþ'š ÜÎ šţŕîñĝš ĝö ţĥŕöüĝĥ ţĥé šàḿé
éẋţŕàçţîöñ àñđ ŕüñţîḿé ţĥé ƒŕàḿéŵöŕķ öƒƒéŕš ţö àñý Ŕéàçţ àþþļîçàţîöñ, àñđ ţĥé
ţàŕĝéţ-ļàñĝüàĝé çàţàļöĝš àŕé ƃüîļđ àŕţéƒàçţš, ŕéĝéñéŕàţéđ ŕàţĥéŕ ţĥàñ àüţĥöŕéđ.
Çöñƒîĝüŕàţîöñ ļîṽéš îñ ţŵö ŕööţš
Þŕöṽîđéŕ çöñƒîĝüŕàţîöñ àñđ îñšţàļļéđ þļüĝîñš ļîṽé üñđéŕ ţĥé kapi çöñƒîĝ ĥöḿé,
šĥàŕéđ ŵîţĥ ţĥé ÇĻÎ: providers.json ţĥéŕé, ÀÞÎ ķéýš îñ ţĥé ÖŠ ķéýçĥàîñ üñđéŕ
ţĥé kapi šéŕṽîçé ñàḿé, àñđ þļüĝîñš üñđéŕ plugins/ (Š-01).
Ţĥé ÇĻÎ àñđ ţĥé đéšķţöþ ƃöţĥ ţàķé àñ àļţéŕñàţîṽé þļüĝîñ đîšçöṽéŕý ŕööţ ƒŕöḿ
KAPI_PLUGINS_DIR, àñđ ƃöţĥ ĥöñöüŕ KAPI_PLUGINS_DIR_ONLY ţö šķîþ ţĥé
üšéŕ/šýšţéḿ ŕööţš éñţîŕéļý, ţĥé šàḿé îšöļàţîöñ çöñţŕàçţ đéṽ, ÇÎ, àñđ ţĥé
ĥàŕñéšš ŕéçöŕđéŕ àļŕéàđý ŕéļý öñ.
Ţĥé đéšķţöþ'š öŵñ þŕéƒéŕéñçéš (ţĥéḿé, îñţéŕƒàçé ļàñĝüàĝé, ĥîđđéñ àñđ çüšţöḿ
ļöçàļéš, ţéļéḿéţŕý çöñšéñţ, ŕéçéñţ þŕöĵéçţš) ļîṽé îñ à šéþàŕàţé ŕööţ,
<UserConfigDir>/kapi-desktop, öṽéŕŕîđàƃļé ŵîţĥ KAPI_DESKTOP_CONFIG_DIR. Ţĥé
šþļîţ îš đéļîƃéŕàţé: à þŕéƒéŕéñçé àƃöüţ à ŵîñđöŵ îš ñöţ à šéţţîñĝ ţĥé ÇĻÎ
šĥöüļđ ŕéàđ, àñđ ŕéšéţţîñĝ öñé šĥöüļđ ñöţ đîšţüŕƃ ţĥé öţĥéŕ.
Îţ ŕéüšéš ƒŕàḿéŵöŕķ þŕîḿîţîṽéš ŕàţĥéŕ ţĥàñ ŕé-đéŕîṽîñĝ ţĥéḿ
Ţööļ ļîšţîñĝš çöḿé ƒŕöḿ ţĥé šàḿé ŕéĝîšţŕý ţĥé ÇĻÎ ŕéàđš, àñđ éàçĥ ţööļ'š
šçĥéḿà ƒöŕḿ îš ĝéñéŕàţéđ ƒŕöḿ îţš ĴŠÖÑ Šçĥéḿà
(É-03), šö à ñéŵ ţööļ àþþéàŕš îñ ţĥé đéšķţöþ
ŵîţĥ ñö đéšķţöþ çĥàñĝé ƃéýöñđ ŕéĝîšţŕàţîöñ. Ƒöŕḿàţš, þļüĝîñš, þŕöṽîđéŕš, ƃļöçķ
šţöŕéš, ţĥé çöñţéẋţ ĝŕàþĥ, àñđ ţĥé éẋéçüţöŕ àŕé ļîķéŵîšé ţĥé ƒŕàḿéŵöŕķ'š,
çöñšüḿéđ ŕàţĥéŕ ţĥàñ ḿîŕŕöŕéđ. À þŕöĵéçţ đéçļàŕîñĝ à đéŕéñţ ƃļöçķ šţöŕé öþéñš
ŵîţĥöüţ ţĥé đéšķţöþ ķñöŵîñĝ ŵĥîçĥ öñé: ŕéšöļüţîöñ ĝöéš ţĥŕöüĝĥ ţĥé BlockStore
îñţéŕƒàçé îñ ţĥé þŕöĵéçţ ḿàçĥîñéŕý.
Đéŕéñçéš ƒŕöḿ ţĥé ÇĻÎ àŕé þŕéšéñţàţîöñàļ: đýñàḿîç ƒöŕḿš, éṽéñţ šţŕéàḿîñĝ, ļîṽé þŕöĝŕéšš, ţàƃƃéđ šţàţé. Ţĥéŕé îš ñö đéšķţöþ ƒöŕķ öƒ ƒŕàḿéŵöŕķ ƃéĥàṽîöüŕ.
Đîšţŕîƃüţîöñ
Ţĥé ŕéļéàšé ŵöŕķƒļöŵ ƃüîļđš ţĥé đéšķţöþ àçŕöšš à þļàţƒöŕḿ ḿàţŕîẋ çöṽéŕîñĝ ḿàçÖŠ, Ŵîñđöŵš, àñđ Ļîñüẋ öñ ƃöţĥ çöḿḿöñ àŕçĥîţéçţüŕéš ŵĥéŕé ţĥé ţööļçĥàîñ àļļöŵš îţ. ḿàçÖŠ šĥîþš àš à Ĥöḿéƃŕéŵ çàšķ ƒŕöḿ ţĥé ţàþ, Ŵîñđöŵš àñđ Ļîñüẋ àš àŕçĥîṽéš àţţàçĥéđ ţö ţĥé ĜîţĤüƃ ŕéļéàšé. À šîĝñéđ àþþçàšţ ƒééđš ţĥé îñ-àþþ üþđàţéŕ, šö àñ îñšţàļļéđ đéšķţöþ çàñ üþđàţé îţšéļƒ ŵîţĥöüţ ĝöîñĝ ƃàçķ ţĥŕöüĝĥ ţĥé þàçķàĝé ḿàñàĝéŕ.
Çöñšéǫüéñçéš
- Ţĥé đéšķţöþ ŕéàçĥéš éṽéŕý ƒŕàḿéŵöŕķ çàþàƃîļîţý ţĥŕöüĝĥ
host, šö îţ çàñ đŕîƒţ ƒŕöḿ ţĥé ÇĻÎ öñļý öñ þŕéšéñţàţîöñ, àñđ ţĥé ƒàçé þàŕîţý ŕéçöŕđ çàţçĥéš đŕîƒţ öñ ţĥé àñšŵéŕš ţĥéḿšéļṽéš. - Ŵàîļš àñđ ţĥé ñàţîṽé ţööļçĥàîñ šţàý öüţ öƒ ţĥé ÇĻÎ ḿöđüļé, ŵĥîçĥ ķééþš ţĥé ÇĻÎ çŕöšš-çöḿþîļàƃļé àñđ šḿàļļ.
- Ţĥé çöƃŕà-ƒŕéé àñđ þļàţƒöŕḿ-ƒŕéé àššéŕţîöñš àŕé ḿéçĥàñîçàļ: à ŕéîñţŕöđüçéđ
cliöŕ þļàţƒöŕḿ îḿþöŕţ ƒàîļšmake audit-modules, ñöţ à ŕéṽîéŵ. - À þŕöĵéçţ ƃöüñđ ţö à çöñṽéŕĝéñçé ṽéñüé çöñṽéŕĝéš ţĥéŕé ƒŕöḿ ţĥé đéšķţöþ àš ƒŕöḿ ţĥé ÇĻÎ, šö ţĥé ţéàḿ'š šţàţé ĥàš öñé ĥöḿé.
- Ţàƃš ḿàķé ţĥé đéšķţöþ ĥöñéšţ àƃöüţ à ŕéàļ ŵöŕķîñĝ þàţţéŕñ, šéṽéŕàļ þŕöĵéçţš
öþéñ àţ öñçé, àţ ţĥé çöšţ öƒ éṽéŕý þŕöĵéçţ-šçöþéđ ḿéţĥöđ çàŕŕýîñĝ à
tabID. kapi.yamlŕéçîþéš šţàý šĥàŕéàƃļé ŵöŕķƒļöŵ đöçüḿéñţš: öþéñ, éđîţ, šàṽé, çöḿḿîţ. Ñö ĥîđđéñ šţàţé ţŕàṽéļš ŵîţĥ ţĥé ŕéçîþé, àñđ à ĝöṽéŕñàñçé éđîţ ḿàđé îñ ţĥé đéšķţöþ îš à ŕéçîþé éđîţgit diffšĥöŵš.- Àñý ñéŵ ţööļ, ƒöŕḿàţ, öŕ þŕöṽîđéŕ ŕéĝîšţéŕéđ îñ ţĥé ƒŕàḿéŵöŕķ àþþéàŕš îñ ţĥé đéšķţöþ ŵîţĥ ñö ƃàçķéñđ çĥàñĝé.
Ŕéļàţéđ
- Ƒ-01: Ţĥé ƒŕàḿéŵöŕķ àñđ îţš ḿöđüļéš: ţĥé ḿöđüļé îšöļàţîöñ çöñţŕàçţ àñđ ţĥé ļîçéñšé ƃöüñđàŕý
- É-01: Ţĥé þŕöçéššîñĝ éñĝîñé: ţĥé éẋéçüţöŕ àñđ îţš ţŕàçé éṽéñţš
- É-03: Ţĥé ţööļ šýšţéḿ: ţĥé ŕéĝîšţŕý àñđ šçĥéḿàš ţĥé ƒöŕḿš àŕé ĝéñéŕàţéđ ƒŕöḿ
- É-04: Ƒļöŵš àñđ Î/Ö ƃîñđîñĝ: ŵĥý ţĥé ĝŕàþĥ'š éñđš àŕé éñđþöîñţ þîçķéŕš
- É-05: Ţĥé þļüĝîñ šýšţéḿ: ţĥé þļüĝîñ ḿàñàĝéŕ'š ḿöđéļ
- Ç-01: Ţĥé þŕöĵéçţ ḿöđéļ: ţĥé ŕéçîþé àñđ ţĥé
.kapi/šţàţé à ţàƃ ļöàđš - Ç-02: Çööŕđîñàţéš àñđ ĝöṽéŕñàñçé: ţĥé çööŕđîñàţé þöîñţš ţĥé ĥöḿé ḿàþš àñđ ţĥé àẋéš ţĥé šéţţîñĝš éđîţ
- Ç-04: Üñîţ šţàţé àñđ đéçîšîöñš: ŵĥàţ ţĥé ŕéṽîéŵ ǫüéüé ŕéçöŕđš
- Ç-06: Çöñţéẋţ ŕéţŕîéṽàļ: ţĥé ĝüîđé ţĥé éẋþļöŕéŕ ŕéñđéŕš
- Ç-07: Ṽöîçé þŕöƒîļéš: ţĥé þŕöƒîļé ţĥé Ṽöîçé þàĝé ŕéšöļṽéš àñđ éđîţš
- Š-01: Ţĥé kapi ÇĻÎ: ţĥé šĥàŕéđ çŕéđéñţîàļ šţöŕé àñđ çöñƒîĝ ĥöḿé
- Š-03: Àĝéñţ šüŕƒàçéš: ţĥé ḾÇÞ ƒàçé ţĥé þàŕîţý ŕéçöŕđ àļšö ĥöļđš
- Š-05: Ţĥé î18ñ ŕüñţîḿé ƒöŕ Ŕéàçţ: ţĥé ŕüñţîḿé ţĥé đéšķţöþ'š öŵñ îñţéŕƒàçé üšéš
- Š-06: Ţĥé ṽîšüàļ éđîţöŕ đàţà ḿöđéļ: ţĥé þŕéṽîéŵ ķîţ ţĥé đéšķţöþ ĥöšţš
- Š-07: Ţĥé ŕéṽîéŵ ḿöđéļ: ţĥé ḿöđéļ ţĥé ǫüéüé'š đéţàîļ þàñé àñđ ţĥé đöçüḿéñţ ṽîéŵ ŕéñđéŕ
- Kapi Đéšķţöþ öṽéŕṽîéŵ: ţĥé üšéŕ-ƒàçîñĝ ĝüîđé