mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-06-14 10:19:16 -04:00
1 line
66 KiB
XML
1 line
66 KiB
XML
<svg id="mermaid-1781134331628" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="classDiagram" style="max-width: 2319.703125px;" viewBox="0 0 2319.703125 1078" role="graphics-document document" aria-roledescription="class"><style>#mermaid-1781134331628{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-1781134331628 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-1781134331628 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-1781134331628 .error-icon{fill:#552222;}#mermaid-1781134331628 .error-text{fill:#552222;stroke:#552222;}#mermaid-1781134331628 .edge-thickness-normal{stroke-width:1px;}#mermaid-1781134331628 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1781134331628 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1781134331628 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-1781134331628 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1781134331628 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1781134331628 .marker{fill:#333333;stroke:#333333;}#mermaid-1781134331628 .marker.cross{stroke:#333333;}#mermaid-1781134331628 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-1781134331628 p{margin:0;}#mermaid-1781134331628 g.classGroup text{fill:#9370DB;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-1781134331628 g.classGroup text .title{font-weight:bolder;}#mermaid-1781134331628 .cluster-label text{fill:#333;}#mermaid-1781134331628 .cluster-label span{color:#333;}#mermaid-1781134331628 .cluster-label span p{background-color:transparent;}#mermaid-1781134331628 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1781134331628 .cluster text{fill:#333;}#mermaid-1781134331628 .cluster span{color:#333;}#mermaid-1781134331628 .nodeLabel,#mermaid-1781134331628 .edgeLabel{color:#131300;}#mermaid-1781134331628 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-1781134331628 .label text{fill:#131300;}#mermaid-1781134331628 .labelBkg{background:#ECECFF;}#mermaid-1781134331628 .edgeLabel .label span{background:#ECECFF;}#mermaid-1781134331628 .classTitle{font-weight:bolder;}#mermaid-1781134331628 .node rect,#mermaid-1781134331628 .node circle,#mermaid-1781134331628 .node ellipse,#mermaid-1781134331628 .node polygon,#mermaid-1781134331628 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1781134331628 .divider{stroke:#9370DB;stroke-width:1;}#mermaid-1781134331628 g.clickable{cursor:pointer;}#mermaid-1781134331628 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-1781134331628 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-1781134331628 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-1781134331628 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-1781134331628 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-1781134331628 .dashed-line{stroke-dasharray:3;}#mermaid-1781134331628 .dotted-line{stroke-dasharray:1 2;}#mermaid-1781134331628 #compositionStart,#mermaid-1781134331628 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #compositionEnd,#mermaid-1781134331628 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #dependencyStart,#mermaid-1781134331628 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #dependencyStart,#mermaid-1781134331628 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #extensionStart,#mermaid-1781134331628 .extension{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #extensionEnd,#mermaid-1781134331628 .extension{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #aggregationStart,#mermaid-1781134331628 .aggregation{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #aggregationEnd,#mermaid-1781134331628 .aggregation{fill:transparent!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #lollipopStart,#mermaid-1781134331628 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 #lollipopEnd,#mermaid-1781134331628 .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-1781134331628 .edgeTerminals{font-size:11px;line-height:initial;}#mermaid-1781134331628 .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-1781134331628 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-1781134331628 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-1781134331628 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><defs><marker id="mermaid-1781134331628_class-aggregationStart" class="marker aggregation class" refX="18" refY="7" markerWidth="190" markerHeight="240" orient="auto"><path d="M 18,7 L9,13 L1,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-aggregationEnd" class="marker aggregation class" refX="1" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L1,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-extensionStart" class="marker extension class" refX="18" refY="7" markerWidth="190" markerHeight="240" orient="auto"><path d="M 1,7 L18,13 V 1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-extensionEnd" class="marker extension class" refX="1" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 1,1 V 13 L18,7 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-compositionStart" class="marker composition class" refX="18" refY="7" markerWidth="190" markerHeight="240" orient="auto"><path d="M 18,7 L9,13 L1,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-compositionEnd" class="marker composition class" refX="1" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L1,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-dependencyStart" class="marker dependency class" refX="6" refY="7" markerWidth="190" markerHeight="240" orient="auto"><path d="M 5,7 L9,13 L1,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-dependencyEnd" class="marker dependency class" refX="13" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L14,7 L9,1 Z"></path></marker></defs><defs><marker id="mermaid-1781134331628_class-lollipopStart" class="marker lollipop class" refX="13" refY="7" markerWidth="190" markerHeight="240" orient="auto"><circle fill="transparent" cx="7" cy="7" r="6"></circle></marker></defs><defs><marker id="mermaid-1781134331628_class-lollipopEnd" class="marker lollipop class" refX="1" refY="7" markerWidth="190" markerHeight="240" orient="auto"><circle fill="transparent" cx="7" cy="7" r="6"></circle></marker></defs><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M1161.956,133.388L1081.165,147.657C1000.373,161.926,838.79,190.463,757.999,210.898C677.207,231.333,677.207,243.667,677.207,249.833L677.207,256" id="id_SessionManager_Session_1" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_SessionManager_Session_1" data-points="W3sieCI6MTE3OC45NDMzNTkzNzUsInkiOjEzMC4zODgyNjI1MjI5MTQ5N30seyJ4Ijo2NzcuMjA3MDMxMjUsInkiOjIxOX0seyJ4Ijo2NzcuMjA3MDMxMjUsInkiOjI1Nn1d" marker-start="url(#mermaid-1781134331628_class-aggregationStart)"></path><path d="M1379.318,182L1379.318,188.167C1379.318,194.333,1379.318,206.667,1379.318,228C1379.318,249.333,1379.318,279.667,1379.318,294.833L1379.318,310" id="id_SessionManager_AgentFactory_2" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_SessionManager_AgentFactory_2" data-points="W3sieCI6MTM3OS4zMTgzNTkzNzUsInkiOjE4Mn0seyJ4IjoxMzc5LjMxODM1OTM3NSwieSI6MjE5fSx7IngiOjEzNzkuMzE4MzU5Mzc1LCJ5IjozMTZ9XQ==" marker-end="url(#mermaid-1781134331628_class-dependencyEnd)"></path><path d="M1579.693,162.877L1607.306,172.231C1634.919,181.585,1690.144,200.292,1717.757,226.813C1745.369,253.333,1745.369,287.667,1745.369,304.833L1745.369,322" id="id_SessionManager_ToolContributorRegistry_3" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_SessionManager_ToolContributorRegistry_3" data-points="W3sieCI6MTU3OS42OTMzNTkzNzUsInkiOjE2Mi44NzcxOTQyOTI5NzA3OH0seyJ4IjoxNzQ1LjM2OTE0MDYyNSwieSI6MjE5fSx7IngiOjE3NDUuMzY5MTQwNjI1LCJ5IjozMjh9XQ==" marker-end="url(#mermaid-1781134331628_class-dependencyEnd)"></path><path d="M488.526,472.276L436.449,491.397C384.371,510.517,280.217,548.759,228.14,574.046C176.063,599.333,176.063,611.667,176.063,617.833L176.063,624" id="id_Session_ConversationHistory_4" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Session_ConversationHistory_4" data-points="W3sieCI6NTA0LjcxODc1LCJ5Ijo0NjYuMzMwNzE5NTI0ODM3NjZ9LHsieCI6MTc2LjA2MjUsInkiOjU4N30seyJ4IjoxNzYuMDYyNSwieSI6NjI0fV0=" marker-start="url(#mermaid-1781134331628_class-compositionStart)"></path><path d="M557.99,563.859L555.132,567.716C552.274,571.573,546.557,579.286,543.698,591.31C540.84,603.333,540.84,619.667,540.84,627.833L540.84,636" id="id_Session_SystemPromptBuilder_5" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Session_SystemPromptBuilder_5" data-points="W3sieCI6NTY4LjI2MTUwNjQ1MzgwNDQsInkiOjU1MH0seyJ4Ijo1NDAuODM5ODQzNzUsInkiOjU4N30seyJ4Ijo1NDAuODM5ODQzNzUsInkiOjYzNn1d" marker-start="url(#mermaid-1781134331628_class-compositionStart)"></path><path d="M841.733,561.987L846.047,566.156C850.361,570.325,858.989,578.662,863.303,592.998C867.617,607.333,867.617,627.667,867.617,637.833L867.617,648" id="id_Session_ResponseRouter_6" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Session_ResponseRouter_6" data-points="W3sieCI6ODI5LjMyODE4ODY4ODg1ODcsInkiOjU1MH0seyJ4Ijo4NjcuNjE3MTg3NSwieSI6NTg3fSx7IngiOjg2Ny42MTcxODc1LCJ5Ijo2NDh9XQ==" marker-start="url(#mermaid-1781134331628_class-compositionStart)"></path><path d="M849.695,489.187L882.321,505.489C914.947,521.791,980.199,554.396,1021.545,578.212C1062.892,602.028,1080.332,617.056,1089.052,624.57L1097.772,632.083" id="id_Session_Agent_7" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Session_Agent_7" data-points="W3sieCI6ODQ5LjY5NTMxMjUsInkiOjQ4OS4xODY5NjE5ODcwNDc5fSx7IngiOjEwNDUuNDUxMTcxODc1LCJ5Ijo1ODd9LHsieCI6MTEwMi4zMTc4MjgwMTAxMTA0LCJ5Ijo2MzZ9XQ==" marker-end="url(#mermaid-1781134331628_class-dependencyEnd)"></path><path d="M176.063,839.25L176.063,840.542C176.063,841.833,176.063,844.417,176.063,854.375C176.063,864.333,176.063,881.667,176.063,890.333L176.063,899" id="id_ConversationHistory_Message_8" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_ConversationHistory_Message_8" data-points="W3sieCI6MTc2LjA2MjUsInkiOjgyMn0seyJ4IjoxNzYuMDYyNSwieSI6ODQ3fSx7IngiOjE3Ni4wNjI1LCJ5Ijo4OTl9XQ==" marker-start="url(#mermaid-1781134331628_class-aggregationStart)"></path><path d="M1180.654,826.854L1179.922,830.212C1179.19,833.57,1177.727,840.285,1177.903,847.809C1178.08,855.333,1179.896,863.667,1180.804,867.833L1181.712,872" id="id_Agent_Provider_9" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Agent_Provider_9" data-points="W3sieCI6MTE4NC4zMjY1MzQxNDgxODU0LCJ5Ijo4MTB9LHsieCI6MTE3Ni4yNjM2NzE4NzUsInkiOjg0N30seyJ4IjoxMTgxLjcxMTU1MTc4OTMxNDYsInkiOjg3Mn1d" marker-start="url(#mermaid-1781134331628_class-compositionStart)"></path><path d="M1375.932,750.104L1478.798,766.254C1581.664,782.403,1787.395,814.701,1903.737,841.017C2020.079,867.333,2047.032,887.667,2060.508,897.833L2073.984,908" id="id_Agent_PromptTemplate_10" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_Agent_PromptTemplate_10" data-points="W3sieCI6MTM1OC44OTA2MjUsInkiOjc0Ny40MjkwNDE2MTQ4NDA4fSx7IngiOjE5OTMuMTI2OTUzMTI1LCJ5Ijo4NDd9LHsieCI6MjA3My45ODQwNDQyMjg4MzA1LCJ5Ijo5MDh9XQ==" marker-start="url(#mermaid-1781134331628_class-compositionStart)"></path><path d="M1307.016,490L1293.58,506.167C1280.145,522.333,1253.273,554.667,1238.617,578.014C1223.961,601.362,1221.52,615.723,1220.299,622.904L1219.079,630.085" id="id_AgentFactory_Agent_11" class=" edge-thickness-normal edge-pattern-dashed relation" style=";;;" data-edge="true" data-et="edge" data-id="id_AgentFactory_Agent_11" data-points="W3sieCI6MTMwNy4wMTU2NzgwNzQwNDksInkiOjQ5MH0seyJ4IjoxMjI2LjQwMjM0Mzc1LCJ5Ijo1ODd9LHsieCI6MTIxOC4wNzMzNTcwNzcyMDU5LCJ5Ijo2MzZ9XQ==" marker-end="url(#mermaid-1781134331628_class-dependencyEnd)"></path><path d="M1466.244,490L1482.396,506.167C1498.549,522.333,1530.855,554.667,1547.007,582C1563.16,609.333,1563.16,631.667,1563.16,642.833L1563.16,654" id="id_AgentFactory_AgentRouter_12" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_AgentFactory_AgentRouter_12" data-points="W3sieCI6MTQ2Ni4yNDM1NTY4MTA0NjIsInkiOjQ5MH0seyJ4IjoxNTYzLjE2MDE1NjI1LCJ5Ijo1ODd9LHsieCI6MTU2My4xNjAxNTYyNSwieSI6NjYwfV0=" marker-end="url(#mermaid-1781134331628_class-dependencyEnd)"></path><path d="M1859.73,783L1857.405,793.667C1855.081,804.333,1850.432,825.667,1767.934,851.807C1685.436,877.946,1525.089,908.893,1444.916,924.366L1364.742,939.839" id="id_GenericProvider_Provider_13" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_GenericProvider_Provider_13" data-points="W3sieCI6MTg1OS43Mjk3NzU3MDU2NDUxLCJ5Ijo3ODN9LHsieCI6MTg0NS43ODMyMDMxMjUsInkiOjg0N30seyJ4IjoxMzQ3LjgwNDY4NzUsInkiOjk0My4xMDgyMDgwMTM3NjQ2fV0=" marker-end="url(#mermaid-1781134331628_class-extensionEnd)"></path><path d="M2167.492,795L2167.492,803.667C2167.492,812.333,2167.492,829.667,2166.903,845.634C2166.315,861.602,2165.137,876.204,2164.548,883.505L2163.959,890.806" id="id_JsonPromptTemplate_PromptTemplate_14" class=" edge-thickness-normal edge-pattern-solid relation" style=";;;" data-edge="true" data-et="edge" data-id="id_JsonPromptTemplate_PromptTemplate_14" data-points="W3sieCI6MjE2Ny40OTIxODc1LCJ5Ijo3OTV9LHsieCI6MjE2Ny40OTIxODc1LCJ5Ijo4NDd9LHsieCI6MjE2Mi41NzI4MzI2NjEyOTAyLCJ5Ijo5MDh9XQ==" marker-end="url(#mermaid-1781134331628_class-extensionEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(677.20703125, 219)"><g class="label" data-id="id_SessionManager_Session_1" transform="translate(-19.125, -12)"><foreignObject width="38.25" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "><p>pools</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1379.318359375, 219)"><g class="label" data-id="id_SessionManager_AgentFactory_2" transform="translate(-33.3515625, -12)"><foreignObject width="66.703125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "><p>builds via</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_SessionManager_ToolContributorRegistry_3" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Session_ConversationHistory_4" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Session_SystemPromptBuilder_5" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Session_ResponseRouter_6" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Session_Agent_7" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_ConversationHistory_Message_8" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Agent_Provider_9" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_Agent_PromptTemplate_10" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1250.82512, 557.61269)"><g class="label" data-id="id_AgentFactory_Agent_11" transform="translate(-26.234375, -12)"><foreignObject width="52.46875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "><p>creates</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_AgentFactory_AgentRouter_12" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_GenericProvider_Provider_13" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="id_JsonPromptTemplate_PromptTemplate_14" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default " id="classId-SessionManager-0" transform="translate(1379.318359375, 95)"><g class="basic label-container"><path d="M-200.375 -87 L200.375 -87 L200.375 87 L-200.375 87" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-200.375 -87 C-45.43682052789407 -87, 109.50135894421186 -87, 200.375 -87 M-200.375 -87 C-102.32061635802002 -87, -4.266232716040037 -87, 200.375 -87 M200.375 -87 C200.375 -48.974650315201124, 200.375 -10.949300630402249, 200.375 87 M200.375 -87 C200.375 -37.83271791585853, 200.375 11.334564168282938, 200.375 87 M200.375 87 C60.269589041485204 87, -79.83582191702959 87, -200.375 87 M200.375 87 C70.14190120672387 87, -60.091197586552255 87, -200.375 87 M-200.375 87 C-200.375 32.44356045516282, -200.375 -22.112879089674365, -200.375 -87 M-200.375 87 C-200.375 38.03012122821733, -200.375 -10.939757543565335, -200.375 -87" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -63)"></g><g class="label-group text" transform="translate(-63.578125, -63)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="127.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 171px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>SessionManager</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-188.375, -15)"></g><g class="methods-group text" transform="translate(-188.375, 15)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="225.453125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 280px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+acquire(agentName) : Session</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="126.734375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 181px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+release(session)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="313.171875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 368px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+toolContributors() : ToolContributorRegistry</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-200.375 -39 C-87.39363639955589 -39, 25.587727200888224 -39, 200.375 -39 M-200.375 -39 C-88.30043568680222 -39, 23.774128626395566 -39, 200.375 -39" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-200.375 -15 C-116.66407394532533 -15, -32.953147890650655 -15, 200.375 -15 M-200.375 -15 C-83.89657932738426 -15, 32.58184134523148 -15, 200.375 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-Session-1" transform="translate(677.20703125, 403)"><g class="basic label-container"><path d="M-172.48828125 -147 L172.48828125 -147 L172.48828125 147 L-172.48828125 147" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-172.48828125 -147 C-53.89519375075892 -147, 64.69789374848216 -147, 172.48828125 -147 M-172.48828125 -147 C-50.678610109216265 -147, 71.13106103156747 -147, 172.48828125 -147 M172.48828125 -147 C172.48828125 -78.40710099656272, 172.48828125 -9.814201993125437, 172.48828125 147 M172.48828125 -147 C172.48828125 -81.5175822321675, 172.48828125 -16.035164464334997, 172.48828125 147 M172.48828125 147 C80.62904212326238 147, -11.23019700347524 147, -172.48828125 147 M172.48828125 147 C71.14756257845875 147, -30.193156093082507 147, -172.48828125 147 M-172.48828125 147 C-172.48828125 66.19012353674322, -172.48828125 -14.61975292651357, -172.48828125 -147 M-172.48828125 147 C-172.48828125 50.837028035222176, -172.48828125 -45.32594392955565, -172.48828125 -147" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -123)"></g><g class="label-group text" transform="translate(-30.6796875, -123)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="61.359375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 107px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>Session</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-160.48828125, -75)"></g><g class="methods-group text" transform="translate(-160.48828125, -45)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="266.34375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 321px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+send(blocks, toolPolicy) : RequestID</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="66.25" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 121px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+cancel()</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="224.515625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 279px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+history() : ConversationHistory</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,60)"><foreignObject width="290.296875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 345px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+systemPrompt() : SystemPromptBuilder</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,84)"><foreignObject width="172.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 227px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+event(ResponseEvent)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,108)"><foreignObject width="181.890625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 236px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+finished(id, stopReason)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,132)"><foreignObject width="141.84375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 196px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+failed(id, ErrorInfo)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,156)"><foreignObject width="100.0625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 155px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+cancelled(id)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-172.48828125 -99 C-71.38979706511005 -99, 29.70868711977991 -99, 172.48828125 -99 M-172.48828125 -99 C-39.06761034375879 -99, 94.35306056248243 -99, 172.48828125 -99" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-172.48828125 -75 C-35.55667419232137 -75, 101.37493286535727 -75, 172.48828125 -75 M-172.48828125 -75 C-98.09637814445809 -75, -23.704475038916172 -75, 172.48828125 -75" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-ConversationHistory-2" transform="translate(176.0625, 723)"><g class="basic label-container"><path d="M-168.0625 -99 L168.0625 -99 L168.0625 99 L-168.0625 99" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-168.0625 -99 C-61.04890093622379 -99, 45.964698127552424 -99, 168.0625 -99 M-168.0625 -99 C-38.74915537895427 -99, 90.56418924209146 -99, 168.0625 -99 M168.0625 -99 C168.0625 -20.10441156351625, 168.0625 58.7911768729675, 168.0625 99 M168.0625 -99 C168.0625 -58.23518818352074, 168.0625 -17.47037636704148, 168.0625 99 M168.0625 99 C56.42114954604111 99, -55.220200907917786 99, -168.0625 99 M168.0625 99 C77.67261095747779 99, -12.717278085044427 99, -168.0625 99 M-168.0625 99 C-168.0625 21.20010100336934, -168.0625 -56.59979799326132, -168.0625 -99 M-168.0625 99 C-168.0625 50.4900645276494, -168.0625 1.9801290552988036, -168.0625 -99" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -75)"></g><g class="label-group text" transform="translate(-78.6875, -75)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="157.375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 194px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>ConversationHistory</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-156.0625, -27)"></g><g class="methods-group text" transform="translate(-156.0625, 3)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="233.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 321px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+messages() : vector<Message></p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="191.625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 246px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+lastAssistantText() : string</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="138.3125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 193px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+append(Message)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,60)"><foreignObject width="182.75" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 270px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+reset(vector<Message>)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-168.0625 -51 C-49.16914634573331 -51, 69.72420730853338 -51, 168.0625 -51 M-168.0625 -51 C-82.23263507483125 -51, 3.5972298503374986 -51, 168.0625 -51" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-168.0625 -27 C-96.82994789783095 -27, -25.597395795661896 -27, 168.0625 -27 M-168.0625 -27 C-100.3671695770236 -27, -32.671839154047206 -27, 168.0625 -27" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-Message-3" transform="translate(176.0625, 971)"><g class="basic label-container"><path d="M-137.1796875 -72 L137.1796875 -72 L137.1796875 72 L-137.1796875 72" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-137.1796875 -72 C-71.12499417749102 -72, -5.070300854982037 -72, 137.1796875 -72 M-137.1796875 -72 C-34.382130703081 -72, 68.415426093838 -72, 137.1796875 -72 M137.1796875 -72 C137.1796875 -21.780552403695523, 137.1796875 28.438895192608953, 137.1796875 72 M137.1796875 -72 C137.1796875 -39.5933974274533, 137.1796875 -7.186794854906594, 137.1796875 72 M137.1796875 72 C31.800564057821276 72, -73.57855938435745 72, -137.1796875 72 M137.1796875 72 C39.39494387591962 72, -58.389799748160755 72, -137.1796875 72 M-137.1796875 72 C-137.1796875 24.078738606917412, -137.1796875 -23.842522786165176, -137.1796875 -72 M-137.1796875 72 C-137.1796875 17.457402984361153, -137.1796875 -37.085194031277695, -137.1796875 -72" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -48)"></g><g class="label-group text" transform="translate(-33.796875, -48)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="67.59375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 115px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>Message</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-125.1796875, 0)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="73.375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 128px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+role Role</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="216.5625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 304px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+blocks vector<ContentBlock></p></span></div></foreignObject></g></g><g class="methods-group text" transform="translate(-125.1796875, 72)"></g><g class="divider" style=""><path d="M-137.1796875 -24 C-46.589372277429405 -24, 44.00094294514119 -24, 137.1796875 -24 M-137.1796875 -24 C-80.56442659748046 -24, -23.94916569496091 -24, 137.1796875 -24" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-137.1796875 48 C-35.68210292869746 48, 65.81548164260508 48, 137.1796875 48 M-137.1796875 48 C-79.60617489711535 48, -22.03266229423069 48, 137.1796875 48" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-SystemPromptBuilder-4" transform="translate(540.83984375, 723)"><g class="basic label-container"><path d="M-146.71484375 -87 L146.71484375 -87 L146.71484375 87 L-146.71484375 87" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-146.71484375 -87 C-65.2608306829802 -87, 16.193182384039602 -87, 146.71484375 -87 M-146.71484375 -87 C-38.837183732205176 -87, 69.04047628558965 -87, 146.71484375 -87 M146.71484375 -87 C146.71484375 -26.658260245628504, 146.71484375 33.68347950874299, 146.71484375 87 M146.71484375 -87 C146.71484375 -42.61436408609196, 146.71484375 1.7712718278160793, 146.71484375 87 M146.71484375 87 C77.06345407232736 87, 7.4120643946547204 87, -146.71484375 87 M146.71484375 87 C85.96099970773915 87, 25.207155665478297 87, -146.71484375 87 M-146.71484375 87 C-146.71484375 35.62240501449928, -146.71484375 -15.755189971001442, -146.71484375 -87 M-146.71484375 87 C-146.71484375 20.00805647470571, -146.71484375 -46.98388705058858, -146.71484375 -87" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -63)"></g><g class="label-group text" transform="translate(-84.0234375, -63)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="168.046875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 205px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>SystemPromptBuilder</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-134.71484375, -15)"></g><g class="methods-group text" transform="translate(-134.71484375, 15)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="185.40625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 240px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+setLayer(id, text, priority)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="125.828125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 180px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+removeLayer(id)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="137.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 192px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+compose() : string</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-146.71484375 -39 C-37.44072893780452 -39, 71.83338587439096 -39, 146.71484375 -39 M-146.71484375 -39 C-36.77894767173629 -39, 73.15694840652742 -39, 146.71484375 -39" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-146.71484375 -15 C-71.15010625150619 -15, 4.414631246987625 -15, 146.71484375 -15 M-146.71484375 -15 C-53.33081304284559 -15, 40.05321766430882 -15, 146.71484375 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-ResponseRouter-5" transform="translate(867.6171875, 723)"><g class="basic label-container"><path d="M-130.0625 -75 L130.0625 -75 L130.0625 75 L-130.0625 75" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-130.0625 -75 C-55.53204067613056 -75, 18.998418647738873 -75, 130.0625 -75 M-130.0625 -75 C-40.56485585368665 -75, 48.9327882926267 -75, 130.0625 -75 M130.0625 -75 C130.0625 -38.808892825398026, 130.0625 -2.6177856507960513, 130.0625 75 M130.0625 -75 C130.0625 -40.01255226134134, 130.0625 -5.025104522682682, 130.0625 75 M130.0625 75 C70.81852991710024 75, 11.574559834200471 75, -130.0625 75 M130.0625 75 C59.358266647594036 75, -11.345966704811929 75, -130.0625 75 M-130.0625 75 C-130.0625 35.89122454739592, -130.0625 -3.2175509052081566, -130.0625 -75 M-130.0625 75 C-130.0625 15.729652890204143, -130.0625 -43.540694219591714, -130.0625 -75" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -51)"></g><g class="label-group text" transform="translate(-64.015625, -51)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="128.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 171px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>ResponseRouter</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-118.0625, -3)"></g><g class="methods-group text" transform="translate(-118.0625, 27)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="140.96875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 195px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+attach(BaseClient)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="172.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 227px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+event(ResponseEvent)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-130.0625 -27 C-61.92847568456561 -27, 6.205548630868776 -27, 130.0625 -27 M-130.0625 -27 C-39.300674260273695 -27, 51.46115147945261 -27, 130.0625 -27" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-130.0625 -3 C-32.29696129998479 -3, 65.46857740003043 -3, 130.0625 -3 M-130.0625 -3 C-62.00172337202471 -3, 6.059053255950573 -3, 130.0625 -3" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-Agent-6" transform="translate(1203.28515625, 723)"><g class="basic label-container"><path d="M-155.60546875 -87 L155.60546875 -87 L155.60546875 87 L-155.60546875 87" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-155.60546875 -87 C-77.1561884697115 -87, 1.2930918105770104 -87, 155.60546875 -87 M-155.60546875 -87 C-41.92815197154444 -87, 71.74916480691112 -87, 155.60546875 -87 M155.60546875 -87 C155.60546875 -35.28278307152351, 155.60546875 16.434433856952978, 155.60546875 87 M155.60546875 -87 C155.60546875 -41.667126232577715, 155.60546875 3.66574753484457, 155.60546875 87 M155.60546875 87 C90.36547037644308 87, 25.12547200288617 87, -155.60546875 87 M155.60546875 87 C35.24698533884694 87, -85.11149807230612 87, -155.60546875 87 M-155.60546875 87 C-155.60546875 31.742955913537955, -155.60546875 -23.51408817292409, -155.60546875 -87 M-155.60546875 87 C-155.60546875 19.895385162812417, -155.60546875 -47.209229674375166, -155.60546875 -87" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -63)"></g><g class="label-group text" transform="translate(-22.6640625, -63)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="45.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 92px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>Agent</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-143.60546875, -15)"></g><g class="methods-group text" transform="translate(-143.60546875, 15)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="163.21875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 218px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+config() : AgentConfig</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="150.71875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 206px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+provider() : Provider</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="264.546875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 319px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+promptTemplate() : PromptTemplate</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-155.60546875 -39 C-54.18493700168244 -39, 47.235594746635115 -39, 155.60546875 -39 M-155.60546875 -39 C-86.51912548512628 -39, -17.432782220252562 -39, 155.60546875 -39" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-155.60546875 -15 C-67.20827283448891 -15, 21.188923081022182 -15, 155.60546875 -15 M-155.60546875 -15 C-54.814789086675646 -15, 45.97589057664871 -15, 155.60546875 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-AgentFactory-7" transform="translate(1379.318359375, 403)"><g class="basic label-container"><path d="M-170.078125 -87 L170.078125 -87 L170.078125 87 L-170.078125 87" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-170.078125 -87 C-68.92427463139202 -87, 32.22957573721595 -87, 170.078125 -87 M-170.078125 -87 C-63.44504924071539 -87, 43.18802651856922 -87, 170.078125 -87 M170.078125 -87 C170.078125 -26.99947121660739, 170.078125 33.00105756678522, 170.078125 87 M170.078125 -87 C170.078125 -41.287153618775264, 170.078125 4.425692762449472, 170.078125 87 M170.078125 87 C38.48071400374633 87, -93.11669699250734 87, -170.078125 87 M170.078125 87 C98.68911588529032 87, 27.30010677058064 87, -170.078125 87 M-170.078125 87 C-170.078125 23.054309563154824, -170.078125 -40.89138087369035, -170.078125 -87 M-170.078125 87 C-170.078125 49.14786088201417, -170.078125 11.295721764028343, -170.078125 -87" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -63)"></g><g class="label-group text" transform="translate(-51.5625, -63)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="103.125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 145px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>AgentFactory</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-158.078125, -15)"></g><g class="methods-group text" transform="translate(-158.078125, 15)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="158.765625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 214px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+create(name) : Agent</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="264.59375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 319px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+configByName(name) : AgentConfig</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="215.359375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 270px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+effectiveModel(name) : string</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-170.078125 -39 C-39.493026311879674 -39, 91.09207237624065 -39, 170.078125 -39 M-170.078125 -39 C-69.16933807230225 -39, 31.739448855395494 -39, 170.078125 -39" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-170.078125 -15 C-52.83453465928794 -15, 64.40905568142412 -15, 170.078125 -15 M-170.078125 -15 C-70.4932505555859 -15, 29.091623888828195 -15, 170.078125 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-AgentRouter-8" transform="translate(1563.16015625, 723)"><g class="basic label-container"><path d="M-154.26953125 -63 L154.26953125 -63 L154.26953125 63 L-154.26953125 63" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-154.26953125 -63 C-37.75135585296725 -63, 78.7668195440655 -63, 154.26953125 -63 M-154.26953125 -63 C-53.31706523468729 -63, 47.63540078062542 -63, 154.26953125 -63 M154.26953125 -63 C154.26953125 -32.125561668737376, 154.26953125 -1.251123337474759, 154.26953125 63 M154.26953125 -63 C154.26953125 -35.52697345613881, 154.26953125 -8.053946912277624, 154.26953125 63 M154.26953125 63 C31.181090113281286 63, -91.90735102343743 63, -154.26953125 63 M154.26953125 63 C91.51189843167987 63, 28.75426561335972 63, -154.26953125 63 M-154.26953125 63 C-154.26953125 33.81585709933033, -154.26953125 4.63171419866066, -154.26953125 -63 M-154.26953125 63 C-154.26953125 26.08876089857187, -154.26953125 -10.82247820285626, -154.26953125 -63" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -39)"></g><g class="label-group text" transform="translate(-48.4453125, -39)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="96.890625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 141px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>AgentRouter</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-142.26953125, 9)"></g><g class="methods-group text" transform="translate(-142.26953125, 39)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="236.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 291px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+pickAgent(roster, fileCtx) : string</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-154.26953125 -15 C-35.834557672896054 -15, 82.60041590420789 -15, 154.26953125 -15 M-154.26953125 -15 C-80.60657693979137 -15, -6.943622629582734 -15, 154.26953125 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-154.26953125 9 C-91.0962922430119 9, -27.92305323602382 9, 154.26953125 9 M-154.26953125 9 C-86.93234598082343 9, -19.595160711646855 9, 154.26953125 9" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-Provider-9" transform="translate(1203.28515625, 971)"><g class="basic label-container"><path d="M-144.51953125 -99 L144.51953125 -99 L144.51953125 99 L-144.51953125 99" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-144.51953125 -99 C-52.582264982504086 -99, 39.35500128499183 -99, 144.51953125 -99 M-144.51953125 -99 C-48.0296181933205 -99, 48.460294863358996 -99, 144.51953125 -99 M144.51953125 -99 C144.51953125 -42.463610636805825, 144.51953125 14.07277872638835, 144.51953125 99 M144.51953125 -99 C144.51953125 -31.557052377573555, 144.51953125 35.88589524485289, 144.51953125 99 M144.51953125 99 C67.05724216229882 99, -10.40504692540236 99, -144.51953125 99 M144.51953125 99 C70.2273881956757 99, -4.064754858648598 99, -144.51953125 99 M-144.51953125 99 C-144.51953125 34.85638170572575, -144.51953125 -29.287236588548495, -144.51953125 -99 M-144.51953125 99 C-144.51953125 22.714372625373812, -144.51953125 -53.571254749252375, -144.51953125 -99" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -75)"></g><g class="label-group text" transform="translate(-32.4609375, -75)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="64.921875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 110px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>Provider</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-132.51953125, -27)"></g><g class="methods-group text" transform="translate(-132.51953125, 3)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="195.203125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 250px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+capabilities() : Capabilities</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="217.453125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 272px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+prepareRequest(request, ctx)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,36)"><foreignObject width="232.578125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 287px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+sendRequest(json) : RequestID</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,60)"><foreignObject width="201.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 256px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+cancelRequest(RequestID)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-144.51953125 -51 C-65.94055997741698 -51, 12.638411295166037 -51, 144.51953125 -51 M-144.51953125 -51 C-66.37883123493651 -51, 11.761868780126974 -51, 144.51953125 -51" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-144.51953125 -27 C-73.75763948717531 -27, -2.995747724350622 -27, 144.51953125 -27 M-144.51953125 -27 C-48.40434157542103 -27, 47.71084809915794 -27, 144.51953125 -27" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-GenericProvider-10" transform="translate(1872.8046875, 723)"><g class="basic label-container"><path d="M-105.375 -60 L105.375 -60 L105.375 60 L-105.375 60" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-105.375 -60 C-34.83671741086488 -60, 35.70156517827024 -60, 105.375 -60 M-105.375 -60 C-33.50195734666191 -60, 38.37108530667618 -60, 105.375 -60 M105.375 -60 C105.375 -27.94933260957815, 105.375 4.1013347808437, 105.375 60 M105.375 -60 C105.375 -16.615881616363012, 105.375 26.768236767273976, 105.375 60 M105.375 60 C60.035536882267685 60, 14.69607376453537 60, -105.375 60 M105.375 60 C46.96507275423945 60, -11.444854491521099 60, -105.375 60 M-105.375 60 C-105.375 29.398531382066523, -105.375 -1.2029372358669548, -105.375 -60 M-105.375 60 C-105.375 12.203470038415382, -105.375 -35.593059923169236, -105.375 -60" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -36)"></g><g class="label-group text" transform="translate(-62.25, -36)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="124.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 166px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>GenericProvider</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-93.375, 12)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="124.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 180px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>-client BaseClient</p></span></div></foreignObject></g></g><g class="methods-group text" transform="translate(-93.375, 60)"></g><g class="divider" style=""><path d="M-105.375 -12 C-58.321638029355356 -12, -11.268276058710711 -12, 105.375 -12 M-105.375 -12 C-53.44521153051921 -12, -1.515423061038419 -12, 105.375 -12" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-105.375 36 C-52.09718040573348 36, 1.1806391885330356 36, 105.375 36 M-105.375 36 C-61.15208445363972 36, -16.929168907279447 36, 105.375 36" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-PromptTemplate-11" transform="translate(2157.4921875, 971)"><g class="basic label-container"><path d="M-154.2109375 -63 L154.2109375 -63 L154.2109375 63 L-154.2109375 63" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-154.2109375 -63 C-54.435288516771465 -63, 45.34036046645707 -63, 154.2109375 -63 M-154.2109375 -63 C-83.07091999731395 -63, -11.930902494627901 -63, 154.2109375 -63 M154.2109375 -63 C154.2109375 -27.725321393809878, 154.2109375 7.549357212380244, 154.2109375 63 M154.2109375 -63 C154.2109375 -34.67206569347018, 154.2109375 -6.3441313869403615, 154.2109375 63 M154.2109375 63 C80.26057280689574 63, 6.310208113791475 63, -154.2109375 63 M154.2109375 63 C41.326010185887114 63, -71.55891712822577 63, -154.2109375 63 M-154.2109375 63 C-154.2109375 37.5597520775966, -154.2109375 12.119504155193198, -154.2109375 -63 M-154.2109375 63 C-154.2109375 31.996477011471377, -154.2109375 0.9929540229427545, -154.2109375 -63" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -39)"></g><g class="label-group text" transform="translate(-62.53125, -39)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="125.0625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 167px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>PromptTemplate</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-142.2109375, 9)"></g><g class="methods-group text" transform="translate(-142.2109375, 39)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="221.890625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 276px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+buildFullRequest(request, ctx)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-154.2109375 -15 C-61.66593150925074 -15, 30.87907448149852 -15, 154.2109375 -15 M-154.2109375 -15 C-41.104341498759894 -15, 72.00225450248021 -15, 154.2109375 -15" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-154.2109375 9 C-70.28863190238967 9, 13.633673695220665 9, 154.2109375 9 M-154.2109375 9 C-60.961695348710606 9, 32.28754680257879 9, 154.2109375 9" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-JsonPromptTemplate-12" transform="translate(2167.4921875, 723)"><g class="basic label-container"><path d="M-139.3125 -72 L139.3125 -72 L139.3125 72 L-139.3125 72" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-139.3125 -72 C-79.63642379855236 -72, -19.960347597104715 -72, 139.3125 -72 M-139.3125 -72 C-62.25825533795599 -72, 14.795989324088026 -72, 139.3125 -72 M139.3125 -72 C139.3125 -23.416519207077783, 139.3125 25.166961585844433, 139.3125 72 M139.3125 -72 C139.3125 -32.279844102288685, 139.3125 7.44031179542263, 139.3125 72 M139.3125 72 C58.63380817944547 72, -22.044883641109067 72, -139.3125 72 M139.3125 72 C58.58237624303936 72, -22.147747513921274 72, -139.3125 72 M-139.3125 72 C-139.3125 26.097346500360928, -139.3125 -19.805306999278145, -139.3125 -72 M-139.3125 72 C-139.3125 21.2675547449628, -139.3125 -29.464890510074397, -139.3125 -72" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -48)"></g><g class="label-group text" transform="translate(-81.203125, -48)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="162.40625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>JsonPromptTemplate</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-127.3125, 0)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="173.421875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 228px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>-bodySpec QJsonObject</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="151.1875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 206px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>-env InjaEnvironment</p></span></div></foreignObject></g></g><g class="methods-group text" transform="translate(-127.3125, 72)"></g><g class="divider" style=""><path d="M-139.3125 -24 C-76.61662125663923 -24, -13.92074251327847 -24, 139.3125 -24 M-139.3125 -24 C-28.15729904933309 -24, 82.99790190133382 -24, 139.3125 -24" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-139.3125 48 C-64.6607668047461 48, 9.990966390507793 48, 139.3125 48 M-139.3125 48 C-51.878551293566034 48, 35.55539741286793 48, 139.3125 48" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g><g class="node default " id="classId-ToolContributorRegistry-13" transform="translate(1745.369140625, 403)"><g class="basic label-container"><path d="M-145.97265625 -75 L145.97265625 -75 L145.97265625 75 L-145.97265625 75" stroke="none" stroke-width="0" fill="#ECECFF" style=""></path><path d="M-145.97265625 -75 C-50.59752269154521 -75, 44.77761086690958 -75, 145.97265625 -75 M-145.97265625 -75 C-61.75440737688152 -75, 22.463841496236967 -75, 145.97265625 -75 M145.97265625 -75 C145.97265625 -16.041587080341003, 145.97265625 42.916825839317994, 145.97265625 75 M145.97265625 -75 C145.97265625 -28.279809726288228, 145.97265625 18.440380547423544, 145.97265625 75 M145.97265625 75 C32.23111472200644 75, -81.51042680598712 75, -145.97265625 75 M145.97265625 75 C74.82146292941066 75, 3.6702696088213145 75, -145.97265625 75 M-145.97265625 75 C-145.97265625 40.3267867624927, -145.97265625 5.653573524985404, -145.97265625 -75 M-145.97265625 75 C-145.97265625 25.880935569916367, -145.97265625 -23.238128860167265, -145.97265625 -75" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="annotation-group text" transform="translate(0, -51)"></g><g class="label-group text" transform="translate(-92.2890625, -51)"><g class="label" style="font-weight: bolder" transform="translate(0,-12)"><foreignObject width="184.578125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 217px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>ToolContributorRegistry</p></span></div></foreignObject></g></g><g class="members-group text" transform="translate(-133.97265625, -3)"></g><g class="methods-group text" transform="translate(-133.97265625, 27)"><g class="label" style="" transform="translate(0,-12)"><foreignObject width="165.84375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 220px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+registerContributor(fn)</p></span></div></foreignObject></g><g class="label" style="" transform="translate(0,12)"><foreignObject width="175.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 230px; text-align: center;"><span class="nodeLabel markdown-node-label" style=""><p>+applyTo(ToolsManager)</p></span></div></foreignObject></g></g><g class="divider" style=""><path d="M-145.97265625 -27 C-41.612184177423714 -27, 62.74828789515257 -27, 145.97265625 -27 M-145.97265625 -27 C-58.90269318861709 -27, 28.167269872765814 -27, 145.97265625 -27" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g><g class="divider" style=""><path d="M-145.97265625 -3 C-38.335521041776104 -3, 69.30161416644779 -3, 145.97265625 -3 M-145.97265625 -3 C-87.13119829911906 -3, -28.28974034823814 -3, 145.97265625 -3" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""></path></g></g></g></g></g></svg> |