Skip to content

Comments

stop inherit TextContent from mcp.types.TextContent since it breaks JSON schema#306

Merged
xingyaoww merged 1 commit intomainfrom
xw/remove-mcp-type
Sep 16, 2025
Merged

stop inherit TextContent from mcp.types.TextContent since it breaks JSON schema#306
xingyaoww merged 1 commit intomainfrom
xw/remove-mcp-type

Conversation

@xingyaoww
Copy link
Collaborator

No description provided.

@xingyaoww xingyaoww enabled auto-merge (squash) September 16, 2025 16:30
@xingyaoww xingyaoww merged commit 752ac36 into main Sep 16, 2025
5 checks passed
@xingyaoww xingyaoww deleted the xw/remove-mcp-type branch September 16, 2025 16:33
@github-actions
Copy link
Contributor

Coverage

Coverage Report
FileStmtsMissCoverMissing
openhands
   __init__.py10100% 
openhands/sdk
   __init__.py16287%28–29
   logger.py732171%33, 57, 64–67, 69–71, 124, 129–131, 134–135, 141–143, 150, 155–156
openhands/sdk/agent
   __init__.py40100% 
   agent.py1743579%62, 69, 76, 80, 97, 111, 118–119, 124–125, 196–197, 199–201, 203–205, 240, 254, 277, 309, 343–345, 349–351, 358–359, 363, 367–368, 398, 405
   base.py92792%113, 127, 135–137, 153, 173
   spec.py150100% 
openhands/sdk/context
   __init__.py40100% 
   agent_context.py57296%146, 152
   manager.py330%1, 4–5
   view.py97198%90
openhands/sdk/context/condenser
   __init__.py60100% 
   base.py29196%57
   llm_summarizing_condenser.py39392%44–46
   no_op_condenser.py60100% 
   pipeline_condenser.py27677%69–74
   spec.py150100% 
openhands/sdk/context/microagents
   __init__.py40100% 
   exceptions.py50100% 
   microagent.py1432582%130, 133–136, 218–221, 229, 251–252, 257–258, 260, 264, 271–273, 281–283, 337, 339–340
   types.py210100% 
openhands/sdk/context/prompts
   __init__.py20100% 
   prompt.py30583%12, 15, 24, 44–45
openhands/sdk/conversation
   __init__.py70100% 
   conversation.py1151190%115, 123–125, 129–130, 193, 275–276, 284–285
   event_store.py101892%50–51, 60, 67, 72–73, 129, 142
   persistence_const.py50100% 
   secrets_manager.py41197%107
   serialization_diff.py00100% 
   state.py101595%141, 164, 200–202
   types.py60100% 
   visualizer.py94693%90, 147, 169, 186, 218, 220
openhands/sdk/event
   __init__.py70100% 
   base.py74889%55, 75, 87–88, 94, 97–98, 100
   condenser.py28775%37, 39, 41–45
   llm_convertible.py1791691%53, 63–64, 69–70, 246, 280–281, 286, 294, 335–336, 341, 374–375, 380
   metric_events.py130100% 
   types.py70100% 
   user_action.py12191%21
   utils.py120100% 
openhands/sdk/io
   __init__.py40100% 
   base.py14471%7, 11, 15, 19
   local.py561671%43–44, 58, 66–78
   memory.py43490%16, 20, 53–54
openhands/sdk/llm
   __init__.py80100% 
   exceptions.py360100% 
   llm.py39810274%229, 234, 247–249, 253–254, 286, 346, 352–353, 448, 461–462, 467–468, 470–471, 474–476, 481–483, 487–489, 510–513, 520, 538–539, 542–543, 567, 573–574, 620, 669, 686–687, 696, 707, 728, 730–735, 737–754, 757–761, 763–764, 770–779, 783–794, 807, 821, 826
   llm_registry.py380100% 
   message.py109496%96, 99, 222–223
   metadata.py150100% 
openhands/sdk/llm/mixins
   fn_call_converter.py3439273%74, 343, 345, 349, 367, 369, 375, 381, 383, 422, 424, 426, 428, 433–434, 518–520, 522, 524, 545–547, 553, 575, 601–602, 610–613, 615, 617, 639, 648, 656, 701–704, 708–711, 723, 727, 738, 748, 797–798, 800, 829, 833, 859, 867, 870–871, 876, 905–908, 912–913, 918–919, 924, 973–974, 980, 994, 1006, 1008–1009, 1012–1014, 1016–1017, 1023–1025, 1027–1028, 1030, 1032, 1036, 1038, 1043, 1045–1046, 1049
   non_native_fc.py39392%64, 75, 91
