syntaxmatrix 2.3.2__tar.gz → 2.5.8__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 (81) hide show
  1. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/PKG-INFO +16 -17
  2. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/SyntaxMatrix.egg-info/PKG-INFO +16 -17
  3. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/SyntaxMatrix.egg-info/SOURCES.txt +9 -1
  4. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/SyntaxMatrix.egg-info/requires.txt +7 -9
  5. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/setup.py +36 -21
  6. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/__init__.py +3 -3
  7. syntaxmatrix-2.5.8/syntaxmatrix/agentic/agent_tools.py +24 -0
  8. syntaxmatrix-2.5.8/syntaxmatrix/agentic/agents.py +765 -0
  9. syntaxmatrix-2.5.8/syntaxmatrix/agentic/code_tools_registry.py +37 -0
  10. syntaxmatrix-2.5.8/syntaxmatrix/agentic/model_templates.py +1790 -0
  11. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/auth.py +144 -8
  12. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/commentary.py +134 -112
  13. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/core.py +447 -310
  14. syntaxmatrix-2.5.8/syntaxmatrix/dataset_preprocessing.py +218 -0
  15. syntaxmatrix-2.5.8/syntaxmatrix/display.py +106 -0
  16. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/generate_page.py +17 -7
  17. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/gpt_models_latest.py +5 -4
  18. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/history_store.py +1 -1
  19. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/llm_store.py +1 -1
  20. syntaxmatrix-2.5.8/syntaxmatrix/preface.py +550 -0
  21. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/profiles.py +19 -4
  22. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/project_root.py +1 -63
  23. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/routes.py +1519 -479
  24. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/settings/model_map.py +42 -33
  25. syntaxmatrix-2.5.8/syntaxmatrix/templates/change_password.html +124 -0
  26. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/templates/dashboard.html +436 -122
  27. syntaxmatrix-2.5.8/syntaxmatrix/templates/dataset_resize.html +535 -0
  28. syntaxmatrix-2.5.8/syntaxmatrix/templates/docs.html +71 -0
  29. syntaxmatrix-2.5.8/syntaxmatrix/utils.py +3054 -0
  30. syntaxmatrix-2.5.8/syntaxmatrix/vectordb/adapters/pgvector_adapter.py +0 -0
  31. syntaxmatrix-2.3.2/syntaxmatrix/display.py +0 -54
  32. syntaxmatrix-2.3.2/syntaxmatrix/model_templates.py +0 -29
  33. syntaxmatrix-2.3.2/syntaxmatrix/templates/docs.html +0 -72
  34. syntaxmatrix-2.3.2/syntaxmatrix/utils.py +0 -993
  35. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/LICENSE.txt +0 -0
  36. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/README.md +0 -0
  37. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/SyntaxMatrix.egg-info/dependency_links.txt +0 -0
  38. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/SyntaxMatrix.egg-info/top_level.txt +0 -0
  39. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/pyproject.toml +0 -0
  40. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/setup.cfg +0 -0
  41. {syntaxmatrix-2.3.2/syntaxmatrix/settings → syntaxmatrix-2.5.8/syntaxmatrix/agentic}/__init__.py +0 -0
  42. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/bootstrap.py +0 -0
  43. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/db.py +0 -0
  44. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/emailer.py +0 -0
  45. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/file_processor.py +0 -0
  46. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/kernel_manager.py +0 -0
  47. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/models.py +0 -0
  48. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/plottings.py +0 -0
  49. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/session.py +0 -0
  50. {syntaxmatrix-2.3.2/syntaxmatrix/vectordb/adapters → syntaxmatrix-2.5.8/syntaxmatrix/settings}/__init__.py +0 -0
  51. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/settings/default.yaml +0 -0
  52. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/settings/logging.py +0 -0
  53. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/settings/prompts.py +0 -0
  54. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/settings/string_navbar.py +0 -0
  55. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/smiv.py +0 -0
  56. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/smpv.py +0 -0
  57. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/css/style.css +0 -0
  58. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/docs.md +0 -0
  59. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/icons/favicon.png +0 -0
  60. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/icons/hero_bg.jpg +0 -0
  61. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/icons/logo.png +0 -0
  62. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/icons/svg_497526.svg +0 -0
  63. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/icons/svg_497528.svg +0 -0
  64. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/js/chat.js +0 -0
  65. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/js/sidebar.js +0 -0
  66. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/static/js/widgets.js +0 -0
  67. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/templates/code_cell.html +0 -0
  68. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/templates/error.html +0 -0
  69. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/templates/login.html +0 -0
  70. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/templates/register.html +0 -0
  71. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/themes.py +0 -0
  72. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/ui_modes.py +0 -0
  73. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vector_db.py +0 -0
  74. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vectordb/__init__.py +0 -0
  75. /syntaxmatrix-2.3.2/syntaxmatrix/vectordb/adapters/milvus_adapter.py → /syntaxmatrix-2.5.8/syntaxmatrix/vectordb/adapters/__init__.py +0 -0
  76. /syntaxmatrix-2.3.2/syntaxmatrix/vectordb/adapters/pgvector_adapter.py → /syntaxmatrix-2.5.8/syntaxmatrix/vectordb/adapters/milvus_adapter.py +0 -0
  77. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vectordb/adapters/sqlite_adapter.py +0 -0
  78. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vectordb/base.py +0 -0
  79. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vectordb/registry.py +0 -0
  80. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/vectorizer.py +0 -0
  81. {syntaxmatrix-2.3.2 → syntaxmatrix-2.5.8}/syntaxmatrix/workspace_db.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: syntaxmatrix
