prism-mcp-server 12.5.0 → 12.5.4
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 +33 -24
- package/dist/backgroundScheduler.js +19 -0
- package/dist/cli.js +0 -0
- package/dist/dashboard/authUtils.js +4 -3
- package/dist/dashboard/server.js +11 -3
- package/dist/tools/__tests__/ledgerHandlers.test.js +1168 -0
- package/dist/utils/autoCapture.js +1 -1
- package/dist/utils/llm/adapters/anthropic.js +15 -9
- package/package.json +10 -6
- package/dist/agent/agentTools.js +0 -453
- package/dist/agent/mcpBridge.js +0 -234
- package/dist/agent/platformUtils.js +0 -470
- package/dist/agent/terminalUI.js +0 -198
- package/dist/auth.js +0 -218
- package/dist/prism-cloud.js +0 -110
- package/dist/tools/projects.js +0 -214
package/README.md
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
[](https://github.com/modelcontextprotocol/servers)
|
|
5
5
|
[](https://glama.ai/mcp/servers?query=prism-mcp)
|
|
6
6
|
[](https://smithery.ai/server/@dcostenco/prism-mcp)
|
|
7
|
-
[](LICENSE)
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
9
|
[](CONTRIBUTING.md)
|
|
10
10
|
|
|
11
11
|
<!-- 🌐 Translations auto-generated by scripts/generate_i18n.py — triggered by GitHub Actions on README.md changes -->
|
|
12
|
-
🌐 **Translate:** [English](
|
|
12
|
+
🌐 **Translate:** [English](README.md) · [Español](docs/i18n/README_es.md) · [Français](docs/i18n/README_fr.md) · [Português](docs/i18n/README_pt.md) · [Română](docs/i18n/README_ro.md) · [Українська](docs/i18n/README_uk.md) · [Русский](docs/i18n/README_ru.md) · [Deutsch](docs/i18n/README_de.md) · [日本語](docs/i18n/README_ja.md) · [한국어](docs/i18n/README_ko.md) · [中文](docs/i18n/README_zh.md) · [العربية](docs/i18n/README_ar.md)
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -17,6 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
> **NEW:** The full-stack AI-native desktop IDE that combines coding, building, and deploying in one tool. No competitor offers all of this.
|
|
19
19
|
|
|
20
|
+
### Downloads
|
|
21
|
+
|
|
22
|
+
| Platform | Package | Size |
|
|
23
|
+
|----------|---------|------|
|
|
24
|
+
| **Windows** | [Prism Coder-1.0.0-Setup.exe](https://github.com/dcostenco/prism-coder/releases/download/v1.0.0/Prism.Coder-1.0.0-Setup.exe) | 99 MB |
|
|
25
|
+
| **macOS (Apple Silicon)** | [Prism Coder-1.0.0-arm64.dmg](https://github.com/dcostenco/prism-coder/releases/download/v1.0.0/Prism.Coder-1.0.0-arm64.dmg) | 113 MB |
|
|
26
|
+
| **Linux** | [Prism Coder-1.0.0.AppImage](https://github.com/dcostenco/prism-coder/releases/download/v1.0.0/Prism.Coder-1.0.0.AppImage) | 119 MB |
|
|
27
|
+
| **npm (MCP Server)** | `npx -y prism-mcp-server` | — |
|
|
28
|
+
|
|
20
29
|
| What You Get | Time Saved vs. Traditional |
|
|
21
30
|
|---|:---:|
|
|
22
31
|
| 🤖 **Agent Mode** — autonomous multi-step task execution with diff previews | ~95% |
|
|
@@ -36,7 +45,7 @@
|
|
|
36
45
|
|
|
37
46
|
**27/27 features** — more than any competitor (Cursor: 9, Windsurf: 9, Replit: 12, Bolt: 9).
|
|
38
47
|
|
|
39
|
-
👉 **[Full IDE README with screenshots, architecture, and technical details →](https://github.com/
|
|
48
|
+
👉 **[Full IDE README with screenshots, architecture, and technical details →](https://github.com/dcostenco/prism-coder/releases/tag/v1.0.0)**
|
|
40
49
|
|
|
41
50
|
---
|
|
42
51
|
|
|
@@ -45,9 +54,9 @@
|
|
|
45
54
|
**Your AI agent forgets everything between sessions. Prism fixes that — then teaches it to think.**
|
|
46
55
|
|
|
47
56
|
<details>
|
|
48
|
-
<summary>Cognitive Architecture Deep Dive (v12.
|
|
57
|
+
<summary>Cognitive Architecture Deep Dive (v12.5)</summary>
|
|
49
58
|
|
|
50
|
-
Prism v12.
|
|
59
|
+
Prism v12.5 is a true **Cognitive Architecture** inspired by human brain mechanics. Beyond flat vector search, your agent now forms principles from experience, follows causal trains of thought, and possesses the self-awareness to know when it lacks information. **Your agents don't just remember; they learn.** With v12.5, the entire cognitive pipeline — including ledger compaction, task routing, semantic search, and **Agent Infrastructure Resilience** — runs **100% on-device** or via secure clinical discovery (PubMed/ERIC), backed by `prism-coder:7b`, a HIPAA-hardened local LLM. No API keys for core features. No data leaves your machine.
|
|
51
60
|
|
|
52
61
|
</details>
|
|
53
62
|
|
|
@@ -57,11 +66,11 @@ npx -y prism-mcp-server
|
|
|
57
66
|
|
|
58
67
|
Works with **Claude Desktop · Claude Code · Cursor · Windsurf · Cline · Gemini · Antigravity** — **any MCP client.**
|
|
59
68
|
|
|
60
|
-
https://github.com/dcostenco/prism-
|
|
69
|
+
https://github.com/dcostenco/prism-coder/raw/main/docs/prism_mcp_demo.mp4
|
|
61
70
|
|
|
62
71
|
## 📖 Table of Contents
|
|
63
72
|
|
|
64
|
-
- [💳 v12.
|
|
73
|
+
- [💳 v12.5 Unified Billing & Agent Skill Ecosystem](#unified-billing)
|
|
65
74
|
- [🏗️ v11.6.0 Agent Infrastructure Resilience](#agent-infrastructure)
|
|
66
75
|
- [🔬 v11.5.1 Deep Research Intelligence (Auto-Scholar)](#deep-research-intelligence)
|
|
67
76
|
- [⚡ Zero-Search Retrieval (HRR Architecture)](#zero-search)
|
|
@@ -86,9 +95,9 @@ https://github.com/dcostenco/prism-mcp/raw/main/docs/prism_mcp_demo.mp4
|
|
|
86
95
|
|
|
87
96
|
---
|
|
88
97
|
|
|
89
|
-
## 💳 <a name="unified-billing"></a>v12.
|
|
98
|
+
## 💳 <a name="unified-billing"></a>v12.5 Unified Billing & Agent Skill Ecosystem
|
|
90
99
|
|
|
91
|
-
Prism v12.
|
|
100
|
+
Prism v12.5 unifies Prism and Synalux into a **single billing architecture** with identical tier pricing and a 14-day free trial on all paid tiers.
|
|
92
101
|
|
|
93
102
|
### Prism Cloud Pricing
|
|
94
103
|
|
|
@@ -111,7 +120,7 @@ Prism v12.0.0 unifies Prism and Synalux into a **single billing architecture** w
|
|
|
111
120
|
- **10 Vendor Skills** — Vercel, Supabase, Stripe, Sentry, OpenAI, Addy Osmani, Garry Tan/gstack
|
|
112
121
|
- **30+ Community Skills** — Installed and optimized from the Gemini ecosystem
|
|
113
122
|
|
|
114
|
-
> 📦 **Packages:** [`prism-mcp-server`](https://www.npmjs.com/package/prism-mcp-server) (npm) · [Prism Coder IDE](https://github.com/
|
|
123
|
+
> 📦 **Packages:** [`prism-mcp-server`](https://www.npmjs.com/package/prism-mcp-server) (npm) · [Prism Coder IDE](https://github.com/dcostenco/prism-coder/releases/tag/v1.0.0) (VS Code) · `prism` CLI
|
|
115
124
|
|
|
116
125
|
---
|
|
117
126
|
|
|
@@ -131,7 +140,7 @@ Prism v11.6.0 introduces **production-grade agent infrastructure** for running m
|
|
|
131
140
|
| **Queue Watchdog** | Deadlocks from zombie queue entries |
|
|
132
141
|
| **Status Dashboard** | Blind spots in infrastructure health |
|
|
133
142
|
|
|
134
|
-
> 🧪 **Verified:** 115/115 tests passing across unit, concurrent, shell integration, mock Ollama, and live stress test suites. v12.
|
|
143
|
+
> 🧪 **Verified:** 115/115 tests passing across unit, concurrent, shell integration, mock Ollama, and live stress test suites. v12.5 billing tests included.
|
|
135
144
|
|
|
136
145
|
---
|
|
137
146
|
|
|
@@ -141,7 +150,7 @@ Prism v11.5.1 transforms your AI agent from a "Coder" into a "Clinical Scientist
|
|
|
141
150
|
|
|
142
151
|
### 🥊 The Global Benchmarks: Prism v11 vs. Standard RAG
|
|
143
152
|
|
|
144
|
-
| Feature | **Standard AI Memory (Mem0/Zep)** | **Prism v12.
|
|
153
|
+
| Feature | **Standard AI Memory (Mem0/Zep)** | **Prism v12.5 (Elite Architecture)** |
|
|
145
154
|
| :--- | :--- | :--- |
|
|
146
155
|
| **Search Complexity** | $O(N)$ or $O(\log N)$ (Scales with data) | **$O(1)$ Zero-Search (Constant time via HRR) ** |
|
|
147
156
|
| **Discovery Logic** | General Web Search (Snippets) | **Parallel Academic Discovery (PubMed, ERIC, S2)** |
|
|
@@ -1019,9 +1028,9 @@ The Generator strips the `console.log`, resubmits, and the next `EVALUATE` retur
|
|
|
1019
1028
|
|
|
1020
1029
|
## <a name="whats-new"></a>🆕 What's New
|
|
1021
1030
|
|
|
1022
|
-
> **Current release: v12.
|
|
1031
|
+
> **Current release: v12.5 — Unified Billing & Agent Skill Ecosystem**
|
|
1023
1032
|
|
|
1024
|
-
- 💳 **v12.
|
|
1033
|
+
- 💳 **v12.5 — Unified Billing & Agent Skill Ecosystem:** Aligned Prism and Synalux tiers (Standard $19, Advanced $49, Enterprise $99), 14-day free trial, 54 agent skills, BSL-1.1 license. → [Changelog](CHANGELOG.md#1200)
|
|
1025
1034
|
- 🏗️ **v11.6.0 — Agent Infrastructure Resilience:** Production-grade concurrent agent execution with serialized queue (Python `fcntl`), memory guardian daemon, queue watchdog, and unified status dashboard. 115/115 tests verified across 5 suites. → [Changelog](CHANGELOG.md#1160)
|
|
1026
1035
|
- 🧠 **v11.5.1 — Structural GRPO Alignment:** GRPO-aligned local engine with held-out benchmark suite (N=15). **100% tool-call accuracy**, 100% JSON validity, 100% retrieval accuracy, 100% reasoning abstention. → [Changelog](CHANGELOG.md#1150)
|
|
1027
1036
|
- 🛡️ **v11.0.0 — HIPAA-Hardened Local LLM:** `prism-coder:7b` for local compaction, task routing, and semantic search. `PRISM_STRICT_LOCAL_MODE`, SSRF protection, full XML escaping. 22-finding adversarial audit. → [Changelog](CHANGELOG.md#1100)
|
|
@@ -1108,8 +1117,8 @@ Prism's local engine (`prism-coder:7b`) is optimized for low-latency, high-valid
|
|
|
1108
1117
|
|
|
1109
1118
|
| Metric | Score | Details |
|
|
1110
1119
|
|:-------|:---:|:---|
|
|
1111
|
-
| **Overall Accuracy** | **
|
|
1112
|
-
| **Median** | **100%** (50/50) |
|
|
1120
|
+
| **Overall Accuracy** | **100%** (avg) | 3 runs: 50/50, 50/50, 50/50 |
|
|
1121
|
+
| **Median** | **100%** (50/50) | 3 perfect runs out of 3 |
|
|
1113
1122
|
| **Tool-Call Accuracy** | **100%** (31/31) | Correct tool on all tool-requiring prompts |
|
|
1114
1123
|
| **Abstention Accuracy** | **100%** (19/19) | Correctly avoids tool calls on all adversarial traps |
|
|
1115
1124
|
| **Adversarial Traps** | **100%** (15/15 × 3) | Express.js sessions, LSTM forget gates, context managers |
|
|
@@ -1193,7 +1202,7 @@ Compared against the **[Berkeley Function Calling Leaderboard (BFCL V4)](https:/
|
|
|
1193
1202
|
|
|
1194
1203
|
| Model | Provider | Tool-Call Accuracy | SWE-bench | Cost |
|
|
1195
1204
|
|:---|:---|:---:|:---:|:---:|
|
|
1196
|
-
| **Prism-Coder 7B** | **Prism (local)** | **
|
|
1205
|
+
| **Prism-Coder 7B** | **Prism (local)** | **100%** ⭐ | — | **$0 (on-device)** |
|
|
1197
1206
|
| Claude Opus 4.7 | Anthropic | 77.3% | 87.6% | $5 / $25 per 1M tok |
|
|
1198
1207
|
| Gemini 3.1 Pro | Google | 77.1% | 80.6% | $1.25 / $10 per 1M tok |
|
|
1199
1208
|
| Claude Opus 4.5 | Anthropic | 77.47% | 70.3% | $15 / $75 per 1M tok |
|
|
@@ -1295,13 +1304,13 @@ prism scm dora --repo synalux/portal --period 2024-Q4
|
|
|
1295
1304
|
<summary>📸 Screenshots — SCM CLI in action (click to expand)</summary>
|
|
1296
1305
|
|
|
1297
1306
|
#### Code Search (Semantic Mode)
|
|
1298
|
-

|
|
1299
1308
|
|
|
1300
1309
|
#### AI Review with HIPAA Check
|
|
1301
|
-

|
|
1302
1311
|
|
|
1303
1312
|
#### Security Scan
|
|
1304
|
-

|
|
1305
1314
|
|
|
1306
1315
|
</details>
|
|
1307
1316
|
|
|
@@ -1720,11 +1729,11 @@ Prism MCP is open-source and free for individual developers. For teams and enter
|
|
|
1720
1729
|
|
|
1721
1730
|
## <a name="milestones-roadmap"></a>📦 Milestones & Roadmap
|
|
1722
1731
|
|
|
1723
|
-
> **Current: v12.
|
|
1732
|
+
> **Current: v12.5** — Unified Billing & Agent Skill Ecosystem ([CHANGELOG](CHANGELOG.md))
|
|
1724
1733
|
|
|
1725
1734
|
| Release | Headline |
|
|
1726
1735
|
|---------|----------|
|
|
1727
|
-
| **v12.
|
|
1736
|
+
| **v12.5** | 💳 **Unified Billing & Agent Skill Ecosystem** — Synalux-priced tiers ($19/$49/$99), 14-day trial, 54 skills, BSL-1.1 license. |
|
|
1728
1737
|
| **v11.6.0** | 🏗️ **Agent Infrastructure Resilience** — Production-grade serialized queue, memory guardian, queue watchdog, status dashboard. 115/115 tests. |
|
|
1729
1738
|
| **v11.5.1** | 🧠 **Structural GRPO Alignment** — Perfect 100% accuracy cross-validated on Synalux Elite platform. |
|
|
1730
1739
|
| **v11.0.1** | 🧪 **Production Stability** — Field-tested Zero-Search logic merge, local logic finalization, HIPAA-hardened security refinement. |
|
|
@@ -1779,8 +1788,8 @@ A: Run `npm run build && npm test`, then open the Mind Palace dashboard (`localh
|
|
|
1779
1788
|
|
|
1780
1789
|
## License
|
|
1781
1790
|
|
|
1782
|
-
|
|
1791
|
+
BUSL-1.1
|
|
1783
1792
|
|
|
1784
1793
|
---
|
|
1785
1794
|
|
|
1786
|
-
<sub>**Keywords:** MCP server, Model Context Protocol, Claude Desktop memory, persistent session memory, AI agent memory, cognitive architecture, ACT-R spreading activation, Hebbian learning, episodic semantic consolidation, multi-hop reasoning, uncertainty rejection gate, local-first, SQLite MCP, Mind Palace, time travel, visual memory, VLM image captioning, OpenTelemetry, GDPR, agent telepathy, multi-agent sync, behavioral memory, cursorrules, Ollama MCP, Brave Search MCP, TurboQuant, progressive context loading, knowledge management, LangChain retriever, LangGraph agent</sub>
|
|
1795
|
+
<sub>**Keywords:** MCP server, Model Context Protocol, Claude Desktop memory, persistent session memory, AI agent memory, cognitive architecture, ACT-R spreading activation, Hebbian learning, episodic semantic consolidation, multi-hop reasoning, uncertainty rejection gate, local-first, SQLite MCP, Mind Palace, time travel, visual memory, VLM image captioning, OpenTelemetry, GDPR, agent telepathy, multi-agent sync, behavioral memory, cursorrules, Ollama MCP, Brave Search MCP, TurboQuant, progressive context loading, knowledge management, LangChain retriever, LangGraph agent, business, enterprise, hipaa</sub>
|
|
@@ -644,6 +644,25 @@ export async function runSchedulerSweep(cfg = DEFAULT_SCHEDULER_CONFIG) {
|
|
|
644
644
|
debugLog(`[Scheduler] Distributed lock released (pid: ${processId})`);
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
|
+
// ── Evict stale project entries from tracking Maps ──────────
|
|
648
|
+
try {
|
|
649
|
+
const activeProjects = new Set(await storage.listProjects());
|
|
650
|
+
for (const key of lastSynthesisAt.keys()) {
|
|
651
|
+
if (!activeProjects.has(key))
|
|
652
|
+
lastSynthesisAt.delete(key);
|
|
653
|
+
}
|
|
654
|
+
for (const key of synthesisBackoffUntil.keys()) {
|
|
655
|
+
if (!activeProjects.has(key))
|
|
656
|
+
synthesisBackoffUntil.delete(key);
|
|
657
|
+
}
|
|
658
|
+
for (const key of lastPruneAt.keys()) {
|
|
659
|
+
if (!activeProjects.has(key))
|
|
660
|
+
lastPruneAt.delete(key);
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
catch {
|
|
664
|
+
// Non-critical — stale entries are harmless, just wasteful
|
|
665
|
+
}
|
|
647
666
|
// ── Finalize ───────────────────────────────────────────────
|
|
648
667
|
result.completedAt = new Date().toISOString();
|
|
649
668
|
result.durationMs = Date.now() - sweepStart;
|
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -180,10 +180,11 @@ export function createRateLimiter(opts) {
|
|
|
180
180
|
entry = { timestamps: [] };
|
|
181
181
|
store.set(key, entry);
|
|
182
182
|
}
|
|
183
|
-
// Filter to only timestamps within the window
|
|
184
|
-
entry.timestamps = entry.timestamps.filter(t => now - t < opts.windowMs);
|
|
185
183
|
if (entry.timestamps.length >= opts.maxAttempts) {
|
|
186
|
-
|
|
184
|
+
entry.timestamps = entry.timestamps.filter(t => now - t < opts.windowMs);
|
|
185
|
+
if (entry.timestamps.length >= opts.maxAttempts) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
187
188
|
}
|
|
188
189
|
entry.timestamps.push(now);
|
|
189
190
|
return true;
|
package/dist/dashboard/server.js
CHANGED
|
@@ -36,7 +36,7 @@ import { safeCompare, generateToken, isAuthenticated, createRateLimiter, initJWK
|
|
|
36
36
|
const PORT = parseInt(process.env.PRISM_DASHBOARD_PORT || "3000", 10);
|
|
37
37
|
/** Read HTTP request body as string (Buffer-based to avoid GC thrash on large imports) */
|
|
38
38
|
/** SECURITY: 10MB limit prevents memory exhaustion from oversized POST payloads. */
|
|
39
|
-
const MAX_BODY_BYTES = 10 * 1024 * 1024;
|
|
39
|
+
const MAX_BODY_BYTES = parseInt(process.env.PRISM_MAX_REQUEST_BYTES ?? String(10 * 1024 * 1024), 10);
|
|
40
40
|
function readBody(req) {
|
|
41
41
|
return new Promise((resolve, reject) => {
|
|
42
42
|
const chunks = [];
|
|
@@ -92,8 +92,8 @@ export async function startDashboardServer() {
|
|
|
92
92
|
if (AUTH_JWKS_URI) {
|
|
93
93
|
initJWKS(AUTH_JWKS_URI);
|
|
94
94
|
}
|
|
95
|
-
const SESSION_TTL_MS = 24 * 60 * 60 * 1000;
|
|
96
|
-
const activeSessions = new Map();
|
|
95
|
+
const SESSION_TTL_MS = parseInt(process.env.PRISM_SESSION_TTL_MS ?? String(24 * 60 * 60 * 1000), 10);
|
|
96
|
+
const activeSessions = new Map();
|
|
97
97
|
// Auth config object — injectable for testing via authUtils.ts
|
|
98
98
|
const authConfig = {
|
|
99
99
|
authEnabled: AUTH_ENABLED,
|
|
@@ -1435,4 +1435,12 @@ self.addEventListener('message', (e) => {
|
|
|
1435
1435
|
// Run immediately on startup, then every 12 hours
|
|
1436
1436
|
runTtlSweep().catch(() => { });
|
|
1437
1437
|
setInterval(() => { runTtlSweep().catch(() => { }); }, 12 * 60 * 60 * 1000);
|
|
1438
|
+
// Prune expired dashboard sessions every hour
|
|
1439
|
+
setInterval(() => {
|
|
1440
|
+
const now = Date.now();
|
|
1441
|
+
for (const [token, expiry] of activeSessions) {
|
|
1442
|
+
if (now > expiry)
|
|
1443
|
+
activeSessions.delete(token);
|
|
1444
|
+
}
|
|
1445
|
+
}, 60 * 60 * 1000);
|
|
1438
1446
|
}
|