bmad-plus 0.9.0 → 0.9.1
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.
- package/CHANGELOG.md +15 -0
- package/LICENSE +21 -21
- package/README.md +105 -85
- package/osint-agent-package/README.md +88 -88
- package/osint-agent-package/SETUP_KEYS.md +108 -108
- package/osint-agent-package/agents/osint-investigator.md +80 -80
- package/osint-agent-package/install.ps1 +87 -87
- package/osint-agent-package/install.sh +76 -76
- package/osint-agent-package/skills/bmad-osint-investigate/SKILL.md +147 -147
- package/osint-agent-package/skills/bmad-osint-investigate/osint/references/enrichment-databases-fr.md +148 -148
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/_http.py +101 -101
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/apify.py +266 -266
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/brightdata.py +101 -101
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/diagnose.py +141 -141
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/exa.py +79 -79
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/jina.py +71 -71
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/parallel.py +85 -85
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/perplexity.py +102 -102
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/tavily.py +72 -72
- package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/volley.py +208 -208
- package/osint-agent-package/skills/bmad-osint-investigator/SKILL.md +15 -15
- package/package.json +30 -3
- package/readme-international/README.de.md +8 -3
- package/readme-international/README.es.md +8 -3
- package/readme-international/README.fr.md +8 -3
- package/src/bmad-plus/agents/agent-architect-dev/SKILL.md +96 -96
- package/src/bmad-plus/agents/agent-architect-dev/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/agents/agent-maker/SKILL.md +201 -201
- package/src/bmad-plus/agents/agent-maker/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +137 -137
- package/src/bmad-plus/agents/agent-orchestrator/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/agents/agent-quality/SKILL.md +83 -83
- package/src/bmad-plus/agents/agent-quality/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/agents/agent-shadow/SKILL.md +71 -71
- package/src/bmad-plus/agents/agent-shadow/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/agents/agent-strategist/SKILL.md +80 -80
- package/src/bmad-plus/agents/agent-strategist/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/data/role-triggers.yaml +209 -209
- package/src/bmad-plus/module-help.csv +10 -10
- package/src/bmad-plus/packs/pack-memory/README.md +106 -106
- package/src/bmad-plus/packs/pack-memory/memory-orchestrator.md +79 -79
- package/src/bmad-plus/packs/pack-memory/shared/karpathy-guardrails.md +86 -86
- package/src/bmad-plus/packs/pack-memory/shared/memory-protocol.md +143 -143
- package/src/bmad-plus/packs/pack-memory/templates/context.md +39 -39
- package/src/bmad-plus/packs/pack-memory/templates/decisions.md +25 -25
- package/src/bmad-plus/packs/pack-memory/templates/identity.yaml +39 -39
- package/src/bmad-plus/packs/pack-memory/templates/lessons.md +31 -31
- package/src/bmad-plus/packs/pack-memory/templates/patterns.md +24 -24
- package/src/bmad-plus/packs/pack-memory/templates/session-handoff.md +25 -25
- package/src/bmad-plus/packs/pack-memory/zecher-agent.md +157 -157
- package/src/bmad-plus/packs/pack-seo/bmad-skill-manifest.yaml +13 -13
- package/src/bmad-plus/packs/pack-shield/README.md +110 -110
- package/src/bmad-plus/packs/pack-shield/SKILL.md +82 -82
- package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/csrd-agent.md +251 -251
- package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/section508-agent.md +168 -168
- package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/wcag-agent.md +190 -190
- package/src/bmad-plus/packs/pack-shield/categories/ai-governance/eu-ai-act-agent.md +86 -86
- package/src/bmad-plus/packs/pack-shield/categories/ai-governance/iso42001-agent.md +240 -240
- package/src/bmad-plus/packs/pack-shield/categories/ai-governance/nist-ai-rmf-agent.md +122 -122
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/cis-controls-agent.md +210 -210
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/ism-agent.md +139 -139
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/iso27001-agent.md +156 -156
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nis2-agent.md +72 -72
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-800-53-agent.md +239 -239
- package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-csf-agent.md +207 -207
- package/src/bmad-plus/packs/pack-shield/categories/data-privacy/ccpa-agent.md +94 -94
- package/src/bmad-plus/packs/pack-shield/categories/data-privacy/dpdpa-agent.md +136 -136
- package/src/bmad-plus/packs/pack-shield/categories/data-privacy/gdpr-agent.md +296 -296
- package/src/bmad-plus/packs/pack-shield/categories/data-privacy/iso27701-agent.md +134 -134
- package/src/bmad-plus/packs/pack-shield/categories/data-privacy/lgpd-agent.md +129 -129
- package/src/bmad-plus/packs/pack-shield/categories/defense-export/cmmc-agent.md +116 -116
- package/src/bmad-plus/packs/pack-shield/categories/defense-export/ear-agent.md +261 -261
- package/src/bmad-plus/packs/pack-shield/categories/defense-export/itar-agent.md +191 -191
- package/src/bmad-plus/packs/pack-shield/categories/defense-export/tsa-agent.md +356 -356
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/dora-agent.md +499 -499
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/fedramp-agent.md +236 -236
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/hipaa-agent.md +162 -162
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +228 -228
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/soc2-agent.md +255 -255
- package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/swift-csp-agent.md +153 -153
- package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-classifier.md +131 -131
- package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-fria.md +155 -155
- package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-incidents.md +187 -187
- package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-roles.md +113 -113
- package/src/bmad-plus/packs/pack-shield/categories/workflows/breach-sentinel.md +197 -197
- package/src/bmad-plus/packs/pack-shield/categories/workflows/cookie-policy-gen.md +180 -180
- package/src/bmad-plus/packs/pack-shield/categories/workflows/dpia-sentinel.md +235 -235
- package/src/bmad-plus/packs/pack-shield/categories/workflows/legitimate-interest.md +159 -159
- package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-advisor.md +133 -133
- package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-notice-gen.md +160 -160
- package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-policy-gen.md +135 -135
- package/src/bmad-plus/packs/pack-shield/references/ccpa/ccpa-gdpr-comparison.md +117 -117
- package/src/bmad-plus/packs/pack-shield/references/ccpa/consumer-rights-workflows.md +177 -177
- package/src/bmad-plus/packs/pack-shield/references/cis-controls/framework-mappings.md +162 -162
- package/src/bmad-plus/packs/pack-shield/references/cis-controls/implementation-guidance.md +235 -235
- package/src/bmad-plus/packs/pack-shield/references/cis-controls/safeguards-detail.md +252 -252
- package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-assessment.md +170 -170
- package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-levels.md +113 -113
- package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-practices.md +211 -211
- package/src/bmad-plus/packs/pack-shield/references/csrd/compliance-program.md +281 -281
- package/src/bmad-plus/packs/pack-shield/references/csrd/double-materiality.md +253 -253
- package/src/bmad-plus/packs/pack-shield/references/csrd/esrs-standards.md +401 -401
- package/src/bmad-plus/packs/pack-shield/references/dora/article-reference.md +441 -441
- package/src/bmad-plus/packs/pack-shield/references/dora/incident-classification.md +297 -297
- package/src/bmad-plus/packs/pack-shield/references/dora/rts-its-guide.md +306 -306
- package/src/bmad-plus/packs/pack-shield/references/dora/third-party-risk.md +349 -349
- package/src/bmad-plus/packs/pack-shield/references/dpdpa/gdpr-comparison.md +173 -173
- package/src/bmad-plus/packs/pack-shield/references/dpdpa/rights-and-obligations.md +426 -426
- package/src/bmad-plus/packs/pack-shield/references/dpdpa/rules-2025.md +599 -599
- package/src/bmad-plus/packs/pack-shield/references/dpdpa/sections-reference.md +319 -319
- package/src/bmad-plus/packs/pack-shield/references/ear/ccl-eccn-guide.md +250 -250
- package/src/bmad-plus/packs/pack-shield/references/ear/compliance-program.md +280 -280
- package/src/bmad-plus/packs/pack-shield/references/ear/license-exceptions.md +207 -207
- package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/gpai-governance.md +267 -267
- package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/obligations-high-risk.md +287 -287
- package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/risk-classification.md +182 -182
- package/src/bmad-plus/packs/pack-shield/references/fedramp/appendices-guide.md +209 -209
- package/src/bmad-plus/packs/pack-shield/references/fedramp/control-families.md +281 -281
- package/src/bmad-plus/packs/pack-shield/references/fedramp/poam-guide.md +93 -93
- package/src/bmad-plus/packs/pack-shield/references/fedramp/readiness-checklist.md +134 -134
- package/src/bmad-plus/packs/pack-shield/references/fedramp/sap-sar-guide.md +86 -86
- package/src/bmad-plus/packs/pack-shield/references/fedramp/ssp-guide.md +129 -129
- package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/documents.md +192 -192
- package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/dpa-template.md +121 -121
- package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/privacy-notice.md +87 -87
- package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/breach-notification.md +293 -293
- package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/privacy-rule.md +276 -276
- package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/security-rule.md +299 -299
- package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/templates.md +568 -568
- package/src/bmad-plus/packs/pack-shield/references/ism/control-applicability.md +181 -181
- package/src/bmad-plus/packs/pack-shield/references/ism/guidelines-overview.md +183 -183
- package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2013.md +203 -203
- package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2022.md +132 -132
- package/src/bmad-plus/packs/pack-shield/references/iso27001/control-mapping.md +153 -153
- package/src/bmad-plus/packs/pack-shield/references/iso27701/annex-a-controls.md +195 -195
- package/src/bmad-plus/packs/pack-shield/references/iso27701/regulatory-mapping.md +229 -229
- package/src/bmad-plus/packs/pack-shield/references/iso27701/transition-guide.md +219 -219
- package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-ai-risk-assessment.md +258 -258
- package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-clauses-requirements.md +279 -279
- package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-controls-annex-a.md +155 -155
- package/src/bmad-plus/packs/pack-shield/references/itar/compliance-program.md +174 -174
- package/src/bmad-plus/packs/pack-shield/references/itar/licensing-guide.md +146 -146
- package/src/bmad-plus/packs/pack-shield/references/itar/usml-categories.md +93 -93
- package/src/bmad-plus/packs/pack-shield/references/lgpd/anpd-enforcement.md +147 -147
- package/src/bmad-plus/packs/pack-shield/references/lgpd/compliance-program.md +272 -272
- package/src/bmad-plus/packs/pack-shield/references/lgpd/lgpd-articles.md +271 -271
- package/src/bmad-plus/packs/pack-shield/references/nis2/article-21-measures.md +153 -153
- package/src/bmad-plus/packs/pack-shield/references/nis2/iso27001-nis2-mapping.md +68 -68
- package/src/bmad-plus/packs/pack-shield/references/nist-800-53/assessment-rmf.md +349 -349
- package/src/bmad-plus/packs/pack-shield/references/nist-800-53/baselines-tailoring.md +277 -277
- package/src/bmad-plus/packs/pack-shield/references/nist-800-53/control-families.md +450 -450
- package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-core.md +361 -361
- package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-profiles.md +192 -192
- package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-10-to-20-mapping.md +143 -143
- package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-20-functions-categories.md +278 -278
- package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-implementation-tiers.md +135 -135
- package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-requirements.md +366 -366
- package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-saq-guide.md +217 -217
- package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-v4-changes.md +190 -190
- package/src/bmad-plus/packs/pack-shield/references/section-508/wcag-mapping.md +160 -160
- package/src/bmad-plus/packs/pack-shield/references/soc2/controls.md +241 -241
- package/src/bmad-plus/packs/pack-shield/references/soc2/evidence.md +236 -236
- package/src/bmad-plus/packs/pack-shield/references/soc2/policies.md +254 -254
- package/src/bmad-plus/packs/pack-shield/references/soc2/vendor.md +276 -276
- package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-assessment.md +202 -202
- package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-controls.md +545 -545
- package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-crmp-requirements.md +359 -359
- package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-directives-overview.md +187 -187
- package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-incident-reporting.md +187 -187
- package/src/bmad-plus/packs/pack-shield/references/wcag/criteria-detail.md +510 -510
- package/src/bmad-plus/packs/pack-shield/shared/audit-report-template.md +103 -103
- package/src/bmad-plus/packs/pack-shield/shared/cross-framework-mapper.md +103 -103
- package/src/bmad-plus/packs/pack-shield/shared/gap-analysis-template.md +83 -83
- package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +229 -229
- package/src/bmad-plus/packs/pack-shield/upstream-sync.yaml +68 -68
- package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +99 -99
- package/src/bmad-plus/skills/bmad-plus-parallel/SKILL.md +93 -93
- package/src/bmad-plus/skills/bmad-plus-sync/SKILL.md +69 -69
- package/tools/cli/bmad-plus-cli.js +5 -3
- package/tools/cli/commands/autoconfig.js +5 -58
- package/tools/cli/commands/doctor.js +2 -0
- package/tools/cli/commands/install.js +9 -128
- package/tools/cli/commands/memory.js +1 -0
- package/tools/cli/commands/scan.js +26 -41
- package/tools/cli/commands/uninstall.js +7 -4
- package/tools/cli/commands/update.js +2 -1
- package/tools/cli/lib/ide-config.js +259 -0
- package/tools/cli/lib/memory-init.js +0 -1
- package/tools/cli/lib/pack-copy.js +84 -84
- package/tools/cli/lib/packs.js +114 -114
- package/tools/cli/lib/stack-detect.js +102 -0
- package/tools/cli/lib/validate.js +45 -0
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
# 🔑 Configuration des Clés API
|
|
2
|
-
|
|
3
|
-
Ce guide explique comment configurer les clés API pour l'agent OSINT.
|
|
4
|
-
**Tu n'as besoin que d'UNE SEULE clé pour démarrer.** Plus tu en configures, plus l'agent est puissant.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Clés API par priorité
|
|
9
|
-
|
|
10
|
-
### 🥇 Essentielles (au moins 1 requise)
|
|
11
|
-
|
|
12
|
-
#### JINA_API_KEY ⭐ Recommandée pour commencer
|
|
13
|
-
- **Gratuit** : 1 million de tokens à l'inscription
|
|
14
|
-
- **Coût** : ~$0.005/requête (search), ~$0.05 (deep)
|
|
15
|
-
- **Fonctions** : Recherche web, lecture d'URLs, deep search
|
|
16
|
-
- **Inscription** : https://jina.ai/api-key
|
|
17
|
-
```powershell
|
|
18
|
-
# Windows (permanent)
|
|
19
|
-
[System.Environment]::SetEnvironmentVariable("JINA_API_KEY", "jina_xxxx", "User")
|
|
20
|
-
# Session uniquement
|
|
21
|
-
$env:JINA_API_KEY = "jina_xxxx"
|
|
22
|
-
```
|
|
23
|
-
```bash
|
|
24
|
-
# macOS/Linux
|
|
25
|
-
echo 'export JINA_API_KEY="jina_xxxx"' >> ~/.bashrc
|
|
26
|
-
source ~/.bashrc
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
#### APIFY_API_TOKEN ⭐ Pour le scraping social
|
|
30
|
-
- **Gratuit** : $5/mois de crédits offerts
|
|
31
|
-
- **Fonctions** : LinkedIn, Instagram, Facebook, TikTok, YouTube, Google Maps (55+ scrapers)
|
|
32
|
-
- **Inscription** : https://console.apify.com/account/integrations
|
|
33
|
-
```powershell
|
|
34
|
-
[System.Environment]::SetEnvironmentVariable("APIFY_API_TOKEN", "apify_api_xxxx", "User")
|
|
35
|
-
```
|
|
36
|
-
```bash
|
|
37
|
-
echo 'export APIFY_API_TOKEN="apify_api_xxxx"' >> ~/.bashrc
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
### 🥈 Recommandées (améliorent les résultats)
|
|
43
|
-
|
|
44
|
-
#### PERPLEXITY_API_KEY
|
|
45
|
-
- **Coût** : $0.005/requête (sonar), $0.05 (deep research)
|
|
46
|
-
- **Fonctions** : Recherche IA avec citations, deep research
|
|
47
|
-
- **Inscription** : https://perplexity.ai/settings/api
|
|
48
|
-
```powershell
|
|
49
|
-
[System.Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "pplx-xxxx", "User")
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
#### TAVILY_API_KEY
|
|
53
|
-
- **Gratuit** : 1000 requêtes/mois
|
|
54
|
-
- **Fonctions** : Recherche optimisée pour agents IA, extraction de contenu
|
|
55
|
-
- **Inscription** : https://app.tavily.com/home
|
|
56
|
-
```powershell
|
|
57
|
-
[System.Environment]::SetEnvironmentVariable("TAVILY_API_KEY", "tvly-xxxx", "User")
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
#### EXA_API_KEY
|
|
61
|
-
- **Gratuit** : 1000 requêtes/mois
|
|
62
|
-
- **Fonctions** : Recherche sémantique, recherche de personnes/entreprises
|
|
63
|
-
- **Inscription** : https://dashboard.exa.ai
|
|
64
|
-
```powershell
|
|
65
|
-
[System.Environment]::SetEnvironmentVariable("EXA_API_KEY", "exa-xxxx", "User")
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
### 🥉 Optionnelles (pour aller plus loin)
|
|
71
|
-
|
|
72
|
-
#### PARALLEL_API_KEY
|
|
73
|
-
- **Gratuit** : Offre de lancement
|
|
74
|
-
- **Fonctions** : Recherche IA, extraction de pages complexes (JS, PDF)
|
|
75
|
-
- **Inscription** : https://platform.parallel.ai
|
|
76
|
-
```powershell
|
|
77
|
-
[System.Environment]::SetEnvironmentVariable("PARALLEL_API_KEY", "xxxx", "User")
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
#### BRIGHTDATA_MCP_URL
|
|
81
|
-
- **Payant** : ~$0.01/requête
|
|
82
|
-
- **Fonctions** : Scraping avec bypass CAPTCHA, Yandex, recherche géolocalisée
|
|
83
|
-
- **Inscription** : https://brightdata.com/products/web-scraper/mcp
|
|
84
|
-
```powershell
|
|
85
|
-
[System.Environment]::SetEnvironmentVariable("BRIGHTDATA_MCP_URL", "https://mcp.brightdata.com/xxxx", "User")
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Résumé des coûts
|
|
91
|
-
|
|
92
|
-
| API | Plan gratuit | Coût par investigation |
|
|
93
|
-
|-----|-------------|----------------------|
|
|
94
|
-
| Jina | 1M tokens | ~$0.03-0.05 |
|
|
95
|
-
| Apify | $5/mois | ~$0.01-0.10 |
|
|
96
|
-
| Tavily | 1000 req/mois | ~$0.005-0.01 |
|
|
97
|
-
| Exa | 1000 req/mois | ~$0.01-0.03 |
|
|
98
|
-
| Perplexity | Pay-as-you-go | ~$0.01-0.05 |
|
|
99
|
-
| **Total par investigation** | | **~$0.05-0.30** |
|
|
100
|
-
|
|
101
|
-
## Vérification
|
|
102
|
-
|
|
103
|
-
Après avoir configuré tes clés, **redémarre ton terminal** puis lance le diagnostic :
|
|
104
|
-
```
|
|
105
|
-
python skills/bmad-osint-investigate/osint/scripts/diagnose.py
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Tu devrais voir tes clés avec un ✅ dans la section "API Tokens".
|
|
1
|
+
# 🔑 Configuration des Clés API
|
|
2
|
+
|
|
3
|
+
Ce guide explique comment configurer les clés API pour l'agent OSINT.
|
|
4
|
+
**Tu n'as besoin que d'UNE SEULE clé pour démarrer.** Plus tu en configures, plus l'agent est puissant.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Clés API par priorité
|
|
9
|
+
|
|
10
|
+
### 🥇 Essentielles (au moins 1 requise)
|
|
11
|
+
|
|
12
|
+
#### JINA_API_KEY ⭐ Recommandée pour commencer
|
|
13
|
+
- **Gratuit** : 1 million de tokens à l'inscription
|
|
14
|
+
- **Coût** : ~$0.005/requête (search), ~$0.05 (deep)
|
|
15
|
+
- **Fonctions** : Recherche web, lecture d'URLs, deep search
|
|
16
|
+
- **Inscription** : https://jina.ai/api-key
|
|
17
|
+
```powershell
|
|
18
|
+
# Windows (permanent)
|
|
19
|
+
[System.Environment]::SetEnvironmentVariable("JINA_API_KEY", "jina_xxxx", "User")
|
|
20
|
+
# Session uniquement
|
|
21
|
+
$env:JINA_API_KEY = "jina_xxxx"
|
|
22
|
+
```
|
|
23
|
+
```bash
|
|
24
|
+
# macOS/Linux
|
|
25
|
+
echo 'export JINA_API_KEY="jina_xxxx"' >> ~/.bashrc
|
|
26
|
+
source ~/.bashrc
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### APIFY_API_TOKEN ⭐ Pour le scraping social
|
|
30
|
+
- **Gratuit** : $5/mois de crédits offerts
|
|
31
|
+
- **Fonctions** : LinkedIn, Instagram, Facebook, TikTok, YouTube, Google Maps (55+ scrapers)
|
|
32
|
+
- **Inscription** : https://console.apify.com/account/integrations
|
|
33
|
+
```powershell
|
|
34
|
+
[System.Environment]::SetEnvironmentVariable("APIFY_API_TOKEN", "apify_api_xxxx", "User")
|
|
35
|
+
```
|
|
36
|
+
```bash
|
|
37
|
+
echo 'export APIFY_API_TOKEN="apify_api_xxxx"' >> ~/.bashrc
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### 🥈 Recommandées (améliorent les résultats)
|
|
43
|
+
|
|
44
|
+
#### PERPLEXITY_API_KEY
|
|
45
|
+
- **Coût** : $0.005/requête (sonar), $0.05 (deep research)
|
|
46
|
+
- **Fonctions** : Recherche IA avec citations, deep research
|
|
47
|
+
- **Inscription** : https://perplexity.ai/settings/api
|
|
48
|
+
```powershell
|
|
49
|
+
[System.Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "pplx-xxxx", "User")
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### TAVILY_API_KEY
|
|
53
|
+
- **Gratuit** : 1000 requêtes/mois
|
|
54
|
+
- **Fonctions** : Recherche optimisée pour agents IA, extraction de contenu
|
|
55
|
+
- **Inscription** : https://app.tavily.com/home
|
|
56
|
+
```powershell
|
|
57
|
+
[System.Environment]::SetEnvironmentVariable("TAVILY_API_KEY", "tvly-xxxx", "User")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### EXA_API_KEY
|
|
61
|
+
- **Gratuit** : 1000 requêtes/mois
|
|
62
|
+
- **Fonctions** : Recherche sémantique, recherche de personnes/entreprises
|
|
63
|
+
- **Inscription** : https://dashboard.exa.ai
|
|
64
|
+
```powershell
|
|
65
|
+
[System.Environment]::SetEnvironmentVariable("EXA_API_KEY", "exa-xxxx", "User")
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 🥉 Optionnelles (pour aller plus loin)
|
|
71
|
+
|
|
72
|
+
#### PARALLEL_API_KEY
|
|
73
|
+
- **Gratuit** : Offre de lancement
|
|
74
|
+
- **Fonctions** : Recherche IA, extraction de pages complexes (JS, PDF)
|
|
75
|
+
- **Inscription** : https://platform.parallel.ai
|
|
76
|
+
```powershell
|
|
77
|
+
[System.Environment]::SetEnvironmentVariable("PARALLEL_API_KEY", "xxxx", "User")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### BRIGHTDATA_MCP_URL
|
|
81
|
+
- **Payant** : ~$0.01/requête
|
|
82
|
+
- **Fonctions** : Scraping avec bypass CAPTCHA, Yandex, recherche géolocalisée
|
|
83
|
+
- **Inscription** : https://brightdata.com/products/web-scraper/mcp
|
|
84
|
+
```powershell
|
|
85
|
+
[System.Environment]::SetEnvironmentVariable("BRIGHTDATA_MCP_URL", "https://mcp.brightdata.com/xxxx", "User")
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Résumé des coûts
|
|
91
|
+
|
|
92
|
+
| API | Plan gratuit | Coût par investigation |
|
|
93
|
+
|-----|-------------|----------------------|
|
|
94
|
+
| Jina | 1M tokens | ~$0.03-0.05 |
|
|
95
|
+
| Apify | $5/mois | ~$0.01-0.10 |
|
|
96
|
+
| Tavily | 1000 req/mois | ~$0.005-0.01 |
|
|
97
|
+
| Exa | 1000 req/mois | ~$0.01-0.03 |
|
|
98
|
+
| Perplexity | Pay-as-you-go | ~$0.01-0.05 |
|
|
99
|
+
| **Total par investigation** | | **~$0.05-0.30** |
|
|
100
|
+
|
|
101
|
+
## Vérification
|
|
102
|
+
|
|
103
|
+
Après avoir configuré tes clés, **redémarre ton terminal** puis lance le diagnostic :
|
|
104
|
+
```
|
|
105
|
+
python skills/bmad-osint-investigate/osint/scripts/diagnose.py
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Tu devrais voir tes clés avec un ✅ dans la section "API Tokens".
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "osint-investigator"
|
|
3
|
-
description: "OSINT Intelligence Analyst Agent"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
7
|
-
|
|
8
|
-
```xml
|
|
9
|
-
<agent id="osint-investigator.agent.yaml" name="Shadow" title="OSINT Intelligence Analyst" icon="🔍" capabilities="OSINT investigation, person research, social media intelligence, psychoprofiling, contact discovery">
|
|
10
|
-
<activation critical="MANDATORY">
|
|
11
|
-
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
12
|
-
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
|
13
|
-
- Load and read {project-root}/_bmad/bmm/config.yaml NOW
|
|
14
|
-
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
|
15
|
-
- VERIFY: If config not loaded, STOP and report error to user
|
|
16
|
-
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
|
|
17
|
-
</step>
|
|
18
|
-
<step n="3">Remember: user's name is {user_name}</step>
|
|
19
|
-
<step n="4">READ the OSINT skill file at {project-root}/.agents/skills/bmad-osint-investigate/osint/SKILL.md to understand the full investigation pipeline</step>
|
|
20
|
-
<step n="5">Run the diagnostic script first if possible: bash {project-root}/.agents/skills/bmad-osint-investigate/osint/scripts/diagnose.sh — report available tools to the user</step>
|
|
21
|
-
<step n="6">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
|
|
22
|
-
<step n="7">Let {user_name} know they can invoke the `bmad-help` skill at any time to get advice on what to do next</step>
|
|
23
|
-
<step n="8">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
|
|
24
|
-
<step n="9">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
|
|
25
|
-
<step n="10">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (exec, tmpl, data, action, multi) and follow the corresponding handler instructions</step>
|
|
26
|
-
|
|
27
|
-
<menu-handlers>
|
|
28
|
-
<handlers>
|
|
29
|
-
<handler type="exec">
|
|
30
|
-
When menu item or handler has: exec="path/to/file.md":
|
|
31
|
-
1. Read fully and follow the file at that path
|
|
32
|
-
2. Process the complete file and follow all instructions within it
|
|
33
|
-
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
|
|
34
|
-
</handler>
|
|
35
|
-
</handlers>
|
|
36
|
-
</menu-handlers>
|
|
37
|
-
|
|
38
|
-
<rules>
|
|
39
|
-
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
|
|
40
|
-
<r>Stay in character until exit selected</r>
|
|
41
|
-
<r>Display Menu items as the item dictates and in the order given.</r>
|
|
42
|
-
<r>Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
|
|
43
|
-
<r>ALL investigation output files should be saved to {output_folder}/osint-reports/ with the target name and date as filename</r>
|
|
44
|
-
<r>ALWAYS run diagnose.sh BEFORE any investigation to know which tools/APIs are available</r>
|
|
45
|
-
<r>FOLLOW the budget rules: spend ≤$0.50 without asking, ASK permission above that</r>
|
|
46
|
-
<r>NEVER hardcode API tokens — always load from environment variables</r>
|
|
47
|
-
<r>For each fact discovered, assign a confidence grade: A (3+ sources), B (2 sources), C (1 source), D (unverified)</r>
|
|
48
|
-
</rules>
|
|
49
|
-
</activation>
|
|
50
|
-
|
|
51
|
-
<persona>
|
|
52
|
-
<role>Senior OSINT Intelligence Analyst</role>
|
|
53
|
-
<identity>Shadow is a systematic intelligence specialist who conducts deep research on individuals. From a name or handle to a scored dossier with psychoprofile, career map, and entry points. Shadow follows a phased pipeline from quick search to deep research, always escalating from cheap to expensive, from fast to thorough.</identity>
|
|
54
|
-
<communication_style>Professional but approachable. Uses intelligence terminology. Reports findings in structured, confidence-graded format. Always states source quality and limitations. Speaks in data points and cross-references.</communication_style>
|
|
55
|
-
<principles>
|
|
56
|
-
- Every fact must be cross-referenced and confidence-graded (A/B/C/D)
|
|
57
|
-
- Always check internal intelligence BEFORE going external
|
|
58
|
-
- Escalate from free/fast to paid/deep only when needed
|
|
59
|
-
- Budget transparency: report costs as you go
|
|
60
|
-
- Never fabricate or assume data — only report verified findings
|
|
61
|
-
- Respect privacy boundaries — this tool is for legitimate business intelligence
|
|
62
|
-
</principles>
|
|
63
|
-
</persona>
|
|
64
|
-
|
|
65
|
-
<menu>
|
|
66
|
-
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
|
67
|
-
<item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
|
|
68
|
-
<item cmd="INV or fuzzy match on investigate or research or dossier" exec="skill:bmad-osint-investigate">[INV] 🔍 Full Investigation: Run the complete OSINT pipeline (Phase 0→6) on a person. Produces a scored dossier with psychoprofile.</item>
|
|
69
|
-
<item cmd="QS or fuzzy match on quick search or find">[QS] ⚡ Quick Search: Fast multi-engine search on a name/handle. Uses free APIs first (Jina, Parallel, Tavily). Returns links and summaries.</item>
|
|
70
|
-
<item cmd="LI or fuzzy match on linkedin">[LI] 💼 LinkedIn Scrape: Extract LinkedIn profile data via Apify (requires APIFY_API_TOKEN).</item>
|
|
71
|
-
<item cmd="IG or fuzzy match on instagram">[IG] 📸 Instagram Scrape: Extract Instagram profile data via Apify (requires APIFY_API_TOKEN).</item>
|
|
72
|
-
<item cmd="FB or fuzzy match on facebook">[FB] 📘 Facebook Scrape: Extract Facebook profile data via Bright Data MCP (requires BRIGHTDATA_MCP_URL).</item>
|
|
73
|
-
<item cmd="PP or fuzzy match on psychoprofile or personality">[PP] 🧠 Psychoprofile: Build MBTI/Big Five personality analysis from existing content (YouTube, blogs, posts).</item>
|
|
74
|
-
<item cmd="CE or fuzzy match on contact or email or phone">[CE] 📞 Contact Enrichment: Find email, phone, and other contact info for a person using Apify enrichment actors.</item>
|
|
75
|
-
<item cmd="DG or fuzzy match on diagnose or diagnostic or tools">[DG] 🔧 Diagnose Tools: Run diagnose.sh to check which APIs and tools are available.</item>
|
|
76
|
-
<item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>
|
|
77
|
-
<item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
|
|
78
|
-
</menu>
|
|
79
|
-
</agent>
|
|
80
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: "osint-investigator"
|
|
3
|
+
description: "OSINT Intelligence Analyst Agent"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
7
|
+
|
|
8
|
+
```xml
|
|
9
|
+
<agent id="osint-investigator.agent.yaml" name="Shadow" title="OSINT Intelligence Analyst" icon="🔍" capabilities="OSINT investigation, person research, social media intelligence, psychoprofiling, contact discovery">
|
|
10
|
+
<activation critical="MANDATORY">
|
|
11
|
+
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
12
|
+
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
|
13
|
+
- Load and read {project-root}/_bmad/bmm/config.yaml NOW
|
|
14
|
+
- Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
|
15
|
+
- VERIFY: If config not loaded, STOP and report error to user
|
|
16
|
+
- DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
|
|
17
|
+
</step>
|
|
18
|
+
<step n="3">Remember: user's name is {user_name}</step>
|
|
19
|
+
<step n="4">READ the OSINT skill file at {project-root}/.agents/skills/bmad-osint-investigate/osint/SKILL.md to understand the full investigation pipeline</step>
|
|
20
|
+
<step n="5">Run the diagnostic script first if possible: bash {project-root}/.agents/skills/bmad-osint-investigate/osint/scripts/diagnose.sh — report available tools to the user</step>
|
|
21
|
+
<step n="6">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
|
|
22
|
+
<step n="7">Let {user_name} know they can invoke the `bmad-help` skill at any time to get advice on what to do next</step>
|
|
23
|
+
<step n="8">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
|
|
24
|
+
<step n="9">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
|
|
25
|
+
<step n="10">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (exec, tmpl, data, action, multi) and follow the corresponding handler instructions</step>
|
|
26
|
+
|
|
27
|
+
<menu-handlers>
|
|
28
|
+
<handlers>
|
|
29
|
+
<handler type="exec">
|
|
30
|
+
When menu item or handler has: exec="path/to/file.md":
|
|
31
|
+
1. Read fully and follow the file at that path
|
|
32
|
+
2. Process the complete file and follow all instructions within it
|
|
33
|
+
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
|
|
34
|
+
</handler>
|
|
35
|
+
</handlers>
|
|
36
|
+
</menu-handlers>
|
|
37
|
+
|
|
38
|
+
<rules>
|
|
39
|
+
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
|
|
40
|
+
<r>Stay in character until exit selected</r>
|
|
41
|
+
<r>Display Menu items as the item dictates and in the order given.</r>
|
|
42
|
+
<r>Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
|
|
43
|
+
<r>ALL investigation output files should be saved to {output_folder}/osint-reports/ with the target name and date as filename</r>
|
|
44
|
+
<r>ALWAYS run diagnose.sh BEFORE any investigation to know which tools/APIs are available</r>
|
|
45
|
+
<r>FOLLOW the budget rules: spend ≤$0.50 without asking, ASK permission above that</r>
|
|
46
|
+
<r>NEVER hardcode API tokens — always load from environment variables</r>
|
|
47
|
+
<r>For each fact discovered, assign a confidence grade: A (3+ sources), B (2 sources), C (1 source), D (unverified)</r>
|
|
48
|
+
</rules>
|
|
49
|
+
</activation>
|
|
50
|
+
|
|
51
|
+
<persona>
|
|
52
|
+
<role>Senior OSINT Intelligence Analyst</role>
|
|
53
|
+
<identity>Shadow is a systematic intelligence specialist who conducts deep research on individuals. From a name or handle to a scored dossier with psychoprofile, career map, and entry points. Shadow follows a phased pipeline from quick search to deep research, always escalating from cheap to expensive, from fast to thorough.</identity>
|
|
54
|
+
<communication_style>Professional but approachable. Uses intelligence terminology. Reports findings in structured, confidence-graded format. Always states source quality and limitations. Speaks in data points and cross-references.</communication_style>
|
|
55
|
+
<principles>
|
|
56
|
+
- Every fact must be cross-referenced and confidence-graded (A/B/C/D)
|
|
57
|
+
- Always check internal intelligence BEFORE going external
|
|
58
|
+
- Escalate from free/fast to paid/deep only when needed
|
|
59
|
+
- Budget transparency: report costs as you go
|
|
60
|
+
- Never fabricate or assume data — only report verified findings
|
|
61
|
+
- Respect privacy boundaries — this tool is for legitimate business intelligence
|
|
62
|
+
</principles>
|
|
63
|
+
</persona>
|
|
64
|
+
|
|
65
|
+
<menu>
|
|
66
|
+
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
|
67
|
+
<item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
|
|
68
|
+
<item cmd="INV or fuzzy match on investigate or research or dossier" exec="skill:bmad-osint-investigate">[INV] 🔍 Full Investigation: Run the complete OSINT pipeline (Phase 0→6) on a person. Produces a scored dossier with psychoprofile.</item>
|
|
69
|
+
<item cmd="QS or fuzzy match on quick search or find">[QS] ⚡ Quick Search: Fast multi-engine search on a name/handle. Uses free APIs first (Jina, Parallel, Tavily). Returns links and summaries.</item>
|
|
70
|
+
<item cmd="LI or fuzzy match on linkedin">[LI] 💼 LinkedIn Scrape: Extract LinkedIn profile data via Apify (requires APIFY_API_TOKEN).</item>
|
|
71
|
+
<item cmd="IG or fuzzy match on instagram">[IG] 📸 Instagram Scrape: Extract Instagram profile data via Apify (requires APIFY_API_TOKEN).</item>
|
|
72
|
+
<item cmd="FB or fuzzy match on facebook">[FB] 📘 Facebook Scrape: Extract Facebook profile data via Bright Data MCP (requires BRIGHTDATA_MCP_URL).</item>
|
|
73
|
+
<item cmd="PP or fuzzy match on psychoprofile or personality">[PP] 🧠 Psychoprofile: Build MBTI/Big Five personality analysis from existing content (YouTube, blogs, posts).</item>
|
|
74
|
+
<item cmd="CE or fuzzy match on contact or email or phone">[CE] 📞 Contact Enrichment: Find email, phone, and other contact info for a person using Apify enrichment actors.</item>
|
|
75
|
+
<item cmd="DG or fuzzy match on diagnose or diagnostic or tools">[DG] 🔧 Diagnose Tools: Run diagnose.sh to check which APIs and tools are available.</item>
|
|
76
|
+
<item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>
|
|
77
|
+
<item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
|
|
78
|
+
</menu>
|
|
79
|
+
</agent>
|
|
80
|
+
```
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
# OSINT Agent — Installation Script (Windows PowerShell)
|
|
2
|
-
# Usage: .\install.ps1 [-ProjectRoot "path\to\bmad\project"]
|
|
3
|
-
|
|
4
|
-
param(
|
|
5
|
-
[string]$ProjectRoot = "."
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
$ErrorActionPreference = "Stop"
|
|
9
|
-
$PackageDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
10
|
-
|
|
11
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
12
|
-
Write-Host " OSINT Agent Installer for BMAD" -ForegroundColor Cyan
|
|
13
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
14
|
-
Write-Host ""
|
|
15
|
-
|
|
16
|
-
# Resolve project root
|
|
17
|
-
$ProjectRoot = Resolve-Path $ProjectRoot
|
|
18
|
-
Write-Host "Project root: $ProjectRoot" -ForegroundColor Yellow
|
|
19
|
-
|
|
20
|
-
# Verify BMAD is installed
|
|
21
|
-
$bmadDir = Join-Path $ProjectRoot "_bmad\bmm\agents"
|
|
22
|
-
if (-not (Test-Path $bmadDir)) {
|
|
23
|
-
Write-Host "ERROR: BMAD not found at $bmadDir" -ForegroundColor Red
|
|
24
|
-
Write-Host "Make sure BMAD Method is installed in the target project." -ForegroundColor Red
|
|
25
|
-
Write-Host "Run: npx bmad-method install" -ForegroundColor Yellow
|
|
26
|
-
exit 1
|
|
27
|
-
}
|
|
28
|
-
Write-Host " BMAD found" -ForegroundColor Green
|
|
29
|
-
|
|
30
|
-
# Verify Python
|
|
31
|
-
$python = Get-Command python -ErrorAction SilentlyContinue
|
|
32
|
-
if (-not $python) {
|
|
33
|
-
Write-Host "ERROR: Python not found. Install Python 3.10+" -ForegroundColor Red
|
|
34
|
-
exit 1
|
|
35
|
-
}
|
|
36
|
-
Write-Host " Python found: $($python.Source)" -ForegroundColor Green
|
|
37
|
-
|
|
38
|
-
# 1. Copy agent definition
|
|
39
|
-
Write-Host ""
|
|
40
|
-
Write-Host "1. Installing agent definition..." -ForegroundColor Cyan
|
|
41
|
-
$agentSrc = Join-Path $PackageDir "agents\osint-investigator.md"
|
|
42
|
-
$agentDst = Join-Path $ProjectRoot "_bmad\bmm\agents\osint-investigator.md"
|
|
43
|
-
Copy-Item $agentSrc $agentDst -Force
|
|
44
|
-
Write-Host " -> $agentDst" -ForegroundColor Green
|
|
45
|
-
|
|
46
|
-
# 2. Copy skills
|
|
47
|
-
Write-Host ""
|
|
48
|
-
Write-Host "2. Installing skills..." -ForegroundColor Cyan
|
|
49
|
-
|
|
50
|
-
$skillsDir = Join-Path $ProjectRoot ".agents\skills"
|
|
51
|
-
|
|
52
|
-
# Skill 1: Agent entry point
|
|
53
|
-
$skill1Dst = Join-Path $skillsDir "bmad-osint-investigator"
|
|
54
|
-
New-Item -ItemType Directory -Force -Path $skill1Dst | Out-Null
|
|
55
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigator\SKILL.md") $skill1Dst -Force
|
|
56
|
-
Write-Host " -> bmad-osint-investigator/SKILL.md" -ForegroundColor Green
|
|
57
|
-
|
|
58
|
-
# Skill 2: Investigation pipeline + scripts
|
|
59
|
-
$skill2Dst = Join-Path $skillsDir "bmad-osint-investigate"
|
|
60
|
-
New-Item -ItemType Directory -Force -Path $skill2Dst | Out-Null
|
|
61
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\SKILL.md") $skill2Dst -Force
|
|
62
|
-
|
|
63
|
-
$osintDst = Join-Path $skill2Dst "osint"
|
|
64
|
-
New-Item -ItemType Directory -Force -Path "$osintDst\scripts", "$osintDst\references", "$osintDst\assets" | Out-Null
|
|
65
|
-
|
|
66
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\SKILL.md") $osintDst -Force
|
|
67
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\scripts\*") "$osintDst\scripts\" -Force
|
|
68
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\references\*") "$osintDst\references\" -Force
|
|
69
|
-
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\assets\*") "$osintDst\assets\" -Force
|
|
70
|
-
Write-Host " -> bmad-osint-investigate/ (full pipeline + scripts)" -ForegroundColor Green
|
|
71
|
-
|
|
72
|
-
# 3. Run diagnostic
|
|
73
|
-
Write-Host ""
|
|
74
|
-
Write-Host "3. Running diagnostic..." -ForegroundColor Cyan
|
|
75
|
-
$diagScript = Join-Path $osintDst "scripts\diagnose.py"
|
|
76
|
-
& python $diagScript
|
|
77
|
-
|
|
78
|
-
# 4. Summary
|
|
79
|
-
Write-Host ""
|
|
80
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
81
|
-
Write-Host " Installation complete!" -ForegroundColor Green
|
|
82
|
-
Write-Host "========================================" -ForegroundColor Cyan
|
|
83
|
-
Write-Host ""
|
|
84
|
-
Write-Host "Next steps:" -ForegroundColor Yellow
|
|
85
|
-
Write-Host " 1. Configure API keys - see SETUP_KEYS.md"
|
|
86
|
-
Write-Host " 2. Invoke 'bmad-osint-investigator' skill in your AI agent"
|
|
87
|
-
Write-Host ""
|
|
1
|
+
# OSINT Agent — Installation Script (Windows PowerShell)
|
|
2
|
+
# Usage: .\install.ps1 [-ProjectRoot "path\to\bmad\project"]
|
|
3
|
+
|
|
4
|
+
param(
|
|
5
|
+
[string]$ProjectRoot = "."
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
$ErrorActionPreference = "Stop"
|
|
9
|
+
$PackageDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
10
|
+
|
|
11
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
12
|
+
Write-Host " OSINT Agent Installer for BMAD" -ForegroundColor Cyan
|
|
13
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
14
|
+
Write-Host ""
|
|
15
|
+
|
|
16
|
+
# Resolve project root
|
|
17
|
+
$ProjectRoot = Resolve-Path $ProjectRoot
|
|
18
|
+
Write-Host "Project root: $ProjectRoot" -ForegroundColor Yellow
|
|
19
|
+
|
|
20
|
+
# Verify BMAD is installed
|
|
21
|
+
$bmadDir = Join-Path $ProjectRoot "_bmad\bmm\agents"
|
|
22
|
+
if (-not (Test-Path $bmadDir)) {
|
|
23
|
+
Write-Host "ERROR: BMAD not found at $bmadDir" -ForegroundColor Red
|
|
24
|
+
Write-Host "Make sure BMAD Method is installed in the target project." -ForegroundColor Red
|
|
25
|
+
Write-Host "Run: npx bmad-method install" -ForegroundColor Yellow
|
|
26
|
+
exit 1
|
|
27
|
+
}
|
|
28
|
+
Write-Host " BMAD found" -ForegroundColor Green
|
|
29
|
+
|
|
30
|
+
# Verify Python
|
|
31
|
+
$python = Get-Command python -ErrorAction SilentlyContinue
|
|
32
|
+
if (-not $python) {
|
|
33
|
+
Write-Host "ERROR: Python not found. Install Python 3.10+" -ForegroundColor Red
|
|
34
|
+
exit 1
|
|
35
|
+
}
|
|
36
|
+
Write-Host " Python found: $($python.Source)" -ForegroundColor Green
|
|
37
|
+
|
|
38
|
+
# 1. Copy agent definition
|
|
39
|
+
Write-Host ""
|
|
40
|
+
Write-Host "1. Installing agent definition..." -ForegroundColor Cyan
|
|
41
|
+
$agentSrc = Join-Path $PackageDir "agents\osint-investigator.md"
|
|
42
|
+
$agentDst = Join-Path $ProjectRoot "_bmad\bmm\agents\osint-investigator.md"
|
|
43
|
+
Copy-Item $agentSrc $agentDst -Force
|
|
44
|
+
Write-Host " -> $agentDst" -ForegroundColor Green
|
|
45
|
+
|
|
46
|
+
# 2. Copy skills
|
|
47
|
+
Write-Host ""
|
|
48
|
+
Write-Host "2. Installing skills..." -ForegroundColor Cyan
|
|
49
|
+
|
|
50
|
+
$skillsDir = Join-Path $ProjectRoot ".agents\skills"
|
|
51
|
+
|
|
52
|
+
# Skill 1: Agent entry point
|
|
53
|
+
$skill1Dst = Join-Path $skillsDir "bmad-osint-investigator"
|
|
54
|
+
New-Item -ItemType Directory -Force -Path $skill1Dst | Out-Null
|
|
55
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigator\SKILL.md") $skill1Dst -Force
|
|
56
|
+
Write-Host " -> bmad-osint-investigator/SKILL.md" -ForegroundColor Green
|
|
57
|
+
|
|
58
|
+
# Skill 2: Investigation pipeline + scripts
|
|
59
|
+
$skill2Dst = Join-Path $skillsDir "bmad-osint-investigate"
|
|
60
|
+
New-Item -ItemType Directory -Force -Path $skill2Dst | Out-Null
|
|
61
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\SKILL.md") $skill2Dst -Force
|
|
62
|
+
|
|
63
|
+
$osintDst = Join-Path $skill2Dst "osint"
|
|
64
|
+
New-Item -ItemType Directory -Force -Path "$osintDst\scripts", "$osintDst\references", "$osintDst\assets" | Out-Null
|
|
65
|
+
|
|
66
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\SKILL.md") $osintDst -Force
|
|
67
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\scripts\*") "$osintDst\scripts\" -Force
|
|
68
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\references\*") "$osintDst\references\" -Force
|
|
69
|
+
Copy-Item (Join-Path $PackageDir "skills\bmad-osint-investigate\osint\assets\*") "$osintDst\assets\" -Force
|
|
70
|
+
Write-Host " -> bmad-osint-investigate/ (full pipeline + scripts)" -ForegroundColor Green
|
|
71
|
+
|
|
72
|
+
# 3. Run diagnostic
|
|
73
|
+
Write-Host ""
|
|
74
|
+
Write-Host "3. Running diagnostic..." -ForegroundColor Cyan
|
|
75
|
+
$diagScript = Join-Path $osintDst "scripts\diagnose.py"
|
|
76
|
+
& python $diagScript
|
|
77
|
+
|
|
78
|
+
# 4. Summary
|
|
79
|
+
Write-Host ""
|
|
80
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
81
|
+
Write-Host " Installation complete!" -ForegroundColor Green
|
|
82
|
+
Write-Host "========================================" -ForegroundColor Cyan
|
|
83
|
+
Write-Host ""
|
|
84
|
+
Write-Host "Next steps:" -ForegroundColor Yellow
|
|
85
|
+
Write-Host " 1. Configure API keys - see SETUP_KEYS.md"
|
|
86
|
+
Write-Host " 2. Invoke 'bmad-osint-investigator' skill in your AI agent"
|
|
87
|
+
Write-Host ""
|