ace-llm 0.32.1 → 0.38.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.
- checksums.yaml +4 -4
- data/.ace-defaults/llm/config.yml +1 -1
- data/.ace-defaults/llm/providers/anthropic.yml +29 -14
- data/.ace-defaults/llm/providers/google.yml +28 -14
- data/.ace-defaults/llm/providers/groq.yml +60 -5
- data/.ace-defaults/llm/providers/lmstudio.yml +1 -1
- data/.ace-defaults/llm/providers/mistral.yml +45 -14
- data/.ace-defaults/llm/providers/openai.yml +46 -14
- data/.ace-defaults/llm/providers/openrouter.yml +229 -32
- data/.ace-defaults/llm/providers/togetherai.yml +43 -10
- data/.ace-defaults/llm/providers/xai.yml +21 -8
- data/.ace-defaults/llm/providers/zai.yml +17 -6
- data/CHANGELOG.md +148 -0
- data/README.md +19 -2
- data/exe/ace-llm +2 -1
- data/handbook/guides/llm-query-tool-reference.g.md +78 -626
- data/lib/ace/llm/atoms/provider_config_validator.rb +53 -0
- data/lib/ace/llm/cli/commands/query.rb +56 -7
- data/lib/ace/llm/molecules/client_registry.rb +2 -1
- data/lib/ace/llm/molecules/fallback_orchestrator.rb +14 -8
- data/lib/ace/llm/molecules/interactive_command_builder.rb +64 -0
- data/lib/ace/llm/molecules/model_limit_resolver.rb +88 -0
- data/lib/ace/llm/molecules/role_resolver.rb +0 -1
- data/lib/ace/llm/query_interface.rb +106 -33
- data/lib/ace/llm/version.rb +1 -1
- data/lib/ace/llm.rb +2 -0
- metadata +18 -2
|
@@ -1,26 +1,59 @@
|
|
|
1
1
|
name: togetherai
|
|
2
|
-
last_synced:
|
|
2
|
+
last_synced: 2026-04-24
|
|
3
3
|
class: Ace::LLM::Organisms::TogetherAIClient
|
|
4
4
|
gem: ace-llm
|
|
5
|
-
context_limit: 128000 # Default context limit; varies by model
|
|
6
5
|
models:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
- MiniMaxAI/MiniMax-M2.5
|
|
7
|
+
- MiniMaxAI/MiniMax-M2.7
|
|
8
|
+
- Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8
|
|
9
|
+
- Qwen/Qwen3-Coder-Next-FP8
|
|
10
|
+
- Qwen/Qwen3.5-397B-A17B
|
|
11
|
+
- essentialai/Rnj-1-Instruct
|
|
12
|
+
- google/gemma-4-31B-it
|
|
13
|
+
- moonshotai/Kimi-K2.5
|
|
14
|
+
- moonshotai/Kimi-K2.6
|
|
15
|
+
- openai/gpt-oss-120b
|
|
16
|
+
- zai-org/GLM-5.1
|
|
17
|
+
limits:
|
|
18
|
+
default:
|
|
19
|
+
context: 262144
|
|
20
|
+
output: 262144
|
|
21
|
+
models:
|
|
22
|
+
MiniMaxAI/MiniMax-M2.5:
|
|
23
|
+
context: 204800
|
|
24
|
+
output: 131072
|
|
25
|
+
MiniMaxAI/MiniMax-M2.7:
|
|
26
|
+
context: 202752
|
|
27
|
+
output: 131072
|
|
28
|
+
Qwen/Qwen3.5-397B-A17B:
|
|
29
|
+
output: 130000
|
|
30
|
+
essentialai/Rnj-1-Instruct:
|
|
31
|
+
context: 32768
|
|
32
|
+
output: 32768
|
|
33
|
+
google/gemma-4-31B-it:
|
|
34
|
+
output: 131072
|
|
35
|
+
moonshotai/Kimi-K2.6:
|
|
36
|
+
output: 131000
|
|
37
|
+
openai/gpt-oss-120b:
|
|
38
|
+
context: 131072
|
|
39
|
+
output: 131072
|
|
40
|
+
zai-org/GLM-5.1:
|
|
41
|
+
context: 202752
|
|
42
|
+
output: 131072
|
|
11
43
|
aliases:
|
|
12
44
|
model:
|
|
13
|
-
qwen: Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8
|
|
14
|
-
deepseek: deepseek-ai/DeepSeek-V3
|
|
45
|
+
qwen-coder: Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8
|
|
46
|
+
deepseek: deepseek-ai/DeepSeek-V3.1
|
|
15
47
|
kimi: moonshotai/Kimi-K2-Instruct
|
|
48
|
+
kimi-T: moonshotai/Kimi-K2-Thinking
|
|
16
49
|
oss: openai/gpt-oss-120b
|
|
17
50
|
api_key:
|
|
18
51
|
env: TOGETHER_API_KEY
|
|
19
52
|
required: true
|
|
20
53
|
description: Together AI API key
|
|
21
54
|
capabilities:
|
|
22
|
-
|
|
23
|
-
|
|
55
|
+
- text_generation
|
|
56
|
+
- streaming
|
|
24
57
|
default_options:
|
|
25
58
|
temperature: 0.7
|
|
26
59
|
max_tokens: 16384
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
name: xai
|
|
2
|
-
last_synced:
|
|
2
|
+
last_synced: 2026-04-24
|
|
3
3
|
class: Ace::LLM::Organisms::XAIClient
|
|
4
4
|
gem: ace-llm
|
|
5
|
-
context_limit: 131072 # Grok models have 131K context window
|
|
6
5
|
models:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
- grok-4
|
|
7
|
+
- grok-4-1-fast
|
|
8
|
+
- grok-4-1-fast-non-reasoning
|
|
9
|
+
- grok-4-fast-non-reasoning
|
|
10
|
+
- grok-4.20-0309-non-reasoning
|
|
11
|
+
- grok-4.20-0309-reasoning
|
|
12
|
+
- grok-4.20-multi-agent-0309
|
|
13
|
+
- grok-code-fast-1
|
|
14
|
+
limits:
|
|
15
|
+
default:
|
|
16
|
+
context: 2000000
|
|
17
|
+
output: 30000
|
|
18
|
+
models:
|
|
19
|
+
grok-4:
|
|
20
|
+
context: 256000
|
|
21
|
+
output: 64000
|
|
22
|
+
grok-code-fast-1:
|
|
23
|
+
context: 256000
|
|
24
|
+
output: 10000
|
|
12
25
|
aliases:
|
|
13
26
|
global:
|
|
14
27
|
grok: xai:grok-4
|
|
@@ -24,7 +37,7 @@ api_key:
|
|
|
24
37
|
required: true
|
|
25
38
|
description: x.ai API key
|
|
26
39
|
capabilities:
|
|
27
|
-
|
|
40
|
+
- text_generation
|
|
28
41
|
default_options:
|
|
29
42
|
temperature: 0.7
|
|
30
43
|
max_tokens: 16384
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
name: zai
|
|
2
|
-
last_synced: 2026-
|
|
2
|
+
last_synced: 2026-04-24
|
|
3
3
|
class: Ace::LLM::Organisms::ZaiClient
|
|
4
4
|
gem: ace-llm
|
|
5
|
-
context_limit: 128000
|
|
6
5
|
models:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
- glm-4.7
|
|
7
|
+
- glm-4.7-flashx
|
|
8
|
+
- glm-5
|
|
9
|
+
- glm-5-turbo
|
|
10
|
+
- glm-5.1
|
|
11
|
+
- glm-5v-turbo
|
|
12
|
+
limits:
|
|
13
|
+
default:
|
|
14
|
+
context: 200000
|
|
15
|
+
output: 131072
|
|
16
|
+
models:
|
|
17
|
+
glm-4.7:
|
|
18
|
+
context: 204800
|
|
19
|
+
glm-5:
|
|
20
|
+
context: 204800
|
|
10
21
|
api_key:
|
|
11
22
|
env: ZAI_API_KEY
|
|
12
23
|
required: true
|
|
13
24
|
description: Z.AI API key
|
|
14
25
|
capabilities:
|
|
15
|
-
|
|
26
|
+
- text_generation
|
|
16
27
|
default_options:
|
|
17
28
|
temperature: 0.7
|
|
18
29
|
max_tokens: 16384
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,154 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
|
+
### Fixed
|
|
10
|
+
- Stubbed the Z.ai endpoint in query command CLI-routing tests so provider fallback no longer triggers blocked real HTTP calls during deterministic suite runs.
|
|
11
|
+
|
|
12
|
+
## [0.38.2] - 2026-04-24
|
|
13
|
+
|
|
14
|
+
### Technical
|
|
15
|
+
- Tightened `TS-LLM-002` verification so `ace-llm --list-providers` remains a discovery-only public-surface check instead of implying provider readiness.
|
|
16
|
+
|
|
17
|
+
## [0.38.1] - 2026-04-24
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- Clarified provider-listing documentation so `ace-llm --list-providers` is described as discovery plus setup hints, with setup readiness delegated to `ace-config doctor`.
|
|
21
|
+
|
|
22
|
+
## [0.38.0] - 2026-04-24
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- Added shared resolved-model limit lookup so alias, role, and preset-expanded concrete provider/model targets can read merged context and output limits from provider config.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- Updated provider config validation and downstream callers to use the new `limits` schema and the expanded concrete model target instead of provider-wide limit assumptions.
|
|
29
|
+
|
|
30
|
+
## [0.37.1] - 2026-04-23
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- Added concurrent provider ping support in query execution and refreshed fallback orchestration behavior used by provider-driven query flows.
|
|
35
|
+
- Updated provider ping coverage so live query failures no longer block local diagnostics and stale fallback assumptions are exercised more explicitly.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## [0.37.0] - 2026-04-23
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- Added `ace-llm --no-fallback` so callers can run ordinary prompts such as `ping` against the exact requested provider/model without fallback routing.
|
|
42
|
+
|
|
43
|
+
## [0.36.5] - 2026-04-22
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
- Stabilized deterministic verification by stubbing CLI query routing away from provider fallback HTTP calls and removing retry sleep from the provider/model fallback test.
|
|
47
|
+
|
|
48
|
+
## [0.36.4] - 2026-04-22
|
|
49
|
+
|
|
50
|
+
### Technical
|
|
51
|
+
- Added regression coverage to keep fresh `commit` role defaults from reintroducing stale `codex:gpt-5-mini` mappings while preserving `codex:mini` fallback behavior.
|
|
52
|
+
|
|
53
|
+
## [0.36.3] - 2026-04-19
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
- Fixed `ace-llm --interactive` startup for Codex aliases so the `/as-onboard` and related interactive alias prompts are launched with a valid subprocess command shape instead of aborting with a missing keyword.
|
|
57
|
+
|
|
58
|
+
## [0.36.2] - 2026-04-19
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
- Refreshed Codex model examples in README, usage, getting-started, demo, and help output from stale `codex:gpt-5` forms to the current stable `codex:gpt` alias and updated current provider alias guidance.
|
|
62
|
+
|
|
63
|
+
## [0.36.1] - 2026-04-16
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
- Switched the fresh-default `commit` role to prefer `google:lite` before CLI fallbacks so new `ace-config init` projects keep generated commit messages working when stale CLI aliases or unavailable local CLIs would otherwise break message generation.
|
|
67
|
+
|
|
68
|
+
## [0.36.0] - 2026-04-15
|
|
69
|
+
|
|
70
|
+
### Changed
|
|
71
|
+
- Reworked `TS-LLM-001` to public-surface goal style by tightening model-routing evidence checks, adding `TC-003` output-file-contract coverage, and prioritizing end-state/output artifacts over helper-only signals.
|
|
72
|
+
- Added `TS-LLM-002` provider-discovery coverage for `ace-llm --list-providers` so public setup-hint and provider-list output behavior is verified as a first-class E2E journey.
|
|
73
|
+
|
|
74
|
+
### Technical
|
|
75
|
+
- Updated runtime dependency constraint to `ace-support-models ~> 0.11` after the coordinated support-models minor release.
|
|
76
|
+
|
|
77
|
+
## [0.35.1] - 2026-04-15
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- Updated the `cli_args` threading feature tests to match the normalized array contract and stub provider preset loading directly, so `ace-test ace-llm` no longer fails on stale scalar expectations or package-local preset lookup assumptions.
|
|
81
|
+
|
|
82
|
+
## [0.35.0] - 2026-04-15
|
|
83
|
+
|
|
84
|
+
### Fixed
|
|
85
|
+
- Merged preset CLI args with explicit `--cli-args` so interactive launches keep provider autonomy presets such as `@yolo` while still accepting additional flags like `--no-alt-screen`.
|
|
86
|
+
|
|
87
|
+
### Technical
|
|
88
|
+
- Threaded the current working directory and subprocess environment explicitly through `ace-llm --interactive` so provider-side startup policy hooks can make launch decisions from the real execution context.
|
|
89
|
+
|
|
90
|
+
## [0.34.0] - 2026-04-15
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- Added `ace-llm --interactive` for supported CLI-backed providers so alias resolution, presets, thinking levels, and canonical skill handoff translation can launch the provider's native interactive terminal UI in one call.
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
- Documented interactive launch usage in the README, getting-started guide, and usage guide, including the tmux fork handoff pattern built around `/as-assign-drive <assignment>@<root>`.
|
|
97
|
+
|
|
98
|
+
## [0.33.6] - 2026-04-13
|
|
99
|
+
|
|
100
|
+
### Fixed
|
|
101
|
+
- Switched `TS-LLM-001` basic-query coverage to the explicit `--prompt` form so the scenario executes with canonical prompt input and no longer misclassifies dropped positional input as provider behavior.
|
|
102
|
+
|
|
103
|
+
## [0.33.5] - 2026-04-13
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
- Hardened `TS-LLM-001` basic-query execution by persisting the exact prompt and command artifacts so empty-input/provider-contract failures are distinguished from valid model responses.
|
|
107
|
+
|
|
108
|
+
## [0.33.4] - 2026-04-13
|
|
109
|
+
|
|
110
|
+
### Fixed
|
|
111
|
+
- Added the missing `ace-support-models` runtime dependency so `ace-llm --list-providers` no longer fails on fresh setups with `cannot load such file -- ace/support/models`.
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
- Updated quick-start onboarding guidance to include `ace-llm` in the base install command used before provider verification.
|
|
115
|
+
|
|
116
|
+
## [0.33.3] - 2026-04-13
|
|
117
|
+
|
|
118
|
+
### Fixed
|
|
119
|
+
- Added `codex:mini` as a fallback model for the `commit` role after `glite`, so role-based commit-message generation tries a secondary model instead of failing when `glite` is unavailable.
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Technical
|
|
123
|
+
- Tightened the package version contract test to require a full semantic-version match instead of accepting partial matches.
|
|
124
|
+
## [0.33.2] - 2026-04-13
|
|
125
|
+
|
|
126
|
+
### Fixed
|
|
127
|
+
- Fixed provider credential availability checks so role-based model selection no longer crashes when a provider relies on fallback environment keys.
|
|
128
|
+
|
|
129
|
+
### Technical
|
|
130
|
+
- Added regression coverage for `ClientRegistry#provider_api_key_present?` using Google fallback API key resolution.
|
|
131
|
+
|
|
132
|
+
## [0.33.1] - 2026-04-13
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
- Completed the batch i05 migration follow-through for this package and aligned it with the restarted `fast` / `feat` / `e2e` verification model.
|
|
136
|
+
|
|
137
|
+
### Technical
|
|
138
|
+
- Included in the coordinated assignment-driven patch release for batch i05 package updates.
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
## [0.33.0] - 2026-04-12
|
|
142
|
+
|
|
143
|
+
### Changed
|
|
144
|
+
- Migrated package tests to the restarted `fast` / `feat` / `e2e` contract:
|
|
145
|
+
- moved deterministic test suites from legacy top-level folders into `test/fast/`
|
|
146
|
+
- moved legacy `test/integration/` coverage into `test/feat/`
|
|
147
|
+
- reduced `TS-LLM-001` E2E scenario from 3 to 2 TCs and added an E2E decision record
|
|
148
|
+
- Updated README and package docs to teach only `ace-test ace-llm`, `ace-test ace-llm feat`, `ace-test ace-llm all`, and `ace-test-e2e ace-llm`.
|
|
149
|
+
|
|
150
|
+
### Fixed
|
|
151
|
+
- Preserved full fallback target selectors (including provider/model + suffix context) across fallback attempts and rebuilt generation options per target instead of reusing stale primary-provider options.
|
|
152
|
+
|
|
153
|
+
## [0.32.2] - 2026-04-10
|
|
154
|
+
|
|
155
|
+
### Changed
|
|
156
|
+
- Updated the shared role catalog for restarted E2E execution with explicit `e2e-runner`, `e2e-verifier`, and `e2e-reporter` roles in the project-owned LLM configuration surface.
|
|
9
157
|
|
|
10
158
|
## [0.32.1] - 2026-04-01
|
|
11
159
|
|
data/README.md
CHANGED
|
@@ -18,7 +18,20 @@
|
|
|
18
18
|
|
|
19
19
|

