friday-neural-os 0.1.1__py3-none-any.whl → 0.1.4__py3-none-any.whl

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.
friday/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__ = "0.1.1"
1
+ __version__ = "0.1.4"
2
2
 
3
- from .agent import main
3
+ from .agent import run
Binary file
friday/agent.py CHANGED
@@ -331,18 +331,53 @@ IMPORTANT INSTRUCTIONS:
331
331
  # ==============================
332
332
  # RUN
333
333
  # ==============================
334
- def main():
335
- print("Friday online.")
336
- # existing logic here
334
+ # ==============================
335
+ # RUN
336
+ # ==============================
337
+ def run():
338
+ import os
339
+ import sys
340
+ from .config import validate_env
341
+
342
+ # 1. Check if .env exists, if not run setup
343
+ if not os.path.exists(".env"):
344
+ from .installer import setup as installer_setup
345
+ installer_setup()
346
+
347
+ # 2. Validate environment
348
+ try:
349
+ validate_env()
350
+ except RuntimeError as e:
351
+ print(f"⚠️ Configuration Error: {e}")
352
+ return
337
353
 
338
- if __name__ == "__main__":
354
+ # 3. Access Code Check
355
+ print("\n" + "="*30)
356
+ print(" FRIDAY NEURAL OS")
357
+ print("="*30 + "\n")
358
+
339
359
  while True:
340
- pwd = input("🔒 ENTER ACCESS CODE: ")
341
- if pwd.strip() == "JARVIS":
342
- print("✅ ACCESS GRANTED")
343
- break
344
- print("❌ ACCESS DENIED")
345
-
360
+ try:
361
+ pwd = input("🔒 ENTER ACCESS CODE: ").strip()
362
+ if pwd == "JARVIS":
363
+ print("✅ ACCESS GRANTED. Welcome back, Sir.")
364
+ break
365
+ print("❌ ACCESS DENIED.")
366
+ except KeyboardInterrupt:
367
+ print("\nShutting down...")
368
+ return
369
+
370
+ # 4. Start LiveKit Worker
371
+ # We need to ensure sys.argv has a command if called manually without args
372
+ if len(sys.argv) <= 1:
373
+ sys.argv.append("dev") # Default to dev mode for easier local running
374
+
346
375
  agents.cli.run_app(
347
376
  agents.WorkerOptions(entrypoint_fnc=entrypoint)
348
377
  )
378
+
379
+ def main():
380
+ run()
381
+
382
+ if __name__ == "__main__":
383
+ main()
friday/cli.py CHANGED
@@ -3,11 +3,12 @@ import sys
3
3
  def main():
4
4
  if len(sys.argv) > 1 and sys.argv[1] == "config":
5
5
  if len(sys.argv) > 2 and sys.argv[2] == "setup":
6
- from friday.installer import setup
6
+ from .installer import setup
7
7
  setup()
8
8
  return
9
9
 
10
- from friday.config import validate_env
11
- from friday.agent import main as agent_main
10
+ from .agent import run
11
+ run()
12
12
 
13
- agent_main()
13
+ if __name__ == "__main__":
14
+ main()
friday/config.py CHANGED
@@ -4,6 +4,7 @@ from dotenv import load_dotenv
4
4
  load_dotenv()
5
5
 
