Skip to content

Latest commit

 

History

History
297 lines (227 loc) · 16.8 KB

File metadata and controls

297 lines (227 loc) · 16.8 KB

OpenFlow

Το OpenFlow είναι ένας οπτικός δημιουργός ροών εργασίας AI πολλαπλών πρακτόρων. Σύρετε κάρτες ρόλων σε έναν καμβά, συνδέστε ένα pipeline (σχεδιαστής → αρχιτέκτονας → προγραμματιστής), αποθηκεύστε το και εκτελέστε το με πραγματικούς παράλληλους πράκτορες.

Το OpenFlow είναι δικό του έργο. Είναι χτισμένο πάνω στο opencode — και διανέμεται ως fork του — του οποίου η headless μηχανή (opencode serve) οδηγεί τους πράκτορες από κάτω. Όλος ο δικός κώδικας του OpenFlow βρίσκεται στο packages/flow; κανένα upstream πακέτο δεν τροποποιείται, οπότε η μηχανή OpenCode παραμένει ενημερωμένη και τα upstream merges παραμένουν καθαρά. Το αρχικό README του OpenCode ακολουθεί παρακάτω.

Εγκατάσταση

Προαπαιτούμενα

  • Bun 1.3 ή νεότερο — το μοναδικό runtime που χρειάζεται το OpenFlow (τρέχει τη μηχανή, το build και τον καμβά). Έλεγχος με bun --version.
  • Git.

Λήψη του κώδικα

git clone https://github.com/SeeRay11/OpenFlow.git
cd OpenFlow
bun install

Το bun install κατεβάζει ολόκληρο το workspace — τη μηχανή OpenCode συν τον δικό κώδικα του OpenFlow στο packages/flow. Η πρώτη εγκατάσταση είναι μεγάλη· κατεβάζει τις native εξαρτήσεις της μηχανής. Ένα βήμα postinstall σημειώνει ως εκτελέσιμα τα προμεταγλωττισμένα βοηθητικά binaries του node-pty και στα Windows επιστρέφει αμέσως.

Σταματήστε ό,τι ήδη τρέχει

Το OpenFlow χρησιμοποιεί δύο θύρες: 4096 για τη μηχανή και 5174 για τον καμβά. Αν μια προηγούμενη εκτέλεση τις κρατά ακόμη, η χειροκίνητη εκκίνηση της μηχανής αποτυγχάνει με Error: Unexpected error / ServeError — πρόκειται για δεσμευμένη θύρα, όχι για χαλασμένη εγκατάσταση.

Το bun openflow.ts το χειρίζεται μόνο του: επαναχρησιμοποιεί μια θύρα που ήδη εξυπηρετεί και ελευθερώνει εκείνη που άφησε δεσμευμένη μια νεκρή εκτέλεση. Τερματίστε μόνοι σας τις παλιές διεργασίες μόνο όταν θέλετε πραγματικά καθαρή μηχανή — για παράδειγμα μετά από αλλαγή στο opencode.json, καθώς η μηχανή διαβάζει τη ρύθμιση του project στην εκκίνηση και δεν την ξαναδιαβάζει.

Windows (PowerShell)

Get-NetTCPConnection -LocalPort 4096,5174 -State Listen -ErrorAction SilentlyContinue |
  Select-Object -ExpandProperty OwningProcess -Unique |
  ForEach-Object { taskkill /pid $_ /T /F }

macOS / Linux

lsof -t -i :4096 -i :5174 | xargs kill -9

Και οι δύο εντολές είναι ασφαλείς όταν δεν ακούει τίποτα — απλώς δεν βρίσκουν καμία διεργασία. Τερματίζουν οποιαδήποτε διεργασία σε αυτές τις θύρες, οπότε ελέγξτε πρώτα αν τρέχετε κάτι άλλο εκεί:

Get-NetTCPConnection -LocalPort 4096,5174 -State Listen | Select-Object LocalPort,OwningProcess
lsof -i :4096 -i :5174

Αν η μηχανή αποτύχει με database is locked, τρέχει ήδη κάπου αλλού μια άλλη μηχανή opencode — ένα δεύτερο αντίγραφο του OpenFlow, ή μια μηχανή που άφησε πίσω του κάποιος προηγούμενος εκκινητής. Όλες οι μηχανές μοιράζονται μία βάση δεδομένων στον κατάλογο δεδομένων του opencode, οπότε η δεύτερη που ξεκινά δεν μπορεί να την ανοίξει. Το να ελευθερώσετε τις θύρες δεν βοηθά εδώ, γιατί εκείνη η μηχανή μπορεί να μην τις κρατά. Σταματήστε την με βάση αυτό που εκτελεί:

