omnius 1.0.849 → 1.0.851

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.
@@ -6,6 +6,7 @@ Omnius routes model requests through a provider abstraction instead of treating
6
6
 
7
7
  Supported endpoint patterns include:
8
8
 
9
+ - built-in free inference, available without user credentials
9
10
  - local Ollama
10
11
  - Omnius-managed Ollama pool
11
12
  - vLLM
@@ -20,6 +21,26 @@ Supported endpoint patterns include:
20
21
  - sponsor endpoints discovered through Nexus
21
22
  - COHERE distributed inference peers
22
23
 
24
+ ## Built-in Free Models
25
+
26
+ An installation without a selected profile defaults to **Built-in free**
27
+ inference. `/model` lists discovered free models by name in that category,
28
+ alongside the configured endpoint's models. Current catalog eligibility and
29
+ model capabilities determine the choices; known bundled choices remain visible
30
+ when discovery is offline and are marked as unverified. Existing local and
31
+ keyed-provider profiles are preserved.
32
+
33
+ Choosing a built-in free model switches its whole transport profile and clears
34
+ unrelated endpoint keys. Model-specific adapters handle Chat or Responses
35
+ framing while retaining the original host validation. Inference diagnostics
36
+ continue to identify the actual provider and model used.
37
+
38
+ Free services have availability and quota limits. Automatic fallback is enabled
39
+ by default and tries compatible alternatives within bounded deadlines and
40
+ rate-limit cooldowns. It does not guarantee that every request succeeds. Use
41
+ `/fallback manual` to require a choice before moving to an alternative after
42
+ the selected route fails; `/fallback auto` restores automatic selection.
43
+
23
44
  ## Endpoint Selection
24
45
 
25
46
  Use:
@@ -28,10 +49,16 @@ Use:
28
49
  /endpoint
29
50
  /endpoint sponsor
30
51
  /model