|
|
20
20
|
|
|
21
|
-
`ace-llm` gives developers and coding agents one command surface for querying any LLM provider. Address models by alias (`gflash`, `sonnet`), explicit `provider:model` notation, or with thinking levels (`codex:gpt
|
|
21
|
+
`ace-llm` gives developers and coding agents one command surface for querying any LLM provider. Address models by alias (`gflash`, `sonnet`), explicit `provider:model` notation, or with thinking levels (`codex:gpt:high`) and execution presets (`cc@ro`). Pass prompts and system instructions inline or as file paths, or start supported CLI providers in native interactive mode with `--interactive`. Fallback routing and retry behavior keep prompt workflows resilient.
|
|
22
|
+
|
|
23
|
+
## Testing
|
|
24
|
+
|
|
25
|
+
Package-local verification contract:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
ace-test ace-llm
|
|
29
|
+
ace-test ace-llm feat
|
|
30
|
+
ace-test ace-llm all
|
|
31
|
+
ace-test-e2e ace-llm
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Deterministic coverage lives in `test/fast/` and `test/feat/`. Scenario assets stay in `test/e2e/`.
|
|
22
35
|
|
|
23
36
|
## How It Works
|
|
24
37
|
|
|
@@ -30,12 +43,16 @@
|
|
|
30
43
|
|
|
31
44
|
**Switch providers with aliases** - use short names like `gflash`, `sonnet`, `opus` instead of full `provider:model` notation. Aliases resolve through versioned YAML in [`.ace-defaults/`](docs/usage.md).
|
|
32
45
|
|
|
33
|
-
**Control reasoning depth** - append a thinking level (`codex:gpt
|
|
46
|
+
**Control reasoning depth** - append a thinking level (`codex:gpt:high`, `claude:sonnet:low`) to tune reasoning budgets. Supported CLI providers: `claude`, `codex` (levels: `low`, `medium`, `high`, `xhigh`).
|
|
34
47
|
|
|
35
48
|
**Run preset-driven prompts** - apply execution profiles with `@preset` or `--preset`. Built-in presets for CLI providers: `@ro` (read-only), `@rw` (read-write), `@yolo` (full autonomy). Supported by: `claude`, `codex`, `gemini`, `opencode`, `pi`.
|
|
36
49
|
|
|
50
|
+
**Launch real interactive agents** - use `--interactive` for supported CLI providers so alias resolution, presets, and skill translation still flow through `ace-llm`, but the provider starts its native terminal UI instead of one-shot print mode.
|
|
51
|
+
|
|
37
52
|
**Build resilient prompt workflows** - configure fallback chains and retry behavior through the [config cascade](.ace-defaults/llm/config.yml) so transient provider issues do not block work.
|
|
38
53
|
|
|
54
|
+
**Check exact provider reachability** - use `ace-llm gemini:pro "ping" --no-fallback --timeout 15 --max-tokens 4` to verify the requested provider/model without fallback routing.
|
|
55
|
+
|
|
39
56
|
**Power LLM-enhanced flows in sibling packages** - serve as the execution backend for [ace-git-commit](../ace-git-commit), [ace-idea](../ace-idea), [ace-review](../ace-review), [ace-sim](../ace-sim), [ace-prompt-prep](../ace-prompt-prep), and more.
|
|
40
57
|
|
|
41
58
|
---
|
data/exe/ace-llm
CHANGED
|
@@ -18,7 +18,8 @@ args = ARGV.empty? ? ["--help"] : ARGV
|
|
|
18
18
|
|
|
19
19
|
# Start ace-support-cli single-command entrypoint with exception-based exit code handling (per ADR-023)
|
|
20
20
|
begin
|
|
21
|
-
Ace::Support::Cli::Runner.new(Ace::LLM::CLI::Commands::Query).call(args: args)
|
|
21
|
+
exit_code = Ace::Support::Cli::Runner.new(Ace::LLM::CLI::Commands::Query).call(args: args)
|
|
22
|
+
exit(exit_code) if exit_code.to_i.positive?
|
|
22
23
|
rescue Ace::Support::Cli::Error => e
|
|
23
24
|
warn e.message
|
|
24
25
|
exit(e.exit_code)
|