Two fixes in one commit:
1. Terminology: ozadnji proces → proces v ozadju
- More natural Slovenian — noun inflects, prepositional phrase stays fixed
- 60 replacements across 19 sl/ files
- Glossary header updated to match
- Reverts the bad merge that restored "demon" in glasspane.md and
task-board.md (including enouporabniški→enonajemniški fix)
- Forms: proces v ozadju / procesa v ozadju / procesu v ozadju /
procesom v ozadju / procesov v ozadju
2. New wiki page: daemon-not-demon (EN + SL)
- Explains the FreeBSD daemon (Beastie mascot, helper spirit) vs
Slovenian demon (devil, bad spirit)
- Documents the decision to use proces v ozadju in Slovenian
- Confirms daemon (with a) is the only English spelling in Colibri
- Linked from both EN and SL wiki indexes
62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
---
|
|
title: Operaterski CLI (`colibri`)
|
|
description: "Binarna datoteka `colibri` je operaterski vmesnik ukazne vrstice do procesa v ozadju — tanek tipiziran odjemalec Unix vtičnice."
|
|
---
|
|
|
|
← [kazalo](./index.md)
|
|
|
|
Binarna datoteka `colibri` je operaterski vmesnik ukazne vrstice do procesa v ozadju.
|
|
Je tanek odjemalec — pošilja ukaze JSON po vtičnici Unix, razčlenjuje odgovore
|
|
in jih izpisuje. Vsak podukaz CLI se preslika v en ukaz procesa v ozadju. Vmesnik CLI
|
|
dodaja priročnost (barvni izpis, privzetki, oblikovalci), ne poslovne logike.
|
|
|
|
→ `crates/colibri-client/src/bin/colibri.rs`
|
|
|
|
## Odločitve
|
|
|
|
### Ena binarna datoteka, ena vtičnica
|
|
|
|
Obstaja ena binarna datoteka `colibri`, ki se poveže na eno vtičnico
|
|
(`/var/run/colibri/colibri.sock` ali `COLIBRI_SOCKET`). Ni podukazov za
|
|
izbiro procesa v ozadju — večgostiteljske operacije gredo skozi most krmilne ravnine.
|
|
Operater izrecno usmeri na drug gostitelj (`nc <tailnet-ip> 9190`), ne da bi
|
|
CLI podpiral več končnih točk.
|
|
|
|
**Zakaj ne več profilov procesa v ozadju**: en proces v ozadju na gostitelja je zadosten. Več
|
|
končnih točk bi v CLI vneslo stanje (`colibri --host osa status`), ki ga most
|
|
že rešuje na omrežni plasti.
|
|
|
|
### CLI je generičen odjemalec JSON-RPC
|
|
|
|
Vsak podukaz zgradi objekt `ColibriCommand`, pokliče
|
|
`client.request(command).await` in izpiše rezultat. Odjemalec ne ve ničesar o
|
|
pomenu kateregakoli ukaza — samo serializira in razčlenjuje.
|
|
|
|
Oblikovalci izhodov (`print_json`, `print_table`, `print_key_value`) so čiste
|
|
funkcije nad `serde_json::Value`. Če proces v ozadju doda novo polje, se samodejno
|
|
prikaže v izhodu JSON brez spremembe v CLI.
|
|
|
|
### En ukaz na zagon, ne interaktivno
|
|
|
|
Vsak zagon `colibri` izvede natanko en ukaz in konča. Brez lupine REPL, brez
|
|
več ukazov v eni seji. To ohranja CLI brez stanja in varnega za skriptanje:
|
|
`colibri status | jq '.data.agents'` je enako zanesljiv v cronu kot v
|
|
terminalu.
|
|
|
|
→ `crates/colibri-client/src/bin/colibri.rs` (`main`)
|
|
|
|
### Podukazi, specifični za tablo opravil, sledijo istemu vzorcu
|
|
|
|
Ukazi za opravila (`create-task`, `intake-task`, `claim-task`,
|
|
`transition-task`) sprejemajo argumente CLI, ki se preslikajo v polja ukaza
|
|
JSON. Izhod je bodisi celoten objekt opravila (za `create-task`,
|
|
`intake-task`) bodisi potrditev (`claim-task`, `transition-task`). Noben
|
|
podukaz ne zahteva več kot ~3 argumentov — opravilna tabla je namenjena
|
|
dodeljevanju s strani agenta, ne ročnemu upravljanju.
|
|
|
|
→ `crates/colibri-client/src/bin/colibri.rs`
|
|
|
|
## Glej tudi
|
|
|
|
- [task-board](./task-board.md) — ukazi, ki jih CLI zrcali
|
|
- [deployment](./deployment.md) — kako je nameščena binarna datoteka procesa v ozadju
|