pal-mcp-server 10.4.3__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 (399) hide show
  1. pal_mcp_server-10.4.3/.claude/commands/fix-github-issue.md +14 -0
  2. pal_mcp_server-10.4.3/.claude/settings.json +81 -0
  3. pal_mcp_server-10.4.3/.coveragerc +24 -0
  4. pal_mcp_server-10.4.3/.dockerignore +64 -0
  5. pal_mcp_server-10.4.3/.env.example +249 -0
  6. pal_mcp_server-10.4.3/.gitattributes +27 -0
  7. pal_mcp_server-10.4.3/.github/FUNDING.yml +3 -0
  8. pal_mcp_server-10.4.3/.github/ISSUE_TEMPLATE/bug_report.yml +62 -0
  9. pal_mcp_server-10.4.3/.github/ISSUE_TEMPLATE/config.yml +12 -0
  10. pal_mcp_server-10.4.3/.github/ISSUE_TEMPLATE/documentation.yml +60 -0
  11. pal_mcp_server-10.4.3/.github/ISSUE_TEMPLATE/feature_request.yml +52 -0
  12. pal_mcp_server-10.4.3/.github/ISSUE_TEMPLATE/tool_addition.yml +75 -0
  13. pal_mcp_server-10.4.3/.github/pull_request_template.md +85 -0
  14. pal_mcp_server-10.4.3/.github/workflows/claude-code-review.yml +26 -0
  15. pal_mcp_server-10.4.3/.github/workflows/claude.yml +39 -0
  16. pal_mcp_server-10.4.3/.github/workflows/clear-autorelease-labels.yml +29 -0
  17. pal_mcp_server-10.4.3/.github/workflows/container.yml +66 -0
  18. pal_mcp_server-10.4.3/.github/workflows/enforce-conventional-commits.yml +93 -0
  19. pal_mcp_server-10.4.3/.github/workflows/quality.yml +36 -0
  20. pal_mcp_server-10.4.3/.github/workflows/release-lock.yml +97 -0
  21. pal_mcp_server-10.4.3/.github/workflows/release-please.yml +71 -0
  22. pal_mcp_server-10.4.3/.github/workflows/renovate.yml +41 -0
  23. pal_mcp_server-10.4.3/.github/workflows/security.yml +51 -0
  24. pal_mcp_server-10.4.3/.github/workflows/test.yml +88 -0
  25. pal_mcp_server-10.4.3/.gitignore +191 -0
  26. pal_mcp_server-10.4.3/.pre-commit-config.yaml +33 -0
  27. pal_mcp_server-10.4.3/.python-version +1 -0
  28. pal_mcp_server-10.4.3/.release-please-manifest.json +3 -0
  29. pal_mcp_server-10.4.3/AGENTS.md +77 -0
  30. pal_mcp_server-10.4.3/CHANGELOG.md +1604 -0
  31. pal_mcp_server-10.4.3/CLAUDE.md +274 -0
  32. pal_mcp_server-10.4.3/Dockerfile +84 -0
  33. pal_mcp_server-10.4.3/LICENSE +197 -0
  34. pal_mcp_server-10.4.3/PKG-INFO +12 -0
  35. pal_mcp_server-10.4.3/README.md +285 -0
  36. pal_mcp_server-10.4.3/SECURITY.md +81 -0
  37. pal_mcp_server-10.4.3/claude_config_example.json +11 -0
  38. pal_mcp_server-10.4.3/clink/__init__.py +7 -0
  39. pal_mcp_server-10.4.3/clink/agents/__init__.py +30 -0
  40. pal_mcp_server-10.4.3/clink/agents/base.py +239 -0
  41. pal_mcp_server-10.4.3/clink/agents/claude.py +49 -0
  42. pal_mcp_server-10.4.3/clink/agents/codex.py +41 -0
  43. pal_mcp_server-10.4.3/clink/agents/gemini.py +86 -0
  44. pal_mcp_server-10.4.3/clink/constants.py +48 -0
  45. pal_mcp_server-10.4.3/clink/models.py +99 -0
  46. pal_mcp_server-10.4.3/clink/parsers/__init__.py +30 -0
  47. pal_mcp_server-10.4.3/clink/parsers/base.py +27 -0
  48. pal_mcp_server-10.4.3/clink/parsers/claude.py +137 -0
  49. pal_mcp_server-10.4.3/clink/parsers/codex.py +63 -0
  50. pal_mcp_server-10.4.3/clink/parsers/gemini.py +98 -0
  51. pal_mcp_server-10.4.3/clink/registry.py +255 -0
  52. pal_mcp_server-10.4.3/code_quality_checks.ps1 +260 -0
  53. pal_mcp_server-10.4.3/code_quality_checks.sh +111 -0
  54. pal_mcp_server-10.4.3/communication_simulator_test.py +556 -0
  55. pal_mcp_server-10.4.3/conf/__init__.py +1 -0
  56. pal_mcp_server-10.4.3/conf/azure_models.json +48 -0
  57. pal_mcp_server-10.4.3/conf/cli_clients/claude.json +25 -0
  58. pal_mcp_server-10.4.3/conf/cli_clients/codex.json +25 -0
  59. pal_mcp_server-10.4.3/conf/cli_clients/gemini.json +23 -0
  60. pal_mcp_server-10.4.3/conf/custom_models.json +41 -0
  61. pal_mcp_server-10.4.3/conf/dial_models.json +169 -0
  62. pal_mcp_server-10.4.3/conf/gemini_models.json +195 -0
  63. pal_mcp_server-10.4.3/conf/openai_models.json +368 -0
  64. pal_mcp_server-10.4.3/conf/opencode_go_models.json +357 -0
  65. pal_mcp_server-10.4.3/conf/openrouter_models.json +669 -0
  66. pal_mcp_server-10.4.3/conf/xai_models.json +72 -0
  67. pal_mcp_server-10.4.3/config.py +178 -0
  68. pal_mcp_server-10.4.3/docker/README.md +362 -0
  69. pal_mcp_server-10.4.3/docker/scripts/build.ps1 +70 -0
  70. pal_mcp_server-10.4.3/docker/scripts/build.sh +41 -0
  71. pal_mcp_server-10.4.3/docker/scripts/deploy.ps1 +211 -0
  72. pal_mcp_server-10.4.3/docker/scripts/deploy.sh +99 -0
  73. pal_mcp_server-10.4.3/docker/scripts/healthcheck.py +115 -0
  74. pal_mcp_server-10.4.3/docker-compose.yml +101 -0
  75. pal_mcp_server-10.4.3/docs/adding_providers.md +377 -0
  76. pal_mcp_server-10.4.3/docs/adding_tools.md +163 -0
  77. pal_mcp_server-10.4.3/docs/advanced-usage.md +475 -0
  78. pal_mcp_server-10.4.3/docs/ai-collaboration.md +99 -0
  79. pal_mcp_server-10.4.3/docs/ai_banter.md +140 -0
  80. pal_mcp_server-10.4.3/docs/architecture.md +245 -0
  81. pal_mcp_server-10.4.3/docs/azure_openai.md +69 -0
  82. pal_mcp_server-10.4.3/docs/configuration.md +340 -0
  83. pal_mcp_server-10.4.3/docs/context-revival.md +110 -0
  84. pal_mcp_server-10.4.3/docs/contributions.md +231 -0
  85. pal_mcp_server-10.4.3/docs/custom_models.md +298 -0
  86. pal_mcp_server-10.4.3/docs/docker-deployment.md +500 -0
  87. pal_mcp_server-10.4.3/docs/gemini-setup.md +43 -0
  88. pal_mcp_server-10.4.3/docs/getting-started.md +534 -0
  89. pal_mcp_server-10.4.3/docs/index.md +19 -0
  90. pal_mcp_server-10.4.3/docs/locale-configuration.md +196 -0
  91. pal_mcp_server-10.4.3/docs/logging.md +69 -0
  92. pal_mcp_server-10.4.3/docs/model_ranking.md +69 -0
  93. pal_mcp_server-10.4.3/docs/name-change.md +5 -0
  94. pal_mcp_server-10.4.3/docs/testing.md +154 -0
  95. pal_mcp_server-10.4.3/docs/tools/analyze.md +197 -0
  96. pal_mcp_server-10.4.3/docs/tools/apilookup.md +120 -0
  97. pal_mcp_server-10.4.3/docs/tools/challenge.md +35 -0
  98. pal_mcp_server-10.4.3/docs/tools/chat.md +140 -0
  99. pal_mcp_server-10.4.3/docs/tools/clink.md +178 -0
  100. pal_mcp_server-10.4.3/docs/tools/codereview.md +172 -0
  101. pal_mcp_server-10.4.3/docs/tools/consensus.md +154 -0
  102. pal_mcp_server-10.4.3/docs/tools/debug.md +209 -0
  103. pal_mcp_server-10.4.3/docs/tools/docgen.md +204 -0
  104. pal_mcp_server-10.4.3/docs/tools/jules.md +49 -0
  105. pal_mcp_server-10.4.3/docs/tools/listmodels.md +105 -0
  106. pal_mcp_server-10.4.3/docs/tools/planner.md +83 -0
  107. pal_mcp_server-10.4.3/docs/tools/precommit.md +251 -0
  108. pal_mcp_server-10.4.3/docs/tools/refactor.md +200 -0
  109. pal_mcp_server-10.4.3/docs/tools/secaudit.md +220 -0
  110. pal_mcp_server-10.4.3/docs/tools/testgen.md +219 -0
  111. pal_mcp_server-10.4.3/docs/tools/thinkdeep.md +96 -0
  112. pal_mcp_server-10.4.3/docs/tools/tracer.md +170 -0
  113. pal_mcp_server-10.4.3/docs/tools/version.md +127 -0
  114. pal_mcp_server-10.4.3/docs/troubleshooting.md +120 -0
  115. pal_mcp_server-10.4.3/docs/vcr-testing.md +128 -0
  116. pal_mcp_server-10.4.3/docs/wsl-setup.md +82 -0
  117. pal_mcp_server-10.4.3/examples/claude_config_macos.json +11 -0
  118. pal_mcp_server-10.4.3/examples/claude_config_wsl.json +14 -0
  119. pal_mcp_server-10.4.3/pal-mcp-server +11 -0
  120. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/PKG-INFO +12 -0
  121. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/SOURCES.txt +397 -0
  122. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/dependency_links.txt +1 -0
  123. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/entry_points.txt +2 -0
  124. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/requires.txt +5 -0
  125. pal_mcp_server-10.4.3/pal_mcp_server.egg-info/top_level.txt +8 -0
  126. pal_mcp_server-10.4.3/providers/__init__.py +22 -0
  127. pal_mcp_server-10.4.3/providers/azure_openai.py +333 -0
  128. pal_mcp_server-10.4.3/providers/base.py +445 -0
  129. pal_mcp_server-10.4.3/providers/custom.py +222 -0
  130. pal_mcp_server-10.4.3/providers/dial.py +225 -0
  131. pal_mcp_server-10.4.3/providers/gemini.py +430 -0
  132. pal_mcp_server-10.4.3/providers/openai.py +176 -0
  133. pal_mcp_server-10.4.3/providers/openai_compatible.py +563 -0
  134. pal_mcp_server-10.4.3/providers/opencode_go.py +89 -0
  135. pal_mcp_server-10.4.3/providers/openrouter.py +218 -0
  136. pal_mcp_server-10.4.3/providers/registries/__init__.py +19 -0
  137. pal_mcp_server-10.4.3/providers/registries/azure.py +45 -0
  138. pal_mcp_server-10.4.3/providers/registries/base.py +246 -0
  139. pal_mcp_server-10.4.3/providers/registries/custom.py +25 -0
  140. pal_mcp_server-10.4.3/providers/registries/dial.py +19 -0
  141. pal_mcp_server-10.4.3/providers/registries/gemini.py +19 -0
  142. pal_mcp_server-10.4.3/providers/registries/openai.py +19 -0
  143. pal_mcp_server-10.4.3/providers/registries/opencode_go.py +19 -0
  144. pal_mcp_server-10.4.3/providers/registries/openrouter.py +38 -0
  145. pal_mcp_server-10.4.3/providers/registries/xai.py +19 -0
  146. pal_mcp_server-10.4.3/providers/registry.py +554 -0
  147. pal_mcp_server-10.4.3/providers/registry_provider_mixin.py +84 -0
  148. pal_mcp_server-10.4.3/providers/shared/__init__.py +21 -0
  149. pal_mcp_server-10.4.3/providers/shared/model_capabilities.py +168 -0
  150. pal_mcp_server-10.4.3/providers/shared/model_response.py +26 -0
  151. pal_mcp_server-10.4.3/providers/shared/provider_type.py +18 -0
  152. pal_mcp_server-10.4.3/providers/shared/temperature.py +187 -0
  153. pal_mcp_server-10.4.3/providers/xai.py +89 -0
  154. pal_mcp_server-10.4.3/pyproject.toml +132 -0
  155. pal_mcp_server-10.4.3/release-please-config.json +22 -0
  156. pal_mcp_server-10.4.3/run-server.ps1 +2325 -0
  157. pal_mcp_server-10.4.3/run-server.sh +346 -0
  158. pal_mcp_server-10.4.3/run_integration_tests.ps1 +229 -0
  159. pal_mcp_server-10.4.3/run_integration_tests.sh +103 -0
  160. pal_mcp_server-10.4.3/server.py +1402 -0
  161. pal_mcp_server-10.4.3/setup.cfg +4 -0
  162. pal_mcp_server-10.4.3/simulator_tests/__init__.py +119 -0
  163. pal_mcp_server-10.4.3/simulator_tests/base_test.py +356 -0
  164. pal_mcp_server-10.4.3/simulator_tests/conversation_base_test.py +252 -0
  165. pal_mcp_server-10.4.3/simulator_tests/log_utils.py +313 -0
  166. pal_mcp_server-10.4.3/simulator_tests/test_analyze_validation.py +1071 -0
  167. pal_mcp_server-10.4.3/simulator_tests/test_basic_conversation.py +89 -0
  168. pal_mcp_server-10.4.3/simulator_tests/test_chat_simple_validation.py +508 -0
  169. pal_mcp_server-10.4.3/simulator_tests/test_codereview_validation.py +1024 -0
  170. pal_mcp_server-10.4.3/simulator_tests/test_consensus_conversation.py +237 -0
  171. pal_mcp_server-10.4.3/simulator_tests/test_consensus_three_models.py +145 -0
  172. pal_mcp_server-10.4.3/simulator_tests/test_consensus_workflow_accurate.py +226 -0
  173. pal_mcp_server-10.4.3/simulator_tests/test_content_validation.py +188 -0
  174. pal_mcp_server-10.4.3/simulator_tests/test_conversation_chain_validation.py +379 -0
  175. pal_mcp_server-10.4.3/simulator_tests/test_cross_tool_comprehensive.py +332 -0
  176. pal_mcp_server-10.4.3/simulator_tests/test_cross_tool_continuation.py +234 -0
  177. pal_mcp_server-10.4.3/simulator_tests/test_debug_certain_confidence.py +566 -0
  178. pal_mcp_server-10.4.3/simulator_tests/test_debug_validation.py +959 -0
  179. pal_mcp_server-10.4.3/simulator_tests/test_line_number_validation.py +179 -0
  180. pal_mcp_server-10.4.3/simulator_tests/test_logs_validation.py +101 -0
  181. pal_mcp_server-10.4.3/simulator_tests/test_model_thinking_config.py +177 -0
  182. pal_mcp_server-10.4.3/simulator_tests/test_o3_model_selection.py +351 -0
  183. pal_mcp_server-10.4.3/simulator_tests/test_o3_pro_expensive.py +122 -0
  184. pal_mcp_server-10.4.3/simulator_tests/test_ollama_custom_url.py +343 -0
  185. pal_mcp_server-10.4.3/simulator_tests/test_openrouter_fallback.py +238 -0
  186. pal_mcp_server-10.4.3/simulator_tests/test_openrouter_models.py +251 -0
  187. pal_mcp_server-10.4.3/simulator_tests/test_per_tool_deduplication.py +219 -0
  188. pal_mcp_server-10.4.3/simulator_tests/test_planner_continuation_history.py +363 -0
  189. pal_mcp_server-10.4.3/simulator_tests/test_planner_validation.py +716 -0
  190. pal_mcp_server-10.4.3/simulator_tests/test_planner_validation_old.py +438 -0
  191. pal_mcp_server-10.4.3/simulator_tests/test_precommitworkflow_validation.py +1072 -0
  192. pal_mcp_server-10.4.3/simulator_tests/test_prompt_size_limit_bug.py +206 -0
  193. pal_mcp_server-10.4.3/simulator_tests/test_refactor_validation.py +1028 -0
  194. pal_mcp_server-10.4.3/simulator_tests/test_secaudit_validation.py +610 -0
  195. pal_mcp_server-10.4.3/simulator_tests/test_testgen_validation.py +832 -0
  196. pal_mcp_server-10.4.3/simulator_tests/test_thinkdeep_validation.py +948 -0
  197. pal_mcp_server-10.4.3/simulator_tests/test_token_allocation_validation.py +350 -0
  198. pal_mcp_server-10.4.3/simulator_tests/test_vision_capability.py +163 -0
  199. pal_mcp_server-10.4.3/simulator_tests/test_xai_models.py +221 -0
  200. pal_mcp_server-10.4.3/systemprompts/__init__.py +37 -0
  201. pal_mcp_server-10.4.3/systemprompts/analyze_prompt.py +87 -0
  202. pal_mcp_server-10.4.3/systemprompts/chat_prompt.py +57 -0
  203. pal_mcp_server-10.4.3/systemprompts/clink/codex_codereviewer.txt +8 -0
  204. pal_mcp_server-10.4.3/systemprompts/clink/default.txt +8 -0
  205. pal_mcp_server-10.4.3/systemprompts/clink/default_codereviewer.txt +8 -0
  206. pal_mcp_server-10.4.3/systemprompts/clink/default_planner.txt +7 -0
  207. pal_mcp_server-10.4.3/systemprompts/codereview_prompt.py +91 -0
  208. pal_mcp_server-10.4.3/systemprompts/consensus_prompt.py +120 -0
  209. pal_mcp_server-10.4.3/systemprompts/debug_prompt.py +150 -0
  210. pal_mcp_server-10.4.3/systemprompts/docgen_prompt.py +252 -0
  211. pal_mcp_server-10.4.3/systemprompts/generate_code_prompt.py +181 -0
  212. pal_mcp_server-10.4.3/systemprompts/jules_prompt.py +34 -0
  213. pal_mcp_server-10.4.3/systemprompts/planner_prompt.py +127 -0
  214. pal_mcp_server-10.4.3/systemprompts/precommit_prompt.py +179 -0
  215. pal_mcp_server-10.4.3/systemprompts/refactor_prompt.py +323 -0
  216. pal_mcp_server-10.4.3/systemprompts/secaudit_prompt.py +420 -0
  217. pal_mcp_server-10.4.3/systemprompts/testgen_prompt.py +133 -0
  218. pal_mcp_server-10.4.3/systemprompts/thinkdeep_prompt.py +55 -0
  219. pal_mcp_server-10.4.3/systemprompts/tracer_prompt.py +145 -0
  220. pal_mcp_server-10.4.3/tests/CASSETTE_MAINTENANCE.md +266 -0
  221. pal_mcp_server-10.4.3/tests/__init__.py +1 -0
  222. pal_mcp_server-10.4.3/tests/conftest.py +275 -0
  223. pal_mcp_server-10.4.3/tests/gemini_cassettes/chat_codegen/gemini25_pro_calculator/mldev.json +133 -0
  224. pal_mcp_server-10.4.3/tests/gemini_cassettes/chat_cross/step1_gemini25_flash_number/mldev.json +133 -0
  225. pal_mcp_server-10.4.3/tests/gemini_cassettes/consensus/step2_gemini25_flash_against/mldev.json +133 -0
  226. pal_mcp_server-10.4.3/tests/http_transport_recorder.py +435 -0
  227. pal_mcp_server-10.4.3/tests/mock_helpers.py +41 -0
  228. pal_mcp_server-10.4.3/tests/openai_cassettes/chat_cross_step2_gpt5_reminder.json +82 -0
  229. pal_mcp_server-10.4.3/tests/openai_cassettes/chat_gpt5_continuation.json +160 -0
  230. pal_mcp_server-10.4.3/tests/openai_cassettes/chat_gpt5_moon_distance.json +82 -0
  231. pal_mcp_server-10.4.3/tests/openai_cassettes/consensus_step1_gpt51_for.json +82 -0
  232. pal_mcp_server-10.4.3/tests/openai_cassettes/consensus_step1_gpt52_for.json +82 -0
  233. pal_mcp_server-10.4.3/tests/openai_cassettes/consensus_step1_gpt5_for.json +82 -0
  234. pal_mcp_server-10.4.3/tests/openai_cassettes/o3_pro_basic_math.json +90 -0
  235. pal_mcp_server-10.4.3/tests/pii_sanitizer.py +290 -0
  236. pal_mcp_server-10.4.3/tests/sanitize_cassettes.py +110 -0
  237. pal_mcp_server-10.4.3/tests/test_alias_target_restrictions.py +391 -0
  238. pal_mcp_server-10.4.3/tests/test_async_concurrency.py +150 -0
  239. pal_mcp_server-10.4.3/tests/test_auto_mode.py +333 -0
  240. pal_mcp_server-10.4.3/tests/test_auto_mode_comprehensive.py +547 -0
  241. pal_mcp_server-10.4.3/tests/test_auto_mode_custom_provider_only.py +208 -0
  242. pal_mcp_server-10.4.3/tests/test_auto_mode_model_listing.py +230 -0
  243. pal_mcp_server-10.4.3/tests/test_auto_mode_provider_selection.py +344 -0
  244. pal_mcp_server-10.4.3/tests/test_auto_model_planner_fix.py +218 -0
  245. pal_mcp_server-10.4.3/tests/test_azure_openai_provider.py +145 -0
  246. pal_mcp_server-10.4.3/tests/test_buggy_behavior_prevention.py +284 -0
  247. pal_mcp_server-10.4.3/tests/test_cassette_semantic_matching.py +125 -0
  248. pal_mcp_server-10.4.3/tests/test_challenge.py +200 -0
  249. pal_mcp_server-10.4.3/tests/test_chat_codegen_integration.py +118 -0
  250. pal_mcp_server-10.4.3/tests/test_chat_cross_model_continuation.py +204 -0
  251. pal_mcp_server-10.4.3/tests/test_chat_openai_integration.py +177 -0
  252. pal_mcp_server-10.4.3/tests/test_chat_simple.py +464 -0
  253. pal_mcp_server-10.4.3/tests/test_clink_claude_agent.py +111 -0
  254. pal_mcp_server-10.4.3/tests/test_clink_claude_parser.py +70 -0
  255. pal_mcp_server-10.4.3/tests/test_clink_codex_agent.py +75 -0
  256. pal_mcp_server-10.4.3/tests/test_clink_gemini_agent.py +81 -0
  257. pal_mcp_server-10.4.3/tests/test_clink_gemini_parser.py +48 -0
  258. pal_mcp_server-10.4.3/tests/test_clink_integration.py +82 -0
  259. pal_mcp_server-10.4.3/tests/test_clink_parsers.py +22 -0
  260. pal_mcp_server-10.4.3/tests/test_clink_progress.py +105 -0
  261. pal_mcp_server-10.4.3/tests/test_clink_tool.py +187 -0
  262. pal_mcp_server-10.4.3/tests/test_collaboration.py +543 -0
  263. pal_mcp_server-10.4.3/tests/test_config.py +40 -0
  264. pal_mcp_server-10.4.3/tests/test_consensus.py +414 -0
  265. pal_mcp_server-10.4.3/tests/test_consensus_integration.py +300 -0
  266. pal_mcp_server-10.4.3/tests/test_consensus_schema.py +24 -0
  267. pal_mcp_server-10.4.3/tests/test_context_builder.py +134 -0
  268. pal_mcp_server-10.4.3/tests/test_conversation_continuation_integration.py +40 -0
  269. pal_mcp_server-10.4.3/tests/test_conversation_field_mapping.py +200 -0
  270. pal_mcp_server-10.4.3/tests/test_conversation_file_features.py +545 -0
  271. pal_mcp_server-10.4.3/tests/test_conversation_memory.py +928 -0
  272. pal_mcp_server-10.4.3/tests/test_conversation_missing_files.py +64 -0
  273. pal_mcp_server-10.4.3/tests/test_custom_openai_temperature_fix.py +284 -0
  274. pal_mcp_server-10.4.3/tests/test_custom_provider.py +321 -0
  275. pal_mcp_server-10.4.3/tests/test_debug.py +83 -0
  276. pal_mcp_server-10.4.3/tests/test_deploy_scripts.py +311 -0
  277. pal_mcp_server-10.4.3/tests/test_dial_provider.py +273 -0
  278. pal_mcp_server-10.4.3/tests/test_directory_expansion_tracking.py +321 -0
  279. pal_mcp_server-10.4.3/tests/test_disabled_tools.py +140 -0
  280. pal_mcp_server-10.4.3/tests/test_docker_claude_desktop_integration.py +310 -0
  281. pal_mcp_server-10.4.3/tests/test_docker_config_complete.py +239 -0
  282. pal_mcp_server-10.4.3/tests/test_docker_healthcheck.py +181 -0
  283. pal_mcp_server-10.4.3/tests/test_docker_implementation.py +361 -0
  284. pal_mcp_server-10.4.3/tests/test_docker_mcp_validation.py +183 -0
  285. pal_mcp_server-10.4.3/tests/test_docker_security.py +235 -0
  286. pal_mcp_server-10.4.3/tests/test_docker_volume_persistence.py +158 -0
  287. pal_mcp_server-10.4.3/tests/test_file_protection.py +319 -0
  288. pal_mcp_server-10.4.3/tests/test_file_size_gate.py +225 -0
  289. pal_mcp_server-10.4.3/tests/test_gemini_token_usage.py +105 -0
  290. pal_mcp_server-10.4.3/tests/test_image_support_integration.py +522 -0
  291. pal_mcp_server-10.4.3/tests/test_image_validation.py +261 -0
  292. pal_mcp_server-10.4.3/tests/test_integration_utf8.py +481 -0
  293. pal_mcp_server-10.4.3/tests/test_intelligent_fallback.py +231 -0
  294. pal_mcp_server-10.4.3/tests/test_issue_245_simple.py +78 -0
  295. pal_mcp_server-10.4.3/tests/test_jules.py +242 -0
  296. pal_mcp_server-10.4.3/tests/test_large_prompt_handling.py +727 -0
  297. pal_mcp_server-10.4.3/tests/test_line_numbers_integration.py +49 -0
  298. pal_mcp_server-10.4.3/tests/test_listmodels.py +185 -0
  299. pal_mcp_server-10.4.3/tests/test_listmodels_restrictions.py +321 -0
  300. pal_mcp_server-10.4.3/tests/test_mcp_error_handling.py +64 -0
  301. pal_mcp_server-10.4.3/tests/test_model_enumeration.py +239 -0
  302. pal_mcp_server-10.4.3/tests/test_model_metadata_continuation.py +239 -0
  303. pal_mcp_server-10.4.3/tests/test_model_resolution.py +191 -0
  304. pal_mcp_server-10.4.3/tests/test_model_resolution_bug.py +129 -0
  305. pal_mcp_server-10.4.3/tests/test_model_restrictions.py +793 -0
  306. pal_mcp_server-10.4.3/tests/test_o3_pro_output_text_fix.py +131 -0
  307. pal_mcp_server-10.4.3/tests/test_o3_temperature_fix_simple.py +241 -0
  308. pal_mcp_server-10.4.3/tests/test_openai_compatible_token_usage.py +138 -0
  309. pal_mcp_server-10.4.3/tests/test_openai_provider.py +392 -0
  310. pal_mcp_server-10.4.3/tests/test_opencode_go_provider.py +185 -0
  311. pal_mcp_server-10.4.3/tests/test_openrouter_provider.py +399 -0
  312. pal_mcp_server-10.4.3/tests/test_openrouter_registry.py +244 -0
  313. pal_mcp_server-10.4.3/tests/test_openrouter_store_parameter.py +122 -0
  314. pal_mcp_server-10.4.3/tests/test_parse_model_option.py +79 -0
  315. pal_mcp_server-10.4.3/tests/test_path_policy_pseudofs.py +100 -0
  316. pal_mcp_server-10.4.3/tests/test_path_traversal_security.py +149 -0
  317. pal_mcp_server-10.4.3/tests/test_per_tool_model_defaults.py +547 -0
  318. pal_mcp_server-10.4.3/tests/test_pii_sanitizer.py +143 -0
  319. pal_mcp_server-10.4.3/tests/test_planner.py +458 -0
  320. pal_mcp_server-10.4.3/tests/test_precommit_workflow.py +207 -0
  321. pal_mcp_server-10.4.3/tests/test_progress.py +331 -0
  322. pal_mcp_server-10.4.3/tests/test_prompt_regression.py +442 -0
  323. pal_mcp_server-10.4.3/tests/test_prompt_size_limit_bug_fix.py +122 -0
  324. pal_mcp_server-10.4.3/tests/test_provider_contract.py +204 -0
  325. pal_mcp_server-10.4.3/tests/test_provider_from_env.py +208 -0
  326. pal_mcp_server-10.4.3/tests/test_provider_metadata.py +113 -0
  327. pal_mcp_server-10.4.3/tests/test_provider_metadata_characterization.py +514 -0
  328. pal_mcp_server-10.4.3/tests/test_provider_retry_logic.py +79 -0
  329. pal_mcp_server-10.4.3/tests/test_provider_routing_bugs.py +403 -0
  330. pal_mcp_server-10.4.3/tests/test_provider_utf8.py +382 -0
  331. pal_mcp_server-10.4.3/tests/test_providers.py +241 -0
  332. pal_mcp_server-10.4.3/tests/test_rate_limit_patterns.py +140 -0
  333. pal_mcp_server-10.4.3/tests/test_refactor.py +391 -0
  334. pal_mcp_server-10.4.3/tests/test_secaudit.py +451 -0
  335. pal_mcp_server-10.4.3/tests/test_server.py +107 -0
  336. pal_mcp_server-10.4.3/tests/test_supported_models_aliases.py +223 -0
  337. pal_mcp_server-10.4.3/tests/test_systemprompts.py +187 -0
  338. pal_mcp_server-10.4.3/tests/test_thinking_modes.py +441 -0
  339. pal_mcp_server-10.4.3/tests/test_tools.py +517 -0
  340. pal_mcp_server-10.4.3/tests/test_tracer.py +169 -0
  341. pal_mcp_server-10.4.3/tests/test_utf8_localization.py +357 -0
  342. pal_mcp_server-10.4.3/tests/test_utils.py +223 -0
  343. pal_mcp_server-10.4.3/tests/test_uvx_resource_packaging.py +126 -0
  344. pal_mcp_server-10.4.3/tests/test_uvx_support.py +184 -0
  345. pal_mcp_server-10.4.3/tests/test_workflow_file_embedding.py +225 -0
  346. pal_mcp_server-10.4.3/tests/test_workflow_metadata.py +337 -0
  347. pal_mcp_server-10.4.3/tests/test_workflow_prompt_size_validation_simple.py +74 -0
  348. pal_mcp_server-10.4.3/tests/test_workflow_utf8.py +319 -0
  349. pal_mcp_server-10.4.3/tests/test_xai_provider.py +356 -0
  350. pal_mcp_server-10.4.3/tests/transport_helpers.py +47 -0
  351. pal_mcp_server-10.4.3/tests/triangle.png +0 -0
  352. pal_mcp_server-10.4.3/tools/__init__.py +45 -0
  353. pal_mcp_server-10.4.3/tools/analyze.py +583 -0
  354. pal_mcp_server-10.4.3/tools/apilookup.py +131 -0
  355. pal_mcp_server-10.4.3/tools/challenge.py +198 -0
  356. pal_mcp_server-10.4.3/tools/chat.py +482 -0
  357. pal_mcp_server-10.4.3/tools/clink.py +463 -0
  358. pal_mcp_server-10.4.3/tools/codereview.py +724 -0
  359. pal_mcp_server-10.4.3/tools/consensus.py +842 -0
  360. pal_mcp_server-10.4.3/tools/debug.py +582 -0
  361. pal_mcp_server-10.4.3/tools/docgen.py +575 -0
  362. pal_mcp_server-10.4.3/tools/jules.py +421 -0
  363. pal_mcp_server-10.4.3/tools/listmodels.py +429 -0
  364. pal_mcp_server-10.4.3/tools/models.py +371 -0
  365. pal_mcp_server-10.4.3/tools/planner.py +531 -0
  366. pal_mcp_server-10.4.3/tools/precommit.py +774 -0
  367. pal_mcp_server-10.4.3/tools/refactor.py +645 -0
  368. pal_mcp_server-10.4.3/tools/secaudit.py +685 -0
  369. pal_mcp_server-10.4.3/tools/shared/__init__.py +19 -0
  370. pal_mcp_server-10.4.3/tools/shared/base_models.py +160 -0
  371. pal_mcp_server-10.4.3/tools/shared/base_tool.py +1554 -0
  372. pal_mcp_server-10.4.3/tools/shared/exceptions.py +20 -0
  373. pal_mcp_server-10.4.3/tools/shared/schema_builders.py +159 -0
  374. pal_mcp_server-10.4.3/tools/simple/__init__.py +18 -0
  375. pal_mcp_server-10.4.3/tools/simple/base.py +1058 -0
  376. pal_mcp_server-10.4.3/tools/testgen.py +513 -0
  377. pal_mcp_server-10.4.3/tools/thinkdeep.py +580 -0
  378. pal_mcp_server-10.4.3/tools/tracer.py +759 -0
  379. pal_mcp_server-10.4.3/tools/version.py +369 -0
  380. pal_mcp_server-10.4.3/tools/workflow/__init__.py +22 -0
  381. pal_mcp_server-10.4.3/tools/workflow/base.py +448 -0
  382. pal_mcp_server-10.4.3/tools/workflow/schema_builders.py +169 -0
  383. pal_mcp_server-10.4.3/tools/workflow/workflow_mixin.py +1642 -0
  384. pal_mcp_server-10.4.3/utils/__init__.py +21 -0
  385. pal_mcp_server-10.4.3/utils/client_info.py +293 -0
  386. pal_mcp_server-10.4.3/utils/context_builder.py +68 -0
  387. pal_mcp_server-10.4.3/utils/conversation_memory.py +1185 -0
  388. pal_mcp_server-10.4.3/utils/env.py +111 -0
  389. pal_mcp_server-10.4.3/utils/file_types.py +271 -0
  390. pal_mcp_server-10.4.3/utils/file_utils.py +960 -0
  391. pal_mcp_server-10.4.3/utils/image_utils.py +94 -0
  392. pal_mcp_server-10.4.3/utils/model_context.py +224 -0
  393. pal_mcp_server-10.4.3/utils/model_resolution.py +142 -0
  394. pal_mcp_server-10.4.3/utils/model_restrictions.py +310 -0
  395. pal_mcp_server-10.4.3/utils/progress.py +249 -0
  396. pal_mcp_server-10.4.3/utils/security_config.py +184 -0
  397. pal_mcp_server-10.4.3/utils/storage_backend.py +113 -0
  398. pal_mcp_server-10.4.3/utils/token_utils.py +54 -0
  399. pal_mcp_server-10.4.3/uv.lock +1384 -0
