{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"sourcery","slug":"sourcery","name":"Sourcery","type":"agent","url":"https://sourcery.ai","page_url":"https://unfragile.ai/sourcery","categories":["code-review-security","testing-quality"],"tags":[],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"sourcery__cap_0","uri":"capability://code.generation.editing.pull.request.aware.code.review.with.line.level.feedback","name":"pull-request-aware code review with line-level feedback","description":"Analyzes GitHub/GitLab pull request diffs by hooking into VCS webhooks, parsing changed code segments, and running static analysis + LLM-based pattern detection to generate line-by-line review comments directly on PR threads. The system maintains PR context (base branch, changed files, commit history) to provide targeted feedback rather than full-codebase analysis, reducing false positives from unchanged code.","intents":["I want automated code review comments on every PR without manual reviewer overhead","I need line-specific feedback on what changed, not analysis of the entire file","I want to catch bugs and anti-patterns before code review meetings"],"best_for":["development teams using GitHub or GitLab with 5-200+ repositories","teams wanting to enforce coding standards without hiring dedicated code reviewers","organizations migrating to AI-assisted development workflows"],"limitations":["Biweekly scanning frequency on Open Source tier (limits feedback velocity for high-velocity teams)","Only supports Python and JavaScript — no Go, Rust, Java, or other languages","Cannot analyze cross-repository dependencies or monorepo patterns beyond single-repo scope","PR analysis latency unknown — may delay merge decisions if feedback is slow"],"requires":["GitHub or GitLab repository with write access for webhook configuration","Active Sourcery account (free, Pro, or Team tier)","Python or JavaScript codebase (other languages not supported)"],"input_types":["git diff (PR changes)","source code (Python/JavaScript)","commit metadata (author, message, timestamp)"],"output_types":["PR comments (line-specific feedback)","suggested code fixes (inline diffs)","structured review summary (bugs, anti-patterns, quality metrics)"],"categories":["code-generation-editing","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_1","uri":"capability://code.generation.editing.bug.and.anti.pattern.detection.with.fix.suggestions","name":"bug and anti-pattern detection with fix suggestions","description":"Runs semantic code analysis using LLM inference to identify logic errors, common anti-patterns (e.g., unused variables, incorrect error handling, performance issues), and security vulnerabilities. For each detected issue, generates a concrete code fix suggestion with explanation, which developers can apply with a single click in the IDE or approve in the PR interface. The system maintains a library of known patterns (likely trained or curated) to recognize recurring issues across codebases.","intents":["I want to catch bugs before they reach production without writing custom linters","I need automated fix suggestions I can apply immediately, not just problem descriptions","I want to learn common anti-patterns by seeing them flagged in my code"],"best_for":["teams with limited code review capacity or junior developers","organizations wanting to reduce bug escape rate without hiring more reviewers","developers using Sourcery IDE plugins for real-time feedback during coding"],"limitations":["Detection accuracy depends on LLM quality — false positives/negatives not quantified","Cannot detect logic errors requiring multi-file context or cross-service dependencies","Fix suggestions may not match team coding style — requires manual review before merge","No custom anti-pattern definition — limited to built-in pattern library"],"requires":["Sourcery account with code analysis enabled","Python or JavaScript codebase","LLM API access (OpenAI by default; configurable on Team+ tiers)"],"input_types":["source code (Python/JavaScript)","code context (surrounding functions, imports, type hints if available)"],"output_types":["bug/anti-pattern description (natural language)","suggested code fix (diff format)","severity level (critical, warning, info)","explanation of why the pattern is problematic"],"categories":["code-generation-editing","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_10","uri":"capability://code.generation.editing.multi.file.code.context.analysis.for.cross.file.dependency.detection","name":"multi-file code context analysis for cross-file dependency detection","description":"Analyzes code changes across multiple files within a pull request to detect dependencies, imports, and architectural impacts that single-file analysis would miss. The system builds a dependency graph of changed files, identifies which other files are affected by the changes, and detects potential breaking changes or unintended side effects. This capability enables detection of issues like unused imports after refactoring, missing dependency updates, or architectural violations that span multiple files.","intents":["I want to detect breaking changes that span multiple files in a PR","I need to identify unintended side effects of refactoring across the codebase","I want to catch missing dependency updates when APIs change"],"best_for":["Teams performing large refactorings affecting multiple files","Codebases with complex inter-file dependencies","Developers new to a codebase needing to understand file relationships"],"limitations":["Limited to Python and JavaScript","Context limited to files changed in PR — cannot analyze full codebase dependencies","Dependency graph accuracy not benchmarked","Cannot detect runtime dependencies (dynamic imports, reflection)","Cross-module architectural analysis scope unknown"],"requires":["Sourcery account (free tier available)","Pull request with changes to multiple files","Python or JavaScript codebase with clear import/dependency structure"],"input_types":["PR diff (multiple changed files)","Import statements and dependency declarations","File structure and module hierarchy"],"output_types":["Dependency graph visualization (optional)","Cross-file impact analysis (text)","Breaking change warnings (structured list)","Refactoring suggestions (text)"],"categories":["code-generation-editing","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_11","uri":"capability://automation.workflow.configurable.review.severity.levels.and.blocking.rules","name":"configurable review severity levels and blocking rules","description":"Allows teams to configure which code review findings should block PR merges versus which should only generate warnings or informational comments. Severity levels (error, warning, info) can be customized per rule, and blocking rules can be enforced at the repository or organization level. This enables teams to distinguish between critical issues (security vulnerabilities, architectural violations) that must be fixed before merge and suggestions (style improvements, performance optimizations) that are informational.","intents":["I want to block PRs only for critical issues, not style suggestions","I need different severity levels for different types of violations","I want to enforce critical standards while allowing flexibility on minor issues"],"best_for":["Teams with mature code review processes and clear standards","Organizations balancing code quality with development velocity","Teams with different standards for different repositories"],"limitations":["Configuration interface not documented — unclear how granular rule customization is","Blocking behavior may vary by GitHub/GitLab permissions — not fully documented","Cannot override blocking rules per-PR without admin action","Severity level customization scope unknown — may be limited to predefined levels"],"requires":["Sourcery account (free tier available)","GitHub or GitLab repository with admin access","Access to Sourcery dashboard for rule configuration"],"input_types":["Rule definitions (predefined or custom)","Severity level configuration","Blocking rule specification"],"output_types":["PR review status (approved, requested changes, commented)","Severity-tagged feedback (error, warning, info)","Merge blocking decision (block or allow)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_2","uri":"capability://automation.workflow.coding.standards.enforcement.with.team.wide.consistency.checks","name":"coding standards enforcement with team-wide consistency checks","description":"Enforces repository-wide or team-wide coding standards by analyzing code against configurable rule sets (style, naming conventions, architectural patterns). The system can be configured with custom standards (Team tier+) or use built-in defaults, then automatically flags violations in PRs and suggests corrections. Standards are applied consistently across all team members' code, enabling drift detection when developers deviate from established patterns.","intents":["I want to enforce consistent code style across my team without manual code review","I need to catch architectural violations (e.g., circular dependencies, incorrect layer usage) automatically","I want to prevent tech debt from accumulating due to inconsistent patterns"],"best_for":["teams with 5+ developers needing consistent code style","organizations with established coding standards wanting automated enforcement","teams migrating to new architectural patterns and needing to enforce adoption"],"limitations":["Custom rule definition details unknown — unclear how flexible rule configuration is","No evidence of machine-learning-based style learning (e.g., learning team style from existing code)","Limited to Python and JavaScript — cannot enforce standards across polyglot codebases","Enforcement scope limited to single repository — no cross-repo consistency checks"],"requires":["Sourcery Team tier or above (custom standards require Team+)","Repository with established coding standards or willingness to define them","GitHub or GitLab integration"],"input_types":["source code (Python/JavaScript)","custom rule definitions (format unknown)","team coding standards documentation"],"output_types":["standards violation reports (per file, per PR)","suggested corrections (code diffs)","team-wide consistency metrics (% compliant code)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_3","uri":"capability://safety.moderation.security.vulnerability.scanning.with.dependency.risk.assessment","name":"security vulnerability scanning with dependency risk assessment","description":"Scans code and dependencies for known security vulnerabilities, logic errors that could lead to exploits (e.g., SQL injection, XSS, insecure deserialization), and risky patterns (e.g., hardcoded secrets, weak cryptography). The system integrates with dependency databases to identify vulnerable package versions and provides remediation guidance (upgrade recommendations, patch suggestions). Scanning can be triggered on-demand or scheduled (biweekly on Open Source tier, daily on Team tier).","intents":["I want to catch security vulnerabilities before they reach production","I need to identify vulnerable dependencies and get upgrade recommendations","I want to prevent common security mistakes (hardcoded secrets, weak crypto) in code review"],"best_for":["teams with security-conscious requirements (fintech, healthcare, SaaS)","organizations needing compliance with security standards (SOC 2, HIPAA, PCI-DSS)","development teams wanting to shift security left into the development workflow"],"limitations":["Scanning frequency limited by tier (biweekly on Open Source, daily on Team) — may miss zero-days between scans","Dependency vulnerability detection limited to known CVEs — cannot detect novel vulnerabilities","Logic-based vulnerability detection (SQL injection, XSS) accuracy depends on LLM quality — false positives not quantified","No evidence of SAST (Static Application Security Testing) integration — scope limited to code analysis only"],"requires":["Sourcery account with security scanning enabled","Python or JavaScript codebase with dependency manifests (requirements.txt, package.json, etc.)","GitHub or GitLab repository for automated scanning"],"input_types":["source code (Python/JavaScript)","dependency manifests (requirements.txt, package.json, poetry.lock, etc.)","known vulnerability databases (CVE, NVD)"],"output_types":["vulnerability report (CVE ID, severity, affected versions)","remediation guidance (upgrade recommendations, patch suggestions)","risk assessment (exploitability, impact)","security findings (hardcoded secrets, weak crypto, logic errors)"],"categories":["safety-moderation","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_4","uri":"capability://code.generation.editing.real.time.ide.code.review.with.single.click.fixes","name":"real-time ide code review with single-click fixes","description":"Provides IDE plugin integration (VS Code, JetBrains IDEs) that analyzes code as developers type, displaying inline review feedback, bug warnings, and fix suggestions in real-time. Developers can apply suggested fixes with a single click, which updates the code immediately. The IDE plugin communicates with Sourcery's cloud backend (or local analysis engine on Enterprise tier) to provide instant feedback without requiring PR submission, enabling shift-left security and quality practices.","intents":["I want immediate feedback on code quality as I write, not after PR submission","I want to apply code fixes instantly without context-switching to GitHub/GitLab","I want to learn best practices by seeing suggestions in real-time"],"best_for":["individual developers wanting real-time code guidance","teams using VS Code or JetBrains IDEs (IntelliJ, PyCharm, WebStorm)","organizations wanting to shift code review left into the development phase"],"limitations":["IDE plugin architecture unknown — unclear how analysis is triggered (on-save, on-keystroke, on-demand)","Latency of real-time analysis not disclosed — may impact IDE responsiveness if analysis is slow","Requires cloud connectivity to Sourcery backend (unless Enterprise self-hosted) — offline development not supported","IDE plugin availability limited to VS Code and JetBrains — no support for Vim, Emacs, or other editors"],"requires":["VS Code 1.80+ or JetBrains IDE (IntelliJ, PyCharm, WebStorm, etc.)","Sourcery IDE plugin installed and authenticated","Active Sourcery account (free tier available)","Internet connectivity to Sourcery cloud backend (unless Enterprise self-hosted)"],"input_types":["source code (Python/JavaScript)","file context (imports, type hints, surrounding code)"],"output_types":["inline code review comments (displayed in editor gutter)","suggested fixes (quick-fix actions)","bug/anti-pattern warnings (highlighted in code)"],"categories":["code-generation-editing","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_5","uri":"capability://data.processing.analysis.codebase.wide.tech.debt.and.pattern.drift.detection","name":"codebase-wide tech debt and pattern drift detection","description":"Performs repository-wide or multi-repository scans to identify accumulated tech debt (code duplication, unused code, outdated patterns), detect when code drifts from established architectural patterns, and generate summaries of code quality trends over time. The system can identify when new code violates patterns established in older code, flagging inconsistencies that might indicate architectural decay. Results are presented as dashboards or reports showing tech debt hotspots and drift metrics.","intents":["I want to understand where tech debt is accumulating in my codebase","I need to detect when new code drifts from established architectural patterns","I want metrics on code quality trends to justify refactoring efforts to stakeholders"],"best_for":["engineering leaders managing large codebases (10k+ lines of code)","teams planning refactoring initiatives and needing baseline metrics","organizations wanting to prevent architectural decay over time"],"limitations":["Scanning frequency limited by tier (biweekly on Open Source, daily on Team) — may miss rapid drift","Tech debt metrics not clearly defined — unclear how duplication, unused code, and pattern drift are quantified","Limited to single-repository analysis — no cross-repo tech debt aggregation","No evidence of historical trend tracking — unclear if metrics are compared over time"],"requires":["Sourcery account with codebase scanning enabled","Python or JavaScript codebase","Repository access for full-codebase analysis"],"input_types":["entire codebase (Python/JavaScript)","git history (optional, for trend analysis)","architectural patterns (implicit or explicit)"],"output_types":["tech debt report (duplication, unused code, outdated patterns)","pattern drift metrics (% code following established patterns)","hotspot analysis (files/modules with highest tech debt)","trend dashboard (quality metrics over time)"],"categories":["data-processing-analysis","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_6","uri":"capability://tool.use.integration.configurable.llm.backend.selection.and.custom.model.integration","name":"configurable llm backend selection and custom model integration","description":"Allows teams on Team tier and above to configure which LLM provider and model powers Sourcery's analysis (default: OpenAI GPT-4 or GPT-3.5). Teams can bring their own LLM endpoints (custom OpenAI instances, Anthropic Claude, or other providers) or use Sourcery's managed LLM service. The system routes code analysis requests to the configured LLM backend, enabling teams to use preferred models, comply with data residency requirements, or optimize for cost/latency tradeoffs.","intents":["I want to use my preferred LLM provider (Anthropic, custom endpoint) instead of OpenAI","I need code analysis to stay within my organization's data residency boundaries","I want to optimize for cost by using a cheaper LLM model"],"best_for":["enterprises with LLM provider preferences or contracts","organizations with data residency or compliance requirements (GDPR, HIPAA)","teams wanting to reduce LLM API costs by using cheaper models"],"limitations":["LLM configuration details unknown — unclear how custom endpoints are specified or validated","Limited to Team tier and above — free and Pro tiers locked to OpenAI","No evidence of model performance comparison — unclear how different LLMs affect analysis quality","Custom endpoint support may require additional setup and maintenance overhead"],"requires":["Sourcery Team tier or above","LLM API key or endpoint (OpenAI, Anthropic, or custom provider)","Understanding of LLM API specifications and authentication"],"input_types":["LLM provider configuration (API key, endpoint URL, model name)","source code (sent to configured LLM backend)"],"output_types":["analysis results (same as default, but from configured LLM)","cost/latency metrics (if tracked by Sourcery)"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_7","uri":"capability://safety.moderation.multi.repository.security.scanning.with.cross.repo.risk.aggregation","name":"multi-repository security scanning with cross-repo risk aggregation","description":"Extends security scanning beyond single repositories to analyze multiple repositories in a team or organization, aggregating vulnerability findings and risk metrics across repos. The system can identify shared dependencies with vulnerabilities across repos, flag when one repo's vulnerable code pattern appears in others, and provide organization-wide security dashboards. Scanning scope varies by tier (3 repos on Open Source, 10 on Pro, 200+ on Team).","intents":["I want to see all security vulnerabilities across my organization's repositories in one place","I need to identify shared vulnerable dependencies used across multiple repos","I want to prevent the same security mistake from being replicated across repos"],"best_for":["organizations with 10+ repositories needing centralized security oversight","teams with shared dependencies across multiple services/microservices","enterprises requiring organization-wide security compliance reporting"],"limitations":["Repository scanning limits by tier (3 on Open Source, 10 on Pro, 200+ on Team) — may not cover all repos in large organizations","Scanning frequency limited by tier (biweekly on Open Source, daily on Team) — may miss zero-days between scans","Cross-repo pattern detection details unknown — unclear how shared vulnerabilities are identified","No evidence of dependency graph analysis across repos — cannot detect transitive vulnerabilities across service boundaries"],"requires":["Sourcery account with multi-repo scanning enabled","Multiple GitHub or GitLab repositories with write access for webhook configuration","Tier-appropriate repository limit (3+ repos)"],"input_types":["multiple repositories (Python/JavaScript)","dependency manifests across repos","known vulnerability databases"],"output_types":["organization-wide vulnerability report (aggregated across repos)","shared dependency risk analysis (vulnerable packages used in multiple repos)","cross-repo pattern detection (same vulnerability pattern in multiple repos)","security dashboard (organization-level metrics)"],"categories":["safety-moderation","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_8","uri":"capability://text.generation.language.code.change.summarization.and.architectural.impact.analysis","name":"code change summarization and architectural impact analysis","description":"Automatically generates natural-language summaries of code changes in PRs, explaining what changed, why it matters, and potential architectural impacts. The system analyzes diffs to identify high-level changes (new features, refactoring, bug fixes, dependency updates) and generates summaries that help reviewers understand intent without reading every line. Can also generate architecture diagrams showing how changes affect system design.","intents":["I want to quickly understand what a large PR does without reading all the code","I need to assess whether a PR has unintended architectural impacts","I want to communicate code changes to non-technical stakeholders"],"best_for":["teams with large PRs (1000+ lines) that are hard to review","organizations with distributed teams needing async code review","teams wanting to improve code review velocity by reducing time spent understanding changes"],"limitations":["Summarization quality depends on LLM capability — may miss subtle architectural impacts","Architecture diagram generation details unknown — unclear what diagram types are supported","Limited to Python and JavaScript — cannot analyze polyglot codebases","No evidence of historical change tracking — unclear if summaries are compared over time"],"requires":["Sourcery account with PR analysis enabled","GitHub or GitLab repository with PR integration","Python or JavaScript codebase"],"input_types":["git diff (PR changes)","commit messages","file structure and imports"],"output_types":["change summary (natural language description of what changed)","impact analysis (affected modules, potential side effects)","architecture diagrams (visual representation of changes)","risk assessment (likelihood of bugs or regressions)"],"categories":["text-generation-language","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__cap_9","uri":"capability://automation.workflow.github.and.gitlab.webhook.integration.for.automated.pr.review.triggering","name":"github and gitlab webhook integration for automated pr review triggering","description":"Integrates with GitHub and GitLab webhook systems to automatically trigger code review analysis whenever a pull request is created or updated. The system receives webhook events, fetches the PR diff and metadata via repository APIs, performs analysis, and posts review comments back to the PR as native GitHub/GitLab reviews. This integration enables zero-configuration code review automation — once installed, reviews are triggered automatically without manual invocation.","intents":["I want code review to happen automatically on every PR without manual setup","I need review feedback posted directly in GitHub/GitLab PRs","I want to block PRs from merging if they violate critical standards"],"best_for":["Teams using GitHub or GitLab with automated CI/CD workflows","Organizations wanting to enforce code review without manual reviewer assignment","Open source projects needing scalable code review for high-volume PRs"],"limitations":["Only GitHub and GitLab supported — Gitea, Bitbucket, or other platforms not documented","Webhook latency unknown — review feedback timing not specified","Cannot auto-merge PRs — only posts reviews; humans must approve merge","Review blocking behavior depends on configuration — not all violations block merge","Webhook retry/failure handling not documented"],"requires":["GitHub or GitLab repository with webhook configuration access","Sourcery account (free tier available)","Repository admin or maintainer permissions to install webhooks"],"input_types":["GitHub/GitLab webhook events (pull_request, push)","PR metadata (title, description, author, changed files)","Repository API access (to fetch diffs and post comments)"],"output_types":["PR review comments (native GitHub/GitLab format)","Review status (approved, requested changes, commented)","Webhook delivery logs (for debugging)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"sourcery__headline","uri":"capability://code.generation.editing.ai.powered.code.review.agent","name":"ai-powered code review agent","description":"Sourcery is an AI-powered code review agent that automatically reviews pull requests, suggests improvements for code quality, identifies bugs, and enforces coding standards, specifically for Python and JavaScript codebases.","intents":["best AI code review tool","AI code review agent for Python","automated code quality improvement tool","code review solutions for JavaScript","AI tools for pull request reviews"],"best_for":["teams using GitHub or GitLab","developers looking to enhance code quality"],"limitations":[],"requires":[],"input_types":[],"output_types":[],"categories":["code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":59,"verified":false,"data_access_risk":"high","permissions":["GitHub or GitLab repository with write access for webhook configuration","Active Sourcery account (free, Pro, or Team tier)","Python or JavaScript codebase (other languages not supported)","Sourcery account with code analysis enabled","Python or JavaScript codebase","LLM API access (OpenAI by default; configurable on Team+ tiers)","Sourcery account (free tier available)","Pull request with changes to multiple files","Python or JavaScript codebase with clear import/dependency structure","GitHub or GitLab repository with admin access"],"failure_modes":["Biweekly scanning frequency on Open Source tier (limits feedback velocity for high-velocity teams)","Only supports Python and JavaScript — no Go, Rust, Java, or other languages","Cannot analyze cross-repository dependencies or monorepo patterns beyond single-repo scope","PR analysis latency unknown — may delay merge decisions if feedback is slow","Detection accuracy depends on LLM quality — false positives/negatives not quantified","Cannot detect logic errors requiring multi-file context or cross-service dependencies","Fix suggestions may not match team coding style — requires manual review before merge","No custom anti-pattern definition — limited to built-in pattern library","Limited to Python and JavaScript","Context limited to files changed in PR — cannot analyze full codebase dependencies","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.25,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:28.695Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=sourcery","compare_url":"https://unfragile.ai/compare?artifact=sourcery"}},"signature":"0FxRE3gw/PfG/BGLnMZzVOr93J5r6y1d9P4hc3Yu3uWE27oRbULQf89/fx+DiJwd44rgtesFFwh/gMv0/QtyDg==","signedAt":"2026-06-22T18:33:39.888Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/sourcery","artifact":"https://unfragile.ai/sourcery","verify":"https://unfragile.ai/api/v1/verify?slug=sourcery","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}