3
- Version: 2.3.2
3
+ Version: 2.5.8
4
4
  Summary: SyntaxMUI: A customizable framework for Python AI Assistant Projects.
5
5
  Author: Bob Nti
6
- Author-email: bob.nti@syntaxmatrix.com
6
+ Author-email: bob.nti@syntaxmatrix.net
7
7
  Classifier: Programming Language :: Python :: 3.9
8
8
  Classifier: License :: OSI Approved :: MIT License
9
9
  Classifier: Operating System :: OS Independent
@@ -25,27 +25,26 @@ Requires-Dist: anthropic>=0.67.0
25
25
  Requires-Dist: reportlab>=4.4.3
26
26
  Requires-Dist: lxml>=6.0.2
27
27
  Requires-Dist: flask-login>=0.6.3
28
- Provides-Extra: mlearning
29
- Requires-Dist: pandas>=2.2.3; extra == "mlearning"
30
- Requires-Dist: numpy>=2.0.2; extra == "mlearning"
31
- Requires-Dist: matplotlib>=3.9.4; extra == "mlearning"
32
- Requires-Dist: plotly>=6.3.0; extra == "mlearning"
33
- Requires-Dist: seaborn>=0.13.2; extra == "mlearning"
34
- Requires-Dist: scikit-learn>=1.6.1; extra == "mlearning"
35
- Requires-Dist: jupyter_client>=8.6.3; extra == "mlearning"
36
- Requires-Dist: ipykernel>=6.29.5; extra == "mlearning"
37
- Requires-Dist: statsmodels; extra == "mlearning"
38
- Requires-Dist: ipython; extra == "mlearning"
39
- Provides-Extra: auth
40
- Requires-Dist: sqlalchemy>=2.0.42; extra == "auth"
41
- Requires-Dist: cryptography>=45.0.6; extra == "auth"
28
+ Requires-Dist: pandas>=2.2.3
29
+ Requires-Dist: numpy>=2.0.2
30
+ Requires-Dist: matplotlib>=3.9.4
31
+ Requires-Dist: plotly>=6.3.0
32
+ Requires-Dist: seaborn>=0.13.2
33
+ Requires-Dist: scikit-learn>=1.6.1
34
+ Requires-Dist: jupyter_client>=8.6.3
35
+ Requires-Dist: ipykernel>=6.29.5
36
+ Requires-Dist: statsmodels
37
+ Requires-Dist: ipython
38
+ Requires-Dist: sqlalchemy>=2.0.42
39
+ Requires-Dist: cryptography>=45.0.6
40
+ Requires-Dist: regex>=2025.11.3
41
+ Requires-Dist: tiktoken>=0.12.0
42
42
  Dynamic: author
43
43
  Dynamic: author-email
44
44
  Dynamic: classifier
45
45
  Dynamic: description
46
46
  Dynamic: description-content-type
47
47
  Dynamic: license-file
