omnius 1.0.846 → 1.0.848

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.
@@ -0,0 +1,125 @@
1
+ # Keyless automatic fallback coverage and compatibility
2
+
3
+ Status: implemented and verified. Publication and replacement of the running bot
4
+ remain user-owned; the running bot has not been restarted by this work.
5
+
6
+ ## Requested outcome
7
+
8
+ Make the automatic inference fallback chain function in the production Telegram
9
+ and TUI backend. Add only anonymous, keyless providers. Check the whole public
10
+ catalog at https://robit-man.github.io/inference/, find additional free providers,
11
+ and reuse OpenCode's free-model discovery and routing, including Nemotron where
12
+ it is actually available without credentials.
13
+
14
+ The user requested "never fail." No implementation can guarantee an external
15
+ provider's availability. This work must maximize compatible route coverage,
16
+ preserve successful replies, and test bounded, honest failure when every remote
17
+ route is unavailable; it must not manufacture successful inference or hide a
18
+ failed request. This limitation does not reduce the coverage requirement.
19
+
20
+ ## Ordered work and acceptance evidence
21
+
22
+ 1. Inspect the current registry, cascade, production integration and live failure
23
+ evidence. Preserve unrelated worktree changes. Record all catalog families,
24
+ candidate URLs, protocols, anonymous authentication requirements and exclusion
25
+ reasons instead of counting endpoint discovery as working inference.
26
+ 2. Trace OpenCode's actual free-provider loader, catalog and wire transport from
27
+ primary source. Reuse its zero-cost/keyless selection behavior, not a stale
28
+ handpicked model list. Exclude paid entries, signup/API-key routes, unsupported
29
+ protocols and services that reject anonymous Omnius clients.
30
+ 3. Probe candidate routes with synthetic public data only. Check text, streaming,
31
+ native tools, tool-result continuation, structured output and advertised input
32
+ capacity. No action emitted by a probe is executed. Record observed support
33
+ and failures separately from catalog hints. Do not send local model requests.
34
+ 4. Implement the usable adapters and compatibility conditions, shared discovery
35
+ where practical, fair cascade coverage, provider/model cooldowns, cancellation
36
+ and local recovery. Keep whole prompt and required tool/schema contracts;
37
+ preserve manual approval, credential isolation and no replay after visible
38
+ streaming output begins. New automatic routes must require no actual keys.
39
+ 5. Test deterministic transport failures, quota/auth failures, malformed/empty
40
+ replies, incompatible models, catalog loss, provider retirement, tool/schema
41
+ constraints, all-routes failure, Stop and successful local recovery. Exercise
42
+ production backend plus Telegram/TUI integration rather than only a separate
43
+ raw HTTP harness.
44
+ 6. Rebuild workspaces, verify packaged runtime, run synthetic live checks on
45
+ admitted providers and save sanitized receipts. Commit and push scoped changes
46
+ after tests pass. Report remaining coverage, failures and activation state
47
+ precisely; do not claim runtime adoption before it occurs.
48
+
49
+ ## Current evidence
50
+
51
+ Baseline: commit 57e93104. The saved Telegram run at 2026-10-13T01:03:40Z
52
+ exhausted Hermes, OVH and LLM7 and consolidated as a timeout without any tools.
53
+ The previous cascade allowed six model routes and three models per provider,
54
+ with a 20-second request / 60-second remote budget.
55
+
56
+ The production cascade now starts with OpenCode and Kilo's anonymous routes,
57
+ followed by the existing Hermes, LLM7, OVH and ch.at routes. OpenCode discovery
58
+ requires explicit zero costs and optionally intersects the gateway's live model
59
+ IDs to remove retired entries. Kilo requires explicit zero prompt and completion
60
+ prices and excludes non-chat models, including classifiers and music generators.
61
+ OVH's documented anonymous tier is pinned independently of its authenticated
62
+ catalog prices. Public registry entries cannot grant these provider-specific
63
+ exceptions or request identities. No actual keys or new credentialed profiles
64
+ are required by the added routes.
65
+
66
+ Runtime and onboarding share OpenCode's source-derived request adapter. Original
67
+ host tool schemas remain authoritative; compatibility-only calls are rejected.
68
+ Full prompt and required tool/schema contracts are preserved. The parser accepts
69
+ framed SSE and complete JSON responses to streaming requests without replaying a
70
+ generation. Local availability failures admit fallback, cancellation and manual
71
+ decisions remain binding, and a later request retries local inference. Provider
72
+ quota cooldowns apply across models and respect bounded Retry-After values.
73
+ Selection allows 16 compatible models per provider, with fair dispatch across
74
+ admitted providers. Healthy Hermes continuation took 32 seconds; remote defaults
75
+ are therefore 45 seconds per request and 120 seconds overall.
76
+
77
+ ## Verification and limits
78
+
79
+ Live synthetic checks used the actual production backend and executed no tools:
80
+
81
+ - [Hermes](evidence/keyless-compatibility-20261012.json) passed text, streaming,
82
+ native tools, tool-result continuation, strict schema and a large native-tool
83
+ packet. ch.at passed text, streaming and the large packet but failed tool and
84
+ schema contracts; it is restricted to text requests without required schemas.
85
+ - [OpenCode Nemotron 3.5 Lightning](evidence/opencode-production-compatibility-20261012.json)
86
+ passed all six contracts. Big Pickle passed five but rejected strict schema.
87
+ Retired catalog rows found by these probes are now removed through live-ID
88
+ discovery. Ling quota failures remain recorded, not counted as success.
89
+ - [Kilo Nemotron 3 Super, North Mini Code and Dots 3 Note](evidence/kilo-production-compatibility-20261012.json)
90
+ each passed all six contracts. Lyria's authentication failure exposed a
91
+ non-chat metadata ambiguity; music generators are now excluded and covered by
92
+ regression tests. Other catalog models remain unverified.
93
+ - [OVH](evidence/ovh-production-compatibility-20261012.json) passed text,
94
+ streaming and native tools before a quota response. A later
95
+ [structured/context check](evidence/ovh-structured-context-compatibility-20261012.json)
96
+ passed both contracts. LLM7 returned a one-hour quota cooldown, which was
97
+ honored rather than repeatedly probed.
98
+
99
+ All 460 unique source regression tests passed, with one existing skip, across
100
+ the orchestrator and CLI suites. An isolated snapshot of the staged code also
101
+ passed a full recursive build and all 460 tests (365 orchestrator, 95 CLI),
102
+ without depending on unrelated unstaged changes. This includes production private/public
103
+ Telegram greeting admission and semantic review without a false incomplete
104
+ suffix. The compatibility harness passed 26 tests. The
105
+ [freshly installed bundle receipt](evidence/installed-fallback-verification-20261012.json)
106
+ records 36 passing mocked transport cases, including automatic/manual fallback,
107
+ local recovery, quota handling, more than six failed routes, OpenCode/Kilo,
108
+ native tool/schema contracts and cancellation. These installed tests sent no
109
+ real inference requests or Telegram messages.
110
+
111
+ A full clean recursive workspace build, publish bundling, tarball audit
112
+ (540 files, zero warnings) and fresh compiler-free npm installation passed.
113
+ The required SQLite prebuild loaded. The prepared artifact is
114
+ `publish/omnius-1.0.847.tgz`, SHA-256
115
+ `5266aa7ca1845bb389f4e7470eb461837516ed99607d09673f11b9ad4fe89309`.
116
+ Its installed `dist/index.js` hash matches the packaged receipt. No package was
117
+ published and no running bot was replaced.
118
+
119
+ The durable [provider survey](evidence/keyless-provider-survey-20261012.json)
120
+ covers all 12 public-page families and seven additional candidates. Keyed,
121
+ non-chat and unverified adapters are classified explicitly; discovery alone
122
+ does not enroll a route. Every catalog model has not been live-tested, and
123
+ external providers can still exhaust quotas or fail simultaneously. See
124
+ [provider findings](../keyless-provider-survey.md) and
125
+ [OpenCode source provenance](../opencode-free-model-discovery.md).
@@ -0,0 +1,117 @@
1
+ # Preserve native Telegram answers and use compatible free inference routes
2
+
3
+ Status: implemented and verified. The user owns publication and runtime replacement.
4
+
5
+ ## Anchored incident
6
+
7
+ Telegram input 3363 (a backtick followed by “hey”), update activity
8
+ `telegram:1e8af20a7e273e82`, finalization
9
+ `telegram-64ac9937dc7647a8-1791853421483-1` ran on 1.0.846, PID 2409421,
10
+ started 2026-10-13T00:32:14.464Z. Its bundle SHA256 matches the previous
11
+ verified artifact:
12
+ `f568a8a54e037eb22f21193f7f589f8769b6b94369c0e9dfa7446ca6e8a5f87b`.
13
+ This incident is not explained by an older installed build.
14
+
15
+ Turn 0 returned ordinary assistant text: “Hey! How can I assist you today?”
16
+ The transcript and turn-1 context retain that answer. Native Telegram
17
+ disabled text completion, so the runner demanded another generation to
18
+ call task_complete. Turn 1 exhausted the remote routes and the usable
19
+ answer never acquired terminal delivery authority. The Activity panel
20
+ obscured the successful first response.
21
+
22
+ The public registry at https://robit-man.github.io/inference/ also exposed
23
+ two reproducible routing gaps: discovery lost LLM7's provider-default
24
+ selector and chose the first catalog entry, and preferred-model
25
+ incompatibility skipped a provider with other compatible models. The
26
+ catalog-less ch.at chat endpoint was excluded even from tool-free requests.
27
+ Asynchronous jobs, disabled relays, and non-chat services require distinct
28
+ adapters; their presence in the page does not establish native tool support.
29
+
30
+ ## Ordered work
31
+
32
+ 1. Admit an exact current native assistant candidate through host semantic
33
+ assessment and real effect checks. Avoid a redundant task_complete
34
+ generation. Preserve run, epoch, turn, owner, steering, candidate and
35
+ physical evidence fences, terminal receipts and the actual Telegram ACK.
36
+ No executable completion tool call may be synthesized from prose.
37
+ 2. Continue actual work when a promise lacks required mutation, observation,
38
+ verification or delivery. An unavailable auxiliary assessment may permit
39
+ delivery of current useful text under existing unavailable-review policy;
40
+ it must leave the native goal unresolved and never forge fulfillment.
41
+ 3. Preserve known selector and transport hints while merging discovered
42
+ provider capabilities. Enumerate bounded, compatible catalog alternatives
43
+ deterministically, deduplicate actual routes, preserve whole-input capacity
44
+ checks, deadlines, manual approval, Stop and provider-specific credentials.
45
+ 4. Support catalog-less ch.at only for tool-free chat using its documented
46
+ omitted-model request. Do not invent a model identifier on the wire or
47
+ advertise tools, images, or unsupported job protocols.
48
+ 5. Test ordinary native text through the actual backend/runner/bridge path,
49
+ including unavailable assessment, real missing effects, stale ownership,
50
+ cancellation and provider ACK failure. Exercise registry selector and
51
+ catalog alternative regressions without live inference or Telegram sends.
52
+ 6. Rebuild the workspaces and actual CLI artifact, verify bundle markers and
53
+ package gates, then commit and push only task-owned changes. Preserve
54
+ unrelated dirty work and user-owned release versions. The user owns npm
55
+ publication and runtime replacement.
56
+
57
+ No service restart, local model request, CUDA workload change or external
58
+ Telegram message is part of this repair's verification.
59
+
60
+ ## Result and verification
61
+
62
+ Native private and public replies now submit exact current plain text for
63
+ host review and terminal delivery custody without another completion
64
+ generation. Rejected candidates carry bounded missing-effect feedback into
65
+ the next primary request. Stop, steering reconciliation, stale candidate
66
+ rejection, ordinary prose-loop limits and actual provider acknowledgements
67
+ remain enforced. The host neither executes a synthetic task_complete nor
68
+ marks an unknown native goal fulfilled when auxiliary inference is unavailable.
69
+ Selected/generated artifacts retain their explicit delivery boundary.
70
+
71
+ The runtime merges known provider selector/auth/transport hints with page
72
+ capabilities, tries bounded compatible catalog alternatives after giving
73
+ providers their first attempt, and reads nested context/tool metadata.
74
+ Explicit non-chat, moderation and paid-only catalog entries are excluded.
75
+ ch.at's text-only route omits the model on the wire and needs no catalog;
76
+ onboarding also supports it while retaining a synthetic readiness probe.
77
+
78
+ Verification:
79
+
80
+ - 136 registry, routing and existing fallback checks passed.
81
+ - 18 host-admission/model-wire checks and 69 existing completion/steering
82
+ authority checks passed.
83
+ - 12 new actual backend/runner/Telegram bridge integration cases passed with
84
+ mocked network responses, including public topic-bound ACK, unavailable
85
+ assessment, real file mutation, review feedback, Stop and stale ownership.
86
+ - 89 existing Telegram/fallback checks, 11 header route checks and 61
87
+ onboarding checks passed. Total: 396 regression cases.
88
+ - Two live synthetic requests through the production backend succeeded:
89
+ streaming text via ch.at in 4821 ms, and streaming native function calling
90
+ via Hermes in 1764 ms. Both recorded zero local dispatches and executed no
91
+ generated action. These probes contained only synthetic public test text.
92
+ - Full workspace rebuild and staging audit passed. The tarball audit passed
93
+ with 531 files and zero warnings. Fresh isolated global npm installation
94
+ with lifecycle scripts enabled and compilers blocked passed, including
95
+ SQLite, CLI/library, companion install and PATH checks.
96
+ - All 12 mocked transport scenarios passed against the exact installed
97
+ tarball bundle. Installed and staged runtime SHA256 match:
98
+ `f5581b26f6b472a9af893e906670aabb393bc4c63944d2daeadbec245809eb01`.
99
+
100
+ Logs:
101
+ `/tmp/omnius-keyless-routing-tests-20261012.log`,
102
+ `/tmp/omnius-host-text-admission-focused.log`,
103
+ `/tmp/omnius-host-text-admission-regressions.log`,
104
+ `/tmp/omnius-native-plain-text-admission-20261012.log`,
105
+ `/tmp/omnius-plain-answer-cli-regressions-20261012.log`,
106
+ `/tmp/omnius-plain-answer-route-header-20261012.log`,
107
+ `/tmp/omnius-onboarding-catalogless-tests-20261012.log`,
108
+ `/tmp/omnius-plain-answer-live-remote-text-20261012.json`,
109
+ `/tmp/omnius-plain-answer-live-remote-tools-20261012.json`,
110
+ `/tmp/omnius-plain-answer-publish-build-final-20261012.log`,
111
+ `/tmp/omnius-plain-answer-tarball-audit-20261012.log`,
112
+ `/tmp/omnius-plain-answer-fresh-install-20261012.log` and
113
+ `/tmp/omnius-plain-answer-installed-verification-20261012.json`.
114
+
115
+ The already running 1.0.846 bot still uses the earlier f568a8a5 bundle.
116
+ The next user-owned patch publication/update and restart must load this repair;
117
+ the isolated package retained the user's staging version without publishing it.
@@ -0,0 +1,311 @@
1
+ {
2
+ "schema": "omnius.packaged-fallback-verification.v1",
3
+ "status": "passed",
4
+ "bundlePath": "/tmp/omnius-fresh-install-MTjD5A/prefix/lib/node_modules/omnius/dist/index.js",
5
+ "bundleSha256": "37a3ab095098dc3fa67ce548b2544da462eca85a06e9f9ad49f8ba06eeae7e8c",
6
+ "transport": "mock-http-and-dns",
7
+ "realInferenceRequests": 0,
8
+ "telegramMessagesSent": 0,
9
+ "checks": [
10
+ {
11
+ "mode": "auto",
12
+ "stream": false,
13
+ "localDispatches": 1,
14
+ "remoteDispatches": 1,
15
+ "approvals": 0,
16
+ "requestedOutputTokens": 218406,
17
+ "remoteOutputTokens": 61542,
18
+ "status": "passed"
19
+ },
20
+ {
21
+ "mode": "auto",
22
+ "stream": true,
23
+ "localDispatches": 1,
24
+ "remoteDispatches": 1,
25
+ "approvals": 0,
26
+ "requestedOutputTokens": 218406,
27
+ "remoteOutputTokens": 61542,
28
+ "status": "passed"
29
+ },
30
+ {
31
+ "mode": "manual-allow",
32
+ "stream": false,
33
+ "localDispatches": 1,
34
+ "remoteDispatches": 1,
35
+ "approvals": 1,
36
+ "requestedOutputTokens": 218406,
37
+ "remoteOutputTokens": 61542,
38
+ "status": "passed"
39
+ },
40
+ {
41
+ "mode": "manual-allow",
42
+ "stream": true,
43
+ "localDispatches": 1,
44
+ "remoteDispatches": 1,
45
+ "approvals": 1,
46
+ "requestedOutputTokens": 218406,
47
+ "remoteOutputTokens": 61542,
48
+ "status": "passed"
49
+ },
50
+ {
51
+ "mode": "manual-deny",
52
+ "stream": false,
53
+ "localDispatches": 1,
54
+ "remoteDispatches": 0,
55
+ "approvals": 1,
56
+ "requestedOutputTokens": 218406,
57
+ "status": "passed"
58
+ },
59
+ {
60
+ "mode": "manual-deny",
61
+ "stream": true,
62
+ "localDispatches": 1,
63
+ "remoteDispatches": 0,
64
+ "approvals": 1,
65
+ "requestedOutputTokens": 218406,
66
+ "status": "passed"
67
+ },
68
+ {
69
+ "mode": "manual-missing",
70
+ "stream": false,
71
+ "localDispatches": 1,
72
+ "remoteDispatches": 0,
73
+ "approvals": 0,
74
+ "requestedOutputTokens": 218406,
75
+ "status": "passed"
76
+ },
77
+ {
78
+ "mode": "manual-missing",
79
+ "stream": true,
80
+ "localDispatches": 1,
81
+ "remoteDispatches": 0,
82
+ "approvals": 0,
83
+ "requestedOutputTokens": 218406,
84
+ "status": "passed"
85
+ },
86
+ {
87
+ "mode": "auto-review-throttle-and-local-recovery",
88
+ "stream": false,
89
+ "localDispatches": 2,
90
+ "remoteDispatches": 3,
91
+ "status": "passed"
92
+ },
93
+ {
94
+ "mode": "auto-review-throttle-and-local-recovery",
95
+ "stream": true,
96
+ "localDispatches": 2,
97
+ "remoteDispatches": 3,
98
+ "status": "passed"
99
+ },
100
+ {
101
+ "mode": "auto-unknown-selector-output",
102
+ "stream": false,
103
+ "selectorDispatches": 1,
104
+ "status": "passed"
105
+ },
106
+ {
107
+ "mode": "auto-unknown-selector-output",
108
+ "stream": true,
109
+ "selectorDispatches": 1,
110
+ "status": "passed"
111
+ },
112
+ {
113
+ "mode": "auto-json-response-to-stream-without-finish",
114
+ "stream": true,
115
+ "localDispatches": 1,
116
+ "remoteDispatches": 1,
117
+ "status": "passed"
118
+ },
119
+ {
120
+ "mode": "auto-split-crlf-sse-and-terminal-buffer",
121
+ "stream": true,
122
+ "localDispatches": 1,
123
+ "remoteDispatches": 1,
124
+ "status": "passed"
125
+ },
126
+ {
127
+ "mode": "auto-empty-tools-omitted-for-text-and-schema",
128
+ "stream": false,
129
+ "localDispatches": 1,
130
+ "remoteDispatches": 2,
131
+ "status": "passed"
132
+ },
133
+ {
134
+ "mode": "auto-empty-tools-omitted-for-text-and-schema",
135
+ "stream": true,
136
+ "localDispatches": 1,
137
+ "remoteDispatches": 2,
138
+ "status": "passed"
139
+ },
140
+ {
141
+ "mode": "auto-forced-native-tool-choice-wire",
142
+ "stream": false,
143
+ "localDispatches": 1,
144
+ "remoteDispatches": 2,
145
+ "toolsExecuted": 0,
146
+ "status": "passed"
147
+ },
148
+ {
149
+ "mode": "auto-forced-native-tool-choice-wire",
150
+ "stream": true,
151
+ "localDispatches": 1,
152
+ "remoteDispatches": 2,
153
+ "toolsExecuted": 0,
154
+ "status": "passed"
155
+ },
156
+ {
157
+ "mode": "auto-six-failed-routes-before-keyless",
158
+ "stream": false,
159
+ "localDispatches": 1,
160
+ "configuredDispatches": 6,
161
+ "keylessDispatches": 1,
162
+ "status": "passed"
163
+ },
164
+ {
165
+ "mode": "auto-six-failed-routes-before-keyless",
166
+ "stream": true,
167
+ "localDispatches": 1,
168
+ "configuredDispatches": 6,
169
+ "keylessDispatches": 1,
170
+ "status": "passed"
171
+ },
172
+ {
173
+ "mode": "auto-six-cooling-routes-before-keyless",
174
+ "stream": false,
175
+ "localDispatches": 2,
176
+ "configuredDispatches": 6,
177
+ "keylessDispatches": 1,
178
+ "status": "passed"
179
+ },
180
+ {
181
+ "mode": "auto-six-cooling-routes-before-keyless",
182
+ "stream": true,
183
+ "localDispatches": 2,
184
+ "configuredDispatches": 6,
185
+ "keylessDispatches": 1,
186
+ "status": "passed"
187
+ },
188
+ {
189
+ "mode": "auto-compatible-registry-provider-beyond-six-rows",
190
+ "stream": false,
191
+ "localDispatches": 1,
192
+ "unusableDispatches": 7,
193
+ "successfulDispatches": 1,
194
+ "toolsExecuted": 0,
195
+ "status": "passed"
196
+ },
197
+ {
198
+ "mode": "auto-compatible-registry-provider-beyond-six-rows",
199
+ "stream": true,
200
+ "localDispatches": 1,
201
+ "unusableDispatches": 7,
202
+ "successfulDispatches": 1,
203
+ "toolsExecuted": 0,
204
+ "status": "passed"
205
+ },
206
+ {
207
+ "mode": "auto-opencode-after-older-provider-failures-plain",
208
+ "stream": false,
209
+ "localDispatches": 1,
210
+ "olderProviderDispatches": 4,
211
+ "openCodeDispatches": 2,
212
+ "toolsExecuted": 0,
213
+ "status": "passed"
214
+ },
215
+ {
216
+ "mode": "auto-opencode-after-older-provider-failures-plain",
217
+ "stream": true,
218
+ "localDispatches": 1,
219
+ "olderProviderDispatches": 4,
220
+ "openCodeDispatches": 2,
221
+ "toolsExecuted": 0,
222
+ "status": "passed"
223
+ },
224
+ {
225
+ "mode": "auto-opencode-after-older-provider-failures-native",
226
+ "stream": false,
227
+ "localDispatches": 1,
228
+ "olderProviderDispatches": 3,
229
+ "openCodeDispatches": 2,
230
+ "toolsExecuted": 0,
231
+ "status": "passed"
232
+ },
233
+ {
234
+ "mode": "auto-opencode-after-older-provider-failures-native",
235
+ "stream": true,
236
+ "localDispatches": 1,
237
+ "olderProviderDispatches": 3,
238
+ "openCodeDispatches": 2,
239
+ "toolsExecuted": 0,
240
+ "status": "passed"
241
+ },
242
+ {
243
+ "mode": "auto-opencode-after-older-provider-failures-schema",
244
+ "stream": false,
245
+ "localDispatches": 1,
246
+ "olderProviderDispatches": 3,
247
+ "openCodeDispatches": 2,
248
+ "toolsExecuted": 0,
249
+ "status": "passed"
250
+ },
251
+ {
252
+ "mode": "auto-opencode-after-older-provider-failures-schema",
253
+ "stream": true,
254
+ "localDispatches": 1,
255
+ "olderProviderDispatches": 3,
256
+ "openCodeDispatches": 2,
257
+ "toolsExecuted": 0,
258
+ "status": "passed"
259
+ },
260
+ {
261
+ "mode": "auto-opencode-after-older-provider-failures-unregistered-core",
262
+ "stream": false,
263
+ "localDispatches": 1,
264
+ "olderProviderDispatches": 4,
265
+ "openCodeDispatches": 2,
266
+ "toolsExecuted": 0,
267
+ "status": "passed"
268
+ },
269
+ {
270
+ "mode": "auto-opencode-after-older-provider-failures-unregistered-core",
271
+ "stream": true,
272
+ "localDispatches": 1,
273
+ "olderProviderDispatches": 4,
274
+ "openCodeDispatches": 2,
275
+ "toolsExecuted": 0,
276
+ "status": "passed"
277
+ },
278
+ {
279
+ "mode": "auto-kilo-free-catalog-native",
280
+ "stream": false,
281
+ "localDispatches": 1,
282
+ "kiloDispatches": 1,
283
+ "toolsExecuted": 0,
284
+ "status": "passed"
285
+ },
286
+ {
287
+ "mode": "auto-kilo-free-catalog-native",
288
+ "stream": true,
289
+ "localDispatches": 1,
290
+ "kiloDispatches": 1,
291
+ "toolsExecuted": 0,
292
+ "status": "passed"
293
+ },
294
+ {
295
+ "mode": "auto-kilo-free-catalog-schema",
296
+ "stream": false,
297
+ "localDispatches": 1,
298
+ "kiloDispatches": 1,
299
+ "toolsExecuted": 0,
300
+ "status": "passed"
301
+ },
302
+ {
303
+ "mode": "auto-kilo-free-catalog-schema",
304
+ "stream": true,
305
+ "localDispatches": 1,
306
+ "kiloDispatches": 1,
307
+ "toolsExecuted": 0,
308
+ "status": "passed"
309
+ }
310
+ ]
311
+ }