haematite-cli 0.21.8

The haematite command: serve a store, its door and Studio, answer MCP, query with jq, and host the store's assistant seat
Documentation
[
  {
    "name": "collection",
    "role": "source",
    "status": "served",
    "arguments": [
      "name: a nonempty collection name in double quotes"
    ],
    "meaning": "Read records from the named collection, including names that cannot be written bare."
  },
  {
    "name": "and",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "source: join field equalities inside collection arguments",
      "jq: combine two boolean expressions"
    ],
    "meaning": "Join collection equalities or combine boolean expressions inside quoted jq."
  },
  {
    "name": "similar",
    "role": "search",
    "status": "served",
    "arguments": [
      "field: a top-level vector field with a leading dot",
      "question: double-quoted text or record(\"id\")",
      "measure: cosine, l2 or dot"
    ],
    "meaning": "Search by vector similarity first after its source or later over the records that reached it."
  },
  {
    "name": "record",
    "role": "target",
    "status": "served",
    "arguments": [
      "id: a record id in double quotes"
    ],
    "meaning": "Use the stored vector of the named record as the similarity question."
  },
  {
    "name": "limit",
    "role": "bound",
    "status": "served",
    "arguments": [
      "n: a whole number from 1 to 4294967295"
    ],
    "meaning": "Stop the upstream after at most n records or values at this point in the pipeline."
  },
  {
    "name": "sort",
    "role": "order",
    "status": "served",
    "arguments": [
      "field: a top-level field with a leading dot",
      "direction: optional desc after a semicolon"
    ],
    "meaning": "Order the whole upstream by a field before the quoted jq stage."
  },
  {
    "name": "desc",
    "role": "order",
    "status": "served",
    "arguments": [],
    "meaning": "Order the sort field from greatest to least instead of ascending order."
  },
  {
    "name": "count",
    "role": "count",
    "status": "served",
    "arguments": [],
    "meaning": "Consume the whole upstream and answer its size as the last stage."
  },
  {
    "name": "cosine",
    "role": "measure",
    "status": "served",
    "arguments": [],
    "meaning": "Compare vectors by their cosine similarity."
  },
  {
    "name": "l2",
    "role": "measure",
    "status": "served",
    "arguments": [],
    "meaning": "Compare vectors by their Euclidean distance."
  },
  {
    "name": "dot",
    "role": "measure",
    "status": "served",
    "arguments": [],
    "meaning": "Compare vectors by their dot product."
  },
  {
    "name": "match",
    "role": "source",
    "status": "served",
    "arguments": [
      "nodes: (binding:collection) or up to eight labelled nodes joined by directed relations",
      "binding: distinct names matching [a-z_][a-z0-9_]*",
      "relation: -[:kind]-> or <-[:kind]- at each of up to seven hops"
    ],
    "meaning": "Match a labelled collection or a fixed chain of directed relations first or immediately after its collection."
  },
  {
    "name": "rg",
    "role": "search",
    "status": "served",
    "arguments": [
      "field: optional top-level field with a leading dot",
      "pattern: a regular expression in double quotes",
      "flags: optional quoted -i, -s, -S, -w, -x, -F, -v and -U switches and their long forms; --no-ignore-case resets case sensitivity; -U dot matches newlines"
    ],
    "meaning": "Keep whole records in order when their compact JSON or named field matches the pattern."
  },
  {
    "name": "grep",
    "role": "search",
    "status": "served",
    "arguments": [
      "field: optional top-level field with a leading dot",
      "pattern: a regular expression in double quotes",
      "flags: optional quoted -i, -s, -S, -w, -x, -F, -v and -U switches and their long forms; --no-ignore-case resets case sensitivity; -U dot matches newlines"
    ],
    "meaning": "Alias of rg: keep whole records in order when their compact JSON or named field matches the pattern."
  },
  {
    "name": "rerank",
    "role": "order",
    "status": "served",
    "arguments": [
      "field: a top-level vector field with a leading dot",
      "question: double-quoted text or record(\"id\")",
      "measure: cosine, l2 or dot"
    ],
    "meaning": "Drain the bounded upstream, reorder by vector score, replace scores and count unscored records last; no continuation."
  },
  {
    "name": "sort_by",
    "role": "stage-not-yet",
    "status": "not_yet",
    "arguments": [
      "expression: a sort key"
    ],
    "meaning": "Reserve an unquoted sort_by stage that is not available yet."
  },
  {
    "name": "window",
    "role": "bound",
    "status": "served",
    "arguments": [
      "from: an included unsigned version or quoted RFC 3339 instant",
      "to: an excluded bound of the same form, or $now"
    ],
    "meaning": "Keep records by their revision append version, never by a time inside the record."
  },
  {
    "name": "group_by",
    "role": "group",
    "status": "served",
    "arguments": [
      "field: a top-level field with a leading dot"
    ],
    "meaning": "Drain records before jq into key, count and values groups in jq value order; missing fields group under null and no continuation is available."
  },
  {
    "name": "percentile",
    "role": "aggregate",
    "status": "served",
    "arguments": [
      "field: a top-level numeric field with a leading dot",
      "percentile: a number from 0 to 100 inclusive"
    ],
    "meaning": "Drain records before jq into one nearest-rank JSON number; empty numeric input gives null, zero selects the minimum, non-numbers are counted as skipped, and no continuation is available."
  },
  {
    "name": "{",
    "role": "shape",
    "status": "served",
    "arguments": [
      "fields: bare names with nested selection sets",
      "source: one or several collection roots in a first-stage shape"
    ],
    "meaning": "Keep selected fields in record order; a first-stage shape reads collections in root order before worker Input."
  },
  {
    "name": "as",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "pattern: bind a jq value to variables"
    ],
    "meaning": "Bind values to variables within a quoted jq expression."
  },
  {
    "name": "def",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "name and parameters: the filter definition"
    ],
    "meaning": "Define a reusable filter inside quoted jq."
  },
  {
    "name": "if",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "condition: the tested expression"
    ],
    "meaning": "Start a conditional expression inside quoted jq."
  },
  {
    "name": "then",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "expression: the branch to evaluate"
    ],
    "meaning": "Introduce a conditional branch inside quoted jq."
  },
  {
    "name": "elif",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "condition: an additional test"
    ],
    "meaning": "Add another conditional test inside quoted jq."
  },
  {
    "name": "else",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "expression: the alternative branch"
    ],
    "meaning": "Introduce the alternative branch inside quoted jq."
  },
  {
    "name": "end",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [],
    "meaning": "Close a conditional expression inside quoted jq."
  },
  {
    "name": "or",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "expressions: the boolean operands"
    ],
    "meaning": "Combine boolean expressions by disjunction inside quoted jq."
  },
  {
    "name": "reduce",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "generator and accumulator: the reduction expressions"
    ],
    "meaning": "Fold generated values into an accumulator inside quoted jq."
  },
  {
    "name": "foreach",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "generator, accumulator and output: the iteration expressions"
    ],
    "meaning": "Fold generated values while emitting intermediate results inside quoted jq."
  },
  {
    "name": "in",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "container: the object or array to inspect"
    ],
    "meaning": "Test whether the current key belongs to a container inside quoted jq."
  },
  {
    "name": "try",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "expression: the expression whose errors are caught"
    ],
    "meaning": "Evaluate an expression with error handling inside quoted jq."
  },
  {
    "name": "catch",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "expression: the error handler"
    ],
    "meaning": "Handle an error from a try expression inside quoted jq."
  },
  {
    "name": "label",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "name: a label variable"
    ],
    "meaning": "Name a control-flow boundary inside quoted jq."
  },
  {
    "name": "break",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "name: the label to exit"
    ],
    "meaning": "Exit a named control-flow boundary inside quoted jq."
  },
  {
    "name": "module",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "metadata: a JSON object"
    ],
    "meaning": "Declare module metadata inside a jq program."
  },
  {
    "name": "import",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "path and alias: the module to load"
    ],
    "meaning": "Import a module under an alias inside a jq program."
  },
  {
    "name": "include",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [
      "path: the module to load"
    ],
    "meaning": "Include a module directly inside a jq program."
  },
  {
    "name": "true",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [],
    "meaning": "Produce the boolean true inside quoted jq or a collection argument."
  },
  {
    "name": "false",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [],
    "meaning": "Produce the boolean false inside quoted jq or a collection argument."
  },
  {
    "name": "null",
    "role": "jq-keyword",
    "status": "served",
    "arguments": [],
    "meaning": "Produce the null value inside quoted jq or a collection argument."
  }
]