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.
Files changed (85) hide show
  1. foundry_mcp/__init__.py +7 -1
  2. foundry_mcp/cli/__init__.py +0 -13
  3. foundry_mcp/cli/commands/plan.py +10 -3
  4. foundry_mcp/cli/commands/review.py +19 -4
  5. foundry_mcp/cli/commands/session.py +1 -8
  6. foundry_mcp/cli/commands/specs.py +38 -208
  7. foundry_mcp/cli/context.py +39 -0
  8. foundry_mcp/cli/output.py +3 -3
  9. foundry_mcp/config.py +615 -11
  10. foundry_mcp/core/ai_consultation.py +146 -9
  11. foundry_mcp/core/batch_operations.py +1196 -0
  12. foundry_mcp/core/discovery.py +7 -7
  13. foundry_mcp/core/error_store.py +2 -2
  14. foundry_mcp/core/intake.py +933 -0
  15. foundry_mcp/core/llm_config.py +28 -2
  16. foundry_mcp/core/metrics_store.py +2 -2
  17. foundry_mcp/core/naming.py +25 -2
  18. foundry_mcp/core/progress.py +70 -0
  19. foundry_mcp/core/prometheus.py +0 -13
  20. foundry_mcp/core/prompts/fidelity_review.py +149 -4
  21. foundry_mcp/core/prompts/markdown_plan_review.py +5 -1
  22. foundry_mcp/core/prompts/plan_review.py +5 -1
  23. foundry_mcp/core/providers/__init__.py +12 -0
  24. foundry_mcp/core/providers/base.py +39 -0
  25. foundry_mcp/core/providers/claude.py +51 -48
  26. foundry_mcp/core/providers/codex.py +70 -60
  27. foundry_mcp/core/providers/cursor_agent.py +25 -47
  28. foundry_mcp/core/providers/detectors.py +34 -7
  29. foundry_mcp/core/providers/gemini.py +69 -58
  30. foundry_mcp/core/providers/opencode.py +101 -47
  31. foundry_mcp/core/providers/package-lock.json +4 -4
  32. foundry_mcp/core/providers/package.json +1 -1
  33. foundry_mcp/core/providers/validation.py +128 -0
  34. foundry_mcp/core/research/__init__.py +68 -0
  35. foundry_mcp/core/research/memory.py +528 -0
  36. foundry_mcp/core/research/models.py +1220 -0
  37. foundry_mcp/core/research/providers/__init__.py +40 -0
  38. foundry_mcp/core/research/providers/base.py +242 -0
  39. foundry_mcp/core/research/providers/google.py +507 -0
  40. foundry_mcp/core/research/providers/perplexity.py +442 -0
  41. foundry_mcp/core/research/providers/semantic_scholar.py +544 -0
  42. foundry_mcp/core/research/providers/tavily.py +383 -0
  43. foundry_mcp/core/research/workflows/__init__.py +25 -0
  44. foundry_mcp/core/research/workflows/base.py +298 -0
  45. foundry_mcp/core/research/workflows/chat.py +271 -0
  46. foundry_mcp/core/research/workflows/consensus.py +539 -0
  47. foundry_mcp/core/research/workflows/deep_research.py +4020 -0
  48. foundry_mcp/core/research/workflows/ideate.py +682 -0
  49. foundry_mcp/core/research/workflows/thinkdeep.py +405 -0
  50. foundry_mcp/core/responses.py +690 -0
  51. foundry_mcp/core/spec.py +2439 -236
  52. foundry_mcp/core/task.py +1205 -31
  53. foundry_mcp/core/testing.py +512 -123
  54. foundry_mcp/core/validation.py +319 -43
  55. foundry_mcp/dashboard/components/charts.py +0 -57
  56. foundry_mcp/dashboard/launcher.py +11 -0
  57. foundry_mcp/dashboard/views/metrics.py +25 -35
  58. foundry_mcp/dashboard/views/overview.py +1 -65
  59. foundry_mcp/resources/specs.py +25 -25
  60. foundry_mcp/schemas/intake-schema.json +89 -0
  61. foundry_mcp/schemas/sdd-spec-schema.json +33 -5
  62. foundry_mcp/server.py +0 -14
  63. foundry_mcp/tools/unified/__init__.py +39 -18
  64. foundry_mcp/tools/unified/authoring.py +2371 -248
  65. foundry_mcp/tools/unified/documentation_helpers.py +69 -6
  66. foundry_mcp/tools/unified/environment.py +434 -32
  67. foundry_mcp/tools/unified/error.py +18 -1
  68. foundry_mcp/tools/unified/lifecycle.py +8 -0
  69. foundry_mcp/tools/unified/plan.py +133 -2
  70. foundry_mcp/tools/unified/provider.py +0 -40
  71. foundry_mcp/tools/unified/research.py +1283 -0
  72. foundry_mcp/tools/unified/review.py +374 -17
  73. foundry_mcp/tools/unified/review_helpers.py +16 -1
  74. foundry_mcp/tools/unified/server.py +9 -24
  75. foundry_mcp/tools/unified/spec.py +367 -0
  76. foundry_mcp/tools/unified/task.py +1664 -30
  77. foundry_mcp/tools/unified/test.py +69 -8
  78. {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/METADATA +8 -1
  79. foundry_mcp-0.8.10.dist-info/RECORD +153 -0
  80. foundry_mcp/cli/flags.py +0 -266
  81. foundry_mcp/core/feature_flags.py +0 -592
  82. foundry_mcp-0.3.3.dist-info/RECORD +0 -135
  83. {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/WHEEL +0 -0
  84. {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/entry_points.txt +0 -0
  85. {foundry_mcp-0.3.3.dist-info → foundry_mcp-0.8.10.dist-info}/licenses/LICENSE +0 -0
@@ -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 = True
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="quick",
930
+ default="full",
931
931
  constraints={"enum": ["quick", "full", "security", "feasibility"]},
932
- examples=["quick", "full", "security"],
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": "Quick review of a specification",
969
- "input": {"spec_id": "feature-auth-001", "review_type": "quick"},
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": "quick",
974
+ "review_type": "full",
975
975
  "findings": [],
976
976
  "suggestions": ["Consider adding error handling"],
977
977
  },
@@ -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
- .cache/foundry-mcp/errors/
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() / ".cache" / "foundry-mcp" / "errors"
582
+ storage_path = Path.home() / ".foundry-mcp" / "errors"
583
583
  _error_store = FileErrorStore(storage_path)
584
584
 
585
585
  return _error_store