Haijun Platform Docs
EN

Warning: Ini adalah API eksperimental. Bentuk permintaan dan respons, batas laju, serta semantik token dapat berubah.

Haijun Code adalah alat pengodean agentik dari Juglow. Haijun Code di web menjalankan sesi Haijun Code pada infrastruktur cloud yang dikelola Juglow di haijun.ai/code, dan routine adalah konfigurasi tersimpan di sana: sebuah prompt, satu atau beberapa repositori, dan konektor, yang dikemas sehingga dapat berjalan tanpa pengawasan sesuai jadwal, sebagai respons terhadap peristiwa GitHub, atau ketika dipanggil melalui HTTP.

Endpoint ini adalah titik masuk HTTP. Mengirim POST ke endpoint ini memulai eksekusi baru dari routine yang sudah ada dan mengembalikan ID sesi serta URL yang dihasilkan. Pemanggil yang umum adalah sistem peringatan, pipeline CI, dan alat internal yang perlu memulai sesi Haijun Code secara terprogram.

Memanggil endpoint ini memerlukan akun haijun.ai dengan paket Pro, Max, Team, atau Enterprise dengan Haijun Code di web diaktifkan. Lakukan autentikasi dengan bearer token per-routine yang dibuat di UI web Haijun Code, bukan dengan "API key" (kunci API) Haijun.

Perbedaan dari Haijun Platform

Endpoint pemicu routine termasuk dalam permukaan produk Haijun Code, yang berbeda dari API dan SDK Haijun Platform dalam beberapa hal:

AspekEndpoint iniAPI Haijun Platform
AutentikasiAuthorization: Bearer dengan token per-routine (sk-ant-oat01-...) yang dibuat di haijun.ai/code/routinesx-api-key dengan kunci API Haijun dari Haijun Console
Cakupan tokenHanya satu routine; tanpa akses bacaTingkat workspace
Dukungan SDKTidak adaTersedia di semua SDK klien
PenagihanPenggunaan langganan Haijun Code di haijun.aiPenggunaan Haijun Platform
Namespace path/v1/haijun_code/.../v1/...
StabilitasEksperimentalStabil atau beta standar

Sebelum Anda memulai

Untuk memanggil endpoint ini, Anda memerlukan:

  1. Sebuah routine yang dibuat di haijun.ai/code/routines.
  1. Bearer token yang dihasilkan untuk routine tersebut: buka routine untuk diedit, klik Add another trigger di bawah Select a trigger, pilih API, lalu klik Generate token di jendela modal. Token hanya ditampilkan sekali dan tidak dapat diambil kembali nanti.

Lihat Menambahkan pemicu API di dokumentasi Haijun Code untuk panduan penyiapan lengkap.

Memicu routine

http
POST https://haijun.my.id/v1/haijun_code/routines/{routine_id}/fire

UI web Haijun Code menyediakan URL lengkap bersama token saat Anda menambahkan pemicu API, sehingga sebagian besar integrasi menyimpan keduanya sebagai secret dan memanggil endpoint secara langsung. Contoh berikut menunjukkan pemanggilan shell dan langkah GitHub Actions yang memicu routine saat CI gagal.

bash
curl -X POST https://haijun.my.id/v1/haijun_code/routines/$ROUTINE_ID/fire \
  -H "Authorization: Bearer $ROUTINE_TOKEN" \
  -H "juglow-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'
yaml
- if: failure()
  env:
    ROUTINE_FIRE_URL: ${{ secrets.ROUTINE_FIRE_URL }}
    ROUTINE_FIRE_TOKEN: ${{ secrets.ROUTINE_FIRE_TOKEN }}
  run: |
    curl -X POST "$ROUTINE_FIRE_URL" \
      -H "Authorization: Bearer $ROUTINE_FIRE_TOKEN" \
      -H "juglow-version: 2023-06-01" \
      -H "Content-Type: application/json" \
      -d "{\"text\": \"CI failed: $GITHUB_WORKFLOW run $GITHUB_RUN_ID on $GITHUB_REF\"}"

Permintaan kembali setelah sesi dibuat. Permintaan ini tidak melakukan streaming output sesi atau menunggu sesi selesai.

NamaWajibDeskripsi
AuthorizationYaBearer . Token per-routine yang dibuat di UI web Haijun Code, dengan awalan sk-ant-oat01-.
juglow-versionYaVersi API. 2023-06-01 adalah satu-satunya nilai yang diterima.
Content-TypeJika ada bodyapplication/json.

