openvibers/openvibe.exchange Commits
SDK 0.168.0: openvibe-sdk/compare replaces openvibe-sdk/bench (#270)
Changes
@@@ -93,7 +93,7 @@ AGPL-3.0-only. See [LICENSE](LICENSE).<!-- versions:start -->- openvibe-contracts: v0.419.0--- openvibe-sdk: v0.167.0++- openvibe-sdk: v0.168.0- openvibe-shared: v4.247.0- openvibe-publishing: v1.7.0<!-- versions:end -->@@@ -9,11 +9,11 @@"port": "5150","domain": "openvibe.exchange","contracts": "openvibe-contracts v0.419.0",-- "sdk": "openvibe-sdk v0.167.0",++ "sdk": "openvibe-sdk v0.168.0","shared": "openvibe-shared v4.247.0","packages": ["openvibe-contracts v0.419.0",-- "openvibe-sdk v0.167.0",++ "openvibe-sdk v0.168.0","openvibe-shared v4.247.0"],"summary": "OpenVibe.Exchange is the network's AI front. It reads OpenVibe.AI's public catalog and aggregate usage and renders: the home (popular now, cheapest per million, uncensored, community machines, live numbers), /models and /m/<org>/<model> (every offer with price in/out, measured p50/p95, uptime and data policy, a Try it box, curl and the SDK), /chat (one to three models side by side, system prompt, temperature, history in the account, on openvibe-shared/thread), /api, /sell (Link's offer to the network; what is not sold, said plainly), /uncensored (an 18+ confirmation on the account and the hard floor) and /ai (which products run which models, and the daily cost). Chat and Try it are ai.complete runs on the person's behalf (on_behalf_of) with the service's ai.run.create token. Exchange v1 (free/swap listings, passports, sandboxes, installs, offers) is retired: every v1 page answers 410 with a pointer, its JSON API answers 410 exchange.retired, and its tables stay read-only; its tests live in test/retired/.",@@@ -18,7 +18,7 @@"multer": "^2.5.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0","openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0","pg": "^8.23.0"},@@@ -1302,9 +1302,8 @@}},"node_modules/openvibe-sdk": {-- "version": "0.167.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",-- "integrity": "sha512-+oMgyRfLrditJXIJmS2NP2NW7hTIb77UoNEK+jjF+6+ZQKCDd8enq5lC+RiHWmdG6dFSbgCNDf6OCLbgeJrx7g==",++ "version": "0.168.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0","license": "MIT","bin": {"openvibe-download": "bin/openvibe-download.js"@@@ -27,7 +27,7 @@"multer": "^2.5.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0","openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0","pg": "^8.23.0"},@@@ -21,7 +21,7 @@ async function jsonOf(res) {}function createBench({ config, fetchImpl = globalThis.fetch, log = console, now = () => Date.now() }) {-- const shared = require('openvibe-sdk/bench').createBenchClient(require('openvibe-sdk/core').createClient({ fetch: fetchImpl, retries: 0 }), { baseUrl: config.bench.url });++ const shared = require('openvibe-sdk/compare').createCompareClient(require('openvibe-sdk/core').createClient({ fetch: fetchImpl, retries: 0 }), { baseUrl: config.bench.url });const tokens = config.oauth.clientSecret ? createServiceTokenClient({tokenUrl: `${config.networkInternalUrl}/oauth/token`,clientId: config.oauth.clientId, clientSecret: config.oauth.clientSecret,@@@ -528,7 +528,7 @@ function createCompare({ s, ai, bench, config = {}, now = () => Date.now(), logfields: ['price', 'speed', 'uptime', 'requests', 'privacy', 'tier', 'context'],},{-- name: 'OpenVibe.Bench boards', service: 'OpenVibe.Bench', url: `${config.bench && config.bench.url ? config.bench.url : 'https://bench.openvibe.services'}/api/v1/boards`,++ name: 'OpenVibe.Bench boards', service: 'OpenVibe.Bench', url: `${config.bench && config.bench.url ? config.bench.url : 'https://openvibe.compare'}/api/v1/boards`,read_at: q.at, fields: ['quality (Elo)', 'games', 'intervals'],unavailable: Boolean(q.unavailable),},@@@ -112,7 +112,7 @@ function load(env = process.env) {// human_pairwise judgement, and the rankings read the board by task category. The token is this// service's own client-credentials grant (bench.round.create, bench.judgement.cast, bench.board.read).bench: {-- url: trim(env.OV_BENCH_URL || 'https://bench.openvibe.services'),++ url: trim(env.OV_BENCH_URL || 'https://openvibe.compare'),audience: env.OV_BENCH_AUDIENCE || 'openvibe.bench',scope: env.OV_BENCH_SCOPE || 'bench.round.create bench.judgement.cast bench.board.read',timeoutMs: Math.max(2000, int(env.EXCHANGE_BENCH_TIMEOUT_MS, 15_000)),
@@ -93,7 +93,7 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
@@ -93,7 +93,7 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.419.0
- openvibe-contracts: v0.419.0
-- openvibe-sdk: v0.167.0
+- openvibe-sdk: v0.168.0
- openvibe-shared: v4.247.0
- openvibe-shared: v4.247.0
- openvibe-publishing: v1.7.0
- openvibe-publishing: v1.7.0
<!-- versions:end -->
<!-- versions:end -->
@@ -9,11 +9,11 @@
@@ -9,11 +9,11 @@
"port": "5150",
"port": "5150",
"domain": "openvibe.exchange",
"domain": "openvibe.exchange",
"contracts": "openvibe-contracts v0.419.0",
"contracts": "openvibe-contracts v0.419.0",
- "sdk": "openvibe-sdk v0.167.0",
+ "sdk": "openvibe-sdk v0.168.0",
"shared": "openvibe-shared v4.247.0",
"shared": "openvibe-shared v4.247.0",
"packages": [
"packages": [
"openvibe-contracts v0.419.0",
"openvibe-contracts v0.419.0",
- "openvibe-sdk v0.167.0",
+ "openvibe-sdk v0.168.0",
"openvibe-shared v4.247.0"
"openvibe-shared v4.247.0"
],
],
"summary": "OpenVibe.Exchange is the network's AI front. It reads OpenVibe.AI's public catalog and aggregate usage and renders: the home (popular now, cheapest per million, uncensored, community machines, live numbers), /models and /m/<org>/<model> (every offer with price in/out, measured p50/p95, uptime and data policy, a Try it box, curl and the SDK), /chat (one to three models side by side, system prompt, temperature, history in the account, on openvibe-shared/thread), /api, /sell (Link's offer to the network; what is not sold, said plainly), /uncensored (an 18+ confirmation on the account and the hard floor) and /ai (which products run which models, and the daily cost). Chat and Try it are ai.complete runs on the person's behalf (on_behalf_of) with the service's ai.run.create token. Exchange v1 (free/swap listings, passports, sandboxes, installs, offers) is retired: every v1 page answers 410 with a pointer, its JSON API answers 410 exchange.retired, and its tables stay read-only; its tests live in test/retired/.",
"summary": "OpenVibe.Exchange is the network's AI front. It reads OpenVibe.AI's public catalog and aggregate usage and renders: the home (popular now, cheapest per million, uncensored, community machines, live numbers), /models and /m/<org>/<model> (every offer with price in/out, measured p50/p95, uptime and data policy, a Try it box, curl and the SDK), /chat (one to three models side by side, system prompt, temperature, history in the account, on openvibe-shared/thread), /api, /sell (Link's offer to the network; what is not sold, said plainly), /uncensored (an 18+ confirmation on the account and the hard floor) and /ai (which products run which models, and the daily cost). Chat and Try it are ai.complete runs on the person's behalf (on_behalf_of) with the service's ai.run.create token. Exchange v1 (free/swap listings, passports, sandboxes, installs, offers) is retired: every v1 page answers 410 with a pointer, its JSON API answers 410 exchange.retired, and its tables stay read-only; its tests live in test/retired/.",
@@ -18,7 +18,7 @@
@@ -18,7 +18,7 @@
"multer": "^2.5.0",
"multer": "^2.5.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
@@ -1302,9 +1302,8 @@
@@ -1302,9 +1302,8 @@
}
}
},
},
"node_modules/openvibe-sdk": {
"node_modules/openvibe-sdk": {
- "version": "0.167.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",
- "integrity": "sha512-+oMgyRfLrditJXIJmS2NP2NW7hTIb77UoNEK+jjF+6+ZQKCDd8enq5lC+RiHWmdG6dFSbgCNDf6OCLbgeJrx7g==",
+ "version": "0.168.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0",
"license": "MIT",
"license": "MIT",
"bin": {
"bin": {
"openvibe-download": "bin/openvibe-download.js"
"openvibe-download": "bin/openvibe-download.js"
@@ -27,7 +27,7 @@
@@ -27,7 +27,7 @@
"multer": "^2.5.0",
"multer": "^2.5.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.419.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.167.0",
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.168.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.247.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
@@ -21,7 +21,7 @@ async function jsonOf(res) {
@@ -21,7 +21,7 @@ async function jsonOf(res) {
}
}
function createBench({ config, fetchImpl = globalThis.fetch, log = console, now = () => Date.now() }) {
function createBench({ config, fetchImpl = globalThis.fetch, log = console, now = () => Date.now() }) {
- const shared = require('openvibe-sdk/bench').createBenchClient(require('openvibe-sdk/core').createClient({ fetch: fetchImpl, retries: 0 }), { baseUrl: config.bench.url });
+ const shared = require('openvibe-sdk/compare').createCompareClient(require('openvibe-sdk/core').createClient({ fetch: fetchImpl, retries: 0 }), { baseUrl: config.bench.url });
const tokens = config.oauth.clientSecret ? createServiceTokenClient({
const tokens = config.oauth.clientSecret ? createServiceTokenClient({
tokenUrl: `${config.networkInternalUrl}/oauth/token`,
tokenUrl: `${config.networkInternalUrl}/oauth/token`,
clientId: config.oauth.clientId, clientSecret: config.oauth.clientSecret,
clientId: config.oauth.clientId, clientSecret: config.oauth.clientSecret,
@@ -528,7 +528,7 @@ function createCompare({ s, ai, bench, config = {}, now = () => Date.now(), log
@@ -528,7 +528,7 @@ function createCompare({ s, ai, bench, config = {}, now = () => Date.now(), log
fields: ['price', 'speed', 'uptime', 'requests', 'privacy', 'tier', 'context'],
fields: ['price', 'speed', 'uptime', 'requests', 'privacy', 'tier', 'context'],
},
},
{
{
- name: 'OpenVibe.Bench boards', service: 'OpenVibe.Bench', url: `${config.bench && config.bench.url ? config.bench.url : 'https://bench.openvibe.services'}/api/v1/boards`,
+ name: 'OpenVibe.Bench boards', service: 'OpenVibe.Bench', url: `${config.bench && config.bench.url ? config.bench.url : 'https://openvibe.compare'}/api/v1/boards`,
read_at: q.at, fields: ['quality (Elo)', 'games', 'intervals'],
read_at: q.at, fields: ['quality (Elo)', 'games', 'intervals'],
unavailable: Boolean(q.unavailable),
unavailable: Boolean(q.unavailable),
},
},
@@ -112,7 +112,7 @@ function load(env = process.env) {
@@ -112,7 +112,7 @@ function load(env = process.env) {
// human_pairwise judgement, and the rankings read the board by task category. The token is this
// human_pairwise judgement, and the rankings read the board by task category. The token is this
// service's own client-credentials grant (bench.round.create, bench.judgement.cast, bench.board.read).
// service's own client-credentials grant (bench.round.create, bench.judgement.cast, bench.board.read).
bench: {
bench: {
- url: trim(env.OV_BENCH_URL || 'https://bench.openvibe.services'),
+ url: trim(env.OV_BENCH_URL || 'https://openvibe.compare'),
audience: env.OV_BENCH_AUDIENCE || 'openvibe.bench',
audience: env.OV_BENCH_AUDIENCE || 'openvibe.bench',
scope: env.OV_BENCH_SCOPE || 'bench.round.create bench.judgement.cast bench.board.read',
scope: env.OV_BENCH_SCOPE || 'bench.round.create bench.judgement.cast bench.board.read',
timeoutMs: Math.max(2000, int(env.EXCHANGE_BENCH_TIMEOUT_MS, 15_000)),
timeoutMs: Math.max(2000, int(env.EXCHANGE_BENCH_TIMEOUT_MS, 15_000)),