jadio-code 0.0.1__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.
Files changed (108) hide show
  1. jadio_code/Backend/main/code_aigent/aigent_bottombox_core.py +0 -0
  2. jadio_code/Backend/main/code_aigent/aigent_chatwindow_core.py +0 -0
  3. jadio_code/Backend/main/code_aigent/aigent_core.py +0 -0
  4. jadio_code/Backend/main/code_aigent/aigent_sidebar_core.py +0 -0
  5. jadio_code/Backend/main/code_aigent/aigent_terminal_core.py +0 -0
  6. jadio_code/Backend/main/code_aigent/aigent_topbox_core.py +0 -0
  7. jadio_code/Backend/main/editor/editor_core.py +0 -0
  8. jadio_code/Backend/main/explorer/exploer_sidebar_core.py +0 -0
  9. jadio_code/Backend/main/explorer/explorer_core.py +0 -0
  10. jadio_code/Backend/main/terminal/terminal_core.py +0 -0
  11. jadio_code/Backend/sub/code_doctor/code_doctor_core.py +0 -0
  12. jadio_code/Backend/sub/help/help_core.py +0 -0
  13. jadio_code/Backend/sub/lan/lan_core.py +0 -0
  14. jadio_code/Backend/sub/llm/llm_core.py +0 -0
  15. jadio_code/Backend/sub/plugins/plugins_core.py +0 -0
  16. jadio_code/Backend/sub/settings/settings_core.py +0 -0
  17. jadio_code/UI/__init__.py +0 -0
  18. jadio_code/UI/icons/bell.svg +4 -0
  19. jadio_code/UI/icons/bolt.svg +3 -0
  20. jadio_code/UI/icons/check.svg +3 -0
  21. jadio_code/UI/icons/clipboard.svg +4 -0
  22. jadio_code/UI/icons/clock.svg +5 -0
  23. jadio_code/UI/icons/cloud.svg +3 -0
  24. jadio_code/UI/icons/down.svg +3 -0
  25. jadio_code/UI/icons/download.svg +5 -0
  26. jadio_code/UI/icons/explorer.svg +4 -0
  27. jadio_code/UI/icons/eye.svg +4 -0
  28. jadio_code/UI/icons/folder.svg +3 -0
  29. jadio_code/UI/icons/folder2.svg +4 -0
  30. jadio_code/UI/icons/glass.svg +4 -0
  31. jadio_code/UI/icons/globe.svg +5 -0
  32. jadio_code/UI/icons/grid.svg +5 -0
  33. jadio_code/UI/icons/idk.svg +4 -0
  34. jadio_code/UI/icons/info.svg +5 -0
  35. jadio_code/UI/icons/left.svg +3 -0
  36. jadio_code/UI/icons/lock.svg +5 -0
  37. jadio_code/UI/icons/lock2.svg +5 -0
  38. jadio_code/UI/icons/message.svg +4 -0
  39. jadio_code/UI/icons/net.svg +12 -0
  40. jadio_code/UI/icons/pencil.svg +4 -0
  41. jadio_code/UI/icons/play.svg +4 -0
  42. jadio_code/UI/icons/plus.svg +8 -0
  43. jadio_code/UI/icons/right.svg +3 -0
  44. jadio_code/UI/icons/robot.svg +6 -0
  45. jadio_code/UI/icons/split.svg +4 -0
  46. jadio_code/UI/icons/star.svg +3 -0
  47. jadio_code/UI/icons/stop.svg +4 -0
  48. jadio_code/UI/icons/tabs.svg +5 -0
  49. jadio_code/UI/icons/terminal.svg +5 -0
  50. jadio_code/UI/icons/up.svg +3 -0
  51. jadio_code/UI/icons/upload.svg +5 -0
  52. jadio_code/UI/icons/user.svg +4 -0
  53. jadio_code/UI/icons/warning.svg +5 -0
  54. jadio_code/UI/icons/x.svg +4 -0
  55. jadio_code/UI/main.py +101 -0
  56. jadio_code/UI/mainwindows/__init__.py +0 -0
  57. jadio_code/UI/mainwindows/code_aigent/__init__.py +0 -0
  58. jadio_code/UI/mainwindows/code_aigent/aigent_controller.py +114 -0
  59. jadio_code/UI/mainwindows/code_aigent/aigent_menu.py +91 -0
  60. jadio_code/UI/mainwindows/code_aigent/aigent_sidebar.py +59 -0
  61. jadio_code/UI/mainwindows/code_aigent/aigentvision.md +315 -0
  62. jadio_code/UI/mainwindows/code_aigent/bottombox/__init__.py +0 -0
  63. jadio_code/UI/mainwindows/code_aigent/bottombox/bottombox_chat.py +9 -0
  64. jadio_code/UI/mainwindows/code_aigent/bottombox/bottombox_context.py +9 -0
  65. jadio_code/UI/mainwindows/code_aigent/bottombox/bottombox_controller.py +176 -0
  66. jadio_code/UI/mainwindows/code_aigent/bottombox/bottombox_settings.py +9 -0
  67. jadio_code/UI/mainwindows/code_aigent/bottombox/bottombox_terminal.py +11 -0
  68. jadio_code/UI/mainwindows/code_aigent/chatwindow/__init__.py +0 -0
  69. jadio_code/UI/mainwindows/code_aigent/chatwindow/aigent_chat_controller.py +28 -0
  70. jadio_code/UI/mainwindows/code_aigent/chatwindow/aigent_summary.py +9 -0
  71. jadio_code/UI/mainwindows/code_aigent/topbox/__init__.py +0 -0
  72. jadio_code/UI/mainwindows/code_aigent/topbox/topbox_context.py +9 -0
  73. jadio_code/UI/mainwindows/code_aigent/topbox/topbox_controller.py +93 -0
  74. jadio_code/UI/mainwindows/code_aigent/topbox/topbox_lan.py +9 -0
  75. jadio_code/UI/mainwindows/code_aigent/topbox/topbox_modelsettings.py +9 -0
  76. jadio_code/UI/mainwindows/code_aigent/topbox/topbox_tools.py +9 -0
  77. jadio_code/UI/mainwindows/editor/__init__.py +0 -0
  78. jadio_code/UI/mainwindows/editor/editor_code.py +14 -0
  79. jadio_code/UI/mainwindows/editor/editor_controller.py +28 -0
  80. jadio_code/UI/mainwindows/editor/editor_tabs.py +17 -0
  81. jadio_code/UI/mainwindows/editor/editor_topmenu.py +30 -0
  82. jadio_code/UI/mainwindows/explorer/__init__.py +0 -0
  83. jadio_code/UI/mainwindows/explorer/explorer_controller.py +62 -0
  84. jadio_code/UI/mainwindows/explorer/explorer_menu.py +91 -0
  85. jadio_code/UI/mainwindows/explorer/explorer_sidebar.py +57 -0
  86. jadio_code/UI/mainwindows/terminal/__init__.py +0 -0
  87. jadio_code/UI/mainwindows/terminal/terminal_controller.py +73 -0
  88. jadio_code/UI/mainwindows/terminal/terminal_menu.py +31 -0
  89. jadio_code/UI/mainwindows/terminal/terminal_shells.py +18 -0
  90. jadio_code/UI/mainwindows/terminal/terminal_window.py +15 -0
  91. jadio_code/UI/menubar.py +100 -0
  92. jadio_code/UI/styles.py +304 -0
  93. jadio_code/UI/submodules/__init__.py +0 -0
  94. jadio_code/UI/submodules/help/__init__.py +0 -0
  95. jadio_code/UI/submodules/help/help_backend.py +0 -0
  96. jadio_code/UI/submodules/help/help_window.py +0 -0
  97. jadio_code/UI/submodules/llm/__init__.py +0 -0
  98. jadio_code/UI/submodules/llm/llm_backend.py +0 -0
  99. jadio_code/UI/submodules/llm/llm_window.py +0 -0
  100. jadio_code/UI/submodules/settings/__init__.py +0 -0
  101. jadio_code/UI/submodules/settings/settings_backend.py +0 -0
  102. jadio_code/UI/submodules/settings/settings_window.py +0 -0
  103. jadio_code/__init__.py +2 -0
  104. jadio_code-0.0.1.dist-info/METADATA +201 -0
  105. jadio_code-0.0.1.dist-info/RECORD +108 -0
  106. jadio_code-0.0.1.dist-info/WHEEL +4 -0
  107. jadio_code-0.0.1.dist-info/entry_points.txt +2 -0
  108. jadio_code-0.0.1.dist-info/licenses/license.md +0 -0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20 44h24l-4-8V28a12 12 0 10-24 0v8l-4 8z" fill="#333" stroke="#eee" stroke-width="2"></path>
