@sunerpy/kiro-provider 3.1.3 → 3.2.0

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 +64 -67
  2. package/dist/cli.js +121 -120
  3. package/package.json +4 -1
package/README.md CHANGED
@@ -72,8 +72,8 @@ account does not advertise the private `systemPrompt` feature. The default
72
72
  `v3-auto` path instead uses KiroRuntime CreateResponse's native
73
73
  `instructions` field.
74
74
 
75
- `responses_fidelity_mode` defaults to `compatible` and reports known losses in
76
- `X-Kiro-Compatibility`; `strict` rejects those semantics before generation.
75
+ `responses_fidelity_mode` defaults to `compatible` and reports request projection
76
+ losses in `X-Kiro-Compatibility`; `strict` rejects those semantics before generation.
77
77
  `X-Kiro-Transport` distinguishes native, native-adapted, and stateless calls.
78
78
  Native tool bridges are enabled only for verified model/region cells. Instruction
79
79
  lifting stays experimental until its complete continuation gate passes. See the
@@ -82,6 +82,13 @@ for history, reasoning, instruction-priority boundaries, and storage migration.
82
82
  The [before/after report](docs/audits/kiro-provider-responses-before-after-2026-09-10.zh.md)
83
83
  includes real OpenAI SDK, Codex, and Zuno results.
84
84
 
85
+ Usage preserves measured cache/read/write and reasoning sub-counts. When Kiro only
86
+ provides a context percentage and credits, compatible mode labels estimates and
87
+ unknown fields in `usage.metadata.kiro`; strict mode omits incomplete usage.
88
+ Context accounting does not multiply GPT's capped legacy percentage by its corrected
89
+ prompt budget. See [usage and context accounting](docs/RESPONSES_USAGE.md), including
90
+ the distinction between AI SDK 7's cumulative `usage` and `finalStep.usage`.
91
+
85
92
  For the transport decision table, stored-response contract, data-retention
86
93
  boundary, verified model controls, and current client evidence, see
87
94
  [`docs/PROTOCOL_COMPATIBILITY.md`](docs/PROTOCOL_COMPATIBILITY.md) and the
@@ -487,42 +494,42 @@ with the stable base URL and gateway API key.
487
494
 
488
495
  Config is loaded from `~/.config/kiro-provider/config.json` (or `$XDG_CONFIG_HOME/kiro-provider/config.json`; on Windows `%APPDATA%\kiro-provider\config.json`, with the legacy `~/.config` location still read as a fallback), overridable by `KIRO_PROVIDER_*` environment variables and, for `serve`, by CLI flags. Unknown keys in the file are rejected with a suggestion, numeric fields are range-checked, and an empty environment variable counts as unset. Precedence is **CLI flag > environment variable > config file > schema default**.
489
496
 
