Μετάβαση στο περιεχόμενο

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 το όνομα κεντρικού υπολογιστή του μηχανήματος Όνομα που εμφανίζεται σε επιλογείς, στην ανακάλυψη και στις επιφάνειες σύζευξης
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 του λειτουργικού συστήματος όταν υπάρχει διαθέσιμο backend: sandbox-exec (Seatbelt) στο macOS, bwrap μαζί με socat στο Linux και στο WSL2. Όπου δεν υπάρχει κανένα — στα Windows, ή σε ξενιστή Linux που του λείπουν αυτά τα εργαλεία — οι εκτελέσεις καταφεύγουν στην εξυγίανση του περιβάλλοντος, στην πολιτική εντολών και στους περιορισμούς ενεργειών, και το αρχείο καταγραφής εκκίνησης λέει ποια κατάσταση ισχύει.

Το --sandbox off είναι ο διακόπτης πεδίου για την περίπτωση που η ανίχνευση δεν μπορεί να δει: έναν ξενιστή όπου το ίδιο το προφίλ sandbox συμπεριφέρεται λανθασμένα. Δεν χρειάζεται επαναδόμηση και ο διακομιστής καταγράφει μια προειδοποίηση για όλη τη διάρκεια ζωής της διεργασίας, ώστε η κατάσταση να μην είναι ποτέ σιωπηλή.

Οι εκτελέσεις του ενσωματωμένου μηχανισμού στέλνουν ένα μικρό μόνιμο σύνολο ορισμών εργαλείων συν ένα ευρετήριο μόνο με ονόματα για τα υπόλοιπα, τα οποία φορτώνουν τα σχήματά τους την πρώτη φορά που χρησιμοποιούνται. Αυτό κόβει το μπλοκ των εργαλείων κατά περίπου 78% και κρατά το πάντα ορατό σύνολο μέσα στο εύρος όπου τα μοντέλα επιλέγουν εργαλεία αξιόπιστα. Τα αναβαλλόμενα εργαλεία παραμένουν καλούμενα με το όνομά τους καθ’ όλη τη διάρκεια, και το search_tools τα βρίσκει με βάση την πρόθεση. Δείτε το Πλαίσιο εργαλείων και προσωρινή αποθήκευση προτροπών.

Το --tool-deferral off κάνει κάθε εργαλείο που έχει γίνει δεκτό και πάλι μόνιμο, αναπαράγοντας τα αιτήματα που έκανε ο διακομιστής πριν υπάρξει η αναβολή. Είναι ο διακόπτης για ένα μοντέλο που χειρίζεται άσχημα την επιφάνεια των δύο επιπέδων — ένα flag αντί για επαναδόμηση. Επηρεάζει μόνο τον ενσωματωμένο μηχανισμό· το tools/list του MCP που βλέπουν οι εξωτερικοί πελάτες είναι πάντα ο πλήρης κατάλογος.

Μια εκτέλεση της οποίας το διαπιστευτήριο παρόχου λείπει ή έχει εξαντληθεί σταθμεύει αντί να αποτύχει: ο χειριστής λαμβάνει μια προτροπή να το διορθώσει και η εκτέλεση συνεχίζεται αν το κάνει. Η προεπιλεγμένη προθεσμία είναι 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)