3
+ <circle cx="32" cy="52" r="3" fill="#eee"></circle>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polygon points="28,8 12,36 28,36 20,56 52,24 36,24 44,8" fill="#333" stroke="#eee" stroke-width="2" stroke-linejoin="round"></polygon>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16 34l12 12 20-28" fill="none" stroke="#eee" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="16" y="16" width="32" height="40" rx="4" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <rect x="24" y="12" width="16" height="8" fill="#333" stroke="#eee" stroke-width="2"></rect>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="32" cy="32" r="16" stroke="#eee" stroke-width="3" fill="none"></circle>
3
+ <line x1="32" y1="32" x2="40" y2="24" stroke="#eee" stroke-width="3"></line>
4
+ <line x1="32" y1="32" x2="32" y2="20" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20 36h24a8 8 0 000-16 12 12 0 10-24 4H20a8 8 0 000 16z" fill="#333" stroke="#eee" stroke-width="2"></path>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polyline points="16,28 32,44 48,28" fill="none" stroke="#eee" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></polyline>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <line x1="32" y1="12" x2="32" y2="44" stroke="#eee" stroke-width="3"></line>
3
+ <polyline points="20,32 32,44 44,32" stroke="#eee" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"></polyline>
4
+ <line x1="16" y1="52" x2="48" y2="52" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <rect x="12" y="8" width="40" height="48" rx="4" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <path d="M20 16h24M20 24h24M20 32h24M20 40h16" stroke="#eee" stroke-width="2" stroke-linecap="round"></path>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <ellipse cx="32" cy="32" rx="20" ry="12" fill="#333" stroke="#eee" stroke-width="2"></ellipse>
3
+ <circle cx="32" cy="32" r="4" fill="#eee"></circle>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8 20h16l4 6h28v20H8V20z" fill="#333" stroke="#eee" stroke-width="2"></path>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M10 24h44v22a4 4 0 01-4 4H14a4 4 0 01-4-4V24z" stroke="#eee" stroke-width="3" fill="none"></path>
3
+ <path d="M10 24l10-8h12l6 8" stroke="#eee" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"></path>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <circle cx="28" cy="28" r="12" stroke="#eee" stroke-width="2" fill="#333"></circle>
3
+ <line x1="38" y1="38" x2="50" y2="50" stroke="#eee" stroke-width="2" stroke-linecap="round"></line>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="32" cy="32" r="20" stroke="#eee" stroke-width="3" fill="none"></circle>
3
+ <ellipse cx="32" cy="32" rx="12" ry="20" stroke="#eee" stroke-width="3" fill="none"></ellipse>
4
+ <line x1="12" y1="32" x2="52" y2="32" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="12" y="12" width="40" height="40" stroke="#eee" stroke-width="3" fill="none"></rect>
3
+ <line x1="32" y1="12" x2="32" y2="52" stroke="#eee" stroke-width="3"></line>
4
+ <line x1="12" y1="32" x2="52" y2="32" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <circle cx="32" cy="32" r="10" fill="#333" stroke="#eee" stroke-width="2"></circle>
3
+ <path d="M32 14v-6M32 56v-6M50 32h6M8 32h6M45.25 18.75l4.24-4.24M14.51 49.49l4.24-4.24M45.25 45.25l4.24 4.24M14.51 14.51l4.24 4.24" stroke="#eee" stroke-width="2" stroke-linecap="round"></path>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="32" cy="32" r="16" stroke="#eee" stroke-width="3" fill="none"></circle>
3
+ <circle cx="32" cy="24" r="2" fill="#eee"></circle>
4
+ <line x1="32" y1="30" x2="32" y2="44" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polyline points="36,16 20,32 36,48" fill="none" stroke="#eee" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></polyline>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="16" y="28" width="32" height="24" rx="4" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <path d="M24 28v-8a8 8 0 0116 0v8" stroke="#eee" stroke-width="2"></path>
4
+ <circle cx="32" cy="40" r="3" fill="#eee"></circle>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="20" y="28" width="24" height="20" rx="4" stroke="#eee" stroke-width="3" fill="none"></rect>
3
+ <path d="M24 28v-6a8 8 0 0116 0v6" stroke="#eee" stroke-width="3" fill="none" stroke-linecap="round"></path>
4
+ <circle cx="32" cy="38" r="2" fill="#eee"></circle>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <path d="M12 12h40v28H22l-10 10V12z" fill="#333" stroke="#eee" stroke-width="2"></path>
3
+ <path d="M20 22h24M20 30h16" stroke="#eee" stroke-width="2" stroke-linecap="round"></path>
4
+ </svg>
@@ -0,0 +1,12 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="16" cy="16" r="3" fill="#eee"></circle>
3
+ <circle cx="32" cy="16" r="3" fill="#eee"></circle>
4
+ <circle cx="48" cy="16" r="3" fill="#eee"></circle>
5
+ <circle cx="16" cy="32" r="3" fill="#eee"></circle>
6
+ <circle cx="32" cy="32" r="3" fill="#eee"></circle>
7
+ <circle cx="48" cy="32" r="3" fill="#eee"></circle>
8
+ <circle cx="16" cy="48" r="3" fill="#eee"></circle>
9
+ <circle cx="32" cy="48" r="3" fill="#eee"></circle>
10
+ <circle cx="48" cy="48" r="3" fill="#eee"></circle>
11
+ <path d="M16 16L48 48M48 16L16 48M16 32L48 32M32 16L32 48M16 16L48 16M16 48L48 48" stroke="#eee" stroke-width="2"></path>
12
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <path d="M45 19L23 41l-6 2 2-6 22-22 6 6z" fill="#333" stroke="#eee" stroke-width="2"></path>
3
+ <path d="M39 13l6 6" stroke="#eee" stroke-width="2" stroke-linecap="round"></path>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <circle cx="32" cy="32" r="28" stroke="#eee" stroke-width="2" fill="#333"></circle>
3
+ <polygon points="26,20 44,32 26,44" fill="#eee"></polygon>
4
+ </svg>
@@ -0,0 +1,8 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="32" cy="32" r="28" fill="#333" stroke="#eee" stroke-width="2"></circle>
3
+ <circle cx="32" cy="32" r="4" fill="#eee"></circle>
4
+ <line x1="32" y1="36" x2="32" y2="48" stroke="#eee" stroke-width="2"></line>
5
+ <line x1="32" y1="16" x2="32" y2="28" stroke="#eee" stroke-width="2"></line>
6
+ <line x1="36" y1="32" x2="48" y2="32" stroke="#eee" stroke-width="2"></line>
7
+ <line x1="16" y1="32" x2="28" y2="32" stroke="#eee" stroke-width="2"></line>
8
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polyline points="28,16 44,32 28,48" fill="none" stroke="#eee" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></polyline>
3
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="16" y="20" width="32" height="24" rx="4" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <circle cx="24" cy="32" r="3" fill="#eee"></circle>
4
+ <circle cx="40" cy="32" r="3" fill="#eee"></circle>
5
+ <line x1="32" y1="12" x2="32" y2="20" stroke="#eee" stroke-width="2"></line>
6
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="12" y="16" width="40" height="32" stroke="#eee" stroke-width="3" fill="none"></rect>
3
+ <line x1="32" y1="16" x2="32" y2="48" stroke="#eee" stroke-width="3"></line>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M32 12l6 14h16l-12 10 4 16-14-8-14 8 4-16-12-10h16z" stroke="#eee" stroke-width="3" fill="none"></path>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <rect x="12" y="12" width="40" height="40" rx="8" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <rect x="22" y="22" width="20" height="20" fill="#eee"></rect>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="10" y="20" width="44" height="24" rx="4" stroke="#eee" stroke-width="3" fill="none"></rect>
3
+ <line x1="22" y1="20" x2="22" y2="44" stroke="#eee" stroke-width="3"></line>
4
+ <line x1="36" y1="20" x2="36" y2="44" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" fill="none">
2
+ <rect x="8" y="12" width="48" height="40" rx="4" fill="#333" stroke="#eee" stroke-width="2"></rect>
3
+ <path d="M16 24l8 8-8 8" stroke="#eee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
4
+ <path d="M32 40h16" stroke="#eee" stroke-width="2" stroke-linecap="round"></path>
5
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polyline points="16,36 32,20 48,36" fill="none" stroke="#eee" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></polyline>
3
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <line x1="32" y1="52" x2="32" y2="20" stroke="#eee" stroke-width="3"></line>
3
+ <polyline points="20,32 32,20 44,32" stroke="#eee" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"></polyline>
4
+ <line x1="16" y1="12" x2="48" y2="12" stroke="#eee" stroke-width="3"></line>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="32" cy="24" r="8" fill="#333" stroke="#eee" stroke-width="2"></circle>
3
+ <path d="M20 44a12 12 0 0124 0v4H20v-4z" fill="#333" stroke="#eee" stroke-width="2"></path>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <polygon points="32,12 56,52 8,52" fill="#333" stroke="#eee" stroke-width="2" stroke-linejoin="round"></polygon>
3
+ <line x1="32" y1="24" x2="32" y2="36" stroke="#eee" stroke-width="2" stroke-linecap="round"></line>
4
+ <circle cx="32" cy="42" r="2" fill="#eee"></circle>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="150" height="150" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <line x1="16" y1="16" x2="48" y2="48" stroke="#eee" stroke-width="4" stroke-linecap="round"></line>
3
+ <line x1="48" y1="16" x2="16" y2="48" stroke="#eee" stroke-width="4" stroke-linecap="round"></line>
4
+ </svg>
jadio_code/UI/main.py ADDED
@@ -0,0 +1,101 @@
1
+ import sys
2
+ import os
3
+ from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QSplitter
4
+ from PyQt6.QtCore import Qt
5
+
6
+ # Add the current directory to Python path to fix imports
7
+ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
8
+
9
+ # IMPORT YOUR MODULES
10
+ from mainwindows.explorer.explorer_controller import ExplorerController
11
+ from mainwindows.editor.editor_controller import EditorController
12
+ from mainwindows.terminal.terminal_controller import TerminalController
13
+ from mainwindows.code_aigent.aigent_controller import AigentController
14
+ from menubar import MenuBar
15
+ from styles import Styles
16
+
17
+ class MainWindow(QMainWindow):
18
+ def __init__(self):
19
+ super().__init__()
20
+ self.setWindowTitle("JADIO CODE")
21
+ self.resize(1400, 900)
22
+ self.setMinimumSize(1200, 700)
23
+
24
+ # Apply centralized styles
25
+ self.setStyleSheet(Styles.get_complete_stylesheet())
26
+
27
+ # Set the menu bar
28
+ self.setMenuBar(MenuBar(self))
29
+
30
+ # Central widget
31
+ central_widget = QWidget()
32
+ self.setCentralWidget(central_widget)
33
+
34
+ # Main horizontal layout
35
+ main_layout = QHBoxLayout()
36
+ main_layout.setContentsMargins(0, 0, 0, 0)
37
+ main_layout.setSpacing(0)
38
+ central_widget.setLayout(main_layout)
39
+
40
+ # ================================================
41
+ # LEFT SIDE: Main Content Area
42
+ # ================================================
43
+ left_splitter = QSplitter(Qt.Orientation.Horizontal)
44
+
45
+ # 1. Explorer (narrow sidebar)
46
+ explorer = ExplorerController()
47
+ explorer.setMinimumWidth(200)
48
+ explorer.setMaximumWidth(400)
49
+ left_splitter.addWidget(explorer)
50
+
51
+ # 2. Editor + Terminal Area (main content)
52
+ editor_terminal_splitter = QSplitter(Qt.Orientation.Vertical)
53
+
54
+ # Editor (STRETCHES VERTICALLY)
55
+ editor = EditorController()
56
+ editor_terminal_splitter.addWidget(editor)
57
+
58
+ # Terminal (fixed height)
59
+ terminal = TerminalController()
60
+ terminal.setMinimumHeight(150)
61
+ terminal.setMaximumHeight(300)
62
+ editor_terminal_splitter.addWidget(terminal)
63
+
64
+ # Set proportions: Editor gets most space, Terminal fixed
65
+ editor_terminal_splitter.setSizes([700, 200])
66
+ editor_terminal_splitter.setStretchFactor(0, 1) # Editor stretches
67
+ editor_terminal_splitter.setStretchFactor(1, 0) # Terminal fixed
68
+
69
+ left_splitter.addWidget(editor_terminal_splitter)
70
+
71
+ # Set Explorer vs Editor+Terminal proportions
72
+ left_splitter.setSizes([250, 900])
73
+ left_splitter.setStretchFactor(0, 0) # Explorer fixed
74
+ left_splitter.setStretchFactor(1, 1) # Editor area stretches
75
+
76
+ # ================================================
77
+ # RIGHT SIDE: AIGent Panel (STRETCHES)
78
+ # ================================================
79
+ aigent_splitter = QSplitter(Qt.Orientation.Horizontal)
80
+
81
+ # AIGent Panel (can stretch)
82
+ agent_panel = AigentController()
83
+ agent_panel.setMinimumWidth(300)
84
+
85
+ # Add both to the horizontal splitter
86
+ aigent_splitter.addWidget(left_splitter)
87
+ aigent_splitter.addWidget(agent_panel)
88
+
89
+ # Set proportions: Main content 70%, AIGent 30%
90
+ aigent_splitter.setSizes([1000, 400])
91
+ aigent_splitter.setStretchFactor(0, 1) # Main content stretches
92
+ aigent_splitter.setStretchFactor(1, 1) # AIGent ALSO stretches
93
+
94
+ # Add to main layout
95
+ main_layout.addWidget(aigent_splitter)
96
+
97
+ if __name__ == "__main__":
98
+ app = QApplication(sys.argv)
99
+ window = MainWindow()
100
+ window.show()
101
+ sys.exit(app.exec())
File without changes
File without changes
@@ -0,0 +1,114 @@
1
+ from PyQt6.QtWidgets import QWidget, QHBoxLayout, QVBoxLayout, QTextEdit
2
+ from .aigent_menu import AigentMenu
3
+ from .topbox.topbox_controller import TopBox
4
+ from .chatwindow.aigent_chat_controller import ChatWindow
5
+ from .bottombox.bottombox_controller import BottomBox
6
+ from .aigent_sidebar import AigentSidebar
7
+
8
+
9
+ class AigentController(QWidget):
10
+ """
11
+ VS Code style AIGent panel - with flexible chat and expandable terminal
12
+ """
13
+
14
+ def __init__(self, parent=None):
15
+ super().__init__(parent)
16
+
17
+ # Set background color to distinguish the panel
18
+ self.setStyleSheet("""
19
+ AigentController {
20
+ background-color: #1e1e1e;
21
+ border-left: 1px solid #333;
22
+ }
23
+ """)
24
+
25
+ # Track terminal state
26
+ self.terminal_expanded = False
27
+
28
+ # Main horizontal layout: Content + Sidebar
29
+ main_layout = QHBoxLayout()
30
+ main_layout.setContentsMargins(0, 0, 0, 0)
31
+ main_layout.setSpacing(0)
32
+
33
+ # =============================================
34
+ # LEFT: Main AIGent Content Area
35
+ # =============================================
36
+ content_widget = QWidget()
37
+ self.content_layout = QVBoxLayout()
38
+ self.content_layout.setContentsMargins(0, 0, 0, 0)
39
+ self.content_layout.setSpacing(0)
40
+
41
+ # 1. AIGent Menu (top bar) - Fixed height
42
+ self.menu = AigentMenu()
43
+ self.menu.setFixedHeight(40)
44
+ self.content_layout.addWidget(self.menu)
45
+
46
+ # 2. TopBox (compact) - Fixed height
47
+ self.topbox = TopBox()
48
+ self.topbox.setFixedHeight(120)
49
+ self.content_layout.addWidget(self.topbox)
50
+
51
+ # 3. ChatWindow (FLEXIBLE) - Gets remaining space
52
+ self.chatwindow = ChatWindow()
53
+ self.content_layout.addWidget(self.chatwindow, stretch=1) # FLEXIBLE!
54
+
55
+ # 4. Expandable Terminal (hidden by default)
56
+ self.expanded_terminal = QTextEdit()
57
+ self.expanded_terminal.setStyleSheet("""
58
+ QTextEdit {
59
+ background-color: #1e1e1e;
60
+ color: #cccccc;
61
+ border: 1px solid #3e3e42;
62
+ border-radius: 4px;
63
+ font-family: 'Consolas', monospace;
64
+ font-size: 12px;
65
+ padding: 8px;
66
+ }
67
+ """)
68
+ self.expanded_terminal.setPlaceholderText("Expanded AIGent Terminal...")
69
+ self.expanded_terminal.hide() # Hidden by default
70
+ self.content_layout.addWidget(self.expanded_terminal)
71
+
72
+ # 5. BottomBox (FIXED height) - Input area
73
+ self.bottombox = BottomBox()
74
+ self.bottombox.setFixedHeight(200) # Fixed height
75
+ self.content_layout.addWidget(self.bottombox)
76
+
77
+ content_widget.setLayout(self.content_layout)
78
+
79
+ # =============================================
80
+ # RIGHT: AIGent Sidebar
81
+ # =============================================
82
+ self.sidebar = AigentSidebar()
83
+ self.sidebar.setFixedWidth(48)
84
+
85
+ # Add both to main layout
86
+ main_layout.addWidget(content_widget, stretch=1)
87
+ main_layout.addWidget(self.sidebar)
88
+
89
+ self.setLayout(main_layout)
90
+
91
+ # Connect expand terminal button
92
+ self.connect_expand_button()
93
+
94
+ def connect_expand_button(self):
95
+ """Connect the expand terminal button from BottomBox"""
96
+ # We'll connect this after BottomBox is created
97
+ if hasattr(self.bottombox, 'expand_button'):
98
+ self.bottombox.expand_button.clicked.disconnect() # Remove old connection
99
+ self.bottombox.expand_button.clicked.connect(self.toggle_terminal)
100
+
101
+ def toggle_terminal(self):
102
+ """Toggle the expanded terminal"""
103
+ if self.terminal_expanded:
104
+ # Close terminal
105
+ self.expanded_terminal.hide()
106
+ self.expanded_terminal.setFixedHeight(0)
107
+ self.bottombox.expand_button.setText("↗\nExpand\nTerminal")
108
+ self.terminal_expanded = False
109
+ else:
110
+ # Open terminal
111
+ self.expanded_terminal.show()
112
+ self.expanded_terminal.setFixedHeight(250) # 250px as requested
113
+ self.bottombox.expand_button.setText("↙\nClose\nTerminal")
114
+ self.terminal_expanded = True
@@ -0,0 +1,91 @@
1
+ from PyQt6.QtWidgets import QWidget, QHBoxLayout, QPushButton
2
+ from PyQt6.QtCore import Qt
3
+ from styles import Styles
4
+
5
+ class AigentMenu(QWidget):
6
+ """
7
+ Collapsible AIGent menu - starts collapsed, expands to show all buttons
8
+ """
9
+
10
+ def __init__(self, parent=None):
11
+ super().__init__(parent)
12
+
13
+ # Set fixed height and apply centralized styles
14
+ self.setFixedHeight(40)
15
+ self.setStyleSheet(Styles.get_menu_bar_style())
16
+
17
+ # Initially collapsed state
18
+ self.expanded = False
19
+ layout = QHBoxLayout()
20
+ layout.setContentsMargins(4, 4, 4, 4)
21
+ layout.setSpacing(2)
22
+ self.create_collapsed_layout(layout)
23
+ self.setLayout(layout)
24
+
25
+ def create_collapsed_layout(self, layout):
26
+ """Create the collapsed state with just the main toggle button"""
27
+ self.clear_layout(layout)
28
+
29
+ # Main toggle button
30
+ self.toggle_button = QPushButton("🤖 ▼")
31
+ self.toggle_button.clicked.connect(self.toggle_menu)
32
+ layout.addWidget(self.toggle_button)
33
+ layout.addStretch()
34
+
35
+ def create_expanded_layout(self, layout):
36
+ """Create the expanded state with all AIGent buttons"""
37
+ self.clear_layout(layout)
38
+
39
+ # Toggle button (now shows up arrow)
40
+ self.toggle_button = QPushButton("🤖 ▲")
41
+ self.toggle_button.clicked.connect(self.toggle_menu)
42
+ layout.addWidget(self.toggle_button)
43
+
44
+ # All the AIGent action buttons
45
+ buttons_config = [
46
+ ("🔄", self.handle_refresh),
47
+ ("💬", self.handle_new_chat),
48
+ ("📚", self.handle_old_chats),
49
+ ("⚙️", self.handle_settings),
50
+ ("❓", self.handle_help)
51
+ ]
52
+
53
+ for label, handler in buttons_config:
54
+ btn = QPushButton(label)
55
+ btn.clicked.connect(handler)
56
+ layout.addWidget(btn)
57
+
58
+ layout.addStretch()
59
+
60
+ def toggle_menu(self):
61
+ """Toggle between collapsed and expanded states"""
62
+ self.expanded = not self.expanded
63
+ layout = self.layout()
64
+
65
+ if self.expanded:
66
+ self.create_expanded_layout(layout)
67
+ else:
68
+ self.create_collapsed_layout(layout)
69
+
70
+ def clear_layout(self, layout):
71
+ """Clear all widgets from layout"""
72
+ while layout.count():
73
+ child = layout.takeAt(0)
74
+ if child.widget():
75
+ child.widget().deleteLater()
76
+
77
+ # Button handlers
78
+ def handle_refresh(self):
79
+ print("Refresh button clicked.")
80
+
81
+ def handle_new_chat(self):
82
+ print("New Chat button clicked.")
83
+
84
+ def handle_old_chats(self):
85
+ print("Old Chats button clicked.")
86
+
87
+ def handle_settings(self):
88
+ print("Settings button clicked.")
89
+
90
+ def handle_help(self):
91
+ print("Help button clicked.")