syntaxmatrix 2.5.8.1__py3-none-any.whl → 2.6.0__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 (39) hide show
  1. syntaxmatrix/agentic/agents.py +1150 -55
  2. syntaxmatrix/agentic/agents_orchestrer.py +326 -0
  3. syntaxmatrix/agentic/code_tools_registry.py +27 -32
  4. syntaxmatrix/commentary.py +16 -16
  5. syntaxmatrix/core.py +107 -70
  6. syntaxmatrix/db.py +416 -4
  7. syntaxmatrix/{display.py → display_html.py} +2 -6
  8. syntaxmatrix/gpt_models_latest.py +1 -1
  9. syntaxmatrix/media/__init__.py +0 -0
  10. syntaxmatrix/media/media_pixabay.py +277 -0
  11. syntaxmatrix/models.py +1 -1
  12. syntaxmatrix/page_builder_defaults.py +183 -0
  13. syntaxmatrix/page_builder_generation.py +1122 -0
  14. syntaxmatrix/page_layout_contract.py +644 -0
  15. syntaxmatrix/page_patch_publish.py +1471 -0
  16. syntaxmatrix/preface.py +128 -8
  17. syntaxmatrix/profiles.py +28 -10
  18. syntaxmatrix/routes.py +1347 -427
  19. syntaxmatrix/selftest_page_templates.py +360 -0
  20. syntaxmatrix/settings/client_items.py +28 -0
  21. syntaxmatrix/settings/model_map.py +1022 -208
  22. syntaxmatrix/settings/prompts.py +328 -130
  23. syntaxmatrix/static/assets/hero-default.svg +22 -0
  24. syntaxmatrix/static/icons/bot-icon.png +0 -0
  25. syntaxmatrix/static/icons/favicon.png +0 -0
  26. syntaxmatrix/static/icons/logo.png +0 -0
  27. syntaxmatrix/static/icons/logo2.png +0 -0
  28. syntaxmatrix/static/icons/logo3.png +0 -0
  29. syntaxmatrix/templates/admin_secretes.html +108 -0
  30. syntaxmatrix/templates/dashboard.html +116 -72
  31. syntaxmatrix/templates/edit_page.html +2535 -0
  32. syntaxmatrix/utils.py +2365 -2411
  33. {syntaxmatrix-2.5.8.1.dist-info → syntaxmatrix-2.6.0.dist-info}/METADATA +6 -2
  34. {syntaxmatrix-2.5.8.1.dist-info → syntaxmatrix-2.6.0.dist-info}/RECORD +37 -24
  35. syntaxmatrix/generate_page.py +0 -644
  36. syntaxmatrix/static/icons/hero_bg.jpg +0 -0
  37. {syntaxmatrix-2.5.8.1.dist-info → syntaxmatrix-2.6.0.dist-info}/WHEEL +0 -0
  38. {syntaxmatrix-2.5.8.1.dist-info → syntaxmatrix-2.6.0.dist-info}/licenses/LICENSE.txt +0 -0
  39. {syntaxmatrix-2.5.8.1.dist-info → syntaxmatrix-2.6.0.dist-info}/top_level.txt +0 -0
@@ -11,45 +11,7 @@
11
11
  margin: 0;
12
12
  padding: 0;
13
13
  }
14
- .dashboard-sidebar {
15
- position: fixed;
16
- top: 0; left: 0;
17
- width: 200px; height: 100vh;
18
- background: #a3a4a5ff;
19
- border-right: 1px solid #ccc;
20
- padding: 26px 10px 10px 14px;
21
- box-sizing: border-box;
22
- overflow-y: auto;
23
- z-index: 100;
24
- font-size: clamp(0.95rem, 2vw, 1.09rem);
25
- }
26
- .dashboard-sidebar h2 {
27
- font-size: clamp(1.12rem, 3vw, 1.28rem);
28
- color: #007acc;
29
- margin-top: 0;
30
- margin-bottom: 32px;
31
- font-weight: bold;
32
- letter-spacing: 1px;
33
- }
34
- .sidebar-links {
35
- margin-top: 22px;
36
- }
37
- .sidebar-links a {
38
- display: block;
39
- padding: 12px 10px 12px 0;
40
- color: #333;
41
- text-decoration: none;
42
- font-size: clamp(0.93rem, 2vw, 1.08rem);
43
- border-radius: 6px;
44
- margin-bottom: 6px;
45
- transition: background 0.2s, color 0.2s;
46
- }
47
- .sidebar-links a.active,
48
- .sidebar-links a:hover {
49
- background: #e0e5ee;
50
- color: #007acc;
51
- font-weight: bold;
52
- }
14
+
53
15
  .dashboard-main {
54
16
  margin-left: 220px;
55
17
  padding: 36px 40px 30px 10px;
@@ -99,6 +61,46 @@
99
61
  textarea#askai{
100
62
  background: #e5e5e5cd;
101
63
  }
