openvibers/openvibe.network Commits

openvibe-shared v4.108.0 (was v4.107.4) (#551)

OP OpenVibers committed 10 days ago · 3464e5b21d · 7 files, +23 −12

* openvibe-shared v4.108.0 (was v4.107.4)

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

* llms.txt links each page at its Markdown twin, with an ## Optional section (AGT-5)

* llms.txt: the JSON API stays a main section, not Optional (AGT-5 review)

Changes

ddiff --git a/README.md b/README.md
iindex ac0e52e0..da9a8dbb 100644
---- a/README.md
++++ b/README.md
@@@ -822,5 +822,5 @@ MIT (`license` in [package.json](package.json)).
<!-- versions:start -->
- openvibe-contracts: v0.280.0
- openvibe-sdk: v0.82.0
--- openvibe-shared: v4.107.4
++- openvibe-shared: v4.108.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 43c52a17..49cc55ef 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -8,7 +8,7 @@
"domain": "openvibe.network (with auth., api., admin., my. and themes.openvibe.network in its manifest)",
"contracts": "openvibe-contracts v0.280.0",
"sdk": "openvibe-sdk v0.82.0",
-- "shared": "openvibe-shared v4.107.4",
++ "shared": "openvibe-shared v4.108.0",
"capabilities": [
"identity.subject.resolve",
"mods.grant.manage",
ddiff --git a/package-lock.json b/package-lock.json
iindex 2ddf35c2..d5c69ad4 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -22,7 +22,7 @@
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.280.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.4",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.108.0",
"pg": "^8.23.0",
"uuid": "^11.1.0",
"web-push": "^3.6.7"
@@@ -1639,9 +1639,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.107.4",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.4",
-- "integrity": "sha512-tThN0m3KMncEHVcBOvE+ysHjsZTlVIDLG1P+/i2Mulmxfc/AUpebAXhpWWrut50OChZ8o+HeePxsSrPI8mUQOQ==",
++ "version": "4.108.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.108.0",
++ "integrity": "sha512-NPzwjxpzGIpFpIm4uw3+VwHfsxbJ2+cD9yuhRzSwolSwqv2kCmwaVtHJ0DA9gKO3K8PCBfIP3UpKzpuSbYEJ+g==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex de356327..4038490a 100644
---- a/package.json
++++ b/package.json
@@@ -26,7 +26,7 @@
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.280.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.107.4",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.108.0",
"pg": "^8.23.0",
"uuid": "^11.1.0",
"web-push": "^3.6.7"
ddiff --git a/server/home/render.js b/server/home/render.js
iindex 129d4422..02c3376f 100644
---- a/server/home/render.js
++++ b/server/home/render.js
@@@ -468,10 +468,20 @@ const llmsSummary = () => `OpenVibe (openvibe.network, made by OpenVibers) is an
function llmsTxt() {
const { catalog } = toolsCatalog.peek();
-- return seo.llmsTxt({ name: 'OpenVibe Network', summary: llmsSummary(),
-- sections: [{ title: 'Sites', links: OPEN.map((site) => ({ title: siteName(site), url: `https://${site.host}/`, note: site.what })) },
-- { title: 'Tool families', links: catalog.families.filter(f => f.url).map(f => ({ title: f.name, url: f.path ? 'https://openvibe.tools' + f.path : f.url, note: f.tagline })) },
-- { title: 'Machine-readable', links: [{ title: 'Open stats (JSON): every site\'s numbers', url: 'https://openvibe.network/api/v1/stats' }, { title: 'Tool catalog (JSON)', url: 'https://openvibe.tools/api/catalog.json' }, { title: 'Tools llms.txt', url: 'https://openvibe.tools/llms.txt' }, { title: 'Tool domains (JSON)', url: 'https://openvibe.network/api/domains' }] }].filter((section) => section.links.length) });
++ return seo.llmsTxt({ name: 'OpenVibe Network', summary: llmsSummary(), markdown: true, base: 'https://openvibe.network',
++ sections: [
++ { title: 'Sites', links: OPEN.map((site) => ({ title: siteName(site), url: `https://${site.host}/`, note: site.what })) },
++ // The JSON an agent came for is a main section, not something to skip (AGT-5 review).
++ { title: 'Machine-readable', links: [
++ { title: 'Open stats (JSON): every site\'s numbers', url: 'https://openvibe.network/api/v1/stats' },
++ { title: 'Tool catalog (JSON)', url: 'https://openvibe.tools/api/catalog.json' },
++ { title: 'Tool domains (JSON)', url: 'https://openvibe.network/api/domains' },
++ ] },
++ ],
++ optional: [
++ ...catalog.families.filter(f => f.url).map(f => ({ title: f.name, url: f.path ? 'https://openvibe.tools' + f.path : f.url, note: f.tagline })),
++ { title: 'Tools llms.txt', url: 'https://openvibe.tools/llms.txt' },
++ ].filter((l) => l.url) });
}
// /llms-full.txt: the public pages the sitemap lists (server/seo/routes.js PAGES), each with its text.
ddiff --git a/test/brand-disambiguation.test.js b/test/brand-disambiguation.test.js
iindex e87774e2..1c25ce4d 100644
---- a/test/brand-disambiguation.test.js
++++ b/test/brand-disambiguation.test.js
@@@ -22,4 +22,5 @@ const llms = require('../server/home/render').llmsTxt();
assert.ok(/^# OpenVibe Network/m.test(llms));
assert.ok(llms.includes('OpenVibe (openvibe.network, made by OpenVibers) is an open source, community-run network of websites'), 'llms.txt says what it is');
assert.ok(llms.includes('It is not the Openvibe mobile social-media aggregator app, which is unrelated.'), 'and what it is not');
++assert.ok(llms.includes('\n## Optional\n'), 'llms.txt has an Optional section');
console.log('brand disambiguation: Organization and llms.txt ok');
ddiff --git a/test/home-empty-catalog.test.js b/test/home-empty-catalog.test.js
iindex 59b97d3f..81f637af 100644
---- a/test/home-empty-catalog.test.js
++++ b/test/home-empty-catalog.test.js
@@@ -17,5 +17,5 @@ assert.ok(/<section class="sc-sec" id="tools"[^>]*>[\s\S]*?href="https:\/\/openv
assert.ok(!/<li>Online tools: /.test(html), 'the AI summary facts leave out a tool count it does not know');
const txt = home.llmsTxt();
assert.ok(!/Tool families/.test(txt), 'llms.txt leaves out the empty Tool families section');
--assert.ok(/Sites/.test(txt) && /Machine-readable/.test(txt));
++assert.ok(/Sites/.test(txt) && /\n## Optional\n/.test(txt), 'llms.txt keeps the Sites section and has an Optional section');
console.log('home with an empty catalog: all checks passed');