open-pharma-plugins 2.4.0__tar.gz → 2.4.1__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 (158) hide show
  1. open_pharma_plugins-2.4.1/PKG-INFO +138 -0
  2. open_pharma_plugins-2.4.1/README.md +80 -0
  3. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/pyproject.toml +1 -1
  4. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/mcp_framework.py +1 -1
  5. open_pharma_plugins-2.4.1/src/open_pharma_plugins.egg-info/PKG-INFO +138 -0
  6. open_pharma_plugins-2.4.0/PKG-INFO +0 -142
  7. open_pharma_plugins-2.4.0/README.md +0 -84
  8. open_pharma_plugins-2.4.0/src/open_pharma_plugins.egg-info/PKG-INFO +0 -142
  9. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/LICENSE +0 -0
  10. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/NOTICE +0 -0
  11. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/setup.cfg +0 -0
  12. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/__init__.py +0 -0
  13. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/__main__.py +0 -0
  14. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_campaign_store.py +0 -0
  15. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_claim_engine.py +0 -0
  16. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_claims.py +0 -0
  17. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_inputs.py +0 -0
  18. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_mlr_package.py +0 -0
  19. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_render_validation.py +0 -0
  20. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_renderer.py +0 -0
  21. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_workflow_validation.py +0 -0
  22. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/legal.json +0 -0
  23. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/logo.svg +0 -0
  24. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/palette.json +0 -0
  25. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/product.png +0 -0
  26. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/typography.json +0 -0
  27. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/sample_approved_claims.json +0 -0
  28. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/__init__.py +0 -0
  29. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/_common.py +0 -0
  30. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/brief.py +0 -0
  31. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/claims.py +0 -0
  32. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/copy.py +0 -0
  33. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/journey.py +0 -0
  34. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/message.py +0 -0
  35. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/mlr.py +0 -0
  36. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/validation.py +0 -0
  37. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/policy/rules.json +0 -0
  38. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/banner.svg.j2 +0 -0
  39. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/email.html.j2 +0 -0
  40. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/mlr-review.html.j2 +0 -0
  41. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/__init__.py +0 -0
  42. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/create_campaign_brief.py +0 -0
  43. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/export_mlr_package.py +0 -0
  44. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_audience_journey.py +0 -0
  45. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_channel_copy.py +0 -0
  46. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_message_architecture.py +0 -0
  47. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/get_campaign_status.py +0 -0
  48. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/package_mlr_submission.py +0 -0
  49. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/preflight_campaign_inputs.py +0 -0
  50. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_banner.py +0 -0
  51. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_email.py +0 -0
  52. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_mlr_review.py +0 -0
  53. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_poster.py +0 -0
  54. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_approved_claims.py +0 -0
  55. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_brand_components.py +0 -0
  56. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/validate_claims_and_fair_balance.py +0 -0
  57. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/validate_rendered_assets.py +0 -0
  58. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/__init__.py +0 -0
  59. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/__main__.py +0 -0
  60. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_artifacts.py +0 -0
  61. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_cache.py +0 -0
  62. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_clinical_trials.py +0 -0
  63. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_dailymed.py +0 -0
  64. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_fda.py +0 -0
  65. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_pubmed.py +0 -0
  66. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_regulatory.py +0 -0
  67. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_runs.py +0 -0
  68. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_transport.py +0 -0
  69. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_watchlist.py +0 -0
  70. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_web_search.py +0 -0
  71. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/models.py +0 -0
  72. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/__init__.py +0 -0
  73. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_extract_events.py +0 -0
  74. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_landscape.py +0 -0
  75. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_refresh.py +0 -0
  76. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_report.py +0 -0
  77. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_news.py +0 -0
  78. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_publications.py +0 -0
  79. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_regulatory.py +0 -0
  80. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_trials.py +0 -0
  81. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_status.py +0 -0
  82. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_timeline.py +0 -0
  83. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_track.py +0 -0
  84. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_trial_detail.py +0 -0
  85. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/__init__.py +0 -0
  86. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/__main__.py +0 -0
  87. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_content_store.py +0 -0
  88. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_grounding.py +0 -0
  89. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_html_renderers.py +0 -0
  90. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/fixtures/sample_product_message.pdf +0 -0
  91. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/fixtures/sample_training_deck.pptx +0 -0
  92. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/models.py +0 -0
  93. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/__init__.py +0 -0
  94. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/get_document_page.py +0 -0
  95. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/ingest_document.py +0 -0
  96. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/list_documents.py +0 -0
  97. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/render_output.py +0 -0
  98. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/search_content.py +0 -0
  99. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/__init__.py +0 -0
  100. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/__main__.py +0 -0
  101. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/_crm_store.py +0 -0
  102. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch.py +0 -0
  103. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch_cli.py +0 -0
  104. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch_csv.py +0 -0
  105. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/fixtures/sample_accounts.csv +0 -0
  106. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/models.py +0 -0
  107. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/__init__.py +0 -0
  108. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/get_account.py +0 -0
  109. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/list_accounts.py +0 -0
  110. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_clinical_trials.py +0 -0
  111. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_congresses.py +0 -0
  112. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_grants.py +0 -0
  113. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_guidelines.py +0 -0
  114. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_hco_web.py +0 -0
  115. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_hcp_web.py +0 -0
  116. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_orcid.py +0 -0
  117. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_publications.py +0 -0
  118. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/update_account.py +0 -0
  119. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/__init__.py +0 -0
  120. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/__main__.py +0 -0
  121. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_optimizer.py +0 -0
  122. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_renderer.py +0 -0
  123. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_scoring.py +0 -0
  124. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_universe.py +0 -0
  125. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/fixtures/sample_universe.csv +0 -0
  126. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/models.py +0 -0
  127. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/__init__.py +0 -0
  128. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/load_universe.py +0 -0
  129. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/recommend_engagements.py +0 -0
  130. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/render_plan.py +0 -0
  131. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/__init__.py +0 -0
  132. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/__main__.py +0 -0
  133. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/data.py +0 -0
  134. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/constraints.csv +0 -0
  135. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/current_alignment.csv +0 -0
  136. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/hcps.csv +0 -0
  137. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/reps.csv +0 -0
  138. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/geo.py +0 -0
  139. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/models.py +0 -0
  140. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/reporting.py +0 -0
  141. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/scoring.py +0 -0
  142. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/solver.py +0 -0
  143. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/__init__.py +0 -0
  144. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_align.py +0 -0
  145. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_cluster.py +0 -0
  146. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_compare.py +0 -0
  147. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_evaluate.py +0 -0
  148. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_status.py +0 -0
  149. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_visualize.py +0 -0
  150. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/workload.py +0 -0
  151. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/SOURCES.txt +0 -0
  152. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/dependency_links.txt +0 -0
  153. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/entry_points.txt +0 -0
  154. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/requires.txt +0 -0
  155. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/top_level.txt +0 -0
  156. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/shared/__init__.py +0 -0
  157. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/shared/env.py +0 -0
  158. {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/shared/filesystem.py +0 -0
@@ -0,0 +1,138 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-pharma-plugins
3
+ Version: 2.4.1
4
+ Summary: Open Pharma Plugins: Agent Skills + MCP tools for pharmaceutical commercial operations — HCP intelligence, territory alignment, competitive intelligence, field training, engagement planning, and campaign creation.
5
+ Author: Jason Zhang
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/PharmaGenAI/open-pharma-plugins
8
+ Project-URL: Repository, https://github.com/PharmaGenAI/open-pharma-plugins
9
+ Project-URL: Issues, https://github.com/PharmaGenAI/open-pharma-plugins/issues
10
+ Keywords: mcp,pharma,commercial,agent-skills,hcp
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: <3.14,>=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ License-File: NOTICE
24
+ Requires-Dist: mcp<2,>=1.0.0
25
+ Requires-Dist: anyio<5,>=4.0
26
+ Requires-Dist: pydantic<3,>=2.8
27
+ Provides-Extra: hcp-intelligence
28
+ Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence"
29
+ Provides-Extra: hcp-intelligence-synth
30
+ Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence-synth"
31
+ Requires-Dist: openai<4,>=1; extra == "hcp-intelligence-synth"
32
+ Provides-Extra: field-training
33
+ Requires-Dist: pypdfium2<6,>=4; extra == "field-training"
34
+ Requires-Dist: python-pptx<2,>=1; extra == "field-training"
35
+ Provides-Extra: field-training-fixtures
36
+ Requires-Dist: pypdfium2<6,>=4; extra == "field-training-fixtures"
37
+ Requires-Dist: python-pptx<2,>=1; extra == "field-training-fixtures"
38
+ Requires-Dist: reportlab<6,>=4; extra == "field-training-fixtures"
39
+ Provides-Extra: next-best-engagement
40
+ Provides-Extra: territory-alignment
41
+ Provides-Extra: competitive-intelligence
42
+ Requires-Dist: pypdfium2<6,>=4; extra == "competitive-intelligence"
43
+ Requires-Dist: python-docx<2,>=1; extra == "competitive-intelligence"
44
+ Provides-Extra: campaign-studio
45
+ Requires-Dist: jinja2<4,>=3.1; extra == "campaign-studio"
46
+ Requires-Dist: pypdf<7,>=5; extra == "campaign-studio"
47
+ Requires-Dist: reportlab<6,>=4; extra == "campaign-studio"
48
+ Provides-Extra: all
49
+ Requires-Dist: requests<3,>=2.31; extra == "all"
50
+ Requires-Dist: openai<4,>=1; extra == "all"
51
+ Requires-Dist: pypdfium2<6,>=4; extra == "all"
52
+ Requires-Dist: python-pptx<2,>=1; extra == "all"
53
+ Requires-Dist: python-docx<2,>=1; extra == "all"
54
+ Requires-Dist: reportlab<6,>=4; extra == "all"
55
+ Requires-Dist: jinja2<4,>=3.1; extra == "all"
56
+ Requires-Dist: pypdf<7,>=5; extra == "all"
57
+ Dynamic: license-file
58
+
59
+ # Open Pharma Plugins
60
+
61
+ Agent Skills and MCP servers for pharmaceutical commercial operations.
62
+
63
+ ## Architecture
64
+
65
+ <p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Open Pharma Plugins architecture"></p>
66
+
67
+ Each capability installs independently as a Skill plus an MCP server. The Python distribution contains the servers; Skills, cookbooks, and marketplace manifests are installed from this repository.
68
+
69
+ ## Install
70
+
71
+ The guided installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and uses independent, immutable capability tags.
72
+
73
+ Download and inspect the installer before running it:
74
+
75
+ ```bash
76
+ curl -fsSLO https://raw.githubusercontent.com/PharmaGenAI/open-pharma-plugins/main/install.sh
77
+ less install.sh
78
+ bash install.sh
79
+ ```
80
+
81
+ Update capabilities already installed in a harness:
82
+
83
+ ```bash
84
+ bash install.sh update
85
+ ```
86
+
87
+ To install MCP servers without the companion Skills, use one or more extras from the Python distribution:
88
+
89
+ ```bash
90
+ python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
91
+ ```
92
+
93
+ See [Installation](docs/en/installation.md) for tagged releases, local checkouts, rollback, and manual setup.
94
+
95
+ ## Capabilities
96
+
97
+ | Capability | Tools | Use case |
98
+ |---|---:|---|
99
+ | [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
100
+ | [Field Training](cookbooks/field-training/usage.md) | 5 | Create grounded learning packages, assessments, role-play kits, and scorecards from approved documents |
101
+ | [Campaign Studio](cookbooks/campaign-studio/usage.md) | 16 | Draft campaigns, validate claims, render assets, and prepare MLR review packages |
102
+ | [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
103
+ | [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
104
+ | [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect evidence and produce reproducible briefings and timelines |
105
+
106
+ ## Try it
107
+
108
+ After installing a capability, reference your files and ask naturally. The Skill selects the relevant MCP tools.
109
+
110
+ ```text
111
+ @speakers.csv Build evidence-backed profiles for these HCPs.
112
+ @training.pdf Create a learning package and assessment from this approved document.
113
+ @brief.md Draft a campaign and prepare it for MLR review.
114
+ @alignment.csv Compare assignments and identify workload imbalances.
115
+ ```
116
+
117
+ ## Requirements and configuration
118
+
119
+ - Python 3.10–3.13
120
+ - `uv`/`uvx` for the guided plugin installer
121
+ - Provider credentials only for the capabilities and external services you use
122
+
123
+ Run the installer's **Configure** and **Verify** actions to set credentials and check dependencies. Shared configuration lives in `~/.open-pharma-plugins/config`.
124
+
125
+ See [Configuration](docs/en/configuration.md) and [Data security](docs/en/data_security.md) for settings, local data, provider calls, and compliance boundaries.
126
+
127
+ ## Documentation
128
+
129
+ - [Installation](docs/en/installation.md) · [Configuration](docs/en/configuration.md)
130
+ - [Local development](docs/en/local_development.md) · [Testing](docs/en/testing.md)
131
+ - [Contributing](CONTRIBUTING.md) · [Adding a capability](docs/en/how_to_add_new_capability.md)
132
+ - [Security policy](SECURITY.md) · [Release guide](docs/en/releasing.md)
133
+ - [中文文档](docs/zh/) · [日本語ドキュメント](docs/jp/)
134
+ - [Project website](https://pharmagenai.github.io/)
135
+
136
+ ## License
137
+
138
+ Apache-2.0. See [LICENSE](LICENSE).
@@ -0,0 +1,80 @@
1
+ # Open Pharma Plugins
2
+
3
+ Agent Skills and MCP servers for pharmaceutical commercial operations.
4
+
5
+ ## Architecture
6
+
7
+ <p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Open Pharma Plugins architecture"></p>
8
+
9
+ Each capability installs independently as a Skill plus an MCP server. The Python distribution contains the servers; Skills, cookbooks, and marketplace manifests are installed from this repository.
10
+
11
+ ## Install
12
+
13
+ The guided installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and uses independent, immutable capability tags.
14
+
15
+ Download and inspect the installer before running it:
16
+
17
+ ```bash
18
+ curl -fsSLO https://raw.githubusercontent.com/PharmaGenAI/open-pharma-plugins/main/install.sh
19
+ less install.sh
20
+ bash install.sh
21
+ ```
22
+
23
+ Update capabilities already installed in a harness:
24
+
25
+ ```bash
26
+ bash install.sh update
27
+ ```
28
+
29
+ To install MCP servers without the companion Skills, use one or more extras from the Python distribution:
30
+
31
+ ```bash
32
+ python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
33
+ ```
34
+
35
+ See [Installation](docs/en/installation.md) for tagged releases, local checkouts, rollback, and manual setup.
36
+
37
+ ## Capabilities
38
+
39
+ | Capability | Tools | Use case |
40
+ |---|---:|---|
41
+ | [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
42
+ | [Field Training](cookbooks/field-training/usage.md) | 5 | Create grounded learning packages, assessments, role-play kits, and scorecards from approved documents |
43
+ | [Campaign Studio](cookbooks/campaign-studio/usage.md) | 16 | Draft campaigns, validate claims, render assets, and prepare MLR review packages |
44
+ | [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
45
+ | [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
46
+ | [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect evidence and produce reproducible briefings and timelines |
47
+
48
+ ## Try it
49
+
50
+ After installing a capability, reference your files and ask naturally. The Skill selects the relevant MCP tools.
51
+
52
+ ```text
53
+ @speakers.csv Build evidence-backed profiles for these HCPs.
54
+ @training.pdf Create a learning package and assessment from this approved document.
55
+ @brief.md Draft a campaign and prepare it for MLR review.
56
+ @alignment.csv Compare assignments and identify workload imbalances.
57
+ ```
58
+
59
+ ## Requirements and configuration
60
+
61
+ - Python 3.10–3.13
62
+ - `uv`/`uvx` for the guided plugin installer
63
+ - Provider credentials only for the capabilities and external services you use
64
+
65
+ Run the installer's **Configure** and **Verify** actions to set credentials and check dependencies. Shared configuration lives in `~/.open-pharma-plugins/config`.
66
+
67
+ See [Configuration](docs/en/configuration.md) and [Data security](docs/en/data_security.md) for settings, local data, provider calls, and compliance boundaries.
68
+
69
+ ## Documentation
70
+
71
+ - [Installation](docs/en/installation.md) · [Configuration](docs/en/configuration.md)
72
+ - [Local development](docs/en/local_development.md) · [Testing](docs/en/testing.md)
73
+ - [Contributing](CONTRIBUTING.md) · [Adding a capability](docs/en/how_to_add_new_capability.md)
74
+ - [Security policy](SECURITY.md) · [Release guide](docs/en/releasing.md)
75
+ - [中文文档](docs/zh/) · [日本語ドキュメント](docs/jp/)
76
+ - [Project website](https://pharmagenai.github.io/)
77
+
78
+ ## License
79
+
80
+ Apache-2.0. See [LICENSE](LICENSE).
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  requires-python = ">=3.10,<3.14"
11
11
  license = "Apache-2.0"
12
12
  license-files = ["LICENSE", "NOTICE"]
13
- authors = [{ name = "EAI Commercial Team" }]
13
+ authors = [{ name = "Jason Zhang" }]
14
14
  keywords = ["mcp", "pharma", "commercial", "agent-skills", "hcp"]
15
15
  classifiers = [
16
16
  "Development Status :: 4 - Beta",
@@ -14,7 +14,7 @@ Depends only on the `mcp` SDK (bundles FastMCP + pydantic) + anyio, so servers s
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- __version__ = "2.4.0" # distribution/release-train version; plugin versions are per capability
17
+ __version__ = "2.4.1" # distribution/release-train version; plugin versions are per capability
18
18
 
19
19
  import asyncio
20
20
  import importlib
@@ -0,0 +1,138 @@
1
+ Metadata-Version: 2.4
2
+ Name: open-pharma-plugins
3
+ Version: 2.4.1
4
+ Summary: Open Pharma Plugins: Agent Skills + MCP tools for pharmaceutical commercial operations — HCP intelligence, territory alignment, competitive intelligence, field training, engagement planning, and campaign creation.
5
+ Author: Jason Zhang
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/PharmaGenAI/open-pharma-plugins
8
+ Project-URL: Repository, https://github.com/PharmaGenAI/open-pharma-plugins
9
+ Project-URL: Issues, https://github.com/PharmaGenAI/open-pharma-plugins/issues
10
+ Keywords: mcp,pharma,commercial,agent-skills,hcp
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: <3.14,>=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ License-File: NOTICE
24
+ Requires-Dist: mcp<2,>=1.0.0
25
+ Requires-Dist: anyio<5,>=4.0
26
+ Requires-Dist: pydantic<3,>=2.8
27
+ Provides-Extra: hcp-intelligence
28
+ Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence"
29
+ Provides-Extra: hcp-intelligence-synth
30
+ Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence-synth"
31
+ Requires-Dist: openai<4,>=1; extra == "hcp-intelligence-synth"
32
+ Provides-Extra: field-training
33
+ Requires-Dist: pypdfium2<6,>=4; extra == "field-training"
34
+ Requires-Dist: python-pptx<2,>=1; extra == "field-training"
35
+ Provides-Extra: field-training-fixtures
36
+ Requires-Dist: pypdfium2<6,>=4; extra == "field-training-fixtures"
37
+ Requires-Dist: python-pptx<2,>=1; extra == "field-training-fixtures"
38
+ Requires-Dist: reportlab<6,>=4; extra == "field-training-fixtures"
39
+ Provides-Extra: next-best-engagement
40
+ Provides-Extra: territory-alignment
41
+ Provides-Extra: competitive-intelligence
42
+ Requires-Dist: pypdfium2<6,>=4; extra == "competitive-intelligence"
43
+ Requires-Dist: python-docx<2,>=1; extra == "competitive-intelligence"
44
+ Provides-Extra: campaign-studio
45
+ Requires-Dist: jinja2<4,>=3.1; extra == "campaign-studio"
46
+ Requires-Dist: pypdf<7,>=5; extra == "campaign-studio"
47
+ Requires-Dist: reportlab<6,>=4; extra == "campaign-studio"
48
+ Provides-Extra: all
49
+ Requires-Dist: requests<3,>=2.31; extra == "all"
50
+ Requires-Dist: openai<4,>=1; extra == "all"
51
+ Requires-Dist: pypdfium2<6,>=4; extra == "all"
52
+ Requires-Dist: python-pptx<2,>=1; extra == "all"
53
+ Requires-Dist: python-docx<2,>=1; extra == "all"
54
+ Requires-Dist: reportlab<6,>=4; extra == "all"
55
+ Requires-Dist: jinja2<4,>=3.1; extra == "all"
56
+ Requires-Dist: pypdf<7,>=5; extra == "all"
57
+ Dynamic: license-file
58
+
59
+ # Open Pharma Plugins
60
+
61
+ Agent Skills and MCP servers for pharmaceutical commercial operations.
62
+
63
+ ## Architecture
64
+
65
+ <p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Open Pharma Plugins architecture"></p>
66
+
67
+ Each capability installs independently as a Skill plus an MCP server. The Python distribution contains the servers; Skills, cookbooks, and marketplace manifests are installed from this repository.
68
+
69
+ ## Install
70
+
71
+ The guided installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and uses independent, immutable capability tags.
72
+
73
+ Download and inspect the installer before running it:
74
+
75
+ ```bash
76
+ curl -fsSLO https://raw.githubusercontent.com/PharmaGenAI/open-pharma-plugins/main/install.sh
77
+ less install.sh
78
+ bash install.sh
79
+ ```
80
+
81
+ Update capabilities already installed in a harness:
82
+
83
+ ```bash
84
+ bash install.sh update
85
+ ```
86
+
87
+ To install MCP servers without the companion Skills, use one or more extras from the Python distribution:
88
+
89
+ ```bash
90
+ python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
91
+ ```
92
+
93
+ See [Installation](docs/en/installation.md) for tagged releases, local checkouts, rollback, and manual setup.
94
+
95
+ ## Capabilities
96
+
97
+ | Capability | Tools | Use case |
98
+ |---|---:|---|
99
+ | [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
100
+ | [Field Training](cookbooks/field-training/usage.md) | 5 | Create grounded learning packages, assessments, role-play kits, and scorecards from approved documents |
101
+ | [Campaign Studio](cookbooks/campaign-studio/usage.md) | 16 | Draft campaigns, validate claims, render assets, and prepare MLR review packages |
102
+ | [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
103
+ | [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
104
+ | [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect evidence and produce reproducible briefings and timelines |
105
+
106
+ ## Try it
107
+
108
+ After installing a capability, reference your files and ask naturally. The Skill selects the relevant MCP tools.
109
+
110
+ ```text
111
+ @speakers.csv Build evidence-backed profiles for these HCPs.
112
+ @training.pdf Create a learning package and assessment from this approved document.
113
+ @brief.md Draft a campaign and prepare it for MLR review.
114
+ @alignment.csv Compare assignments and identify workload imbalances.
115
+ ```
116
+
117
+ ## Requirements and configuration
118
+
119
+ - Python 3.10–3.13
120
+ - `uv`/`uvx` for the guided plugin installer
121
+ - Provider credentials only for the capabilities and external services you use
122
+
123
+ Run the installer's **Configure** and **Verify** actions to set credentials and check dependencies. Shared configuration lives in `~/.open-pharma-plugins/config`.
124
+
125
+ See [Configuration](docs/en/configuration.md) and [Data security](docs/en/data_security.md) for settings, local data, provider calls, and compliance boundaries.
126
+
127
+ ## Documentation
128
+
129
+ - [Installation](docs/en/installation.md) · [Configuration](docs/en/configuration.md)
130
+ - [Local development](docs/en/local_development.md) · [Testing](docs/en/testing.md)
131
+ - [Contributing](CONTRIBUTING.md) · [Adding a capability](docs/en/how_to_add_new_capability.md)
132
+ - [Security policy](SECURITY.md) · [Release guide](docs/en/releasing.md)
133
+ - [中文文档](docs/zh/) · [日本語ドキュメント](docs/jp/)
134
+ - [Project website](https://pharmagenai.github.io/)
135
+
136
+ ## License
137
+
138
+ Apache-2.0. See [LICENSE](LICENSE).
@@ -1,142 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: open-pharma-plugins
3
- Version: 2.4.0
4
- Summary: Open Pharma Plugins: Agent Skills + MCP tools for pharmaceutical commercial operations — HCP intelligence, territory alignment, competitive intelligence, field training, engagement planning, and campaign creation.
5
- Author: EAI Commercial Team
6
- License-Expression: Apache-2.0
7
- Project-URL: Homepage, https://github.com/PharmaGenAI/open-pharma-plugins
8
- Project-URL: Repository, https://github.com/PharmaGenAI/open-pharma-plugins
9
- Project-URL: Issues, https://github.com/PharmaGenAI/open-pharma-plugins/issues
10
- Keywords: mcp,pharma,commercial,agent-skills,hcp
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Intended Audience :: Developers
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Operating System :: OS Independent
19
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Requires-Python: <3.14,>=3.10
21
- Description-Content-Type: text/markdown
22
- License-File: LICENSE
23
- License-File: NOTICE
24
- Requires-Dist: mcp<2,>=1.0.0
25
- Requires-Dist: anyio<5,>=4.0
26
- Requires-Dist: pydantic<3,>=2.8
27
- Provides-Extra: hcp-intelligence
28
- Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence"
29
- Provides-Extra: hcp-intelligence-synth
30
- Requires-Dist: requests<3,>=2.31; extra == "hcp-intelligence-synth"
31
- Requires-Dist: openai<4,>=1; extra == "hcp-intelligence-synth"
32
- Provides-Extra: field-training
33
- Requires-Dist: pypdfium2<6,>=4; extra == "field-training"
34
- Requires-Dist: python-pptx<2,>=1; extra == "field-training"
35
- Provides-Extra: field-training-fixtures
36
- Requires-Dist: pypdfium2<6,>=4; extra == "field-training-fixtures"
37
- Requires-Dist: python-pptx<2,>=1; extra == "field-training-fixtures"
38
- Requires-Dist: reportlab<6,>=4; extra == "field-training-fixtures"
39
- Provides-Extra: next-best-engagement
40
- Provides-Extra: territory-alignment
41
- Provides-Extra: competitive-intelligence
42
- Requires-Dist: pypdfium2<6,>=4; extra == "competitive-intelligence"
43
- Requires-Dist: python-docx<2,>=1; extra == "competitive-intelligence"
44
- Provides-Extra: campaign-studio
45
- Requires-Dist: jinja2<4,>=3.1; extra == "campaign-studio"
46
- Requires-Dist: pypdf<7,>=5; extra == "campaign-studio"
47
- Requires-Dist: reportlab<6,>=4; extra == "campaign-studio"
48
- Provides-Extra: all
49
- Requires-Dist: requests<3,>=2.31; extra == "all"
50
- Requires-Dist: openai<4,>=1; extra == "all"
51
- Requires-Dist: pypdfium2<6,>=4; extra == "all"
52
- Requires-Dist: python-pptx<2,>=1; extra == "all"
53
- Requires-Dist: python-docx<2,>=1; extra == "all"
54
- Requires-Dist: reportlab<6,>=4; extra == "all"
55
- Requires-Dist: jinja2<4,>=3.1; extra == "all"
56
- Requires-Dist: pypdf<7,>=5; extra == "all"
57
- Dynamic: license-file
58
-
59
- # Open Pharma Plugins
60
-
61
- Agent Skills and MCP tools for pharmaceutical commercial operations.
62
-
63
- > **Public beta.** Validate outputs before operational use. Campaign and field-training artifacts are drafts for qualified medical/legal/regulatory review, not automated approval.
64
-
65
- The public business site at [pharmagenai.github.io](https://pharmagenai.github.io/) is the external product and company overview. Technical installation, capability, testing, and release documentation for operators and maintainers lives in this repository under [`docs/`](docs/) and the capability cookbooks, alongside the source code.
66
-
67
- ## Capabilities
68
-
69
- | Capability | Tools | Description |
70
- |---|---:|---|
71
- | [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
72
- | [Field Training](cookbooks/field-training/usage.md) | 5 | Turn approved PDF/PPTX paths into grounded learning packages, assessments, role-play kits, and scorecards |
73
- | [Campaign Studio](cookbooks/campaign-studio/usage.md) | 16 | Create, validate, render, and export campaign drafts for MLR review |
74
- | [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
75
- | [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
76
- | [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect one evidence run and project reproducible briefings and timelines |
77
-
78
- ## Architecture
79
-
80
- <p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Architecture diagram"></p>
81
-
82
- Each source plugin bundles a Skill with one MCP server. The Python wheel contains the six MCP servers and their runtime fixtures; Skills, cookbooks, and marketplace manifests are installed from the repository rather than the wheel.
83
-
84
- ## Quick start
85
-
86
- Python 3.10–3.13 is supported. Install one or more MCP servers from the published distribution:
87
-
88
- ```bash
89
- python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
90
- open-pharma-plugins-territory-alignment --version
91
- ```
92
-
93
- For the complete Skill + MCP plugin, download and inspect the guided installer before running it:
94
-
95
- ```bash
96
- curl -fsSLO https://raw.githubusercontent.com/PharmaGenAI/open-pharma-plugins/main/install.sh
97
- less install.sh
98
- bash install.sh
99
- ```
100
-
101
- The installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and never installs a package manager on your behalf. See [Installation](docs/en/installation.md) for tag-pinned and source-checkout options.
102
-
103
- ## Configuration and local data
104
-
105
- Copy `.env.example` to `~/.open-pharma-plugins/config` and set only the providers you use. Process environment variables take precedence. Mutable data defaults to private capability directories under `~/.open-pharma-plugins`; files are written with mode `0600` and directories with `0700` where POSIX permissions are available.
106
-
107
- Common settings include:
108
-
109
- | Variable | Used by |
110
- |---|---|
111
- | `SERPER_API_KEY` / `TAVILY_API_KEY` / `EXA_API_KEY` | Web search |
112
- | `OPENROUTER_API_KEY` / `OPENROUTER_BASE_URL` | Optional HCP batch profile synthesis |
113
- | `NCBI_API_KEY` | PubMed |
114
- | `OPENFDA_API_KEY` | openFDA |
115
- | `OPEN_PHARMA_*_DIR` | Capability-specific mutable-data locations |
116
-
117
- API keys are not persisted in competitive-intelligence cache metadata, evidence URLs, runs, or reports. Source queries are still sent to the selected external provider, so do not place secrets or unnecessary personal data in search terms. Reports and timelines can reuse one immutable run instead of repeating provider calls.
118
-
119
- HCP batch extraction/synthesis defaults to `high` reasoning effort, a 120-second request timeout,
120
- and zero SDK retries. An installed HCP plugin accepts user-supplied input/output paths through the
121
- tag-pinned `open-pharma-plugins-hcp-batch` console and produces canonical account JSON,
122
- `batch_summary.csv`, and `batch_manifest.json`. See the
123
- [HCP batch guide](docs/en/hcp_batch.md) for dry-run, confirmation, provider, CSV, and resume rules.
124
-
125
- ## Documentation
126
-
127
- - [Public business site](https://pharmagenai.github.io/) for external product and company overview
128
- - [Technical documentation in this repository](docs/) for installation, capability, testing, and release instructions
129
- - [Installation](docs/en/installation.md)
130
- - [Configuration](docs/en/configuration.md)
131
- - [HCP batch processing and CSV review](docs/en/hcp_batch.md)
132
- - [Data security and compliance boundaries](docs/en/data_security.md)
133
- - [Local development](docs/en/local_development.md)
134
- - [Testing](docs/en/testing.md)
135
- - [Adding a capability](docs/en/how_to_add_new_capability.md)
136
- - [Releasing](docs/en/releasing.md)
137
- - [Manual harness setup](docs/en/manual_harnesses.md)
138
- - [Chinese documentation](docs/zh/) · [Japanese documentation](docs/jp/)
139
-
140
- ## License
141
-
142
- Apache-2.0. See [LICENSE](LICENSE).
@@ -1,84 +0,0 @@
1
- # Open Pharma Plugins
2
-
3
- Agent Skills and MCP tools for pharmaceutical commercial operations.
4
-
5
- > **Public beta.** Validate outputs before operational use. Campaign and field-training artifacts are drafts for qualified medical/legal/regulatory review, not automated approval.
6
-
7
- The public business site at [pharmagenai.github.io](https://pharmagenai.github.io/) is the external product and company overview. Technical installation, capability, testing, and release documentation for operators and maintainers lives in this repository under [`docs/`](docs/) and the capability cookbooks, alongside the source code.
8
-
9
- ## Capabilities
10
-
11
- | Capability | Tools | Description |
12
- |---|---:|---|
13
- | [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
14
- | [Field Training](cookbooks/field-training/usage.md) | 5 | Turn approved PDF/PPTX paths into grounded learning packages, assessments, role-play kits, and scorecards |
15
- | [Campaign Studio](cookbooks/campaign-studio/usage.md) | 16 | Create, validate, render, and export campaign drafts for MLR review |
16
- | [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
17
- | [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
18
- | [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect one evidence run and project reproducible briefings and timelines |
19
-
20
- ## Architecture
21
-
22
- <p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Architecture diagram"></p>
23
-
24
- Each source plugin bundles a Skill with one MCP server. The Python wheel contains the six MCP servers and their runtime fixtures; Skills, cookbooks, and marketplace manifests are installed from the repository rather than the wheel.
25
-
26
- ## Quick start
27
-
28
- Python 3.10–3.13 is supported. Install one or more MCP servers from the published distribution:
29
-
30
- ```bash
31
- python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
32
- open-pharma-plugins-territory-alignment --version
33
- ```
34
-
35
- For the complete Skill + MCP plugin, download and inspect the guided installer before running it:
36
-
37
- ```bash
38
- curl -fsSLO https://raw.githubusercontent.com/PharmaGenAI/open-pharma-plugins/main/install.sh
39
- less install.sh
40
- bash install.sh
41
- ```
42
-
43
- The installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and never installs a package manager on your behalf. See [Installation](docs/en/installation.md) for tag-pinned and source-checkout options.
44
-
45
- ## Configuration and local data
46
-
47
- Copy `.env.example` to `~/.open-pharma-plugins/config` and set only the providers you use. Process environment variables take precedence. Mutable data defaults to private capability directories under `~/.open-pharma-plugins`; files are written with mode `0600` and directories with `0700` where POSIX permissions are available.
48
-
49
- Common settings include:
50
-
51
- | Variable | Used by |
52
- |---|---|
53
- | `SERPER_API_KEY` / `TAVILY_API_KEY` / `EXA_API_KEY` | Web search |
54
- | `OPENROUTER_API_KEY` / `OPENROUTER_BASE_URL` | Optional HCP batch profile synthesis |
55
- | `NCBI_API_KEY` | PubMed |
56
- | `OPENFDA_API_KEY` | openFDA |
57
- | `OPEN_PHARMA_*_DIR` | Capability-specific mutable-data locations |
58
-
59
- API keys are not persisted in competitive-intelligence cache metadata, evidence URLs, runs, or reports. Source queries are still sent to the selected external provider, so do not place secrets or unnecessary personal data in search terms. Reports and timelines can reuse one immutable run instead of repeating provider calls.
60
-
61
- HCP batch extraction/synthesis defaults to `high` reasoning effort, a 120-second request timeout,
62
- and zero SDK retries. An installed HCP plugin accepts user-supplied input/output paths through the
63
- tag-pinned `open-pharma-plugins-hcp-batch` console and produces canonical account JSON,
64
- `batch_summary.csv`, and `batch_manifest.json`. See the
65
- [HCP batch guide](docs/en/hcp_batch.md) for dry-run, confirmation, provider, CSV, and resume rules.
66
-
67
- ## Documentation
68
-
69
- - [Public business site](https://pharmagenai.github.io/) for external product and company overview
70
- - [Technical documentation in this repository](docs/) for installation, capability, testing, and release instructions
71
- - [Installation](docs/en/installation.md)
72
- - [Configuration](docs/en/configuration.md)
73
- - [HCP batch processing and CSV review](docs/en/hcp_batch.md)
74
- - [Data security and compliance boundaries](docs/en/data_security.md)
75
- - [Local development](docs/en/local_development.md)
76
- - [Testing](docs/en/testing.md)
77
- - [Adding a capability](docs/en/how_to_add_new_capability.md)
78
- - [Releasing](docs/en/releasing.md)
79
- - [Manual harness setup](docs/en/manual_harnesses.md)
80
- - [Chinese documentation](docs/zh/) · [Japanese documentation](docs/jp/)
81
-
82
- ## License
83
-
84
- Apache-2.0. See [LICENSE](LICENSE).