Repository navigation
feat: add iFlytek Spark and Astron MaaS providers - #9837
Conversation
Add declarative OpenAI-compatible providers for iFlytek Spark (讯飞星火) and iFlytek Astron MaaS (讯飞星辰): - iflytek.json: Spark HTTP API (spark-api-open.xf-yun.com/v1) with 4.0Ultra, generalv3.5, max-32k, generalv3, pro-128k and lite, using SPARK_API_PASSWORD for auth. - iflytek_astron.json: Astron MaaS, defaulting to the Token Plan endpoint with ASTRON_BASE_URL to switch to the Coding Plan; ships Spark X2, DeepSeek, GLM, Kimi, MiniMax, Qwen and astron-code-latest. Both use static model lists and skip canonical filtering since the model ids are provider-specific. Adds deserialization tests and documents the providers in the supported providers table. Signed-off-by: FenjuFu <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d3f4940da
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| {"name": "generalv3", "context_limit": 8192}, | ||
| {"name": "pro-128k", "context_limit": 131072}, | ||
| {"name": "lite", "context_limit": 4096} |
There was a problem hiding this comment.
Remove Spark models without system/tool support
The official Spark HTTP docs note that only Spark 4.0Ultra and Max support system messages and Function Call (https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html). When a goose session selects these Pro/Pro-128K/Lite entries, the OpenAI provider can send the normal system prompt and tools, so those requests are liable to be rejected even though the models are advertised as supported; please omit these entries or otherwise prevent tool/system-using sessions from selecting them.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Done in d03354d — dropped the Pro/Pro-128K/Lite entries and kept only 4.0Ultra and the Max family (generalv3.5, max-32k), which the Spark HTTP docs list as supporting system messages and Function Call.
|
Thanks for the contribution! A couple of things before this can land:
(Also for context: the earlier "closing, external repo" comment doesn't apply to this PR — it looks like it was posted in error.) I'll snooze this for a few days to give you a chance to respond. |
…t all bundled providers parse Per the Spark HTTP docs only the 4.0Ultra and Max families accept system messages and Function Call, so drop the Pro/Pro-128K/Lite entries that would reject goose's system-prompt + tools requests. Replace the per-file iflytek deserialization tests with a single test that asserts every bundled declarative provider parses through the same path load_fixed_providers uses, which otherwise silently skips invalid files.
|
Thanks for the review — both addressed in d03354d:
(And understood re: the earlier "closing, external repo" comment — thanks for clarifying.) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d03354d81b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "name": "iflytek", | ||
| "engine": "openai", | ||
| "display_name": "iFlytek Spark", | ||
| "description": "iFlytek Spark (讯飞星火) models via the OpenAI-compatible HTTP API. Authenticate with your Spark HTTP API password (APIPassword). Only the 4.0Ultra and Max model families are listed, since per the Spark HTTP docs they are the versions that accept system messages and Function Call (tools) — which goose always sends.", |
There was a problem hiding this comment.
Set Spark's tool_calls switch before enabling tools
For sessions with tools, selecting only Max/Ultra is not enough for Spark to behave like OpenAI: the Spark HTTP docs say tool_calls_switch defaults off and must be true to return function calls in the tool_calls array, while goose's OpenAI formatter only drives tool execution from tool_calls. This declarative config has no provider-level request param to add that switch, so Spark function calls can come back as JSON content and goose will not execute the requested tools; please add support for sending tool_calls_switch: true (or don't advertise Spark as tool-capable until it can be sent).
Useful? React with 👍 / 👎.
|
Thanks for the quick turnaround on the model list and the consolidated test — that's a nice improvement. Two things still open before this can land:
Snoozing for a few days to give you a chance to reply. |
Spark only returns OpenAI-style tool_calls when the request body sets tool_calls_switch=true, which the declarative config cannot inject, so the iflytek provider is best used for chat. Note this in the provider description and the providers table, and drop the stale 'lite' mention (lite was removed from iflytek.json earlier). Signed-off-by: FenjuFu <[email protected]>
|
Thanks — you're right, and the codex point checks out against the Spark HTTP docs. On tool calling (1): Spark's chat-completions endpoint gates OpenAI-style tool calls behind a request-body flag: So I've framed this provider as chat-oriented rather than claiming tool support:
On the docs (2): good catch — dropped the stale Both in If you'd be open to it, I'm happy to follow up with a separate PR adding an optional request-body-params field to declarative providers (e.g. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8b0b02e5a7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| {"name": "xopdeepseekv4flash", "context_limit": 131072}, | ||
| {"name": "xopdeepseekv32", "context_limit": 131072}, | ||
| {"name": "xopkimik26", "context_limit": 262144}, | ||
| {"name": "xminimaxm25", "context_limit": 204800}, |
There was a problem hiding this comment.
Lower MiniMax context limit to the Token Plan cap
When xminimaxm25 is used with the default Astron Token Plan endpoint, this advertises a 204800-token window, but the official Token Plan table lists MiniMax-M2.5 as 128K (https://www.xfyun.cn/doc/spark/TokenPlan.html). The registry copies this value into ModelConfig and context management uses it for compaction decisions, so goose can keep sending more than the provider accepts and hit 10907/10910 token-limit errors instead of compacting earlier; please cap this entry to the documented 128K limit.
Useful? React with 👍 / 👎.
The xminimaxm25 model was listed with a 204800 context limit, but the Astron Token Plan documents a 128K (131072) cap for this model. Lower it to match.
|
Pushed a fix for the last codex comment: lowered Thanks for the iterations here — the consolidated |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c80f20f81d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "dynamic_models": false, | ||
| "skip_canonical_filtering": true, | ||
| "models": [ | ||
| {"name": "4.0Ultra", "context_limit": 8192}, |
There was a problem hiding this comment.
Raise Spark Ultra's context limit
For 4.0Ultra, the Spark HTTP docs list Ultra's maximum input length as 32K (https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html), but this config advertises only 8192. ProviderEntry::normalize_model_config backfills ModelConfig.context_limit from these JSON ModelInfo entries, so 4.0Ultra sessions will compact and drop context around 8K even though the provider accepts much more; please set this entry to the documented window.
Useful? React with 👍 / 👎.
| {"name": "xopdeepseekv4pro", "context_limit": 131072}, | ||
| {"name": "xopdeepseekv4flash", "context_limit": 131072}, |
There was a problem hiding this comment.
Raise Astron V4 context limits
The Astron Token Plan model table documents DeepSeek-V4-Pro and DeepSeek-V4-Flash with 1M context windows (https://www.xfyun.cn/doc/spark/TokenPlan.html), but both entries here are capped at 131072. Because these static limits are copied into the session model config before compaction decisions, users of either V4 model will unnecessarily lose most of the usable context instead of running near the provider's advertised 1M window.
Useful? React with 👍 / 👎.
DOsinga
left a comment
There was a problem hiding this comment.
LGTM. Two clean OpenAI-compatible declarative providers, the test consolidation is a real improvement, and the last codex comment on the MiniMax context limit is now addressed. Thanks for the thoughtful iterations!
* main: (26 commits) Fix MCP app sandbox bridge lifecycle (#10064) fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889) feat(providers): support OpenRouter request parameters (#9276) Migrate local inference model management to ACP (#10124) (attempt to) fix disk space errors in linux release builds (#10024) feat: add --edit session flag to edit conversation before forking (#9799) feat: add iFlytek Spark and Astron MaaS providers (#9837) fix(desktop): dedupe Nostr session deep link imports (#9918) [codex] Add SessionStart hook parity outside CLI (#9970) feat(providers): add Fireworks AI declarative provider (#9990) fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005) fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119) chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051) Make OpenAI Responses API store param configurable (#10040) remove unsupported model (#10121) chore(release): bump version to 1.40.0 (minor) (#10099) move ollama provider into goose-providers (#9986) UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (#10109) fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (#10100) feat (acp): exposed available tools in acp schema (#10097) ...
* main: (42 commits) Fix MCP app sandbox bridge lifecycle (#10064) fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889) feat(providers): support OpenRouter request parameters (#9276) Migrate local inference model management to ACP (#10124) (attempt to) fix disk space errors in linux release builds (#10024) feat: add --edit session flag to edit conversation before forking (#9799) feat: add iFlytek Spark and Astron MaaS providers (#9837) fix(desktop): dedupe Nostr session deep link imports (#9918) [codex] Add SessionStart hook parity outside CLI (#9970) feat(providers): add Fireworks AI declarative provider (#9990) fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005) fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119) chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051) Make OpenAI Responses API store param configurable (#10040) remove unsupported model (#10121) chore(release): bump version to 1.40.0 (minor) (#10099) move ollama provider into goose-providers (#9986) UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (#10109) fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (#10100) feat (acp): exposed available tools in acp schema (#10097) ...
* main: (31 commits) test: generic validator for declarative providers (#10010) UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (Part 2) (#10149) Remove MCP sampling support (#10087) Support TLS for ACP serve (#10088) feat (ui): Migrate dictation local model manager to ACP (#10131) Fix MCP app sandbox bridge lifecycle (#10064) fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889) feat(providers): support OpenRouter request parameters (#9276) Migrate local inference model management to ACP (#10124) (attempt to) fix disk space errors in linux release builds (#10024) feat: add --edit session flag to edit conversation before forking (#9799) feat: add iFlytek Spark and Astron MaaS providers (#9837) fix(desktop): dedupe Nostr session deep link imports (#9918) [codex] Add SessionStart hook parity outside CLI (#9970) feat(providers): add Fireworks AI declarative provider (#9990) fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005) fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119) chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051) Make OpenAI Responses API store param configurable (#10040) remove unsupported model (#10121) ...
* fix: correctly map ollama_cloud to canonical provider and update max_… (aaif-goose#9639) Signed-off-by: Sean Murphy <[email protected]> * feat(session): add opt-in ACP last message snippets (aaif-goose#9798) Signed-off-by: Matt Toohey <[email protected]> * chore(deps): bump dirs from 5.0.1 to 6.0.0 (aaif-goose#9630) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/setup-node from 4 to 6 (aaif-goose#9623) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump astral-sh/setup-uv from 7.2.0 to 8.2.0 (aaif-goose#9622) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (aaif-goose#9621) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /scripts/provider-error-proxy (aaif-goose#9594) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump esbuild and tsx in /evals/open-model-gym/suite (aaif-goose#9775) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump the cargo-minor-and-patch group with 9 updates (aaif-goose#9764) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lopdf from 0.40.0 to 0.41.0 (aaif-goose#9629) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump uniffi from 0.29.5 to 0.31.1 (aaif-goose#9628) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lru from 0.16.4 to 0.18.0 (aaif-goose#9627) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump hono from 4.12.18 to 4.12.23 in /evals/open-model-gym/mcp-harness (aaif-goose#9609) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * desktop: fix new chat shortcut (aaif-goose#9659) * chore(release): bump version to 1.38.0 (minor) (aaif-goose#9684) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(agent): ensure tool request timestamp precedes tool response timestamp (aaif-goose#9462) Signed-off-by: Steve Marshall <[email protected]> Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix(recipe): close modal when canceling parameter form (aaif-goose#9195) Signed-off-by: Erik Nilsen <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat: propagate elicitation decline and cancel actions end-to-end (aaif-goose#9437) Co-authored-by: Matt Van Horn <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Fix: deleting a recently created session and then creating a new session shows the deleted session's content (aaif-goose#9351) Signed-off-by: Monroe Williams <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Add Scholar Sidekick tutorial page + anonymous-default auth (v0.8.0) (aaif-goose#9477) * fix(summon): warn on unmatched extension names in delegate (aaif-goose#9513) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat(providers): add OrcaRouter as a declarative OpenAI-compatible provider (aaif-goose#9515) Signed-off-by: maxile <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * oauth: time out the MCP callback wait instead of hanging in WSL (aaif-goose#9536) Co-authored-by: Matt Van Horn <[email protected]> * feat(summon): add working_dir override for delegate tasks (aaif-goose#9520) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(summon): evict stale completed tasks to prevent unbounded memory growth (aaif-goose#9514) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(desktop): restore new chat shortcut navigation (aaif-goose#9528) * fix(providers): detect image paths with spaces (aaif-goose#9387) Signed-off-by: Joseph Malone <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat(summon): add structured metadata to task load results (aaif-goose#9521) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat(summon): add context parameter for delegate tasks (aaif-goose#9518) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: add option for overriding API Url for Moonshot provider (aaif-goose#9819) * fix: record OpenAI-native cached_tokens in usage metering (aaif-goose#9829) Signed-off-by: Yi LIU <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(bedrock): implement real streaming via ConverseStream API (aaif-goose#9579) Signed-off-by: Simon Ho <[email protected]> * fix: show resolved skill supporting file paths (aaif-goose#9584) * fix: refresh session name in sidebar after rename (aaif-goose#9543) Signed-off-by: Varun Nuthalapati <[email protected]> Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix(desktop): align session history scrollbar with window edge (aaif-goose#9601) Signed-off-by: Denis <[email protected]> Co-authored-by: Denis <[email protected]> Co-authored-by: Cursor <[email protected]> * openai: read meta.n_ctx from /v1/models to fix context limit for local servers (aaif-goose#9530) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(otel): provide Tokio runtime for OTLP HTTP exporter batch thread (aaif-goose#9541) Signed-off-by: Varun Nuthalapati <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: fall back to default provider when resuming session with unavailable provider (aaif-goose#9547) Signed-off-by: Varun Nuthalapati <[email protected]> Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix: use blocking OTLP HTTP exporter (aaif-goose#9599) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: add hermit cleanup to uvx and jbang scripts (aaif-goose#9616) * fix(ui): dedupe React to prevent multiple instances in renderer (aaif-goose#9631) * fix: Mention menu icon to open the sidebar (aaif-goose#9643) * fix(ui): lead with extension description, shorten HTTP/SSE transport label (aaif-goose#9653) Signed-off-by: Jeremy Dawes <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat: add Together AI declarative provider (aaif-goose#9545) Signed-off-by: Varun Nuthalapati <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(desktop): restore Cmd/Ctrl+T new chat shortcut (aaif-goose#9614) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * bug(hooks): repair PATH for plugin hook commands (aaif-goose#9615) Signed-off-by: John Tennant <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Improve benchmarking (aaif-goose#9637) Signed-off-by: Douwe Osinga <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> * chore(deps): bump actions/deploy-pages from 4.0.5 to 5.0.0 (aaif-goose#9499) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump shlex from 1.3.0 to 2.0.1 (aaif-goose#9505) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump thiserror from 1.0.69 to 2.0.18 (aaif-goose#9506) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (aaif-goose#9497) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: added _meta.conversationBefore for ACP forking session (aaif-goose#9821) * fix(desktop): handle resume deep links (aaif-goose#9298) Co-authored-by: McGluut <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> * feat(i18n): language selection feature (aaif-goose#9405) Signed-off-by: Dmitry Beskov <[email protected]> * fix(providers/openai): preserve custom API path in base_url derivation (aaif-goose#9649) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(packaging): disable RPM build-id links (aaif-goose#9671) Signed-off-by: weihua <[email protected]> * fix: keep extended thinking within the Anthropic output cap (aaif-goose#9814) Signed-off-by: Filip Kujawa <[email protected]> * use windows-2022 image for CUDA builds (aaif-goose#9834) * fix: clear rejected OAuth credentials after refresh (aaif-goose#9694) Signed-off-by: qybaihe <[email protected]> * feat(azure): support Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN (aaif-goose#9716) Signed-off-by: hammadxcm <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: accept string values for GOOSE_CONTEXT_LIMIT (aaif-goose#9738) Signed-off-by: Michael Neale <[email protected]> * feat(gym): make per-agent timeout configurable (GYM_AGENT_TIMEOUT) (aaif-goose#9791) Signed-off-by: Kyle De Freitas <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> * fix: inherit login-shell PATH in spawned subagents (aaif-goose#9737) Signed-off-by: Michael Neale <[email protected]> * feat: load global hints from ~/.agents/AGENTS.md (aaif-goose#9736) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Make the context exceeded checker more precise (aaif-goose#9831) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * View json (aaif-goose#9678) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: removed window goosed when closing window (aaif-goose#9818) * feat: implement acp method for elicitation and elicitation improvement (aaif-goose#9797) * fixed acp cancel race condition (aaif-goose#9804) * fix(desktop): preserve Windows backslash paths in custom extension command (aaif-goose#9741) Signed-off-by: Michael Neale <[email protected]> * Fix custom OpenAI provider dropping port when URL scheme is omitted (aaif-goose#9730) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(acp): include agentInfo in initialize response (aaif-goose#9765) Signed-off-by: Roman Ponomarev <[email protected]> * Add support for MLX models to the local inference provider (aaif-goose#9154) Signed-off-by: jh-block <[email protected]> * feat(providers): add EmpirioLabs as a declarative OpenAI-compatible provider (aaif-goose#9771) Signed-off-by: Adam Dalloul <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Keep the version-bump PR up to date by re-running on merge conflicts (aaif-goose#9761) * fix: resolve bundled extensions from discovery (aaif-goose#9759) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Dedup duplicate tool-call ids within a turn (aaif-goose#9792) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(summon): skip non-recipe project config files (aaif-goose#9808) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * i18n: add Spanish (es) locale support (aaif-goose#9833) Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> * fix(desktop): keep extensions icon visible after switching sessions (aaif-goose#9787) Signed-off-by: Seydi Charyyev <[email protected]> Signed-off-by: Angie Jones <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Angie Jones <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat(gym): make Open Model Gym output dir configurable (aaif-goose#9789) Signed-off-by: Kyle De Freitas <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(local-inference): use media marker parts for vision prompts (aaif-goose#9452) Signed-off-by: jh-block <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Initial prompt with goose://new-session (aaif-goose#9427) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * check for responses API support in databricks (aaif-goose#9347) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * perf(build): drop debug info for dependencies in the dev profile (aaif-goose#9843) Signed-off-by: Joseph Malone <[email protected]> * Add self-improving agents blog post (aaif-goose#9846) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Support MCP extensions in open plugins (aaif-goose#9471) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Split provider inventory out of providers (aaif-goose#9826) * fix: pass thinking config to Bedrock Anthropic models (aaif-goose#9794) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix: remove hard-coded React alias that points to the wrong location and break the dev render (aaif-goose#9842) * refactor: make session.name the source of truth for displayed session titles (aaif-goose#9841) * feat: use acp for desktop chat prompt (feature toggle off) (aaif-goose#9802) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat (ui): Add durable ACP chat session state for desktop UI (aaif-goose#9852) * feat (ui): chat reply UI with ACP (last part) (aaif-goose#9857) * Add Korean localization to desktop app (aaif-goose#9856) Signed-off-by: lhs <[email protected]> Signed-off-by: soolmuk <[email protected]> Co-authored-by: lhs <[email protected]> * feat(summon): add peek mode for async background tasks (aaif-goose#9519) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(goal): start a turn when /goal or /grind is set (aaif-goose#9801) Signed-off-by: Michael Neale <[email protected]> * feat(aws_bedrock): support OpenAI GPT models via Bedrock mantle endpoint (aaif-goose#9707) Signed-off-by: Hugues Clouâtre <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Add Ophis MCP server to the extensions registry (aaif-goose#9861) * move global config access out of ModelConfig, and move ModelConfig into goose_providers (aaif-goose#9769) * docs: remove DCO references (aaif-goose#9864) Co-authored-by: Douwe M Osinga <[email protected]> * move the provider trait into goose-providers (aaif-goose#9860) * Feature AAIF migration blog post (aaif-goose#9866) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(gcp): use refreshed gcloud token after reauth (retry Vertex AI on 401/403) (aaif-goose#9849) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * docs(installation): correct whitespace in fenced code block (aaif-goose#9867) * delete embeddings support (aaif-goose#9865) * Update Moim (aaif-goose#9636) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * View model interactions (aaif-goose#9806) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> Co-authored-by: Michael Neale <[email protected]> * refactor the request logger out of providers (aaif-goose#9847) * move ApiClient to goose-providers, lifting out TlsConfig (aaif-goose#9869) * fix (acp): Refresh provider when session working directory changes (aaif-goose#9883) * feat (ui): load session using acp (aaif-goose#9875) * fix (desktop): updater to target aaif-goose releases (aaif-goose#9868) Signed-off-by: Abhijay Jain <[email protected]> * Sanitize extension environment maps (aaif-goose#9884) Signed-off-by: Jasper Hugo <[email protected]> * feat: track cache tokens for accurate cost reporting (aaif-goose#9752) Signed-off-by: Filip Kujawa <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Signed-off-by: Douwe Osinga <[email protected]> Co-authored-by: Claude Fable 5 <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat (ui): change cwd using acp and refactor extension in bottom menubar (aaif-goose#9887) * feat: add option to disable automatic update downloads (aaif-goose#9872) Signed-off-by: Douwe Osinga <[email protected]> Co-authored-by: Crazyop757 <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> * feat (acp): used typed request and response for add, get session extensions (aaif-goose#9890) * chore: removed create recipe from session modal and rest api (aaif-goose#9916) * feat(ui): use acp new session on desktop (only for non recipe session) (aaif-goose#9914) * fix: do not pass temperature to ChatGPT Codex provider (aaif-goose#9931) * Allow unlisted models in search (aaif-goose#9933) * chore(deps): bump tokenizers from 0.22.2 to 0.23.1 (aaif-goose#9904) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (aaif-goose#9903) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tiktoken-rs from 0.11.0 to 0.12.0 (aaif-goose#9901) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump sigstore-verify from 0.8.0 to 0.9.0 (aaif-goose#9900) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tower-http from 0.6.11 to 0.7.0 (aaif-goose#9899) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/login-action from 4.1.0 to 4.2.0 (aaif-goose#9896) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 (aaif-goose#9893) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump rand from 0.8.6 to 0.10.1 (aaif-goose#9504) Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <[email protected]> * chore(deps): bump actions/checkout from 6 to 7 (aaif-goose#9894) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(cli): add /status slash command (aaif-goose#9845) Signed-off-by: Joseph Malone <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * mcp(win): full Windows Job Object cleanup wiring (patch draft) (aaif-goose#9835) Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(developer/read_image): send a User-Agent on URL image fetches (aaif-goose#9927) * move OpenAI provider into goose-providers (aaif-goose#9880) * fix(autovisualiser): accept JSON-encoded string for the data parameter (aaif-goose#9838) Signed-off-by: hammadxcm <[email protected]> * docs: custom agents (aaif-goose#9293) * fix(desktop): activate hermit on macOS so STDIO extensions resolve node (aaif-goose#9482) Signed-off-by: Pluviobyte <[email protected]> Co-authored-by: Pluviobyte <[email protected]> * docs: correct custom agents guide (aaif-goose#9947) * added recipe handling in new_session (aaif-goose#9935) * feat (ui) - use acp to manage global config and session extensions (aaif-goose#9948) * fix(desktop): publish mac updater metadata (aaif-goose#9945) Co-authored-by: Douwe M Osinga <[email protected]> * feat: created acp method for managing recipes and UI changes (aaif-goose#9951) * chore(release): bump version to 1.39.0 (minor) (aaif-goose#9810) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat(ui): use acp method to load skills (aaif-goose#9959) * fix: remove unused SubagentStart/SubagentStop hook events (aaif-goose#9960) Signed-off-by: Varun Nuthalapati <[email protected]> * feat: add streamable HTTP support to deeplink generator (aaif-goose#9954) Signed-off-by: Abhijay Jain <[email protected]> Co-authored-by: goose <[email protected]> * fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (aaif-goose#9925) Co-authored-by: Douwe M Osinga <[email protected]> * provider refactor: don't require a model config to create a provider (aaif-goose#9953) Co-authored-by: Copilot <[email protected]> * Route MCP elicitations through tool streams (aaif-goose#9943) Signed-off-by: Douwe M Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Migrate diagnostics to JSON report (aaif-goose#9964) Co-authored-by: Douwe M Osinga <[email protected]> * feat (ui): Use ACP steer to send the message in queue in ACP path (aaif-goose#9957) * removed tunnel rest api and ui (aaif-goose#9932) * Expose last message timestamp on sessions (aaif-goose#9961) Co-authored-by: Douwe M Osinga <[email protected]> * [codex] Emit assistant reply text in Stop hooks (aaif-goose#9968) * created custom methods for agent mention and slash command (aaif-goose#9980) * chore(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /documentation (aaif-goose#9863) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <[email protected]> * fix(desktop): show optimistic toggle state when disabling an extension (aaif-goose#9882) Signed-off-by: Seydi Charyyev <[email protected]> * Fix: surface actionable errors for truncated tool-call arguments (aaif-goose#9946) Co-authored-by: goose <[email protected]> Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(providers): Buffer thinking across stream chunks for DeepSeek/Kimi tool calls (aaif-goose#9704) Signed-off-by: thepetk <[email protected]> * perf: disable extended thinking for fast-model operations (aaif-goose#9815) Signed-off-by: Filip Kujawa <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * chore: removed mesh on ui (aaif-goose#9982) * chore: clean up ui as we don't have session based permission setting on ui (aaif-goose#9975) * chore: removed the too many tools warning (aaif-goose#9974) * feat (acp): custom methods for managing scheduler (aaif-goose#9972) * chore: remove gateway REST API and UI (aaif-goose#9989) Co-authored-by: Lifei Zhou <[email protected]> * suppress telemetry event on ui (aaif-goose#9991) * chore: Remove share session via base url (aaif-goose#9994) * chore(deps): bump docker/setup-buildx-action from 3.12.0 to 4.1.0 (aaif-goose#9895) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ACP Migration: MCP/Goose Apps (aaif-goose#9988) Co-authored-by: Douwe M Osinga <[email protected]> * removed unnecessary call setRecipeParams for acp enabled path (aaif-goose#10003) * Revert "mcp(win): full Windows Job Object cleanup wiring (patch draft… (aaif-goose#10013) * ignore unused on windows (aaif-goose#10009) * Add GLM-5.2 support (aaif-goose#9967) Co-authored-by: Douwe M Osinga <[email protected]> * run all builds on the release branch, before tagging (aaif-goose#10017) * Migrate Nostr session sharing to ACP (aaif-goose#10022) Co-authored-by: Douwe M Osinga <[email protected]> * move anthropic provider into goose-providers (aaif-goose#9985) * feat: used acp agent capabilities for local Inference support check (aaif-goose#9996) * Apply ACP recipe state during session load and fork (aaif-goose#9998) * feat(acp): migrate upsertPermissions to setToolPermissions ACP method (aaif-goose#9999) * fix: removed fallback rest api call in ACP mode for edit in place (aaif-goose#10034) * chore: ignore Zed settings (aaif-goose#10043) Co-authored-by: Douwe M Osinga <[email protected]> * refactor: replace getTunnelStatus with GOOSE_DISABLE_NOSTR_SHARING config flag (aaif-goose#10044) * add ACP+ handlers for prompt editing (aaif-goose#10031) * Support streamed tool calls without indexes (aaif-goose#10023) * feat(acp+): models/providers in desktop on ACP+ (aaif-goose#9987) * feat(acp+): config in desktop on ACP+ (aaif-goose#10057) * feat: handling platform event mcp notification for acp (aaif-goose#10038) * fix: sync the sesion store after session provider and model update and also update thinking effort (aaif-goose#10060) * feat(acp): migrate getDictationConfig and transcribeDictation to ACP (aaif-goose#10048) * fix(schedule): use session.message_count for schedule sessions listing (aaif-goose#10026) Co-authored-by: Cursor Agent <[email protected]> * feat (ui): Remove ACP chat feature flag and turn on chat using ACP (aaif-goose#10062) * feat (acp+): Use ACP permission manager for tool permissions (aaif-goose#10066) * feat(i18n): add fr, de, it, pt, id, ms, vi, zh-TW desktop locales (aaif-goose#10072) Co-authored-by: Yixuan Zhong <[email protected]> * fix(cli): save /edit prompts to history (aaif-goose#10011) Co-authored-by: Douwe M Osinga <[email protected]> * docs: name the message field in the hooks payload guide (aaif-goose#9913) Co-authored-by: Douwe M Osinga <[email protected]> * fix(providers): reject non-object tool-call arguments instead of panicking (aaif-goose#9832) Signed-off-by: Lunchbox <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Signed-off-by: Goose <[email protected]> Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> Co-authored-by: Goose <[email protected]> Co-authored-by: Michael Neale <[email protected]> * task(acp): upgrade SDK and use new HTTP/WS crate (aaif-goose#10082) * fix(cli): update help text for --session-id (aaif-goose#10077) Signed-off-by: Vikram Vaswani <[email protected]> * Remove session_id from provider streaming trait methods (aaif-goose#9984) * chore: Remove legacy MCP-UI proxy support (aaif-goose#10086) * fix(test): stop flaky unparseable-tool-call test by disabling session naming (aaif-goose#10091) * feat (acp+): Remove REST onboarding setup paths (aaif-goose#10061) * perf(providers): keep turn-context out of the Anthropic prefix cache (aaif-goose#10030) * feat (acp): exposed available tools in acp schema (aaif-goose#10097) * fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (aaif-goose#10100) * UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (aaif-goose#10109) * move ollama provider into goose-providers (aaif-goose#9986) * chore(release): bump version to 1.40.0 (minor) (aaif-goose#10099) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Jack Amadeo <[email protected]> * remove unsupported model (aaif-goose#10121) * Make OpenAI Responses API store param configurable (aaif-goose#10040) Signed-off-by: Lucas Alvares Gomes <[email protected]> * chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (aaif-goose#10051) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (aaif-goose#10119) Co-authored-by: Claude Sonnet 4.6 <[email protected]> * fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (aaif-goose#10005) Co-authored-by: Douwe M Osinga <[email protected]> * feat(providers): add Fireworks AI declarative provider (aaif-goose#9990) Signed-off-by: Leo Walker <[email protected]> * [codex] Add SessionStart hook parity outside CLI (aaif-goose#9970) Co-authored-by: Max Novich <[email protected]> * fix(desktop): dedupe Nostr session deep link imports (aaif-goose#9918) Signed-off-by: harrykamboj1 <[email protected]> * feat: add iFlytek Spark and Astron MaaS providers (aaif-goose#9837) Signed-off-by: FenjuFu <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * feat: add --edit session flag to edit conversation before forking (aaif-goose#9799) Signed-off-by: Sean Murphy <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * (attempt to) fix disk space errors in linux release builds (aaif-goose#10024) * Migrate local inference model management to ACP (aaif-goose#10124) * feat(providers): support OpenRouter request parameters (aaif-goose#9276) Signed-off-by: sunilkumarvalmiki <[email protected]> Signed-off-by: Douwe Osinga <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * fix(bedrock): send inference config (max_tokens, temperature) on Converse (aaif-goose#9889) Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> * Fix MCP app sandbox bridge lifecycle (aaif-goose#10064) Co-authored-by: Douwe M Osinga <[email protected]> * feat (ui): Migrate dictation local model manager to ACP (aaif-goose#10131) * Support TLS for ACP serve (aaif-goose#10088) Co-authored-by: Douwe M Osinga <[email protected]> Co-authored-by: Lifei Zhou <[email protected]> * Remove MCP sampling support (aaif-goose#10087) Co-authored-by: Douwe M Osinga <[email protected]> Co-authored-by: Lifei Zhou <[email protected]> * UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (Part 2) (aaif-goose#10149) * test: generic validator for declarative providers (aaif-goose#10010) Co-authored-by: Douwe M Osinga <[email protected]> * Update release testing instructions (aaif-goose#10122) * fix(desktop): seed mac auto-update config (aaif-goose#10132) Co-authored-by: Douwe M Osinga <[email protected]> * add declarative provider support to goose-providers crate (aaif-goose#9992) * Update EmpirioLabs provider display name to EmpirioLabs AI (aaif-goose#10126) * chore(deps): bump pnpm/action-setup from 6.0.8 to 6.0.9 (aaif-goose#9892) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe Osinga <[email protected]> * chore(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1 (aaif-goose#10049) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/stale from 10.1.1 to 10.3.0 (aaif-goose#10050) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * regenerate schema (aaif-goose#10166) * chore(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 in /documentation (aaif-goose#10107) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(providers): unescape shell-escaped image paths (aaif-goose#10098) * fix(databricks): always use OpenAI-compatible "parameters" for tools (aaif-goose#10101) * fix: tolerate partial Responses output items (aaif-goose#10108) * chore(deps): bump actions-rust-lang/setup-rust-toolchain from 1.16.1 to 1.17.0 (aaif-goose#10052) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bedrock model discovery and validation (aaif-goose#9997) * Improve ACP auth and origin defaults (aaif-goose#9886) * Revert "Bedrock model discovery and validation" (aaif-goose#10176) * acp migration (ui) : ui connect to acp directly instead of goosed (aaif-goose#10081) * Remove open-model-gym eval suite (aaif-goose#10174) --------- Signed-off-by: Sean Murphy <[email protected]> Signed-off-by: Matt Toohey <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Steve Marshall <[email protected]> Signed-off-by: Erik Nilsen <[email protected]> Signed-off-by: Douwe M Osinga <[email protected]> Signed-off-by: Monroe Williams <[email protected]> Signed-off-by: maxile <[email protected]> Signed-off-by: Joseph Malone <[email protected]> Signed-off-by: Yi LIU <[email protected]> Signed-off-by: Simon Ho <[email protected]> Signed-off-by: Varun Nuthalapati <[email protected]> Signed-off-by: Denis <[email protected]> Signed-off-by: Jeremy Dawes <[email protected]> Signed-off-by: John Tennant <[email protected]> Signed-off-by: Douwe Osinga <[email protected]> Signed-off-by: Dmitry Beskov <[email protected]> Signed-off-by: weihua <[email protected]> Signed-off-by: Filip Kujawa <[email protected]> Signed-off-by: qybaihe <[email protected]> Signed-off-by: hammadxcm <[email protected]> Signed-off-by: Michael Neale <[email protected]> Signed-off-by: Kyle De Freitas <[email protected]> Signed-off-by: Roman Ponomarev <[email protected]> Signed-off-by: jh-block <[email protected]> Signed-off-by: Adam Dalloul <[email protected]> Signed-off-by: Seydi Charyyev <[email protected]> Signed-off-by: Angie Jones <[email protected]> Signed-off-by: lhs <[email protected]> Signed-off-by: soolmuk <[email protected]> Signed-off-by: Hugues Clouâtre <[email protected]> Signed-off-by: Abhijay Jain <[email protected]> Signed-off-by: Jasper Hugo <[email protected]> Signed-off-by: Douwe Osinga <[email protected]> Signed-off-by: Pluviobyte <[email protected]> Signed-off-by: thepetk <[email protected]> Signed-off-by: Lunchbox <[email protected]> Signed-off-by: Goose <[email protected]> Signed-off-by: Vikram Vaswani <[email protected]> Signed-off-by: Lucas Alvares Gomes <[email protected]> Signed-off-by: Leo Walker <[email protected]> Signed-off-by: harrykamboj1 <[email protected]> Signed-off-by: FenjuFu <[email protected]> Signed-off-by: sunilkumarvalmiki <[email protected]> Co-authored-by: Sean Murphy <[email protected]> Co-authored-by: Matt Toohey <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Darren Xu <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Steve Marshall <[email protected]> Co-authored-by: Claude Sonnet 4.6 <[email protected]> Co-authored-by: Erik Nilsen <[email protected]> Co-authored-by: Douwe M Osinga <[email protected]> Co-authored-by: Matt Van Horn <[email protected]> Co-authored-by: Matt Van Horn <[email protected]> Co-authored-by: Monroe Williams <[email protected]> Co-authored-by: Mark Lavercombe <[email protected]> Co-authored-by: jeffa-block <[email protected]> Co-authored-by: xilema2 <[email protected]> Co-authored-by: Yufeng He <[email protected]> Co-authored-by: jlmalone <[email protected]> Co-authored-by: Trang Le <[email protected]> Co-authored-by: Yi Liu <[email protected]> Co-authored-by: Simon Ho <[email protected]> Co-authored-by: nuthalapativarun <[email protected]> Co-authored-by: bdeenyy <[email protected]> Co-authored-by: Denis <[email protected]> Co-authored-by: Cursor <[email protected]> Co-authored-by: Lance Colton <[email protected]> Co-authored-by: BestCodes <[email protected]> Co-authored-by: Chih-Tao Lee <[email protected]> Co-authored-by: Jeremy Dawes <[email protected]> Co-authored-by: Sanidhya Singh <[email protected]> Co-authored-by: John Matthew Tennant <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> Co-authored-by: Douwe Osinga <[email protected]> Co-authored-by: Lifei Zhou <[email protected]> Co-authored-by: Koen van de Glind <[email protected]> Co-authored-by: McGluut <[email protected]> Co-authored-by: Dmitry Beskov <[email protected]> Co-authored-by: Steve Beaulac <[email protected]> Co-authored-by: yibo365 <[email protected]> Co-authored-by: filip <[email protected]> Co-authored-by: Jack Amadeo <[email protected]> Co-authored-by: qybaihe <[email protected]> Co-authored-by: Hammad Khan <[email protected]> Co-authored-by: Michael Neale <[email protected]> Co-authored-by: Kyle E DeFreitas <[email protected]> Co-authored-by: Roman Ponomarev <[email protected]> Co-authored-by: jh-block <[email protected]> Co-authored-by: Adam Dalloul <[email protected]> Co-authored-by: Thump604 <[email protected]> Co-authored-by: Jose Manuel Perez <[email protected]> Co-authored-by: Seydi Charyyev <[email protected]> Co-authored-by: Angie Jones <[email protected]> Co-authored-by: Hosoeng Lee <[email protected]> Co-authored-by: lhs <[email protected]> Co-authored-by: Hugues Clouâtre <[email protected]> Co-authored-by: San Clemente <[email protected]> Co-authored-by: Nicholas-Westby <[email protected]> Co-authored-by: Abhijay Jain <[email protected]> Co-authored-by: Crazyop757 <[email protected]> Co-authored-by: Jude Edwards <[email protected]> Co-authored-by: Rain <[email protected]> Co-authored-by: Pluviobyte <[email protected]> Co-authored-by: goose <[email protected]> Co-authored-by: Jude Edwards <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Max Novich <[email protected]> Co-authored-by: Vincenzo Palazzo <[email protected]> Co-authored-by: goose <[email protected]> Co-authored-by: Theofanis Petkos <[email protected]> Co-authored-by: SynthLuvr <[email protected]> Co-authored-by: Bradley Axen <[email protected]> Co-authored-by: Alex Hancock <[email protected]> Co-authored-by: 石岳峰 <[email protected]> Co-authored-by: Yixuan Zhong <[email protected]> Co-authored-by: Yixuan Zhong <[email protected]> Co-authored-by: Adam Miller <[email protected]> Co-authored-by: Ken Jo <[email protected]> Co-authored-by: lunchboxfortwo <[email protected]> Co-authored-by: Goose <[email protected]> Co-authored-by: vvaswani <[email protected]> Co-authored-by: dorien-koelemeijer <[email protected]> Co-authored-by: Jack Amadeo <[email protected]> Co-authored-by: Lucas Alvares Gomes <[email protected]> Co-authored-by: Rodolfo Olivieri <[email protected]> Co-authored-by: Leo Walker <[email protected]> Co-authored-by: Max Novich <[email protected]> Co-authored-by: Harnoor Singh <[email protected]> Co-authored-by: FenjuFu <[email protected]> Co-authored-by: Sunil Kumar <[email protected]> Co-authored-by: Lucas Kim <[email protected]> Co-authored-by: Osraka <[email protected]> Co-authored-by: yyy33 <[email protected]> Co-authored-by: Gellért Stadler <[email protected]>
What
Adds two declarative OpenAI-compatible providers for iFlytek:
iflytek.json) — 讯飞星火 via the Spark HTTP API(
https://spark-api-open.xf-yun.com/v1). Ships4.0Ultra,generalv3.5,max-32k,generalv3,pro-128kandlite. Auth uses the Spark HTTP APIpassword (
SPARK_API_PASSWORD).iflytek_astron.json) — 讯飞星辰 MaaS. Defaults to theToken Plan endpoint (
https://maas-token-api.cn-huabei-1.xf-yun.com/v2) andexposes
ASTRON_BASE_URLso users can switch to the Coding Plan(
https://maas-coding-api.cn-huabei-1.xf-yun.com/v2, e.g.astron-code-latest).Ships Spark X2, DeepSeek, GLM, Kimi, MiniMax, Qwen and the Astron coding model.
Auth uses
ASTRON_API_KEY.Both follow the existing declarative-provider pattern (cf.
zhipu.json,moonshot.json,alibaba.json).Why
iFlytek Spark and Astron MaaS are widely used in China and both expose
OpenAI-compatible endpoints, so shipping them as built-in declarative providers
lets users select them directly from the provider list instead of hand-rolling a
custom provider.
Notes
base_urluses only the/vNpath segment;derive_base_pathresolves it to…/vN/chat/completions, which both endpoints expect.skip_canonical_filtering: trueis set because the model ids areprovider-specific (
4.0Ultra,xsparkx2, …) and are not in the canonicalcatalog; without it the inventory filter would drop every model. Each model
ships an explicit
context_limitinstead.dynamic_models: falsekeeps the static lists authoritative and avoids aruntime dependency on a
/modelsendpoint.Testing
test_iflytek_json_deserializesandtest_iflytek_astron_json_deserializesalongside the existing per-provider deserialization tests.
References