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.
- package/README.md +18 -12
- package/dist/index.js +2 -2
- package/dist/library.js +7039 -6788
- package/docs/DISCOVERY.json +438 -1
- package/docs/DISCOVERY.md +13 -1
- package/docs/getting-started/first-run.md +42 -28
- package/docs/getting-started/model-providers.md +27 -0
- package/docs/work-orders/WO-built-in-free-model-startup-20261012.md +137 -0
- package/docs/work-orders/WO-opencode-production-compatibility-20261012.md +90 -0
- package/docs/work-orders/WO-public-review-schema-compatibility-20261012.md +31 -0
- package/docs/work-orders/WO-telegram-progress-presentation-20261012.md +27 -10
- package/docs/work-orders/WO-telegram-reply-lifecycle-20261013.md +28 -0
- package/docs/work-orders/evidence/opencode-installed-production-stream-live-20261012.json +218 -0
- package/docs/work-orders/evidence/opencode-production-cascade-live-20261012.json +214 -0
- package/docs/work-orders/evidence/opencode-production-pre-recovery-live-20261012.json +167 -0
- package/docs/work-orders/evidence/opencode-step-rate-limited-diagnostic-20261012.json +88 -0
- package/docs/work-orders/evidence/public-review-after-20261012.json +211 -0
- package/docs/work-orders/evidence/public-review-before-20261012.json +163 -0
- package/docs/work-orders/evidence/telegram-all-free-live-20261013.json +4410 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
|
@@ -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:
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
##
|
|
19
|
+
## Implementation and verification
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
|
|
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
|
+
}
|