@sunerpy/kiro-provider 0.5.0-rc.1 → 0.5.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +44 -36
  2. package/dist/cli.js +75 -81
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -34,7 +34,10 @@
34
34
  - Live OpenCode authentication reuse by default: `auth_source: "opencode-shared"` reads the same `~/.config/opencode/kiro.db`, honors tombstones, updates shared health/usage, and uses the account schema and refresh-lock behavior of `opencode-kiro-auth` v0.20.7.
35
35
  - Explicit-only session affinity by default: Responses requests can opt in through standard `metadata`, compatibility `client_metadata`, or `prompt_cache_key`; requests without an explicit key never derive identity from prompt text. A matching Zuno native OpenAI transport supplies `metadata.zuno_session_id` automatically.
36
36
  - Account-scoped scheduling and cached SDK/transport objects: unrelated accounts can run concurrently, while one account is protected from overlapping Kiro streams; access-token refresh updates the cached client instead of rebuilding it. Kiro model-call HTTP keep-alive is disabled by default and is an explicit transport opt-in.
37
- - Zero provider-owned prompt injection in the default `safe` mode: a canonical IR preserves client text, roles, content-block boundaries, tool identity, ordering, and source paths; unsupported guarantees are rejected before Kiro instead of being emulated with hidden instructions.
37
+ - Zero provider-owned prompt injection in the default `safe` mode: a canonical
38
+ input IR preserves client text, roles, content-block boundaries, tool
39
+ identity, ordering, and source paths; Kiro output is normalized into a
40
+ separate canonical completion/event IR before protocol-specific encoding.
38
41
  - Encrypted reasoning replay for complete native Kiro envelopes: opaque `kr1_...` tokens, AES-256-GCM storage, tenant/model/account/conversation/output binding, TTL/LRU cleanup, and account-locked replay.
39
42
  - Multi-account rotation with automatic token refresh and failover. Shared mode treats OpenCode's database as the authentication authority; the provider database stores session affinity only.
40
43
  - An explicit `auth_source: "local"` compatibility mode retains `kiro-provider login` and `accounts import`; imported accounts are snapshots and must not be confused with live shared authentication.
@@ -59,25 +62,30 @@ Key boundaries:
59
62
  - `instructions`, `system`, and `developer` return
60
63
  `unsupported_instruction_projection` in safe mode because the tested Kiro
61
64
  `additionalContext` channel was rejected;
62
- - `tool_choice: auto` is supported; required/named choice,
63
- `parallel_tool_calls: false`, strict schemas, custom grammars, and namespace
64
- tools are rejected rather than weakened;
65
+ - `tool_choice: auto` is supported; `parallel_tool_calls: false` is accepted as
66
+ a no-op only when no callable tool can run (including `tool_choice: none`),
67
+ and otherwise returns `unsupported_parallel_tool_calls`; required/named
68
+ choice, strict schemas, custom grammars, and namespace tools are rejected
69
+ rather than weakened;
65
70
  - base64/data-URL images are supported, while remote image URLs and detail
66
71
  controls are rejected;
67
- - an output-token limit is probe-confirmed only for `claude-sonnet-5` variants
68
- in the range 1,024–128,000;
72
+ - an output-token limit is probe-confirmed for `claude-sonnet-5` and
73
+ `claude-opus-5` variants in the range 1,024–128,000;
69
74
  - stateful Responses fields and native Web Search remain unsupported, and the
70
75
  provider never fabricates search/citation events.
71
76
 
72
- Current compiled-binary acceptance on 2026-08-26: OpenAI JavaScript SDK 7.5.0
73
- passes Responses, explicit Chat, function/custom tool loops, and encrypted
74
- reasoning replay across restart. OpenCode Responses passes only in explicit
75
- `legacy-user-prefix` mode with Claude Sonnet 5; OpenCode Chat is blocked by
76
- its nonstandard `cache_control`. Codex 0.149.0-alpha.4.1 is blocked by
77
- `parallel_tool_calls: false`, and Claude Code 2.1.209 is blocked by
78
- `output_config.format`, `context_management`, and its retry that places
79
- `system` in `messages.1.role`. These are RC findings; stable v0.5.0 remains
80
- gated rather than silently discarding or relocating those fields.
77
+ Current compiled-binary acceptance on 2026-08-27: RC.3 exposes
78
+ `claude-opus-5` plus `low/medium/high/xhigh/max`, with a 1,000,000-token
79
+ context window and a probe-confirmed 1,024–128,000 native output limit. OpenAI
80
+ JavaScript SDK 7.5.0 passes Opus 5 Responses streaming/non-streaming, explicit
81
+ Chat, function tools, and direct Anthropic Messages JSON/SSE. OpenCode 1.18.18
82
+ passes a real Opus 5 Max bash/read tool loop in explicit
83
+ `legacy-user-prefix` mode while reusing one account and Kiro conversation.
84
+ Codex 0.150.0-alpha.9 now passes model validation but remains blocked before
85
+ Kiro by `reasoning.summary`; Claude Code 2.1.209 likewise passes Opus 5 model
86
+ validation but remains blocked by `context_management`. Zuno was intentionally
87
+ not changed or rerun. These are RC findings; stable v0.5.0 remains gated
88
+ rather than silently discarding unsupported fields.
81
89
 