Get-CimInstance Win32_Process -Filter "Name='bun.exe'" |
  Where-Object { $_.CommandLine -match 'openflow\.ts|src/index\.ts serve|packages/flow dev' } |
  ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
pkill -f 'openflow\.ts|src/index\.ts serve|packages/flow dev'

Έπειτα ξεκινήστε ξανά το OpenFlow. Αν συμβαίνει κάθε φορά, το πιθανότερο είναι ότι έχετε κλωνοποιήσει το OpenFlow σε δύο σημεία και ξεκινούν και τα δύο — κρατήστε ένα.

Εκτέλεση

Μία εντολή ξεκινά και τις δύο διεργασίες, με τον ίδιο τρόπο σε κάθε πλατφόρμα:

bun openflow.ts

Ξεκινά τη μηχανή, περιμένει μέχρι να απαντήσει, και μετά ανοίγει τον καμβά στο http://localhost:5174· το Ctrl+C σταματά και τα δύο. Μια θύρα που άφησε δεσμευμένη μια νεκρή εκτέλεση απελευθερώνεται πρώτα, και μια θύρα που ήδη εξυπηρετεί επαναχρησιμοποιείται αντί να ξεκινήσει δεύτερη φορά.

Δύο ελαφριά scripts τυλίγουν το ίδιο αρχείο για όσους προτιμούν τον launcher της πλατφόρμας τους. Δεν έχουν δική τους λογική — απλώς μεταφράζουν τα flags στις μεταβλητές περιβάλλοντος που το openflow.ts ήδη διαβάζει.

.\openflow.ps1
./openflow.sh

Στα Windows το script μπορεί να αρνηθεί να ξεκινήσει: το PowerShell από προεπιλογή δεν εκτελεί ανυπόγραφα τοπικά scripts, οπότε το .\openflow.ps1 μπορεί να αποτύχει με "openflow.ps1 cannot be loaded because running scripts is disabled on this system". Ένα repo που κατέβηκε ως ZIP αντί να κλωνοποιηθεί σημειώνεται επιπλέον ως προερχόμενο από το διαδίκτυο, κάτι που το μπλοκάρει με δεύτερο τρόπο. Το bun openflow.ts δεν υπόκειται σε κανένα από τα δύο και είναι ο συντομότερος δρόμος να τα προσπεράσετε. Για να χρησιμοποιήσετε παρ' όλα αυτά το script, επιτρέψτε τα τοπικά scripts για τον δικό σας λογαριασμό και ξεμπλοκάρετε το αρχείο αν προήλθε από ZIP:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Unblock-File .\openflow.ps1

Τα flags είναι προαιρετικά, και οι τρεις επιφάνειες καταλήγουν στο ίδιο σχέδιο:

PowerShell shell περιβάλλον τι κάνει
-Project <dir> -p, --project <dir> OPENFLOW_PROJECT το repo που διαβάζουν και γράφουν οι πράκτορες — επεξεργάζονται πραγματικά αρχεία
-ServerPort <n> -s, --server-port <n> OPENCODE_SERVER_URL θύρα της μηχανής, προεπιλογή 4096
-Built -b, --built OPENFLOW_BUILT=1 χτίσε και σέρβιρε το στατικό bundle αντί να τρέξει το vite
-Manage -m, --manage FLOW_MANAGE_SERVER=1 άσε τον καμβά να έχει τη μηχανή, ώστε να λειτουργεί το κουμπί επανεκκίνησής του
-Help -h, --help τύπωσε τη λίστα των flags
OPENFLOW_DRY_RUN=1 τύπωσε το σχέδιο που προέκυψε και μην ξεκινήσεις τίποτα

Ή ξεκινήστε τις δύο διεργασίες με το χέρι. Πρώτα ο server:

bun run --cwd packages/opencode --conditions=browser src/index.ts serve --port 4096

Έπειτα ο καμβάς, στο http://localhost:5174:

bun run --cwd packages/flow dev

Ή εκτελέστε το χτισμένο, που σερβίρει την ίδια εφαρμογή χωρίς vite:

bun run --cwd packages/flow build && bun run --cwd packages/flow start

OpenCode logo

OpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.

Ο πράκτορας τεχνητής νοημοσύνης ανοικτού κώδικα για προγραμματισμό.

