skill-seekers 2.7.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.
Files changed (79) hide show
  1. skill_seekers/__init__.py +22 -0
  2. skill_seekers/cli/__init__.py +39 -0
  3. skill_seekers/cli/adaptors/__init__.py +120 -0
  4. skill_seekers/cli/adaptors/base.py +221 -0
  5. skill_seekers/cli/adaptors/claude.py +485 -0
  6. skill_seekers/cli/adaptors/gemini.py +453 -0
  7. skill_seekers/cli/adaptors/markdown.py +269 -0
  8. skill_seekers/cli/adaptors/openai.py +503 -0
  9. skill_seekers/cli/ai_enhancer.py +310 -0
  10. skill_seekers/cli/api_reference_builder.py +373 -0
  11. skill_seekers/cli/architectural_pattern_detector.py +525 -0
  12. skill_seekers/cli/code_analyzer.py +1462 -0
  13. skill_seekers/cli/codebase_scraper.py +1225 -0
  14. skill_seekers/cli/config_command.py +563 -0
  15. skill_seekers/cli/config_enhancer.py +431 -0
  16. skill_seekers/cli/config_extractor.py +871 -0
  17. skill_seekers/cli/config_manager.py +452 -0
  18. skill_seekers/cli/config_validator.py +394 -0
  19. skill_seekers/cli/conflict_detector.py +528 -0
  20. skill_seekers/cli/constants.py +72 -0
  21. skill_seekers/cli/dependency_analyzer.py +757 -0
  22. skill_seekers/cli/doc_scraper.py +2332 -0
  23. skill_seekers/cli/enhance_skill.py +488 -0
  24. skill_seekers/cli/enhance_skill_local.py +1096 -0
  25. skill_seekers/cli/enhance_status.py +194 -0
  26. skill_seekers/cli/estimate_pages.py +433 -0
  27. skill_seekers/cli/generate_router.py +1209 -0
  28. skill_seekers/cli/github_fetcher.py +534 -0
  29. skill_seekers/cli/github_scraper.py +1466 -0
  30. skill_seekers/cli/guide_enhancer.py +723 -0
  31. skill_seekers/cli/how_to_guide_builder.py +1267 -0
  32. skill_seekers/cli/install_agent.py +461 -0
  33. skill_seekers/cli/install_skill.py +178 -0
  34. skill_seekers/cli/language_detector.py +614 -0
  35. skill_seekers/cli/llms_txt_detector.py +60 -0
  36. skill_seekers/cli/llms_txt_downloader.py +104 -0
  37. skill_seekers/cli/llms_txt_parser.py +150 -0
  38. skill_seekers/cli/main.py +558 -0
  39. skill_seekers/cli/markdown_cleaner.py +132 -0
  40. skill_seekers/cli/merge_sources.py +806 -0
  41. skill_seekers/cli/package_multi.py +77 -0
  42. skill_seekers/cli/package_skill.py +241 -0
  43. skill_seekers/cli/pattern_recognizer.py +1825 -0
  44. skill_seekers/cli/pdf_extractor_poc.py +1166 -0
  45. skill_seekers/cli/pdf_scraper.py +617 -0
  46. skill_seekers/cli/quality_checker.py +519 -0
  47. skill_seekers/cli/rate_limit_handler.py +438 -0
  48. skill_seekers/cli/resume_command.py +160 -0
  49. skill_seekers/cli/run_tests.py +230 -0
  50. skill_seekers/cli/setup_wizard.py +93 -0
  51. skill_seekers/cli/split_config.py +390 -0
  52. skill_seekers/cli/swift_patterns.py +560 -0
  53. skill_seekers/cli/test_example_extractor.py +1081 -0
  54. skill_seekers/cli/test_unified_simple.py +179 -0
  55. skill_seekers/cli/unified_codebase_analyzer.py +572 -0
  56. skill_seekers/cli/unified_scraper.py +932 -0
  57. skill_seekers/cli/unified_skill_builder.py +1605 -0
  58. skill_seekers/cli/upload_skill.py +162 -0
  59. skill_seekers/cli/utils.py +432 -0
  60. skill_seekers/mcp/__init__.py +33 -0
  61. skill_seekers/mcp/agent_detector.py +316 -0
  62. skill_seekers/mcp/git_repo.py +273 -0
  63. skill_seekers/mcp/server.py +231 -0
  64. skill_seekers/mcp/server_fastmcp.py +1249 -0
  65. skill_seekers/mcp/server_legacy.py +2302 -0
  66. skill_seekers/mcp/source_manager.py +285 -0
  67. skill_seekers/mcp/tools/__init__.py +115 -0
  68. skill_seekers/mcp/tools/config_tools.py +251 -0
  69. skill_seekers/mcp/tools/packaging_tools.py +826 -0
  70. skill_seekers/mcp/tools/scraping_tools.py +842 -0
  71. skill_seekers/mcp/tools/source_tools.py +828 -0
  72. skill_seekers/mcp/tools/splitting_tools.py +212 -0
  73. skill_seekers/py.typed +0 -0
  74. skill_seekers-2.7.3.dist-info/METADATA +2027 -0
  75. skill_seekers-2.7.3.dist-info/RECORD +79 -0
  76. skill_seekers-2.7.3.dist-info/WHEEL +5 -0
  77. skill_seekers-2.7.3.dist-info/entry_points.txt +19 -0
  78. skill_seekers-2.7.3.dist-info/licenses/LICENSE +21 -0
  79. skill_seekers-2.7.3.dist-info/top_level.txt +1 -0
