openvibers/openvibe.design Commits

openvibe-shared v4.135.0 (was v4.133.0) (#180)

OP OpenVibers committed 6 days ago · 5f6625167c · 6 files, +12 −10

* openvibe-shared v4.135.0 (was v4.133.0)

Opened by scripts/pin-bump.js in OpenVibers/OpenVibe.Shared after the v4.135.0 release.

* /kit: the Ask your agent chip is a part now (openvibe-shared 4.135.0)

The pin brings the shared kit's new builder, kit.askAgent: the chip that hands a question
to the person's own agent in the Dock. Every builder of openvibe-shared/kit has a part on
/kit, and this one was missing, so /kit gained it.

A part may name what carries its behaviour. The ask chip is read by the shared navbar
(the [data-ov-ask] click), not by kit-web.js, so it says so on the tile and on its page.

Changes

ddiff --git a/README.md b/README.md
iindex 34aa732..81ef27e 100644
---- a/README.md
++++ b/README.md
@@@ -229,6 +229,6 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by
<!-- versions:start -->
- openvibe-contracts: v0.315.0
- openvibe-sdk: v0.94.0
--- openvibe-shared: v4.133.0
++- openvibe-shared: v4.135.0
- openvibe-publishing: v1.5.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 137b616..4582903 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -10,12 +10,12 @@
"domain": "openvibe.design",
"contracts": "openvibe-contracts v0.315.0",
"sdk": "openvibe-sdk v0.94.0",
-- "shared": "openvibe-shared v4.133.0",
++ "shared": "openvibe-shared v4.135.0",
"packages": [
"openvibe-contracts v0.315.0",
"openvibe-publishing v1.5.0",
"openvibe-sdk v0.94.0",
-- "openvibe-shared v4.133.0"
++ "openvibe-shared v4.135.0"
],
"summary": "The service skeleton for openvibe.design: Network sign-in as OAuth client `design` (PKCE S256, httpOnly design_at/design_rt cookies) and a theme API proxy to OpenVibe.Network's /api/themes. The proxy serves the public catalogue (cached 5 minutes), one theme, the person's active theme and custom variables, saving a theme with source 'studio', its history and a restore by id, and a submission to the gallery. Writes need this site's own Origin; Network 4xx answers pass through and a Network failure is 502. The studio is designed: a gallery, previews on a Live channel, a Chat room and a shop's grid (with colour-vision views), a six-colour editor that derives the full token set, WCAG checks that gate Use, sharing to the gallery, and History with Restore. The Arena queues one prompt for three models through OpenVibe.AI (client credentials, ai.run.create), stores sanitized HTML with reported model/provider/cost/time/tokens, renders it only in sandboxed CSP-capped iframes, draws blind pairs, records one vote per person per round, and keeps Elo ratings per category plus median cost and time. The prompts, outputs and votes are an open JSONL dataset; rounds and votes follow ADR-033 export and deletion.",
"works": [
ddiff --git a/package-lock.json b/package-lock.json
iindex 5e70e2d..80053d2 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -18,7 +18,7 @@
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.315.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.5.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.94.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.133.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.135.0",
"pg": "^8.23.1",
"subset-font": "^2.9.0"
},
@@@ -1384,9 +1384,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.133.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.133.0",
-- "integrity": "sha512-ry+yvht0O+fHhMQr2LOaQKRYJo38d2cgsI3UtRmHge91qEQ/gL0wtcHawME1/G7V0NrlpdGzJMueKYd8UKrhjw==",
++ "version": "4.135.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.135.0",
++ "integrity": "sha512-+v59lQjCjkb8poKNyKOKfTr8SoFMyr/4dKMoIpPgxqvn8MDFYpylvI80U3AvSxeJTqZpthhrBBdkgVlok/M3dg==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex fdbc577..f93c124 100644
---- a/package.json
++++ b/package.json
@@@ -24,7 +24,7 @@
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.315.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.5.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.94.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.133.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.135.0",
"pg": "^8.23.1",
"subset-font": "^2.9.0"
},
ddiff --git a/server/kit/parts.js b/server/kit/parts.js
iindex 97b0852..860f06f 100644
---- a/server/kit/parts.js
++++ b/server/kit/parts.js
@@@ -41,6 +41,8 @@ const PARTS = [
code: `kit.badge('live', 'live') + kit.badge('new', 'accent') + kit.badge('paid', 'ok') + kit.badge('expiring', 'warn') + kit.badge('failed', 'bad')` },
{ id: 'dot', fn: 'dot', group: 'actions', name: 'Unread dot', line: 'How many are new. Nothing at zero; 9+ past nine.',
code: `kit.dot(3) + kit.dot(42)` },
++ { id: 'ask-agent', fn: 'askAgent', group: 'actions', name: 'Ask your agent', line: 'The chip that asks: a tap hands the question to your own agent in the Dock, with this page\'s context, and it never sends for you.', needs: 'the shared navbar',
++ code: `kit.askAgent({ text: 'About this stream: Seattle at night' }) + kit.askAgent({ text: 'What is in this clip?', label: 'Ask about this clip' })` },
// ── Content ──
{ id: 'card', fn: 'card', group: 'content', name: 'Card', line: 'A stream, a clip, a room or a place: picture first, the title, who, and one line.',
ddiff --git a/server/views/kit.js b/server/views/kit.js
iindex 9c7c9c6..9be1e4b 100644
---- a/server/views/kit.js
++++ b/server/views/kit.js
@@@ -92,7 +92,7 @@ function kitIndex() {
<div class="kt-thumb" aria-hidden="true" inert>${still(html)}</div>
<div class="kt-tile-t"><a class="kt-tile-a" href="/kit/${esc(p.id)}">${esc(p.name)}</a><code>kit.${esc(p.fn)}()</code></div>
<p class="kt-tile-l">${esc(p.line)}</p>
--<p class="kt-tile-w">${w.bytes ? `${weight.kb(w.brotli)} of CSS` : 'No CSS of its own'}${p.web ? ' · uses kit-web.js' : ''}</p></li>`;
++<p class="kt-tile-w">${w.bytes ? `${weight.kb(w.brotli)} of CSS` : 'No CSS of its own'}${p.web ? ' · uses kit-web.js' : ''}${p.needs ? ` · needs ${esc(p.needs)}` : ''}</p></li>`;
};
const groups = GROUPS.map(([id, name, line]) => {
const parts = PARTS.filter((p) => p.group === id);
@@@ -143,7 +143,7 @@ function kitPart(id) {
const body = `<div class="kt kt-part" id="kt-part" data-part="${esc(part.id)}">
<nav class="kt-crumb" aria-label="Breadcrumb"><a href="/kit">The Kit</a><span aria-hidden="true">/</span><a href="/kit#kt-g-${esc(group[0])}">${esc(group[1])}</a></nav>
<header class="kt-part-h"><h1>${esc(part.name)}</h1><p class="kt-lede">${esc(part.line)}</p>
--<ul class="kt-facts"><li><code>kit.${esc(part.fn)}()</code></li><li>${w.bytes ? `${weight.kb(w.brotli)} of CSS · ${w.rules} rule${w.rules === 1 ? '' : 's'}` : 'No CSS of its own'}</li>${w.files.map((f) => `<li>${esc(f)}</li>`).join('')}${part.web ? '<li>kit-web.js for its behaviour</li>' : '<li>No script needed</li>'}</ul></header>
++<ul class="kt-facts"><li><code>kit.${esc(part.fn)}()</code></li><li>${w.bytes ? `${weight.kb(w.brotli)} of CSS · ${w.rules} rule${w.rules === 1 ? '' : 's'}` : 'No CSS of its own'}</li>${w.files.map((f) => `<li>${esc(f)}</li>`).join('')}${part.web ? '<li>kit-web.js for its behaviour</li>' : part.needs ? `<li>${esc(part.needs)} for its behaviour</li>` : '<li>No script needed</li>'}</ul></header>
<section class="kt-stage${part.wide ? ' kt-stage--wide' : ''}" aria-label="${esc(part.name)}, drawn by this release">${part.error ? `<p class="kt-err">This release cannot draw the sample: ${esc(part.error)}</p>` : staged(part, html)}</section>
<section class="kt-code" aria-labelledby="kt-code-h"><h2 id="kt-code-h">Use it</h2>
<h3>On your server</h3>${kit.snippet({ id: 'kt-server', code: onServer })}