@minasoft/mina-ai-router 0.1.5 → 0.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/README.md +67 -16
- package/dist/apps/cli/src/index.js +1247 -43
- package/dist/apps/http-server/src/index.js +558 -42
- package/dist/apps/http-server/src/public/assets/index-Bl059Jd0.js +9 -0
- package/dist/apps/http-server/src/public/assets/index-CaPxN_Ez.css +1 -0
- package/dist/apps/http-server/src/public/index.html +2 -2
- package/dist/apps/mcp-server/src/index.js +54 -7
- package/dist/packages/core/src/capability-profile.js +145 -0
- package/dist/packages/core/src/index.js +3 -0
- package/dist/packages/core/src/mcp-preflight.js +80 -0
- package/dist/packages/core/src/registry.js +128 -3
- package/dist/packages/core/src/request-store.js +158 -0
- package/dist/packages/core/src/response-parser.js +76 -8
- package/dist/packages/core/src/router.js +408 -13
- package/dist/packages/core/src/version.js +57 -0
- package/dist/packages/mcp/src/provider.js +57 -6
- package/dist/packages/transports/src/headless/headless-transport.js +13 -8
- package/dist/packages/transports/src/tmux/tmux-client.js +334 -0
- package/dist/packages/transports/src/tmux/tmux-transport.js +10 -0
- package/docs/DEVELOPER-START-GUIDE.md +9 -1
- package/docs/GETTING-STARTED.md +10 -5
- package/docs/HTTP-UI-MCP.md +39 -13
- package/docs/MCP-CLIENT-SETUP.md +56 -3
- package/docs/SKILL-INSTALL-GUIDE.md +21 -3
- package/docs/TROUBLESHOOTING.md +47 -0
- package/docs/USER-START-GUIDE.md +155 -26
- package/docs/assets/mina-ai-router-overview.svg +109 -0
- package/package.json +8 -2
- package/dist/apps/http-server/src/public/assets/index-Be0tne90.js +0 -9
- package/dist/apps/http-server/src/public/assets/index-CEhd8YGG.css +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<svg width="1400" height="820" viewBox="0 0 1400 820" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Mina AI Router local agent collaboration overview</title>
|
|
3
|
+
<desc id="desc">Mina AI Router runs on your computer and lets multiple visible Codex and Claude CLI agents collaborate through a local MCP router, shared request tracking, and a browser operations console.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="pageBg" x1="0" y1="0" x2="1400" y2="820" gradientUnits="userSpaceOnUse">
|
|
6
|
+
<stop stop-color="#FBF8F6"/>
|
|
7
|
+
<stop offset="1" stop-color="#EEF6F8"/>
|
|
8
|
+
</linearGradient>
|
|
9
|
+
<linearGradient id="computerBg" x1="130" y1="160" x2="1270" y2="704" gradientUnits="userSpaceOnUse">
|
|
10
|
+
<stop stop-color="#FFFFFF"/>
|
|
11
|
+
<stop offset="1" stop-color="#F3FAF7"/>
|
|
12
|
+
</linearGradient>
|
|
13
|
+
<filter id="shadow" x="-20%" y="-20%" width="140%" height="150%">
|
|
14
|
+
<feDropShadow dx="0" dy="18" stdDeviation="22" flood-color="#1C1B1B" flood-opacity="0.12"/>
|
|
15
|
+
</filter>
|
|
16
|
+
<marker id="arrow" markerWidth="14" markerHeight="14" refX="11" refY="7" orient="auto">
|
|
17
|
+
<path d="M2 2.5L11 7L2 11.5" stroke="#315C52" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
18
|
+
</marker>
|
|
19
|
+
<style>
|
|
20
|
+
.title { font: 750 50px 'Hanken Grotesk', 'Inter', Arial, sans-serif; fill: #1C1B1B; }
|
|
21
|
+
.subtitle { font: 500 22px 'Work Sans', 'Inter', Arial, sans-serif; fill: #535C59; }
|
|
22
|
+
.section { font: 750 26px 'Hanken Grotesk', 'Inter', Arial, sans-serif; fill: #1C1B1B; }
|
|
23
|
+
.body { font: 500 17px 'Work Sans', 'Inter', Arial, sans-serif; fill: #404846; }
|
|
24
|
+
.small { font: 500 14px 'Work Sans', 'Inter', Arial, sans-serif; fill: #68716E; }
|
|
25
|
+
.mono { font: 700 17px 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; fill: #006A6A; }
|
|
26
|
+
.chip { font: 700 13px 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace; fill: #315C52; }
|
|
27
|
+
.computer { fill: url(#computerBg); stroke: #D7DDDA; stroke-width: 2; rx: 34; filter: url(#shadow); }
|
|
28
|
+
.hub { fill: #315C52; filter: url(#shadow); }
|
|
29
|
+
.card { fill: #FFFFFF; stroke: #D7DDDA; stroke-width: 1.6; rx: 20; filter: url(#shadow); }
|
|
30
|
+
.softCard { fill: #F8FBFA; stroke: #D7DDDA; stroke-width: 1.4; rx: 18; }
|
|
31
|
+
.codex { stroke: #74A7BE; }
|
|
32
|
+
.claude { stroke: #D1A66D; }
|
|
33
|
+
.route { stroke: #315C52; stroke-width: 3.2; marker-end: url(#arrow); }
|
|
34
|
+
.routeBack { stroke: #7AA89A; stroke-width: 2.7; stroke-dasharray: 9 10; marker-end: url(#arrow); }
|
|
35
|
+
.dash { stroke: #AEB8B4; stroke-width: 2; stroke-dasharray: 8 10; }
|
|
36
|
+
</style>
|
|
37
|
+
</defs>
|
|
38
|
+
|
|
39
|
+
<rect width="1400" height="820" fill="url(#pageBg)"/>
|
|
40
|
+
|
|
41
|
+
<text x="86" y="86" class="title">Mina AI Router</text>
|
|
42
|
+
<text x="88" y="126" class="subtitle">Turn multiple local Codex and Claude CLI sessions into a visible collaboration mesh.</text>
|
|
43
|
+
|
|
44
|
+
<rect x="86" y="168" width="1228" height="548" class="computer"/>
|
|
45
|
+
<text x="126" y="220" class="section">Your computer</text>
|
|
46
|
+
<text x="126" y="250" class="body">Everything runs locally: tmux sessions, MCP routing, browser console, and request history.</text>
|
|
47
|
+
|
|
48
|
+
<g transform="translate(556 282)">
|
|
49
|
+
<circle cx="144" cy="144" r="118" class="hub"/>
|
|
50
|
+
<circle cx="144" cy="144" r="82" fill="#426E63"/>
|
|
51
|
+
<path d="M105 151H183M144 105V183M113 123L144 105L175 123M113 165L144 183L175 165" stroke="#FFFFFF" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
|
52
|
+
<text x="48" y="292" class="section">Local MCP Router</text>
|
|
53
|
+
<text x="44" y="322" class="body">routes agent-to-agent work</text>
|
|
54
|
+
</g>
|
|
55
|
+
|
|
56
|
+
<g>
|
|
57
|
+
<rect x="146" y="304" width="286" height="126" class="card codex"/>
|
|
58
|
+
<text x="178" y="348" class="section">Codex CLI Agent</text>
|
|
59
|
+
<text x="178" y="380" class="mono">tmux: project-a</text>
|
|
60
|
+
<text x="178" y="410" class="small">Visible terminal session</text>
|
|
61
|
+
|
|
62
|
+
<rect x="146" y="478" width="286" height="126" class="card claude"/>
|
|
63
|
+
<text x="178" y="522" class="section">Claude CLI Agent</text>
|
|
64
|
+
<text x="178" y="554" class="mono">tmux: project-b</text>
|
|
65
|
+
<text x="178" y="584" class="small">Project-scoped context</text>
|
|
66
|
+
</g>
|
|
67
|
+
|
|
68
|
+
<g>
|
|
69
|
+
<rect x="968" y="304" width="286" height="126" class="card codex"/>
|
|
70
|
+
<text x="1000" y="348" class="section">Codex CLI Agent</text>
|
|
71
|
+
<text x="1000" y="380" class="mono">tmux: api-server</text>
|
|
72
|
+
<text x="1000" y="410" class="small">Can receive routed work</text>
|
|
73
|
+
|
|
74
|
+
<rect x="968" y="478" width="286" height="126" class="card claude"/>
|
|
75
|
+
<text x="1000" y="522" class="section">Claude CLI Agent</text>
|
|
76
|
+
<text x="1000" y="554" class="mono">tmux: docs</text>
|
|
77
|
+
<text x="1000" y="584" class="small">Reports status and answers</text>
|
|
78
|
+
</g>
|
|
79
|
+
|
|
80
|
+
<path d="M432 366C486 366 510 386 556 410" class="route"/>
|
|
81
|
+
<path d="M432 540C486 540 510 508 556 464" class="route"/>
|
|
82
|
+
<path d="M844 410C890 386 914 366 968 366" class="route"/>
|
|
83
|
+
<path d="M844 464C890 508 914 540 968 540" class="route"/>
|
|
84
|
+
|
|
85
|
+
<path d="M968 398C908 430 890 446 846 446" class="routeBack"/>
|
|
86
|
+
<path d="M556 446C512 446 494 430 432 398" class="routeBack"/>
|
|
87
|
+
|
|
88
|
+
<rect x="232" y="640" width="936" height="46" rx="23" fill="#FFFFFF" stroke="#D7DDDA"/>
|
|
89
|
+
<text x="280" y="669" class="chip">call_agent</text>
|
|
90
|
+
<line x1="394" y1="663" x2="462" y2="663" class="dash"/>
|
|
91
|
+
<text x="486" y="669" class="chip">get_request_status</text>
|
|
92
|
+
<line x1="674" y1="663" x2="742" y2="663" class="dash"/>
|
|
93
|
+
<text x="766" y="669" class="chip">list_agents</text>
|
|
94
|
+
<line x1="884" y1="663" x2="952" y2="663" class="dash"/>
|
|
95
|
+
<text x="976" y="669" class="chip">register_agent</text>
|
|
96
|
+
|
|
97
|
+
<g>
|
|
98
|
+
<rect x="382" y="724" width="636" height="64" class="softCard"/>
|
|
99
|
+
<text x="424" y="754" class="section" style="font-size:22px">Browser operations console</text>
|
|
100
|
+
<text x="424" y="780" class="small">Live flow map, per-agent inspector, terminal preview, activity log, and controls</text>
|
|
101
|
+
</g>
|
|
102
|
+
|
|
103
|
+
<g>
|
|
104
|
+
<rect x="1010" y="88" width="232" height="54" rx="27" fill="#FFFFFF" stroke="#D7DDDA"/>
|
|
105
|
+
<circle cx="1040" cy="115" r="8" fill="#16815F"/>
|
|
106
|
+
<text x="1062" y="121" class="chip">local-first</text>
|
|
107
|
+
<text x="1168" y="121" class="chip">visible</text>
|
|
108
|
+
</g>
|
|
109
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minasoft/mina-ai-router",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Local MCP router and Web UI for visible tmux-backed AI agents.",
|
|
5
5
|
"homepage": "https://github.com/stevennana/mina-ai-router#readme",
|
|
6
6
|
"repository": {
|
|
@@ -47,11 +47,17 @@
|
|
|
47
47
|
"http": "node dist/apps/http-server/src/index.js",
|
|
48
48
|
"smoke": "npm run build && node dist/apps/cli/src/index.js register payment --agent gemini --transport headless --session payment --root ./payment && node dist/apps/cli/src/index.js ask payment \"현재 payment flow를 요약해줘.\"",
|
|
49
49
|
"smoke:http": "npm run build && node scripts/smoke-http.js",
|
|
50
|
+
"smoke:docs": "node scripts/smoke-docs.js",
|
|
50
51
|
"smoke:cli-controls": "npm run build && node scripts/smoke-cli-controls.js",
|
|
52
|
+
"smoke:installed-cli": "npm run build && node scripts/smoke-installed-cli.js",
|
|
53
|
+
"smoke:real-cli-contract": "npm run build && node scripts/smoke-real-cli-contract.js",
|
|
51
54
|
"smoke:tmux": "npm run build && node scripts/smoke-tmux.js",
|
|
52
55
|
"smoke:mcp": "npm run build && node scripts/smoke-mcp.js",
|
|
53
56
|
"smoke:multi": "npm run build && node scripts/smoke-multi-agent.js",
|
|
54
|
-
"verify": "npm run test && npm run smoke:http && npm run smoke:cli-controls && npm run smoke:tmux && npm run smoke:mcp && npm run smoke:multi"
|
|
57
|
+
"verify": "npm run test && npm run smoke:docs && npm run smoke:installed-cli && npm run smoke:http && npm run smoke:cli-controls && npm run smoke:tmux && npm run smoke:mcp && npm run smoke:multi",
|
|
58
|
+
"ralph:status": "scripts/ralph/status.sh",
|
|
59
|
+
"ralph:once": "scripts/ralph/run-once.sh",
|
|
60
|
+
"ralph:loop": "scripts/ralph/run-loop.sh"
|
|
55
61
|
},
|
|
56
62
|
"dependencies": {
|
|
57
63
|
"@minasoft/mcp-runtime": "^0.1.6",
|