Koordinasi sesi
Extension pi-intercom menambahkan pesan 1:1 langsung antar sesi Selesai di mesin yang sama. Anda dapat mengirim konteks, mengajukan pertanyaan, atau mendelegasikan pekerjaan dari satu sesi bernama ke sesi lainnya tanpa meninggalkan terminal.
Dibundel bersama Selesai
Dimuat otomatis bersama Selesai; tidak diperlukan npm install per ekstensi.
Penyiapan dan prasyarat
- Extension ini dibundel bersama Selesai. Dimuat otomatis; tidak perlu diinstal terpisah.
- Diperlukan dua atau lebih sesi Selesai yang berjalan di mesin yang sama.
- Intercom memerlukan proses broker lokal. Broker auto-spawn saat pertama kali digunakan.
- Sesi harus diberi nama (atau extension menyediakan alias fallback) sehingga sesi lain dapat menargetkannya.
- Memerlukan TUI untuk input overlay. Sesi non-interaktif masih dapat mengirim dan membalas via tool
intercom. - Dapat dinonaktifkan dengan
enabled: falsedi~/.selesai/agent/intercom/config.json.
Yang disiapkan
- Mendaftarkan slash command
/intercomdan shortcutAlt+Muntuk membuka overlay daftar sesi. - Mendaftarkan slash command
/aliasuntuk mengatur alias sesi aktif dari CLI. - Mendaftarkan tool
intercomuntuk discovery sesi, kirim, ask, dan reply yang didorong agent. - Mendaftarkan tool
contact_supervisorsecara native ketikapi-subagentsmenyediakan child bridge metadata (SELESAI_SUBAGENT_ORCHESTRATOR_TARGET,SELESAI_SUBAGENT_RUN_ID,SELESAI_SUBAGENT_CHILD_AGENT,SELESAI_SUBAGENT_CHILD_INDEX). - Memulai broker lokal sesuai permintaan dan mempublikasikan presence (name, cwd, model, status, penggunaan konteks) untuk sesi yang terhubung.
- Mendukung ID sesi stabil lintas restart secara opsional, discovery berbasis cwd, dan queued delivery terbatas untuk sesi bernama yang baru terputus.
Yang dapat dikonfigurasi
Intercom membaca satu file konfigurasi untuk command broker, argumen, konfirmasi, suffix status, dan flag enable.
Lokasi dan preseden konfigurasi
- Konfigurasi intercom
~/.selesai/agent/intercom/config.json
Hanya file konfigurasi; tidak ada lapisan proyek.
Pengaturan
| Kunci / path | Tipe, default, dan nilai | Deskripsi |
|---|---|---|
brokerCommand | string Default: "npx" | Command untuk menjalankan proses broker. |
brokerArgs | string[] Default: ["--no-install", "tsx"] | Argumen yang diteruskan ke brokerCommand sebelum path skrip broker. |
confirmSend | boolean Default: false | Wajibkan konfirmasi sebelum pengiriman non-reply di sesi interaktif. |
enabled | boolean Default: true | Aktifkan atau nonaktifkan intercom sepenuhnya. |
replyHint | boolean Default: true | Tampilkan petunjuk reply di pesan masuk. |
status | string Default: (not set) | Suffix status kustom opsional yang ditambahkan ke status siklus hidup otomatis. |
Kontrol command, tool, dan shortcut
| Kunci / path | Deskripsi |
|---|---|
ask / reply tools | Kirim pesan atau balasan antar sesi lokal yang diberi nama. |
Bukti source
src/extensions/pi-intercom/config.ts
Yang dapat dilakukan
- Mengirim pesan fire-and-forget dengan
intercom({ action: "send", to: "worker", message: "..." }). - Mengajukan pertanyaan blocking dengan
intercom({ action: "ask", to: "planner", message: "..." }); jawaban kembali sebagai tool result dengan timeout 10 menit. - Membalas inbound ask terbaru dengan
intercom({ action: "reply", message: "..." }). - Melihat daftar ask yang tertunda dengan
intercom({ action: "pending" })atau memeriksa status broker dan sesi denganintercom({ action: "status" }).
Perintah, tool, dan shortcut
| Perintah / shortcut | Deskripsi |
|---|---|
/intercom | Buka overlay daftar sesi. |
/alias <name> | Atur alias sesi aktif (/alias menu meminta input). |
Alt+M | Buka overlay daftar sesi. |
intercom({ action: "list" }) | Daftar sesi lokal yang terhubung. |
intercom({ action: "list-cwd" }) | Daftar sesi terhubung di working directory yang sama. |
intercom({ action: "send", to, message, attachments? }) | Kirim pesan segera. |
intercom({ action: "ask", to, message }) | Kirim pesan dan tunggu sampai penerima membalas. |
intercom({ action: "reply", message, to? }) | Balas ask inbound saat ini atau tunggal yang tertunda. |
intercom({ action: "pending" }) | Tampilkan ask inbound yang belum terselesaikan. |
intercom({ action: "status" }) | Tampilkan status koneksi dan jumlah sesi aktif. |
contact_supervisor({ reason, message?, interview? }) | Tool khusus subagent untuk menghubungi sesi supervisor yang mendelegasikan. Alasan: "need_decision", "interview_request", "progress_update". |
Lampiran pesan
Anda dapat melampirkan snippet atau file ke send:
intercom({ action: "send", to: "worker", message: "Ini fix-nya:", attachments: [ { type: "snippet", name: "auth.ts", language: "typescript", content: "..." } ]})Batasan dan keamanan
- Hanya mesin yang sama. Broker menggunakan file runtime Unix-domain yang dibatasi di macOS/Linux dan transport localhost terautentikasi yang opt-in di Windows; tidak ada transport remote.
- Frame broker dibatasi ukurannya, koneksi memiliki rate limit, dan ID stabil menyertakan metadata trust lokal; nama stabil adalah identifier koordinasi, bukan batas autentikasi.
- Hanya sesi yang berhasil mendaftar ke broker yang muncul di daftar.
askmemblokir agent pemanggil hingga 10 menit. Jika tidak ada balasan, tool error.replytanpatohanya menyelesaikan satu ask tertunda. Jika ada beberapa ask tertunda, tentukantoatau periksa terlebih dahulu.- Saat giliran dipicu inbound ask,
sendnon-reply ke target berbeda ditolak agar CWD parent/root yang diterka tidak dapat menerima balasan yang tidak disengaja. - Pesan masuk disimpan dalam riwayat sesi; tidak ada kotak masuk atau transkrip terpisah.
- Lampiran disertakan dalam body teks yang terlihat agent; overlay compose TUI belum menyediakan UI lampiran.
- Balasan supervisor melalui
contact_supervisordilingkupi ke parent session id yang tepat; sesi Selesai lain tidak menerimanya.