Files
OmniRoute/tests/unit/poolside-registry-models-9085.test.ts
Paco Cartones 568888d7f1 feat(providers): publish Poolside's probed Laguna Preview catalog (#10216)
The Poolside entry landed with an empty `models` list because the public
matrix could only reach the unauthenticated endpoint, which answers 401
`No Authorization header provided` — the same response that a generic probe
once read back as "invalid key" and that got the provider dropped (#2723,
#3054). An authenticated probe against `/v1/models` (2026-08-07, #9085)
returned 200 and the full Preview catalog, so the two models are now static:

  poolside/laguna-xs-2.1  Laguna XS 2.1
  poolside/laguna-s-2.1   Laguna S 2.1

Both report 262144 context, 32768 max completion tokens, `tools` and
`reasoning`, and are text-only and free during Preview. The XS id is the
catalog form; the `laguna-xs.2` variant circulating in third-party listings
does not address this host. `passthroughModels` stays on, so live discovery
still admits models the Preview adds later.

Closes #9085
2026-08-13 07:53:32 -03:00

51 lines
2.4 KiB
TypeScript

// Poolside (inference.poolside.ai) — first-party Preview catalog.
//
// The registry entry shipped with an empty `models` list because the public
// matrix could only reach the unauthenticated endpoint (401 "No Authorization
// header provided"). An authenticated probe on 2026-08-07 (#9085) returned the
// live catalog, so the two Preview models are now static. These tests lock the
// exact IDs — the XS one is routinely mis-listed as `laguna-xs.2` — and the
// capability numbers the catalog reported, so a later sweep cannot quietly
// reintroduce the wrong form or drop the entries back to passthrough-only.
import { test } from "node:test";
import assert from "node:assert/strict";
import { poolsideProvider } from "../../open-sse/config/providers/registry/poolside/index.ts";
test("#9085: poolside statically exposes the two probed Laguna Preview models", () => {
assert.deepEqual(
poolsideProvider.models.map((m) => m.id),
["poolside/laguna-xs-2.1", "poolside/laguna-s-2.1"]
);
});
test("#9085: the XS id is the catalog form, not the third-party `laguna-xs.2`", () => {
const ids = poolsideProvider.models.map((m) => m.id);
assert.ok(
ids.includes("poolside/laguna-xs-2.1"),
"live /v1/models returns poolside/laguna-xs-2.1"
);
assert.ok(
!ids.some((id) => id.includes("laguna-xs.2")),
"laguna-xs.2 is a third-party/aggregator listing form and does not address this host"
);
});
test("#9085: both Laguna models carry the probed capabilities", () => {
for (const model of poolsideProvider.models) {
assert.equal(model.contextLength, 262144, `${model.id} context window`);
assert.equal(model.maxOutputTokens, 32768, `${model.id} max completion tokens`);
assert.equal(model.toolCalling, true, `${model.id} advertises tools`);
assert.equal(model.supportsReasoning, true, `${model.id} advertises reasoning`);
// Text-only upstream: no vision/audio in supported_features.
assert.notEqual(model.supportsVision, true, `${model.id} is text-only`);
assert.notEqual(model.supportsAudio, true, `${model.id} is text-only`);
}
});
test("#9085: live discovery still admits models the Preview adds later", () => {
// The static list is what the catalog returned, not a ceiling — keep the
// passthrough flag so a newly published Laguna does not need a release.
assert.equal(poolsideProvider.passthroughModels, true);
assert.equal(poolsideProvider.modelsUrl, "https://inference.poolside.ai/v1/models");
});