openhands/sdk/llm/utils
   metrics.py111397%17, 117, 311
   model_features.py400100% 
   retry_mixin.py501178%47, 50, 64, 86, 90, 94–95, 105, 110–111, 116
   telemetry.py1361588%71, 94, 99–100, 112–113, 120, 134, 199, 216, 222, 229, 232, 234, 241
   unverified_models.py69494%45–46, 51, 73
   verified_models.py50100% 
openhands/sdk/mcp
   __init__.py50100% 
   client.py26676%48–49, 62–63, 72–73
   definition.py481666%55, 75–80, 82–90
   tool.py401367%36–39, 43, 46, 49–52, 101–102, 107
   utils.py30486%23–24, 27, 30
openhands/sdk/preset
   __init__.py00100% 
   default.py201240%13, 15, 22, 28–29, 31–33, 35–36, 43, 45
openhands/sdk/tool
   __init__.py50100% 
   schema.py1261191%27–29, 31, 40, 244–247, 267, 282
   security_prompt.py30100% 
   spec.py150100% 
   tool.py961089%65, 106, 176, 179–185
openhands/sdk/tool/builtins
   __init__.py40100% 
   finish.py26196%33
   think.py321359%24, 27–28, 31, 33–37, 39, 51, 57, 74
openhands/sdk/utils
   __init__.py30100% 
   async_executor.py52786%39, 55–56, 84, 88, 102–103
   async_utils.py120100% 
   discriminated_union.py1682286%119–127, 141–142, 236, 329, 356, 399–401, 418, 451, 464, 471, 474
   json.py28280%1–3, 5, 7–8, 11, 14–21, 25, 28, 30–31, 34, 37–38, 40, 43, 45–48
   protocol.py30100% 
   pydantic_diff.py571573%36, 44, 50–58, 60–62, 65
   truncate.py100100% 
   visualize.py17476%14–16, 22
openhands/tools
   __init__.py10280%51–52
openhands/tools/browser_use
   __init__.py30100% 
   definition.py1091982%28–29, 31, 35, 37–38, 40, 88, 145, 199, 250, 301, 352, 397, 442, 492, 541, 560–561
   impl.py1138822%25, 28, 33–34, 38, 44, 58–59, 61–70, 73–82, 84–85, 87–91, 95, 97–98, 103–104, 108–109, 114–115, 119–120, 124–125, 129, 131–132, 134–137, 140–141, 144, 146, 148, 153–154, 158–159, 163–164, 169–170, 176–180, 184–189, 193, 195–197, 200, 204–207
   server.py45426%11, 13–14, 16–17, 20–21, 24–25, 28, 30–32, 34–35, 38–39, 41, 44, 47–48, 51, 54–55, 57–61, 64–66, 68, 73–78, 80, 87, 89
openhands/tools/execute_bash
   __init__.py40100% 
   constants.py90100% 
   definition.py956135%38, 41, 44–45, 47, 50–52, 54–56, 58, 88, 92–101, 106, 109–111, 114, 116–118, 120, 124–125, 128–130, 132–133, 136–139, 143–145, 150, 154–156, 159–161, 165–166, 168, 245, 247–248, 251, 261
   impl.py402440%52–55, 57–58, 60–62, 64–67, 69, 72, 82–83, 86–89, 91, 95–96
   metadata.py502354%67–73, 77–78, 83, 85, 87–96, 100–101