48
- Dynamic: provides-extra
49
48
  Dynamic: requires-dist
50
49
  Dynamic: requires-python
51
50
  Dynamic: summary
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: syntaxmatrix
3
- Version: 2.3.2
3
+ Version: 2.5.8
4
4
  Summary: SyntaxMUI: A customizable framework for Python AI Assistant Projects.
5
5
  Author: Bob Nti
6
- Author-email: bob.nti@syntaxmatrix.com
6
+ Author-email: bob.nti@syntaxmatrix.net
7
7
  Classifier: Programming Language :: Python :: 3.9
8
8
  Classifier: License :: OSI Approved :: MIT License
9
9
  Classifier: Operating System :: OS Independent
@@ -25,27 +25,26 @@ Requires-Dist: anthropic>=0.67.0
25
25
  Requires-Dist: reportlab>=4.4.3
26
26
  Requires-Dist: lxml>=6.0.2
27
27
  Requires-Dist: flask-login>=0.6.3
28
- Provides-Extra: mlearning
29
- Requires-Dist: pandas>=2.2.3; extra == "mlearning"
30
- Requires-Dist: numpy>=2.0.2; extra == "mlearning"
31
- Requires-Dist: matplotlib>=3.9.4; extra == "mlearning"
32
- Requires-Dist: plotly>=6.3.0; extra == "mlearning"
33
- Requires-Dist: seaborn>=0.13.2; extra == "mlearning"
34
- Requires-Dist: scikit-learn>=1.6.1; extra == "mlearning"
35
- Requires-Dist: jupyter_client>=8.6.3; extra == "mlearning"
36
- Requires-Dist: ipykernel>=6.29.5; extra == "mlearning"
37
- Requires-Dist: statsmodels; extra == "mlearning"
38
- Requires-Dist: ipython; extra == "mlearning"
39
- Provides-Extra: auth
40
- Requires-Dist: sqlalchemy>=2.0.42; extra == "auth"
41
- Requires-Dist: cryptography>=45.0.6; extra == "auth"
28
+ Requires-Dist: pandas>=2.2.3
29
+ Requires-Dist: numpy>=2.0.2
30
+ Requires-Dist: matplotlib>=3.9.4
31
+ Requires-Dist: plotly>=6.3.0
32
+ Requires-Dist: seaborn>=0.13.2
33
+ Requires-Dist: scikit-learn>=1.6.1
34
+ Requires-Dist: jupyter_client>=8.6.3
35
+ Requires-Dist: ipykernel>=6.29.5
36
+ Requires-Dist: statsmodels
37
+ Requires-Dist: ipython
38
+ Requires-Dist: sqlalchemy>=2.0.42
39
+ Requires-Dist: cryptography>=45.0.6
40
+ Requires-Dist: regex>=2025.11.3
41
+ Requires-Dist: tiktoken>=0.12.0
42
42
  Dynamic: author
43
43
  Dynamic: author-email
44
44
  Dynamic: classifier
45
45
  Dynamic: description
46
46
  Dynamic: description-content-type
47
47
  Dynamic: license-file
48
- Dynamic: provides-extra
49
48
  Dynamic: requires-dist
50
49
  Dynamic: requires-python
51
50
  Dynamic: summary
@@ -12,6 +12,7 @@ syntaxmatrix/auth.py
12
12
  syntaxmatrix/bootstrap.py
13
13
  syntaxmatrix/commentary.py
14
14
  syntaxmatrix/core.py
15
+ syntaxmatrix/dataset_preprocessing.py
15
16
  syntaxmatrix/db.py
16
17
  syntaxmatrix/display.py
17
18
  syntaxmatrix/emailer.py
@@ -21,9 +22,9 @@ syntaxmatrix/gpt_models_latest.py
21
22
  syntaxmatrix/history_store.py
22
23
  syntaxmatrix/kernel_manager.py
23
24
  syntaxmatrix/llm_store.py
24
- syntaxmatrix/model_templates.py
25
25
  syntaxmatrix/models.py
26
26
  syntaxmatrix/plottings.py
27
+ syntaxmatrix/preface.py
27
28
  syntaxmatrix/profiles.py
28
29
  syntaxmatrix/project_root.py
29
30
  syntaxmatrix/routes.py
