25771a0c33
ci / JVM build + tests (push) Failing after 1m57s
PlantUML diagrams for future agent architecture (Android, multi-user chat, sub-agents, A2A): - 01-module-layers.md — целевая модульная структура - 02-agent-composition.md — AgentBuilder DSL + MemoryBackend.exposesTools() - 03-multi-user-chat.md — mention-detection sequence - 04-sub-agents.md — spawnChild + Flow<SubAgentEvent> + A2A - 05-android-stack.md — что меняется на Android vs Standalone Каждый .md включает пред-рендеренный SVG (показывается во всех markdown viewers без PlantUML plugin) + PlantUML source в code block (для редактирования). SVG нужен потому что PlantUML требует Graphviz dot для рендеринга — без него IntelliJ/VSCode выдают ошибку. Регенерация SVG после правки PlantUML-source: docker run --rm -v "$PWD:/work" plantuml/plantuml -tsvg /work/docs/diagrams/*.md
1 line
38 KiB
XML
1 line
38 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" data-diagram-type="DESCRIPTION" style="width:2204px;height:752px;background:#FFFFFF;" width="2204px" height="752px" viewBox="0 0 2204 752" zoomAndPan="magnify" preserveAspectRatio="none" contentStyleType="text/css"><?plantuml 1.2026.8?><defs/><g font-family="sans-serif" lengthAdjust="spacing"><g class="title" data-source-line="12"><text x="913.779" y="22.995" fill="#000" font-size="14" textLength="369.441" font-weight="700">agentik — слои модулей (целевое состояние)</text></g><!--cluster Applications\n(entry points, тонкие)--><g class="cluster" data-qualified-name="Applications.n.entry points. ......." id="ent0001" data-source-line="15"><rect x="1066" y="44.297" width="458" height="119.59" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1246.185" y="59.292" fill="#000" font-size="14" textLength="97.631" font-weight="700">Applications</text><text x="1207.155" y="75.589" fill="#000" font-size="14" textLength="175.69" font-weight="700">(entry points, тонкие)</text></g><!--cluster Agent Runtime\n(композиция, lifecycle)--><g class="cluster" data-qualified-name="Agent Runtime.n............ lifecycle." id="ent0005" data-source-line="22"><rect x="1058" y="187.887" width="201" height="263.19" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1099.414" y="202.882" fill="#000" font-size="14" textLength="118.173" font-weight="700">Agent Runtime</text><text x="1065.917" y="219.179" fill="#000" font-size="14" textLength="185.165" font-weight="700">(композиция, lifecycle)</text></g><!--cluster Background Work\n(event-driven triggers)--><g class="cluster" data-qualified-name="Background Work.n.event-driven triggers." id="ent0008" data-source-line="28"><rect x="1088" y="475.077" width="206" height="263.19" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1120.812" y="490.072" fill="#000" font-size="14" textLength="140.376" font-weight="700">Background Work</text><text x="1100.13" y="506.369" fill="#000" font-size="14" textLength="181.74" font-weight="700">(event-driven triggers)</text></g><!--cluster Domain Logic\n(generic tools)--><g class="cluster" data-qualified-name="Domain Logic.n.generic tools." id="ent0011" data-source-line="34"><rect x="459" y="475.077" width="565" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="688.214" y="490.072" fill="#000" font-size="14" textLength="106.572" font-weight="700">Domain Logic</text><text x="683.644" y="506.369" fill="#000" font-size="14" textLength="115.712" font-weight="700">(generic tools)</text></g><!--cluster StoragePkg--><g class="cluster" data-qualified-name="StoragePkg" id="ent0015" data-source-line="41"><rect x="1356" y="475.077" width="140" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1394.869" y="490.072" fill="#000" font-size="14" textLength="62.262" font-weight="700">Storage</text><text x="1370.325" y="506.369" fill="#000" font-size="14" textLength="111.351" font-weight="700">(abstractions)</text></g><!--cluster Storage\n(JVM impls)--><g class="cluster" data-qualified-name="Storage.n.JVM impls." id="ent0017" data-source-line="45"><rect x="1336" y="331.487" width="322" height="119.59" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1465.869" y="346.482" fill="#000" font-size="14" textLength="62.262" font-weight="700">Storage</text><text x="1451.907" y="362.779" fill="#000" font-size="14" textLength="90.187" font-weight="700">(JVM impls)</text></g><!--cluster Storage\n(Android impl)--><g class="cluster" data-qualified-name="Storage.n.Android impl." id="ent0020" data-source-line="50"><rect x="1283" y="187.887" width="200" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1351.869" y="202.882" fill="#000" font-size="14" textLength="62.262" font-weight="700">Storage</text><text x="1325.978" y="219.179" fill="#000" font-size="14" textLength="114.044" font-weight="700">(Android impl)</text></g><!--cluster Memory\n(abstractions)--><g class="cluster" data-qualified-name="Memory.n.abstractions." id="ent0022" data-source-line="55"><rect x="1858" y="475.077" width="260" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1956.168" y="490.072" fill="#000" font-size="14" textLength="63.663" font-weight="700">Memory</text><text x="1932.325" y="506.369" fill="#000" font-size="14" textLength="111.351" font-weight="700">(abstractions)</text></g><!--cluster Memory\n(impls)--><g class="cluster" data-qualified-name="Memory.n.impls." id="ent0024" data-source-line="59"><rect x="1679" y="187.887" width="511" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1902.668" y="202.882" fill="#000" font-size="14" textLength="63.663" font-weight="700">Memory</text><text x="1906.832" y="219.179" fill="#000" font-size="14" textLength="55.337" font-weight="700">(impls)</text></g><!--cluster LLM\n(abstractions)--><g class="cluster" data-qualified-name="LLM.n.abstractions." id="ent0028" data-source-line="66"><rect x="368" y="618.677" width="176" height="119.59" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="440.113" y="633.672" fill="#000" font-size="14" textLength="31.773" font-weight="700">LLM</text><text x="400.325" y="649.969" fill="#000" font-size="14" textLength="111.351" font-weight="700">(abstractions)</text></g><!--cluster LLM\n(impls)--><g class="cluster" data-qualified-name="LLM.n.impls." id="ent0030" data-source-line="70"><rect x="7" y="475.077" width="428" height="119.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="205.113" y="490.072" fill="#000" font-size="14" textLength="31.773" font-weight="700">LLM</text><text x="193.332" y="506.369" fill="#000" font-size="14" textLength="55.337" font-weight="700">(impls)</text></g><!--cluster Inter-app--><g class="cluster" data-qualified-name="Inter-app" id="ent0034" data-source-line="77"><rect x="1520" y="491.077" width="314" height="103.6" fill="none" style="stroke:#181818;stroke-width:1;" rx="2.5" ry="2.5"/><text x="1640.216" y="506.072" fill="#000" font-size="14" textLength="73.568" font-weight="700">Inter-app</text></g><!--entity Standalone--><g class="entity" data-qualified-name="Applications.n.entry points. ........Standalone" id="ent0002" data-source-line="16"><rect x="1202.28" y="95.297" width="147.449" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1212.28" y="118.292" fill="#000" font-size="14" textLength="79.235">Standalone</text><text x="1212.28" y="134.589" fill="#000" font-size="14" textLength="127.449">HTTP+AG-UI+A2A</text></g><!--entity Cli--><g class="entity" data-qualified-name="Applications.n.entry points. ........Cli" id="ent0003" data-source-line="17"><rect x="1081.5" y="95.297" width="90.991" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1091.5" y="118.292" fill="#000" font-size="14" textLength="70.991">AgentikCli</text><text x="1091.5" y="134.589" fill="#000" font-size="14" textLength="34.815">REPL</text></g><!--entity Android--><g class="entity" data-qualified-name="Applications.n.entry points. ........Android" id="ent0004" data-source-line="18"><rect x="1380.06" y="95.297" width="127.871" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1390.06" y="118.292" fill="#000" font-size="14" textLength="107.871">AgentikAndroid</text><text x="1390.06" y="134.589" fill="#000" font-size="14" textLength="84.164">Compose UI</text></g><!--entity AgentCore--><g class="entity" data-qualified-name="Agent Runtime.n............ lifecycle..AgentCore" id="ent0006" data-source-line="23"><rect x="1143.23" y="382.487" width="95.53" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1153.23" y="405.482" fill="#000" font-size="14" textLength="74.149">AgentCore</text><text x="1153.23" y="421.779" fill="#000" font-size="14" textLength="75.53">BaseAgent</text></g><!--entity Builder--><g class="entity" data-qualified-name="Agent Runtime.n............ lifecycle..Builder" id="ent0007" data-source-line="24"><rect x="1132.52" y="238.887" width="110.952" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1142.52" y="261.882" fill="#000" font-size="14" textLength="90.952">AgentBuilder</text><text x="1142.52" y="278.179" fill="#000" font-size="14" textLength="27.467">DSL</text></g><!--entity Ev--><g class="entity" data-qualified-name="Background Work.n.event-driven triggers..Ev" id="ent0009" data-source-line="29"><rect x="1120.39" y="669.677" width="151.229" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1130.39" y="692.672" fill="#000" font-size="14" textLength="131.229">BackgroundEvents</text><text x="1130.39" y="708.969" fill="#000" font-size="14" textLength="92.853">bus + events</text></g><!--entity Sched--><g class="entity" data-qualified-name="Background Work.n.event-driven triggers..Sched" id="ent0010" data-source-line="30"><rect x="1104.04" y="526.077" width="173.918" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1114.04" y="549.072" fill="#000" font-size="14" textLength="153.918">BackgroundScheduler</text><text x="1114.04" y="565.369" fill="#000" font-size="14" textLength="41.214">policy</text></g><!--entity LlmT--><g class="entity" data-qualified-name="Domain Logic.n.generic tools..LlmT" id="ent0012" data-source-line="35"><rect x="665.56" y="526.077" width="196.873" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="675.56" y="549.072" fill="#000" font-size="14" textLength="62.193">LlmTools</text><text x="675.56" y="565.369" fill="#000" font-size="14" textLength="176.873">Reflector/Reviewer/Miner</text></g><!--entity Mcp--><g class="entity" data-qualified-name="Domain Logic.n.generic tools..Mcp" id="ent0013" data-source-line="36"><rect x="474.9" y="526.077" width="160.191" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="484.9" y="549.072" fill="#000" font-size="14" textLength="74.3">McpBridge</text><text x="484.9" y="565.369" fill="#000" font-size="14" textLength="140.191">MCP-SDK → LiteTool</text></g><!--entity Skills--><g class="entity" data-qualified-name="Domain Logic.n.generic tools..Skills" id="ent0014" data-source-line="37"><rect x="892.26" y="526.077" width="115.478" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="902.26" y="549.072" fill="#000" font-size="14" textLength="35.957">Skills</text><text x="902.26" y="565.369" fill="#000" font-size="14" textLength="95.478">parse + store</text></g><!--entity StorageCore--><g class="entity" data-qualified-name="StoragePkg.StorageCore" id="ent0016" data-source-line="42"><rect x="1372.26" y="526.077" width="107.486" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1382.26" y="549.072" fill="#000" font-size="14" textLength="87.486">StorageCore</text><text x="1382.26" y="565.369" fill="#000" font-size="14" textLength="69.733">interfaces</text></g><!--entity StorageSql--><g class="entity" data-qualified-name="Storage.n.JVM impls..StorageSql" id="ent0018" data-source-line="46"><rect x="1351.78" y="382.487" width="114.432" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1361.78" y="405.482" fill="#000" font-size="14" textLength="94.432">StorageSqlite</text><text x="1361.78" y="421.779" fill="#000" font-size="14" textLength="34.289">JDBC</text></g><!--entity StorageInmem--><g class="entity" data-qualified-name="Storage.n.JVM impls..StorageInmem" id="ent0019" data-source-line="47"><rect x="1495.86" y="382.487" width="146.273" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1505.86" y="405.482" fill="#000" font-size="14" textLength="126.273">StorageInmemory</text><text x="1505.86" y="421.779" fill="#000" font-size="14" textLength="34.18">tests</text></g><!--entity StorageSqlA--><g class="entity" data-qualified-name="Storage.n.Android impl..StorageSqlA" id="ent0021" data-source-line="51"><rect x="1298.57" y="238.887" width="168.866" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1308.57" y="261.882" fill="#000" font-size="14" textLength="148.866">StorageSqliteAndroid</text><text x="1308.57" y="278.179" fill="#000" font-size="14" textLength="83.275">Room/sqlite</text></g><!--entity MemApi--><g class="entity" data-qualified-name="Memory.n.abstractions..MemApi" id="ent0023" data-source-line="56"><rect x="1874.17" y="526.077" width="227.662" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1884.17" y="549.072" fill="#000" font-size="14" textLength="79.29">MemoryApi</text><text x="1884.17" y="565.369" fill="#000" font-size="14" textLength="207.662">MemorySystem/MemoryTools</text></g><!--entity MemMd--><g class="entity" data-qualified-name="Memory.n.impls..MemMd" id="ent0025" data-source-line="60"><rect x="1847.22" y="238.887" width="119.559" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1857.22" y="261.882" fill="#000" font-size="14" textLength="77.902">MemoryMd</text><text x="1857.22" y="278.179" fill="#000" font-size="14" textLength="99.559">Hermes §-files</text></g><!--entity MemVec--><g class="entity" data-qualified-name="Memory.n.impls..MemVec" id="ent0026" data-source-line="61"><rect x="1694.68" y="238.887" width="122.635" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1704.68" y="261.882" fill="#000" font-size="14" textLength="102.635">MemoryVector</text><text x="1704.68" y="278.179" fill="#000" font-size="14" textLength="87.343">JVector+JVM</text></g><!--entity MemVecA--><g class="entity" data-qualified-name="Memory.n.impls..MemVecA" id="ent0027" data-source-line="62"><rect x="1996.47" y="238.887" width="177.069" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="2006.47" y="261.882" fill="#000" font-size="14" textLength="157.069">MemoryVectorAndroid</text><text x="2006.47" y="278.179" fill="#000" font-size="14" textLength="83.809">ONNX+ANN</text></g><!--entity Litert--><g class="entity" data-qualified-name="LLM.n.abstractions..Litert" id="ent0029" data-source-line="67"><rect x="384.01" y="669.677" width="143.977" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="394.01" y="692.672" fill="#000" font-size="14" textLength="59.391">LitertApi</text><text x="394.01" y="708.969" fill="#000" font-size="14" textLength="123.977">LiteLlm контракт</text></g><!--entity LitertO--><g class="entity" data-qualified-name="LLM.n.impls..LitertO" id="ent0031" data-source-line="71"><rect x="159.55" y="526.077" width="106.898" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="169.55" y="549.072" fill="#000" font-size="14" textLength="86.898">LitertOpenai</text><text x="169.55" y="565.369" fill="#000" font-size="14" textLength="36.073">HTTP</text></g><!--entity LitertG--><g class="entity" data-qualified-name="LLM.n.impls..LitertG" id="ent0032" data-source-line="72"><rect x="22.8" y="526.077" width="106.406" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="32.8" y="549.072" fill="#000" font-size="14" textLength="86.406">LitertGoogle</text><text x="32.8" y="565.369" fill="#000" font-size="14" textLength="74.307">LiteRT JVM</text></g><!--entity LitertA--><g class="entity" data-qualified-name="LLM.n.impls..LitertA" id="ent0033" data-source-line="73"><rect x="296.52" y="526.077" width="122.956" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="306.52" y="549.072" fill="#000" font-size="14" textLength="91.472">LitertAndroid</text><text x="306.52" y="565.369" fill="#000" font-size="14" textLength="102.956">LiteRT Android</text></g><!--entity Proto--><g class="entity" data-qualified-name="Inter-app.Proto" id="ent0035" data-source-line="78"><rect x="1535.64" y="526.077" width="158.715" height="52.594" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1545.64" y="549.072" fill="#000" font-size="14" textLength="36.818">Proto</text><text x="1545.64" y="565.369" fill="#000" font-size="14" textLength="138.715">Agent/Conversation</text></g><!--entity A2A--><g class="entity" data-qualified-name="Inter-app.A2A" id="ent0036" data-source-line="79"><rect x="1724.01" y="534.227" width="93.972" height="36.297" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;" rx="2.5" ry="2.5"/><text x="1734.01" y="557.222" fill="#000" font-size="14" textLength="73.972">A2AServer</text></g><!--link Standalone to Builder--><g class="link" data-entity-1="ent0002" data-entity-2="ent0007" id="lnk37" data-source-line="83" data-link-type="dependency"><path d="M1260.06,148.237 C1244.12,173.897 1222.359,208.9 1206.459,234.49" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-Builder"/><polygon points="1203.82,238.737,1211.967,233.203,1206.459,234.49,1205.172,228.981,1203.82,238.737" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Cli to Builder--><g class="link" data-entity-1="ent0003" data-entity-2="ent0007" id="lnk38" data-source-line="84" data-link-type="dependency"><path d="M1138.05,148.237 C1149.1,173.897 1164.031,208.555 1175.061,234.145" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Cli-to-Builder"/><polygon points="1177.04,238.737,1177.151,228.889,1175.061,234.145,1169.804,232.055,1177.04,238.737" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Android to Builder--><g class="link" data-entity-1="ent0004" data-entity-2="ent0007" id="lnk39" data-source-line="85" data-link-type="dependency"><path d="M1410.35,148.367 C1396.94,157.317 1380.92,166.477 1365,171.887 C1330.76,183.547 1317.18,165.487 1284,179.887 C1254.09,192.877 1230.23,215.025 1212.47,234.705" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Android-to-Builder"/><polygon points="1209.12,238.417,1218.119,234.415,1212.47,234.705,1212.18,229.055,1209.12,238.417" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Builder to AgentCore--><g class="link" data-entity-1="ent0007" data-entity-2="ent0006" id="lnk40" data-source-line="87" data-link-type="dependency"><path d="M1188.54,291.827 C1189.09,317.487 1189.815,351.738 1190.355,377.328" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Builder-to-AgentCore"/><polygon points="1190.46,382.327,1194.269,373.244,1190.355,377.328,1186.271,373.413,1190.46,382.327" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Proto--><g class="link" data-entity-1="ent0006" data-entity-2="ent0035" id="lnk41" data-source-line="88" data-link-type="dependency"><path d="M1239.1,429.757 C1267.15,440.447 1303.49,452.697 1337,459.077 C1371.54,465.657 1461.76,455.637 1495,467.077 C1530.87,479.427 1561.884,502.657 1584.674,522.677" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Proto"/><polygon points="1588.43,525.977,1584.308,517.032,1584.674,522.677,1579.029,523.042,1588.43,525.977" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to StorageCore--><g class="link" data-entity-1="ent0006" data-entity-2="ent0016" id="lnk42" data-source-line="89" data-link-type="dependency"><path d="M1230.3,435.547 C1245.55,444.387 1263.53,453.467 1281,459.077 C1309.13,468.117 1320.65,453.717 1347,467.077 C1373.3,480.407 1392.519,502.169 1406.609,521.739" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-StorageCore"/><polygon points="1409.53,525.797,1407.518,516.156,1406.609,521.739,1401.025,520.83,1409.53,525.797" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to MemApi--><g class="link" data-entity-1="ent0006" data-entity-2="ent0023" id="lnk43" data-source-line="90" data-link-type="dependency"><path d="M1239.02,430.187 C1267.04,441.027 1303.39,453.277 1337,459.077 C1391.32,468.457 1779.69,453.067 1833,467.077 C1877.14,478.687 1918.26,502.548 1948.39,522.798" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-MemApi"/><polygon points="1952.54,525.587,1947.302,517.247,1948.39,522.798,1942.839,523.886,1952.54,525.587" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Litert--><g class="link" data-entity-1="ent0006" data-entity-2="ent0029" id="lnk44" data-source-line="91" data-link-type="dependency"><path d="M1142.97,429.217 C1124.36,438.547 1103.98,451.197 1089,467.077 C1043.02,515.847 1076.78,562.667 1023,602.677 C945.83,660.077 668.081,683.081 533.341,691.081" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Litert"/><polygon points="528.35,691.377,537.571,694.836,533.341,691.081,537.097,686.85,528.35,691.377" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Mcp--><g class="link" data-entity-1="ent0006" data-entity-2="ent0013" id="lnk45" data-source-line="92" data-link-type="dependency"><path d="M1142.93,416.507 C1066.59,426.977 912.88,447.207 782,459.077 C752.95,461.717 677.97,455.967 651,467.077 C620.65,479.587 596.619,502.067 578.959,521.967" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Mcp"/><polygon points="575.64,525.707,584.606,521.63,578.959,521.967,578.622,516.32,575.64,525.707" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Skills--><g class="link" data-entity-1="ent0006" data-entity-2="ent0014" id="lnk46" data-source-line="93" data-link-type="dependency"><path d="M1142.84,421.217 C1110.15,430.377 1066.89,445.337 1033,467.077 C1008.28,482.937 988.491,503.554 973.001,522.044" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Skills"/><polygon points="969.79,525.877,978.636,521.547,973.001,522.044,972.503,516.409,969.79,525.877" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Sched to Ev--><g class="link" data-entity-1="ent0010" data-entity-2="ent0009" id="lnk47" data-source-line="95" data-link-type="dependency"><path d="M1191.91,579.017 C1192.81,604.677 1194.024,638.93 1194.924,664.52" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Sched-to-Ev"/><polygon points="1195.1,669.517,1198.781,660.382,1194.924,664.52,1190.786,660.663,1195.1,669.517" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Sched--><g class="link" data-entity-1="ent0006" data-entity-2="ent0010" id="lnk48" data-source-line="96" data-link-type="dependency"><path d="M1191,435.427 C1191,461.087 1191,495.327 1191,520.927" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Sched"/><polygon points="1191,525.927,1195,516.927,1191,520.927,1187,516.927,1191,525.927" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link AgentCore to Ev--><g class="link" data-entity-1="ent0006" data-entity-2="ent0009" id="lnk49" data-source-line="97" data-link-type="dependency"><path d="M1237.83,435.417 C1264.23,449.977 1292.14,465.607 1293,467.077 C1323.44,519.087 1316.75,547.287 1293,602.677 C1281.27,630.017 1260.998,650.068 1239.678,666.298" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="AgentCore-to-Ev"/><polygon points="1235.7,669.327,1245.284,667.058,1239.678,666.298,1240.438,660.693,1235.7,669.327" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Mcp to Litert--><g class="link" data-entity-1="ent0013" data-entity-2="ent0029" id="lnk50" data-source-line="99" data-link-type="dependency"><path d="M537.07,579.017 C519.13,604.677 494.556,639.83 476.656,665.42" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Mcp-to-Litert"/><polygon points="473.79,669.517,482.226,664.435,476.656,665.42,475.671,659.849,473.79,669.517" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link LlmT to Litert--><g class="link" data-entity-1="ent0012" data-entity-2="ent0029" id="lnk51" data-source-line="100" data-link-type="dependency"><path d="M708.22,579.017 C652.58,604.597 572.103,641.588 516.423,667.188" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="LlmT-to-Litert"/><polygon points="511.88,669.277,521.728,669.152,516.423,667.188,518.386,661.883,511.88,669.277" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link MemMd to MemApi--><g class="link" data-entity-1="ent0025" data-entity-2="ent0023" id="lnk52" data-source-line="102" data-link-type="dependency"><path d="M1914.26,291.747 C1929.64,345.887 1963.974,466.777 1979.364,520.957" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="MemMd-to-MemApi"/><polygon points="1980.73,525.767,1982.119,516.016,1979.364,520.957,1974.423,518.202,1980.73,525.767" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link MemVec to MemApi--><g class="link" data-entity-1="ent0026" data-entity-2="ent0023" id="lnk53" data-source-line="103" data-link-type="dependency"><path d="M1776.79,291.747 C1820.84,345.887 1919.945,467.708 1964.015,521.888" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="MemVec-to-MemApi"/><polygon points="1967.17,525.767,1964.594,516.261,1964.015,521.888,1958.388,521.309,1967.17,525.767" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link MemVecA to MemApi--><g class="link" data-entity-1="ent0027" data-entity-2="ent0023" id="lnk54" data-source-line="104" data-link-type="dependency"><path d="M2076.31,291.747 C2057.89,345.887 2016.75,466.853 1998.32,521.033" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="MemVecA-to-MemApi"/><polygon points="1996.71,525.767,2003.395,518.535,1998.32,521.033,1995.821,515.958,1996.71,525.767" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link StorageSql to StorageCore--><g class="link" data-entity-1="ent0018" data-entity-2="ent0016" id="lnk55" data-source-line="106" data-link-type="dependency"><path d="M1412.08,435.427 C1415.16,461.087 1419.275,495.362 1422.345,520.962" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="StorageSql-to-StorageCore"/><polygon points="1422.94,525.927,1425.84,516.515,1422.345,520.962,1417.897,517.467,1422.94,525.927" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link StorageInmem to StorageCore--><g class="link" data-entity-1="ent0019" data-entity-2="ent0016" id="lnk56" data-source-line="107" data-link-type="dependency"><path d="M1543.1,435.427 C1517.19,461.087 1481.103,496.809 1455.253,522.409" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="StorageInmem-to-StorageCore"/><polygon points="1451.7,525.927,1460.909,522.436,1455.253,522.409,1455.28,516.752,1451.7,525.927" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link StorageSqlA to StorageCore--><g class="link" data-entity-1="ent0021" data-entity-2="ent0016" id="lnk57" data-source-line="108" data-link-type="dependency"><path d="M1356.32,291.817 C1348.55,300.987 1341.06,311.937 1337,323.487 C1317,380.337 1314.45,403.197 1337,459.077 C1347.83,485.917 1366.77,506.095 1386.57,522.605" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="StorageSqlA-to-StorageCore"/><polygon points="1390.41,525.807,1386.059,516.971,1386.57,522.605,1380.936,523.115,1390.41,525.807" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link LitertO to Litert--><g class="link" data-entity-1="ent0031" data-entity-2="ent0029" id="lnk58" data-source-line="110" data-link-type="dependency"><path d="M247.14,579.117 C258.07,586.997 270.36,595.467 282,602.677 C321.55,627.137 363.712,649.412 398.752,667.022" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="LitertO-to-Litert"/><polygon points="403.22,669.267,396.975,661.651,398.752,667.022,393.382,668.799,403.22,669.267" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link LitertG to Litert--><g class="link" data-entity-1="ent0032" data-entity-2="ent0029" id="lnk59" data-source-line="111" data-link-type="dependency"><path d="M107.25,579.037 C118.62,587.457 131.9,596.277 145,602.677 C222.68,640.617 314.14,665.158 378.83,679.588" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="LitertG-to-Litert"/><polygon points="383.71,680.677,375.797,674.813,378.83,679.588,374.055,682.622,383.71,680.677" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link LitertA to Litert--><g class="link" data-entity-1="ent0033" data-entity-2="ent0029" id="lnk60" data-source-line="112" data-link-type="dependency"><path d="M375.75,579.017 C393.51,604.677 417.825,639.815 435.535,665.405" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="LitertA-to-Litert"/><polygon points="438.38,669.517,436.547,659.84,435.535,665.405,429.969,664.393,438.38,669.517" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to A2A--><g class="link" data-entity-1="ent0002" data-entity-2="ent0036" id="lnk61" data-source-line="114" data-link-type="dependency"><path d="M1313.32,148.217 C1328.65,157.397 1347,166.727 1365,171.887 C1397.51,181.217 1486.19,165.937 1517,179.887 C1672.14,250.167 1745.83,465.343 1764.71,529.103" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-A2A"/><polygon points="1766.13,533.897,1767.41,524.132,1764.71,529.103,1759.739,526.403,1766.13,533.897" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to LitertO--><g class="link" data-entity-1="ent0002" data-entity-2="ent0031" id="lnk62" data-source-line="115" data-link-type="dependency"><path d="M1239.18,148.227 C1223.78,157.517 1205.24,166.947 1187,171.887 C1115.56,191.277 925.2,159.667 854,179.887 C617.71,247.017 611.17,384.897 377,459.077 C356.8,465.477 300.75,457.217 282,467.077 C257.4,480.027 240.872,501.609 229.062,521.299" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-LitertO"/><polygon points="226.49,525.587,234.55,519.926,229.062,521.299,227.689,515.811,226.49,525.587" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to LitertG--><g class="link" data-entity-1="ent0002" data-entity-2="ent0032" id="lnk63" data-source-line="116" data-link-type="dependency"><path d="M1239.21,148.317 C1223.81,157.627 1205.27,167.037 1187,171.887 C1125.36,188.287 674.34,162.417 613,179.887 C378.29,246.737 328.07,305.707 145,467.077 C125.14,484.587 109.303,504.115 96.373,521.875" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-LitertG"/><polygon points="93.43,525.917,101.961,520.995,96.373,521.875,95.493,516.287,93.43,525.917" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to StorageSql--><g class="link" data-entity-1="ent0002" data-entity-2="ent0018" id="lnk64" data-source-line="117" data-link-type="dependency"><path d="M1313.8,148.337 C1329.04,157.407 1347.21,166.637 1365,171.887 C1377.5,175.577 1473.11,170.367 1482,179.887 C1523.13,223.937 1501.79,258.567 1482,315.487 C1473.08,341.147 1457.201,361.468 1440.661,378.518" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-StorageSql"/><polygon points="1437.18,382.107,1446.318,378.432,1440.661,378.518,1440.576,372.862,1437.18,382.107" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to MemMd--><g class="link" data-entity-1="ent0002" data-entity-2="ent0025" id="lnk65" data-source-line="118" data-link-type="dependency"><path d="M1312.8,148.287 C1328.2,157.597 1346.74,167.007 1365,171.887 C1390.07,178.597 1808.42,169.067 1832,179.887 C1858.53,192.067 1876.867,214.427 1889.837,234.507" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-MemMd"/><polygon points="1892.55,238.707,1891.027,228.977,1889.837,234.507,1884.307,233.317,1892.55,238.707" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to MemVec--><g class="link" data-entity-1="ent0002" data-entity-2="ent0026" id="lnk66" data-source-line="119" data-link-type="dependency"><path d="M1312.82,148.207 C1328.23,157.497 1346.77,166.927 1365,171.887 C1397.71,180.807 1638.79,166.667 1670,179.887 C1698.68,192.047 1720.066,214.64 1735.476,234.72" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-MemVec"/><polygon points="1738.52,238.687,1736.214,229.112,1735.476,234.72,1729.867,233.982,1738.52,238.687" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Standalone to Mcp--><g class="link" data-entity-1="ent0002" data-entity-2="ent0013" id="lnk67" data-source-line="120" data-link-type="dependency"><path d="M1237.63,148.157 C1222.46,157.087 1204.49,166.277 1187,171.887 C1157.61,181.327 1147.17,169.787 1118,179.887 C887.56,259.697 663.165,452.118 586.095,522.388" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Standalone-to-Mcp"/><polygon points="582.4,525.757,591.746,522.649,586.095,522.388,586.356,516.737,582.4,525.757" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Android to LitertA--><g class="link" data-entity-1="ent0004" data-entity-2="ent0033" id="lnk68" data-source-line="122" data-link-type="dependency"><path d="M1411.69,148.137 C1398.07,157.427 1381.55,166.857 1365,171.887 C1312.46,187.867 1171.44,167.227 1118,179.887 C830.23,248.087 797.38,374.507 514,459.077 C490.75,466.017 482.16,457.207 460,467.077 C429.36,480.717 404.003,502.658 384.853,522.058" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Android-to-LitertA"/><polygon points="381.34,525.617,390.509,522.022,384.853,522.058,384.816,516.402,381.34,525.617" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Android to StorageSqlA--><g class="link" data-entity-1="ent0004" data-entity-2="ent0021" id="lnk69" data-source-line="123" data-link-type="dependency"><path d="M1432.95,148.237 C1421.9,173.897 1406.969,208.555 1395.939,234.145" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Android-to-StorageSqlA"/><polygon points="1393.96,238.737,1401.196,232.055,1395.939,234.145,1393.849,228.889,1393.96,238.737" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Android to MemMd--><g class="link" data-entity-1="ent0004" data-entity-2="ent0025" id="lnk70" data-source-line="124" data-link-type="dependency"><path d="M1508.07,126.747 C1603.42,133.817 1777.33,150.367 1832,179.887 C1857.16,193.477 1875.197,214.86 1888.477,234.27" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Android-to-MemMd"/><polygon points="1891.3,238.397,1889.519,228.71,1888.477,234.27,1882.917,233.228,1891.3,238.397" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link Android to MemVecA--><g class="link" data-entity-1="ent0004" data-entity-2="ent0027" id="lnk71" data-source-line="125" data-link-type="dependency"><path d="M1508.11,124.847 C1631.63,129.927 1897.83,144.707 1982,179.887 C2013.34,192.997 2039.146,215.28 2058.426,234.91" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;" fill="none" id="Android-to-MemVecA"/><polygon points="2061.93,238.477,2058.477,229.253,2058.426,234.91,2052.77,234.859,2061.93,238.477" fill="#181818" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><?plantuml-src TLNTJjn65BxtKunoKw9bGvLAlUX59RCWGheBY2LffMukZ3riHclFk6C3MaML28roaqf8LQK-Gczf59fjKa3g4tXV8K_IRyvuxR4tSC5wllFD-Plpaqs4J0CT92nKIQeab_amdyQSQHxcWHp7tCigYWxa9ECf-_fB1vGguWRyoWNJ89m4OzvMvUKY1m29pCM4VJhxdSrV5X-BcsB6Yd_nysx-2uvNnJziPVuQl-RxBV0hmxkPlvoVu_z5SLtCYglxdlS5wtQxp4_JM8H1BfJClc5GhQSiLKBc6Ll9dml9JdMGfbndzmtTAtrZzznx8xdYNbnbnXBiV21BzzWBZ-7lno42YO8OUHh9HmS7Unr_g_jak-C_z9-n86ErsD9z6sWl5YEvlxdN9n9E3Qal8wr4D98zym8PPq-sYLVYtizLd8RFz34k9RmL2edshGYnmEyR9FGM_zyNCwHoDhzOPR4uuk4qZ7aT45tiAOrBwq76wMYjBmGER_rOn17N8xanjA6KGEtYEXmQQtKi8tQgzAJff2Fy7aAJyXDexKPQu9VbMep7vfKgv-eBcuQ8HpeypbY7qRMCFDWyQLE7uNCU7SV6pLJXVQVsPGnQ-xcXaW254Qkn2DaAOkDQXAiC2RkQdw7cPYWtaxoFyr-BzwZ9g_avYk-YLK2bbhxHWcXADInNAdQYwCV9WK5G0lmeHYyelRRFJmG_vNfj8727F3GqUs4GfkjQH6EyoQ2trnrkVCS-lVwDzKNEZI9YWrDMv4J4HZVw3gNJOHdKSnioIUgOXv0OjuF3BDT1I6MF2o99uwmPLyb4I2uN4L69asnlCgvxWX1RH6WUhe-2a6VF73RL4HpvZ8N7JmVM1RV9I3ZyAKR48_buOxtdAWFUu6tBX2TAJqSmdUKDkoIwmt3PNcJy3jjLP-uhbQnbXBKyyUly3iWBTWXJN4Qjb0vA5ziPBSrQiPzYJjZFuJJBUR9c3rG-zjbv0b8ZeafpAuiM7y3xHrmdF6F__Taz4Z6l50qYb_YK2XFPjXyTlCk226IPMULcTsVdXuw_i-EmdQJq-uCxCWB9dUamfQvpIeVvH6imccZNQCEpuhBuC3-tFKEyHZgisbOkB6ytvJ8GTd0xrtTTpfPIM5JMxFu1MsIX53QyMoIWf9PdX-waOTkqHHTRYALQvIfKSJCPbRnoUS_mHfBcxbfFoHDCHbfLP82avMH-w0-vFYcd24wrrU8FvEej3REPMQ-qFsTifRX55cUqT__6iBissu56p6AtcE_Y7QqGYEtnilZBt2_pZuq2JIIuXQ9B25x1m9czWOTwWvrDLY6sOxDUZkp1Ws-htO5rs3Wl-jB5lFA3m7epLL-4svmqCNV-D2Lb9pN1ifvQJ8pQbbOxMJrQAeHW3RKej6-Q64WUbBcMpD1tpnxrfUkWxQXbn7SXhnv8Is6xe_0keHbaIpAlR8-6lxOFbY6_4KNhgKrHjg15wtqMtch3pkHlIUmSMmRDp6gZUCT6TIswrCNSoUxYrauBeL7tFm00?></g></svg> |