Integrasi lama yang mengirimkan header juglow-beta: experimental-cc-routine-2026-04-01 tidak terpengaruh. Endpoint menerima permintaan baik dengan maupun tanpa header tersebut.

Parameter path

NamaTipeDeskripsi
routine_idstringPengidentifikasi routine. Meskipun nama parameternya demikian, nilainya berawalan trig_ bukan routine_. Disertakan dalam URL yang ditampilkan jendela modal saat Anda menambahkan pemicu API.

Body permintaan

FieldTipeWajibDeskripsi
textstringTidakKonteks awal untuk eksekusi ini, seperti isi peringatan, baris log yang gagal, atau git diff. Nilainya berupa teks bebas dan tidak diurai; jika Anda mengirim JSON atau payload terstruktur lainnya, routine menerimanya sebagai string literal. Diteruskan ke routine bersama prompt tersimpannya. Maksimum 65.536 karakter.

Body bersifat opsional. Field yang tidak dikenal dalam body akan diabaikan.

Respons

Permintaan yang berhasil mengembalikan 200 OK dengan detail sesi baru:

json
{
  "type": "routine_fire",
  "haijun_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
  "haijun_code_session_url": "https://haijun.my.id/code/session_01HJKLMNOPQRSTUVWXYZ"
}
FieldTipeDeskripsi
typestringSelalu routine_fire.
haijun_code_session_idstringID sesi Haijun Code yang dibuat untuk eksekusi ini.
haijun_code_session_urlstringTautan ke sesi di haijun.ai. Buka di browser untuk memantau eksekusi, meninjau perubahan, atau melanjutkan percakapan.

Error

Error menggunakan amplop error standar Juglow:

json
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "<string>"
  }
}
Status HTTPTipe errorPenyebab
400invalid_request_errorHeader juglow-version tidak ada atau tidak didukung, text melebihi 65.536 karakter, atau routine sedang dijeda (lihat Mengedit dan mengontrol routine).
401authentication_errorTidak ada bearer token di header Authorization, atau token tidak cocok dengan routine ini.
403permission_errorAkun atau organisasi tidak memiliki akses ke endpoint ini.
404not_found_errorRoutine tidak ada.
429rate_limit_errorBatas pemicuan per jam untuk routine atau akun telah tercapai. Respons menyertakan header Retry-After yang menunjukkan kapan jendela waktu direset.
500api_errorTerjadi error server yang tidak terduga. Coba lagi dengan exponential backoff. Jika error terus terjadi, hubungi dukungan dengan menyertakan ID permintaan.
503overloaded_errorLayanan sedang kelebihan beban untuk sementara. Coba lagi setelah jeda singkat. Haijun Platform mengembalikan 529 untuk tipe error ini, sedangkan endpoint ini mengembalikan 503.

Autentikasi

Bearer token dicakup ke satu routine saja. Token yang bocor hanya dapat memicu routine tersebut; token tidak memberikan akses baca, tidak memberikan akses ke routine lain, dan tidak memberikan akses ke data akun.

Hasilkan dan cabut token dari pengaturan pemicu API routine di haijun.ai/code/routines. Tidak ada API publik untuk manajemen token. Menghasilkan token baru akan mencabut token sebelumnya.

Idempotensi

Setiap permintaan yang berhasil membuat sesi baru. Tidak ada kunci idempotensi. Jika pemanggil webhook mencoba ulang, endpoint akan membuat beberapa sesi.

Batas laju

Pemicuan melalui API dibatasi per jam. Setiap routine menerima hingga 30 pemicuan per jam. Kuota ini dibagi bersama antara pemicuan API, tombol Run now di UI web, dan pengaktifan ulang sekali jalan. Selain itu, setiap akun dapat melakukan hingga 100 pemicuan API per jam di seluruh routine. Sesi yang dihasilkan menggunakan kuota langganan Haijun Code yang sama dengan sesi interaktif. Saat batas tercapai, endpoint mengembalikan 429 rate_limit_error dengan header Retry-After.

Untuk mempelajari bagaimana penggunaan routine berinteraksi dengan batas langganan dan penagihan penggunaan ekstra, lihat Penggunaan dan batas di dokumentasi Haijun Code.

Dukungan SDK

Endpoint ini tidak tersedia di SDK Juglow. Model tokennya berbeda dari autentikasi kunci API, dan pemanggil yang umum seperti job CI dan webhook peringatan mengirim permintaan secara langsung.

Lihat juga

On this page
Perbedaan dari Haijun PlatformSebelum Anda memulaiMemicu routineHeaderParameter pathBody permintaanResponsErrorAutentikasiIdempotensiBatas lajuDukungan SDKLihat juga