SDK Extension
Extension adalah kode yang berjalan di proses latar belakangnya sendiri. Cowork memuat file entrinya dan memanggil activate(api) sekali. Semua yang bisa dilakukan Extension melewati objek api itu, dan objek ctx yang diberikan Cowork kepada apa yang didaftarkannya. Bab ini mencantumkan setiap modul dan fungsi.
Status rilis
Fungsi yang ditandai Belum dirilis sudah ada di kode sumber Cowork tetapi belum ada di versi yang dirilis.
Modul
| Modul | Fungsi | Memerlukan |
|---|---|---|
| Entri dan Pendaftaran | activate(api) · api.registerConnector · api.registerService · api.log | — |
| Connector | start(ctx) · stop() · send(reply) · ctx.emit · ctx.log | — (di 0.1.41: tercantum di connectors) |
| Tugas Latar Belakang | run(ctx) · ctx.status · ctx.log · ctx.readJson · ctx.writeJson · ctx.env · ctx.dataDir · ctx.signal | capability service |
| Permintaan Situs | ctx.site.request · ctx.site.session | service + sites |
| Percakapan Layanan | ctx.agent.handoff | service + agent |
| Browser | ctx.browser.adoptTab · releaseTab · evaluate · inject · uninject · captureAudio · stopAudio · onEvent | capability browser (audio untuk suara) |
package.json
Contoh ini memakai service dan sites yang belum dirilis; di 0.1.41 contoh ini ditolak.
json
{
"name": "janeapp-operator",
"version": "0.1.0",
"pi": { "extensions": ["./index.mjs"] },
"dozin": {
"capabilities": ["service"],
"sites": [{ "host": "welladjustedhk.janeapp.com", "methods": ["GET"], "pathPrefixes": ["/admin/api/v2/"], "minIntervalMs": 1000 }]
}
}| Field | Deskripsi |
|---|---|
name | Huruf kecil, angka, dan tanda hubung; sama dengan nama folder |
version | Versi yang ditampilkan di Pengaturan › Ekstensi. Wajib di 0.1.41; mulai versi berikutnya default-nya 0.0.0 |
pi.extensions | Tepat satu file entri. Wajib di 0.1.41. Belum dirilis: boleh tidak dicantumkan, lalu main yang dipakai; jika tidak ada, yang pertama dari index.mjs, index.js, index.ts |
dozin.connectors | ID Connector yang didaftarkannya. Jika dicantumkan, hanya ID ini yang bisa didaftarkan. Di 0.1.41, Connector hanya bisa didaftarkan jika ID-nya tercantum di sini |
dozin.capabilities | browser, audio (perlu browser), platform-gate-v1, dan service Belum dirilis |
dozin.origins | Dengan browser: 1 sampai 20 situs web persis (https://example.com) yang boleh dipakai. Wajib bersama browser di 0.1.41; mulai versi berikutnya boleh tidak dicantumkan, lalu situs http(s) apa pun diizinkan, tetap hanya di tab yang diserahkan pengguna |
dozin.platforms | darwin-arm64, darwin-x64, win32-x64; memerlukan tepat satu platform-gate-v1 di capabilities |
dozin.secrets Belum dirilis | Dengan service: hingga 8 nilai yang diisi pengguna, { env, label }; env cocok dengan ^[A-Z][A-Z0-9_]{0,63}$ |
dozin.sites Belum dirilis | Dengan service: hingga 8 situs untuk ctx.site, { host, methods, pathPrefixes, minIntervalMs } |
dozin.agent Belum dirilis | Dengan service: { brief, model?, tools?, secret? } untuk percakapan layanan |
Nama tipenya DozinAPI di Cowork maupun Dozin, sehingga satu Extension bisa dipasang tanpa perubahan di keduanya.
Aturan yang berlaku untuk setiap modul
- Tidak ada yang berjalan sampai pengguna menyetujui file-file persisnya di Pengaturan › Ekstensi. Mengubah satu file berarti harus disetujui lagi.
- Satu paket paling banyak 200 file dan 5 MB;
dependenciestidak dipasang. - Extension tidak bisa membaca cookie, token, atau data ekstensi lain.
Terkait
- Extension Apa itu Extension dan bagaimana ia mulai berjalan
- SDK Mini App Apa yang bisa dipanggil oleh Mini App dari paket yang sama
- Pengaturan Ekstensi Memasang, menyetujui, dan menyalakan