File size: 30,342 Bytes
d4ea4e5
1
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="1130px" preserveAspectRatio="none" style="width:1111px;height:1130px;background:#FFFFFF;" version="1.1" viewBox="0 0 1111 1130" width="1111px" zoomAndPan="magnify"><defs/><g><!--class TaskPrompt--><g class="entity" data-entity="TaskPrompt" data-source-line="86" data-uid="ent0002" id="entity_TaskPrompt"><rect fill="#F1F1F1" height="64.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="113.0879" x="576.56" y="7"/><ellipse cx="591.56" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M594.0331,29.1431 Q593.4521,29.4419 592.8129,29.5913 Q592.1738,29.7407 591.4682,29.7407 Q588.9614,29.7407 587.6415,28.0889 Q586.3217,26.437 586.3217,23.3159 Q586.3217,20.1865 587.6415,18.5347 Q588.9614,16.8828 591.4682,16.8828 Q592.1738,16.8828 592.8212,17.0322 Q593.4687,17.1816 594.0331,17.4805 L594.0331,20.2031 Q593.4023,19.6221 592.8088,19.3523 Q592.2153,19.0825 591.5844,19.0825 Q590.2397,19.0825 589.5549,20.1492 Q588.8701,21.2158 588.8701,23.3159 Q588.8701,25.4077 589.5549,26.4744 Q590.2397,27.541 591.5844,27.541 Q592.2153,27.541 592.8088,27.2712 Q593.4023,27.0015 594.0331,26.4204 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81.0879" x="605.56" y="28.291">TaskPrompt</text><line style="stroke:#181818;stroke-width:0.5;" x1="577.56" x2="688.6479" y1="39" y2="39"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="61.9199" x="582.56" y="56.5352">-text: str</text><line style="stroke:#181818;stroke-width:0.5;" x1="577.56" x2="688.6479" y1="63.4883" y2="63.4883"/></g><!--class MCPToolSpec--><g class="entity" data-entity="MCPToolSpec" data-source-line="90" data-uid="ent0003" id="entity_MCPToolSpec"><rect fill="#F1F1F1" height="146.9297" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="158.084" x="294.06" y="976.28"/><ellipse cx="324.8909" cy="992.28" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M327.364,998.4231 Q326.7829,998.7219 326.1438,998.8713 Q325.5046,999.0207 324.7991,999.0207 Q322.2922,999.0207 320.9724,997.3689 Q319.6526,995.717 319.6526,992.5959 Q319.6526,989.4665 320.9724,987.8147 Q322.2922,986.1628 324.7991,986.1628 Q325.5046,986.1628 326.1521,986.3122 Q326.7996,986.4616 327.364,986.7605 L327.364,989.4831 Q326.7331,988.9021 326.1396,988.6323 Q325.5461,988.3625 324.9153,988.3625 Q323.5705,988.3625 322.8857,989.4292 Q322.2009,990.4958 322.2009,992.5959 Q322.2009,994.6877 322.8857,995.7544 Q323.5705,996.821 324.9153,996.821 Q325.5461,996.821 326.1396,996.5512 Q326.7331,996.2815 327.364,995.7004 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="90.9043" x="342.4088" y="997.571">MCPToolSpec</text><line style="stroke:#181818;stroke-width:0.5;" x1="295.06" x2="451.144" y1="1008.28" y2="1008.28"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72.3516" x="300.06" y="1025.8152">-name: str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136.2949" x="300.06" y="1042.3034">-input_schema: dict</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="146.084" x="300.06" y="1058.7917">-output_schema: dict</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111.1387" x="300.06" y="1075.28">-description: str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124.291" x="300.06" y="1091.7683">-pseudo_code: str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113.8457" x="300.06" y="1108.2566">-source_hint: str</text><line style="stroke:#181818;stroke-width:0.5;" x1="295.06" x2="451.144" y1="1115.2097" y2="1115.2097"/></g><!--class MCPExecutionResult--><g class="entity" data-entity="MCPExecutionResult" data-source-line="99" data-uid="ent0004" id="entity_MCPExecutionResult"><rect fill="#F1F1F1" height="113.9531" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="169.6484" x="491.28" y="785.33"/><ellipse cx="506.28" cy="801.33" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M508.7531,807.4731 Q508.1721,807.7719 507.5329,807.9213 Q506.8938,808.0707 506.1882,808.0707 Q503.6814,808.0707 502.3615,806.4189 Q501.0417,804.767 501.0417,801.6459 Q501.0417,798.5165 502.3615,796.8647 Q503.6814,795.2128 506.1882,795.2128 Q506.8938,795.2128 507.5412,795.3622 Q508.1887,795.5116 508.7531,795.8105 L508.7531,798.5331 Q508.1223,797.9521 507.5288,797.6823 Q506.9353,797.4125 506.3044,797.4125 Q504.9597,797.4125 504.2749,798.4792 Q503.5901,799.5458 503.5901,801.6459 Q503.5901,803.7377 504.2749,804.8044 Q504.9597,805.871 506.3044,805.871 Q506.9353,805.871 507.5288,805.6012 Q508.1223,805.3315 508.7531,804.7504 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="137.6484" x="520.28" y="806.621">MCPExecutionResult</text><line style="stroke:#181818;stroke-width:0.5;" x1="492.28" x2="659.9284" y1="817.33" y2="817.33"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.2578" x="497.28" y="834.8652">-success: bool</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="87.4863" x="497.28" y="851.3534">-output: dict</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63.5742" x="497.28" y="867.8417">-logs: str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="135.0508" x="497.28" y="884.33">-error_message: str</text><line style="stroke:#181818;stroke-width:0.5;" x1="492.28" x2="659.9284" y1="891.2831" y2="891.2831"/></g><!--class ToolCall--><g class="entity" data-entity="ToolCall" data-source-line="106" data-uid="ent0005" id="entity_ToolCall"><rect fill="#F1F1F1" height="97.4648" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="126.208" x="7" y="388.91"/><ellipse cx="39.3689" cy="404.91" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M41.8421,411.0531 Q41.261,411.3519 40.6219,411.5013 Q39.9827,411.6507 39.2771,411.6507 Q36.7703,411.6507 35.4505,409.9989 Q34.1307,408.347 34.1307,405.2259 Q34.1307,402.0965 35.4505,400.4447 Q36.7703,398.7928 39.2771,398.7928 Q39.9827,398.7928 40.6302,398.9422 Q41.2776,399.0916 41.8421,399.3905 L41.8421,402.1131 Q41.2112,401.5321 40.6177,401.2623 Q40.0242,400.9925 39.3934,400.9925 Q38.0486,400.9925 37.3638,402.0592 Q36.679,403.1258 36.679,405.2259 Q36.679,407.3177 37.3638,408.3844 Q38.0486,409.451 39.3934,409.451 Q40.0242,409.451 40.6177,409.1812 Q41.2112,408.9115 41.8421,408.3304 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55.6104" x="57.2287" y="410.201">ToolCall</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="132.208" y1="420.91" y2="420.91"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105.834" x="13" y="438.4452">-tool_name: str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.208" x="13" y="454.9334">-input_data: dict</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80.8623" x="13" y="471.4217">-result: dict</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="132.208" y1="478.3748" y2="478.3748"/></g><!--class ManagerAgent--><g class="entity" data-entity="ManagerAgent" data-source-line="114" data-uid="ent0006" id="entity_ManagerAgent"><rect fill="#F1F1F1" height="163.418" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="410.0156" x="428.1" y="148.49"/><ellipse cx="579.5673" cy="164.49" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M582.0404,170.6331 Q581.4594,170.9319 580.8202,171.0813 Q580.1811,171.2307 579.4755,171.2307 Q576.9687,171.2307 575.6488,169.5789 Q574.329,167.927 574.329,164.8059 Q574.329,161.6765 575.6488,160.0247 Q576.9687,158.3728 579.4755,158.3728 Q580.1811,158.3728 580.8285,158.5222 Q581.476,158.6716 582.0404,158.9705 L582.0404,161.6931 Q581.4096,161.1121 580.8161,160.8423 Q580.2226,160.5725 579.5917,160.5725 Q578.247,160.5725 577.5622,161.6392 Q576.8773,162.7058 576.8773,164.8059 Q576.8773,166.8977 577.5622,167.9644 Q578.247,169.031 579.5917,169.031 Q580.2226,169.031 580.8161,168.7612 Q581.4096,168.4915 582.0404,167.9104 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98.5811" x="600.0673" y="169.781">ManagerAgent</text><line style="stroke:#181818;stroke-width:0.5;" x1="429.1" x2="837.1156" y1="180.49" y2="180.49"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="222.2979" x="434.1" y="198.0252">-brainstormer: MCPBrainstormer</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="158.2451" x="434.1" y="214.5134">-web_agent: WebAgent</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="188.9658" x="434.1" y="231.0017">-generator: ScriptGenerator</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="145.626" x="434.1" y="247.49">-runner: CodeRunner</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="153.0088" x="434.1" y="263.9783">-registry: MCPRegistry</text><line style="stroke:#181818;stroke-width:0.5;" x1="429.1" x2="837.1156" y1="270.9314" y2="270.9314"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="252.957" x="434.1" y="288.4666">+run_task(prompt: TaskPrompt): dict</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="398.0156" x="434.1" y="304.9548">+check_existing_tool(spec: MCPToolSpec) -&gt; Optional[str]</text></g><!--class MCPBrainstormer--><g class="entity" data-entity="MCPBrainstormer" data-source-line="124" data-uid="ent0007" id="entity_MCPBrainstormer"><rect fill="#F1F1F1" height="64.4883" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="393.124" x="168.54" y="405.4"/><ellipse cx="302.3364" cy="421.4" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M304.8095,427.5431 Q304.2285,427.8419 303.5893,427.9913 Q302.9502,428.1407 302.2446,428.1407 Q299.7378,428.1407 298.4179,426.4889 Q297.0981,424.837 297.0981,421.7159 Q297.0981,418.5865 298.4179,416.9347 Q299.7378,415.2828 302.2446,415.2828 Q302.9502,415.2828 303.5976,415.4322 Q304.2451,415.5816 304.8095,415.8805 L304.8095,418.6031 Q304.1787,418.0221 303.5852,417.7523 Q302.9917,417.4825 302.3608,417.4825 Q301.0161,417.4825 300.3313,418.5492 Q299.6464,419.6158 299.6464,421.7159 Q299.6464,423.8077 300.3313,424.8744 Q301.0161,425.941 302.3608,425.941 Q302.9917,425.941 303.5852,425.6712 Q304.1787,425.4015 304.8095,424.8204 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="117.0313" x="322.8364" y="426.691">MCPBrainstormer</text><line style="stroke:#181818;stroke-width:0.5;" x1="169.54" x2="560.664" y1="437.4" y2="437.4"/><line style="stroke:#181818;stroke-width:0.5;" x1="169.54" x2="560.664" y1="445.4" y2="445.4"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="381.124" x="174.54" y="462.9352">+brainstorm(prompt: TaskPrompt): List&lt;MCPToolSpec&gt;</text></g><!--class WebAgent--><g class="entity" data-entity="WebAgent" data-source-line="128" data-uid="ent0008" id="entity_WebAgent"><rect fill="#F1F1F1" height="80.9766" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="251.8867" x="597.16" y="397.15"/><ellipse cx="684.5028" cy="413.15" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M686.9759,419.2931 Q686.3949,419.5919 685.7557,419.7413 Q685.1165,419.8907 684.411,419.8907 Q681.9041,419.8907 680.5843,418.2389 Q679.2645,416.587 679.2645,413.4659 Q679.2645,410.3365 680.5843,408.6847 Q681.9041,407.0328 684.411,407.0328 Q685.1165,407.0328 685.764,407.1822 Q686.4115,407.3316 686.9759,407.6305 L686.9759,410.3531 Q686.3451,409.7721 685.7516,409.5023 Q685.158,409.2325 684.5272,409.2325 Q683.1825,409.2325 682.4976,410.2992 Q681.8128,411.3658 681.8128,413.4659 Q681.8128,415.5577 682.4976,416.6244 Q683.1825,417.691 684.5272,417.691 Q685.158,417.691 685.7516,417.4212 Q686.3451,417.1515 686.9759,416.5704 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="68.7012" x="705.0028" y="418.441">WebAgent</text><line style="stroke:#181818;stroke-width:0.5;" x1="598.16" x2="848.0467" y1="429.15" y2="429.15"/><line style="stroke:#181818;stroke-width:0.5;" x1="598.16" x2="848.0467" y1="437.15" y2="437.15"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="207.9561" x="603.16" y="454.6852">+search_github(query: str): str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="239.8867" x="603.16" y="471.1734">+retrieve_readme(repo_url: str): str</text></g><!--class ScriptGenerator--><g class="entity" data-entity="ScriptGenerator" data-source-line="133" data-uid="ent0009" id="entity_ScriptGenerator"><rect fill="#F1F1F1" height="80.9766" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="325.2568" x="210.48" y="674.35"/><ellipse cx="315.8765" cy="690.35" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M318.3496,696.4931 Q317.7686,696.7919 317.1294,696.9413 Q316.4903,697.0907 315.7847,697.0907 Q313.2779,697.0907 311.958,695.4389 Q310.6382,693.787 310.6382,690.6659 Q310.6382,687.5365 311.958,685.8847 Q313.2779,684.2328 315.7847,684.2328 Q316.4903,684.2328 317.1377,684.3822 Q317.7852,684.5316 318.3496,684.8305 L318.3496,687.5531 Q317.7188,686.9721 317.1253,686.7023 Q316.5318,686.4325 315.9009,686.4325 Q314.5562,686.4325 313.8714,687.4992 Q313.1865,688.5658 313.1865,690.6659 Q313.1865,692.7577 313.8714,693.8244 Q314.5562,694.891 315.9009,694.891 Q316.5318,694.891 317.1253,694.6212 Q317.7188,694.3515 318.3496,693.7704 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105.9639" x="336.3765" y="695.641">ScriptGenerator</text><line style="stroke:#181818;stroke-width:0.5;" x1="211.48" x2="534.7368" y1="706.35" y2="706.35"/><line style="stroke:#181818;stroke-width:0.5;" x1="211.48" x2="534.7368" y1="714.35" y2="714.35"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="276.7734" x="216.48" y="731.8852">+generate_code(spec: MCPToolSpec): str</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="313.2568" x="216.48" y="748.3734">+generate_env_script(spec: MCPToolSpec): str</text></g><!--class CodeRunner--><g class="entity" data-entity="CodeRunner" data-source-line="138" data-uid="ent0010" id="entity_CodeRunner"><rect fill="#F1F1F1" height="80.9766" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="297.2432" x="427.48" y="563.37"/><ellipse cx="530.1797" cy="579.37" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M532.6529,585.5131 Q532.0718,585.8119 531.4326,585.9613 Q530.7935,586.1107 530.0879,586.1107 Q527.5811,586.1107 526.2613,584.4589 Q524.9414,582.807 524.9414,579.6859 Q524.9414,576.5565 526.2613,574.9047 Q527.5811,573.2528 530.0879,573.2528 Q530.7935,573.2528 531.4409,573.4022 Q532.0884,573.5516 532.6529,573.8505 L532.6529,576.5731 Q532.022,575.9921 531.4285,575.7223 Q530.835,575.4525 530.2041,575.4525 Q528.8594,575.4525 528.1746,576.5192 Q527.4898,577.5858 527.4898,579.6859 Q527.4898,581.7777 528.1746,582.8444 Q528.8594,583.911 530.2041,583.911 Q530.835,583.911 531.4285,583.6412 Q532.022,583.3715 532.6529,582.7904 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.3438" x="550.6797" y="584.661">CodeRunner</text><line style="stroke:#181818;stroke-width:0.5;" x1="428.48" x2="723.7232" y1="595.37" y2="595.37"/><line style="stroke:#181818;stroke-width:0.5;" x1="428.48" x2="723.7232" y1="603.37" y2="603.37"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="284.915" x="433.48" y="620.9052">+execute(script: str): MCPExecutionResult</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="285.2432" x="433.48" y="637.3934">+setup_environment(env_script: str): bool</text></g><!--class MCPRegistry--><g class="entity" data-entity="MCPRegistry" data-source-line="143" data-uid="ent0011" id="entity_MCPRegistry"><rect fill="#F1F1F1" height="97.4648" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="408.1357" x="696.04" y="793.57"/><ellipse cx="853.6938" cy="809.57" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M856.167,815.7131 Q855.5859,816.0119 854.9467,816.1613 Q854.3076,816.3107 853.602,816.3107 Q851.0952,816.3107 849.7754,814.6589 Q848.4555,813.007 848.4555,809.8859 Q848.4555,806.7565 849.7754,805.1047 Q851.0952,803.4528 853.602,803.4528 Q854.3076,803.4528 854.955,803.6022 Q855.6025,803.7516 856.167,804.0505 L856.167,806.7731 Q855.5361,806.1921 854.9426,805.9223 Q854.3491,805.6525 853.7182,805.6525 Q852.3735,805.6525 851.6887,806.7192 Q851.0039,807.7858 851.0039,809.8859 Q851.0039,811.9777 851.6887,813.0444 Q852.3735,814.111 853.7182,814.111 Q854.3491,814.111 854.9426,813.8412 Q855.5361,813.5715 856.167,812.9904 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.3281" x="874.1938" y="814.861">MCPRegistry</text><line style="stroke:#181818;stroke-width:0.5;" x1="697.04" x2="1103.1757" y1="825.57" y2="825.57"/><line style="stroke:#181818;stroke-width:0.5;" x1="697.04" x2="1103.1757" y1="833.57" y2="833.57"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="396.1357" x="702.04" y="851.1052">+register_tool(spec: MCPToolSpec, endpoint_url: str): void</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="227.2266" x="702.04" y="867.5934">+list_tools(): List&lt;MCPToolSpec&gt;</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="180.8926" x="702.04" y="884.0817">+call_tool(tool: str): object</text></g><!--link TaskPrompt to ManagerAgent--><g class="link" data-entity-1="TaskPrompt" data-entity-2="ManagerAgent" data-source-line="154" data-uid="lnk12" id="link_TaskPrompt_ManagerAgent"><path codeLine="154" d="M633.1,71.87 C633.1,92.78 633.1,115.2 633.1,142.14" fill="none" id="TaskPrompt-to-ManagerAgent" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="633.1,148.14,637.1,139.14,633.1,143.14,629.1,139.14,633.1,148.14" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="93.7422" x="634.1" y="115.0584">provides query</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="624.7529" y="137.7458">1</text></g><!--link ManagerAgent to MCPBrainstormer--><g class="link" data-entity-1="ManagerAgent" data-entity-2="MCPBrainstormer" data-source-line="157" data-uid="lnk13" id="link_ManagerAgent_MCPBrainstormer"><path codeLine="157" d="M527.18,312.4 C484.9,344.81 443.4719,376.5698 411.2619,401.2598" fill="none" id="ManagerAgent-to-MCPBrainstormer" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="406.5,404.91,416.0764,402.6094,410.4683,401.8682,411.2095,396.2601,406.5,404.91" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="27.9805" x="484.06" y="355.4784">calls</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="405.8844" y="394.5878">1</text></g><!--link ManagerAgent to WebAgent--><g class="link" data-entity-1="ManagerAgent" data-entity-2="WebAgent" data-source-line="160" data-uid="lnk14" id="link_ManagerAgent_WebAgent"><path codeLine="160" d="M671.0789,317.8952 C683.8089,346.9352 692.7723,367.4043 703.2823,391.3943" fill="none" id="ManagerAgent-WebAgent" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="668.67,312.4,668.6199,322.2487,670.6774,316.9793,675.9468,319.0369,668.67,312.4" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="705.69,396.89,705.7423,387.0413,703.6836,392.3102,698.4147,390.2515,705.69,396.89" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="104.3364" x="689.81" y="355.4784">queries/answers</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="663.2929" y="332.4096">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="694.1616" y="386.493">1</text></g><!--link MCPBrainstormer to ScriptGenerator--><g class="link" data-entity-1="MCPBrainstormer" data-entity-2="ScriptGenerator" data-source-line="163" data-uid="lnk15" id="link_MCPBrainstormer_ScriptGenerator"><path codeLine="163" d="M366.02,470.21 C367.49,520.61 370.1757,613.1725 371.7757,668.2325" fill="none" id="MCPBrainstormer-to-ScriptGenerator" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="371.95,674.23,375.6869,665.1176,371.8048,669.2321,367.6903,665.35,371.95,674.23" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="33.814" x="368.76" y="529.9384">plans</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="363.0823" y="663.5564">1</text></g><!--link MCPBrainstormer to CodeRunner--><g class="link" data-entity-1="MCPBrainstormer" data-entity-2="CodeRunner" data-source-line="164" data-uid="lnk16" id="link_MCPBrainstormer_CodeRunner"><path codeLine="164" d="M405.79,470.31 C439.8,496.78 483.7449,530.9851 520.3549,559.4751" fill="none" id="MCPBrainstormer-to-CodeRunner" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="525.09,563.16,520.4439,554.4759,521.1441,560.0893,515.5307,560.7894,525.09,563.16" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.5166" x="484.24" y="529.9384">validates</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="507.9969" y="552.7712">1</text></g><!--link ManagerAgent to MCPRegistry--><g class="link" data-entity-1="ManagerAgent" data-entity-2="MCPRegistry" data-source-line="167" data-uid="lnk17" id="link_ManagerAgent_MCPRegistry"><path codeLine="167" d="M797,312.3 C824.58,333.39 849.58,358.84 866.1,388.91 C938.26,520.24 922.8473,700.2875 909.7073,787.1675" fill="none" id="ManagerAgent-to-MCPRegistry" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="908.81,793.1,914.1109,784.7994,909.5577,788.1562,906.2009,783.603,908.81,793.1" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="100.0137" x="913.02" y="529.9384">checks/updates</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="901.4867" y="782.7164">1</text></g><!--link ManagerAgent to ToolCall--><g class="link" data-entity-1="ManagerAgent" data-entity-2="ToolCall" data-source-line="170" data-uid="lnk18" id="link_ManagerAgent_ToolCall"><path codeLine="170" d="M427.72,287.67 C340.77,314.31 239.36,349.03 151.1,388.91 C145.3,391.53 144.6973,391.6614 138.8373,394.7514" fill="none" id="ManagerAgent-to-ToolCall" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="133.53,397.55,143.3567,396.8904,137.9528,395.2178,139.6253,389.8139,133.53,397.55" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="45.1318" x="254.74" y="355.4784">creates</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="22.7119" x="141.2419" y="390.2264">0..*</text></g><!--link MCPBrainstormer to MCPToolSpec--><g class="link" data-entity-1="MCPBrainstormer" data-entity-2="MCPToolSpec" data-source-line="173" data-uid="lnk19" id="link_MCPBrainstormer_MCPToolSpec"><path codeLine="173" d="M315.92,470.34 C239.73,523.81 105.91,637.67 146.1,755.33 C175.41,841.11 236.9291,916.9565 290.1491,971.7365" fill="none" id="MCPBrainstormer-to-MCPToolSpec" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="294.33,976.04,290.9276,966.7975,290.8459,972.4538,285.1896,972.3721,294.33,976.04" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="45.5063" x="147.1" y="719.9084">returns</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="22.7119" x="263.5281" y="965.63">1..*</text></g><!--link ScriptGenerator to MCPToolSpec--><g class="link" data-entity-1="ScriptGenerator" data-entity-2="MCPToolSpec" data-source-line="176" data-uid="lnk20" id="link_ScriptGenerator_MCPToolSpec"><path codeLine="176" d="M373.1,755.66 C373.1,809.94 373.1,902.12 373.1,969.79" fill="none" id="ScriptGenerator-to-MCPToolSpec" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="373.1,975.79,377.1,966.79,373.1,970.79,369.1,966.79,373.1,975.79" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="63.4131" x="374.1" y="847.3684">consumes</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="364.7291" y="965.6095">1</text></g><!--link MCPRegistry to MCPToolSpec--><g class="link" data-entity-1="MCPRegistry" data-entity-2="MCPToolSpec" data-source-line="179" data-uid="lnk21" id="link_MCPRegistry_MCPToolSpec"><path codeLine="179" d="M776.55,891.47 C676.45,930.49 544.0001,982.1203 458.1101,1015.6103" fill="none" id="MCPRegistry-to-MCPToolSpec" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="452.52,1017.79,462.3582,1018.2472,457.1784,1015.9736,459.452,1010.7938,452.52,1017.79" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="38.6636" x="669.16" y="942.8484">stores</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="22.7119" x="460.0372" y="1012.1039">0..*</text></g><!--link CodeRunner to MCPExecutionResult--><g class="link" data-entity-1="CodeRunner" data-entity-2="MCPExecutionResult" data-source-line="182" data-uid="lnk22" id="link_CodeRunner_MCPExecutionResult"><path codeLine="182" d="M576.1,644.7 C576.1,683.13 576.1,735.68 576.1,778.89" fill="none" id="CodeRunner-to-MCPExecutionResult" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="576.1,784.89,580.1,775.89,576.1,779.89,572.1,775.89,576.1,784.89" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="45.5063" x="577.1" y="719.9084">returns</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8.2202" x="567.6254" y="774.5656">1</text></g><!--link CodeRunner to MCPRegistry--><g class="link" data-entity-1="CodeRunner" data-entity-2="MCPRegistry" data-source-line="185" data-uid="lnk23" id="link_CodeRunner_MCPRegistry"><path codeLine="185" d="M630.7,644.7 C686.79,685.63 769.2933,745.8432 829.2333,789.5832" fill="none" id="CodeRunner-to-MCPRegistry" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="834.08,793.12,829.1678,784.5836,830.041,790.1727,824.452,791.0459,834.08,793.12" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="46.4395" x="777.65" y="719.9084">queries</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="22.7119" x="801.298" y="782.7392">0..*</text></g><!--SRC=[TLRDRjms4BxhAGXVigxh9BqASO3KA8e22HhO0Nee0e4h3TQi9PBbpsRJea1VezTU2Z_7lacV91yfYgAKNSCm975clfbllXdQFWgfkU43QtjkxHldZDXwHp-rIjwBFuYzhAfdxERcXjs6SxAi8zOfAOzFUCRtAlgn3zm-lZTgq8xzMJ7yN3D71rSpwqprLvMitjs-_w1KVw-fpMQI3pIQZU_8nxl6jWyqy9fredNfG7btvgGZsngXdL2oZAGj-KurhUeM05PvqrBp8EI9z7uuKEj3e3kolf-BiRvjoTgQRP7_8g559htQsHABZ56c6U39TxH22qpSyhwF6A0Bhqr9naH5nzrSxZKpCR7q0S5IUzxiI3hBj16o5PhxGz6STrm2taIJND7MS26jKsOWKuVIloy-99jFj6ruyAhPBxID_ka4ZsGuZ6js7xd_SVgG38oNCWI-1VjtyNawe9r0WPyZvbrwYMTNmQbnKD96HodLXQmk2vwl63JGFZPqWBEGkoPmjx5GLLrAx99TlsO_Hrdm_bV0V5oqkgmtiN9Li78wXxT0V5LWl9v3JWpbM9QuQH-QdN0FVhlvtLCe6cbSpWf1oOI9epqrXdWtqCQGLeqtVMcP8LPKPwJK3OfQFq542PXjIUwRSMxEUcJWkOiPa-Aa02s6cDBzUeGo6SxhW2cCaWDesipuatEShR95apmow2WUCcSw_YqZsMc5oIuft2lH9VyUtj7NRausCwaBKpaYX3zJ6BNzZTB8fPcxevw7GYtZUsmqzrbZ9mPtqmb8JhZZqxWZOV-MfZ544SV_b73CIsBk-2-qpC0NKaDNlAcALNeD0LzyTx4Su1f3hlO2Iuz5JONeKsYkDVKzCVmkndaH84TTpK0T2xTbl34lcgT_4IW4UJL5o_AlOrg2x0ikxISoCU02QCfoBMTovRfOfpS1hRt0Hm-ai_Q5Tg45j0KBbHPLuguBIYLiT0WeBIXSSuWQcCnBwXoBMQRrk9Zi2wzFWZZZOzzZngnx5ebWtVz__wC2q_O4mildpx-vcEyA861HfD2BSh58SB51Ka4OXQZFy1B3blTn7I8WG8oyvdZIGUcW0STsnoVyAs3GhhLBmK-14QaUnlGpRINdD5wCmJosD1iLR2n3Xhh6W4Md3RQB4XIuDfX2T9Sx44w7uzEudAh2k4XrVVylM2bSD7atiM9YrcC7vrg0-XL6JhzGJ1gMgle2]--></g></svg>