nyxora 1.6.2 → 1.6.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/CHANGELOG.md +23 -0
- package/README.md +22 -12
- package/SECURITY.md +25 -21
- package/assets/raw-diagram.png +0 -0
- package/assets/security-flow.png +0 -0
- package/bin/nyxora.mjs +236 -0
- package/launcher.js +8 -3
- package/launcher.ts +28 -1
- package/package.json +11 -8
- package/packages/core/package.json +4 -4
- package/packages/core/src/agent/reasoning.ts +10 -8
- package/packages/core/src/config/parser.ts +2 -1
- package/packages/core/src/gateway/cli.ts +2 -64
- package/packages/core/src/gateway/server.ts +89 -8
- package/packages/core/src/gateway/setup-cli.ts +7 -0
- package/packages/core/src/gateway/setup.ts +52 -28
- package/packages/core/src/gateway/telegram.ts +147 -89
- package/packages/core/src/memory/logger.ts +83 -20
- package/packages/core/src/system/pluginManager.ts +48 -34
- package/packages/core/src/utils/state.ts +15 -2
- package/packages/core/src/web3/config.ts +18 -3
- package/packages/core/src/web3/skills/marketAnalysis.ts +43 -17
- package/packages/core/src/web3/skills/swapToken.ts +9 -1
- package/packages/dashboard/dist/assets/index-CfIids2e.js +170 -0
- package/packages/dashboard/dist/assets/index-POJM-7Fd.css +1 -0
- package/packages/dashboard/dist/favicon.svg +1 -1
- package/packages/dashboard/dist/index.html +2 -2
- package/packages/dashboard/package.json +7 -7
- package/packages/dashboard/public/favicon.svg +1 -1
- package/packages/dashboard/src/App.tsx +224 -167
- package/packages/dashboard/src/Settings.tsx +55 -0
- package/packages/dashboard/src/Skills.tsx +8 -1
- package/packages/dashboard/src/index.css +146 -35
- package/packages/policy/package.json +1 -1
- package/packages/policy/src/server.ts +21 -28
- package/packages/signer/package.json +1 -1
- package/packages/signer/src/server.ts +40 -13
- package/test-db.ts +3 -0
- package/bin/nyxora.js +0 -13
- package/packages/dashboard/dist/assets/index-BK4qmIy6.js +0 -200
- package/packages/dashboard/dist/assets/index-C1m4ohce.css +0 -1
- package/packages/dashboard/package-lock.json +0 -2748
- package/packages/dashboard/src/Memory.tsx +0 -110
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--bg-color: #3b4252;--bg-secondary: #434c5e;--bg-sidebar: #2e3440;--text-primary: #eceff4;--text-secondary: #d8dee9;--accent: #88c0d0;--accent-hover: #81a1c1;--glass-bg: rgba(46, 52, 64, .7);--glass-border: rgba(216, 222, 233, .1);--chat-user: #88c0d0;--chat-user-text: #2e3440;--chat-agent: #2e3440;--tool-bg: #4c566a;--success: #a3be8c;--danger: #bf616a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-color);color:var(--text-primary);height:100vh;overflow:hidden}#root{display:flex;height:100vh;width:100vw}.sidebar{width:280px;background-color:var(--bg-sidebar);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;box-shadow:10px 0 30px -10px #00000080;z-index:100}.agent-identity-card{padding:24px;display:flex;align-items:center;gap:16px;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:8px;background:linear-gradient(180deg,rgba(59,130,246,.05) 0%,transparent 100%)}.agent-avatar{background:#88c0d026;padding:12px;border-radius:16px;border:1px solid rgba(136,192,208,.3);box-shadow:0 0 20px #88c0d033;display:flex;justify-content:center;align-items:center}.agent-info{display:flex;flex-direction:column;gap:4px}.agent-name{font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:-.025em}.agent-status{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#4ade80;font-weight:600;letter-spacing:.05em}.status-dot{width:8px;height:8px;background-color:#4ade80;border-radius:50%;box-shadow:0 0 8px #4ade80;animation:pulse-green 2s infinite}@keyframes pulse-green{0%{transform:scale(.95);box-shadow:0 0 #4ade80b3}70%{transform:scale(1);box-shadow:0 0 0 6px #4ade8000}to{transform:scale(.95);box-shadow:0 0 #4ade8000}}.sidebar-scroll-area{flex:1;overflow-y:auto;padding-bottom:24px}.sidebar-scroll-area::-webkit-scrollbar{width:4px}.sidebar-scroll-area::-webkit-scrollbar-thumb{background:#ffffff0d}.sidebar-section{padding:24px 24px 8px;font-size:.75rem;color:#8b9bb4;font-weight:500}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:0 16px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:#94a3b8;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid transparent}.nav-icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}.nav-item:hover{background-color:#ffffff08;color:#fff;transform:translate(4px)}.nav-item:hover .nav-icon{transform:scale(1.1);color:#fff}.sessions-list{gap:0px!important;justify-content:flex-start!important;flex:none!important;height:max-content!important}.session-item{justify-content:space-between;padding:4px 10px!important;margin-bottom:2px!important;margin-top:0!important;min-height:28px!important;height:max-content!important;flex:none!important}.delete-session-btn{background:transparent;border:none;color:#bf616a;cursor:pointer;opacity:0;transition:opacity .2s ease,transform .2s ease;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px}.delete-session-btn:hover{background:#bf616a33;transform:scale(1.1)}.session-item:hover .delete-session-btn{opacity:1}.nav-item.active{background:linear-gradient(90deg,rgba(59,130,246,.15) 0%,transparent 100%);color:#fff;border-left:3px solid var(--accent);border-radius:4px 12px 12px 4px;font-weight:600}.nav-item.active .nav-icon{color:var(--accent)}.main-content{flex:1;display:flex;flex-direction:column;background-image:radial-gradient(at 0% 0%,rgba(59,130,246,.1) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(139,92,246,.1) 0px,transparent 50%)}.topbar{height:64px;border-bottom:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--bg-color)}.topbar-left{display:flex;align-items:center;gap:16px;font-size:.95rem;font-weight:500;color:var(--text-secondary)}.topbar-right{display:flex;align-items:center;gap:12px}.config-dropdown{background:var(--bg-secondary);border:1px solid var(--glass-border);color:#fff;padding:8px 12px;border-radius:6px;font-size:.85rem;outline:none;cursor:pointer;transition:all .2s;min-width:120px}.config-dropdown:hover{border-color:var(--accent)}.config-dropdown:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.workspace-container{display:flex;height:calc(100vh - 64px);width:100%}.chat-wrapper{display:flex;flex-direction:column;padding:24px 0;height:100%}.resizer{width:6px;background:var(--glass-border);cursor:col-resize;transition:background .2s;z-index:10}.resizer:hover,.resizer:active{background:var(--accent)}.canvas-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-sidebar);padding:32px;overflow-y:auto;position:relative;background-image:radial-gradient(at 50% 50%,rgba(59,130,246,.05) 0px,transparent 80%)}.canvas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:16px}.canvas-title{font-family:monospace;color:#94a3b8;font-size:.85rem;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.05em}.canvas-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#475569;gap:16px}.chat-container{flex:1;overflow-y:auto;padding:0 24px;display:flex;flex-direction:column;gap:20px}.chat-container::-webkit-scrollbar{width:6px}.chat-container::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.message-wrapper{display:flex;flex-direction:column;max-width:85%;animation:fadeIn .3s ease-out forwards}.message-wrapper.agent{align-self:flex-start;flex-direction:row;align-items:flex-end;gap:8px}.message-wrapper.user{align-self:flex-end;flex-direction:row-reverse;align-items:flex-end;gap:8px}.copy-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;opacity:0;transition:opacity .2s,background .2s;display:flex;align-items:center;justify-content:center}.copy-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.message-wrapper:hover .copy-btn{opacity:1}.message-bubble{padding:14px 18px;border-radius:18px;line-height:1.6;font-size:.95rem;box-shadow:0 4px 6px -1px #0000001a;white-space:pre-wrap}.user .message-bubble{background-color:var(--chat-user);color:var(--chat-user-text);border-bottom-right-radius:4px}.agent .message-bubble{background-color:var(--chat-agent);border:1px solid var(--glass-border);border-bottom-left-radius:4px;color:var(--text-primary)}.tool-call{font-size:.85rem;color:var(--text-secondary);background:var(--tool-bg);padding:10px 14px;border-radius:12px;margin-top:10px;border:1px solid var(--glass-border);display:flex;align-items:center;gap:8px}.tool-call code{color:var(--accent);font-family:monospace}.input-area{padding:20px 24px 0}.input-form{display:flex;gap:12px;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:16px;padding:8px;transition:all .2s}.input-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.chat-input{flex:1;background:transparent;border:none;padding:12px 16px;color:#fff;font-size:.95rem;font-family:inherit;outline:none}.send-button{background:var(--accent);color:#fff;border:none;width:44px;height:44px;border-radius:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .2s}.voice-button{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--glass-border);width:44px;height:44px;border-radius:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .2s}.voice-button:hover{color:#fff;border-color:#ef4444}.voice-button.listening{background:#ef444433;color:#ef4444;border-color:#ef4444;animation:pulse-red 1.5s infinite}.voice-button.active-mode{border-color:#3b82f6;color:#3b82f6}.voice-button.speaking{background:#3b82f633;color:#3b82f6;border-color:#3b82f6;animation:pulse-blue 1.5s infinite}@keyframes pulse-red{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes pulse-blue{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}.send-button:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.send-button:disabled{opacity:.5;cursor:not-allowed}.typing-indicator{display:flex;gap:4px;padding:14px 18px;background-color:var(--chat-agent);border:1px solid var(--glass-border);border-radius:18px 18px 18px 4px;width:fit-content;align-self:flex-start}.dot{width:6px;height:6px;background:var(--text-secondary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.prompt-suggestions{display:flex;gap:12px;margin-bottom:12px;overflow-x:auto}.prompt-suggestions button{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--glass-border);padding:8px 16px;border-radius:20px;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:all .2s}.prompt-suggestions button:hover{border-color:var(--accent);color:var(--text-primary)}.trending-tokens{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:.8rem;color:var(--text-secondary)}.token-tag{background:var(--accent);color:var(--bg-color);padding:4px 10px;border-radius:12px;font-weight:600;cursor:pointer;transition:transform .2s,filter .2s}.token-tag:hover{transform:translateY(-2px);filter:brightness(1.2)}.overview-container{padding:24px;overflow-y:auto;height:calc(100vh - 64px);color:#fff;font-family:Inter,sans-serif;max-width:1200px;margin:0 auto}.overview-container::-webkit-scrollbar{width:6px}.overview-container::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.overview-header h1{font-size:1.5rem;font-weight:600;margin-bottom:4px}.overview-header p{color:var(--text-secondary);font-size:.9rem;margin-bottom:24px}.panel{background:#14182099;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:20px;margin-bottom:24px}.panel-header h3{font-size:1.1rem;font-weight:600;margin-bottom:4px}.panel-header p{color:var(--text-secondary);font-size:.85rem;margin-bottom:16px}.form-group{margin-bottom:16px}.form-row{display:flex;gap:16px}.flex-1{flex:1}label{display:block;font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;letter-spacing:.05em}input,select{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.1);padding:10px 12px;border-radius:8px;color:#fff;font-size:.9rem;font-family:monospace}input:read-only{color:var(--text-secondary)}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon svg{position:absolute;right:12px;color:var(--text-secondary);cursor:pointer}.form-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.btn-primary{background:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.9rem;cursor:pointer}.btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.2);padding:8px 16px;border-radius:6px;font-size:.9rem;cursor:pointer}.action-hint{color:var(--text-secondary);font-size:.85rem;margin-left:8px}.snapshot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.stat-val{font-size:1.5rem;font-weight:700;margin-bottom:4px}.text-green{color:#22c55e}.stat-block p{color:var(--text-secondary);font-size:.8rem;margin-top:8px;line-height:1.4}.metrics-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:32px}.metric-card{background:#14182099;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:16px}.metric-val{font-size:1.5rem;font-weight:700;margin-bottom:4px}.metric-sub{color:var(--text-secondary);font-size:.75rem}.section-title{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;letter-spacing:.05em}.session-item{display:flex;justify-content:space-between;padding:16px 20px;margin-bottom:24px}.text-secondary{color:var(--text-secondary)}.attention-panel{background:#eab3081a;border:1px solid rgba(234,179,8,.2);border-radius:12px;padding:16px 20px;margin-bottom:24px;display:flex;flex-direction:column}.attention-header{display:flex;align-items:center;gap:8px;color:#eab308;margin-bottom:8px}.attention-header h4{font-size:1rem;font-weight:600}.attention-content p{font-size:.95rem;margin-bottom:4px}.attention-content span{font-size:.85rem}.logs-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.log-panel{background:#0a0c10cc;border:1px solid rgba(255,255,255,.05);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;height:300px}.log-header{padding:12px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.05);font-size:.85rem;font-weight:600}.badge{background:#ffffff1a;padding:2px 6px;border-radius:10px;font-size:.7rem;margin-left:8px}.log-content{padding:12px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.log-content code,.log-json{font-family:Consolas,Monaco,monospace;font-size:.75rem;color:#a3a3a3;line-height:1.4;word-break:break-all}.log-row{display:flex;gap:12px;font-family:Consolas,Monaco,monospace;font-size:.75rem;margin-bottom:4px}.log-time{color:#fb923c;min-width:60px}.log-msg{color:#d1d5db}.log-meta{color:#6b7280}.gateway-row{margin-bottom:2px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#88c0d0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Nyxora Dashboard</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CfIids2e.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-POJM-7Fd.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dashboard",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vite",
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
"preview": "vite preview"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"lucide-react": "^
|
|
14
|
-
"react": "^
|
|
15
|
-
"react-dom": "^
|
|
13
|
+
"lucide-react": "^0.474.0",
|
|
14
|
+
"react": "^18.3.1",
|
|
15
|
+
"react-dom": "^18.3.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@eslint/js": "^10.0.1",
|
|
19
|
-
"@types/node": "^
|
|
20
|
-
"@types/react": "^
|
|
21
|
-
"@types/react-dom": "^
|
|
19
|
+
"@types/node": "^22.0.0",
|
|
20
|
+
"@types/react": "^18.3.3",
|
|
21
|
+
"@types/react-dom": "^18.3.0",
|
|
22
22
|
"@vitejs/plugin-react": "^4.3.1",
|
|
23
23
|
"eslint": "^10.3.0",
|
|
24
24
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#88c0d0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot"><path d="M12 8V4H8"/><rect width="16" height="12" x="4" y="8" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></svg>
|