CLI του cc_server
Κάθε flag διεργασίας δέχεται ένα flag CLI ή μια μεταβλητή περιβάλλοντος· το flag υπερισχύει, έπειτα το περιβάλλον και μετά η προεπιλογή. Τα διαπιστευτήρια τρίτων αποτελούν την εξαίρεση — δείτε παρακάτω.
| Flag | Μεταβλητή | Προεπιλογή | Σημασία |
|---|---|---|---|
--data-dir |
CC_SERVER_DATA_DIR |
ο κατάλογος δεδομένων εφαρμογών ανά χρήστη του λειτουργικού συστήματος (δείτε παρακάτω) | Βάσεις δεδομένων, μυστικά, μοντέλα και προσωρινά αποθηκευμένα πολυμέσα |
--port |
CC_SERVER_PORT |
9030 |
Θύρα TCP (0 = εφήμερη) |
--bind |
CC_SERVER_BIND |
loopback |
loopback, ή any/all/0.0.0.0 για κάθε διεπαφή (απαιτεί TLS ή --insecure) |
--repo-roots |
CC_SERVER_REPO_ROOTS |
ο αρχικός κατάλογος του χρήστη του διακομιστή | Βασικοί κατάλογοι χωρισμένοι με κόμμα, στους οποίους ένας πελάτης μπορεί να περιηγηθεί κατά την καταχώριση ενός αποθετηρίου. Η περιήγηση πάνω από μια ρίζα απορρίπτεται |
--log-level |
CC_SERVER_LOG_LEVEL |
warning |
debug, info, warning ή error. Οι γραμμές εκκίνησης/ετοιμότητας εκτυπώνονται πάντα |
--server-name |
CC_SERVER_NAME |
το όνομα κεντρικού υπολογιστή του μηχανήματος | Όνομα που εμφανίζεται σε επιλογείς, στην ανακάλυψη και στις επιφάνειες σύζευξης |
Προσβασιμότητα και TLS
Ενότητα με τίτλο «Προσβασιμότητα και TLS»| Flag | Μεταβλητή | Προεπιλογή | Σημασία |
|---|---|---|---|
--tls-cert |
CC_SERVER_TLS_CERT |
μη ορισμένο | Αλυσίδα πιστοποιητικών PEM. Εξυπηρετεί wss:// εντός της διεργασίας όταν οριστεί μαζί με το κλειδί |
--tls-key |
CC_SERVER_TLS_KEY |
μη ορισμένο | Ιδιωτικό κλειδί PEM που αντιστοιχεί στο πιστοποιητικό |
--insecure |
CC_SERVER_INSECURE |
ανενεργό | Να επιτρέπεται δέσμευση εκτός loopback χωρίς κρυπτογράφηση. Μόνο πίσω από proxy τερματισμού TLS σε αξιόπιστο δίκτυο· αγνοείται όταν έχει ρυθμιστεί TLS |
--public-url |
CC_SERVER_PUBLIC_URL |
προκύπτει από τη δέσμευση | Το URL RPC που διαφημίζει αυτός ο διακομιστής σε συζευγμένους πελάτες. Ορίστε το ρητά πίσω από proxy, NAT ή σήραγγα — η προεπιλεγμένη τιμή είναι μόνο μια εικασία για την τοπική δέσμευση |
--allowed-origins |
CC_SERVER_ALLOWED_ORIGINS |
https://app.usectrl.dev |
Προελεύσεις προγράμματος περιήγησης χωρισμένες με κόμμα, που επιτρέπεται να καλούν το /rpc από άλλη προέλευση. Το loopback και οι εγγενείς πελάτες επιτρέπονται πάντα |
--web-client-url |
CC_SERVER_WEB_CLIENT_URL |
μη ορισμένο | Προέλευση του φιλοξενούμενου πελάτη web, στην οποία επιστρέφουν οι επιστροφές κλήσεων ενιαίας σύνδεσης |
--signaling-url |
CC_SERVER_SIGNALING_URL |
wss://signaling.usectrl.dev |
Ο μεσίτης αναμετάδοσης στον οποίο συνδέεται αυτός ο διακομιστής, ώστε ένα τηλέφωνο να μπορεί να τον προσεγγίσει χωρίς άμεση διαδρομή |
--mdns |
CC_SERVER_MDNS |
auto |
Διαφήμιση στο LAN: auto (μόνο όταν η δέσμευση ξεπερνά το loopback), on, off. Η ανακάλυψη διαφημίζει μόνο την ύπαρξη — η συμμετοχή εξακολουθεί να απαιτεί σύζευξη |
--tunnel |
CC_SERVER_TUNNEL |
off |
Πάροχος διαχειριζόμενης σήραγγας: off, cloudflared, ngrok, tailscale. Η δημόσια έκθεση είναι προαιρετική |
--tunnel-binary |
CC_SERVER_TUNNEL_BINARY |
επιλύεται από το PATH |
Ρητή διαδρομή του εκτελέσιμου της σήραγγας |
--tunnel-sha256 |
CC_SERVER_TUNNEL_SHA256 |
μη ορισμένο | Το αναμενόμενο SHA-256 αυτού του εκτελέσιμου, που επαληθεύεται πριν από κάθε εκκίνηση |
--tunnel-args |
CC_SERVER_TUNNEL_ARGS |
κενό | Πρόσθετα ορίσματα χωρισμένα με κόμμα για την κλήση της σήραγγας |
Ευρετηρίαση και διαπιστευτήρια τρίτων
Ενότητα με τίτλο «Ευρετηρίαση και διαπιστευτήρια τρίτων»| Flag | Μεταβλητή | Προεπιλογή | Σημασία |
|---|---|---|---|
--sandbox |
CC_SERVER_SANDBOX |
on |
Αν οι εκτελέσεις πρακτόρων περιτυλίγονται στο εγγενές sandbox του λειτουργικού συστήματος του ξενιστή όταν υπάρχει διαθέσιμο. Εξαίρεση, όχι ενεργοποίηση — δείτε παρακάτω |
--code-index |
CC_SERVER_CODE_INDEX |
on |
Διακόπτης πεδίου για την ευρετηρίαση του γραφήματος κώδικα στο παρασκήνιο. Το off κάνει καθαρή εκκίνηση χωρίς επαναδόμηση |
--code-index-defer |
CC_SERVER_CODE_INDEX_DEFER |
15 |
Δευτερόλεπτα αναμονής της πρώτης σάρωσης του ευρετηρίου μετά το μήνυμα ετοιμότητας (περιορίζεται σε 0–300) |
--tool-deferral |
CC_SERVER_TOOL_DEFERRAL |
on |
Αν οι εκτελέσεις του μηχανισμού στέλνουν ένα μικρό μόνιμο σύνολο εργαλείων συν ένα ευρετήριο ονομάτων, φορτώνοντας τα υπόλοιπα κατά την πρώτη χρήση. Δείτε παρακάτω |
--credential-gate |
CC_SERVER_CREDENTIAL_GATE |
900 |
Δευτερόλεπτα που μια εκτέλεση σταθμεύει περιμένοντας έναν άνθρωπο να διορθώσει ένα διαπιστευτήριο που δεν μπορεί να την εξυπηρετήσει (περιορίζεται σε 0–3600). Δείτε παρακάτω |
Μια κενή τιμή για ένα διαπιστευτήριο διαβάζεται ως μη ορισμένη, οπότε ισχύει ακόμη η ενσωματωμένη εφεδρική τιμή. Μια δομή από τον πηγαίο κώδικα δεν φέρει καθόλου ενσωματωμένα διαπιστευτήρια.
Το Google Calendar και ο επιλογέας GIF του Klipy είναι μόνο μέσω
περιβάλλοντος — δεν υπάρχει flag --google-client-id / --klipy-app-key (τα
άγνωστα flag αγνοούνται). Ορίστε τα GOOGLE_OAUTH_CLIENT_ID +
GOOGLE_OAUTH_CLIENT_SECRET και KLIPY_APP_KEY στο περιβάλλον (ή σε ένα .env
δίπλα στον διακομιστή). Μια κενή τιμή απενεργοποιεί αυτή τη δυνατότητα αντί να
αποτύχει η εκκίνηση.
--sandbox
Ενότητα με τίτλο «--sandbox»Ο διακομιστής ανιχνεύει τον ξενιστή μία φορά κατά την εκκίνηση και περιτυλίγει
την εκτέλεση εντολών του πράκτορα στο εγγενές sandbox του λειτουργικού συστήματος
όταν υπάρχει διαθέσιμο backend: sandbox-exec (Seatbelt) στο macOS, bwrap μαζί
με socat στο Linux και στο WSL2. Όπου δεν υπάρχει κανένα — στα Windows, ή σε
ξενιστή Linux που του λείπουν αυτά τα εργαλεία — οι εκτελέσεις καταφεύγουν στην
εξυγίανση του περιβάλλοντος, στην πολιτική εντολών και στους περιορισμούς
ενεργειών, και το αρχείο καταγραφής εκκίνησης λέει ποια κατάσταση ισχύει.
Το --sandbox off είναι ο διακόπτης πεδίου για την περίπτωση που η ανίχνευση δεν
μπορεί να δει: έναν ξενιστή όπου το ίδιο το προφίλ sandbox συμπεριφέρεται
λανθασμένα. Δεν χρειάζεται επαναδόμηση και ο διακομιστής καταγράφει μια
προειδοποίηση για όλη τη διάρκεια ζωής της διεργασίας, ώστε η κατάσταση να μην
είναι ποτέ σιωπηλή.
--tool-deferral
Ενότητα με τίτλο «--tool-deferral»Οι εκτελέσεις του ενσωματωμένου μηχανισμού στέλνουν ένα μικρό μόνιμο σύνολο
ορισμών εργαλείων συν ένα ευρετήριο μόνο με ονόματα για τα υπόλοιπα, τα οποία
φορτώνουν τα σχήματά τους την πρώτη φορά που χρησιμοποιούνται. Αυτό κόβει το
μπλοκ των εργαλείων κατά περίπου 78% και κρατά το πάντα ορατό σύνολο μέσα στο
εύρος όπου τα μοντέλα επιλέγουν εργαλεία αξιόπιστα. Τα αναβαλλόμενα εργαλεία
παραμένουν καλούμενα με το όνομά τους καθ’ όλη τη διάρκεια, και το search_tools
τα βρίσκει με βάση την πρόθεση. Δείτε το Πλαίσιο εργαλείων και προσωρινή
αποθήκευση προτροπών.
Το --tool-deferral off κάνει κάθε εργαλείο που έχει γίνει δεκτό και πάλι μόνιμο,
αναπαράγοντας τα αιτήματα που έκανε ο διακομιστής πριν υπάρξει η αναβολή. Είναι ο
διακόπτης για ένα μοντέλο που χειρίζεται άσχημα την επιφάνεια των δύο επιπέδων —
ένα flag αντί για επαναδόμηση. Επηρεάζει μόνο τον ενσωματωμένο μηχανισμό· το
tools/list του MCP που βλέπουν οι εξωτερικοί πελάτες είναι πάντα ο πλήρης
κατάλογος.
--credential-gate
Ενότητα με τίτλο «--credential-gate»Μια εκτέλεση της οποίας το διαπιστευτήριο παρόχου λείπει ή έχει εξαντληθεί σταθμεύει αντί να αποτύχει: ο χειριστής λαμβάνει μια προτροπή να το διορθώσει και η εκτέλεση συνεχίζεται αν το κάνει. Η προεπιλεγμένη προθεσμία είναι 900 δευτερόλεπτα (15 λεπτά), με περιορισμό 0–3600.
Η προθεσμία είναι σκόπιμα πολύ μεγαλύτερη από αυτήν της προτροπής έγκρισης: μια έγκριση είναι μια απόφαση που παίρνει κάποιος σε δευτερόλεπτα, ενώ η διόρθωση ενός διαπιστευτηρίου σημαίνει άνοιγμα τερματικού, σύνδεση και επιστροφή. Το ανώτατο όριο είναι αυτό που εμποδίζει μια εκτέλεση χωρίς επιτήρηση — ένα βήμα pipeline, ένα έναυσμα cron, ένα webhook — να περιμένει κάποιον που κοιμάται. Όταν λήξει, η εκτέλεση αποτυγχάνει με το μήνυμα με το οποίο θα αποτύγχανε ούτως ή άλλως.
Το --credential-gate=0 είναι ο διακόπτης: τίποτα δεν σταθμεύει ποτέ και ένα κακό
διαπιστευτήριο τερματίζει τη στροφή ακριβώς όπως έκανε πριν υπάρξει η πύλη.
Υποεντολές
Ενότητα με τίτλο «Υποεντολές»| Εντολή | Τι κάνει |
|---|---|
cc_server |
Εκτελεί τον διακομιστή μέχρι SIGINT/SIGTERM |
cc_server pair |
Προμηθεύει μια συσκευή και εκτυπώνει το id και το κλειδί σύζευξής της. Ασφαλές απέναντι σε έναν κατάλογο δεδομένων που ένας διακομιστής τον εξυπηρετεί ήδη — ο ενεργός διακομιστής παραλαμβάνει τη συσκευή χωρίς επανεκκίνηση |
cc_server calendar connect --workspace <id> |
Συνδέει έναν λογαριασμό Google σε έναν χώρο εργασίας μέσω της ροής κωδικού συσκευής και μετά εξέρχεται |
cc_server update |
Ελέγχει, κατεβάζει και επαληθεύει μια νεότερη αυτόνομη έκδοση |
cc_server --version |
Εκτυπώνει την έκδοση της δομής και το SHA του git — την ίδια ταυτότητα που διαφημίζουν το /healthz και η χειραψία RPC |
| Flag | Προεπιλογή | Σημασία |
|---|---|---|
--device |
web-client |
Το id της συσκευής. Η πλατφόρμα συνάγεται από αυτό, οπότε το --device desktop δημιουργεί μια γραμμή υπολογιστή και το --device ios/android μια γραμμή τηλεφώνου· οτιδήποτε άλλο αντιμετωπίζεται ως web |
--label |
όνομα πλατφόρμας συν το όνομα κεντρικού υπολογιστή αυτού του μηχανήματος | Εμφανιζόμενο όνομα στη λίστα συσκευών |
--host |
localhost, ή <this-host> όταν η δέσμευση γίνεται σε κάθε διεπαφή |
Κεντρικός υπολογιστής που θα ενσωματωθεί στο εκτυπωμένο URL. Ορίστε το στη διεύθυνση IP του LAN ή στον κεντρικό υπολογιστή της σήραγγας που θα καλέσει πραγματικά ένας πελάτης |
--client-url |
μη ορισμένο | Προέλευση του φιλοξενούμενου πελάτη web. Προσθέτει έναν σαρώσιμο σύνδεσμο βαθιάς σύνδεσης και ένα QR στο τερματικό |
Το pair δέχεται επίσης τα βασικά flag --data-dir, --port και --bind: αυτά
επιλέγουν τον κατάλογο δεδομένων στον οποίο θα γίνει η εγγραφή και διαμορφώνουν το
εκτυπωμένο URL του διακομιστή (ws στο loopback, wss με --bind any). Η
επανεκτέλεση του pair για το ίδιο --device εναλλάσσει το κλειδί του και
αποσπά τις ζωντανές συνεδρίες αυτής της συσκευής. Ένα διαπιστευτήριο που παράγεται
εδώ δεν λήγει, σε αντίθεση με τις 30 ημέρες που ορίζει μια σύζευξη εντός της
εφαρμογής.
Το --apply αντικαθιστά την εγκατάσταση· απορρίπτεται όσο ένας διακομιστής
εξακολουθεί να απαντά στη ρυθμισμένη θύρα, εκτός αν περάσετε το --force. Το
--allow-downgrade επιτρέπει μια παλαιότερη έκδοση.
Η εντολή αρνείται κατηγορηματικά, με εξήγηση αντί για σφάλμα, για εγκαταστάσεις που δεν της ανήκουν:
| Περιβάλλον | Ανιχνεύεται από | Τι λέει |
|---|---|---|
| Ο ενσωματωμένος διακομιστής της εφαρμογής υπολογιστή | CC_EMBEDDED=1 ή CC_BOOTSTRAP_DEVICE_ID |
Ενημερώστε αντ’ αυτού την εφαρμογή — ο εγκαταστάτης αλλάζει ολόκληρο το δέντρο |
Ένα αντίγραφο πηγαίου κώδικα για dart run |
η διαδρομή του σεναρίου τελειώνει σε .dart |
Ενημερώστε το με git |
| Docker | δείκτες container | Κατεβάστε ένα νεότερο image |
Κύκλος ζωής διεργασίας
Ενότητα με τίτλο «Κύκλος ζωής διεργασίας»Ο cc_server εκτελείται μέχρι SIGINT / SIGTERM. Μια επιπλέον μεταβλητή
περιβάλλοντος το διέπει, και τη θέτει η εφαρμογή υπολογιστή και όχι εσείς:
| Μεταβλητή | Επίδραση |
|---|---|
CC_EXIT_WITH_PARENT=1 |
Ο διακομιστής εξέρχεται όταν εξέλθει η γονική του διεργασία, κάτι που ανιχνεύεται από το κλείσιμο του άκρου εγγραφής της διοχέτευσης stdin της γονικής διεργασίας. Η εφαρμογή υπολογιστή το θέτει ώστε μια εφαρμογή που καταρρέει να μην αφήνει ποτέ έναν ορφανό διακομιστή να κρατά τον κατάλογο δεδομένων |
Ορίστε το μόνοι σας μόνο αν επιτηρείτε τον cc_server ως θυγατρική διεργασία και
θέλετε την ίδια εγγύηση.
Διάταξη καταλόγου δεδομένων
Ενότητα με τίτλο «Διάταξη καταλόγου δεδομένων»Ο προεπιλεγμένος κατάλογος δεδομένων είναι ~/Library/Application Support/control-center
στο macOS, %APPDATA%\control-center στα Windows και $XDG_DATA_HOME/control-center
(αλλιώς ~/.local/share/control-center) αλλού. Ένας .cc_server σχετικός με τον
τρέχοντα κατάλογο εργασίας χρησιμοποιείται μόνο όταν δεν επιλύεται κανένας
αρχικός κατάλογος ή κατάλογος δεδομένων εφαρμογών.
| Διαδρομή | Περιεχόμενα |
|---|---|
global.db |
Το μητρώο χώρων εργασίας, οι χρήστες, οι συζευγμένες συσκευές, η ροή ειδήσεων και η ουρά του στόλου |
<workspaceId>/workspace.db |
Μία βάση δεδομένων ανά χώρο εργασίας — πράκτορες, χώροι, εισιτήρια, μνήμη, το γράφημα κώδικα |
<workspaceId>/chat_credentials/ |
Token του chat bot, σε απλό JSON, ώστε να συνοδεύουν τον χώρο εργασίας |
secrets.json |
Κλειδιά σύζευξης, η ταυτότητα εφαρμογής του παρόχου, token ανά χρήστη και Google, SSO (0600) |
backups/<timestamp>/ |
Ένα στιγμιότυπο εγκατάστασης — manifest.json, global.db και ένα αντίγραφο κάθε χώρου εργασίας |
backups/exports/ |
Εξαγωγές μεμονωμένου χώρου εργασίας, <workspaceId>-<timestamp>.db |
backups/transfer/ |
Προσωρινός χώρος για λήψεις και μεταφορτώσεις αντιγράφων ασφαλείας· καθαρίζεται από τη διαδρομή που τον γράφει |
models/ |
Μοντέλα ενσωμάτωσης, διαχωρισμού ομιλητών και ομιλίας στη συσκευή |
meetings/<meetingId>/ |
Διατηρούμενος ήχος σύσκεψης |
rigs/images/ |
Εισαγόμενες εικόνες δίσκου σταθμών (η επιφάνεια υπολογιστή του QEMU) |
rigs/smolvm/<rigId>/ |
Κατάσταση χρόνου εκτέλεσης microVM ανά σταθμό (το μυστικό του μεσίτη, 0600) |
rigs/smolvm-packs/ |
Προεξαγμένα πακέτα μηχανημάτων — η cache που κάνει γρήγορες τις επαναλαμβανόμενες εκκινήσεις σταθμών |
rigs/tls/ |
Η αρχή πιστοποιητικών του τομέα ανάπτυξης για HTTPS των σταθμών (κλειδιά 0600) |
rigs/run/<rigId>/ |
Επικαλύψεις QEMU, εικόνες εκκίνησης και κλειδιά ανά VM (0600) |
Δείτε επίσης
Ενότητα με τίτλο «Δείτε επίσης»- Εκτέλεση headless διακομιστή — η συνταγή εγκατάστασης στην οποία ανήκουν αυτά τα flag
- Εκτέλεση εργάτη στόλου — το ξεχωριστό εκτελέσιμο
cc_workerπου καταχωρίζεται σε αυτόν τον διακομιστή - Αντίγραφο ασφαλείας και επαναφορά — αντιγραφή αυτού του καταλόγου κάπου ασφαλώς
- Αντίγραφο ασφαλείας, εξαγωγή και εισαγωγή — η διάταξη των στιγμιοτύπων και κάθε λειτουργία αντιγράφου ασφαλείας
- Σύνδεση σε απομακρυσμένο διακομιστή — κατευθύνοντας έναν πελάτη σε έναν από αυτούς
- Ανάπτυξη και πελάτες — γιατί ο διακομιστής κατέχει τα πάντα