82
90
  For the complete capability matrix, error codes, reasoning replay contract,
83
91
  and v0.4 migration steps, see
@@ -597,12 +605,12 @@ exception scheduled for removal in v0.7.0.
597
605
 
598
606
  ## Use with Codex CLI
599
607
 
600
- Codex uses the correct Responses endpoint, but the current compiled RC gate
601
- against 0.149.0-alpha.4.1 does not pass: Codex sends
602
- `parallel_tool_calls: false`, and Kiro cannot guarantee that constraint. The
603
- provider returns `unsupported_parallel_tool_calls` before Kiro instead of
604
- ignoring the field. The following isolated configuration reproduces the
605
- compatibility check without touching the real `~/.codex` state:
608
+ Codex uses the correct Responses endpoint. The compiled RC.3 gate with Codex
609
+ 0.150.0-alpha.9 and `claude-opus-5-max` now passes provider model validation,
610
+ but its first request is rejected before Kiro at `reasoning.summary`, which
611
+ has no proven native equivalent. The provider does not strip that field or
612
+ simulate it with prompt text. The following isolated configuration reproduces
613
+ the compatibility check without touching the real `~/.codex` state:
606
614
 
607
615
  ```bash
608
616
  export CODEX_TEST_ROOT="$(mktemp -d)"
@@ -611,8 +619,9 @@ export CODEX_SQLITE_HOME="$CODEX_TEST_ROOT/sqlite"
611
619
  mkdir -p "$CODEX_HOME" "$CODEX_SQLITE_HOME"
612
620
  export LOCALGW_KEY="sk-...your gateway api key..."
613
621
  cat > "$CODEX_HOME/config.toml" <<'EOF'
614
- model = "gpt-5.6-sol"
622
+ model = "claude-opus-5-max"
615
623
  model_provider = "localgw"
624
+ model_reasoning_effort = "high"
616
625
  [model_providers.localgw]
617
626
  name = "Local Gateway"
618
627
  base_url = "http://127.0.0.1:8787/v1"
@@ -622,26 +631,25 @@ EOF
622
631
  codex exec --skip-git-repo-check "say hi"
623
632
  ```
624
633
 
625
- For Codex 0.149.0-alpha.4.1 the expected RC result is a non-zero exit carrying
626
- that field-level error. A future successful basic request must still pass a
627
- real shell/custom-tool loop, continuation, and restart reasoning replay before
628
- Codex is marked supported. Full details live in
634
+ For Codex 0.150.0-alpha.9 the expected RC.3 result is a non-zero exit with
635
+ `unsupported_reasoning_summary` at `reasoning.summary`. A future supported request shape must
636
+ then pass a real shell/custom-tool loop, continuation, and restart reasoning
637
+ replay before Codex is marked supported. Full details live in
629
638
  [`docs/CODEX.md`](docs/CODEX.md).
630
639
 
631
640
  ## Use with Claude Code
632
641
 
633
- Claude Code uses Anthropic Messages, but Claude Code 2.1.209 currently sends
634
- `output_config.format` and `context_management`; after the first rejection it
635
- also retries with `system` inside `messages.1.role`, which is not a valid
636
- Anthropic Messages role and cannot be silently moved. The provider rejects
637
- these shapes before Kiro in both safe and legacy instruction modes. The
638
- standard configuration below is therefore a compatibility probe, not a
639
- current support claim:
642
+ Claude Code uses Anthropic Messages. The compiled RC.3 run with Claude Code
643
+ 2.1.209, `claude-opus-5`, and max effort passes provider model validation but
644
+ is rejected before Kiro at `context_management`, which has no proven native
645
+ equivalent. The provider does not discard it. Direct Opus 5 Messages JSON/SSE
646
+ within the verified subset passes; the standard Claude Code configuration
647
+ below remains a compatibility probe rather than a full support claim:
640
648
 
641
649
  ```bash
642
650
  export ANTHROPIC_BASE_URL="http://127.0.0.1:8787"
643
- export ANTHROPIC_AUTH_TOKEN="sk-your-private-key"
644
- claude
651
+ export ANTHROPIC_API_KEY="sk-your-private-key"
652
+ claude --bare --safe-mode --model claude-opus-5 --effort max
645
653
  ```
646
654
 
647
655
  The gateway accepts either `Authorization: Bearer <key>` or `x-api-key:
@@ -651,7 +659,7 @@ an explicit estimate. See
651
659
  [`docs/CLAUDE_CODE.md`](docs/CLAUDE_CODE.md).
652
660
 
653
661
  The current compiled-service validation record is in
654
- [`docs/audits/kiro-provider-v0.5.0-rc.1-validation-2026-08-26.md`](docs/audits/kiro-provider-v0.5.0-rc.1-validation-2026-08-26.md).
662
+ [`docs/audits/kiro-provider-v0.5.0-rc.3-opus5-validation-2026-08-27.md`](docs/audits/kiro-provider-v0.5.0-rc.3-opus5-validation-2026-08-27.md).
655
663
  The older [`docs/E2E_VALIDATION_2026-08-22.md`](docs/E2E_VALIDATION_2026-08-22.md)
656
664
  is retained as historical v0.4 evidence only.
657
665