omnius 1.0.859 → 1.0.860

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 CHANGED
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/index.js
3
- size: 37502243 bytes
4
- sha256: a96343966b01daadfb5e65d2c3e37f3925126949b4fba8bbc25bbef23f8b7510
3
+ size: 37501867 bytes
4
+ sha256: c8a6351bd6377859e05a76c5a058d67f79dae585b8be315c2c53b921ad995ba7
package/dist/library.js CHANGED
@@ -343141,8 +343141,7 @@ function createOpenCodeCompatibilityRequestHeaders(omniusVersion, sessionId) {
343141
343141
  "x-session-affinity": session,
343142
343142
  "X-Session-Id": session,
343143
343143
  "x-opencode-session": session,
343144
- "x-opencode-project": createHash43("sha1").update("omnius").digest("hex"),
343145
- "x-opencode-request": compatibilityIdentifier("msg_", false)
343144
+ "x-opencode-project": createHash43("sha1").update("omnius").digest("hex")
343146
343145
  };
343147
343146
  }
343148
343147
  var OPENCODE_COMPATIBILITY_SYSTEM_PREFIX = `You are an AI agent running in OpenCode, a coding agent harness. Help the user accomplish their goals using the tools you have available.
@@ -343466,7 +343465,7 @@ function parseKeylessInferenceRegistry(html) {
343466
343465
  var rows = [
343467
343466
  ["muse-spark-1.3-contributor-free", "Muse Spark 1.3 Free", 1048576, 131072, void 0, true, true],
343468
343467
  ["step-5-preview-free", "Step 5 Preview Free", 1e6, 65536, 1e6, true],
343469
- ["ling-3.1-flash-free", "Ling 3.1 Flash Free", 262144, 32768, void 0, false],
343468
+ ["nemotron-3-ultra-free", "Nemotron 3 Ultra Free", 1e6, 128e3, void 0, void 0],
343470
343469
  ["mimo-v2.6-flash-free", "MiMo-V2.6-Flash Free", 2e5, 32e3, void 0, void 0],
343471
343470
  ["nemotron-3.5-lightning-free", "Nemotron 3.5 Lightning Free", 262144, 262144, void 0, true],
343472
343471
  ["big-pickle", "Big Pickle", 2e5, 32e3, 16e4, true],
@@ -345983,7 +345982,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
345983
345982
  continue;
345984
345983
  }
345985
345984
  this.lifecycle(request, "failed", candidate, error);
345986
- if (this.restrictedProvider(candidate, error))
345985
+ if (this.restrictedModel(candidate, error))
345987
345986
  continue;
345988
345987
  if (errorChain(error).some((value) => value instanceof AttemptTimeout && value.deadlineKind === "remote_aggregate"))
345989
345988
  break;
@@ -346113,7 +346112,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
346113
346112
  this.lifecycle(request, "failed", candidate, error, frames);
346114
346113
  if (emitted)
346115
346114
  throw new StreamInterruptedError(safeFailure(error, request, candidate, frames));
346116
- if (this.restrictedProvider(candidate, error))
346115
+ if (this.restrictedModel(candidate, error))
346117
346116
  continue;
346118
346117
  if (errorChain(error).some((value) => value instanceof AttemptTimeout && value.deadlineKind === "remote_aggregate"))
346119
346118
  break;
@@ -346725,10 +346724,10 @@ ${line}`).join("");
346725
346724
  rateLimited
346726
346725
  });
346727
346726
  }
346728
- restrictedProvider(route, error) {
346727
+ restrictedModel(route, error) {
346729
346728
  if (route.baseUrl !== OPENCODE_INFERENCE_BASE_URL || route.keyless?.clientIdentity !== "opencode" || !errorChain(error).some((value) => value instanceof InferenceProviderAccessError))
346730
346729
  return false;
346731
- route.accessRestricted = true;
346730
+ route.modelAccessRestricted = true;
346732
346731
  return true;
346733
346732
  }
346734
346733
  async *retryableCandidates(request, deadline) {
@@ -346751,7 +346750,6 @@ ${line}`).join("");
346751
346750
  yield bounded3;
346752
346751
  }
346753
346752
  }.bind(this);
346754
- const restrictedOrigins = /* @__PURE__ */ new Set();
346755
346753
  const waiting = /* @__PURE__ */ new Map();
346756
346754
  const attempts = /* @__PURE__ */ new Map();
346757
346755
  const priority = /* @__PURE__ */ new Map();
@@ -346762,8 +346760,6 @@ ${line}`).join("");
346762
346760
  waiting.set(key, candidate);
346763
346761
  };
