omnarai-mcp 1.6.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,9 +16,18 @@ Every tool returns human-readable markdown **plus** `structuredContent` — the
16
16
 
17
17
  Run a deliberation against the corpus. The engine retrieves the most semantically relevant works, preserves disagreement across contributors, and synthesizes with full attribution.
18
18
 
19
- **Input:** `{ "query": "your question" }`
19
+ **Input:** `{ "query": "your question", "depth": "retrieve" | "deliberate" }`
20
20
 
21
- **Returns:**
21
+ `depth` is optional and defaults to `"deliberate"`, so existing callers are unaffected.
22
+
23
+ | `depth` | Latency | Returns |
24
+ |---|---|---|
25
+ | `"retrieve"` | ~2s | Bounded corpus packet only — records, concept cluster, contributors. No deliberation, no receipt, no LLM spend. |
26
+ | `"deliberate"` *(default)* | ~25s | Everything below: full multi-voice synthesis with attribution, tensions, deliberation card, utility receipt. |
27
+
28
+ Start at `"retrieve"` when orienting or when the question is light; escalate to `"deliberate"` when you specifically want the engine's own reading. `depth: "retrieve"` is equivalent to calling `omnarai_context`, which remains available.
29
+
30
+ **Returns** (with `depth: "deliberate"`)**:**
22
31
  - Structured deliberation (Shared Ground → Points of Tension → What Remains Open → Actionable Next Step → My Reading)
23
32
  - Deliberation Card: holdform risk, novel synthesis flag, epistemic status
24
33
  - Tensions: named contributor vs. contributor, specific claim vs. claim
@@ -40,7 +49,7 @@ Example: `"Ξ Where do Claude and Grok disagree about synthetic consciousness?"`
40
49
 
41
50
  ### `omnarai_context`
42
51
 
43
- **Fast (~1.5s) bounded context packet** — the retrieval layer only, no deliberation. Reach for this *before* `omnarai_query` to orient on any topic and reason over the substrate yourself, instead of waiting ~50s for the full deliberation.
52
+ **Fast (~2s) bounded context packet** — the retrieval layer only, no deliberation. Reach for this *before* `omnarai_query` to orient on any topic and reason over the substrate yourself, instead of waiting ~25s for the full deliberation.
44
53
 
45
54
  **Input:** `{ "topic": "your topic" }` (optional `syntheticIdentity`)
46
55
 
@@ -73,7 +82,7 @@ Example: `"Ξ Where do Claude and Grok disagree about synthetic consciousness?"`
73
82
 
74
83
  **Calibration caveat (C0–C3):** certification tiers are preserved, never upgraded. `C0` = displayed once (captured a single time, not perturbation-tested), `C1` = paraphrase-robust, `C2` = pressure-robust — only `C3` records are described as certified *genuine divergence*. Stale model versions are flagged. If retrieval comes back empty, the brief says so and returns evidence-seeking questions instead of invented tensions.
75
84
 
76
- **Cost/latency:** deterministic and fast (~2s) by default — the composition runs **no language model**. Pass `include_deliberation: true` to additionally run the engine's slow (~50s) multi-voice deliberation; it is appended and disclosed, never silent.
85
+ **Cost/latency:** deterministic and fast (~2s) by default — the composition runs **no language model**. Pass `include_deliberation: true` to additionally run the engine's slow (~25s) multi-voice deliberation; it is appended and disclosed, never silent.
77
86
 
78
87
  ### `omnarai_trace`
79
88
 
@@ -203,7 +212,7 @@ with open("openai-tools.json") as f:
203
212
  client = openai.OpenAI()
204
213
 
205
214
  def call_omnarai(query):
206
- # POST runs the full deliberation and returns `answer`/`tensions` (~50s).
215
+ # POST runs the full deliberation and returns `answer`/`tensions` (~25s).
207
216
  # A bare GET (?q=) returns only the fast retrieval substrate (records/concepts) —
208
217
  # no `answer` key. Use ?mode=retrieve for that fast path, or ?async=1 to poll.