64
+
65
+ .dashboard-sidebar {
66
+ position: fixed;
67
+ top: 0; left: 0;
68
+ width: 200px; height: 100vh;
69
+ background: #a3a4a5ff;
70
+ border-right: 1px solid #ccc;
71
+ padding: 26px 10px 10px 14px;
72
+ box-sizing: border-box;
73
+ overflow-y: auto;
74
+ z-index: 100;
75
+ font-size: clamp(0.95rem, 2vw, 1.09rem);
76
+ }
77
+ .dashboard-sidebar h2 {
78
+ font-size: clamp(1.12rem, 3vw, 1.28rem);
79
+ color: #007acc;
80
+ margin-top: 0;
81
+ margin-bottom: 32px;
82
+ font-weight: bold;
83
+ letter-spacing: 1px;
84
+ }
85
+ .sidebar-links {
86
+ margin-top: 22px;
87
+ }
88
+ .sidebar-links a {
89
+ display: block;
90
+ padding: 12px 10px 12px 0;
91
+ color: #333;
92
+ text-decoration: none;
93
+ font-size: clamp(0.93rem, 2vw, 1.08rem);
94
+ border-radius: 6px;
95
+ margin-bottom: 6px;
96
+ transition: background 0.2s, color 0.2s;
97
+ }
98
+ .sidebar-links a.active,
99
+ .sidebar-links a:hover {
100
+ background: #e0e5ee;
101
+ color: #007acc;
102
+ font-weight: bold;
103
+ }
102
104
 