490
- | Field | Default | Env var |
491
- | --- | --- | --- |
492
- | `host` | `127.0.0.1` | `KIRO_PROVIDER_HOST` |
493
- | `port` | `8787` | `KIRO_PROVIDER_PORT` |
494
- | `api_keys` | required, non-empty | `KIRO_PROVIDER_API_KEYS` |
495
- | `enable_legacy_chat_completions` | `false` | `KIRO_PROVIDER_ENABLE_LEGACY_CHAT_COMPLETIONS` |
496
- | `protocol_projection_mode` | `v3-auto` | `KIRO_PROVIDER_PROTOCOL_PROJECTION_MODE` |
497
- | `session_affinity_mode` | `explicit-only` | `KIRO_PROVIDER_SESSION_AFFINITY_MODE` |
498
- | `auth_source` | `local` | `KIRO_PROVIDER_AUTH_SOURCE` |
499
- | `opencode_auth_db_path` | `null` (deprecated since 0.7.0, ignored) | `KIRO_PROVIDER_OPENCODE_AUTH_DB_PATH` |
500
- | `proxy_url` | `null` | `KIRO_PROVIDER_PROXY_URL` |
501
- | `default_region` | `us-east-1` | `KIRO_PROVIDER_DEFAULT_REGION` |
502
- | `sdk_http_keep_alive` | `false` | `KIRO_PROVIDER_SDK_HTTP_KEEP_ALIVE` |
503
- | `enforce_single_instance` | `true` | `KIRO_PROVIDER_ENFORCE_SINGLE_INSTANCE` |
504
- | `instance_lock_path` | platform config directory | `KIRO_PROVIDER_INSTANCE_LOCK_PATH` |
505
- | `runtime_endpoint_mode` | `kiro-runtime` | `KIRO_PROVIDER_RUNTIME_ENDPOINT_MODE` |
506
- | `dynamic_model_catalog` | `true` | `KIRO_PROVIDER_DYNAMIC_MODEL_CATALOG` |
507
- | `model_catalog_ttl_ms` | `900000` | `KIRO_PROVIDER_MODEL_CATALOG_TTL_MS` |
508
- | `model_catalog_stale_ttl_ms` | `86400000` | `KIRO_PROVIDER_MODEL_CATALOG_STALE_TTL_MS` |
509
- | `model_catalog_request_timeout_ms` | `10000` | `KIRO_PROVIDER_MODEL_CATALOG_REQUEST_TIMEOUT_MS` |
510
- | `account_selection_strategy` | `lowest-usage` | `KIRO_PROVIDER_ACCOUNT_SELECTION_STRATEGY` |
511
- | `quota_recheck_interval_ms` | `900000` | `KIRO_PROVIDER_QUOTA_RECHECK_INTERVAL_MS` |
512
- | `quota_recheck_timeout_ms` | `10000` | `KIRO_PROVIDER_QUOTA_RECHECK_TIMEOUT_MS` |
513
- | `quota_recheck_concurrency` | `4` | `KIRO_PROVIDER_QUOTA_RECHECK_CONCURRENCY` |
514
- | `account_maintenance_enabled` | `true` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_ENABLED` |
515
- | `account_maintenance_interval_ms` | `60000` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_INTERVAL_MS` |
516
- | `account_maintenance_timeout_ms` | `120000` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_TIMEOUT_MS` |
517
- | `account_maintenance_concurrency` | `4` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_CONCURRENCY` |
518
- | `usage_refresh_interval_ms` | `900000` | `KIRO_PROVIDER_USAGE_REFRESH_INTERVAL_MS` |
519
- | `session_affinity_ttl_ms` | `86400000` | `KIRO_PROVIDER_SESSION_AFFINITY_TTL_MS` |
520
- | `session_affinity_max_entries` | `10000` | `KIRO_PROVIDER_SESSION_AFFINITY_MAX_ENTRIES` |
521
- | `reasoning_replay_key_path` | auto-generated config path | `KIRO_PROVIDER_REASONING_REPLAY_KEY_PATH` |
522
- | `reasoning_replay_keys` | `[]` | `KIRO_PROVIDER_REASONING_REPLAY_KEYS` |
523
- | `reasoning_replay_ttl_ms` | `86400000` | `KIRO_PROVIDER_REASONING_REPLAY_TTL_MS` |
524
- | `reasoning_replay_max_entries` | `10000` | `KIRO_PROVIDER_REASONING_REPLAY_MAX_ENTRIES` |
525
- | `log_level` | `info` | `KIRO_PROVIDER_LOG_LEVEL` |
497
+ | Field | Default | Env var |
498
+ | ---------------------------------- | ---------------------------------------- | ------------------------------------------------ |
499
+ | `host` | `127.0.0.1` | `KIRO_PROVIDER_HOST` |
500
+ | `port` | `8787` | `KIRO_PROVIDER_PORT` |
501
+ | `api_keys` | required, non-empty | `KIRO_PROVIDER_API_KEYS` |
502
+ | `enable_legacy_chat_completions` | `false` | `KIRO_PROVIDER_ENABLE_LEGACY_CHAT_COMPLETIONS` |
503
+ | `protocol_projection_mode` | `v3-auto` | `KIRO_PROVIDER_PROTOCOL_PROJECTION_MODE` |
504
+ | `session_affinity_mode` | `explicit-only` | `KIRO_PROVIDER_SESSION_AFFINITY_MODE` |
505
+ | `auth_source` | `local` | `KIRO_PROVIDER_AUTH_SOURCE` |
506
+ | `opencode_auth_db_path` | `null` (deprecated since 0.7.0, ignored) | `KIRO_PROVIDER_OPENCODE_AUTH_DB_PATH` |
507
+ | `proxy_url` | `null` | `KIRO_PROVIDER_PROXY_URL` |
508
+ | `default_region` | `us-east-1` | `KIRO_PROVIDER_DEFAULT_REGION` |
509
+ | `sdk_http_keep_alive` | `false` | `KIRO_PROVIDER_SDK_HTTP_KEEP_ALIVE` |
510
+ | `enforce_single_instance` | `true` | `KIRO_PROVIDER_ENFORCE_SINGLE_INSTANCE` |
511
+ | `instance_lock_path` | platform config directory | `KIRO_PROVIDER_INSTANCE_LOCK_PATH` |
512
+ | `runtime_endpoint_mode` | `kiro-runtime` | `KIRO_PROVIDER_RUNTIME_ENDPOINT_MODE` |
513
+ | `dynamic_model_catalog` | `true` | `KIRO_PROVIDER_DYNAMIC_MODEL_CATALOG` |
514
+ | `model_catalog_ttl_ms` | `900000` | `KIRO_PROVIDER_MODEL_CATALOG_TTL_MS` |
515
+ | `model_catalog_stale_ttl_ms` | `86400000` | `KIRO_PROVIDER_MODEL_CATALOG_STALE_TTL_MS` |
516
+ | `model_catalog_request_timeout_ms` | `10000` | `KIRO_PROVIDER_MODEL_CATALOG_REQUEST_TIMEOUT_MS` |
517
+ | `account_selection_strategy` | `lowest-usage` | `KIRO_PROVIDER_ACCOUNT_SELECTION_STRATEGY` |
518
+ | `quota_recheck_interval_ms` | `900000` | `KIRO_PROVIDER_QUOTA_RECHECK_INTERVAL_MS` |
519
+ | `quota_recheck_timeout_ms` | `10000` | `KIRO_PROVIDER_QUOTA_RECHECK_TIMEOUT_MS` |
520
+ | `quota_recheck_concurrency` | `4` | `KIRO_PROVIDER_QUOTA_RECHECK_CONCURRENCY` |
521
+ | `account_maintenance_enabled` | `true` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_ENABLED` |
522
+ | `account_maintenance_interval_ms` | `60000` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_INTERVAL_MS` |
523
+ | `account_maintenance_timeout_ms` | `120000` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_TIMEOUT_MS` |
524
+ | `account_maintenance_concurrency` | `4` | `KIRO_PROVIDER_ACCOUNT_MAINTENANCE_CONCURRENCY` |
525
+ | `usage_refresh_interval_ms` | `900000` | `KIRO_PROVIDER_USAGE_REFRESH_INTERVAL_MS` |
526
+ | `session_affinity_ttl_ms` | `86400000` | `KIRO_PROVIDER_SESSION_AFFINITY_TTL_MS` |
527
+ | `session_affinity_max_entries` | `10000` | `KIRO_PROVIDER_SESSION_AFFINITY_MAX_ENTRIES` |
528
+ | `reasoning_replay_key_path` | auto-generated config path | `KIRO_PROVIDER_REASONING_REPLAY_KEY_PATH` |
529
+ | `reasoning_replay_keys` | `[]` | `KIRO_PROVIDER_REASONING_REPLAY_KEYS` |
530
+ | `reasoning_replay_ttl_ms` | `86400000` | `KIRO_PROVIDER_REASONING_REPLAY_TTL_MS` |
531
+ | `reasoning_replay_max_entries` | `10000` | `KIRO_PROVIDER_REASONING_REPLAY_MAX_ENTRIES` |
532
+ | `log_level` | `info` | `KIRO_PROVIDER_LOG_LEVEL` |
526
533
 
527
534
  The full field reference, including retry/timeout tuning and the test-only `test_upstream_endpoint`, lives in [`docs/CONFIGURATION.md`](docs/CONFIGURATION.md).
528
535
 
@@ -697,39 +704,29 @@ replay before Codex is marked supported. Full details live in
697
704
 
698
705
  ## Use with Claude Code
699
706
 
700
- Claude Code uses Anthropic Messages. The last compiled protocol run with Claude Code
701
- 2.1.209, `claude-opus-5`, and max effort passes provider model validation but
702
- is rejected before Kiro at `context_management`, which has no proven native
703
- equivalent. The provider does not discard it. Direct Opus 5 Messages JSON/SSE
704
- within the verified subset passes; the standard Claude Code configuration
705
- below remains a compatibility probe rather than a full support claim:
707
+ Claude Code 2.1.263 is supported through the existing Anthropic Messages
708
+ surface. For an isolated Linux profile that cannot affect a normal
709
+ Bedrock-backed `claude` command, run the checkout-local launcher:
706
710
 
707
711
  ```bash
