You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added model mappings for claude-opus-5 and claude-opus-5-thinking in src/constants.ts
Registered claude-opus-5 as effort capable, in the xhigh tier alongside Opus 4.7 and 4.8
Added the two models to the README example config
Extended the effort test suite with Opus 5 cases
Effort support
Per https://kiro.dev/docs/cli/chat/effort/, Claude Opus 5 accepts the full five value effort enum (low, medium, high, xhigh, max), the same as Opus 4.7 and 4.8. Opus 4.6 is limited to four values, so Opus 5 goes in XHIGH_CAPABLE_MODELS rather than the four value set.
Without this the model was registered but got no effort field on the request, so Kiro never allocated a reasoning budget and no thinking output was produced.
Notes
No explicit -1m model IDs are added. Kiro does not expose separate long context IDs for Opus 5, so only the two base IDs are mapped. The 1M context is reflected in the limit.context value.
The docs list a max_tokens ceiling of 128000 for Opus 5. The README example keeps output: 64000 to stay consistent with how Opus 4.8 is already declared. Raising the declared output limit for both is left for a separate change.
Testing
Type checking passed (tsc --noEmit)
Build passed (tsc -p tsconfig.build.json plus the ESM import fixup)
Prettier formatting check passed
Effort resolution verified against the built output: supportsEffort, supportsXHighEffort, resolveEffort, budgetToEffort and getEffectiveEffort all return the expected values for claude-opus-5
Note: bun is not installed in my environment, so bun test was not run. The effort behaviour was verified directly against dist/ instead.
Superseded by #117, which contains this commit unchanged plus the fixes that make it actually work.
Worth flagging what this PR alone did not deliver: it registered claude-opus-5 in XHIGH_CAPABLE_MODELS, but budgetToEffort had no branch returning xhigh, so with auto_effort_mapping on by default that registration had no effect on the automatic path. It also added claude-opus-5-thinking to MODEL_MAPPING without adding it to the advertised model registry in plugin.ts, so the model was not selectable without hand-written user config.
Both are fixed in #117, along with the reason thinking blocks never rendered at all: Kiro streams reasoning as reasoningContentEvent, which the stream transformer was dropping.
Not deleting the branch, in case you would rather cherry-pick the Opus 5 commit separately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds support for Claude Opus 5, which is now available in Kiro according to https://kiro.dev/blog/opus-5/.
Changes
claude-opus-5andclaude-opus-5-thinkinginsrc/constants.tsclaude-opus-5as effort capable, in the xhigh tier alongside Opus 4.7 and 4.8Effort support
Per https://kiro.dev/docs/cli/chat/effort/, Claude Opus 5 accepts the full five value effort enum (
low,medium,high,xhigh,max), the same as Opus 4.7 and 4.8. Opus 4.6 is limited to four values, so Opus 5 goes inXHIGH_CAPABLE_MODELSrather than the four value set.Without this the model was registered but got no effort field on the request, so Kiro never allocated a reasoning budget and no thinking output was produced.
Notes
No explicit
-1mmodel IDs are added. Kiro does not expose separate long context IDs for Opus 5, so only the two base IDs are mapped. The 1M context is reflected in thelimit.contextvalue.The docs list a
max_tokensceiling of 128000 for Opus 5. The README example keepsoutput: 64000to stay consistent with how Opus 4.8 is already declared. Raising the declared output limit for both is left for a separate change.Testing
tsc --noEmit)tsc -p tsconfig.build.jsonplus the ESM import fixup)supportsEffort,supportsXHighEffort,resolveEffort,budgetToEffortandgetEffectiveEffortall return the expected values forclaude-opus-5Note:
bunis not installed in my environment, sobun testwas not run. The effort behaviour was verified directly againstdist/instead.Reference