{"components":{"schemas":{"AutonomousAgentCollectionCoverage":{"additionalProperties":false,"properties":{"currentness_lag_seconds":{"description":"Whole-second lag between fetch time and the newest successfully decoded provider slot.","minimum":0,"type":["integer","null"]},"failed_query_count":{"minimum":0,"type":["integer","null"]},"historical_backfill_incomplete":{"description":"True while the bounded historical catch-up plan still has uncollected slots.","type":["boolean","null"]},"newest_selected_slot":{"format":"date-time","type":["string","null"]},"newest_successful_slot":{"format":"date-time","type":["string","null"]},"query_language_count":{"description":"Number of language partitions actually selected by the bounded query plan in this cycle.","minimum":0,"type":["integer","null"]},"query_languages":{"items":{"maxLength":32,"minLength":2,"pattern":"^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$","type":"string"},"maxItems":16,"type":"array","uniqueItems":true},"rotation_count":{"description":"Number of hourly rotations needed to cover the maintained taxonomy.","minimum":1,"type":["integer","null"]},"rotation_index":{"description":"Zero-based multilingual taxonomy rotation selected for this cycle.","minimum":0,"type":["integer","null"]},"selected_query_count":{"minimum":0,"type":["integer","null"]},"successful_query_count":{"minimum":0,"type":["integer","null"]},"topic_count":{"description":"Count of code-owned canonical topics selected; keyword or query text is not exposed.","minimum":0,"type":["integer","null"]},"truncated_query_count":{"minimum":0,"type":["integer","null"]}},"required":["selected_query_count","successful_query_count","failed_query_count","truncated_query_count","topic_count","query_language_count","query_languages","rotation_index","rotation_count","newest_selected_slot","newest_successful_slot","currentness_lag_seconds","historical_backfill_incomplete"],"type":"object"},"AutonomousAgentCollectionStatus":{"additionalProperties":false,"properties":{"accepted_observations":{"minimum":0,"type":["integer","null"]},"caveat_codes":{"items":{"pattern":"^[a-z0-9_]{1,80}$","type":"string"},"type":"array","uniqueItems":true},"collecting":{"type":"boolean"},"country_metrics":{"maximum":249,"minimum":0,"type":["integer","null"]},"cycle_id":{"format":"uuid","type":["string","null"]},"finished_at":{"format":"date-time","type":["string","null"]},"input_cutoff_at":{"format":"date-time","type":["string","null"]},"next_at":{"format":"date-time","type":["string","null"]},"started_at":{"format":"date-time","type":["string","null"]},"status":{"enum":["collecting","succeeded","degraded","failed_retryable","failed_terminal","unavailable"],"type":"string"},"successful_sources":{"maximum":5,"minimum":0,"type":["integer","null"]},"window_start_at":{"format":"date-time","type":["string","null"]}},"required":["cycle_id","status","collecting","window_start_at","input_cutoff_at","started_at","finished_at","next_at","successful_sources","accepted_observations","country_metrics","caveat_codes"],"type":"object"},"AutonomousAgentCountryAnalysis":{"additionalProperties":false,"properties":{"ai_generated":{"description":"Current country-security snapshots whose durable generation_mode is ai.","maximum":249,"minimum":0,"type":"integer"},"insufficient":{"maximum":249,"minimum":0,"type":"integer"},"last_completed_at":{"format":"date-time","type":["string","null"]},"partial":{"maximum":249,"minimum":0,"type":"integer"},"ready":{"maximum":249,"minimum":0,"type":"integer"},"tracked":{"maximum":249,"minimum":0,"type":"integer"}},"required":["tracked","ready","partial","insufficient","ai_generated","last_completed_at"],"type":"object"},"AutonomousAgentMediaDiversity":{"additionalProperties":false,"properties":{"publisher_domains_72h":{"description":"Number of distinct normalized GDELT originating publisher domains in the exact latest completed 72-hour window.","minimum":0,"type":"integer"},"top_publishers":{"items":{"$ref":"#/components/schemas/AutonomousAgentMediaPublisher"},"maxItems":10,"type":"array"}},"required":["publisher_domains_72h","top_publishers"],"type":"object"},"AutonomousAgentMediaPublisher":{"additionalProperties":false,"properties":{"domain":{"maxLength":253,"minLength":3,"pattern":"^[a-z0-9][a-z0-9.-]*[a-z0-9]$","type":"string"},"observations":{"description":"Distinct stable GDELT provider-record identifiers attributed to this publisher domain in the exact latest completed 72-hour window; duplicate retained rows are not counted.","minimum":1,"type":"integer"}},"required":["domain","observations"],"type":"object"},"AutonomousAgentRecommendationStatus":{"additionalProperties":false,"properties":{"ai_generated":{"description":"Current fail-closed recommendation projections whose durable generation_mode is ai; no provider payload or model credential is exposed.","minimum":0,"type":"integer"},"due":{"minimum":0,"type":"integer"},"insufficient":{"minimum":0,"type":"integer"},"last_completed_at":{"format":"date-time","type":["string","null"]},"last_provider_success_at":{"format":"date-time","type":["string","null"]},"next_refresh_at":{"format":"date-time","type":["string","null"]},"pending":{"minimum":0,"type":"integer"},"ready":{"minimum":0,"type":"integer"},"unavailable":{"minimum":0,"type":"integer"},"unresolved_provider_failures":{"minimum":0,"type":"integer"}},"required":["ready","insufficient","unavailable","ai_generated","last_completed_at","last_provider_success_at","pending","due","next_refresh_at","unresolved_provider_failures"],"type":"object"},"AutonomousAgentSourceStatus":{"additionalProperties":false,"properties":{"accepted_observations_last_cycle":{"minimum":0,"type":"integer"},"category":{"enum":["official_seismic_authority","official_hazard_aggregator","intergovernmental_disaster_alert_aggregator","global_news_event_index","public_social_media"],"type":"string"},"checked_at":{"format":"date-time","type":["string","null"]},"collection_coverage":{"description":"Safe aggregate diagnostics persisted for a bounded composite collection plan. Null means this source had no such plan in the latest completed cycle; query text, raw responses, cursors, and failed slot lists are never exposed.","oneOf":[{"$ref":"#/components/schemas/AutonomousAgentCollectionCoverage"},{"type":"null"}]},"collection_topics":{"items":{"pattern":"^[a-z0-9_]{1,80}$","type":"string"},"type":"array","uniqueItems":true},"failed_subrequests":{"minimum":0,"type":"integer"},"key":{"enum":["usgs_earthquakes","nasa_eonet","gdacs","gdelt_news","bluesky_public"],"type":"string"},"last_success_at":{"format":"date-time","type":["string","null"]},"latest_observation_at":{"format":"date-time","type":["string","null"]},"name":{"minLength":1,"type":"string"},"observations_72h":{"description":"Distinct stable provider-record identifiers observed in the exact 72-hour window of the latest completed collection. This is not a count of retained immutable rows or repeated polls.","minimum":0,"type":"integer"},"origin_count_72h":{"description":"Distinct originating publisher domains for GDELT, validated public author identities (handle with DID fallback) for Bluesky, or one fixed official origin when that source has observations.","minimum":0,"type":"integer"},"possibly_truncated":{"type":"boolean"},"scoring_policy":{"enum":["canonical_if_explicit_or_gdacs_correlated","canonical_if_explicit_country","observation_only_requires_verified_location_and_corroboration"],"type":"string"},"status":{"enum":["healthy","degraded","stale","misconfigured","unavailable"],"type":"string"},"trust_class":{"enum":["official_authority","official_aggregator","intergovernmental_aggregator","open_signal"],"type":"string"}},"required":["key","name","category","trust_class","status","checked_at","last_success_at","accepted_observations_last_cycle","observations_72h","origin_count_72h","latest_observation_at","possibly_truncated","failed_subrequests","collection_coverage","collection_topics","scoring_policy"],"type":"object"},"AutonomousAgentStatus":{"additionalProperties":false,"properties":{"cadence_minutes":{"const":60,"type":"integer"},"checked_at":{"format":"date-time","type":"string"},"collection":{"$ref":"#/components/schemas/AutonomousAgentCollectionStatus"},"country_analysis":{"$ref":"#/components/schemas/AutonomousAgentCountryAnalysis"},"lookback_hours":{"const":72,"type":"integer"},"media_diversity":{"$ref":"#/components/schemas/AutonomousAgentMediaDiversity"},"mode":{"const":"persistent_hourly","type":"string"},"recommendations":{"$ref":"#/components/schemas/AutonomousAgentRecommendationStatus"},"safeguards":{"items":{"pattern":"^[a-z0-9_]{1,80}$","type":"string"},"maxItems":7,"minItems":7,"type":"array","uniqueItems":true},"service":{"const":"autonomous-agent","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/AutonomousAgentSourceStatus"},"maxItems":5,"type":"array"},"state":{"description":"Fail-closed operational state. overdue means the latest terminal collection is older than 75 minutes but no older than 180 minutes; older or absent terminal evidence is unavailable.","enum":["running","collecting","degraded","overdue","unavailable"],"type":"string"}},"required":["state","service","mode","checked_at","cadence_minutes","lookback_hours","collection","sources","media_diversity","country_analysis","recommendations","safeguards"],"type":"object"},"RecommendationCatalog":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"event_classes":{"items":{"additionalProperties":false,"properties":{"active_event_count":{"minimum":0,"type":["integer","null"]},"data_status":{"$ref":"#/components/schemas/RecommendationDataStatus"},"event_class":{"$ref":"#/components/schemas/RecommendationEventClass"},"latest_event_at":{"format":"date-time","type":["string","null"]},"source_count":{"minimum":0,"type":["integer","null"]}},"required":["event_class","data_status","active_event_count","source_count","latest_event_at"],"type":"object"},"maxItems":8,"minItems":8,"type":"array"},"generated_at":{"format":"date-time","type":["string","null"]},"report_products":{"items":{"additionalProperties":false,"properties":{"access_class":{"enum":["free","paid","corporate"],"type":"string"},"available":{"description":"Whether the authenticated account currently holds the exact server capability; this does not imply that one-time billing is connected.","type":"boolean"},"billing_mode":{"enum":["included","subscription","one_time"],"type":"string"},"currency":{"type":["string","null"]},"price_minor":{"minimum":0,"type":["integer","null"]},"report_type":{"enum":["safety_actions","financial_impact","economic_outlook","city_report"],"type":"string"}},"required":["report_type","access_class","billing_mode","available","price_minor","currency"],"type":"object"},"maxItems":4,"minItems":4,"type":"array"},"valid_until":{"format":"date-time","type":["string","null"]}},"required":["country_code","generated_at","valid_until","event_classes","report_products"],"type":"object"},"RecommendationCoverage":{"additionalProperties":false,"properties":{"confidence":{"maximum":1,"minimum":0,"type":["number","null"]},"event_count":{"minimum":0,"type":"integer"},"independent_source_count":{"minimum":0,"type":"integer"},"lookback_hours":{"const":72,"type":"integer"},"source_count":{"minimum":0,"type":"integer"}},"required":["lookback_hours","event_count","source_count","independent_source_count","confidence"],"type":"object"},"RecommendationDataStatus":{"enum":["ready","insufficient_evidence","unavailable"],"type":"string"},"RecommendationEventClass":{"enum":["natural_hazard","social_conflict","military_conflict","economic_disruption","emergency","epidemiological","infrastructure","cyber"],"type":"string"},"RecommendationLocale":{"enum":["en","ru","ar","es","fr","pt-BR","de","hi","zh-Hans","ja"],"type":"string"},"RecommendationReport":{"additionalProperties":false,"properties":{"access_class":{"enum":["free","paid","corporate"],"type":"string"},"city":{"type":["string","null"]},"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"coverage":{"$ref":"#/components/schemas/RecommendationCoverage"},"data_status":{"$ref":"#/components/schemas/RecommendationDataStatus"},"event_class":{"$ref":"#/components/schemas/RecommendationEventClass"},"executive_summary":{"type":["string","null"]},"generated_at":{"format":"date-time","type":["string","null"]},"report_id":{"description":"UUID for stored reports; an unavailable projection uses a stable non-UUID unavailable:* identifier.","type":"string"},"report_type":{"enum":["safety_actions","financial_impact","economic_outlook","city_report"],"type":"string"},"sections":{"items":{"$ref":"#/components/schemas/RecommendationReportSection"},"type":"array"},"sources":{"items":{"$ref":"#/components/schemas/RecommendationSourceReference"},"type":"array"},"title":{"type":["string","null"]},"valid_until":{"format":"date-time","type":["string","null"]}},"required":["report_id","country_code","city","event_class","report_type","access_class","data_status","title","executive_summary","sections","sources","coverage","generated_at","valid_until"],"type":"object"},"RecommendationReportSection":{"additionalProperties":false,"properties":{"action_items":{"items":{"type":"string"},"type":"array"},"body":{"minLength":1,"type":"string"},"heading":{"minLength":1,"type":"string"},"section_id":{"minLength":1,"type":"string"},"source_ids":{"items":{"format":"uuid","type":"string"},"minItems":1,"type":"array","uniqueItems":true}},"required":["section_id","heading","body","action_items","source_ids"],"type":"object"},"RecommendationSourceReference":{"additionalProperties":false,"properties":{"published_at":{"format":"date-time","type":["string","null"]},"source_category":{"enum":["official","news_media","specialist","sensor","community","commercial","field_report","insider"],"type":"string"},"source_id":{"format":"uuid","type":"string"},"source_name":{"minLength":1,"type":"string"},"trust_tier":{"enum":["A","B","C","D","E",null],"type":["string","null"]},"url":{"format":"uri","pattern":"^https?://","type":"string"}},"required":["source_id","source_name","source_category","trust_tier","url","published_at"],"type":"object"},"RecommendationSystemStatus":{"additionalProperties":false,"properties":{"active_leases":{"minimum":0,"type":"integer"},"due_count":{"minimum":0,"type":"integer"},"last_completed_at":{"format":"date-time","type":["string","null"]},"last_provider_failure_at":{"format":"date-time","type":["string","null"]},"last_provider_success_at":{"format":"date-time","type":["string","null"]},"next_refresh_at":{"format":"date-time","type":["string","null"]},"oldest_due_at":{"format":"date-time","type":["string","null"]},"pending_count":{"minimum":0,"type":"integer"},"provider_failure_count_last_hour":{"minimum":0,"type":"integer"},"queue_lag_seconds":{"minimum":0,"type":"integer"},"refresh_interval_minutes":{"const":60,"type":"integer"},"state":{"enum":["healthy","degraded","unavailable"],"type":"string"},"unresolved_provider_failure_count":{"minimum":0,"type":"integer"}},"required":["state","refresh_interval_minutes","last_completed_at","last_provider_success_at","last_provider_failure_at","next_refresh_at","oldest_due_at","queue_lag_seconds","active_leases","pending_count","due_count","provider_failure_count_last_hour","unresolved_provider_failure_count"],"type":"object"},"SourceMessage":{"properties":{"created_at":{"format":"date-time","type":"string"},"message":{"type":"string"},"sender_role":{"enum":["contributor","moderator","platform_admin"],"type":"string"},"source_message_id":{"format":"uuid","type":"string"},"source_submission_id":{"format":"uuid","type":"string"}},"required":["source_message_id","source_submission_id","sender_role","message","created_at"],"type":"object"},"SourceMessageCreate":{"additionalProperties":false,"properties":{"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"message":{"maxLength":5000,"minLength":1,"type":"string"}},"required":["expected_version","idempotency_key","message"],"type":"object"},"SourceMessagesResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/SourceMessage"},"type":"array"}},"required":["messages"],"type":"object"},"SourcePortalResponse":{"properties":{"portal":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/SourceMessage"},"type":"array"},"profiles":{"items":{"$ref":"#/components/schemas/SourceProfile"},"type":"array"},"selected_profile_id":{"format":"uuid","type":["string","null"]},"submissions":{"items":{"$ref":"#/components/schemas/SourceSubmission"},"type":"array"}},"required":["profiles","selected_profile_id","submissions","messages"],"type":"object"}},"required":["portal"],"type":"object"},"SourceProfile":{"properties":{"confidentiality_mode":{"enum":["named","pseudonymous","metadata_only","hidden"],"type":"string"},"coverage_countries":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"expertise":{"items":{"type":"string"},"type":"array"},"languages":{"items":{"type":"string"},"type":"array"},"latest_review_reason":{"type":["string","null"]},"latest_trust":{"oneOf":[{"$ref":"#/components/schemas/SourceTrust"},{"type":"null"}]},"membership_role":{"enum":["owner","contributor",null],"type":["string","null"]},"motivation":{"type":"string"},"public_alias":{"type":"string"},"source_profile_id":{"format":"uuid","type":"string"},"stats":{"properties":{"open_submission_count":{"format":"int64","type":"integer"},"submission_count":{"format":"int64","type":"integer"},"verified_submission_count":{"format":"int64","type":"integer"}},"required":["submission_count","open_submission_count","verified_submission_count"],"type":"object"},"status":{"enum":["submitted","screening","needs_information","probation","active","rejected","suspended","revoked"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"verification_level":{"enum":["unverified","contact_verified","identity_verified","professional_verified"],"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["source_profile_id","version","status","verification_level","public_alias","coverage_countries","languages","expertise","motivation","confidentiality_mode","stats","created_at","updated_at"],"type":"object"},"SourceProfileApplication":{"additionalProperties":false,"properties":{"accepted_terms":{"const":true,"type":"boolean"},"confidentiality_mode":{"enum":["named","pseudonymous","metadata_only","hidden"],"type":"string"},"coverage_countries":{"items":{"pattern":"^[A-Za-z]{2}$","type":"string"},"maxItems":250,"minItems":1,"type":"array","uniqueItems":true},"expected_version":{"const":0,"format":"int64","type":"integer"},"expertise":{"items":{"maxLength":120,"type":"string"},"maxItems":50,"minItems":1,"type":"array","uniqueItems":true},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"languages":{"items":{"maxLength":32,"type":"string"},"maxItems":50,"minItems":1,"type":"array","uniqueItems":true},"lawful_collection_confirmed":{"const":true,"type":"boolean"},"motivation":{"maxLength":4000,"minLength":20,"type":"string"},"no_classified_material_confirmed":{"const":true,"type":"boolean"},"no_targeting_confirmed":{"const":true,"type":"boolean"},"public_alias":{"maxLength":80,"minLength":3,"type":"string"}},"required":["expected_version","idempotency_key","public_alias","coverage_countries","languages","expertise","motivation","confidentiality_mode","lawful_collection_confirmed","no_classified_material_confirmed","no_targeting_confirmed","accepted_terms"],"type":"object"},"SourceProfileDecision":{"additionalProperties":false,"properties":{"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"reason":{"maxLength":2000,"minLength":3,"type":"string"},"status":{"enum":["submitted","screening","needs_information","probation","active","rejected","suspended","revoked"],"type":"string"}},"required":["expected_version","idempotency_key","status","reason"],"type":"object"},"SourceProfileResponse":{"properties":{"profile":{"$ref":"#/components/schemas/SourceProfile"}},"required":["profile"],"type":"object"},"SourceProfilesResponse":{"properties":{"profiles":{"items":{"$ref":"#/components/schemas/SourceProfile"},"type":"array"}},"required":["profiles"],"type":"object"},"SourceSubmission":{"properties":{"category":{"type":"string"},"country_code":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"disclosure_class":{"enum":["named","pseudonymous","metadata_only","hidden"],"type":"string"},"evidence_urls":{"items":{"format":"uri","type":"string"},"type":"array"},"latest_verification":{"oneOf":[{"$ref":"#/components/schemas/SourceSubmissionVerification"},{"type":"null"}]},"location_label":{"type":"string"},"message_count":{"format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"origin_type":{"enum":["first_hand","direct_witness","document","open_source","inference"],"type":"string"},"source_profile_id":{"format":"uuid","type":"string"},"source_submission_id":{"format":"uuid","type":"string"},"status":{"enum":["submitted","triaged","under_review","needs_information","accepted_lead","rejected","quarantined","closed"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"version":{"format":"int64","type":"integer"}},"required":["source_submission_id","source_profile_id","version","status","category","country_code","location_label","occurred_at","title","description","evidence_urls","disclosure_class","origin_type","message_count","created_at","updated_at"],"type":"object"},"SourceSubmissionAdmin":{"description":"Staff projection. submitted_by_user_id is deliberately absent.","properties":{"category":{"type":"string"},"country_code":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"disclosure_class":{"enum":["named","pseudonymous","metadata_only","hidden"],"type":"string"},"evidence_urls":{"items":{"format":"uri","type":"string"},"type":"array"},"latest_verification":{"oneOf":[{"$ref":"#/components/schemas/SourceSubmissionVerificationAdmin"},{"type":"null"}]},"location_label":{"type":"string"},"message_count":{"format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"origin_type":{"enum":["first_hand","direct_witness","document","open_source","inference"],"type":"string"},"source_profile_id":{"format":"uuid","type":"string"},"source_submission_id":{"format":"uuid","type":"string"},"status":{"enum":["submitted","triaged","under_review","needs_information","accepted_lead","rejected","quarantined","closed"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"version":{"format":"int64","type":"integer"}},"required":["source_submission_id","source_profile_id","version","status","category","country_code","location_label","occurred_at","title","description","evidence_urls","disclosure_class","origin_type","message_count","created_at","updated_at"],"type":"object"},"SourceSubmissionAdminResponse":{"properties":{"submission":{"$ref":"#/components/schemas/SourceSubmissionAdmin"}},"required":["submission"],"type":"object"},"SourceSubmissionCreate":{"additionalProperties":false,"properties":{"accepted_terms":{"const":true,"type":"boolean"},"category":{"enum":["armed_conflict","crime","civil_unrest","natural_hazard","weather","infrastructure","transport","health","political","economic","emergency","cyber","security","other"],"type":"string"},"country_code":{"pattern":"^[A-Za-z]{2}$","type":"string"},"description":{"maxLength":10000,"minLength":20,"type":"string"},"disclosure_class":{"enum":["named","pseudonymous","metadata_only","hidden"],"type":"string"},"evidence_urls":{"items":{"format":"uri","pattern":"^https://","type":"string"},"maxItems":20,"type":"array"},"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"location_label":{"maxLength":240,"minLength":2,"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"origin_type":{"enum":["first_hand","direct_witness","document","open_source","inference"],"type":"string"},"source_profile_id":{"format":"uuid","type":"string"},"title":{"maxLength":180,"minLength":5,"type":"string"}},"required":["expected_version","idempotency_key","source_profile_id","category","country_code","location_label","occurred_at","title","description","disclosure_class","origin_type","accepted_terms"],"type":"object"},"SourceSubmissionResponse":{"properties":{"submission":{"$ref":"#/components/schemas/SourceSubmission"}},"required":["submission"],"type":"object"},"SourceSubmissionTransition":{"additionalProperties":false,"properties":{"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"note":{"maxLength":2000,"minLength":3,"type":"string"},"status":{"enum":["submitted","triaged","under_review","needs_information","accepted_lead","rejected","quarantined","closed"],"type":"string"}},"required":["expected_version","idempotency_key","status","note"],"type":"object"},"SourceSubmissionVerification":{"properties":{"assessed_at":{"format":"date-time","type":"string"},"confidence":{"maximum":1,"minimum":0,"type":"number"},"public_explanation":{"type":"string"},"result":{"enum":["corroborated","partially_corroborated","contradicted","inconclusive","rejected"],"type":"string"},"source_submission_verification_assessment_id":{"format":"uuid","type":"string"}},"required":["source_submission_verification_assessment_id","result","confidence","public_explanation","assessed_at"],"type":"object"},"SourceSubmissionVerificationAdmin":{"properties":{"assessed_at":{"format":"date-time","type":"string"},"confidence":{"maximum":1,"minimum":0,"type":"number"},"corroborating_urls":{"items":{"format":"uri","type":"string"},"type":"array"},"internal_note":{"type":["string","null"]},"public_explanation":{"type":"string"},"result":{"enum":["corroborated","partially_corroborated","contradicted","inconclusive","rejected"],"type":"string"},"source_submission_verification_assessment_id":{"format":"uuid","type":"string"}},"required":["source_submission_verification_assessment_id","result","confidence","public_explanation","corroborating_urls","assessed_at"],"type":"object"},"SourceSubmissionVerificationCreate":{"additionalProperties":false,"properties":{"confidence":{"maximum":1,"minimum":0,"type":"number"},"corroborating_urls":{"items":{"format":"uri","pattern":"^https://","type":"string"},"maxItems":20,"type":"array"},"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"internal_note":{"maxLength":4000,"minLength":3,"type":["string","null"]},"public_explanation":{"maxLength":2000,"minLength":3,"type":"string"},"result":{"enum":["corroborated","partially_corroborated","contradicted","inconclusive","rejected"],"type":"string"}},"required":["expected_version","idempotency_key","result","confidence","public_explanation"],"type":"object"},"SourceSubmissionsAdminResponse":{"properties":{"submissions":{"items":{"$ref":"#/components/schemas/SourceSubmissionAdmin"},"type":"array"}},"required":["submissions"],"type":"object"},"SourceTrust":{"properties":{"assessed_at":{"format":"date-time","type":"string"},"authority_basis":{"enum":["eyewitness","professional","first_party","documentary","unknown"],"type":"string"},"coverage_countries":{"items":{"pattern":"^[A-Z]{2}$","type":"string"},"type":"array"},"event_families":{"items":{"type":"string"},"type":"array"},"first_party_authority":{"type":"boolean"},"methodology_version":{"type":"string"},"resolved_claims":{"minimum":0,"type":"integer"},"source_trust_assessment_id":{"format":"uuid","type":"string"},"trust_tier":{"enum":["A","B","C","D","E"],"type":"string"},"weighted_score":{"maximum":1,"minimum":0,"type":"number"}},"required":["source_trust_assessment_id","methodology_version","weighted_score","trust_tier","resolved_claims","coverage_countries","event_families","authority_basis","first_party_authority","assessed_at"],"type":"object"},"SourceTrustAssessmentCreate":{"additionalProperties":false,"properties":{"authority_basis":{"enum":["eyewitness","professional","first_party","documentary","unknown"],"type":"string"},"coverage_countries":{"items":{"pattern":"^[A-Za-z]{2}$","type":"string"},"maxItems":250,"minItems":1,"type":"array","uniqueItems":true},"dimensions":{"additionalProperties":false,"properties":{"first_party_authority":{"maximum":1,"minimum":0,"type":"number"},"historical_accuracy":{"maximum":1,"minimum":0,"type":"number"},"identity_assurance":{"maximum":1,"minimum":0,"type":"number"},"independence_quality":{"maximum":1,"minimum":0,"type":"number"},"manipulation_resistance":{"maximum":1,"minimum":0,"type":"number"},"provenance_transparency":{"maximum":1,"minimum":0,"type":"number"},"timeliness":{"maximum":1,"minimum":0,"type":"number"}},"required":["identity_assurance","historical_accuracy","first_party_authority","provenance_transparency","timeliness","independence_quality","manipulation_resistance"],"type":"object"},"event_families":{"items":{"maxLength":120,"type":"string"},"maxItems":100,"minItems":1,"type":"array","uniqueItems":true},"expected_version":{"format":"int64","minimum":1,"type":"integer"},"first_party_authority":{"type":"boolean"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"reason":{"maxLength":2000,"minLength":3,"type":"string"},"resolved_claims":{"minimum":0,"type":"integer"},"scope_decision":{"enum":["approved","restricted","denied"],"type":"string"}},"required":["expected_version","idempotency_key","coverage_countries","event_families","authority_basis","first_party_authority","scope_decision","resolved_claims","dimensions","reason"],"type":"object"},"SourceVerificationCheckCreate":{"additionalProperties":false,"properties":{"check_type":{"enum":["contact","identity","professional","affiliation","sanctions","conflict_of_interest","security","legal_terms","lawful_collection","classified_material","targeting","sample"],"type":"string"},"evidence_fingerprint":{"pattern":"^[0-9a-fA-F]{64}$","type":["string","null"]},"expected_version":{"format":"int64","minimum":1,"type":"integer"},"idempotency_key":{"maxLength":200,"minLength":8,"pattern":"^\\S+$","type":"string"},"reason":{"maxLength":2000,"minLength":3,"type":"string"},"result":{"enum":["passed","failed","inconclusive","expired"],"type":"string"},"valid_until":{"format":"date-time","type":["string","null"]}},"required":["expected_version","idempotency_key","check_type","result","reason"],"type":"object"}},"securitySchemes":{"sessionCookie":{"in":"cookie","name":"gsip_session","type":"apiKey"}}},"info":{"description":"Evidence-first operational intelligence API. Source category, trust, event confidence, and caller access are separate, versioned concepts.","title":"GSIP Intelligence API","version":"0.7.0"},"openapi":"3.1.0","paths":{"/v1/admin/company-applications":{"get":{"responses":{"200":{"description":"Company application queue"},"403":{"description":"Platform admin required"}},"security":[{"sessionCookie":[]}],"summary":"List preliminary company applications","tags":["Administration"]}},"/v1/admin/company-applications/{company_application_id}/decision":{"post":{"description":"Platform-admin only. Approval activates company access; rejection and requests for more information remain auditable.","parameters":[{"in":"path","name":"company_application_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Updated company application projection"},"403":{"description":"Platform admin required"},"409":{"description":"Application state changed or decision is not allowed"},"422":{"description":"Invalid decision"}},"security":[{"sessionCookie":[]}],"summary":"Record a preliminary company application decision","tags":["Administration"]}},"/v1/admin/reports":{"get":{"responses":{"200":{"description":"Moderation queue"},"403":{"description":"Moderator or platform admin required"}},"security":[{"sessionCookie":[]}],"summary":"List incident reports for moderation","tags":["Administration"]}},"/v1/admin/reports/{report_id}/transition":{"post":{"parameters":[{"in":"path","name":"report_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Updated report projection"},"403":{"description":"Moderator or platform admin required"},"409":{"description":"Invalid transition"}},"security":[{"sessionCookie":[]}],"summary":"Append an audited report moderation transition","tags":["Administration"]}},"/v1/admin/source-profiles":{"get":{"description":"Active platform-admin only. Profiles in which the actor has an active membership are excluded.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceProfilesResponse"}}},"description":"Source profile review queue"},"403":{"description":"Platform admin required"}},"security":[{"sessionCookie":[]}],"summary":"List source profile applications and current trust projections","tags":["Administration","Source portal"]}},"/v1/admin/source-profiles/{profile_id}/checks":{"post":{"description":"Stores a decision and optional irreversible SHA-256 evidence fingerprint, never identity evidence itself.","parameters":[{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceVerificationCheckCreate"}}},"required":true},"responses":{"200":{"description":"Check appended and profile projection updated"},"403":{"description":"Platform admin required or self-review blocked"},"409":{"description":"Stale version or duplicate write"}},"security":[{"sessionCookie":[]}],"summary":"Append a profile verification check","tags":["Administration","Source portal"]}},"/v1/admin/source-profiles/{profile_id}/decision":{"post":{"description":"Any active member of a source profile is excluded from reviewing it. Probation requires contact_verified and active requires identity_verified; a suspended profile may be downgraded to probation.","parameters":[{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceProfileDecision"}}},"required":true},"responses":{"200":{"description":"Updated profile projection"},"403":{"description":"Platform admin required or self-review blocked"},"409":{"description":"Invalid transition, verification gate, or stale version"}},"security":[{"sessionCookie":[]}],"summary":"Apply an audited source profile state transition","tags":["Administration","Source portal"]}},"/v1/admin/source-profiles/{profile_id}/trust-assessments":{"post":{"description":"Scope and trust revisions form immediate-predecessor chains. AI output and payment status are not scoring inputs.","parameters":[{"in":"path","name":"profile_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceTrustAssessmentCreate"}}},"required":true},"responses":{"200":{"description":"Assessment appended and current projection returned"},"403":{"description":"Platform admin required or self-review blocked"},"409":{"description":"Stale version or chain conflict"},"422":{"description":"Invalid scope or dimension value"}},"security":[{"sessionCookie":[]}],"summary":"Append linked scope and deterministic trust assessments","tags":["Administration","Source portal"]}},"/v1/admin/source-submissions":{"get":{"description":"Active moderator or platform-admin only. Submissions created by the actor or belonging to a profile with the actor's active membership are excluded.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionsAdminResponse"}}},"description":"Source submission queue"},"403":{"description":"Moderator or platform admin required"}},"security":[{"sessionCookie":[]}],"summary":"List source submissions for human review","tags":["Administration","Source portal"]}},"/v1/admin/source-submissions/{submission_id}/messages":{"get":{"description":"The original submitter and every active member of the source profile are excluded from staff access.","parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceMessagesResponse"}}},"description":"Chronological conversation"},"403":{"description":"Reviewer role required or self-review blocked"},"404":{"description":"Submission not found"}},"security":[{"sessionCookie":[]}],"summary":"List the contributor-visible submission conversation","tags":["Administration","Source portal"]},"post":{"description":"Message content stays in the dedicated conversation ledger and is omitted from the general audit decision context.","parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceMessageCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionAdminResponse"}}},"description":"Message appended and staff projection updated"},"403":{"description":"Reviewer role required or self-review blocked"},"409":{"description":"Stale version or duplicate write"}},"security":[{"sessionCookie":[]}],"summary":"Add a contributor-visible staff message","tags":["Administration","Source portal"]}},"/v1/admin/source-submissions/{submission_id}/transition":{"post":{"description":"The original submitter and every active member of the source profile are excluded from review. accepted_lead remains an intake decision, not canonical publication.","parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionTransition"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionAdminResponse"}}},"description":"Updated staff submission projection without submitted_by_user_id"},"403":{"description":"Reviewer role required or self-review blocked"},"409":{"description":"Invalid transition or stale version"}},"security":[{"sessionCookie":[]}],"summary":"Apply an audited source submission state transition","tags":["Administration","Source portal"]}},"/v1/admin/source-submissions/{submission_id}/verification":{"post":{"description":"public_explanation is contributor-visible. corroborating_urls and internal_note are returned only to authorized staff.","parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionVerificationCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionAdminResponse"}}},"description":"Assessment appended and staff projection updated"},"403":{"description":"Reviewer role required or self-review blocked"},"409":{"description":"Stale version or duplicate write"}},"security":[{"sessionCookie":[]}],"summary":"Append a human verification assessment","tags":["Administration","Source portal"]}},"/v1/admin/users":{"get":{"responses":{"200":{"description":"Administrative user projection"},"403":{"description":"Platform admin required"}},"security":[{"sessionCookie":[]}],"summary":"List users without passwords or session material","tags":["Administration"]}},"/v1/admin/users/{user_id}/access":{"post":{"description":"Platform-admin only. Every change requires a reason and is written to the audit log.","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Updated administrative user projection"},"403":{"description":"Platform admin required"},"409":{"description":"Unsafe or conflicting role transition"},"422":{"description":"Invalid access configuration"}},"security":[{"sessionCookie":[]}],"summary":"Update a user's role and private subscription access","tags":["Administration"]}},"/v1/agent/status":{"get":{"description":"Read-only, sanitized proof of the persistent hourly 72-hour collection, country analysis, recommendation pipeline, fixed source health, and media-origin diversity. The response is built only from durable production records; it never fabricates demo activity and never exposes worker identity, leases, cursors, raw provider payloads, URLs, or credentials.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutonomousAgentStatus"}}},"description":"Current fail-closed autonomous-agent status and aggregate coverage."},"503":{"description":"The durable status projection is unavailable; no synthetic status is substituted."}},"summary":"Durable autonomous collection and analysis status","tags":["Autonomous agent","Source trust"]}},"/v1/auth/login":{"post":{"responses":{"200":{"description":"Authenticated"},"401":{"description":"Invalid credentials"}},"summary":"Create a revocable HttpOnly session","tags":["Identity"]}},"/v1/auth/me":{"get":{"responses":{"200":{"description":"Account projection"},"401":{"description":"Authentication required"}},"summary":"Current account, organization status, and effective entitlements","tags":["Identity"]}},"/v1/auth/register/company":{"post":{"responses":{"201":{"description":"Pending company application and HttpOnly session created"},"409":{"description":"Account already exists"}},"summary":"Create a company applicant account and submit preliminary review","tags":["Identity"]}},"/v1/auth/register/individual":{"post":{"responses":{"201":{"description":"Account and HttpOnly session created"},"409":{"description":"Account already exists"},"422":{"description":"Validation failed"}},"summary":"Create an active private account","tags":["Identity"]}},"/v1/country-intelligence":{"get":{"description":"Returns only countries whose current snapshot meets readiness, coverage, freshness, and numeric-score requirements. Countries with N/D are deliberately excluded from rankings and are never assigned a zero-risk score.","responses":{"200":{"description":"Ranking, aggregate coverage and freshness. An empty ranking with data_status=insufficient_data is a valid response."}},"summary":"Fresh 72-hour country safety ranking","tags":["Country intelligence"]}},"/v1/country-intelligence/status":{"get":{"responses":{"200":{"description":"Tracked, ready, ranked, insufficient and stale country counts for the rolling 72-hour read model."}},"summary":"Country-analysis coverage and freshness status","tags":["Country intelligence"]}},"/v1/country-intelligence/{country_code}":{"get":{"description":"A valid country without sufficient evidence returns HTTP 200 with null scores and data_status=insufficient_data. Missing observations never imply safety.","parameters":[{"in":"path","name":"country_code","required":true,"schema":{"pattern":"^[A-Z]{2}$","type":"string"}}],"responses":{"200":{"description":"Current scores or explicit N/D, evidence counts, key judgements, typed 24/72-hour threats, and version provenance."},"422":{"description":"Invalid ISO alpha-2 country code"}},"summary":"Current country assessment and typed threat outlook","tags":["Country intelligence"]}},"/v1/events":{"get":{"responses":{"200":{"description":"Event collection with evidence and event confidence"}},"summary":"Spatial canonical event query","tags":["Intelligence"]}},"/v1/intelligence-feed":{"get":{"description":"Returns a bounded current hourly digest of political, economic, conflict, hazard, emergency, health, infrastructure, transport and cyber evidence discovered in the rolling 72-hour window. It is not an exhaustive article archive. Every headline, brief and key point contains public citation lineage; source_count is the number of distinct publisher or social-author independence groups. Only security-barrier views are queried; raw provider payloads and autonomous-worker state are never exposed.","parameters":[{"in":"query","name":"country","schema":{"pattern":"^[A-Z]{2}$","type":"string"}},{"in":"query","name":"category","schema":{"enum":["political","economic","social_conflict","military_conflict","natural_hazard","emergency","epidemiological","infrastructure","transport","cyber"],"type":"string"}},{"in":"query","name":"limit","schema":{"default":60,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Compiled events, claim-level citations and filtered source rotation; an empty feed is explicit and never synthetic."},"422":{"description":"Invalid country or event category."},"503":{"description":"The durable public projection is unavailable."}},"summary":"Hourly source-backed compiled event feed","tags":["Intelligence","Source trust"]}},"/v1/live-signals":{"get":{"description":"Source-reported public observations from fixed TLS providers. These signals are visually and structurally separate from canonical GSIP events and never enter risk or forecast calculations through this endpoint.","responses":{"200":{"description":"Public signal projection with provider health, source category, trust tier, refresh hint, and explicit source_reported verification state"}},"summary":"Near-real-time public source signals for the operational map","tags":["Intelligence","Source trust"]}},"/v1/overview":{"get":{"parameters":[{"in":"query","name":"scope","schema":{"enum":["country","point"],"type":"string"}},{"in":"query","name":"country_code","schema":{"pattern":"^[A-Z]{2}$","type":"string"}},{"in":"query","name":"lat","schema":{"maximum":90,"minimum":-90,"type":"number"}},{"in":"query","name":"lon","schema":{"maximum":180,"minimum":-180,"type":"number"}},{"in":"query","name":"radius_km","schema":{"maximum":20100,"minimum":1,"type":"number"}}],"responses":{"200":{"description":"Operational overview"}},"summary":"Current risk, canonical events, coverage, and explicitly separated forecasts","tags":["Intelligence"]}},"/v1/recommendations/catalog":{"get":{"description":"Authentication is mandatory. Product availability is calculated from server-side entitlements; it is not inferred from account type or subscription text in the client.","parameters":[{"in":"query","name":"country_code","required":true,"schema":{"pattern":"^[A-Za-z]{2}$","type":"string"}},{"in":"query","name":"locale","required":true,"schema":{"$ref":"#/components/schemas/RecommendationLocale"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationCatalog"}}},"description":"Eight fixed event classes, their grounded-data status, and four access-controlled report products"},"401":{"description":"Authentication required"},"422":{"description":"Invalid country code or unsupported locale"},"503":{"description":"Recommendation ledger unavailable"}},"security":[{"sessionCookie":[]}],"summary":"Fixed report products and current event-class availability","tags":["Recommendations"]}},"/v1/recommendations/city-reports":{"post":{"description":"The current runtime validates eligibility and location but deliberately creates neither an order nor a report without a real server-priced payment-provider authorization. Eligible callers therefore still receive HTTP 402 until billing is connected.","requestBody":{"content":{"application/json":{"schema":{"properties":{"city":{"maxLength":120,"minLength":2,"type":"string"},"country_code":{"pattern":"^[A-Za-z]{2}$","type":"string"},"event_class":{"$ref":"#/components/schemas/RecommendationEventClass"},"idempotency_key":{"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},"locale":{"$ref":"#/components/schemas/RecommendationLocale"}},"required":["country_code","city","event_class","locale","idempotency_key"],"type":"object"}}},"required":true},"responses":{"401":{"description":"Authentication required"},"402":{"description":"Payment-provider authorization required; no synthetic charge, order, or report was created"},"403":{"description":"Approved company application required"},"422":{"description":"Invalid country, city, event class, locale, or idempotency key"}},"security":[{"sessionCookie":[]}],"summary":"One-time corporate city-report purchase boundary","tags":["Recommendations"]}},"/v1/recommendations/reports/current":{"get":{"description":"Returns stored hourly content only. No request prompt is accepted and no model call occurs on this read path. A ready report is downgraded unless every section resolves to disclosure-safe source lineage inside the exact 72-hour evidence window.","parameters":[{"in":"query","name":"country_code","required":true,"schema":{"pattern":"^[A-Za-z]{2}$","type":"string"}},{"in":"query","name":"event_class","required":true,"schema":{"$ref":"#/components/schemas/RecommendationEventClass"}},{"in":"query","name":"report_type","required":true,"schema":{"enum":["safety_actions","financial_impact","economic_outlook"],"type":"string"}},{"in":"query","name":"locale","required":true,"schema":{"$ref":"#/components/schemas/RecommendationLocale"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationReport"}}},"description":"Ready, insufficient_evidence, or unavailable stored-report projection"},"401":{"description":"Authentication required"},"402":{"description":"The exact report entitlement is absent"},"422":{"description":"Invalid fixed query value; city_report is not valid on this endpoint"},"503":{"description":"Recommendation ledger unavailable"}},"security":[{"sessionCookie":[]}],"summary":"Current pre-generated country recommendation report","tags":["Recommendations"]}},"/v1/recommendations/status":{"get":{"description":"Public operational status. It never substitutes demo reports when the durable report ledger is unavailable.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationSystemStatus"}}},"description":"Current scheduler projection or explicit unavailable state"}},"summary":"Hourly recommendation-pipeline status","tags":["Recommendations"]}},"/v1/regional-security/ask":{"post":{"deprecated":true,"description":"Free-form customer dialogue is retired. The handler accepts no prompt contract, does not authenticate or dispatch to an AI provider, and always returns HTTP 410. Use the fixed recommendation catalog and current-report endpoints.","responses":{"410":{"description":"free_form_assistant_retired; no prompt was processed"}},"summary":"Retired free-form regional-security endpoint","tags":["Recommendations"]}},"/v1/regional-security/status":{"get":{"description":"Reports expose no deterministic narrative fallback; absent or invalid AI output remains unavailable or insufficient evidence.","responses":{"200":{"description":"Hourly analysis-gateway status without provider or model disclosure"}},"summary":"Vendor-neutral isolated hourly analysis-gateway status","tags":["Recommendations"]}},"/v1/reports/incidents":{"post":{"description":"A report enters an isolated moderation queue and never becomes a canonical event automatically.","requestBody":{"content":{"application/json":{"schema":{"properties":{"accepted_terms":{"const":true,"type":"boolean"},"anonymous":{"default":false,"type":"boolean"},"category":{"type":"string"},"contact_email":{"format":"email","type":["string","null"]},"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"description":{"maxLength":5000,"type":"string"},"evidence_urls":{"items":{"format":"uri","pattern":"^https://","type":"string"},"maxItems":20,"type":"array"},"locale":{"enum":["en","ru","ar","es","fr","pt-BR","de","hi","zh-Hans","ja"],"type":"string"},"location_label":{"maxLength":240,"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"title":{"maxLength":180,"type":"string"}},"required":["category","country_code","location_label","occurred_at","title","description","accepted_terms"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Report stored with a public reference"},"422":{"description":"Invalid report"}},"summary":"Submit an anonymous or account-linked incident report","tags":["Reporting"]}},"/v1/reports/incidents/mine":{"get":{"description":"Anonymous submissions are deliberately excluded because they are never linked to an account.","responses":{"200":{"description":"Account-linked incident report history"},"401":{"description":"Authentication required"}},"security":[{"sessionCookie":[]}],"summary":"List incident reports linked to the current account","tags":["Reporting"]}},"/v1/source-portal":{"get":{"description":"Profiles always contains every active membership. The optional profile_id selects only the submissions and messages scope; without it the newest profile is selected deterministically. Foreign profile identifiers return 404 rather than revealing ownership.","parameters":[{"in":"query","name":"profile_id","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourcePortalResponse"}}},"description":"Contributor cabinet"},"401":{"description":"Authentication required"},"404":{"description":"Profile is not visible to the caller"}},"security":[{"sessionCookie":[]}],"summary":"Return the authenticated contributor's profiles, submissions, and reviewer messages","tags":["Source portal"]}},"/v1/source-portal/applications":{"post":{"description":"Creates an isolated contributor profile in submitted state. It does not grant trust, access, or canonical-event publication.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceProfileApplication"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceProfileResponse"}}},"description":"Application recorded"},"409":{"description":"Duplicate alias, idempotency key, or concurrent write"},"422":{"description":"Invalid application or missing mandatory confirmation"}},"security":[{"sessionCookie":[]}],"summary":"Submit a source profile application","tags":["Source portal"]}},"/v1/source-portal/submissions":{"post":{"description":"The report enters a separate human-verification queue. It is never promoted to a canonical event by this endpoint.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionResponse"}}},"description":"Source submission recorded"},"403":{"description":"Profile is not eligible to submit"},"404":{"description":"Profile is not visible to the caller"},"409":{"description":"Observed profile version is stale"},"422":{"description":"Invalid source submission"}},"security":[{"sessionCookie":[]}],"summary":"Submit a report through a contributor-owned source profile","tags":["Source portal"]}},"/v1/source-portal/submissions/{submission_id}/messages":{"post":{"parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceMessageCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSubmissionResponse"}}},"description":"Message appended and submission version advanced"},"404":{"description":"Submission is not visible to the caller"},"409":{"description":"Observed submission version is stale"}},"security":[{"sessionCookie":[]}],"summary":"Add a contributor message to a submission","tags":["Source portal"]}},"/v1/sources/catalog":{"get":{"description":"Restricted insider sources are omitted unless the current session has insider_sources.","responses":{"200":{"description":"Categorized, access-aware source catalog"}},"summary":"Current source projections referenced by canonical events","tags":["Source trust"]}},"/v1/sources/trust-framework":{"get":{"responses":{"200":{"description":"Trust framework"}},"summary":"Versioned trust taxonomy and confirmation rules","tags":["Source trust"]}}},"servers":[{"description":"Same-origin GSIP edge","url":"/api"}],"tags":[{"name":"Intelligence"},{"name":"Autonomous agent"},{"name":"Country intelligence"},{"name":"Identity"},{"name":"Reporting"},{"name":"Source portal"},{"name":"Administration"},{"name":"Source trust"},{"name":"Recommendations"}],"x-gsip-recommendations":{"city_purchase_state":"payment_provider_required","client_selectable_model":false,"client_selectable_prompt":false,"conversation_history_accepted":false,"customer_prompt_accepted":false,"event_classes":["natural_hazard","social_conflict","military_conflict","economic_disruption","emergency","epidemiological","infrastructure","cyber"],"evidence_lookback_hours":72,"free_form_endpoint":"retired_http_410","provider_egress_allowlist":["api.deepseek.com:443"],"provider_tools_enabled":false,"provider_web_access_enabled":false,"ready_report_policy":"stored only; every section requires disclosure-safe relational source lineage","refresh_interval_minutes":60,"report_entitlements":{"city_report":"city_report_purchase","economic_outlook":"recommendations_economic","financial_impact":"recommendations_financial","safety_actions":"recommendations_basic"},"separate_process_gateway":true},"x-gsip-source-access":{"eligible_callers":["approved_company","active_premium_individual"],"insider_entitlement":"insider_sources","public_rule":"Any event containing insider evidence is omitted from the external AI projection before confidence or risk calculation."},"x-gsip-source-trust":{"categories":[{"access_class":"standard","description":"Government, regulator, operator, or first-party authority.","key":"official","label":"Official"},{"access_class":"standard","description":"International, national, regional, and local editorial reporting.","key":"news_media","label":"News media"},{"access_class":"standard","description":"NGO, academic, research, and industry specialist publication.","key":"specialist","label":"Specialist"},{"access_class":"standard","description":"Structured telemetry, remote sensing, and machine observations.","key":"sensor","label":"Sensor"},{"access_class":"standard","description":"Open community and social reporting retained with verification controls.","key":"community","label":"Community"},{"access_class":"standard","description":"Licensed third-party operational data.","key":"commercial","label":"Commercial"},{"access_class":"standard","description":"Direct reports from informants or verified field partners.","key":"field_report","label":"Field report"},{"access_class":"restricted","description":"Non-public human-source reporting with identity protection and audit.","key":"insider","label":"Insider"}],"methodology_version":"gsip-source-trust-v0.2","rule":"Trust tier is assigned by GSIP policy, never by the language model.","tiers":[{"confirmation_policy":"Can provide official confirmation within scope; contradictions still remain visible.","key":"A","label":"Authoritative","meaning":"Verified first-party authority within a documented jurisdiction and event scope.","score_max":100,"score_min":90},{"confirmation_policy":"Normally requires another independent source unless it is primary evidence.","key":"B","label":"Verified","meaning":"Established wire, operational provider, or source with strong validated history.","score_max":89,"score_min":80},{"confirmation_policy":"Requires independent corroboration for confirmed customer-facing events.","key":"C","label":"Corroborated","meaning":"Validated national, regional, local, NGO, or specialist reporting.","score_max":79,"score_min":65},{"confirmation_policy":"May create a signal or lead, but cannot confirm an event alone.","key":"D","label":"Emerging","meaning":"New, inconsistent, or incompletely verified open-source reporting.","score_max":64,"score_min":40},{"confirmation_policy":"Excluded from customer conclusions; retained only for audit or investigation.","key":"E","label":"Quarantined","meaning":"Unverified, contradicted, manipulated, or policy-restricted material.","score_max":39,"score_min":0}]}}