fix(kiro): intercept chat via x-amz-target and prepend initial-response frame
Kiro IDE 1.0.228+ moved GenerateAssistantResponse from path /generateAssistantResponse to POST / + x-amz-target header, so chat turns bypassed MITM. The SmithyMessageDecoderStream also now requires an initial-response frame at stream start, and agent/vibe mode sends modelId "auto" which had no mappable slot. - Add isChatRequest() header-based match for kiro in mitm/config.js - Add buildInitialResponseFrame/withInitialFrame to emit the mandatory initial-response once per stream (kiro.js) - Add "auto" model slot and update mitmDomain to runtime.us-east-1.kiro.dev
This commit is contained in:
@@ -57,8 +57,13 @@ export const MITM_TOOLS = {
|
||||
color: "#FF6B00",
|
||||
description: "Kiro IDE with MITM",
|
||||
configType: "mitm",
|
||||
mitmDomain: "q.us-east-1.amazonaws.com",
|
||||
mitmDomain: "runtime.us-east-1.kiro.dev",
|
||||
defaultModels: [
|
||||
// Kiro's agent/"vibe" mode sends modelId "auto" for the main turn and "simple-task"
|
||||
// for background sub-tasks (verified via MITM request dump of generateAssistantResponse).
|
||||
// Both need a mappable slot — otherwise getMappedModel returns null and the chat call
|
||||
// is passed through to AWS instead of being routed to the chosen provider.
|
||||
{ id: "auto", name: "Auto (Kiro Agent)", alias: "auto" },
|
||||
{ id: "claude-sonnet-5", name: "Claude Sonnet 5", alias: "claude-sonnet-5" },
|
||||
{ id: "claude-sonnet-4.5", name: "Claude Sonnet 4.5", alias: "claude-sonnet-4.5" },
|
||||
{ id: "claude-sonnet-4", name: "Claude Sonnet 4", alias: "claude-sonnet-4" },
|
||||
|
||||
Reference in New Issue
Block a user