Lewati ke konten

Pertanyaan interaktif

Extension question menyediakan wizard terminal untuk mengajukan satu atau lebih pertanyaan bertipe ke user. Mendukung single-select, multiselect, dan free-form text, dengan navigasi keyboard dan filtering. Di luar TUI (misalnya host RPC/VS Code), pertanyaan yang sama dijawab melalui dialog extension UI host.

Dibundel bersama Selesai

Dimuat otomatis bersama Selesai; tidak diperlukan npm install per ekstensi.

Entri manifest
./question
Permukaan runtime
Tool agent

Penyiapan dan prasyarat

  • Extension ini dibundel bersama Selesai. Dimuat otomatis; tidak perlu diinstal terpisah.
  • Memerlukan permukaan UI. Di mode terminal TUI pertanyaan dirender sebagai wizard layar penuh; di host RPC/VS Code dirender sebagai dialog extension_ui_request (select, input, multiselect). Tidak dapat digunakan di mode tanpa UI.
  • Agent memanggil tool; user menjawab melalui TUI.

Yang disiapkan

  • Di mode TUI terminal tool merender wizard batch question layar penuh. Di mode non-TUI (misalnya RPC) pertanyaan diajukan satu per satu melalui dialog extension UI host; membatalkan satu pertanyaan membatalkan seluruh batch.
  • Pertanyaan multiselect mempertahankan multi-seleksi penuh jika host mendukung method UI multiselect; host lama beralih ke satu pilihan.
  • Setiap pertanyaan memiliki id yang stabil, label, string question, type, dan options serta context opsional.
  • Jawaban dikembalikan sebagai hasil terstruktur dengan status answered, skipped, dan unanswered.

Yang dapat dikonfigurasi

Tool question didorong schema. Pertanyaan dikonfigurasi per pemanggilan tool; tidak ada pengaturan user persisten.

Lokasi dan preseden konfigurasi

  1. Schema per pemanggilan tool
    question({ questions: [...] })
    Semua opsi diberikan oleh agent di dalam pemanggilan tool.

Pengaturan

Kunci / pathTipe, default, dan nilaiDeskripsi
questions[].idstring
Default: q1, q2, ...
Id jawaban yang stabil. Dibuat otomatis bila dihilangkan.
questions[].labelstring
Default: Q1, Q2, ...
Label halaman singkat yang ditampilkan di wizard.
questions[].questionstring
Default: —
Teks pertanyaan yang ditampilkan ke user.
questions[].contextstring
Default: —
Konteks plain-text opsional yang ditampilkan sebelum pertanyaan.
questions[].typestring
Default: —
Nilai yang diizinkan: "select", "multiselect", "text"
Tipe pertanyaan. image dan info tidak didukung.
questions[].optionsarray
Default: —
Wajib untuk select dan multiselect. Setiap opsi memiliki value, label, dan description opsional.
questions[].allowOtherboolean
Default: false
Izinkan jawaban teks kustom untuk select/multiselect.

Kontrol command, tool, dan shortcut

Kunci / pathDeskripsi
question({ questions })Wizard batch dengan layar review dan submission.

Bukti source

  • src/extensions/question/schemas.ts

Yang dapat dilakukan

  • Mengajukan keputusan independen yang harus dibuat user secara langsung.
  • Menampilkan pertanyaan select, multiselect, atau free-form text.
  • Menyediakan value opsi yang stabil terpisah dari label yang human-readable. Pertanyaan pilihan selalu menyertakan opsi Other sehingga user dapat menjawab bebas; gunakan allowOther: false untuk memaksa opsi yang terdaftar.

Perintah, tool, dan shortcut

Tidak ada slash command. Tool dipanggil oleh agent:

question({
questions: [
{
id: "target_db",
label: "Database",
type: "select",
question: "Which database should we use?",
options: [
{ value: "sqlite", label: "SQLite" },
{ value: "postgres", label: "PostgreSQL" }
],
allowOther: true
},
{
id: "skip_cache",
label: "Skip cache",
type: "text",
question: "Why skip the cache?"
}
]
})

Tipe pertanyaan yang didukung: select, multiselect, text.

Mengonfirmasi jawaban select, multiselect, text, atau custom akan berpindah otomatis. Satu pertanyaan yang terjawab langsung dikirim. Batch dengan beberapa pertanyaan tetap memiliki layar review akhir; Enter mengirim semua jawaban secara atomik, sedangkan Tab/Shift+Tab atau tombol panah tetap tersedia untuk navigasi dan penyuntingan manual.

Batasan dan keamanan

  • Tool memerlukan UI. Tool melempar error saat tidak ada UI host (sesi headless atau non-interaktif).

  • Pertanyaan seharusnya adalah keputusan independen yang harus dibuat user; agent harus memeriksa fakta sendiri daripada menanyakan informasi yang dapat ditemukan kepada user.

  • Entri text kosong dicatat sebagai skipped; agent harus menangani status skipped dan unanswered secara eksplisit.

Source evidence

Selesai version: 0.10.0