-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcoverage.json
More file actions
1 lines (1 loc) · 124 KB
/
coverage.json
File metadata and controls
1 lines (1 loc) · 124 KB
1
{"meta": {"format": 3, "version": "7.11.2", "timestamp": "2025-11-09T16:42:11.571610", "branch_coverage": true, "show_contexts": false}, "files": {"src/consoul/__init__.py": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 8, 9, 10, 12], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/__main__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 380, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 380, "excluded_lines": 2, "num_branches": 70, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 70}, "missing_lines": [3, 5, 6, 7, 9, 11, 12, 15, 16, 22, 27, 32, 36, 41, 42, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 67, 70, 71, 73, 76, 79, 80, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 97, 98, 101, 102, 103, 105, 106, 107, 108, 109, 112, 113, 114, 115, 117, 118, 121, 122, 123, 125, 128, 129, 136, 141, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 174, 175, 180, 182, 188, 189, 192, 194, 195, 196, 197, 198, 199, 202, 204, 205, 206, 207, 208, 209, 210, 213, 214, 216, 217, 218, 220, 221, 222, 223, 224, 225, 228, 229, 230, 235, 237, 243, 244, 247, 249, 250, 251, 252, 253, 254, 257, 259, 260, 261, 262, 263, 265, 266, 270, 271, 272, 273, 274, 275, 278, 279, 280, 287, 291, 295, 299, 306, 313, 318, 341, 343, 345, 346, 347, 355, 356, 357, 359, 361, 366, 369, 371, 372, 373, 376, 377, 380, 381, 382, 383, 384, 385, 386, 387, 390, 397, 398, 399, 401, 402, 407, 408, 411, 412, 417, 418, 420, 423, 425, 426, 427, 430, 431, 432, 437, 438, 440, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 459, 460, 465, 468, 470, 472, 473, 474, 475, 477, 478, 479, 482, 483, 488, 490, 492, 493, 494, 496, 497, 498, 499, 501, 502, 503, 504, 506, 508, 509, 510, 513, 514, 515, 516, 523, 528, 533, 553, 558, 559, 561, 563, 564, 565, 567, 568, 569, 571, 572, 576, 578, 580, 582, 584, 585, 586, 589, 590, 591, 592, 593, 596, 597, 599, 603, 604, 607, 608, 610, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 626, 627, 628, 633, 638, 648, 650, 651, 653, 655, 656, 657, 658, 659, 662, 663, 664, 665, 666, 668, 669, 671, 672, 673, 674, 676, 677, 678, 679, 680, 686, 687, 688, 689, 692, 694, 696, 697, 699, 700, 701, 704, 705, 706, 709, 710, 711, 713, 716, 719, 720, 727, 729, 730, 731, 732, 736, 737, 740, 741, 742, 746, 750, 751, 753, 756, 759, 760, 767, 768, 769, 771, 772, 773, 774, 775, 776, 779, 781], "excluded_lines": [784, 785], "executed_branches": [], "missing_branches": [[53, 54], [53, 76], [55, 56], [55, 57], [57, 58], [57, 59], [59, 60], [59, 65], [65, 67], [65, 70], [79, 80], [79, 92], [83, 84], [83, 89], [97, -15], [97, 98], [149, 150], [149, 153], [154, -128], [154, 155], [204, -173], [204, 205], [207, -173], [207, 208], [213, 214], [213, 216], [259, 260], [259, 265], [355, 356], [355, 359], [359, 361], [359, 369], [371, -278], [371, 372], [380, 381], [380, 411], [383, 384], [383, 420], [501, 502], [501, 503], [503, 504], [503, 506], [563, 564], [563, 567], [567, 568], [567, 571], [571, 572], [571, 578], [580, 582], [580, 603], [584, 585], [584, 589], [590, 591], [590, 596], [671, 672], [671, 692], [676, 677], [676, 686], [678, 679], [678, 689], [694, 696], [694, 736], [699, 700], [699, 729], [719, 720], [719, 727], [731, -626], [731, 732], [759, 760], [759, 767]], "functions": {"cli": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 30, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 67, 70, 71, 73, 76, 79, 80, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 97, 98], "excluded_lines": [], "executed_branches": [], "missing_branches": [[53, 54], [53, 76], [55, 56], [55, 57], [57, 58], [57, 59], [59, 60], [59, 65], [65, 67], [65, 70], [79, 80], [79, 92], [83, 84], [83, 89], [97, -15], [97, 98]]}, "chat": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 5, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [105, 106, 107, 108, 109], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "init": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117, 118], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [125], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "list_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 23, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 168, 169, 170], "excluded_lines": [], "executed_branches": [], "missing_branches": [[149, 150], [149, 153], [154, -128], [154, 155]]}, "show_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 29, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 29, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [182, 188, 189, 192, 194, 195, 196, 197, 198, 199, 202, 204, 205, 206, 207, 208, 209, 210, 213, 214, 216, 217, 218, 220, 221, 222, 223, 224, 225], "excluded_lines": [], "executed_branches": [], "missing_branches": [[204, -173], [204, 205], [207, -173], [207, 208], [213, 214], [213, 216]]}, "summary_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 24, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [237, 243, 244, 247, 249, 250, 251, 252, 253, 254, 257, 259, 260, 261, 262, 263, 265, 266, 270, 271, 272, 273, 274, 275], "excluded_lines": [], "executed_branches": [], "missing_branches": [[259, 260], [259, 265]]}, "search_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 42, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 42, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [341, 343, 345, 346, 347, 355, 356, 357, 359, 361, 366, 369, 371, 372, 373, 376, 377, 380, 381, 382, 383, 384, 385, 386, 387, 390, 397, 398, 399, 401, 402, 407, 408, 411, 412, 417, 418, 420, 423, 425, 426, 427], "excluded_lines": [], "executed_branches": [], "missing_branches": [[355, 356], [355, 359], [359, 361], [359, 369], [371, -278], [371, 372], [380, 381], [380, 411], [383, 384], [383, 420]]}, "delete_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 11, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [440, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "clear_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 8, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [470, 472, 473, 474, 475, 477, 478, 479], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "stats_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 16, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [490, 492, 493, 494, 496, 497, 498, 499, 501, 502, 503, 504, 506, 508, 509, 510], "excluded_lines": [], "executed_branches": [], "missing_branches": [[501, 502], [501, 503], [503, 504], [503, 506]]}, "export_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 44, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 44, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [553, 558, 559, 561, 563, 564, 565, 567, 568, 569, 571, 572, 576, 578, 580, 582, 584, 585, 586, 589, 590, 591, 592, 593, 596, 597, 599, 603, 604, 607, 608, 610, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623], "excluded_lines": [], "executed_branches": [], "missing_branches": [[563, 564], [563, 567], [567, 568], [567, 571], [571, 572], [571, 578], [580, 582], [580, 603], [584, 585], [584, 589], [590, 591], [590, 596]]}, "import_history": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 72, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 72, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [648, 650, 651, 653, 655, 656, 657, 658, 659, 662, 663, 664, 665, 666, 668, 669, 671, 672, 673, 674, 676, 677, 678, 679, 680, 686, 687, 688, 689, 692, 694, 696, 697, 699, 700, 701, 704, 705, 706, 709, 710, 711, 713, 716, 719, 720, 727, 729, 730, 731, 732, 736, 737, 740, 741, 742, 746, 750, 751, 753, 756, 759, 760, 767, 768, 769, 771, 772, 773, 774, 775, 776], "excluded_lines": [], "executed_branches": [], "missing_branches": [[671, 672], [671, 692], [676, 677], [676, 686], [678, 679], [678, 689], [694, 696], [694, 736], [699, 700], [699, 729], [719, 720], [719, 727], [731, -626], [731, 732], [759, 760], [759, 767]]}, "main": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [781], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 72, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 72, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [3, 5, 6, 7, 9, 11, 12, 15, 16, 22, 27, 32, 36, 41, 42, 101, 102, 103, 112, 113, 114, 115, 121, 122, 123, 128, 129, 136, 141, 173, 174, 175, 180, 228, 229, 230, 235, 278, 279, 280, 287, 291, 295, 299, 306, 313, 318, 430, 431, 432, 437, 438, 459, 460, 465, 468, 482, 483, 488, 513, 514, 515, 516, 523, 528, 533, 626, 627, 628, 633, 638, 779], "excluded_lines": [784, 785], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 380, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 380, "excluded_lines": 2, "num_branches": 70, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 70}, "missing_lines": [3, 5, 6, 7, 9, 11, 12, 15, 16, 22, 27, 32, 36, 41, 42, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 67, 70, 71, 73, 76, 79, 80, 81, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 97, 98, 101, 102, 103, 105, 106, 107, 108, 109, 112, 113, 114, 115, 117, 118, 121, 122, 123, 125, 128, 129, 136, 141, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 168, 169, 170, 173, 174, 175, 180, 182, 188, 189, 192, 194, 195, 196, 197, 198, 199, 202, 204, 205, 206, 207, 208, 209, 210, 213, 214, 216, 217, 218, 220, 221, 222, 223, 224, 225, 228, 229, 230, 235, 237, 243, 244, 247, 249, 250, 251, 252, 253, 254, 257, 259, 260, 261, 262, 263, 265, 266, 270, 271, 272, 273, 274, 275, 278, 279, 280, 287, 291, 295, 299, 306, 313, 318, 341, 343, 345, 346, 347, 355, 356, 357, 359, 361, 366, 369, 371, 372, 373, 376, 377, 380, 381, 382, 383, 384, 385, 386, 387, 390, 397, 398, 399, 401, 402, 407, 408, 411, 412, 417, 418, 420, 423, 425, 426, 427, 430, 431, 432, 437, 438, 440, 446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 459, 460, 465, 468, 470, 472, 473, 474, 475, 477, 478, 479, 482, 483, 488, 490, 492, 493, 494, 496, 497, 498, 499, 501, 502, 503, 504, 506, 508, 509, 510, 513, 514, 515, 516, 523, 528, 533, 553, 558, 559, 561, 563, 564, 565, 567, 568, 569, 571, 572, 576, 578, 580, 582, 584, 585, 586, 589, 590, 591, 592, 593, 596, 597, 599, 603, 604, 607, 608, 610, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 626, 627, 628, 633, 638, 648, 650, 651, 653, 655, 656, 657, 658, 659, 662, 663, 664, 665, 666, 668, 669, 671, 672, 673, 674, 676, 677, 678, 679, 680, 686, 687, 688, 689, 692, 694, 696, 697, 699, 700, 701, 704, 705, 706, 709, 710, 711, 713, 716, 719, 720, 727, 729, 730, 731, 732, 736, 737, 740, 741, 742, 746, 750, 751, 753, 756, 759, 760, 767, 768, 769, 771, 772, 773, 774, 775, 776, 779, 781], "excluded_lines": [784, 785], "executed_branches": [], "missing_branches": [[53, 54], [53, 76], [55, 56], [55, 57], [57, 58], [57, 59], [59, 60], [59, 65], [65, 67], [65, 70], [79, 80], [79, 92], [83, 84], [83, 89], [97, -15], [97, 98], [149, 150], [149, 153], [154, -128], [154, 155], [204, -173], [204, 205], [207, -173], [207, 208], [213, 214], [213, 216], [259, 260], [259, 265], [355, 356], [355, 359], [359, 361], [359, 369], [371, -278], [371, 372], [380, 381], [380, 411], [383, 384], [383, 420], [501, 502], [501, 503], [503, 504], [503, 506], [563, 564], [563, 567], [567, 568], [567, 571], [571, 572], [571, 578], [580, 582], [580, 603], [584, 585], [584, 589], [590, 591], [590, 596], [671, 672], [671, 692], [676, 677], [676, 686], [678, 679], [678, 689], [694, 696], [694, 736], [699, 700], [699, 729], [719, 720], [719, 727], [731, -626], [731, 732], [759, 760], [759, 767]]}}}, "src/consoul/ai/__init__.py": {"executed_lines": [1, 7, 12, 22, 23, 29, 31], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 7, 12, 22, 23, 29, 31], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 7, 12, 22, 23, 29, 31], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/ai/context.py": {"executed_lines": [1, 24, 26, 28, 35, 70, 73, 92, 93, 96, 97, 98, 101, 104, 113, 114, 117, 129, 130, 137, 138, 139, 141, 143, 150, 151, 153, 155, 157, 158, 160, 163, 178, 180, 182, 183, 184, 185, 187, 190, 191, 193, 196, 206, 208, 210, 212, 215, 240, 241, 244, 245, 248, 251, 277, 278], "summary": {"covered_lines": 54, "num_statements": 56, "percent_covered": 95.71428571428571, "percent_covered_display": "95.71", "missing_lines": 2, "excluded_lines": 4, "num_branches": 14, "num_partial_branches": 1, "covered_branches": 13, "missing_branches": 1}, "missing_lines": [131, 132], "excluded_lines": [28, 29, 31, 32], "executed_branches": [[92, 93], [92, 96], [96, 97], [96, 101], [97, 96], [97, 98], [151, 153], [151, 157], [182, 183], [240, 241], [240, 244], [244, 245], [244, 248]], "missing_branches": [[182, 190]], "functions": {"get_model_token_limit": {"executed_lines": [92, 93, 96, 97, 98, 101], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[92, 93], [92, 96], [96, 97], [96, 101], [97, 96], [97, 98]], "missing_branches": []}, "_is_openai_model": {"executed_lines": [113, 114], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "_create_tiktoken_counter": {"executed_lines": [129, 130, 137, 138, 139, 141, 143, 160], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 80.0, "percent_covered_display": "80.00", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [131, 132], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "_create_tiktoken_counter.count_tokens": {"executed_lines": [150, 151, 153, 155, 157, 158], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[151, 153], [151, 157]], "missing_branches": []}, "_create_langchain_counter": {"executed_lines": [178, 193], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "_create_langchain_counter.count_tokens": {"executed_lines": [180, 182, 183, 184, 185, 187, 190, 191], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 90.0, "percent_covered_display": "90.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[182, 183]], "missing_branches": [[182, 190]]}, "_create_approximate_counter": {"executed_lines": [206, 212], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "_create_approximate_counter.count_tokens": {"executed_lines": [208, 210], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "create_token_counter": {"executed_lines": [240, 241, 244, 245, 248], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[240, 241], [240, 244], [244, 245], [244, 248]], "missing_branches": []}, "count_message_tokens": {"executed_lines": [277, 278], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 24, 26, 28, 35, 70, 73, 104, 117, 163, 196, 215, 251], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 29, 31, 32], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 24, 26, 28, 35, 70, 73, 92, 93, 96, 97, 98, 101, 104, 113, 114, 117, 129, 130, 137, 138, 139, 141, 143, 150, 151, 153, 155, 157, 158, 160, 163, 178, 180, 182, 183, 184, 185, 187, 190, 191, 193, 196, 206, 208, 210, 212, 215, 240, 241, 244, 245, 248, 251, 277, 278], "summary": {"covered_lines": 54, "num_statements": 56, "percent_covered": 95.71428571428571, "percent_covered_display": "95.71", "missing_lines": 2, "excluded_lines": 4, "num_branches": 14, "num_partial_branches": 1, "covered_branches": 13, "missing_branches": 1}, "missing_lines": [131, 132], "excluded_lines": [28, 29, 31, 32], "executed_branches": [[92, 93], [92, 96], [96, 97], [96, 101], [97, 96], [97, 98], [151, 153], [151, 157], [182, 183], [240, 241], [240, 244], [244, 245], [244, 248]], "missing_branches": [[182, 190]]}}}, "src/consoul/ai/database.py": {"executed_lines": [1, 24, 26, 27, 28, 29, 30, 31, 34, 35, 37, 40, 41, 43, 46, 47, 63, 65, 74, 75, 77, 78, 82, 88, 90, 92, 95, 156, 157, 159, 161, 166, 191, 192, 193, 195, 196, 197, 202, 203, 204, 208, 233, 235, 236, 238, 241, 242, 247, 252, 253, 257, 262, 263, 264, 268, 291, 292, 293, 296, 299, 300, 305, 310, 311, 312, 316, 353, 374, 375, 376, 380, 381, 385, 386, 392, 428, 429, 430, 432, 449, 451, 452, 453, 455, 456, 457, 459, 463, 464, 466, 467, 472, 497, 498, 499, 502, 507, 508, 512, 541, 546, 569, 570, 571, 572, 589, 590, 591, 593, 594, 595, 599, 620, 621, 622, 623, 639, 640, 641, 645, 646, 647, 648, 649, 653, 668, 669, 671, 672, 675, 676, 679, 680, 684, 700, 701, 703, 704, 705, 709, 725, 726, 727, 730, 731, 733, 734, 737, 741, 742, 743, 746, 748, 758, 760, 762, 765], "summary": {"covered_lines": 154, "num_statements": 194, "percent_covered": 79.54545454545455, "percent_covered_display": "79.55", "missing_lines": 40, "excluded_lines": 0, "num_branches": 26, "num_partial_branches": 3, "covered_branches": 21, "missing_branches": 5}, "missing_lines": [79, 80, 205, 206, 254, 265, 266, 313, 314, 332, 333, 335, 338, 339, 344, 348, 349, 350, 351, 382, 387, 388, 389, 390, 460, 461, 469, 470, 543, 544, 596, 597, 650, 651, 681, 682, 706, 707, 755, 756], "excluded_lines": [], "executed_branches": [[159, -82], [159, 161], [241, 242], [241, 247], [253, 257], [299, 300], [299, 305], [381, 385], [451, 452], [451, 455], [455, 456], [455, 459], [459, 463], [507, 508], [507, 512], [590, 591], [590, 595], [640, 641], [640, 645], [675, -653], [675, 676]], "missing_branches": [[253, 254], [338, 339], [338, 344], [381, 382], [459, 460]], "functions": {"ConversationDatabase.__init__": {"executed_lines": [74, 75, 77, 78], "summary": {"covered_lines": 4, "num_statements": 6, "percent_covered": 66.66666666666667, "percent_covered_display": "66.67", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [79, 80], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase._init_schema": {"executed_lines": [88, 90, 92, 95, 156, 157, 159, 161], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[159, -82], [159, 161]], "missing_branches": []}, "ConversationDatabase.create_conversation": {"executed_lines": [191, 192, 193, 195, 196, 197, 202, 203, 204], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [205, 206], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase.save_message": {"executed_lines": [233, 235, 236, 238, 241, 242, 247, 252, 253, 257, 262, 263, 264], "summary": {"covered_lines": 13, "num_statements": 16, "percent_covered": 80.0, "percent_covered_display": "80.00", "missing_lines": 3, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [254, 265, 266], "excluded_lines": [], "executed_branches": [[241, 242], [241, 247], [253, 257]], "missing_branches": [[253, 254]]}, "ConversationDatabase.load_conversation": {"executed_lines": [291, 292, 293, 296, 299, 300, 305, 310, 311, 312], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 85.71428571428571, "percent_covered_display": "85.71", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [313, 314], "excluded_lines": [], "executed_branches": [[299, 300], [299, 305]], "missing_branches": []}, "ConversationDatabase.save_summary": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 10, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [332, 333, 335, 338, 339, 344, 348, 349, 350, 351], "excluded_lines": [], "executed_branches": [], "missing_branches": [[338, 339], [338, 344]]}, "ConversationDatabase.load_summary": {"executed_lines": [374, 375, 376, 380, 381, 385, 386], "summary": {"covered_lines": 7, "num_statements": 12, "percent_covered": 57.142857142857146, "percent_covered_display": "57.14", "missing_lines": 5, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [382, 387, 388, 389, 390], "excluded_lines": [], "executed_branches": [[381, 385]], "missing_branches": [[381, 382]]}, "ConversationDatabase.search_messages": {"executed_lines": [428, 429, 430, 432, 449, 451, 452, 453, 455, 456, 457, 459, 463, 464, 466, 467], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 80.76923076923077, "percent_covered_display": "80.77", "missing_lines": 4, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [460, 461, 469, 470], "excluded_lines": [], "executed_branches": [[451, 452], [451, 455], [455, 456], [455, 459], [459, 463]], "missing_branches": [[459, 460]]}, "ConversationDatabase.get_message_context": {"executed_lines": [497, 498, 499, 502, 507, 508, 512, 541], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 83.33333333333333, "percent_covered_display": "83.33", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [543, 544], "excluded_lines": [], "executed_branches": [[507, 508], [507, 512]], "missing_branches": []}, "ConversationDatabase.list_conversations": {"executed_lines": [569, 570, 571, 572, 589, 590, 591, 593, 594, 595], "summary": {"covered_lines": 10, "num_statements": 12, "percent_covered": 85.71428571428571, "percent_covered_display": "85.71", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [596, 597], "excluded_lines": [], "executed_branches": [[590, 591], [590, 595]], "missing_branches": []}, "ConversationDatabase.get_conversation_metadata": {"executed_lines": [620, 621, 622, 623, 639, 640, 641, 645, 646, 647, 648, 649], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 87.5, "percent_covered_display": "87.50", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [650, 651], "excluded_lines": [], "executed_branches": [[640, 641], [640, 645]], "missing_branches": []}, "ConversationDatabase.delete_conversation": {"executed_lines": [668, 669, 671, 672, 675, 676, 679, 680], "summary": {"covered_lines": 8, "num_statements": 10, "percent_covered": 83.33333333333333, "percent_covered_display": "83.33", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [681, 682], "excluded_lines": [], "executed_branches": [[675, -653], [675, 676]], "missing_branches": []}, "ConversationDatabase.clear_all_conversations": {"executed_lines": [700, 701, 703, 704, 705], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 71.42857142857143, "percent_covered_display": "71.43", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [706, 707], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase.get_stats": {"executed_lines": [725, 726, 727, 730, 731, 733, 734, 737, 741, 742, 743, 746, 748], "summary": {"covered_lines": 13, "num_statements": 15, "percent_covered": 86.66666666666667, "percent_covered_display": "86.67", "missing_lines": 2, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [755, 756], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase.__enter__": {"executed_lines": [760], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase.__exit__": {"executed_lines": [765], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 24, 26, 27, 28, 29, 30, 31, 34, 35, 37, 40, 41, 43, 46, 47, 63, 65, 82, 166, 208, 268, 316, 353, 392, 472, 546, 599, 653, 684, 709, 758, 762], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"DatabaseError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationNotFoundError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationDatabase": {"executed_lines": [74, 75, 77, 78, 88, 90, 92, 95, 156, 157, 159, 161, 191, 192, 193, 195, 196, 197, 202, 203, 204, 233, 235, 236, 238, 241, 242, 247, 252, 253, 257, 262, 263, 264, 291, 292, 293, 296, 299, 300, 305, 310, 311, 312, 374, 375, 376, 380, 381, 385, 386, 428, 429, 430, 432, 449, 451, 452, 453, 455, 456, 457, 459, 463, 464, 466, 467, 497, 498, 499, 502, 507, 508, 512, 541, 569, 570, 571, 572, 589, 590, 591, 593, 594, 595, 620, 621, 622, 623, 639, 640, 641, 645, 646, 647, 648, 649, 668, 669, 671, 672, 675, 676, 679, 680, 700, 701, 703, 704, 705, 725, 726, 727, 730, 731, 733, 734, 737, 741, 742, 743, 746, 748, 760, 765], "summary": {"covered_lines": 125, "num_statements": 165, "percent_covered": 76.43979057591623, "percent_covered_display": "76.44", "missing_lines": 40, "excluded_lines": 0, "num_branches": 26, "num_partial_branches": 3, "covered_branches": 21, "missing_branches": 5}, "missing_lines": [79, 80, 205, 206, 254, 265, 266, 313, 314, 332, 333, 335, 338, 339, 344, 348, 349, 350, 351, 382, 387, 388, 389, 390, 460, 461, 469, 470, 543, 544, 596, 597, 650, 651, 681, 682, 706, 707, 755, 756], "excluded_lines": [], "executed_branches": [[159, -82], [159, 161], [241, 242], [241, 247], [253, 257], [299, 300], [299, 305], [381, 385], [451, 452], [451, 455], [455, 456], [455, 459], [459, 463], [507, 508], [507, 512], [590, 591], [590, 595], [640, 641], [640, 645], [675, -653], [675, 676]], "missing_branches": [[253, 254], [338, 339], [338, 344], [381, 382], [459, 460]]}, "": {"executed_lines": [1, 24, 26, 27, 28, 29, 30, 31, 34, 35, 37, 40, 41, 43, 46, 47, 63, 65, 82, 166, 208, 268, 316, 353, 392, 472, 546, 599, 653, 684, 709, 758, 762], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/ai/exceptions.py": {"executed_lines": [1, 7, 10, 11, 18, 19, 26, 27, 34, 35, 42, 43, 51, 52, 55, 56, 72, 79, 80, 83, 84, 91, 92, 109, 117, 118, 119], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"StreamingError.__init__": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "TokenLimitExceededError.__init__": {"executed_lines": [117, 118, 119], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 10, 11, 18, 19, 26, 27, 34, 35, 42, 43, 51, 52, 55, 56, 72, 83, 84, 91, 92, 109], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"ProviderInitializationError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "MissingAPIKeyError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "MissingDependencyError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "InvalidModelError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "OllamaServiceError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConsoulAIError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "StreamingError": {"executed_lines": [79, 80], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ContextError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "TokenLimitExceededError": {"executed_lines": [117, 118, 119], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 10, 11, 18, 19, 26, 27, 34, 35, 42, 43, 51, 52, 55, 56, 72, 83, 84, 91, 92, 109], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/ai/history.py": {"executed_lines": [1, 31, 33, 34, 36, 44, 50, 58, 61, 79, 81, 82, 83, 84, 85, 86, 88, 94, 109, 110, 111, 112, 113, 114, 119, 122, 123, 146, 192, 193, 194, 195, 196, 199, 200, 201, 203, 204, 205, 207, 209, 211, 214, 215, 217, 219, 223, 224, 227, 228, 229, 231, 252, 261, 264, 265, 268, 269, 270, 271, 272, 275, 276, 277, 283, 287, 288, 289, 291, 297, 298, 300, 302, 307, 310, 313, 319, 335, 338, 339, 342, 345, 347, 359, 360, 363, 365, 377, 378, 381, 383, 399, 401, 402, 403, 404, 405, 406, 408, 410, 423, 425, 437, 439, 481, 482, 485, 488, 489, 491, 500, 561, 562, 574, 575, 576, 579, 581, 594, 595, 597, 599, 613, 619, 620, 623, 625, 637, 639, 645], "summary": {"covered_lines": 125, "num_statements": 162, "percent_covered": 76.6355140186916, "percent_covered_display": "76.64", "missing_lines": 37, "excluded_lines": 16, "num_branches": 52, "num_partial_branches": 5, "covered_branches": 39, "missing_branches": 13}, "missing_lines": [117, 232, 233, 237, 239, 241, 247, 262, 278, 279, 280, 281, 315, 317, 505, 506, 509, 510, 513, 516, 517, 518, 521, 525, 530, 531, 532, 535, 536, 537, 540, 544, 547, 549, 551, 554, 556], "excluded_lines": [50, 51, 53, 55, 56, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "executed_branches": [[81, 82], [81, 83], [83, 84], [83, 85], [85, 86], [85, 88], [109, 110], [109, 111], [111, 112], [111, 113], [113, 114], [203, 204], [203, 227], [209, 211], [209, 214], [231, -146], [261, 264], [268, 269], [268, 275], [277, 283], [297, 298], [297, 300], [338, 339], [338, 342], [401, 402], [401, 403], [403, 404], [403, 405], [405, 406], [405, 408], [481, 482], [481, 485], [488, 489], [488, 500], [500, 561], [594, 595], [594, 597], [613, 619], [613, 623]], "missing_branches": [[113, 117], [231, 232], [232, 233], [232, 239], [261, 262], [277, 278], [500, 505], [510, 513], [510, 516], [517, 518], [517, 561], [530, 531], [530, 540]], "functions": {"to_langchain_message": {"executed_lines": [79, 81, 82, 83, 84, 85, 86, 88], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[81, 82], [81, 83], [83, 84], [83, 85], [85, 86], [85, 88]], "missing_branches": []}, "to_dict_message": {"executed_lines": [109, 110, 111, 112, 113, 114, 119], "summary": {"covered_lines": 7, "num_statements": 8, "percent_covered": 85.71428571428571, "percent_covered_display": "85.71", "missing_lines": 1, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [117], "excluded_lines": [], "executed_branches": [[109, 110], [109, 111], [111, 112], [111, 113], [113, 114]], "missing_branches": [[113, 117]]}, "ConversationHistory.__init__": {"executed_lines": [192, 193, 194, 195, 196, 199, 200, 201, 203, 204, 205, 207, 209, 211, 214, 215, 217, 219, 223, 224, 227, 228, 229, 231], "summary": {"covered_lines": 24, "num_statements": 30, "percent_covered": 76.3157894736842, "percent_covered_display": "76.32", "missing_lines": 6, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [232, 233, 237, 239, 241, 247], "excluded_lines": [], "executed_branches": [[203, 204], [203, 227], [209, 211], [209, 214], [231, -146]], "missing_branches": [[231, 232], [232, 233], [232, 239]]}, "ConversationHistory._load_from_db": {"executed_lines": [261, 264, 265, 268, 269, 270, 271, 272, 275, 276, 277, 283, 287, 288, 289], "summary": {"covered_lines": 15, "num_statements": 20, "percent_covered": 73.07692307692308, "percent_covered_display": "73.08", "missing_lines": 5, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 2, "covered_branches": 4, "missing_branches": 2}, "missing_lines": [262, 278, 279, 280, 281], "excluded_lines": [], "executed_branches": [[261, 264], [268, 269], [268, 275], [277, 283]], "missing_branches": [[261, 262], [277, 278]]}, "ConversationHistory._persist_message": {"executed_lines": [297, 298, 300, 302, 307, 310, 313], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [315, 317], "excluded_lines": [], "executed_branches": [[297, 298], [297, 300]], "missing_branches": []}, "ConversationHistory.add_system_message": {"executed_lines": [335, 338, 339, 342, 345], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[338, 339], [338, 342]], "missing_branches": []}, "ConversationHistory.add_user_message": {"executed_lines": [359, 360, 363], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationHistory.add_assistant_message": {"executed_lines": [377, 378, 381], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationHistory.add_message": {"executed_lines": [399, 401, 402, 403, 404, 405, 406, 408], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[401, 402], [401, 403], [403, 404], [403, 405], [405, 406], [405, 408]], "missing_branches": []}, "ConversationHistory.get_messages": {"executed_lines": [423], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationHistory.get_messages_as_dicts": {"executed_lines": [437], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationHistory.get_trimmed_messages": {"executed_lines": [481, 482, 485, 488, 489, 491, 500, 561, 562, 574, 575, 576, 579], "summary": {"covered_lines": 13, "num_statements": 36, "percent_covered": 37.5, "percent_covered_display": "37.50", "missing_lines": 23, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 7}, "missing_lines": [505, 506, 509, 510, 513, 516, 517, 518, 521, 525, 530, 531, 532, 535, 536, 537, 540, 544, 547, 549, 551, 554, 556], "excluded_lines": [], "executed_branches": [[481, 482], [481, 485], [488, 489], [488, 500], [500, 561]], "missing_branches": [[500, 505], [510, 513], [510, 516], [517, 518], [517, 561], [530, 531], [530, 540]]}, "ConversationHistory.count_tokens": {"executed_lines": [594, 595, 597], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[594, 595], [594, 597]], "missing_branches": []}, "ConversationHistory.clear": {"executed_lines": [613, 619, 620, 623], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[613, 619], [613, 623]], "missing_branches": []}, "ConversationHistory.__len__": {"executed_lines": [637], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationHistory.__repr__": {"executed_lines": [645], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 10, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 31, 33, 34, 36, 44, 50, 58, 61, 94, 122, 123, 146, 252, 291, 319, 347, 365, 383, 410, 425, 439, 581, 599, 625, 639], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [50, 51, 53, 55, 56, 639], "executed_branches": [], "missing_branches": []}}, "classes": {"ConversationHistory": {"executed_lines": [192, 193, 194, 195, 196, 199, 200, 201, 203, 204, 205, 207, 209, 211, 214, 215, 217, 219, 223, 224, 227, 228, 229, 231, 261, 264, 265, 268, 269, 270, 271, 272, 275, 276, 277, 283, 287, 288, 289, 297, 298, 300, 302, 307, 310, 313, 335, 338, 339, 342, 345, 359, 360, 363, 377, 378, 381, 399, 401, 402, 403, 404, 405, 406, 408, 423, 437, 481, 482, 485, 488, 489, 491, 500, 561, 562, 574, 575, 576, 579, 594, 595, 597, 613, 619, 620, 623, 637, 645], "summary": {"covered_lines": 88, "num_statements": 124, "percent_covered": 70.73170731707317, "percent_covered_display": "70.73", "missing_lines": 36, "excluded_lines": 10, "num_branches": 40, "num_partial_branches": 4, "covered_branches": 28, "missing_branches": 12}, "missing_lines": [232, 233, 237, 239, 241, 247, 262, 278, 279, 280, 281, 315, 317, 505, 506, 509, 510, 513, 516, 517, 518, 521, 525, 530, 531, 532, 535, 536, 537, 540, 544, 547, 549, 551, 554, 556], "excluded_lines": [640, 641, 642, 643, 644, 645, 646, 647, 648, 649], "executed_branches": [[203, 204], [203, 227], [209, 211], [209, 214], [231, -146], [261, 264], [268, 269], [268, 275], [277, 283], [297, 298], [297, 300], [338, 339], [338, 342], [401, 402], [401, 403], [403, 404], [403, 405], [405, 406], [405, 408], [481, 482], [481, 485], [488, 489], [488, 500], [500, 561], [594, 595], [594, 597], [613, 619], [613, 623]], "missing_branches": [[231, 232], [232, 233], [232, 239], [261, 262], [277, 278], [500, 505], [510, 513], [510, 516], [517, 518], [517, 561], [530, 531], [530, 540]]}, "": {"executed_lines": [1, 31, 33, 34, 36, 44, 50, 58, 61, 79, 81, 82, 83, 84, 85, 86, 88, 94, 109, 110, 111, 112, 113, 114, 119, 122, 123, 146, 252, 291, 319, 347, 365, 383, 410, 425, 439, 581, 599, 625, 639], "summary": {"covered_lines": 37, "num_statements": 38, "percent_covered": 96.0, "percent_covered_display": "96.00", "missing_lines": 1, "excluded_lines": 6, "num_branches": 12, "num_partial_branches": 1, "covered_branches": 11, "missing_branches": 1}, "missing_lines": [117], "excluded_lines": [50, 51, 53, 55, 56, 639], "executed_branches": [[81, 82], [81, 83], [83, 84], [83, 85], [85, 86], [85, 88], [109, 110], [109, 111], [111, 112], [111, 113], [113, 114]], "missing_branches": [[113, 117]]}}}, "src/consoul/ai/providers.py": {"executed_lines": [1, 8, 10, 11, 13, 14, 16, 23, 25, 31, 39, 47, 55, 63, 72, 73, 75, 76, 77, 78, 81, 90, 91, 95, 96, 97, 98, 107, 122, 124, 125, 126, 128, 131, 140, 148, 154, 155, 158, 159, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 206, 209, 210, 218, 219, 227, 268, 269, 270, 272, 273, 284, 292, 293, 294, 298, 299, 302, 303, 304, 305, 306, 309, 310, 311, 314, 315, 316, 319, 320, 332, 333, 344, 345, 356, 357, 366, 369, 370, 371, 372, 375, 377, 379, 380, 381, 383, 384, 399, 400, 401, 403, 410, 411, 412, 413, 416, 417, 419, 420, 421, 424, 425, 428, 430, 445, 448, 449, 450, 451, 452, 453, 454, 457, 458, 460, 461, 462, 465, 468, 469, 473, 475, 476, 480, 482, 483, 486, 489, 498, 503, 505, 508, 511], "summary": {"covered_lines": 172, "num_statements": 174, "percent_covered": 96.45390070921985, "percent_covered_display": "96.45", "missing_lines": 2, "excluded_lines": 3, "num_branches": 108, "num_partial_branches": 8, "covered_branches": 100, "missing_branches": 8}, "missing_lines": [92, 521], "excluded_lines": [25, 26, 28], "executed_branches": [[91, 95], [96, -81], [96, 97], [124, 125], [124, 128], [125, 124], [125, 126], [154, 155], [154, 158], [158, 159], [158, 162], [162, 163], [162, 176], [163, 164], [163, 165], [165, 166], [165, 167], [167, 168], [167, 169], [169, 170], [169, 171], [171, 172], [171, 173], [173, 174], [173, 206], [176, 177], [176, 188], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 183], [183, 184], [183, 185], [185, 186], [185, 206], [188, 189], [188, 200], [189, 190], [189, 191], [191, 192], [191, 193], [193, 194], [193, 195], [195, 196], [195, 197], [197, 198], [197, 206], [200, 201], [201, 202], [201, 203], [203, 204], [203, 206], [210, 218], [219, 227], [268, 269], [268, 366], [272, 273], [272, 284], [319, 320], [319, 332], [332, 333], [332, 344], [344, 345], [344, 356], [356, 357], [375, 377], [375, 399], [380, 381], [380, 383], [383, 384], [383, 399], [400, 401], [400, 445], [401, 403], [401, 410], [410, 411], [410, 416], [412, 413], [416, 417], [416, 424], [420, 421], [420, 424], [424, 425], [424, 445], [448, 449], [448, 457], [449, 450], [449, 451], [451, 452], [451, 453], [453, 454], [457, 458], [457, 465], [461, 462], [461, 465], [486, 489], [486, 498], [508, 511]], "missing_branches": [[91, 92], [200, 206], [210, -209], [219, -218], [356, 366], [412, 416], [453, 457], [508, 521]], "functions": {"is_ollama_running": {"executed_lines": [72, 73, 75, 76, 77, 78], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "validate_provider_dependencies": {"executed_lines": [90, 91, 95, 96, 97, 98], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 1, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [92], "excluded_lines": [], "executed_branches": [[91, 95], [96, -81], [96, 97]], "missing_branches": [[91, 92]]}, "get_provider_from_model": {"executed_lines": [122, 124, 125, 126, 128], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[124, 125], [124, 128], [125, 124], [125, 126]], "missing_branches": []}, "build_model_params": {"executed_lines": [140, 148, 154, 155, 158, 159, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 206], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 98.94736842105263, "percent_covered_display": "98.95", "missing_lines": 0, "excluded_lines": 0, "num_branches": 48, "num_partial_branches": 1, "covered_branches": 47, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[154, 155], [154, 158], [158, 159], [158, 162], [162, 163], [162, 176], [163, 164], [163, 165], [165, 166], [165, 167], [167, 168], [167, 169], [169, 170], [169, 171], [171, 172], [171, 173], [173, 174], [173, 206], [176, 177], [176, 188], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 183], [183, 184], [183, 185], [185, 186], [185, 206], [188, 189], [188, 200], [189, 190], [189, 191], [191, 192], [191, 193], [193, 194], [193, 195], [195, 196], [195, 197], [197, 198], [197, 206], [200, 201], [201, 202], [201, 203], [203, 204], [203, 206]], "missing_branches": [[200, 206]]}, "get_chat_model": {"executed_lines": [268, 269, 270, 272, 273, 284, 292, 293, 294, 298, 299, 302, 303, 304, 305, 306, 309, 310, 311, 314, 315, 316, 319, 320, 332, 333, 344, 345, 356, 357, 366, 369, 370, 371, 372, 375, 377, 379, 380, 381, 383, 384, 399, 400, 401, 403, 410, 411, 412, 413, 416, 417, 419, 420, 421, 424, 425, 428, 430, 445, 448, 449, 450, 451, 452, 453, 454, 457, 458, 460, 461, 462, 465, 468, 469, 473, 475, 476, 480, 482, 483, 486, 489, 498, 503, 505, 508, 511], "summary": {"covered_lines": 88, "num_statements": 89, "percent_covered": 96.35036496350365, "percent_covered_display": "96.35", "missing_lines": 1, "excluded_lines": 0, "num_branches": 48, "num_partial_branches": 4, "covered_branches": 44, "missing_branches": 4}, "missing_lines": [521], "excluded_lines": [], "executed_branches": [[268, 269], [268, 366], [272, 273], [272, 284], [319, 320], [319, 332], [332, 333], [332, 344], [344, 345], [344, 356], [356, 357], [375, 377], [375, 399], [380, 381], [380, 383], [383, 384], [383, 399], [400, 401], [400, 445], [401, 403], [401, 410], [410, 411], [410, 416], [412, 413], [416, 417], [416, 424], [420, 421], [420, 424], [424, 425], [424, 445], [448, 449], [448, 457], [449, 450], [449, 451], [451, 452], [451, 453], [453, 454], [457, 458], [457, 465], [461, 462], [461, 465], [486, 489], [486, 498], [508, 511]], "missing_branches": [[356, 366], [412, 416], [453, 457], [508, 521]]}, "": {"executed_lines": [1, 8, 10, 11, 13, 14, 16, 23, 25, 31, 39, 47, 55, 63, 81, 107, 131, 209, 210, 218, 219, 227], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 91.66666666666667, "percent_covered_display": "91.67", "missing_lines": 0, "excluded_lines": 3, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [], "excluded_lines": [25, 26, 28], "executed_branches": [[210, 218], [219, 227]], "missing_branches": [[210, -209], [219, -218]]}}, "classes": {"": {"executed_lines": [1, 8, 10, 11, 13, 14, 16, 23, 25, 31, 39, 47, 55, 63, 72, 73, 75, 76, 77, 78, 81, 90, 91, 95, 96, 97, 98, 107, 122, 124, 125, 126, 128, 131, 140, 148, 154, 155, 158, 159, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 206, 209, 210, 218, 219, 227, 268, 269, 270, 272, 273, 284, 292, 293, 294, 298, 299, 302, 303, 304, 305, 306, 309, 310, 311, 314, 315, 316, 319, 320, 332, 333, 344, 345, 356, 357, 366, 369, 370, 371, 372, 375, 377, 379, 380, 381, 383, 384, 399, 400, 401, 403, 410, 411, 412, 413, 416, 417, 419, 420, 421, 424, 425, 428, 430, 445, 448, 449, 450, 451, 452, 453, 454, 457, 458, 460, 461, 462, 465, 468, 469, 473, 475, 476, 480, 482, 483, 486, 489, 498, 503, 505, 508, 511], "summary": {"covered_lines": 172, "num_statements": 174, "percent_covered": 96.45390070921985, "percent_covered_display": "96.45", "missing_lines": 2, "excluded_lines": 3, "num_branches": 108, "num_partial_branches": 8, "covered_branches": 100, "missing_branches": 8}, "missing_lines": [92, 521], "excluded_lines": [25, 26, 28], "executed_branches": [[91, 95], [96, -81], [96, 97], [124, 125], [124, 128], [125, 124], [125, 126], [154, 155], [154, 158], [158, 159], [158, 162], [162, 163], [162, 176], [163, 164], [163, 165], [165, 166], [165, 167], [167, 168], [167, 169], [169, 170], [169, 171], [171, 172], [171, 173], [173, 174], [173, 206], [176, 177], [176, 188], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 183], [183, 184], [183, 185], [185, 186], [185, 206], [188, 189], [188, 200], [189, 190], [189, 191], [191, 192], [191, 193], [193, 194], [193, 195], [195, 196], [195, 197], [197, 198], [197, 206], [200, 201], [201, 202], [201, 203], [203, 204], [203, 206], [210, 218], [219, 227], [268, 269], [268, 366], [272, 273], [272, 284], [319, 320], [319, 332], [332, 333], [332, 344], [344, 345], [344, 356], [356, 357], [375, 377], [375, 399], [380, 381], [380, 383], [383, 384], [383, 399], [400, 401], [400, 445], [401, 403], [401, 410], [410, 411], [410, 416], [412, 413], [416, 417], [416, 424], [420, 421], [420, 424], [424, 425], [424, 445], [448, 449], [448, 457], [449, 450], [449, 451], [451, 452], [451, 453], [453, 454], [457, 458], [457, 465], [461, 462], [461, 465], [486, 489], [486, 498], [508, 511]], "missing_branches": [[91, 92], [200, 206], [210, -209], [219, -218], [356, 366], [412, 416], [453, 457], [508, 521]]}}}, "src/consoul/ai/streaming.py": {"executed_lines": [1, 17, 19, 21, 22, 23, 24, 26, 28, 32, 72, 73, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 89, 92, 93, 94, 95, 97, 100, 103, 104, 106, 107, 110, 111, 112, 114, 115, 116, 119, 120, 122, 124, 126, 127, 129, 133, 135, 136, 137], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 18, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 29], "executed_branches": [[72, 73], [72, 75], [79, 81], [79, 103], [83, 85], [83, 100], [85, 86], [85, 88], [93, 94], [93, 95], [104, 106], [104, 119], [106, 107], [106, 110], [110, 111], [110, 114], [119, 120], [119, 122]], "missing_branches": [], "functions": {"stream_response": {"executed_lines": [72, 73, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 89, 92, 93, 94, 95, 97, 100, 103, 104, 106, 107, 110, 111, 112, 114, 115, 116, 119, 120, 122, 124, 126, 127, 129, 133, 135, 136, 137], "summary": {"covered_lines": 40, "num_statements": 40, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 18, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[72, 73], [72, 75], [79, 81], [79, 103], [83, 85], [83, 100], [85, 86], [85, 88], [93, 94], [93, 95], [104, 106], [104, 119], [106, 107], [106, 110], [110, 111], [110, 114], [119, 120], [119, 122]], "missing_branches": []}, "": {"executed_lines": [1, 17, 19, 21, 22, 23, 24, 26, 28, 32], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 29], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 17, 19, 21, 22, 23, 24, 26, 28, 32, 72, 73, 75, 76, 78, 79, 81, 82, 83, 85, 86, 88, 89, 92, 93, 94, 95, 97, 100, 103, 104, 106, 107, 110, 111, 112, 114, 115, 116, 119, 120, 122, 124, 126, 127, 129, 133, 135, 136, 137], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 18, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 29], "executed_branches": [[72, 73], [72, 75], [79, 81], [79, 103], [83, 85], [83, 100], [85, 86], [85, 88], [93, 94], [93, 95], [104, 106], [104, 119], [106, 107], [106, 110], [110, 111], [110, 114], [119, 120], [119, 122]], "missing_branches": []}}}, "src/consoul/ai/summarization.py": {"executed_lines": [1, 33, 35, 36, 38, 40, 43, 46, 63, 64, 66, 69, 70, 92, 117, 118, 119, 120, 122, 127, 143, 145, 174, 175, 177, 179, 182, 189, 190, 192, 193, 197, 199, 200, 201, 203, 227, 230, 231, 232, 235, 236, 239, 242, 243, 245, 247, 249, 254, 256, 275, 277, 279, 280, 281, 282, 284, 286, 287, 289], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 14, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [40, 41], "executed_branches": [[174, 175], [174, 177], [230, 231], [230, 235], [235, 236], [235, 242], [242, 243], [242, 245], [277, 279], [277, 289], [279, 280], [279, 281], [281, 282], [281, 284]], "missing_branches": [], "functions": {"ConversationSummarizer.__init__": {"executed_lines": [117, 118, 119, 120, 122], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationSummarizer.should_summarize": {"executed_lines": [143], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationSummarizer.create_summary": {"executed_lines": [174, 175, 177, 179, 182, 189, 190, 192, 193, 197, 199, 200, 201], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[174, 175], [174, 177]], "missing_branches": []}, "ConversationSummarizer.get_summarized_context": {"executed_lines": [227, 230, 231, 232, 235, 236, 239, 242, 243, 245, 247, 249, 254], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[230, 231], [230, 235], [235, 236], [235, 242], [242, 243], [242, 245]], "missing_branches": []}, "ConversationSummarizer._format_messages_for_summary": {"executed_lines": [275, 277, 279, 280, 281, 282, 284, 286, 287, 289], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[277, 279], [277, 289], [279, 280], [279, 281], [281, 282], [281, 284]], "missing_branches": []}, "": {"executed_lines": [1, 33, 35, 36, 38, 40, 43, 46, 63, 64, 66, 69, 70, 92, 127, 145, 203, 256], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [40, 41], "executed_branches": [], "missing_branches": []}}, "classes": {"SummarizationError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationSummarizer": {"executed_lines": [117, 118, 119, 120, 122, 143, 174, 175, 177, 179, 182, 189, 190, 192, 193, 197, 199, 200, 201, 227, 230, 231, 232, 235, 236, 239, 242, 243, 245, 247, 249, 254, 275, 277, 279, 280, 281, 282, 284, 286, 287, 289], "summary": {"covered_lines": 42, "num_statements": 42, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 14, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[174, 175], [174, 177], [230, 231], [230, 235], [235, 236], [235, 242], [242, 243], [242, 245], [277, 279], [277, 289], [279, 280], [279, 281], [281, 282], [281, 284]], "missing_branches": []}, "": {"executed_lines": [1, 33, 35, 36, 38, 40, 43, 46, 63, 64, 66, 69, 70, 92, 127, 145, 203, 256], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [40, 41], "executed_branches": [], "missing_branches": []}}}, "src/consoul/config/__init__.py": {"executed_lines": [1, 6, 13, 25, 38, 44], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 6, 13, 25, 38, 44], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 6, 13, 25, 38, 44], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/config/env.py": {"executed_lines": [1, 7, 9, 10, 12, 13, 15, 19, 20, 30, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 53, 59, 62, 74, 75, 77, 79, 80, 81, 82, 83, 84, 85, 87, 92, 101, 102, 104, 107, 117, 119, 121, 123, 124, 125, 131, 140, 142, 143, 144, 145, 146, 147], "summary": {"covered_lines": 51, "num_statements": 55, "percent_covered": 89.87341772151899, "percent_covered_display": "89.87", "missing_lines": 4, "excluded_lines": 2, "num_branches": 24, "num_partial_branches": 2, "covered_branches": 20, "missing_branches": 4}, "missing_lines": [89, 148, 149, 151], "excluded_lines": [15, 16], "executed_branches": [[74, 75], [74, 77], [79, 80], [79, 81], [81, 82], [81, 83], [83, 84], [83, 85], [85, 87], [101, 102], [101, 104], [119, 121], [119, 123], [123, -107], [123, 124], [142, 143], [142, 144], [144, 145], [144, 146], [146, 147]], "missing_branches": [[85, 89], [146, 148], [148, 149], [148, 151]], "functions": {"load_env_settings": {"executed_lines": [59], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "get_api_key": {"executed_lines": [74, 75, 77, 79, 80, 81, 82, 83, 84, 85, 87], "summary": {"covered_lines": 11, "num_statements": 12, "percent_covered": 90.9090909090909, "percent_covered_display": "90.91", "missing_lines": 1, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 1, "covered_branches": 9, "missing_branches": 1}, "missing_lines": [89], "excluded_lines": [], "executed_branches": [[74, 75], [74, 77], [79, 80], [79, 81], [81, 82], [81, 83], [83, 84], [83, 85], [85, 87]], "missing_branches": [[85, 89]]}, "get_ollama_api_base": {"executed_lines": [101, 102, 104], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[101, 102], [101, 104]], "missing_branches": []}, "validate_api_key": {"executed_lines": [117, 119, 121, 123, 124, 125], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[119, 121], [119, 123], [123, -107], [123, 124]], "missing_branches": []}, "_get_env_var_name": {"executed_lines": [140, 142, 143, 144, 145, 146, 147], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 66.66666666666667, "percent_covered_display": "66.67", "missing_lines": 3, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [148, 149, 151], "excluded_lines": [], "executed_branches": [[142, 143], [142, 144], [144, 145], [144, 146], [146, 147]], "missing_branches": [[146, 148], [148, 149], [148, 151]]}, "": {"executed_lines": [1, 7, 9, 10, 12, 13, 15, 19, 20, 30, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 53, 62, 92, 107, 131], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [15, 16], "executed_branches": [], "missing_branches": []}}, "classes": {"EnvSettings": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 9, 10, 12, 13, 15, 19, 20, 30, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 53, 59, 62, 74, 75, 77, 79, 80, 81, 82, 83, 84, 85, 87, 92, 101, 102, 104, 107, 117, 119, 121, 123, 124, 125, 131, 140, 142, 143, 144, 145, 146, 147], "summary": {"covered_lines": 51, "num_statements": 55, "percent_covered": 89.87341772151899, "percent_covered_display": "89.87", "missing_lines": 4, "excluded_lines": 2, "num_branches": 24, "num_partial_branches": 2, "covered_branches": 20, "missing_branches": 4}, "missing_lines": [89, 148, 149, 151], "excluded_lines": [15, 16], "executed_branches": [[74, 75], [74, 77], [79, 80], [79, 81], [81, 82], [81, 83], [83, 84], [83, 85], [85, 87], [101, 102], [101, 104], [119, 121], [119, 123], [123, -107], [123, 124], [142, 143], [142, 144], [144, 145], [144, 146], [146, 147]], "missing_branches": [[85, 89], [146, 148], [148, 149], [148, 151]]}}}, "src/consoul/config/loader.py": {"executed_lines": [1, 7, 9, 10, 12, 14, 15, 16, 19, 27, 28, 33, 35, 38, 47, 50, 52, 53, 54, 57, 59, 60, 63, 66, 67, 68, 69, 71, 74, 87, 88, 90, 91, 92, 94, 95, 96, 97, 100, 101, 102, 103, 107, 119, 121, 122, 124, 127, 129, 132, 141, 142, 144, 145, 146, 147, 149, 152, 164, 165, 167, 170, 171, 174, 175, 176, 177, 178, 179, 180, 181, 182, 186, 187, 190, 191, 194, 197, 200, 206, 213, 227, 228, 231, 232, 236, 237, 243, 275, 278, 279, 280, 281, 282, 283, 286, 289, 291, 294, 295, 298, 301, 310, 311, 313, 314, 315, 317, 321, 322, 323, 324, 327, 337, 338, 341, 342, 344, 347, 363, 366, 370, 371, 376, 377, 378], "summary": {"covered_lines": 125, "num_statements": 134, "percent_covered": 91.41414141414141, "percent_covered_display": "91.41", "missing_lines": 9, "excluded_lines": 0, "num_branches": 64, "num_partial_branches": 8, "covered_branches": 56, "missing_branches": 8}, "missing_lines": [61, 104, 192, 195, 233, 318, 319, 385, 386], "excluded_lines": [], "executed_branches": [[53, 54], [53, 57], [57, 59], [57, 66], [60, 63], [67, 68], [67, 69], [87, 88], [87, 90], [94, 95], [94, 96], [96, 97], [96, 100], [121, 122], [121, 129], [122, 124], [122, 127], [141, 142], [141, 144], [145, 146], [145, 149], [146, 145], [146, 147], [164, 165], [164, 167], [170, 171], [170, 174], [175, 176], [175, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 186], [186, 187], [186, 190], [191, 194], [194, 197], [227, 228], [227, 231], [232, 236], [278, 279], [278, 286], [280, 281], [282, 283], [313, 314], [313, 317], [317, 321], [321, 322], [321, 327], [323, 324], [337, 338], [337, 341], [370, 371], [370, 376]], "missing_branches": [[60, 61], [191, 192], [194, 195], [232, 233], [280, 282], [282, 286], [317, 318], [323, 327]], "functions": {"find_config_files": {"executed_lines": [27, 28, 33, 35], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "find_project_config": {"executed_lines": [47, 50, 52, 53, 54, 57, 59, 60, 63, 66, 67, 68, 69, 71], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 91.30434782608695, "percent_covered_display": "91.30", "missing_lines": 1, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [61], "excluded_lines": [], "executed_branches": [[53, 54], [53, 57], [57, 59], [57, 66], [60, 63], [67, 68], [67, 69]], "missing_branches": [[60, 61]]}, "load_yaml_config": {"executed_lines": [87, 88, 90, 91, 92, 94, 95, 96, 97, 100, 101, 102, 103], "summary": {"covered_lines": 13, "num_statements": 14, "percent_covered": 95.0, "percent_covered_display": "95.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [104], "excluded_lines": [], "executed_branches": [[87, 88], [87, 90], [94, 95], [94, 96], [96, 97], [96, 100]], "missing_branches": []}, "deep_merge": {"executed_lines": [119, 121, 122, 124, 127, 129], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[121, 122], [121, 129], [122, 124], [122, 127]], "missing_branches": []}, "merge_configs": {"executed_lines": [141, 142, 144, 145, 146, 147, 149], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[141, 142], [141, 144], [145, 146], [145, 149], [146, 145], [146, 147]], "missing_branches": []}, "load_env_config": {"executed_lines": [164, 165, 167, 170, 171, 174, 175, 176, 177, 178, 179, 180, 181, 182, 186, 187, 190, 191, 194, 197], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.0, "percent_covered_display": "90.00", "missing_lines": 2, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 2, "covered_branches": 16, "missing_branches": 2}, "missing_lines": [192, 195], "excluded_lines": [], "executed_branches": [[164, 165], [164, 167], [170, 171], [170, 174], [175, 176], [175, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 186], [186, 187], [186, 190], [191, 194], [194, 197]], "missing_branches": [[191, 192], [194, 195]]}, "create_default_config": {"executed_lines": [206], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "load_profile": {"executed_lines": [227, 228, 231, 232, 236, 237], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 1, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [233], "excluded_lines": [], "executed_branches": [[227, 228], [227, 231], [232, 236]], "missing_branches": [[232, 233]]}, "load_config": {"executed_lines": [275, 278, 279, 280, 281, 282, 283, 286, 289, 291, 294, 295, 298, 301, 310, 311, 313, 314, 315, 317, 321, 322, 323, 324, 327, 337, 338, 341, 342, 344], "summary": {"covered_lines": 30, "num_statements": 32, "percent_covered": 87.5, "percent_covered_display": "87.50", "missing_lines": 2, "excluded_lines": 0, "num_branches": 16, "num_partial_branches": 4, "covered_branches": 12, "missing_branches": 4}, "missing_lines": [318, 319], "excluded_lines": [], "executed_branches": [[278, 279], [278, 286], [280, 281], [282, 283], [313, 314], [313, 317], [317, 321], [321, 322], [321, 327], [323, 324], [337, 338], [337, 341]], "missing_branches": [[280, 282], [282, 286], [317, 318], [323, 327]]}, "save_config": {"executed_lines": [363, 366, 370, 371, 376, 377, 378], "summary": {"covered_lines": 7, "num_statements": 9, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 2, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [385, 386], "excluded_lines": [], "executed_branches": [[370, 371], [370, 376]], "missing_branches": []}, "": {"executed_lines": [1, 7, 9, 10, 12, 14, 15, 16, 19, 38, 74, 107, 132, 152, 200, 213, 243, 347], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 7, 9, 10, 12, 14, 15, 16, 19, 27, 28, 33, 35, 38, 47, 50, 52, 53, 54, 57, 59, 60, 63, 66, 67, 68, 69, 71, 74, 87, 88, 90, 91, 92, 94, 95, 96, 97, 100, 101, 102, 103, 107, 119, 121, 122, 124, 127, 129, 132, 141, 142, 144, 145, 146, 147, 149, 152, 164, 165, 167, 170, 171, 174, 175, 176, 177, 178, 179, 180, 181, 182, 186, 187, 190, 191, 194, 197, 200, 206, 213, 227, 228, 231, 232, 236, 237, 243, 275, 278, 279, 280, 281, 282, 283, 286, 289, 291, 294, 295, 298, 301, 310, 311, 313, 314, 315, 317, 321, 322, 323, 324, 327, 337, 338, 341, 342, 344, 347, 363, 366, 370, 371, 376, 377, 378], "summary": {"covered_lines": 125, "num_statements": 134, "percent_covered": 91.41414141414141, "percent_covered_display": "91.41", "missing_lines": 9, "excluded_lines": 0, "num_branches": 64, "num_partial_branches": 8, "covered_branches": 56, "missing_branches": 8}, "missing_lines": [61, 104, 192, 195, 233, 318, 319, 385, 386], "excluded_lines": [], "executed_branches": [[53, 54], [53, 57], [57, 59], [57, 66], [60, 63], [67, 68], [67, 69], [87, 88], [87, 90], [94, 95], [94, 96], [96, 97], [96, 100], [121, 122], [121, 129], [122, 124], [122, 127], [141, 142], [141, 144], [145, 146], [145, 149], [146, 145], [146, 147], [164, 165], [164, 167], [170, 171], [170, 174], [175, 176], [175, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 186], [186, 187], [186, 190], [191, 194], [194, 197], [227, 228], [227, 231], [232, 236], [278, 279], [278, 286], [280, 281], [282, 283], [313, 314], [313, 317], [317, 321], [321, 322], [321, 327], [323, 324], [337, 338], [337, 341], [370, 371], [370, 376]], "missing_branches": [[60, 61], [191, 192], [194, 195], [232, 233], [280, 282], [282, 286], [317, 318], [323, 327]]}}}, "src/consoul/config/models.py": {"executed_lines": [1, 7, 9, 10, 11, 13, 23, 26, 29, 30, 32, 33, 34, 35, 38, 39, 41, 46, 49, 55, 60, 65, 66, 67, 69, 70, 71, 74, 75, 77, 78, 84, 90, 96, 100, 104, 110, 111, 113, 114, 120, 125, 129, 133, 139, 140, 142, 143, 149, 154, 159, 163, 169, 170, 172, 173, 179, 187, 193, 196, 197, 199, 204, 208, 212, 216, 223, 227, 232, 237, 242, 243, 244, 246, 247, 248, 251, 252, 254, 259, 264, 268, 272, 277, 278, 279, 288, 289, 291, 292, 293, 295, 296, 298, 304, 305, 307, 312, 316, 319, 322, 326, 331, 332, 333, 335, 336, 338, 339, 342, 345, 346, 351, 357, 360, 364, 368, 373, 378, 379, 380, 382, 384, 386, 387, 389, 390, 394, 396, 397, 403, 405, 406, 408, 417, 419], "summary": {"covered_lines": 124, "num_statements": 128, "percent_covered": 96.57534246575342, "percent_covered_display": "96.58", "missing_lines": 4, "excluded_lines": 2, "num_branches": 18, "num_partial_branches": 1, "covered_branches": 17, "missing_branches": 1}, "missing_lines": [383, 428, 429, 431], "excluded_lines": [23, 24], "executed_branches": [[69, 70], [69, 71], [246, 247], [246, 248], [288, 289], [288, 291], [291, 292], [291, 295], [295, 296], [295, 298], [335, 336], [335, 338], [338, 339], [338, 342], [382, 384], [389, 390], [389, 394]], "missing_branches": [[382, 383]], "functions": {"BaseModelConfig.validate_model_name": {"executed_lines": [69, 70, 71], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[69, 70], [69, 71]], "missing_branches": []}, "ConversationConfig.expand_path": {"executed_lines": [246, 247, 248], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[246, 247], [246, 248]], "missing_branches": []}, "ContextConfig.expand_paths": {"executed_lines": [288, 289, 291, 292, 293, 295, 296, 298], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[288, 289], [288, 291], [291, 292], [291, 295], [295, 296], [295, 298]], "missing_branches": []}, "ProfileConfig.validate_profile_name": {"executed_lines": [335, 336, 338, 339, 342], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[335, 336], [335, 338], [338, 339], [338, 342]], "missing_branches": []}, "ConsoulConfig.validate_active_profile": {"executed_lines": [382, 384], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 60.0, "percent_covered_display": "60.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [383], "excluded_lines": [], "executed_branches": [[382, 384]], "missing_branches": [[382, 383]]}, "ConsoulConfig.validate_active_profile_exists": {"executed_lines": [389, 390, 394], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[389, 390], [389, 394]], "missing_branches": []}, "ConsoulConfig.serialize_model": {"executed_lines": [403, 405, 406], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConsoulConfig.get_active_profile": {"executed_lines": [417], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConsoulConfig.get_api_key": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 3, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [428, 429, 431], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 7, 9, 10, 11, 13, 23, 26, 29, 30, 32, 33, 34, 35, 38, 39, 41, 46, 49, 55, 60, 65, 66, 67, 74, 75, 77, 78, 84, 90, 96, 100, 104, 110, 111, 113, 114, 120, 125, 129, 133, 139, 140, 142, 143, 149, 154, 159, 163, 169, 170, 172, 173, 179, 187, 193, 196, 197, 199, 204, 208, 212, 216, 223, 227, 232, 237, 242, 243, 244, 251, 252, 254, 259, 264, 268, 272, 277, 278, 279, 304, 305, 307, 312, 316, 319, 322, 326, 331, 332, 333, 345, 346, 351, 357, 360, 364, 368, 373, 378, 379, 380, 386, 387, 396, 397, 408, 419], "summary": {"covered_lines": 96, "num_statements": 96, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [23, 24], "executed_branches": [], "missing_branches": []}}, "classes": {"Provider": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "BaseModelConfig": {"executed_lines": [69, 70, 71], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[69, 70], [69, 71]], "missing_branches": []}, "OpenAIModelConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "AnthropicModelConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "GoogleModelConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "OllamaModelConfig": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ConversationConfig": {"executed_lines": [246, 247, 248], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[246, 247], [246, 248]], "missing_branches": []}, "ContextConfig": {"executed_lines": [288, 289, 291, 292, 293, 295, 296, 298], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[288, 289], [288, 291], [291, 292], [291, 295], [295, 296], [295, 298]], "missing_branches": []}, "ProfileConfig": {"executed_lines": [335, 336, 338, 339, 342], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[335, 336], [335, 338], [338, 339], [338, 342]], "missing_branches": []}, "ConsoulConfig": {"executed_lines": [382, 384, 389, 390, 394, 403, 405, 406, 417], "summary": {"covered_lines": 9, "num_statements": 13, "percent_covered": 70.58823529411765, "percent_covered_display": "70.59", "missing_lines": 4, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [383, 428, 429, 431], "excluded_lines": [], "executed_branches": [[382, 384], [389, 390], [389, 394]], "missing_branches": [[382, 383]]}, "": {"executed_lines": [1, 7, 9, 10, 11, 13, 23, 26, 29, 30, 32, 33, 34, 35, 38, 39, 41, 46, 49, 55, 60, 65, 66, 67, 74, 75, 77, 78, 84, 90, 96, 100, 104, 110, 111, 113, 114, 120, 125, 129, 133, 139, 140, 142, 143, 149, 154, 159, 163, 169, 170, 172, 173, 179, 187, 193, 196, 197, 199, 204, 208, 212, 216, 223, 227, 232, 237, 242, 243, 244, 251, 252, 254, 259, 264, 268, 272, 277, 278, 279, 304, 305, 307, 312, 316, 319, 322, 326, 331, 332, 333, 345, 346, 351, 357, 360, 364, 368, 373, 378, 379, 380, 386, 387, 396, 397, 408, 419], "summary": {"covered_lines": 96, "num_statements": 96, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [23, 24], "executed_branches": [], "missing_branches": []}}}, "src/consoul/config/profiles.py": {"executed_lines": [1, 7, 9, 10, 12, 16, 22, 122, 131, 132, 133, 136, 147, 148, 151, 152, 157], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 3, "excluded_lines": 2, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [153, 154, 155], "excluded_lines": [12, 13], "executed_branches": [[147, 148], [147, 151], [152, 157]], "missing_branches": [[152, 153]], "functions": {"get_builtin_profiles": {"executed_lines": [22], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "list_available_profiles": {"executed_lines": [131, 132, 133], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "get_profile_description": {"executed_lines": [147, 148, 151, 152, 157], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 66.66666666666667, "percent_covered_display": "66.67", "missing_lines": 3, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [153, 154, 155], "excluded_lines": [], "executed_branches": [[147, 148], [147, 151], [152, 157]], "missing_branches": [[152, 153]]}, "": {"executed_lines": [1, 7, 9, 10, 12, 16, 122, 136], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [12, 13], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 7, 9, 10, 12, 16, 22, 122, 131, 132, 133, 136, 147, 148, 151, 152, 157], "summary": {"covered_lines": 15, "num_statements": 18, "percent_covered": 81.81818181818181, "percent_covered_display": "81.82", "missing_lines": 3, "excluded_lines": 2, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [153, 154, 155], "excluded_lines": [12, 13], "executed_branches": [[147, 148], [147, 151], [152, 157]], "missing_branches": [[152, 153]]}}}, "src/consoul/formatters/__init__.py": {"executed_lines": [1, 7, 9, 10, 11, 12, 13, 15, 25, 37, 44, 45, 46, 51], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[45, 46], [45, 51]], "missing_branches": [], "functions": {"get_formatter": {"executed_lines": [37, 44, 45, 46, 51], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[45, 46], [45, 51]], "missing_branches": []}, "": {"executed_lines": [1, 7, 9, 10, 11, 12, 13, 15, 25], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 7, 9, 10, 11, 12, 13, 15, 25, 37, 44, 45, 46, 51], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[45, 46], [45, 51]], "missing_branches": []}}}, "src/consoul/formatters/base.py": {"executed_lines": [1, 3, 5, 6, 8, 12, 13, 19, 20, 32, 48, 49, 51, 52, 53], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 19, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 51, 52, 53, 54, 55], "executed_branches": [], "missing_branches": [], "functions": {"ExportFormatter.export": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 10, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "executed_branches": [], "missing_branches": []}, "ExportFormatter.export_to_file": {"executed_lines": [48, 49], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "ExportFormatter.file_extension": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [54, 55], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 12, 13, 19, 20, 32, 51, 52, 53], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 9, 19, 20, 51, 52, 53], "executed_branches": [], "missing_branches": []}}, "classes": {"ExportFormatter": {"executed_lines": [48, 49], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 12, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 54, 55], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 12, 13, 19, 20, 32, 51, 52, 53], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 9, 19, 20, 51, 52, 53], "executed_branches": [], "missing_branches": []}}}, "src/consoul/formatters/csv_formatter.py": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 27, 37, 38, 51, 53, 54, 65, 67, 68, 70], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[53, 54], [53, 65]], "missing_branches": [], "functions": {"CSVFormatter.export": {"executed_lines": [37, 38, 51, 53, 54, 65], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[53, 54], [53, 65]], "missing_branches": []}, "CSVFormatter.file_extension": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 27, 67, 68], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"CSVFormatter": {"executed_lines": [37, 38, 51, 53, 54, 65, 70], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[53, 54], [53, 65]], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 27, 67, 68], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/formatters/html.py": {"executed_lines": [1, 3, 5, 6, 8, 10, 161, 170, 171, 178, 188, 191, 194, 195, 196, 197, 198, 200, 208, 211, 222, 223, 232, 237, 239, 240, 242], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[195, 196], [195, 211]], "missing_branches": [], "functions": {"HTMLFormatter.export": {"executed_lines": [188, 191, 194, 195, 196, 197, 198, 200, 208, 211], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[195, 196], [195, 211]], "missing_branches": []}, "HTMLFormatter._get_role_emoji": {"executed_lines": [232, 237], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "HTMLFormatter.file_extension": {"executed_lines": [242], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 10, 161, 170, 171, 178, 222, 223, 239, 240], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"HTMLFormatter": {"executed_lines": [188, 191, 194, 195, 196, 197, 198, 200, 208, 211, 232, 237, 242], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[195, 196], [195, 211]], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 6, 8, 10, 161, 170, 171, 178, 222, 223, 239, 240], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/formatters/json_formatter.py": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 54, 55, 57, 67, 88, 90, 91, 102, 129, 131, 132, 134, 136, 137, 149, 150, 151, 156, 158, 164, 165, 168, 169, 172, 173, 177, 182, 183, 184, 187, 191, 192, 207, 210, 211, 212, 213, 218, 221, 222, 223, 224, 230, 231], "summary": {"covered_lines": 50, "num_statements": 56, "percent_covered": 85.0, "percent_covered_display": "85.00", "missing_lines": 6, "excluded_lines": 0, "num_branches": 24, "num_partial_branches": 6, "covered_branches": 18, "missing_branches": 6}, "missing_lines": [166, 170, 174, 185, 219, 225], "excluded_lines": [], "executed_branches": [[150, 151], [150, 156], [156, 158], [156, 182], [165, 168], [169, 172], [172, -136], [172, 173], [173, 177], [184, 187], [212, 213], [212, 218], [218, 221], [221, -191], [221, 222], [224, 230], [230, 221], [230, 231]], "missing_branches": [[165, 166], [169, 170], [173, 174], [184, 185], [218, 219], [224, 225]], "functions": {"JSONFormatter.export": {"executed_lines": [67, 88], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "JSONFormatter.export_multiple": {"executed_lines": [102, 129], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "JSONFormatter.file_extension": {"executed_lines": [134], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "JSONFormatter.validate_import_data": {"executed_lines": [149, 150, 151, 156, 158, 164, 165, 168, 169, 172, 173, 177, 182, 183, 184, 187], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 76.47058823529412, "percent_covered_display": "76.47", "missing_lines": 4, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 4}, "missing_lines": [166, 170, 174, 185], "excluded_lines": [], "executed_branches": [[150, 151], [150, 156], [156, 158], [156, 182], [165, 168], [169, 172], [172, -136], [172, 173], [173, 177], [184, 187]], "missing_branches": [[165, 166], [169, 170], [173, 174], [184, 185]]}, "JSONFormatter._validate_single_conversation": {"executed_lines": [207, 210, 211, 212, 213, 218, 221, 222, 223, 224, 230, 231], "summary": {"covered_lines": 12, "num_statements": 14, "percent_covered": 83.33333333333333, "percent_covered_display": "83.33", "missing_lines": 2, "excluded_lines": 0, "num_branches": 10, "num_partial_branches": 2, "covered_branches": 8, "missing_branches": 2}, "missing_lines": [219, 225], "excluded_lines": [], "executed_branches": [[212, 213], [212, 218], [218, 221], [221, -191], [221, 222], [224, 230], [230, 221], [230, 231]], "missing_branches": [[218, 219], [224, 225]]}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 54, 55, 57, 90, 91, 131, 132, 136, 137, 191, 192], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"JSONFormatter": {"executed_lines": [67, 88, 102, 129, 134, 149, 150, 151, 156, 158, 164, 165, 168, 169, 172, 173, 177, 182, 183, 184, 187, 207, 210, 211, 212, 213, 218, 221, 222, 223, 224, 230, 231], "summary": {"covered_lines": 33, "num_statements": 39, "percent_covered": 80.95238095238095, "percent_covered_display": "80.95", "missing_lines": 6, "excluded_lines": 0, "num_branches": 24, "num_partial_branches": 6, "covered_branches": 18, "missing_branches": 6}, "missing_lines": [166, 170, 174, 185, 219, 225], "excluded_lines": [], "executed_branches": [[150, 151], [150, 156], [156, 158], [156, 182], [165, 168], [169, 172], [172, -136], [172, 173], [173, 177], [184, 187], [212, 213], [212, 218], [218, 221], [221, -191], [221, 222], [224, 230], [230, 221], [230, 231]], "missing_branches": [[165, 166], [169, 170], [173, 174], [184, 185], [218, 219], [224, 225]]}, "": {"executed_lines": [1, 3, 5, 6, 7, 9, 12, 13, 54, 55, 57, 90, 91, 131, 132, 136, 137, 191, 192], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/formatters/markdown.py": {"executed_lines": [1, 3, 5, 7, 10, 11, 17, 27, 37, 38, 39, 41, 44, 45, 46, 48, 61, 63, 64, 73, 78, 80, 81, 83], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[38, 39], [38, 41], [44, 45], [44, 61]], "missing_branches": [], "functions": {"MarkdownFormatter.export": {"executed_lines": [27, 37, 38, 39, 41, 44, 45, 46, 48, 61], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[38, 39], [38, 41], [44, 45], [44, 61]], "missing_branches": []}, "MarkdownFormatter._get_role_emoji": {"executed_lines": [73, 78], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "MarkdownFormatter.file_extension": {"executed_lines": [83], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 7, 10, 11, 17, 63, 64, 80, 81], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"MarkdownFormatter": {"executed_lines": [27, 37, 38, 39, 41, 44, 45, 46, 48, 61, 73, 78, 83], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[38, 39], [38, 41], [44, 45], [44, 61]], "missing_branches": []}, "": {"executed_lines": [1, 3, 5, 7, 10, 11, 17, 63, 64, 80, 81], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/tui/__init__.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [7], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [7], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0.00", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [7], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/utils/__init__.py": {"executed_lines": [1, 6], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 6], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 6], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "src/consoul/utils/security.py": {"executed_lines": [1, 7, 9, 10, 13, 22, 23, 25, 26, 27, 29, 30, 31, 34, 36, 37, 38, 40, 41, 42, 45, 51, 52, 54, 55, 57, 59, 60, 68, 86, 87, 89, 90, 92, 95, 96, 97], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 18, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[22, 23], [22, 25], [26, 27], [26, 29], [34, 36], [34, 40], [37, 34], [37, 38], [51, 52], [51, 54], [55, 57], [55, 59], [59, -45], [59, 60], [86, 87], [86, 89], [90, 92], [90, 95]], "missing_branches": [], "functions": {"check_env_file_in_gitignore": {"executed_lines": [22, 23, 25, 26, 27, 29, 30, 31, 34, 36, 37, 38, 40, 41, 42], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[22, 23], [22, 25], [26, 27], [26, 29], [34, 36], [34, 40], [37, 34], [37, 38]], "missing_branches": []}, "warn_if_env_not_ignored": {"executed_lines": [51, 52, 54, 55, 57, 59, 60], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[51, 52], [51, 54], [55, 57], [55, 59], [59, -45], [59, 60]], "missing_branches": []}, "mask_api_key": {"executed_lines": [86, 87, 89, 90, 92, 95, 96, 97], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[86, 87], [86, 89], [90, 92], [90, 95]], "missing_branches": []}, "": {"executed_lines": [1, 7, 9, 10, 13, 45, 68], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 7, 9, 10, 13, 22, 23, 25, 26, 27, 29, 30, 31, 34, 36, 37, 38, 40, 41, 42, 45, 51, 52, 54, 55, 57, 59, 60, 68, 86, 87, 89, 90, 92, 95, 96, 97], "summary": {"covered_lines": 36, "num_statements": 36, "percent_covered": 100.0, "percent_covered_display": "100.00", "missing_lines": 0, "excluded_lines": 0, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 18, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [[22, 23], [22, 25], [26, 27], [26, 29], [34, 36], [34, 40], [37, 34], [37, 38], [51, 52], [51, 54], [55, 57], [55, 59], [59, -45], [59, 60], [86, 87], [86, 89], [90, 92], [90, 95]], "missing_branches": []}}}}, "totals": {"covered_lines": 1126, "num_statements": 1614, "percent_covered": 70.88546679499518, "percent_covered_display": "70.89", "missing_lines": 488, "excluded_lines": 54, "num_branches": 464, "num_partial_branches": 35, "covered_branches": 347, "missing_branches": 117}}