scitex 2.14.0__py3-none-any.whl → 2.15.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.
- scitex/__init__.py +71 -17
- scitex/_env_loader.py +156 -0
- scitex/_mcp_resources/__init__.py +37 -0
- scitex/_mcp_resources/_cheatsheet.py +135 -0
- scitex/_mcp_resources/_figrecipe.py +138 -0
- scitex/_mcp_resources/_formats.py +102 -0
- scitex/_mcp_resources/_modules.py +337 -0
- scitex/_mcp_resources/_session.py +149 -0
- scitex/_mcp_tools/__init__.py +4 -0
- scitex/_mcp_tools/audio.py +66 -0
- scitex/_mcp_tools/diagram.py +11 -95
- scitex/_mcp_tools/introspect.py +210 -0
- scitex/_mcp_tools/plt.py +260 -305
- scitex/_mcp_tools/scholar.py +74 -0
- scitex/_mcp_tools/social.py +27 -0
- scitex/_mcp_tools/template.py +24 -0
- scitex/_mcp_tools/writer.py +17 -210
- scitex/ai/_gen_ai/_PARAMS.py +10 -7
- scitex/ai/classification/reporters/_SingleClassificationReporter.py +45 -1603
- scitex/ai/classification/reporters/_mixins/__init__.py +36 -0
- scitex/ai/classification/reporters/_mixins/_constants.py +67 -0
- scitex/ai/classification/reporters/_mixins/_cv_summary.py +387 -0
- scitex/ai/classification/reporters/_mixins/_feature_importance.py +119 -0
- scitex/ai/classification/reporters/_mixins/_metrics.py +275 -0
- scitex/ai/classification/reporters/_mixins/_plotting.py +179 -0
- scitex/ai/classification/reporters/_mixins/_reports.py +153 -0
- scitex/ai/classification/reporters/_mixins/_storage.py +160 -0
- scitex/ai/classification/timeseries/_TimeSeriesSlidingWindowSplit.py +30 -1550
- scitex/ai/classification/timeseries/_sliding_window_core.py +467 -0
- scitex/ai/classification/timeseries/_sliding_window_plotting.py +369 -0
- scitex/audio/README.md +40 -36
- scitex/audio/__init__.py +129 -61
- scitex/audio/_branding.py +185 -0
- scitex/audio/_mcp/__init__.py +32 -0
- scitex/audio/_mcp/handlers.py +59 -6
- scitex/audio/_mcp/speak_handlers.py +238 -0
- scitex/audio/_relay.py +225 -0
- scitex/audio/_tts.py +18 -10
- scitex/audio/engines/base.py +17 -10
- scitex/audio/engines/elevenlabs_engine.py +7 -2
- scitex/audio/mcp_server.py +228 -75
- scitex/canvas/README.md +1 -1
- scitex/canvas/editor/_dearpygui/__init__.py +25 -0
- scitex/canvas/editor/_dearpygui/_editor.py +147 -0
- scitex/canvas/editor/_dearpygui/_handlers.py +476 -0
- scitex/canvas/editor/_dearpygui/_panels/__init__.py +17 -0
- scitex/canvas/editor/_dearpygui/_panels/_control.py +119 -0
- scitex/canvas/editor/_dearpygui/_panels/_element_controls.py +190 -0
- scitex/canvas/editor/_dearpygui/_panels/_preview.py +43 -0
- scitex/canvas/editor/_dearpygui/_panels/_sections.py +390 -0
- scitex/canvas/editor/_dearpygui/_plotting.py +187 -0
- scitex/canvas/editor/_dearpygui/_rendering.py +504 -0
- scitex/canvas/editor/_dearpygui/_selection.py +295 -0
- scitex/canvas/editor/_dearpygui/_state.py +93 -0
- scitex/canvas/editor/_dearpygui/_utils.py +61 -0
- scitex/canvas/editor/flask_editor/_core/__init__.py +27 -0
- scitex/canvas/editor/flask_editor/_core/_bbox_extraction.py +200 -0
- scitex/canvas/editor/flask_editor/_core/_editor.py +173 -0
- scitex/canvas/editor/flask_editor/_core/_export_helpers.py +353 -0
- scitex/canvas/editor/flask_editor/_core/_routes_basic.py +190 -0
- scitex/canvas/editor/flask_editor/_core/_routes_export.py +332 -0
- scitex/canvas/editor/flask_editor/_core/_routes_panels.py +252 -0
- scitex/canvas/editor/flask_editor/_core/_routes_save.py +218 -0
- scitex/canvas/editor/flask_editor/_core.py +25 -1684
- scitex/canvas/editor/flask_editor/templates/__init__.py +32 -70
- scitex/cli/__init__.py +38 -43
- scitex/cli/audio.py +160 -41
- scitex/cli/capture.py +133 -20
- scitex/cli/introspect.py +488 -0
- scitex/cli/main.py +200 -109
- scitex/cli/mcp.py +60 -34
- scitex/cli/plt.py +414 -0
- scitex/cli/repro.py +15 -8
- scitex/cli/resource.py +15 -8
- scitex/cli/scholar/__init__.py +154 -8
- scitex/cli/scholar/_crossref_scitex.py +296 -0
- scitex/cli/scholar/_fetch.py +25 -3
- scitex/cli/social.py +355 -0
- scitex/cli/stats.py +136 -11
- scitex/cli/template.py +129 -12
- scitex/cli/tex.py +15 -8
- scitex/cli/writer.py +49 -299
- scitex/cloud/__init__.py +41 -2
- scitex/config/README.md +1 -1
- scitex/config/__init__.py +16 -2
- scitex/config/_env_registry.py +256 -0
- scitex/context/__init__.py +22 -0
- scitex/dev/__init__.py +20 -1
- scitex/diagram/__init__.py +42 -19
- scitex/diagram/mcp_server.py +13 -125
- scitex/gen/__init__.py +50 -14
- scitex/gen/_list_packages.py +4 -4
- scitex/introspect/__init__.py +82 -0
- scitex/introspect/_call_graph.py +303 -0
- scitex/introspect/_class_hierarchy.py +163 -0
- scitex/introspect/_core.py +41 -0
- scitex/introspect/_docstring.py +131 -0
- scitex/introspect/_examples.py +113 -0
- scitex/introspect/_imports.py +271 -0
- scitex/{gen/_inspect_module.py → introspect/_list_api.py} +48 -56
- scitex/introspect/_mcp/__init__.py +41 -0
- scitex/introspect/_mcp/handlers.py +233 -0
- scitex/introspect/_members.py +155 -0
- scitex/introspect/_resolve.py +89 -0
- scitex/introspect/_signature.py +131 -0
- scitex/introspect/_source.py +80 -0
- scitex/introspect/_type_hints.py +172 -0
- scitex/io/_save.py +1 -2
- scitex/io/bundle/README.md +1 -1
- scitex/logging/_formatters.py +19 -9
- scitex/mcp_server.py +98 -5
- scitex/os/__init__.py +4 -0
- scitex/{gen → os}/_check_host.py +4 -5
- scitex/plt/__init__.py +245 -550
- scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +5 -10
- scitex/plt/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/plt/gallery/README.md +1 -1
- scitex/plt/utils/_hitmap/__init__.py +82 -0
- scitex/plt/utils/_hitmap/_artist_extraction.py +343 -0
- scitex/plt/utils/_hitmap/_color_application.py +346 -0
- scitex/plt/utils/_hitmap/_color_conversion.py +121 -0
- scitex/plt/utils/_hitmap/_constants.py +40 -0
- scitex/plt/utils/_hitmap/_hitmap_core.py +334 -0
- scitex/plt/utils/_hitmap/_path_extraction.py +357 -0
- scitex/plt/utils/_hitmap/_query.py +113 -0
- scitex/plt/utils/_hitmap.py +46 -1616
- scitex/plt/utils/_metadata/__init__.py +80 -0
- scitex/plt/utils/_metadata/_artists/__init__.py +25 -0
- scitex/plt/utils/_metadata/_artists/_base.py +195 -0
- scitex/plt/utils/_metadata/_artists/_collections.py +356 -0
- scitex/plt/utils/_metadata/_artists/_extract.py +57 -0
- scitex/plt/utils/_metadata/_artists/_images.py +80 -0
- scitex/plt/utils/_metadata/_artists/_lines.py +261 -0
- scitex/plt/utils/_metadata/_artists/_patches.py +247 -0
- scitex/plt/utils/_metadata/_artists/_text.py +106 -0
- scitex/plt/utils/_metadata/_csv.py +416 -0
- scitex/plt/utils/_metadata/_detect.py +225 -0
- scitex/plt/utils/_metadata/_legend.py +127 -0
- scitex/plt/utils/_metadata/_rounding.py +117 -0
- scitex/plt/utils/_metadata/_verification.py +202 -0
- scitex/schema/README.md +1 -1
- scitex/scholar/__init__.py +8 -0
- scitex/scholar/_mcp/crossref_handlers.py +265 -0
- scitex/scholar/core/Scholar.py +63 -1700
- scitex/scholar/core/_mixins/__init__.py +36 -0
- scitex/scholar/core/_mixins/_enrichers.py +270 -0
- scitex/scholar/core/_mixins/_library_handlers.py +100 -0
- scitex/scholar/core/_mixins/_loaders.py +103 -0
- scitex/scholar/core/_mixins/_pdf_download.py +375 -0
- scitex/scholar/core/_mixins/_pipeline.py +312 -0
- scitex/scholar/core/_mixins/_project_handlers.py +125 -0
- scitex/scholar/core/_mixins/_savers.py +69 -0
- scitex/scholar/core/_mixins/_search.py +103 -0
- scitex/scholar/core/_mixins/_services.py +88 -0
- scitex/scholar/core/_mixins/_url_finding.py +105 -0
- scitex/scholar/crossref_scitex.py +367 -0
- scitex/scholar/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/scholar/examples/00_run_all.sh +120 -0
- scitex/scholar/jobs/_executors.py +27 -3
- scitex/scholar/pdf_download/ScholarPDFDownloader.py +38 -416
- scitex/scholar/pdf_download/_cli.py +154 -0
- scitex/scholar/pdf_download/strategies/__init__.py +11 -8
- scitex/scholar/pdf_download/strategies/manual_download_fallback.py +80 -3
- scitex/scholar/pipelines/ScholarPipelineBibTeX.py +73 -121
- scitex/scholar/pipelines/ScholarPipelineParallel.py +80 -138
- scitex/scholar/pipelines/ScholarPipelineSingle.py +43 -63
- scitex/scholar/pipelines/_single_steps.py +71 -36
- scitex/scholar/storage/_LibraryManager.py +97 -1695
- scitex/scholar/storage/_mixins/__init__.py +30 -0
- scitex/scholar/storage/_mixins/_bibtex_handlers.py +128 -0
- scitex/scholar/storage/_mixins/_library_operations.py +218 -0
- scitex/scholar/storage/_mixins/_metadata_conversion.py +226 -0
- scitex/scholar/storage/_mixins/_paper_saving.py +456 -0
- scitex/scholar/storage/_mixins/_resolution.py +376 -0
- scitex/scholar/storage/_mixins/_storage_helpers.py +121 -0
- scitex/scholar/storage/_mixins/_symlink_handlers.py +226 -0
- scitex/security/README.md +3 -3
- scitex/session/README.md +1 -1
- scitex/session/__init__.py +26 -7
- scitex/session/_decorator.py +1 -1
- scitex/sh/README.md +1 -1
- scitex/sh/__init__.py +7 -4
- scitex/social/__init__.py +155 -0
- scitex/social/docs/EXTERNAL_PACKAGE_BRANDING.md +149 -0
- scitex/stats/_mcp/_handlers/__init__.py +31 -0
- scitex/stats/_mcp/_handlers/_corrections.py +113 -0
- scitex/stats/_mcp/_handlers/_descriptive.py +78 -0
- scitex/stats/_mcp/_handlers/_effect_size.py +106 -0
- scitex/stats/_mcp/_handlers/_format.py +94 -0
- scitex/stats/_mcp/_handlers/_normality.py +110 -0
- scitex/stats/_mcp/_handlers/_posthoc.py +224 -0
- scitex/stats/_mcp/_handlers/_power.py +247 -0
- scitex/stats/_mcp/_handlers/_recommend.py +102 -0
- scitex/stats/_mcp/_handlers/_run_test.py +279 -0
- scitex/stats/_mcp/_handlers/_stars.py +48 -0
- scitex/stats/_mcp/handlers.py +19 -1171
- scitex/stats/auto/_stat_style.py +175 -0
- scitex/stats/auto/_style_definitions.py +411 -0
- scitex/stats/auto/_styles.py +22 -620
- scitex/stats/descriptive/__init__.py +11 -8
- scitex/stats/descriptive/_ci.py +39 -0
- scitex/stats/power/_power.py +15 -4
- scitex/str/__init__.py +2 -1
- scitex/str/_title_case.py +63 -0
- scitex/template/README.md +1 -1
- scitex/template/__init__.py +25 -10
- scitex/template/_code_templates.py +147 -0
- scitex/template/_mcp/handlers.py +81 -0
- scitex/template/_mcp/tool_schemas.py +55 -0
- scitex/template/_templates/__init__.py +51 -0
- scitex/template/_templates/audio.py +233 -0
- scitex/template/_templates/canvas.py +312 -0
- scitex/template/_templates/capture.py +268 -0
- scitex/template/_templates/config.py +43 -0
- scitex/template/_templates/diagram.py +294 -0
- scitex/template/_templates/io.py +107 -0
- scitex/template/_templates/module.py +53 -0
- scitex/template/_templates/plt.py +202 -0
- scitex/template/_templates/scholar.py +267 -0
- scitex/template/_templates/session.py +130 -0
- scitex/template/_templates/session_minimal.py +43 -0
- scitex/template/_templates/session_plot.py +67 -0
- scitex/template/_templates/session_stats.py +77 -0
- scitex/template/_templates/stats.py +323 -0
- scitex/template/_templates/writer.py +296 -0
- scitex/template/clone_writer_directory.py +5 -5
- scitex/ui/_backends/_email.py +10 -2
- scitex/ui/_backends/_webhook.py +5 -1
- scitex/web/_search_pubmed.py +10 -6
- scitex/writer/README.md +1 -1
- scitex/writer/__init__.py +43 -34
- scitex/writer/_mcp/handlers.py +11 -744
- scitex/writer/_mcp/tool_schemas.py +5 -335
- scitex-2.15.3.dist-info/METADATA +667 -0
- {scitex-2.14.0.dist-info → scitex-2.15.3.dist-info}/RECORD +241 -120
- scitex/canvas/editor/flask_editor/templates/_scripts.py +0 -4933
- scitex/canvas/editor/flask_editor/templates/_styles.py +0 -1658
- scitex/diagram/_compile.py +0 -312
- scitex/diagram/_diagram.py +0 -355
- scitex/diagram/_mcp/__init__.py +0 -4
- scitex/diagram/_mcp/handlers.py +0 -400
- scitex/diagram/_mcp/tool_schemas.py +0 -157
- scitex/diagram/_presets.py +0 -173
- scitex/diagram/_schema.py +0 -182
- scitex/diagram/_split.py +0 -278
- scitex/gen/_ci.py +0 -12
- scitex/gen/_title_case.py +0 -89
- scitex/plt/_mcp/__init__.py +0 -4
- scitex/plt/_mcp/_handlers_annotation.py +0 -102
- scitex/plt/_mcp/_handlers_figure.py +0 -195
- scitex/plt/_mcp/_handlers_plot.py +0 -252
- scitex/plt/_mcp/_handlers_style.py +0 -219
- scitex/plt/_mcp/handlers.py +0 -74
- scitex/plt/_mcp/tool_schemas.py +0 -497
- scitex/plt/mcp_server.py +0 -231
- scitex/scholar/examples/SUGGESTIONS.md +0 -865
- scitex/scholar/examples/dev.py +0 -38
- scitex-2.14.0.dist-info/METADATA +0 -1238
- /scitex/{gen → context}/_detect_environment.py +0 -0
- /scitex/{gen → context}/_get_notebook_path.py +0 -0
- /scitex/{gen/_shell.py → sh/_shell_legacy.py} +0 -0
- {scitex-2.14.0.dist-info → scitex-2.15.3.dist-info}/WHEEL +0 -0
- {scitex-2.14.0.dist-info → scitex-2.15.3.dist-info}/entry_points.txt +0 -0
- {scitex-2.14.0.dist-info → scitex-2.15.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
# Timestamp: 2026-01-
|
|
3
|
-
# File: src/scitex/writer/_mcp
|
|
4
|
-
# ----------------------------------------
|
|
2
|
+
# Timestamp: 2026-01-20
|
|
3
|
+
# File: src/scitex/writer/_mcp/tool_schemas.py
|
|
5
4
|
|
|
6
5
|
"""
|
|
7
6
|
MCP Tool schemas for SciTeX Writer module.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
- clone_project: Create new writer project from template
|
|
11
|
-
- compile_manuscript: Compile manuscript to PDF
|
|
12
|
-
- compile_supplementary: Compile supplementary materials to PDF
|
|
13
|
-
- compile_revision: Compile revision document with optional change tracking
|
|
14
|
-
- get_project_info: Get project structure and status
|
|
15
|
-
- get_pdf: Get path to compiled PDF
|
|
8
|
+
Provides usage instructions for shell-based compilation workflow.
|
|
16
9
|
"""
|
|
17
10
|
|
|
18
11
|
from __future__ import annotations
|
|
@@ -23,338 +16,15 @@ import mcp.types as types
|
|
|
23
16
|
def get_tool_schemas() -> list[types.Tool]:
|
|
24
17
|
"""Return list of available MCP tools for writer operations."""
|
|
25
18
|
return [
|
|
26
|
-
# Clone writer project
|
|
27
19
|
types.Tool(
|
|
28
|
-
name="
|
|
29
|
-
description="
|
|
30
|
-
inputSchema={
|
|
31
|
-
"type": "object",
|
|
32
|
-
"properties": {
|
|
33
|
-
"project_dir": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"description": "Path to create project directory",
|
|
36
|
-
},
|
|
37
|
-
"git_strategy": {
|
|
38
|
-
"type": "string",
|
|
39
|
-
"description": "Git initialization strategy",
|
|
40
|
-
"enum": ["child", "parent", "origin", "none"],
|
|
41
|
-
"default": "child",
|
|
42
|
-
},
|
|
43
|
-
"branch": {
|
|
44
|
-
"type": "string",
|
|
45
|
-
"description": "Specific branch of template to clone (optional)",
|
|
46
|
-
},
|
|
47
|
-
"tag": {
|
|
48
|
-
"type": "string",
|
|
49
|
-
"description": "Specific tag/release of template to clone (optional)",
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
"required": ["project_dir"],
|
|
53
|
-
},
|
|
54
|
-
),
|
|
55
|
-
# Compile manuscript
|
|
56
|
-
types.Tool(
|
|
57
|
-
name="compile_manuscript",
|
|
58
|
-
description="Compile manuscript LaTeX document to PDF",
|
|
59
|
-
inputSchema={
|
|
60
|
-
"type": "object",
|
|
61
|
-
"properties": {
|
|
62
|
-
"project_dir": {
|
|
63
|
-
"type": "string",
|
|
64
|
-
"description": "Path to writer project directory",
|
|
65
|
-
},
|
|
66
|
-
"timeout": {
|
|
67
|
-
"type": "integer",
|
|
68
|
-
"description": "Maximum compilation time in seconds (default: 300)",
|
|
69
|
-
"default": 300,
|
|
70
|
-
},
|
|
71
|
-
"no_figs": {
|
|
72
|
-
"type": "boolean",
|
|
73
|
-
"description": "Exclude figures for quick compilation (default: false)",
|
|
74
|
-
"default": False,
|
|
75
|
-
},
|
|
76
|
-
"ppt2tif": {
|
|
77
|
-
"type": "boolean",
|
|
78
|
-
"description": "Convert PowerPoint files to TIF format (WSL only, default: false)",
|
|
79
|
-
"default": False,
|
|
80
|
-
},
|
|
81
|
-
"crop_tif": {
|
|
82
|
-
"type": "boolean",
|
|
83
|
-
"description": "Crop TIF images to remove excess whitespace (default: false)",
|
|
84
|
-
"default": False,
|
|
85
|
-
},
|
|
86
|
-
"quiet": {
|
|
87
|
-
"type": "boolean",
|
|
88
|
-
"description": "Suppress detailed LaTeX compilation logs (default: false)",
|
|
89
|
-
"default": False,
|
|
90
|
-
},
|
|
91
|
-
"verbose": {
|
|
92
|
-
"type": "boolean",
|
|
93
|
-
"description": "Show verbose LaTeX compilation output (default: false)",
|
|
94
|
-
"default": False,
|
|
95
|
-
},
|
|
96
|
-
"force": {
|
|
97
|
-
"type": "boolean",
|
|
98
|
-
"description": "Force recompilation, ignore cache (default: false)",
|
|
99
|
-
"default": False,
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
"required": ["project_dir"],
|
|
103
|
-
},
|
|
104
|
-
),
|
|
105
|
-
# Compile supplementary
|
|
106
|
-
types.Tool(
|
|
107
|
-
name="compile_supplementary",
|
|
108
|
-
description="Compile supplementary materials LaTeX document to PDF",
|
|
109
|
-
inputSchema={
|
|
110
|
-
"type": "object",
|
|
111
|
-
"properties": {
|
|
112
|
-
"project_dir": {
|
|
113
|
-
"type": "string",
|
|
114
|
-
"description": "Path to writer project directory",
|
|
115
|
-
},
|
|
116
|
-
"timeout": {
|
|
117
|
-
"type": "integer",
|
|
118
|
-
"description": "Maximum compilation time in seconds (default: 300)",
|
|
119
|
-
"default": 300,
|
|
120
|
-
},
|
|
121
|
-
"no_figs": {
|
|
122
|
-
"type": "boolean",
|
|
123
|
-
"description": "Exclude figures for quick compilation (default: false)",
|
|
124
|
-
"default": False,
|
|
125
|
-
},
|
|
126
|
-
"ppt2tif": {
|
|
127
|
-
"type": "boolean",
|
|
128
|
-
"description": "Convert PowerPoint files to TIF format (WSL only, default: false)",
|
|
129
|
-
"default": False,
|
|
130
|
-
},
|
|
131
|
-
"crop_tif": {
|
|
132
|
-
"type": "boolean",
|
|
133
|
-
"description": "Crop TIF images to remove excess whitespace (default: false)",
|
|
134
|
-
"default": False,
|
|
135
|
-
},
|
|
136
|
-
"quiet": {
|
|
137
|
-
"type": "boolean",
|
|
138
|
-
"description": "Suppress detailed LaTeX compilation logs (default: false)",
|
|
139
|
-
"default": False,
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
"required": ["project_dir"],
|
|
143
|
-
},
|
|
144
|
-
),
|
|
145
|
-
# Compile revision
|
|
146
|
-
types.Tool(
|
|
147
|
-
name="compile_revision",
|
|
148
|
-
description="Compile revision document to PDF with optional change tracking",
|
|
149
|
-
inputSchema={
|
|
150
|
-
"type": "object",
|
|
151
|
-
"properties": {
|
|
152
|
-
"project_dir": {
|
|
153
|
-
"type": "string",
|
|
154
|
-
"description": "Path to writer project directory",
|
|
155
|
-
},
|
|
156
|
-
"track_changes": {
|
|
157
|
-
"type": "boolean",
|
|
158
|
-
"description": "Enable change tracking in output PDF (default: false)",
|
|
159
|
-
"default": False,
|
|
160
|
-
},
|
|
161
|
-
"timeout": {
|
|
162
|
-
"type": "integer",
|
|
163
|
-
"description": "Maximum compilation time in seconds (default: 300)",
|
|
164
|
-
"default": 300,
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
"required": ["project_dir"],
|
|
168
|
-
},
|
|
169
|
-
),
|
|
170
|
-
# Get project info
|
|
171
|
-
types.Tool(
|
|
172
|
-
name="get_project_info",
|
|
173
|
-
description="Get writer project structure and status information",
|
|
174
|
-
inputSchema={
|
|
175
|
-
"type": "object",
|
|
176
|
-
"properties": {
|
|
177
|
-
"project_dir": {
|
|
178
|
-
"type": "string",
|
|
179
|
-
"description": "Path to writer project directory",
|
|
180
|
-
},
|
|
181
|
-
},
|
|
182
|
-
"required": ["project_dir"],
|
|
183
|
-
},
|
|
184
|
-
),
|
|
185
|
-
# Get PDF path
|
|
186
|
-
types.Tool(
|
|
187
|
-
name="get_pdf",
|
|
188
|
-
description="Get path to compiled PDF for a document type",
|
|
189
|
-
inputSchema={
|
|
190
|
-
"type": "object",
|
|
191
|
-
"properties": {
|
|
192
|
-
"project_dir": {
|
|
193
|
-
"type": "string",
|
|
194
|
-
"description": "Path to writer project directory",
|
|
195
|
-
},
|
|
196
|
-
"doc_type": {
|
|
197
|
-
"type": "string",
|
|
198
|
-
"description": "Document type",
|
|
199
|
-
"enum": ["manuscript", "supplementary", "revision"],
|
|
200
|
-
"default": "manuscript",
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
"required": ["project_dir"],
|
|
204
|
-
},
|
|
205
|
-
),
|
|
206
|
-
# List document types
|
|
207
|
-
types.Tool(
|
|
208
|
-
name="list_document_types",
|
|
209
|
-
description="List available document types in a writer project",
|
|
20
|
+
name="writer_usage",
|
|
21
|
+
description="[writer] Get usage guide for SciTeX Writer LaTeX manuscript compilation system.",
|
|
210
22
|
inputSchema={
|
|
211
23
|
"type": "object",
|
|
212
24
|
"properties": {},
|
|
213
25
|
"required": [],
|
|
214
26
|
},
|
|
215
27
|
),
|
|
216
|
-
# CSV to LaTeX conversion
|
|
217
|
-
types.Tool(
|
|
218
|
-
name="csv_to_latex",
|
|
219
|
-
description="Convert CSV file to LaTeX table format",
|
|
220
|
-
inputSchema={
|
|
221
|
-
"type": "object",
|
|
222
|
-
"properties": {
|
|
223
|
-
"csv_path": {
|
|
224
|
-
"type": "string",
|
|
225
|
-
"description": "Path to CSV file",
|
|
226
|
-
},
|
|
227
|
-
"output_path": {
|
|
228
|
-
"type": "string",
|
|
229
|
-
"description": "Output path for LaTeX file (optional)",
|
|
230
|
-
},
|
|
231
|
-
"caption": {
|
|
232
|
-
"type": "string",
|
|
233
|
-
"description": "Table caption (optional)",
|
|
234
|
-
},
|
|
235
|
-
"label": {
|
|
236
|
-
"type": "string",
|
|
237
|
-
"description": "Table label for referencing (optional)",
|
|
238
|
-
},
|
|
239
|
-
"longtable": {
|
|
240
|
-
"type": "boolean",
|
|
241
|
-
"description": "Use longtable for multi-page tables (default: false)",
|
|
242
|
-
"default": False,
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
"required": ["csv_path"],
|
|
246
|
-
},
|
|
247
|
-
),
|
|
248
|
-
# LaTeX to CSV conversion
|
|
249
|
-
types.Tool(
|
|
250
|
-
name="latex_to_csv",
|
|
251
|
-
description="Convert LaTeX table to CSV format",
|
|
252
|
-
inputSchema={
|
|
253
|
-
"type": "object",
|
|
254
|
-
"properties": {
|
|
255
|
-
"latex_path": {
|
|
256
|
-
"type": "string",
|
|
257
|
-
"description": "Path to LaTeX file containing table",
|
|
258
|
-
},
|
|
259
|
-
"output_path": {
|
|
260
|
-
"type": "string",
|
|
261
|
-
"description": "Output path for CSV file (optional)",
|
|
262
|
-
},
|
|
263
|
-
"table_index": {
|
|
264
|
-
"type": "integer",
|
|
265
|
-
"description": "Index of table to extract if multiple exist (default: 0)",
|
|
266
|
-
"default": 0,
|
|
267
|
-
},
|
|
268
|
-
},
|
|
269
|
-
"required": ["latex_path"],
|
|
270
|
-
},
|
|
271
|
-
),
|
|
272
|
-
# PDF to image conversion
|
|
273
|
-
types.Tool(
|
|
274
|
-
name="pdf_to_images",
|
|
275
|
-
description="Render PDF pages as images. Useful for creating figures from PDF or extracting specific pages.",
|
|
276
|
-
inputSchema={
|
|
277
|
-
"type": "object",
|
|
278
|
-
"properties": {
|
|
279
|
-
"pdf_path": {
|
|
280
|
-
"type": "string",
|
|
281
|
-
"description": "Path to PDF file",
|
|
282
|
-
},
|
|
283
|
-
"output_dir": {
|
|
284
|
-
"type": "string",
|
|
285
|
-
"description": "Output directory for images (uses temp if not specified)",
|
|
286
|
-
},
|
|
287
|
-
"pages": {
|
|
288
|
-
"oneOf": [
|
|
289
|
-
{"type": "integer"},
|
|
290
|
-
{"type": "array", "items": {"type": "integer"}},
|
|
291
|
-
],
|
|
292
|
-
"description": "Page(s) to render (0-indexed). If not specified, renders all pages.",
|
|
293
|
-
},
|
|
294
|
-
"dpi": {
|
|
295
|
-
"type": "integer",
|
|
296
|
-
"description": "Resolution in DPI (default: 150)",
|
|
297
|
-
"default": 150,
|
|
298
|
-
},
|
|
299
|
-
"format": {
|
|
300
|
-
"type": "string",
|
|
301
|
-
"description": "Output format",
|
|
302
|
-
"enum": ["png", "jpg"],
|
|
303
|
-
"default": "png",
|
|
304
|
-
},
|
|
305
|
-
},
|
|
306
|
-
"required": ["pdf_path"],
|
|
307
|
-
},
|
|
308
|
-
),
|
|
309
|
-
# List figures
|
|
310
|
-
types.Tool(
|
|
311
|
-
name="list_figures",
|
|
312
|
-
description="List all figures in a writer project directory",
|
|
313
|
-
inputSchema={
|
|
314
|
-
"type": "object",
|
|
315
|
-
"properties": {
|
|
316
|
-
"project_dir": {
|
|
317
|
-
"type": "string",
|
|
318
|
-
"description": "Path to writer project directory",
|
|
319
|
-
},
|
|
320
|
-
"extensions": {
|
|
321
|
-
"type": "array",
|
|
322
|
-
"items": {"type": "string"},
|
|
323
|
-
"description": "File extensions to include (e.g., ['.png', '.pdf']). Uses common formats if not specified.",
|
|
324
|
-
},
|
|
325
|
-
},
|
|
326
|
-
"required": ["project_dir"],
|
|
327
|
-
},
|
|
328
|
-
),
|
|
329
|
-
# Convert figure format
|
|
330
|
-
types.Tool(
|
|
331
|
-
name="convert_figure",
|
|
332
|
-
description="Convert figure between formats (e.g., PDF to PNG, PNG to JPG)",
|
|
333
|
-
inputSchema={
|
|
334
|
-
"type": "object",
|
|
335
|
-
"properties": {
|
|
336
|
-
"input_path": {
|
|
337
|
-
"type": "string",
|
|
338
|
-
"description": "Input figure path",
|
|
339
|
-
},
|
|
340
|
-
"output_path": {
|
|
341
|
-
"type": "string",
|
|
342
|
-
"description": "Output figure path (format determined by extension)",
|
|
343
|
-
},
|
|
344
|
-
"dpi": {
|
|
345
|
-
"type": "integer",
|
|
346
|
-
"description": "Resolution for PDF rasterization (default: 300)",
|
|
347
|
-
"default": 300,
|
|
348
|
-
},
|
|
349
|
-
"quality": {
|
|
350
|
-
"type": "integer",
|
|
351
|
-
"description": "JPEG quality 1-100 (default: 95)",
|
|
352
|
-
"default": 95,
|
|
353
|
-
},
|
|
354
|
-
},
|
|
355
|
-
"required": ["input_path", "output_path"],
|
|
356
|
-
},
|
|
357
|
-
),
|
|
358
28
|
]
|
|
359
29
|
|
|
360
30
|
|