omnius 1.0.843 → 1.0.846
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/library.js +155 -16
- package/docs/DISCOVERY.json +146 -0
- package/docs/DISCOVERY.md +4 -0
- package/docs/work-orders/WO-active-inference-route-and-telegram-review-20261012.md +94 -0
- package/docs/work-orders/WO-native-transport-fresh-install-20261012.md +84 -0
- package/docs/work-orders/WO-telegram-unavailable-review-presentation-20261012.md +88 -0
- package/docs/work-orders/active-inference-route-remote-probes-20261012.json +34 -0
- package/npm-shrinkwrap.json +29 -184
- package/package.json +1 -2
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:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 37075842 bytes
|
|
4
|
+
sha256: f568a8a54e037eb22f21193f7f589f8769b6b94369c0e9dfa7446ca6e8a5f87b
|
package/dist/library.js
CHANGED
|
@@ -349062,7 +349062,23 @@ function routeKey(route) {
|
|
|
349062
349062
|
return `${new URL(route.baseUrl).origin}\0${route.model}`;
|
|
349063
349063
|
}
|
|
349064
349064
|
function errorStatus(error) {
|
|
349065
|
-
|
|
349065
|
+
for (const value of errorChain(error)) {
|
|
349066
|
+
if (object4(value) && typeof value.status === "number" && Number.isInteger(value.status) && value.status >= 100 && value.status <= 599)
|
|
349067
|
+
return value.status;
|
|
349068
|
+
}
|
|
349069
|
+
return void 0;
|
|
349070
|
+
}
|
|
349071
|
+
function errorChain(error) {
|
|
349072
|
+
const chain = [];
|
|
349073
|
+
for (let current = error; current && chain.length < 8 && !chain.includes(current); current = object4(current) ? current.cause : void 0)
|
|
349074
|
+
chain.push(current);
|
|
349075
|
+
return chain;
|
|
349076
|
+
}
|
|
349077
|
+
function safeFailure(error) {
|
|
349078
|
+
const status = errorStatus(error);
|
|
349079
|
+
const chain = errorChain(error);
|
|
349080
|
+
const category = status === 429 ? "rate_limit" : status === 401 || status === 403 ? "authentication" : status !== void 0 && status >= 400 && status < 500 ? "request_rejected" : status !== void 0 && status >= 500 ? "upstream_unavailable" : chain.some((value) => value instanceof AttemptTimeout || object4(value) && (value.name === "TimeoutError" || value.name === "AbortError" || value.code === "ETIMEDOUT")) ? "timeout" : chain.some((value) => value instanceof EmptyInferenceResponse) ? "empty_response" : chain.some((value) => value instanceof SyntaxError) ? "invalid_response" : "transport";
|
|
349081
|
+
return { category, ...status === void 0 ? {} : { status } };
|
|
349066
349082
|
}
|
|
349067
349083
|
function transportFailure(error) {
|
|
349068
349084
|
if (parseProviderContextOverflow(error))
|
|
@@ -349159,9 +349175,12 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349159
349175
|
if (!this.eligible(request))
|
|
349160
349176
|
return local(request);
|
|
349161
349177
|
this.fence(request);
|
|
349178
|
+
let localSelected = false;
|
|
349162
349179
|
try {
|
|
349163
349180
|
if (this.localAdmissionTimeoutMs(request) === 0)
|
|
349164
349181
|
throw new AttemptTimeout();
|
|
349182
|
+
this.lifecycle(request, "selected");
|
|
349183
|
+
localSelected = true;
|
|
349165
349184
|
const result = await this.attempt(request, this.policy.localTimeoutMs, async (bounded3) => {
|
|
349166
349185
|
if (bounded3.localAdmissionFailure !== void 0)
|
|
349167
349186
|
throw bounded3.localAdmissionFailure;
|
|
@@ -349170,16 +349189,19 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349170
349189
|
if (!usableResult(result))
|
|
349171
349190
|
throw new EmptyInferenceResponse();
|
|
349172
349191
|
localCooldowns.delete(routeKey(this.primary));
|
|
349192
|
+
this.lifecycle(request, "succeeded");
|
|
349173
349193
|
return result;
|
|
349174
349194
|
} catch (error) {
|
|
349175
349195
|
this.fence(request);
|
|
349196
|
+
if (localSelected)
|
|
349197
|
+
this.lifecycle(request, "failed", void 0, error);
|
|
349176
349198
|
if (!transportFailure(error))
|
|
349177
349199
|
throw error;
|
|
349178
349200
|
this.localCooldown();
|
|
349179
349201
|
}
|
|
349180
349202
|
await this.approveRemoteFallback(request);
|
|
349181
349203
|
const deadline = this.now() + this.policy.totalTimeoutMs;
|
|
349182
|
-
for await (const candidate of this.
|
|
349204
|
+
for await (const candidate of this.retryableCandidates(request, deadline)) {
|
|
349183
349205
|
if (this.now() >= deadline)
|
|
349184
349206
|
break;
|
|
349185
349207
|
try {
|
|
@@ -349193,9 +349215,11 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349193
349215
|
if (!usableResult(result))
|
|
349194
349216
|
throw new EmptyInferenceResponse();
|
|
349195
349217
|
cooldowns.delete(routeKey(candidate));
|
|
349218
|
+
this.lifecycle(request, "succeeded", candidate);
|
|
349196
349219
|
return this.scrubber(candidate)(result);
|
|
349197
349220
|
} catch (error) {
|
|
349198
349221
|
this.fence(request);
|
|
349222
|
+
this.lifecycle(request, "failed", candidate, error);
|
|
349199
349223
|
this.cooldown(candidate, error);
|
|
349200
349224
|
}
|
|
349201
349225
|
}
|
|
@@ -349219,9 +349243,12 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349219
349243
|
}
|
|
349220
349244
|
this.fence(request);
|
|
349221
349245
|
let emitted = false;
|
|
349246
|
+
let localSelected = false;
|
|
349222
349247
|
try {
|
|
349223
349248
|
if (this.localAdmissionTimeoutMs(request) === 0)
|
|
349224
349249
|
throw new AttemptTimeout();
|
|
349250
|
+
this.lifecycle(request, "selected");
|
|
349251
|
+
localSelected = true;
|
|
349225
349252
|
if (request.localAdmissionFailure !== void 0)
|
|
349226
349253
|
throw request.localAdmissionFailure;
|
|
349227
349254
|
for await (const chunk of this.requireUsableStream(this.boundedStream(request, this.policy.localTimeoutMs, local, true))) {
|
|
@@ -349229,9 +349256,12 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349229
349256
|
yield chunk;
|
|
349230
349257
|
}
|
|
349231
349258
|
localCooldowns.delete(routeKey(this.primary));
|
|
349259
|
+
this.lifecycle(request, "succeeded");
|
|
349232
349260
|
return;
|
|
349233
349261
|
} catch (error) {
|
|
349234
349262
|
this.fence(request);
|
|
349263
|
+
if (localSelected)
|
|
349264
|
+
this.lifecycle(request, "failed", void 0, error);
|
|
349235
349265
|
if (emitted)
|
|
349236
349266
|
throw new StreamInterruptedError();
|
|
349237
349267
|
if (!transportFailure(error))
|
|
@@ -349240,7 +349270,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349240
349270
|
}
|
|
349241
349271
|
await this.approveRemoteFallback(request);
|
|
349242
349272
|
const deadline = this.now() + this.policy.totalTimeoutMs;
|
|
349243
|
-
for await (const candidate of this.
|
|
349273
|
+
for await (const candidate of this.retryableCandidates(request, deadline)) {
|
|
349244
349274
|
if (this.now() >= deadline)
|
|
349245
349275
|
break;
|
|
349246
349276
|
try {
|
|
@@ -349264,9 +349294,11 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349264
349294
|
yield chunk;
|
|
349265
349295
|
}
|
|
349266
349296
|
cooldowns.delete(routeKey(candidate));
|
|
349297
|
+
this.lifecycle(request, "succeeded", candidate);
|
|
349267
349298
|
return;
|
|
349268
349299
|
} catch (error) {
|
|
349269
349300
|
this.fence(request);
|
|
349301
|
+
this.lifecycle(request, "failed", candidate, error);
|
|
349270
349302
|
if (emitted)
|
|
349271
349303
|
throw new StreamInterruptedError();
|
|
349272
349304
|
this.cooldown(candidate, error);
|
|
@@ -349401,6 +349433,26 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349401
349433
|
});
|
|
349402
349434
|
request.onInferenceRoute?.({ ...this.lastRoute });
|
|
349403
349435
|
this.options.onRoute?.({ providerId: this.lastRoute.providerId, model: this.lastRoute.model });
|
|
349436
|
+
this.lifecycle(request, "selected", route);
|
|
349437
|
+
}
|
|
349438
|
+
lifecycle(request, phase, route, error) {
|
|
349439
|
+
this.fence(request);
|
|
349440
|
+
if (!request.onInferenceRouteLifecycle)
|
|
349441
|
+
return;
|
|
349442
|
+
const receipt = {
|
|
349443
|
+
location: route ? "remote" : "local",
|
|
349444
|
+
phase,
|
|
349445
|
+
model: route?.model ?? this.primary.model,
|
|
349446
|
+
providerId: route ? route.keyless?.id ?? route.providerId ?? "remote" : this.primary.providerId ?? "ollama",
|
|
349447
|
+
backendType: route ? "vllm" : this.primary.backendType ?? "ollama",
|
|
349448
|
+
...request.logicalRequestId ? { logicalRequestId: request.logicalRequestId } : {},
|
|
349449
|
+
...phase === "failed" ? { failure: safeFailure(error) } : {}
|
|
349450
|
+
};
|
|
349451
|
+
try {
|
|
349452
|
+
request.onInferenceRouteLifecycle(this.scrubber(route)(receipt));
|
|
349453
|
+
} catch {
|
|
349454
|
+
this.fence(request);
|
|
349455
|
+
}
|
|
349404
349456
|
}
|
|
349405
349457
|
async prepare(route) {
|
|
349406
349458
|
await this.validate(route.baseUrl);
|
|
@@ -349476,14 +349528,14 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349476
349528
|
configuredEndpointOnly: true,
|
|
349477
349529
|
disableEmptyContentRecovery: true,
|
|
349478
349530
|
maxTokens: this.remoteOutputTokens(request, route),
|
|
349479
|
-
...route.contextWindow || route.maxOutputTokens ? { providerDefaultOutput: void 0 } : {},
|
|
349531
|
+
...route.contextWindow || route.maxOutputTokens ? { providerDefaultOutput: void 0 } : route.keyless ? { providerDefaultOutput: true, remoteProviderDefaultOutput: true } : {},
|
|
349480
349532
|
preferNativeOllamaChat: false,
|
|
349481
349533
|
think: false,
|
|
349482
349534
|
...route.keyless?.directAnswer ? { chatTemplateKwargs: { enable_thinking: false } } : {},
|
|
349483
349535
|
timeoutMs: Math.min(request.timeoutMs, this.policy.requestTimeoutMs)
|
|
349484
349536
|
};
|
|
349485
349537
|
}
|
|
349486
|
-
compatible(request, route) {
|
|
349538
|
+
compatible(request, route, includeCooling = false) {
|
|
349487
349539
|
if (this.scrubber(route)(route.model) !== route.model)
|
|
349488
349540
|
return false;
|
|
349489
349541
|
if (request.tools.length && !route.nativeToolsHint || hasImages(request) && !route.images)
|
|
@@ -349499,7 +349551,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349499
349551
|
const minimum = route.contextWindow ? Math.min(request.maxTokens, minimumOutputTokens(route.contextWindow)) : 1;
|
|
349500
349552
|
if (this.remoteOutputTokens(request, route) < minimum)
|
|
349501
349553
|
return false;
|
|
349502
|
-
return (cooldowns.get(routeKey(route)) ?? 0) <= this.now();
|
|
349554
|
+
return includeCooling || (cooldowns.get(routeKey(route))?.until ?? 0) <= this.now();
|
|
349503
349555
|
}
|
|
349504
349556
|
remoteOutputTokens(request, route) {
|
|
349505
349557
|
let budget = Math.min(request.maxTokens, route.maxOutputTokens ?? Infinity);
|
|
@@ -349514,12 +349566,66 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349514
349566
|
return Math.floor(budget);
|
|
349515
349567
|
}
|
|
349516
349568
|
cooldown(route, error) {
|
|
349517
|
-
const
|
|
349569
|
+
const status = errorStatus(error);
|
|
349570
|
+
route.lastAttemptRateLimited = status === 429;
|
|
349571
|
+
if (status !== void 0 && status >= 400 && status < 500 && status !== 429)
|
|
349572
|
+
return;
|
|
349573
|
+
const hint = errorChain(error).find((value) => object4(value) && typeof value.retryAfterMs === "number" && Number.isFinite(value.retryAfterMs));
|
|
349574
|
+
const hinted = object4(hint) && typeof hint.retryAfterMs === "number" ? Math.max(1, Math.min(3e5, hint.retryAfterMs)) : void 0;
|
|
349518
349575
|
if (cooldowns.size >= 256)
|
|
349519
349576
|
cooldowns.delete(cooldowns.keys().next().value);
|
|
349520
|
-
cooldowns.set(routeKey(route),
|
|
349577
|
+
cooldowns.set(routeKey(route), {
|
|
349578
|
+
until: this.now() + (status === 429 ? hinted ?? 15e3 : Math.max(15e3, hinted ?? 0)),
|
|
349579
|
+
rateLimited: status === 429
|
|
349580
|
+
});
|
|
349581
|
+
}
|
|
349582
|
+
async *retryableCandidates(request, deadline) {
|
|
349583
|
+
const waiting = /* @__PURE__ */ new Map();
|
|
349584
|
+
const attempts = /* @__PURE__ */ new Map();
|
|
349585
|
+
const defer = (candidate) => {
|
|
349586
|
+
const key = routeKey(candidate);
|
|
349587
|
+
if (candidate.lastAttemptRateLimited && (attempts.get(key) ?? 0) < 3)
|
|
349588
|
+
waiting.set(key, candidate);
|
|
349589
|
+
};
|
|
349590
|
+
for await (const candidate of this.candidates(request, deadline, true)) {
|
|
349591
|
+
const key = routeKey(candidate);
|
|
349592
|
+
if ((cooldowns.get(key)?.until ?? 0) > this.now()) {
|
|
349593
|
+
if (cooldowns.get(key)?.rateLimited)
|
|
349594
|
+
waiting.set(key, candidate);
|
|
349595
|
+
continue;
|
|
349596
|
+
}
|
|
349597
|
+
if (this.now() >= deadline)
|
|
349598
|
+
return;
|
|
349599
|
+
attempts.set(key, 1);
|
|
349600
|
+
yield candidate;
|
|
349601
|
+
defer(candidate);
|
|
349602
|
+
}
|
|
349603
|
+
while (waiting.size && this.now() < deadline) {
|
|
349604
|
+
this.fence(request);
|
|
349605
|
+
const [key, candidate] = [...waiting].sort(([a], [b]) => (cooldowns.get(a)?.until ?? 0) - (cooldowns.get(b)?.until ?? 0))[0];
|
|
349606
|
+
const delay2 = Math.max(0, (cooldowns.get(key)?.until ?? 0) - this.now());
|
|
349607
|
+
if (delay2 >= deadline - this.now())
|
|
349608
|
+
return;
|
|
349609
|
+
if (delay2) {
|
|
349610
|
+
let timer;
|
|
349611
|
+
try {
|
|
349612
|
+
const pause = new Promise((resolve38) => {
|
|
349613
|
+
timer = setTimeout(resolve38, delay2);
|
|
349614
|
+
});
|
|
349615
|
+
await (request.signal ? this.abortable(pause, request.signal) : pause);
|
|
349616
|
+
} finally {
|
|
349617
|
+
clearTimeout(timer);
|
|
349618
|
+
}
|
|
349619
|
+
this.fence(request);
|
|
349620
|
+
continue;
|
|
349621
|
+
}
|
|
349622
|
+
waiting.delete(key);
|
|
349623
|
+
attempts.set(key, (attempts.get(key) ?? 0) + 1);
|
|
349624
|
+
yield candidate;
|
|
349625
|
+
defer(candidate);
|
|
349626
|
+
}
|
|
349521
349627
|
}
|
|
349522
|
-
async *candidates(request, deadline) {
|
|
349628
|
+
async *candidates(request, deadline, includeCooling = false) {
|
|
349523
349629
|
let count2 = 0;
|
|
349524
349630
|
const seen = /* @__PURE__ */ new Set();
|
|
349525
349631
|
for (const profile3 of this.policy.providers) {
|
|
@@ -349538,7 +349644,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349538
349644
|
profile: profile3
|
|
349539
349645
|
};
|
|
349540
349646
|
const key = routeKey(route);
|
|
349541
|
-
if (!seen.has(key) && this.compatible(request, route)) {
|
|
349647
|
+
if (!seen.has(key) && this.compatible(request, route, includeCooling)) {
|
|
349542
349648
|
seen.add(key);
|
|
349543
349649
|
yield route;
|
|
349544
349650
|
if (++count2 >= MAX_ROUTES2 || this.now() >= deadline)
|
|
@@ -349578,7 +349684,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349578
349684
|
keyless: provider,
|
|
349579
349685
|
...provider.anonymousAuthorization === "Bearer unused" ? { apiKey: "unused" } : {}
|
|
349580
349686
|
};
|
|
349581
|
-
if (seen.has(routeKey(route)) || !this.compatible(request, route))
|
|
349687
|
+
if (seen.has(routeKey(route)) || !this.compatible(request, route, includeCooling))
|
|
349582
349688
|
continue;
|
|
349583
349689
|
seen.add(routeKey(route));
|
|
349584
349690
|
try {
|
|
@@ -349609,7 +349715,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
|
|
|
349609
349715
|
if (Array.isArray(selected.supported_parameters) && request.tools.length && !selected.supported_parameters.includes("tools"))
|
|
349610
349716
|
continue;
|
|
349611
349717
|
}
|
|
349612
|
-
if (!route.model || !this.compatible(request, route))
|
|
349718
|
+
if (!route.model || !this.compatible(request, route, includeCooling))
|
|
349613
349719
|
continue;
|
|
349614
349720
|
const actualKey = routeKey(route);
|
|
349615
349721
|
if (actualKey !== `${new URL(route.baseUrl).origin}\0${provider.model}` && seen.has(actualKey))
|
|
@@ -388269,7 +388375,7 @@ ${read.content}`;
|
|
|
388269
388375
|
throw new Error("interruption_stale_model_dispatch");
|
|
388270
388376
|
};
|
|
388271
388377
|
assertCurrent();
|
|
388272
|
-
const needsRouteHooks = typeof backend.canUseRemoteFallback === "function" || typeof this.backend.canUseRemoteFallback === "function" || outbound.assertCurrentAtDispatch !== void 0 || outbound.onInferenceRoute !== void 0;
|
|
388378
|
+
const needsRouteHooks = typeof backend.canUseRemoteFallback === "function" || typeof this.backend.canUseRemoteFallback === "function" || outbound.assertCurrentAtDispatch !== void 0 || outbound.onInferenceRoute !== void 0 || outbound.onInferenceRouteLifecycle !== void 0;
|
|
388273
388379
|
const dispatchRequest = needsRouteHooks ? {
|
|
388274
388380
|
...outbound,
|
|
388275
388381
|
assertCurrentAtDispatch: assertCurrent,
|
|
@@ -388282,6 +388388,17 @@ ${read.content}`;
|
|
|
388282
388388
|
turn: operation.turn,
|
|
388283
388389
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
388284
388390
|
});
|
|
388391
|
+
},
|
|
388392
|
+
onInferenceRouteLifecycle: (receipt) => {
|
|
388393
|
+
assertCurrent();
|
|
388394
|
+
outbound.onInferenceRouteLifecycle?.(receipt);
|
|
388395
|
+
this.emit({
|
|
388396
|
+
type: "inference_route",
|
|
388397
|
+
inferenceRoute: receipt,
|
|
388398
|
+
visibility: "telemetry",
|
|
388399
|
+
turn: operation.turn,
|
|
388400
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
388401
|
+
});
|
|
388285
388402
|
}
|
|
388286
388403
|
} : outbound;
|
|
388287
388404
|
const response = await backend.chatCompletion(dispatchRequest);
|
|
@@ -421617,11 +421734,22 @@ var OllamaAgenticBackend = class _OllamaAgenticBackend {
|
|
|
421617
421734
|
_knownTransportContextCapability;
|
|
421618
421735
|
_remoteFallback;
|
|
421619
421736
|
_inferenceFallbackApprovalHandler;
|
|
421737
|
+
_inferenceRouteLifecycleHandler;
|
|
421738
|
+
setInferenceRouteLifecycleHandler(handler) {
|
|
421739
|
+
this._inferenceRouteLifecycleHandler = handler;
|
|
421740
|
+
}
|
|
421620
421741
|
setInferenceFallbackApprovalHandler(handler) {
|
|
421621
421742
|
this._inferenceFallbackApprovalHandler = handler;
|
|
421622
421743
|
}
|
|
421623
421744
|
remoteFallback() {
|
|
421624
|
-
return this._remoteFallback ??= new RemoteInferenceFallback({
|
|
421745
|
+
return this._remoteFallback ??= new RemoteInferenceFallback({
|
|
421746
|
+
baseUrl: this.baseUrl,
|
|
421747
|
+
model: this.model,
|
|
421748
|
+
apiKey: this.apiKey,
|
|
421749
|
+
additionalSecrets: () => this._keyPool,
|
|
421750
|
+
providerId: this._provider.providerId,
|
|
421751
|
+
backendType: this._provider.protocol === "ollama" ? "ollama" : "vllm"
|
|
421752
|
+
}, (route) => new _OllamaAgenticBackend(route.baseUrl, route.model, route.apiKey, false, route.protocol, route.providerId));
|
|
421625
421753
|
}
|
|
421626
421754
|
/** Remote endpoints never reserve a GPU on this host. */
|
|
421627
421755
|
usesLocalGpuAdmission() {
|
|
@@ -421641,11 +421769,21 @@ var OllamaAgenticBackend = class _OllamaAgenticBackend {
|
|
|
421641
421769
|
requestWithRunSignal(request) {
|
|
421642
421770
|
const signal = mergeInferenceAbortSignals([request.signal, this._abortSignal]);
|
|
421643
421771
|
const handler = this._inferenceFallbackApprovalHandler;
|
|
421644
|
-
|
|
421772
|
+
const routeHandler = this._inferenceRouteLifecycleHandler;
|
|
421773
|
+
if (!signal && !routeHandler && !request.onInferenceRouteLifecycle && (request.onInferenceFallbackRequired || !handler))
|
|
421645
421774
|
return request;
|
|
421646
421775
|
return {
|
|
421647
421776
|
...request,
|
|
421648
421777
|
...signal ? { signal } : {},
|
|
421778
|
+
...routeHandler || request.onInferenceRouteLifecycle ? {
|
|
421779
|
+
logicalRequestId: request.logicalRequestId ?? crypto.randomUUID(),
|
|
421780
|
+
onInferenceRouteLifecycle: (receipt) => {
|
|
421781
|
+
signal?.throwIfAborted();
|
|
421782
|
+
request.assertCurrentAtDispatch?.();
|
|
421783
|
+
request.onInferenceRouteLifecycle?.(receipt);
|
|
421784
|
+
routeHandler?.(receipt);
|
|
421785
|
+
}
|
|
421786
|
+
} : {},
|
|
421649
421787
|
...request.onInferenceFallbackRequired || !handler ? {} : {
|
|
421650
421788
|
onInferenceFallbackRequired: (receipt) => handler({ ...receipt, signal })
|
|
421651
421789
|
}
|
|
@@ -421931,7 +422069,8 @@ var OllamaAgenticBackend = class _OllamaAgenticBackend {
|
|
|
421931
422069
|
}
|
|
421932
422070
|
brokerRequestOptions(request, body, signal) {
|
|
421933
422071
|
const nativeContext = request.numCtx ?? request.num_ctx;
|
|
421934
|
-
|
|
422072
|
+
const remoteDefault = request.remoteProviderDefaultOutput === true && request.configuredEndpointOnly === true && this._provider.protocol === "openai-chat";
|
|
422073
|
+
if (request.providerDefaultOutput === true && (remoteDefault || request.maxTokens === 16384 && request.contextAdmission !== true && !(Number.isFinite(nativeContext) && (nativeContext ?? 0) > 0)) && this._provider.protocol !== "anthropic-messages") {
|
|
421935
422074
|
delete body["max_tokens"];
|
|
421936
422075
|
const options = body["options"];
|
|
421937
422076
|
if (options && typeof options === "object" && !Array.isArray(options))
|
package/docs/DISCOVERY.json
CHANGED
|
@@ -32454,6 +32454,42 @@
|
|
|
32454
32454
|
}
|
|
32455
32455
|
]
|
|
32456
32456
|
},
|
|
32457
|
+
{
|
|
32458
|
+
"id": "guide.work-orders-active-inference-route-remote-probes-20261012",
|
|
32459
|
+
"kind": "guide",
|
|
32460
|
+
"title": "Active Inference Route Remote Probes 20261012",
|
|
32461
|
+
"summary": "Bundled Omnius documentation artifact: docs/work-orders/active-inference-route-remote-probes-20261012.json.",
|
|
32462
|
+
"keywords": [
|
|
32463
|
+
"work",
|
|
32464
|
+
"orders",
|
|
32465
|
+
"active",
|
|
32466
|
+
"inference",
|
|
32467
|
+
"route",
|
|
32468
|
+
"remote",
|
|
32469
|
+
"probes",
|
|
32470
|
+
"20261012",
|
|
32471
|
+
"json"
|
|
32472
|
+
],
|
|
32473
|
+
"maturity": "internal",
|
|
32474
|
+
"audiences": [
|
|
32475
|
+
"maintainer",
|
|
32476
|
+
"large-context-agent"
|
|
32477
|
+
],
|
|
32478
|
+
"layer": "documentation",
|
|
32479
|
+
"interfaces": [
|
|
32480
|
+
{
|
|
32481
|
+
"type": "file",
|
|
32482
|
+
"target": "docs/work-orders/active-inference-route-remote-probes-20261012.json"
|
|
32483
|
+
}
|
|
32484
|
+
],
|
|
32485
|
+
"references": [
|
|
32486
|
+
{
|
|
32487
|
+
"type": "documentation",
|
|
32488
|
+
"target": "docs/work-orders/active-inference-route-remote-probes-20261012.json",
|
|
32489
|
+
"relation": "canonical-artifact"
|
|
32490
|
+
}
|
|
32491
|
+
]
|
|
32492
|
+
},
|
|
32457
32493
|
{
|
|
32458
32494
|
"id": "guide.work-orders-daemon-hud-ui-overhaul",
|
|
32459
32495
|
"kind": "guide",
|
|
@@ -37089,6 +37125,44 @@
|
|
|
37089
37125
|
}
|
|
37090
37126
|
]
|
|
37091
37127
|
},
|
|
37128
|
+
{
|
|
37129
|
+
"id": "guide.work-orders-wo-active-inference-route-and-telegram-review-20261012-uppercase",
|
|
37130
|
+
"kind": "guide",
|
|
37131
|
+
"title": "Active inference route and Telegram completion review",
|
|
37132
|
+
"summary": "Status: implementation complete and verified. Publication remains with the user.",
|
|
37133
|
+
"keywords": [
|
|
37134
|
+
"work",
|
|
37135
|
+
"orders",
|
|
37136
|
+
"WO",
|
|
37137
|
+
"active",
|
|
37138
|
+
"inference",
|
|
37139
|
+
"route",
|
|
37140
|
+
"and",
|
|
37141
|
+
"telegram",
|
|
37142
|
+
"review",
|
|
37143
|
+
"20261012",
|
|
37144
|
+
"md"
|
|
37145
|
+
],
|
|
37146
|
+
"maturity": "internal",
|
|
37147
|
+
"audiences": [
|
|
37148
|
+
"maintainer",
|
|
37149
|
+
"large-context-agent"
|
|
37150
|
+
],
|
|
37151
|
+
"layer": "documentation",
|
|
37152
|
+
"interfaces": [
|
|
37153
|
+
{
|
|
37154
|
+
"type": "file",
|
|
37155
|
+
"target": "docs/work-orders/WO-active-inference-route-and-telegram-review-20261012.md"
|
|
37156
|
+
}
|
|
37157
|
+
],
|
|
37158
|
+
"references": [
|
|
37159
|
+
{
|
|
37160
|
+
"type": "documentation",
|
|
37161
|
+
"target": "docs/work-orders/WO-active-inference-route-and-telegram-review-20261012.md",
|
|
37162
|
+
"relation": "canonical-artifact"
|
|
37163
|
+
}
|
|
37164
|
+
]
|
|
37165
|
+
},
|
|
37092
37166
|
{
|
|
37093
37167
|
"id": "guide.work-orders-wo-am-gaps-uppercase",
|
|
37094
37168
|
"kind": "guide",
|
|
@@ -37156,6 +37230,42 @@
|
|
|
37156
37230
|
}
|
|
37157
37231
|
]
|
|
37158
37232
|
},
|
|
37233
|
+
{
|
|
37234
|
+
"id": "guide.work-orders-wo-native-transport-fresh-install-20261012-uppercase",
|
|
37235
|
+
"kind": "guide",
|
|
37236
|
+
"title": "Native transport failure in the fresh npm installation gate",
|
|
37237
|
+
"summary": "Status: implemented and verified. Publication remains with the user.",
|
|
37238
|
+
"keywords": [
|
|
37239
|
+
"work",
|
|
37240
|
+
"orders",
|
|
37241
|
+
"WO",
|
|
37242
|
+
"native",
|
|
37243
|
+
"transport",
|
|
37244
|
+
"fresh",
|
|
37245
|
+
"install",
|
|
37246
|
+
"20261012",
|
|
37247
|
+
"md"
|
|
37248
|
+
],
|
|
37249
|
+
"maturity": "internal",
|
|
37250
|
+
"audiences": [
|
|
37251
|
+
"maintainer",
|
|
37252
|
+
"large-context-agent"
|
|
37253
|
+
],
|
|
37254
|
+
"layer": "documentation",
|
|
37255
|
+
"interfaces": [
|
|
37256
|
+
{
|
|
37257
|
+
"type": "file",
|
|
37258
|
+
"target": "docs/work-orders/WO-native-transport-fresh-install-20261012.md"
|
|
37259
|
+
}
|
|
37260
|
+
],
|
|
37261
|
+
"references": [
|
|
37262
|
+
{
|
|
37263
|
+
"type": "documentation",
|
|
37264
|
+
"target": "docs/work-orders/WO-native-transport-fresh-install-20261012.md",
|
|
37265
|
+
"relation": "canonical-artifact"
|
|
37266
|
+
}
|
|
37267
|
+
]
|
|
37268
|
+
},
|
|
37159
37269
|
{
|
|
37160
37270
|
"id": "guide.work-orders-wo-primary-checkout-fallback-delivery-20261012-uppercase",
|
|
37161
37271
|
"kind": "guide",
|
|
@@ -37226,6 +37336,42 @@
|
|
|
37226
37336
|
}
|
|
37227
37337
|
]
|
|
37228
37338
|
},
|
|
37339
|
+
{
|
|
37340
|
+
"id": "guide.work-orders-wo-telegram-unavailable-review-presentation-20261012-uppercase",
|
|
37341
|
+
"kind": "guide",
|
|
37342
|
+
"title": "Telegram reply presentation when an auxiliary review is unavailable",
|
|
37343
|
+
"summary": "Status: implemented and verified. Publication and runtime replacement remain with the user.",
|
|
37344
|
+
"keywords": [
|
|
37345
|
+
"work",
|
|
37346
|
+
"orders",
|
|
37347
|
+
"WO",
|
|
37348
|
+
"telegram",
|
|
37349
|
+
"unavailable",
|
|
37350
|
+
"review",
|
|
37351
|
+
"presentation",
|
|
37352
|
+
"20261012",
|
|
37353
|
+
"md"
|
|
37354
|
+
],
|
|
37355
|
+
"maturity": "internal",
|
|
37356
|
+
"audiences": [
|
|
37357
|
+
"maintainer",
|
|
37358
|
+
"large-context-agent"
|
|
37359
|
+
],
|
|
37360
|
+
"layer": "documentation",
|
|
37361
|
+
"interfaces": [
|
|
37362
|
+
{
|
|
37363
|
+
"type": "file",
|
|
37364
|
+
"target": "docs/work-orders/WO-telegram-unavailable-review-presentation-20261012.md"
|
|
37365
|
+
}
|
|
37366
|
+
],
|
|
37367
|
+
"references": [
|
|
37368
|
+
{
|
|
37369
|
+
"type": "documentation",
|
|
37370
|
+
"target": "docs/work-orders/WO-telegram-unavailable-review-presentation-20261012.md",
|
|
37371
|
+
"relation": "canonical-artifact"
|
|
37372
|
+
}
|
|
37373
|
+
]
|
|
37374
|
+
},
|
|
37229
37375
|
{
|
|
37230
37376
|
"id": "guide.work-orders-world-class-memory-compiler-readme-uppercase",
|
|
37231
37377
|
"kind": "guide",
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -518,6 +518,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
518
518
|
| `guide.trajectory-grounding` | Trajectory Grounding | Trajectory Grounding gives a running agent a compact, evidence-bound account of where a project stands, what changed, what remains uncertain, and the safest next action. Before the first main-agent request, Omnius asks the selected model to form a specific, structured orientation from that evidence. This is a control-plane checkpoint, not free-form self-talk |
|
|
519
519
|
| `guide.vitepress-config` | Config | Bundled Omnius documentation artifact: docs/.vitepress/config.mts. |
|
|
520
520
|
| `guide.voice-flow-architecture` | Voice TTS Flow — Architecture & Implementation Guide | This document describes the voice synthesis system in omnius: how it's built, how all the pieces connect, and how to add new voice features following the same patterns. |
|
|
521
|
+
| `guide.work-orders-active-inference-route-remote-probes-20261012` | Active Inference Route Remote Probes 20261012 | Bundled Omnius documentation artifact: docs/work-orders/active-inference-route-remote-probes-20261012.json. |
|
|
521
522
|
| `guide.work-orders-daemon-hud-ui-overhaul` | Daemon HUD UI Overhaul Work Order | Overhaul the daemon web interface using /home/roko/Desktop/hud-ui-style-kit(6)/hud-ui-style-kit as the source of truth. Preserve current daemon behavior while replacing the OpenWebUI-like rounded dashboard styling with the cold tactical HUD visual system. |
|
|
522
523
|
| `guide.work-orders-hermes-architecture-deltas-01-public-scrutiny-provenance-control-index-uppercase` | Public Scrutiny Provenance Control Index | Bundled Omnius documentation artifact: docs/work-orders/hermes-architecture-deltas/01-public-scrutiny-provenance-control/INDEX.md. |
|
|
523
524
|
| `guide.work-orders-hermes-architecture-deltas-01-public-scrutiny-provenance-control-workorder-uppercase` | Workorder: Public Scrutiny Provenance Control | Add a public Telegram scrutiny control plane that can elevate completion provenance checks when public accuracy risk rises, without hard-coded scenario phrases or shortcut wording that teaches the model to satisfy the gate without evidence. |
|
|
@@ -640,10 +641,13 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
640
641
|
| `guide.work-orders-telegram-progress-browser-20261011-wo-04-download-desktop-handoff-uppercase` | WO-04: Acquire browser files and expose desktop save-dialog tools | Status: complete — integrated and verified offline |
|
|
641
642
|
| `guide.work-orders-telegram-progress-browser-20261011-wo-05-verification-delivery-uppercase` | WO-05: Verify the integrated repair and deliver scoped commits | Status: complete — verified offline and delivered to origin/main |
|
|
642
643
|
| `guide.work-orders-telegram-reliability-consolidation-2026-09-28` | Telegram Reliability Consolidation — 2026-09-28 | Rule: check a box only after the named behavior is implemented and its listed verification passes. A parent box stays open until every child box is checked. |
|
|
644
|
+
| `guide.work-orders-wo-active-inference-route-and-telegram-review-20261012-uppercase` | Active inference route and Telegram completion review | Status: implementation complete and verified. Publication remains with the user. |
|
|
643
645
|
| `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 |
|
|
644
646
|
| `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. |
|
|
647
|
+
| `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. |
|
|
645
648
|
| `guide.work-orders-wo-primary-checkout-fallback-delivery-20261012-uppercase` | Primary checkout delivery and remote output capacity | Status: implementation complete and verified in the primary checkout. Publication remains with the user. |
|
|
646
649
|
| `guide.work-orders-wo-telegram-fallback-20261012-uppercase` | Telegram outage fallback and user-selected approval mode | Status: implementation complete; distributable verification recorded below. Publication and runtime installation are reserved for the user. |
|
|
650
|
+
| `guide.work-orders-wo-telegram-unavailable-review-presentation-20261012-uppercase` | Telegram reply presentation when an auxiliary review is unavailable | Status: implemented and verified. Publication and runtime replacement remain with the user. |
|
|
647
651
|
| `guide.work-orders-world-class-memory-compiler-readme-uppercase` | World-Class Memory Compiler Program | Status: active implementation program Owner: Omnius orchestration and memory packages Last updated: 2026-07-13 |
|
|
648
652
|
| `guide.work-orders-world-class-memory-compiler-tracker-uppercase` | Memory Compiler Implementation Tracker | Last reconciled: 2026-07-13 Authority: This file is the granular program tracker. The work-order documents define the contract and acceptance criteria; neither test output nor a model claim may check an item without the named evidence. |
|
|
649
653
|
| `guide.work-orders-world-class-memory-compiler-wo-01-exact-request-budget-uppercase` | WO-01 — Exact Request and Budget Compiler | Status: in progress Primary modules: packages/orchestrator/src/agenticRunner.ts, contextWindowDump.ts, context-compiler.ts, context-fabric.ts Depends on: none |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Active inference route and Telegram completion review
|
|
2
|
+
|
|
3
|
+
Status: implementation complete and verified. Publication remains with the user.
|
|
4
|
+
|
|
5
|
+
## Observed behavior
|
|
6
|
+
|
|
7
|
+
The installed 1.0.843 runtime contains the repaired fallback bundle. At 23:36
|
|
8
|
+
UTC, Hermes answered Telegram input 3357. A subsequent native goal assessment
|
|
9
|
+
failed through the remote cascade, leaving the greeting with an incomplete-task
|
|
10
|
+
suffix. The TUI header still displayed the configured local model throughout
|
|
11
|
+
remote inference.
|
|
12
|
+
|
|
13
|
+
## Work orders and acceptance
|
|
14
|
+
|
|
15
|
+
1. Trace the actual running process and request artifacts. Separate the primary
|
|
16
|
+
reply from completion-review failures; reproduce the observed transport
|
|
17
|
+
incompatibility before repairing it.
|
|
18
|
+
2. Display the actual selected provider model and Local/Remote location in the
|
|
19
|
+
TUI header for both terminal and Telegram inference. Keep configured local
|
|
20
|
+
credentials, endpoint and model unchanged. Fence stale request callbacks.
|
|
21
|
+
3. Retry the original local route automatically after its bounded outage
|
|
22
|
+
cooldown on real work. Restore the local display only when local inference
|
|
23
|
+
produces usable output. Do not generate background probe requests.
|
|
24
|
+
4. Make Telegram completion reviews usable through the remote fallback while
|
|
25
|
+
preserving the complete response schema and host validation. Do not bypass
|
|
26
|
+
evidence or provider acknowledgement checks to declare success.
|
|
27
|
+
5. Keep request-specific provider incompatibilities from disabling unrelated
|
|
28
|
+
requests. Surface bounded diagnostic classes/statuses without provider error
|
|
29
|
+
bodies, endpoint credentials, environment values or prompt contents.
|
|
30
|
+
6. Exercise native Telegram greeting and review, route changes, streaming and
|
|
31
|
+
unary recovery, stale owners, cancellation, manual fallback and exhaustion.
|
|
32
|
+
Rebuild and verify the actual publication bundle; commit and push only this
|
|
33
|
+
repair while preserving unrelated working-tree edits.
|
|
34
|
+
|
|
35
|
+
## Constraints
|
|
36
|
+
|
|
37
|
+
No Telegram messages, local inference or CUDA workloads are required for the
|
|
38
|
+
regressions. Synthetic remote probes may use only public catalog routes and
|
|
39
|
+
non-sensitive fixture text. The user handles npm publication.
|
|
40
|
+
|
|
41
|
+
## Diagnosis and implemented behavior
|
|
42
|
+
|
|
43
|
+
The original review's per-provider errors were not retained. Synthetic probes
|
|
44
|
+
accepted the exact strict assessment schema. Back-to-back streamed Hermes
|
|
45
|
+
requests reproduced a successful first request followed by an empty HTTP 429
|
|
46
|
+
response with `Retry-After: 1`. The prior code immediately exhausted the cascade
|
|
47
|
+
and imposed a minimum 15-second provider cooldown. The native Telegram
|
|
48
|
+
regression reproduced the incomplete suffix before the repair.
|
|
49
|
+
|
|
50
|
+
Fallback now tries other available compatible routes, then waits for a
|
|
51
|
+
throttled route within the same total request deadline. It honors Retry-After,
|
|
52
|
+
limits each route to three attempts, and retains cancellation, ownership and
|
|
53
|
+
the no-replay boundary after streamed output begins. Non-429 request rejections
|
|
54
|
+
do not suppress unrelated requests. A 429 followed by a deterministic rejection
|
|
55
|
+
does not cause another retry from stale throttle state.
|
|
56
|
+
|
|
57
|
+
LLM7's `default` selector is absent from its model catalog. For keyless routes
|
|
58
|
+
without output/context metadata, a host-only hint selects provider output
|
|
59
|
+
defaults at the actual pinned OpenAI wire boundary. Complete messages, tools
|
|
60
|
+
and response schemas remain intact. Known-capacity routes retain the explicit
|
|
61
|
+
bounded output ceiling. Local request capacity is unchanged.
|
|
62
|
+
|
|
63
|
+
Host route lifecycle receipts contain only model/provider identifiers,
|
|
64
|
+
location, phase, request identity and bounded diagnostic category/status. The
|
|
65
|
+
TUI and Telegram paths deliver these receipts to the header. Local selection
|
|
66
|
+
establishes ownership while retaining an active remote label; usable local
|
|
67
|
+
success restores the local label. The existing non-sliding 15-second local
|
|
68
|
+
cooldown permits recovery on subsequent real work without background generation.
|
|
69
|
+
Explicit configuration changes invalidate older UI handlers. Display observer
|
|
70
|
+
failures cannot discard successful inference or trigger replay.
|
|
71
|
+
|
|
72
|
+
Synthetic probe evidence is recorded in
|
|
73
|
+
`active-inference-route-remote-probes-20261012.json`.
|
|
74
|
+
|
|
75
|
+
## Verification
|
|
76
|
+
|
|
77
|
+
- All 11 workspace projects passed a clean rebuild and the staging audit.
|
|
78
|
+
- 350 orchestrator checks passed. The CLI run passed 203 checks and exposed an
|
|
79
|
+
obsolete primary-telemetry fixture that also failed on clean `14db5c33`.
|
|
80
|
+
Updating only that fixture to the permitted action profile and one turn
|
|
81
|
+
preserved every assertion and passed, bringing the selected CLI checks to
|
|
82
|
+
204. No production permission or completion guard was weakened.
|
|
83
|
+
- The actual tarball passed its 528-file audit with zero warnings. An isolated
|
|
84
|
+
installation with lifecycle scripts disabled passed all 12 bundled-backend
|
|
85
|
+
checks: automatic/manual unary and streaming, primary-to-review throttling,
|
|
86
|
+
successful local recovery, and unknown-selector output defaults on the wire.
|
|
87
|
+
HTTP and DNS were mocked throughout these bundled checks.
|
|
88
|
+
- Independent review reproduced and verified the fixes for stale throttle
|
|
89
|
+
eligibility, the actual output-omission gate and display-observer exceptions.
|
|
90
|
+
|
|
91
|
+
The isolated bundle check does not establish a working native installation:
|
|
92
|
+
the user's ordinary fresh-install gate subsequently reported a required
|
|
93
|
+
`node-datachannel` native-build failure. That installer repair is separate work
|
|
94
|
+
and remains necessary before publication.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Native transport failure in the fresh npm installation gate
|
|
2
|
+
|
|
3
|
+
Status: implemented and verified. Publication remains with the user.
|
|
4
|
+
|
|
5
|
+
## Observed failure
|
|
6
|
+
|
|
7
|
+
The user's publisher packed 1.0.844 and passed the 528-file tarball audit. Its
|
|
8
|
+
ordinary fresh global install then failed in `node-datachannel@0.27.0`: a
|
|
9
|
+
prebuilt download timed out, and the package's fallback `prebuild -r napi`
|
|
10
|
+
crashed with an undefined N-API target and `expected first argument to be an
|
|
11
|
+
array`. The gate requested `--omit=optional` and retained lifecycle scripts.
|
|
12
|
+
|
|
13
|
+
## Work orders
|
|
14
|
+
|
|
15
|
+
1. Establish the actual failing dependency path and compare global installation
|
|
16
|
+
with the successful local-prefix dependency projection. Do not assume that
|
|
17
|
+
a different nested version explains this failure.
|
|
18
|
+
2. Repair the dependency/install boundary without suppressing failures from
|
|
19
|
+
required native dependencies or weakening SQLite startup verification.
|
|
20
|
+
Preserve transport behavior or state any actual unavailable optional
|
|
21
|
+
capability accurately.
|
|
22
|
+
3. Add a regression for the discovered dependency/install behavior and rerun
|
|
23
|
+
the real fresh-install gate with lifecycle scripts enabled, normal startup
|
|
24
|
+
checks, required SQLite query, library exports and AIWG companion verification.
|
|
25
|
+
4. Preserve unrelated package and lockfile edits, retain the inference-route
|
|
26
|
+
repair, and deliver a separate scoped, verified commit to the tracked branch.
|
|
27
|
+
5. Coordinate staging with the user's active publisher. Keep diagnosis probes
|
|
28
|
+
in private prefixes and copy the tarball before testing it, so a rebuild
|
|
29
|
+
cannot replace the artifact under verification.
|
|
30
|
+
|
|
31
|
+
## Scope constraints
|
|
32
|
+
|
|
33
|
+
No local inference, CUDA workload change, Telegram delivery, global host
|
|
34
|
+
installation, daemon activation or npm publication is required. Lifecycle
|
|
35
|
+
probes must use the existing gate's daemon/wrapper/bootstrap suppression.
|
|
36
|
+
|
|
37
|
+
## Anchored diagnosis and repair
|
|
38
|
+
|
|
39
|
+
- The sole incoming edge to failing `node-datachannel@0.27.0` belongs to
|
|
40
|
+
`omnius-fabric@0.12.9`. Its optional metadata is already correct.
|
|
41
|
+
- A local-prefix install omits this dependency; a global tarball install on
|
|
42
|
+
npm 11.9.0 installs it despite `--omit=optional`. This matches
|
|
43
|
+
[npm/cli issue 8284](https://github.com/npm/cli/issues/8284). The global
|
|
44
|
+
`--install-links` folder variant and a root dependency override also failed
|
|
45
|
+
to exclude or replace the physical legacy addon in isolated probes.
|
|
46
|
+
- Commit `239dd998` added Fabric as one publish-manifest line, with no code
|
|
47
|
+
integration. Independent source, shipped-bundle, shim and Nexus checks
|
|
48
|
+
found no imports, commands or downstream dependency requiring Fabric.
|
|
49
|
+
Nexus independently uses the newer `node-datachannel@0.33.4` packaging.
|
|
50
|
+
- Remove the unused Fabric dependency, normalize old staging manifests at
|
|
51
|
+
build time, and regenerate the ordinary shrinkwrap. Preserve required
|
|
52
|
+
Nexus and SQLite and the exact global tarball install gate.
|
|
53
|
+
- Audit both staging and packed dependency graphs against stale Fabric and
|
|
54
|
+
legacy native-build entries. Keep Fabric autostart disabled in smoke-test
|
|
55
|
+
environments, alongside Omnius daemon/wrapper/bootstrap suppression.
|
|
56
|
+
|
|
57
|
+
## Verification
|
|
58
|
+
|
|
59
|
+
- Full workspace rebuild and bundling passed. The packed 1.0.845 artifact
|
|
60
|
+
passed the tarball audit with 529 files and no warnings.
|
|
61
|
+
- The ordinary isolated `npm install -g <tarball> --omit=optional` passed
|
|
62
|
+
twice with lifecycle scripts enabled and compiler commands blocked. CLI
|
|
63
|
+
version, required in-memory SQLite query, library exports, AIWG companion
|
|
64
|
+
version and postinstall PATH guidance all passed. The second pass also
|
|
65
|
+
disabled the companion transcription package's optional Python/model
|
|
66
|
+
bootstrap, keeping model setup outside this compiler-free core check.
|
|
67
|
+
- Physical installation contains no Fabric or legacy `0.27.0` addon; Nexus's
|
|
68
|
+
newer `0.33.4` addon remains installed. No required dependency was made
|
|
69
|
+
optional and the normal global tarball installation was not substituted.
|
|
70
|
+
- All 48 publish-related tests passed, including 19 new dependency graph
|
|
71
|
+
regressions. Both audits share the same validation and retain required
|
|
72
|
+
SQLite checks.
|
|
73
|
+
- All 12 bundled inference fallback scenarios passed against the actual
|
|
74
|
+
lifecycle-installed artifact with mocked HTTP/DNS, no inference requests
|
|
75
|
+
and no Telegram sends.
|
|
76
|
+
|
|
77
|
+
Evidence logs: `/tmp/omnius-native-transport-publish-build.log`,
|
|
78
|
+
`/tmp/omnius-native-transport-tarball-audit.log`,
|
|
79
|
+
`/tmp/omnius-native-transport-fresh-install-final.log`,
|
|
80
|
+
`/tmp/omnius-native-transport-policy-tests.log`, and
|
|
81
|
+
`/tmp/omnius-native-transport-installed-fallback-verification.json`.
|
|
82
|
+
Private prefixes and copied artifacts isolated tests from the user's
|
|
83
|
+
publisher and running services. Release version and unrelated lockfile
|
|
84
|
+
metadata changes remain owned by the user.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Telegram reply presentation when an auxiliary review is unavailable
|
|
2
|
+
|
|
3
|
+
Status: implemented and verified. Publication and runtime replacement remain
|
|
4
|
+
with the user.
|
|
5
|
+
|
|
6
|
+
## Live incident
|
|
7
|
+
|
|
8
|
+
The user's 17:08 PDT `quick ping!` received `pong`, followed by an incorrect
|
|
9
|
+
generic assertion that the task remained incomplete. This was the repaired
|
|
10
|
+
1.0.845 runtime, PID 2042875 started at 17:05:34 PDT, not stale code. Its
|
|
11
|
+
bundle SHA256 was
|
|
12
|
+
`a9cbdc655c3f3be3c254f09caaa9149c8677cb9858cb12940142e24dc9eb514e`.
|
|
13
|
+
|
|
14
|
+
Input 3360, update 666870213, runner `telegram:a0e3cbd0c36f1126`, finalization
|
|
15
|
+
`telegram-64ac9937dc7647a8-1791850093839-1` and conversation event line 1905
|
|
16
|
+
anchor the trace. The final text was acknowledged at 17:08:48 PDT. The
|
|
17
|
+
auxiliary native goal assessment was `unavailable`, not `incomplete`.
|
|
18
|
+
User-visible telemetry recorded local HTTP 503, LLM7 HTTP 429 and OVH empty
|
|
19
|
+
response. Detailed review errors were emitted to the live TUI, not retained
|
|
20
|
+
in the finalization's generic unavailable assessment.
|
|
21
|
+
|
|
22
|
+
The runner's earlier `incomplete_verification` receipt was awaiting the
|
|
23
|
+
visible-response provider acknowledgement. It did not demonstrate unfinished
|
|
24
|
+
work. The bridge appended the failure sentence for every assessment that
|
|
25
|
+
was not ready, conflating review transport failure with a negative verdict.
|
|
26
|
+
|
|
27
|
+
## Work orders
|
|
28
|
+
|
|
29
|
+
1. Exclude only unavailable auxiliary reviews from the generic incomplete
|
|
30
|
+
suffix when the current runner has not declared a partial answer. Keep
|
|
31
|
+
actual partial, incomplete and uncertain verdict behavior intact.
|
|
32
|
+
2. Preserve current owner, input, epoch, steering, exact candidate and
|
|
33
|
+
physical evidence checks before sending useful text despite an unavailable
|
|
34
|
+
review. No failed or stale review grants completion or delivery authority.
|
|
35
|
+
3. Preserve the unavailable assessment, retained goal and real receipts;
|
|
36
|
+
do not forge fulfillment, consume unresolved work, or automatically replay
|
|
37
|
+
object actions after the provider acknowledges the visible reply.
|
|
38
|
+
4. Exercise real runner-to-delivery fixtures for ping, transport failure,
|
|
39
|
+
empty/truncated assessment, useful completed read work, genuine partial
|
|
40
|
+
work and stale owner/candidate/steering bindings. Include public native
|
|
41
|
+
replies as well as admin DMs.
|
|
42
|
+
5. Rebuild all workspace packages, audit the actual artifact and deliver a
|
|
43
|
+
scoped verified commit to the tracked branch. Preserve unrelated bridge
|
|
44
|
+
edits and user-owned release versions. Publication remains with the user.
|
|
45
|
+
|
|
46
|
+
No greeting classifier, model assertion of external effects, live inference,
|
|
47
|
+
Telegram test sends, service restart or CUDA workload change is required.
|
|
48
|
+
|
|
49
|
+
## Result and verification
|
|
50
|
+
|
|
51
|
+
Unavailable reviews no longer append the incomplete-task sentence to useful
|
|
52
|
+
current replies. Genuine partial answers and negative/uncertain verdicts
|
|
53
|
+
retain their existing reporting. The unavailable review and retained goal
|
|
54
|
+
remain unresolved internally; no new completion authority or automatic
|
|
55
|
+
object-work replay is created. Delivery additionally checks the unavailable
|
|
56
|
+
assessment's exact candidate, steering and physical evidence bindings.
|
|
57
|
+
|
|
58
|
+
- All 62 tests across private native closeout, private runner and public
|
|
59
|
+
runner suites passed. Cases include exact `pong` after HTTP 503, empty or
|
|
60
|
+
truncated auxiliary output, useful completed read work, genuine partial
|
|
61
|
+
file work, failed provider acknowledgement and stale owner/epoch/generation,
|
|
62
|
+
candidate and steering bindings.
|
|
63
|
+
- Broader native core, steering, initial-instruction, update adoption,
|
|
64
|
+
remote fallback and delivery checks passed 112 of 114 cases. The two panel
|
|
65
|
+
label assertions at update-adoption test lines 234 and 300 also fail on
|
|
66
|
+
clean prior commit `14db5c33`, before completion runs. Their test and panel
|
|
67
|
+
logic are unchanged; they are recorded as existing failures, not relaxed.
|
|
68
|
+
- All four bundle-policy tests passed, including rejection of the earlier
|
|
69
|
+
fallback bundle that lacked this unavailable-review repair.
|
|
70
|
+
- The full workspace rebuild, bundle audit and 530-file tarball audit passed.
|
|
71
|
+
The exact global tarball installation passed with lifecycle scripts enabled
|
|
72
|
+
and compilers blocked, including SQLite, CLI version, library exports,
|
|
73
|
+
AIWG companion and PATH guidance checks.
|
|
74
|
+
- All 12 mocked inference scenarios passed against the actual installed
|
|
75
|
+
bundle. Runtime bundle SHA256:
|
|
76
|
+
`f568a8a54e037eb22f21193f7f589f8769b6b94369c0e9dfa7446ca6e8a5f87b`.
|
|
77
|
+
|
|
78
|
+
Evidence logs: `/tmp/omnius-native-goal-review-closeout-tests-20261012.log`,
|
|
79
|
+
`/tmp/omnius-unavailable-review-integration.log`,
|
|
80
|
+
`/tmp/omnius-native-update-adoption-baseline-14db.log`,
|
|
81
|
+
`/tmp/omnius-unavailable-review-bundle-policy-tests.log`,
|
|
82
|
+
`/tmp/omnius-unavailable-review-publish-build.log`,
|
|
83
|
+
`/tmp/omnius-unavailable-review-tarball-audit.log`,
|
|
84
|
+
`/tmp/omnius-unavailable-review-fresh-install.log` and
|
|
85
|
+
`/tmp/omnius-unavailable-review-installed-verification.json`.
|
|
86
|
+
|
|
87
|
+
The live bot's earlier 1.0.845 process has not been replaced by these tests.
|
|
88
|
+
Its next user-owned publish/update and restart must load the rebuilt code.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "omnius.inference-route-incident-evidence.v1",
|
|
3
|
+
"date": "2026-10-12",
|
|
4
|
+
"installedVersion": "1.0.843",
|
|
5
|
+
"installedBundleSha256": "1c020e46538ba5a79d1d2b7586f2f8922b0f4bab36354bd878b49939461d8d9b",
|
|
6
|
+
"incident": {
|
|
7
|
+
"inputMessageId": 3357,
|
|
8
|
+
"runId": "telegram:e6eb632a9f3e0acd",
|
|
9
|
+
"primaryFallbackProvider": "hermes",
|
|
10
|
+
"primaryFallbackSucceededAt": "2026-10-12T23:36:17.680Z",
|
|
11
|
+
"nativeGoalAssessment": "unavailable",
|
|
12
|
+
"originalProviderFailureBodiesAvailable": false
|
|
13
|
+
},
|
|
14
|
+
"syntheticRemoteProbes": [
|
|
15
|
+
{ "provider": "hermes", "transport": "unary", "format": "exact native assessment schema", "status": 200, "conformingJson": true },
|
|
16
|
+
{ "provider": "hermes", "transport": "stream", "format": "exact native assessment schema", "status": 200, "sseFrames": 43, "done": true },
|
|
17
|
+
{ "provider": "hermes", "transport": "stream", "timing": "immediately after successful identical request", "status": 429, "retryAfterSeconds": 1, "emptyBody": true },
|
|
18
|
+
{ "provider": "llm7", "transport": "stream", "format": "small strict schema", "status": 200, "visibleContent": true, "done": true },
|
|
19
|
+
{ "provider": "ovh_ai_endpoints", "transport": "stream", "format": "small strict schema", "status": 200, "visibleContent": false, "done": true, "outputCeiling": 128 }
|
|
20
|
+
],
|
|
21
|
+
"catalogs": {
|
|
22
|
+
"hermes": { "model": "turboderp/Qwen3.8-27B-exl3", "max_model_len": 65536 },
|
|
23
|
+
"llm7": { "modelCount": 65, "selector": "default", "selectorPresentInCatalog": false },
|
|
24
|
+
"ovh_ai_endpoints": { "model": "gpt-oss-20b", "context_length": 131072, "max_completion_tokens": 131072 }
|
|
25
|
+
},
|
|
26
|
+
"limits": [
|
|
27
|
+
"The original review's per-provider HTTP errors were not durably retained; the throttling probe reproduces a concrete failure path without proving every original provider error.",
|
|
28
|
+
"The OVH probe used an intentionally small output ceiling and does not establish failure with a normal output allowance."
|
|
29
|
+
],
|
|
30
|
+
"userContextSentByProbes": false,
|
|
31
|
+
"credentialsSentByProbes": false,
|
|
32
|
+
"localInferenceRequests": 0,
|
|
33
|
+
"telegramMessagesSent": 0
|
|
34
|
+
}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.846",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.846",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"ignore": "^7.0.5",
|
|
19
19
|
"image-to-ascii": "file:vendor/image-to-ascii",
|
|
20
20
|
"nats.ws": "1.30.3",
|
|
21
|
-
"omnius-fabric": "^0.12.8",
|
|
22
21
|
"open-agents-nexus": "1.17.3",
|
|
23
22
|
"ws": "^8.20.0",
|
|
24
23
|
"zod": "^4.4.3"
|
|
@@ -430,15 +429,6 @@
|
|
|
430
429
|
"uint8arrays": "^5.1.0"
|
|
431
430
|
}
|
|
432
431
|
},
|
|
433
|
-
"node_modules/@helia/utils/node_modules/cborg": {
|
|
434
|
-
"version": "5.1.11",
|
|
435
|
-
"resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.11.tgz",
|
|
436
|
-
"integrity": "sha512-oc6Pzg/gkTobxHZNgMmny+G99dOeBMbAmnGHcZWMKtolxZBIVwfi0Pj0khxEtNU8HMFdbT5sK0HmtgecDUPP0A==",
|
|
437
|
-
"license": "Apache-2.0",
|
|
438
|
-
"bin": {
|
|
439
|
-
"cborg": "lib/bin.js"
|
|
440
|
-
}
|
|
441
|
-
},
|
|
442
432
|
"node_modules/@ipld/dag-cbor": {
|
|
443
433
|
"version": "9.2.7",
|
|
444
434
|
"resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.7.tgz",
|
|
@@ -449,15 +439,6 @@
|
|
|
449
439
|
"multiformats": "^13.1.0"
|
|
450
440
|
}
|
|
451
441
|
},
|
|
452
|
-
"node_modules/@ipld/dag-cbor/node_modules/cborg": {
|
|
453
|
-
"version": "5.1.11",
|
|
454
|
-
"resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.11.tgz",
|
|
455
|
-
"integrity": "sha512-oc6Pzg/gkTobxHZNgMmny+G99dOeBMbAmnGHcZWMKtolxZBIVwfi0Pj0khxEtNU8HMFdbT5sK0HmtgecDUPP0A==",
|
|
456
|
-
"license": "Apache-2.0",
|
|
457
|
-
"bin": {
|
|
458
|
-
"cborg": "lib/bin.js"
|
|
459
|
-
}
|
|
460
|
-
},
|
|
461
442
|
"node_modules/@ipld/dag-json": {
|
|
462
443
|
"version": "10.2.9",
|
|
463
444
|
"resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.9.tgz",
|
|
@@ -468,15 +449,6 @@
|
|
|
468
449
|
"multiformats": "^13.1.0"
|
|
469
450
|
}
|
|
470
451
|
},
|
|
471
|
-
"node_modules/@ipld/dag-json/node_modules/cborg": {
|
|
472
|
-
"version": "5.1.11",
|
|
473
|
-
"resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.11.tgz",
|
|
474
|
-
"integrity": "sha512-oc6Pzg/gkTobxHZNgMmny+G99dOeBMbAmnGHcZWMKtolxZBIVwfi0Pj0khxEtNU8HMFdbT5sK0HmtgecDUPP0A==",
|
|
475
|
-
"license": "Apache-2.0",
|
|
476
|
-
"bin": {
|
|
477
|
-
"cborg": "lib/bin.js"
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
452
|
"node_modules/@ipld/dag-pb": {
|
|
481
453
|
"version": "4.2.0",
|
|
482
454
|
"resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.2.0.tgz",
|
|
@@ -1399,6 +1371,15 @@
|
|
|
1399
1371
|
"uint8arrays": "^5.1.0"
|
|
1400
1372
|
}
|
|
1401
1373
|
},
|
|
1374
|
+
"node_modules/@libp2p/utils/node_modules/cborg": {
|
|
1375
|
+
"version": "4.5.8",
|
|
1376
|
+
"resolved": "https://registry.npmjs.org/cborg/-/cborg-4.5.8.tgz",
|
|
1377
|
+
"integrity": "sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==",
|
|
1378
|
+
"license": "Apache-2.0",
|
|
1379
|
+
"bin": {
|
|
1380
|
+
"cborg": "lib/bin.js"
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1402
1383
|
"node_modules/@libp2p/webrtc": {
|
|
1403
1384
|
"version": "6.1.0",
|
|
1404
1385
|
"resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.1.0.tgz",
|
|
@@ -1489,29 +1470,6 @@
|
|
|
1489
1470
|
"integrity": "sha512-vbIm83F2yZ1pWJGS0yl0ysracIvv56LtbrIyiIQHoLdYDJOMoLfVFsXhh9DUH4SFdkdkFhucyWniihsNzVEjkQ==",
|
|
1490
1471
|
"license": "Apache-2.0 OR MIT"
|
|
1491
1472
|
},
|
|
1492
|
-
"node_modules/@libp2p/webrtc/node_modules/node-datachannel": {
|
|
1493
|
-
"version": "0.33.4",
|
|
1494
|
-
"resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.33.4.tgz",
|
|
1495
|
-
"integrity": "sha512-qiUrdh8vY9XhglEnx91HK0N2JEAAu8qTZl0fcR3yQd0fFrdO39NwDeJD/KpG+WKUb9/o4p2UwnP+/HftA/xMbQ==",
|
|
1496
|
-
"license": "MPL 2.0",
|
|
1497
|
-
"dependencies": {
|
|
1498
|
-
"detect-libc": "^2.0.4"
|
|
1499
|
-
},
|
|
1500
|
-
"engines": {
|
|
1501
|
-
"node": ">=18.20.0"
|
|
1502
|
-
},
|
|
1503
|
-
"optionalDependencies": {
|
|
1504
|
-
"@node-datachannel/android-arm64": "0.33.4",
|
|
1505
|
-
"@node-datachannel/darwin-arm64": "0.33.4",
|
|
1506
|
-
"@node-datachannel/darwin-x64": "0.33.4",
|
|
1507
|
-
"@node-datachannel/linux-arm64-gnu": "0.33.4",
|
|
1508
|
-
"@node-datachannel/linux-arm64-musl": "0.33.4",
|
|
1509
|
-
"@node-datachannel/linux-x64-gnu": "0.33.4",
|
|
1510
|
-
"@node-datachannel/linux-x64-musl": "0.33.4",
|
|
1511
|
-
"@node-datachannel/win32-arm64-msvc": "0.33.4",
|
|
1512
|
-
"@node-datachannel/win32-x64-msvc": "0.33.4"
|
|
1513
|
-
}
|
|
1514
|
-
},
|
|
1515
1473
|
"node_modules/@libp2p/webrtc/node_modules/protons-runtime": {
|
|
1516
1474
|
"version": "7.1.2",
|
|
1517
1475
|
"resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.1.2.tgz",
|
|
@@ -1698,51 +1656,6 @@
|
|
|
1698
1656
|
"is-ip": "^5.0.0"
|
|
1699
1657
|
}
|
|
1700
1658
|
},
|
|
1701
|
-
"node_modules/@nats-io/nats-core": {
|
|
1702
|
-
"version": "3.4.0",
|
|
1703
|
-
"resolved": "https://registry.npmjs.org/@nats-io/nats-core/-/nats-core-3.4.0.tgz",
|
|
1704
|
-
"integrity": "sha512-QMDM86EUNm+wudlKC67HLar/KHHQUvJGLfb4jbahje3pUk3K9afeck9fwsxBZF0eUFox6T/TA6m/t+lQqf+QsQ==",
|
|
1705
|
-
"license": "Apache-2.0",
|
|
1706
|
-
"dependencies": {
|
|
1707
|
-
"@nats-io/nkeys": "2.0.3",
|
|
1708
|
-
"@nats-io/nuid": "3.0.0"
|
|
1709
|
-
}
|
|
1710
|
-
},
|
|
1711
|
-
"node_modules/@nats-io/nkeys": {
|
|
1712
|
-
"version": "2.0.3",
|
|
1713
|
-
"resolved": "https://registry.npmjs.org/@nats-io/nkeys/-/nkeys-2.0.3.tgz",
|
|
1714
|
-
"integrity": "sha512-JVt56GuE6Z89KUkI4TXUbSI9fmIfAmk6PMPknijmuL72GcD+UgIomTcRWiNvvJKxA01sBbmIPStqJs5cMRBC3A==",
|
|
1715
|
-
"license": "Apache-2.0",
|
|
1716
|
-
"dependencies": {
|
|
1717
|
-
"tweetnacl": "^1.0.3"
|
|
1718
|
-
},
|
|
1719
|
-
"engines": {
|
|
1720
|
-
"node": ">=18.0.0"
|
|
1721
|
-
}
|
|
1722
|
-
},
|
|
1723
|
-
"node_modules/@nats-io/nuid": {
|
|
1724
|
-
"version": "3.0.0",
|
|
1725
|
-
"resolved": "https://registry.npmjs.org/@nats-io/nuid/-/nuid-3.0.0.tgz",
|
|
1726
|
-
"integrity": "sha512-QbXZDrxmYlrn5AD06gYcUTmEHwxn96HBQMIk7XTjDlEcx6FPzVBBPjp4AMRh1lEv6B4iJ6Xb/Uz61JugPXFRQg==",
|
|
1727
|
-
"license": "Apache-2.0",
|
|
1728
|
-
"engines": {
|
|
1729
|
-
"node": ">= 22.x"
|
|
1730
|
-
}
|
|
1731
|
-
},
|
|
1732
|
-
"node_modules/@nats-io/transport-node": {
|
|
1733
|
-
"version": "3.4.0",
|
|
1734
|
-
"resolved": "https://registry.npmjs.org/@nats-io/transport-node/-/transport-node-3.4.0.tgz",
|
|
1735
|
-
"integrity": "sha512-hH7u7ejIBTFEJIZ8rIcMrHJI6wl+HhpO5sVFs1+ppmXa8RuB2+Lh1+UwTzZ5xTNNm1TKcRkYy+2qCV56qp8RxA==",
|
|
1736
|
-
"license": "Apache-2.0",
|
|
1737
|
-
"dependencies": {
|
|
1738
|
-
"@nats-io/nats-core": "3.4.0",
|
|
1739
|
-
"@nats-io/nkeys": "2.0.3",
|
|
1740
|
-
"@nats-io/nuid": "3.0.0"
|
|
1741
|
-
},
|
|
1742
|
-
"engines": {
|
|
1743
|
-
"node": ">= 18.0.0"
|
|
1744
|
-
}
|
|
1745
|
-
},
|
|
1746
1659
|
"node_modules/@nkn/ncp": {
|
|
1747
1660
|
"version": "1.1.2",
|
|
1748
1661
|
"resolved": "https://registry.npmjs.org/@nkn/ncp/-/ncp-1.1.2.tgz",
|
|
@@ -2871,9 +2784,9 @@
|
|
|
2871
2784
|
}
|
|
2872
2785
|
},
|
|
2873
2786
|
"node_modules/cborg": {
|
|
2874
|
-
"version": "
|
|
2875
|
-
"resolved": "https://registry.npmjs.org/cborg/-/cborg-
|
|
2876
|
-
"integrity": "sha512-
|
|
2787
|
+
"version": "5.1.11",
|
|
2788
|
+
"resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.11.tgz",
|
|
2789
|
+
"integrity": "sha512-oc6Pzg/gkTobxHZNgMmny+G99dOeBMbAmnGHcZWMKtolxZBIVwfi0Pj0khxEtNU8HMFdbT5sK0HmtgecDUPP0A==",
|
|
2877
2790
|
"license": "Apache-2.0",
|
|
2878
2791
|
"bin": {
|
|
2879
2792
|
"cborg": "lib/bin.js"
|
|
@@ -3008,15 +2921,6 @@
|
|
|
3008
2921
|
"node": ">= 0.8"
|
|
3009
2922
|
}
|
|
3010
2923
|
},
|
|
3011
|
-
"node_modules/commander": {
|
|
3012
|
-
"version": "14.0.3",
|
|
3013
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz",
|
|
3014
|
-
"integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==",
|
|
3015
|
-
"license": "MIT",
|
|
3016
|
-
"engines": {
|
|
3017
|
-
"node": ">=20"
|
|
3018
|
-
}
|
|
3019
|
-
},
|
|
3020
2924
|
"node_modules/convert-hrtime": {
|
|
3021
2925
|
"version": "5.0.0",
|
|
3022
2926
|
"resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
|
|
@@ -3944,15 +3848,6 @@
|
|
|
3944
3848
|
"uint8arrays": "^5.1.0"
|
|
3945
3849
|
}
|
|
3946
3850
|
},
|
|
3947
|
-
"node_modules/ipns/node_modules/cborg": {
|
|
3948
|
-
"version": "5.1.11",
|
|
3949
|
-
"resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.11.tgz",
|
|
3950
|
-
"integrity": "sha512-oc6Pzg/gkTobxHZNgMmny+G99dOeBMbAmnGHcZWMKtolxZBIVwfi0Pj0khxEtNU8HMFdbT5sK0HmtgecDUPP0A==",
|
|
3951
|
-
"license": "Apache-2.0",
|
|
3952
|
-
"bin": {
|
|
3953
|
-
"cborg": "lib/bin.js"
|
|
3954
|
-
}
|
|
3955
|
-
},
|
|
3956
3851
|
"node_modules/ipns/node_modules/protons-runtime": {
|
|
3957
3852
|
"version": "6.0.2",
|
|
3958
3853
|
"resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-6.0.2.tgz",
|
|
@@ -4470,12 +4365,6 @@
|
|
|
4470
4365
|
"graceful-fs": "^4.1.6"
|
|
4471
4366
|
}
|
|
4472
4367
|
},
|
|
4473
|
-
"node_modules/jsqr": {
|
|
4474
|
-
"version": "1.4.0",
|
|
4475
|
-
"resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz",
|
|
4476
|
-
"integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==",
|
|
4477
|
-
"license": "Apache-2.0"
|
|
4478
|
-
},
|
|
4479
4368
|
"node_modules/kuler": {
|
|
4480
4369
|
"version": "2.0.0",
|
|
4481
4370
|
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
|
|
@@ -4912,17 +4801,26 @@
|
|
|
4912
4801
|
"optional": true
|
|
4913
4802
|
},
|
|
4914
4803
|
"node_modules/node-datachannel": {
|
|
4915
|
-
"version": "0.
|
|
4916
|
-
"resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.
|
|
4917
|
-
"integrity": "sha512-
|
|
4918
|
-
"hasInstallScript": true,
|
|
4804
|
+
"version": "0.33.4",
|
|
4805
|
+
"resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.33.4.tgz",
|
|
4806
|
+
"integrity": "sha512-qiUrdh8vY9XhglEnx91HK0N2JEAAu8qTZl0fcR3yQd0fFrdO39NwDeJD/KpG+WKUb9/o4p2UwnP+/HftA/xMbQ==",
|
|
4919
4807
|
"license": "MPL 2.0",
|
|
4920
|
-
"optional": true,
|
|
4921
4808
|
"dependencies": {
|
|
4922
|
-
"
|
|
4809
|
+
"detect-libc": "^2.0.4"
|
|
4923
4810
|
},
|
|
4924
4811
|
"engines": {
|
|
4925
4812
|
"node": ">=18.20.0"
|
|
4813
|
+
},
|
|
4814
|
+
"optionalDependencies": {
|
|
4815
|
+
"@node-datachannel/android-arm64": "0.33.4",
|
|
4816
|
+
"@node-datachannel/darwin-arm64": "0.33.4",
|
|
4817
|
+
"@node-datachannel/darwin-x64": "0.33.4",
|
|
4818
|
+
"@node-datachannel/linux-arm64-gnu": "0.33.4",
|
|
4819
|
+
"@node-datachannel/linux-arm64-musl": "0.33.4",
|
|
4820
|
+
"@node-datachannel/linux-x64-gnu": "0.33.4",
|
|
4821
|
+
"@node-datachannel/linux-x64-musl": "0.33.4",
|
|
4822
|
+
"@node-datachannel/win32-arm64-msvc": "0.33.4",
|
|
4823
|
+
"@node-datachannel/win32-x64-msvc": "0.33.4"
|
|
4926
4824
|
}
|
|
4927
4825
|
},
|
|
4928
4826
|
"node_modules/node-fetch": {
|
|
@@ -4975,51 +4873,6 @@
|
|
|
4975
4873
|
"node": ">=0.10.0"
|
|
4976
4874
|
}
|
|
4977
4875
|
},
|
|
4978
|
-
"node_modules/omnius-fabric": {
|
|
4979
|
-
"version": "0.12.9",
|
|
4980
|
-
"resolved": "https://registry.npmjs.org/omnius-fabric/-/omnius-fabric-0.12.9.tgz",
|
|
4981
|
-
"integrity": "sha512-A5nngGmYmajoQpBoQ0gBzc2vxsec3rXGoPJ430aQJeqy+cgfPjLM8bfzyO7p/Nfj9Mb8FPlg30F0tLk+w3aonQ==",
|
|
4982
|
-
"hasInstallScript": true,
|
|
4983
|
-
"license": "MIT",
|
|
4984
|
-
"dependencies": {
|
|
4985
|
-
"@chainsafe/libp2p-noise": "^17.0.0",
|
|
4986
|
-
"@chainsafe/libp2p-yamux": "^8.0.1",
|
|
4987
|
-
"@libp2p/autonat": "^3.0.20",
|
|
4988
|
-
"@libp2p/bootstrap": "^12.0.22",
|
|
4989
|
-
"@libp2p/circuit-relay-v2": "^4.2.5",
|
|
4990
|
-
"@libp2p/crypto": "^5.1.18",
|
|
4991
|
-
"@libp2p/dcutr": "^3.0.20",
|
|
4992
|
-
"@libp2p/gossipsub": "^15.0.23",
|
|
4993
|
-
"@libp2p/identify": "^4.1.6",
|
|
4994
|
-
"@libp2p/kad-dht": "^16.3.0",
|
|
4995
|
-
"@libp2p/mdns": "^12.0.22",
|
|
4996
|
-
"@libp2p/peer-id": "^6.0.9",
|
|
4997
|
-
"@libp2p/ping": "^3.1.5",
|
|
4998
|
-
"@libp2p/pubsub-peer-discovery": "^12.0.0",
|
|
4999
|
-
"@libp2p/tcp": "^11.0.20",
|
|
5000
|
-
"@libp2p/upnp-nat": "^4.0.20",
|
|
5001
|
-
"@libp2p/websockets": "^10.1.13",
|
|
5002
|
-
"@multiformats/multiaddr": "^13.0.3",
|
|
5003
|
-
"@nats-io/transport-node": "^3.4.0",
|
|
5004
|
-
"commander": "^14.0.0",
|
|
5005
|
-
"jsqr": "^1.4.0",
|
|
5006
|
-
"libp2p": "^3.3.1",
|
|
5007
|
-
"nkn-sdk": "^1.3.6",
|
|
5008
|
-
"qrcode-terminal": "^0.12.0",
|
|
5009
|
-
"ws": "^8.18.0"
|
|
5010
|
-
},
|
|
5011
|
-
"bin": {
|
|
5012
|
-
"fabric": "dist/cli.js",
|
|
5013
|
-
"omnius-fabric": "dist/cli.js"
|
|
5014
|
-
},
|
|
5015
|
-
"engines": {
|
|
5016
|
-
"node": ">=20.10.0"
|
|
5017
|
-
},
|
|
5018
|
-
"optionalDependencies": {
|
|
5019
|
-
"@achingbrain/nat-port-mapper": "^4.0.5",
|
|
5020
|
-
"node-datachannel": "^0.27.0"
|
|
5021
|
-
}
|
|
5022
|
-
},
|
|
5023
4876
|
"node_modules/once": {
|
|
5024
4877
|
"version": "1.4.0",
|
|
5025
4878
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
|
@@ -5384,14 +5237,6 @@
|
|
|
5384
5237
|
"node": ">=16.0.0"
|
|
5385
5238
|
}
|
|
5386
5239
|
},
|
|
5387
|
-
"node_modules/qrcode-terminal": {
|
|
5388
|
-
"version": "0.12.0",
|
|
5389
|
-
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
|
|
5390
|
-
"integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
|
|
5391
|
-
"bin": {
|
|
5392
|
-
"qrcode-terminal": "bin/qrcode-terminal.js"
|
|
5393
|
-
}
|
|
5394
|
-
},
|
|
5395
5240
|
"node_modules/queue-microtask": {
|
|
5396
5241
|
"version": "1.2.3",
|
|
5397
5242
|
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.846",
|
|
4
4
|
"description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/library.js",
|
|
@@ -105,7 +105,6 @@
|
|
|
105
105
|
},
|
|
106
106
|
"dependencies": {
|
|
107
107
|
"better-sqlite3": "^12.10.0",
|
|
108
|
-
"omnius-fabric": "^0.12.8",
|
|
109
108
|
"glob": "^13.0.6",
|
|
110
109
|
"ignore": "^7.0.5",
|
|
111
110
|
"image-to-ascii": "file:vendor/image-to-ascii",
|