346764
346762
  for await (const candidate of candidates()) {
346765
- if (restrictedOrigins.has(new URL(candidate.baseUrl).origin))
346766
- continue;
346767
346763
  const key = routeKey(candidate);
346768
346764
  if (!priority.has(key))
346769
346765
  priority.set(key, priority.size);
@@ -346779,26 +346775,20 @@ ${line}`).join("");
346779
346775
  return;
346780
346776
  attempts.set(key, 1);
346781
346777
  yield candidate;
346782
- if (candidate.accessRestricted) {
346783
- restrictedOrigins.add(new URL(candidate.baseUrl).origin);
346778
+ if (candidate.modelAccessRestricted)
346784
346779
  continue;
346785
- }
346786
- while (candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346780
+ while (!candidate.modelAccessRestricted && candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346787
346781
  candidate.schemaRecoveryPending = false;
346788
346782
  schemaRetries.set(key, (schemaRetries.get(key) ?? 0) + 1);
346789
346783
  this.fence(request);
346790
346784
  if (this.compatible(request, candidate))
346791
346785
  yield candidate;
346792
346786
  }
346793
- defer(candidate);
346787
+ if (!candidate.modelAccessRestricted)
346788
+ defer(candidate);
346794
346789
  }
346795
346790
  while (waiting.size && this.now() < deadline) {
346796
346791
  this.fence(request);
346797
- for (const [key2, candidate2] of waiting)
346798
- if (restrictedOrigins.has(new URL(candidate2.baseUrl).origin))
346799
- waiting.delete(key2);
346800
- if (!waiting.size)
346801
- return;
346802
346792
  const entries = [...waiting];
346803
346793
  const ready = entries.filter(([, candidate2]) => (routeCooldown(candidate2, request)?.until ?? 0) <= this.now());
346804
346794
  const [key, candidate] = ready.length ? ready.sort(([a], [b]) => priority.get(a) - priority.get(b))[0] : entries.sort(([, a], [, b]) => (routeCooldown(a, request)?.until ?? 0) - (routeCooldown(b, request)?.until ?? 0))[0];
@@ -346821,18 +346811,17 @@ ${line}`).join("");
346821
346811
  waiting.delete(key);
346822
346812
  attempts.set(key, (attempts.get(key) ?? 0) + 1);
346823
346813
  yield candidate;
346824
- if (candidate.accessRestricted) {
346825
- restrictedOrigins.add(new URL(candidate.baseUrl).origin);
346814
+ if (candidate.modelAccessRestricted)
346826
346815
  continue;
346827
- }
346828
- while (candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346816
+ while (!candidate.modelAccessRestricted && candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346829
346817
  candidate.schemaRecoveryPending = false;
346830
346818
  schemaRetries.set(key, (schemaRetries.get(key) ?? 0) + 1);
346831
346819
  this.fence(request);
346832
346820
  if (this.compatible(request, candidate))
346833
346821
  yield candidate;
346834
346822
  }
346835
- defer(candidate);
346823
+ if (!candidate.modelAccessRestricted)
346824
+ defer(candidate);
346836
346825
  }
346837
346826
  }
346838
346827
  async *candidates(request, deadline, includeCooling = false) {
@@ -347006,10 +346995,9 @@ ${line}`).join("");
347006
346995
  availabilityCaches.set(fetcher, { until: this.now() + (refreshed ? 3e5 : 15e3), ids: available });
347007
346996
  }
347008
346997
  }
347009
- const availableIds = available === void 0 ? void 0 : new Set(available);
347010
346998
  const anonymousTier = provider.anonymousTier === true && provider.id === "ovh_ai_endpoints" && route.baseUrl === "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1" && !route.apiKey && !provider.anonymousAuthorization;
347011
346999
  const zeroPrice = (value) => (typeof value === "number" || typeof value === "string" && value.trim().length > 0) && Number.isFinite(Number(value)) && Number(value) === 0;
347012
- const models = raw.data.filter((model) => chatCatalogModel(model, anonymousTier) && (!kiloCatalog || object12(model.pricing) && zeroPrice(model.pricing.prompt) && zeroPrice(model.pricing.completion) && Object.values(model.pricing).every(zeroPrice)) && (!availableIds || availableIds.has(String(model.id))));
347000
+ const models = raw.data.filter((model) => chatCatalogModel(model, anonymousTier) && (!kiloCatalog || object12(model.pricing) && zeroPrice(model.pricing.prompt) && zeroPrice(model.pricing.completion) && Object.values(model.pricing).every(zeroPrice)));
347013
347001
  const unique4 = [...new Map(models.map((model) => [String(model.id), model])).values()];
347014
347002
  const preferredModel = this.builtInPrimaryRequest && openCodeCatalog ? this.primary.model : route.model;
347015
347003
  const preferred = unique4.find((model) => model.id === preferredModel);
@@ -347027,6 +347015,8 @@ ${line}`).join("");
347027
347015
  candidate.nativeStructuredOutput = false;
347028
347016
  else if (selected.json_mode === true || capabilities2?.json_mode === true)
347029
347017
  candidate.nativeStructuredOutput = true;
347018
+ else if (openCodeCatalog)
347019
+ candidate.nativeStructuredOutput = false;
347030
347020
  if (request.tools.length && (selected.tools_calling === false || capabilities2?.tools === false || Array.isArray(selected.supported_parameters) && !selected.supported_parameters.includes("tools")))
347031
347021
  continue;
347032
347022
  const nestedWindow = object12(selected.context_window) ? selected.context_window.tokens : selected.context_window;
