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

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 +41 -27
  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,9 +62,11 @@ 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
72
  - an output-token limit is probe-confirmed only for `claude-sonnet-5` variants
@@ -69,15 +74,19 @@ Key boundaries:
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
77
+ Current compiled-binary acceptance on 2026-08-27: OpenAI JavaScript SDK 7.5.0
73
78
  passes Responses, explicit Chat, function/custom tool loops, and encrypted
74
79
  reasoning replay across restart. OpenCode Responses passes only in explicit
75
80
  `legacy-user-prefix` mode with Claude Sonnet 5; OpenCode Chat is blocked by
76
81
  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.
82
+ `text.verbosity`; its captured request also contains further unsupported
83
+ reasoning, tool-serialization, grammar, and namespace controls. Claude Code
84
+ 2.1.209 first sends unsupported `output_config.format`, then retries with
85
+ invalid `system` in `messages.1.role`; an earlier redacted capture also
86
+ contained `context_management`. Zuno was intentionally not rerun for RC.2,
87
+ and no Zuno source or configuration was changed for this release. These are
88
+ RC findings; stable v0.5.0 remains gated rather than silently discarding or
89
+ relocating those fields.
81
90
 
82
91
  For the complete capability matrix, error codes, reasoning replay contract,
83
92
  and v0.4 migration steps, see
@@ -597,12 +606,16 @@ exception scheduled for removal in v0.7.0.
597
606
 
598
607
  ## Use with Codex CLI
599
608
 
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:
609
+ Codex uses the correct Responses endpoint, but the compiled RC.2 gate against
610
+ 0.149.0-alpha.4.1 does not pass. Its first field-level failure is
611
+ `text.verbosity`, which has no proven Kiro equivalent, so the provider returns
612
+ `unsupported_parameter` with `param: "text.verbosity"` before Kiro. The
613
+ redacted captured request also contains `reasoning.context`,
614
+ `parallel_tool_calls: false` while callable additional tools are active, and
615
+ custom grammar/namespace semantics. The provider does not strip these fields
616
+ or simulate them with prompt text. The following isolated configuration
617
+ reproduces the compatibility check without touching the real `~/.codex`
618
+ state:
606
619
 
607
620
  ```bash
608
621
  export CODEX_TEST_ROOT="$(mktemp -d)"
@@ -622,21 +635,22 @@ EOF
622
635
  codex exec --skip-git-repo-check "say hi"
623
636
  ```
624
637
 
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
638
+ For Codex 0.149.0-alpha.4.1 the expected RC.2 result is a non-zero exit with
639
+ the `text.verbosity` field-level error. A future supported request shape must
640
+ then pass a real shell/custom-tool loop, continuation, and restart reasoning
641
+ replay before Codex is marked supported. Full details live in
629
642
  [`docs/CODEX.md`](docs/CODEX.md).
630
643
 
631
644
  ## Use with Claude Code
632
645
 
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:
646
+ Claude Code uses Anthropic Messages, but the final Claude Code 2.1.209 RC.2
647
+ run first sent unsupported `output_config.format` and then retried with
648
+ `system` inside `messages.1.role`. That role is invalid in Anthropic Messages
649
+ and cannot be silently moved. An earlier redacted capture from the same
650
+ version also contained `context_management`. The provider rejects these
651
+ shapes before Kiro in both safe and legacy instruction modes. The standard
652
+ configuration below is therefore a compatibility probe, not a current
653
+ support claim:
640
654
 
641
655
  ```bash
642
656
  export ANTHROPIC_BASE_URL="http://127.0.0.1:8787"
@@ -651,7 +665,7 @@ an explicit estimate. See
651
665
  [`docs/CLAUDE_CODE.md`](docs/CLAUDE_CODE.md).
652
666
 
653
667
  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).
668
+ [`docs/audits/kiro-provider-v0.5.0-rc.2-validation-2026-08-27.md`](docs/audits/kiro-provider-v0.5.0-rc.2-validation-2026-08-27.md).
655
669
  The older [`docs/E2E_VALIDATION_2026-08-22.md`](docs/E2E_VALIDATION_2026-08-22.md)
656
670
  is retained as historical v0.4 evidence only.
657
671