Skip to main content
Glama

LinkedIn Content Creation MCP Server

by chrishayuk
coverage.json211 kB
{"meta": {"format": 3, "version": "7.11.0", "timestamp": "2025-10-22T22:08:25.586574", "branch_coverage": false, "show_contexts": false}, "files": {"src/chuk_mcp_linkedin/__init__.py": {"executed_lines": [1, 46, 47, 48, 49, 50, 51, 52, 54, 56], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 46, 47, 48, 49, 50, 51, 52, 54, 56], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 46, 47, 48, 49, 50, 51, 52, 54, 56], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/__init__.py": {"executed_lines": [1, 7, 8, 9, 10, 11, 12, 15, 16, 46, 49], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 8, 9, 10, 11, 12, 15, 16, 46, 49], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInClient": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 11, 12, 15, 16, 46, 49], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/client.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 20, 27, 29, 31, 32, 33, 35, 45, 52, 53, 55, 57, 64, 66, 67, 68, 69, 71, 73], "summary": {"covered_lines": 23, "num_statements": 32, "percent_covered": 71.875, "percent_covered_display": "72", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [80, 81, 83, 85, 87, 88, 91, 93, 94], "excluded_lines": [], "functions": {"LinkedInClient.__init__": {"executed_lines": [27, 29, 31, 32, 33], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInClient._get_headers": {"executed_lines": [45, 52, 53, 55], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInClient.validate_config": {"executed_lines": [64, 66, 67, 68, 69, 71], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInClient.test_connection": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [80, 81, 83, 85, 87, 88, 91, 93, 94], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 20, 35, 57, 73], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInClient": {"executed_lines": [27, 29, 31, 32, 33, 45, 52, 53, 55, 64, 66, 67, 68, 69, 71], "summary": {"covered_lines": 15, "num_statements": 24, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [80, 81, 83, 85, 87, 88, 91, 93, 94], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 20, 35, 57, 73], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/config.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 27, 33, 39, 45, 51, 56, 58, 60, 62, 63, 64, 65, 66, 67, 71], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"LinkedInConfig.is_configured": {"executed_lines": [58], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInConfig.get_missing_config": {"executed_lines": [62, 63, 64, 65, 66, 67], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 27, 33, 39, 45, 51, 56, 60, 71], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInConfig": {"executed_lines": [58, 62, 63, 64, 65, 66, 67], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 27, 33, 39, 45, 51, 56, 60, 71], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/documents.py": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 49, 50, 54, 55, 56, 59, 60, 67, 68, 69, 74, 76, 77, 79, 80, 87, 92, 93, 94, 100, 101, 102, 105, 107, 134, 139, 165, 168, 169, 171, 180, 182, 183, 184, 188, 189, 190, 191, 192, 195, 198, 204, 205, 206, 211, 214, 216], "summary": {"covered_lines": 53, "num_statements": 72, "percent_covered": 73.61111111111111, "percent_covered_display": "74", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [61, 70, 88, 96, 97, 108, 110, 117, 119, 129, 130, 135, 137, 193, 194, 207, 208, 212, 217], "excluded_lines": [], "functions": {"DocumentsAPIMixin.upload_document": {"executed_lines": [49, 50, 54, 55, 56, 59, 60, 67, 68, 69, 74, 76, 77, 79, 80, 87, 92, 93, 94, 100, 101, 102, 105, 107, 134], "summary": {"covered_lines": 25, "num_statements": 38, "percent_covered": 65.78947368421052, "percent_covered_display": "66", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [61, 70, 88, 96, 97, 108, 110, 117, 119, 129, 130, 135, 137], "excluded_lines": []}, "DocumentsAPIMixin.create_document_post": {"executed_lines": [165, 168, 169, 171, 180, 182, 183, 184, 188, 189, 190, 191, 192, 195, 198, 204, 205, 206, 211, 214, 216], "summary": {"covered_lines": 21, "num_statements": 27, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [193, 194, 207, 208, 212, 217], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 139], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DocumentsAPIMixin": {"executed_lines": [49, 50, 54, 55, 56, 59, 60, 67, 68, 69, 74, 76, 77, 79, 80, 87, 92, 93, 94, 100, 101, 102, 105, 107, 134, 165, 168, 169, 171, 180, 182, 183, 184, 188, 189, 190, 191, 192, 195, 198, 204, 205, 206, 211, 214, 216], "summary": {"covered_lines": 46, "num_statements": 65, "percent_covered": 70.76923076923077, "percent_covered_display": "71", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [61, 70, 88, 96, 97, 108, 110, 117, 119, 129, 130, 135, 137, 193, 194, 207, 208, 212, 217], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 139], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/errors.py": {"executed_lines": [1, 6, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 6, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInAPIError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 6, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/media.py": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 49, 50, 54, 55, 56, 59, 60, 68, 69, 70, 76, 78, 79, 81, 82, 89, 94, 95, 96, 102, 103, 104, 107, 109, 134, 139, 173, 174, 178, 179, 180, 183, 189, 190, 191, 193, 195, 200, 202, 203, 212, 213, 220, 225, 228, 229, 230, 238, 239, 244], "summary": {"covered_lines": 56, "num_statements": 99, "percent_covered": 56.56565656565657, "percent_covered_display": "57", "missing_lines": 43, "excluded_lines": 0}, "missing_lines": [61, 71, 90, 98, 99, 110, 111, 117, 119, 129, 130, 135, 137, 184, 194, 196, 221, 231, 234, 235, 237, 245, 248, 249, 250, 252, 262, 263, 268, 270, 271, 274, 275, 276, 284, 291, 292, 296, 297, 303, 305, 307, 309], "excluded_lines": [], "functions": {"MediaAPIMixin.upload_image": {"executed_lines": [49, 50, 54, 55, 56, 59, 60, 68, 69, 70, 76, 78, 79, 81, 82, 89, 94, 95, 96, 102, 103, 104, 107, 109, 134], "summary": {"covered_lines": 25, "num_statements": 38, "percent_covered": 65.78947368421052, "percent_covered_display": "66", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [61, 71, 90, 98, 99, 110, 111, 117, 119, 129, 130, 135, 137], "excluded_lines": []}, "MediaAPIMixin.upload_video": {"executed_lines": [173, 174, 178, 179, 180, 183, 189, 190, 191, 193, 195, 200, 202, 203, 212, 213, 220, 225, 228, 229, 230, 238, 239, 244], "summary": {"covered_lines": 24, "num_statements": 54, "percent_covered": 44.44444444444444, "percent_covered_display": "44", "missing_lines": 30, "excluded_lines": 0}, "missing_lines": [184, 194, 196, 221, 231, 234, 235, 237, 245, 248, 249, 250, 252, 262, 263, 268, 270, 271, 274, 275, 276, 284, 291, 292, 296, 297, 303, 305, 307, 309], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 139], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MediaAPIMixin": {"executed_lines": [49, 50, 54, 55, 56, 59, 60, 68, 69, 70, 76, 78, 79, 81, 82, 89, 94, 95, 96, 102, 103, 104, 107, 109, 134, 173, 174, 178, 179, 180, 183, 189, 190, 191, 193, 195, 200, 202, 203, 212, 213, 220, 225, 228, 229, 230, 238, 239, 244], "summary": {"covered_lines": 49, "num_statements": 92, "percent_covered": 53.26086956521739, "percent_covered_display": "53", "missing_lines": 43, "excluded_lines": 0}, "missing_lines": [61, 71, 90, 98, 99, 110, 111, 117, 119, 129, 130, 135, 137, 184, 194, 196, 221, 231, 234, 235, 237, 245, 248, 249, 250, 252, 262, 263, 268, 270, 271, 274, 275, 276, 284, 291, 292, 296, 297, 303, 305, 307, 309], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 139], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/api/posts.py": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 44, 45, 50, 59, 61, 62, 63, 68, 69, 70, 71, 72, 75, 78, 84, 85, 86, 91, 94, 96, 99, 125, 130, 133, 142, 144, 174, 175, 176, 180, 186, 187, 192, 193, 194, 195, 198, 207, 209, 240, 245, 248, 249, 251, 260, 262, 304, 309, 311, 314, 315, 321, 322, 328, 331, 346, 348, 361, 363, 364, 365, 369, 370, 371, 372, 373, 376, 379, 385, 386, 387, 392, 395, 397], "summary": {"covered_lines": 80, "num_statements": 103, "percent_covered": 77.66990291262135, "percent_covered_display": "78", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [73, 74, 87, 88, 92, 97, 126, 177, 181, 188, 189, 241, 305, 310, 312, 316, 323, 374, 375, 388, 389, 393, 398], "excluded_lines": [], "functions": {"PostsAPIMixin.create_text_post": {"executed_lines": [44, 45, 50, 59, 61, 62, 63, 68, 69, 70, 71, 72, 75, 78, 84, 85, 86, 91, 94, 96], "summary": {"covered_lines": 20, "num_statements": 26, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [73, 74, 87, 88, 92, 97], "excluded_lines": []}, "PostsAPIMixin.create_image_post": {"executed_lines": [125, 130, 133, 142], "summary": {"covered_lines": 4, "num_statements": 5, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [126], "excluded_lines": []}, "PostsAPIMixin.create_multi_image_post": {"executed_lines": [174, 175, 176, 180, 186, 187, 192, 193, 194, 195, 198, 207], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [177, 181, 188, 189], "excluded_lines": []}, "PostsAPIMixin.create_video_post": {"executed_lines": [240, 245, 248, 249, 251, 260], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [241], "excluded_lines": []}, "PostsAPIMixin.create_poll_post": {"executed_lines": [304, 309, 311, 314, 315, 321, 322, 328, 331, 346], "summary": {"covered_lines": 10, "num_statements": 15, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [305, 310, 312, 316, 323], "excluded_lines": []}, "PostsAPIMixin._create_post": {"executed_lines": [361, 363, 364, 365, 369, 370, 371, 372, 373, 376, 379, 385, 386, 387, 392, 395, 397], "summary": {"covered_lines": 17, "num_statements": 23, "percent_covered": 73.91304347826087, "percent_covered_display": "74", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [374, 375, 388, 389, 393, 398], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 99, 144, 209, 262, 348], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PostsAPIMixin": {"executed_lines": [44, 45, 50, 59, 61, 62, 63, 68, 69, 70, 71, 72, 75, 78, 84, 85, 86, 91, 94, 96, 125, 130, 133, 142, 174, 175, 176, 180, 186, 187, 192, 193, 194, 195, 198, 207, 240, 245, 248, 249, 251, 260, 304, 309, 311, 314, 315, 321, 322, 328, 331, 346, 361, 363, 364, 365, 369, 370, 371, 372, 373, 376, 379, 385, 386, 387, 392, 395, 397], "summary": {"covered_lines": 69, "num_statements": 92, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [73, 74, 87, 88, 92, 97, 126, 177, 181, 188, 189, 241, 305, 310, 312, 316, 323, 374, 375, 388, 389, 393, 398], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 23, 99, 144, 209, 262, 348], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/async_server.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 25, 26, 27, 28, 29, 32], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 25, 26, 27, 28, 29, 32], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 25, 26, 27, 28, 29, 32], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/composition.py": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 17, 21, 22, 27, 28, 30, 31, 32, 33, 35, 36, 39, 41, 42, 43, 45, 47, 48, 51, 52, 54, 55, 56, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 71, 73, 75, 76, 77, 78, 79, 81, 83, 84, 86, 87, 89, 90, 91, 93, 94, 98, 100, 102, 103, 105, 106, 108, 110, 112, 113, 114, 116, 118, 119, 120, 123, 124, 127, 128, 130, 131, 132, 133, 135, 136, 139, 140, 147, 148, 150, 152, 153, 156, 157, 159, 166, 167, 168, 169, 171, 172, 175, 176, 177, 178, 179, 182, 185, 186, 188, 190, 191, 194, 195, 197, 209, 229, 233, 234, 236, 246, 272, 276, 277, 279, 289, 319, 323, 324, 326, 336, 361, 367, 368, 370, 382, 408, 412, 413, 415, 427, 445, 449, 450, 452, 464, 482, 486, 487, 489, 501, 528, 532, 533, 535, 547, 568, 576, 577, 579, 591, 619, 628, 629, 631, 632, 634, 635, 637, 638, 641, 642, 644, 664, 684, 696, 697, 699, 702, 703, 704, 705, 706, 708, 710, 711, 713, 715, 716, 717, 719, 721, 722, 724, 737, 749, 761, 773, 786, 797, 810, 823, 836, 849, 851, 852, 854, 856, 857, 859, 872, 874, 876, 877, 878, 879, 881, 884, 885, 889, 891, 893, 894, 895, 896, 898, 901, 902, 903, 904, 907, 908, 909, 910, 912, 914, 916, 928, 929, 931, 932, 937, 939, 940, 942, 943, 945, 946, 947, 948, 950, 952, 953, 958, 960, 962, 963, 965, 966, 967, 969, 971, 972, 975, 977, 979, 980, 982, 983, 984, 986, 988, 989, 994, 996, 998, 999, 1001, 1002, 1003, 1005], "summary": {"covered_lines": 260, "num_statements": 497, "percent_covered": 52.313883299798796, "percent_covered_display": "52", "missing_lines": 237, "excluded_lines": 0}, "missing_lines": [19, 24, 96, 121, 180, 204, 205, 206, 207, 210, 211, 213, 214, 215, 216, 219, 221, 222, 223, 224, 225, 227, 230, 242, 243, 244, 247, 248, 250, 251, 252, 253, 255, 257, 258, 259, 260, 261, 263, 265, 267, 268, 270, 273, 285, 286, 287, 290, 291, 293, 294, 295, 296, 298, 299, 301, 302, 303, 308, 309, 310, 311, 313, 314, 315, 317, 320, 332, 333, 334, 337, 338, 340, 341, 342, 343, 345, 346, 347, 349, 351, 352, 353, 354, 355, 357, 359, 362, 377, 378, 379, 380, 383, 384, 386, 387, 388, 389, 392, 398, 399, 400, 402, 404, 406, 409, 422, 423, 424, 425, 428, 429, 432, 435, 438, 439, 441, 443, 446, 459, 460, 461, 462, 465, 466, 469, 472, 473, 476, 477, 478, 480, 483, 496, 497, 498, 499, 502, 503, 506, 507, 508, 509, 512, 513, 514, 515, 517, 520, 521, 522, 524, 526, 529, 542, 543, 544, 545, 548, 549, 552, 554, 556, 557, 558, 559, 561, 564, 566, 569, 586, 587, 588, 589, 592, 593, 596, 597, 598, 599, 602, 603, 604, 605, 606, 608, 611, 612, 613, 614, 615, 617, 620, 659, 660, 661, 662, 666, 668, 669, 670, 673, 674, 675, 676, 678, 679, 680, 682, 686, 688, 689, 690, 692, 693, 734, 735, 746, 747, 758, 759, 770, 771, 783, 784, 794, 795, 807, 808, 820, 821, 833, 834, 846, 847, 869, 870], "excluded_lines": [], "functions": {"PostComponent.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [19], "excluded_lines": []}, "PostComponent.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [24], "excluded_lines": []}, "Hook.__init__": {"executed_lines": [31, 32, 33], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hook.render": {"executed_lines": [36, 39, 41, 42, 43, 45], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hook.validate": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body.__init__": {"executed_lines": [55, 56, 57], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body.render": {"executed_lines": [60, 62, 63, 64, 65, 66, 67, 68, 69, 71], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_linear": {"executed_lines": [75, 76, 77, 78, 79], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_listicle": {"executed_lines": [83, 84, 86, 87, 89, 90, 91, 93, 94, 98], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [96], "excluded_lines": []}, "Body._render_framework": {"executed_lines": [102, 103, 105, 106, 108], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_story_arc": {"executed_lines": [112, 113, 114], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_comparison": {"executed_lines": [118, 119, 120], "summary": {"covered_lines": 3, "num_statements": 4, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [121], "excluded_lines": []}, "Body.validate": {"executed_lines": [124], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CallToAction.__init__": {"executed_lines": [131, 132, 133], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CallToAction.render": {"executed_lines": [136, 139, 140, 147, 148, 150], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CallToAction.validate": {"executed_lines": [153], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hashtags.__init__": {"executed_lines": [166, 167, 168, 169], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hashtags.render": {"executed_lines": [172, 175, 176, 177, 178, 179, 182, 185, 186, 188], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [180], "excluded_lines": []}, "Hashtags.validate": {"executed_lines": [191], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BarChart.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [204, 205, 206, 207], "excluded_lines": []}, "BarChart.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [210, 211, 213, 214, 215, 216, 219, 221, 222, 223, 224, 225, 227], "excluded_lines": []}, "BarChart.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [230], "excluded_lines": []}, "MetricsChart.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [242, 243, 244], "excluded_lines": []}, "MetricsChart.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [247, 248, 250, 251, 252, 253, 255, 257, 258, 259, 260, 261, 263, 265, 267, 268, 270], "excluded_lines": []}, "MetricsChart.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [273], "excluded_lines": []}, "ComparisonChart.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [285, 286, 287], "excluded_lines": []}, "ComparisonChart.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [290, 291, 293, 294, 295, 296, 298, 299, 301, 302, 303, 308, 309, 310, 311, 313, 314, 315, 317], "excluded_lines": []}, "ComparisonChart.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [320], "excluded_lines": []}, "ProgressChart.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [332, 333, 334], "excluded_lines": []}, "ProgressChart.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [337, 338, 340, 341, 342, 343, 345, 346, 347, 349, 351, 352, 353, 354, 355, 357, 359], "excluded_lines": []}, "ProgressChart.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [362], "excluded_lines": []}, "RankingChart.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [377, 378, 379, 380], "excluded_lines": []}, "RankingChart.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [383, 384, 386, 387, 388, 389, 392, 398, 399, 400, 402, 404, 406], "excluded_lines": []}, "RankingChart.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [409], "excluded_lines": []}, "Quote.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [422, 423, 424, 425], "excluded_lines": []}, "Quote.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [428, 429, 432, 435, 438, 439, 441, 443], "excluded_lines": []}, "Quote.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [446], "excluded_lines": []}, "BigStat.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [459, 460, 461, 462], "excluded_lines": []}, "BigStat.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [465, 466, 469, 472, 473, 476, 477, 478, 480], "excluded_lines": []}, "BigStat.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [483], "excluded_lines": []}, "Timeline.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [496, 497, 498, 499], "excluded_lines": []}, "Timeline.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [502, 503, 506, 507, 508, 509, 512, 513, 514, 515, 517, 520, 521, 522, 524, 526], "excluded_lines": []}, "Timeline.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [529], "excluded_lines": []}, "KeyTakeaway.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [542, 543, 544, 545], "excluded_lines": []}, "KeyTakeaway.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [548, 549, 552, 554, 556, 557, 558, 559, 561, 564, 566], "excluded_lines": []}, "KeyTakeaway.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [569], "excluded_lines": []}, "ProCon.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [586, 587, 588, 589], "excluded_lines": []}, "ProCon.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [592, 593, 596, 597, 598, 599, 602, 603, 604, 605, 606, 608, 611, 612, 613, 614, 615, 617], "excluded_lines": []}, "ProCon.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [620], "excluded_lines": []}, "Separator.__init__": {"executed_lines": [632], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Separator.render": {"executed_lines": [635], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Separator.validate": {"executed_lines": [638], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DocumentAttachment.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [659, 660, 661, 662], "excluded_lines": []}, "DocumentAttachment.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [666, 668, 669, 670, 673, 674, 675, 676, 678, 679, 680, 682], "excluded_lines": []}, "DocumentAttachment.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [686, 688, 689, 690, 692, 693], "excluded_lines": []}, "ComposablePost.__init__": {"executed_lines": [702, 703, 704, 705, 706], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_hook": {"executed_lines": [710, 711], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_body": {"executed_lines": [715, 716, 717], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_separator": {"executed_lines": [721, 722], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_bar_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [734, 735], "excluded_lines": []}, "ComposablePost.add_metrics_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [746, 747], "excluded_lines": []}, "ComposablePost.add_comparison_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [758, 759], "excluded_lines": []}, "ComposablePost.add_progress_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [770, 771], "excluded_lines": []}, "ComposablePost.add_ranking_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [783, 784], "excluded_lines": []}, "ComposablePost.add_quote": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [794, 795], "excluded_lines": []}, "ComposablePost.add_big_stat": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [807, 808], "excluded_lines": []}, "ComposablePost.add_timeline": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [820, 821], "excluded_lines": []}, "ComposablePost.add_key_takeaway": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [833, 834], "excluded_lines": []}, "ComposablePost.add_pro_con": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [846, 847], "excluded_lines": []}, "ComposablePost.add_cta": {"executed_lines": [851, 852], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_hashtags": {"executed_lines": [856, 857], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.add_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [869, 870], "excluded_lines": []}, "ComposablePost.compose": {"executed_lines": [874, 876, 877, 878, 879, 881, 884, 885, 889], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.get_preview": {"executed_lines": [893, 894, 895, 896], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.optimize_for_engagement": {"executed_lines": [901, 902, 903, 904, 907, 908, 909, 910, 912], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComposablePost.to_dict": {"executed_lines": [916], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostBuilder.thought_leadership_post": {"executed_lines": [937, 939, 940, 942, 943, 945, 946, 947, 948, 950], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostBuilder.story_post": {"executed_lines": [958, 960, 962, 963, 965, 966, 967, 969], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostBuilder.listicle_post": {"executed_lines": [975, 977, 979, 980, 982, 983, 984, 986], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostBuilder.comparison_post": {"executed_lines": [994, 996, 998, 999, 1001, 1002, 1003, 1005], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 17, 21, 22, 27, 28, 30, 35, 47, 51, 52, 54, 59, 73, 81, 100, 110, 116, 123, 127, 128, 130, 135, 152, 156, 157, 159, 171, 190, 194, 195, 197, 209, 229, 233, 234, 236, 246, 272, 276, 277, 279, 289, 319, 323, 324, 326, 336, 361, 367, 368, 370, 382, 408, 412, 413, 415, 427, 445, 449, 450, 452, 464, 482, 486, 487, 489, 501, 528, 532, 533, 535, 547, 568, 576, 577, 579, 591, 619, 628, 629, 631, 634, 637, 641, 642, 644, 664, 684, 696, 697, 699, 708, 713, 719, 724, 737, 749, 761, 773, 786, 797, 810, 823, 836, 849, 854, 859, 872, 891, 898, 914, 928, 929, 931, 932, 952, 953, 971, 972, 988, 989], "summary": {"covered_lines": 109, "num_statements": 109, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PostComponent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [19, 24], "excluded_lines": []}, "Hook": {"executed_lines": [31, 32, 33, 36, 39, 41, 42, 43, 45, 48], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body": {"executed_lines": [55, 56, 57, 60, 62, 63, 64, 65, 66, 67, 68, 69, 71, 75, 76, 77, 78, 79, 83, 84, 86, 87, 89, 90, 91, 93, 94, 98, 102, 103, 105, 106, 108, 112, 113, 114, 118, 119, 120, 124], "summary": {"covered_lines": 40, "num_statements": 42, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [96, 121], "excluded_lines": []}, "CallToAction": {"executed_lines": [131, 132, 133, 136, 139, 140, 147, 148, 150, 153], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hashtags": {"executed_lines": [166, 167, 168, 169, 172, 175, 176, 177, 178, 179, 182, 185, 186, 188, 191], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [180], "excluded_lines": []}, "BarChart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [204, 205, 206, 207, 210, 211, 213, 214, 215, 216, 219, 221, 222, 223, 224, 225, 227, 230], "excluded_lines": []}, "MetricsChart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [242, 243, 244, 247, 248, 250, 251, 252, 253, 255, 257, 258, 259, 260, 261, 263, 265, 267, 268, 270, 273], "excluded_lines": []}, "ComparisonChart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [285, 286, 287, 290, 291, 293, 294, 295, 296, 298, 299, 301, 302, 303, 308, 309, 310, 311, 313, 314, 315, 317, 320], "excluded_lines": []}, "ProgressChart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [332, 333, 334, 337, 338, 340, 341, 342, 343, 345, 346, 347, 349, 351, 352, 353, 354, 355, 357, 359, 362], "excluded_lines": []}, "RankingChart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [377, 378, 379, 380, 383, 384, 386, 387, 388, 389, 392, 398, 399, 400, 402, 404, 406, 409], "excluded_lines": []}, "Quote": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [422, 423, 424, 425, 428, 429, 432, 435, 438, 439, 441, 443, 446], "excluded_lines": []}, "BigStat": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [459, 460, 461, 462, 465, 466, 469, 472, 473, 476, 477, 478, 480, 483], "excluded_lines": []}, "Timeline": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [496, 497, 498, 499, 502, 503, 506, 507, 508, 509, 512, 513, 514, 515, 517, 520, 521, 522, 524, 526, 529], "excluded_lines": []}, "KeyTakeaway": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 0}, "missing_lines": [542, 543, 544, 545, 548, 549, 552, 554, 556, 557, 558, 559, 561, 564, 566, 569], "excluded_lines": []}, "ProCon": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [586, 587, 588, 589, 592, 593, 596, 597, 598, 599, 602, 603, 604, 605, 606, 608, 611, 612, 613, 614, 615, 617, 620], "excluded_lines": []}, "Separator": {"executed_lines": [632, 635, 638], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DocumentAttachment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [659, 660, 661, 662, 666, 668, 669, 670, 673, 674, 675, 676, 678, 679, 680, 682, 686, 688, 689, 690, 692, 693], "excluded_lines": []}, "ComposablePost": {"executed_lines": [702, 703, 704, 705, 706, 710, 711, 715, 716, 717, 721, 722, 851, 852, 856, 857, 874, 876, 877, 878, 879, 881, 884, 885, 889, 893, 894, 895, 896, 901, 902, 903, 904, 907, 908, 909, 910, 912, 916], "summary": {"covered_lines": 39, "num_statements": 61, "percent_covered": 63.9344262295082, "percent_covered_display": "64", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [734, 735, 746, 747, 758, 759, 770, 771, 783, 784, 794, 795, 807, 808, 820, 821, 833, 834, 846, 847, 869, 870], "excluded_lines": []}, "PostBuilder": {"executed_lines": [937, 939, 940, 942, 943, 945, 946, 947, 948, 950, 958, 960, 962, 963, 965, 966, 967, 969, 975, 977, 979, 980, 982, 983, 984, 986, 994, 996, 998, 999, 1001, 1002, 1003, 1005], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 17, 21, 22, 27, 28, 30, 35, 47, 51, 52, 54, 59, 73, 81, 100, 110, 116, 123, 127, 128, 130, 135, 152, 156, 157, 159, 171, 190, 194, 195, 197, 209, 229, 233, 234, 236, 246, 272, 276, 277, 279, 289, 319, 323, 324, 326, 336, 361, 367, 368, 370, 382, 408, 412, 413, 415, 427, 445, 449, 450, 452, 464, 482, 486, 487, 489, 501, 528, 532, 533, 535, 547, 568, 576, 577, 579, 591, 619, 628, 629, 631, 634, 637, 641, 642, 644, 664, 684, 696, 697, 699, 708, 713, 719, 724, 737, 749, 761, 773, 786, 797, 810, 823, 836, 849, 854, 859, 872, 891, 898, 914, 928, 929, 931, 932, 952, 953, 971, 972, 988, 989], "summary": {"covered_lines": 109, "num_statements": 109, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/manager.py": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 40, 42, 54, 55, 57, 65, 66, 67, 68, 71, 72, 74, 81, 82, 84, 85, 88, 90, 99, 101, 110, 111, 113, 115, 117, 119, 121, 123, 124, 125, 127, 129, 142, 144, 145, 146, 147, 149, 157, 158, 159, 161, 162, 163, 164, 165, 168, 170, 172, 174, 176, 177, 180, 181, 182, 185, 186, 188, 189, 191, 193, 196, 197, 199, 200, 202, 204, 206, 207, 208, 209, 211, 213, 214, 215, 218, 219, 221, 222, 224, 225, 226, 227, 229, 231, 232, 233, 236, 237, 240, 243, 245, 247, 248, 249, 251, 252, 253, 255, 266, 268, 269, 270, 272, 274, 275, 276, 277, 278, 279, 284, 285, 287, 289, 296], "summary": {"covered_lines": 132, "num_statements": 149, "percent_covered": 88.59060402684564, "percent_covered_display": "89", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [166, 238, 241, 280, 281, 309, 311, 312, 313, 316, 319, 322, 323, 324, 325, 328, 330], "excluded_lines": [], "functions": {"Draft.__init__": {"executed_lines": [25, 26, 27, 28, 29, 30, 31, 32, 33], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Draft.update_content": {"executed_lines": [37, 38], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Draft.to_dict": {"executed_lines": [42], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Draft.from_dict": {"executed_lines": [57, 65, 66, 67, 68], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.__init__": {"executed_lines": [81, 82, 84, 85, 88], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.create_draft": {"executed_lines": [99, 101, 110, 111, 113, 115], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.get_draft": {"executed_lines": [119], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.get_current_draft": {"executed_lines": [123, 124, 125], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.list_drafts": {"executed_lines": [129], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.switch_draft": {"executed_lines": [144, 145, 146, 147], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.update_draft": {"executed_lines": [157, 158, 159, 161, 162, 163, 164, 165, 168, 170, 172], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [166], "excluded_lines": []}, "LinkedInManager.delete_draft": {"executed_lines": [176, 177, 180, 181, 182, 185, 186, 188, 189], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.clear_all_drafts": {"executed_lines": [193, 196, 197, 199, 200, 202], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.export_draft": {"executed_lines": [206, 207, 208, 209], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.import_draft": {"executed_lines": [213, 214, 215, 218, 219, 221, 222, 224, 225, 226, 227], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.get_draft_preview": {"executed_lines": [231, 232, 233, 236, 237, 240, 243], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [238, 241], "excluded_lines": []}, "LinkedInManager.get_draft_stats": {"executed_lines": [247, 248, 249, 251, 252, 253, 255], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager._save_draft": {"executed_lines": [268, 269, 270], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager._load_drafts": {"executed_lines": [274, 275, 276, 277, 278, 279, 284, 285], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [280, 281], "excluded_lines": []}, "LinkedInManager.get_info": {"executed_lines": [289], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager.generate_html_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [309, 311, 312, 313, 316, 319, 322, 323, 324, 325, 328, 330], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 35, 40, 54, 55, 71, 72, 74, 90, 117, 121, 127, 142, 149, 174, 191, 204, 211, 229, 245, 266, 272, 287, 296], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Draft": {"executed_lines": [25, 26, 27, 28, 29, 30, 31, 32, 33, 37, 38, 42, 57, 65, 66, 67, 68], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "LinkedInManager": {"executed_lines": [81, 82, 84, 85, 88, 99, 101, 110, 111, 113, 115, 119, 123, 124, 125, 129, 144, 145, 146, 147, 157, 158, 159, 161, 162, 163, 164, 165, 168, 170, 172, 176, 177, 180, 181, 182, 185, 186, 188, 189, 193, 196, 197, 199, 200, 202, 206, 207, 208, 209, 213, 214, 215, 218, 219, 221, 222, 224, 225, 226, 227, 231, 232, 233, 236, 237, 240, 243, 247, 248, 249, 251, 252, 253, 255, 268, 269, 270, 274, 275, 276, 277, 278, 279, 284, 285, 289], "summary": {"covered_lines": 87, "num_statements": 104, "percent_covered": 83.65384615384616, "percent_covered_display": "84", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [166, 238, 241, 280, 281, 309, 311, 312, 313, 316, 319, 322, 323, 324, 325, 328, 330], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 10, 13, 14, 16, 35, 40, 54, 55, 71, 72, 74, 90, 117, 121, 127, 142, 149, 174, 191, 204, 211, 229, 245, 266, 272, 287, 296], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/models/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [5, 13, 28], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [5, 13, 28], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [5, 13, 28], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/models/chart_models.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 56, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 56, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 32, 35, 40, 42, 43, 44, 45, 46, 47, 50, 53, 63, 65, 66, 67, 68, 69, 70, 73, 76, 81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 99, 104, 105, 107, 108, 109, 110, 111, 112], "excluded_lines": [], "functions": {"BarChartData.validate_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [25, 26, 27, 28, 29], "excluded_lines": []}, "MetricsChartData.validate_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [45, 46, 47], "excluded_lines": []}, "ComparisonChartData.validate_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [68, 69, 70], "excluded_lines": []}, "ProgressChartData.validate_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [86, 87, 88, 89, 90, 91, 92, 93], "excluded_lines": []}, "RankingChartData.validate_data": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [110, 111, 112], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 19, 20, 22, 23, 24, 32, 35, 40, 42, 43, 44, 50, 53, 63, 65, 66, 67, 73, 76, 81, 83, 84, 85, 96, 99, 104, 105, 107, 108, 109], "excluded_lines": []}}, "classes": {"BarChartData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [25, 26, 27, 28, 29], "excluded_lines": []}, "MetricsChartData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [45, 46, 47], "excluded_lines": []}, "ComparisonChartData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [68, 69, 70], "excluded_lines": []}, "ProgressChartData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [86, 87, 88, 89, 90, 91, 92, 93], "excluded_lines": []}, "RankingChartData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [110, 111, 112], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 19, 20, 22, 23, 24, 32, 35, 40, 42, 43, 44, 50, 53, 63, 65, 66, 67, 73, 76, 81, 83, 84, 85, 96, 99, 104, 105, 107, 108, 109], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/models/content_models.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 126, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 126, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 15, 16, 19, 22, 27, 30, 35, 38, 43, 44, 50, 51, 52, 53, 54, 55, 58, 61, 62, 63, 70, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 91, 97, 98, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 118, 121, 122, 123, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 140, 143, 144, 147, 154, 157, 163, 164, 166, 167, 168, 169, 170, 171, 174, 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 193, 196, 202, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 223, 224, 225, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240], "excluded_lines": [], "functions": {"TimelineData.validate_steps": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [53, 54, 55], "excluded_lines": []}, "ProConData.validate_items": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [80, 81, 82, 83, 84, 85], "excluded_lines": []}, "ChecklistData.validate_items": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [105, 106, 107, 108, 109, 110, 111, 113, 114, 115], "excluded_lines": []}, "BeforeAfterData.validate_items": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [132, 133, 134, 135, 136, 137], "excluded_lines": []}, "StatsGridData.validate_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [169, 170, 171], "excluded_lines": []}, "PollPreviewData.validate_options": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [183, 184, 185, 186, 187, 188, 189, 190], "excluded_lines": []}, "FeatureListData.validate_features": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [207, 208, 209, 210, 211, 212, 213, 215, 216, 217], "excluded_lines": []}, "NumberedListData.validate_items": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [235, 236, 237, 238, 239, 240], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 74, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 74, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 15, 16, 19, 22, 27, 30, 35, 38, 43, 44, 50, 51, 52, 58, 61, 62, 63, 70, 73, 74, 75, 77, 78, 79, 88, 91, 97, 98, 102, 103, 104, 118, 121, 122, 123, 124, 129, 130, 131, 140, 143, 144, 147, 154, 157, 163, 164, 166, 167, 168, 174, 177, 178, 180, 181, 182, 193, 196, 202, 204, 205, 206, 220, 223, 224, 225, 230, 232, 233, 234], "excluded_lines": []}}, "classes": {"QuoteData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BigStatData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TimelineData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [53, 54, 55], "excluded_lines": []}, "KeyTakeawayData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProConData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [80, 81, 82, 83, 84, 85], "excluded_lines": []}, "ChecklistData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [105, 106, 107, 108, 109, 110, 111, 113, 114, 115], "excluded_lines": []}, "BeforeAfterData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [132, 133, 134, 135, 136, 137], "excluded_lines": []}, "TipBoxData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StatsGridData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [169, 170, 171], "excluded_lines": []}, "PollPreviewData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [183, 184, 185, 186, 187, 188, 189, 190], "excluded_lines": []}, "FeatureListData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [207, 208, 209, 210, 211, 212, 213, 215, 216, 217], "excluded_lines": []}, "NumberedListData": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [235, 236, 237, 238, 239, 240], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 74, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 74, "excluded_lines": 0}, "missing_lines": [7, 8, 11, 14, 15, 16, 19, 22, 27, 30, 35, 38, 43, 44, 50, 51, 52, 58, 61, 62, 63, 70, 73, 74, 75, 77, 78, 79, 88, 91, 97, 98, 102, 103, 104, 118, 121, 122, 123, 124, 129, 130, 131, 140, 143, 144, 147, 154, 157, 163, 164, 166, 167, 168, 174, 177, 178, 180, 181, 182, 193, 196, 202, 204, 205, 206, 220, 223, 224, 225, 230, 232, 233, 234], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/__init__.py": {"executed_lines": [1, 7, 8, 38], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 8, 38], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 8, 38], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/__init__.py": {"executed_lines": [1, 9, 12, 20, 29, 45, 49], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 9, 12, 20, 29, 45, 49], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 9, 12, 20, 29, 45, 49], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/base.py": {"executed_lines": [1, 5, 6, 9, 10, 12, 13, 17, 18], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [15, 20], "excluded_lines": [], "functions": {"PostComponent.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [15], "excluded_lines": []}, "PostComponent.validate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [20], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 10, 12, 13, 17, 18], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PostComponent": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [15, 20], "excluded_lines": []}, "": {"executed_lines": [1, 5, 6, 9, 10, 12, 13, 17, 18], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/content/__init__.py": {"executed_lines": [1, 7, 8, 9, 10, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 8, 9, 10, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 8, 9, 10, 12], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/content/body.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 36, 37, 38, 39, 40, 42, 44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 59, 61, 63, 64, 66, 67, 69, 71, 73, 74, 75, 77, 79, 80, 81, 82, 84, 85], "summary": {"covered_lines": 54, "num_statements": 54, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Body.__init__": {"executed_lines": [16, 17, 18], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body.render": {"executed_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_linear": {"executed_lines": [36, 37, 38, 39, 40], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_listicle": {"executed_lines": [44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 59], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_framework": {"executed_lines": [63, 64, 66, 67, 69], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_story_arc": {"executed_lines": [73, 74, 75], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body._render_comparison": {"executed_lines": [79, 80, 81, 82], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Body.validate": {"executed_lines": [85], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 20, 34, 42, 61, 71, 77, 84], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Body": {"executed_lines": [16, 17, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36, 37, 38, 39, 40, 44, 45, 47, 48, 50, 51, 52, 54, 55, 57, 59, 63, 64, 66, 67, 69, 73, 74, 75, 79, 80, 81, 82, 85], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 20, 34, 42, 61, 71, 77, 84], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/content/call_to_action.py": {"executed_lines": [1, 7, 8, 11, 12, 14, 15, 16, 17, 19, 20, 23, 24, 31, 32, 34, 36, 37], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"CallToAction.__init__": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CallToAction.render": {"executed_lines": [20, 23, 24, 31, 32, 34], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CallToAction.validate": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 19, 36], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CallToAction": {"executed_lines": [15, 16, 17, 20, 23, 24, 31, 32, 34, 37], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 19, 36], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/content/hashtags.py": {"executed_lines": [1, 7, 8, 11, 12, 14, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 37, 40, 41, 43, 45, 46], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Hashtags.__init__": {"executed_lines": [21, 22, 23, 24], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hashtags.render": {"executed_lines": [27, 30, 31, 32, 33, 34, 35, 37, 40, 41, 43], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hashtags.validate": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 26, 45], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Hashtags": {"executed_lines": [21, 22, 23, 24, 27, 30, 31, 32, 33, 34, 35, 37, 40, 41, 43, 46], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 26, 45], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/content/hook.py": {"executed_lines": [1, 7, 8, 11, 12, 14, 15, 16, 17, 19, 20, 23, 25, 26, 27, 29, 31, 32], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Hook.__init__": {"executed_lines": [15, 16, 17], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hook.render": {"executed_lines": [20, 23, 25, 26, 27, 29], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Hook.validate": {"executed_lines": [32], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 19, 31], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Hook": {"executed_lines": [15, 16, 17, 20, 23, 25, 26, 27, 29, 32], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 19, 31], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/__init__.py": {"executed_lines": [1, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 8, 9, 10, 11, 13], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/bar_chart.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 37, 39, 40, 41, 42, 43, 45, 47, 48], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"BarChart.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BarChart.render": {"executed_lines": [28, 29, 31, 32, 33, 34, 37, 39, 40, 41, 42, 43, 45], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BarChart.validate": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 47], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BarChart": {"executed_lines": [22, 23, 24, 25, 28, 29, 31, 32, 33, 34, 37, 39, 40, 41, 42, 43, 45, 48], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 47], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/comparison_chart.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 37, 38, 39, 44, 45, 46, 47, 49, 50, 51, 53, 55, 56], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ComparisonChart.__init__": {"executed_lines": [21, 22, 23], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComparisonChart.render": {"executed_lines": [26, 27, 29, 30, 31, 32, 34, 35, 37, 38, 39, 44, 45, 46, 47, 49, 50, 51, 53], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComparisonChart.validate": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ComparisonChart": {"executed_lines": [21, 22, 23, 26, 27, 29, 30, 31, 32, 34, 35, 37, 38, 39, 44, 45, 46, 47, 49, 50, 51, 53, 56], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/metrics_chart.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 36, 37, 38, 39, 40, 42, 46, 47, 49, 51, 52], "summary": {"covered_lines": 27, "num_statements": 28, "percent_covered": 96.42857142857143, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [44], "excluded_lines": [], "functions": {"MetricsChart.__init__": {"executed_lines": [21, 22, 23], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MetricsChart.render": {"executed_lines": [26, 27, 29, 30, 31, 32, 34, 36, 37, 38, 39, 40, 42, 46, 47, 49], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [44], "excluded_lines": []}, "MetricsChart.validate": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 51], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MetricsChart": {"executed_lines": [21, 22, 23, 26, 27, 29, 30, 31, 32, 34, 36, 37, 38, 39, 40, 42, 46, 47, 49, 52], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 95.23809523809524, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [44], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 51], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/progress_chart.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 39, 41, 43, 44, 45, 46, 48, 49, 53, 55, 56], "summary": {"covered_lines": 29, "num_statements": 30, "percent_covered": 96.66666666666667, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": [], "functions": {"ProgressChart.__init__": {"executed_lines": [21, 22, 23], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProgressChart.render": {"executed_lines": [26, 27, 29, 30, 31, 32, 34, 35, 36, 39, 41, 43, 44, 45, 46, 48, 49, 53], "summary": {"covered_lines": 18, "num_statements": 19, "percent_covered": 94.73684210526316, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": []}, "ProgressChart.validate": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ProgressChart": {"executed_lines": [21, 22, 23, 26, 27, 29, 30, 31, 32, 34, 35, 36, 39, 41, 43, 44, 45, 46, 48, 49, 53, 56], "summary": {"covered_lines": 22, "num_statements": 23, "percent_covered": 95.65217391304348, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [51], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/data_viz/ranking_chart.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 37, 43, 44, 45, 47, 49, 51, 53, 54], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"RankingChart.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RankingChart.render": {"executed_lines": [28, 29, 31, 32, 33, 34, 37, 43, 44, 45, 47, 49, 51], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "RankingChart.validate": {"executed_lines": [54], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 53], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"RankingChart": {"executed_lines": [22, 23, 24, 25, 28, 29, 31, 32, 33, 34, 37, 43, 44, 45, 47, 49, 51, 54], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 53], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/__init__.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/before_after.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 23, 24, 25, 26, 27, 29, 30, 31, 33, 39, 40, 41, 42, 43, 45, 48, 49, 50, 51, 52, 54, 56, 57], "summary": {"covered_lines": 28, "num_statements": 31, "percent_covered": 90.3225806451613, "percent_covered_display": "90", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [34, 35, 36], "excluded_lines": [], "functions": {"BeforeAfter.__init__": {"executed_lines": [23, 24, 25, 26, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BeforeAfter.render": {"executed_lines": [30, 31, 33, 39, 40, 41, 42, 43, 45, 48, 49, 50, 51, 52, 54], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [34, 35, 36], "excluded_lines": []}, "BeforeAfter.validate": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 29, 56], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BeforeAfter": {"executed_lines": [23, 24, 25, 26, 27, 30, 31, 33, 39, 40, 41, 42, 43, 45, 48, 49, 50, 51, 52, 54, 57], "summary": {"covered_lines": 21, "num_statements": 24, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [34, 35, 36], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 29, 56], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/big_stat.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 32, 35, 36, 39, 43, 45, 46], "summary": {"covered_lines": 19, "num_statements": 21, "percent_covered": 90.47619047619048, "percent_covered_display": "90", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [40, 41], "excluded_lines": [], "functions": {"BigStat.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BigStat.render": {"executed_lines": [28, 29, 32, 35, 36, 39, 43], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [40, 41], "excluded_lines": []}, "BigStat.validate": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 45], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"BigStat": {"executed_lines": [22, 23, 24, 25, 28, 29, 32, 35, 36, 39, 43, 46], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [40, 41], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 45], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/checklist.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 31, 37, 44, 45, 47, 48, 55, 56, 57, 58, 59, 60], "summary": {"covered_lines": 24, "num_statements": 36, "percent_covered": 66.66666666666667, "percent_covered_display": "67", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [32, 33, 34, 38, 39, 40, 41, 49, 50, 51, 53, 61], "excluded_lines": [], "functions": {"Checklist.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Checklist.render": {"executed_lines": [28, 29, 31, 37, 44, 45, 47, 48], "summary": {"covered_lines": 8, "num_statements": 19, "percent_covered": 42.10526315789474, "percent_covered_display": "42", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [32, 33, 34, 38, 39, 40, 41, 49, 50, 51, 53], "excluded_lines": []}, "Checklist.validate": {"executed_lines": [56, 57, 58, 59, 60], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [61], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Checklist": {"executed_lines": [22, 23, 24, 25, 28, 29, 31, 37, 44, 45, 47, 48, 56, 57, 58, 59, 60], "summary": {"covered_lines": 17, "num_statements": 29, "percent_covered": 58.62068965517241, "percent_covered_display": "59", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [32, 33, 34, 38, 39, 40, 41, 49, 50, 51, 53, 61], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/feature_list.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 21, 22, 23, 25, 26, 27, 29, 35, 36, 48, 49, 50, 51, 52, 53], "summary": {"covered_lines": 20, "num_statements": 31, "percent_covered": 64.51612903225806, "percent_covered_display": "65", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 37, 38, 40, 41, 42, 44, 46, 54], "excluded_lines": [], "functions": {"FeatureList.__init__": {"executed_lines": [21, 22, 23], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FeatureList.render": {"executed_lines": [26, 27, 29, 35, 36], "summary": {"covered_lines": 5, "num_statements": 15, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 37, 38, 40, 41, 42, 44, 46], "excluded_lines": []}, "FeatureList.validate": {"executed_lines": [49, 50, 51, 52, 53], "summary": {"covered_lines": 5, "num_statements": 6, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [54], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FeatureList": {"executed_lines": [21, 22, 23, 26, 27, 29, 35, 36, 49, 50, 51, 52, 53], "summary": {"covered_lines": 13, "num_statements": 24, "percent_covered": 54.166666666666664, "percent_covered_display": "54", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 37, 38, 40, 41, 42, 44, 46, 54], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/key_takeaway.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 32, 34, 36, 37, 38, 46, 48, 49], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [39, 41, 44], "excluded_lines": [], "functions": {"KeyTakeaway.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "KeyTakeaway.render": {"executed_lines": [28, 29, 32, 34, 36, 37, 38, 46], "summary": {"covered_lines": 8, "num_statements": 11, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [39, 41, 44], "excluded_lines": []}, "KeyTakeaway.validate": {"executed_lines": [49], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"KeyTakeaway": {"executed_lines": [22, 23, 24, 25, 28, 29, 32, 34, 36, 37, 38, 46, 49], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 81.25, "percent_covered_display": "81", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [39, 41, 44], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/numbered_list.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 16, 18, 26, 27, 28, 29, 30, 32, 33, 34, 36, 42, 43, 45, 51, 56, 58, 60, 62, 63], "summary": {"covered_lines": 24, "num_statements": 31, "percent_covered": 77.41935483870968, "percent_covered_display": "77", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [37, 38, 39, 47, 48, 50, 53], "excluded_lines": [], "functions": {"NumberedList.__init__": {"executed_lines": [26, 27, 28, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "NumberedList.render": {"executed_lines": [33, 34, 36, 42, 43, 45, 51, 56, 58, 60], "summary": {"covered_lines": 10, "num_statements": 17, "percent_covered": 58.8235294117647, "percent_covered_display": "59", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [37, 38, 39, 47, 48, 50, 53], "excluded_lines": []}, "NumberedList.validate": {"executed_lines": [63], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 16, 18, 32, 62], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"NumberedList": {"executed_lines": [26, 27, 28, 29, 30, 33, 34, 36, 42, 43, 45, 51, 56, 58, 60, 63], "summary": {"covered_lines": 16, "num_statements": 23, "percent_covered": 69.56521739130434, "percent_covered_display": "70", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [37, 38, 39, 47, 48, 50, 53], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 16, 18, 32, 62], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/poll_preview.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 21, 22, 23, 25, 26, 27, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 44, 46, 47], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"PollPreview.__init__": {"executed_lines": [21, 22, 23], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PollPreview.render": {"executed_lines": [26, 27, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 44], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PollPreview.validate": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 46], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PollPreview": {"executed_lines": [21, 22, 23, 26, 27, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 44, 47], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 25, 46], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/pro_con.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 32, 38, 39, 40, 41, 42, 44, 47, 48, 49, 50, 51, 53, 55, 56], "summary": {"covered_lines": 27, "num_statements": 30, "percent_covered": 90.0, "percent_covered_display": "90", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [33, 34, 35], "excluded_lines": [], "functions": {"ProCon.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ProCon.render": {"executed_lines": [28, 29, 32, 38, 39, 40, 41, 42, 44, 47, 48, 49, 50, 51, 53], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [33, 34, 35], "excluded_lines": []}, "ProCon.validate": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ProCon": {"executed_lines": [22, 23, 24, 25, 28, 29, 32, 38, 39, 40, 41, 42, 44, 47, 48, 49, 50, 51, 53, 56], "summary": {"covered_lines": 20, "num_statements": 23, "percent_covered": 86.95652173913044, "percent_covered_display": "87", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [33, 34, 35], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 55], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/quote.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 32, 35, 38, 41, 43, 45, 46], "summary": {"covered_lines": 19, "num_statements": 20, "percent_covered": 95.0, "percent_covered_display": "95", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [39], "excluded_lines": [], "functions": {"Quote.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Quote.render": {"executed_lines": [28, 29, 32, 35, 38, 41, 43], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [39], "excluded_lines": []}, "Quote.validate": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 45], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Quote": {"executed_lines": [22, 23, 24, 25, 28, 29, 32, 35, 38, 41, 43, 46], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 92.3076923076923, "percent_covered_display": "92", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [39], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 45], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/stats_grid.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 31, 37, 41, 42, 43, 44, 45, 46, 48, 50, 51], "summary": {"covered_lines": 23, "num_statements": 26, "percent_covered": 88.46153846153847, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [32, 33, 34], "excluded_lines": [], "functions": {"StatsGrid.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StatsGrid.render": {"executed_lines": [28, 29, 31, 37, 41, 42, 43, 44, 45, 46, 48], "summary": {"covered_lines": 11, "num_statements": 14, "percent_covered": 78.57142857142857, "percent_covered_display": "79", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [32, 33, 34], "excluded_lines": []}, "StatsGrid.validate": {"executed_lines": [51], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 50], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"StatsGrid": {"executed_lines": [22, 23, 24, 25, 28, 29, 31, 37, 41, 42, 43, 44, 45, 46, 48, 51], "summary": {"covered_lines": 16, "num_statements": 19, "percent_covered": 84.21052631578948, "percent_covered_display": "84", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [32, 33, 34], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 50], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/timeline.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 22, 23, 24, 25, 27, 28, 29, 32, 38, 39, 46, 54, 55], "summary": {"covered_lines": 18, "num_statements": 28, "percent_covered": 64.28571428571429, "percent_covered_display": "64", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [33, 34, 35, 40, 41, 43, 47, 48, 50, 52], "excluded_lines": [], "functions": {"Timeline.__init__": {"executed_lines": [22, 23, 24, 25], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Timeline.render": {"executed_lines": [28, 29, 32, 38, 39, 46], "summary": {"covered_lines": 6, "num_statements": 16, "percent_covered": 37.5, "percent_covered_display": "38", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [33, 34, 35, 40, 41, 43, 47, 48, 50, 52], "excluded_lines": []}, "Timeline.validate": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 54], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Timeline": {"executed_lines": [22, 23, 24, 25, 28, 29, 32, 38, 39, 46, 55], "summary": {"covered_lines": 11, "num_statements": 21, "percent_covered": 52.38095238095238, "percent_covered_display": "52", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [33, 34, 35, 40, 41, 43, 47, 48, 50, 52], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 27, 54], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/features/tip_box.py": {"executed_lines": [1, 7, 8, 11, 12, 15, 18, 20, 27, 28, 29, 30, 32, 33, 34, 37, 38, 41, 42, 43, 44, 45, 47, 49, 50], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TipBox.__init__": {"executed_lines": [27, 28, 29, 30], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TipBox.render": {"executed_lines": [33, 34, 37, 38, 41, 42, 43, 44, 45, 47], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TipBox.validate": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 15, 18, 20, 32, 49], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TipBox": {"executed_lines": [27, 28, 29, 30, 33, 34, 37, 38, 41, 42, 43, 44, 45, 47, 50], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 15, 18, 20, 32, 49], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/layout/__init__.py": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/components/layout/separator.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 16, 18, 19, 21, 22], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Separator.__init__": {"executed_lines": [16], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Separator.render": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Separator.validate": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 18, 21], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Separator": {"executed_lines": [16, 19, 22], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 18, 21], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/posts/composition.py": {"executed_lines": [1, 7, 8, 33, 36, 37, 39, 49, 54, 60, 65, 71, 78, 85, 92, 99, 107, 112, 119, 126, 133, 140, 147, 158, 165, 172, 177, 184, 192, 198, 217, 224, 240, 254, 255, 257, 258, 273, 274, 287, 288, 299, 300], "summary": {"covered_lines": 40, "num_statements": 147, "percent_covered": 27.210884353741495, "percent_covered_display": "27", "missing_lines": 107, "excluded_lines": 0}, "missing_lines": [42, 43, 44, 45, 46, 51, 52, 56, 57, 58, 62, 63, 67, 68, 75, 76, 82, 83, 89, 90, 96, 97, 103, 104, 109, 110, 116, 117, 123, 124, 130, 131, 137, 138, 144, 145, 155, 156, 162, 163, 169, 170, 174, 175, 181, 182, 188, 189, 194, 195, 200, 202, 203, 204, 205, 207, 210, 211, 215, 219, 220, 221, 222, 227, 228, 229, 230, 233, 234, 235, 236, 238, 242, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 278, 279, 280, 281, 282, 283, 284, 285, 290, 291, 292, 293, 294, 295, 296, 297, 304, 305, 306, 307, 308, 309, 310, 311], "excluded_lines": [], "functions": {"ComposablePost.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [42, 43, 44, 45, 46], "excluded_lines": []}, "ComposablePost.add_hook": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [51, 52], "excluded_lines": []}, "ComposablePost.add_body": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [56, 57, 58], "excluded_lines": []}, "ComposablePost.add_cta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [62, 63], "excluded_lines": []}, "ComposablePost.add_hashtags": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [67, 68], "excluded_lines": []}, "ComposablePost.add_bar_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [75, 76], "excluded_lines": []}, "ComposablePost.add_metrics_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [82, 83], "excluded_lines": []}, "ComposablePost.add_comparison_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [89, 90], "excluded_lines": []}, "ComposablePost.add_progress_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [96, 97], "excluded_lines": []}, "ComposablePost.add_ranking_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [103, 104], "excluded_lines": []}, "ComposablePost.add_quote": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [109, 110], "excluded_lines": []}, "ComposablePost.add_big_stat": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [116, 117], "excluded_lines": []}, "ComposablePost.add_timeline": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [123, 124], "excluded_lines": []}, "ComposablePost.add_key_takeaway": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [130, 131], "excluded_lines": []}, "ComposablePost.add_pro_con": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [137, 138], "excluded_lines": []}, "ComposablePost.add_checklist": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [144, 145], "excluded_lines": []}, "ComposablePost.add_before_after": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [155, 156], "excluded_lines": []}, "ComposablePost.add_tip_box": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [162, 163], "excluded_lines": []}, "ComposablePost.add_stats_grid": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [169, 170], "excluded_lines": []}, "ComposablePost.add_poll_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [174, 175], "excluded_lines": []}, "ComposablePost.add_feature_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [181, 182], "excluded_lines": []}, "ComposablePost.add_numbered_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [188, 189], "excluded_lines": []}, "ComposablePost.add_separator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [194, 195], "excluded_lines": []}, "ComposablePost.compose": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [200, 202, 203, 204, 205, 207, 210, 211, 215], "excluded_lines": []}, "ComposablePost.get_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [219, 220, 221, 222], "excluded_lines": []}, "ComposablePost.optimize_for_engagement": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 0}, "missing_lines": [227, 228, 229, 230, 233, 234, 235, 236, 238], "excluded_lines": []}, "ComposablePost.to_dict": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [242], "excluded_lines": []}, "PostBuilder.thought_leadership_post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [262, 263, 264, 265, 266, 267, 268, 269, 270, 271], "excluded_lines": []}, "PostBuilder.story_post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [278, 279, 280, 281, 282, 283, 284, 285], "excluded_lines": []}, "PostBuilder.listicle_post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [290, 291, 292, 293, 294, 295, 296, 297], "excluded_lines": []}, "PostBuilder.comparison_post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [304, 305, 306, 307, 308, 309, 310, 311], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 33, 36, 37, 39, 49, 54, 60, 65, 71, 78, 85, 92, 99, 107, 112, 119, 126, 133, 140, 147, 158, 165, 172, 177, 184, 192, 198, 217, 224, 240, 254, 255, 257, 258, 273, 274, 287, 288, 299, 300], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ComposablePost": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 73, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 73, "excluded_lines": 0}, "missing_lines": [42, 43, 44, 45, 46, 51, 52, 56, 57, 58, 62, 63, 67, 68, 75, 76, 82, 83, 89, 90, 96, 97, 103, 104, 109, 110, 116, 117, 123, 124, 130, 131, 137, 138, 144, 145, 155, 156, 162, 163, 169, 170, 174, 175, 181, 182, 188, 189, 194, 195, 200, 202, 203, 204, 205, 207, 210, 211, 215, 219, 220, 221, 222, 227, 228, 229, 230, 233, 234, 235, 236, 238, 242], "excluded_lines": []}, "PostBuilder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 0}, "missing_lines": [262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 278, 279, 280, 281, 282, 283, 284, 285, 290, 291, 292, 293, 294, 295, 296, 297, 304, 305, 306, 307, 308, 309, 310, 311], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 33, 36, 37, 39, 49, 54, 60, 65, 71, 78, 85, 92, 99, 107, 112, 119, 126, 133, 140, 147, 158, 165, 172, 177, 184, 192, 198, 217, 224, 240, 254, 255, 257, 258, 273, 274, 287, 288, 299, 300], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/preview/__init__.py": {"executed_lines": [1, 40, 42], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 40, 42], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 40, 42], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/preview/component_renderer.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 97, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 97, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 16, 18, 19, 30, 31, 32, 42, 43, 53, 54, 65, 66, 68, 70, 71, 73, 75, 83, 84, 91, 92, 101, 102, 112, 113, 120, 121, 128, 130, 131, 133, 135, 136, 146, 147, 161, 162, 163, 164, 166, 180, 182, 183, 212, 214, 215, 217, 219, 221, 222, 230, 231, 232, 239, 247, 248, 257, 258, 267, 269, 270, 274, 276, 277, 286, 287, 292, 294, 303, 304, 314, 315, 325, 327, 328, 330, 332, 333, 337, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 353, 355], "excluded_lines": [], "functions": {"ComponentRenderer.render_divider": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [16, 18, 19, 30, 31, 32, 42, 43, 53, 54, 65, 66, 68], "excluded_lines": []}, "ComponentRenderer.render_badge": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [73, 75, 83, 84, 91, 92, 101, 102, 112, 113, 120, 121, 128], "excluded_lines": []}, "ComponentRenderer.render_shape": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [133, 135, 136, 146, 147, 161, 162, 163, 164, 166, 180, 182, 183, 212], "excluded_lines": []}, "ComponentRenderer.render_border": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [217, 219, 221, 222, 230, 231, 232, 239, 247, 248, 257, 258, 267], "excluded_lines": []}, "ComponentRenderer.render_background": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 0}, "missing_lines": [274, 276, 277, 286, 287, 292, 294, 303, 304, 314, 315, 325], "excluded_lines": []}, "ComponentRenderer.render_components_grid": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [330, 332, 333, 337, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 353, 355], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 70, 71, 130, 131, 214, 215, 269, 270, 327, 328], "excluded_lines": []}}, "classes": {"ComponentRenderer": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 83, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 83, "excluded_lines": 0}, "missing_lines": [16, 18, 19, 30, 31, 32, 42, 43, 53, 54, 65, 66, 68, 73, 75, 83, 84, 91, 92, 101, 102, 112, 113, 120, 121, 128, 133, 135, 136, 146, 147, 161, 162, 163, 164, 166, 180, 182, 183, 212, 217, 219, 221, 222, 230, 231, 232, 239, 247, 248, 257, 258, 267, 274, 276, 277, 286, 287, 292, 294, 303, 304, 314, 315, 325, 330, 332, 333, 337, 339, 340, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 353, 355], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 70, 71, 130, 131, 214, 215, 269, 270, 327, 328], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/preview/post_preview.py": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 16, 510, 511, 535, 536, 569, 570, 594, 595, 899, 900, 928, 929, 972, 973, 1036, 1037], "summary": {"covered_lines": 22, "num_statements": 151, "percent_covered": 14.56953642384106, "percent_covered_display": "15", "missing_lines": 129, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 35, 38, 41, 44, 508, 513, 516, 517, 518, 519, 522, 523, 524, 525, 528, 529, 530, 531, 533, 538, 539, 541, 542, 545, 546, 547, 548, 550, 557, 558, 559, 560, 561, 563, 572, 573, 575, 576, 585, 597, 598, 599, 600, 602, 605, 606, 607, 610, 617, 618, 619, 621, 622, 625, 626, 627, 629, 630, 642, 657, 659, 903, 904, 907, 908, 911, 912, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 926, 931, 935, 936, 938, 939, 940, 942, 945, 948, 949, 952, 954, 956, 957, 958, 961, 963, 968, 970, 975, 976, 977, 978, 981, 982, 983, 984, 985, 986, 987, 989, 991, 992, 993, 994, 995, 996, 997, 999, 1000, 1002, 1048, 1050, 1051, 1053, 1054, 1056], "excluded_lines": [], "functions": {"LinkedInPreview.generate_html": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 35, 38, 41, 44, 508], "excluded_lines": []}, "LinkedInPreview._render_media_attachments": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 0}, "missing_lines": [513, 516, 517, 518, 519, 522, 523, 524, 525, 528, 529, 530, 531, 533], "excluded_lines": []}, "LinkedInPreview._render_images": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [538, 539, 541, 542, 545, 546, 547, 548, 550, 557, 558, 559, 560, 561, 563], "excluded_lines": []}, "LinkedInPreview._render_video": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [572, 573, 575, 576, 585], "excluded_lines": []}, "LinkedInPreview._render_document_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [597, 598, 599, 600, 602, 605, 606, 607, 610, 617, 618, 619, 621, 622, 625, 626, 627, 629, 630, 642, 657, 659], "excluded_lines": []}, "LinkedInPreview._extract_text_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 0}, "missing_lines": [903, 904, 907, 908, 911, 912, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 926], "excluded_lines": []}, "LinkedInPreview._format_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [931, 935, 936, 938, 942, 945, 948, 949, 952, 954, 956, 957, 958, 961, 963, 968, 970], "excluded_lines": []}, "LinkedInPreview._format_content.replace_hashtag": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [939, 940], "excluded_lines": []}, "LinkedInPreview._generate_stats": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [975, 976, 977, 978, 981, 982, 983, 984, 985, 986, 987, 989, 991, 992, 993, 994, 995, 996, 997, 999, 1000, 1002], "excluded_lines": []}, "LinkedInPreview.save_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [1048, 1050, 1051, 1053, 1054, 1056], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 16, 510, 511, 535, 536, 569, 570, 594, 595, 899, 900, 928, 929, 972, 973, 1036, 1037], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInPreview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 129, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 129, "excluded_lines": 0}, "missing_lines": [30, 31, 32, 35, 38, 41, 44, 508, 513, 516, 517, 518, 519, 522, 523, 524, 525, 528, 529, 530, 531, 533, 538, 539, 541, 542, 545, 546, 547, 548, 550, 557, 558, 559, 560, 561, 563, 572, 573, 575, 576, 585, 597, 598, 599, 600, 602, 605, 606, 607, 610, 617, 618, 619, 621, 622, 625, 626, 627, 629, 630, 642, 657, 659, 903, 904, 907, 908, 911, 912, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 926, 931, 935, 936, 938, 939, 940, 942, 945, 948, 949, 952, 954, 956, 957, 958, 961, 963, 968, 970, 975, 976, 977, 978, 981, 982, 983, 984, 985, 986, 987, 989, 991, 992, 993, 994, 995, 996, 997, 999, 1000, 1002, 1048, 1050, 1051, 1053, 1054, 1056], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 9, 12, 13, 15, 16, 510, 511, 535, 536, 569, 570, 594, 595, 899, 900, 928, 929, 972, 973, 1036, 1037], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/registry.py": {"executed_lines": [1, 8, 9, 10, 13, 14, 16, 17, 19, 130, 131, 133, 196, 197, 199, 212, 213, 216, 284, 286, 287, 289, 318, 319, 321, 322, 324, 325, 327, 328, 329, 331, 339, 340, 342, 343, 346, 347, 348, 358, 359, 360, 369], "summary": {"covered_lines": 41, "num_statements": 41, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ComponentRegistry.list_post_components": {"executed_lines": [19], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.list_subcomponents": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.list_themes": {"executed_lines": [199], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.get_recommendations": {"executed_lines": [216, 284], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.get_complete_system_overview": {"executed_lines": [289], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.get_component_info": {"executed_lines": [321, 322], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.get_variant_info": {"executed_lines": [327, 328, 329, 331], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRegistry.search_components": {"executed_lines": [342, 343, 346, 347, 348, 358, 359, 360, 369], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 16, 17, 130, 131, 196, 197, 212, 213, 286, 287, 318, 319, 324, 325, 339, 340], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ComponentRegistry": {"executed_lines": [19, 133, 199, 216, 284, 289, 321, 322, 327, 328, 329, 331, 342, 343, 346, 347, 348, 358, 359, 360, 369], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 16, 17, 130, 131, 196, 197, 212, 213, 286, 287, 318, 319, 324, 325, 339, 340], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/renderer.py": {"executed_lines": [1, 7, 8, 11, 12, 14, 15, 25, 26, 27, 29, 30, 32, 33, 43, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 81, 82, 84, 85, 86, 87, 88, 90, 91, 96, 97, 100, 101, 104, 109, 113, 114, 122, 123, 125, 126, 127, 128, 130, 131, 132, 133, 138, 140, 141, 147, 153, 154, 156, 157, 158, 159, 161, 162, 167, 168, 169, 170, 171, 176, 177, 178, 179, 180, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 218, 219, 221, 222, 223, 224, 225, 226, 227, 229, 238, 240, 247, 248, 250, 251, 252, 253, 254, 256, 257, 258, 264, 270, 271, 272, 277, 278, 285, 291, 292, 309, 310, 372, 373, 375, 376, 378, 379, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 396, 397, 398, 399, 400, 401, 402, 403, 407, 408, 410, 411, 417, 421, 422, 424, 425, 426, 428, 429, 430, 432, 433, 434, 435, 436, 437, 438, 450, 451, 453, 454, 455, 456, 457, 458, 459, 466, 470, 471, 473, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 487, 491, 499, 500, 501, 502, 504, 505, 506, 508, 509, 513, 523, 524, 526, 528, 529, 530, 532, 533, 536, 538, 544, 556, 557, 558, 560, 561, 562, 563, 564, 566, 574, 575, 576, 578, 582, 583, 585, 587, 588, 589, 591, 598, 599, 600, 601, 607, 609, 615, 616, 618, 619, 620, 621, 622, 623, 625, 626, 633, 642, 646, 647, 649, 651, 652, 653, 654, 656, 663, 664, 666, 667, 668, 669, 670, 671, 673, 684, 685, 686, 688, 689, 690, 696, 697, 699, 700, 701, 703, 704, 705, 706, 707, 708, 710, 716, 727, 732, 733, 735, 736, 747, 748, 749, 750, 751, 753, 754, 755, 756, 757, 759, 761, 773, 783], "summary": {"covered_lines": 324, "num_statements": 378, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 54, "excluded_lines": 0}, "missing_lines": [49, 61, 63, 105, 116, 117, 120, 186, 214, 265, 294, 295, 296, 297, 298, 300, 302, 312, 313, 314, 315, 316, 318, 320, 321, 322, 325, 326, 327, 328, 334, 336, 337, 338, 339, 340, 343, 344, 346, 358, 359, 364, 393, 394, 395, 405, 406, 468, 511, 521, 535, 580, 644, 729], "excluded_lines": [], "functions": {"ComponentRenderer._safe_text": {"executed_lines": [25, 26, 27, 29, 30], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRenderer.render": {"executed_lines": [43, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77], "summary": {"covered_lines": 29, "num_statements": 32, "percent_covered": 90.625, "percent_covered_display": "91", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [49, 61, 63], "excluded_lines": []}, "ComponentRenderer._render_divider": {"executed_lines": [84, 85, 86, 87, 88, 90, 91, 96, 97, 100, 101, 104, 109], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [105], "excluded_lines": []}, "ComponentRenderer._render_background": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [116, 117, 120], "excluded_lines": []}, "ComponentRenderer._render_border": {"executed_lines": [125, 126, 127, 128, 130, 131, 132, 133, 138, 140, 141, 147], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRenderer._render_badge": {"executed_lines": [156, 157, 158, 159, 161, 162, 167, 168, 169, 170, 171, 176, 177, 178, 179, 180], "summary": {"covered_lines": 16, "num_statements": 17, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [186], "excluded_lines": []}, "ComponentRenderer._render_shape": {"executed_lines": [191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208], "summary": {"covered_lines": 17, "num_statements": 18, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [214], "excluded_lines": []}, "ComponentRenderer._render_header": {"executed_lines": [221, 222, 223, 224, 225, 226, 227, 229, 238, 240], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ComponentRenderer._render_body_text": {"executed_lines": [250, 251, 252, 253, 254, 256, 257, 258, 264, 270, 271, 272, 277, 278, 285], "summary": {"covered_lines": 15, "num_statements": 16, "percent_covered": 93.75, "percent_covered_display": "94", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [265], "excluded_lines": []}, "ComponentRenderer._render_caption": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [294, 295, 296, 297, 298, 300, 302], "excluded_lines": []}, "ComponentRenderer._render_quote": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 25, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 25, "excluded_lines": 0}, "missing_lines": [312, 313, 314, 315, 316, 318, 320, 321, 322, 325, 326, 327, 328, 334, 336, 337, 338, 339, 340, 343, 344, 346, 358, 359, 364], "excluded_lines": []}, "ComponentRenderer._render_list": {"executed_lines": [375, 376, 378, 379, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 396, 397, 398, 399, 400, 401, 402, 403, 407, 408, 410, 411, 417], "summary": {"covered_lines": 27, "num_statements": 32, "percent_covered": 84.375, "percent_covered_display": "84", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [393, 394, 395, 405, 406], "excluded_lines": []}, "ComponentRenderer._render_chart": {"executed_lines": [424, 425, 426, 428, 429, 430, 432, 433, 434, 435, 436, 437, 438, 450, 451, 453, 454, 455, 456, 457, 458, 459, 466], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [468], "excluded_lines": []}, "ComponentRenderer._render_metric": {"executed_lines": [473, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 487, 491, 499, 500, 501, 502, 504, 505, 506, 508, 509, 513], "summary": {"covered_lines": 23, "num_statements": 25, "percent_covered": 92.0, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [511, 521], "excluded_lines": []}, "ComponentRenderer._render_progress": {"executed_lines": [526, 528, 529, 530, 532, 533, 536, 538, 544, 556, 557, 558, 560, 561, 562, 563, 564, 566, 574, 575, 576, 578], "summary": {"covered_lines": 22, "num_statements": 24, "percent_covered": 91.66666666666667, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [535, 580], "excluded_lines": []}, "ComponentRenderer._render_table": {"executed_lines": [585, 587, 588, 589, 591, 598, 599, 600, 601, 607, 609, 615, 616, 618, 619, 620, 621, 622, 623, 625, 626, 633, 642], "summary": {"covered_lines": 23, "num_statements": 24, "percent_covered": 95.83333333333333, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [644], "excluded_lines": []}, "ComponentRenderer._render_infographic": {"executed_lines": [649, 651, 652, 653, 654, 656, 663, 664, 666, 667, 668, 669, 670, 671, 673, 684, 685, 686, 688, 689, 690, 696, 697, 699, 700, 701, 703, 704, 705, 706, 707, 708, 710, 716, 727], "summary": {"covered_lines": 35, "num_statements": 36, "percent_covered": 97.22222222222223, "percent_covered_display": "97", "missing_lines": 1, "excluded_lines": 0}, "missing_lines": [729], "excluded_lines": []}, "ShowcaseRenderer.create_showcase_page": {"executed_lines": [747, 748, 749, 750, 751, 753, 754, 755, 756, 757, 759, 761, 773, 783], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 15, 32, 33, 81, 82, 113, 114, 122, 123, 153, 154, 188, 189, 218, 219, 247, 248, 291, 292, 309, 310, 372, 373, 421, 422, 470, 471, 523, 524, 582, 583, 646, 647, 732, 733, 735, 736], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ComponentRenderer": {"executed_lines": [25, 26, 27, 29, 30, 43, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 84, 85, 86, 87, 88, 90, 91, 96, 97, 100, 101, 104, 109, 125, 126, 127, 128, 130, 131, 132, 133, 138, 140, 141, 147, 156, 157, 158, 159, 161, 162, 167, 168, 169, 170, 171, 176, 177, 178, 179, 180, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 221, 222, 223, 224, 225, 226, 227, 229, 238, 240, 250, 251, 252, 253, 254, 256, 257, 258, 264, 270, 271, 272, 277, 278, 285, 375, 376, 378, 379, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 396, 397, 398, 399, 400, 401, 402, 403, 407, 408, 410, 411, 417, 424, 425, 426, 428, 429, 430, 432, 433, 434, 435, 436, 437, 438, 450, 451, 453, 454, 455, 456, 457, 458, 459, 466, 473, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 487, 491, 499, 500, 501, 502, 504, 505, 506, 508, 509, 513, 526, 528, 529, 530, 532, 533, 536, 538, 544, 556, 557, 558, 560, 561, 562, 563, 564, 566, 574, 575, 576, 578, 585, 587, 588, 589, 591, 598, 599, 600, 601, 607, 609, 615, 616, 618, 619, 620, 621, 622, 623, 625, 626, 633, 642, 649, 651, 652, 653, 654, 656, 663, 664, 666, 667, 668, 669, 670, 671, 673, 684, 685, 686, 688, 689, 690, 696, 697, 699, 700, 701, 703, 704, 705, 706, 707, 708, 710, 716, 727], "summary": {"covered_lines": 270, "num_statements": 324, "percent_covered": 83.33333333333333, "percent_covered_display": "83", "missing_lines": 54, "excluded_lines": 0}, "missing_lines": [49, 61, 63, 105, 116, 117, 120, 186, 214, 265, 294, 295, 296, 297, 298, 300, 302, 312, 313, 314, 315, 316, 318, 320, 321, 322, 325, 326, 327, 328, 334, 336, 337, 338, 339, 340, 343, 344, 346, 358, 359, 364, 393, 394, 395, 405, 406, 468, 511, 521, 535, 580, 644, 729], "excluded_lines": []}, "ShowcaseRenderer": {"executed_lines": [747, 748, 749, 750, 751, 753, 754, 755, 756, 757, 759, 761, 773, 783], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 14, 15, 32, 33, 81, 82, 113, 114, 122, 123, 153, 154, 188, 189, 218, 219, 247, 248, 291, 292, 309, 310, 372, 373, 421, 422, 470, 471, 523, 524, 582, 583, 646, 647, 732, 733, 735, 736], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/themes/__init__.py": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 7, 9], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/themes/theme_manager.py": {"executed_lines": [1, 7, 8, 11, 12, 13, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 34, 35, 36, 39, 40, 41, 44, 45, 46, 49, 50, 53, 54, 58, 312, 313, 315, 316, 317, 319, 321, 322, 323, 324, 326, 328, 330, 332, 334, 336, 338, 339, 340, 342, 344, 345, 347, 349, 350, 351, 352, 354, 356, 357, 368, 370, 372, 373, 374, 376], "summary": {"covered_lines": 63, "num_statements": 63, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ThemeManager.__init__": {"executed_lines": [316, 317], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.get_theme": {"executed_lines": [321, 322, 323, 324, 326], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.list_themes": {"executed_lines": [330], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.get_all_themes": {"executed_lines": [334], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.create_custom_theme": {"executed_lines": [338, 339, 340], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.export_theme": {"executed_lines": [344, 345], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.import_theme": {"executed_lines": [349, 350, 351, 352], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.get_theme_summary": {"executed_lines": [356, 357], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager.recommend_theme": {"executed_lines": [370, 372, 373, 374, 376], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 13, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 34, 35, 36, 39, 40, 41, 44, 45, 46, 49, 50, 53, 54, 58, 312, 313, 315, 319, 328, 332, 336, 342, 347, 354, 368], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"LinkedInTheme": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ThemeManager": {"executed_lines": [316, 317, 321, 322, 323, 324, 326, 330, 334, 338, 339, 340, 344, 345, 349, 350, 351, 352, 356, 357, 370, 372, 373, 374, 376], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 13, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 34, 35, 36, 39, 40, 41, 44, 45, 46, 49, 50, 53, 54, 58, 312, 313, 315, 319, 328, 332, 336, 342, 347, 354, 368], "summary": {"covered_lines": 38, "num_statements": 38, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tokens/__init__.py": {"executed_lines": [1, 9, 10, 11, 12, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [1, 9, 10, 11, 12, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [1, 9, 10, 11, 12, 14], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tokens/design_tokens.py": {"executed_lines": [1, 8, 11, 12, 17, 33, 75, 129, 159, 201, 236, 268, 269, 271, 273, 274, 276, 278, 279, 281, 283, 284, 286, 288, 289, 291], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"DesignTokens.get_canvas_size": {"executed_lines": [271], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DesignTokens.get_font_size": {"executed_lines": [276], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DesignTokens.get_color": {"executed_lines": [281], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DesignTokens.get_spacing": {"executed_lines": [286], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "DesignTokens.get_safe_area": {"executed_lines": [291], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 8, 11, 12, 17, 33, 75, 129, 159, 201, 236, 268, 269, 273, 274, 278, 279, 283, 284, 288, 289], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DesignTokens": {"executed_lines": [271, 276, 281, 286, 291], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 8, 11, 12, 17, 33, 75, 129, 159, 201, 236, 268, 269, 273, 274, 278, 279, 283, 284, 288, 289], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tokens/engagement_tokens.py": {"executed_lines": [2, 8, 11, 12, 15, 81, 149, 157, 179, 196, 210, 211, 213, 215, 216, 218, 220, 221, 223, 225, 226, 228, 230, 231, 233, 236, 237, 238, 241, 242, 245, 246, 247, 249], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"EngagementTokens.get_hook_power": {"executed_lines": [213], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EngagementTokens.get_cta_power": {"executed_lines": [218], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EngagementTokens.get_hook_examples": {"executed_lines": [223], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EngagementTokens.get_cta_examples": {"executed_lines": [228], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "EngagementTokens.is_optimal_posting_time": {"executed_lines": [233, 236, 237, 238, 241, 242, 245, 246, 247, 249], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 81, 149, 157, 179, 196, 210, 211, 215, 216, 220, 221, 225, 226, 230, 231], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"EngagementTokens": {"executed_lines": [213, 218, 223, 228, 233, 236, 237, 238, 241, 242, 245, 246, 247, 249], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 81, 149, 157, 179, 196, 210, 211, 215, 216, 220, 221, 225, 226, 230, 231], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tokens/structure_tokens.py": {"executed_lines": [2, 8, 11, 12, 15, 61, 71, 81, 122, 146, 174, 191, 192, 194, 196, 197, 199, 201, 202, 204, 206, 207, 209, 211, 212, 214, 216, 217, 219, 222], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"StructureTokens.get_format_info": {"executed_lines": [194], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StructureTokens.get_symbols": {"executed_lines": [199], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StructureTokens.get_separator": {"executed_lines": [204], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StructureTokens.get_hook_template": {"executed_lines": [209], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StructureTokens.get_cta_template": {"executed_lines": [214], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "StructureTokens.get_recommended_length": {"executed_lines": [219, 222], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 61, 71, 81, 122, 146, 174, 191, 192, 196, 197, 201, 202, 206, 207, 211, 212, 216, 217], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"StructureTokens": {"executed_lines": [194, 199, 204, 209, 214, 219, 222], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 61, 71, 81, 122, 146, 174, 191, 192, 196, 197, 201, 202, 206, 207, 211, 212, 216, 217], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tokens/text_tokens.py": {"executed_lines": [2, 8, 11, 12, 15, 16, 19, 28, 37, 44, 53, 75, 96, 107, 110, 121, 128, 130, 131, 133, 135, 136, 138, 140, 141, 143, 144, 146, 147, 149], "summary": {"covered_lines": 28, "num_statements": 28, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TextTokens.get_length_range": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TextTokens.get_line_break_count": {"executed_lines": [138], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TextTokens.calculate_emoji_count": {"executed_lines": [143, 144], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TextTokens.get_hashtag_count": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 16, 19, 28, 37, 44, 53, 75, 96, 107, 110, 121, 128, 130, 131, 135, 136, 140, 141, 146, 147], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TextTokens": {"executed_lines": [133, 138, 143, 144, 149], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [2, 8, 11, 12, 15, 16, 19, 28, 37, 44, 53, 75, 96, 107, 110, 121, 128, 130, 131, 135, 136, 140, 141, 146, 147], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 21], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 21], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [15, 16, 17, 18, 19, 21], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/composition_tools.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 362, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 362, "excluded_lines": 0}, "missing_lines": [7, 28, 31, 32, 43, 44, 45, 47, 48, 49, 51, 53, 54, 65, 66, 67, 69, 70, 71, 73, 75, 76, 87, 88, 89, 91, 92, 93, 95, 97, 98, 113, 114, 115, 118, 119, 120, 121, 123, 128, 129, 131, 133, 134, 148, 149, 150, 153, 154, 155, 156, 158, 159, 162, 164, 166, 167, 184, 185, 186, 189, 190, 191, 192, 194, 195, 198, 200, 202, 203, 217, 218, 219, 222, 223, 224, 225, 227, 228, 231, 233, 235, 236, 253, 254, 255, 258, 259, 260, 261, 263, 268, 271, 273, 275, 276, 293, 294, 295, 298, 299, 300, 301, 303, 308, 309, 311, 313, 314, 331, 332, 333, 336, 337, 338, 339, 341, 346, 347, 349, 351, 352, 369, 370, 371, 374, 375, 376, 377, 379, 384, 387, 389, 391, 392, 411, 412, 413, 416, 417, 418, 419, 421, 426, 429, 431, 433, 434, 451, 452, 453, 456, 457, 458, 459, 461, 466, 467, 469, 471, 472, 482, 483, 484, 486, 487, 490, 492, 494, 495, 509, 510, 511, 513, 514, 515, 516, 518, 523, 526, 528, 530, 531, 546, 547, 548, 550, 551, 554, 555, 557, 563, 566, 568, 570, 571, 583, 584, 585, 587, 588, 589, 590, 592, 597, 598, 600, 602, 603, 615, 616, 617, 619, 620, 621, 622, 624, 629, 630, 632, 634, 635, 646, 647, 648, 650, 651, 652, 653, 655, 656, 659, 661, 663, 664, 675, 676, 677, 679, 680, 681, 682, 684, 685, 688, 690, 692, 693, 708, 709, 710, 712, 713, 714, 715, 717, 723, 726, 728, 730, 731, 742, 743, 744, 746, 747, 748, 750, 752, 753, 763, 764, 766, 767, 768, 771, 772, 773, 774, 777, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 798, 799, 800, 801, 802, 803, 804, 805, 808, 809, 810, 811, 814, 815, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 833, 834, 835, 836, 837, 838, 841, 842, 845, 848, 849, 851, 853, 854, 861, 862, 863, 865, 866, 868, 869, 880, 881, 882, 885, 887, 888, 891, 892, 893, 896, 897, 899, 901, 903, 904, 911, 912, 913, 915, 916, 918], "excluded_lines": [], "functions": {"register_composition_tools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 53, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 53, "excluded_lines": 0}, "missing_lines": [31, 32, 53, 54, 75, 76, 97, 98, 133, 134, 166, 167, 202, 203, 235, 236, 275, 276, 313, 314, 351, 352, 391, 392, 433, 434, 471, 472, 494, 495, 530, 531, 570, 571, 602, 603, 634, 635, 663, 664, 692, 693, 730, 731, 752, 753, 853, 854, 868, 869, 903, 904, 918], "excluded_lines": []}, "register_composition_tools.linkedin_add_hook": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [43, 44, 45, 47, 48, 49, 51], "excluded_lines": []}, "register_composition_tools.linkedin_add_body": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [65, 66, 67, 69, 70, 71, 73], "excluded_lines": []}, "register_composition_tools.linkedin_add_cta": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [87, 88, 89, 91, 92, 93, 95], "excluded_lines": []}, "register_composition_tools.linkedin_add_bar_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [113, 114, 115, 118, 119, 120, 121, 123, 128, 129, 131], "excluded_lines": []}, "register_composition_tools.linkedin_add_metrics_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [148, 149, 150, 153, 154, 155, 156, 158, 159, 162, 164], "excluded_lines": []}, "register_composition_tools.linkedin_add_comparison_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [184, 185, 186, 189, 190, 191, 192, 194, 195, 198, 200], "excluded_lines": []}, "register_composition_tools.linkedin_add_progress_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [217, 218, 219, 222, 223, 224, 225, 227, 228, 231, 233], "excluded_lines": []}, "register_composition_tools.linkedin_add_ranking_chart": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [253, 254, 255, 258, 259, 260, 261, 263, 268, 271, 273], "excluded_lines": []}, "register_composition_tools.linkedin_add_quote": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [293, 294, 295, 298, 299, 300, 301, 303, 308, 309, 311], "excluded_lines": []}, "register_composition_tools.linkedin_add_big_stat": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [331, 332, 333, 336, 337, 338, 339, 341, 346, 347, 349], "excluded_lines": []}, "register_composition_tools.linkedin_add_timeline": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [369, 370, 371, 374, 375, 376, 377, 379, 384, 387, 389], "excluded_lines": []}, "register_composition_tools.linkedin_add_key_takeaway": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [411, 412, 413, 416, 417, 418, 419, 421, 426, 429, 431], "excluded_lines": []}, "register_composition_tools.linkedin_add_pro_con": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [451, 452, 453, 456, 457, 458, 459, 461, 466, 467, 469], "excluded_lines": []}, "register_composition_tools.linkedin_add_separator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [482, 483, 484, 486, 487, 490, 492], "excluded_lines": []}, "register_composition_tools.linkedin_add_checklist": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [509, 510, 511, 513, 514, 515, 516, 518, 523, 526, 528], "excluded_lines": []}, "register_composition_tools.linkedin_add_before_after": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [546, 547, 548, 550, 551, 554, 555, 557, 563, 566, 568], "excluded_lines": []}, "register_composition_tools.linkedin_add_tip_box": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [583, 584, 585, 587, 588, 589, 590, 592, 597, 598, 600], "excluded_lines": []}, "register_composition_tools.linkedin_add_stats_grid": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [615, 616, 617, 619, 620, 621, 622, 624, 629, 630, 632], "excluded_lines": []}, "register_composition_tools.linkedin_add_poll_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [646, 647, 648, 650, 651, 652, 653, 655, 656, 659, 661], "excluded_lines": []}, "register_composition_tools.linkedin_add_feature_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [675, 676, 677, 679, 680, 681, 682, 684, 685, 688, 690], "excluded_lines": []}, "register_composition_tools.linkedin_add_numbered_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [708, 709, 710, 712, 713, 714, 715, 717, 723, 726, 728], "excluded_lines": []}, "register_composition_tools.linkedin_add_hashtags": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [742, 743, 744, 746, 747, 748, 750], "excluded_lines": []}, "register_composition_tools.linkedin_compose_post": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 62, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 62, "excluded_lines": 0}, "missing_lines": [763, 764, 766, 767, 768, 771, 772, 773, 774, 777, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 798, 799, 800, 801, 802, 803, 804, 805, 808, 809, 810, 811, 814, 815, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 833, 834, 835, 836, 837, 838, 841, 842, 845, 848, 849, 851], "excluded_lines": []}, "register_composition_tools.linkedin_get_preview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [861, 862, 863, 865, 866], "excluded_lines": []}, "register_composition_tools.linkedin_preview_html": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [880, 881, 882, 885, 887, 888, 891, 892, 893, 896, 897, 899, 901], "excluded_lines": []}, "register_composition_tools.linkedin_export_draft": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [911, 912, 913, 915, 916], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [7, 28], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 362, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 362, "excluded_lines": 0}, "missing_lines": [7, 28, 31, 32, 43, 44, 45, 47, 48, 49, 51, 53, 54, 65, 66, 67, 69, 70, 71, 73, 75, 76, 87, 88, 89, 91, 92, 93, 95, 97, 98, 113, 114, 115, 118, 119, 120, 121, 123, 128, 129, 131, 133, 134, 148, 149, 150, 153, 154, 155, 156, 158, 159, 162, 164, 166, 167, 184, 185, 186, 189, 190, 191, 192, 194, 195, 198, 200, 202, 203, 217, 218, 219, 222, 223, 224, 225, 227, 228, 231, 233, 235, 236, 253, 254, 255, 258, 259, 260, 261, 263, 268, 271, 273, 275, 276, 293, 294, 295, 298, 299, 300, 301, 303, 308, 309, 311, 313, 314, 331, 332, 333, 336, 337, 338, 339, 341, 346, 347, 349, 351, 352, 369, 370, 371, 374, 375, 376, 377, 379, 384, 387, 389, 391, 392, 411, 412, 413, 416, 417, 418, 419, 421, 426, 429, 431, 433, 434, 451, 452, 453, 456, 457, 458, 459, 461, 466, 467, 469, 471, 472, 482, 483, 484, 486, 487, 490, 492, 494, 495, 509, 510, 511, 513, 514, 515, 516, 518, 523, 526, 528, 530, 531, 546, 547, 548, 550, 551, 554, 555, 557, 563, 566, 568, 570, 571, 583, 584, 585, 587, 588, 589, 590, 592, 597, 598, 600, 602, 603, 615, 616, 617, 619, 620, 621, 622, 624, 629, 630, 632, 634, 635, 646, 647, 648, 650, 651, 652, 653, 655, 656, 659, 661, 663, 664, 675, 676, 677, 679, 680, 681, 682, 684, 685, 688, 690, 692, 693, 708, 709, 710, 712, 713, 714, 715, 717, 723, 726, 728, 730, 731, 742, 743, 744, 746, 747, 748, 750, 752, 753, 763, 764, 766, 767, 768, 771, 772, 773, 774, 777, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 798, 799, 800, 801, 802, 803, 804, 805, 808, 809, 810, 811, 814, 815, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 833, 834, 835, 836, 837, 838, 841, 842, 845, 848, 849, 851, 853, 854, 861, 862, 863, 865, 866, 868, 869, 880, 881, 882, 885, 887, 888, 891, 892, 893, 896, 897, 899, 901, 903, 904, 911, 912, 913, 915, 916, 918], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/draft_tools.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 26, 31, 33, 34, 41, 42, 44, 45, 55, 56, 57, 58, 60, 61, 71, 72, 74, 75, 76, 77, 78, 80, 81, 91, 92, 93, 94, 96, 97, 104, 105, 107], "excluded_lines": [], "functions": {"register_draft_tools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [13, 14, 33, 34, 44, 45, 60, 61, 80, 81, 96, 97, 107], "excluded_lines": []}, "register_draft_tools.linkedin_create": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [26, 31], "excluded_lines": []}, "register_draft_tools.linkedin_list": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [41, 42], "excluded_lines": []}, "register_draft_tools.linkedin_switch": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [55, 56, 57, 58], "excluded_lines": []}, "register_draft_tools.linkedin_get_info": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [71, 72, 74, 75, 76, 77, 78], "excluded_lines": []}, "register_draft_tools.linkedin_delete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [91, 92, 93, 94], "excluded_lines": []}, "register_draft_tools.linkedin_clear_all": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [104, 105], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [7, 10], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 26, 31, 33, 34, 41, 42, 44, 45, 55, 56, 57, 58, 60, 61, 71, 72, 74, 75, 76, 77, 78, 80, 81, 91, 92, 93, 94, 96, 97, 104, 105, 107], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/publishing_tools.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 15, 16, 27, 28, 29, 32, 33, 34, 41, 42, 43, 46, 47, 55, 56, 62, 63, 66, 68, 75, 76, 78, 79, 86, 88, 89, 96, 97, 98, 103, 105, 106, 113, 114, 116, 124, 126], "excluded_lines": [], "functions": {"register_publishing_tools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [13, 15, 16, 78, 79, 105, 106, 126], "excluded_lines": []}, "register_publishing_tools.linkedin_publish": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [27, 28, 29, 32, 33, 34, 41, 42, 43, 46, 47, 55, 56, 62, 63, 66, 68, 75, 76], "excluded_lines": []}, "register_publishing_tools.linkedin_test_connection": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0}, "missing_lines": [86, 88, 89, 96, 97, 98, 103], "excluded_lines": []}, "register_publishing_tools.linkedin_get_config_status": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [113, 114, 116, 124], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [7, 10], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 15, 16, 27, 28, 29, 32, 33, 34, 41, 42, 43, 46, 47, 55, 56, 62, 63, 66, 68, 75, 76, 78, 79, 86, 88, 89, 96, 97, 98, 103, 105, 106, 113, 114, 116, 124, 126], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/registry_tools.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 15, 17, 18, 25, 26, 28, 29, 39, 40, 42, 43, 53, 54, 56, 57, 64, 65, 67], "excluded_lines": [], "functions": {"register_registry_tools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [13, 15, 17, 18, 28, 29, 42, 43, 56, 57, 67], "excluded_lines": []}, "register_registry_tools.linkedin_list_components": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [25, 26], "excluded_lines": []}, "register_registry_tools.linkedin_get_component_info": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [39, 40], "excluded_lines": []}, "register_registry_tools.linkedin_get_recommendations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [53, 54], "excluded_lines": []}, "register_registry_tools.linkedin_get_system_overview": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [64, 65], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [7, 10], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 21, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 21, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 15, 17, 18, 25, 26, 28, 29, 39, 40, 42, 43, 53, 54, 56, 57, 64, 65, 67], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/tools/theme_tools.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 16, 17, 19, 20, 27, 28, 30, 31, 41, 42, 44, 45, 55, 56, 57, 59, 60, 62], "excluded_lines": [], "functions": {"register_theme_tools": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 0}, "missing_lines": [13, 14, 16, 17, 19, 20, 30, 31, 44, 45, 62], "excluded_lines": []}, "register_theme_tools.linkedin_list_themes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [27, 28], "excluded_lines": []}, "register_theme_tools.linkedin_get_theme": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [41, 42], "excluded_lines": []}, "register_theme_tools.linkedin_apply_theme": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 0}, "missing_lines": [55, 56, 57, 59, 60], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [7, 10], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 22, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 22, "excluded_lines": 0}, "missing_lines": [7, 10, 13, 14, 16, 17, 19, 20, 27, 28, 30, 31, 41, 42, 44, 45, 55, 56, 57, 59, 60, 62], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/utils/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [5, 7], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [5, 7], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [5, 7], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/utils/document_converter.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 148, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 148, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 12, 16, 18, 19, 21, 22, 23, 26, 27, 28, 30, 31, 33, 34, 35, 37, 38, 54, 55, 56, 59, 60, 61, 62, 63, 66, 68, 69, 70, 71, 72, 73, 75, 77, 79, 80, 82, 83, 84, 87, 88, 90, 91, 94, 96, 97, 104, 105, 106, 107, 116, 119, 120, 128, 129, 132, 133, 134, 135, 136, 138, 140, 141, 148, 149, 150, 151, 152, 157, 160, 161, 163, 164, 166, 172, 173, 177, 178, 181, 189, 190, 192, 194, 195, 202, 203, 204, 205, 206, 211, 214, 221, 222, 224, 225, 227, 231, 232, 235, 236, 243, 244, 246, 248, 249, 251, 252, 253, 255, 257, 258, 259, 260, 262, 263, 264, 265, 267, 268, 270, 271, 272, 273, 275, 276, 278, 279, 281, 284, 286, 287, 288, 290, 291, 293, 295, 296, 298, 300, 301, 302, 304, 307, 308, 310], "excluded_lines": [], "functions": {"DocumentConverter._get_cache_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 0}, "missing_lines": [21, 22, 23, 26, 27, 28], "excluded_lines": []}, "DocumentConverter._get_cache_dir": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [33, 34, 35], "excluded_lines": []}, "DocumentConverter.convert_to_images": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 0}, "missing_lines": [54, 55, 56, 59, 60, 61, 62, 63, 66, 68, 69, 70, 71, 72, 73, 75, 77], "excluded_lines": []}, "DocumentConverter._get_cached_images": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [82, 83, 84, 87, 88, 90, 91, 94], "excluded_lines": []}, "DocumentConverter._convert_pdf": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [104, 105, 106, 107, 116, 119, 120, 128, 129, 132, 133, 134, 135, 136, 138], "excluded_lines": []}, "DocumentConverter._convert_pptx": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [148, 149, 150, 151, 152, 157, 160, 161, 163, 164, 166, 172, 173, 177, 178, 181, 189, 190, 192], "excluded_lines": []}, "DocumentConverter._convert_docx": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0}, "missing_lines": [202, 203, 204, 205, 206, 211, 214, 221, 222, 224, 225, 227, 231, 232, 235, 236, 243, 244, 246], "excluded_lines": []}, "DocumentConverter.get_page_count": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0}, "missing_lines": [251, 252, 253, 255, 257, 258, 259, 260, 262, 263, 264, 265, 267, 268, 270, 271, 272, 273, 275, 276, 278, 279, 281, 284, 286, 287, 288, 290, 291, 293], "excluded_lines": []}, "DocumentConverter.clear_cache": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 0}, "missing_lines": [298, 300, 301, 302, 304, 307, 308, 310], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 12, 16, 18, 19, 30, 31, 37, 38, 79, 80, 96, 97, 140, 141, 194, 195, 248, 249, 295, 296], "excluded_lines": []}}, "classes": {"DocumentConverter": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 125, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 125, "excluded_lines": 0}, "missing_lines": [21, 22, 23, 26, 27, 28, 33, 34, 35, 54, 55, 56, 59, 60, 61, 62, 63, 66, 68, 69, 70, 71, 72, 73, 75, 77, 82, 83, 84, 87, 88, 90, 91, 94, 104, 105, 106, 107, 116, 119, 120, 128, 129, 132, 133, 134, 135, 136, 138, 148, 149, 150, 151, 152, 157, 160, 161, 163, 164, 166, 172, 173, 177, 178, 181, 189, 190, 192, 202, 203, 204, 205, 206, 211, 214, 221, 222, 224, 225, 227, 231, 232, 235, 236, 243, 244, 246, 251, 252, 253, 255, 257, 258, 259, 260, 262, 263, 264, 265, 267, 268, 270, 271, 272, 273, 275, 276, 278, 279, 281, 284, 286, 287, 288, 290, 291, 293, 298, 300, 301, 302, 304, 307, 308, 310], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 0}, "missing_lines": [7, 8, 9, 12, 16, 18, 19, 30, 31, 37, 38, 79, 80, 96, 97, 140, 141, 194, 195, 248, 249, 295, 296], "excluded_lines": []}}}, "src/chuk_mcp_linkedin/variants.py": {"executed_lines": [1, 7, 8, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 26, 180, 181, 183, 220, 221, 223, 282, 283, 285, 286, 293, 296, 297, 298, 299, 302, 303, 304, 307, 308, 316, 317, 318, 320, 322, 323, 326, 345, 347, 348, 350, 356, 357, 358, 360], "summary": {"covered_lines": 45, "num_statements": 45, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"PostVariants.text_post_variants": {"executed_lines": [26], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostVariants.poll_post_variants": {"executed_lines": [183], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostVariants.document_post_variants": {"executed_lines": [223], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VariantResolver.resolve": {"executed_lines": [293, 296, 297, 298, 299, 302, 303, 304, 307, 308, 316, 317, 318, 320], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VariantResolver.suggest_variants": {"executed_lines": [326, 345], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VariantResolver.get_all_variants": {"executed_lines": [350, 356, 357, 358, 360], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 180, 181, 220, 221, 282, 283, 285, 286, 322, 323, 347, 348], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"VariantConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PostVariants": {"executed_lines": [26, 183, 223], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "VariantResolver": {"executed_lines": [293, 296, 297, 298, 299, 302, 303, 304, 307, 308, 316, 317, 318, 320, 326, 345, 350, 356, 357, 358, 360], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [1, 7, 8, 11, 12, 13, 15, 16, 17, 20, 21, 23, 24, 180, 181, 220, 221, 282, 283, 285, 286, 322, 323, 347, 348], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 1866, "num_statements": 3499, "percent_covered": 53.32952272077736, "percent_covered_display": "53", "missing_lines": 1633, "excluded_lines": 0}}

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-linkedin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server