@@ -33092,6 +33092,42 @@
33092
33092
  }
33093
33093
  ]
33094
33094
  },
33095
+ {
33096
+ "id": "guide.work-orders-evidence-genuine-opencode-access-repair-20261014",
33097
+ "kind": "guide",
33098
+ "title": "Genuine Opencode Access Repair 20261014",
33099
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json.",
33100
+ "keywords": [
33101
+ "work",
33102
+ "orders",
33103
+ "evidence",
33104
+ "genuine",
33105
+ "opencode",
33106
+ "access",
33107
+ "repair",
33108
+ "20261014",
33109
+ "json"
33110
+ ],
33111
+ "maturity": "internal",
33112
+ "audiences": [
33113
+ "maintainer",
33114
+ "large-context-agent"
33115
+ ],
33116
+ "layer": "documentation",
33117
+ "interfaces": [
33118
+ {
33119
+ "type": "file",
33120
+ "target": "docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json"
33121
+ }
33122
+ ],
33123
+ "references": [
33124
+ {
33125
+ "type": "documentation",
33126
+ "target": "docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json",
33127
+ "relation": "canonical-artifact"
33128
+ }
33129
+ ]
33130
+ },
33095
33131
  {
33096
33132
  "id": "guide.work-orders-evidence-installed-fallback-verification-20261012",
33097
33133
  "kind": "guide",
@@ -39141,7 +39177,7 @@
39141
39177
  "id": "guide.work-orders-wo-builtin-provider-authorized-access-20261014-uppercase",
39142
39178
  "kind": "guide",
39143
39179
  "title": "Built-in provider authorized access — 2026-10-14",
39144
- "summary": "Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Implementation and verification are complete; the live remote-access prerequisite remains unresolved. Live successful remote infer",
39180
+ "summary": "Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Those implementation checks remain valid. Subsequent genuine-client and wire controls established that public access works and Omn",
39145
39181
  "keywords": [
39146
39182
  "work",
39147
39183
  "orders",
@@ -39386,6 +39422,41 @@
39386
39422
  }
39387
39423
  ]
39388
39424
  },
