Το CLI είναι σχεδιασμένο ώστε να το διαβάζουν δέσμες ενεργειών και πράκτορες. Το JSON είναι η προεπιλεγμένη έξοδος· πίνακες και JSON ανά γραμμή είναι προαιρετικά.
Το περίβλημα εξόδου
Κάθε επιτυχημένη εντολή εκτυπώνει ένα αντικείμενο JSON στο stdout:
{
"ok": true,
"schema_version": "1",
"workspace": "yourworkspace",
"domain": "yourworkspace.hansa.chat",
"changed": false,
"data": { }
}
Το changed σας λέει αν η εντολή τροποποίησε πραγματικά κάτι — ένα false σημαίνει ότι η επιθυμητή κατάσταση υπήρχε ήδη. Το data περιέχει το αποτέλεσμα: λίστες καναλιών ή μηνυμάτων, ένα μήνυμα με το περιεχόμενό του ως πραγματικό εμφωλευμένο JSON, επιβεβαιώσεις εντολών.
Τα σφάλματα πηγαίνουν στο stderr ως JSON και δεν αγγίζουν ποτέ το stdout:
{
"ok": false,
"schema_version": "1",
"error": { "code": "unauthenticated", "message": "…", "retryable": false }
}
Κωδικοί εξόδου
| Κωδικός | Σημασία |
|---|---|
| 0 | Επιτυχία, συμπεριλαμβανομένου no-op (changed: false) |
| 1 | Εσωτερικό σφάλμα |
| 2 | Σφάλμα χρήσης ή ρύθμισης |
| 3 | Απαιτείται έλεγχος ταυτότητας ή απέτυχε |
| 4 | Άρνηση πρόσβασης ή αποτυχία προϋπόθεσης |
| 5 | Δεν βρέθηκε ή διένεξη |
| 6 | Λήξη χρόνου, μη διαθέσιμο ή όριο ρυθμού |
Ένα ανθεκτικό μοτίβο για δέσμη ενεργειών:
if hansa chat channels ensure --name Deploy --type public >/dev/null 2>&1; then
echo "channel ready"
fi
Μορφές εξόδου
hansa chat channels list -o json # default, one envelope
hansa chat channels list -o jsonl # one JSON object per line
hansa chat channels list -o table # aligned text columns for humans
Χρήσιμες καθολικές επιλογές
--workspace <alias-or-domain> # override the workspace for one command
--timeout 30s # network timeout
--config /path/config.json # custom context file (default: OS config dir)
--verbose # diagnostics to stderr, secrets filtered
Η μεταβλητή περιβάλλοντος HANSA_CONFIG μεταφέρει ολόκληρο το αρχείο context αλλού, ώστε παράλληλες εργασίες να χρησιμοποιούν απομονωμένα contexts. Η παροχή tokens χωρίς κλειδοθήκη και η συμπεριφορά της κλειδοθήκης περιγράφονται στον έλεγχο ταυτότητας.
Σημειώσεις ασφαλείας
- Τα διαπιστευτήρια βρίσκονται μόνο στην κλειδοθήκη του λειτουργικού συστήματος ή στο περιβάλλον της διεργασίας — ποτέ στην έξοδο, στα αρχεία καταγραφής ή στο αρχείο context.
- Τα διαγνωστικά του
--verboseφιλτράρουν τις κεφαλίδες εξουσιοδότησης, τα διαπιστευτήρια εισόδου και τις απαντήσεις ανανέωσης. - Όλα τα αναγνωριστικά εκδίδονται ως συμβολοσειρές JSON και οι χρονοσημάνσεις ως UTC RFC3339· το περιεχόμενο των μηνυμάτων εμφανίζεται ως πραγματικό εμφωλευμένο JSON και όχι ως συμβολοσειρά σε εισαγωγικά.