openhands/tools/execute_bash/terminal
   __init__.py60100% 
   factory.py492842%24–25, 30, 32, 35, 37–38, 44–46, 74–77, 79–83, 87–89, 91, 97, 107, 111–113
   interface.py692071%43, 52, 62, 71, 76, 85, 94, 99, 104, 112, 145, 157, 162, 171, 180, 185, 189–191, 193
   subprocess_terminal.py23620313%33–34, 50–53, 56, 59–61, 67–68, 71–74, 76, 79, 81–83, 97–100, 102, 105–106, 109, 112–113, 117–118, 124–126, 128, 131–132, 134, 138–139, 141–142, 144–150, 152–158, 161–166, 168–169, 171–172, 177, 179–187, 191–193, 195–196, 198–199, 202–204, 206–209, 211–212, 214–215, 217–222, 227–229, 231, 234, 237–238, 241–242, 248–250, 252–259, 261–264, 268–276, 289–290, 292, 309–310, 313–314, 316, 318, 320–322, 325–326, 328–330, 332–333, 335–336, 345–346, 350, 352–357, 361–362, 364–367, 369–375, 377–378, 380–384, 388–389, 391–397, 401–402, 405–406, 408–409, 411–413
   terminal_session.py17813921%43, 85–88, 92, 96–98, 107–108, 119–121, 123–126, 135–136, 140, 144, 147–148, 150, 155, 161, 163–164, 169, 177, 182–185, 198–200, 205, 208–209, 213, 219, 233–235, 240, 243–244, 248, 255, 264, 273–274, 276, 279–283, 285, 288, 290–292, 296–297, 300–302, 306, 311–312, 316–317, 323–325, 336–337, 340–342, 344–346, 349, 359, 363, 366, 369–370, 376–377, 383, 388–389, 392–396, 402, 404–406, 412–416, 419, 422, 425–426, 428–431, 438, 442, 447–448, 455–457, 461, 465, 470–471, 475–476, 479–482, 488–489, 492
   tmux_terminal.py803457%36, 45, 90–95, 97–98, 107–108, 110, 118–119, 121, 128, 133, 145–152, 160–161, 163–164, 166, 168–170
openhands/tools/execute_bash/utils
   command.py817211%15–19, 27, 32, 34–35, 37–38, 41–46, 48, 51–53, 55, 58–67, 74–75, 77–79, 81, 83, 90–91, 93, 95–97, 99, 101–102, 105–106, 109, 117, 120–121, 123–124, 127–129, 132–138, 141–145, 150
openhands/tools/str_replace_editor
   __init__.py30100% 
   definition.py651576%87, 99, 119, 122, 125, 132, 134, 136, 138, 210, 213, 216–217, 223, 226
   editor.py22817025%74, 76–77, 80, 98, 101, 111–115, 121–129, 131, 149–150, 170–171, 175, 179–180, 189, 193–196, 204–205, 209–211, 217, 220, 225, 228, 231–232, 235, 238–239, 243, 247, 262–264, 273, 276, 282, 287, 289–293, 295, 297, 301–302, 306–307, 316–317, 319–322, 324, 331–332, 338–340, 348–352, 356, 358–359, 366, 369, 374–375, 377, 401–402, 424–425, 427–428, 434, 437, 441–447, 450–451, 454–459, 462, 465–466, 470, 473–474, 477, 479–480, 486, 490, 509, 514–517, 519, 527, 534, 541, 552–555, 557, 559, 586–589, 598–599, 628–630, 632–641, 646–649, 662–663, 668, 673, 679, 685
   exceptions.py221340%5–6, 9, 16–18, 25–27, 38–41
   impl.py261157%31–32, 51–52, 54–56, 65–68
openhands/tools/str_replace_editor/utils
   __init__.py00100% 
   config.py20100% 
   constants.py50100% 
   diff.py641576%24, 40–42, 45–47, 50, 90–93, 107–108, 115
   encoding.py542750%42–43, 46–48, 51, 54, 60, 64–65, 67, 69, 78, 80–81, 84, 87–90, 93, 96–97, 114, 128, 130–131
   file_cache.py954849%43–46, 49–50, 54, 59, 61, 64, 69, 72–73, 87, 95–98, 108–112, 115–120, 126–130, 133–135, 138–140, 143–148, 151, 154
   history.py663645%58–60, 66–68, 70–71, 74–76, 78–79, 82, 85–86, 88, 92–94, 98–99, 102–104, 107, 111–113, 115–120, 122
   shell.py231630%30, 32–34, 38, 40, 51–55, 62–63, 70–72
openhands/tools/task_tracker
   __init__.py20100% 
   definition.py1329428%48, 51–53, 55–56, 59–60, 62, 78, 83, 85, 87–88, 91, 94–96, 98–99, 102–108, 110–112, 115, 117–120, 122, 125, 128–129, 131–132, 134–135, 137, 150–151, 154–155, 159, 161, 163–165, 171, 173–174, 179–180, 184, 193–194, 196–198, 202–203, 205–208, 210, 214–215, 217–219, 221–225, 229, 233–234, 236–237, 239, 241–245, 407, 410
openhands/tools/utils
   __init__.py00100% 
TOTAL5969179469% 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant