openvibers/openvibe.run Commits

OpenVibe Link: the new name in pages, docs and messages (#209)

OP OpenVibers committed 5 days ago · b8882f6752 · 8 files, +12 −12

OpenVibe Node is now OpenVibe Link. Pages, emails, notifications, docs, READMEs, error messages and tool descriptions say OpenVibe Link (or Link), and installer links point at openvibe.link. Code identifiers, the openvibe-node command, paths, contract ids and the repository name are unchanged.

Changes

ddiff --git a/server/config.js b/server/config.js
iindex 42a2464..0c599a8 100644
---- a/server/config.js
++++ b/server/config.js
@@@ -7,7 +7,7 @@
* Run is the job service of the network (plan T14, ADR-034): it owns the API, the project scope and the
* placement, on its own PostgreSQL (ADR-035). Bot owns the node link and the per-second metering of the jobs it
* carries (plan T14 L1). The one exception is an external managed-browser provider (plan T14 R4a): it is not a
-- * paired Node and writes no usage of its own, so Run meters those jobs itself and posts their readings with a
++ * paired Link and writes no usage of its own, so Run meters those jobs itself and posts their readings with a
* Billing token of its own (billing.usage.record, audience openvibe.billing), used for nothing else. The
* provider's API key lives in Run's environment only: never in an offer, a job or a log.
*/
ddiff --git a/server/dispatch/browser-provider.js b/server/dispatch/browser-provider.js
iindex bfb969b..05ad274 100644
---- a/server/dispatch/browser-provider.js
++++ b/server/dispatch/browser-provider.js
@@@ -4,7 +4,7 @@
* The managed-browser provider adapter — Run → an external managed-browser provider's job API (plan T14 R4a,
* ADR-034; Run's own outbound capability browser_provider.job.dispatch, contracts/manifests/capabilities). A
* class `browser` job placed on a kind=provider offer named `browser-provider` goes here instead of Bot: the
-- * provider is not a paired Node, so there is no Bot in between and Run meters the job itself.
++ * provider is not a paired Link, so there is no Bot in between and Run meters the job itself.
*
* send({ job }) POST {url}/jobs browser-provider.job-create-request@1 → job-create-result@1
* state(jobId) GET {url}/jobs/{id} → browser-provider.job-state@1 | null
ddiff --git a/server/dispatch/placement.js b/server/dispatch/placement.js
iindex ed3cf2d..8f14a7e 100644
---- a/server/dispatch/placement.js
++++ b/server/dispatch/placement.js
@@@ -9,7 +9,7 @@
* choose(row) → { node_id, provider, region, offer_id, trust, reasons } | null
*
* The candidate offers come from OpenVibe.Network's public resource registry
-- * (GET {OV_NETWORK_URL}/api/v1/offers?kind=node), where a paired Node's runtime classes are published as
++ * (GET {OV_NETWORK_URL}/api/v1/offers?kind=node), where a paired Link's runtime classes are published as
* platform.resource-offer@1 with the reserved `worker:<class>` capability (ADR-036 §3: "device node_id →
* resource-offer.node_id"), so an offer's node_id is the device Bot dispatches to. The public projection
* leaves `capacity` out (Network redacts it), so the `worker:<class>` free-slot check inside plan() cannot
ddiff --git a/server/dispatch/priors.js b/server/dispatch/priors.js
iindex 9567a91..f4945c6 100644
---- a/server/dispatch/priors.js
++++ b/server/dispatch/priors.js
@@@ -3,7 +3,7 @@
/**
* Bench priors for Run's placement (agent plan A1): Bench's quality per model on the kind of step, cached for an
* hour. A job's runtime class maps to a Bench kind when one exists (code → codes.patch), and an offer names its model
-- * in detail.model; an offer with no model (a paired Node) simply has no prior and place() uses its 0.7 default.
++ * in detail.model; an offer with no model (a paired Link) simply has no prior and place() uses its 0.7 default.
*
* The board is public; a Bench that does not answer leaves the map empty rather than delaying the tick for long.
*/
ddiff --git a/server/jobs/usage.js b/server/jobs/usage.js
iindex c9b75ac..1e69436 100644
---- a/server/jobs/usage.js
++++ b/server/jobs/usage.js
@@@ -2,7 +2,7 @@
/**
* Run's own metering (plan T14 R4a, decision B): the usage of a job an external managed-browser provider ran.
-- * Bot meters every job it carries and Run never posts those; a provider is not a paired Node and writes no usage,
++ * Bot meters every job it carries and Run never posts those; a provider is not a paired Link and writes no usage,
* so for its jobs — and only for them — Run queues the readings and posts them to OpenVibe.Billing's
* billing.usage.record (POST <RUN_BILLING_URL>/api/v1/usage, one reading per request), the pattern of OpenVibe.Bot's
* server/jobs/metering.js.
ddiff --git a/server/web/discovery.js b/server/web/discovery.js
iindex b7804c5..156212a 100644
---- a/server/web/discovery.js
++++ b/server/web/discovery.js
@@@ -26,7 +26,7 @@ function sections(base) {
{ title: 'Privacy', url: `${base}/privacy`, html: true },
{ title: 'DMCA', url: `${base}/dmca`, html: true },
{ title: 'OpenVibe.Run on GitHub', url: REPO, note: 'the source and the README: the job API, its states and its capabilities' },
-- { title: 'OpenVibe Node', url: NODE_REPO, note: 'pair your own machine to run jobs' },
++ { title: 'OpenVibe Link', url: NODE_REPO, note: 'pair your own machine to run jobs' },
],
};
}
ddiff --git a/server/web/home.js b/server/web/home.js
iindex 0428885..1215edd 100644
---- a/server/web/home.js
++++ b/server/web/home.js
@@@ -51,7 +51,7 @@ const FAQ_CSS = '<style>.run-faq{border:1px solid var(--border,#1f2d47);border-r
const code = (s) => `<code>${s.replace(/&/g, '&amp;').replace(/</g, '&lt;')}</code>`;
// The samples run as written: the first declares the artifact the other two submit, on the person's own paired machine
--// (the OpenVibe Node runs only what its owner declared: OpenVibe.Node docs/worker.md).
++// (the OpenVibe Link runs only what its owner declared: the Link repo's docs/worker.md).
const MACHINE_EXAMPLE = `# On your paired machine (installed with --worker): a function is a command you declare.
# Its args arrive as one line of JSON on stdin, its stdout streams back, and fd 3 is its result.
sudo mkdir -p /opt/fn/hello && sudo tee /opt/fn/hello/run > /dev/null <<'EOF'
@@@ -177,7 +177,7 @@ function body() {
lede: 'Pair a computer once and the jobs you start run there, on your hardware, with their output streamed back to you. '
+ 'Or send a job to one API with your project\'s token: Run picks a node that offers the runtime it asks for and meters it per second.',
actions: [{ label: 'Pair your machine', href: 'https://openvibe.bot/machines', primary: true }, { label: 'Try it from OpenVibe.Codes', href: 'https://openvibe.codes/run' }, { label: 'The API', href: '#api' }],
-- note: 'Alpha. A job runs on nodes paired with OpenVibe (the OpenVibe Node); with none online for its class it waits, then expires.',
++ note: 'Alpha. A job runs on nodes paired with OpenVibe (the OpenVibe Link); with none online for its class it waits, then expires.',
}) + showcase.steps({
id: 'machine',
title: 'Your machine, your jobs',
@@@ -202,7 +202,7 @@ function body() {
lede: 'A job names the class of machine it needs. What each one is today:',
columns: ['What runs', 'Today'],
rows: [
-- { label: 'function', values: ['A registered artifact on a paired OpenVibe Node', 'Works'] },
++ { label: 'function', values: ['A registered artifact on a paired OpenVibe Link', 'Works'] },
{ label: 'code', values: ['An OpenVibe.Codes task on your own machine', 'Works'] },
{ label: 'browser', values: ['A page in a managed browser', 'Built, not switched on yet'] },
{ label: 'linux, desktop, gpu', values: ['Reserved names for the machines they say', 'Not yet'] },
@@@ -234,8 +234,8 @@ function body() {
}) + (FAQ.length ? `<section class="sc-sec" id="questions" aria-labelledby="run-faq-h"><h2 id="run-faq-h">Questions</h2>${FAQ.map((f) => `<details class="run-faq"><summary>${esc(f.q)}</summary><p>${esc(f.a)}</p></details>`).join('')}</section>` : '')
+ showcase.cta({
title: 'Open source',
-- text: 'Run is AGPL-3.0, and so is the OpenVibe Node that turns a computer into a worker.',
-- actions: [{ label: 'OpenVibers/OpenVibe.Run', href: 'https://github.com/OpenVibers/OpenVibe.Run' }, { label: 'The OpenVibe Node', href: 'https://github.com/OpenVibers/OpenVibe.Node' }],
++ text: 'Run is AGPL-3.0, and so is the OpenVibe Link that turns a computer into a worker.',
++ actions: [{ label: 'OpenVibers/OpenVibe.Run', href: 'https://github.com/OpenVibers/OpenVibe.Run' }, { label: 'The OpenVibe Link', href: 'https://github.com/OpenVibers/OpenVibe.Node' }],
});
}
ddiff --git a/test/dispatch.test.js b/test/dispatch.test.js
iindex 23b4290..27c88f6 100644
---- a/test/dispatch.test.js
++++ b/test/dispatch.test.js
@@@ -23,7 +23,7 @@ const DEVICE = 'dev_01J8Z4M2Q0R7T9YV3K6N8P1W2X'; // the device Bot dispatches
const OTHER_DEVICE = 'dev_01J8Z4M2Q0R7T9YV3K6N8P1W2XQ';
const PROJECT = () => ids.newId('project');
--/** A contract-valid platform.resource-offer@1 for a paired Node advertising worker:<class>. */
++/** A contract-valid platform.resource-offer@1 for a paired Link advertising worker:<class>. */
function offer(over = {}) {
return {
offer_id: 'off_node_01',