708
- export ANTHROPIC_BASE_URL="http://127.0.0.1:8787"
709
- export ANTHROPIC_API_KEY="sk-your-private-key"
710
- claude --bare --safe-mode --model claude-opus-5 --effort max
712
+ PATH="$PWD/scripts:$PATH" kiroclaude
711
713
  ```
712
714
 
713
- The gateway accepts either `Authorization: Bearer <key>` or `x-api-key:
714
- <key>` for Anthropic routes. Direct Messages requests within the verified
715
- subset support typed JSON/SSE and tools, while `/v1/messages/count_tokens` is
716
- an explicit estimate. See
717
- [`docs/CLAUDE_CODE.md`](docs/CLAUDE_CODE.md).
718
-
719
- The current account-management and live-usage validation record is in
720
- [`docs/audits/kiro-provider-v0.5.0-rc.5-account-management-validation-2026-08-29.md`](docs/audits/kiro-provider-v0.5.0-rc.5-account-management-validation-2026-08-29.md).
721
- The current typed stream-error contract and downstream Zuno handoff are in
722
- [`docs/STREAM_ERROR_CONTRACT.md`](docs/STREAM_ERROR_CONTRACT.md) and
723
- [`docs/ZUNO_STREAM_ERROR_HANDOFF.zh.md`](docs/ZUNO_STREAM_ERROR_HANDOFF.zh.md).
724
- The preceding local-auth lifecycle record is retained in
725
- [`docs/audits/kiro-provider-v0.5.0-rc.4-local-auth-maintenance-validation-2026-08-29.md`](docs/audits/kiro-provider-v0.5.0-rc.4-local-auth-maintenance-validation-2026-08-29.md).
726
- The preceding protocol/client matrix is retained in
727
- [`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).
728
- The older [`docs/E2E_VALIDATION_2026-08-22.md`](docs/E2E_VALIDATION_2026-08-22.md)
729
- is retained as historical v0.4 evidence only.
730
-
731
- The v3.1.1 stream delivery, RPC decoding and real SDK/Zuno before/after report is in
732
- [`docs/audits/stream-delivery-recovery-2026-09-13.md`](docs/audits/stream-delivery-recovery-2026-09-13.md).
715
+ It uses a separate `CLAUDE_CONFIG_DIR`, `apiKeyHelper`, the gateway root
716
+ `http://127.0.0.1:8787` (without `/v1`), and Kiro's Opus/Sonnet/Haiku plus
717
+ GPT-5.6 Sol/Terra/Luna model IDs. GPT rows inherit Claude Code's effort picker
718
+ behavior through a version-scoped `modelPicker` mapping. The default is Opus 5
719
+ in Ultra mode, and away/recap summaries are disabled only in this profile.
720
+ Ellipsis-only GPT reasoning is hidden behind a lossless replay token. A separate
721
+ `kiroclaude --bedrock-fable` profile provides the existing native Bedrock Fable
722
+ 5.1 model without mixing providers in one conversation. Because Kiro exposes
723
+ no native GPT output-token field, only the launcher explicitly opts into an
724
+ audited advisory `max_tokens` mode; every other client remains fail-closed.
725
+ Current text, tool/result, mid-system, adaptive/omitted thinking, safe
726
+ context-management, cache-hint, and SSE ping behavior is covered. The scripts
727
+ are not installed by the release installer in this revision. See
728
+ [`docs/CLAUDE_CODE.md`](docs/CLAUDE_CODE.md) for configuration, compatibility
729
+ boundaries, and isolated validation.
733
730
 
734
731
  ## Troubleshooting
735
732