open-pharma-plugins 2.2.1__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.
- open_pharma_plugins-2.4.1/NOTICE +1 -0
- {open_pharma_plugins-2.2.1/src/open_pharma_plugins.egg-info → open_pharma_plugins-2.4.1}/PKG-INFO +54 -51
- open_pharma_plugins-2.4.1/README.md +80 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/pyproject.toml +5 -3
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/__init__.py +1 -1
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_campaign_store.py +439 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_claim_engine.py +821 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_claims.py +62 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_inputs.py +1143 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_mlr_package.py +1286 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_render_validation.py +1970 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_renderer.py +1030 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_workflow_validation.py +1104 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/product.png +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/sample_approved_claims.json +26 -13
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/brief.py +43 -3
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/claims.py +66 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/copy.py +101 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/message.py +11 -2
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/validation.py +14 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/policy/rules.json +18 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/banner.svg.j2 +17 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/email.html.j2 +61 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/mlr-review.html.j2 +252 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/create_campaign_brief.py +56 -24
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/export_mlr_package.py +52 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_audience_journey.py +10 -50
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_channel_copy.py +14 -71
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_message_architecture.py +180 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/get_campaign_status.py +664 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/package_mlr_submission.py +44 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/preflight_campaign_inputs.py +41 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_banner.py +211 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_email.py +145 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_mlr_review.py +44 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_poster.py +202 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_approved_claims.py +51 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_brand_components.py +43 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/validate_claims_and_fair_balance.py +429 -0
- open_pharma_plugins-2.4.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/validate_rendered_assets.py +31 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/__init__.py +1 -1
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/data.py +465 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/constraints.csv +0 -2
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/geo.py +11 -7
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/models.py +268 -0
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/reporting.py +768 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/scoring.py +13 -9
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/solver.py +212 -37
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_align.py +210 -0
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_cluster.py +395 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_compare.py +29 -5
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_evaluate.py +14 -7
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_status.py +4 -1
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_visualize.py +143 -0
- open_pharma_plugins-2.4.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/workload.py +30 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/mcp_framework.py +1 -1
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1/src/open_pharma_plugins.egg-info}/PKG-INFO +54 -51
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/SOURCES.txt +14 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/requires.txt +2 -0
- open_pharma_plugins-2.4.1/src/shared/filesystem.py +1308 -0
- open_pharma_plugins-2.2.1/README.md +0 -80
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_campaign_store.py +0 -162
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_claim_engine.py +0 -262
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/_renderer.py +0 -119
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/product.png +0 -1
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/claims.py +0 -15
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/copy.py +0 -47
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/banner.svg.j2 +0 -26
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/templates/email.html.j2 +0 -54
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/generate_message_architecture.py +0 -121
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/package_mlr_submission.py +0 -230
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_banner.py +0 -99
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_email.py +0 -101
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/render_poster.py +0 -222
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_approved_claims.py +0 -71
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/retrieve_brand_components.py +0 -76
- open_pharma_plugins-2.2.1/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/validate_claims_and_fair_balance.py +0 -285
- open_pharma_plugins-2.2.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/data.py +0 -300
- open_pharma_plugins-2.2.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/models.py +0 -201
- open_pharma_plugins-2.2.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_align.py +0 -138
- open_pharma_plugins-2.2.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_cluster.py +0 -247
- open_pharma_plugins-2.2.1/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/ta_visualize.py +0 -504
- open_pharma_plugins-2.2.1/src/shared/filesystem.py +0 -138
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/LICENSE +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/setup.cfg +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/legal.json +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/logo.svg +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/palette.json +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/fixtures/brand_kit/typography.json +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/_common.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/journey.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/models/mlr.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/campaign-studio/open_pharma_plugins_campaign_studio/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_artifacts.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_cache.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_clinical_trials.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_dailymed.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_fda.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_pubmed.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_regulatory.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_runs.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_transport.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_watchlist.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/_web_search.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/models.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_extract_events.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_landscape.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_refresh.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_report.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_news.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_publications.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_regulatory.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_scan_trials.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_status.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_timeline.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_track.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/competitive-intelligence/open_pharma_plugins_competitive_intelligence/tools/ci_trial_detail.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_content_store.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_grounding.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/_html_renderers.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/fixtures/sample_product_message.pdf +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/fixtures/sample_training_deck.pptx +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/models.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/get_document_page.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/ingest_document.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/list_documents.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/render_output.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/field-training/open_pharma_plugins_field_training/tools/search_content.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/_crm_store.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch_cli.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/batch_csv.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/fixtures/sample_accounts.csv +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/models.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/get_account.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/list_accounts.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_clinical_trials.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_congresses.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_grants.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_guidelines.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_hco_web.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_hcp_web.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_orcid.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/search_publications.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/hcp-intelligence/open_pharma_plugins_hcp_intelligence/tools/update_account.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_optimizer.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_renderer.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_scoring.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/_universe.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/fixtures/sample_universe.csv +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/models.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/load_universe.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/recommend_engagements.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/next-best-engagement/open_pharma_plugins_next_best_engagement/tools/render_plan.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/__main__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/current_alignment.csv +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/hcps.csv +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/fixtures/reps.csv +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/capabilities/territory-alignment/open_pharma_plugins_territory_alignment/tools/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/dependency_links.txt +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/entry_points.txt +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/top_level.txt +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/shared/__init__.py +0 -0
- {open_pharma_plugins-2.2.1 → open_pharma_plugins-2.4.1}/src/shared/env.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Copyright 2026 Jason Zhang
|
{open_pharma_plugins-2.2.1/src/open_pharma_plugins.egg-info → open_pharma_plugins-2.4.1}/PKG-INFO
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: open-pharma-plugins
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.1
|
|
4
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:
|
|
5
|
+
Author: Jason Zhang
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/PharmaGenAI/open-pharma-plugins
|
|
8
8
|
Project-URL: Repository, https://github.com/PharmaGenAI/open-pharma-plugins
|
|
@@ -20,6 +20,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
20
20
|
Requires-Python: <3.14,>=3.10
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
|
+
License-File: NOTICE
|
|
23
24
|
Requires-Dist: mcp<2,>=1.0.0
|
|
24
25
|
Requires-Dist: anyio<5,>=4.0
|
|
25
26
|
Requires-Dist: pydantic<3,>=2.8
|
|
@@ -42,6 +43,7 @@ Requires-Dist: pypdfium2<6,>=4; extra == "competitive-intelligence"
|
|
|
42
43
|
Requires-Dist: python-docx<2,>=1; extra == "competitive-intelligence"
|
|
43
44
|
Provides-Extra: campaign-studio
|
|
44
45
|
Requires-Dist: jinja2<4,>=3.1; extra == "campaign-studio"
|
|
46
|
+
Requires-Dist: pypdf<7,>=5; extra == "campaign-studio"
|
|
45
47
|
Requires-Dist: reportlab<6,>=4; extra == "campaign-studio"
|
|
46
48
|
Provides-Extra: all
|
|
47
49
|
Requires-Dist: requests<3,>=2.31; extra == "all"
|
|
@@ -51,84 +53,85 @@ Requires-Dist: python-pptx<2,>=1; extra == "all"
|
|
|
51
53
|
Requires-Dist: python-docx<2,>=1; extra == "all"
|
|
52
54
|
Requires-Dist: reportlab<6,>=4; extra == "all"
|
|
53
55
|
Requires-Dist: jinja2<4,>=3.1; extra == "all"
|
|
56
|
+
Requires-Dist: pypdf<7,>=5; extra == "all"
|
|
54
57
|
Dynamic: license-file
|
|
55
58
|
|
|
56
59
|
# Open Pharma Plugins
|
|
57
60
|
|
|
58
|
-
Agent Skills and MCP
|
|
61
|
+
Agent Skills and MCP servers for pharmaceutical commercial operations.
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
## Architecture
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
<p align="center"><img src="docs/assets/architecture.svg" width="960" alt="Open Pharma Plugins architecture"></p>
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|---|---:|---|
|
|
66
|
-
| [HCP Intelligence](cookbooks/hcp-intelligence/usage.md) | 11 | Build evidence-backed HCP/HCO profiles from public sources |
|
|
67
|
-
| [Field Training](cookbooks/field-training/usage.md) | 5 | Turn approved PDF/PPTX paths into grounded learning packages, assessments, role-play kits, and scorecards |
|
|
68
|
-
| [Campaign Studio](cookbooks/campaign-studio/usage.md) | 11 | Create, validate, render, and package campaign drafts for MLR review |
|
|
69
|
-
| [Next-Best-Engagement](cookbooks/next-best-engagement/usage.md) | 3 | Score HCPs and produce consent-aware engagement plans |
|
|
70
|
-
| [Territory Alignment](cookbooks/territory-alignment/usage.md) | 6 | Compare HCP-to-rep assignments and plan visit clusters |
|
|
71
|
-
| [Competitive Intelligence](cookbooks/competitive-intelligence/usage.md) | 12 | Collect one evidence run and project reproducible briefings and timelines |
|
|
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.
|
|
72
68
|
|
|
73
|
-
##
|
|
69
|
+
## Install
|
|
74
70
|
|
|
75
|
-
|
|
71
|
+
The guided installer supports Claude Code, Codex, and GitHub Copilot CLI. It requires `uv`/`uvx` and uses independent, immutable capability tags.
|
|
76
72
|
|
|
77
|
-
|
|
73
|
+
Download and inspect the installer before running it:
|
|
78
74
|
|
|
79
|
-
|
|
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
80
|
|
|
81
|
-
|
|
81
|
+
Update capabilities already installed in a harness:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
|
|
85
|
-
open-pharma-plugins-territory-alignment --version
|
|
84
|
+
bash install.sh update
|
|
86
85
|
```
|
|
87
86
|
|
|
88
|
-
|
|
87
|
+
To install MCP servers without the companion Skills, use one or more extras from the Python distribution:
|
|
89
88
|
|
|
90
89
|
```bash
|
|
91
|
-
|
|
92
|
-
less install.sh
|
|
93
|
-
bash install.sh
|
|
90
|
+
python -m pip install "open-pharma-plugins[territory-alignment,competitive-intelligence]"
|
|
94
91
|
```
|
|
95
92
|
|
|
96
|
-
|
|
93
|
+
See [Installation](docs/en/installation.md) for tagged releases, local checkouts, rollback, and manual setup.
|
|
97
94
|
|
|
98
|
-
##
|
|
95
|
+
## Capabilities
|
|
99
96
|
|
|
100
|
-
|
|
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
|
+
```
|
|
101
116
|
|
|
102
|
-
|
|
117
|
+
## Requirements and configuration
|
|
103
118
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
| `OPENROUTER_API_KEY` / `OPENROUTER_BASE_URL` | Optional HCP batch profile synthesis |
|
|
108
|
-
| `NCBI_API_KEY` | PubMed |
|
|
109
|
-
| `OPENFDA_API_KEY` | openFDA |
|
|
110
|
-
| `OPEN_PHARMA_*_DIR` | Capability-specific mutable-data locations |
|
|
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
|
|
111
122
|
|
|
112
|
-
|
|
123
|
+
Run the installer's **Configure** and **Verify** actions to set credentials and check dependencies. Shared configuration lives in `~/.open-pharma-plugins/config`.
|
|
113
124
|
|
|
114
|
-
|
|
115
|
-
and zero SDK retries. An installed HCP plugin accepts user-supplied input/output paths through the
|
|
116
|
-
tag-pinned `open-pharma-plugins-hcp-batch` console and produces canonical account JSON,
|
|
117
|
-
`batch_summary.csv`, and `batch_manifest.json`. See the
|
|
118
|
-
[HCP batch guide](docs/en/hcp_batch.md) for dry-run, confirmation, provider, CSV, and resume rules.
|
|
125
|
+
See [Configuration](docs/en/configuration.md) and [Data security](docs/en/data_security.md) for settings, local data, provider calls, and compliance boundaries.
|
|
119
126
|
|
|
120
127
|
## Documentation
|
|
121
128
|
|
|
122
|
-
- [Installation](docs/en/installation.md)
|
|
123
|
-
- [
|
|
124
|
-
- [
|
|
125
|
-
- [
|
|
126
|
-
- [
|
|
127
|
-
- [
|
|
128
|
-
- [Adding a capability](docs/en/how_to_add_new_capability.md)
|
|
129
|
-
- [Releasing](docs/en/releasing.md)
|
|
130
|
-
- [Manual harness setup](docs/en/manual_harnesses.md)
|
|
131
|
-
- [Chinese documentation](docs/zh/) · [Japanese documentation](docs/jp/)
|
|
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/)
|
|
132
135
|
|
|
133
136
|
## License
|
|
134
137
|
|
|
@@ -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).
|
|
@@ -9,8 +9,8 @@ description = "Open Pharma Plugins: Agent Skills + MCP tools for pharmaceutical
|
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10,<3.14"
|
|
11
11
|
license = "Apache-2.0"
|
|
12
|
-
license-files = ["LICENSE"]
|
|
13
|
-
authors = [{ name = "
|
|
12
|
+
license-files = ["LICENSE", "NOTICE"]
|
|
13
|
+
authors = [{ name = "Jason Zhang" }]
|
|
14
14
|
keywords = ["mcp", "pharma", "commercial", "agent-skills", "hcp"]
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Development Status :: 4 - Beta",
|
|
@@ -42,7 +42,7 @@ field-training-fixtures = ["pypdfium2>=4,<6", "python-pptx>=1,<2", "reportlab>=4
|
|
|
42
42
|
next-best-engagement = []
|
|
43
43
|
territory-alignment = []
|
|
44
44
|
competitive-intelligence = ["pypdfium2>=4,<6", "python-docx>=1,<2"]
|
|
45
|
-
campaign-studio = ["jinja2>=3.1,<4", "reportlab>=4,<6"]
|
|
45
|
+
campaign-studio = ["jinja2>=3.1,<4", "pypdf>=5,<7", "reportlab>=4,<6"]
|
|
46
46
|
all = [
|
|
47
47
|
"requests>=2.31,<3",
|
|
48
48
|
"openai>=1,<4",
|
|
@@ -51,12 +51,14 @@ all = [
|
|
|
51
51
|
"python-docx>=1,<2",
|
|
52
52
|
"reportlab>=4,<6",
|
|
53
53
|
"jinja2>=3.1,<4",
|
|
54
|
+
"pypdf>=5,<7",
|
|
54
55
|
]
|
|
55
56
|
|
|
56
57
|
[dependency-groups]
|
|
57
58
|
dev = [
|
|
58
59
|
"build>=1,<2",
|
|
59
60
|
"cyclonedx-bom>=7.3,<8",
|
|
61
|
+
"markdown-it-py>=4,<5",
|
|
60
62
|
"packaging>=24",
|
|
61
63
|
"pip-audit>=2.9,<3",
|
|
62
64
|
"pytest>=8,<10",
|