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.
- open_pharma_plugins-2.4.1/PKG-INFO +138 -0
- open_pharma_plugins-2.4.1/README.md +80 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/pyproject.toml +1 -1
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/mcp_framework.py +1 -1
- open_pharma_plugins-2.4.1/src/open_pharma_plugins.egg-info/PKG-INFO +138 -0
- open_pharma_plugins-2.4.0/PKG-INFO +0 -142
- open_pharma_plugins-2.4.0/README.md +0 -84
- open_pharma_plugins-2.4.0/src/open_pharma_plugins.egg-info/PKG-INFO +0 -142
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/LICENSE +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/NOTICE +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/setup.cfg +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/SOURCES.txt +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/dependency_links.txt +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/entry_points.txt +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/requires.txt +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/open_pharma_plugins.egg-info/top_level.txt +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/shared/__init__.py +0 -0
- {open_pharma_plugins-2.4.0 → open_pharma_plugins-2.4.1}/src/shared/env.py +0 -0
- {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 = "
|
|
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.
|
|
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).
|