{"openapi":"3.1.0","info":{"title":"iown news service","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sources":{"get":{"summary":"List Sources","operationId":"list_sources_sources_get","parameters":[{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Enabled Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Add Source","operationId":"add_source_sources_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sources/{source_id}/enabled":{"post":{"summary":"Set Source Enabled","operationId":"set_source_enabled_sources__source_id__enabled_post","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"integer","title":"Source Id"}},{"name":"enabled","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sources/seed":{"post":{"summary":"Seed Sources Endpoint","operationId":"seed_sources_endpoint_sources_seed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/primary-source-candidates":{"get":{"summary":"Primary Source Candidates","description":"Rank the official domains our resolved events cite — the finite set of channels\nworth harvesting directly (replicate). With ``probe=true``, also check each for an\nadvertised feed (slower; makes outbound requests).","operationId":"primary_source_candidates_admin_primary_source_candidates_get","parameters":[{"name":"probe","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Probe"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/primary-registry":{"get":{"summary":"Primary Registry Enrolled","description":"Enrollment stats for primary_source_registry.json (news + legislation).","operationId":"primary_registry_enrolled_admin_primary_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/run-cycle":{"post":{"summary":"Run Cycle","description":"Run one harvest → dedup → primary-source → draft → review cycle now.\n\nDrafting uses OpenRouter (OPENROUTER_API_KEY); without a key, items still reach\nthe review queue tagged, with a note that a rewrite is required.","operationId":"run_cycle_admin_run_cycle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/settings":{"get":{"summary":"Get Settings","operationId":"get_settings_admin_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"summary":"Patch Settings","operationId":"patch_settings_admin_settings_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sources/probe":{"post":{"summary":"Probe Source","description":"Dry-run: infer config from minimal input without creating the source.","operationId":"probe_source_sources_probe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutowireIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sources/auto":{"post":{"summary":"Auto Source","description":"Probe + create in one step.","operationId":"auto_source_sources_auto_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutowireIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/email/discover":{"post":{"summary":"Email Discover","description":"Scan the ingest inbox and auto-wire one source per detected newsletter.","operationId":"email_discover_email_discover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDiscoverIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subscriptions":{"put":{"summary":"Upsert Subscription","operationId":"upsert_subscription_subscriptions_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subscriptions/{user_id}":{"get":{"summary":"Get Subscription","operationId":"get_subscription_subscriptions__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"telegram","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/kb/search":{"get":{"summary":"Kb Search","description":"Query the published news KB (Qdrant) — verifies items are retrievable.","operationId":"kb_search_news_kb_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/feed":{"get":{"summary":"Feed","description":"Public published-news feed for the landing page and subscribers.","operationId":"feed_news_feed_get","parameters":[{"name":"jurisdictions","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Jurisdictions"}},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topics"}},{"name":"significance","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Significance"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"date_desc","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/subscribe":{"post":{"summary":"Subscribe Email","operationId":"subscribe_email_news_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSubscribeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/unsubscribe":{"get":{"summary":"Unsubscribe Email","operationId":"unsubscribe_email_news_unsubscribe_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}},{"name":"email","in":"query","required":false,"schema":{"type":"string","default":"","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/review/events":{"get":{"summary":"Review Events","operationId":"review_events_review_events_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"review","title":"Status"}},{"name":"statuses","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Statuses"}},{"name":"jurisdictions","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Jurisdictions"}},{"name":"topics","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Topics"}},{"name":"significance","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Significance"}},{"name":"sources","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Sources"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/events/{event_id}":{"get":{"summary":"Get Event","operationId":"get_event_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Patch Event","description":"Edit event fields (admin re-tag / correct). Works for any status.","operationId":"patch_event_events__event_id__patch","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/review/events/{event_id}/decision":{"post":{"summary":"Decide","operationId":"decide_review_events__event_id__decision_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/review/events/bulk-decision":{"post":{"summary":"Bulk Decide","description":"Approve or reject several events.\n\nPublish is marked immediately. Telegram/email fanout runs in this request\n(production ``deliver_fn`` already hands off to a thread). BGE-M3 KB\nupsert is deferred so the editor is not blocked on embed.","operationId":"bulk_decide_review_events_bulk_decision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDecisionIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/review/events/bulk-delete":{"post":{"summary":"Bulk Delete","description":"Soft-delete selected events (any status except already-missing).","operationId":"bulk_delete_review_events_bulk_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/events/{event_id}/retag":{"post":{"summary":"Retag Event","description":"Re-run tagging (heuristics + LLM) on the event's current text.","operationId":"retag_event_events__event_id__retag_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/events/{event_id}/delete":{"post":{"summary":"Delete Event","description":"Soft-delete (hidden from queues; recoverable via PATCH status).","operationId":"delete_event_events__event_id__delete_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/events/{event_id}/set-primary":{"post":{"summary":"Set Primary","description":"For a needs_primary item: attach an official source URL, fetch it, draft + tag.","operationId":"set_primary_events__event_id__set_primary_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPrimaryIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/impact-scan":{"post":{"summary":"Impact Scan","operationId":"impact_scan_news_impact_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImpactScanIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/assess-vault":{"post":{"summary":"Assess Vault Endpoint","operationId":"assess_vault_endpoint_news_assess_vault_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessVaultIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/vault-feed":{"get":{"summary":"Vault Feed","operationId":"vault_feed_news_vault_feed_get","parameters":[{"name":"vault_id","in":"query","required":true,"schema":{"type":"string","title":"Vault Id"}},{"name":"user_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"User Id"}},{"name":"workflow","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow"}},{"name":"unread_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unread Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/object-feed":{"get":{"summary":"Object Feed","operationId":"object_feed_news_object_feed_get","parameters":[{"name":"vault_id","in":"query","required":true,"schema":{"type":"string","title":"Vault Id"}},{"name":"object_id","in":"query","required":true,"schema":{"type":"string","title":"Object Id"}},{"name":"object_kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Object Kind"}},{"name":"user_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/assessments/{assessment_id}/read":{"post":{"summary":"Mark Assessment Read","operationId":"mark_assessment_read_news_assessments__assessment_id__read_post","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"integer","title":"Assessment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentReadIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/assessments/{assessment_id}":{"patch":{"summary":"Patch Assessment","operationId":"patch_assessment_news_assessments__assessment_id__patch","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"integer","title":"Assessment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentPatchIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/heatmap":{"get":{"summary":"Heatmap","operationId":"heatmap_news_heatmap_get","parameters":[{"name":"vault_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Id"}},{"name":"row","in":"query","required":false,"schema":{"type":"string","default":"jurisdiction","title":"Row"}},{"name":"col","in":"query","required":false,"schema":{"type":"string","default":"direction","title":"Col"}},{"name":"user_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/assessments/{assessment_id}/discuss":{"post":{"summary":"Discuss Assessment","operationId":"discuss_assessment_news_assessments__assessment_id__discuss_post","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"integer","title":"Assessment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscussIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/news/assessments/{assessment_id}/explore":{"post":{"summary":"Explore Assessment","operationId":"explore_assessment_news_assessments__assessment_id__explore_post","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"integer","title":"Assessment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExploreIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AssessVaultIn":{"properties":{"vault_id":{"type":"string","title":"Vault Id"},"user_id":{"type":"string","title":"User Id"},"vault_data":{"additionalProperties":true,"type":"object","title":"Vault Data","default":{}},"graph_version":{"type":"string","title":"Graph Version","default":""},"model_version":{"type":"string","title":"Model Version","default":""},"event_ids":{"items":{"type":"integer"},"type":"array","title":"Event Ids","default":[]},"limit":{"type":"integer","title":"Limit","default":80}},"type":"object","required":["vault_id","user_id"],"title":"AssessVaultIn"},"AssessmentPatchIn":{"properties":{"workflow_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"confirm":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Confirm"},"dismiss":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dismiss"}},"type":"object","title":"AssessmentPatchIn"},"AssessmentReadIn":{"properties":{"user_id":{"type":"string","title":"User Id"}},"type":"object","required":["user_id"],"title":"AssessmentReadIn"},"AutowireIn":{"properties":{"kind":{"type":"string","title":"Kind"},"input":{"type":"string","title":"Input"}},"type":"object","required":["kind","input"],"title":"AutowireIn","description":"Minimal admin input — the system infers the rest."},"BulkDecisionIn":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","title":"Ids"},"decision":{"type":"string","title":"Decision"},"editor":{"type":"string","title":"Editor","default":""},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["ids","decision"],"title":"BulkDecisionIn"},"BulkDeleteIn":{"properties":{"ids":{"items":{"type":"integer"},"type":"array","title":"Ids"}},"type":"object","required":["ids"],"title":"BulkDeleteIn"},"DecisionIn":{"properties":{"decision":{"type":"string","title":"Decision"},"editor":{"type":"string","title":"Editor","default":""},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["decision"],"title":"DecisionIn"},"DiscussIn":{"properties":{"user_id":{"type":"string","title":"User Id","default":""},"chat_id":{"type":"string","title":"Chat Id","default":""},"object_id":{"type":"string","title":"Object Id","default":""},"object_kind":{"type":"string","title":"Object Kind","default":""},"graph_version":{"type":"string","title":"Graph Version","default":""},"model_version":{"type":"string","title":"Model Version","default":""}},"type":"object","title":"DiscussIn"},"EmailDiscoverIn":{"properties":{"host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host"},"port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Port"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"folder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder"},"create":{"type":"boolean","title":"Create","default":false}},"type":"object","title":"EmailDiscoverIn","description":"Scan an inbox and auto-wire one source per detected newsletter.\n\nCreds are optional here: production reads them from env/secret (config.IMAP_*). Passing\nthem inline is for server-to-server calls; never collect them in a plaintext UI field."},"EmailSubscribeIn":{"properties":{"email":{"type":"string","title":"Email"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics","default":[]},"jurisdictions":{"items":{"type":"string"},"type":"array","title":"Jurisdictions","default":[]},"min_significance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Significance"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"type":"object","required":["email"],"title":"EmailSubscribeIn"},"EventPatchIn":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"paraphrase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paraphrase"},"jurisdiction_iso":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Iso"},"jurisdiction_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Name"},"primary_theme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Theme"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"significance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Significance"},"effective_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effective Date"},"related_jurisdictions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Jurisdictions"},"jurisdictions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Jurisdictions"},"themes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Themes"},"primary_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Source Url"},"review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Notes"}},"type":"object","title":"EventPatchIn","description":"Editable event fields (admin re-tag / correct). Any omitted field is left unchanged."},"ExploreIn":{"properties":{"user_id":{"type":"string","title":"User Id","default":""}},"type":"object","title":"ExploreIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ImpactScanIn":{"properties":{"event_id":{"type":"integer","title":"Event Id"},"vaults":{"items":{"$ref":"#/components/schemas/VaultIn"},"type":"array","title":"Vaults"}},"type":"object","required":["event_id","vaults"],"title":"ImpactScanIn"},"SetPrimaryIn":{"properties":{"url":{"type":"string","title":"Url"},"editor":{"type":"string","title":"Editor","default":""}},"type":"object","required":["url"],"title":"SetPrimaryIn"},"SettingsIn":{"properties":{"auto_publish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Publish"},"min_item_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Item Date"},"fresh_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fresh Days"},"qdrant_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Qdrant Enabled"}},"type":"object","title":"SettingsIn"},"SourceIn":{"properties":{"kind":{"type":"string","title":"Kind"},"handle":{"type":"string","title":"Handle"},"name":{"type":"string","title":"Name","default":""},"jurisdiction_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction Hint"},"enabled":{"type":"boolean","title":"Enabled","default":true},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}}},"type":"object","required":["kind","handle"],"title":"SourceIn"},"SubscriptionIn":{"properties":{"user_id":{"type":"string","title":"User Id"},"channel":{"type":"string","title":"Channel","default":"telegram"},"telegram_chat_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Telegram Chat Id"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics","default":[]},"jurisdictions":{"items":{"type":"string"},"type":"array","title":"Jurisdictions","default":[]},"min_significance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Significance"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["user_id"],"title":"SubscriptionIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VaultIn":{"properties":{"vault_id":{"type":"string","title":"Vault Id"},"user_id":{"type":"string","title":"User Id"},"vault_data":{"additionalProperties":true,"type":"object","title":"Vault Data","default":{}}},"type":"object","required":["vault_id","user_id"],"title":"VaultIn"}}}}