@@ -0,0 +1,231 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Skill Seeker MCP Server - Compatibility Shim
4
+
5
+ This file provides backward compatibility by delegating to the new server_fastmcp.py implementation.
6
+
7
+ For new installations, use server_fastmcp.py directly:
8
+ python -m skill_seekers.mcp.server_fastmcp
9
+
10
+ This shim will be deprecated in v3.0.0 (6+ months after v2.4.0 release).
11
+ """
12
+
13
+ import sys
14
+ import warnings
15
+
16
+ # Show deprecation warning (can be disabled with PYTHONWARNINGS=ignore)
17
+ warnings.warn(
18
+ "The legacy server.py is deprecated and will be removed in v3.0.0. "
19
+ "Please update your MCP configuration to use 'server_fastmcp' instead:\n"
20
+ " OLD: python -m skill_seekers.mcp.server\n"
21
+ " NEW: python -m skill_seekers.mcp.server_fastmcp\n"
22
+ "The new server provides the same functionality with improved performance.",
23
+ DeprecationWarning,
24
+ stacklevel=2,
25
+ )
26
+
27
+ # Re-export tool functions for backward compatibility with tests
28
+ try:
29
+ from skill_seekers.mcp.tools.config_tools import (
30
+ generate_config as generate_config_tool,
31
+ )
32
+ from skill_seekers.mcp.tools.config_tools import (
33
+ list_configs as list_configs_tool,
34
+ )
35
+ from skill_seekers.mcp.tools.config_tools import (
36
+ validate_config as validate_config_tool,
37
+ )
38
+ from skill_seekers.mcp.tools.packaging_tools import (
39
+ install_skill_tool,
40
+ package_skill_tool,
41
+ upload_skill_tool,
42
+ )
43
+ from skill_seekers.mcp.tools.scraping_tools import (
44
+ detect_patterns_tool,
45
+ estimate_pages_tool,
46
+ extract_config_patterns_tool,
47
+ scrape_docs_tool,
48
+ scrape_github_tool,
49
+ scrape_pdf_tool,
50
+ )
51
+ from skill_seekers.mcp.tools.source_tools import (
52
+ add_config_source_tool,
53
+ fetch_config_tool,
54
+ list_config_sources_tool,
55
+ remove_config_source_tool,
56
+ submit_config_tool,
57
+ )
58
+ from skill_seekers.mcp.tools.splitting_tools import (
59
+ generate_router as generate_router_tool,
60
+ )
61
+ from skill_seekers.mcp.tools.splitting_tools import (
62
+ split_config as split_config_tool,
63
+ )
64
+
65
+ # For test compatibility - create call_tool router function
66
+ async def call_tool(name: str, arguments: dict):
67
+ """Route tool calls to appropriate handlers (backward compatibility)."""
68
+ from mcp.types import TextContent
69
+
70
+ try:
71
+ if name == "generate_config":
72
+ return await generate_config_tool(arguments)
73
+ elif name == "estimate_pages":
74
+ return await estimate_pages_tool(arguments)
75
+ elif name == "scrape_docs":
76
+ return await scrape_docs_tool(arguments)
77
+ elif name == "package_skill":
78
+ return await package_skill_tool(arguments)
79
+ elif name == "upload_skill":
80
+ return await upload_skill_tool(arguments)
81
+ elif name == "list_configs":
82
+ return await list_configs_tool(arguments)
83
+ elif name == "validate_config":
84
+ return await validate_config_tool(arguments)
85
+ elif name == "split_config":
86
+ return await split_config_tool(arguments)
87
+ elif name == "generate_router":
88
+ return await generate_router_tool(arguments)
89
+ elif name == "scrape_pdf":
90
+ return await scrape_pdf_tool(arguments)
91
+ elif name == "scrape_github":
92
+ return await scrape_github_tool(arguments)
93
+ elif name == "fetch_config":
94
+ return await fetch_config_tool(arguments)
95
+ elif name == "submit_config":
96
+ return await submit_config_tool(arguments)
97
+ elif name == "add_config_source":
98
+ return await add_config_source_tool(arguments)
99
+ elif name == "list_config_sources":
100
+ return await list_config_sources_tool(arguments)
101
+ elif name == "remove_config_source":
102
+ return await remove_config_source_tool(arguments)
103
+ elif name == "install_skill":
104
+ return await install_skill_tool(arguments)
105
+ elif name == "detect_patterns":
106
+ return await detect_patterns_tool(arguments)
107
+ elif name == "extract_config_patterns":
108
+ return await extract_config_patterns_tool(arguments)
109
+ else:
110
+ return [TextContent(type="text", text=f"Unknown tool: {name}")]
111
+ except Exception as e:
112
+ return [TextContent(type="text", text=f"Error: {str(e)}")]
113
+
114
+ # For test compatibility - create a mock list_tools function
115
+ async def list_tools():
116
+ """Mock list_tools for backward compatibility with tests."""
117
+ from mcp.types import Tool
118
+
119
+ tools = [
120
+ Tool(
121
+ name="generate_config",
122
+ description="Generate config file",
123
+ inputSchema={"type": "object", "properties": {}},
124
+ ),
125
+ Tool(
126
+ name="list_configs",
127
+ description="List available configs",
128
+ inputSchema={"type": "object", "properties": {}},
129
+ ),
130
+ Tool(
131
+ name="validate_config",
132
+ description="Validate config file",
133
+ inputSchema={"type": "object", "properties": {}},
134
+ ),
135
+ Tool(
136
+ name="estimate_pages",
137
+ description="Estimate page count",
138
+ inputSchema={"type": "object", "properties": {}},
139
+ ),
140
+ Tool(
141
+ name="scrape_docs",
142
+ description="Scrape documentation",
143
+ inputSchema={"type": "object", "properties": {}},
144
+ ),
145
+ Tool(
146
+ name="scrape_github",
147
+ description="Scrape GitHub repository",
148
+ inputSchema={"type": "object", "properties": {}},
149
+ ),
150
+ Tool(
151
+ name="scrape_pdf",
152
+ description="Scrape PDF file",
153
+ inputSchema={"type": "object", "properties": {}},
154
+ ),
155
+ Tool(
156
+ name="package_skill",
157
+ description="Package skill into .zip",
158
+ inputSchema={"type": "object", "properties": {}},
159
+ ),
160
+ Tool(
161
+ name="upload_skill",
162
+ description="Upload skill to Claude",
163
+ inputSchema={"type": "object", "properties": {}},
164
+ ),
165
+ Tool(
166
+ name="install_skill",
167
+ description="Install skill",
168
+ inputSchema={"type": "object", "properties": {}},
169
+ ),
170
+ Tool(
171
+ name="split_config",
172
+ description="Split large config",
173
+ inputSchema={"type": "object", "properties": {}},
174
+ ),
175
+ Tool(
176
+ name="generate_router",
177
+ description="Generate router skill",
178
+ inputSchema={"type": "object", "properties": {}},
179
+ ),
180
+ Tool(
181
+ name="fetch_config",
182
+ description="Fetch config from source",
183
+ inputSchema={"type": "object", "properties": {}},
184
+ ),
185
+ Tool(
186
+ name="submit_config",
187
+ description="Submit config to community",
188
+ inputSchema={"type": "object", "properties": {}},
189
+ ),
190
+ Tool(
191
+ name="add_config_source",
192
+ description="Add config source",
193
+ inputSchema={"type": "object", "properties": {}},
194
+ ),
195
+ Tool(
196
+ name="list_config_sources",
197
+ description="List config sources",
198
+ inputSchema={"type": "object", "properties": {}},
199
+ ),
200
+ Tool(
201
+ name="remove_config_source",
202
+ description="Remove config source",
203
+ inputSchema={"type": "object", "properties": {}},
204
+ ),
205
+ Tool(
206
+ name="extract_config_patterns",
207
+ description="Extract configuration patterns from config files",
208
+ inputSchema={"type": "object", "properties": {}},
209
+ ),
210
+ ]
211
+ return tools
212
+
213
+ except ImportError:
214
+ # If imports fail, provide empty stubs
215
+ pass
216
+
217
+ # Delegate to the new FastMCP implementation
218
+ if __name__ == "__main__":
219
+ try:
220
+ from skill_seekers.mcp import server_fastmcp
221
+
222
+ # Run the new server
223
+ server_fastmcp.main()
224
+ except ImportError as e:
225
+ print(f"❌ Error: Could not import server_fastmcp: {e}", file=sys.stderr)
226
+ print("Ensure the package is installed correctly:", file=sys.stderr)
227
+ print(" pip install -e .", file=sys.stderr)
228
+ sys.exit(1)
229
+ except Exception as e:
230
+ print(f"❌ Error running server: {e}", file=sys.stderr)
231
+ sys.exit(1)