foundry-mcp 0.3.2__tar.gz → 0.8.19__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 (362) hide show
  1. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/.gitignore +4 -0
  2. foundry_mcp-0.8.19/CHANGELOG.md +714 -0
  3. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/CLAUDE.md +1 -2
  4. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/PKG-INFO +8 -1
  5. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/README.md +6 -0
  6. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/codebase_standards/naming-conventions.md +1 -1
  7. foundry_mcp-0.8.19/docs/concepts/deep_research_workflow.md +1289 -0
  8. foundry_mcp-0.8.19/docs/examples/deep-research/README.md +144 -0
  9. foundry_mcp-0.8.19/docs/examples/deep-research/llm-judges-audit.jsonl +87 -0
  10. foundry_mcp-0.8.19/docs/examples/deep-research/llm-judges-report.md +60 -0
  11. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/guides/development-guide.md +200 -1
  12. foundry_mcp-0.8.19/docs/guides/intake.md +436 -0
  13. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/guides/observability.md +17 -0
  14. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/README.md +1 -1
  15. foundry_mcp-0.8.19/foundry-mcp.toml +145 -0
  16. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/mcp/capabilities_manifest.json +555 -14
  17. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/pyproject.toml +9 -1
  18. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/pytest.ini +4 -2
  19. foundry_mcp-0.8.19/samples/foundry-mcp.toml +765 -0
  20. foundry_mcp-0.8.19/specs/.plans/bikelane.md +503 -0
  21. foundry_mcp-0.8.19/specs/.plans/dashboard_improvement.md +326 -0
  22. foundry_mcp-0.8.19/specs/.plans/research-router-implementation.md +234 -0
  23. foundry_mcp-0.8.19/specs/.plans/test-coverage-parity.md +128 -0
  24. foundry_mcp-0.8.19/specs/archived/validate-fix-auto-cleanup-2025-12-15-001.json +143 -0
  25. foundry_mcp-0.8.19/specs/completed/bikelane-intake-2025-12-28-001.json +1173 -0
  26. foundry_mcp-0.8.19/specs/completed/deep-research-workflow-2025-12-30-001.json +2543 -0
  27. foundry_mcp-0.8.19/specs/completed/minified-json-responses-2025-12-31-001.json +588 -0
  28. foundry_mcp-0.8.19/specs/completed/phase-first-spec-authoring-improvements-2025-12-23-001.json +1405 -0
  29. foundry_mcp-0.8.19/specs/completed/research-router-2025-12-29-001.json +1407 -0
  30. foundry_mcp-0.8.19/specs/completed/spec-modification-capabilities-2025-12-23-001.json +2566 -0
  31. foundry_mcp-0.8.19/src/foundry_mcp/__init__.py +13 -0
  32. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/__init__.py +0 -13
  33. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/plan.py +11 -4
  34. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/review.py +19 -4
  35. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/session.py +1 -8
  36. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/specs.py +38 -208
  37. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/context.py +39 -0
  38. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/output.py +3 -3
  39. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/config.py +615 -11
  40. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/ai_consultation.py +146 -9
  41. foundry_mcp-0.8.19/src/foundry_mcp/core/batch_operations.py +1196 -0
  42. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/discovery.py +7 -7
  43. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/error_store.py +9 -4
  44. foundry_mcp-0.8.19/src/foundry_mcp/core/intake.py +933 -0
  45. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/llm_config.py +40 -12
  46. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/metrics_store.py +17 -2
  47. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/naming.py +25 -2
  48. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/observability.py +21 -5
  49. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/progress.py +70 -0
  50. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/prometheus.py +0 -13
  51. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/prompts/fidelity_review.py +149 -4
  52. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/prompts/markdown_plan_review.py +5 -1
  53. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/prompts/plan_review.py +5 -1
  54. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/__init__.py +12 -0
  55. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/base.py +39 -0
  56. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/claude.py +73 -60
  57. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/codex.py +111 -68
  58. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/cursor_agent.py +45 -57
  59. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/detectors.py +34 -7
  60. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/gemini.py +91 -69
  61. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/opencode.py +154 -52
  62. foundry_mcp-0.8.19/src/foundry_mcp/core/providers/opencode_wrapper.js +308 -0
  63. foundry_mcp-0.8.19/src/foundry_mcp/core/providers/package-lock.json +24 -0
  64. foundry_mcp-0.8.19/src/foundry_mcp/core/providers/package.json +25 -0
  65. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/validation.py +128 -0
  66. foundry_mcp-0.8.19/src/foundry_mcp/core/research/__init__.py +68 -0
  67. foundry_mcp-0.8.19/src/foundry_mcp/core/research/memory.py +528 -0
  68. foundry_mcp-0.8.19/src/foundry_mcp/core/research/models.py +1234 -0
  69. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/__init__.py +40 -0
  70. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/base.py +242 -0
  71. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/google.py +507 -0
  72. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/perplexity.py +442 -0
  73. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/semantic_scholar.py +544 -0
  74. foundry_mcp-0.8.19/src/foundry_mcp/core/research/providers/tavily.py +383 -0
  75. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/__init__.py +25 -0
  76. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/base.py +298 -0
  77. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/chat.py +271 -0
  78. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/consensus.py +539 -0
  79. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/deep_research.py +4142 -0
  80. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/ideate.py +682 -0
  81. foundry_mcp-0.8.19/src/foundry_mcp/core/research/workflows/thinkdeep.py +405 -0
  82. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/responses.py +690 -0
  83. foundry_mcp-0.8.19/src/foundry_mcp/core/spec.py +3853 -0
  84. foundry_mcp-0.8.19/src/foundry_mcp/core/task.py +2463 -0
  85. foundry_mcp-0.8.19/src/foundry_mcp/core/testing.py +839 -0
  86. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/validation.py +319 -43
  87. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/app.py +3 -4
  88. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/components/charts.py +0 -57
  89. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/data/stores.py +94 -32
  90. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/launcher.py +129 -18
  91. foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views/__init__.py +12 -0
  92. {foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages → foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views}/errors.py +2 -2
  93. foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views/metrics.py +164 -0
  94. foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views/overview.py +96 -0
  95. foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views/tool_usage.py +139 -0
  96. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/resources/specs.py +25 -25
  97. foundry_mcp-0.8.19/src/foundry_mcp/schemas/intake-schema.json +89 -0
  98. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/schemas/sdd-spec-schema.json +33 -5
  99. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/server.py +0 -14
  100. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/__init__.py +39 -18
  101. foundry_mcp-0.8.19/src/foundry_mcp/tools/unified/authoring.py +3635 -0
  102. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/documentation_helpers.py +76 -6
  103. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/environment.py +434 -32
  104. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/error.py +18 -1
  105. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/lifecycle.py +8 -0
  106. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/plan.py +134 -3
  107. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/provider.py +0 -40
  108. foundry_mcp-0.8.19/src/foundry_mcp/tools/unified/research.py +1283 -0
  109. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/review.py +374 -17
  110. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/review_helpers.py +17 -2
  111. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/server.py +9 -24
  112. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/spec.py +367 -0
  113. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/task.py +1666 -30
  114. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/test.py +69 -8
  115. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/conftest.py +46 -2
  116. foundry_mcp-0.8.19/tests/core/__init__.py +0 -0
  117. foundry_mcp-0.8.19/tests/core/research/__init__.py +0 -0
  118. foundry_mcp-0.8.19/tests/core/research/providers/__init__.py +0 -0
  119. foundry_mcp-0.8.19/tests/core/research/providers/test_perplexity.py +496 -0
  120. foundry_mcp-0.8.19/tests/core/research/workflows/test_deep_research.py +1352 -0
  121. foundry_mcp-0.8.19/tests/fixtures/intake/README.md +58 -0
  122. foundry_mcp-0.8.19/tests/fixtures/intake/edge_cases.jsonl +13 -0
  123. foundry_mcp-0.8.19/tests/fixtures/intake/empty.jsonl +0 -0
  124. foundry_mcp-0.8.19/tests/fixtures/intake/malformed.jsonl +12 -0
  125. foundry_mcp-0.8.19/tests/fixtures/intake/sample_items.jsonl +6 -0
  126. foundry_mcp-0.8.19/tests/integration/providers/conftest.py +254 -0
  127. foundry_mcp-0.8.19/tests/integration/providers/fixtures/simple_plan.md +18 -0
  128. foundry_mcp-0.8.19/tests/integration/providers/fixtures/simple_spec.json +33 -0
  129. foundry_mcp-0.8.19/tests/integration/providers/test_fidelity_review_flow.py +264 -0
  130. foundry_mcp-0.8.19/tests/integration/providers/test_plan_review_flow.py +265 -0
  131. foundry_mcp-0.8.19/tests/integration/providers/test_provider_smoke.py +250 -0
  132. foundry_mcp-0.8.19/tests/integration/providers/test_router_smoke.py +321 -0
  133. foundry_mcp-0.8.19/tests/integration/providers/test_synthesis_flow.py +750 -0
  134. foundry_mcp-0.8.19/tests/integration/test_ai_consultation_e2e.py +717 -0
  135. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_authoring_tools.py +37 -16
  136. foundry_mcp-0.8.19/tests/integration/test_json_minification.py +84 -0
  137. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_mcp_smoke.py +1 -1
  138. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_mcp_tools.py +3 -2
  139. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_provider_tools.py +3 -2
  140. foundry_mcp-0.8.19/tests/integration/test_research_e2e.py +651 -0
  141. foundry_mcp-0.8.19/tests/tools/__init__.py +0 -0
  142. foundry_mcp-0.8.19/tests/tools/unified/__init__.py +0 -0
  143. foundry_mcp-0.8.19/tests/tools/unified/test_research.py +845 -0
  144. foundry_mcp-0.8.19/tests/unit/test_ai_consultation.py +2033 -0
  145. foundry_mcp-0.8.19/tests/unit/test_batch_operations.py +1643 -0
  146. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_cli_review_helpers.py +64 -0
  147. foundry_mcp-0.8.19/tests/unit/test_contracts/__init__.py +1 -0
  148. foundry_mcp-0.8.19/tests/unit/test_contracts/test_phase3_contracts.py +1010 -0
  149. foundry_mcp-0.8.19/tests/unit/test_contracts/test_phase4_contracts.py +1474 -0
  150. foundry_mcp-0.8.19/tests/unit/test_contracts/test_phase5_contracts.py +1338 -0
  151. foundry_mcp-0.8.19/tests/unit/test_contracts/test_phase6_contracts.py +1126 -0
  152. foundry_mcp-0.8.19/tests/unit/test_contracts/test_phase7_contracts.py +524 -0
  153. foundry_mcp-0.8.19/tests/unit/test_core/research/__init__.py +1 -0
  154. foundry_mcp-0.8.19/tests/unit/test_core/research/test_memory.py +789 -0
  155. foundry_mcp-0.8.19/tests/unit/test_core/research/test_models.py +633 -0
  156. foundry_mcp-0.8.19/tests/unit/test_core/research/test_workflows.py +883 -0
  157. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_discovery.py +2 -2
  158. foundry_mcp-0.8.19/tests/unit/test_core/test_intake.py +821 -0
  159. foundry_mcp-0.8.19/tests/unit/test_core/test_phase_metadata_update.py +384 -0
  160. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_provider_spec.py +18 -17
  161. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_spec.py +615 -2
  162. foundry_mcp-0.8.19/tests/unit/test_core/test_spec_find_replace.py +290 -0
  163. foundry_mcp-0.8.19/tests/unit/test_core/test_spec_history.py +780 -0
  164. foundry_mcp-0.8.19/tests/unit/test_core/test_spec_validation.py +422 -0
  165. foundry_mcp-0.8.19/tests/unit/test_core/test_task.py +1610 -0
  166. foundry_mcp-0.8.19/tests/unit/test_core/test_task_batch_update.py +527 -0
  167. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_validation.py +66 -5
  168. foundry_mcp-0.8.19/tests/unit/test_disabled_tools.py +94 -0
  169. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_environment.py +426 -6
  170. foundry_mcp-0.8.19/tests/unit/test_fix_verification_types.py +355 -0
  171. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_llm_provider.py +8 -0
  172. foundry_mcp-0.8.19/tests/unit/test_phase_add_bulk.py +256 -0
  173. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_providers_implementations.py +47 -69
  174. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_review.py +2 -1
  175. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_sdd_cli_core.py +0 -1
  176. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_sdd_cli_runtime.py +4 -126
  177. foundry_mcp-0.8.19/tests/unit/test_task_metadata_batch.py +240 -0
  178. foundry_mcp-0.3.2/CHANGELOG.md +0 -55
  179. foundry_mcp-0.3.2/docs/mcp_best_practices/14-feature-flags.md +0 -463
  180. foundry_mcp-0.3.2/foundry-mcp.toml +0 -84
  181. foundry_mcp-0.3.2/samples/foundry-mcp.toml +0 -386
  182. foundry_mcp-0.3.2/src/foundry_mcp/__init__.py +0 -7
  183. foundry_mcp-0.3.2/src/foundry_mcp/cli/flags.py +0 -266
  184. foundry_mcp-0.3.2/src/foundry_mcp/core/feature_flags.py +0 -592
  185. foundry_mcp-0.3.2/src/foundry_mcp/core/spec.py +0 -1650
  186. foundry_mcp-0.3.2/src/foundry_mcp/core/task.py +0 -1289
  187. foundry_mcp-0.3.2/src/foundry_mcp/core/testing.py +0 -450
  188. foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages/__init__.py +0 -20
  189. foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages/metrics.py +0 -128
  190. foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages/overview.py +0 -128
  191. foundry_mcp-0.3.2/src/foundry_mcp/tools/unified/authoring.py +0 -1487
  192. foundry_mcp-0.3.2/tests/unit/test_ai_consultation.py +0 -892
  193. foundry_mcp-0.3.2/tests/unit/test_core/test_feature_flags.py +0 -874
  194. foundry_mcp-0.3.2/tests/unit/test_core/test_task.py +0 -613
  195. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/.github/workflows/publish.yml +0 -0
  196. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/AGENTS.md +0 -0
  197. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/LICENSE +0 -0
  198. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/bin/foundry-mcp +0 -0
  199. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/architecture/adr-001-cli-architecture.md +0 -0
  200. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/cli_best_practices/01-cli-runtime.md +0 -0
  201. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/cli_best_practices/02-command-shaping.md +0 -0
  202. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/cli_best_practices/03-shared-services.md +0 -0
  203. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/cli_best_practices/04-testing-parity.md +0 -0
  204. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/cli_best_practices/README.md +0 -0
  205. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/codebase_standards/cli-output.md +0 -0
  206. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/codebase_standards/mcp_response_schema.md +0 -0
  207. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/concepts/sdd-philosophy.md +0 -0
  208. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/README.md +0 -0
  209. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/foundry-mcp-errors.json +0 -0
  210. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/foundry-mcp-overview.json +0 -0
  211. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/foundry-mcp-slo.json +0 -0
  212. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/foundry-mcp-tools.json +0 -0
  213. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/prometheus-rules/README.md +0 -0
  214. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/prometheus-rules/foundry-mcp-alerting-rules.yaml +0 -0
  215. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/dashboards/prometheus-rules/foundry-mcp-recording-rules.yaml +0 -0
  216. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/guides/ai-consultation.md +0 -0
  217. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/guides/llm-configuration.md +0 -0
  218. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/guides/testing.md +0 -0
  219. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/01-versioned-contracts.md +0 -0
  220. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/02-envelopes-metadata.md +0 -0
  221. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/03-serialization-helpers.md +0 -0
  222. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/04-validation-input-hygiene.md +0 -0
  223. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/05-observability-telemetry.md +0 -0
  224. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/06-pagination-streaming.md +0 -0
  225. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/07-error-semantics.md +0 -0
  226. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/08-security-trust-boundaries.md +0 -0
  227. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/09-spec-driven-development.md +0 -0
  228. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/10-testing-fixtures.md +0 -0
  229. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/11-ai-llm-integration.md +0 -0
  230. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/12-timeout-resilience.md +0 -0
  231. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/13-tool-discovery.md +0 -0
  232. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/docs/mcp_best_practices/15-concurrency-patterns.md +0 -0
  233. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/ai-consultation-layer-2025-12-03-001.json +0 -0
  234. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/cli-provider-abstraction-2025-11-30-001.json +0 -0
  235. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/foundry-cli-gap-remediation-2025-12-02-001.json +0 -0
  236. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/foundry-mcp-2025-01-25-001.json +0 -0
  237. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/internal-cli-elimination-2025-12-01-001.json +0 -0
  238. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/mcp-best-practices-remediation-2025-11-26-001.json +0 -0
  239. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/mcp-tool-consolidation-2025-12-10-001.json +0 -0
  240. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/multi-model-consensus-2025-12-05-001.json +0 -0
  241. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/observability-stack-2025-12-05-001.json +0 -0
  242. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/parity-testing-framework-2025-01-26-001.json +0 -0
  243. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/phase-remove-tool-2025-12-05-001.json +0 -0
  244. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/remove-docquery-rendering-docgen-2025-12-09-001.json +0 -0
  245. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/response-schema-standardization-2025-11-26-001.json +0 -0
  246. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/sdd-cli-native-parity-2025-11-27-001.json +0 -0
  247. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/sdd-core-operations-2025-11-27-001.json +0 -0
  248. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/specs/completed/sdd-llm-features-2025-11-27-001.json +0 -0
  249. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/__main__.py +0 -0
  250. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/agent.py +0 -0
  251. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/__init__.py +0 -0
  252. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/cache.py +0 -0
  253. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/dashboard.py +0 -0
  254. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/dev.py +0 -0
  255. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/journal.py +0 -0
  256. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/lifecycle.py +0 -0
  257. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/modify.py +0 -0
  258. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/pr.py +0 -0
  259. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/tasks.py +0 -0
  260. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/testing.py +0 -0
  261. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/commands/validate.py +0 -0
  262. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/config.py +0 -0
  263. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/logging.py +0 -0
  264. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/main.py +0 -0
  265. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/registry.py +0 -0
  266. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/resilience.py +0 -0
  267. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/cli/transcript.py +0 -0
  268. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/__init__.py +0 -0
  269. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/cache.py +0 -0
  270. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/capabilities.py +0 -0
  271. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/concurrency.py +0 -0
  272. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/context.py +0 -0
  273. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/error_collection.py +0 -0
  274. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/health.py +0 -0
  275. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/journal.py +0 -0
  276. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/lifecycle.py +0 -0
  277. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/llm_patterns.py +0 -0
  278. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/llm_provider.py +0 -0
  279. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/logging_config.py +0 -0
  280. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/metrics_persistence.py +0 -0
  281. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/metrics_registry.py +0 -0
  282. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/modifications.py +0 -0
  283. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/otel.py +0 -0
  284. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/otel_stubs.py +0 -0
  285. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/pagination.py +0 -0
  286. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/prompts/__init__.py +0 -0
  287. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/registry.py +0 -0
  288. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/providers/test_provider.py +0 -0
  289. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/rate_limit.py +0 -0
  290. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/resilience.py +0 -0
  291. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/review.py +0 -0
  292. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/core/security.py +0 -0
  293. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/__init__.py +0 -0
  294. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/components/__init__.py +0 -0
  295. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/components/cards.py +0 -0
  296. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/components/filters.py +0 -0
  297. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/components/tables.py +0 -0
  298. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/dashboard/data/__init__.py +0 -0
  299. {foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages → foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views}/providers.py +0 -0
  300. {foundry_mcp-0.3.2/src/foundry_mcp/dashboard/pages → foundry_mcp-0.8.19/src/foundry_mcp/dashboard/views}/sdd_workflow.py +0 -0
  301. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/prompts/__init__.py +0 -0
  302. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/prompts/workflows.py +0 -0
  303. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/resources/__init__.py +0 -0
  304. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/schemas/__init__.py +0 -0
  305. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/__init__.py +0 -0
  306. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/context_helpers.py +0 -0
  307. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/health.py +0 -0
  308. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/journal.py +0 -0
  309. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/metrics.py +0 -0
  310. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/pr.py +0 -0
  311. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/router.py +0 -0
  312. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/src/foundry_mcp/tools/unified/verification.py +0 -0
  313. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/__init__.py +0 -0
  314. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/contract/__init__.py +0 -0
  315. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/contract/response_schema.json +0 -0
  316. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/contract/test_response_schema.py +0 -0
  317. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/ai_responses/fidelity_review_response.json +0 -0
  318. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/ai_responses/plan_review_response.json +0 -0
  319. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/context_tracker/transcript.jsonl +0 -0
  320. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/README.md +0 -0
  321. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/error_not_found.json +0 -0
  322. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/error_validation_failure.json +0 -0
  323. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_execute_missing_prompt.json +0 -0
  324. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_execute_success.json +0 -0
  325. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_execute_timeout.json +0 -0
  326. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_execute_unavailable.json +0 -0
  327. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_list_success.json +0 -0
  328. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_list_with_unavailable.json +0 -0
  329. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_status_missing_id.json +0 -0
  330. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_status_not_found.json +0 -0
  331. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/provider_status_success.json +0 -0
  332. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/success_specs_list.json +0 -0
  333. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/success_task_progress.json +0 -0
  334. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/success_test_presets.json +0 -0
  335. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/fixtures/golden/success_validation.json +0 -0
  336. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_environment_tools.py +0 -0
  337. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_fallback_integration.py +0 -0
  338. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_notifications_sampling.py +0 -0
  339. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_prepare_task_cli.py +0 -0
  340. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_sdd_cli_advanced.py +0 -0
  341. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/integration/test_sdd_cli_parity.py +0 -0
  342. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/property/__init__.py +0 -0
  343. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/property/test_input_validation.py +0 -0
  344. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/test_responses.py +0 -0
  345. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/__init__.py +0 -0
  346. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/core/test_review.py +0 -0
  347. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/__init__.py +0 -0
  348. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_concurrency.py +0 -0
  349. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_journal.py +0 -0
  350. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_lifecycle.py +0 -0
  351. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_llm_patterns.py +0 -0
  352. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_pagination.py +0 -0
  353. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_resilience.py +0 -0
  354. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_core/test_security.py +0 -0
  355. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_error_collection.py +0 -0
  356. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_golden_fixtures.py +0 -0
  357. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_metrics_persistence.py +0 -0
  358. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_observability_graceful.py +0 -0
  359. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_providers_base.py +0 -0
  360. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_providers_detectors.py +0 -0
  361. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_providers_registry.py +0 -0
  362. {foundry_mcp-0.3.2 → foundry_mcp-0.8.19}/tests/unit/test_transcript.py +0 -0
@@ -51,6 +51,8 @@ settings.json
51
51
 
52
52
  # Ignore all dotfolders under specs/ (reports, reviews, etc.)
53
53
  specs/.*/
54
+ !specs/.plans/
55
+ !specs/.plans/**
54
56
 
55
57
  # ModelChorus configuration
56
58
  .model-chorusrc
@@ -62,3 +64,5 @@ uv.lock
62
64
  .venv
63
65
  .hypothesis/
64
66
  .ruff_cache/
67
+ node_modules/
68
+ .opencode/