samarthya-bot 1.0.2

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.
Files changed (50) hide show
  1. package/README.md +92 -0
  2. package/backend/.env.example +23 -0
  3. package/backend/bin/samarthya.js +384 -0
  4. package/backend/config/constants.js +71 -0
  5. package/backend/config/db.js +13 -0
  6. package/backend/controllers/auditController.js +86 -0
  7. package/backend/controllers/authController.js +154 -0
  8. package/backend/controllers/chatController.js +158 -0
  9. package/backend/controllers/fileController.js +268 -0
  10. package/backend/controllers/platformController.js +54 -0
  11. package/backend/controllers/screenController.js +91 -0
  12. package/backend/controllers/telegramController.js +120 -0
  13. package/backend/controllers/toolsController.js +56 -0
  14. package/backend/controllers/whatsappController.js +214 -0
  15. package/backend/fix_toolRegistry.js +25 -0
  16. package/backend/middleware/auth.js +28 -0
  17. package/backend/models/AuditLog.js +28 -0
  18. package/backend/models/BackgroundJob.js +13 -0
  19. package/backend/models/Conversation.js +40 -0
  20. package/backend/models/Memory.js +17 -0
  21. package/backend/models/User.js +24 -0
  22. package/backend/package-lock.json +3766 -0
  23. package/backend/package.json +41 -0
  24. package/backend/public/assets/index-Ckf0GO1B.css +1 -0
  25. package/backend/public/assets/index-Do4jNsZS.js +19 -0
  26. package/backend/public/assets/index-Ui-pyZvK.js +25 -0
  27. package/backend/public/favicon.svg +17 -0
  28. package/backend/public/index.html +18 -0
  29. package/backend/public/manifest.json +16 -0
  30. package/backend/routes/audit.js +9 -0
  31. package/backend/routes/auth.js +11 -0
  32. package/backend/routes/chat.js +11 -0
  33. package/backend/routes/files.js +14 -0
  34. package/backend/routes/platform.js +18 -0
  35. package/backend/routes/screen.js +10 -0
  36. package/backend/routes/telegram.js +8 -0
  37. package/backend/routes/tools.js +9 -0
  38. package/backend/routes/whatsapp.js +11 -0
  39. package/backend/server.js +134 -0
  40. package/backend/services/background/backgroundService.js +81 -0
  41. package/backend/services/llm/llmService.js +444 -0
  42. package/backend/services/memory/memoryService.js +159 -0
  43. package/backend/services/planner/plannerService.js +182 -0
  44. package/backend/services/security/securityService.js +166 -0
  45. package/backend/services/telegram/telegramService.js +49 -0
  46. package/backend/services/tools/toolRegistry.js +879 -0
  47. package/backend/services/whatsapp/whatsappService.js +254 -0
  48. package/backend/test_email.js +29 -0
  49. package/backend/test_parser.js +10 -0
  50. package/package.json +49 -0
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "samarthya-agent",
3
+ "version": "1.0.0",
4
+ "main": "server.js",
5
+ "bin": {
6
+ "samarthya": "./bin/samarthya.js",
7
+ "samarthyabot": "./bin/samarthya.js"
8
+ },
9
+ "scripts": {
10
+ "start": "node server.js",
11
+ "dev": "nodemon server.js",
12
+ "test": "echo \"Error: no test specified\" && exit 1"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "description": "",
18
+ "dependencies": {
19
+ "@google/genai": "^1.43.0",
20
+ "bcryptjs": "^3.0.3",
21
+ "cors": "^2.8.6",
22
+ "dotenv": "^17.3.1",
23
+ "express": "^5.2.1",
24
+ "helmet": "^8.1.0",
25
+ "jsonwebtoken": "^9.0.3",
26
+ "mongoose": "^9.2.3",
27
+ "morgan": "^1.10.1",
28
+ "node-cron": "^4.2.1",
29
+ "node-crypto": "^1.0.0",
30
+ "node-os-utils": "^2.0.1",
31
+ "nodemailer": "^8.0.1",
32
+ "os-utils": "^0.0.14",
33
+ "puppeteer-core": "^24.37.5",
34
+ "screenshot-desktop": "^1.15.3",
35
+ "socket.io": "^4.8.3",
36
+ "uuid": "^13.0.0"
37
+ },
38
+ "devDependencies": {
39
+ "nodemon": "^3.1.14"
40
+ }
41
+ }
@@ -0,0 +1 @@
1
+ :root{--bg-primary: #0D0D0D;--bg-secondary: #111118;--bg-tertiary: #161624;--bg-card: #1a1a2e;--bg-hover: #22223a;--bg-input: #0f0f1e;--accent-saffron: #FF9933;--accent-saffron-glow: rgba(255, 153, 51, .25);--accent-navy: #000080;--accent-green: #138808;--accent-green-glow: rgba(19, 136, 8, .2);--accent-primary: #FF9933;--accent-secondary: #e68a2e;--accent-white: #ffffff;--accent-gold: #f5c842;--accent-teal: #14b8a6;--accent-rose: #f43f5e;--accent-indigo: #6366f1;--gradient-primary: linear-gradient(135deg, #FF9933 0%, #e68a2e 50%, #f5c842 100%);--gradient-indian: linear-gradient(135deg, #FF9933 0%, #ffffff 50%, #138808 100%);--gradient-navy: linear-gradient(135deg, #000080 0%, #1a1a6e 100%);--gradient-glass: linear-gradient(135deg, rgba(255, 153, 51, .06) 0%, rgba(19, 136, 8, .03) 100%);--gradient-dark: linear-gradient(180deg, #0D0D0D 0%, #111118 100%);--gradient-hero: linear-gradient(135deg, rgba(255, 153, 51, .08) 0%, rgba(0, 0, 128, .05) 50%, rgba(19, 136, 8, .04) 100%);--gradient-card-hover: linear-gradient(135deg, rgba(255, 153, 51, .1) 0%, rgba(255, 153, 51, .02) 100%);--text-primary: #f2f2f8;--text-secondary: #a8a8c0;--text-muted: #6b6b8a;--text-accent: #FF9933;--border-primary: rgba(255, 153, 51, .15);--border-subtle: rgba(255, 255, 255, .06);--border-hover: rgba(255, 153, 51, .35);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--shadow-md: 0 4px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .6);--shadow-glow: 0 0 24px rgba(255, 153, 51, .12);--shadow-glow-strong: 0 0 48px rgba(255, 153, 51, .22);--shadow-green-glow: 0 0 20px rgba(19, 136, 8, .15);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-hindi: "Noto Sans Devanagari", "Inter", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.6}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#f933;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-saffron)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glow{0%,to{box-shadow:0 0 5px #ff993326}50%{box-shadow:0 0 25px #ff993359}}@keyframes typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes voicePulse{0%{box-shadow:0 0 #ff993380}70%{box-shadow:0 0 0 20px #f930}to{box-shadow:0 0 #f930}}@keyframes pulseAlarm{0%{transform:scale(1);box-shadow:0 0 20px #ef444466}to{transform:scale(1.02);box-shadow:0 0 40px #f939}}@keyframes ringAlarm{0%{transform:rotate(0)}25%{transform:rotate(15deg)}50%{transform:rotate(-15deg)}75%{transform:rotate(10deg)}to{transform:rotate(-10deg)}}.animate-fade-in{animation:fadeIn .4s ease-out}.animate-fade-in-up{animation:fadeInUp .5s ease-out}.animate-slide-left{animation:slideInLeft .4s ease-out}.animate-slide-right{animation:slideInRight .4s ease-out}.animate-bounce-in{animation:bounceIn .6s ease-out}.animate-scale-in{animation:scaleIn .3s ease-out}.glass{background:#1a1a2ea6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-subtle)}.glass-strong{background:#0d0d0dd9;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid var(--border-primary)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-indian{background:var(--gradient-indian);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:var(--radius-md);font-family:var(--font-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden;letter-spacing:.01em}.btn:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.12) 10%,transparent 60%);transform:scale(0);opacity:0;transition:all .5s}.btn:active:after{transform:scale(4);opacity:0;transition:0s}.btn-primary{background:var(--gradient-primary);color:#0d0d0d;box-shadow:var(--shadow-glow)}.btn-primary:hover{box-shadow:var(--shadow-glow-strong);transform:translateY(-2px)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.input{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-primary);font-size:.9375rem;transition:all var(--transition-normal);outline:none}.input:focus{border-color:var(--accent-saffron);box-shadow:0 0 0 3px var(--accent-saffron-glow)}.input::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.02em}.badge-low{background:#1388081f;color:#138808;border:1px solid rgba(19,136,8,.25)}.badge-medium{background:#ff99331f;color:#f93;border:1px solid rgba(255,153,51,.25)}.badge-high{background:#ef44441f;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.badge-critical{background:#f43f5e1f;color:#f43f5e;border:1px solid rgba(244,63,94,.25);animation:glow 2s infinite}@media(max-width:768px){html{font-size:14px}}@media(max-width:480px){html{font-size:13px}}