nucleus-mcp 1.0.7 ā 1.2.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/package.json +2 -4
- package/.github/workflows/ci.yml +0 -72
- package/.smithery/shttp/module.js +0 -3
- package/.smithery/shttp/module.js.map +0 -7
- package/.smithery/stdio/index.cjs +0 -74
- package/.smithery/stdio/index.cjs.map +0 -7
- package/CHANGELOG.md +0 -65
- package/CODE_OF_CONDUCT.md +0 -34
- package/COMPARISON.md +0 -20
- package/CONTRIBUTING.md +0 -137
- package/DEVELOPMENT.md +0 -109
- package/LICENSE +0 -21
- package/README.md +0 -319
- package/ROADMAP.md +0 -24
- package/SECURITY.md +0 -88
- package/docs/COMMUNITY_FAQ.md +0 -48
- package/docs/COMPETITIVE_ANALYSIS.md +0 -90
- package/docs/DEMO_SCRIPT.md +0 -86
- package/docs/ENTERPRISE.md +0 -169
- package/docs/FAQ.md +0 -228
- package/docs/QUICK_START.md +0 -155
- package/docs/README.md +0 -67
- package/docs/RECURSIVE_SNAP_DEMO.gif +0 -0
- package/docs/social-preview-hq.png +0 -0
- package/docs/social-preview.png +0 -0
- package/examples/basic_usage.py +0 -84
- package/package.json.real +0 -24
- package/pyproject.toml +0 -50
- package/registry-server.json +0 -20
- package/scripts/demo_governance.py +0 -109
- package/scripts/sse_bridge.py +0 -87
- package/scripts/verify_windows_paths.py +0 -48
- package/server.json +0 -20
- package/src/mcp_server_nucleus/__init__.py +0 -8583
- package/src/mcp_server_nucleus/__main__.py +0 -9
- package/src/mcp_server_nucleus/cli.py +0 -1225
- package/src/mcp_server_nucleus/commitment_core.py +0 -146
- package/src/mcp_server_nucleus/commitment_ledger.py +0 -841
- package/src/mcp_server_nucleus/core/__init__.py +0 -6
- package/src/mcp_server_nucleus/core/orchestrator.py +0 -9
- package/src/mcp_server_nucleus/core/tool_registration_impl.py +0 -99
- package/src/mcp_server_nucleus/daemon/safety/lock.py +0 -121
- package/src/mcp_server_nucleus/deployment/render_integration.py +0 -4
- package/src/mcp_server_nucleus/hypervisor/__init__.py +0 -0
- package/src/mcp_server_nucleus/hypervisor/injector.py +0 -83
- package/src/mcp_server_nucleus/hypervisor/locker.py +0 -130
- package/src/mcp_server_nucleus/hypervisor/watchdog.py +0 -71
- package/src/mcp_server_nucleus/runtime/__init__.py +0 -58
- package/src/mcp_server_nucleus/runtime/agent.py +0 -517
- package/src/mcp_server_nucleus/runtime/agent_pool.py +0 -797
- package/src/mcp_server_nucleus/runtime/agents/base.py +0 -34
- package/src/mcp_server_nucleus/runtime/agents/oracle/manifest.json +0 -28
- package/src/mcp_server_nucleus/runtime/auth.py +0 -98
- package/src/mcp_server_nucleus/runtime/autopilot.py +0 -1057
- package/src/mcp_server_nucleus/runtime/broker.py +0 -126
- package/src/mcp_server_nucleus/runtime/budget.py +0 -153
- package/src/mcp_server_nucleus/runtime/capabilities/base.py +0 -20
- package/src/mcp_server_nucleus/runtime/capabilities/brain_ops.py +0 -253
- package/src/mcp_server_nucleus/runtime/capabilities/code_ops.py +0 -192
- package/src/mcp_server_nucleus/runtime/capabilities/depth_tracker.py +0 -81
- package/src/mcp_server_nucleus/runtime/capabilities/feature_map.py +0 -274
- package/src/mcp_server_nucleus/runtime/capabilities/marketing_engine.py +0 -205
- package/src/mcp_server_nucleus/runtime/capabilities/memory_ops.py +0 -79
- package/src/mcp_server_nucleus/runtime/capabilities/proof_system.py +0 -127
- package/src/mcp_server_nucleus/runtime/capabilities/render_ops.py +0 -80
- package/src/mcp_server_nucleus/runtime/capabilities/render_poller_cap.py +0 -266
- package/src/mcp_server_nucleus/runtime/capabilities/self_healing.py +0 -110
- package/src/mcp_server_nucleus/runtime/capabilities/strategy.py +0 -138
- package/src/mcp_server_nucleus/runtime/capabilities/synthesizer.py +0 -134
- package/src/mcp_server_nucleus/runtime/capabilities/web_ops.py +0 -94
- package/src/mcp_server_nucleus/runtime/common.py +0 -134
- package/src/mcp_server_nucleus/runtime/context_manager.py +0 -342
- package/src/mcp_server_nucleus/runtime/context_rules.json +0 -86
- package/src/mcp_server_nucleus/runtime/crdt_task_store.py +0 -349
- package/src/mcp_server_nucleus/runtime/critic.py +0 -150
- package/src/mcp_server_nucleus/runtime/daemon.py +0 -142
- package/src/mcp_server_nucleus/runtime/dashboard.py +0 -1087
- package/src/mcp_server_nucleus/runtime/depth_ops.py +0 -339
- package/src/mcp_server_nucleus/runtime/event_ops.py +0 -103
- package/src/mcp_server_nucleus/runtime/event_stream.py +0 -213
- package/src/mcp_server_nucleus/runtime/export.py +0 -64
- package/src/mcp_server_nucleus/runtime/factory.py +0 -594
- package/src/mcp_server_nucleus/runtime/federation.py +0 -1040
- package/src/mcp_server_nucleus/runtime/fetcher.py +0 -92
- package/src/mcp_server_nucleus/runtime/file_monitor.py +0 -208
- package/src/mcp_server_nucleus/runtime/firestore_bridge.py +0 -91
- package/src/mcp_server_nucleus/runtime/gcloud_ops.py +0 -186
- package/src/mcp_server_nucleus/runtime/hooks.py +0 -246
- package/src/mcp_server_nucleus/runtime/identity/gatekeeper.py +0 -106
- package/src/mcp_server_nucleus/runtime/identity/keygen.py +0 -147
- package/src/mcp_server_nucleus/runtime/identity/manifest.py +0 -62
- package/src/mcp_server_nucleus/runtime/identity/trust.py +0 -27
- package/src/mcp_server_nucleus/runtime/inspector.py +0 -74
- package/src/mcp_server_nucleus/runtime/installer.py +0 -81
- package/src/mcp_server_nucleus/runtime/ipc_auth.py +0 -377
- package/src/mcp_server_nucleus/runtime/lifecycle.py +0 -129
- package/src/mcp_server_nucleus/runtime/llm_client.py +0 -408
- package/src/mcp_server_nucleus/runtime/llm_tiers.json +0 -88
- package/src/mcp_server_nucleus/runtime/locking.py +0 -228
- package/src/mcp_server_nucleus/runtime/loops/fixer.py +0 -110
- package/src/mcp_server_nucleus/runtime/memory.py +0 -158
- package/src/mcp_server_nucleus/runtime/mounter.py +0 -210
- package/src/mcp_server_nucleus/runtime/mounter_ops.py +0 -250
- package/src/mcp_server_nucleus/runtime/nuke_protocol.py +0 -147
- package/src/mcp_server_nucleus/runtime/orchestrator.py +0 -370
- package/src/mcp_server_nucleus/runtime/orchestrator_unified.py +0 -263
- package/src/mcp_server_nucleus/runtime/orchestrator_v3.py +0 -617
- package/src/mcp_server_nucleus/runtime/plugin_loader.py +0 -84
- package/src/mcp_server_nucleus/runtime/policy.py +0 -117
- package/src/mcp_server_nucleus/runtime/profiling.py +0 -219
- package/src/mcp_server_nucleus/runtime/prometheus.py +0 -286
- package/src/mcp_server_nucleus/runtime/proposals.py +0 -101
- package/src/mcp_server_nucleus/runtime/publisher.py +0 -109
- package/src/mcp_server_nucleus/runtime/pulse.py +0 -516
- package/src/mcp_server_nucleus/runtime/registry.py +0 -82
- package/src/mcp_server_nucleus/runtime/render_ops.py +0 -83
- package/src/mcp_server_nucleus/runtime/schema_gen.py +0 -140
- package/src/mcp_server_nucleus/runtime/session_ops.py +0 -224
- package/src/mcp_server_nucleus/runtime/stdio_server.py +0 -633
- package/src/mcp_server_nucleus/runtime/storage.py +0 -83
- package/src/mcp_server_nucleus/runtime/strategy.py +0 -91
- package/src/mcp_server_nucleus/runtime/swarm.py +0 -170
- package/src/mcp_server_nucleus/runtime/sync_ops.py +0 -878
- package/src/mcp_server_nucleus/runtime/task_ingestion.py +0 -1020
- package/src/mcp_server_nucleus/runtime/task_ops.py +0 -449
- package/src/mcp_server_nucleus/runtime/task_scheduler.py +0 -488
- package/src/mcp_server_nucleus/runtime/team.py +0 -59
- package/src/mcp_server_nucleus/runtime/triggers.py +0 -237
- package/src/mcp_server_nucleus/runtime/vector_store.py +0 -125
- package/src/mcp_server_nucleus/runtime/watcher.py +0 -112
- package/src/mcp_server_nucleus/tool_tiers.py +0 -243
- package/tests/__init__.py +0 -1
- package/tests/conftest.py +0 -42
- package/tests/test_core.py +0 -235
- package/tests/test_search.py +0 -69
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Governance Demo Script for Nucleus MCP
|
|
4
|
-
--------------------------------------
|
|
5
|
-
Demonstrates the core "Shared Brain" and "Governance" features:
|
|
6
|
-
1. Engram Ledger (Deep Memory)
|
|
7
|
-
2. Tool Guardrails (Security)
|
|
8
|
-
3. Audit Trail (Trust)
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
import json
|
|
12
|
-
import os
|
|
13
|
-
import sys
|
|
14
|
-
import time
|
|
15
|
-
from pathlib import Path
|
|
16
|
-
|
|
17
|
-
# Add src to path for imports
|
|
18
|
-
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
|
|
19
|
-
|
|
20
|
-
# Set up test brain path
|
|
21
|
-
DEMO_BRAIN = Path(__file__).parent.parent / ".demo_brain"
|
|
22
|
-
os.environ["NUCLEAR_BRAIN_PATH"] = str(DEMO_BRAIN)
|
|
23
|
-
|
|
24
|
-
def print_header(title: str):
|
|
25
|
-
print("\n" + "=" * 60)
|
|
26
|
-
print(f" šļø {title}")
|
|
27
|
-
print("=" * 60 + "\n")
|
|
28
|
-
|
|
29
|
-
def print_result(result: str):
|
|
30
|
-
try:
|
|
31
|
-
data = json.loads(result)
|
|
32
|
-
print(json.dumps(data, indent=2))
|
|
33
|
-
except:
|
|
34
|
-
print(result)
|
|
35
|
-
|
|
36
|
-
def demo_engram_ledger():
|
|
37
|
-
from mcp_server_nucleus import brain_write_engram, brain_query_engrams
|
|
38
|
-
|
|
39
|
-
print_header("1. SHARED BRAIN: ENGRAM LEDGER")
|
|
40
|
-
|
|
41
|
-
print("š Storing an architectural decision...")
|
|
42
|
-
res = brain_write_engram(
|
|
43
|
-
key="db_policy",
|
|
44
|
-
value="Use only local-first databases (SQLite/LevelDB) for this experiment.",
|
|
45
|
-
context="Architecture",
|
|
46
|
-
intensity=9
|
|
47
|
-
)
|
|
48
|
-
print_result(res)
|
|
49
|
-
|
|
50
|
-
time.sleep(1)
|
|
51
|
-
|
|
52
|
-
print("\nš Storing a security policy...")
|
|
53
|
-
res = brain_write_engram(
|
|
54
|
-
key="api_security",
|
|
55
|
-
value="All external API calls must be logged to the brain for auditing.",
|
|
56
|
-
context="Security",
|
|
57
|
-
intensity=10
|
|
58
|
-
)
|
|
59
|
-
print_result(res)
|
|
60
|
-
|
|
61
|
-
print("\nš Querying the brain for 'Security' context...")
|
|
62
|
-
res = brain_query_engrams(context="Security")
|
|
63
|
-
print_result(res)
|
|
64
|
-
|
|
65
|
-
def demo_governance():
|
|
66
|
-
from mcp_server_nucleus import brain_governance_status, brain_audit_log
|
|
67
|
-
|
|
68
|
-
print_header("2. GOVERNANCE & AUDIT TRAIL")
|
|
69
|
-
|
|
70
|
-
print("š”ļø Checking Governance Status...")
|
|
71
|
-
res = brain_governance_status()
|
|
72
|
-
print_result(res)
|
|
73
|
-
|
|
74
|
-
print("\nš Viewing the Cryptographic Audit Trail...")
|
|
75
|
-
print("Every action taken by your agents is hashed for integrity.")
|
|
76
|
-
res = brain_audit_log(limit=5)
|
|
77
|
-
print_result(res)
|
|
78
|
-
|
|
79
|
-
def cleanup():
|
|
80
|
-
import shutil
|
|
81
|
-
if DEMO_BRAIN.exists():
|
|
82
|
-
shutil.rmtree(DEMO_BRAIN)
|
|
83
|
-
|
|
84
|
-
def main():
|
|
85
|
-
print("\n" + "š§ " * 20)
|
|
86
|
-
print(" NUCLEUS MCP - UNIVERSAL BRAIN DEMO")
|
|
87
|
-
print(" Govern Your Agents in 60 Seconds")
|
|
88
|
-
print("š§ " * 20 + "\n")
|
|
89
|
-
|
|
90
|
-
cleanup()
|
|
91
|
-
DEMO_BRAIN.mkdir(parents=True, exist_ok=True)
|
|
92
|
-
|
|
93
|
-
try:
|
|
94
|
-
demo_engram_ledger()
|
|
95
|
-
demo_governance()
|
|
96
|
-
|
|
97
|
-
print_header("DEMO COMPLETE")
|
|
98
|
-
print("š Ready to launch!")
|
|
99
|
-
print(" - Persistent Memory: CHECK")
|
|
100
|
-
print(" - Cross-Agent Sync: CHECK")
|
|
101
|
-
print(" - Security Guardrails: CHECK")
|
|
102
|
-
print("\nNext: pip install nucleus-mcp")
|
|
103
|
-
print()
|
|
104
|
-
|
|
105
|
-
finally:
|
|
106
|
-
cleanup()
|
|
107
|
-
|
|
108
|
-
if __name__ == "__main__":
|
|
109
|
-
main()
|
package/scripts/sse_bridge.py
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import json
|
|
3
|
-
import logging
|
|
4
|
-
import os
|
|
5
|
-
import sys
|
|
6
|
-
from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
|
|
9
|
-
# Add src to sys.path
|
|
10
|
-
sys.path.append(str(Path(__file__).parent.parent / "src"))
|
|
11
|
-
|
|
12
|
-
from mcp_server_nucleus.runtime.stdio_server import StdioServer
|
|
13
|
-
|
|
14
|
-
logging.basicConfig(level=logging.INFO)
|
|
15
|
-
logger = logging.getLogger("nucleus.sse_bridge")
|
|
16
|
-
|
|
17
|
-
class MCPBridgeHandler(BaseHTTPRequestHandler):
|
|
18
|
-
"""
|
|
19
|
-
Simple SSE Bridge for Model Context Protocol.
|
|
20
|
-
Converts HTTP POST requests from clients like ChatGPT to JSON-RPC tool calls.
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
server_impl = StdioServer(os.getcwd())
|
|
24
|
-
|
|
25
|
-
def do_OPTIONS(self):
|
|
26
|
-
self.send_response(200)
|
|
27
|
-
self.send_header('Access-Control-Allow-Origin', '*')
|
|
28
|
-
self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
|
|
29
|
-
self.send_header('Access-Control-Allow-Headers', 'Content-Type')
|
|
30
|
-
self.end_headers()
|
|
31
|
-
|
|
32
|
-
def do_GET(self):
|
|
33
|
-
if self.path == '/sse':
|
|
34
|
-
self.send_response(200)
|
|
35
|
-
self.send_header('Content-Type', 'text/event-stream')
|
|
36
|
-
self.send_header('Cache-Control', 'no-cache')
|
|
37
|
-
self.send_header('Connection', 'keep-alive')
|
|
38
|
-
self.send_header('Access-Control-Allow-Origin', '*')
|
|
39
|
-
self.end_headers()
|
|
40
|
-
logger.info("New SSE connection established")
|
|
41
|
-
# In a real implementation, we would keep this open and push events
|
|
42
|
-
# For a tool-only bridge, ChatGPT usually just needs the initial setup
|
|
43
|
-
try:
|
|
44
|
-
# Send endpoint event
|
|
45
|
-
endpoint_msg = json.dumps({"type": "endpoint", "url": "/post"})
|
|
46
|
-
self.wfile.write(f"event: endpoint\ndata: {endpoint_msg}\n\n".encode())
|
|
47
|
-
self.wfile.flush()
|
|
48
|
-
except Exception as e:
|
|
49
|
-
logger.error(f"SSE Error: {e}")
|
|
50
|
-
else:
|
|
51
|
-
self.send_response(404)
|
|
52
|
-
self.end_headers()
|
|
53
|
-
|
|
54
|
-
def do_POST(self):
|
|
55
|
-
if self.path == '/post' or self.path == '/sse':
|
|
56
|
-
content_length = int(self.headers.get('Content-Length', 0))
|
|
57
|
-
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
58
|
-
|
|
59
|
-
try:
|
|
60
|
-
request = json.loads(post_data)
|
|
61
|
-
logger.info(f"Request: {request.get('method')}")
|
|
62
|
-
|
|
63
|
-
response = self.server_impl.handle_request(request)
|
|
64
|
-
|
|
65
|
-
self.send_response(200)
|
|
66
|
-
self.send_header('Content-Type', 'application/json')
|
|
67
|
-
self.send_header('Access-Control-Allow-Origin', '*')
|
|
68
|
-
self.end_headers()
|
|
69
|
-
|
|
70
|
-
self.wfile.write(json.dumps(response).encode())
|
|
71
|
-
except Exception as e:
|
|
72
|
-
logger.error(f"POST Error: {e}")
|
|
73
|
-
self.send_response(500)
|
|
74
|
-
self.end_headers()
|
|
75
|
-
else:
|
|
76
|
-
self.send_response(404)
|
|
77
|
-
self.end_headers()
|
|
78
|
-
|
|
79
|
-
def run(port=8000):
|
|
80
|
-
server_address = ('', port)
|
|
81
|
-
httpd = HTTPServer(server_address, MCPBridgeHandler)
|
|
82
|
-
logger.info(f"š Nucleus SSE Bridge running on http://localhost:{port}/sse")
|
|
83
|
-
logger.info("Connect from ChatGPT: Settings -> Apps -> Advanced -> Developer Mode")
|
|
84
|
-
httpd.serve_forever()
|
|
85
|
-
|
|
86
|
-
if __name__ == "__main__":
|
|
87
|
-
run()
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import os
|
|
3
|
-
import platform
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
import sys
|
|
6
|
-
|
|
7
|
-
# Add src to path
|
|
8
|
-
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
|
|
9
|
-
|
|
10
|
-
from mcp_server_nucleus.cli import get_claude_config_path, get_cursor_config_path, get_windsurf_config_path
|
|
11
|
-
|
|
12
|
-
def test_windows_paths():
|
|
13
|
-
print("šŖ Mocking Windows environment...")
|
|
14
|
-
|
|
15
|
-
# Save original
|
|
16
|
-
orig_system = platform.system
|
|
17
|
-
orig_environ = os.environ.copy()
|
|
18
|
-
|
|
19
|
-
try:
|
|
20
|
-
# Mock platform.system()
|
|
21
|
-
platform.system = lambda: "Windows"
|
|
22
|
-
os.environ["APPDATA"] = "C:\\Users\\Test\\AppData\\Roaming"
|
|
23
|
-
os.environ["LOCALAPPDATA"] = "C:\\Users\\Test\\AppData\\Local"
|
|
24
|
-
|
|
25
|
-
print(f"System: {platform.system()}")
|
|
26
|
-
|
|
27
|
-
claude = get_claude_config_path()
|
|
28
|
-
print(f"Claude: {claude}")
|
|
29
|
-
assert "AppData\\Roaming\\Claude" in str(claude)
|
|
30
|
-
|
|
31
|
-
cursor = get_cursor_config_path()
|
|
32
|
-
print(f"Cursor: {cursor}")
|
|
33
|
-
assert "AppData\\Roaming\\Cursor" in str(cursor)
|
|
34
|
-
|
|
35
|
-
windsurf = get_windsurf_config_path()
|
|
36
|
-
print(f"Windsurf: {windsurf}")
|
|
37
|
-
assert "AppData\\Roaming\\Codeium\\windsurf" in str(windsurf)
|
|
38
|
-
|
|
39
|
-
print("\nā
Windows path resolution looks CORRECT.")
|
|
40
|
-
|
|
41
|
-
finally:
|
|
42
|
-
# Restore
|
|
43
|
-
platform.system = orig_system
|
|
44
|
-
os.environ.clear()
|
|
45
|
-
os.environ.update(orig_environ)
|
|
46
|
-
|
|
47
|
-
if __name__ == "__main__":
|
|
48
|
-
test_windows_paths()
|
package/server.json
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.eidetic-works/nucleus",
|
|
4
|
-
"description": "Sovereign agent control plane with task ledger, hypervisor security, and long-term memory.",
|
|
5
|
-
"repository": {
|
|
6
|
-
"url": "https://github.com/eidetic-works/nucleus-mcp",
|
|
7
|
-
"source": "github"
|
|
8
|
-
},
|
|
9
|
-
"version": "1.0.4",
|
|
10
|
-
"packages": [
|
|
11
|
-
{
|
|
12
|
-
"registryType": "npm",
|
|
13
|
-
"identifier": "nucleus-mcp",
|
|
14
|
-
"version": "1.0.4",
|
|
15
|
-
"transport": {
|
|
16
|
-
"type": "stdio"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|