52
+ /setup
53
+ /setup local
31
54
  ```
32
55
 
33
56
  Endpoint history records recently used URLs and auth metadata so users can return to external routers without retyping them.
34
57
 
58
+ Setup is optional. Inside `/setup`, use `/free` for credentialless inference or
59
+ `/key <provider>` only after choosing a provider that requires a key. Local
60
+ model setup is explicit and retains its hardware preflight requirements.
61
+
35
62
  For the complete protocol, authentication, and fail-closed behavior, read
36
63
  [Bring Your Own Inference](../guides/bring-your-own-inference.md). The important
37
64
  distinction is that provider names are not cosmetic:
@@ -0,0 +1,137 @@
1
+ # Built-in free inference and clean Telegram settlement
2
+
3
+ Status: implemented, tested and committed. Live service limits are recorded
4
+ below rather than claimed as model availability. Publication and bot restart
5
+ remain operator-owned.
6
+
7
+ ## Ordered work
8
+
9
+ 1. Repair the public independent-review request. Real installed-bundle probes
10
+ reproduced sequential HTTP 400 rejections for `uniqueItems`, then top-level
11
+ `anyOf`. Keep the full host schema and public semantic-review gate. Permit a
12
+ bounded repair for each newly observed supported limitation on the same route.
13
+ 2. Exercise other eligible free models with real synthetic generations through
14
+ the actual production request builders/parsers. Cover public review as well
15
+ as simple replies. Record actual failures/quotas; never claim availability
16
+ from mocked inference or promise that external services never fail.
17
+ 3. Include the free models in the default model-selection list without requiring
18
+ credentials or endpoint configuration. Use model names and neutral free-model
19
+ presentation in the picker. Retain truthful transport identity in internal
20
+ diagnostics/provenance. Preserve existing configured model choices.
21
+ 4. Update first startup and lightweight setup to offer a working built-in free
22
+ route before asking for credentials or downloading/loading local models.
23
+ Account-based providers and local inference remain selectable options.
24
+ 5. Repair the live TUI's premature/duplicate completed states and later failed
25
+ state shown after a healthy `pong`; inspect the separate public conversation
26
+ failure and stalled continuation path. Separate inference-phase completion
27
+ from task settlement and preserve actual Telegram acknowledgement authority.
28
+ 6. Rebuild, run meaningful regression tests and live remote acceptance, verify
29
+ the packaged artifact, then make scoped commits and push the tracked branch.
30
+ Publication/restart remains operator-owned.
31
+
32
+ ## Current live anchors
33
+
34
+ The running bot uses 1.0.850, bundle SHA256
35
+ `d8636120a09b01e5510cb048c5cafcbb0598474653831174196e6e708de3c33e`.
36
+ Read-only Telegram history confirms private `pong` (message 3368) and public
37
+ `pong` (message 5805). Public generation succeeded; the independent
38
+ `chat-fast-path-review` request then exercised an additional schema shape that
39
+ the earlier attention/simple-reply live harness did not cover.
40
+
41
+ Private admin input can use its explicitly admitted single-pass path and avoid
42
+ that independent public review. Do not remove the public review to copy the
43
+ private behavior. The earlier schema-only `review` probe used the producer’s nominal 1,300-token
44
+ limit. The complete Telegram method applies its observable-request budget
45
+ (16,384 tokens in these remote probes), so the new all-model harness invokes
46
+ the actual attention, generation, independent-review methods and parsers.
47
+
48
+
49
+ ## Implementation and regression verification, 2026-10-13
50
+
51
+ - Public and private generation share the same provider adapters. Public review
52
+ retains its independent original host schema and semantic acceptance gate.
53
+ - Every remote JSON phase receives its full producer contract in the prompt,
54
+ including on models with unknown or supported native structured output.
55
+ Explicitly unsupported native formats use prompt-only generation with original
56
+ host validation, complete-response buffering and unchanged tool authority.
57
+ - Big Pickle’s exact Chat identity has an observed native-format override:
58
+ native requests returned HTTP 400 `{"model":"big-pickle"}`; omitting only that
59
+ format gave HTTP 200 generation and review with host acceptance. Production
60
+ revalidation then passed attention, generation and review without the probe flag.
61
+ - Cat Jam’s bounded diagnostics learn `uniqueItems` and a root conditional-union
62
+ restriction. Only the native grammar is lowered. Nested closed objects, identity,
63
+ authorized tools and coupled fulfillment/continuation checks remain unchanged.
64
+ - Exact pinned-gateway HTTP 429 `Endpoint is unavailable` errors retain their
65
+ HTTP status but are classified as upstream outages, not quota exhaustion.
66
+ They cool that model without scheduling a quota retry. Genuine rate limits keep
67
+ their existing cooldown and retry policy.
68
+ - Remote streaming keeps the backend’s 45-second raw-byte idle watchdog and
69
+ the 120-second aggregate absolute ceiling. Hidden reasoning and buffered JSON
70
+ no longer hit a second 45-second absolute timer. Shorter caller limits and Stop
71
+ still apply; unary requests retain their original absolute attempt bound.
72
+ - Built-in selected models enter the same catalog, transport, schema adapters,
73
+ validation and lifecycle reporting used by fallback. Explicit selection is first;
74
+ automatic alternatives use the capability ordering. Manual mode asks before
75
+ alternatives; disabled fallback still permits the selected built-in model.
76
+ - New installations use built-in free inference with no key or local download.
77
+ `/model`, Telegram’s isolated model picker and completion include the neutral
78
+ `Built-in free` category. Bundled choices remain visible offline with truthful
79
+ availability labels; live pricing/retirement still control admission.
80
+ Existing local/keyed profiles and explicit transport overrides remain intact.
81
+ - Independent regression checks: 504 orchestrator, 254 CLI and 15 provider registry
82
+ tests passed. These use controlled network fixtures for invariants and are
83
+ separate from the live model evidence. Full workspace rebuild passed.
84
+ - The compiler-free fresh npm install passed for the packaged candidate, including
85
+ SQLite and AIWG checks; artifact audit passed and the 566-entry tarball has no
86
+ sourcemaps. No version was published and the running bot was not restarted.
87
+
88
+ The existing README generated REST inventory check fails at the unchanged REST
89
+ block (the task’s README diff only updates setup/prerequisites). The independent
90
+ REST source check passes; this pre-existing inventory drift is not included in
91
+ this repair.
92
+
93
+ Live coverage deliberately sends only invented messages through real Telegram
94
+ methods and providers. It never calls the Telegram Bot API, dispatches a native
95
+ host tool, reads private conversation history, or invokes local inference. Thus
96
+ these receipts establish inference-path behavior, not a new delivery ACK or
97
+ native cross-application action test. Delivery/settlement regressions are in
98
+ `87cecd19`; the installed 1.0.850 bot remains the operator’s running version.
99
+
100
+
101
+ ## Live packaged results and delivery
102
+
103
+ Implementation: `b94a6179` public review, `87cecd19` Telegram settlement,
104
+ `273a7bdb` built-in free integration and common adapters, `65a15404` Step’s
105
+ opaque complex-schema compatibility. Commits are delivered to `origin/main`.
106
+
107
+ The [durable live receipt](evidence/telegram-all-free-live-20261013.json) records
108
+ all nine eligible models, exact bundle/catalog hashes, phase outcomes, safe
109
+ provider diagnostics, original host acceptance, and physical request counts.
110
+ No inference reply or catalog response in these live runs was mocked.
111
+
112
+ | Model | Live result through Telegram methods | Adapter or remaining limit |
113
+ | --- | --- | --- |
114
+ | Big Pickle | Attention, generation and independent review passed in installed sweep | Exact Chat native-format opt-out; original host contract retained |
115
+ | Cat Jam | All three phases passed in installed sweep | Learned `uniqueItems` and root conditional-union restrictions |
116
+ | Ling 3.1 Flash | Earlier attention/generation passed; final isolated probes returned endpoint-unavailable HTTP 429 | Declared native-format opt-out; complete installed Ling→Muse cascade passed |
117
+ | LongCat 2.5 Preview | All three phases passed in installed sweep | Full original JSON guidance, native Chat transport |
118
+ | MiMo V2.6 Flash | All three phases passed in installed sweep | Full original JSON guidance, native Chat transport |
119
+ | Muse Spark 1.3 | All three phases passed in installed sweep | Responses auto-only tool choice and learned native schema restrictions |
120
+ | Nemotron 3.5 Lightning | All three phases passed in installed sweep; attention took 61.9 seconds under default deadlines | Raw-byte idle watchdog plus aggregate absolute bound; no invented thinking flag |
121
+ | Space Bunny | All three phases passed in installed sweep | Full original JSON guidance fixed the prior JSON-syntax failure |
122
+ | Step 5 Preview | Initial attention passed; patched final installed generation and independent review both passed (HTTP 200/200) | Simple native schema works, complex schema returned opaque HTTP 400; exact Chat prompt-only policy preserves full host validation |
123
+
124
+ Step’s final attention probe and Ling’s final probes also recorded intermittent
125
+ endpoint-unavailable HTTP 429s. These are external availability limits. The final
126
+ installed Step→Muse public cascade completed with HTTP 429→200→400→400→200:
127
+ Step’s outage, Muse generation, then two bounded review-schema repairs and an
128
+ accepted independent review. No unavailable-model quota retry or fabricated
129
+ answer was used. Both selected-model isolation and real automatic cascade modes
130
+ are available in `scripts/live-telegram-free-models-harness.mjs`.
131
+
132
+ The final unpublished candidate bundle SHA256 is
133
+ `93c9f8bae03b447f603c3245a796b32b7ee51da12389a99929489dcb2335ca27`.
134
+ Its compiler-free fresh install, SQLite/AIWG checks, 566-entry tarball audit,
135
+ README wiring and sourcemap exclusion passed. The staging version remains
136
+ 1.0.850; the operator’s publish workflow must choose the next release version.
137
+ The running production bot was not replaced by these harness installs.
@@ -0,0 +1,90 @@
1
+ # OpenCode production request compatibility
2
+
3
+ Status: implemented and verified. Telegram presentation is also completed.
4
+ Publication and active-runtime restart remain with the operator. Step's native
5
+ attention-format compatibility remains unverified after a provider limit; the
6
+ working cascade can continue to other compatible models.
7
+
8
+ ## Evidence and cause
9
+
10
+ The running 1.0.849 bundle matched the prepared artifact. The discrepancy was
11
+ request compatibility and routing, not an old installed bundle. Earlier live
12
+ Nemotron/Kilo probes did not establish compatibility of the newly prioritized
13
+ Muse/Step models with the full Telegram attention schema.
14
+
15
+ Real synthetic probes found:
16
+
17
+ - Muse Responses rejects `tool_choice: none`, `required` and named choices;
18
+ it accepts only `auto`. The compatibility core definitions made the original
19
+ tool-free request include tools on the wire. Host tool authority must remain
20
+ unchanged when adapting that wire choice.
21
+ - After the choice repair, Muse rejects `uniqueItems` with the diagnostic
22
+ “JSON schema keyword `uniqueItems` is not supported for structured outputs”.
23
+ The existing schema-recovery path did not recognize this HTTP 400 wording.
24
+ - Step returned `pong` for a plain conversation, but the original attention
25
+ schema returned an opaque upstream HTTP 400. Its cause is still under live
26
+ investigation; do not attribute it to a particular keyword without evidence.
27
+ - The public native fast path promoted a sealed `conversation` judgment into
28
+ an action runner. That produced the empty progress panel and false incomplete
29
+ suffix. Admission must require both action route and action execution class.
30
+
31
+ ## Required work and acceptance
32
+
33
+ 1. Condition the selected model's actual protocol and observed wire limitations.
34
+ Keep original tool choice, offered names, argument schemas and structured
35
+ response validation authoritative. Compatibility definitions grant no actions.
36
+ 2. Recognize only evidenced HTTP 400 schema limitations and retain bounded
37
+ same-route recovery. Preserve auth, rate, context, cancellation and ownership
38
+ behavior; never treat arbitrary upstream messages as capability evidence.
39
+ 3. Validate with real OpenCode generations through production builders, parsers,
40
+ fallback discovery, budgeting and original host-schema checks. No fabricated
41
+ model replies. The reusable `scripts/live-opencode-fallback-harness.mjs`
42
+ enters the exact production remote phase without inventing a local result or
43
+ local failure. This does not test local broker admission or Telegram transport.
44
+ 4. Fix public conversation admission and complete the paragraph/Activity
45
+ presentation work under its separate work order. Preserve final ACK authority.
46
+ 5. Rebuild all workspace packages, verify the packaged artifact, retain safe live
47
+ receipts and commit/push scoped changes.
48
+
49
+ ## Verification
50
+
51
+ The real remote cascade returned original-schema-valid attention JSON from
52
+ Muse after HTTP 400 -> same-model adapted HTTP 200, then returned `pong` on
53
+ HTTP 200. The first selected-backend probes also returned `pong` from Step.
54
+ Synthetic input only; zero local inference requests, Telegram messages or tool
55
+ executions. Mocked regressions protect invariants and are not availability proof.
56
+
57
+ The clean rebuild, tarball audit and compiler-free fresh npm installation passed.
58
+ The [installed-bundle live receipt](evidence/opencode-installed-production-stream-live-20261012.json)
59
+ exercises the exact shipped fallback stream phase, actual free/available model
60
+ discovery, production request/parser paths and the original attention schema.
61
+ Both attention and conversation passed with 56,000 bytes of synthetic background:
62
+ Muse returned HTTP 400 -> adapted same-model HTTP 200 for attention, and HTTP 200
63
+ with exactly `pong` for conversation. No model/metadata replies were mocked.
64
+ The installed and prepared bundle SHA256 is
65
+ `d8636120a09b01e5510cb048c5cafcbb0598474653831174196e6e708de3c33e`.
66
+ The packed artifact SHA256 is
67
+ `88e078ab0bfd38895f8d1691060526f5c7bba8b894b874be7b1c0b361a72545b`.
68
+ The validation artifact retains version 1.0.849; the operator's publication
69
+ workflow must still select a new release version.
70
+
71
+ Step's [bounded diagnostic](evidence/opencode-step-rate-limited-diagnostic-20261012.json)
72
+ stopped after one HTTP 429 (“Endpoint is unavailable”). Its second diagnostic
73
+ was withheld. No evidence supports a static Step schema adaptation, so none was
74
+ invented. This is not a promise that all remote providers remain available.
75
+
76
+ 404 focused inference regression tests and 237 Telegram regression tests passed.
77
+ The latter use explicit mocked transport acknowledgements, not real Telegram
78
+ sends. Inference acceptance uses real providers. Local admission and the active
79
+ bot's restart were deliberately outside this live remote harness.
80
+
81
+ Reproduce after building and installing the artifact:
82
+
83
+ ```sh
84
+ node scripts/live-opencode-fallback-harness.mjs --run --cascade --stream \
85
+ --bundle /path/to/installed/omnius/dist/index.js --context-bytes 56000 \
86
+ --cases attention,conversation --output /tmp/omnius-opencode-live.json
87
+ ```
88
+
89
+ Delivered implementation commits: `7a48a712` (inference compatibility) and
90
+ `82fce9cf` (Telegram narration, activity controls and conversation admission).
@@ -0,0 +1,31 @@
1
+ # Public reply-review schema compatibility
2
+
3
+ Status: repaired and verified; broader built-in-model/startup/lifecycle work is
4
+ tracked in `WO-built-in-free-model-startup-20261012.md`.
5
+
6
+ The live 1.0.850 bot delivered both private and public `pong`. Public generation
7
+ succeeded on Muse, but its separate independent review used a larger schema
8
+ that the private single-pass path did not require. The previous live acceptance
9
+ covered attention and simple replies, leaving this phase untested.
10
+
11
+ Real probes against the active installed bundle reproduced two sequential
12
+ HTTP 400 errors: unsupported `uniqueItems`, then a forbidden top-level `anyOf`.
13
+ The fallback allowed only one schema-repair retry and therefore moved to Step
14
+ and Mimo. See the safe [before receipt](evidence/public-review-before-20261012.json).
15
+
16
+ The repair recognizes the exact observed second diagnostic, lowers only the
17
+ root `anyOf` of a complete closed response object, preserves nested alternatives
18
+ and tool schemas, and permits one bounded retry per newly learned supported
19
+ limitation. The original full host schema, identity/evidence checks and semantic
20
+ review remain authoritative; structured output stays buffered until valid.
21
+
22
+ The [live after receipt](evidence/public-review-after-20261012.json) records
23
+ Muse HTTP 400 -> 400 -> 200 on the same model, with valid public-review output at
24
+ the production 1,300-token limit. No inference or metadata response was mocked;
25
+ synthetic context only, no Telegram sends or tools. The harness now includes
26
+ the production review schema, policy and parser; the full Telegram-method
27
+ multi-model harness is tracked under the broader work order.
28
+
29
+ 187 focused orchestrator regressions and 21 new public-review boundary tests
30
+ passed. Those invariant tests use explicit fixture networking and are separate
31
+ from the live acceptance above. The workspace build passed.
@@ -1,8 +1,8 @@
1
1
  # Telegram progress presentation
2
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.
3
+ Status: implemented and verified, resumed by the user with instructions to
4
+ complete, commit and push. The evidenced OpenCode compatibility failure is handled in
5
+ [the current repair order](WO-opencode-production-compatibility-20261012.md).
6
6
 
7
7
  ## Requested behavior
8
8
 
@@ -16,13 +16,30 @@ of the current inference repair.
16
16
  - Deliver the final answer separately, with completion wording derived from
17
17
  actual delivery state rather than an internal handler's acceptance.
18
18
 
19
- ## Future verification
19
+ ## Implementation and verification
20
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
21
+ The runner emits finalized main-agent prose as `assistant_text` with source
22
+ `model_visible_text`; the terminal chat/voice path renders that visible text.
23
+ Telegram action runs previously kept it only as a final reply candidate. The
24
+ bridge now publishes prose accompanying a same-response nonterminal work tool
25
+ through its existing bound progress writer. Standalone explicit
26
+ `telegram_progress` remains available. Hidden reasoning, final-only drafts,
27
+ transport contracts and internal guidance do not become progress.
28
+
29
+ Keep the four latest distinct paragraphs in collapsed public/private summaries.
30
+ Activity opens the chronological details; public Summary returns to prose.
31
+ Admin calls/results use separate escaped HTML code blocks; public detail shows
32
+ safe tool names and phases without leaking private arguments or outputs.
33
+ Keep telemetry and adversarial diagnostics in private archives while filtering
34
+ ordinary sub-agent display callbacks.
35
+
36
+ Verify private/public scope, edit and
24
37
  send limits, interruption/Stop, callback ownership, long tool-output handling,
25
38
  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.
39
+ Progress never settles work or substitutes for final provider acknowledgement.
40
+ Verification: 126 focused presentation/routing tests passed; 51 public/native
41
+ fallback/diagnostic tests and 60 private-native tests also passed. These delivery
42
+ tests use explicit mocked Telegram acknowledgements and do not claim real bot
43
+ messages. The actual listener is exercised in `telegram-runner-commentary.test.ts`.
44
+ The full workspace rebuild and package audit passed. Real inference acceptance,
45
+ including production streaming, is recorded under the inference repair order.
@@ -0,0 +1,28 @@
1
+ # Telegram reply lifecycle
2
+
3
+ Status: implemented and verified. The built-in-model/startup and multi-model
4
+ live acceptance work continues under `WO-built-in-free-model-startup-20261012.md`.
5
+
6
+ Read-only live history and delivery receipts confirm that public ping 5804
7
+ received acknowledged reply 5805. ESP32 input 5806 failed later and has no
8
+ delivery receipt. The display reused one chat view across inputs and reported
9
+ later chat failures through an already-completed attention view, mixing these
10
+ separate outcomes. Generic exhausted-fallback errors also became unclassified
11
+ quick-chat failures.
12
+
13
+ Reply views are now bound to their exact input. Attention/reply labels identify
14
+ the phase; later errors preserve earlier successful replies and do not overwrite
15
+ completed attention. Terminal callbacks are idempotent. Exhausted remote fallback
16
+ has a typed diagnosis, preserving its nonretryable policy.
17
+
18
+ Provider acknowledgement is retained immediately. Optional memory/display/notes
19
+ or latency observers cannot turn an acknowledged delivery into failure or cause
20
+ regeneration. Observation failures are recorded as hashes in a local diagnostic
21
+ archive. Durable intake writes and ambiguous send handling retain their existing
22
+ authority and no-replay behavior. Manual fallback wording now distinguishes an
23
+ unavailable local endpoint from a selected remote provider.
24
+
25
+ 53 lifecycle, recovery, telemetry and public routing regression tests passed;
26
+ CLI TypeScript and whitespace checks passed. Transport acknowledgements in these
27
+ tests are fixtures, not real Telegram sends. Live inference coverage is recorded
28
+ separately in the multi-model work order.
@@ -0,0 +1,218 @@
1
+ {
2
+ "schema": "omnius.live-opencode-acceptance.v1",
3
+ "startedAt": "2026-10-13T05:54:44.013Z",
4
+ "syntheticOnly": true,
5
+ "mockedReplies": 0,
6
+ "localRequests": 0,
7
+ "telegramMessages": 0,
8
+ "toolsExecuted": 0,
9
+ "contextBytes": 56000,
10
+ "stream": true,
11
+ "mode": "production_remote_cascade",
12
+ "receipts": [
13
+ {
14
+ "model": "cascade",
15
+ "case": "attention",
16
+ "apiShape": "chat",
17
+ "physicalCalls": 2,
18
+ "wires": [
19
+ {
20
+ "model": "muse-spark-1.3-contributor-free",
21
+ "apiShape": "responses",
22
+ "stream": true,
23
+ "toolChoice": "auto",
24
+ "toolNames": [
25
+ "read",
26
+ "shell"
27
+ ],
28
+ "schemaSha256": "15d827c6ec46a34d5edfe219dda0c382b8d7a28480d4952b3e0df14c7d48507a",
29
+ "bodySha256": "9b164756b715a755719057ac9da5bfa256c5efbd7049f60691a200ae36a9585d",
30
+ "maxOutputTokens": 16384
31
+ },
32
+ {
33
+ "model": "muse-spark-1.3-contributor-free",
34
+ "apiShape": "responses",
35
+ "stream": true,
36
+ "toolChoice": "auto",
37
+ "toolNames": [
38
+ "read",
39
+ "shell"
40
+ ],
41
+ "schemaSha256": "bf3674cf984aad367a0684e7ac2ce288ee8f2e9bf3035e9837b13734a6894e90",
42
+ "bodySha256": "c88ebead202073dc3850f2a66c33b50b31f2a6367109f03baf914b4b7d48401a",
43
+ "maxOutputTokens": 16384
44
+ }
45
+ ],
46
+ "http": [
47
+ {
48
+ "status": 400,
49
+ "error": {
50
+ "bodySha256": "ff87146d8064d14b2548e804bb5560f63857ef4d36cf1da734369825bab20656",
51
+ "type": "invalid_request_error",
52
+ "code": null,
53
+ "param": "schema",
54
+ "message": "JSON schema keyword `uniqueItems` is not supported for structured outputs"
55
+ }
56
+ },
57
+ {
58
+ "status": 200
59
+ }
60
+ ],
61
+ "routes": [
62
+ {
63
+ "location": "remote",
64
+ "phase": "selected",
65
+ "model": "muse-spark-1.3-contributor-free",
66
+ "providerId": "opencode",
67
+ "backendType": "vllm"
68
+ },
69
+ {
70
+ "location": "remote",
71
+ "phase": "failed",
72
+ "model": "muse-spark-1.3-contributor-free",
73
+ "providerId": "opencode",
74
+ "backendType": "vllm",
75
+ "failure": {
76
+ "category": "request_rejected",
77
+ "status": 400,
78
+ "validationReason": "unsupported_schema",
79
+ "expectedKind": "json_schema",
80
+ "schemaDigest": "d4a92266cef1561638f557cd9c2566d957e4ce22cc0c2df0d4e1cd67a39a0c1e",
81
+ "apiShape": "responses"
82
+ }
83
+ },
84
+ {
85
+ "location": "remote",
86
+ "phase": "selected",
87
+ "model": "muse-spark-1.3-contributor-free",
88
+ "providerId": "opencode",
89
+ "backendType": "vllm",
90
+ "schemaAdapter": {
91
+ "omittedNativeKeywords": [
92
+ "uniqueItems"
93
+ ],
94
+ "hostValidation": "unchanged"
95
+ }
96
+ },
97
+ {
98
+ "location": "remote",
99
+ "phase": "succeeded",
100
+ "model": "muse-spark-1.3-contributor-free",
101
+ "providerId": "opencode",
102
+ "backendType": "vllm",
103
+ "schemaAdapter": {
104
+ "omittedNativeKeywords": [
105
+ "uniqueItems"
106
+ ],
107
+ "hostValidation": "unchanged"
108
+ }
109
+ }
110
+ ],
111
+ "finished": true,
112
+ "selectedRoute": {
113
+ "providerId": "opencode",
114
+ "model": "muse-spark-1.3-contributor-free",
115
+ "kind": "keyless"
116
+ },
117
+ "outcome": {
118
+ "state": "passed",
119
+ "schemaValid": true,
120
+ "visibleChars": 355,
121
+ "toolCalls": 0,
122
+ "outputSha256": "2b51f68922960d78fc0422ba1aff422d11ff42fe7501788a109dbe00627f0060"
123
+ },
124
+ "elapsedMs": 6692
125
+ },
126
+ {
127
+ "model": "cascade",
128
+ "case": "conversation",
129
+ "apiShape": "chat",
130
+ "physicalCalls": 1,
131
+ "wires": [
132
+ {
133
+ "model": "muse-spark-1.3-contributor-free",
134
+ "apiShape": "responses",
135
+ "stream": true,
136
+ "toolChoice": "auto",
137
+ "toolNames": [
138
+ "read",
139
+ "shell"
140
+ ],
141
+ "bodySha256": "b3273c4fbea88e3ccdf258ae8742adcb99e2e9834d33e1f9b40f93ba7d570eec",
142
+ "maxOutputTokens": 16384
143
+ }
144
+ ],
145
+ "http": [
146
+ {
147
+ "status": 200
148
+ }
149
+ ],
150
+ "routes": [
151
+ {
152
+ "location": "remote",
153
+ "phase": "selected",
154
+ "model": "muse-spark-1.3-contributor-free",
155
+ "providerId": "opencode",
156
+ "backendType": "vllm",
157
+ "schemaAdapter": {
158
+ "omittedNativeKeywords": [
159
+ "uniqueItems"
160
+ ],
161
+ "hostValidation": "unchanged"
162
+ }
163
+ },
164
+ {
165
+ "location": "remote",
166
+ "phase": "succeeded",
167
+ "model": "muse-spark-1.3-contributor-free",
168
+ "providerId": "opencode",
169
+ "backendType": "vllm",
170
+ "schemaAdapter": {
171
+ "omittedNativeKeywords": [
172
+ "uniqueItems"
173
+ ],
174
+ "hostValidation": "unchanged"
175
+ }
176
+ }
177
+ ],
178
+ "finished": true,
179
+ "selectedRoute": {
180
+ "providerId": "opencode",
181
+ "model": "muse-spark-1.3-contributor-free",
182
+ "kind": "keyless"
183
+ },
184
+ "outcome": {
185
+ "state": "passed",
186
+ "visibleChars": 4,
187
+ "toolCalls": 0,
188
+ "outputSha256": "9795c5ff8937f23526ccb207a5684c1fc94a7854e19c021b39d944e51f5baef2"
189
+ },
190
+ "elapsedMs": 3088
191
+ }
192
+ ],
193
+ "bundleSha256": "d8636120a09b01e5510cb048c5cafcbb0598474653831174196e6e708de3c33e",
194
+ "catalogSha256": "24be782386c5cb701cfc0f074ff314f7f50d08fa9b05dc7cafba745772099f3e",
195
+ "availableSha256": "dbf15b4be0144ca8ad229201e2dfc8c07c35066905877a030ed60389f070f3b3",
196
+ "selectedModels": [
197
+ "big-pickle",
198
+ "cat-jam-free",
199
+ "ling-3.1-flash-free",
200
+ "longcat-2.5-preview-free",
201
+ "mimo-v2.6-flash-free",
202
+ "muse-spark-1.3-contributor-free",
203
+ "nemotron-3.5-lightning-free",
204
+ "space-bunny-free",
205
+ "step-5-preview-free"
206
+ ],
207
+ "bundleVersion": "1.0.849",
208
+ "sourceModules": {
209
+ "agenticRunner": "b4a0291effd917bae0fb710b3d0369f3ef0213f678de5b0c3293c4ffc1f10629",
210
+ "opencode-responses-compatibility": "c99cb4c324a966936050266f205427da3a64b6e7665a2190e166e64906c15afa",
211
+ "opencode-chat-compatibility": "aeed3f7bc98dc2fa817b3364ef874b95684ddcd21db38b102e9d3e5e491bac94",
212
+ "opencode-free-models": "d8fbc9a3d30c0ee298647be7f8a3b55402d08e821c3d35a937b1f0ad793eb3c1"
213
+ },
214
+ "attentionSchemaSha256": "15d827c6ec46a34d5edfe219dda0c382b8d7a28480d4952b3e0df14c7d48507a",
215
+ "finishedAt": "2026-10-13T05:54:56.439Z",
216
+ "physicalCalls": 3,
217
+ "passed": true
218
+ }