django-agent-studio 0.3.2__py3-none-any.whl → 0.3.3__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.
- django_agent_studio/static/agent-frontend/chat-widget.css +6 -1
- django_agent_studio/templates/django_agent_studio/base.html +12 -0
- django_agent_studio/templates/django_agent_studio/system_test.html +12 -4
- django_agent_studio/templates/django_agent_studio/test.html +11 -3
- django_agent_studio/urls.py +1 -0
- django_agent_studio/views.py +11 -0
- {django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/METADATA +2 -1
- {django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/RECORD +11 -11
- {django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/WHEEL +0 -0
- {django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/licenses/LICENSE +0 -0
- {django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/top_level.txt +0 -0
|
@@ -976,17 +976,22 @@
|
|
|
976
976
|
max-height: none !important;
|
|
977
977
|
border-radius: 0;
|
|
978
978
|
box-shadow: none;
|
|
979
|
+
display: flex;
|
|
980
|
+
flex-direction: column;
|
|
981
|
+
overflow: hidden;
|
|
979
982
|
}
|
|
980
983
|
|
|
981
984
|
/* Embedded widget header can have rounded corners if desired */
|
|
982
985
|
.cw-widget-embedded .cw-header {
|
|
983
986
|
border-radius: 0;
|
|
987
|
+
flex-shrink: 0;
|
|
984
988
|
}
|
|
985
989
|
|
|
986
|
-
/* Ensure messages area fills available space */
|
|
990
|
+
/* Ensure messages area fills available space and scrolls */
|
|
987
991
|
.cw-widget-embedded .cw-messages {
|
|
988
992
|
flex: 1;
|
|
989
993
|
min-height: 0;
|
|
994
|
+
overflow-y: auto;
|
|
990
995
|
}
|
|
991
996
|
|
|
992
997
|
/* ============================================================================
|
|
@@ -100,6 +100,14 @@
|
|
|
100
100
|
height: 100% !important;
|
|
101
101
|
max-height: none !important;
|
|
102
102
|
border-radius: 0.5rem !important;
|
|
103
|
+
display: flex !important;
|
|
104
|
+
flex-direction: column !important;
|
|
105
|
+
overflow: hidden !important;
|
|
106
|
+
}
|
|
107
|
+
.embedded-chat .cw-messages {
|
|
108
|
+
flex: 1 !important;
|
|
109
|
+
min-height: 0 !important;
|
|
110
|
+
overflow-y: auto !important;
|
|
103
111
|
}
|
|
104
112
|
</style>
|
|
105
113
|
|
|
@@ -119,6 +127,10 @@
|
|
|
119
127
|
<div class="flex items-center space-x-4">
|
|
120
128
|
{% if request.user.is_authenticated %}
|
|
121
129
|
<span class="text-sm text-gray-600">{{ request.user.email|default:request.user }}</span>
|
|
130
|
+
<form method="post" action="{% url 'agent_studio:logout' %}" class="inline">
|
|
131
|
+
{% csrf_token %}
|
|
132
|
+
<button type="submit" class="text-sm text-gray-500 hover:text-gray-700">Logout</button>
|
|
133
|
+
</form>
|
|
122
134
|
{% endif %}
|
|
123
135
|
</div>
|
|
124
136
|
</header>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
display: flex;
|
|
20
20
|
justify-content: center;
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
#fullscreen-chat-container .cw-container {
|
|
24
24
|
position: relative !important;
|
|
25
25
|
width: 100% !important;
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
border-radius: 0 !important;
|
|
29
29
|
box-shadow: 0 0 20px rgba(0,0,0,0.1) !important;
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
#fullscreen-chat-container .cw-toggle-btn {
|
|
33
33
|
display: none !important;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
#fullscreen-chat-container .cw-widget {
|
|
37
37
|
position: relative !important;
|
|
38
38
|
width: 100% !important;
|
|
@@ -40,6 +40,14 @@
|
|
|
40
40
|
max-height: none !important;
|
|
41
41
|
border-radius: 0 !important;
|
|
42
42
|
display: flex !important;
|
|
43
|
+
flex-direction: column !important;
|
|
44
|
+
overflow: hidden !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
#fullscreen-chat-container .cw-messages {
|
|
48
|
+
flex: 1 !important;
|
|
49
|
+
min-height: 0 !important;
|
|
50
|
+
overflow-y: auto !important;
|
|
43
51
|
}
|
|
44
52
|
</style>
|
|
45
53
|
{% endblock %}
|
|
@@ -77,7 +85,7 @@
|
|
|
77
85
|
</div>
|
|
78
86
|
|
|
79
87
|
<!-- Full Screen Chat -->
|
|
80
|
-
<div class="flex-1 relative bg-gray-100 flex justify-center">
|
|
88
|
+
<div class="flex-1 min-h-0 relative bg-gray-100 flex justify-center">
|
|
81
89
|
<div id="fullscreen-chat-container" class="relative w-full max-w-[800px] h-full"></div>
|
|
82
90
|
</div>
|
|
83
91
|
</div>
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
border-radius: 0 !important;
|
|
28
28
|
box-shadow: none !important;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
#fullscreen-chat-container .cw-toggle-btn {
|
|
32
32
|
display: none !important;
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
#fullscreen-chat-container .cw-widget {
|
|
36
36
|
position: absolute !important;
|
|
37
37
|
top: 0;
|
|
@@ -43,6 +43,14 @@
|
|
|
43
43
|
max-height: none !important;
|
|
44
44
|
border-radius: 0 !important;
|
|
45
45
|
display: flex !important;
|
|
46
|
+
flex-direction: column !important;
|
|
47
|
+
overflow: hidden !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#fullscreen-chat-container .cw-messages {
|
|
51
|
+
flex: 1 !important;
|
|
52
|
+
min-height: 0 !important;
|
|
53
|
+
overflow-y: auto !important;
|
|
46
54
|
}
|
|
47
55
|
</style>
|
|
48
56
|
{% endblock %}
|
|
@@ -76,7 +84,7 @@
|
|
|
76
84
|
</div>
|
|
77
85
|
|
|
78
86
|
<!-- Full Screen Chat -->
|
|
79
|
-
<div class="flex-1 relative bg-gray-100">
|
|
87
|
+
<div class="flex-1 min-h-0 relative bg-gray-100">
|
|
80
88
|
<div id="fullscreen-chat-container" class="absolute inset-0"></div>
|
|
81
89
|
</div>
|
|
82
90
|
</div>
|
django_agent_studio/urls.py
CHANGED
|
@@ -12,6 +12,7 @@ app_name = "agent_studio"
|
|
|
12
12
|
urlpatterns = [
|
|
13
13
|
# Main studio interface
|
|
14
14
|
path("", views.StudioHomeView.as_view(), name="home"),
|
|
15
|
+
path("logout/", views.LogoutView.as_view(), name="logout"),
|
|
15
16
|
|
|
16
17
|
# Systems (multi-agent systems)
|
|
17
18
|
path("systems/", views.SystemListView.as_view(), name="system_list"),
|
django_agent_studio/views.py
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Views for django_agent_studio.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
from django.contrib.auth import logout
|
|
5
6
|
from django.db.models import Q
|
|
7
|
+
from django.shortcuts import redirect
|
|
8
|
+
from django.views import View
|
|
6
9
|
from django.views.generic import TemplateView, ListView
|
|
7
10
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
8
11
|
|
|
@@ -452,3 +455,11 @@ class SystemCollaboratorsView(LoginRequiredMixin, SystemAccessMixin, TemplateVie
|
|
|
452
455
|
|
|
453
456
|
return context
|
|
454
457
|
|
|
458
|
+
|
|
459
|
+
class LogoutView(View):
|
|
460
|
+
"""Simple logout view that works with any auth backend."""
|
|
461
|
+
|
|
462
|
+
def post(self, request):
|
|
463
|
+
logout(request)
|
|
464
|
+
return redirect('/')
|
|
465
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-agent-studio
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Visual agent builder and management studio for Django - build custom GPTs with a two-pane interface
|
|
5
5
|
Author: Chris Barry
|
|
6
6
|
License: Business Source License 1.1
|
|
@@ -126,6 +126,7 @@ A visual agent builder and management interface for Django applications. Create,
|
|
|
126
126
|
|
|
127
127
|
| Version | Date | Changes |
|
|
128
128
|
|---------|------|---------|
|
|
129
|
+
| **0.3.3** | 2026-01-30 | **Logout & Scroll Fixes** - Added logout button to header, fixed embedded chat widget scrolling with proper flex layout |
|
|
129
130
|
| **0.3.2** | 2026-01-30 | **Multi-User Access Control** - Collaborator management UI, user search autocomplete, supports both email and username-based User models, system creation from homepage, permission inheritance display |
|
|
130
131
|
| **0.3.1** | 2026-01-30 | **Bug Fixes** - Fixed duplicate message emit in dynamic agents, fixed escapejs encoding in templates, added 800px max-width constraint to system test view |
|
|
131
132
|
| **0.3.0** | 2026-01-29 | **System Listing & Navigation** - Browse and test multi-agent systems from homepage, fixed URL routing for My Systems/My Agents links, system creation now supports optional entry agent |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
django_agent_studio/__init__.py,sha256=E2vGoil7ZmwTebaB5ap9Lt0ptAzqYB5xJpyi4bFbqL8,378
|
|
2
2
|
django_agent_studio/apps.py,sha256=L89QWn4XOvPBs2z6qHAhaE4uZQpasJntYD75aSd2p_k,607
|
|
3
|
-
django_agent_studio/urls.py,sha256=
|
|
4
|
-
django_agent_studio/views.py,sha256=
|
|
3
|
+
django_agent_studio/urls.py,sha256=qoqmIaYx2qB4Ail9AhOzH3XKrMK9T8wxk8Kms2sHbkk,1333
|
|
4
|
+
django_agent_studio/views.py,sha256=iAO_0oY3vlJdjaVACVXJN2Z784-Tc82PILXQqA2vHDk,15844
|
|
5
5
|
django_agent_studio/agents/__init__.py,sha256=VYL_ato0DtggIo4BGRkyiz9cm1ARPXhhTQFzoG__NVM,800
|
|
6
6
|
django_agent_studio/agents/builder.py,sha256=dRPQk5-AhUsTBOFxv8H4Uk2X2PfK631jjVJZ1w13GtM,146777
|
|
7
7
|
django_agent_studio/agents/dynamic.py,sha256=b2bwvwF9DOjEds4c0748mjKzCWbymcSlR4B9nP9Bk4Q,25367
|
|
@@ -19,22 +19,22 @@ django_agent_studio/models/permissions.py,sha256=NepltvQzeehv5EwcOTqULj8n3N5XGVT
|
|
|
19
19
|
django_agent_studio/services/__init__.py,sha256=06cc1eLnAbROTKFxBgvkeCpsYV5cQsyJVGXaE_rcp3M,244
|
|
20
20
|
django_agent_studio/services/permissions.py,sha256=-cwe0YZCFBFYh_ScXKncsPwEkCfEyIrtOzp8Wt9GSco,7785
|
|
21
21
|
django_agent_studio/static/agent-frontend/chat-widget-markdown.js,sha256=_TQCux4HPRynCiLKydITO-docIRoi454jLpX0fegAFM,3722
|
|
22
|
-
django_agent_studio/static/agent-frontend/chat-widget.css,sha256=
|
|
22
|
+
django_agent_studio/static/agent-frontend/chat-widget.css,sha256=qz495hBIVvDj-TtDRAhejfs6LkCQR9mKp8niYDPr2nw,38381
|
|
23
23
|
django_agent_studio/static/agent-frontend/chat-widget.js,sha256=Yla8YlsmMtdXZRjN45Fup-4-NTCoM3NgR3yPsA5_Ot4,60548
|
|
24
24
|
django_agent_studio/static/django_agent_studio/js/builder.js,sha256=eEUw2z-pNdoU3xv3NhLQ-uDZV7tsf8Bawseg7B7dpCo,413948
|
|
25
25
|
django_agent_studio/static/django_agent_studio/js/builder.js.map,sha256=sVkeGyZsBWEr4MKhqAfd3B4JL5n7D6eKc_4ZYUsbKO8,1633363
|
|
26
26
|
django_agent_studio/static/django_agent_studio/js/style.css,sha256=rigQJy_oHIhgb1_7DwAQ_8G002gQnT0AXUtwxImWj1o,1626515
|
|
27
27
|
django_agent_studio/templates/django_agent_studio/agent_list.html,sha256=pIW6cRQ-i_hKWB_qDUuSBbzZw2qL_qJumhrW8C4Rs14,4931
|
|
28
|
-
django_agent_studio/templates/django_agent_studio/base.html,sha256=
|
|
28
|
+
django_agent_studio/templates/django_agent_studio/base.html,sha256=whRDhBrk-uRkHSdbRNFpp6GBEnV-_lEDFHtaGLqJ3kA,6566
|
|
29
29
|
django_agent_studio/templates/django_agent_studio/builder.html,sha256=yPzb0Pdp0d7Sp7gVkJd7OouDq-toKCA8i7OJLU9x6Z8,1542
|
|
30
30
|
django_agent_studio/templates/django_agent_studio/collaborators.html,sha256=qPV0YG8V8eFCdK3e--kgxh3iT4jPHAXCxkSzOBkx7bg,19482
|
|
31
31
|
django_agent_studio/templates/django_agent_studio/home.html,sha256=ebA-U1HseIzY5pPeXKluzI8vsKOh1owkKZxhys27Yns,6914
|
|
32
32
|
django_agent_studio/templates/django_agent_studio/system_create.html,sha256=MOhKMuiR2Iley0J7gvFk9yxLT51BqPrOhk0PbJ-QXjo,6392
|
|
33
33
|
django_agent_studio/templates/django_agent_studio/system_list.html,sha256=CN2o3nFpsZHwv6Wva1DkzYaAZnK204Q6FAqVH08L6_0,4666
|
|
34
|
-
django_agent_studio/templates/django_agent_studio/system_test.html,sha256=
|
|
35
|
-
django_agent_studio/templates/django_agent_studio/test.html,sha256=
|
|
36
|
-
django_agent_studio-0.3.
|
|
37
|
-
django_agent_studio-0.3.
|
|
38
|
-
django_agent_studio-0.3.
|
|
39
|
-
django_agent_studio-0.3.
|
|
40
|
-
django_agent_studio-0.3.
|
|
34
|
+
django_agent_studio/templates/django_agent_studio/system_test.html,sha256=Jo_pbIneXkTuT10lULuWa3i2BhJZv2uE4AClroaSNoE,4466
|
|
35
|
+
django_agent_studio/templates/django_agent_studio/test.html,sha256=pACtNyD64KJhPnkpEnixLjdxkbeHbNCBBE1NEruKZ-Q,4320
|
|
36
|
+
django_agent_studio-0.3.3.dist-info/licenses/LICENSE,sha256=WIh21lpD7d7xCUtLysKK-kbfW4SG7GNPf_k7_Xm_sZg,3851
|
|
37
|
+
django_agent_studio-0.3.3.dist-info/METADATA,sha256=Z7h7mKgUj3VCgjsbwWmgQGH4kjXTR7IFtyEWYHBJiBY,17048
|
|
38
|
+
django_agent_studio-0.3.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
39
|
+
django_agent_studio-0.3.3.dist-info/top_level.txt,sha256=O1kqZzXPOsJlqnPSAcB2fH5WpJNY8ZNfHEJzX9_SZ0A,20
|
|
40
|
+
django_agent_studio-0.3.3.dist-info/RECORD,,
|
|
File without changes
|
{django_agent_studio-0.3.2.dist-info → django_agent_studio-0.3.3.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|