@@ -41,6 +42,11 @@ syntaxmatrix.egg-info/SOURCES.txt
41
42
  syntaxmatrix.egg-info/dependency_links.txt
42
43
  syntaxmatrix.egg-info/requires.txt
43
44
  syntaxmatrix.egg-info/top_level.txt
45
+ syntaxmatrix/agentic/__init__.py
46
+ syntaxmatrix/agentic/agent_tools.py
47
+ syntaxmatrix/agentic/agents.py
48
+ syntaxmatrix/agentic/code_tools_registry.py
49
+ syntaxmatrix/agentic/model_templates.py
44
50
  syntaxmatrix/settings/__init__.py
45
51
  syntaxmatrix/settings/default.yaml
46
52
  syntaxmatrix/settings/logging.py
@@ -57,8 +63,10 @@ syntaxmatrix/static/icons/svg_497528.svg
57
63
  syntaxmatrix/static/js/chat.js
58
64
  syntaxmatrix/static/js/sidebar.js
59
65
  syntaxmatrix/static/js/widgets.js
66
+ syntaxmatrix/templates/change_password.html
60
67
  syntaxmatrix/templates/code_cell.html
61
68
  syntaxmatrix/templates/dashboard.html
69
+ syntaxmatrix/templates/dataset_resize.html
62
70
  syntaxmatrix/templates/docs.html
63
71
  syntaxmatrix/templates/error.html
64
72
  syntaxmatrix/templates/login.html
@@ -12,15 +12,6 @@ anthropic>=0.67.0
12
12
  reportlab>=4.4.3
13
13
  lxml>=6.0.2
14
14
  flask-login>=0.6.3
15
-
16
- [:sys_platform == "win32"]
17
- pywin32>=311
18
-
19
- [auth]
20
- sqlalchemy>=2.0.42
21
- cryptography>=45.0.6
22
-
23
- [mlearning]
24
15
  pandas>=2.2.3
25
16
  numpy>=2.0.2
26
17
  matplotlib>=3.9.4
@@ -31,3 +22,10 @@ jupyter_client>=8.6.3
31
22
  ipykernel>=6.29.5
32
23
  statsmodels
33
24
  ipython
25
+ sqlalchemy>=2.0.42
26
+ cryptography>=45.0.6
27
+ regex>=2025.11.3
28
+ tiktoken>=0.12.0
29
+
30
+ [:sys_platform == "win32"]
31
+ pywin32>=311
@@ -8,9 +8,9 @@ with open(os.path.join(this_directory, "README.md"), encoding="utf-8") as f:
8
8
 
