django-agent-studio 0.3.0__tar.gz → 0.3.1__tar.gz

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 (43) hide show
  1. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/PKG-INFO +2 -1
  2. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/README.md +1 -0
  3. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/agents/dynamic.py +2 -3
  4. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/django_agent_studio.egg-info/PKG-INFO +2 -1
  5. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/pyproject.toml +1 -1
  6. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/builder.html +2 -2
  7. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/system_test.html +12 -15
  8. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/test.html +2 -2
  9. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/LICENSE +0 -0
  10. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/__init__.py +0 -0
  11. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/agents/__init__.py +0 -0
  12. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/agents/builder.py +0 -0
  13. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/api/__init__.py +0 -0
  14. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/api/permissions.py +0 -0
  15. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/api/serializers.py +0 -0
  16. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/api/urls.py +0 -0
  17. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/api/views.py +0 -0
  18. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/apps.py +0 -0
  19. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/django_agent_studio.egg-info/SOURCES.txt +0 -0
  20. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/django_agent_studio.egg-info/dependency_links.txt +0 -0
  21. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/django_agent_studio.egg-info/requires.txt +0 -0
  22. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/django_agent_studio.egg-info/top_level.txt +0 -0
  23. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/management/__init__.py +0 -0
  24. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/management/commands/__init__.py +0 -0
  25. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/migrations/0001_initial.py +0 -0
  26. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/migrations/__init__.py +0 -0
  27. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/models/__init__.py +0 -0
  28. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/models/permissions.py +0 -0
  29. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/services/__init__.py +0 -0
  30. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/services/permissions.py +0 -0
  31. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/setup.cfg +0 -0
  32. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/agent-frontend/chat-widget-markdown.js +0 -0
  33. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/agent-frontend/chat-widget.css +0 -0
  34. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/agent-frontend/chat-widget.js +0 -0
  35. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/django_agent_studio/js/builder.js +0 -0
  36. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/django_agent_studio/js/builder.js.map +0 -0
  37. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/static/django_agent_studio/js/style.css +0 -0
  38. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/agent_list.html +0 -0
  39. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/base.html +0 -0
  40. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/home.html +0 -0
  41. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/templates/django_agent_studio/system_list.html +0 -0
  42. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/urls.py +0 -0
  43. {django_agent_studio-0.3.0 → django_agent_studio-0.3.1}/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-agent-studio
3
- Version: 0.3.0
3
+ Version: 0.3.1
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.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 |
129
130
  | **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 |
130
131
  | **0.2.0** | 2026-01-28 | **Multi-Agent Systems** - System management UI, shared memory configuration, memory privacy controls, builder tools for managing agent systems |
131
132
  | **0.1.9** | 2026-01-27 | Spec documents migration, improved builder agent |
@@ -6,6 +6,7 @@ A visual agent builder and management interface for Django applications. Create,
6
6
 
7
7
  | Version | Date | Changes |
8
8
  |---------|------|---------|
9
+ | **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 |
9
10
  | **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 |
10
11
  | **0.2.0** | 2026-01-28 | **Multi-Agent Systems** - System management UI, shared memory configuration, memory privacy controls, builder tools for managing agent systems |
11
12
  | **0.1.9** | 2026-01-27 | Spec documents migration, improved builder agent |
@@ -266,9 +266,8 @@ class DynamicAgentRuntime(AgentRuntime):
266
266
  **model_settings,
267
267
  )
268
268
 
269
- # Emit the final assistant message
270
- if result.final_content:
271
- await ctx.emit(EventType.ASSISTANT_MESSAGE, {"content": result.final_content})
269
+ # Note: run_agentic_loop already emits ASSISTANT_MESSAGE events,
270
+ # so we don't emit here to avoid duplicate messages in the UI.
272
271
 
