openvibers/openvibe.zone Commits
openvibe-shared v4.108.0 (was v4.107.4) (#142)
Changes
@@@ -123,5 +123,5 @@ AGPL-3.0, see LICENSE.<!-- versions:start -->- openvibe-contracts: v0.222.0- openvibe-sdk: v0.82.0--- openvibe-shared: v4.107.4++- openvibe-shared: v4.108.0<!-- versions:end -->@@@ -9,11 +9,11 @@"domain": "openvibe.zone","contracts": "openvibe-contracts v0.222.0","sdk": "openvibe-sdk v0.82.0",-- "shared": "openvibe-shared v4.107.4",++ "shared": "openvibe-shared v4.108.0","packages": ["openvibe-contracts v0.222.0","openvibe-sdk v0.82.0",-- "openvibe-shared v4.107.4"++ "openvibe-shared v4.108.0"],"summary": "OpenVibe.Zone — private S3-compatible storage zones for OpenVibe projects (ADR-031 amendment). Zone owns the zone record and its control API; OpenVibe.Media owns the objects, bytes, keys, quotas and the S3 surface at s3.openvibe.media.","works": [@@@ -18,7 +18,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.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"},"devDependencies": {@@@ -1191,9 +1191,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",@@@ -25,7 +25,7 @@"iovalkey": "^0.4.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.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"},"engines": {@@@ -60,6 +60,9 @@ function createDiscoveryRoutes(ctx) {res.type('text/plain').set('Cache-Control', TEXT).send(seo.llmsTxt({name: SITE_NAME,summary: DESCRIPTION,++ // AGT-5: own pages link their Markdown twins (openvibe-shared 4.108.0); ## Optional is what an agent may skip.++ markdown: true,++ base: site,details: `A zone is an S3 bucket of one OpenVibe project environment (sandbox or production). Zones are made here or `+ `with the API; access keys read, write or both and may be limited to some zones; any S3 tool reaches them at `+ `${config.media.s3Endpoint} (path style, SigV4). A zone's name is never reused. Every page is server-rendered.`,@@@ -67,19 +70,17 @@ function createDiscoveryRoutes(ctx) {{ title: 'Start here', links: [{ title: 'OpenVibe.Zone', url: abs('/'), note: 'what a zone is, and the tools that reach one' },{ title: 'Using OpenVibe.Zone', url: abs('/docs'), note: 'the S3 endpoint, access keys and the API' },-- { title: 'What shipped on OpenVibe.Zone', url: abs('/updates') },-- ] },-- { title: 'Machine-readable', links: [-- { title: 'Sitemap', url: abs('/sitemap.xml') },-- { title: 'Full text for language models', url: abs('/llms-full.txt') },-- { title: 'Release metadata (JSON)', url: abs('/release.json') },-- ] },-- { title: 'Elsewhere', links: [-- { title: 'OpenVibe.Services', url: 'https://openvibe.services', note: 'projects, apps and every resource' },-- { title: 'OpenVibe.Media', url: 'https://openvibe.media', note: 'the objects inside every zone' },-- { title: 'OpenVibe.Network', url: 'https://openvibe.network', note: 'accounts, apps and grants' },] },],++ optional: [++ { title: 'What shipped on OpenVibe.Zone', url: abs('/updates') },++ { title: 'Sitemap', url: abs('/sitemap.xml') },++ { title: 'Full text for language models', url: abs('/llms-full.txt') },++ { title: 'Release metadata (JSON)', url: abs('/release.json') },++ { title: 'OpenVibe.Services', url: 'https://openvibe.services', note: 'projects, apps and every resource' },++ { title: 'OpenVibe.Media', url: 'https://openvibe.media', note: 'the objects inside every zone' },++ { title: 'OpenVibe.Network', url: 'https://openvibe.network', note: 'accounts, apps and grants' },++ ],}));});@@@ -27,6 +27,11 @@ const { boot, check, done } = require('./helpers/boot');assert.match(r.text, /^# OpenVibe\.Zone/m);assert.match(r.text, /https:\/\/s3\.openvibe\.media/);assert.match(r.text, /Using OpenVibe\.Zone/);++ // AGT-5: own pages at their Markdown twins, files as they are, ## Optional last.++ assert.match(r.text, /\(https?:\/\/[^)]*\/docs\.md\)/);++ assert.match(r.text, /\(https?:\/\/[^)]*\/index\.md\)/);++ assert.match(r.text, /\(https?:\/\/[^)]*\/sitemap\.xml\)/);++ assert.ok(r.text.includes('\n## Optional\n') && r.text.lastIndexOf('\n## ') === r.text.indexOf('\n## Optional\n'), 'Optional is last');});await check('llms-full.txt lists every public page', async () => {
@@ -123,5 +123,5 @@ AGPL-3.0, see LICENSE.
@@ -123,5 +123,5 @@ AGPL-3.0, see LICENSE.
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.222.0
- openvibe-contracts: v0.222.0
- openvibe-sdk: v0.82.0
- openvibe-sdk: v0.82.0
-- openvibe-shared: v4.107.4
+- openvibe-shared: v4.108.0
<!-- versions:end -->
<!-- versions:end -->
@@ -9,11 +9,11 @@
@@ -9,11 +9,11 @@
"domain": "openvibe.zone",
"domain": "openvibe.zone",
"contracts": "openvibe-contracts v0.222.0",
"contracts": "openvibe-contracts v0.222.0",
"sdk": "openvibe-sdk v0.82.0",
"sdk": "openvibe-sdk v0.82.0",
- "shared": "openvibe-shared v4.107.4",
+ "shared": "openvibe-shared v4.108.0",
"packages": [
"packages": [
"openvibe-contracts v0.222.0",
"openvibe-contracts v0.222.0",
"openvibe-sdk v0.82.0",
"openvibe-sdk v0.82.0",
- "openvibe-shared v4.107.4"
+ "openvibe-shared v4.108.0"
],
],
"summary": "OpenVibe.Zone — private S3-compatible storage zones for OpenVibe projects (ADR-031 amendment). Zone owns the zone record and its control API; OpenVibe.Media owns the objects, bytes, keys, quotas and the S3 surface at s3.openvibe.media.",
"summary": "OpenVibe.Zone — private S3-compatible storage zones for OpenVibe projects (ADR-031 amendment). Zone owns the zone record and its control API; OpenVibe.Media owns the objects, bytes, keys, quotas and the S3 surface at s3.openvibe.media.",
"works": [
"works": [
@@ -18,7 +18,7 @@
@@ -18,7 +18,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.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"
"pg": "^8.23.0"
},
},
"devDependencies": {
"devDependencies": {
@@ -1191,9 +1191,9 @@
@@ -1191,9 +1191,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"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",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0",
"jsonwebtoken": "^9.0.0",
@@ -25,7 +25,7 @@
@@ -25,7 +25,7 @@
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.222.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.82.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"
"pg": "^8.23.0"
},
},
"engines": {
"engines": {
@@ -60,6 +60,9 @@ function createDiscoveryRoutes(ctx) {
@@ -60,6 +60,9 @@ function createDiscoveryRoutes(ctx) {
res.type('text/plain').set('Cache-Control', TEXT).send(seo.llmsTxt({
res.type('text/plain').set('Cache-Control', TEXT).send(seo.llmsTxt({
name: SITE_NAME,
name: SITE_NAME,
summary: DESCRIPTION,
summary: DESCRIPTION,
+ // AGT-5: own pages link their Markdown twins (openvibe-shared 4.108.0); ## Optional is what an agent may skip.
+ markdown: true,
+ base: site,
details: `A zone is an S3 bucket of one OpenVibe project environment (sandbox or production). Zones are made here or `
details: `A zone is an S3 bucket of one OpenVibe project environment (sandbox or production). Zones are made here or `
+ `with the API; access keys read, write or both and may be limited to some zones; any S3 tool reaches them at `
+ `with the API; access keys read, write or both and may be limited to some zones; any S3 tool reaches them at `
+ `${config.media.s3Endpoint} (path style, SigV4). A zone's name is never reused. Every page is server-rendered.`,
+ `${config.media.s3Endpoint} (path style, SigV4). A zone's name is never reused. Every page is server-rendered.`,
@@ -67,19 +70,17 @@ function createDiscoveryRoutes(ctx) {
@@ -67,19 +70,17 @@ function createDiscoveryRoutes(ctx) {
{ title: 'Start here', links: [
{ title: 'Start here', links: [
{ title: 'OpenVibe.Zone', url: abs('/'), note: 'what a zone is, and the tools that reach one' },
{ title: 'OpenVibe.Zone', url: abs('/'), note: 'what a zone is, and the tools that reach one' },
{ title: 'Using OpenVibe.Zone', url: abs('/docs'), note: 'the S3 endpoint, access keys and the API' },
{ title: 'Using OpenVibe.Zone', url: abs('/docs'), note: 'the S3 endpoint, access keys and the API' },
- { title: 'What shipped on OpenVibe.Zone', url: abs('/updates') },
- ] },
- { title: 'Machine-readable', links: [
- { title: 'Sitemap', url: abs('/sitemap.xml') },
- { title: 'Full text for language models', url: abs('/llms-full.txt') },
- { title: 'Release metadata (JSON)', url: abs('/release.json') },
- ] },
- { title: 'Elsewhere', links: [
- { title: 'OpenVibe.Services', url: 'https://openvibe.services', note: 'projects, apps and every resource' },
- { title: 'OpenVibe.Media', url: 'https://openvibe.media', note: 'the objects inside every zone' },
- { title: 'OpenVibe.Network', url: 'https://openvibe.network', note: 'accounts, apps and grants' },
] },
] },
],
],
+ optional: [
+ { title: 'What shipped on OpenVibe.Zone', url: abs('/updates') },
+ { title: 'Sitemap', url: abs('/sitemap.xml') },
+ { title: 'Full text for language models', url: abs('/llms-full.txt') },
+ { title: 'Release metadata (JSON)', url: abs('/release.json') },
+ { title: 'OpenVibe.Services', url: 'https://openvibe.services', note: 'projects, apps and every resource' },
+ { title: 'OpenVibe.Media', url: 'https://openvibe.media', note: 'the objects inside every zone' },
+ { title: 'OpenVibe.Network', url: 'https://openvibe.network', note: 'accounts, apps and grants' },
+ ],
}));
}));
});
});
@@ -27,6 +27,11 @@ const { boot, check, done } = require('./helpers/boot');
@@ -27,6 +27,11 @@ const { boot, check, done } = require('./helpers/boot');
assert.match(r.text, /^# OpenVibe\.Zone/m);
assert.match(r.text, /^# OpenVibe\.Zone/m);
assert.match(r.text, /https:\/\/s3\.openvibe\.media/);
assert.match(r.text, /https:\/\/s3\.openvibe\.media/);
assert.match(r.text, /Using OpenVibe\.Zone/);
assert.match(r.text, /Using OpenVibe\.Zone/);
+ // AGT-5: own pages at their Markdown twins, files as they are, ## Optional last.
+ assert.match(r.text, /\(https?:\/\/[^)]*\/docs\.md\)/);
+ assert.match(r.text, /\(https?:\/\/[^)]*\/index\.md\)/);
+ assert.match(r.text, /\(https?:\/\/[^)]*\/sitemap\.xml\)/);
+ assert.ok(r.text.includes('\n## Optional\n') && r.text.lastIndexOf('\n## ') === r.text.indexOf('\n## Optional\n'), 'Optional is last');
});
});
await check('llms-full.txt lists every public page', async () => {
await check('llms-full.txt lists every public page', async () => {