9
9
  setup(
10
10
  name="syntaxmatrix",
11
- version="2.3.2",
11
+ version="2.5.8",
12
12
  author="Bob Nti",
13
- author_email="bob.nti@syntaxmatrix.com",
13
+ author_email="bob.nti@syntaxmatrix.net",
14
14
  description="SyntaxMUI: A customizable framework for Python AI Assistant Projects.",
15
15
  long_description=long_description,
16
16
  long_description_content_type="text/markdown",
@@ -20,7 +20,8 @@ setup(
20
20
  "syntaxmatrix": [
21
21
  "static/**/*",
22
22
  "settings/*",
23
- "templates/*",
23
+ "templates/*",
24
+ "agentic/*",
24
25
  ]
25
26
  },
26
27
  install_requires=[
@@ -39,25 +40,39 @@ setup(
39
40
  "reportlab>=4.4.3",
40
41
  "lxml>=6.0.2",
41
42
  "flask-login>=0.6.3",
43
+ "pandas>=2.2.3",
44
+ "numpy>=2.0.2",
45
+ "matplotlib>=3.9.4",
46
+ "plotly>=6.3.0",
47
+ "seaborn>=0.13.2",
48
+ "scikit-learn>=1.6.1",
49
+ "jupyter_client>=8.6.3",
50
+ "ipykernel>=6.29.5",
51
+ "statsmodels",
52
+ "ipython",
53
+ "sqlalchemy>=2.0.42",
54
+ "cryptography>=45.0.6",
55
+ "regex>=2025.11.3",
56
+ "tiktoken>=0.12.0",
42
57
  ],
43
- extras_require={
44
- "mlearning": [
45
- "pandas>=2.2.3",
46
- "numpy>=2.0.2",
47
- "matplotlib>=3.9.4",
48
- "plotly>=6.3.0",
49
- "seaborn>=0.13.2",
50
- "scikit-learn>=1.6.1",
51
- "jupyter_client>=8.6.3",
52
- "ipykernel>=6.29.5",
53
- "statsmodels",
54
- "ipython",
55
- ],
56
- "auth": [
57
- "sqlalchemy>=2.0.42",
58
- "cryptography>=45.0.6",
59
- ]
60
- },
58
+ # extras_require={
59
+ # "mlearning": [
60
+ # "pandas>=2.2.3",
61
+ # "numpy>=2.0.2",
62
+ # "matplotlib>=3.9.4",
63
+ # "plotly>=6.3.0",
64
+ # "seaborn>=0.13.2",
65
+ # "scikit-learn>=1.6.1",
66
+ # "jupyter_client>=8.6.3",
67
+ # "ipykernel>=6.29.5",
68
+ # "statsmodels",
69
+ # "ipython",
70
+ # ],
71
+ # "auth": [
72
+ # "sqlalchemy>=2.0.42",
73
+ # "cryptography>=45.0.6",
74
+ # ]
75
+ # },
61
76
  classifiers=[
62
77
  "Programming Language :: Python :: 3.9",
63
78
  "License :: OSI Approved :: MIT License",
@@ -26,7 +26,6 @@ warning = _app_instance.warning
26
26
  set_user_icon = _app_instance.set_user_icon
27
27
  set_bot_icon = _app_instance.set_bot_icon
28
28
  set_favicon = _app_instance.set_favicon
29
- get_favicon = _app_instance.get_favicon
30
29
  set_project_name = _app_instance.set_project_name
31
30
  set_site_title = _app_instance.set_site_title
32
31
  set_site_logo = _app_instance.set_site_logo
@@ -45,8 +44,8 @@ get_widget_value = _app_instance.get_widget_value
45
44
  save_embed_model = _app_instance.save_embed_model
46
45
  load_embed_model = _app_instance.load_embed_model
47
46
  delete_embed_key = _app_instance.delete_embed_key
48
- set_prompt_profile = _app_instance.set_prompt_profile
49
- set_prompt_instructions = _app_instance.set_prompt_instructions
47
+ set_smxai_identity = _app_instance.set_smxai_identity
48
+ set_smxai_instructions = _app_instance.set_smxai_instructions
50
49
  set_website_description = _app_instance.set_website_description
51
50
  smiv_index = _app_instance.smiv_index
52
51
  smpv_search = _app_instance.smpv_search
@@ -55,6 +54,7 @@ process_query_stream = _app_instance.process_query_stream
55
54
  process_query = _app_instance.process_query
56
55
  embed_query = _app_instance.embed_query
57
56
  enable_user_files = _app_instance.enable_user_files
57
+ enable_registration = _app_instance.enable_registration
58
58
  stream_write = _app_instance.stream_write
59
59
  enable_stream = _app_instance.enable_stream
60
60
  stream = _app_instance.stream
@@ -0,0 +1,24 @@
1
+ # syntaxmatrix/agent_tools.py
2
+ from dataclasses import dataclass
3
+ from typing import Callable, Optional, Dict, Any, List, Literal
4
+
5
+ Phase = Literal["sanitize_early", "domain_patches", "syntax_fixes", "final_repair"]
6
+
7
+ @dataclass
8
+ class CodeTool:
9
+ name: str
10
+ phase: Phase
11
+ fn: Callable[[str, Dict[str, Any]], str]
12
+ when: Optional[Callable[[str, Dict[str, Any]], bool]] = None
13
+ priority: int = 100 # lower runs earlier within the phase
14
+
15
+ class ToolRunner:
16
+ def __init__(self, tools: List[CodeTool]):
17
+ # stable order: phase → priority → name
18
+ self.tools = sorted(tools, key=lambda t: (t.phase, t.priority, t.name))
19
+
20
+ def run(self, code: str, ctx: Dict[str, Any]) -> str:
21
+ for t in self.tools:
22
+ if t.when is None or t.when(code, ctx):
23
+ code = t.fn(code, ctx)
24
+ return code