SYMBOL INDEX (383 symbols across 23 files) FILE: api_server.py function check_rate_limit (line 63) | def check_rate_limit(client_ip: str) -> bool: function validate_filename (line 81) | def validate_filename(filename: str) -> bool: function startup_event (line 141) | async def startup_event(): class WorkflowSummary (line 155) | class WorkflowSummary(BaseModel): class Config (line 169) | class Config: method convert_active (line 175) | def convert_active(cls, v): class SearchResponse (line 181) | class SearchResponse(BaseModel): class StatsResponse (line 191) | class StatsResponse(BaseModel): function root (line 203) | async def root(): function health_check (line 223) | async def health_check(): function get_stats (line 229) | async def get_stats(): function search_workflows (line 239) | async def search_workflows( function get_workflow_detail (line 309) | async def get_workflow_detail(filename: str, request: Request): function download_workflow (line 371) | async def download_workflow(filename: str, request: Request): function get_workflow_diagram (line 436) | async def get_workflow_diagram(filename: str, request: Request): function generate_mermaid_diagram (line 502) | def generate_mermaid_diagram(nodes: List[Dict], connections: Dict) -> str: function reindex_workflows (line 574) | async def reindex_workflows( function get_integrations (line 617) | async def get_integrations(): function get_categories (line 630) | async def get_categories(): function get_category_mappings (line 667) | async def get_category_mappings(): function search_workflows_by_category (line 695) | async def search_workflows_by_category( function global_exception_handler (line 752) | async def global_exception_handler(request, exc): function create_static_directory (line 767) | def create_static_directory(): function run_server (line 774) | def run_server(host: str = "127.0.0.1", port: int = 8000, reload: bool =... FILE: docs/js/app.js class WorkflowApp (line 6) | class WorkflowApp { method constructor (line 7) | constructor() { method init (line 11) | init() { method setupThemeToggle (line 18) | setupThemeToggle() { method setupKeyboardShortcuts (line 26) | setupKeyboardShortcuts() { method setupAnalytics (line 48) | setupAnalytics() { method setupServiceWorker (line 74) | setupServiceWorker() { method debounce (line 82) | debounce(func, wait) { method formatNumber (line 100) | formatNumber(num) { method debounce (line 113) | debounce(func, wait) { method copyToClipboard (line 128) | async copyToClipboard(text) { method showNotification (line 147) | showNotification(message, type = 'info', duration = 3000) { FILE: docs/js/search.js class WorkflowSearch (line 6) | class WorkflowSearch { method constructor (line 7) | constructor() { method init (line 29) | async init() { method loadSearchIndex (line 42) | async loadSearchIndex() { method setupEventListeners (line 55) | setupEventListeners() { method populateFilters (line 76) | populateFilters() { method updateStats (line 86) | updateStats() { method handleSearch (line 96) | handleSearch() { method searchWorkflows (line 108) | searchWorkflows(query, filters = {}) { method showFeaturedWorkflows (line 145) | showFeaturedWorkflows() { method displayResults (line 158) | displayResults(reset = false) { method createWorkflowCard (line 190) | createWorkflowCard(workflow) { method openWorkflowDetails (line 233) | openWorkflowDetails(workflow) { method createDetailsModal (line 246) | createDetailsModal(workflow) { method updateResultsHeader (line 335) | updateResultsHeader(query, filters) { method loadMoreResults (line 355) | loadMoreResults() { method showLoading (line 359) | showLoading(show) { method showNoResults (line 364) | showNoResults() { method hideNoResults (line 369) | hideNoResults() { method showError (line 373) | showError(message) { method escapeHtml (line 390) | escapeHtml(text) { method debounce (line 396) | debounce(func, wait) { FILE: medcards-ai/src/types/database.ts type User (line 10) | interface User { type UserProgress (line 22) | interface UserProgress { type SpecialtyProgress (line 37) | interface SpecialtyProgress { type UserPreferences (line 46) | interface UserPreferences { type ClinicalCase (line 53) | interface ClinicalCase { type PatientData (line 81) | interface PatientData { type CaseOption (line 100) | interface CaseOption { type Interaction (line 106) | interface Interaction { type Hint (line 126) | interface Hint { type AIFeedback (line 133) | interface AIFeedback { type ChatMessage (line 174) | interface ChatMessage { type Badge (line 186) | interface Badge { type BadgeCriteria (line 199) | interface BadgeCriteria { type UserBadge (line 212) | interface UserBadge { type NextCaseResponse (line 224) | interface NextCaseResponse { type SubmitAnswerResponse (line 245) | interface SubmitAnswerResponse { type DashboardStats (line 253) | interface DashboardStats { type SubscriptionStatus (line 288) | type SubscriptionStatus = User['subscription_status']; type Specialty (line 289) | type Specialty = string; type DifficultyLevel (line 290) | type DifficultyLevel = ClinicalCase['difficulty_level']; type BadgeCategory (line 291) | type BadgeCategory = Badge['category']; type BadgeRarity (line 292) | type BadgeRarity = Badge['rarity']; type CaseFilter (line 298) | interface CaseFilter { type InteractionFilter (line 307) | interface InteractionFilter { FILE: medcards-ai/supabase/schema-network-effects.sql type case_difficulty_calibration (line 11) | CREATE TABLE case_difficulty_calibration ( type idx_calibration_case (line 32) | CREATE INDEX idx_calibration_case ON case_difficulty_calibration(case_id) type idx_calibration_updated (line 33) | CREATE INDEX idx_calibration_updated ON case_difficulty_calibration(upda... type prediction_model_versions (line 36) | CREATE TABLE prediction_model_versions ( type idx_model_active (line 67) | CREATE INDEX idx_model_active ON prediction_model_versions(is_active) WH... type community_cases (line 73) | CREATE TABLE community_cases ( type idx_community_cases_creator (line 128) | CREATE INDEX idx_community_cases_creator ON community_cases(created_by_u... type idx_community_cases_status (line 129) | CREATE INDEX idx_community_cases_status ON community_cases(status) type idx_community_cases_specialty (line 130) | CREATE INDEX idx_community_cases_specialty ON community_cases(specialty)... type idx_community_cases_rating (line 131) | CREATE INDEX idx_community_cases_rating ON community_cases(community_rat... type case_reviews (line 134) | CREATE TABLE case_reviews ( type idx_reviews_case (line 162) | CREATE INDEX idx_reviews_case ON case_reviews(case_id) type idx_reviews_expert (line 163) | CREATE INDEX idx_reviews_expert ON case_reviews(is_expert_review) WHERE ... type case_flags (line 166) | CREATE TABLE case_flags ( type idx_flags_case (line 189) | CREATE INDEX idx_flags_case ON case_flags(case_id) type idx_flags_status (line 190) | CREATE INDEX idx_flags_status ON case_flags(status) WHERE status = 'pend... type study_groups (line 196) | CREATE TABLE study_groups ( type idx_groups_public (line 232) | CREATE INDEX idx_groups_public ON study_groups(is_public) WHERE is_publi... type idx_groups_creator (line 233) | CREATE INDEX idx_groups_creator ON study_groups(created_by_user_id) type idx_groups_exam (line 234) | CREATE INDEX idx_groups_exam ON study_groups(target_exam) WHERE is_archi... type study_group_members (line 236) | CREATE TABLE study_group_members ( type idx_group_members_user (line 255) | CREATE INDEX idx_group_members_user ON study_group_members(user_id) type idx_group_members_active (line 256) | CREATE INDEX idx_group_members_active ON study_group_members(last_active... type group_activities (line 259) | CREATE TABLE group_activities ( type idx_activities_group (line 280) | CREATE INDEX idx_activities_group ON group_activities(group_id, created_... type group_challenges (line 286) | CREATE TABLE group_challenges ( type idx_challenges_group (line 325) | CREATE INDEX idx_challenges_group ON group_challenges(group_id) type idx_challenges_status (line 326) | CREATE INDEX idx_challenges_status ON group_challenges(status, start_time) type challenge_participants (line 328) | CREATE TABLE challenge_participants ( type idx_participants_challenge (line 346) | CREATE INDEX idx_participants_challenge ON challenge_participants(challe... type idx_participants_user (line 347) | CREATE INDEX idx_participants_user ON challenge_participants(user_id) type leaderboards (line 350) | CREATE TABLE leaderboards ( type idx_leaderboards_type (line 386) | CREATE INDEX idx_leaderboards_type ON leaderboards(leaderboard_type, per... type peer_interactions (line 392) | CREATE TABLE peer_interactions ( type idx_interactions_to_user (line 415) | CREATE INDEX idx_interactions_to_user ON peer_interactions(to_user_id, s... type idx_interactions_from_user (line 416) | CREATE INDEX idx_interactions_from_user ON peer_interactions(from_user_id) type study_preferences (line 419) | CREATE TABLE study_preferences ( type idx_preferences_looking (line 449) | CREATE INDEX idx_preferences_looking ON study_preferences(looking_for_bu... type idx_preferences_exam (line 450) | CREATE INDEX idx_preferences_exam ON study_preferences(target_exam, exam... type study_buddy_matches (line 452) | CREATE TABLE study_buddy_matches ( type idx_matches_user1 (line 486) | CREATE INDEX idx_matches_user1 ON study_buddy_matches(user1_id, status) type idx_matches_user2 (line 487) | CREATE INDEX idx_matches_user2 ON study_buddy_matches(user2_id, status) type premium_content (line 493) | CREATE TABLE premium_content ( type idx_premium_content_creator (line 559) | CREATE INDEX idx_premium_content_creator ON premium_content(creator_user... type idx_premium_content_published (line 560) | CREATE INDEX idx_premium_content_published ON premium_content(status, pu... type idx_premium_content_featured (line 561) | CREATE INDEX idx_premium_content_featured ON premium_content(is_featured... type idx_premium_content_category (line 562) | CREATE INDEX idx_premium_content_category ON premium_content(category, a... type content_purchases (line 564) | CREATE TABLE content_purchases ( type idx_purchases_user (line 591) | CREATE INDEX idx_purchases_user ON content_purchases(user_id) type idx_purchases_content (line 592) | CREATE INDEX idx_purchases_content ON content_purchases(content_id) type idx_purchases_recent (line 593) | CREATE INDEX idx_purchases_recent ON content_purchases(purchased_at DESC) type creator_profiles (line 596) | CREATE TABLE creator_profiles ( type idx_creators_verified (line 636) | CREATE INDEX idx_creators_verified ON creator_profiles(is_verified_educa... type idx_creators_revenue (line 637) | CREATE INDEX idx_creators_revenue ON creator_profiles(total_revenue_earn... type creator_followers (line 639) | CREATE TABLE creator_followers ( type idx_followers_creator (line 649) | CREATE INDEX idx_followers_creator ON creator_followers(creator_user_id) type idx_followers_user (line 650) | CREATE INDEX idx_followers_user ON creator_followers(follower_user_id) type creator_payouts (line 653) | CREATE TABLE creator_payouts ( type idx_payouts_creator (line 678) | CREATE INDEX idx_payouts_creator ON creator_payouts(creator_user_id, cre... type idx_payouts_status (line 679) | CREATE INDEX idx_payouts_status ON creator_payouts(status) WHERE status ... type forum_categories (line 685) | CREATE TABLE forum_categories ( type forum_posts (line 704) | CREATE TABLE forum_posts ( type idx_posts_category (line 737) | CREATE INDEX idx_posts_category ON forum_posts(category_id, created_at D... type idx_posts_user (line 738) | CREATE INDEX idx_posts_user ON forum_posts(user_id) type idx_posts_popular (line 739) | CREATE INDEX idx_posts_popular ON forum_posts(upvote_count DESC, created... type idx_posts_case (line 740) | CREATE INDEX idx_posts_case ON forum_posts(related_case_id) WHERE relate... type forum_comments (line 742) | CREATE TABLE forum_comments ( type idx_comments_post (line 764) | CREATE INDEX idx_comments_post ON forum_comments(post_id, created_at) type idx_comments_user (line 765) | CREATE INDEX idx_comments_user ON forum_comments(user_id) type idx_comments_parent (line 766) | CREATE INDEX idx_comments_parent ON forum_comments(parent_comment_id) WH... type forum_votes (line 768) | CREATE TABLE forum_votes ( type idx_votes_votable (line 781) | CREATE INDEX idx_votes_votable ON forum_votes(votable_type, votable_id) function update_group_stats (line 788) | CREATE OR REPLACE FUNCTION update_group_stats() function update_creator_stats (line 811) | CREATE OR REPLACE FUNCTION update_creator_stats() function update_post_comment_count (line 840) | CREATE OR REPLACE FUNCTION update_post_comment_count() type network_metrics_daily (line 951) | CREATE UNIQUE INDEX ON network_metrics_daily(date) FILE: medcards-ai/supabase/schema.sql type users (line 14) | CREATE TABLE users ( type clinical_cases (line 56) | CREATE TABLE clinical_cases ( type interactions (line 109) | CREATE TABLE interactions ( type chat_history (line 159) | CREATE TABLE chat_history ( type badges (line 182) | CREATE TABLE badges ( type user_badges (line 211) | CREATE TABLE user_badges ( type idx_users_email (line 230) | CREATE INDEX idx_users_email ON users(email) type idx_users_subscription (line 231) | CREATE INDEX idx_users_subscription ON users(subscription_status) WHERE ... type idx_cases_specialty (line 234) | CREATE INDEX idx_cases_specialty ON clinical_cases(specialty) type idx_cases_difficulty (line 235) | CREATE INDEX idx_cases_difficulty ON clinical_cases(difficulty_level) type idx_cases_active (line 236) | CREATE INDEX idx_cases_active ON clinical_cases(is_active) WHERE is_acti... type idx_cases_specialty_difficulty (line 237) | CREATE INDEX idx_cases_specialty_difficulty ON clinical_cases(specialty,... type idx_cases_success_rate (line 238) | CREATE INDEX idx_cases_success_rate ON clinical_cases(global_success_rate) type idx_interactions_user (line 241) | CREATE INDEX idx_interactions_user ON interactions(user_id) type idx_interactions_case (line 242) | CREATE INDEX idx_interactions_case ON interactions(case_id) type idx_interactions_user_created (line 243) | CREATE INDEX idx_interactions_user_created ON interactions(user_id, crea... type idx_interactions_session (line 244) | CREATE INDEX idx_interactions_session ON interactions(session_id) WHERE ... type idx_interactions_user_case (line 245) | CREATE INDEX idx_interactions_user_case ON interactions(user_id, case_id) type idx_chat_user (line 248) | CREATE INDEX idx_chat_user ON chat_history(user_id) type idx_chat_session (line 249) | CREATE INDEX idx_chat_session ON chat_history(session_id) WHERE session_... type idx_chat_user_created (line 250) | CREATE INDEX idx_chat_user_created ON chat_history(user_id, created_at D... type idx_user_badges_user (line 253) | CREATE INDEX idx_user_badges_user ON user_badges(user_id) type idx_user_badges_badge (line 254) | CREATE INDEX idx_user_badges_badge ON user_badges(badge_id) function update_case_statistics (line 305) | CREATE OR REPLACE FUNCTION update_case_statistics() function update_updated_at_column (line 329) | CREATE OR REPLACE FUNCTION update_updated_at_column() FILE: run.py function print_banner (line 12) | def print_banner(): function check_requirements (line 18) | def check_requirements() -> bool: function setup_directories (line 46) | def setup_directories(): function setup_database (line 56) | def setup_database(force_reindex: bool = False, skip_index: bool = False... function start_server (line 88) | def start_server(host: str = "127.0.0.1", port: int = 8000, reload: bool... function main (line 113) | def main(): FILE: scripts/generate_search_index.py function generate_static_search_index (line 19) | def generate_static_search_index(db_path: str, output_dir: str) -> Dict[... function load_existing_categories (line 98) | def load_existing_categories() -> Dict[str, str]: function get_workflow_category (line 118) | def get_workflow_category( function determine_category (line 134) | def determine_category( function format_category_name (line 150) | def format_category_name(category_key: str) -> str: function get_category_list (line 169) | def get_category_list(categories: Dict[str, List[str]]) -> List[str]: function get_popular_integrations (line 192) | def get_popular_integrations(workflows: List[Dict]) -> List[Dict[str, An... function extract_folder_from_filename (line 208) | def extract_folder_from_filename(filename: str) -> str: function save_search_index (line 218) | def save_search_index(search_index: Dict[str, Any], output_dir: str): function main (line 251) | def main(): FILE: scripts/update_github_pages.py function update_html_timestamp (line 14) | def update_html_timestamp(html_file: str): function update_api_timestamp (line 51) | def update_api_timestamp(api_dir: str): function create_github_pages_config (line 88) | def create_github_pages_config(): function verify_github_pages_structure (line 183) | def verify_github_pages_structure(): function fix_base_url_references (line 217) | def fix_base_url_references(): function main (line 261) | def main(): FILE: scripts/update_readme_stats.py function get_current_stats (line 19) | def get_current_stats(): function get_category_list (line 46) | def get_category_list(categories): function update_readme_stats (line 89) | def update_readme_stats(stats): function main (line 208) | def main(): FILE: src/ai_assistant.py class ChatMessage (line 15) | class ChatMessage(BaseModel): class AIResponse (line 20) | class AIResponse(BaseModel): class WorkflowAssistant (line 27) | class WorkflowAssistant: method __init__ (line 28) | def __init__(self, db_path: str = "workflows.db"): method get_db_connection (line 32) | def get_db_connection(self): method search_workflows_intelligent (line 37) | def search_workflows_intelligent(self, query: str, limit: int = 5) -> ... method extract_keywords (line 85) | def extract_keywords(self, query: str) -> List[str]: method detect_intent (line 122) | def detect_intent(self, query: str) -> str: method generate_response (line 146) | def generate_response(self, query: str, workflows: List[Dict]) -> str: method get_suggestions (line 189) | def get_suggestions(self, query: str) -> List[str]: method calculate_confidence (line 228) | def calculate_confidence(self, query: str, workflows: List[Dict]) -> f... function chat_with_assistant (line 257) | async def chat_with_assistant(message: ChatMessage): function chat_interface (line 284) | async def chat_interface(): FILE: src/analytics_engine.py class AnalyticsResponse (line 17) | class AnalyticsResponse(BaseModel): class WorkflowAnalytics (line 25) | class WorkflowAnalytics: method __init__ (line 26) | def __init__(self, db_path: str = "workflows.db"): method get_db_connection (line 29) | def get_db_connection(self): method get_workflow_analytics (line 34) | def get_workflow_analytics(self) -> Dict[str, Any]: method analyze_workflow_patterns (line 127) | def analyze_workflow_patterns(self, conn) -> Dict[str, Any]: method categorize_service (line 185) | def categorize_service(self, service: str) -> str: method generate_recommendations (line 211) | def generate_recommendations( method get_trend_analysis (line 273) | def get_trend_analysis(self, days: int = 30) -> Dict[str, Any]: method get_usage_insights (line 294) | def get_usage_insights(self) -> Dict[str, Any]: function get_analytics_overview (line 351) | async def get_analytics_overview(): function get_trend_analysis (line 370) | async def get_trend_analysis(days: int = Query(30, ge=1, le=365)): function get_usage_insights (line 379) | async def get_usage_insights(): function get_analytics_dashboard (line 388) | async def get_analytics_dashboard(): FILE: src/community_features.py class WorkflowRating (line 15) | class WorkflowRating: class WorkflowStats (line 28) | class WorkflowStats: class CommunityFeatures (line 40) | class CommunityFeatures: method __init__ (line 43) | def __init__(self, db_path: str = "workflows.db"): method init_community_tables (line 48) | def init_community_tables(self): method add_rating (line 128) | def add_rating( method get_workflow_ratings (line 161) | def get_workflow_ratings( method get_workflow_stats (line 196) | def get_workflow_stats(self, workflow_id: str) -> Optional[WorkflowSta... method increment_view (line 226) | def increment_view(self, workflow_id: str): method increment_download (line 251) | def increment_download(self, workflow_id: str): method get_top_rated_workflows (line 276) | def get_top_rated_workflows(self, limit: int = 10) -> List[Dict]: method get_most_popular_workflows (line 308) | def get_most_popular_workflows(self, limit: int = 10) -> List[Dict]: method create_collection (line 339) | def create_collection( method get_user_collections (line 376) | def get_user_collections(self, user_id: str) -> List[Dict]: method _update_workflow_stats (line 407) | def _update_workflow_stats(self, workflow_id: str): function create_community_api_endpoints (line 439) | def create_community_api_endpoints(app): FILE: src/database.js function getAllJsonFiles (line 6) | async function getAllJsonFiles(dir) { class WorkflowDatabase (line 19) | class WorkflowDatabase { method constructor (line 20) | constructor(dbPath = "database/workflows.db") { method initialize (line 27) | async initialize() { method initDatabase (line 33) | async initDatabase() { method createTables (line 56) | async createTables() { method getFileHash (line 136) | getFileHash(filePath) { method formatWorkflowName (line 141) | formatWorkflowName(filename) { method analyzeWorkflow (line 171) | analyzeWorkflow(filePath) { method analyzeNodes (line 241) | analyzeNodes(nodes) { method generateDescription (line 274) | generateDescription(workflow, triggerType, integrations) { method indexWorkflows (line 301) | async indexWorkflows(forceReindex = false) { method getWorkflowByFilename (line 344) | async getWorkflowByFilename(filename) { method upsertWorkflow (line 357) | async upsertWorkflow(workflow) { method buildFTSQuery (line 392) | buildFTSQuery(query) { method searchWorkflows (line 431) | async searchWorkflows( method getStats (line 539) | async getStats() { method getWorkflowDetail (line 622) | async getWorkflowDetail(filename) { method close (line 663) | close() { FILE: src/enhanced_api.py class WorkflowSearchRequest (line 21) | class WorkflowSearchRequest(BaseModel): class WorkflowRecommendationRequest (line 34) | class WorkflowRecommendationRequest(BaseModel): class AnalyticsRequest (line 43) | class AnalyticsRequest(BaseModel): class EnhancedAPI (line 50) | class EnhancedAPI: method __init__ (line 53) | def __init__(self, db_path: str = "workflows.db"): method _setup_middleware (line 65) | def _setup_middleware(self): method _setup_routes (line 79) | def _setup_routes(self): method _search_workflows_enhanced (line 232) | def _search_workflows_enhanced(self, **kwargs) -> List[Dict]: method _advanced_search (line 317) | def _advanced_search(self, request: WorkflowSearchRequest) -> List[Dict]: method _get_workflow_details (line 332) | def _get_workflow_details( method _get_recommendations (line 387) | def _get_recommendations( method _get_trending_workflows (line 421) | def _get_trending_workflows(self, limit: int) -> List[Dict]: method _get_analytics_overview (line 425) | def _get_analytics_overview(self) -> Dict: method _get_custom_analytics (line 456) | def _get_custom_analytics(self, request: AnalyticsRequest) -> Dict: method _get_health_status (line 466) | def _get_health_status(self) -> Dict: method _get_related_workflows (line 498) | def _get_related_workflows(self, workflow_id: str, limit: int = 5) -> ... method run (line 535) | def run(self, host: str = "127.0.0.1", port: int = 8000, debug: bool =... FILE: src/index-workflows.js function printBanner (line 6) | function printBanner() { function indexWorkflows (line 11) | async function indexWorkflows(force = false) { function main (line 52) | async function main() { FILE: src/init-db.js function initializeDatabase (line 7) | async function initializeDatabase() { FILE: src/integration_hub.py class IntegrationConfig (line 15) | class IntegrationConfig(BaseModel): class WebhookPayload (line 22) | class WebhookPayload(BaseModel): class IntegrationHub (line 28) | class IntegrationHub: method __init__ (line 29) | def __init__(self): method register_integration (line 33) | def register_integration(self, config: IntegrationConfig): method sync_with_github (line 37) | async def sync_with_github(self, repo: str, token: str) -> Dict[str, A... method sync_with_slack (line 65) | async def sync_with_slack(self, webhook_url: str, message: str) -> Dic... method sync_with_discord (line 88) | async def sync_with_discord(self, webhook_url: str, message: str) -> D... method export_to_airtable (line 107) | async def export_to_airtable( method sync_with_notion (line 160) | async def sync_with_notion( method register_webhook (line 231) | def register_webhook(self, endpoint: str, handler): method handle_webhook (line 235) | async def handle_webhook(self, endpoint: str, payload: WebhookPayload): function sync_github (line 251) | async def sync_github(repo: str, token: str): function notify_slack (line 261) | async def notify_slack(webhook_url: str, message: str): function notify_discord (line 271) | async def notify_discord(webhook_url: str, message: str): function export_airtable (line 281) | async def export_airtable( function sync_notion (line 295) | async def sync_notion(database_id: str, token: str, workflows: List[Dict]): function handle_webhook_endpoint (line 305) | async def handle_webhook_endpoint(endpoint: str, payload: WebhookPayload): function get_integration_status (line 315) | async def get_integration_status(): function get_integration_dashboard (line 325) | async def get_integration_dashboard(): FILE: src/performance_monitor.py class PerformanceMetrics (line 21) | class PerformanceMetrics(BaseModel): class Alert (line 34) | class Alert(BaseModel): class PerformanceMonitor (line 43) | class PerformanceMonitor: method __init__ (line 44) | def __init__(self, db_path: str = "workflows.db"): method start_monitoring (line 52) | def start_monitoring(self): method _monitor_loop (line 59) | def _monitor_loop(self): method _collect_metrics (line 82) | def _collect_metrics(self) -> PerformanceMetrics: method _measure_api_time (line 139) | def _measure_api_time(self, endpoint: str) -> float: method _get_workflow_executions (line 146) | def _get_workflow_executions(self) -> int: method _calculate_error_rate (line 153) | def _calculate_error_rate(self) -> float: method _check_alerts (line 160) | def _check_alerts(self, metrics: PerformanceMetrics): method _create_alert (line 195) | def _create_alert(self, alert_type: str, severity: str, message: str): method _broadcast_metrics (line 213) | def _broadcast_metrics(self, metrics: PerformanceMetrics): method _broadcast_alert (line 219) | def _broadcast_alert(self, alert: Alert): method _broadcast_to_websockets (line 224) | def _broadcast_to_websockets(self, message: dict): method get_metrics_summary (line 237) | def get_metrics_summary(self) -> Dict[str, Any]: method get_historical_metrics (line 262) | def get_historical_metrics(self, hours: int = 24) -> List[Dict]: method resolve_alert (line 273) | def resolve_alert(self, alert_id: str) -> bool: function get_current_metrics (line 291) | async def get_current_metrics(): function get_historical_metrics (line 297) | async def get_historical_metrics(hours: int = 24): function get_alerts (line 303) | async def get_alerts(): function resolve_alert (line 309) | async def resolve_alert(alert_id: str): function websocket_endpoint (line 319) | async def websocket_endpoint(websocket: WebSocket): function get_monitoring_dashboard (line 333) | async def get_monitoring_dashboard(): FILE: src/server.js function generateMermaidDiagram (line 182) | function generateMermaidDiagram(nodes, connections) { function sanitizeNodeId (line 213) | function sanitizeNodeId(nodeName) { function startServer (line 318) | function startServer(port = 8000, host = '127.0.0.1') { FILE: src/user_management.py class User (line 28) | class User(BaseModel): class UserCreate (line 38) | class UserCreate(BaseModel): class UserLogin (line 46) | class UserLogin(BaseModel): class UserUpdate (line 51) | class UserUpdate(BaseModel): class Token (line 58) | class Token(BaseModel): class UserManager (line 64) | class UserManager: method __init__ (line 65) | def __init__(self, db_path: str = "users.db"): method init_database (line 69) | def init_database(self): method create_default_admin (line 116) | def create_default_admin(self): method hash_password (line 155) | def hash_password(self, password: str) -> str: method verify_password (line 159) | def verify_password(self, password: str, hashed: str) -> bool: method create_user (line 163) | def create_user(self, user_data: UserCreate) -> User: method authenticate_user (line 212) | def authenticate_user(self, username: str, password: str) -> Optional[... method create_access_token (line 240) | def create_access_token(self, user: User) -> str: method verify_token (line 251) | def verify_token(self, token: str) -> Optional[User]: method get_user_by_id (line 266) | def get_user_by_id(self, user_id: int) -> Optional[User]: method get_all_users (line 295) | def get_all_users(self) -> List[User]: method update_user (line 322) | def update_user(self, user_id: int, update_data: UserUpdate) -> Option... method delete_user (line 365) | def delete_user(self, user_id: int) -> bool: function get_current_user (line 388) | def get_current_user( function require_admin (line 405) | def require_admin(current_user: User = Depends(get_current_user)) -> User: function register_user (line 415) | async def register_user(user_data: UserCreate): function login_user (line 427) | async def login_user(login_data: UserLogin): function get_current_user_info (line 448) | async def get_current_user_info(current_user: User = Depends(get_current... function get_all_users (line 454) | async def get_all_users(admin: User = Depends(require_admin)): function get_user (line 460) | async def get_user(user_id: int, current_user: User = Depends(get_curren... function update_user (line 474) | async def update_user( function delete_user (line 496) | async def delete_user(user_id: int, admin: User = Depends(require_admin)): function get_auth_dashboard (line 506) | async def get_auth_dashboard(): FILE: test_workflows.py function test_sample_workflows (line 11) | def test_sample_workflows(): FILE: workflow_db.py class WorkflowDatabase (line 16) | class WorkflowDatabase: method __init__ (line 19) | def __init__(self, db_path: str = None): method init_database (line 27) | def init_database(self): method get_file_hash (line 110) | def get_file_hash(self, file_path: str) -> str: method format_workflow_name (line 118) | def format_workflow_name(self, filename: str) -> str: method analyze_workflow_file (line 156) | def analyze_workflow_file(self, file_path: str) -> Optional[Dict[str, ... method analyze_nodes (line 223) | def analyze_nodes(self, nodes: List[Dict]) -> Tuple[str, set]: method generate_description (line 407) | def generate_description( method index_all_workflows (line 455) | def index_all_workflows(self, force_reindex: bool = False) -> Dict[str... method search_workflows (line 539) | def search_workflows( method get_stats (line 626) | def get_stats(self) -> Dict[str, Any]: method get_service_categories (line 682) | def get_service_categories(self) -> Dict[str, List[str]]: method search_by_category (line 739) | def search_by_category( function main (line 795) | def main():