103
105
  .smx-table {
104
106
  padding: clamp(3px, 1vw, 9px) clamp(4px, 2vw, 13px);
@@ -197,8 +199,8 @@
197
199
  .dashboard-sidebar {
198
200
  position: fixed !important;
199
201
  inset: 0 auto 0 0;
200
- width: 80vw !important; /* drawer width */
201
- max-width: 320px;
202
+ width: 48vw !important; /* drawer width */
203
+ max-width: 200px;
202
204
  transform: translateX(-100%);
203
205
  transition: transform .28s ease;
204
206
  z-index: 1000;
@@ -582,7 +584,7 @@
582
584
  .smx-stat h4{ color: #64748b !important; }
583
585
  </style>
584
586
  <style>
585
- div.li > li {
587
+ div.li li {
586
588
  margin-left: 35px;
587
589
  }
588
590
  /* 1. Style the arrow specifically */
@@ -606,39 +608,68 @@
606
608
  display: none;
607
609
  }
608
610
 
609
- /* Spinner that sits inside the Explore Data submit button */
610
- .eda-btn-spinner {
611
- display: none;
612
- width: 1.1rem;
613
- height: 1.1rem;
614
- border-radius: 999px;
615
- border: 2px solid currentColor;
616
- border-top-color: transparent;
617
- border-right-color: transparent;
618
- animation: edaBtnSpin 0.7s linear infinite;
619
- margin-left: 0; /* was 0.5rem */
620
- vertical-align: middle;
621
- box-sizing: border-box;
611
+ /* Thinking dots that sit inside the Explore Data submit button */
612
+ /* Submit button: keep size constant while swapping text for dots */
613
+ .eda-submit-btn {
614
+ position: relative;
615
+ overflow: hidden;
622
616
  }
617
+
623
618
  .eda-btn-label {
624
619
  display: inline-block;
625
- margin-right: 0.5rem; /* space between text and spinner when both are visible */
626
620
  }
627
621
 
628
- /* While loading: hide the label, show the spinner */
622
+ /* Thinking dots overlay, centred in the button */
623
+ .eda-btn-spinner {
624
+ position: absolute;
625
+ top: 50%;
626
+ left: 50%;
627
+ transform: translate(-50%, -50%);
628
+ display: none; /* hidden until loading */
629
+ align-items: center;
630
+ justify-content: center;
631
+ gap: 0.15rem;
632
+ }
633
+
634
+ .eda-btn-spinner .dot {
635
+ width: 0.28rem;
636
+ height: 0.28rem;
637
+ border-radius: 999px;
638
+ background: currentColor;
639
+ opacity: 0.2;
640
+ display: inline-block;
641
+ margin: 0 0.08rem;
642
+ animation: edaBtnDots 1s infinite ease-in-out;
643
+ }
644
+
645
+ .eda-btn-spinner .dot:nth-child(2) {
646
+ animation-delay: 0.15s;
647
+ }
648
+
649
+ .eda-btn-spinner .dot:nth-child(3) {
650
+ animation-delay: 0.30s;
651
+ }
652
+
653
+ /* While loading: keep label in layout, but hide it visually */
629
654
  .eda-btn-loading .eda-btn-label {
630
- display: none; /* keeps button width stable */
655
+ visibility: hidden; /* keeps height and width */
631
656
  }
632
657
 
633
658
  .eda-btn-loading .eda-btn-spinner {
634
- display: inline-block;
659
+ display: inline-flex;
635
660
  }
636
661
 
637
- @keyframes edaBtnSpin {
638
- to {
639
- transform: rotate(360deg);
662
+ @keyframes edaBtnDots {
663
+ 0%, 60%, 100% {
664
+ opacity: 0.2;
665
+ transform: translateY(0);
666
+ }
667
+ 30% {
668
+ opacity: 1;
669
+ transform: translateY(-0.16rem);
640
670
  }
641
671
  }
672
+
642
673
  .sidebar-links {
643
674
  margin-top: 22px;
644
675
  }
@@ -679,7 +710,7 @@
679
710
  <body>
680
711
  <div id="sidebarScrim" class="sidebar-scrim" aria-hidden="true"></div>
681
712
  <div class="dashboard-sidebar">
682
- <button class="sidebar-close" aria-label="Close menu">✕</button>
713
+
683
714
  <h2>ML&nbsp;Lab</h2>
684
715
  <a href="/">return to home</a>
685
716
  <div class="sidebar-links">
@@ -755,8 +786,14 @@
755
786
  type="submit"
756
787
  class="btn btn-primary eda-submit-btn"
757
788
  >
758
- <span class="eda-btn-label">Submit</span>
759
- <span class="eda-btn-spinner" aria-hidden="true"></span>
789
+ <span class="eda-btn-content">
790
+ <span class="eda-btn-label">Submit</span>
791
+ <span class="eda-btn-spinner" aria-hidden="true">
792
+ <span class="dot"></span>
793
+ <span class="dot"></span>
794
+ <span class="dot"></span>
795
+ </span>
796
+ </span>
760
797
  </button>
761
798
  </form>
762
799
  <div style="margin-bottom: 36px;">
@@ -784,16 +821,23 @@
784
821
  {% endfor %}
785
822
  {% endif %}
786
823
  <br><br>
787
- {% if llm_usage %}
788
- <b>LLM: </b><span>{{ llm_usage.provider }} | {{ llm_usage.model }}</span><br>
824
+ {% if TOKENS %}
825
+ <b>Refiner Agent: </b><span>{{ TOKENS['Refiner'][0] }} | {{ TOKENS['Refiner'][1] }}</span><br>
789
826
  <b>Token Usage: </b>
790
- <li>Input Tokens: {{ llm_usage.input_tokens }}</li>
791
- <li>Output Tokens: {{ llm_usage.output_tokens }}</li>
792
- <li>Total Tokens: {{ llm_usage.total_tokens }}</li>
793
- </div>
794
- {% endif %}
827
+ <li>Input Tokens: {{ TOKENS['Refiner'][2] }}</li>
828
+ <li>Output Tokens: {{ TOKENS['Refiner'][3] }}</li>
829
+ <li>Total Tokens: {{ TOKENS['Refiner'][4] }}</li>
830
+ <br>
831
+
832
+ <b>Coder Agent: </b><span>{{ TOKENS['Coder'][0] }} | {{ TOKENS['Coder'][1] }}</span><br>
833
+ <b>Token Usage: </b>
834
+ <li>Input Tokens: {{ TOKENS['Coder'][2] }}</li>
835
+ <li>Output Tokens: {{ TOKENS['Coder'][3] }}</li>
836
+ <li>Total Tokens: {{ TOKENS['Coder'][4] }}</li>
837
+ {% endif %}
795
838
  </div>
796
839
  </details>
840
+ </div>
797
841
  {% endif %}
798
842
  {% if ai_outputs %}
799
843
  <div class="d-flex align-items-center justify-content-between" style="margin: 12px;">