openvibers/openvibe.contracts Commits

0.234.0: Meme's manifest, hybrid ranking fields, NS proposals (#242)

OP OpenVibers committed 16 days ago · 637d11f912 · 47 files, +1063 −163

* 0.234.0: OpenVibe.Meme's manifest; the Search Fabric's hybrid ranking fields; NS changes in domains.proposal@1

* domains.proposal@1: the nameserver list is the last oneOf option, so the existing ones keep their places

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 96c95b1a..4879f59a 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,22 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
the notes were in the tag and commit messages (`git tag -n1`).
++## 0.234.0 — 2026-10-28
++
++- **OpenVibe.Meme** (`meme`, live at openvibe.meme, port 5120, database `ov_meme`): the open meme database, rebuilt
++ with AI. Entries cite the chat line or VOD second they came from, follow later uses on a timeline and keep a
++ status; candidates stay hidden until a staff person publishes them; a daily job re-verifies every citation; people
++ vote once an ISO week for meme of the week and captions are plain text over a template. Every public entry is one
++ `search.index-document@1` queued in `meme_outbox`. The manifest names `meme.*`, no capabilities or events of its
++ own, and the site block (Meme, icon `meme`, position 42, legal profile `ugc`) puts it in Games & laughs.
++- **Search's hybrid ranking** (additive): `search.fabric-result@1`'s `route.explain` entries gain optional `ranking`
++ (`hybrid` or `keyword`) and `reason` (`no_vectors`, `ai_unavailable`, `short_query`), and its results gain optional
++ `ranks` (the 1-based keyword and vector positions, null when absent from that list). `search.query-result@1` gains
++ the same per-hit `ranks` and an optional `explain` object. Keyword-only answers stay valid.
++
++- `domains.proposal@1`: a change may be `type: "NS"` (a domain's nameservers at the registrar, update only), with
++ `before`/`after` as the list of nameservers (additive; OpenVibe.Domains' Porkbun connection).
++
## 0.233.0 — 2026-10-28
- **OpenVibe.Domains' control panel** (plan 2026-10-28 §5.1, DOM-2):
ddiff --git a/contracts/domains/proposal.v1.json b/contracts/domains/proposal.v1.json
iindex 063a8954..ef127b9d 100644
---- a/contracts/domains/proposal.v1.json
++++ b/contracts/domains/proposal.v1.json
@@@ -164,6 +164,16 @@
},
{
"type": "null"
++ },
++ {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 253
++ }
}
]
},
@@@ -235,8 +245,24 @@
},
{
"type": "null"
++ },
++ {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 253
++ }
}
]
++ },
++ "type": {
++ "enum": [
++ "NS"
++ ],
++ "description": "A registrar change: the domain's nameservers at the registry. op is update only; before and after are the lists."
}
}
}
ddiff --git a/contracts/search/fabric-result.v1.json b/contracts/search/fabric-result.v1.json
iindex 7f09d3be..dcb9b620 100644
---- a/contracts/search/fabric-result.v1.json
++++ b/contracts/search/fabric-result.v1.json
@@@ -127,6 +127,31 @@
"null"
],
"description": "Rank within its scope (higher first); not comparable across scopes."
++ },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "keyword",
++ "vector"
++ ],
++ "properties": {
++ "keyword": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "vector": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
}
}
}
@@@ -274,6 +299,19 @@
],
"maxLength": 160,
"description": "Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down)."
++ },
++ "ranking": {
++ "enum": [
++ "hybrid",
++ "keyword"
++ ]
++ },
++ "reason": {
++ "enum": [
++ "no_vectors",
++ "ai_unavailable",
++ "short_query"
++ ]
}
}
}
ddiff --git a/contracts/search/query-result.v1.json b/contracts/search/query-result.v1.json
iindex 599bd32c..5ff51ecd 100644
---- a/contracts/search/query-result.v1.json
++++ b/contracts/search/query-result.v1.json
@@@ -30,11 +30,31 @@
"published_at": { "type": ["string", "null"] },
"updated_at": { "type": ["string", "null"] },
"indexable": { "type": "boolean", "description": "false for a noindex document the caller may still see." },
-- "snippet_html": { "type": ["string", "null"], "description": "Escaped text with <mark> around the matches; nothing else." }
++ "snippet_html": { "type": ["string", "null"], "description": "Escaped text with <mark> around the matches; nothing else." },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["keyword", "vector"],
++ "properties": {
++ "keyword": { "type": ["integer", "null"], "minimum": 1 },
++ "vector": { "type": ["integer", "null"], "minimum": 1 }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
++ }
}
}
},
"next_cursor": { "type": ["string", "null"] },
-- "facets": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "required": ["value", "count"], "properties": { "value": { "type": "string" }, "count": { "type": "integer", "minimum": 0 } } } } }
++ "facets": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "required": ["value", "count"], "properties": { "value": { "type": "string" }, "count": { "type": "integer", "minimum": 0 } } } } },
++ "explain": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["ranking"],
++ "properties": {
++ "ranking": { "enum": ["hybrid", "keyword"] },
++ "reason": { "enum": ["no_vectors", "ai_unavailable", "short_query"] }
++ },
++ "description": "How this page was ranked; reason is present only when ranking is keyword."
++ }
}
}
ddiff --git a/fixtures/domains.proposal/valid/nameservers.json b/fixtures/domains.proposal/valid/nameservers.json
nnew file mode 100644
iindex 00000000..d7f61c63
---- /dev/null
++++ b/fixtures/domains.proposal/valid/nameservers.json
@@@ -0,0 +1,33 @@
++{
++ "id": "dpr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
++ "domain": "example.com",
++ "provider": "porkbun",
++ "connection_id": "dcn_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
++ "title": "Point example.com at Cloudflare",
++ "why": "Your mail provider asks for it.",
++ "risk": "None: a TXT record changes no traffic.",
++ "status": "pending",
++ "changes": [
++ {
++ "op": "update",
++ "type": "NS",
++ "record_id": null,
++ "before": [
++ "curitiba.ns.porkbun.com",
++ "fortaleza.ns.porkbun.com"
++ ],
++ "after": [
++ "ada.ns.cloudflare.com",
++ "bob.ns.cloudflare.com"
++ ]
++ }
++ ],
++ "created_by": "user:usr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A5",
++ "created_at": "2026-10-28T18:00:00.000Z",
++ "decided_at": null,
++ "applied_at": null,
++ "rolled_back_at": null,
++ "expires_at": "2026-11-04T18:00:00.000Z",
++ "error": null,
++ "href": "https://openvibe.domains/panel/proposals/dpr_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3"
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 30d2ea5c..e7379ca2 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -3629,6 +3629,31 @@
"null"
],
"description": "Escaped text with <mark> around the matches; nothing else."
++ },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "keyword",
++ "vector"
++ ],
++ "properties": {
++ "keyword": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "vector": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
}
}
}
@@@ -3660,6 +3685,29 @@
}
}
}
++ },
++ "explain": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "ranking"
++ ],
++ "properties": {
++ "ranking": {
++ "enum": [
++ "hybrid",
++ "keyword"
++ ]
++ },
++ "reason": {
++ "enum": [
++ "no_vectors",
++ "ai_unavailable",
++ "short_query"
++ ]
++ }
++ },
++ "description": "How this page was ranked; reason is present only when ranking is keyword."
}
}
}
@@@ -3906,6 +3954,31 @@
"null"
],
"description": "Rank within its scope (higher first); not comparable across scopes."
++ },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "keyword",
++ "vector"
++ ],
++ "properties": {
++ "keyword": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "vector": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
}
}
}
@@@ -4053,6 +4126,19 @@
],
"maxLength": 160,
"description": "Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down)."
++ },
++ "ranking": {
++ "enum": [
++ "hybrid",
++ "keyword"
++ ]
++ },
++ "reason": {
++ "enum": [
++ "no_vectors",
++ "ai_unavailable",
++ "short_query"
++ ]
}
}
}
@@@ -86490,6 +86576,16 @@
},
{
"type": "null"
++ },
++ {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 253
++ }
}
]
},
@@@ -86561,8 +86657,24 @@
},
{
"type": "null"
++ },
++ {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 253
++ }
}
]
++ },
++ "type": {
++ "enum": [
++ "NS"
++ ],
++ "description": "A registrar change: the domain's nameservers at the registry. op is update only; before and after are the lists."
}
}
}
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 2c2530b7..db2dc02d 100644
---- a/generated/openapi/actor.json
++++ b/generated/openapi/actor.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Actor API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex 8eeb4148..5c4cee5e 100644
---- a/generated/openapi/ai.json
++++ b/generated/openapi/ai.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.AI API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex 1ba12d05..2c4f7282 100644
---- a/generated/openapi/billing.json
++++ b/generated/openapi/billing.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Billing API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex d3c11686..62264e9e 100644
---- a/generated/openapi/blog.json
++++ b/generated/openapi/blog.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Blog API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex ece16030..6a9607f1 100644
---- a/generated/openapi/bot.json
++++ b/generated/openapi/bot.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bot API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex e2c612a2..debac236 100644
---- a/generated/openapi/chat.json
++++ b/generated/openapi/chat.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Chat API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/codes.json b/generated/openapi/codes.json
iindex cf7e7527..f54bd07d 100644
---- a/generated/openapi/codes.json
++++ b/generated/openapi/codes.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Codes API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex 14bea71e..3a54acef 100644
---- a/generated/openapi/community.json
++++ b/generated/openapi/community.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Community API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex 118a5ae9..4bf4ca80 100644
---- a/generated/openapi/coupons.json
++++ b/generated/openapi/coupons.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Coupons API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex ba793a02..89349d5a 100644
---- a/generated/openapi/deals.json
++++ b/generated/openapi/deals.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Deals API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/domains.json b/generated/openapi/domains.json
iindex 41cfe641..a8c3bae9 100644
---- a/generated/openapi/domains.json
++++ b/generated/openapi/domains.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Domains API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex 998e5bc8..9b24fcd3 100644
---- a/generated/openapi/events.json
++++ b/generated/openapi/events.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Events API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex 907f191f..9b5b2d26 100644
---- a/generated/openapi/food.json
++++ b/generated/openapi/food.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Food API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex 17513c6f..0f07006f 100644
---- a/generated/openapi/games.json
++++ b/generated/openapi/games.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Games API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex b97a57ee..47df22fc 100644
---- a/generated/openapi/host.json
++++ b/generated/openapi/host.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Host API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex 88ba5839..8c37e462 100644
---- a/generated/openapi/inventory.json
++++ b/generated/openapi/inventory.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Inventory API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex 91fe0dd5..d081d89e 100644
---- a/generated/openapi/live.json
++++ b/generated/openapi/live.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Live API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media-hub.json b/generated/openapi/media-hub.json
iindex 389db778..959ce00a 100644
---- a/generated/openapi/media-hub.json
++++ b/generated/openapi/media-hub.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.MediaHub API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex 5d376e80..ad1d2be5 100644
---- a/generated/openapi/media.json
++++ b/generated/openapi/media.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Media API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex 178f79e8..4464914e 100644
---- a/generated/openapi/network.json
++++ b/generated/openapi/network.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Network API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex 26136512..20f4b950 100644
---- a/generated/openapi/news.json
++++ b/generated/openapi/news.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.News API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex 5b4be0f7..1322392d 100644
---- a/generated/openapi/openre.json
++++ b/generated/openapi/openre.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenRestream API",
-- "version": "0.233.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/play.json b/generated/openapi/play.json
iindex 51b60109..00d5ecfa 100644
---- a/generated/openapi/play.json
++++ b/generated/openapi/play.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Play API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/quest.json b/generated/openapi/quest.json
iindex 27ab747f..21b0f496 100644
---- a/generated/openapi/quest.json
++++ b/generated/openapi/quest.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Quest API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex b7e03f30..b961304c 100644
---- a/generated/openapi/reviews.json
++++ b/generated/openapi/reviews.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Reviews API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex e1def4ad..70f88af1 100644
---- a/generated/openapi/run.json
++++ b/generated/openapi/run.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Run API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex ef630cfd..ca5d0056 100644
---- a/generated/openapi/search.json
++++ b/generated/openapi/search.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Search API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
@@@ -1526,6 +1526,31 @@
"null"
],
"description": "Rank within its scope (higher first); not comparable across scopes."
++ },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "keyword",
++ "vector"
++ ],
++ "properties": {
++ "keyword": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "vector": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
}
}
}
@@@ -1673,6 +1698,19 @@
],
"maxLength": 160,
"description": "Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down)."
++ },
++ "ranking": {
++ "enum": [
++ "hybrid",
++ "keyword"
++ ]
++ },
++ "reason": {
++ "enum": [
++ "no_vectors",
++ "ai_unavailable",
++ "short_query"
++ ]
}
}
}
@@@ -2238,6 +2276,31 @@
"null"
],
"description": "Escaped text with <mark> around the matches; nothing else."
++ },
++ "ranks": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "keyword",
++ "vector"
++ ],
++ "properties": {
++ "keyword": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "vector": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ }
++ },
++ "description": "1-based position in the keyword and vector top-100 lists; null when absent from that list."
}
}
}
@@@ -2269,6 +2332,29 @@
}
}
}
++ },
++ "explain": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "ranking"
++ ],
++ "properties": {
++ "ranking": {
++ "enum": [
++ "hybrid",
++ "keyword"
++ ]
++ },
++ "reason": {
++ "enum": [
++ "no_vectors",
++ "ai_unavailable",
++ "short_query"
++ ]
++ }
++ },
++ "description": "How this page was ranked; reason is present only when ranking is keyword."
}
}
},
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex 0a09f53f..38086f02 100644
---- a/generated/openapi/services.json
++++ b/generated/openapi/services.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Services API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex a3658c31..80049f82 100644
---- a/generated/openapi/sources.json
++++ b/generated/openapi/sources.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Sources API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex 4207958e..58d17500 100644
---- a/generated/openapi/space.json
++++ b/generated/openapi/space.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Space API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex 3afb4ca2..16d8892a 100644
---- a/generated/openapi/tips.json
++++ b/generated/openapi/tips.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tips API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex b486245b..41eddf63 100644
---- a/generated/openapi/tools.json
++++ b/generated/openapi/tools.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tools API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex 4d479bed..0f6c2600 100644
---- a/generated/openapi/trade.json
++++ b/generated/openapi/trade.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Trade API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 8ee1b026..7cf39c20 100644
---- a/generated/openapi/vip.json
++++ b/generated/openapi/vip.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.VIP API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex ec577e1f..a60c01ec 100644
---- a/generated/openapi/watch.json
++++ b/generated/openapi/watch.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Watch API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex bdfb1878..62ff9b4b 100644
---- a/generated/openapi/wiki.json
++++ b/generated/openapi/wiki.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Wiki API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/work.json b/generated/openapi/work.json
iindex 2f600d30..6a0a28aa 100644
---- a/generated/openapi/work.json
++++ b/generated/openapi/work.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Work API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/zone.json b/generated/openapi/zone.json
iindex c026a9ab..3f766622 100644
---- a/generated/openapi/zone.json
++++ b/generated/openapi/zone.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Zone API",
-- "version": "0.233.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.233.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.234.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.234.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex 9d86807d..a33b9c7f 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -6122,6 +6122,13 @@ export interface SearchQueryResult {
* Escaped text with <mark> around the matches; nothing else.
*/
snippet_html?: string | null;
++ /**
++ * 1-based position in the keyword and vector top-100 lists; null when absent from that list.
++ */
++ ranks?: {
++ keyword: number | null;
++ vector: number | null;
++ };
}[];
next_cursor: string | null;
facets?: {
@@@ -6132,6 +6139,13 @@ export interface SearchQueryResult {
}[]
| undefined;
};
++ /**
++ * How this page was ranked; reason is present only when ranking is keyword.
++ */
++ explain?: {
++ ranking: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
++ };
}
/** [email protected] (owner: search) */
@@@ -6292,6 +6306,13 @@ export interface SearchFabricResult {
* Rank within its scope (higher first); not comparable across scopes.
*/
score?: number | null;
++ /**
++ * 1-based position in the keyword and vector top-100 lists; null when absent from that list.
++ */
++ ranks?: {
++ keyword: number | null;
++ vector: number | null;
++ };
}[];
/**
* How many results each scope gave on this page.
@@@ -7976,6 +7997,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -7994,6 +8017,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8010,6 +8035,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8028,6 +8055,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8044,6 +8073,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8060,6 +8091,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8078,6 +8111,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8094,6 +8129,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8110,6 +8147,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8126,6 +8165,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8144,6 +8185,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8160,6 +8203,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8176,6 +8221,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8192,6 +8239,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8208,6 +8257,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8226,6 +8277,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8242,6 +8295,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8258,6 +8313,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8274,6 +8331,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8290,6 +8349,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8306,6 +8367,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8324,6 +8387,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8340,6 +8405,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8356,6 +8423,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8372,6 +8441,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8388,6 +8459,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8404,6 +8477,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8420,6 +8495,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8438,6 +8515,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8454,6 +8533,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8470,6 +8551,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8486,6 +8569,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8502,6 +8587,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8518,6 +8605,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8534,6 +8623,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8550,6 +8641,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8568,6 +8661,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8584,6 +8679,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8600,6 +8697,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8616,6 +8715,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8632,6 +8733,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8648,6 +8751,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8664,6 +8769,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8680,6 +8787,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8696,6 +8805,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8714,6 +8825,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8730,6 +8843,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8746,6 +8861,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8762,6 +8879,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8778,6 +8897,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8794,6 +8915,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8810,6 +8933,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8826,6 +8951,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8842,6 +8969,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8858,6 +8987,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -8876,6 +9007,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8892,6 +9025,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8908,6 +9043,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8924,6 +9061,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8940,6 +9079,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8956,6 +9097,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8972,6 +9115,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -8988,6 +9133,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9004,6 +9151,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9020,6 +9169,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9036,6 +9187,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -9054,6 +9207,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9070,6 +9225,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9086,6 +9243,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9102,6 +9261,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9118,6 +9279,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9134,6 +9297,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9150,6 +9315,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9166,6 +9333,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9182,6 +9351,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9198,6 +9369,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9214,6 +9387,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9230,6 +9405,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -9248,6 +9425,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9264,6 +9443,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9280,6 +9461,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9296,6 +9479,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9312,6 +9497,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9328,6 +9515,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9344,6 +9533,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9360,6 +9551,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9376,6 +9569,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9392,6 +9587,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9408,6 +9605,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9424,6 +9623,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9440,6 +9641,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -9458,6 +9661,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9474,6 +9679,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9490,6 +9697,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9506,6 +9715,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9522,6 +9733,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9538,6 +9751,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9554,6 +9769,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9570,6 +9787,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9586,6 +9805,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9602,6 +9823,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9618,6 +9841,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9634,6 +9859,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9650,6 +9877,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9666,6 +9895,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -9684,6 +9915,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9700,6 +9933,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9716,6 +9951,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9732,6 +9969,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9748,6 +9987,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9764,6 +10005,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9780,6 +10023,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9796,6 +10041,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9812,6 +10059,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9828,6 +10077,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9844,6 +10095,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9860,6 +10113,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9876,6 +10131,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9892,6 +10149,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9908,6 +10167,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -9926,6 +10187,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9942,6 +10205,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9958,6 +10223,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9974,6 +10241,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -9990,6 +10259,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10006,6 +10277,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10022,6 +10295,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10038,6 +10313,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10054,6 +10331,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10070,6 +10349,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10086,6 +10367,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10102,6 +10385,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10118,6 +10403,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10134,6 +10421,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10150,6 +10439,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10166,6 +10457,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -10184,6 +10477,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10200,6 +10495,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10216,6 +10513,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10232,6 +10531,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10248,6 +10549,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10264,6 +10567,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10280,6 +10585,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10296,6 +10603,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10312,6 +10621,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10328,6 +10639,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10344,6 +10657,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10360,6 +10675,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10376,6 +10693,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10392,6 +10711,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10408,6 +10729,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10424,6 +10747,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10440,6 +10765,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -10458,6 +10785,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10474,6 +10803,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10490,6 +10821,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10506,6 +10839,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10522,6 +10857,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10538,6 +10875,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10554,6 +10893,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10570,6 +10911,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10586,6 +10929,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10602,6 +10947,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10618,6 +10965,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10634,6 +10983,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10650,6 +11001,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10666,6 +11019,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10682,6 +11037,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10698,6 +11055,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10714,6 +11073,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10730,6 +11091,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -10748,6 +11111,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10764,6 +11129,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10780,6 +11147,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10796,6 +11165,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10812,6 +11183,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10828,6 +11201,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10844,6 +11219,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10860,6 +11237,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10876,6 +11255,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10892,6 +11273,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10908,6 +11291,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10924,6 +11309,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10940,6 +11327,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10956,6 +11345,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10972,6 +11363,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -10988,6 +11381,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11004,6 +11399,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11020,6 +11417,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11036,6 +11435,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
]
| [
@@@ -11054,6 +11455,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11070,6 +11473,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11086,6 +11491,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11102,6 +11509,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11118,6 +11527,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11134,6 +11545,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11150,6 +11563,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11166,6 +11581,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11182,6 +11599,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11198,6 +11617,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11214,6 +11635,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11230,6 +11653,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11246,6 +11671,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11262,6 +11689,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11278,6 +11707,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11294,6 +11725,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11310,6 +11743,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11326,6 +11761,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11342,6 +11779,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
},
{
scope: "network" | "mine" | "web" | "news" | "images" | "video" | "products" | "people" | "places" | "code";
@@@ -11358,6 +11797,8 @@ export interface SearchFabricResult {
* Why the step did not run (not allowed for this caller, quick depth, an earlier step answered, provider standing down).
*/
skipped?: string | null;
++ ranking?: "hybrid" | "keyword";
++ reason?: "no_vectors" | "ai_unavailable" | "short_query";
}
];
/**
@@@ -212756,48 +213197,72 @@ export interface DomainsProposal {
* The provider's record id (update, delete; a create's after it is applied).
*/
record_id?: string | null;
-- before?: {
-- type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
-- /**
-- * The full record name (example.com, www.example.com).
-- */
-- name: string;
-- content: string;
-- /**
-- * Seconds; 1 is the provider's automatic TTL.
-- */
-- ttl?: number;
-- /**
-- * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
-- */
-- proxied?: boolean | null;
-- /**
-- * MX and SRV only.
-- */
-- priority?: number | null;
-- comment?: string | null;
-- } | null;
-- after?: {
-- type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
-- /**
-- * The full record name (example.com, www.example.com).
-- */
-- name: string;
-- content: string;
-- /**
-- * Seconds; 1 is the provider's automatic TTL.
-- */
-- ttl?: number;
-- /**
-- * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
-- */
-- proxied?: boolean | null;
-- /**
-- * MX and SRV only.
-- */
-- priority?: number | null;
-- comment?: string | null;
-- } | null;
++ before?:
++ | {
++ type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
++ /**
++ * The full record name (example.com, www.example.com).
++ */
++ name: string;
++ content: string;
++ /**
++ * Seconds; 1 is the provider's automatic TTL.
++ */
++ ttl?: number;
++ /**
++ * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
++ */
++ proxied?: boolean | null;
++ /**
++ * MX and SRV only.
++ */
++ priority?: number | null;
++ comment?: string | null;
++ }
++ | null
++ | [string]
++ | [string, string]
++ | [string, string, string]
++ | [string, string, string, string]
++ | [string, string, string, string, string]
++ | [string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string];
++ after?:
++ | {
++ type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
++ /**
++ * The full record name (example.com, www.example.com).
++ */
++ name: string;
++ content: string;
++ /**
++ * Seconds; 1 is the provider's automatic TTL.
++ */
++ ttl?: number;
++ /**
++ * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
++ */
++ proxied?: boolean | null;
++ /**
++ * MX and SRV only.
++ */
++ priority?: number | null;
++ comment?: string | null;
++ }
++ | null
++ | [string]
++ | [string, string]
++ | [string, string, string]
++ | [string, string, string, string]
++ | [string, string, string, string, string]
++ | [string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string];
++ /**
++ * A registrar change: the domain's nameservers at the registry. op is update only; before and after are the lists.
++ */
++ type?: "NS";
},
...{
op: "create" | "update" | "delete";
@@@ -212805,48 +213270,72 @@ export interface DomainsProposal {
* The provider's record id (update, delete; a create's after it is applied).
*/
record_id?: string | null;
-- before?: {
-- type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
-- /**
-- * The full record name (example.com, www.example.com).
-- */
-- name: string;
-- content: string;
-- /**
-- * Seconds; 1 is the provider's automatic TTL.
-- */
-- ttl?: number;
-- /**
-- * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
-- */
-- proxied?: boolean | null;
-- /**
-- * MX and SRV only.
-- */
-- priority?: number | null;
-- comment?: string | null;
-- } | null;
-- after?: {
-- type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
-- /**
-- * The full record name (example.com, www.example.com).
-- */
-- name: string;
-- content: string;
-- /**
-- * Seconds; 1 is the provider's automatic TTL.
-- */
-- ttl?: number;
-- /**
-- * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
-- */
-- proxied?: boolean | null;
-- /**
-- * MX and SRV only.
-- */
-- priority?: number | null;
-- comment?: string | null;
-- } | null;
++ before?:
++ | {
++ type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
++ /**
++ * The full record name (example.com, www.example.com).
++ */
++ name: string;
++ content: string;
++ /**
++ * Seconds; 1 is the provider's automatic TTL.
++ */
++ ttl?: number;
++ /**
++ * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
++ */
++ proxied?: boolean | null;
++ /**
++ * MX and SRV only.
++ */
++ priority?: number | null;
++ comment?: string | null;
++ }
++ | null
++ | [string]
++ | [string, string]
++ | [string, string, string]
++ | [string, string, string, string]
++ | [string, string, string, string, string]
++ | [string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string];
++ after?:
++ | {
++ type: "A" | "AAAA" | "CNAME" | "TXT" | "MX" | "NS" | "CAA" | "SRV" | "DS";
++ /**
++ * The full record name (example.com, www.example.com).
++ */
++ name: string;
++ content: string;
++ /**
++ * Seconds; 1 is the provider's automatic TTL.
++ */
++ ttl?: number;
++ /**
++ * Cloudflare's proxy, for A, AAAA and CNAME; null elsewhere.
++ */
++ proxied?: boolean | null;
++ /**
++ * MX and SRV only.
++ */
++ priority?: number | null;
++ comment?: string | null;
++ }
++ | null
++ | [string]
++ | [string, string]
++ | [string, string, string]
++ | [string, string, string, string]
++ | [string, string, string, string, string]
++ | [string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string];
++ /**
++ * A registrar change: the domain's nameservers at the registry. op is update only; before and after are the lists.
++ */
++ type?: "NS";
}[]
];
created_by: string;
ddiff --git a/manifests/services/meme.json b/manifests/services/meme.json
nnew file mode 100644
iindex 00000000..b6e47283
---- /dev/null
++++ b/manifests/services/meme.json
@@@ -0,0 +1,80 @@
++{
++ "version": "0.1.0",
++ "contractRanges": {
++ "openvibe-contracts": ">=0.229.0 <1.0.0"
++ },
++ "id": "meme",
++ "name": "OpenVibe.Meme",
++ "status": "alpha",
++ "repository": "OpenVibers/OpenVibe.Meme",
++ "domains": [
++ "openvibe.meme"
++ ],
++ "publicOrigin": "https://openvibe.meme",
++ "exposure": {
++ "state": "live",
++ "publicSite": "service"
++ },
++ "capabilities": [],
++ "eventsProduced": [],
++ "eventsConsumed": [],
++ "namespacesOwned": [
++ "meme.*"
++ ],
++ "lifecycle": {
++ "liveness": {
++ "endpoint": "/api/health",
++ "means": "the process is up and answers HTTP; it checks nothing else (the PostgreSQL database, Valkey, Network's JWKS and the OAuth client are what /api/ready checks)"
++ },
++ "shutdown": {
++ "signal": "SIGTERM",
++ "deadlineSeconds": 10,
++ "drains": [
++ "HTTP server closed and in-flight requests drained",
++ "JWKS refresher stopped, then the importer and re-verifier timers cleared",
++ "telemetry flushed and its retention timer stopped",
++ "PostgreSQL pool closed, then the Events subscriptions stopped"
++ ]
++ },
++ "startupRecovery": {
++ "resumes": [
++ {
++ "kind": "outbox",
++ "what": "meme_outbox rows committed with an entry change survive a stop under their fixed evt_ ids; v1 has no relay yet, so unpublished rows wait for Search's document writer rather than being sent at boot"
++ },
++ {
++ "kind": "jobs",
++ "what": "the importer makes its first pass 30 s after boot and the citation re-verifier 60 s after; each pass is whole and idempotent, so a stop mid-pass leaves the next one to finish"
++ }
++ ]
++ },
++ "rollback": {
++ "conditions": [
++ "automatic: ovhost deploy puts the previous sha back and restarts again when the ready URL does not answer 2xx within ready.timeoutSeconds after the restart (exit 3)",
++ "manual: ovhost rollback <service> --to <sha>"
++ ],
++ "window": "automatic only while ovhost waits for readiness after the restart; manual afterwards, as long as no blocker applies",
++ "blockers": {
++ "none": "migration 0001 only creates Meme's own tables (entries, citations, status events, votes, templates, captions, reports, outbox, account-data, telemetry); an earlier release reads none of them"
++ }
++ },
++ "contracts": {
++ "range": ">=0.229.0 <1.0.0"
++ },
++ "leases": {
++ "none": "no claims: one process serves the site and the API"
++ }
++ },
++ "notes": "Port 5120, unit openvibe-meme.service, PostgreSQL database ov_meme. The Meme room: the open meme database, rebuilt with AI. The importer reads only public Chat, Live and Video APIs and proposes a candidate when a phrase recurs in at least two uses on two different days; the candidate is born hidden with a verbatim citation for every use and a staff person publishes it. A daily job re-verifies every citation: a 404/410 marks it gone, a 401/403 hidden, and an entry whose origin is gone is hidden. People vote once per ISO week for meme of the week, captions are plain text over a template, and every public entry is one search.index-document@1 queued in meme_outbox (a tombstone when it stops being public). OAuth client `meme`; answers account export and deletion (ADR-033) and subscribes to those Events topics.",
++ "health": "/api/health",
++ "ready": "/api/ready",
++ "internalOrigin": "http://127.0.0.1:5120",
++ "site": {
++ "name": "Meme",
++ "icon": "meme",
++ "tagline": "The internet's meme database",
++ "what": "Every entry in the open meme database cites the chat line or VOD second it came from, follows the later uses on a timeline, and keeps a status. Vote for meme of the week, caption a template, and report what needs fixing.",
++ "legalProfile": "ugc",
++ "position": 42
++ }
++}
ddiff --git a/package.json b/package.json
iindex 6485c514..28e68918 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.233.0",
++ "version": "0.234.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"types": "generated/typescript/index.d.ts",