Lewati ke konten

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.

Entri manifest
./pi-intercom/index.ts
Permukaan runtime
Campuran (command, tool, shortcut)

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: false di ~/.selesai/agent/intercom/config.json.

Yang disiapkan

  • Mendaftarkan slash command /intercom dan shortcut Alt+M untuk membuka overlay daftar sesi.
  • Mendaftarkan slash command /alias untuk mengatur alias sesi aktif dari CLI.
  • Mendaftarkan tool intercom untuk discovery sesi, kirim, ask, dan reply yang didorong agent.
  • Mendaftarkan tool contact_supervisor secara native ketika pi-subagents menyediakan 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

  1. Konfigurasi intercom
    ~/.selesai/agent/intercom/config.json
    Hanya file konfigurasi; tidak ada lapisan proyek.

Pengaturan

Kunci / pathTipe, default, dan nilaiDeskripsi
brokerCommandstring
Default: "npx"
Command untuk menjalankan proses broker.
brokerArgsstring[]
Default: ["--no-install", "tsx"]
Argumen yang diteruskan ke brokerCommand sebelum path skrip broker.
confirmSendboolean
Default: false
Wajibkan konfirmasi sebelum pengiriman non-reply di sesi interaktif.
enabledboolean
Default: true
Aktifkan atau nonaktifkan intercom sepenuhnya.
replyHintboolean
Default: true
Tampilkan petunjuk reply di pesan masuk.
statusstring
Default: (not set)
Suffix status kustom opsional yang ditambahkan ke status siklus hidup otomatis.

Kontrol command, tool, dan shortcut

Kunci / pathDeskripsi
ask / reply toolsKirim 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 dengan intercom({ action: "status" }).

Perintah, tool, dan shortcut

Perintah / shortcutDeskripsi
/intercomBuka overlay daftar sesi.
/alias <name>Atur alias sesi aktif (/alias menu meminta input).
Alt+MBuka 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.
  • ask memblokir agent pemanggil hingga 10 menit. Jika tidak ada balasan, tool error.
  • reply tanpa to hanya menyelesaikan satu ask tertunda. Jika ada beberapa ask tertunda, tentukan to atau periksa terlebih dahulu.
  • Saat giliran dipicu inbound ask, send non-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_supervisor dilingkupi ke parent session id yang tepat; sesi Selesai lain tidak menerimanya.

Source evidence

Selesai version: 0.10.0