foundry-mcp 0.3.3__py3-none-any.whl → 0.8.10__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.
- foundry_mcp/__init__.py +7 -1
- foundry_mcp/cli/__init__.py +0 -13
- foundry_mcp/cli/commands/plan.py +10 -3
- foundry_mcp/cli/commands/review.py +19 -4
- foundry_mcp/cli/commands/session.py +1 -8
- foundry_mcp/cli/commands/specs.py +38 -208
- foundry_mcp/cli/context.py +39 -0
- foundry_mcp/cli/output.py +3 -3
- foundry_mcp/config.py +615 -11
- foundry_mcp/core/ai_consultation.py +146 -9
- foundry_mcp/core/batch_operations.py +1196 -0
- foundry_mcp/core/discovery.py +7 -7
- foundry_mcp/core/error_store.py +2 -2
- foundry_mcp/core/intake.py +933 -0
- foundry_mcp/core/llm_config.py +28 -2
- foundry_mcp/core/metrics_store.py +2 -2
- foundry_mcp/core/naming.py +25 -2
- foundry_mcp/core/progress.py +70 -0
- foundry_mcp/core/prometheus.py +0 -13
- foundry_mcp/core/prompts/fidelity_review.py +149 -4
- foundry_mcp/core/prompts/markdown_plan_review.py +5 -1
- foundry_mcp/core/prompts/plan_review.py +5 -1
- foundry_mcp/core/providers/__init__.py +12 -0
- foundry_mcp/core/providers/base.py +39 -0
- foundry_mcp/core/providers/claude.py +51 -48
- foundry_mcp/core/providers/codex.py +70 -60
- foundry_mcp/core/providers/cursor_agent.py +25 -47
- foundry_mcp/core/providers/detectors.py +34 -7
- foundry_mcp/core/providers/gemini.py +69 -58
- foundry_mcp/core/providers/opencode.py +101 -47
- foundry_mcp/core/providers/package-lock.json +4 -4
- foundry_mcp/core/providers/package.json +1 -1
- foundry_mcp/core/providers/validation.py +128 -0
- foundry_mcp/core/research/__init__.py +68 -0
- foundry_mcp/core/research/memory.py +528 -0
- foundry_mcp/core/research/models.py +1220 -0
- foundry_mcp/core/research/providers/__init__.py +40 -0
- foundry_mcp/core/research/providers/base.py +242 -0
- foundry_mcp/core/research/providers/google.py +507 -0
- foundry_mcp/core/research/providers/perplexity.py +442 -0
- foundry_mcp/core/research/providers/semantic_scholar.py +544 -0
- foundry_mcp/core/research/providers/tavily.py +383 -0
- foundry_mcp/core/research/workflows/__init__.py +25 -0
- foundry_mcp/core/research/workflows/base.py +298 -0
- foundry_mcp/core/research/workflows/chat.py +271 -0
- foundry_mcp/core/research/workflows/consensus.py +539 -0
- foundry_mcp/core/research/workflows/deep_research.py +4020 -0
- foundry_mcp/core/research/workflows/ideate.py +682 -0
- foundry_mcp/core/research/workflows/thinkdeep.py +405 -0
- foundry_mcp/core/responses.py +690 -0
- foundry_mcp/core/spec.py +2439 -236
- foundry_mcp/core/task.py +1205 -31
- foundry_mcp/core/testing.py +512 -123
- foundry_mcp/core/validation.py +319 -43
- foundry_mcp/dashboard/components/charts.py +0 -57
- foundry_mcp/dashboard/launcher.py +11 -0
- foundry_mcp/dashboard/views/metrics.py +25 -35
- foundry_mcp/dashboard/views/overview.py +1 -65
- foundry_mcp/resources/specs.py +25 -25
- foundry_mcp/schemas/intake-schema.json +89 -0
- foundry_mcp/schemas/sdd-spec-schema.json +33 -5
- foundry_mcp/server.py +0 -14
- foundry_mcp/tools/unified/__init__.py +39 -18
- foundry_mcp/tools/unified/authoring.py +2371 -248
- foundry_mcp/tools/unified/documentation_helpers.py +69 -6
- foundry_mcp/tools/unified/environment.py +434 -32
- foundry_mcp/tools/unified/error.py +18 -1
- foundry_mcp/tools/unified/lifecycle.py +8 -0
- foundry_mcp/tools/unified/plan.py +133 -2
- foundry_mcp/tools/unified/provider.py +0 -40
- foundry_mcp/tools/unified/research.py +1283 -0
- foundry_mcp/tools/unified/review.py +374 -17
- foundry_mcp/tools/unified/review_helpers.py +16 -1
- foundry_mcp/tools/unified/server.py +9 -24
- foundry_mcp/tools/unified/spec.py +367 -0
- foundry_mcp/tools/unified/task.py +1664 -30
- foundry_mcp/tools/unified/test.py +69 -8
- {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/METADATA +8 -1
- foundry_mcp-0.8.10.dist-info/RECORD +153 -0
- foundry_mcp/cli/flags.py +0 -266
- foundry_mcp/core/feature_flags.py +0 -592
- foundry_mcp-0.3.3.dist-info/RECORD +0 -135
- {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/WHEEL +0 -0
- {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/entry_points.txt +0 -0
- {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/licenses/LICENSE +0 -0
foundry_mcp/core/discovery.py
CHANGED
|
@@ -385,7 +385,7 @@ class ServerCapabilities:
|
|
|
385
385
|
max_batch_size: int = 100
|
|
386
386
|
rate_limit_headers: bool = True
|
|
387
387
|
supported_formats: List[str] = field(default_factory=lambda: ["json"])
|
|
388
|
-
feature_flags_enabled: bool =
|
|
388
|
+
feature_flags_enabled: bool = False
|
|
389
389
|
|
|
390
390
|
def to_dict(self) -> Dict[str, Any]:
|
|
391
391
|
"""
|
|
@@ -925,11 +925,11 @@ LLM_TOOL_METADATA: Dict[str, ToolMetadata] = {
|
|
|
925
925
|
ParameterMetadata(
|
|
926
926
|
name="review_type",
|
|
927
927
|
type=ParameterType.STRING,
|
|
928
|
-
description="Type of review to perform",
|
|
928
|
+
description="Type of review to perform (defaults to config value, typically 'full')",
|
|
929
929
|
required=False,
|
|
930
|
-
default="
|
|
930
|
+
default="full",
|
|
931
931
|
constraints={"enum": ["quick", "full", "security", "feasibility"]},
|
|
932
|
-
examples=["
|
|
932
|
+
examples=["full", "quick", "security"],
|
|
933
933
|
),
|
|
934
934
|
ParameterMetadata(
|
|
935
935
|
name="tools",
|
|
@@ -965,13 +965,13 @@ LLM_TOOL_METADATA: Dict[str, ToolMetadata] = {
|
|
|
965
965
|
related_tools=["review-list-tools", "review-list-plan-tools", "spec-review-fidelity"],
|
|
966
966
|
examples=[
|
|
967
967
|
{
|
|
968
|
-
"description": "
|
|
969
|
-
"input": {"spec_id": "feature-auth-001", "review_type": "
|
|
968
|
+
"description": "Full review of a specification",
|
|
969
|
+
"input": {"spec_id": "feature-auth-001", "review_type": "full"},
|
|
970
970
|
"output": {
|
|
971
971
|
"success": True,
|
|
972
972
|
"data": {
|
|
973
973
|
"spec_id": "feature-auth-001",
|
|
974
|
-
"review_type": "
|
|
974
|
+
"review_type": "full",
|
|
975
975
|
"findings": [],
|
|
976
976
|
"suggestions": ["Consider adding error handling"],
|
|
977
977
|
},
|
foundry_mcp/core/error_store.py
CHANGED
|
@@ -137,7 +137,7 @@ class FileErrorStore(ErrorStore):
|
|
|
137
137
|
for efficient querying. Thread-safe with file locking for concurrent access.
|
|
138
138
|
|
|
139
139
|
Directory structure:
|
|
140
|
-
|
|
140
|
+
~/.foundry-mcp/errors/
|
|
141
141
|
errors.jsonl - Append-only error log
|
|
142
142
|
index.json - Fingerprint -> metadata mapping
|
|
143
143
|
stats.json - Pre-computed statistics (updated periodically)
|
|
@@ -579,7 +579,7 @@ def get_error_store(storage_path: Optional[str | Path] = None) -> ErrorStore:
|
|
|
579
579
|
if _error_store is None:
|
|
580
580
|
if storage_path is None:
|
|
581
581
|
# Default path
|
|
582
|
-
storage_path = Path.home() / ".
|
|
582
|
+
storage_path = Path.home() / ".foundry-mcp" / "errors"
|
|
583
583
|
_error_store = FileErrorStore(storage_path)
|
|
584
584
|
|
|
585
585
|
return _error_store
|