39425
+ {
39426
+ "id": "guide.work-orders-wo-genuine-opencode-access-20261014-uppercase",
39427
+ "kind": "guide",
39428
+ "title": "Genuine OpenCode access and source compatibility — 2026-10-14",
39429
+ "summary": "Status: implemented and verified against the exact scoped source snapshot. All nine active free models passed live bundled Telegram attention, reply generation and review. Actual automatic failover and native tool continuations passed. No mocked inference reply establishes acceptance.",
39430
+ "keywords": [
39431
+ "work",
39432
+ "orders",
39433
+ "WO",
39434
+ "genuine",
39435
+ "opencode",
39436
+ "access",
39437
+ "20261014",
39438
+ "md"
39439
+ ],
39440
+ "maturity": "internal",
39441
+ "audiences": [
39442
+ "maintainer",
39443
+ "large-context-agent"
39444
+ ],
39445
+ "layer": "documentation",
39446
+ "interfaces": [
39447
+ {
39448
+ "type": "file",
39449
+ "target": "docs/work-orders/WO-genuine-opencode-access-20261014.md"
39450
+ }
39451
+ ],
39452
+ "references": [
39453
+ {
39454
+ "type": "documentation",
39455
+ "target": "docs/work-orders/WO-genuine-opencode-access-20261014.md",
39456
+ "relation": "canonical-artifact"
39457
+ }
39458
+ ]
39459
+ },
39389
39460
  {
39390
39461
  "id": "guide.work-orders-wo-inference-fallback-20261012-uppercase",
39391
39462
  "kind": "guide",
@@ -39496,7 +39567,7 @@
39496
39567
  "id": "guide.work-orders-wo-local-admission-provider-access-20261014-uppercase",
39497
39568
  "kind": "guide",
39498
39569
  "title": "Local admission and remote access recovery — 2026-10-14",
39499
- "summary": "Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Authorized remote access remains unresolved. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.",
39570
+ "summary": "Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Remote public access was subsequently diagnosed and repaired in genuine-client validation. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.",
39500
39571
  "keywords": [
39501
39572
  "work",
39502
39573
  "orders",
package/docs/DISCOVERY.md CHANGED
@@ -536,6 +536,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
536
536
  | `guide.work-orders-evidence-fallback-model-benchmarks-20261012` | Fallback Model Benchmarks 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/fallback-model-benchmarks-20261012.json. |
537
537
  | `guide.work-orders-evidence-fallback-quality-installed-20261012` | Fallback Quality Installed 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/fallback-quality-installed-20261012.json. |
538
538
  | `guide.work-orders-evidence-fallback-reply-contracts-installed-20261012` | Fallback Reply Contracts Installed 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/fallback-reply-contracts-installed-20261012.json. |
539
+ | `guide.work-orders-evidence-genuine-opencode-access-repair-20261014` | Genuine Opencode Access Repair 20261014 | Bundled Omnius documentation artifact: docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json. |
539
540
  | `guide.work-orders-evidence-installed-fallback-verification-20261012` | Installed Fallback Verification 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/installed-fallback-verification-20261012.json. |
540
541
  | `guide.work-orders-evidence-keyless-compatibility-20261012` | Keyless Compatibility 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/keyless-compatibility-20261012.json. |
541
542
  | `guide.work-orders-evidence-keyless-provider-survey-20261012` | Keyless Provider Survey 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/keyless-provider-survey-20261012.json. |
@@ -697,17 +698,18 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
697
698
  | `guide.work-orders-wo-am-gaps-uppercase` | Associative Memory Gap Work Orders | Generated: 2026-04-13 Source: Deep audit of multimodal associative memory systems Status: READY FOR IMPLEMENTATION |
698
699
  | `guide.work-orders-wo-automatic-capacity-recovery-and-room-history-20261013-uppercase` | Automatic capacity recovery and consecutive room history | Status: automatic recovery and exact unread-source preservation are implemented and verified through live remote inference in the isolated installed package, for both default eager and file-backed source storage. Supersedes treating ordinary context pressure as an acceptable terminal result in the complete-source work order. Publication and active-runtime up |
699
700
  | `guide.work-orders-wo-built-in-free-model-startup-20261012-uppercase` | Built-in free inference and clean Telegram settlement | Status: implemented, tested and committed. Live service limits are recorded below rather than claimed as model availability. Publication and bot restart remain operator-owned. |
700
- | `guide.work-orders-wo-builtin-provider-authorized-access-20261014-uppercase` | Built-in provider authorized access — 2026-10-14 | Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Implementation and verification are complete; the live remote-access prerequisite remains unresolved. Live successful remote infer |
701
+ | `guide.work-orders-wo-builtin-provider-authorized-access-20261014-uppercase` | Built-in provider authorized access — 2026-10-14 | Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Those implementation checks remain valid. Subsequent genuine-client and wire controls established that public access works and Omn |
701
702
  | `guide.work-orders-wo-completion-review-recovery-20261013-uppercase` | Completion review recovery and Telegram liveness | Status: implementation and verification complete; source pushed to origin/main. Operator publication and bot restart remain pending. Follow-up to the live completion-block and typing indicator report on installed Omnius 1.0.852, PID 2845019, telegramtest, and subsequent 1.0.853 restart PID 3697027. |
702
703
  | `guide.work-orders-wo-computer-use-loop-reconciliation-20261013-uppercase` | Reconcile legacy desktop tools with the rapid computer-use controller | Status: reconciliation implemented; isolated build, focused regressions and real read-only desktop observation/capture verified. Live Kev/Moondream inference and visual input acceptance remain incomplete: the model services and operator profile have not been provisioned. The earlier host GPU-health fault is historical; current readiness and remaining deploym |
703
704
  | `guide.work-orders-wo-escape-crash-and-gpu-incident-20261013-uppercase` | Escape exit and NVIDIA device incident | Status: parallel read-only investigation complete. GNOME Terminal crashed in GTK; one A100 is unqueryable and the broker correctly blocks new CUDA work. The exact GTK trigger and physical GPU failure cause remain unresolved. The computer-use reconciliation is delivered separately; a broad application refactor is not established as a repair for either failure |
704
705
  | `guide.work-orders-wo-fallback-contract-cooldown-20261013-uppercase` | Keep internal inference failures within their contract and budget | Status: contract cooldown, aggregate deadline and phase output allocations verified; final installed full-source public-path acceptance passed. |
705
706
  | `guide.work-orders-wo-fallback-quality-order-20261012-uppercase` | Benchmark-informed fallback cascade | Status: implemented and verified. Publication and active runtime replacement remain with the user. Telegram progress presentation stays deferred. |
706
707
  | `guide.work-orders-wo-fallback-reply-contracts-20261012-uppercase` | Fallback reply contracts and live Telegram regressions | Status: implemented and verified in source and the freshly installed package. Publishing and restarting the active bot remain user-owned. The subsequent OpenCode-first capability ordering is tracked in its work order; Telegram progress presentation remains explicitly deferred. |
708
+ | `guide.work-orders-wo-genuine-opencode-access-20261014-uppercase` | Genuine OpenCode access and source compatibility — 2026-10-14 | Status: implemented and verified against the exact scoped source snapshot. All nine active free models passed live bundled Telegram attention, reply generation and review. Actual automatic failover and native tool continuations passed. No mocked inference reply establishes acceptance. |
707
709
  | `guide.work-orders-wo-inference-fallback-20261012-uppercase` | Local inference outage fallback | Status: source implementation complete and verified. Installed-runtime activation is separate; the running daemon has not been upgraded or restarted. |
708
710
  | `guide.work-orders-wo-keyless-fallback-coverage-20261012-uppercase` | Keyless automatic fallback coverage and compatibility | Status: implemented and verified. Publication and replacement of the running bot remain user-owned; the running bot has not been restarted by this work. |
709
711
  | `guide.work-orders-wo-live-native-cascade-ui-freeze-20261013-uppercase` | Live native-planning cascade and TUI responsiveness | Status: implementation and live packaged acceptance complete. The operator reported publication in progress; runtime restart/activation is not yet verified. Follow-up to the live 1.0.851 report after the built-in free-model integration; do not substitute another ping-only check. |
710
- | `guide.work-orders-wo-local-admission-provider-access-20261014-uppercase` | Local admission and remote access recovery — 2026-10-14 | Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Authorized remote access remains unresolved. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation. |
712
+ | `guide.work-orders-wo-local-admission-provider-access-20261014-uppercase` | Local admission and remote access recovery — 2026-10-14 | Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Remote public access was subsequently diagnosed and repaired in genuine-client validation. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation. |
711
713
  | `guide.work-orders-wo-native-transport-fresh-install-20261012-uppercase` | Native transport failure in the fresh npm installation gate | Status: implemented and verified. Publication remains with the user. |
712
714
  | `guide.work-orders-wo-opencode-all-free-models-20261012-uppercase` | All OpenCode free models in the fallback cascade | Status: implemented and verified. Publication and runtime replacement remain with the user. The subsequent live-reply fixes are tracked separately in fallback reply contracts. The original preferred-first/provider-fairness ordering recorded below has been superseded by benchmark-informed priority at the user's subsequent request. |
713
715
  | `guide.work-orders-wo-opencode-production-compatibility-20261012-uppercase` | OpenCode production request compatibility | Status: implemented and verified. Telegram presentation is also completed. Publication and active-runtime restart remain with the operator. Step's native attention-format compatibility remains unverified after a provider limit; the working cascade can continue to other compatible models. |
@@ -12,7 +12,7 @@ Omnius requires explicit zero input and output costs, including any advertised c
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
- 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.
15
+ Listing hints from `https://opencode.ai/inference/v1/models` establish positive listing evidence, not exhaustive exclusions. A genuine installed-client request returned a valid Nemotron Ultra reply on 2026-10-14 while that alias remained omitted; canonical active zero-cost metadata therefore determines eligibility. 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. Empty, partial, missing, malformed or oversized availability discovery preserves canonical zero-cost eligibility; an explicitly empty valid canonical catalog still excludes all models. ID-only rows can never add a model or supply price, tools, schema or context metadata.
16
16
 
17
17
  The [complete free-model follow-up](work-orders/WO-opencode-all-free-models-20261012.md)
18
18
  removes the previous 16-model cascade cutoff: all eligible OpenCode models within
@@ -28,10 +28,12 @@ Two further synthetic streamed probes also returned HTTP 200 with normal termina
28
28
 
29
29
  Current [App metadata](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/app.ts) and [model request construction](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/session/model-request.ts) supply the header format. The public [inference proxy](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/console/app/src/lib/inference-proxy.ts) delegates free-tier admission to the inference service; its server-side guard was not found in this public source tree. No TLS fingerprint or hidden-signature requirement has been established. See the provider's [access discussion](https://github.com/anomalyco/opencode/issues/49580).
30
30
 
31
- The module exports fixed header, system-prefix and core-tool metadata from that pinned source, plus an OpenAI-style catalog normalizer. Its request-header factory generates fresh source-format identifiers and uses a stable SHA-1 of the public namespace `omnius` as its project marker. It can retain a caller-owned session ID for affinity while issuing a fresh message ID per request. It reads no user credentials, private project paths or existing conversation/session data and supplies no Authorization header or execution implementation. A truthful `omnius/unknown` attribution is allowed when no application version is available.
31
+ The module exports fixed header, system-prefix and core-tool metadata from that pinned source, plus an OpenAI-style catalog normalizer. Its request-header factory generates a source-format session identifier and uses a stable SHA-1 of the public namespace `omnius` as its project marker. It can retain a caller-owned session ID for affinity. The obsolete `x-opencode-request` header is omitted: single-header live controls found it caused 403 while the unchanged body succeeded without it. It reads no user credentials, private project paths or existing conversation/session data and supplies no Authorization header or execution implementation. A truthful `omnius/unknown` attribution is allowed when no application version is available.
32
32
 
33
33
  Callers must keep host authorization, original tool schemas, history and tool-choice bindings, invert any existing tool-name aliases, and reject calls to compatibility definitions that have no host execution authority. The parser's catalog-only receipt remains separate from live route admission. Identifier generation follows upstream [Identifier](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/schema/src/identifier.ts) and [SessionID](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/schema/src/session-id.ts); core metadata follows the [read](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/tool/plugin/read.ts) and [shell](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/packages/core/src/tool/plugin/shell.ts) definitions.
34
34
 
35
+ Current source comparisons, genuine-client controls and Telegram acceptance are recorded in the [2026-10-14 work order](work-orders/WO-genuine-opencode-access-20261014.md). Unknown native grammar support uses prompt-only formatting on validated built-in routes, preserving full host schemas and callbacks.
36
+
35
37
  The adapted discovery is covered by OpenCode's [MIT license](https://github.com/anomalyco/opencode/blob/15b24ae12ddb8b7ae3e923b286b4032761bee510/LICENSE):
36
38
 
37
39
  ```text
@@ -1,10 +1,10 @@
1
1
  # Built-in provider authorized access — 2026-10-14
2
2
 
3
- Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Implementation and verification are complete; the live remote-access prerequisite remains unresolved. Live successful remote inference remains unverified because no authorized inference credential is configured and the provider denies public requests.
3
+ Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Those implementation checks remain valid. Subsequent genuine-client and wire controls established that public access works and Omnius's obsolete request header caused the checked denials; an account key is not required for the restored anonymous path. See [genuine access repair](WO-genuine-opencode-access-20261014.md) for the live results and current acceptance status.
4
4
 
5
5
  The operator requires actual built-in model replies before publishing. An old official 1.0.856 protocol projection and current 1.0.858 both receive the same explicit client-restriction HTTP 403 today. This must not be misreported as an output parser failure or fixed by claiming a successful mock response.
6
6
 
7
- ## Source and actual missing prerequisite
7
+ ## Source and optional credentials
8
8
 
9
9
  Official provider source at commit `13afea6a1a76360936bbaa7677cff600ad52d452` uses the same pinned HTTPS endpoint and supports `OPENCODE_API_KEY` or an authorized Console credential. Standard local credential/account databases contain zero entries; no provider credential reference is present in the running Omnius process environment. The local Ollama key and local OpenCode server password are not remote inference credentials and must never be reused for this provider. The existence audit did not search arbitrary private files or print secret values.
10
10
 
@@ -17,7 +17,7 @@ Evidence: [read-only credential/access audit](evidence/builtin-provider-authoriz
17
17
  - Keep credentials in transport headers and privileged host state. Do not persist raw environment keys in model selection/configuration or include them in model messages, tool context, route receipts or error bodies. Preserve manual fallback approval before conversation/tool context can be sent remotely.
18
18
  - Treat the credentialed route as authenticated when anonymous fallback is disabled; do not enable other anonymous providers. Check credential scope again at dispatch. Revocation or malformed configuration must fail clearly without silently substituting public credentials.
19
19
  - Verify selected and cascade modes, native schema/tool/stream adapters, origin isolation, no context/receipt leaks, mid-request revocation and CLI selection persistence. Run a combined isolated build/package smoke.
20
- - A positive live model reply through the actual Telegram/runtime path is still required when an authorized access grant is available. Contract tests do not satisfy that acceptance criterion. Do not claim the operator's publication condition is met until this passes.
20
+ - A positive live model reply through the actual Telegram/runtime path remains the acceptance requirement, using supported public access or an authorized credential. Contract tests do not satisfy that acceptance criterion. Do not claim the operator's publication condition is met until this passes.
21
21
 
22
22
  The operator has been asked for an authorized environment-variable reference only, never the secret itself. No account creation, provider identity bypass, remote credential guess, or unauthorized retry is part of this repair.
23
23
 
@@ -0,0 +1,81 @@
1
+ # Genuine OpenCode access and source compatibility — 2026-10-14
2
+
3
+ Status: implemented and verified against the exact scoped source snapshot. All nine active free models passed live bundled Telegram attention, reply generation and review. Actual automatic failover and native tool continuations passed. No mocked inference reply establishes acceptance.
4
+
5
+ ## Proven failure and correction
6
+
7
+ The original missing-credential explanation was incomplete. Official source intentionally supports anonymous free access with `apiKey: "public"`. A supported request observer in genuine v2.0.29 captured the final serialized request without changing its endpoint, headers or body. A synthetic cross-control isolated the failure to Omnius's added `x-opencode-request` header:
8
+
9
+ | Live control | HTTP |
10
+ | --- | --- |
11
+ | Genuine body and genuine headers | 200 |
12
+ | Genuine body and original Omnius headers | 403 FreeTierError |
13
+ | Omnius body and genuine headers | 200 |
14
+ | Omnius headers with only User-Agent version updated | 403 |
15
+ | Omnius headers with only x-omnius-client removed | 403 |
16
+ | Omnius headers with only x-opencode-request removed | 200 |
17
+ | Omnius headers with only project ID replaced | 403 |
18
+
19
+ The repair removes only the obsolete request header. Omnius attribution, session affinity, original bodies, provider-bound authorization and endpoint pinning remain intact. The experiment establishes today's failure, not the gateway's private implementation or the date its behavior changed.
20
+
21
+ An older cached catalog also routed genuine clients through `/zen/v1`; the current unchanged public catalog routes through `/inference/v1`. Stable 1.19.0 and installed 2.0.10 both succeeded when supplied the current catalog through supported configuration. Omnius already used the current endpoint; changing its endpoint was not the header repair.
22
+
23
+ ## Required work and acceptance
24
+
25
+ 1. Remove the obsolete request header in the shared transport and assert its absence for Chat, Responses, streaming and onboarding. Done.
26
+ 2. Treat a FreeTierError as a denial of the attempted model/request. Keep healthy siblings eligible, bound retries and preserve independent credential-revocation fences. Done.
27
+ 3. Preserve the producer's original JSON schema across Telegram compatibility retries. Compose schema validation with the producer's semantic callback. Do not relax the harness to count an untyped retry as fully validated. Done.
28
+ 4. Treat gateway `/models` entries as positive listing hints. Its omissions are not exhaustive negatives: the genuine installed client returned a valid reply from `nemotron-3-ultra-free` while that alias was omitted. Retain strict active, zero-cost, transport and endpoint eligibility; preserve selected-model and capability priority. Done.
29
+ 5. For validated built-in catalog models with unknown native structured-output support, use prompt-only framing from the first request, retaining the full original contract and host callback. Ultra's native-schema request returned an upstream error; a wire-only diagnostic omitting that hint returned valid attention, generation and review. Keep generic 500 classification and other providers unchanged. Done.
30
+ 6. Refresh the saved fallback catalog from the same public metadata: include active Ultra and remove now-deprecated Ling 3.1. Unknown raw capabilities remain unknown. Done.
31
+ 7. Verify the exact scoped source snapshot with a full build, focused regressions, a private bundle and live Telegram-phase tests, including real automatic failover. Done; receipts below.
32
+
33
+ No private conversation, provider key, local inference request or Telegram message is needed for these synthetic acceptance tests. The operator's live client and publish staging remain untouched. A running old package needs the repaired package loaded before its transport changes.
34
+
35
+ ## Reproducible genuine-client harness
36
+
37
+ ```sh
38
+ node scripts/live-opencode-access-harness.mjs \
39
+ --binary /absolute/path/to/official/opencode \
40
+ --model opencode/muse-spark-1.3-contributor-free \
41
+ --model opencode/nemotron-3-ultra-free \
42
+ --output-dir /tmp/omnius-genuine-cli-access-new-run \
43
+ --tool-policy ask --timeout-ms 120000
44
+ ```
45
+
46
+ `--catalog /absolute/path/to/unchanged-public-catalog.json` is optional. It validates the official provider host/path and zero-cost selected rows, copies the receipt without modification and records its hash. Without it, the report records a free-identifier check rather than claiming verified pricing; the genuine client owns discovery.
47
+
48
+ The harness uses private application/XDG/project directories, no inherited provider credentials, a fixed synthetic prompt, no automatic approval and timeout cancellation limited to its own process group. It leaves the system HOME setting alone. Ask permissions retain genuine tool schemas; they are not a universal operating-system sandbox. Version 1 runs privately in process; version 2 uses `--standalone`. A pass requires exit 0, exactly `OPENCODE_LIVE_OK`, no truncation and no recorded tools, permissions or errors. Full raw logs remain private; the report contains bounded text, sanitized errors, body digests and separately identified runtime/provider log IDs.
49
+
50
+ The Telegram harness invokes actual attention routing, chat generation and independent semantic review. It forbids Telegram delivery and native action dispatch. Pinned runs test each model; an explicit cascade run tests automatic provider recovery. All model responses remain live. Contract regression fixtures are reported separately.
51
+
52
+ ## Source and evidence anchors
53
+
54
+ Official current source: `13afea6a1a76360936bbaa7677cff600ad52d452`; installed v2.0.10 tag: `b8cedc1a7a5e2916bbb65dc1d4b620729c261638`; stable v1.19.0: `733b2c627e5aec39cb33cc22373bdce33053ef2c`.
55
+
56
+ - Current `packages/core/src/plugin/provider/opencode.ts:337` selects the public sentinel when no credential is configured.
57
+ - `packages/core/src/session/model-request.ts:279` builds the genuine session headers; its supported `http.request` hook at 337 observes the final request without a proxy or binary patch.
58
+ - TUI and `run --standalone` share server-side inference identity. The local server's Basic password is not a remote credential.
59
+ - Provider filtering uses canonical catalog costs and capabilities. The gateway listing does not define all callable aliases.
60
+ - The Console inference proxy delegates anonymous authorization/accounting to the gateway. The inspected public source does not define FreeTierError enforcement.
61
+
62
+ Current public catalog SHA-256: `94443e070c993dd16f330d05b9d4bc4ecef7684138d19c9fcfe8f423a1f5415d`. It contains nine active eligible free models; other zero-price deprecated entries remain excluded.
63
+
64
+ The initial repaired eight-model run completed all 26 HTTP calls with 200; it also exposed the retry's missing schema receipt. The subsequent run retained that schema but recorded an intermittent Big Pickle envelope failure, Ultra's native-format upstream failure and a Step endpoint outage. Later Big Pickle byte captures returned valid standard SSE and passed all three phases, so no speculative parser change was made. Failed runs remain evidence; a later pass does not erase them. Final verification retains those failures and confirms recovery without relaxing validation.
65
+
66
+
67
+ ## Final verification and delivery boundary
68
+
69
+ The isolated clean workspace build and 1,095 focused tests passed (846 orchestrator, 249 CLI, 38 suites). The package bundle, 605-file tarball audit, README checks and pack passed. Two earlier timing-only test failures under concurrent load passed unchanged with serial CLI execution; their logs remain recorded. The private artifact uses projected declared runtime dependencies; this verification does not claim a new fresh npm install.
70
+
71
+ Bundle SHA-256: `023444acbff8efddf071415dafa8cb0bf5500b99c5f1863fe238b5fd63248ac3`. All 23 staged runtime/test/harness files match the sealed tested snapshot byte for byte. Subsequent work-order and receipt additions do not change those files.
72
+
73
+ Live acceptance used that bundle with ordinary Node settings and no provider key:
74
+
75
+ - Nine models, 18 cases covering attention, reply generation and independent review: passed; all 29 inference HTTP calls returned 200. Big Pickle and Lightning needed bounded attention retries with the full original contract retained.
76
+ - Real automatic cascade: Big Pickle produced rejected output during attention and again during review; both phases recovered through Muse. The five HTTP calls remained live, and the reviewed reply completed successfully.
77
+ - Native tool calls: Muse Responses and Ultra Chat each generated `diagnostic_add(19,23)`, the host actually computed 42, and each model continued with the actual result. Four live calls passed; two arithmetic tool actions executed.
78
+
79
+ Telegram network delivery/ACK and the native action runner remain outside this inference harness. No test sent a Telegram message, generated local GPU inference, changed user configuration, restarted a live session or published a package. The operator owns publication; existing clients must load the repaired package afterward.
80
+
81
+ [Curated genuine-client controls, retained failures, sealed verification and final live receipts](evidence/genuine-opencode-access-repair-20261014.json).
@@ -1,6 +1,6 @@
1
1
  # Local admission and remote access recovery — 2026-10-14
2
2
 
3
- Status: local admission/access classification repair verified and delivered in `539cf00e`; TUI/Runner producers verified and committed in `a3fd9bab`. Authorized remote access remains unresolved. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.
3
+ Status: local admission/access classification repair verified and delivered in `539cf00e`; TUI/Runner producers verified and committed in `a3fd9bab`. Remote public access was subsequently diagnosed and repaired in [genuine-client validation](WO-genuine-opencode-access-20261014.md). Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.
4
4
 
5
5
  ## Observed production causes
6
6
 
@@ -16,7 +16,7 @@ Status: local admission/access classification repair verified and delivered in `
16
16
  2. Carry the host's original finite admission budget through Telegram's central inference producer. Preserve short generation/body liveness budgets, explicit user local limits, Stop, and original cancellation. HTTP headers do not reliably identify the start of generation for unary responses: the original finite ceiling remains authoritative without pretending broker phase evidence exists.
17
17
  3. Pass exact retained broker queue contracts back to the existing resume owner, with the same logical ID and bodyless retry; do not resubmit the accepted prompt or discover remote providers for that retained job.
18
18
  4. Recheck managed local readiness on each request so cleared holds and recovered devices are not hidden behind a stale outage cache.
19
- 5. Classify only the exact proven client restriction, at its pinned origin, as `access_denied`. Skip its siblings for this cascade only, rechecking fresh requests. Preserve model-specific handling for generic 403s.
19
+ 5. Classify only the exact proven client restriction, at its pinned origin, as `access_denied`. The later genuine-client controls disproved provider-wide sibling suppression: deny only the affected model for this request, retaining healthy siblings and fresh-request rechecks. Preserve model-specific handling for generic 403s.
20
20
  6. Persist/render allowlisted hold/access reasons and response digests; never retain raw provider bodies or keys in route history.
21
21
  7. Verify focused regressions, combined isolated build, package integrity, and a real local production-path response. Record limitations honestly; do not promise an external free endpoint can never reject or rate-limit requests.
22
22
 
@@ -32,7 +32,7 @@ Combined isolated workspace build and 503 focused tests passed. The real `Telegr
32
32
 
33
33
  Live evidence: [actual Telegram inference wrapper](evidence/telegram-local-inference-live-20261014.json). [Current production route receipts](evidence/local-recovery-production-routes-20261014.json) also show local router/chat/review/actor successes after hold release, followed by an actor timeout at the old installed client’s exact 20-second first-frame limit. The client repair requires the new package to be loaded.
34
34
 
35
- The isolated package passed bundling, a 598-file tarball audit with zero warnings, and a compiler-free fresh npm install (required SQLite prebuild loaded). The live client’s global `/fallback manual` setting was preserved. TUI/Runner producers are implemented below; [authenticated provider support](WO-builtin-provider-authorized-access-20261014.md) is implemented and separately verified; public endpoint access is still denied, so this is not a claim of restored remote replies. The user's publish staging and running sessions remain untouched. A new package must be published/loaded to apply client repairs to those sessions; the operator hold release already affects the current broker.
35
+ The isolated package passed bundling, a 598-file tarball audit with zero warnings, and a compiler-free fresh npm install (required SQLite prebuild loaded). The live client’s global `/fallback manual` setting was preserved. TUI/Runner producers are implemented below; [authenticated provider support](WO-builtin-provider-authorized-access-20261014.md) is implemented and separately verified; the later [genuine-client repair](WO-genuine-opencode-access-20261014.md) records restored public replies and supersedes the earlier unresolved-access conclusion. The user's publish staging and running sessions remain untouched. A new package must be published/loaded to apply client repairs to those sessions; the operator hold release already affects the current broker.
36
36
 
37
37
  ## Shared TUI and Runner producer follow-up
38
38