273
272
  return RunResult(
274
273
  final_output={"response": result.final_content},
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-agent-studio
3
- Version: 0.3.0
3
+ Version: 0.3.1
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.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 |
129
130
  | **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 |
130
131
  | **0.2.0** | 2026-01-28 | **Multi-Agent Systems** - System management UI, shared memory configuration, memory privacy controls, builder tools for managing agent systems |
131
132
  | **0.1.9** | 2026-01-27 | Spec documents migration, improved builder agent |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "django-agent-studio"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "Visual agent builder and management studio for Django - build custom GPTs with a two-pane interface"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -25,9 +25,9 @@
25
25
  <script>
26
26
  // Configuration passed from Django
27
27
  window.STUDIO_CONFIG = {
28
- agentId: {% if agent %}"{{ agent.id }}"{% else %}null{% endif %},
28
+ agentId: {% if agent %}"{{ agent.id|escapejs }}"{% else %}null{% endif %},
29
29
  csrfToken: "{{ csrf_token }}",
30
- builderAgentKey: "{{ builder_agent_key }}",
30
+ builderAgentKey: "{{ builder_agent_key|escapejs }}",
31
31
  };
32
32
  </script>
33
33
 
@@ -15,17 +15,18 @@
15
15
 
16
16
  {% block extra_head %}
17
17
  <style>
18
+ #fullscreen-chat-container {
19
+ display: flex;
20
+ justify-content: center;
21
+ }
22
+
18
23
  #fullscreen-chat-container .cw-container {
19
- position: absolute !important;
20
- top: 0;
21
- left: 0;
22
- right: 0;
23
- bottom: 0;
24
+ position: relative !important;
24
25
  width: 100% !important;
25
26
  height: 100% !important;
26
27
  max-height: none !important;
27
28
  border-radius: 0 !important;
28
- box-shadow: none !important;
29
+ box-shadow: 0 0 20px rgba(0,0,0,0.1) !important;
29
30
  }
30
31
 
31
32
  #fullscreen-chat-container .cw-toggle-btn {
@@ -33,11 +34,7 @@
33
34
  }
34
35
 
35
36
  #fullscreen-chat-container .cw-widget {
36
- position: absolute !important;
37
- top: 0;
38
- left: 0;
39
- right: 0;
40
- bottom: 0;
37
+ position: relative !important;
41
38
  width: 100% !important;
42
39
  height: 100% !important;
43
40
  max-height: none !important;
@@ -75,8 +72,8 @@
75
72
  </div>
76
73
 
77
74
  <!-- Full Screen Chat -->
78
- <div class="flex-1 relative bg-gray-100">
79
- <div id="fullscreen-chat-container" class="absolute inset-0"></div>
75
+ <div class="flex-1 relative bg-gray-100 flex justify-center">
76
+ <div id="fullscreen-chat-container" class="relative w-full max-w-[800px] h-full"></div>
80
77
  </div>
81
78
  </div>
82
79
  {% endblock %}
@@ -86,7 +83,7 @@
86
83
  const { createApp } = Vue;
87
84
 
88
85
  // Use the entry agent's slug for the chat
89
- const agentSlug = "{{ agent.slug }}";
86
+ const agentSlug = "{{ agent.slug|escapejs }}";
90
87
  const backendUrl = window.location.origin;
91
88
 
92
89
  function initChat() {
@@ -98,7 +95,7 @@ function initChat() {
98
95
  containerId: 'fullscreen-chat-container',
99
96
  backendUrl: backendUrl,
100
97
  agentKey: agentSlug,
101
- title: '{{ system.name }}',
98
+ title: '{{ system.name|escapejs }}',
102
99
  primaryColor: '#3b82f6',
103
100
  showClearButton: true,
104
101
  showDebugButton: true,
@@ -81,7 +81,7 @@
81
81
  <script>
82
82
  const { createApp } = Vue;
83
83
 
84
- const agentSlug = "{{ agent.slug }}";
84
+ const agentSlug = "{{ agent.slug|escapejs }}";
85
85
  const backendUrl = window.location.origin;
86
86
 
87
87
  function initChat() {
@@ -93,7 +93,7 @@ function initChat() {
93
93
  containerId: 'fullscreen-chat-container',
94
94
  backendUrl: backendUrl,
95
95
  agentKey: agentSlug,
96
- title: '{{ agent.name }}',
96
+ title: '{{ agent.name|escapejs }}',
97
97
  primaryColor: '#3b82f6',
98
98
  showClearButton: true,
99
99
  showDebugButton: true,