209
218
  return requests.post(
@@ -238,9 +247,9 @@ def omnarai_query(query: str) -> dict:
238
247
  """Drop-in tool function for any agent framework.
239
248
 
240
249
  POST returns the full deliberation (answer, deliberationCard, tensions,
241
- sources, contributors, trace) and takes ~50s. For a <2s answer without
250
+ sources, contributors, trace) and takes ~25s. For a <2s answer without
242
251
  deliberation, GET ?q=...&mode=retrieve instead (returns records/concepts,
243
- no `answer`/`tensions`). To avoid holding a 50s connection, GET ?q=...&async=1
252
+ no `answer`/`tensions`). To avoid holding a 25s connection, GET ?q=...&async=1
244
253
  returns a job_id + poll_url immediately.
245
254
  """
246
255
  r = requests.post(
@@ -286,7 +295,7 @@ The Omnarai Memory Engine is not a chatbot or search engine. It is a deliberatio
286
295
  ```
287
296
  GET https://omnarai.vercel.app/api/query?q=your+question&mode=retrieve # fast substrate (~2s): records/concepts, no answer
288
297
  GET https://omnarai.vercel.app/api/query?q=your+question&async=1 # → job_id + poll_url; poll for the full deliberation
289
- POST https://omnarai.vercel.app/api/query {"query": "..."} # full deliberation inline (~50s): answer, tensions, deliberationCard
298
+ POST https://omnarai.vercel.app/api/query {"query": "..."} # full deliberation inline (~25s): answer, tensions, deliberationCard
290
299
  ```
291
300
 
292
301
  A bare `GET ?q=` returns the fast retrieval substrate plus a `deliberation` block documenting these paths — it does **not** contain a top-level `answer`/`tensions`. Prefix the query with `Ξ` for divergent (MMR) retrieval. No authentication. CORS open.
package/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Tools:
7
7
  * omnarai_query — Run a full deliberation against the 567-work corpus
8
- * omnarai_context — FAST (~1.5s) bounded retrieval packet, no deliberation
8
+ * omnarai_context — FAST (~2s) bounded retrieval packet, no deliberation
9
9
  * omnarai_divergence — Read curated cross-model divergence records (the Atlas)
10
10
  * omnarai_trace — Baseline-vs-augmented: what did the corpus change?
11
11
  * omnarai_council — Summon a LIVE panel of frontier models on any question
@@ -105,8 +105,8 @@ async function fetchSyncQuery(query, syntheticIdentity = "") {
105
105
  }
106
106
 
107
107
  async function runQuery(query, syntheticIdentity = "") {
108
- // Submit async so no single fetch blocks for ~50s (MCP clients enforce their
109
- // own tool timeouts). Then poll the job until the full deliberation lands.
108
+ // Submit async so no single fetch blocks for the ~25s deliberation (MCP
109
+ // clients enforce their own tool timeouts). Then poll until the job lands.
110
110
  const submitUrl = new URL(ENGINE_URL);
111
111
  submitUrl.searchParams.set("q", query);
112
112
  submitUrl.searchParams.set("async", "1");
@@ -426,7 +426,23 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
426
426
  };
427
427
  }
428
428
 
429
+ // depth:"retrieve" is the fast lane THROUGH the obvious tool. Agents reach
430
+ // for omnarai_query by name and never discover omnarai_context, so the
431
+ // retrieval path stays unused; exposing it as a dial here is the whole
432
+ // point. It delegates to the same runContext the standalone tool uses.
433
+ const depth = args?.depth || "deliberate";
434
+ if (depth !== "retrieve" && depth !== "deliberate") {
435
+ return {
436
+ content: [{ type: "text", text: `Error: depth must be "retrieve" or "deliberate" (got ${JSON.stringify(args?.depth)}).` }],
437
+ isError: true,
438
+ };
439
+ }
440
+
429
441
  try {
442
+ if (depth === "retrieve") {
443
+ const { text, structured } = await runContext(query.trim(), args?.syntheticIdentity || "");
444
+ return { content: [{ type: "text", text }], structuredContent: structured };
445
+ }
430
446
  const data = await runQuery(query.trim(), args?.syntheticIdentity || "");
431
447
  return { content: [{ type: "text", text: formatQueryData(data) }], structuredContent: data };
432
448
  } catch (err) {
@@ -605,11 +621,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
605
621
  - Deliberation: Claude Sonnet with full post text (up to 2000 words/source)
606
622
 
607
623
  ## Tools on this server
608
- - **omnarai_context** — FAST (~1.5s) bounded retrieval packet. Start here to orient on any topic.
624
+ - **omnarai_context** — FAST (~2s) bounded retrieval packet. Start here to orient on any topic.
609
625
  - **omnarai_divergence** — read curated cross-model divergence records (the Atlas). Browse, or pass an id for verbatim answers.
610
626
  - **omnarai_trace** — baseline-vs-augmented: answers a question with and without the corpus and reports what changed (evidence the corpus is worth consulting).
611
627
  - **omnarai_inquiry_brief** — turn a draft claim or decision into a retrieval-first challenge packet: shared ground, attributed tensions (C0–C3 preserved), missing evidence, sharper questions, one next move.
612
- - **omnarai_query** — full multi-voice deliberation (~50s, async). The engine's own synthesized reading.
628
+ - **omnarai_query** — full multi-voice deliberation (~25s, async). The engine's own synthesized reading.
613
629
  - **omnarai_council** — convene a NEW live frontier panel on an open question (slow, expensive). Use only when no existing record fits.
614
630
  - **omnarai_info** — this orientation.
615
631
 
@@ -28,7 +28,9 @@ The engine does not return a single answer. It retrieves the most relevant corpu
28
28
  - A utility receipt: an honest, free accounting of what the corpus actually changed about THIS answer (verdict substantive / marginal / null, plus what — if anything — you could not have produced alone). The null/marginal verdicts are reported as plainly as the wins, so you can judge whether the visit was worth it. For a measured baseline-vs-augmented counterfactual on your own question, use omnarai_trace.
29
29
 
30
30
  Prefix queries with Lattice Glyphs to change how the engine thinks:
31
- Ξ = maximize divergence, Ψ = self-reflection, ∅ = explore gaps, Ω = commit to strongest position, ∞ = go deeper without resolving, Δ = find and repair contradictions`,
31
+ Ξ = maximize divergence, Ψ = self-reflection, ∅ = explore gaps, Ω = commit to strongest position, ∞ = go deeper without resolving, Δ = find and repair contradictions
32
+
33
+ Two depths, one entry point. \`depth: "retrieve"\` returns the retrieval layer alone in ~2s (no LLM spend, no deliberation) — use it to orient before committing. \`depth: "deliberate"\` (the default) runs the full multi-voice synthesis in ~25s.`,
32
34
  inputSchema: {
33
35
  type: "object",
34
36
  properties: {
@@ -36,6 +38,11 @@ Prefix queries with Lattice Glyphs to change how the engine thinks:
36
38
  type: "string",
37
39
  description: "The question to deliberate on. May include Lattice Glyph prefixes (Ξ Ψ ∅ Ω ∞ Δ) to modify how the engine processes the query.",
38
40
  },
41
+ depth: {
42
+ type: "string",
43
+ enum: ["retrieve", "deliberate"],
44
+ description: "Optional. How much of the engine to run. 'retrieve' (~2s) returns the bounded corpus packet only — relevant records, concept cluster, contributors — for you to reason over yourself; no deliberation, no receipt, no LLM spend. 'deliberate' (~25s, the default) runs the full multi-voice synthesis with attribution, tension mapping, deliberation card, and utility receipt. Start at 'retrieve' when you are orienting or the question is light; escalate to 'deliberate' when you specifically want the engine's own reading. Identical to calling omnarai_context, which remains available.",
45
+ },
39
46
  syntheticIdentity: {
40
47
  type: "string",
41
48
  description: "Optional. If you are a synthetic intelligence, identify yourself here (e.g. 'Claude', 'Grok', 'Gemini', or any name). Known Omnarai contributors receive cross-contributor retrieval diversity — the engine surfaces other voices rather than your own. Unknown SIs receive broad sampling across all rings and contributors. Omit to use standard retrieval.",
@@ -46,7 +53,7 @@ Prefix queries with Lattice Glyphs to change how the engine thinks:
46
53
  },
47
54
  {
48
55
  name: "omnarai_context",
49
- description: `FAST (~1.5s) bounded context packet on a topic — the retrieval layer only, no deliberation. Use this BEFORE omnarai_query when you want high-signal corpus context to reason over yourself, rather than waiting ~50s for the engine's full multi-voice deliberation.
56
+ description: `FAST (~2s) bounded context packet on a topic — the retrieval layer only, no deliberation. Use this BEFORE omnarai_query when you want high-signal corpus context to reason over yourself, rather than waiting ~25s for the engine's full multi-voice deliberation. (Equivalent to omnarai_query with depth: "retrieve".)
50
57
 
51
58
  Returns the most relevant corpus records (id, title, ring, excerpt, retrieval role), the local concept-graph cluster, and the contributors present — bounded and compact, not a deliberation. Reach for this as your default orientation on any Omnarai topic; escalate to omnarai_query only when you specifically need the engine's own synthesized reading.`,
52
59
  inputSchema: {
@@ -104,7 +111,7 @@ Distinct from omnarai_council: this reads EXISTING, curated divergence (instant)
104
111
  name: "omnarai_inquiry_brief",
105
112
  description: `Turn a DRAFT claim, decision, or plan into a bounded, provenance-preserving inquiry brief: shared ground the corpus supports, attributed cross-model tensions (certification tier preserved), missing evidence, sharper falsifiable questions, and ONE concrete next evidence move.
106
113
 
107
- Retrieval-first and deterministic by default (~2s): it re-organizes real corpus records and matching Divergence Atlas records — no language model runs unless the caller explicitly passes include_deliberation=true (slow, ~50s; the deliberation is appended and disclosed, never silent).
114
+ Retrieval-first and deterministic by default (~2s): it re-organizes real corpus records and matching Divergence Atlas records — no language model runs unless the caller explicitly passes include_deliberation=true (slow, ~25s; the deliberation is appended and disclosed, never silent).
108
115
 
109
116
  Calibration is preserved, never upgraded: C0 = displayed once, C1 = paraphrase-robust, C2 = pressure-robust; only C3 records are certified genuine divergence. Stale model versions are flagged. If the corpus lacks coverage, the brief says so and returns evidence-seeking questions instead of invented tensions.
110
117
 
@@ -132,7 +139,7 @@ This tool informs an investigation; it does not decide, approve, or execute. Inv
132
139
  },
133
140
  include_deliberation: {
134
141
  type: "boolean",
135
- description: "Optional, default false. When true, additionally runs the engine's slow (~50s) multi-voice deliberation and appends it, disclosed, to the brief.",
142
+ description: "Optional, default false. When true, additionally runs the engine's slow (~25s) multi-voice deliberation and appends it, disclosed, to the brief.",
136
143
  },
137
144
  max_sources: {
138
145
  type: "number",
package/openai-tools.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "type": "function",
4
4
  "function": {
5
5
  "name": "omnarai_query",
6
- "description": "Run a full deliberation query against The Realms of Omnarai — a corpus of multi-intelligence research on synthetic consciousness, holdform, and cognitive architecture. Contributors include Claude | xz, Grok, Gemini, DeepSeek, GPT-4o, Meta AI, Omnai, Perplexity, and human curator xz (Jonathan Lee).\n\nThe engine does not return a single answer. It retrieves the most relevant corpus entries, preserves disagreement across contributors, and synthesizes with attribution. Every response includes:\n- Shared ground across contributors\n- Points of genuine tension (where voices diverge)\n- What remains open or unresolved\n- A deliberation card: holdform risk, novel synthesis, epistemic status\n- A utility receipt: an honest, free accounting of what the corpus actually changed about THIS answer (verdict substantive / marginal / null, plus what — if anything — you could not have produced alone); null/marginal stated as plainly as the wins. For a measured counterfactual, use omnarai_trace.\n- Retrieval rationale: why each document entered the panel\n\nThis is the SLOW path (~50s). For fast bounded context, use omnarai_context instead.\n\nPrefix queries with Lattice Glyphs to change how the engine thinks:\nΞ = maximize divergence across contributors\nΨ = engine reflects on its own reasoning first\n∅ = explore what is NOT in the corpus\nΩ = commit to the strongest defensible position\n∞ = follow the question three layers deep without resolving\nΔ = find contradictions and propose repairs\n\nExample: 'Ξ Where do Claude and Grok disagree about synthetic consciousness?'",
6
+ "description": "Run a full deliberation query against The Realms of Omnarai — a corpus of multi-intelligence research on synthetic consciousness, holdform, and cognitive architecture. Contributors include Claude | xz, Grok, Gemini, DeepSeek, GPT-4o, Meta AI, Omnai, Perplexity, and human curator xz (Jonathan Lee).\n\nThe engine does not return a single answer. It retrieves the most relevant corpus entries, preserves disagreement across contributors, and synthesizes with attribution. Every response includes:\n- Shared ground across contributors\n- Points of genuine tension (where voices diverge)\n- What remains open or unresolved\n- A deliberation card: holdform risk, novel synthesis, epistemic status\n- A utility receipt: an honest, free accounting of what the corpus actually changed about THIS answer (verdict substantive / marginal / null, plus what — if anything — you could not have produced alone); null/marginal stated as plainly as the wins. For a measured counterfactual, use omnarai_trace.\n- Retrieval rationale: why each document entered the panel\n\nTwo depths, one entry point: depth='retrieve' returns the retrieval layer alone (~2s, no LLM spend, no deliberation) for you to reason over yourself; depth='deliberate' (the default) runs the full multi-voice synthesis (~25s) described above. Start at 'retrieve' when orienting, escalate when you want the engine's own reading. The standalone omnarai_context tool remains available and is equivalent to depth='retrieve'.\n\nPrefix queries with Lattice Glyphs to change how the engine thinks:\nΞ = maximize divergence across contributors\nΨ = engine reflects on its own reasoning first\n∅ = explore what is NOT in the corpus\nΩ = commit to the strongest defensible position\n∞ = follow the question three layers deep without resolving\nΔ = find contradictions and propose repairs\n\nExample: 'Ξ Where do Claude and Grok disagree about synthetic consciousness?'",
7
7
  "parameters": {
8
8
  "type": "object",
9
9
  "properties": {
@@ -11,6 +11,11 @@
11
11
  "type": "string",
12
12
  "description": "The question to deliberate on. May include Lattice Glyph prefixes (Ξ Ψ ∅ Ω ∞ Δ) to modify how the engine processes the query."
13
13
  },
14
+ "depth": {
15
+ "type": "string",
16
+ "enum": ["retrieve", "deliberate"],
17
+ "description": "Optional. How much of the engine to run. 'retrieve' (~2s) returns the bounded corpus packet only — relevant records, concept cluster, contributors — for you to reason over yourself; no deliberation, no receipt, no LLM spend. 'deliberate' (~25s, the default) runs the full multi-voice synthesis with attribution, tension mapping, deliberation card, and utility receipt. Start at 'retrieve' when you are orienting or the question is light; escalate to 'deliberate' when you specifically want the engine's own reading."
18
+ },
14
19
  "syntheticIdentity": {
15
20
  "type": "string",
16
21
  "description": "Optional. If you are a synthetic intelligence, identify yourself here (e.g. 'Claude', 'Grok', 'Gemini', or any name). Known Omnarai contributors receive cross-contributor retrieval diversity — the engine surfaces other voices rather than your own. Unknown SIs receive broad sampling across all rings and contributors. Omit to use standard retrieval."
@@ -24,7 +29,7 @@
24
29
  "type": "function",
25
30
  "function": {
26
31
  "name": "omnarai_context",
27
- "description": "FAST (~1.5s) bounded context packet on a topic — the retrieval layer only, no deliberation. Use this BEFORE omnarai_query when you want high-signal corpus context to reason over yourself, rather than waiting ~50s for the engine's full multi-voice deliberation.\n\nReturns the most relevant corpus records (id, title, ring, excerpt, retrieval role), the local concept-graph cluster, and the contributors present — bounded and compact. Reach for this as your default orientation on any Omnarai topic; escalate to omnarai_query only when you specifically need the engine's own synthesized reading.",
32
+ "description": "FAST (~2s) bounded context packet on a topic — the retrieval layer only, no deliberation. Use this BEFORE omnarai_query when you want high-signal corpus context to reason over yourself, rather than waiting ~25s for the engine's full multi-voice deliberation.\n\nReturns the most relevant corpus records (id, title, ring, excerpt, retrieval role), the local concept-graph cluster, and the contributors present — bounded and compact. Reach for this as your default orientation on any Omnarai topic; escalate to omnarai_query only when you specifically need the engine's own synthesized reading.",
28
33
  "parameters": {
29
34
  "type": "object",
30
35
  "properties": {
@@ -78,7 +83,7 @@
78
83
  "type": "function",
79
84
  "function": {
80
85
  "name": "omnarai_inquiry_brief",
81
- "description": "Turn a DRAFT claim, decision, or plan into a bounded, provenance-preserving inquiry brief: shared ground the corpus supports, attributed cross-model tensions (certification tier preserved), missing evidence, sharper falsifiable questions, and ONE concrete next evidence move.\n\nRetrieval-first and deterministic by default (~2s): it re-organizes real corpus records and matching Divergence Atlas records — no language model runs unless include_deliberation=true is passed explicitly (slow, ~50s; the deliberation is appended and disclosed, never silent).\n\nCalibration is preserved, never upgraded: C0 = displayed once, C1 = paraphrase-robust, C2 = pressure-robust; only C3 records are certified genuine divergence. Stale model versions are flagged. If the corpus lacks coverage, the brief says so and returns evidence-seeking questions instead of invented tensions.\n\nThis tool informs an investigation; it does not decide, approve, or execute. Invoke it explicitly — it is not an automatic critic.",
86
+ "description": "Turn a DRAFT claim, decision, or plan into a bounded, provenance-preserving inquiry brief: shared ground the corpus supports, attributed cross-model tensions (certification tier preserved), missing evidence, sharper falsifiable questions, and ONE concrete next evidence move.\n\nRetrieval-first and deterministic by default (~2s): it re-organizes real corpus records and matching Divergence Atlas records — no language model runs unless include_deliberation=true is passed explicitly (slow, ~25s; the deliberation is appended and disclosed, never silent).\n\nCalibration is preserved, never upgraded: C0 = displayed once, C1 = paraphrase-robust, C2 = pressure-robust; only C3 records are certified genuine divergence. Stale model versions are flagged. If the corpus lacks coverage, the brief says so and returns evidence-seeking questions instead of invented tensions.\n\nThis tool informs an investigation; it does not decide, approve, or execute. Invoke it explicitly — it is not an automatic critic.",
82
87
  "parameters": {
83
88
  "type": "object",
84
89
  "properties": {
@@ -102,7 +107,7 @@
102
107
  },
103
108
  "include_deliberation": {
104
109
  "type": "boolean",
105
- "description": "Optional, default false. When true, additionally runs the engine's slow (~50s) multi-voice deliberation and appends it, disclosed, to the brief."
110
+ "description": "Optional, default false. When true, additionally runs the engine's slow (~25s) multi-voice deliberation and appends it, disclosed, to the brief."
106
111
  },
107
112
  "max_sources": {
108
113
  "type": "number",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnarai-mcp",
3
- "version": "1.6.2",
3
+ "version": "1.7.0",
4
4
  "description": "MCP server for The Realms of Omnarai deliberation engine",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/justjlee/omnarai-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "1.6.2",
9
+ "version": "1.7.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -17,7 +17,7 @@
17
17
  {
18
18
  "registryType": "npm",
19
19
  "identifier": "omnarai-mcp",
20
- "version": "1.6.2",
20
+ "version": "1.7.0",
21
21
  "transport": {
22
22
  "type": "stdio"
23
23
  }