@@ -0,0 +1,14 @@
1
+ Please analyze and fix the GitHub issue: $ARGUMENTS.
2
+
3
+ Follow these steps:
4
+
5
+ 1. Use `gh issue view` to get the issue details
6
+ 2. Understand the problem described in the issue
7
+ 3. Search the codebase for relevant files
8
+ 4. Implement the necessary changes to fix the issue
9
+ 5. Write and run tests to verify the fix
10
+ 6. Ensure code passes linting and type checking
11
+ 7. Create a descriptive commit message
12
+ 8. Push and create a PR
13
+
14
+ Remember to use the GitHub CLI (`gh`) for all GitHub-related tasks.
@@ -0,0 +1,81 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "CronCreate",
5
+ "CronDelete",
6
+ "CronList",
7
+ "PushNotification",
8
+ "RemoteTrigger",
9
+ "ScheduleWakeup",
10
+ "Bash(git:*)",
11
+ "Bash(gh:*)",
12
+ "Bash(pre-commit:*)",
13
+ "Bash(gitleaks:*)",
14
+ "Bash(python3:*)",
15
+ "Bash(uv:*)",
16
+ "Bash(uvx:*)",
17
+ "Bash(ruff:*)",
18
+ "Bash(ty:*)",
19
+ "Bash(pytest:*)"
20
+ ],
21
+ "deny": []
22
+ },
23
+ "extraKnownMarketplaces": {
24
+ "claude-plugins": {
25
+ "source": {
26
+ "source": "github",
27
+ "repo": "laurigates/claude-plugins"
28
+ },
29
+ "autoUpdate": true
30
+ }
31
+ },
32
+ "enabledPlugins": {
33
+ "accessibility-plugin@claude-plugins": false,
34
+ "agent-patterns-plugin@claude-plugins": false,
35
+ "agents-plugin@claude-plugins": false,
36
+ "api-plugin@claude-plugins": false,
37
+ "bevy-plugin@claude-plugins": false,
38
+ "blog-plugin@claude-plugins": false,
39
+ "blueprint-plugin@claude-plugins": false,
40
+ "code-quality-plugin@claude-plugins": true,
41
+ "codebase-attributes-plugin@claude-plugins": false,
42
+ "communication-plugin@claude-plugins": false,
43
+ "component-patterns-plugin@claude-plugins": false,
44
+ "configure-plugin@claude-plugins": true,
45
+ "container-plugin@claude-plugins": true,
46
+ "css-plugin@claude-plugins": false,
47
+ "documentation-plugin@claude-plugins": false,
48
+ "evaluate-plugin@claude-plugins": false,
49
+ "feedback-plugin@claude-plugins": false,
50
+ "finops-plugin@claude-plugins": false,
51
+ "git-plugin@claude-plugins": true,
52
+ "github-actions-plugin@claude-plugins": true,
53
+ "health-plugin@claude-plugins": true,
54
+ "home-assistant-plugin@claude-plugins": false,
55
+ "hooks-plugin@claude-plugins": true,
56
+ "kubernetes-plugin@claude-plugins": false,
57
+ "langchain-plugin@claude-plugins": false,
58
+ "macos-plugin@claude-plugins": false,
59
+ "migration-patterns-plugin@claude-plugins": false,
60
+ "networking-plugin@claude-plugins": false,
61
+ "obsidian-plugin@claude-plugins": false,
62
+ "project-plugin@claude-plugins": false,
63
+ "prompt-engineering-plugin@claude-plugins": false,
64
+ "prose-plugin@claude-plugins": false,
65
+ "python-plugin@claude-plugins": true,
66
+ "rust-plugin@claude-plugins": false,
67
+ "taskwarrior-plugin@claude-plugins": false,
68
+ "terraform-plugin@claude-plugins": false,
69
+ "testing-plugin@claude-plugins": true,
70
+ "tools-plugin@claude-plugins": false,
71
+ "typescript-plugin@claude-plugins": false,
72
+ "workflow-orchestration-plugin@claude-plugins": false,
73
+
74
+ "clangd@claude-plugins-official": false,
75
+ "gopls@claude-plugins-official": false,
76
+ "pyright@claude-plugins-official": true,
77
+ "rust-analyzer@claude-plugins-official": false,
78
+ "swift-language-server@claude-plugins-official": false,
79
+ "typescript-language-server@claude-plugins-official": false
80
+ }
81
+ }
@@ -0,0 +1,24 @@
1
+ [run]
2
+ source = gemini_server
3
+ omit =
4
+ */tests/*
5
+ */venv/*
6
+ */__pycache__/*
7
+ */site-packages/*
8
+
9
+ [report]
10
+ exclude_lines =
11
+ pragma: no cover
12
+ def __repr__
13
+ if self.debug:
14
+ if settings.DEBUG
15
+ raise AssertionError
16
+ raise NotImplementedError
17
+ if 0:
18
+ if __name__ == .__main__.:
19
+ if TYPE_CHECKING:
20
+ class .*\bProtocol\):
21
+ @(abc\.)?abstractmethod
22
+
23
+ [html]
24
+ directory = htmlcov
@@ -0,0 +1,64 @@
1
+ # Git
2
+ .git
3
+ .gitignore
4
+
5
+ # Python
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+ *.so
10
+ .Python
11
+ env/
12
+ venv/
13
+ .venv/
14
+ .pal_venv/
15
+ ENV/
16
+ env.bak/
17
+ venv.bak/
18
+
19
+ # IDE
20
+ .vscode/
21
+ .idea/
22
+ *.swp
23
+ *.swo
24
+
25
+ # OS
26
+ .DS_Store
27
+ Thumbs.db
28
+
29
+ # Logs
30
+ logs/*.log*
31
+ *.log
32
+
33
+ # Docker
34
+ Dockerfile*
35
+ docker-compose*
36
+ .dockerignore
37
+
38
+ # Documentation
39
+ docs/
40
+ README.md
41
+ *.md
42
+
43
+ # Tests
44
+ tests/
45
+ simulator_tests/
46
+ test_simulation_files/
47
+ pytest.ini
48
+
49
+ # Development
50
+ .env
51
+ .env.local
52
+ examples/
53
+ code_quality_checks.sh
54
+ run_integration_tests.sh
55
+
56
+ # Security - Sensitive files
57
+ *.key
58
+ *.pem
59
+ *.p12
60
+ *.pfx
61
+ *.crt
62
+ *.csr
63
+ secrets/
64
+ private/
@@ -0,0 +1,249 @@
1
+ # PAL MCP Server Environment Configuration
2
+ # Copy this file to .env and fill in your values
3
+
4
+ # API Keys - At least one is required
5
+ #
6
+ # IMPORTANT: Choose ONE approach:
7
+ # - Native APIs (Gemini/OpenAI/XAI) for direct access
8
+ # - DIAL for unified enterprise access
9
+ # - OpenRouter for unified cloud access
10
+ # Having multiple unified providers creates ambiguity about which serves each model.
11
+ #
12
+ # Option 1: Use native APIs (recommended for direct access)
13
+ # Get your Gemini API key from: https://makersuite.google.com/app/apikey
14
+ GEMINI_API_KEY=your_gemini_api_key_here
15
+ # GEMINI_BASE_URL= # Optional: Custom Gemini endpoint (defaults to Google's API)
16
+
17
+ # Get your OpenAI API key from: https://platform.openai.com/api-keys
18
+ OPENAI_API_KEY=your_openai_api_key_here
19
+
20
+ # Azure OpenAI mirrors OpenAI models through Azure-hosted deployments
21
+ # Set the endpoint from Azure Portal. Models are defined in conf/azure_models.json
22
+ # (or the file referenced by AZURE_MODELS_CONFIG_PATH).
23
+ AZURE_OPENAI_API_KEY=your_azure_openai_key_here
24
+ AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
25
+ # AZURE_OPENAI_API_VERSION=2024-02-15-preview
26
+ # AZURE_OPENAI_ALLOWED_MODELS=gpt-4o,gpt-4o-mini
27
+ # AZURE_MODELS_CONFIG_PATH=/absolute/path/to/custom_azure_models.json
28
+
29
+ # Get your X.AI API key from: https://console.x.ai/
30
+ XAI_API_KEY=your_xai_api_key_here
31
+
32
+ # Get your DIAL API key and configure host URL
33
+ # DIAL provides unified access to multiple AI models through a single API
34
+ DIAL_API_KEY=your_dial_api_key_here
35
+ # DIAL_API_HOST=https://core.dialx.ai # Optional: Base URL without /openai suffix (auto-appended)
36
+ # DIAL_API_VERSION=2025-01-01-preview # Optional: API version header for DIAL requests
37
+
38
+ # OpenCode Go: flat-rate subscription gateway for open-source coding models
39
+ # (GLM, Kimi, DeepSeek, Qwen, MiniMax, MiMo) over an OpenAI-compatible API.
40
+ # Subscribe and create a key at: https://opencode.ai/auth (docs: https://opencode.ai/docs/go/)
41
+ OPENCODE_API_KEY=your_opencode_api_key_here
42
+ # Optional: restrict which Go models are usable
43
+ # OPENCODE_GO_ALLOWED_MODELS=glm-5.2,deepseek-v4-pro,deepseek-v4-flash
44
+ # Optional: override the bundled model catalogue
45
+ # OPENCODE_GO_MODELS_CONFIG_PATH=/absolute/path/to/custom_opencode_go_models.json
46
+
47
+ # Google Jules: asynchronous AI coding agent (create a session, poll for a PR).
48
+ # Exposed via the `jules` tool, not as a model provider. Requires the Jules
49
+ # GitHub app installed so repos appear as sources.
50
+ # Create an API key at: https://jules.google.com/settings#api
51
+ JULES_API_KEY=your_jules_api_key_here
52
+
53
+ # Option 2: Use OpenRouter for access to multiple models through one API
54
+ # Get your OpenRouter API key from: https://openrouter.ai/
55
+ # If using OpenRouter, comment out the native API keys above
56
+ OPENROUTER_API_KEY=your_openrouter_api_key_here
57
+
58
+ # Option 3: Use custom API endpoints for local models (Ollama, vLLM, LM Studio, etc.)
59
+ # CUSTOM_API_URL=http://localhost:11434/v1 # Ollama example
60
+ # CUSTOM_API_KEY= # Empty for Ollama (no auth needed)
61
+ # CUSTOM_MODEL_NAME=llama3.2 # Default model name
62
+ # CUSTOM_ALLOWED_MODELS=llama3.2,mistral # Restrict which custom models are usable
63
+
64
+ # Optional: HTTP timeout tuning for OpenAI-compatible endpoints (OpenRouter/custom/local)
65
+ # Values are seconds; defaults are 45s connect / 900s read/write/pool for remote URLs
66
+ # and 60s/1800s when pointing at localhost. Raise these if long-running models time out.
67
+ # CUSTOM_CONNECT_TIMEOUT=45.0
68
+ # CUSTOM_READ_TIMEOUT=900.0
69
+ # CUSTOM_WRITE_TIMEOUT=900.0
70
+ # CUSTOM_POOL_TIMEOUT=900.0
71
+
72
+ # Optional: Default model to use
73
+ # Options: 'auto' (Claude picks best model), 'pro', 'flash', 'o3', 'o3-mini', 'o4-mini', 'o4-mini-high',
74
+ # 'gpt-5.2', 'gpt-5.1-codex', 'gpt-5.1-codex-mini', 'gpt-5', 'gpt-5-mini', 'grok',
75
+ # 'opus-4.1', 'sonnet-4.1', or any DIAL model if DIAL is configured
76
+ # When set to 'auto', Claude will select the best model for each task
77
+ # Defaults to 'auto' if not specified
78
+ DEFAULT_MODEL=auto
79
+
80
+ # Optional: Default thinking mode for ThinkDeep tool
81
+ # NOTE: Only applies to models that support extended thinking (e.g., Gemini 2.5 Pro, GPT-5 models)
82
+ # Flash models (2.0) will use system prompt engineering instead
83
+ # Token consumption per mode:
84
+ # minimal: 128 tokens - Quick analysis, fastest response
85
+ # low: 2,048 tokens - Light reasoning tasks
86
+ # medium: 8,192 tokens - Balanced reasoning (good for most cases)
87
+ # high: 16,384 tokens - Complex analysis (recommended for thinkdeep)
88
+ # max: 32,768 tokens - Maximum reasoning depth, slowest but most thorough
89
+ # Defaults to 'high' if not specified
90
+ DEFAULT_THINKING_MODE_THINKDEEP=high
91
+
92
+ # Optional: Model usage restrictions
93
+ # Limit which models can be used from each provider for cost control, compliance, or standardization
94
+ # Format: Comma-separated list of allowed model names (case-insensitive, whitespace tolerant)
95
+ # Empty or unset = all models allowed (default behavior)
96
+ # If you want to disable a provider entirely, don't set its API key
97
+ #
98
+ # Supported OpenAI models:
99
+ # - gpt-5.2 (400K context, 128K output, reasoning tokens, streaming enabled)
100
+ # - gpt-5.2-pro (400K context, 272K output, highest reasoning quality, Responses API only)
101
+ # - gpt-5.1-codex (400K context, 128K output, coding specialization, Responses API only)
102
+ # - gpt-5.1-codex-mini (400K context, 128K output, cost-efficient Codex with streaming)
103
+ # - gpt-5 (400K context, 128K output, reasoning tokens)
104
+ # - gpt-5-mini (400K context, 128K output, reasoning tokens)
105
+ # - o3 (200K context, high reasoning)
106
+ # - o3-mini (200K context, balanced)
107
+ # - o4-mini (200K context, latest balanced, temperature=1.0 only)
108
+ # - o4-mini-high (200K context, enhanced reasoning, temperature=1.0 only)
109
+ # - mini (shorthand for o4-mini)
110
+ #
111
+ # Supported Google/Gemini models:
112
+ # - gemini-2.5-flash (1M context, fast, supports thinking)
113
+ # - gemini-2.5-pro (1M context, powerful, supports thinking)
114
+ # - flash (shorthand for gemini-2.5-flash)
115
+ # - pro (shorthand for gemini-2.5-pro)
116
+ #
117
+ # Supported X.AI GROK models:
118
+ # - grok-3 (131K context, advanced reasoning)
119
+ # - grok-3-fast (131K context, higher performance but more expensive)
120
+ # - grok (shorthand for grok-3)
121
+ # - grok3 (shorthand for grok-3)
122
+ # - grokfast (shorthand for grok-3-fast)
123
+ #
124
+ # Supported DIAL models (when available in your DIAL deployment):
125
+ # - o3-2025-04-16 (200K context, latest O3 release)
126
+ # - o4-mini-2025-04-16 (200K context, latest O4 mini)
127
+ # - o3 (shorthand for o3-2025-04-16)
128
+ # - o4-mini (shorthand for o4-mini-2025-04-16)
129
+ # - anthropic.claude-sonnet-4.1-20250805-v1:0 (200K context, Claude 4.1 Sonnet)
130
+ # - anthropic.claude-sonnet-4.1-20250805-v1:0-with-thinking (200K context, Claude 4.1 Sonnet with thinking mode)
131
+ # - anthropic.claude-opus-4.1-20250805-v1:0 (200K context, Claude 4.1 Opus)
132
+ # - anthropic.claude-opus-4.1-20250805-v1:0-with-thinking (200K context, Claude 4.1 Opus with thinking mode)
133
+ # - sonnet-4.1 (shorthand for Claude 4.1 Sonnet)
134
+ # - sonnet-4.1-thinking (shorthand for Claude 4.1 Sonnet with thinking)
135
+ # - opus-4.1 (shorthand for Claude 4.1 Opus)
136
+ # - opus-4.1-thinking (shorthand for Claude 4.1 Opus with thinking)
137
+ # - gemini-2.5-pro-preview-03-25-google-search (1M context, with Google Search)
138
+ # - gemini-2.5-pro-preview-05-06 (1M context, latest preview)
139
+ # - gemini-2.5-flash-preview-05-20 (1M context, latest flash preview)
140
+ # - gemini-2.5-pro (shorthand for gemini-2.5-pro-preview-05-06)
141
+ # - gemini-2.5-pro-search (shorthand for gemini-2.5-pro-preview-03-25-google-search)
142
+ # - gemini-2.5-flash (shorthand for gemini-2.5-flash-preview-05-20)
143
+ #
144
+ # Examples:
145
+ # OPENAI_ALLOWED_MODELS=o3-mini,o4-mini,mini # Only allow mini models (cost control)
146
+ # OPENAI_ALLOWED_MODELS=gpt-5.2,gpt-5.1-codex # Pin to flagship GPT-5 family
147
+ # GOOGLE_ALLOWED_MODELS=flash # Only allow Flash (fast responses)
148
+ # XAI_ALLOWED_MODELS=grok-3 # Only allow standard GROK (not fast variant)
149
+ # OPENAI_ALLOWED_MODELS=o4-mini # Single model standardization
150
+ # GOOGLE_ALLOWED_MODELS=flash,pro # Allow both Gemini models
151
+ # XAI_ALLOWED_MODELS=grok,grok-3-fast # Allow both GROK variants
152
+ # DIAL_ALLOWED_MODELS=o3,o4-mini # Only allow O3/O4 models via DIAL
153
+ # DIAL_ALLOWED_MODELS=opus-4.1,sonnet-4.1 # Only Claude 4.1 models (without thinking)
154
+ # DIAL_ALLOWED_MODELS=opus-4.1-thinking,sonnet-4.1-thinking # Only Claude 4.1 with thinking mode
155
+ # DIAL_ALLOWED_MODELS=gemini-2.5-pro,gemini-2.5-flash # Only Gemini 2.5 models via DIAL
156
+ #
157
+ # Note: These restrictions apply even in 'auto' mode - Claude will only pick from allowed models
158
+ # OPENAI_ALLOWED_MODELS=
159
+ # GOOGLE_ALLOWED_MODELS=
160
+ # XAI_ALLOWED_MODELS=
161
+ # DIAL_ALLOWED_MODELS=
162
+
163
+ # Optional: Custom model configuration file path
164
+ # Override the default location of custom_models.json
165
+ # CUSTOM_MODELS_CONFIG_PATH=/path/to/your/custom_models.json
166
+
167
+ # Note: Conversations are stored in memory during the session
168
+
169
+ # Optional: Conversation timeout (hours)
170
+ # How long AI-to-AI conversation threads persist before expiring
171
+ # Longer timeouts use more memory but allow resuming conversations later
172
+ # Defaults to 24 hours if not specified
173
+ CONVERSATION_TIMEOUT_HOURS=24
174
+
175
+ # Optional: Max conversation turns
176
+ # Maximum number of turns allowed in an AI-to-AI conversation thread
177
+ # Each exchange (Claude asks, Gemini responds) counts as 2 turns
178
+ # So 20 turns = 10 exchanges. Defaults to 40 if not specified
179
+ MAX_CONVERSATION_TURNS=40
180
+
181
+ # Optional: Logging level (DEBUG, INFO, WARNING, ERROR)
182
+ # DEBUG: Shows detailed operational messages for troubleshooting (default)
183
+ # INFO: Shows general operational messages
184
+ # WARNING: Shows only warnings and errors
185
+ # ERROR: Shows only errors
186
+ LOG_LEVEL=DEBUG
187
+
188
+ # Optional: Tool Selection
189
+ # Comma-separated list of tools to disable. If not set, all tools are enabled.
190
+ # Essential tools (version, listmodels) cannot be disabled.
191
+ # Available tools: chat, thinkdeep, planner, consensus, codereview, precommit,
192
+ # debug, docgen, analyze, refactor, tracer, testgen, challenge, secaudit
193
+ #
194
+ # DEFAULT CONFIGURATION: To optimize context window usage, non-essential tools
195
+ # are disabled by default. Only the essential tools remain enabled:
196
+ # - chat, thinkdeep, planner, consensus (collaboration tools)
197
+ # - codereview, precommit, debug (code quality tools)
198
+ # - challenge (critical thinking utility)
199
+ #
200
+ # To enable additional tools, remove them from the DISABLED_TOOLS list below.
201
+ DISABLED_TOOLS=analyze,refactor,testgen,secaudit,docgen,tracer
202
+
203
+ # Optional: Language/Locale for AI responses
204
+ # When set, all AI tools will respond in the specified language
205
+ # while maintaining their analytical capabilities
206
+ # Examples: "fr-FR", "en-US", "zh-CN", "zh-TW", "ja-JP", "ko-KR", "es-ES"
207
+ # Leave empty for default language (English)
208
+ # LOCALE=fr-FR
209
+
210
+ # ===========================================
211
+ # PAL MCP Server Configuration
212
+ # ===========================================
213
+
214
+ # Force .env file values to override system environment variables
215
+ # This prevents issues where different AI tools (Claude Code, etc.) pass
216
+ # conflicting or cached environment variables that override each other
217
+ #
218
+ # When enabled (true):
219
+ # - .env file values take absolute precedence
220
+ # - Prevents MCP clients from passing outdated/cached API keys
221
+ # - Ensures consistent configuration across different AI tool integrations
222
+ # - Solves environment variable conflicts between multiple AI applications
223
+ #
224
+ # When disabled (false):
225
+ # - System environment variables take precedence (standard behavior)
226
+ # - Suitable for production deployments with secure environment injection
227
+ # - Respects container orchestrator and CI/CD pipeline configurations
228
+ #
229
+ # Recommended settings:
230
+ # Development with multiple AI tools: true (prevents tool conflicts)
231
+ # Production/Container deployments: false (preserves security practices)
232
+ # CI/CD environments: false (respects pipeline secrets)
233
+ PAL_MCP_FORCE_ENV_OVERRIDE=false
234
+
235
+ # ===========================================
236
+ # Docker Configuration
237
+ # ===========================================
238
+
239
+ # Container name for Docker Compose
240
+ # Used when running with docker-compose.yml
241
+ COMPOSE_PROJECT_NAME=pal-mcp
242
+
243
+ # Timezone for Docker containers
244
+ # Ensures consistent time handling in containerized environments
245
+ TZ=UTC
246
+
247
+ # Maximum log file size (default: 10MB)
248
+ # Applicable when using file-based logging
249
+ LOG_MAX_SIZE=10MB
@@ -0,0 +1,27 @@
1
+ # Ensure shell scripts always have LF line endings on checkout
2
+ *.sh text eol=lf
3
+ *.bash text eol=lf
4
+
5
+ # Python files
6
+ *.py text eol=lf
7
+
8
+ # Shell script without extension
9
+ run-server text eol=lf
10
+ code_quality_checks text eol=lf
11
+ run_integration_tests text eol=lf
12
+
13
+ # General text files
14
+ *.md text
15
+ *.txt text
16
+ *.yml text
17
+ *.yaml text
18
+ *.json text
19
+ *.xml text
20
+
21
+ # Binary files
22
+ *.png binary
23
+ *.jpg binary
24
+ *.jpeg binary
25
+ *.gif binary
26
+ *.ico binary
27
+ *.pdf binary
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [guidedways]
@@ -0,0 +1,62 @@
1
+ name: 🐞 Bug Report
2
+ description: Create a report to help us improve
3
+ labels: ["bug", "needs-triage"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thank you for taking the time to file a bug report! Please provide as much detail as possible to help us reproduce and fix the issue.
9
+
10
+ - type: input
11
+ id: version
12
+ attributes:
13
+ label: Project Version
14
+ description: "Which version are you using? (To see version: ./run-server.sh -v)"
15
+ placeholder: "e.g., 9.4.1"
16
+ validations:
17
+ required: true
18
+
19
+ - type: textarea
20
+ id: description
21
+ attributes:
22
+ label: Bug Description
23
+ description: A clear and concise description of what the bug is.
24
+ placeholder: "When I run the `codereview` nothing happens"
25
+ validations:
26
+ required: true
27
+
28
+ - type: textarea
29
+ id: logs
30
+ attributes:
31
+ label: Relevant Log Output
32
+ description: "Please copy and paste any relevant log output. Logs are stored under the `logs` folder in the pal folder. You an also use `./run-server.sh -f` to see logs"
33
+ render: shell
34
+
35
+ - type: dropdown
36
+ id: environment
37
+ attributes:
38
+ label: Operating System
39
+ description: What operating system are you running the Docker client on?
40
+ options:
41
+ - macOS
42
+ - Windows
43
+ - Linux
44
+ validations:
45
+ required: true
46
+
47
+ - type: checkboxes
48
+ id: no-duplicate-issues
49
+ attributes:
50
+ label: Sanity Checks
51
+ description: "Before submitting, please confirm the following:"
52
+ options:
53
+ - label: I have searched the existing issues and this is not a duplicate.
54
+ required: true
55
+ - label: I am using `GEMINI_API_KEY`
56
+ required: true
57
+ - label: I am using `OPENAI_API_KEY`
58
+ required: true
59
+ - label: I am using `OPENROUTER_API_KEY`
60
+ required: true
61
+ - label: I am using `CUSTOM_API_URL`
62
+ required: true
@@ -0,0 +1,12 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 💬 General Discussion
4
+ url: https://github.com/BeehiveInnovations/pal-mcp-server/discussions
5
+ about: Ask questions, share ideas, or discuss usage patterns with the community
6
+ - name: 📚 Documentation
7
+ url: https://github.com/BeehiveInnovations/pal-mcp-server/blob/main/README.md
8
+ about: Check the README for setup instructions and usage examples
9
+ - name: 🤝 Contributing Guide
10
+ url: https://github.com/BeehiveInnovations/pal-mcp-server/blob/main/CONTRIBUTING.md
11
+ about: Learn how to contribute to the project
12
+
@@ -0,0 +1,60 @@
1
+ name: 📖 Documentation Improvement
2
+ description: Report an issue or suggest an improvement for the documentation
3
+ labels: ["documentation", "good first issue"]
4
+ body:
5
+ - type: input
6
+ id: location
7
+ attributes:
8
+ label: Documentation Location
9
+ description: "Which file or page has the issue? (e.g., README.md, CONTRIBUTING.md, CLAUDE.md)"
10
+ placeholder: "e.g., README.md"
11
+ validations:
12
+ required: true
13
+
14
+ - type: dropdown
15
+ id: issue-type
16
+ attributes:
17
+ label: Type of Documentation Issue
18
+ description: What kind of documentation improvement is this?
19
+ options:
20
+ - Typo or grammar error
21
+ - Unclear or confusing explanation
22
+ - Outdated information
23
+ - Missing information
24
+ - Code example doesn't work
25
+ - Installation/setup instructions unclear
26
+ - Tool usage examples need improvement
27
+ - Other
28
+ validations:
29
+ required: true
30
+
31
+ - type: textarea
32
+ id: problem
33
+ attributes:
34
+ label: What is wrong with the documentation?
35
+ description: "Please describe the problem. Be specific about what is unclear, incorrect, or missing."
36
+ placeholder: "README is missing some details"
37
+ validations:
38
+ required: true
39
+
40
+ - type: textarea
41
+ id: suggestion
42
+ attributes:
43
+ label: Suggested Improvement
44
+ description: "How can we make it better? If you can, please provide the exact text or changes you'd like to see."
45
+ placeholder: "Please improve...."
46
+
47
+
48
+ - type: dropdown
49
+ id: audience
50
+ attributes:
51
+ label: Target Audience
52
+ description: Which audience would benefit most from this improvement?
53
+ options:
54
+ - New users (first-time setup)
55
+ - Developers (contributing to the project)
56
+ - Advanced users (complex workflows)
57
+ - All users
58
+ validations:
59
+ required: true
60
+
@@ -0,0 +1,52 @@
1
+ name: ✨ Feature Request
2
+ description: Suggest an idea for this project
3
+ labels: ["enhancement", "needs-triage"]
4
+ body:
5
+ - type: textarea
6
+ id: problem-description
7
+ attributes:
8
+ label: What problem is this feature trying to solve?
9
+ description: "A clear and concise description of the problem or user need. Why is this change needed?"
10
+ placeholder: "Currently, I can only use one Gemini tool at a time. I want to be able to chain multiple tools together (e.g., analyze -> codereview -> thinkdeep) in a single workflow."
11
+ validations:
12
+ required: true
13
+
14
+ - type: textarea
15
+ id: proposed-solution
16
+ attributes:
17
+ label: Describe the solution you'd like
18
+ description: A clear and concise description of what you want to happen. How would it work from a user's perspective?
19
+ placeholder: "I'd like to be able to specify a workflow like 'analyze src/ then codereview the findings then use thinkdeep to suggest improvements' in a single command or configuration."
20
+ validations:
21
+ required: true
22
+
23
+ - type: textarea
24
+ id: alternatives
25
+ attributes:
26
+ label: Describe alternatives you've considered
27
+ description: A clear and concise description of any alternative solutions or features you've considered.
28
+ placeholder: "I considered manually running each tool sequentially, but automatic workflow chaining would be more efficient and ensure context is preserved between steps."
29
+
30
+ - type: dropdown
31
+ id: feature-type
32
+ attributes:
33
+ label: Feature Category
34
+ description: What type of enhancement is this?
35
+ options:
36
+ - New tool (chat, codereview, debug, etc.)
37
+ - Workflow improvement
38
+ - Integration enhancement
39
+ - Performance optimization
40
+ - User experience improvement
41
+ - Documentation enhancement
42
+ - Other
43
+ validations:
44
+ required: true
45
+
46
+ - type: checkboxes
47
+ id: contribution
48
+ attributes:
49
+ label: Contribution
50
+ options:
51
+ - label: I am willing to submit a Pull Request to implement this feature.
52
+