結果と途中経過を見る(POST /result・/events)
結果を受け取る(POST /result)
curl -X POST "https://www.kamui.ai/api/cloud/result" \
-H "x-kamui-api-key: kamui_sk_..." \
-H "Content-Type: application/json" \
-d '{ "runId": "<uuid>", "waitS": 25 }'
# → { "status": "done", "terminal": true,
# "artifact": { "type": "git-branch", "repoUrl": "...", "branch": "kamui-cloud/ab12cd34" },
# "resultText": "..." } resultText は「成果テキスト」を許可したキーだけ
waitSは、1 回のリクエストで終わりを待つ秒数です。最大 25 秒です。0〜30 の整数を受け付け、25 を超えた分は 25 として扱います。- 1 回で終わらなくても、
terminalがtrueになるまで呼び続けます。 - リポジトリで作業した実行では、Git のブランチが正しい成果物です(
git fetch origin kamui-cloud/…)。 repoUrlを省いた実行では、resultTextが成果物そのものです(artifactは{"type":"text"})。- キーが成果テキストを許可していないときは、
resultTextがnullになり、理由がresultTextWithheldに入ります。
応答の主な項目
| 項目 | 意味 |
|---|---|
status |
実行の状態。queued、starting、running、waiting、done、failed、stopped のどれか。 |
terminal |
終わったかどうか。done、failed、stopped のとき true。 |
artifact |
成果物の種類。git-branch(repoUrl と branch 付き)か text。 |
resultText |
AI の最後の返事。キーが許可していないときは null。 |
resultTextWithheld |
resultText を返さなかった理由。許可していないキーのときだけ付く。 |
autoMerge |
自動マージの結果。done でも取り込めていないことがあるので、ここで確かめる。 |
error |
失敗したときの内容。 |
自分のものでない runId や、無い runId を指定すると、404 になります。
途中経過を見る(POST /events)
実行中の計画、パートの進み具合、作業ログを読むための窓口です。
オーケストラの実行では、計画の AI が作業をどう分けたか、各パートを今どのエンジンが進めているかが分かります。
curl -X POST "https://www.kamui.ai/api/cloud/events" \
-H "x-kamui-api-key: kamui_sk_..." \
-H "Content-Type: application/json" \
-d '{ "runId": "<uuid>", "afterSeq": 0 }'
# → { "status": "running", "terminal": false, "mode": "progress", "maxSeq": 42,
# "events": [ { "seq": 3, "kind": "orchestrate-plan", ... },
# { "seq": 7, "kind": "orchestrate-part-start", ... } ],
# "gantt": [ ... ] }
| 項目 | 意味 |
|---|---|
runId |
必須。/launch や /orchestrate が返した ID。 |
afterSeq |
この番号より後のものだけを返します。前回の応答の maxSeq を入れると、新しい分だけを受け取れます。0 以上の整数。既定は 0。 |
mode |
"progress"(既定)は、計画・パートの開始と完了・終わりの記録と、ガントの材料を返します。どの有効なキーでも読めます。"events" は作業ログの全文を返し、「成果テキスト」を許可したキーが要ります(許可していないキーは 403)。 |
limit |
1 回で返す件数。1〜1000。既定は 500。応答が大きすぎると 503 になるので、作業ログの全文を読むときは小さめにします。 |
実行中は /events を afterSeq 付きで繰り返し呼び、terminal が true になったら /result で成果を受け取ります。