Skip to content

feat(engy): add engy sync module - #8715

Open
roykollensvendsen wants to merge 1 commit into
anomalyco:devfrom
roykollensvendsen:add-engy-sync
Open

roykollensvendsen wants to merge 1 commit into
anomalyco:devfrom
roykollensvendsen:add-engy-sync

Conversation

@roykollensvendsen

@roykollensvendsen roykollensvendsen commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds a sync module for engy, the provider added in #5910. That PR was split so the provider could land first, and this is the module that was taken out of it. One change since then: the module now keeps every authored field and overwrites only the cost, context and modalities, as the Mistral module does. Before, it rebuilt each model from a fixed field list, which would have stripped v2's new type field on the next run.

engy publishes prices, the context window and modalities on a public GET https://api.engy.ai/v1/models (no auth). The module keeps those current. While #5910 was open it caught two real changes: kimi-k3's 30% price rise on 09-03 and qwen3.8-27b's larger window on 09-13.

What it writes and what it leaves alone

  • Writes the cost (input, output, cache_read), limit.context and modalities.
  • Leaves everything else as authored: the input/output split, reasoning_options, interleaved, any other cost keys, provider, experimental and status. The public list gives only the context window, which on engy is max_input + max_output, so the module never derives the split from it.
  • base_model: an authored base_model wins over the slug resolver.
  • Modalities: an absent list keeps what the file says. A context_length of 0 or less counts as unreported.
  • skipCreates: a new id opens a [missing-model] issue instead of a file, because a created file would ship limit.output = 0. Today the list and the catalogue match, so the first run opens nothing.
  • deleteMissing: false: {"data":[]} passes the schema, so retired ids are reported, not deleted.
  • Prices are rounded to six decimals, so the hourly run is a no-op when nothing has changed.

The module is registered in sync/index.ts (alphabetical, direct group), with an engy:sync script and an engy Notes section in sync.md. It is not on REVIEWED_REASONING_PROVIDERS.

Test plan

  • packages/core/test/engy.test.ts: 18 pass. The carry-through test now covers type and reasoning_options and fails on the old field list. The suite reads the shipped engy files and asserts that a sync round trip leaves them unchanged.
  • bun models:sync engy --dry-run, then a real run, then --dry-run again, 2026-10-07: 8 unchanged each time, no files touched
  • bun validate
  • bun run test in packages/sdk: 25 pass
  • tsc --noEmit in packages/core: the same 78 errors as on dev, none of them in engy code
  • Based on dev 25bd6dc

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Oct 3, 2026
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 7, 2026
engy publishes prices, the context window and modalities on a public
GET /v1/models; the module syncs those and preserves everything else
(the input/output split, reasoning_options, interleaved, the other
cost keys, provider, experimental, status, base_model).

It never creates or deletes: a created file would ship
limit.output = 0, so unseen ids become [missing-model] issues, and the
unauthenticated list can return an empty data array, so missing files
are retained and reported. An authored base_model wins over the slug
resolver. Prices round to six decimals, so the hourly run is a no-op.

Registered in sync/index.ts and the direct group, with an engy:sync
script, an engy Notes section in sync.md, and 18 tests that read the
shipped files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018k8EL6s5hEtTTMJ8Jjd4Ls
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added reviewer: ready Automated review found no actionable items and removed reviewer: ready Automated review found no actionable items labels Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewer: ready Automated review found no actionable items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant