omnius 1.0.848 → 1.0.849
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.
- package/dist/index.js +2 -2
- package/dist/library.js +2006 -1164
- package/docs/DISCOVERY.json +533 -0
- package/docs/DISCOVERY.md +15 -0
- package/docs/inference-fallback-priority.md +91 -0
- package/docs/opencode-free-model-discovery.md +9 -1
- package/docs/work-orders/WO-fallback-quality-order-20261012.md +70 -0
- package/docs/work-orders/WO-fallback-reply-contracts-20261012.md +116 -0
- package/docs/work-orders/WO-opencode-all-free-models-20261012.md +88 -0
- package/docs/work-orders/WO-telegram-progress-presentation-20261012.md +28 -0
- package/docs/work-orders/evidence/fallback-model-benchmarks-20261012.json +1823 -0
- package/docs/work-orders/evidence/fallback-quality-installed-20261012.json +626 -0
- package/docs/work-orders/evidence/fallback-reply-contracts-installed-20261012.json +577 -0
- package/docs/work-orders/evidence/native-conversation-prompt-audit-20261012.json +226 -0
- package/docs/work-orders/evidence/native-goal-contract-probe-20261012.json +794 -0
- package/docs/work-orders/evidence/opencode-all-free-audit-20261012.json +1489 -0
- package/docs/work-orders/evidence/opencode-all-free-installed-verification-20261012.json +437 -0
- package/docs/work-orders/evidence/terminal-review-contract-probe-20261012.json +335 -0
- package/docs/work-orders/evidence/terminal-review-error-probe-20261012.json +149 -0
- package/docs/work-orders/evidence/terminal-review-schema-repair-probe-20261012.json +920 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Inference fallback priority
|
|
2
|
+
|
|
3
|
+
Local inference remains first. After a qualifying local failure and any required
|
|
4
|
+
manual approval, the remote cascade uses these stages:
|
|
5
|
+
|
|
6
|
+
1. Every eligible OpenCode free model, in benchmark-informed order.
|
|
7
|
+
2. Every eligible Hermes model, as explicitly requested by the operator.
|
|
8
|
+
3. Remaining keyless routes merged by model quality across providers.
|
|
9
|
+
4. Explicitly configured keyed providers, in their configured order.
|
|
10
|
+
|
|
11
|
+
An explicit `keyless: false` policy retains configured-only behavior. The
|
|
12
|
+
OpenCode and Hermes stages are discovered lazily: successful OpenCode inference
|
|
13
|
+
does not fetch lower provider catalogs. All stages retain the existing deadline,
|
|
14
|
+
capability, context, cost, cooldown, ownership and cancellation checks. Models
|
|
15
|
+
cooling after HTTP 429 do not hold up ready alternatives. Ready retries retain
|
|
16
|
+
the original cascade priority rather than simply favoring an earlier expiry.
|
|
17
|
+
|
|
18
|
+
## Benchmark basis
|
|
19
|
+
|
|
20
|
+
The host-owned table in
|
|
21
|
+
`packages/orchestrator/src/inference-fallback-priority.ts` uses non-estimated
|
|
22
|
+
Artificial Analysis Intelligence Index **v4.3.2**, observed 2026-10-12. The same
|
|
23
|
+
revision includes agentic workflow, terminal, coding, knowledge and long-context
|
|
24
|
+
evaluations. Scores from older index revisions are not mixed into this order.
|
|
25
|
+
|
|
26
|
+
| OpenCode model | Published index | Evaluated setting |
|
|
27
|
+
| --- | ---: | --- |
|
|
28
|
+
| [Muse Spark 1.3](https://artificialanalysis.ai/models/muse-spark-1-3) | 48.09 | Max; Xhigh separately scores 45.07 |
|
|
29
|
+
| [Step 5 Preview](https://artificialanalysis.ai/models/step-5) | 43.73 | Reasoning |
|
|
30
|
+
| [Ling 3.1 Flash](https://artificialanalysis.ai/models/ling-3-1-flash) | 41.09 | Reasoning |
|
|
31
|
+
| [MiMo V2.6 Flash](https://artificialanalysis.ai/models/mimo-v2-6-flash) | 37.88 | Reasoning |
|
|
32
|
+
| [Nemotron 3.5 Lightning](https://artificialanalysis.ai/models/nemotron-3-5-lightning) | 12.86 | Reasoning |
|
|
33
|
+
|
|
34
|
+
These are published measurements of the named models, not benchmarks of the
|
|
35
|
+
anonymous endpoints. Gateway effort, precision and checkpoint equivalence have
|
|
36
|
+
not been established. The runtime uses each named model's highest published
|
|
37
|
+
non-estimated variant as a preference for model potential; this does not change
|
|
38
|
+
the caller's thinking policy or silently request maximum reasoning effort.
|
|
39
|
+
|
|
40
|
+
Official coding results provide separate cross-checks: Muse 1.3 Max reports
|
|
41
|
+
75.4% DeepSWE v1.1 and 88.8% Terminal-Bench 2.1; Step 5 High reports 67.7% and
|
|
42
|
+
85.0%; MiMo Flash-RL reports 67.9% and 87.6%. Different harnesses and settings
|
|
43
|
+
prevent treating those figures as an exact cross-model league table.
|
|
44
|
+
[Meta](https://dev.meta.ai/models/muse-spark),
|
|
45
|
+
[StepFun](https://www.stepfun.com/step-5-preview),
|
|
46
|
+
[Xiaomi](https://huggingface.co/XiaomiMiMo/MiMo-V2.6-Flash-RL).
|
|
47
|
+
|
|
48
|
+
## Unranked models and dynamic discovery
|
|
49
|
+
|
|
50
|
+
Space Bunny and Big Pickle are undisclosed or rolling aliases. LongCat 2.5 has
|
|
51
|
+
no exact comparable published result in the bounded search. They remain
|
|
52
|
+
eligible after models with comparable measured results; this placement expresses
|
|
53
|
+
evidence confidence, not proof that they are weaker. Small original experiments
|
|
54
|
+
on Big Pickle and Space Bunny use different subsets and are recorded separately,
|
|
55
|
+
without converting them into an invented AA score. New free models remain
|
|
56
|
+
automatically discovered within the existing catalog bounds.
|
|
57
|
+
|
|
58
|
+
For unmeasured models, declared tool/schema support and usable context/output
|
|
59
|
+
headroom provide deterministic operational tie-breaks, followed by the host
|
|
60
|
+
preferred identity and stable model ID. These fields do not measure intelligence.
|
|
61
|
+
An opaque selector remains unranked; known measured concrete models precede it.
|
|
62
|
+
For a wholly unmeasured compatible pool, its existing automatic selector remains
|
|
63
|
+
available before concrete alternatives, without borrowing their token limits.
|
|
64
|
+
|
|
65
|
+
The [research receipt](work-orders/evidence/fallback-model-benchmarks-20261012.json)
|
|
66
|
+
maps 44 advertised candidate identities across OpenCode, Hermes, Kilo, LLM7, OVH
|
|
67
|
+
and ch.at, with exact-version/mode alternatives and exclusions. Only measured
|
|
68
|
+
matching identities enter the runtime table. Estimated-only scores, older
|
|
69
|
+
LongCat/Mistral versions, and base-model scores for the quantized Hermes
|
|
70
|
+
derivative do not become fabricated endpoint measurements.
|
|
71
|
+
|
|
72
|
+
Published quality never establishes free access. In particular, current LLM7
|
|
73
|
+
concrete rows advertise positive prices and its homepage describes free-token
|
|
74
|
+
access; these facts do not confer anonymous tool/schema authority. The existing
|
|
75
|
+
pricing and authentication filters remain in force.
|
|
76
|
+
|
|
77
|
+
## Compatibility and verification
|
|
78
|
+
|
|
79
|
+
Before dispatch, exact native tools, structured output and full request token
|
|
80
|
+
budgets still determine eligibility. Ling's explicit schema-support rejection
|
|
81
|
+
excludes it from schema-bearing turns. Muse retains its Responses transport.
|
|
82
|
+
Learned native grammar restrictions are isolated by endpoint/model/API, and the
|
|
83
|
+
complete original host schema remains authoritative. Successful output ends
|
|
84
|
+
the cascade; no replay occurs after visible ordinary output or tool fragments.
|
|
85
|
+
|
|
86
|
+
Source regressions cover full 512-model OpenCode traversal before Hermes,
|
|
87
|
+
unknown-model discovery, published-score ordering, cross-provider quality merge,
|
|
88
|
+
configured-only/tail behavior, cooldown recovery, ready retry priority and
|
|
89
|
+
unchanged tool/schema/Stop contracts. The packaged backend verifier repeats the
|
|
90
|
+
ordering and schema repair through synthetic HTTP with no real inference or
|
|
91
|
+
Telegram messages.
|
|
@@ -8,12 +8,20 @@ Source revision: [`anomalyco/opencode@15b24ae12ddb8b7ae3e923b286b4032761bee510`]
|
|
|
8
8
|
- [`packages/core/src/plugin/models-dev.ts`](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/plugin/models-dev.ts) excludes deprecated models and models without text support.
|
|
9
9
|
- [`packages/core/src/plugin/provider/opencode.ts`](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/plugin/provider/opencode.ts) enables anonymous access using the public sentinel `public` and disables models with positive input costs when no real key is configured.
|
|
10
10
|
|
|
11
|
-
Omnius requires explicit zero input and output costs, including any advertised context tiers and cache prices. It pins the provider and endpoint, accepts
|
|
11
|
+
Omnius requires explicit zero input and output costs, including any advertised context tiers and cache prices. It pins the provider and endpoint, accepts the OpenAI-compatible chat transport and the per-model `@ai-sdk/openai` Responses transport, excludes foreign endpoints and unsupported protocols, and preserves documented tool, schema and token-limit metadata. Missing schema support remains unknown. The returned `admission: "catalog_only"` records that metadata alone establishes no route availability. Responses models use the dedicated adapter at the same pinned `/inference/v1/responses` endpoint.
|
|
12
12
|
|
|
13
13
|
The catalog lists paid models too. The inference `/v1/models` response supplies IDs without cost or capability metadata and cannot establish free eligibility. Free suffixes are insufficient: Big Pickle has zero costs without that suffix, and old free rows can remain deprecated or unavailable.
|
|
14
14
|
|
|
15
15
|
An optional intersection with `https://opencode.ai/inference/v1/models` removes free metadata rows that the gateway no longer lists. This unauthenticated endpoint returned 83 IDs on 2026-10-12; `exo-free`, `ling-3.0-flash-fin-free` and `nemotron-3-ultra-free` were absent. These observations are not hardcoded exclusions. A valid empty list excludes all models; missing, malformed or oversized discovery preserves the canonical zero-cost metadata instead of treating a discovery outage as an authoritative empty provider. ID-only rows can never add a model or supply price, tools, schema or context metadata.
|
|
16
16
|
|
|
17
|
+
The [complete free-model follow-up](work-orders/WO-opencode-all-free-models-20261012.md)
|
|
18
|
+
removes the previous 16-model cascade cutoff: all eligible OpenCode models within
|
|
19
|
+
the shared 512-row catalog bound are queued. The subsequent
|
|
20
|
+
[benchmark-informed priority](inference-fallback-priority.md) exhausts eligible
|
|
21
|
+
OpenCode models before Hermes and other providers. The current audit found seven live free chat models plus
|
|
22
|
+
`muse-spark-1.3-contributor-free`, whose `@ai-sdk/openai` declaration selects
|
|
23
|
+
Responses. The ordinary chat adapter must never substitute for that transport.
|
|
24
|
+
|
|
17
25
|
On 2026-10-12, synthetic tool-less Nemotron requests returned HTTP 403 `FreeTierError`, including probes using the public sentinel, current upstream headers and legacy `/zen/v1/chat/completions` endpoint. Within the user's explicitly authorized partner compatibility scope, a subsequent source-derived native-shaped request succeeded at `https://opencode.ai/inference/v1/chat/completions`: HTTP 200 SSE, visible answer `OK`, normal `stop` and `[DONE]`, in 1.044 seconds. It used `opencode/latest/2.0.27/cli`, client `cli`, transparent `x-omnius-client: omnius/1.0.847`, fresh source-format session/message IDs, the current system prefix, genuine read/shell definitions, automatic tool selection and streaming. No tool executed. This demonstrates native-agent availability for that request; it does not identify which shape differences the server requires or establish all models and modes.
|
|
18
26
|
|
|
19
27
|
Two further synthetic streamed probes also returned HTTP 200 with normal terminal receipts. The same compatibility definitions with `tool_choice: "none"` and a strict JSON schema produced exactly `{"value":"ok"}` without tool calls in 4.120 seconds. A forced custom `omnius_probe` tool alongside those definitions returned that custom call with the expected arguments in 0.946 seconds. These establish those request shapes for Nemotron, without executing any tool or sending private context. They do not imply every catalog model supports them.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Benchmark-informed fallback cascade
|
|
2
|
+
|
|
3
|
+
Status: implemented and verified. Publication and active runtime replacement
|
|
4
|
+
remain with the user. Telegram progress presentation stays deferred.
|
|
5
|
+
|
|
6
|
+
## User request
|
|
7
|
+
|
|
8
|
+
Try all free OpenCode models from highest capability to lowest before Hermes,
|
|
9
|
+
then descend through remaining keyless endpoints. Research published benchmarks
|
|
10
|
+
for the actual listed model versions to determine the stack. Do not derail the
|
|
11
|
+
ongoing inference compatibility repair.
|
|
12
|
+
|
|
13
|
+
## Findings and work
|
|
14
|
+
|
|
15
|
+
The prior helper tried configured providers first, preferred Nemotron over
|
|
16
|
+
stronger available models, and interleaved providers before exhausting OpenCode.
|
|
17
|
+
OpenCode's catalog provides no quality score; its upstream default follows
|
|
18
|
+
release date, which is not an intelligence ranking.
|
|
19
|
+
|
|
20
|
+
The [benchmark evidence](evidence/fallback-model-benchmarks-20261012.json) uses
|
|
21
|
+
current Artificial Analysis v4.3.2 plus original vendor coding evaluations.
|
|
22
|
+
Current comparable OpenCode order is Muse 1.3, Step 5, Ling 3.1, MiMo 2.6,
|
|
23
|
+
Nemotron 3.5. Three additional anonymous/unmeasured models remain eligible;
|
|
24
|
+
they are explicitly unranked rather than assigned fabricated scores. Free
|
|
25
|
+
gateway reasoning settings and checkpoint equivalence remain unverified.
|
|
26
|
+
|
|
27
|
+
Implement OpenCode-all → Hermes-all → remaining keyless merged by model quality
|
|
28
|
+
→ configured keyed tail. Preserve explicit configured-only policy, model-specific
|
|
29
|
+
and provider-wide quota scopes, schema adapters, tool/context/cost admission,
|
|
30
|
+
deadline bounds, manual permission and no replay after output. Do not delay
|
|
31
|
+
ready alternatives for a throttled higher route. Ready retries use original
|
|
32
|
+
cascade priority. Research scores must never confer free-access authority.
|
|
33
|
+
|
|
34
|
+
The [priority reference](../inference-fallback-priority.md) records the source
|
|
35
|
+
URLs, exact settings, unknown-model behavior and operational limitations.
|
|
36
|
+
|
|
37
|
+
## Acceptance
|
|
38
|
+
|
|
39
|
+
- A successful 512th OpenCode model produces zero lower-provider dispatches;
|
|
40
|
+
full OpenCode exhaustion reaches Hermes only after all eligible OpenCode rows.
|
|
41
|
+
- A stronger measured nonpreferred model precedes a weaker seed. Catalog or
|
|
42
|
+
registry row order does not change selection. Newly discovered unknown models
|
|
43
|
+
remain included; incompatible or nonfree rows remain excluded.
|
|
44
|
+
- Remaining providers merge by model quality, so a weak alternative does not
|
|
45
|
+
preempt a stronger model at another endpoint. Opaque selectors claim no fixed
|
|
46
|
+
benchmark identity.
|
|
47
|
+
- Cooldowns immediately allow ready alternatives; recovery returns to higher
|
|
48
|
+
routes. Stop, stale ownership, total deadlines and bounded retries still hold.
|
|
49
|
+
- Verify source suites, complete workspace build, freshly installed package and
|
|
50
|
+
actual bundled backend ordering/schema checks. Commit and push scoped work.
|
|
51
|
+
|
|
52
|
+
## Verification receipt
|
|
53
|
+
|
|
54
|
+
542 orchestrator tests passed with one existing skip; 122 CLI tests passed.
|
|
55
|
+
The complete workspace build, package bundle, README/tarball audit and fresh
|
|
56
|
+
compiler-free global npm installation passed. SQLite, CLI and library loaded.
|
|
57
|
+
|
|
58
|
+
The [freshly installed backend receipt](evidence/fallback-quality-installed-20261012.json)
|
|
59
|
+
records 64/64 mocked transport cases passing. Six reach the 512th OpenCode alias
|
|
60
|
+
with zero other-provider generations; two prove benchmark preference over the
|
|
61
|
+
Nemotron seed and larger unmeasured context limits; two exhaust ten eligible
|
|
62
|
+
keyless aliases before the configured keyed tail. Native tool, Responses,
|
|
63
|
+
structured validation and the original-schema `uniqueItems` regressions remain
|
|
64
|
+
green. These checks made no real inference requests or Telegram sends.
|
|
65
|
+
|
|
66
|
+
Prepared artifact: `publish/omnius-1.0.848.tgz`, SHA-256
|
|
67
|
+
`2f0b02299333dea363eaa93c8e1f7e10a4371aeb3388fba35e6a3a39359c8611`.
|
|
68
|
+
Its bundled backend SHA-256 is
|
|
69
|
+
`651aa2819b85678d8aac1fa84f9e9c6fd7a088d17645d9cd212b00500bcf468c`.
|
|
70
|
+
No publication or active runtime restart was performed.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Fallback reply contracts and live Telegram regressions
|
|
2
|
+
|
|
3
|
+
Status: implemented and verified in source and the freshly installed package.
|
|
4
|
+
Publishing and restarting the active bot remain user-owned. The subsequent
|
|
5
|
+
OpenCode-first capability ordering is tracked in
|
|
6
|
+
[its work order](WO-fallback-quality-order-20261012.md); Telegram progress
|
|
7
|
+
presentation remains explicitly deferred.
|
|
8
|
+
|
|
9
|
+
## User steering
|
|
10
|
+
|
|
11
|
+
The running cascade selects OpenCode Nemotron, Kilo Nemotron and Hermes but
|
|
12
|
+
reports `invalid_response`; OVH reports `empty_response`, and Big Pickle rejects
|
|
13
|
+
the request with HTTP 400. Handle the actual protocol and expected reply contract
|
|
14
|
+
dynamically for every selected fallback. Do not treat a successful isolated
|
|
15
|
+
provider probe as proof that production routing uses the same adapter.
|
|
16
|
+
|
|
17
|
+
The user also reported that replying to ordinary "good dog" chatter created and
|
|
18
|
+
uploaded `reply.txt`. Review current live logs and fix evidenced problems before
|
|
19
|
+
publication; preserve the ongoing full free-model coverage work.
|
|
20
|
+
|
|
21
|
+
## Evidence
|
|
22
|
+
|
|
23
|
+
The scoped public run `telegram-c34a3d7d53728329-1791861851684-1` began at
|
|
24
|
+
2026-10-13T03:24:12Z. It produced a plain reply, which the host rejected after a
|
|
25
|
+
semantic review demanded delivery evidence. The current criterion was
|
|
26
|
+
`effect:visible_response`; the current user message requested no file. That
|
|
27
|
+
rejection led to a failed file send, file creation, another blocked result check,
|
|
28
|
+
then a successful upload and an echoed final reply at 03:25:41Z. Eventual upload
|
|
29
|
+
success does not justify the invented delivery obligation.
|
|
30
|
+
|
|
31
|
+
The [sanitized prompt audit](evidence/native-conversation-prompt-audit-20261012.json)
|
|
32
|
+
also found generic zero-execution guidance that told the model to take a tool
|
|
33
|
+
action for a conversational goal. Tool receipt authority must remain intact;
|
|
34
|
+
ordinary conversation must not be required to manufacture execution evidence.
|
|
35
|
+
|
|
36
|
+
Current debug artifacts redact actual outbound requests and do not retain
|
|
37
|
+
auxiliary provider response bodies. The generic `invalid_response` category
|
|
38
|
+
combined transport JSON, native tool and structured-schema failures; that label
|
|
39
|
+
alone did not identify the cause. Production-helper probes with invented context
|
|
40
|
+
isolated it: the simple native-goal schema passed, but the full terminal-review
|
|
41
|
+
schema produced an HTTP 200 error envelope. The upstream Nvidia grammar rejected
|
|
42
|
+
`uniqueItems`, wrapped as `server_error`. See the [exact safe diagnostic
|
|
43
|
+
receipt](evidence/terminal-review-error-probe-20261012.json). No private message,
|
|
44
|
+
credential or raw provider response body is retained in the public receipts.
|
|
45
|
+
|
|
46
|
+
## Work and acceptance
|
|
47
|
+
|
|
48
|
+
1. Trace selected-model metadata through the actual production fallback helper,
|
|
49
|
+
backend factory, request builder and response decoder. Select Chat Completions
|
|
50
|
+
or Responses per model, preserve tool/schema/context contracts, and condition
|
|
51
|
+
unsupported wire hints without weakening host validation.
|
|
52
|
+
2. Exercise the actual native-goal review policy and schema through these
|
|
53
|
+
production adapters with invented conversation/evidence. Derive provider
|
|
54
|
+
limits from their public catalogs. Use no local inference, real actions,
|
|
55
|
+
Telegram messages or private human context. Honor quota cooldowns.
|
|
56
|
+
3. Add safe, precise rejection diagnostics identifying the expected reply kind
|
|
57
|
+
and validation stage; never print raw bodies, secret values or user context.
|
|
58
|
+
Validate structured auxiliary replies before exposing their text as a
|
|
59
|
+
completed reply. Preserve Stop, ownership and no replay after visible output.
|
|
60
|
+
4. Repair evidenced conversational tool pressure and test a direct chat reply
|
|
61
|
+
without files, uploads or fabricated tool receipts. Real mutation/delivery
|
|
62
|
+
requests must retain actual effect and provider-acknowledgement requirements.
|
|
63
|
+
5. Run focused and production Telegram regressions, rebuild the package, verify
|
|
64
|
+
the freshly installed artifact and record scoped commit/push receipts.
|
|
65
|
+
|
|
66
|
+
## Additional live checks
|
|
67
|
+
|
|
68
|
+
Review later runs for duplicate contradictory completion events and tool
|
|
69
|
+
description truncation. Apply only repairs supported by current evidence;
|
|
70
|
+
record unresolved observations explicitly instead of broadening the task into
|
|
71
|
+
unrelated runtime changes.
|
|
72
|
+
|
|
73
|
+
## Implementation and verification
|
|
74
|
+
|
|
75
|
+
- Normalize in-band provider errors before decoding Chat Completions or
|
|
76
|
+
Responses, including HTTP 200 JSON and SSE envelopes. Retain only whitelisted
|
|
77
|
+
failure categories and status, never upstream text or nested causes.
|
|
78
|
+
- Learn the proven native `uniqueItems` restriction per full endpoint path,
|
|
79
|
+
model and API shape for five minutes. Retry that route once with a separately
|
|
80
|
+
lowered wire schema. Preserve the complete original host schema, completion
|
|
81
|
+
callback, tool parameters and uniqueness checks. Include original-schema
|
|
82
|
+
guidance in the admitted request budget. Do not strip arbitrary constraints.
|
|
83
|
+
- Validate expected JSON and native tool calls before releasing structured
|
|
84
|
+
replies or executable tool fragments. Accept one complete JSON fence without
|
|
85
|
+
changing values; reject prose extraction, malformed arguments, unoffered
|
|
86
|
+
calls, truncation and duplicate citations. Preserve cancellation, ownership,
|
|
87
|
+
deadlines, manual fallback permission and the no-replay boundary after output.
|
|
88
|
+
- Distinguish JSON syntax, schema mismatch, unsupported schema, tool choice,
|
|
89
|
+
tool arguments and transport envelope failures in safe route diagnostics.
|
|
90
|
+
- Remove generic pressure to manufacture tool execution for conversation.
|
|
91
|
+
Preserve file-write/edit/send purpose before long scoped paths consume the
|
|
92
|
+
model-facing description budget. Text replies need no fabricated reply file;
|
|
93
|
+
requested material effects still require actual tool and delivery receipts.
|
|
94
|
+
|
|
95
|
+
Source verification: 520 orchestrator tests passed with one existing skip;
|
|
96
|
+
122 CLI tests passed. The complete workspace build and artifact audit passed.
|
|
97
|
+
The compiler-free fresh npm installation loaded SQLite and the CLI/library;
|
|
98
|
+
60 deterministic checks exercised the actual installed backend, including
|
|
99
|
+
12 full terminal-review grammar-repair/host-rejection cases.
|
|
100
|
+
|
|
101
|
+
The [post-repair live receipt](evidence/terminal-review-schema-repair-probe-20261012.json)
|
|
102
|
+
uses the actual production fallback helper and backend with synthetic context,
|
|
103
|
+
the unchanged full terminal-review schema and public provider limits. OpenCode
|
|
104
|
+
and Kilo both rejected the initial native grammar, then returned original-schema
|
|
105
|
+
valid JSON after the same-route repair. Kilo chose `deliver`; OpenCode chose
|
|
106
|
+
`stop`. OpenCode's generated justification was not retained, so semantic
|
|
107
|
+
correctness is not claimed. Hermes reached the adapted request and returned
|
|
108
|
+
HTTP 429; the probe stopped at its two-send quota. No local inference, Telegram
|
|
109
|
+
messages or tool actions occurred. Remote quota or outage can still exhaust a
|
|
110
|
+
bounded cascade; this repair does not promise perpetual service availability.
|
|
111
|
+
|
|
112
|
+
The later 03:28 run's successful handler result and failed synthetic terminal
|
|
113
|
+
projection are distinct events. The latter retained pending visible-response
|
|
114
|
+
acknowledgement. This observation does not establish a duplicate-handler bug or
|
|
115
|
+
justify weakening the delivery gate; presentation work remains queued in
|
|
116
|
+
[its work order](WO-telegram-progress-presentation-20261012.md).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# All OpenCode free models in the fallback cascade
|
|
2
|
+
|
|
3
|
+
Status: implemented and verified. Publication and runtime replacement remain
|
|
4
|
+
with the user. The subsequent live-reply fixes are tracked separately in
|
|
5
|
+
[fallback reply contracts](WO-fallback-reply-contracts-20261012.md).
|
|
6
|
+
The original preferred-first/provider-fairness ordering recorded below has been
|
|
7
|
+
superseded by [benchmark-informed priority](WO-fallback-quality-order-20261012.md)
|
|
8
|
+
at the user's subsequent request.
|
|
9
|
+
|
|
10
|
+
## Request
|
|
11
|
+
|
|
12
|
+
All free models offered by OpenCode must be lined up in Omnius's fallback chain,
|
|
13
|
+
including later catalog entries and models using the Responses API. This extends
|
|
14
|
+
the [keyless fallback repair](WO-keyless-fallback-coverage-20261012.md).
|
|
15
|
+
|
|
16
|
+
## Findings
|
|
17
|
+
|
|
18
|
+
The prior implementation loaded the free chat catalog dynamically, but limited
|
|
19
|
+
each provider to 16 compatible models. An installed-runtime regression with 512
|
|
20
|
+
eligible models reproduced exhaustion after only 16 OpenCode dispatches. The
|
|
21
|
+
global distinct-attempt bound also assumed 16 models per provider.
|
|
22
|
+
|
|
23
|
+
The [current primary-source audit](evidence/opencode-all-free-audit-20261012.json)
|
|
24
|
+
found eight active, live, explicitly zero-cost models:
|
|
25
|
+
|
|
26
|
+
| Model | API |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| `nemotron-3.5-lightning-free` | Chat completions |
|
|
29
|
+
| `big-pickle` | Chat completions |
|
|
30
|
+
| `ling-3.1-flash-free` | Chat completions |
|
|
31
|
+
| `longcat-2.5-preview-free` | Chat completions |
|
|
32
|
+
| `mimo-v2.6-flash-free` | Chat completions |
|
|
33
|
+
| `space-bunny-free` | Chat completions |
|
|
34
|
+
| `step-5-preview-free` | Chat completions |
|
|
35
|
+
| `muse-spark-1.3-contributor-free` | Responses |
|
|
36
|
+
|
|
37
|
+
The chat-only parser excluded Muse Spark 1.3 because its per-model SDK is
|
|
38
|
+
`@ai-sdk/openai`, whose upstream transport uses `/responses`. OpenCode's default
|
|
39
|
+
loader excludes deprecated models; the current live ID list also contains an
|
|
40
|
+
unknown free-suffix ID without corresponding cost/capability metadata. Neither
|
|
41
|
+
a deprecated entry nor an unknown suffix alone establishes an offered free
|
|
42
|
+
model for automatic routing.
|
|
43
|
+
|
|
44
|
+
## Work and acceptance
|
|
45
|
+
|
|
46
|
+
1. Enumerate every compatible OpenCode free model within the shared 512-row
|
|
47
|
+
catalog safety bound. Adjust total dispatch accounting accordingly. Keep
|
|
48
|
+
stable ordering, preferred Nemotron first, provider fairness and model-level
|
|
49
|
+
cooldowns. Newly published eligible catalog entries require no code update.
|
|
50
|
+
2. Add the source-derived, exact-origin Responses adapter for the model's
|
|
51
|
+
declared transport. Preserve full conversation, tool-result history, exact
|
|
52
|
+
original host tool schemas and choices, structured output, cancellation and
|
|
53
|
+
no replay after visible output. Protocol metadata never authorizes tools.
|
|
54
|
+
3. Share enumeration and Responses handling with the credentialless setup
|
|
55
|
+
pool. Model-specific failures must not disable all OpenCode alternatives.
|
|
56
|
+
Keep setup deadlines and count network requests against the full model bound.
|
|
57
|
+
4. Prove full 512-model traversal through the helper and packaged backend in
|
|
58
|
+
unary and streaming modes, including tool/schema requests, plus Responses
|
|
59
|
+
routing, capability exclusions, cooldowns, catalog refresh and host identity
|
|
60
|
+
isolation. Tests use synthetic HTTP; no local model requests or tools execute.
|
|
61
|
+
5. Rebuild and verify the package, record receipts, commit and push scoped work.
|
|
62
|
+
Preserve unrelated checkout changes and leave publication/runtime activation
|
|
63
|
+
to the user.
|
|
64
|
+
|
|
65
|
+
All models belong in the eligible cascade; a request still stops at its first
|
|
66
|
+
usable success, cancellation, or deadline. Capability and context checks must
|
|
67
|
+
not weaken the requested contract to force an incompatible model into use.
|
|
68
|
+
|
|
69
|
+
## Verification
|
|
70
|
+
|
|
71
|
+
The complete current metadata audit yields all eight active live free models,
|
|
72
|
+
including Muse's declared Responses transport. The regression suite reconstructs
|
|
73
|
+
the audited metadata to assert exactly that coverage. Both the production helper
|
|
74
|
+
and the packaged backend reach the 512th eligible model after 511 model-specific
|
|
75
|
+
failures, in text, forced native-tool and strict-schema requests, unary and
|
|
76
|
+
streaming. Other providers retain their first attempt before OpenCode alternates.
|
|
77
|
+
|
|
78
|
+
The source suites passed 399 orchestrator and 100 CLI tests, with one existing
|
|
79
|
+
skip. This includes 57 setup-pool tests, model-level cooldowns, catalog refresh,
|
|
80
|
+
transport isolation, complete context/tool/schema preservation and Responses
|
|
81
|
+
terminal/cancellation handling. The compatibility harness passed 30 tests.
|
|
82
|
+
|
|
83
|
+
Full clean recursive build, bundling, packing and compiler-free fresh npm
|
|
84
|
+
installation passed for the prepared 1.0.848 artifact. The required SQLite
|
|
85
|
+
prebuild loaded. The [installed backend receipt](evidence/opencode-all-free-installed-verification-20261012.json)
|
|
86
|
+
records all 48 mocked transport cases passing, including full 512-model traversal
|
|
87
|
+
and Muse's six unary/streaming text/tool/schema cases. These checks sent no real
|
|
88
|
+
inference requests or Telegram messages. No package was published by this work.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Telegram progress presentation
|
|
2
|
+
|
|
3
|
+
Status: queued, explicitly deferred by the user until the inference endpoint
|
|
4
|
+
patch is completed and verified. Do not implement this presentation work as part
|
|
5
|
+
of the current inference repair.
|
|
6
|
+
|
|
7
|
+
## Requested behavior
|
|
8
|
+
|
|
9
|
+
- Show the agent's intermediate explanations in public group chat as a compact
|
|
10
|
+
sequence of short paragraphs describing what it is doing or has learned.
|
|
11
|
+
- Keep detailed activity behind a button that opens the activity view.
|
|
12
|
+
- Present tool calls and results in clean, separate wrapped code blocks using
|
|
13
|
+
supported Telegram message formatting and controls.
|
|
14
|
+
- Replace the public numbered started/succeeded activity dump and its generic
|
|
15
|
+
"Working"/"Work ended" panel with useful intermediate chat narration.
|
|
16
|
+
- Deliver the final answer separately, with completion wording derived from
|
|
17
|
+
actual delivery state rather than an internal handler's acceptance.
|
|
18
|
+
|
|
19
|
+
## Future verification
|
|
20
|
+
|
|
21
|
+
Trace the existing TUI/chat-mode intermediate narration emitter and Telegram
|
|
22
|
+
progress delivery path. Check Telegram's current official API limits, formatting
|
|
23
|
+
and callback behavior when implementing. Verify private/public scope, edit and
|
|
24
|
+
send limits, interruption/Stop, callback ownership, long tool-output handling,
|
|
25
|
+
and that diagnostics/adversarial guidance remain out of ordinary public chat.
|
|
26
|
+
|
|
27
|
+
This work order records the request only; the current source changes target
|
|
28
|
+
inference compatibility, safe diagnostics and tool guidance.
|