changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Fused results with a per-signal explanation of how they were ranked.",
+ "properties": {
+ "completeness": {
+ "description": "Declares exactly what this response left out, so a truncated result can never look complete.",
+ "properties": {
+ "complete": {
+ "description": "True only when every matching item is present.",
+ "type": "boolean"
+ },
+ "limitSource": {
+ "description": "Whose choice bounded the result.",
+ "enum": [
+ "caller",
+ "default"
+ ],
+ "type": "string"
+ },
+ "losslessItems": {
+ "description": "Always true: each returned item is a full-fidelity record, never a summary or a truncated field.",
+ "type": "boolean"
+ },
+ "omitted": {
+ "description": "total minus returned.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "ranking": {
+ "description": "How the per-signal lists were fused.",
+ "properties": {
+ "k": {
+ "description": "Reciprocal rank fusion constant.",
+ "type": "number"
+ },
+ "strategy": {
+ "description": "Fusion strategy identifier, currently weighted_rrf.",
+ "type": "string"
+ },
+ "weights": {
+ "description": "Per-signal weights applied during fusion.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "strategy",
+ "k",
+ "weights"
+ ],
+ "type": "object"
+ },
+ "returned": {
+ "description": "Items in this response.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "scope": {
+ "description": "The project, query, and structured filters that produced this result, so it explains its own derivation.",
+ "type": "object"
+ },
+ "signals": {
+ "description": "Authoritative per-signal availability. A signal that could not run says so instead of being silently dropped or renamed.",
+ "properties": {
+ "graph": {
+ "description": "Graph-distance ranking from focalId.",
+ "properties": {
+ "available": {
+ "description": "Whether this signal could contribute at all.",
+ "type": "boolean"
+ },
+ "matched": {
+ "description": "Candidates this signal contributed.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why the signal was unavailable, when it was."
+ }
+ },
+ "required": [
+ "available",
+ "matched",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "lexical": {
+ "description": "BM25-style lexical matching over declared content.",
+ "properties": {
+ "available": {
+ "description": "True when the query contained terms.",
+ "type": "boolean"
+ },
+ "matched": {
+ "description": "Candidates the lexical list contributed.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "terms": {
+ "description": "The query terms that were used.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "available",
+ "matched",
+ "terms"
+ ],
+ "type": "object"
+ },
+ "semantic": {
+ "description": "Cosine vector matching. available is false when no compatible query vector or provider existed; the result is then lexical, graph, and temporal only.",
+ "properties": {
+ "available": {
+ "description": "Whether this signal could contribute at all.",
+ "type": "boolean"
+ },
+ "matched": {
+ "description": "Candidates this signal contributed.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why the signal was unavailable, when it was."
+ }
+ },
+ "required": [
+ "available",
+ "matched",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "temporal": {
+ "description": "Recency ranking from asOf or preferRecent.",
+ "properties": {
+ "asOf": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The point in time selection was made against, or null for now."
+ },
+ "available": {
+ "description": "Whether recency ranking ran.",
+ "type": "boolean"
+ },
+ "matched": {
+ "description": "Candidates the temporal list contributed.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why recency ranking did not run, when it did not."
+ }
+ },
+ "required": [
+ "available",
+ "matched",
+ "reason",
+ "asOf"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "lexical",
+ "semantic",
+ "graph",
+ "temporal"
+ ],
+ "type": "object"
+ },
+ "total": {
+ "description": "Items that matched in total.",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "scope",
+ "returned",
+ "total",
+ "complete",
+ "omitted",
+ "losslessItems",
+ "limitSource",
+ "signals",
+ "ranking"
+ ],
+ "type": "object"
+ },
+ "items": {
+ "description": "The items in this window, in deterministic order.",
+ "items": {
+ "description": "One recalled record with its per-signal explanation.",
+ "properties": {
+ "ranks": {
+ "description": "Position this item held in each signal list, counting from 1, or null where that signal did not rank it.",
+ "properties": {
+ "graph": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Position in the graph-distance list; null when no focalId was supplied."
+ },
+ "lexical": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Position in the BM25-style lexical list."
+ },
+ "semantic": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Position in the vector list; null when no compatible query vector or provider existed."
+ },
+ "temporal": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Position in the recency list; null when neither asOf nor preferRecent was supplied."
+ }
+ },
+ "required": [
+ "lexical",
+ "semantic",
+ "graph",
+ "temporal"
+ ],
+ "type": "object"
+ },
+ "reasons": {
+ "description": "One entry per contributing signal, naming the rank it contributed.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "record": {
+ "description": "One stored entity: a decision, attempt, memory, fact, or alternative. Fields vary by kind, and an entity imported from an older schema may carry fewer of them.",
+ "properties": {
+ "actor": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Who performed the write."
+ },
+ "client": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Which client performed the write."
+ },
+ "createdAt": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "ISO 8601 creation time."
+ },
+ "id": {
+ "description": "Stable entity identifier.",
+ "type": "string"
+ },
+ "kind": {
+ "description": "Entity kind: decision, attempt, memory, fact, relation, review, or alternative.",
+ "type": "string"
+ },
+ "project": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Project namespace; records imported from a schema that predates projects may carry null."
+ },
+ "schemaVersion": {
+ "description": "Storage schema version this entity was written under. A value above the build’s own version is preserved rather than downgraded.",
+ "type": "integer"
+ },
+ "sessionId": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Session identifier recorded with the write."
+ },
+ "sourceClass": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Claimed origin class recorded with the write. A claim, never proof."
+ },
+ "sourceRaw": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The original origin label when it differed from sourceClass. Audit only; never evidence."
+ },
+ "updatedAt": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "ISO 8601 time of the last change."
+ }
+ },
+ "type": "object"
+ },
+ "score": {
+ "description": "Fused score.",
+ "type": "number"
+ },
+ "scores": {
+ "description": "The raw value behind each rank, or null where that signal did not rank this item.",
+ "properties": {
+ "graph": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Hop distance from focalId."
+ },
+ "lexical": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "BM25-style lexical score."
+ },
+ "semantic": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Cosine similarity between the query vector and the stored vector."
+ },
+ "temporal": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The ISO 8601 validFrom or recordedAt instant recency ordering used, not a number."
+ }
+ },
+ "required": [
+ "lexical",
+ "semantic",
+ "graph",
+ "temporal"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "record",
+ "score",
+ "ranks",
+ "scores",
+ "reasons"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "page": {
+ "description": "The window actually applied to the matching items.",
+ "properties": {
+ "hasMore": {
+ "description": "True when matching items exist beyond this window.",
+ "type": "boolean"
+ },
+ "limit": {
+ "description": "Window size applied, whether the caller set it or the default did.",
+ "minimum": 1,
+ "type": "integer"
+ },
+ "offset": {
+ "description": "Index of the first item returned.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "total": {
+ "description": "Matching items before the window was applied.",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "offset",
+ "limit",
+ "total",
+ "hasMore"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "items",
+ "page",
+ "completeness"
+ ],
+ "type": "object"
+}