14 Commits

Author SHA1 Message Date
lemon07r 64550fb057 Release v1.0.2: broaden offline test coverage
Adds one test file per source file plus a shared fetch mock helper:

- test/constants.test.ts: OAuth scope/client_id/PROVIDER_ID/MODEL_ID pins,
  rules 1, 6, 8.
- test/headers.test.ts: seven fingerprint header keys, UA/X-Msh-Version
  track KIMI_CLI_VERSION, ASCII-only values, device-id format and
  stability across calls (rules 1, 2).
- test/oauth.test.ts: form-encoded bodies for device-start/refresh,
  authorization_pending/expired_token/unknown-error branches, non-OK and
  non-JSON error shapes.
- test/plugin.test.ts: chat.params provider+model gating, full effort
  matrix (rule 4), prompt_cache_key gating (rule 5), camelCase effort
  input, loader Authorization ownership (rule 3), refresh-on-expiry with
  persistAuth, 401 single-retry no-loop, device-flow authorize wiring.
- test/_util/fetchMock.ts: zero-dep global-fetch swap returning canned
  Responses with call capture.

Notes:

- Tests use the real ~/.kimi/device_id; getDeviceId is idempotent and the
  file is shared with kimi-cli by design (AGENTS.md rule 2), so no HOME
  redirect is needed. Attempted monkey-patching os.homedir instead is
  fragile under Bun's eager import-binding resolution.
- pollDeviceToken tests use interval=1 because `device.interval || 5`
  treats 0 as the default 5s and would push each iteration past the
  default bun-test timeout.

Total: 35 tests, ~5s to run.
v1.0.2
2026-04-17 03:18:23 -04:00
lemon07r 0626597690 Release v1.0.1: fix silent plugin load failure
Plugin v1.0.0 exported a named PROVIDER_ID constant alongside the default
export. opencode's plugin loader (getLegacyPlugins) iterates every export
and requires each to be a function; the named string export caused it to
throw 'Plugin export is not a function', which was only visible in the
log file — the provider silently vanished from 'opencode auth login'.

- Move PROVIDER_ID into src/constants.ts and import it in src/index.ts.
- Add test/exports.test.ts as a regression guard (bun test).
- Add bunfig.toml to scope bun test away from research/ and node_modules/.
- Wire 'bun test' into the release workflow.
- Document rule 9 in AGENTS.md (single default export in src/index.ts).
- Also pick up the previous session's README fix (opencode auth login -p).
v1.0.1
2026-04-17 02:40:07 -04:00
lemon07r be643ba628 docs: clarify description of unimplemented Kimi-specific extras in README 2026-04-17 02:19:36 -04:00
lemon07r aacda9c89f feat: bun.lock 2026-04-17 02:17:14 -04:00
lemon07r 022145e03e docs: update README with Kimi K2.6 Code Preview details and add bun.lock file 2026-04-17 01:54:05 -04:00
lemon07r 837d642714 Fix loader auth read: use readAuth callback instead of client.auth.get v1.0.0 2026-04-17 01:51:14 -04:00
lemon07r aafdd1312d Release v1.0.0: add repo metadata and publishConfig 2026-04-17 01:48:36 -04:00
lemon07r 0f8f14dbd4 feat: add GitHub Actions release workflow and rename provider to kimi-for-coding-oauth 2026-04-17 01:33:39 -04:00
lemon07r 3c7dd8a097 docs: clarify kimi CLI parity and K2.6 access requirements in README 2026-04-17 01:20:45 -04:00
lemon07r 9d47e4cb19 Add README and AGENTS.md 2026-04-17 01:18:36 -04:00
lemon07r c1fc4688a4 Wire opencode auth/loader/chat.params hooks for kimi-for-coding 2026-04-16 23:24:46 -04:00
lemon07r 2bf6c4b605 Add Kimi OAuth device flow and refresh helpers 2026-04-16 23:24:46 -04:00
lemon07r 4df98757e3 Add constants and X-Msh-* header builder with persistent ~/.kimi/device_id 2026-04-16 23:24:46 -04:00
lemon07r e39f1bc5e5 Scaffold plugin package (npm manifest, tsconfig, license, gitignore) 2026-04-16 23:24:46 -04:00