{"components":{"schemas":{"CerScreeningResponse":{"description":"Complete employee screening result including risk assessment, findings,\nand compliance determination under CER regulations.\n","example":{"compliant":true,"confidence_level":0.87,"epistemic_score":25,"findings":[],"id":"SCR-20251208-123456","name":"Jan Novak","risk_level":"low","risk_score":25.0,"screened_at":"2025-12-08T10:30:00Z","sources_checked":["ares","isir","court_cases"]},"properties":{"compliant":{"description":"Whether the employee meets CER compliance requirements","example":true,"type":"boolean"},"confidence_level":{"description":"Confidence level in the assessment (0.0-1.0)","example":0.87,"format":"float","maximum":1,"minimum":0,"type":"number"},"epistemic_score":{"description":"Epistemic confidence score (0-100)","example":25,"maximum":100,"minimum":0,"type":"integer"},"findings":{"description":"Detailed findings from various sources","items":{"$ref":"#/components/schemas/CerFinding"},"type":"array"},"id":{"description":"Unique screening identifier","example":"SCR-20251208-123456","type":"string"},"metadata":{"additionalProperties":true,"description":"Additional metadata from the screening process","type":"object"},"name":{"description":"Screened employee's name","type":"string"},"risk_level":{"description":"Categorical risk assessment","enum":["minimal","low","medium","high","critical"],"example":"low","type":"string"},"risk_score":{"description":"Risk score (0-100, lower is better)","example":25.0,"format":"float","maximum":100,"minimum":0,"type":"number"},"screened_at":{"description":"Timestamp when screening was performed","format":"date-time","type":"string"},"sources_checked":{"description":"Data sources consulted during screening","example":["ares","isir","court_cases","executors"],"items":{"type":"string"},"type":"array"}},"required":["id","name","risk_score","risk_level","compliant","screened_at"],"title":"CER Employee Screening Response","type":"object"},"CerError":{"description":"Standard error response for CER API","example":{"code":"CER_AUTH_001","error":"Unauthorized","message":"Invalid API key"},"properties":{"code":{"description":"Machine-readable error code for programmatic handling","example":"CER_AUTH_001","type":"string"},"error":{"description":"Error type","example":"Unauthorized","type":"string"},"message":{"description":"Human-readable error message","type":"string"}},"required":["error","message","code"],"title":"CER Error Response","type":"object"},"OutcomeRequest":{"description":"Request body for attaching a real-world outcome to a decision.","example":{"measured_at":"2026-04-08T12:00:00Z","notes":"Completed ahead of schedule","observed_facts":["Revenue exceeded projections"],"outcome_label":"success","outcome_value":"Deal closed successfully","success_score":0.85},"properties":{"measured_at":{"description":"When the outcome was measured (defaults to now)","example":"2026-04-08T12:00:00Z","format":"date-time","nullable":true,"type":"string"},"notes":{"description":"Additional notes","example":"Completed ahead of schedule","nullable":true,"type":"string"},"observed_facts":{"description":"List of observed facts supporting the outcome","example":["Revenue exceeded projections","Timeline met"],"items":{"type":"string"},"type":"array"},"outcome_label":{"description":"Outcome classification","enum":["success","failure","partial","inconclusive"],"type":"string"},"outcome_value":{"description":"Free-form outcome description","example":"Deal closed successfully","nullable":true,"type":"string"},"success_score":{"description":"Observed success score (0.0-1.0)","format":"float","maximum":1.0,"minimum":0.0,"type":"number"}},"required":["outcome_label","success_score"],"title":"Outcome Request","type":"object"},"CerRiskAssessmentResponse":{"description":"Complete risk assessment result with factors and recommendations","example":{"compliant":true,"factors":[{"impact":"positive","name":"financial_stability","value":0.8,"weight":0.3}],"level":"medium","recommendations":["Continue regular monitoring","Review subsidiary relationships"],"score":0.35},"properties":{"assessed_at":{"format":"date-time","type":"string"},"compliant":{"description":"Whether entity meets CER compliance threshold","type":"boolean"},"factors":{"description":"Individual risk factors and their contributions","items":{"properties":{"impact":{"enum":["positive","neutral","negative"],"type":"string"},"name":{"type":"string"},"value":{"format":"float","type":"number"},"weight":{"format":"float","type":"number"}},"type":"object"},"type":"array"},"level":{"description":"Categorical risk level","enum":["minimal","low","medium","high","critical"],"type":"string"},"recommendations":{"description":"Recommended actions to improve compliance","items":{"type":"string"},"type":"array"},"score":{"description":"Risk score (0.0-1.0)","example":0.35,"format":"float","maximum":1,"minimum":0,"type":"number"}},"required":["score","level","compliant"],"title":"CER Risk Assessment Response","type":"object"},"HealthCheck":{"description":"System health status","example":{"checks":{"database":{"details":{"connections":10},"latency_ms":5,"status":"ok"},"meilisearch":{"details":{"indexes":5},"latency_ms":12,"status":"ok"}},"status":"healthy","timestamp":"2025-01-10T14:30:00Z","uptime_seconds":86400,"version":"0.1.0"},"properties":{"checks":{"additionalProperties":{"properties":{"details":{"additionalProperties":true,"type":"object"},"latency_ms":{"type":"integer"},"status":{"enum":["ok","error"],"type":"string"}},"type":"object"},"description":"Individual component health checks","type":"object"},"status":{"description":"Overall system health status","enum":["healthy","degraded","unhealthy"],"type":"string"},"timestamp":{"description":"Health check timestamp","format":"date-time","type":"string"},"uptime_seconds":{"description":"System uptime in seconds","type":"integer"},"version":{"description":"Application version","type":"string"}},"required":["status","timestamp","version"],"title":"Health Check Response","type":"object"},"OutcomeResponse":{"description":"Response after attaching an outcome, including the computed calibration event.","example":{"calibration":{"absolute_error":0.07,"bucket":"0.7-0.8","calibration_delta":-0.07,"id":"550e8400-e29b-41d4-a716-446655440011","model_version":"1.0.0","observed_success":0.85,"predicted_confidence":0.78},"outcome":{"id":"550e8400-e29b-41d4-a716-446655440010","measured_at":"2026-04-08T12:00:00Z","notes":"Ahead of schedule","observed_facts":["Revenue exceeded projections"],"outcome_label":"success","outcome_value":"Deal closed","success_score":0.85}},"properties":{"calibration":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.CalibrationEvent","outcome":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.OutcomeSummary"},"required":["outcome","calibration"],"title":"Outcome Response","type":"object"},"CerFinding":{"description":"Individual finding from a screening or vetting operation","properties":{"data":{"additionalProperties":true,"description":"Additional structured data","type":"object"},"description":{"description":"Human-readable description","type":"string"},"severity":{"description":"Severity level","enum":["info","warning","critical"],"type":"string"},"source":{"description":"Data source that produced this finding","example":"isir","type":"string"},"type":{"description":"Type of finding","example":"insolvency","type":"string"}},"required":["source","type"],"title":"CER Finding","type":"object"},"MirrorResponse":{"description":"Complete mirror of HTTP request with chaos engineering metadata","example":{"body":{"nested":{"key":"value"},"test":"data"},"body_length":42,"chaos_applied":{"delay_applied":true,"drop_risk":0.0,"status_override":null},"chaos_config":{"delay_ms":500,"drop_rate":0.0,"jitter_ms":200,"status_override":null},"headers":{"authorization":"[REDACTED]","content-type":"application/json","user-agent":"curl/7.68.0"},"method":"POST","path":"/api/mirror/echo","processing_time_ms":523,"query_params":{"test":"value"},"query_string":"chaos_delay_ms=500&chaos_jitter_ms=200","remote_ip":"127.0.0.1","timestamp":"2025-10-11T14:30:00Z"},"properties":{"body":{"description":"Request body (parsed JSON or raw string)","example":{"test":"data"},"oneOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}]},"body_length":{"description":"Request body size in bytes","example":42,"type":"integer"},"chaos_applied":{"description":"Actual chaos effects applied to this request","properties":{"delay_applied":{"description":"Whether delay/jitter was applied","example":true,"type":"boolean"},"drop_risk":{"description":"Drop probability for this request","example":0.1,"type":"number"},"status_override":{"description":"Status code override applied","example":503,"nullable":true,"type":"integer"}},"type":"object"},"chaos_config":{"description":"Chaos engineering configuration applied","properties":{"delay_ms":{"description":"Base delay in ms","example":500,"type":"integer"},"drop_rate":{"description":"Drop probability (0.0-1.0)","example":0.1,"type":"number"},"jitter_ms":{"description":"Jitter range in ms","example":200,"type":"integer"},"status_override":{"description":"HTTP status code override","example":503,"nullable":true,"type":"integer"}},"type":"object"},"headers":{"additionalProperties":{"type":"string"},"description":"Request headers (PII redacted: Authorization, Cookie)","example":{"authorization":"[REDACTED]","content-type":"application/json"},"type":"object"},"method":{"description":"HTTP method","example":"POST","type":"string"},"path":{"description":"Request path","example":"/api/mirror/echo","type":"string"},"processing_time_ms":{"description":"Processing time in milliseconds (includes chaos delay)","example":523,"type":"integer"},"query_params":{"additionalProperties":true,"description":"Parsed query parameters (PII redacted)","example":{"test_param":"value"},"type":"object"},"query_string":{"description":"Raw query string","example":"chaos_delay_ms=500","type":"string"},"remote_ip":{"description":"Client IP address","example":"127.0.0.1","type":"string"},"timestamp":{"description":"Request timestamp (UTC)","example":"2025-10-11T14:30:00Z","format":"date-time","type":"string"}},"required":["method","path","headers","body","remote_ip","timestamp","processing_time_ms","chaos_config","chaos_applied"],"title":"MirrorResponse","type":"object"},"CerVettingResponse":{"description":"Complete supplier vetting result including beneficial ownership,\nlegal issues, financial health, and CER compliance determination.\n","example":{"beneficial_owners":[],"company_name":"Example s.r.o.","compliant":true,"ico":"12345678","legal_form":"s.r.o.","legal_issues":[],"risk_level":"low","risk_score":0.25,"sources_checked":["ares","justice","isir"],"status":"active","vetted_at":"2025-12-08T10:30:00Z"},"properties":{"address":{"description":"Registered address","example":"Karlova 123, Praha 1, 110 00","type":"string"},"beneficial_owners":{"description":"List of beneficial owners (25%+ ownership)","items":{"$ref":"#/components/schemas/CerBeneficialOwner"},"type":"array"},"company_name":{"description":"Official company name from business registry","example":"Example s.r.o.","type":"string"},"compliant":{"description":"Whether supplier meets CER compliance requirements","type":"boolean"},"financial_health":{"description":"Financial health indicators","properties":{"credit_score":{"example":75,"type":"integer"},"debt_ratio":{"example":0.35,"format":"float","type":"number"},"revenue_trend":{"enum":["growing","stable","declining"],"type":"string"}},"type":"object"},"founded":{"description":"Company foundation date","format":"date","type":"string"},"ico":{"description":"Company registration number","type":"string"},"legal_form":{"description":"Legal form of the company (s.r.o., a.s., etc.)","example":"s.r.o.","type":"string"},"legal_issues":{"description":"Identified legal issues (insolvency, court cases, etc.)","items":{"$ref":"#/components/schemas/CerLegalIssue"},"type":"array"},"recommendations":{"description":"Recommended actions based on assessment","items":{"type":"string"},"type":"array"},"risk_level":{"description":"Categorical risk assessment","enum":["minimal","low","medium","high","critical"],"example":"low","type":"string"},"risk_score":{"description":"Risk score (0.0-1.0, lower is better)","example":0.25,"format":"float","maximum":1,"minimum":0,"type":"number"},"sources_checked":{"example":["ares","justice","isir","court_cases"],"items":{"type":"string"},"type":"array"},"status":{"description":"Current company status","example":"active","type":"string"},"vetted_at":{"description":"Timestamp when vetting was performed","format":"date-time","type":"string"}},"required":["ico","risk_score","risk_level","compliant","vetted_at"],"title":"CER Supplier Vetting Response","type":"object"},"Error":{"description":"Standard error response format","example":{"code":"NOT_FOUND","details":{"id":"inv-123","resource":"investigation"},"error":"Resource not found"},"properties":{"code":{"description":"Error code for programmatic handling","example":"INVALID_PARAMS","type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"error":{"description":"Error message","example":"Invalid request parameters","type":"string"}},"required":["error"],"title":"Error Response","type":"object"},"CerBatchScreeningResponse":{"description":"Results from batch employee screening operation","properties":{"results":{"items":{"$ref":"#/components/schemas/CerScreeningResponse"},"type":"array"},"summary":{"properties":{"compliant":{"example":8,"type":"integer"},"errors":{"example":1,"type":"integer"},"non_compliant":{"example":1,"type":"integer"},"total":{"example":10,"type":"integer"}},"type":"object"}},"required":["results","summary"],"title":"CER Batch Screening Response","type":"object"},"CerReportListResponse":{"description":"Paginated list of generated reports","properties":{"page":{"description":"Current page number","type":"integer"},"reports":{"items":{"$ref":"#/components/schemas/CerReportResponse"},"type":"array"},"total":{"description":"Total number of reports matching query","type":"integer"}},"required":["reports","total","page"],"title":"CER Report List Response","type":"object"},"DecisionTrace":{"description":"Full decision trace including the input, generated hypotheses,\nevaluations, and the final deterministic decision.\n","properties":{"decision":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionSummary","evaluations":{"description":"Hypothesis evaluations","items":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.EvaluationSummary","type":"array"},"hypotheses":{"description":"Generated hypotheses","items":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.HypothesisSummary","type":"array"},"input":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionInputSummary"},"required":["input","hypotheses","evaluations","decision"],"title":"Decision Trace","type":"object"},"CerBeneficialOwner":{"description":"Beneficial owner of a company (25%+ ownership stake)","properties":{"control_type":{"description":"Type of ownership control","enum":["direct","indirect","both"],"type":"string"},"name":{"description":"Owner's name","type":"string"},"nationality":{"description":"ISO 3166-1 alpha-2 country code","example":"CZ","type":"string"},"ownership_percentage":{"description":"Ownership stake percentage","format":"float","maximum":100,"minimum":0,"type":"number"},"pep_status":{"description":"Politically Exposed Person status","type":"boolean"},"sanctions_status":{"description":"Whether owner appears on sanctions lists","type":"boolean"}},"required":["name","ownership_percentage"],"title":"CER Beneficial Owner","type":"object"},"MCPExecRequest":{"description":"Request to execute a tool with specified arguments. Supports dry-run mode\nfor execution planning and custom timeout configuration.\n","example":{"args":{"scope":"detailed"},"dry_run":false,"timeout_ms":30000,"tool":"system.health"},"properties":{"args":{"additionalProperties":true,"description":"Tool arguments (validated against tool's input schema)","example":{"scope":"detailed"},"type":"object"},"dry_run":{"default":false,"description":"If true, returns execution plan without running","example":false,"type":"boolean"},"timeout_ms":{"default":30000,"description":"Execution timeout in milliseconds","example":30000,"maximum":300000,"minimum":1000,"type":"integer"},"tool":{"description":"Tool name to execute","example":"system.health","type":"string"}},"required":["tool"],"title":"MCP Execution Request","type":"object"},"MCPResponse":{"description":"Standard response wrapper for all MCP endpoints","example":{"data":{},"generated_at":"2025-01-10T14:30:00Z","ok":true},"properties":{"data":{"description":"Response data (varies by endpoint)","oneOf":[{"$ref":"#/components/schemas/MCPManifest"},{"$ref":"#/components/schemas/MCPState"},{"$ref":"#/components/schemas/MCPToolsRegistry"}]},"generated_at":{"description":"Response generation timestamp","format":"date-time","type":"string"},"ok":{"description":"Success indicator","type":"boolean"},"timestamp":{"description":"Data snapshot timestamp (for state endpoint)","format":"date-time","type":"string"}},"required":["ok"],"title":"MCP API Response","type":"object"},"MCPError":{"description":"Error response with MCP-specific error codes and context","example":{"error":{"message":"Rate limit exceeded. Please retry after 60 seconds.","retry_after_ms":60000,"type":"rate_limit_exceeded"}},"properties":{"error":{"properties":{"execution_id":{"description":"Execution ID (for exec endpoint errors)","type":"string"},"message":{"description":"Human-readable error message","type":"string"},"retry_after_ms":{"description":"Retry delay for rate limit errors","type":"integer"},"type":{"description":"Error type for programmatic handling","enum":["not_found","unauthorized","forbidden","rate_limit_exceeded","invalid_tool","invalid_arguments","concurrency_limit","timeout","internal_error"],"type":"string"}},"required":["type","message"],"type":"object"}},"required":["error"],"title":"MCP Error Response","type":"object"},"MCPExecResponse":{"description":"Result of tool execution or execution plan if dry_run=true","example":{"dry_run":false,"execution_id":"exec_a1b2c3d4e5f6g7h8","result":{"details":{"cpu":"15.3%","memory":"512MB"},"status":"healthy"},"tool":"system.health"},"properties":{"dry_run":{"description":"Whether this was a dry run execution","type":"boolean"},"execution_id":{"description":"Unique execution identifier for tracking","example":"exec_a1b2c3d4e5f6g7h8","type":"string"},"plan":{"description":"Execution plan (only if dry_run=true)","properties":{"estimated_duration_ms":{"type":"integer"},"required_permissions":{"items":{"type":"string"},"type":"array"},"steps":{"items":{"type":"string"},"type":"array"}},"type":"object"},"result":{"additionalProperties":true,"description":"Actual execution result (only if dry_run=false)","type":"object"},"tool":{"description":"Tool that was executed","type":"string"}},"required":["execution_id","dry_run","tool"],"title":"MCP Execution Response","type":"object"},"CerReportRequest":{"description":"Request to generate a CER compliance report","example":{"format":"pdf","ico":"12345678","period":{"end_date":"2025-12-31","start":"2025-01-01"},"type":"cer_annual"},"properties":{"format":{"default":"json","description":"Output format for the report","enum":["html","pdf","json","xml","csv"],"type":"string"},"ico":{"description":"Company ICO for the report","pattern":"^\\d{8}$","type":"string"},"period":{"description":"Reporting period (required for annual/summary reports)","properties":{"end_date":{"example":"2025-12-31","format":"date","type":"string"},"start":{"example":"2025-01-01","format":"date","type":"string"}},"type":"object"},"type":{"description":"Type of report to generate","enum":["cer_annual","nis2_incident","due_diligence","employee_screening","risk_assessment","monitoring_summary"],"type":"string"}},"required":["type"],"title":"CER Report Generation Request","type":"object"},"CerRiskAssessmentRequest":{"description":"Request to assess risk for an entity (employee or supplier)","example":{"entity_type":"supplier","identifier":"12345678"},"properties":{"entity_type":{"description":"Type of entity to assess","enum":["employee","supplier"],"type":"string"},"identifier":{"description":"Entity identifier (ICO for suppliers, name/ID for employees)","example":"12345678","type":"string"}},"required":["identifier","entity_type"],"title":"CER Risk Assessment Request","type":"object"},"MCPStateParams":{"description":"Optional parameters for filtering state snapshot scope and detail level","properties":{"detail":{"default":"normal","description":"Level of detail to include","enum":["minimal","normal","detailed"],"example":"normal","type":"string"},"scope":{"default":"all","description":"Scope of state to include in snapshot","enum":["all","system","agents","storage","blackboard"],"example":"all","type":"string"}},"title":"MCP State Query Parameters","type":"object"},"MCPState":{"description":"Comprehensive runtime state including system metrics, agent status,\nstorage health, and blackboard activity. Supports scope filtering\nfor targeted introspection.\n","example":{"agent_status":{"active_agents":42,"executing_tasks":7},"detail":"normal","scope":"all","system_metrics":{"cpu_usage_percent":15.3,"memory_usage_mb":512.7,"process_count":847},"timestamp":"2025-01-10T14:30:00Z"},"properties":{"agent_status":{"properties":{"active_agents":{"example":42,"type":"integer"},"executing_tasks":{"example":7,"type":"integer"},"idle_agents":{"example":138,"type":"integer"},"recent_completions":{"example":234,"type":"integer"}},"type":"object"},"blackboard":{"properties":{"active_subscriptions":{"example":18,"type":"integer"},"recent_activity":{"example":15,"type":"integer"},"total_frames":{"example":1247,"type":"integer"}},"type":"object"},"detail":{"enum":["minimal","normal","detailed"],"type":"string"},"scope":{"enum":["all","system","agents","storage","blackboard"],"type":"string"},"storage_health":{"additionalProperties":{"properties":{"latency_ms":{"example":2.5,"type":"number"},"operations_per_sec":{"example":450.0,"type":"number"},"status":{"enum":["healthy","degraded","error"],"type":"string"}},"type":"object"},"type":"object"},"system_metrics":{"properties":{"cpu_usage_percent":{"example":15.3,"type":"number"},"memory_usage_mb":{"example":512.7,"type":"number"},"message_queue_len":{"example":0,"type":"integer"},"process_count":{"example":847,"type":"integer"}},"type":"object"},"timestamp":{"format":"date-time","type":"string"}},"required":["timestamp","scope","detail"],"title":"MCP Runtime State","type":"object"},"DecisionRequest":{"description":"Request body for submitting a decision to the closed-loop pipeline.","example":{"constraints":{"budget":"limited"},"context":"Series B round","problem_statement":"Evaluate the investment opportunity based on financials.","source_type":"api","structured_data":{"revenue":1000000},"submitted_by":"user@example.com","title":"Should we invest in Acme Corp?"},"properties":{"constraints":{"additionalProperties":true,"description":"Optional constraints for the decision","example":{"budget":"limited","timeline":"Q2 2026"},"nullable":true,"type":"object"},"context":{"description":"Optional additional context for the decision","example":"Series B round, $10M valuation","nullable":true,"type":"string"},"problem_statement":{"description":"Detailed problem statement for evaluation","example":"Evaluate the investment opportunity in Acme Corp based on financials and market position.","type":"string"},"source_type":{"default":"api","description":"Source of the decision request","enum":["manual","api","system"],"example":"api","type":"string"},"structured_data":{"additionalProperties":true,"description":"Optional structured data (e.g. financial metrics)","example":{"growth_rate":0.25,"revenue":1000000},"nullable":true,"type":"object"},"submitted_by":{"description":"Identifier of the submitter","example":"user@example.com","nullable":true,"type":"string"},"title":{"description":"Short title describing the decision","example":"Should we invest in Acme Corp?","type":"string"},"unstructured_data":{"description":"Optional free-form unstructured data","example":"Additional notes from analyst review","nullable":true,"type":"string"}},"required":["title","problem_statement"],"title":"Decision Request","type":"object"},"CerVettingRequest":{"description":"Request to vet a supplier for CER compliance under Law 266/2025 Sb.\nPerforms beneficial ownership analysis, financial health check, and legal status verification.\n","example":{"ico":"12345678","include_subsidiaries":true},"properties":{"ico":{"description":"Czech company registration number (ICO) - exactly 8 digits","example":"12345678","pattern":"^\\d{8}$","type":"string"},"include_subsidiaries":{"default":false,"description":"Include analysis of subsidiary companies","type":"boolean"}},"required":["ico"],"title":"CER Supplier Vetting Request","type":"object"},"MCPTool":{"description":"Complete tool specification including schemas and metadata","example":{"category":"system","description":"Get comprehensive system health status","input_schema":{"properties":{"scope":{"enum":["summary","detailed"],"type":"string"}},"type":"object"},"name":"system.health","output_schema":{"properties":{"details":{"type":"object"},"status":{"type":"string"}},"type":"object"}},"properties":{"category":{"example":"system","type":"string"},"description":{"example":"Get comprehensive system health status","type":"string"},"examples":{"items":{"properties":{"input":{"type":"object"},"name":{"type":"string"},"output":{"type":"object"}},"type":"object"},"type":"array"},"input_schema":{"description":"JSON Schema for tool input validation","type":"object"},"name":{"example":"system.health","type":"string"},"output_schema":{"description":"JSON Schema for tool output validation","type":"object"},"permissions":{"example":["mcp.read"],"items":{"type":"string"},"type":"array"}},"required":["name","description","input_schema","output_schema"],"title":"MCP Tool Definition","type":"object"},"MCPToolsRegistry":{"description":"Registry of all available tools with their specifications","properties":{"count":{"description":"Total number of tools","example":24,"type":"integer"},"tools":{"description":"Array of available tools","items":{"$ref":"#/components/schemas/MCPTool"},"type":"array"}},"required":["tools","count"],"title":"MCP Tools Registry","type":"object"},"MCPManifest":{"description":"Complete system manifest including capabilities, agents, tools, and communication channels.\nThis provides Claude Code with comprehensive system introspection data.\n","example":{"capabilities":{"agents":{"active_count":42,"categories":["osint","legal","financial","technical"],"total_count":180},"storage":{"adapters":["ets","postgresql","meilisearch"],"total_capacity_gb":500.0}},"communication":{"blackboard_frames":1247,"pubsub_topics":["agent:coordination","osint:reports"]},"system":{"environment":"dev","name":"Prismatic Platform","node_name":"prismatic@localhost","otp_release":"27.1.2","uptime_seconds":86400,"version":"0.1.0"}},"properties":{"capabilities":{"properties":{"agents":{"properties":{"active_count":{"example":42,"type":"integer"},"categories":{"example":["osint","legal","financial","technical"],"items":{"type":"string"},"type":"array"},"total_count":{"example":180,"type":"integer"}},"type":"object"},"osint":{"properties":{"providers":{"example":["eu_legal","business_registries","social_media"],"items":{"type":"string"},"type":"array"},"sources_count":{"example":27000,"type":"integer"}},"type":"object"},"storage":{"properties":{"adapters":{"example":["ets","postgresql","meilisearch"],"items":{"type":"string"},"type":"array"},"total_capacity_gb":{"example":500.0,"type":"number"}},"type":"object"}},"type":"object"},"communication":{"properties":{"active_subscriptions":{"example":18,"type":"integer"},"blackboard_frames":{"example":1247,"type":"integer"},"pubsub_topics":{"example":["agent:coordination","osint:reports","system:health"],"items":{"type":"string"},"type":"array"}},"type":"object"},"system":{"properties":{"environment":{"enum":["dev","test","prod"],"example":"dev","type":"string"},"name":{"example":"Prismatic Platform","type":"string"},"node_name":{"example":"prismatic@localhost","type":"string"},"otp_release":{"example":"27.1.2","type":"string"},"uptime_seconds":{"example":86400,"type":"integer"},"version":{"example":"0.1.0","type":"string"}},"required":["name","version","environment"],"type":"object"},"tools":{"properties":{"categories":{"example":["system","osint","agents","storage"],"items":{"type":"string"},"type":"array"},"count":{"example":24,"type":"integer"}},"type":"object"}},"required":["system","capabilities"],"title":"MCP System Manifest","type":"object"},"CerReportStatusResponse":{"description":"Current status of report generation","properties":{"error":{"description":"Error message if status is 'failed'","type":"string"},"estimated_completion":{"format":"date-time","type":"string"},"id":{"type":"string"},"progress":{"description":"Generation progress percentage","maximum":100,"minimum":0,"type":"integer"},"status":{"enum":["pending","generating","completed","failed"],"type":"string"}},"required":["id","status"],"title":"CER Report Status Response","type":"object"},"CerLegalIssue":{"description":"Legal issue identified during vetting (insolvency, court cases, etc.)","properties":{"amount":{"description":"Amount in dispute (if applicable)","format":"float","type":"number"},"case_number":{"description":"Official case reference number","type":"string"},"court":{"description":"Court handling the case","type":"string"},"currency":{"default":"CZK","type":"string"},"description":{"type":"string"},"filed_date":{"description":"Date when case was filed","format":"date","type":"string"},"status":{"description":"Current status of the issue","type":"string"},"type":{"description":"Type of legal issue","enum":["insolvency","court_case","enforcement","bankruptcy","liquidation"],"type":"string"}},"required":["type"],"title":"CER Legal Issue","type":"object"},"CerHealthResponse":{"description":"Health status of the CER compliance system","example":{"services":{"monitoring":"operational","reporting":"operational","screening":"operational","vetting":"operational"},"status":"healthy","timestamp":"2025-12-08T10:30:00Z","uptime_seconds":86400,"version":"2.0.0"},"properties":{"services":{"properties":{"monitoring":{"enum":["operational","degraded","down"],"type":"string"},"reporting":{"enum":["operational","degraded","down"],"type":"string"},"screening":{"enum":["operational","degraded","down"],"type":"string"},"vetting":{"enum":["operational","degraded","down"],"type":"string"}},"type":"object"},"status":{"description":"Overall system health status","enum":["healthy","degraded","unhealthy"],"type":"string"},"timestamp":{"format":"date-time","type":"string"},"uptime_seconds":{"description":"System uptime in seconds","type":"integer"},"version":{"description":"CER API version","example":"2.0.0","type":"string"}},"required":["status","version","services","timestamp"],"title":"CER Health Response","type":"object"},"DecisionListItem":{"description":"Summary item for decision listing.","example":{"has_decision":true,"id":"550e8400-e29b-41d4-a716-446655440000","inserted_at":"2026-04-08T10:00:00Z","source_type":"api","status":"decided","submitted_by":"user@example.com","title":"Should we invest in Acme Corp?"},"properties":{"has_decision":{"description":"Whether a decision has been made","type":"boolean"},"id":{"description":"Decision input ID","format":"uuid","type":"string"},"inserted_at":{"format":"date-time","type":"string"},"source_type":{"enum":["manual","api","system"],"type":"string"},"status":{"description":"Current status","enum":["pending","processing","decided","outcome_recorded"],"type":"string"},"submitted_by":{"nullable":true,"type":"string"},"title":{"description":"Decision title","type":"string"}},"required":["id","title","status","has_decision","inserted_at"],"title":"Decision List Item","type":"object"},"CerBatchScreeningRequest":{"description":"Request to screen multiple employees in a single batch operation","example":{"employees":[{"name":"Jan Novak","position":"IT Administrator"},{"name":"Marie Svobodova","position":"HR Manager"}],"options":{"max_concurrency":5}},"properties":{"employees":{"description":"Array of employees to screen","items":{"$ref":"#/components/schemas/CerScreeningRequest"},"maxItems":100,"minItems":1,"type":"array"},"options":{"properties":{"max_concurrency":{"default":5,"description":"Maximum concurrent screening operations","maximum":10,"minimum":1,"type":"integer"}},"type":"object"}},"required":["employees"],"title":"CER Batch Screening Request","type":"object"},"CalibrationSummary":{"description":"Aggregated calibration metrics across all decisions with per-bucket breakdown.","properties":{"buckets":{"additionalProperties":{"properties":{"count":{"type":"integer"},"mean_error":{"format":"float","type":"number"},"mean_observed":{"format":"float","type":"number"},"mean_predicted":{"format":"float","type":"number"}},"type":"object"},"description":"Per-bucket calibration breakdown","example":{"0.7-0.8":{"count":15,"mean_error":0.08,"mean_observed":0.72,"mean_predicted":0.75}},"type":"object"},"mean_absolute_error":{"description":"Mean absolute error across all events","example":0.12,"format":"float","type":"number"},"mean_delta":{"description":"Mean calibration delta (predicted - observed)","example":-0.03,"format":"float","type":"number"},"total_events":{"description":"Total number of calibration events","example":42,"type":"integer"}},"required":["total_events","mean_absolute_error","mean_delta","buckets"],"title":"Calibration Summary","type":"object"},"MirrorError":{"description":"Error response from mirror endpoint (e.g., chaos engineering drop)","example":{"chaos_config":{"delay_ms":0,"drop_rate":0.5,"jitter_ms":0,"status_override":null},"error":"Request dropped by chaos engineering","timestamp":"2025-10-11T14:30:00Z"},"properties":{"chaos_config":{"description":"Chaos configuration that triggered the error","properties":{"delay_ms":{"type":"integer"},"drop_rate":{"type":"number"},"jitter_ms":{"type":"integer"},"status_override":{"nullable":true,"type":"integer"}},"type":"object"},"error":{"description":"Error message","example":"Request dropped by chaos engineering","type":"string"},"timestamp":{"description":"Error timestamp (UTC)","format":"date-time","type":"string"}},"required":["error","chaos_config","timestamp"],"title":"MirrorError","type":"object"},"CerReportResponse":{"description":"Generated CER compliance report with content or file reference","example":{"entity_id":"12345678","format":"pdf","generated_at":"2025-12-08T10:30:00Z","id":"RPT-20251208-123456","path":"/reports/12345678/RPT-20251208-123456.pdf","period_from":"2025-01-01","period_to":"2025-12-31","status":"completed","type":"cer_annual"},"properties":{"content":{"additionalProperties":true,"description":"Report content (for JSON format)","type":"object"},"entity_count":{"description":"Number of entities included in the report","type":"integer"},"entity_id":{"description":"ICO or entity identifier for the report","type":"string"},"format":{"description":"Output format","type":"string"},"generated_at":{"format":"date-time","type":"string"},"id":{"description":"Unique report identifier","example":"RPT-20251208-123456","type":"string"},"metadata":{"additionalProperties":true,"type":"object"},"path":{"description":"File path for downloadable reports","type":"string"},"period_from":{"description":"Report period start date","format":"date","type":"string"},"period_to":{"description":"Report period end date","format":"date","type":"string"},"status":{"description":"Report generation status","enum":["pending","generating","completed","failed"],"type":"string"},"type":{"description":"Report type","type":"string"}},"required":["id","type","status","generated_at"],"title":"CER Report Response","type":"object"},"CerRateLimitError":{"description":"Error response when rate limit is exceeded","properties":{"code":{"example":"CER_RATE_001","type":"string"},"error":{"example":"Too Many Requests","type":"string"},"message":{"type":"string"},"retry_after":{"description":"Seconds to wait before retrying","type":"integer"}},"required":["error","message","code","retry_after"],"title":"CER Rate Limit Error","type":"object"},"CerScreeningRequest":{"description":"Request to screen an employee for CER compliance under Law 266/2025 Sb.\nPerforms identity verification, criminal record checks, and OSINT profiling.\n","example":{"access_level":"critical","birth_date":"1985-03-15","email":"jan.novak@company.cz","ico":"12345678","name":"Jan Novak","position":"IT Administrator"},"properties":{"access_level":{"description":"Security access level for the position","enum":["public","internal","confidential","critical"],"example":"critical","type":"string"},"birth_date":{"description":"Date of birth in ISO 8601 format (YYYY-MM-DD)","example":"1985-03-15","format":"date","type":"string"},"email":{"description":"Work email address for OSINT correlation","example":"jan.novak@company.cz","format":"email","type":"string"},"ico":{"description":"Employer's Czech company registration number (ICO)","example":"12345678","pattern":"^\\d{8}$","type":"string"},"name":{"description":"Full name of the employee to screen","example":"Jan Novak","maxLength":255,"minLength":2,"type":"string"},"position":{"description":"Job position or role within the organization","example":"IT Administrator","type":"string"}},"required":["name"],"title":"CER Employee Screening Request","type":"object"}},"securitySchemes":{"ApiToken":{"bearerFormat":"prism_xxx","description":"Opaque API token with prefix","scheme":"bearer","type":"http"},"CerApiKey":{"description":"CER API Key for Critical Entity Resilience endpoints. Format: cer_xxx...","in":"header","name":"X-API-Key","type":"apiKey"},"JWT":{"bearerFormat":"JWT","description":"Optional signed JWT token","scheme":"bearer","type":"http"},"SessionCookie":{"description":"Session cookie for web authentication (read-only in API docs)","in":"cookie","name":"_prismatic_key","type":"apiKey"}}},"externalDocs":{"description":"Prismatic Platform Documentation","url":"https://github.com/your-org/prismatic-platform/blob/main/README.md"},"info":{"contact":{"name":"Prismatic Platform Team","url":"https://github.com/your-org/prismatic-platform"},"description":"**Comprehensive Intelligence Platform API**\n\nThe Prismatic Platform provides a unified API for:\n\n## 🔍 OSINT Intelligence Operations\n- **27,000+ EU Data Sources**: Comprehensive European intelligence coverage\n- **Real-time Analysis**: Email, domain, IP, social media investigations\n- **Multi-engine OSINT**: Coordinated search across specialized platforms\n- **Czech Legal Intelligence**: Business registry, court cases, enforcement\n\n## 🎯 Model Context Protocol (MCP)\n- **Claude Code Integration**: Direct introspection and tool execution\n- **State Management**: Runtime state inspection and manipulation\n- **Event Streaming**: Real-time development workflow integration\n- **Tool Registry**: Dynamic tool discovery and execution\n\n## 🏢 Due Diligence & M&A Intelligence\n- **Business Intelligence**: Corporate structure and financial analysis\n- **Risk Assessment**: Comprehensive risk profiling and compliance\n- **Asset Discovery**: Hidden asset identification and valuation\n- **Cross-border Analysis**: International business relationship mapping\n\n## ⚡ High-Performance Architecture\n- **Elixir/Phoenix**: Fault-tolerant, concurrent processing\n- **Real-time Updates**: Phoenix LiveView and WebSocket integration\n- **Multi-adapter Storage**: ETS, PostgreSQL, Meilisearch, Graph DB\n- **Agent Coordination**: 550+ specialized AI agents\n\n## 🔒 Security & Compliance\n- **GDPR Compliant**: Privacy-first intelligence gathering\n- **Rate Limiting**: Intelligent throttling and backpressure\n- **Audit Logging**: Comprehensive operation tracking\n- **Role-based Access**: Granular permission system\n\n## 📊 Business Intelligence\n- **Real-time Dashboards**: Chart.js integration with live metrics\n- **Performance Analytics**: Latency, throughput, success rates\n- **Capacity Planning**: Resource utilization and scaling insights\n- **Health Monitoring**: System-wide health and alert management\n\nAll endpoints follow REST principles with comprehensive error handling,\nrate limiting, and detailed response schemas for reliable integration.\n","license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"},"title":"Prismatic Platform API","version":"0.6.0"},"openapi":"3.0.0","paths":{"/api/mcp/blackboard/get":{"get":"ok"},"/api/cer/reports/{id}/status":{"get":{"callbacks":{},"description":"Check the generation status and progress of a compliance report.","operationId":"PrismaticWeb.API.CerController.get_report_status","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"nullable":true,"type":"string"},"estimated_completion":{"format":"date-time","type":"string"},"id":{"type":"string"},"progress":{"type":"integer"},"status":{"type":"string"}},"type":"object"}}},"description":"Report status"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Get report generation status","tags":["CER Compliance","CER Compliance"]}},"/api/mcp/agent/list":{"get":{"callbacks":{},"description":"Get list of all 550+ specialized agents with metadata","operationId":"PrismaticWeb.MCPAgentController.agent_list (2)","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Agents list retrieved successfully"}},"summary":"List all available agents","tags":[]}},"/api/agents/classifications":{"get":{"callbacks":{},"description":"List all unique agent classification types available in the registry.","operationId":"PrismaticWeb.AgentRegistryController.classifications","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"classifications":{"items":{"type":"string"},"type":"array"}},"type":"object"},"meta":{"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Classification list"}},"summary":"List agent classifications","tags":["Agents","Agents"]}},"/api/mcp/pub":{"post":"ok"},"/api/cer/reports/{id}":{"delete":{"callbacks":{},"description":"Delete a specific compliance report by its ID.","operationId":"PrismaticWeb.API.CerController.delete_report","parameters":[{"description":"Report ID (e.g. RPT-abc123)","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"type":"boolean"},"deleted_at":{"format":"date-time","type":"string"},"id":{"type":"string"}},"type":"object"}}},"description":"Deletion confirmation"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Delete a report","tags":["CER Compliance","CER Compliance"]},"get":{"callbacks":{},"description":"Retrieve a specific compliance report by its ID.","operationId":"PrismaticWeb.API.CerController.get_report","parameters":[{"description":"Report ID (e.g. RPT-abc123)","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Report details"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Get report by ID","tags":["CER Compliance","CER Compliance"]}},"/api/v1/decisions/{id}":{"get":{"callbacks":{},"description":"Returns full decision trace including input, hypotheses, evaluations, decision, outcome, and calibration events.","operationId":"PrismaticWeb.API.DecisionCoreController.show","parameters":[{"description":"Decision input ID (UUID)","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionTrace"}},"description":"Decision trace"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Get decision trace","tags":["Decisions"]}},"/api/agents":{"get":{"callbacks":{},"description":"Lists all registered agents with optional filtering by classification, tier, status, or search query.","operationId":"PrismaticWeb.AgentRegistryController.index","parameters":[{"description":"Filter by agent classification","in":"query","name":"classification","required":false,"schema":{"type":"string"}},{"description":"Filter by tier (1, 2, 3)","in":"query","name":"tier","required":false,"schema":{"type":"string"}},{"description":"Filter by status (e.g. ACTIVE)","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Search by name, specialization, or capabilities","in":"query","name":"search","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"agents":{"items":{"type":"object"},"type":"array"},"filters_applied":{"type":"object"},"total":{"type":"integer"}},"type":"object"},"meta":{"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Agent list"}},"summary":"List all registered agents","tags":["Agents","Agents"]}},"/api/agents/stats":{"get":{"callbacks":{},"description":"Get aggregate statistics about the agent registry including breakdowns by classification, tier, and status.","operationId":"PrismaticWeb.AgentRegistryController.stats","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"breakdown":{"type":"object"},"statistics":{"type":"object"}},"type":"object"},"meta":{"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Registry statistics"}},"summary":"Get agent registry statistics","tags":["Agents","Agents"]}},"/api/mirror/echo":{},"/api/mcp/resources":{"get":{"callbacks":{},"description":"Get available blackboard frames, societies, rooms, and topics","operationId":"PrismaticWeb.MCPPubSubController.resources (2)","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Resources retrieved successfully"}},"summary":"List MCP Resources","tags":[]}},"/api/v1/billing/webhooks/simplified":{"post":"ok"},"/api/cer/screenings/{id}":{"get":{"callbacks":{},"description":"Retrieve a previously completed employee screening result by its ID.","operationId":"PrismaticWeb.API.CerController.get_screening","parameters":[{"description":"Screening result ID (e.g. SCR-abc123)","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"compliant":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"risk_score":{"type":"number"}},"type":"object"}}},"description":"Screening result"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Get screening result by ID","tags":["CER Compliance","CER Compliance"]}},"/api/health/ready":{"get":{"callbacks":{},"operationId":"PrismaticWeb.Admin.DeployController.get_health_ready","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"checks":{"items":{"properties":{"component":{"type":"string"},"response_time_ms":{"type":"integer"},"status":{"type":"string"}},"type":"object"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"System ready"},"503":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"status":{"type":"string"}},"type":"object"}}},"description":"System not ready"}},"summary":"Health check for deployment readiness","tags":["Deployment Management"]}},"/api/cer/health":{"get":{"callbacks":{},"description":"Returns health status of all CER subsystems including screening, vetting, monitoring, and reporting services.","operationId":"PrismaticWeb.API.CerController.health","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"services":{"type":"object"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"uptime_seconds":{"type":"integer"},"version":{"type":"string"}},"type":"object"}}},"description":"Health status"}},"summary":"Get CER system health","tags":["CER Compliance","CER Compliance"]}},"/api/osint/reports/{id}/status":{"get":{"callbacks":{},"description":"Returns the current execution status and progress of an OSINT investigation, including estimated completion time.","operationId":"PrismaticWeb.OsintApiController.get_status","parameters":[{"description":"Investigation ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"properties":{"estimated_completion":{"format":"date-time","type":"string"},"id":{"type":"string"},"progress":{"type":"integer"},"started_at":{"format":"date-time","type":"string"},"status":{"type":"string"}},"type":"object"}},"type":"object"}}},"description":"Investigation status"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"id":{"type":"string"}},"type":"object"}}},"description":"Investigation not found"}},"summary":"Get investigation status","tags":["OSINT","OSINT"]}},"/api/mcp/agent/get":{"get":{"callbacks":{},"description":"Retrieve metadata for a specific agent type","operationId":"PrismaticWeb.MCPAgentController.agent_get (2)","parameters":[{"description":"Agent type","in":"query","name":"agent_type","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Agent metadata retrieved successfully"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Agent not found"}},"summary":"Get agent metadata","tags":[]}},"/api/cer/reports/upload":{"post":{"callbacks":{},"description":"Upload a CER audit report from local execution. Requires Bearer token authentication via CER_UPLOAD_API_KEY.","operationId":"PrismaticWeb.API.CerController.upload_report","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"audit_type":{"description":"Audit type","enum":["supplier_vetting","employee_screening"],"type":"string"},"case_id":{"description":"Case ID","type":"string"},"depth":{"description":"Audit depth","type":"string"},"html_report":{"description":"HTML report content","type":"string"},"ico":{"description":"Company ICO","type":"string"},"json_report":{"description":"JSON report data","type":"object"},"metadata":{"description":"Report metadata including risk_level, risk_score, compliant, company_name","type":"object"}},"required":["case_id","audit_type","html_report","metadata"],"type":"object"}}},"description":"Report upload payload","required":false},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"case_id":{"type":"string"},"report_id":{"type":"string"},"status":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Upload confirmation"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Invalid token"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Upload CER audit report","tags":["CER Compliance","CER Compliance"]}},"/api/osint/reports/{id}/export/{format}":{"get":{"callbacks":{},"description":"Exports an OSINT report in the specified format (json, pdf, csv). Returns the file as a download.","operationId":"PrismaticWeb.OsintApiController.export_report","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Export format (json, pdf, csv)","in":"path","name":"format","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Exported file content"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unsupported format"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Report not found"}},"summary":"Export OSINT report","tags":["OSINT","OSINT"]}},"/api/mcp/unsub":{"post":"ok"},"/api/mcp/tools/{name}":{"get":"ok"},"/api/cer/vettings/{ico}":{"get":{"callbacks":{},"description":"Retrieve a supplier vetting result. Supports both ICO format (8 digits) and vetting ID format (VET-YYYYMMDD-NNNNNN).","operationId":"PrismaticWeb.API.CerController.get_vetting","parameters":[{"description":"ICO (8 digits) or vetting ID (VET-*)","in":"path","name":"ico","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"company_name":{"type":"string"},"compliant":{"type":"boolean"},"ico":{"type":"string"},"risk_score":{"type":"number"}},"type":"object"}}},"description":"Vetting result"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Invalid format"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Get vetting result by ICO or ID","tags":["CER Compliance","CER Compliance"]}},"/api/v1/decisions":{"get":{"callbacks":{},"description":"Lists decision inputs with optional status filter.","operationId":"PrismaticWeb.API.DecisionCoreController.index","parameters":[{"description":"Filter by status (pending, processing, decided, outcome_recorded)","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Max results (default 50)","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionListItem","type":"array"}},"type":"object"}}},"description":"Decision list"}},"summary":"List decision inputs","tags":["Decisions"]},"post":{"callbacks":{},"description":"Accepts a decision input, generates hypotheses, evaluates them, selects a decision deterministically, and returns the full trace.","operationId":"PrismaticWeb.API.DecisionCoreController.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionRequest"}},"description":"Decision request","required":false},"responses":{"201":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.DecisionTrace"}},"description":"Decision trace"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Invalid input"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Submit decision and run pipeline","tags":["Decisions"]}},"/api/mirror/stream":{"get":{"callbacks":{},"description":"Server-Sent Events (SSE) stream that echoes request data repeatedly.\n\nEstablishes a persistent connection and sends mirror events at configurable intervals.\nEach event contains complete request information with chaos engineering applied.\n\n**Use cases**:\n- Real-time connection testing\n- Load testing with persistent connections\n- Chaos engineering validation\n- Network resilience testing\n\n**SSE Event Format**:\n```\nevent: mirror\ndata: {\"method\": \"GET\", \"path\": \"/api/mirror/stream\", ...}\n\nevent: heartbeat\ndata: {\"timestamp\": \"2025-10-11T13:00:00Z\", \"uptime_ms\": 5000}\n```\n","operationId":"PrismaticWeb.MirrorController.stream","parameters":[{"description":"Event interval in milliseconds (100-10000, default: 1000)","example":1000,"in":"query","name":"interval_ms","required":false,"schema":{"type":"integer"}},{"description":"Number of events to send (1-100, default: unlimited)","example":10,"in":"query","name":"count","required":false,"schema":{"type":"integer"}},{"description":"Chaos delay per event (0-5000)","example":500,"in":"query","name":"chaos_delay_ms","required":false,"schema":{"type":"integer"}},{"description":"Chaos jitter per event (0-2000)","example":200,"in":"query","name":"chaos_jitter_ms","required":false,"schema":{"type":"integer"}},{"description":"Event drop probability 0.0-1.0","example":0.1,"in":"query","name":"chaos_drop_rate","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"text/event-stream":{"schema":{"type":"string"}}},"description":"SSE stream established"}},"summary":"SSE Mirror Stream","tags":["Diagnostics"]}},"/api/mcp/storage/health":{"get":{"callbacks":{},"description":"Returns overall storage system health including adapter statuses, response times, and key performance metrics.","operationId":"PrismaticWeb.ApiController.health (4)","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"adapters":{"items":{"type":"object"},"type":"array"},"metrics":{"properties":{"average_latency":{"type":"string"},"error_rate":{"type":"number"},"operations_per_second":{"type":"integer"},"total_operations":{"type":"integer"}},"type":"object"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"System health status"}},"summary":"Storage system health","tags":["System","System"]}},"/api/cer/screen":{"post":{"callbacks":{},"description":"Screen an individual employee against CER (Law 266/2025 Sb.) compliance requirements. Checks sanctions lists, criminal records, and risk indicators.","operationId":"PrismaticWeb.API.CerController.screen","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"access_level":{"description":"Access level: critical, standard, limited","type":"string"},"birth_date":{"description":"Date of birth (ISO 8601)","format":"date","type":"string"},"email":{"description":"Employee email","type":"string"},"ico":{"description":"Company ICO (8 digits)","type":"string"},"name":{"description":"Employee full name","type":"string"},"position":{"description":"Job position","type":"string"}},"required":["name"],"type":"object"}}},"description":"Employee screening parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"compliant":{"type":"boolean"},"confidence_level":{"type":"number"},"findings":{"items":{"type":"object"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"risk_level":{"type":"string"},"risk_score":{"type":"number"},"screened_at":{"format":"date-time","type":"string"},"sources_checked":{"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"Screening result"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Screen employee for CER compliance","tags":["CER Compliance","CER Compliance"]}},"/api/v1/decisions/calibration":{"get":{"callbacks":{},"description":"Returns calibration metrics across all decisions with per-bucket breakdown.","operationId":"PrismaticWeb.API.DecisionCoreController.calibration","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.CalibrationSummary"}},"description":"Calibration summary"}},"summary":"Get calibration summary","tags":["Decisions"]}},"/api/mcp/blackboard/query":{"post":{"callbacks":{},"description":"Retrieve messages from Blackboard frame with filtering and ordering","operationId":"PrismaticWeb.MCPBlackboardController.blackboard_query (2)","parameters":[{"description":"Blackboard frame/namespace","in":"query","name":"frame","required":true,"schema":{"type":"string"}},{"description":"Filter by priority level","in":"query","name":"priority","required":false,"schema":{"enum":["low","normal","high","critical"],"type":"string"}},{"description":"Maximum number of messages","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Messages retrieved successfully"}},"summary":"Query Blackboard with filters","tags":[]}},"/api/mcp/state":{"get":{"callbacks":{},"description":"Returns comprehensive runtime state for system monitoring and debugging.\n\nProvides real-time system state including:\n- **System Metrics**: CPU usage, memory consumption, process counts\n- **Agent Status**: Active agents, executing tasks, recent completions\n- **Storage Health**: Adapter status, latency, operations per second\n- **Blackboard Activity**: Frame counts, subscriptions, recent activity\n\n**Scope Filtering**: Use `scope` parameter to limit response:\n- `all` (default): Complete system state\n- `system`: Only system metrics\n- `agents`: Only agent status\n- `storage`: Only storage health\n- `blackboard`: Only blackboard state\n\n**Detail Levels**: Use `detail` parameter to control verbosity:\n- `minimal`: Basic status indicators only\n- `normal` (default): Standard metrics\n- `detailed`: Full diagnostic information\n\n**No Caching**: Always returns fresh data for accurate monitoring.\n","operationId":"PrismaticWeb.MCPProtocolController.state (2)","parameters":[{"description":"Scope of state to include","in":"query","name":"scope","required":false,"schema":{"default":"all","enum":["all","system","agents","storage","blackboard"],"type":"string"}},{"description":"Level of detail to include","in":"query","name":"detail","required":false,"schema":{"default":"normal","enum":["minimal","normal","detailed"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPResponse"}}},"description":"Runtime state retrieved successfully"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Failed to generate state snapshot"}},"summary":"Get Runtime State Snapshot","tags":["MCP"]}},"/api/agents/health":{"get":{"callbacks":{},"description":"Check health status of the agent registry system including active/inactive agent counts.","operationId":"PrismaticWeb.AgentRegistryController.health","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"agents_active":{"type":"integer"},"agents_inactive":{"type":"integer"},"agents_total":{"type":"integer"},"health":{"type":"string"},"last_check":{"format":"date-time","type":"string"}},"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Health status"}},"summary":"Agent registry health check","tags":["Agents","Agents"]}},"/api/osint/reports/{id}":{"delete":{"callbacks":{},"description":"Permanently deletes an OSINT investigation report by ID.","operationId":"PrismaticWeb.OsintApiController.delete_report","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Deletion confirmation"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"id":{"type":"string"}},"type":"object"}}},"description":"Report not found"},"422":{"content":{"application/json":{"schema":{"properties":{"errors":{"type":"object"}},"type":"object"}}},"description":"Deletion failed"}},"summary":"Delete OSINT report","tags":["OSINT","OSINT"]},"get":{"callbacks":{},"description":"Returns detailed information for a specific OSINT investigation report.","operationId":"PrismaticWeb.OsintApiController.get_report","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"report":{"type":"object"}},"type":"object"}}},"description":"Report details"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"id":{"type":"string"}},"type":"object"}}},"description":"Report not found"}},"summary":"Get OSINT report by ID","tags":["OSINT","OSINT"]},"put":{"callbacks":{},"description":"Updates description, notes, and tags for an existing OSINT report.","operationId":"PrismaticWeb.OsintApiController.update_report","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"type":"string"},"notes":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"}}},"description":"Report update fields","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"report":{"type":"object"}},"type":"object"}}},"description":"Updated report"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"id":{"type":"string"}},"type":"object"}}},"description":"Report not found"},"422":{"content":{"application/json":{"schema":{"properties":{"errors":{"type":"object"}},"type":"object"}}},"description":"Validation errors"}},"summary":"Update OSINT report metadata","tags":["OSINT","OSINT"]}},"/api/mcp/events":{"get":{"callbacks":{},"description":"Real-time event stream using Server-Sent Events (SSE) protocol.\n\n**Event Stream Features**:\n- **Real-time Updates**: Live system events via Phoenix.PubSub multiplexing\n- **Reconnection Support**: Last-Event-ID header for seamless reconnection\n- **Heartbeat Keepalive**: Automatic keepalive every 15 seconds\n- **Event Filtering**: Optional filtering by event type or source\n- **Proper SSE Format**: Standard id/event/data format compliance\n\n**Available Event Types**:\n- `system.*`: System health, metrics, status changes\n- `agent.*`: Agent lifecycle, task execution, coordination\n- `storage.*`: Storage operations, health, performance\n- `osint.*`: Intelligence operations, report generation\n- `mcp.*`: MCP-specific events, tool executions\n\n**Connection Management**:\n- Automatic client ID assignment for tracking\n- Connection cleanup on client disconnect\n- Graceful handling of network interruptions\n\n**Headers Required**:\n- `Accept: text/event-stream` for proper SSE handling\n- `Last-Event-ID: <id>` for reconnection (optional)\n\n**CORS**: Enabled for cross-origin access during development.\n","operationId":"PrismaticWeb.MCPProtocolController.events","parameters":[{"description":"Event type filter (e.g., 'system', 'agent.*', 'mcp.exec')","in":"query","name":"filter","required":false,"schema":{"example":"system.*","type":"string"}}],"responses":{"200":{"content":{"text/event-stream":{"schema":{"description":"Server-Sent Events stream","type":"string"}}},"description":"Event stream started"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Failed to start event stream"}},"summary":"Event Stream (Server-Sent Events)","tags":["MCP"]}},"/api/mcp/agents/health":{"get":{"callbacks":{},"description":"Get health status of MCP agent subsystem","operationId":"PrismaticWeb.MCPAgentController.health","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Health status"}},"summary":"Agent subsystem health check","tags":[]}},"/api/mcp/exec":{"post":{"callbacks":{},"description":"Execute authorized tools with comprehensive audit logging and security controls.\n\n**Execution Process**:\n1. **Validation**: Tool name and arguments validated against registry\n2. **Authorization**: Permissions checked for tool execution\n3. **Concurrency Control**: Maximum 4 concurrent executions enforced\n4. **Audit Logging**: All attempts logged with full context\n5. **Execution**: Tool executed with timeout and monitoring\n6. **Response**: Results or error returned with execution ID\n\n**Dry Run Mode**: Set `dry_run: true` to get execution plan without running.\nReturns estimated steps, duration, and required permissions.\n\n**Security Features**:\n- Tool whitelist validation\n- Permission-based authorization\n- Rate limiting and concurrency controls\n- Complete audit trail with caller information\n- Request/response validation against schemas\n\n**Timeout Configuration**: Default 30 seconds, maximum 5 minutes.\n**Execution ID**: Unique identifier returned for tracking and auditing.\n","operationId":"PrismaticWeb.MCPProtocolController.exec","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPExecRequest"}}},"description":"Tool execution request","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPExecResponse"}}},"description":"Tool executed successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Invalid tool or arguments"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Insufficient permissions"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Tool not found"},"408":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Execution timed out"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Concurrency limit reached"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Execution failed"}},"summary":"Execute Tool","tags":["MCP"]}},"/api/mcp/describe":{"get":{"callbacks":{},"description":"Returns comprehensive system manifest for Claude Code introspection.\n\nProvides complete system overview including:\n- **System Information**: Version, environment, node details, uptime\n- **Agent Capabilities**: 550+ agents, categories, active status\n- **Storage Adapters**: Available backends and capacity information\n- **OSINT Sources**: 27,000+ EU data sources and provider types\n- **Communication Channels**: PubSub topics, blackboard frames\n- **Tool Registry**: Available tools count and categories\n\nThis endpoint enables Claude Code to understand the full system architecture\nand capabilities for intelligent development assistance.\n\n**Caching**: Response cached for 60 seconds to optimize performance.\n**Authentication**: Required when auth is enabled in configuration.\n**Rate Limiting**: Subject to 120 requests/minute default limit.\n","operationId":"PrismaticWeb.MCPProtocolController.describe","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPResponse"}}},"description":"System manifest retrieved successfully"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Failed to generate manifest"}},"summary":"Get System Manifest","tags":["MCP"]}},"/api/mcp/analytics/health":{"get":{"callbacks":{},"description":"Returns overall storage system health including adapter statuses, response times, and key performance metrics.","operationId":"PrismaticWeb.ApiController.health (3)","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"adapters":{"items":{"type":"object"},"type":"array"},"metrics":{"properties":{"average_latency":{"type":"string"},"error_rate":{"type":"number"},"operations_per_second":{"type":"integer"},"total_operations":{"type":"integer"}},"type":"object"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"System health status"}},"summary":"Storage system health","tags":["System","System"]}},"/api/mcp/handshake":{"post":"ok"},"/api/osint/analyze/{type}":{"post":{"callbacks":{},"description":"Starts a new OSINT investigation of the specified type against a target. Supported types: email, domain, ip, text, phone, social, bulk.","operationId":"PrismaticWeb.OsintApiController.start_analysis","parameters":[{"description":"Analysis type (email, domain, ip, text, phone, social, bulk)","in":"path","name":"type","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Optional description of the analysis","type":"string"},"options":{"description":"Additional options (e.g. profile: stealth|balanced|comprehensive|aggressive)","type":"object"},"target":{"description":"Investigation target (email, domain, IP, etc.)","type":"string"}},"required":["target"],"type":"object"}}},"description":"Analysis parameters","required":false},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"analysis":{"properties":{"created_at":{"format":"date-time","type":"string"},"estimated_completion":{"format":"date-time","type":"string"},"id":{"type":"string"},"progress":{"type":"integer"},"status":{"type":"string"},"target":{"type":"string"},"type":{"type":"string"}},"type":"object"},"message":{"type":"string"}},"type":"object"}}},"description":"Analysis started"},"400":{"content":{"application/json":{"schema":{"properties":{"errors":{"type":"object"}},"type":"object"}}},"description":"Validation errors"}},"summary":"Start OSINT analysis","tags":["OSINT","OSINT"]}},"/api/v1/decisions/{id}/outcomes":{"post":{"callbacks":{},"description":"Records a real-world outcome for a decision and triggers calibration computation.","operationId":"PrismaticWeb.API.DecisionCoreController.record_outcome","parameters":[{"description":"Decision input ID (UUID)","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.OutcomeRequest"}},"description":"Outcome data","required":false},"responses":{"201":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Schemas.DecisionCoreSchemas.OutcomeResponse"}},"description":"Outcome with calibration"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Attach outcome to decision","tags":["Decisions"]}},"/api/mcp/osint/health":{"get":{"callbacks":{},"description":"Returns overall storage system health including adapter statuses, response times, and key performance metrics.","operationId":"PrismaticWeb.ApiController.health (2)","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"adapters":{"items":{"type":"object"},"type":"array"},"metrics":{"properties":{"average_latency":{"type":"string"},"error_rate":{"type":"number"},"operations_per_second":{"type":"integer"},"total_operations":{"type":"integer"}},"type":"object"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"System health status"}},"summary":"Storage system health","tags":["System","System"]}},"/api/v1/billing/webhooks/credits":{"post":{"callbacks":{},"description":"Processes webhook events from payment providers when credit purchases are completed.\n\nThis endpoint uses idempotency to handle duplicate webhook deliveries gracefully.\nThe `provider_event_id` is used as the idempotency key, leveraging the unique\nindex on `credit_transactions.idempotency_key` to prevent duplicate processing.\n\n## Security\n\nThe endpoint verifies the webhook signature based on the provider specified in\nthe `X-Webhook-Provider` header. Each provider has its own signature verification\nmethod.\n","operationId":"PrismaticWeb.Api.V1.CreditWebhookController.credits","parameters":[{"description":"Webhook signature for verification","in":"header","name":"X-Webhook-Signature","required":true,"schema":{"type":"string"}},{"description":"Payment provider identifier","in":"header","name":"X-Webhook-Provider","required":true,"schema":{"enum":["dodo","stripe","paddle"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Api.V1.CreditWebhookController.CreditWebhookRequest"}},"description":"Credit webhook payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":"Elixir.PrismaticWeb.Api.V1.CreditWebhookController.CreditWebhookResponse"}},"description":"Webhook processed successfully"},"400":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Invalid request or signature"},"500":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Internal server error"}},"summary":"Process credit purchase webhook","tags":["Webhooks"]}},"/api/mcp/sub":{"post":"ok"},"/api/cer/reports":{"get":{"callbacks":{},"description":"List all compliance reports with optional filtering by ICO, type, and pagination.","operationId":"PrismaticWeb.API.CerController.list_reports","parameters":[{"description":"Filter by company ICO","in":"query","name":"ico","required":false,"schema":{"type":"string"}},{"description":"Filter by report type","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"Max results (1-100)","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"Page number","in":"query","name":"page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"page":{"type":"integer"},"reports":{"items":{"type":"object"},"type":"array"},"total":{"type":"integer"}},"type":"object"}}},"description":"Report list"}},"summary":"List compliance reports","tags":["CER Compliance","CER Compliance"]},"post":{"callbacks":{},"description":"Generate a CER compliance report for an entity. Supports annual, NIS2 incident, due diligence, and other report types.","operationId":"PrismaticWeb.API.CerController.generate_report","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"format":{"description":"Output format","enum":["json","pdf","html"],"type":"string"},"ico":{"description":"Company ICO","type":"string"},"period":{"properties":{"end":{"format":"date","type":"string"},"start":{"format":"date","type":"string"}},"type":"object"},"type":{"description":"Report type","enum":["cer_annual","nis2_incident","due_diligence","employee_screening","risk_assessment","monitoring_summary"],"type":"string"}},"required":["type"],"type":"object"}}},"description":"Report generation parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"content":{"type":"object"},"generated_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"type":{"type":"string"}},"type":"object"}}},"description":"Generated report"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Generate compliance report","tags":["CER Compliance","CER Compliance"]}},"/api/cer/risk":{"post":{"callbacks":{},"description":"Perform risk assessment for an employee or supplier entity. Returns risk score, factors, and compliance recommendations.","operationId":"PrismaticWeb.API.CerController.assess_risk","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"entity_type":{"description":"Type of entity","enum":["employee","supplier"],"type":"string"},"identifier":{"description":"Entity identifier (ICO or employee ID)","type":"string"}},"required":["identifier","entity_type"],"type":"object"}}},"description":"Risk assessment parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"compliant":{"type":"boolean"},"factors":{"items":{"type":"object"},"type":"array"},"level":{"type":"string"},"recommendations":{"items":{"type":"string"},"type":"array"},"score":{"type":"number"}},"type":"object"}}},"description":"Risk assessment"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Assess entity risk","tags":["CER Compliance","CER Compliance"]}},"/api/cer/reports/{id}/download/{format}":{"get":{"callbacks":{},"description":"Download a compliance report file in the specified format (pdf, html, json, xml, csv).","operationId":"PrismaticWeb.API.CerController.download_report","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Download format: pdf, html, json, xml, csv","in":"path","name":"format","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Report file"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Format not available"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"summary":"Download report in specific format","tags":["CER Compliance","CER Compliance"]}},"/api/mcp/blackboard/put":{"post":"ok"},"/api/cer/vet":{"post":{"callbacks":{},"description":"Vet a supplier entity against CER compliance requirements using ICO lookup. Checks beneficial owners, legal issues, and financial health.","operationId":"PrismaticWeb.API.CerController.vet","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ico":{"description":"Company ICO (8 digits)","type":"string"},"include_subsidiaries":{"description":"Include subsidiary analysis","type":"boolean"}},"required":["ico"],"type":"object"}}},"description":"Supplier vetting parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"beneficial_owners":{"items":{"type":"object"},"type":"array"},"company_name":{"type":"string"},"compliant":{"type":"boolean"},"financial_health":{"type":"object"},"ico":{"type":"string"},"legal_issues":{"items":{"type":"object"},"type":"array"},"risk_level":{"type":"string"},"risk_score":{"type":"number"},"vetted_at":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Vetting result"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"}},"summary":"Vet supplier for CER compliance","tags":["CER Compliance","CER Compliance"]}},"/api/mcp/agent/invoke":{"post":"ok"},"/api/mcp/jsonrpc":{"post":{"callbacks":{},"description":"Complete Model Context Protocol implementation via JSON-RPC 2.0.\n\n**Protocol Specification**: https://modelcontextprotocol.io\n\nThis endpoint exposes ALL Elixir/BEAM capabilities through MCP protocol:\n- **Tools** - 22+ tools including introspection, blackboard, agents, storage\n- **Resources** - Context resources for LLM assistance\n- **Prompts** - 27k+ prompt library integration\n- **Sampling** - LLM integration via Orchestrator\n- **Introspection** - Full BEAM VM capabilities (:code, :beam_lib, etc.)\n\n**Supported Methods**:\n- `initialize` - Start MCP session with capability negotiation\n- `ping` - Health check\n- `tools/list` - Get all available tools\n- `tools/call` - Execute a tool\n- `introspect/modules` - List all loaded Elixir/Erlang modules\n- `introspect/module/analyze` - Deep module analysis\n- `introspect/supervision_tree` - Get supervision hierarchy\n- `introspect/processes` - List GenServer processes\n- `introspect/dependencies` - Module dependency graph\n- `introspect/code_path` - Code path and application info\n\n**JSON-RPC 2.0 Format**:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/list\",\n  \"params\": {}\n}\n```\n\n**Response**:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"result\": {\"tools\": [...]}\n}\n```\n\n**Error Response**:\n```json\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"error\": {\n    \"code\": -32601,\n    \"message\": \"Method not found\"\n  }\n}\n```\n","operationId":"PrismaticWeb.MCPProtocolController.jsonrpc","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"example":{"id":1,"jsonrpc":"2.0","method":"tools/list","params":{}},"properties":{"id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"jsonrpc":{"enum":["2.0"],"type":"string"},"method":{"example":"tools/list","type":"string"},"params":{"type":"object"}},"required":["jsonrpc","method"],"type":"object"}}},"description":"JSON-RPC 2.0 request","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"integer"},"data":{"type":"object"},"message":{"type":"string"}},"type":"object"},"id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"jsonrpc":{"type":"string"},"result":{"type":"object"}},"required":["jsonrpc"],"type":"object"}}},"description":"JSON-RPC 2.0 response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Invalid JSON-RPC 2.0 request"}},"summary":"JSON-RPC 2.0 Endpoint (Full MCP Protocol)","tags":["MCP"]}},"/api/cer/screen/batch":{"post":{"callbacks":{},"description":"Screen multiple employees for CER compliance in a single batch request with configurable concurrency.","operationId":"PrismaticWeb.API.CerController.screen_batch","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"employees":{"description":"List of employee objects","items":{"type":"object"},"type":"array"},"options":{"properties":{"max_concurrency":{"description":"Max parallel screenings (default 5)","type":"integer"}},"type":"object"}},"required":["employees"],"type":"object"}}},"description":"Batch screening parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"type":"object"},"type":"array"},"summary":{"properties":{"compliant":{"type":"integer"},"errors":{"type":"integer"},"non_compliant":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}},"type":"object"}}},"description":"Batch screening results"}},"summary":"Batch screen multiple employees","tags":["CER Compliance","CER Compliance"]}},"/api/mcp/tools":{"get":{"callbacks":{},"description":"Returns complete registry of available tools with JSON schemas.\n\nProvides comprehensive tool catalog including:\n- **Tool Definitions**: Name, description, category for each tool\n- **Input Schemas**: JSON Schema validation for tool arguments\n- **Output Schemas**: Expected response structure validation\n- **Examples**: Working examples for each tool with sample I/O\n- **Permissions**: Required permissions for tool execution\n- **Categories**: Tools organized by functional area\n\n**Tool Categories Available**:\n- `system`: Health checks, metrics, diagnostics\n- `osint`: Intelligence gathering and analysis\n- `agents`: Multi-agent coordination and management\n- `storage`: Data operations and adapter management\n- `investigations`: Due diligence and research workflows\n\n**Caching**: Registry cached for 5 minutes as tools rarely change.\n**Validation**: All tools include comprehensive JSON Schema validation.\n","operationId":"PrismaticWeb.MCPProtocolController.tools","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPResponse"}}},"description":"Tools registry retrieved successfully"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MCPError"}}},"description":"Failed to generate tools registry"}},"summary":"Get Tools Registry","tags":["MCP"]}},"/api/osint/reports":{"get":{"callbacks":{},"description":"Returns a paginated list of OSINT investigation reports with optional filtering by search term, type, and status.","operationId":"PrismaticWeb.OsintApiController.list_reports","parameters":[{"description":"Full-text search across reports","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Filter by investigation type (legal, comprehensive, profile, email)","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"Filter by status (pending, running, completed, failed)","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Page number (default: 1)","in":"query","name":"page","required":false,"schema":{"type":"integer"}},{"description":"Results per page (default: 20)","in":"query","name":"per_page","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"pagination":{"properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"type":"object"},"reports":{"items":{"type":"object"},"type":"array"}},"type":"object"}}},"description":"Paginated list of OSINT reports"}},"summary":"List OSINT reports","tags":["OSINT","OSINT"]}},"/api/agents/{id}":{"get":{"callbacks":{},"description":"Retrieve detailed information about a specific agent by its unique identifier.","operationId":"PrismaticWeb.AgentRegistryController.show","parameters":[{"description":"Agent ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Agent details"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"object"},"status":{"type":"string"}},"type":"object"}}},"description":"Agent not found"}},"summary":"Get agent by ID","tags":["Agents","Agents"]}},"/api/health":{"get":{"callbacks":{},"description":"Returns overall storage system health including adapter statuses, response times, and key performance metrics.","operationId":"PrismaticWeb.ApiController.health","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"adapters":{"items":{"type":"object"},"type":"array"},"metrics":{"properties":{"average_latency":{"type":"string"},"error_rate":{"type":"number"},"operations_per_second":{"type":"integer"},"total_operations":{"type":"integer"}},"type":"object"},"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"System health status"}},"summary":"Storage system health","tags":["System","System"]}}},"security":[{"ApiToken":["read"]},{"JWT":["read"]}],"servers":[{"url":"https://prismatic-reality.com","variables":{}},{"description":"Production server","url":"https://prismatic-prod.fly.dev","variables":{}}],"tags":[{"description":"**Model Context Protocol Integration**\n\nClaude Code introspection and tool execution endpoints. These endpoints\nprovide direct integration with development workflows, allowing real-time\ninspection of system state, tool discovery, and command execution.\n\n**Key Features**:\n- System state introspection\n- Dynamic tool discovery\n- Event streaming for development workflows\n- Real-time execution monitoring\n","name":"MCP"},{"description":"**Open Source Intelligence Operations**\n\nComprehensive intelligence gathering and analysis endpoints covering\n27,000+ European data sources, real-time analysis capabilities, and\nspecialized investigation workflows.\n\n**Capabilities**:\n- Multi-source intelligence fusion\n- Real-time entity analysis\n- Relationship mapping and visualization\n- Compliance-aware data collection\n","name":"OSINT"},{"description":"**Due Diligence & Investigation Management**\n\nM&A intelligence, corporate due diligence, and comprehensive investigation\nworkflows with triple-verification and risk assessment capabilities.\n\n**Features**:\n- Business intelligence analysis\n- Financial forensics and asset discovery\n- Cross-border regulatory compliance\n- Automated risk profiling\n","name":"Investigations"},{"description":"**System Monitoring & Health**\n\nReal-time system health monitoring, performance metrics, and administrative\nendpoints for platform management and observability.\n\n**Monitoring**:\n- Adapter health and performance\n- Real-time metrics and analytics\n- Capacity planning and alerting\n- Audit trail and compliance reporting\n","name":"System"},{"description":"**Multi-Agent System Coordination**\n\nManagement and coordination of 550+ specialized AI agents for intelligence\ngathering, analysis, and automated workflows.\n\n**Agent Types**:\n- OSINT specialists and coordinators\n- Legal and compliance experts\n- Financial analysis and risk assessment\n- Technical and infrastructure management\n","name":"Agents"},{"description":"**Diagnostic & Development Tools**\n\nHTTP/SSE/WebSocket mirror endpoints with chaos engineering for development,\ntesting, and debugging of client applications and infrastructure.\n\n**Features**:\n- Complete request echo (headers, body, params, method)\n- Chaos engineering (delay, jitter, drop rate, status override)\n- Session history with configurable TTL\n- PII redaction (Authorization, Cookie headers)\n- Rate limiting (100 req/min)\n","name":"Diagnostics"},{"description":"**Decision Core Closed-Loop Pipeline**\n\nDeterministic decision-making pipeline with hypothesis generation,\nevaluation, outcome tracking, and calibration feedback loop.\n\n**Capabilities**:\n- Submit decisions and run full pipeline\n- Retrieve decision traces with full audit trail\n- Record real-world outcomes\n- Calibration summary with per-bucket breakdown\n- Deterministic reproducibility via SHA-256 fingerprints\n","name":"Decisions"},{"description":"**Critical Entity Resilience (CER) Compliance API**\n\nCzech compliance operations under Law 266/2025 Sb. and Law 264/2025 Sb. (NIS2 transposition).\nProvides complete screening, vetting, and reporting capabilities for critical infrastructure operators.\n\n**Employee Screening** (POST /api/cer/screen):\n- Identity verification and criminal record checks\n- OSINT profiling and adverse media monitoring\n- PEP and sanctions screening\n- Risk scoring and compliance determination\n\n**Supplier Vetting** (POST /api/cer/vet):\n- Beneficial ownership analysis (25%+ stake identification)\n- Financial health assessment\n- Legal status verification (insolvency, court cases, enforcement)\n- Czech registry integration (ARES, ISIR, Justice Portal)\n\n**Risk Assessment** (POST /api/cer/risk):\n- Real-time risk scoring with configurable thresholds\n- Factor-based analysis with impact weighting\n- Compliance recommendations\n\n**Compliance Reports** (POST /api/cer/reports):\n- CER annual reports (Law 266/2025 s.22)\n- NIS2 incident reports (Law 264/2025 s.16)\n- Due diligence documentation\n- Multiple output formats (PDF, HTML, JSON, XML, CSV)\n\n**Authentication**: X-API-Key header required for all endpoints.\n**Rate Limits**: Per-endpoint limits (100/min screening, 50/min vetting, 20/min reports).\n","name":"CER"}]}