6
6
  REQUIRED = [
7
+ "GOOGLE_API_KEY",
7
8
  "LIVEKIT_API_KEY",
8
9
  "LIVEKIT_API_SECRET",
9
10
  "LIVEKIT_URL",
@@ -17,7 +18,7 @@ def validate_env():
17
18
  missing = [k for k in REQUIRED if not os.getenv(k)]
18
19
  if missing:
19
20
  raise RuntimeError(
20
- "Friday is not configured.\n"
21
+ "Friday is not fully configured.\n"
21
22
  "Run: friday config setup\n\nMissing:\n"
22
23
  + "\n".join(missing)
23
24
  )
friday/installer.py CHANGED
@@ -1,30 +1,48 @@
1
1
  import os
2
2
 
3
- ENV_VARS = [
4
- "LIVEKIT_API_KEY",
5
- "LIVEKIT_API_SECRET",
6
- "LIVEKIT_URL",
7
- "GMAIL_USER",
8
- "GMAIL_APP_PASSWORD",
9
- "MEM0_API_KEY",
10
- "GITHUB_TOKEN",
11
- ]
3
+ ENV_VARS = {
4
+ "GOOGLE_API_KEY": "Google AI (Gemini) API Key",
5
+ "LIVEKIT_URL": "LiveKit Cloud/Server URL",
6
+ "LIVEKIT_API_KEY": "LiveKit API Key",
7
+ "LIVEKIT_API_SECRET": "LiveKit API Secret",
8
+ "GMAIL_USER": "Gmail Address",
9
+ "GMAIL_APP_PASSWORD": "Gmail App Password",
10
+ "MEM0_API_KEY": "Mem0 AI API Key",
11
+ "GITHUB_TOKEN": "GitHub Token",
12
+ }
12
13
 
13
14
  def setup():
14
15
  env_path = os.path.join(os.getcwd(), ".env")
15
16
 
16
- if os.path.exists(env_path):
17
- print(" .env already exists")
18
- return
17
+ print("\n" + "═"*60)
18
+ print(" 🛠️ FRIDAY NEURAL OS - API CONFIGURATION")
19
+ print("═"*60)
20
+ print("Please provide the following credentials. Press Enter to skip/keep current.\n")
19
21
 
20
- print("🔐 Friday first-time setup\n")
22
+ # Load existing values if any
23
+ existing = {}
24
+ if os.path.exists(env_path):
25
+ try:
26
+ with open(env_path, "r") as f:
27
+ for line in f:
28
+ if "=" in line:
29
+ k, v = line.strip().split("=", 1)
30
+ existing[k] = v
31
+ except:
32
+ pass
21
33
 
22
34
  lines = []
23
- for var in ENV_VARS:
24
- value = input(f"{var}: ").strip()
25
- lines.append(f"{var}={value}")
35
+ for var, description in ENV_VARS.items():
36
+ current = existing.get(var, "")
37
+ display_val = f" [{current[:5]}...{current[-5:]}]" if current else ""
38
+
39
+ value = input(f" ➤ {description}{display_val}: ").strip()
40
+
41
+ final_value = value if value else current
42
+ lines.append(f"{var}={final_value}")
26
43
 
27
44
  with open(env_path, "w") as f:
28
45
  f.write("\n".join(lines))
29
46
 
30
- print("\n✅ Setup complete")
47
+ print("\n✅ Configuration updated successfully!")
48
+ print("═"*60 + "\n")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: friday_neural_os
3
- Version: 0.1.1
3
+ Version: 0.1.4
4
4
  Summary: A real-time AI assistant with tools, memory, and voice
5
5
  Author: Shivansh Pancholi
6
6
  Author-email: shivamogh.123@gmail.com
@@ -23,8 +23,6 @@ Requires-Dist: duckduckgo-search
23
23
  Requires-Dist: langchain_community
24
24
  Requires-Dist: google-genai
25
25
  Requires-Dist: pyautogui
26
- Requires-Dist: scapy
27
- Requires-Dist: impacket
28
26
  Requires-Dist: truecallerpy
29
27
  Requires-Dist: phonenumbers
30
28
  Requires-Dist: opencage
@@ -33,6 +31,10 @@ Requires-Dist: pywebostv
33
31
  Requires-Dist: pywin32; platform_system == "Windows"
34
32
  Requires-Dist: win10toast; platform_system == "Windows"
35
33
  Requires-Dist: screen-brightness-control; platform_system == "Windows"
34
+ Provides-Extra: hacking
35
+ Requires-Dist: scapy; extra == "hacking"
36
+ Requires-Dist: impacket; extra == "hacking"
37
+ Dynamic: provides-extra
36
38
  Dynamic: requires-dist
37
39
 
38
40
  # 🌐 PROJECT FRIDAY: Strategic Intelligence & Autonomous Control System
@@ -0,0 +1,42 @@
1
+ friday/__init__.py,sha256=71lPpThlLShF2kIRs8J98nmaKsNaLTMPb7HUCAfXdT8,49
2
+ friday/agent.py,sha256=m8dX9mGq8CLHzjsVv9jKuXaEzgxXAuYOMKSHM5S6ci0,13920
3
+ friday/cli.py,sha256=ozSxyJLK5dvll6eJcCutcU7HfJ2-J39woMS3w8a0Pgo,306
4
+ friday/config.py,sha256=nowziZmMQD4uPzq0zeMKo3xwfcO5VRyJn-qfwHHiwO8,535
5
+ friday/installer.py,sha256=X4UevWkJiDduNH2dciet1CG9CdVXjV2oEzSVpwRUkVM,1542
6
+ friday/prompts.py,sha256=yBNvTA3gDNApWmb9yRg_pZLCyUSfK5l052B-rHUEiVs,11652
7
+ friday/__pycache__/__init__.cpython-312.pyc,sha256=UP71FEg4WmEgu3BgY_mzv9lJMGa3AWfxH842Ks6MUJA,190
8
+ friday/__pycache__/agent.cpython-312.pyc,sha256=Lsaii0hfKcwmgHIXo7MoHz6wo1sI8pjPH2QW2MDz1wQ,17607
9
+ friday/__pycache__/config.cpython-312.pyc,sha256=5NHysfVjFAooXjej5SIr-K2ar56d38WLRbyzwz9DIgw,796
10
+ friday/__pycache__/prompts.cpython-312.pyc,sha256=Uks0kv2qh_l4sHIRVTYVxo0ur0hW4ROKqtQ9YsuRvLs,11786
11
+ friday/tools/__init__.py,sha256=La1OuvWBrfqpRS8OdmCFpDns4foQURf8Q_J-l-LCHJA,194
12
+ friday/tools/communication.py,sha256=XcuzP-yktltVA-LdD_RldPe-UkhRPumHhgByGkDyrto,4043
13
+ friday/tools/core.py,sha256=x7degTvO3-6wiQtXTtOf-TL1AV6plXffxlFV3RFSr6Y,8859
14
+ friday/tools/files.py,sha256=rhbbBmpWYFrzG7fZZsSzP4uMWdMdiVM1jFY91QQKmAY,2530
15
+ friday/tools/media.py,sha256=AGUYeMjr92fAOOREwlsp_qPACAudjEPrrGU7hfkzIVc,3483
16
+ friday/tools/network.py,sha256=fnq2n46tJbSCo4ym-UmVAFirks9mE20XoXZC7Q6LxmA,9806
17
+ friday/tools/productivity.py,sha256=n8x8Yl1uUvUmlK1rMG1BOqRsiS94SZSBrPwWuT9Jpp8,3981
18
+ friday/tools/security.py,sha256=Tv19VJD1GAW8Vw1GKnAkd3x54XvC3dD7sCpVaZYGYCw,3473
19
+ friday/tools/ui.py,sha256=G8eLIKgZeJqCfQd8dSlNfmAOwiNwHvwp07AC_2Jo_e8,8249
20
+ friday/tools/__pycache__/__init__.cpython-312.pyc,sha256=Azej-wCzY9pBOkMwKW20AjVG6Llw6AlHVGdIgz75oP0,307
21
+ friday/tools/__pycache__/communication.cpython-312.pyc,sha256=47lXcRl9-w5npWqgFMISa72vHAP4wseCK4tfs-O8LsI,6793
22
+ friday/tools/__pycache__/core.cpython-312.pyc,sha256=laO00AdmrYZZ9ekLrYZrMGNfyh0ZWz-I0CnoVaJOeGM,15658
23
+ friday/tools/__pycache__/files.cpython-312.pyc,sha256=u_7q6vdUhTIkyuIRZ9TdPbpg3Nr2qJcC4Ti2L4fP8d4,4822
24
+ friday/tools/__pycache__/media.cpython-312.pyc,sha256=Y7M7EEzfHNZ4UQovgFCohAfZy0hzsxbV7z92ER-5Y78,5633
25
+ friday/tools/__pycache__/network.cpython-312.pyc,sha256=G1syr6A058LNXEXCPkzffs6lob3pXXEBnbTA1X7loos,17533
26
+ friday/tools/__pycache__/productivity.cpython-312.pyc,sha256=oaLxrUX5aQm_HA2q6QvU0mTt_aMKhdYAxaX-VqJBp4w,6061
27
+ friday/tools/__pycache__/security.cpython-312.pyc,sha256=oo6tfasVy4Z6D1Bbli5ygjFNwxO31rsqJIwlFzOQlcg,5792
28
+ friday/tools/__pycache__/ui.cpython-312.pyc,sha256=s3WNEhTWHvOsCmWNPeq4Jn5sEsI34dgWwuqoLwjifEM,14402
29
+ tools/__init__.py,sha256=La1OuvWBrfqpRS8OdmCFpDns4foQURf8Q_J-l-LCHJA,194
30
+ tools/communication.py,sha256=XcuzP-yktltVA-LdD_RldPe-UkhRPumHhgByGkDyrto,4043
31
+ tools/core.py,sha256=x7degTvO3-6wiQtXTtOf-TL1AV6plXffxlFV3RFSr6Y,8859
32
+ tools/files.py,sha256=rhbbBmpWYFrzG7fZZsSzP4uMWdMdiVM1jFY91QQKmAY,2530
33
+ tools/media.py,sha256=AGUYeMjr92fAOOREwlsp_qPACAudjEPrrGU7hfkzIVc,3483
34
+ tools/network.py,sha256=fnq2n46tJbSCo4ym-UmVAFirks9mE20XoXZC7Q6LxmA,9806
35
+ tools/productivity.py,sha256=nvL0OwGEhRwotVbTZY_UY2MqO8-6586bVsJ6wiQWk6A,2858
36
+ tools/security.py,sha256=Tv19VJD1GAW8Vw1GKnAkd3x54XvC3dD7sCpVaZYGYCw,3473
37
+ tools/ui.py,sha256=G8eLIKgZeJqCfQd8dSlNfmAOwiNwHvwp07AC_2Jo_e8,8249
38
+ friday_neural_os-0.1.4.dist-info/METADATA,sha256=va3fBXmGZYBq1oP9D4J-pPUa673odtjCuIoY0e-tpDA,3765
39
+ friday_neural_os-0.1.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
40
+ friday_neural_os-0.1.4.dist-info/entry_points.txt,sha256=-9Sy1QyS0eeVNDJHwqiUhzTW2TQqtSqTXh5_ACYrSZo,101
41
+ friday_neural_os-0.1.4.dist-info/top_level.txt,sha256=EcQEgoHTwgsZ4Evmd6Sqk0pHivub7Fpn-RQ5JNVRDQQ,7
42
+ friday_neural_os-0.1.4.dist-info/RECORD,,
@@ -1,29 +0,0 @@
1
- friday/__init__.py,sha256=xdTWBiJ9gpS3tDPBOFRahMmtYPZnQ-y4n-hSg_UztIc,50
2
- friday/agent.py,sha256=0k3z9ZDRIHueK6JCsCEP6X6nt4CvjzOtlKQxbOHgmpk,12982
3
- friday/cli.py,sha256=gGN1MyLfR806SRj0I-hIijaMAw2_xq6DNIHo9idFeQw,344
4
- friday/config.py,sha256=TVz932Wt7fYJ_RSIsxiA-Awm_ptguonHlswbWM3hPcs,506
5
- friday/installer.py,sha256=pkM-Ru-1VfAJe6R87BcF8EttHpfaL0X2kNzr8Abx8qo,633
6
- friday/prompts.py,sha256=yBNvTA3gDNApWmb9yRg_pZLCyUSfK5l052B-rHUEiVs,11652
7
- friday/tools/__init__.py,sha256=La1OuvWBrfqpRS8OdmCFpDns4foQURf8Q_J-l-LCHJA,194
8
- friday/tools/communication.py,sha256=XcuzP-yktltVA-LdD_RldPe-UkhRPumHhgByGkDyrto,4043
9
- friday/tools/core.py,sha256=x7degTvO3-6wiQtXTtOf-TL1AV6plXffxlFV3RFSr6Y,8859
10
- friday/tools/files.py,sha256=rhbbBmpWYFrzG7fZZsSzP4uMWdMdiVM1jFY91QQKmAY,2530
11
- friday/tools/media.py,sha256=AGUYeMjr92fAOOREwlsp_qPACAudjEPrrGU7hfkzIVc,3483
12
- friday/tools/network.py,sha256=fnq2n46tJbSCo4ym-UmVAFirks9mE20XoXZC7Q6LxmA,9806
13
- friday/tools/productivity.py,sha256=n8x8Yl1uUvUmlK1rMG1BOqRsiS94SZSBrPwWuT9Jpp8,3981
14
- friday/tools/security.py,sha256=Tv19VJD1GAW8Vw1GKnAkd3x54XvC3dD7sCpVaZYGYCw,3473
15
- friday/tools/ui.py,sha256=G8eLIKgZeJqCfQd8dSlNfmAOwiNwHvwp07AC_2Jo_e8,8249
16
- tools/__init__.py,sha256=La1OuvWBrfqpRS8OdmCFpDns4foQURf8Q_J-l-LCHJA,194
17
- tools/communication.py,sha256=XcuzP-yktltVA-LdD_RldPe-UkhRPumHhgByGkDyrto,4043
18
- tools/core.py,sha256=x7degTvO3-6wiQtXTtOf-TL1AV6plXffxlFV3RFSr6Y,8859
19
- tools/files.py,sha256=rhbbBmpWYFrzG7fZZsSzP4uMWdMdiVM1jFY91QQKmAY,2530
20
- tools/media.py,sha256=AGUYeMjr92fAOOREwlsp_qPACAudjEPrrGU7hfkzIVc,3483
21
- tools/network.py,sha256=fnq2n46tJbSCo4ym-UmVAFirks9mE20XoXZC7Q6LxmA,9806
22
- tools/productivity.py,sha256=nvL0OwGEhRwotVbTZY_UY2MqO8-6586bVsJ6wiQWk6A,2858
23
- tools/security.py,sha256=Tv19VJD1GAW8Vw1GKnAkd3x54XvC3dD7sCpVaZYGYCw,3473
24
- tools/ui.py,sha256=G8eLIKgZeJqCfQd8dSlNfmAOwiNwHvwp07AC_2Jo_e8,8249
25
- friday_neural_os-0.1.1.dist-info/METADATA,sha256=nJfD8EpXAobFvN-0PBzSUKkS3yUAleXra9Px_6fyPs8,3675
26
- friday_neural_os-0.1.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
27
- friday_neural_os-0.1.1.dist-info/entry_points.txt,sha256=-9Sy1QyS0eeVNDJHwqiUhzTW2TQqtSqTXh5_ACYrSZo,101
28
- friday_neural_os-0.1.1.dist-info/top_level.txt,sha256=EcQEgoHTwgsZ4Evmd6Sqk0pHivub7Fpn-RQ5JNVRDQQ,7
29
- friday_neural_os-0.1.1.dist-info/RECORD,,