Discord npm Build status

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt

OpenCode Terminal UI


Εγκατάσταση

# YOLO
curl -fsSL https://opencode.ai/install | bash

# Διαχειριστές πακέτων
npm i -g opencode-ai@latest        # ή bun/pnpm/yarn
scoop install opencode             # Windows
choco install opencode             # Windows
brew install anomalyco/tap/opencode # macOS και Linux (προτείνεται, πάντα ενημερωμένο)
brew install opencode              # macOS και Linux (επίσημος τύπος brew, λιγότερο συχνές ενημερώσεις)
sudo pacman -S opencode            # Arch Linux (Σταθερό)
paru -S opencode-bin               # Arch Linux (Τελευταία έκδοση από AUR)
mise use -g opencode               # Οποιοδήποτε λειτουργικό σύστημα
nix run nixpkgs#opencode           # ή github:anomalyco/opencode με βάση την πιο πρόσφατη αλλαγή από το dev branch

Tip

Αφαίρεσε παλαιότερες εκδόσεις από τη 0.1.x πριν από την εγκατάσταση.

Εφαρμογή Desktop (BETA)

Το OpenCode είναι επίσης διαθέσιμο ως εφαρμογή. Κατέβασε το απευθείας από τη σελίδα εκδόσεων ή το opencode.ai/download.

Πλατφόρμα Λήψη
macOS (Apple Silicon) opencode-desktop-mac-arm64.dmg
macOS (Intel) opencode-desktop-mac-x64.dmg
Windows opencode-desktop-windows-x64.exe
Linux .deb, .rpm, ή AppImage
# macOS (Homebrew)
brew install --cask opencode-desktop
# Windows (Scoop)
scoop bucket add extras; scoop install extras/opencode-desktop

Κατάλογος Εγκατάστασης

Το script εγκατάστασης τηρεί την ακόλουθη σειρά προτεραιότητας για τη διαδρομή εγκατάστασης:

  1. $OPENCODE_INSTALL_DIR - Προσαρμοσμένος κατάλογος εγκατάστασης
  2. $XDG_BIN_DIR - Διαδρομή συμβατή με τις προδιαγραφές XDG Base Directory
  3. $HOME/bin - Τυπικός κατάλογος εκτελέσιμων αρχείων χρήστη (εάν υπάρχει ή μπορεί να δημιουργηθεί)
  4. $HOME/.opencode/bin - Προεπιλεγμένη εφεδρική διαδρομή
# Παραδείγματα
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash

Πράκτορες

Το OpenCode περιλαμβάνει δύο ενσωματωμένους πράκτορες μεταξύ των οποίων μπορείτε να εναλλάσσεστε με το πλήκτρο Tab.

  • build - Προεπιλεγμένος πράκτορας με πλήρη πρόσβαση για εργασία πάνω σε κώδικα
  • plan - Πράκτορας μόνο ανάγνωσης για ανάλυση και εξερεύνηση κώδικα
    • Αρνείται την επεξεργασία αρχείων από προεπιλογή
    • Ζητά άδεια πριν εκτελέσει εντολές bash
    • Ιδανικός για εξερεύνηση άγνωστων αρχείων πηγαίου κώδικα ή σχεδιασμό αλλαγών

Περιλαμβάνεται επίσης ένας general υποπράκτορας για σύνθετες αναζητήσεις και πολυβηματικές διεργασίες. Χρησιμοποιείται εσωτερικά και μπορεί να κληθεί χρησιμοποιώντας @general στα μηνύματα.

Μάθετε περισσότερα για τους πράκτορες.

Οδηγός Χρήσης

Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση του OpenCode, πλοηγήσου στον οδηγό χρήσης μας.

Συνεισφορά

Εάν ενδιαφέρεσαι να συνεισφέρεις στο OpenCode, διαβάστε τα οδηγό χρήσης συνεισφοράς πριν υποβάλεις ένα pull request.

Δημιουργία πάνω στο OpenCode

Εάν εργάζεσαι σε ένα έργο σχετικό με το OpenCode και χρησιμοποιείτε το "opencode" ως μέρος του ονόματός του, για παράδειγμα "opencode-dashboard" ή "opencode-mobile", πρόσθεσε μια σημείωση στο README σας για να διευκρινίσεις ότι δεν είναι κατασκευασμένο από την ομάδα του OpenCode και δεν έχει καμία σχέση με εμάς.


Γίνε μέλος της κοινότητάς μας Discord | X.com