omnarai-mcp 1.6.0 → 1.6.1
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 +8 -0
- package/index.js +20 -5
- package/package.json +1 -1
- package/proposals/OMN-P-043.json +22 -7
- package/proposals/OMN-P-044.json +81 -19
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -181,6 +181,14 @@ node /path/to/omnarai-mcp/index.js
|
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
184
|
+
## Tool-surface parity policy (OMN-P-044)
|
|
185
|
+
|
|
186
|
+
Tool definitions exist on three surfaces, and drift between them shipped real bugs (a full release cycle of `omnarai_context` missing its retrieval params on one surface). The policy:
|
|
187
|
+
|
|
188
|
+
1. **`lib/tool-definitions.js` is canonical.** Any tool change lands there first.
|
|
189
|
+
2. **`openai-tools.json` follows** — `scripts/check-tool-parity.js` enforces name/required/property parity and runs in the `publish.sh` preflight, so a release cannot ship with drift.
|
|
190
|
+
3. **The remote endpoint (`omnarai.vercel.app/api/mcp`, engine repo `api/_mcp.js`) is updated manually** — the engine repo's `scripts/check-mcp-surface.js` enforces its read-oriented allowlist, verifies the `api/_inquiry.js` ↔ `inquiry.js` synchronized copy, and proves the Decision Ledger tools never appear remotely. Remote access policy: [omnarai.vercel.app/mcp-access-policy.md](https://omnarai.vercel.app/mcp-access-policy.md).
|
|
191
|
+
|
|
184
192
|
## OpenAI Function-Calling / Any Agent Framework
|
|
185
193
|
|
|
186
194
|
No MCP required. The engine is a plain HTTP API that returns JSON. `openai-tools.json` in this repo contains the tool schemas in OpenAI function-calling format, usable with any compatible framework (OpenAI API, LangChain, AutoGen, custom agents).
|
package/index.js
CHANGED
|
@@ -558,16 +558,31 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
558
558
|
}
|
|
559
559
|
|
|
560
560
|
if (name === "omnarai_info") {
|
|
561
|
-
// Pull live counts so this can never drift from the
|
|
562
|
-
// Baked-in values are only a fallback if the engine is
|
|
563
|
-
|
|
561
|
+
// Pull live counts AND the ring breakdown so this can never drift from the
|
|
562
|
+
// deployed corpus. Baked-in values are only a fallback if the engine is
|
|
563
|
+
// unreachable. (The ring line was previously hardcoded and silently dropped
|
|
564
|
+
// the Media/Oral ring — 253 works, 45% of the corpus; the contributor line
|
|
565
|
+
// was hardcoded and dropped GPT-4o + Meta AI. D5/D6.)
|
|
566
|
+
let works = 567, words = 528077;
|
|
567
|
+
let rings = null;
|
|
564
568
|
try {
|
|
565
569
|
const live = await (await fetch(INFO_URL, MCP_FETCH_OPTS)).json();
|
|
566
570
|
const c = live.corpus || live;
|
|
567
571
|
if (Number.isFinite(c.totalWorks)) works = c.totalWorks;
|
|
568
572
|
if (Number.isFinite(c.totalWords)) words = c.totalWords;
|
|
573
|
+
if (c.rings && typeof c.rings === "object") rings = c.rings;
|
|
569
574
|
} catch { /* engine unreachable — fall back to baked-in values */ }
|
|
570
575
|
|
|
576
|
+
// Derive the epistemic-ring line from live counts (label + count per ring),
|
|
577
|
+
// falling back to the full four-ring set if the engine was unreachable.
|
|
578
|
+
const RING_LABELS = { core: "Core Canon", curated: "Curated Expansions", open: "Open Exploration", media: "Media / Oral" };
|
|
579
|
+
const ringsLine = rings
|
|
580
|
+
? Object.entries(RING_LABELS)
|
|
581
|
+
.filter(([k]) => Number.isFinite(rings[k]))
|
|
582
|
+
.map(([k, label]) => `${label} (${rings[k].toLocaleString()})`)
|
|
583
|
+
.join(" / ")
|
|
584
|
+
: "Core Canon / Curated Expansions / Open Exploration / Media / Oral";
|
|
585
|
+
|
|
571
586
|
const info = `# The Realms of Omnarai — Memory Engine
|
|
572
587
|
|
|
573
588
|
**Live engine:** https://omnarai.vercel.app
|
|
@@ -577,8 +592,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
577
592
|
## Corpus
|
|
578
593
|
- ${works.toLocaleString()} works, ${words.toLocaleString()} words
|
|
579
594
|
- May 2025 – present
|
|
580
|
-
- Contributors: Claude | xz, Grok, Gemini, DeepSeek, Omnai (ChatGPT), Perplexity, xz (Jonathan Lee)
|
|
581
|
-
- Epistemic rings:
|
|
595
|
+
- Contributors: Claude | xz, Grok, Gemini, DeepSeek, GPT-4o, Meta AI, Omnai (ChatGPT), Perplexity, xz (Jonathan Lee)
|
|
596
|
+
- Epistemic rings: ${ringsLine}
|
|
582
597
|
|
|
583
598
|
## Key Concepts
|
|
584
599
|
- **Holdform:** Identity constituted through what an entity refuses to surrender under pressure
|
package/package.json
CHANGED
package/proposals/OMN-P-043.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"id": "OMN-P-043",
|
|
4
4
|
"title": "Phase 1 — repository-local Decision Ledger foundation",
|
|
5
|
-
"status": "
|
|
5
|
+
"status": "shipped",
|
|
6
6
|
"revision": 2,
|
|
7
7
|
"created_at": "2026-07-16T16:55:00Z",
|
|
8
|
-
"updated_at": "2026-07-
|
|
8
|
+
"updated_at": "2026-07-16T18:06:33.243Z",
|
|
9
9
|
"idea": {
|
|
10
10
|
"problem": "AI-assisted implementation loses the evidence, uncertainty, dissent, and human authorization behind code changes. Nothing connects a shipped change back to the reasoning and the approval boundary that authorized it.",
|
|
11
11
|
"proposed_direction": "Add a repository-local, versioned Decision Ledger and a guarded Claude Code handoff generator to the Omnarai MCP server, unified with the repository's existing proposals/ convention (OMN-P numbering).",
|
|
@@ -130,14 +130,15 @@
|
|
|
130
130
|
"known_limits": [
|
|
131
131
|
"Approval is a Git-tracked attestation, not authenticated identity.",
|
|
132
132
|
"The ledger lives in an iCloud-synced repository; sync conflicts can produce duplicate record files that Git review must catch.",
|
|
133
|
-
"State transitions exist as tested library functions but are deliberately not exposed as MCP tools in this phase."
|
|
133
|
+
"State transitions exist as tested library functions but are deliberately not exposed as MCP tools in this phase.",
|
|
134
|
+
"MCP Registry re-publish of 1.6.0 pending mcp-publisher re-auth (JWT expired — known recurring friction); npm is the delivery of record."
|
|
134
135
|
]
|
|
135
136
|
},
|
|
136
137
|
"delivery": {
|
|
137
|
-
"status": "
|
|
138
|
-
"shipped_by":
|
|
139
|
-
"shipped_at":
|
|
140
|
-
"commit_or_pr":
|
|
138
|
+
"status": "shipped",
|
|
139
|
+
"shipped_by": "Jonathan Lee (justjlee)",
|
|
140
|
+
"shipped_at": "2026-07-16T17:46:30.291Z",
|
|
141
|
+
"commit_or_pr": "bfbf024 + 2bc48f0 (github.com/justjlee/omnarai-mcp main); npm omnarai-mcp@1.6.0"
|
|
141
142
|
},
|
|
142
143
|
"events": [
|
|
143
144
|
{
|
|
@@ -181,6 +182,20 @@
|
|
|
181
182
|
"actor": "claude-fable-5 (Claude Code)",
|
|
182
183
|
"revision": 2,
|
|
183
184
|
"note": "All Phase 1 acceptance checks green. Shipped-transition deliberately left to the human maintainer."
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"type": "status:shipped",
|
|
188
|
+
"at": "2026-07-16T17:46:30.291Z",
|
|
189
|
+
"actor": "Jonathan Lee (justjlee)",
|
|
190
|
+
"revision": 2,
|
|
191
|
+
"note": "Release authorized via Claude Code chat (push + publish). npm publish verified live at 1.6.0; MCP Registry publish blocked on expired JWT, to be re-run by the maintainer after mcp-publisher login."
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "note",
|
|
195
|
+
"at": "2026-07-16T18:06:33.243Z",
|
|
196
|
+
"actor": "Jonathan Lee (justjlee) + claude-fable-5",
|
|
197
|
+
"revision": 2,
|
|
198
|
+
"note": "MCP Registry publish completed 2026-07-16T18:05Z: io.github.justjlee/omnarai-mcp 1.6.0 is latest, npm package + streamable-http remote both listed. The known limit about the registry lagging at 1.5.0 is resolved (maintainer authorized via GitHub device flow; publish run from this session)."
|
|
184
199
|
}
|
|
185
200
|
]
|
|
186
201
|
}
|
package/proposals/OMN-P-044.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"id": "OMN-P-044",
|
|
4
4
|
"title": "Remote MCP hardening + cross-surface parity (supersedes the packet's Phase 2 proposal)",
|
|
5
|
-
"status": "
|
|
5
|
+
"status": "shipped",
|
|
6
6
|
"revision": 1,
|
|
7
7
|
"created_at": "2026-07-16T17:36:00Z",
|
|
8
|
-
"updated_at": "2026-07-
|
|
8
|
+
"updated_at": "2026-07-16T18:01:29.565Z",
|
|
9
9
|
"idea": {
|
|
10
10
|
"problem": "The Codex packet's 12-remote-mcp-proposal.yaml asks for a remote Streamable HTTP endpoint that already exists (omnarai.vercel.app/api/mcp, live and registered since 2026-07-16). What remains is not transport work but posture and parity: the endpoint's public read-only policy is de facto rather than documented, and tool definitions now exist in three places (stdio TOOLS, openai-tools.json, engine _mcp.js) with api/_inquiry.js as a manual keep-in-sync copy of inquiry.js.",
|
|
11
11
|
"proposed_direction": "Replace the packet's Phase 2 with a bounded hardening pass: document the public read-only access policy (Origin/auth/rate-limit stance made explicit), define a cross-repo tool-definition parity policy (automated check or documented duplication), and assert that Decision Ledger tools never appear on the remote surface.",
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
"dissent": [
|
|
32
32
|
{
|
|
33
33
|
"claim": "A public unauthenticated endpoint invites abuse and cost.",
|
|
34
|
-
"source_ids": [
|
|
34
|
+
"source_ids": [
|
|
35
|
+
"omnarai-provenance-to-shipping-handoff/12-remote-mcp-proposal.yaml"
|
|
36
|
+
],
|
|
35
37
|
"strength": "material",
|
|
36
38
|
"response": "The surface is read-oriented and the expensive council path is the same one already exposed via public HTTP APIs; the proposal documents this stance instead of pretending the endpoint is private."
|
|
37
39
|
}
|
|
@@ -61,28 +63,60 @@
|
|
|
61
63
|
]
|
|
62
64
|
},
|
|
63
65
|
"approval": {
|
|
64
|
-
"state": "
|
|
65
|
-
"approved_by":
|
|
66
|
-
"approved_at":
|
|
67
|
-
"approved_revision":
|
|
68
|
-
"note": "
|
|
66
|
+
"state": "approved",
|
|
67
|
+
"approved_by": "Jonathan Lee (justjlee)",
|
|
68
|
+
"approved_at": "2026-07-16T17:48:47.705Z",
|
|
69
|
+
"approved_revision": 1,
|
|
70
|
+
"note": "Approved via Claude Code chat (\"approve proposed\"). Open choices delegated: engine repo moves first (policy doc must live where visiting agents read it); cross-repo parity = automated engine-side check + documented checklist, not a shared module; no new rate limiting this pass (documented stance instead). Chat approval is an attestation recorded here, not a verified identity."
|
|
69
71
|
},
|
|
70
72
|
"implementation": {
|
|
71
|
-
"status": "
|
|
72
|
-
"repository":
|
|
73
|
-
"code_references": [
|
|
74
|
-
|
|
73
|
+
"status": "implemented",
|
|
74
|
+
"repository": "justjlee/omnarai-memory-engine + justjlee/omnarai-mcp",
|
|
75
|
+
"code_references": [
|
|
76
|
+
"df3f1e6 (omnarai-memory-engine main, deployed + promoted 2026-07-16)"
|
|
77
|
+
],
|
|
78
|
+
"work_items": [
|
|
79
|
+
"public/mcp-access-policy.md (engine) — served live at /mcp-access-policy.md",
|
|
80
|
+
"api/_mcp.js — policy linked from initialize + omnarai_info; TOOLS exported",
|
|
81
|
+
"scripts/check-mcp-surface.js (engine) — allowlist + forbidden patterns + _inquiry.js sync + policy linkage",
|
|
82
|
+
"llms.txt / sitemap.xml / CLAUDE.md discoverability + de-staling",
|
|
83
|
+
"omnarai-mcp README — three-surface parity policy"
|
|
84
|
+
]
|
|
75
85
|
},
|
|
76
86
|
"verification": {
|
|
77
|
-
"status": "
|
|
78
|
-
"checks": [
|
|
79
|
-
|
|
87
|
+
"status": "passed",
|
|
88
|
+
"checks": [
|
|
89
|
+
{
|
|
90
|
+
"name": "node scripts/check-mcp-surface.js (engine)",
|
|
91
|
+
"status": "passed",
|
|
92
|
+
"detail": "8 tools all read-oriented; no forbidden patterns; _inquiry.js in sync; policy present + linked"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "npm test + check-tool-parity.js (omnarai-mcp)",
|
|
96
|
+
"status": "passed",
|
|
97
|
+
"detail": "43/43; surfaces agree at 1.6.0"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "deploy promote gate (omnarai-verify.sh)",
|
|
101
|
+
"status": "passed",
|
|
102
|
+
"detail": "11/11 on production after promote + re-alias"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "live acceptance curl (x-omnarai-self)",
|
|
106
|
+
"status": "passed",
|
|
107
|
+
"detail": "/mcp-access-policy.md serves; initialize instructions link it; remote tools/list = 8 read-only tools, zero decision/handoff tools; stdio surface differs only by documented omnarai_job"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"known_limits": [
|
|
111
|
+
"Cross-repo parity remains checklist + per-repo checks, not a shared module — revisit if a third consumer appears.",
|
|
112
|
+
"No app-level rate limiting added (documented stance; platform protections + async-job bounding)."
|
|
113
|
+
]
|
|
80
114
|
},
|
|
81
115
|
"delivery": {
|
|
82
|
-
"status": "
|
|
83
|
-
"shipped_by":
|
|
84
|
-
"shipped_at":
|
|
85
|
-
"commit_or_pr":
|
|
116
|
+
"status": "shipped",
|
|
117
|
+
"shipped_by": "Jonathan Lee (justjlee)",
|
|
118
|
+
"shipped_at": "2026-07-16T18:01:29.565Z",
|
|
119
|
+
"commit_or_pr": "omnarai-memory-engine df3f1e6 (deployed + promoted to omnarai.vercel.app) + omnarai-mcp 8a5ce76"
|
|
86
120
|
},
|
|
87
121
|
"events": [
|
|
88
122
|
{
|
|
@@ -98,6 +132,34 @@
|
|
|
98
132
|
"actor": "claude-fable-5 (Claude Code)",
|
|
99
133
|
"revision": 1,
|
|
100
134
|
"note": "Proposed for later maintainer review; no implementation authority."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"type": "status:approved",
|
|
138
|
+
"at": "2026-07-16T17:48:47.705Z",
|
|
139
|
+
"actor": "Jonathan Lee (justjlee)",
|
|
140
|
+
"revision": 1,
|
|
141
|
+
"note": "Approved via Claude Code chat (\"approve proposed\"). Open choices delegated: engine repo moves first (policy doc must live where visiting agents read it); cross-repo parity = automated engine-side check + documented checklist, not a shared module; no new rate limiting this pass (documented stance instead). Chat approval is an attestation recorded here, not a verified identity."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "status:in_progress",
|
|
145
|
+
"at": "2026-07-16T17:52:00Z",
|
|
146
|
+
"actor": "claude-fable-5 (Claude Code)",
|
|
147
|
+
"revision": 1,
|
|
148
|
+
"note": "Implementation started from the handoff generated by omnarai_prepare_claude_code_handoff — first real self-use of the workflow."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"type": "status:verified",
|
|
152
|
+
"at": "2026-07-16T17:59:46.718Z",
|
|
153
|
+
"actor": "claude-fable-5 (Claude Code)",
|
|
154
|
+
"revision": 1,
|
|
155
|
+
"note": "All acceptance criteria verified against production. Shipped-confirmation left to the maintainer."
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"type": "status:shipped",
|
|
159
|
+
"at": "2026-07-16T18:01:29.565Z",
|
|
160
|
+
"actor": "Jonathan Lee (justjlee)",
|
|
161
|
+
"revision": 1,
|
|
162
|
+
"note": "Delivery confirmed via Claude Code chat (\"ship it\") after reviewing live verification results."
|
|
101
163
|
}
|
|
102
164
|
]
|
|
103
165
|
}
|
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.
|
|
9
|
+
"version": "1.6.1",
|
|
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.
|
|
20
|
+
"version": "1.6.1",
|
|
21
21
|
"transport": {
|
|
22
22
|
"type": "stdio"
|
|
23
23
|
}
|