File size: 41,160 Bytes
da43f5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
 -->
<!-- Title: ConceptMap Pages: 1 -->
<svg width="1625pt" height="671pt"
 viewBox="0.00 0.00 1624.50 671.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 635)">
<title>ConceptMap</title>
<polygon fill="white" stroke="transparent" points="-36,36 -36,-635 1588.5,-635 1588.5,36 -36,36"/>
<!-- central -->
<g id="node1" class="node">
<title>central</title>
<path fill="#bebebe" stroke="black" d="M863.5,-599C863.5,-599 619.5,-599 619.5,-599 613.5,-599 607.5,-593 607.5,-587 607.5,-587 607.5,-575 607.5,-575 607.5,-569 613.5,-563 619.5,-563 619.5,-563 863.5,-563 863.5,-563 869.5,-563 875.5,-569 875.5,-575 875.5,-575 875.5,-587 875.5,-587 875.5,-593 869.5,-599 863.5,-599"/>
<text text-anchor="middle" x="741.5" y="-577.2" font-family="Times,serif" font-size="16.00">Model Context Protocol (MCP)</text>
</g>
<!-- communication_layer -->
<g id="node2" class="node">
<title>communication_layer</title>
<path fill="#c1c1c1" stroke="black" d="M451,-517C451,-517 324,-517 324,-517 318,-517 312,-511 312,-505 312,-505 312,-493 312,-493 312,-487 318,-481 324,-481 324,-481 451,-481 451,-481 457,-481 463,-487 463,-493 463,-493 463,-505 463,-505 463,-511 457,-517 451,-517"/>
<text text-anchor="middle" x="387.5" y="-495.9" font-family="Times,serif" font-size="12.00">Communication Layer</text>
</g>
<!-- central&#45;&gt;communication_layer -->
<g id="edge1" class="edge">
<title>central&#45;&gt;communication_layer</title>
<path fill="none" stroke="#4a4a4a" d="M607.42,-581C507.22,-581 387.5,-581 387.5,-581 387.5,-581 387.5,-527.2 387.5,-527.2"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="391,-527.2 387.5,-517.2 384,-527.2 391,-527.2"/>
<text text-anchor="middle" x="483.5" y="-537.8" font-family="Times,serif" font-size="9.00" fill="#4a4a4a">establishes</text>
</g>
<!-- resource_management -->
<g id="node12" class="node">
<title>resource_management</title>
<path fill="#c1c1c1" stroke="black" d="M644,-517C644,-517 513,-517 513,-517 507,-517 501,-511 501,-505 501,-505 501,-493 501,-493 501,-487 507,-481 513,-481 513,-481 644,-481 644,-481 650,-481 656,-487 656,-493 656,-493 656,-505 656,-505 656,-511 650,-517 644,-517"/>
<text text-anchor="middle" x="578.5" y="-495.9" font-family="Times,serif" font-size="12.00">Resource Management</text>
</g>
<!-- central&#45;&gt;resource_management -->
<g id="edge11" class="edge">
<title>central&#45;&gt;resource_management</title>
<path fill="none" stroke="#4a4a4a" d="M631.75,-562.8C631.75,-562.8 631.75,-527.15 631.75,-527.15"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="635.25,-527.15 631.75,-517.15 628.25,-527.15 635.25,-527.15"/>
<text text-anchor="middle" x="650" y="-537.8" font-family="Times,serif" font-size="9.00" fill="#4a4a4a">handles</text>
</g>
<!-- context_integration -->
<g id="node18" class="node">
<title>context_integration</title>
<path fill="#c1c1c1" stroke="black" d="M796.5,-517C796.5,-517 686.5,-517 686.5,-517 680.5,-517 674.5,-511 674.5,-505 674.5,-505 674.5,-493 674.5,-493 674.5,-487 680.5,-481 686.5,-481 686.5,-481 796.5,-481 796.5,-481 802.5,-481 808.5,-487 808.5,-493 808.5,-493 808.5,-505 808.5,-505 808.5,-511 802.5,-517 796.5,-517"/>
<text text-anchor="middle" x="741.5" y="-495.9" font-family="Times,serif" font-size="12.00">Context Integration</text>
</g>
<!-- central&#45;&gt;context_integration -->
<g id="edge17" class="edge">
<title>central&#45;&gt;context_integration</title>
<path fill="none" stroke="#4a4a4a" d="M741.5,-562.8C741.5,-562.8 741.5,-527.15 741.5,-527.15"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="745,-527.15 741.5,-517.15 738,-527.15 745,-527.15"/>
<text text-anchor="middle" x="764.5" y="-537.8" font-family="Times,serif" font-size="9.00" fill="#4a4a4a">facilitates</text>
</g>
<!-- security_framework -->
<g id="node25" class="node">
<title>security_framework</title>
<path fill="#c1c1c1" stroke="black" d="M1010.5,-517C1010.5,-517 892.5,-517 892.5,-517 886.5,-517 880.5,-511 880.5,-505 880.5,-505 880.5,-493 880.5,-493 880.5,-487 886.5,-481 892.5,-481 892.5,-481 1010.5,-481 1010.5,-481 1016.5,-481 1022.5,-487 1022.5,-493 1022.5,-493 1022.5,-505 1022.5,-505 1022.5,-511 1016.5,-517 1010.5,-517"/>
<text text-anchor="middle" x="951.5" y="-495.9" font-family="Times,serif" font-size="12.00">Security Framework</text>
</g>
<!-- central&#45;&gt;security_framework -->
<g id="edge24" class="edge">
<title>central&#45;&gt;security_framework</title>
<path fill="none" stroke="#4a4a4a" d="M849.5,-562.8C849.5,-538.64 849.5,-499 849.5,-499 849.5,-499 870.38,-499 870.38,-499"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="870.38,-502.5 880.38,-499 870.38,-495.5 870.38,-502.5"/>
<text text-anchor="middle" x="885.5" y="-537.8" font-family="Times,serif" font-size="9.00" fill="#4a4a4a">implements</text>
</g>
<!-- extensibility_model -->
<g id="node32" class="node">
<title>extensibility_model</title>
<path fill="#c1c1c1" stroke="black" d="M1165.5,-517C1165.5,-517 1057.5,-517 1057.5,-517 1051.5,-517 1045.5,-511 1045.5,-505 1045.5,-505 1045.5,-493 1045.5,-493 1045.5,-487 1051.5,-481 1057.5,-481 1057.5,-481 1165.5,-481 1165.5,-481 1171.5,-481 1177.5,-487 1177.5,-493 1177.5,-493 1177.5,-505 1177.5,-505 1177.5,-511 1171.5,-517 1165.5,-517"/>
<text text-anchor="middle" x="1111.5" y="-495.9" font-family="Times,serif" font-size="12.00">Extensibility Model</text>
</g>
<!-- central&#45;&gt;extensibility_model -->
<g id="edge31" class="edge">
<title>central&#45;&gt;extensibility_model</title>
<path fill="none" stroke="#4a4a4a" d="M875.6,-581C981.49,-581 1111.5,-581 1111.5,-581 1111.5,-581 1111.5,-527.2 1111.5,-527.2"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1115,-527.2 1111.5,-517.2 1108,-527.2 1115,-527.2"/>
<text text-anchor="middle" x="1019" y="-537.8" font-family="Times,serif" font-size="9.00" fill="#4a4a4a">supports</text>
</g>
<!-- bidirectional_messaging -->
<g id="node3" class="node">
<title>bidirectional_messaging</title>
<path fill="#c5c5c5" stroke="black" d="M352.5,-436C352.5,-436 236.5,-436 236.5,-436 230.5,-436 224.5,-430 224.5,-424 224.5,-424 224.5,-412 224.5,-412 224.5,-406 230.5,-400 236.5,-400 236.5,-400 352.5,-400 352.5,-400 358.5,-400 364.5,-406 364.5,-412 364.5,-412 364.5,-424 364.5,-424 364.5,-430 358.5,-436 352.5,-436"/>
<text text-anchor="middle" x="294.5" y="-415.5" font-family="Times,serif" font-size="10.00">Bidirectional Messaging</text>
</g>
<!-- communication_layer&#45;&gt;bidirectional_messaging -->
<g id="edge2" class="edge">
<title>communication_layer&#45;&gt;bidirectional_messaging</title>
<path fill="none" stroke="#4a4a4a" d="M338.25,-480.62C338.25,-480.62 338.25,-446.03 338.25,-446.03"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="341.75,-446.03 338.25,-436.03 334.75,-446.03 341.75,-446.03"/>
<text text-anchor="middle" x="364" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">enables</text>
</g>
<!-- request_response_pattern -->
<g id="node4" class="node">
<title>request_response_pattern</title>
<path fill="#c9c9c9" stroke="black" d="M171.5,-356C171.5,-356 57.5,-356 57.5,-356 51.5,-356 45.5,-350 45.5,-344 45.5,-344 45.5,-332 45.5,-332 45.5,-326 51.5,-320 57.5,-320 57.5,-320 171.5,-320 171.5,-320 177.5,-320 183.5,-326 183.5,-332 183.5,-332 183.5,-344 183.5,-344 183.5,-350 177.5,-356 171.5,-356"/>
<text text-anchor="middle" x="114.5" y="-335.8" font-family="Times,serif" font-size="9.00">Request Response Pattern</text>
</g>
<!-- bidirectional_messaging&#45;&gt;request_response_pattern -->
<g id="edge3" class="edge">
<title>bidirectional_messaging&#45;&gt;request_response_pattern</title>
<path fill="none" stroke="#4a4a4a" d="M234.75,-399.71C234.75,-377.79 234.75,-344 234.75,-344 234.75,-344 193.75,-344 193.75,-344"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="193.75,-340.5 183.75,-344 193.75,-347.5 193.75,-340.5"/>
<text text-anchor="middle" x="193" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">uses</text>
</g>
<!-- server_capabilities -->
<g id="node8" class="node">
<title>server_capabilities</title>
<path fill="#c9c9c9" stroke="black" d="M335,-356C335,-356 254,-356 254,-356 248,-356 242,-350 242,-344 242,-344 242,-332 242,-332 242,-326 248,-320 254,-320 254,-320 335,-320 335,-320 341,-320 347,-326 347,-332 347,-332 347,-344 347,-344 347,-350 341,-356 335,-356"/>
<text text-anchor="middle" x="294.5" y="-335.8" font-family="Times,serif" font-size="9.00">Server Capabilities</text>
</g>
<!-- bidirectional_messaging&#45;&gt;server_capabilities -->
<g id="edge7" class="edge">
<title>bidirectional_messaging&#45;&gt;server_capabilities</title>
<path fill="none" stroke="#4a4a4a" d="M294.5,-399.85C294.5,-399.85 294.5,-366.08 294.5,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="298,-366.08 294.5,-356.08 291,-366.08 298,-366.08"/>
<text text-anchor="middle" x="311.5" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">manages</text>
</g>
<!-- json_rpc_protocol -->
<g id="node5" class="node">
<title>json_rpc_protocol</title>
<path fill="#cdcdcd" stroke="black" d="M115.5,-276C115.5,-276 33.5,-276 33.5,-276 27.5,-276 21.5,-270 21.5,-264 21.5,-264 21.5,-252 21.5,-252 21.5,-246 27.5,-240 33.5,-240 33.5,-240 115.5,-240 115.5,-240 121.5,-240 127.5,-246 127.5,-252 127.5,-252 127.5,-264 127.5,-264 127.5,-270 121.5,-276 115.5,-276"/>
<text text-anchor="middle" x="74.5" y="-255.8" font-family="Times,serif" font-size="9.00">JSON&#45;RPC Protocol</text>
</g>
<!-- request_response_pattern&#45;&gt;json_rpc_protocol -->
<g id="edge4" class="edge">
<title>request_response_pattern&#45;&gt;json_rpc_protocol</title>
<path fill="none" stroke="#4a4a4a" d="M86.5,-319.85C86.5,-319.85 86.5,-286.08 86.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="90,-286.08 86.5,-276.08 83,-286.08 90,-286.08"/>
<text text-anchor="middle" x="119" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">ensures</text>
</g>
<!-- standardized_format -->
<g id="node6" class="node">
<title>standardized_format</title>
<path fill="#d1d1d1" stroke="black" d="M119.5,-196C119.5,-196 29.5,-196 29.5,-196 23.5,-196 17.5,-190 17.5,-184 17.5,-184 17.5,-172 17.5,-172 17.5,-166 23.5,-160 29.5,-160 29.5,-160 119.5,-160 119.5,-160 125.5,-160 131.5,-166 131.5,-172 131.5,-172 131.5,-184 131.5,-184 131.5,-190 125.5,-196 119.5,-196"/>
<text text-anchor="middle" x="74.5" y="-175.8" font-family="Times,serif" font-size="9.00">Standardized Format</text>
</g>
<!-- json_rpc_protocol&#45;&gt;standardized_format -->
<g id="edge5" class="edge">
<title>json_rpc_protocol&#45;&gt;standardized_format</title>
<path fill="none" stroke="#4a4a4a" d="M74.5,-239.85C74.5,-239.85 74.5,-206.08 74.5,-206.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="78,-206.08 74.5,-196.08 71,-206.08 78,-206.08"/>
<text text-anchor="middle" x="90" y="-216.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">provides</text>
</g>
<!-- cross_platform_compatibility -->
<g id="node7" class="node">
<title>cross_platform_compatibility</title>
<path fill="#d5d5d5" stroke="black" d="M137,-116C137,-116 12,-116 12,-116 6,-116 0,-110 0,-104 0,-104 0,-92 0,-92 0,-86 6,-80 12,-80 12,-80 137,-80 137,-80 143,-80 149,-86 149,-92 149,-92 149,-104 149,-104 149,-110 143,-116 137,-116"/>
<text text-anchor="middle" x="74.5" y="-95.8" font-family="Times,serif" font-size="9.00">Cross&#45;Platform Compatibility</text>
</g>
<!-- standardized_format&#45;&gt;cross_platform_compatibility -->
<g id="edge6" class="edge">
<title>standardized_format&#45;&gt;cross_platform_compatibility</title>
<path fill="none" stroke="#4a4a4a" d="M74.5,-159.85C74.5,-159.85 74.5,-126.08 74.5,-126.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="78,-126.08 74.5,-116.08 71,-126.08 78,-126.08"/>
<text text-anchor="middle" x="90" y="-136.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">provides</text>
</g>
<!-- tools_registry -->
<g id="node9" class="node">
<title>tools_registry</title>
<path fill="#cdcdcd" stroke="black" d="M215.5,-276C215.5,-276 157.5,-276 157.5,-276 151.5,-276 145.5,-270 145.5,-264 145.5,-264 145.5,-252 145.5,-252 145.5,-246 151.5,-240 157.5,-240 157.5,-240 215.5,-240 215.5,-240 221.5,-240 227.5,-246 227.5,-252 227.5,-252 227.5,-264 227.5,-264 227.5,-270 221.5,-276 215.5,-276"/>
<text text-anchor="middle" x="186.5" y="-255.8" font-family="Times,serif" font-size="9.00">Tools Registry</text>
</g>
<!-- server_capabilities&#45;&gt;tools_registry -->
<g id="edge8" class="edge">
<title>server_capabilities&#45;&gt;tools_registry</title>
<path fill="none" stroke="#4a4a4a" d="M241.86,-332C221.95,-332 204,-332 204,-332 204,-332 204,-286.29 204,-286.29"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="207.5,-286.29 204,-276.29 200.5,-286.29 207.5,-286.29"/>
<text text-anchor="middle" x="205" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">maintains</text>
</g>
<!-- resource_catalog -->
<g id="node10" class="node">
<title>resource_catalog</title>
<path fill="#cdcdcd" stroke="black" d="M331.5,-276C331.5,-276 257.5,-276 257.5,-276 251.5,-276 245.5,-270 245.5,-264 245.5,-264 245.5,-252 245.5,-252 245.5,-246 251.5,-240 257.5,-240 257.5,-240 331.5,-240 331.5,-240 337.5,-240 343.5,-246 343.5,-252 343.5,-252 343.5,-264 343.5,-264 343.5,-270 337.5,-276 331.5,-276"/>
<text text-anchor="middle" x="294.5" y="-255.8" font-family="Times,serif" font-size="9.00">Resource Catalog</text>
</g>
<!-- server_capabilities&#45;&gt;resource_catalog -->
<g id="edge9" class="edge">
<title>server_capabilities&#45;&gt;resource_catalog</title>
<path fill="none" stroke="#4a4a4a" d="M294.5,-319.85C294.5,-319.85 294.5,-286.08 294.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="298,-286.08 294.5,-276.08 291,-286.08 298,-286.08"/>
<text text-anchor="middle" x="310" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">provides</text>
</g>
<!-- prompt_templates -->
<g id="node11" class="node">
<title>prompt_templates</title>
<path fill="#cdcdcd" stroke="black" d="M449.5,-276C449.5,-276 373.5,-276 373.5,-276 367.5,-276 361.5,-270 361.5,-264 361.5,-264 361.5,-252 361.5,-252 361.5,-246 367.5,-240 373.5,-240 373.5,-240 449.5,-240 449.5,-240 455.5,-240 461.5,-246 461.5,-252 461.5,-252 461.5,-264 461.5,-264 461.5,-270 455.5,-276 449.5,-276"/>
<text text-anchor="middle" x="411.5" y="-255.8" font-family="Times,serif" font-size="9.00">Prompt Templates</text>
</g>
<!-- server_capabilities&#45;&gt;prompt_templates -->
<g id="edge10" class="edge">
<title>server_capabilities&#45;&gt;prompt_templates</title>
<path fill="none" stroke="#4a4a4a" d="M347.17,-338C378.81,-338 413,-338 413,-338 413,-338 413,-286.15 413,-286.15"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="416.5,-286.15 413,-276.15 409.5,-286.15 416.5,-286.15"/>
<text text-anchor="middle" x="427" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">provides</text>
</g>
<!-- client_requests -->
<g id="node13" class="node">
<title>client_requests</title>
<path fill="#c5c5c5" stroke="black" d="M615,-436C615,-436 542,-436 542,-436 536,-436 530,-430 530,-424 530,-424 530,-412 530,-412 530,-406 536,-400 542,-400 542,-400 615,-400 615,-400 621,-400 627,-406 627,-412 627,-412 627,-424 627,-424 627,-430 621,-436 615,-436"/>
<text text-anchor="middle" x="578.5" y="-415.5" font-family="Times,serif" font-size="10.00">Client Requests</text>
</g>
<!-- resource_management&#45;&gt;client_requests -->
<g id="edge12" class="edge">
<title>resource_management&#45;&gt;client_requests</title>
<path fill="none" stroke="#4a4a4a" d="M578.5,-480.62C578.5,-480.62 578.5,-446.03 578.5,-446.03"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="582,-446.03 578.5,-436.03 575,-446.03 582,-446.03"/>
<text text-anchor="middle" x="598" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">processes</text>
</g>
<!-- tool_invocation -->
<g id="node14" class="node">
<title>tool_invocation</title>
<path fill="#c9c9c9" stroke="black" d="M570,-356C570,-356 507,-356 507,-356 501,-356 495,-350 495,-344 495,-344 495,-332 495,-332 495,-326 501,-320 507,-320 507,-320 570,-320 570,-320 576,-320 582,-326 582,-332 582,-332 582,-344 582,-344 582,-350 576,-356 570,-356"/>
<text text-anchor="middle" x="538.5" y="-335.8" font-family="Times,serif" font-size="9.00">Tool Invocation</text>
</g>
<!-- client_requests&#45;&gt;tool_invocation -->
<g id="edge13" class="edge">
<title>client_requests&#45;&gt;tool_invocation</title>
<path fill="none" stroke="#4a4a4a" d="M556,-399.85C556,-399.85 556,-366.08 556,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="559.5,-366.08 556,-356.08 552.5,-366.08 559.5,-366.08"/>
<text text-anchor="middle" x="591" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">performs</text>
</g>
<!-- resource_access -->
<g id="node16" class="node">
<title>resource_access</title>
<path fill="#c9c9c9" stroke="black" d="M690.5,-356C690.5,-356 620.5,-356 620.5,-356 614.5,-356 608.5,-350 608.5,-344 608.5,-344 608.5,-332 608.5,-332 608.5,-326 614.5,-320 620.5,-320 620.5,-320 690.5,-320 690.5,-320 696.5,-320 702.5,-326 702.5,-332 702.5,-332 702.5,-344 702.5,-344 702.5,-350 696.5,-356 690.5,-356"/>
<text text-anchor="middle" x="655.5" y="-335.8" font-family="Times,serif" font-size="9.00">Resource Access</text>
</g>
<!-- client_requests&#45;&gt;resource_access -->
<g id="edge15" class="edge">
<title>client_requests&#45;&gt;resource_access</title>
<path fill="none" stroke="#4a4a4a" d="M617.75,-399.85C617.75,-399.85 617.75,-366.08 617.75,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="621.25,-366.08 617.75,-356.08 614.25,-366.08 621.25,-366.08"/>
<text text-anchor="middle" x="647.5" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">creates</text>
</g>
<!-- parameter_validation -->
<g id="node15" class="node">
<title>parameter_validation</title>
<path fill="#cdcdcd" stroke="black" d="M581.5,-276C581.5,-276 491.5,-276 491.5,-276 485.5,-276 479.5,-270 479.5,-264 479.5,-264 479.5,-252 479.5,-252 479.5,-246 485.5,-240 491.5,-240 491.5,-240 581.5,-240 581.5,-240 587.5,-240 593.5,-246 593.5,-252 593.5,-252 593.5,-264 593.5,-264 593.5,-270 587.5,-276 581.5,-276"/>
<text text-anchor="middle" x="536.5" y="-255.8" font-family="Times,serif" font-size="9.00">Parameter Validation</text>
</g>
<!-- tool_invocation&#45;&gt;parameter_validation -->
<g id="edge14" class="edge">
<title>tool_invocation&#45;&gt;parameter_validation</title>
<path fill="none" stroke="#4a4a4a" d="M538.5,-319.85C538.5,-319.85 538.5,-286.08 538.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="542,-286.08 538.5,-276.08 535,-286.08 542,-286.08"/>
<text text-anchor="middle" x="553" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">performs</text>
</g>
<!-- persistent_system -->
<g id="node17" class="node">
<title>persistent_system</title>
<path fill="#cdcdcd" stroke="black" d="M699,-276C699,-276 624,-276 624,-276 618,-276 612,-270 612,-264 612,-264 612,-252 612,-252 612,-246 618,-240 624,-240 624,-240 699,-240 699,-240 705,-240 711,-246 711,-252 711,-252 711,-264 711,-264 711,-270 705,-276 699,-276"/>
<text text-anchor="middle" x="661.5" y="-255.8" font-family="Times,serif" font-size="9.00">Persistent System</text>
</g>
<!-- resource_access&#45;&gt;persistent_system -->
<g id="edge16" class="edge">
<title>resource_access&#45;&gt;persistent_system</title>
<path fill="none" stroke="#4a4a4a" d="M657.25,-319.85C657.25,-319.85 657.25,-286.08 657.25,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="660.75,-286.08 657.25,-276.08 653.75,-286.08 660.75,-286.08"/>
<text text-anchor="middle" x="675" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">utilizes</text>
</g>
<!-- dynamic_context_injection -->
<g id="node19" class="node">
<title>dynamic_context_injection</title>
<path fill="#c5c5c5" stroke="black" d="M793.5,-436C793.5,-436 665.5,-436 665.5,-436 659.5,-436 653.5,-430 653.5,-424 653.5,-424 653.5,-412 653.5,-412 653.5,-406 659.5,-400 665.5,-400 665.5,-400 793.5,-400 793.5,-400 799.5,-400 805.5,-406 805.5,-412 805.5,-412 805.5,-424 805.5,-424 805.5,-430 799.5,-436 793.5,-436"/>
<text text-anchor="middle" x="729.5" y="-415.5" font-family="Times,serif" font-size="10.00">Dynamic Context Injection</text>
</g>
<!-- context_integration&#45;&gt;dynamic_context_injection -->
<g id="edge18" class="edge">
<title>context_integration&#45;&gt;dynamic_context_injection</title>
<path fill="none" stroke="#4a4a4a" d="M740,-480.62C740,-480.62 740,-446.03 740,-446.03"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="743.5,-446.03 740,-436.03 736.5,-446.03 743.5,-446.03"/>
<text text-anchor="middle" x="757" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">supports</text>
</g>
<!-- real_time_data -->
<g id="node20" class="node">
<title>real_time_data</title>
<path fill="#c9c9c9" stroke="black" d="M802,-356C802,-356 741,-356 741,-356 735,-356 729,-350 729,-344 729,-344 729,-332 729,-332 729,-326 735,-320 741,-320 741,-320 802,-320 802,-320 808,-320 814,-326 814,-332 814,-332 814,-344 814,-344 814,-350 808,-356 802,-356"/>
<text text-anchor="middle" x="771.5" y="-335.8" font-family="Times,serif" font-size="9.00">Real&#45;time Data</text>
</g>
<!-- dynamic_context_injection&#45;&gt;real_time_data -->
<g id="edge19" class="edge">
<title>dynamic_context_injection&#45;&gt;real_time_data</title>
<path fill="none" stroke="#4a4a4a" d="M767.25,-399.85C767.25,-399.85 767.25,-366.08 767.25,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="770.75,-366.08 767.25,-356.08 763.75,-366.08 770.75,-366.08"/>
<text text-anchor="middle" x="764.5" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">informs</text>
</g>
<!-- live_system_state -->
<g id="node21" class="node">
<title>live_system_state</title>
<path fill="#cdcdcd" stroke="black" d="M816,-276C816,-276 741,-276 741,-276 735,-276 729,-270 729,-264 729,-264 729,-252 729,-252 729,-246 735,-240 741,-240 741,-240 816,-240 816,-240 822,-240 828,-246 828,-252 828,-252 828,-264 828,-264 828,-270 822,-276 816,-276"/>
<text text-anchor="middle" x="778.5" y="-255.8" font-family="Times,serif" font-size="9.00">Live System State</text>
</g>
<!-- real_time_data&#45;&gt;live_system_state -->
<g id="edge20" class="edge">
<title>real_time_data&#45;&gt;live_system_state</title>
<path fill="none" stroke="#4a4a4a" d="M771.5,-319.85C771.5,-319.85 771.5,-286.08 771.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="775,-286.08 771.5,-276.08 768,-286.08 775,-286.08"/>
<text text-anchor="middle" x="790" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">includes</text>
</g>
<!-- database_queries -->
<g id="node22" class="node">
<title>database_queries</title>
<path fill="#d1d1d1" stroke="black" d="M706.5,-196C706.5,-196 632.5,-196 632.5,-196 626.5,-196 620.5,-190 620.5,-184 620.5,-184 620.5,-172 620.5,-172 620.5,-166 626.5,-160 632.5,-160 632.5,-160 706.5,-160 706.5,-160 712.5,-160 718.5,-166 718.5,-172 718.5,-172 718.5,-184 718.5,-184 718.5,-190 712.5,-196 706.5,-196"/>
<text text-anchor="middle" x="669.5" y="-175.8" font-family="Times,serif" font-size="9.00">Database Queries</text>
</g>
<!-- live_system_state&#45;&gt;database_queries -->
<g id="edge21" class="edge">
<title>live_system_state&#45;&gt;database_queries</title>
<path fill="none" stroke="#4a4a4a" d="M728.9,-258C720.67,-258 714.75,-258 714.75,-258 714.75,-258 714.75,-206.15 714.75,-206.15"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="718.25,-206.15 714.75,-196.15 711.25,-206.15 718.25,-206.15"/>
<text text-anchor="middle" x="685" y="-216.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">includes</text>
</g>
<!-- api_responses -->
<g id="node23" class="node">
<title>api_responses</title>
<path fill="#d1d1d1" stroke="black" d="M808.5,-196C808.5,-196 748.5,-196 748.5,-196 742.5,-196 736.5,-190 736.5,-184 736.5,-184 736.5,-172 736.5,-172 736.5,-166 742.5,-160 748.5,-160 748.5,-160 808.5,-160 808.5,-160 814.5,-160 820.5,-166 820.5,-172 820.5,-172 820.5,-184 820.5,-184 820.5,-190 814.5,-196 808.5,-196"/>
<text text-anchor="middle" x="778.5" y="-175.8" font-family="Times,serif" font-size="9.00">API Responses</text>
</g>
<!-- live_system_state&#45;&gt;api_responses -->
<g id="edge22" class="edge">
<title>live_system_state&#45;&gt;api_responses</title>
<path fill="none" stroke="#4a4a4a" d="M778.5,-239.85C778.5,-239.85 778.5,-206.08 778.5,-206.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="782,-206.08 778.5,-196.08 775,-206.08 782,-206.08"/>
<text text-anchor="middle" x="794" y="-216.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">includes</text>
</g>
<!-- file_system_access -->
<g id="node24" class="node">
<title>file_system_access</title>
<path fill="#d1d1d1" stroke="black" d="M930.5,-196C930.5,-196 850.5,-196 850.5,-196 844.5,-196 838.5,-190 838.5,-184 838.5,-184 838.5,-172 838.5,-172 838.5,-166 844.5,-160 850.5,-160 850.5,-160 930.5,-160 930.5,-160 936.5,-160 942.5,-166 942.5,-172 942.5,-172 942.5,-184 942.5,-184 942.5,-190 936.5,-196 930.5,-196"/>
<text text-anchor="middle" x="890.5" y="-175.8" font-family="Times,serif" font-size="9.00">File System Access</text>
</g>
<!-- live_system_state&#45;&gt;file_system_access -->
<g id="edge23" class="edge">
<title>live_system_state&#45;&gt;file_system_access</title>
<path fill="none" stroke="#4a4a4a" d="M824.25,-239.85C824.25,-216.24 824.25,-178 824.25,-178 824.25,-178 828.3,-178 828.3,-178"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="828.3,-181.5 838.3,-178 828.3,-174.5 828.3,-181.5"/>
<text text-anchor="middle" x="906" y="-216.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">includes</text>
</g>
<!-- authentication_layer -->
<g id="node26" class="node">
<title>authentication_layer</title>
<path fill="#c5c5c5" stroke="black" d="M935.5,-436C935.5,-436 835.5,-436 835.5,-436 829.5,-436 823.5,-430 823.5,-424 823.5,-424 823.5,-412 823.5,-412 823.5,-406 829.5,-400 835.5,-400 835.5,-400 935.5,-400 935.5,-400 941.5,-400 947.5,-406 947.5,-412 947.5,-412 947.5,-424 947.5,-424 947.5,-430 941.5,-436 935.5,-436"/>
<text text-anchor="middle" x="885.5" y="-415.5" font-family="Times,serif" font-size="10.00">Authentication Layer</text>
</g>
<!-- security_framework&#45;&gt;authentication_layer -->
<g id="edge25" class="edge">
<title>security_framework&#45;&gt;authentication_layer</title>
<path fill="none" stroke="#4a4a4a" d="M914,-480.62C914,-480.62 914,-446.03 914,-446.03"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="917.5,-446.03 914,-436.03 910.5,-446.03 917.5,-446.03"/>
<text text-anchor="middle" x="924.5" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">provides</text>
</g>
<!-- authorization_controls -->
<g id="node28" class="node">
<title>authorization_controls</title>
<path fill="#c5c5c5" stroke="black" d="M1085,-436C1085,-436 978,-436 978,-436 972,-436 966,-430 966,-424 966,-424 966,-412 966,-412 966,-406 972,-400 978,-400 978,-400 1085,-400 1085,-400 1091,-400 1097,-406 1097,-412 1097,-412 1097,-424 1097,-424 1097,-430 1091,-436 1085,-436"/>
<text text-anchor="middle" x="1031.5" y="-415.5" font-family="Times,serif" font-size="10.00">Authorization Controls</text>
</g>
<!-- security_framework&#45;&gt;authorization_controls -->
<g id="edge27" class="edge">
<title>security_framework&#45;&gt;authorization_controls</title>
<path fill="none" stroke="#4a4a4a" d="M984.83,-480.62C984.83,-480.62 984.83,-446.03 984.83,-446.03"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="988.33,-446.03 984.83,-436.03 981.33,-446.03 988.33,-446.03"/>
<text text-anchor="middle" x="1024" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">enforce</text>
</g>
<!-- data_isolation -->
<g id="node30" class="node">
<title>data_isolation</title>
<path fill="#c5c5c5" stroke="black" d="M1190,-436C1190,-436 1127,-436 1127,-436 1121,-436 1115,-430 1115,-424 1115,-424 1115,-412 1115,-412 1115,-406 1121,-400 1127,-400 1127,-400 1190,-400 1190,-400 1196,-400 1202,-406 1202,-412 1202,-412 1202,-424 1202,-424 1202,-430 1196,-436 1190,-436"/>
<text text-anchor="middle" x="1158.5" y="-415.5" font-family="Times,serif" font-size="10.00">Data Isolation</text>
</g>
<!-- security_framework&#45;&gt;data_isolation -->
<g id="edge29" class="edge">
<title>security_framework&#45;&gt;data_isolation</title>
<path fill="none" stroke="#4a4a4a" d="M1003.67,-480.9C1003.67,-469.91 1003.67,-458 1003.67,-458 1003.67,-458 1146.25,-458 1146.25,-458 1146.25,-458 1146.25,-446.13 1146.25,-446.13"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1149.75,-446.13 1146.25,-436.13 1142.75,-446.13 1149.75,-446.13"/>
<text text-anchor="middle" x="1104" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">ensures</text>
</g>
<!-- token_based_auth -->
<g id="node27" class="node">
<title>token_based_auth</title>
<path fill="#c9c9c9" stroke="black" d="M923,-356C923,-356 848,-356 848,-356 842,-356 836,-350 836,-344 836,-344 836,-332 836,-332 836,-326 842,-320 848,-320 848,-320 923,-320 923,-320 929,-320 935,-326 935,-332 935,-332 935,-344 935,-344 935,-350 929,-356 923,-356"/>
<text text-anchor="middle" x="885.5" y="-335.8" font-family="Times,serif" font-size="9.00">Token&#45;based Auth</text>
</g>
<!-- authentication_layer&#45;&gt;token_based_auth -->
<g id="edge26" class="edge">
<title>authentication_layer&#45;&gt;token_based_auth</title>
<path fill="none" stroke="#4a4a4a" d="M885.5,-399.85C885.5,-399.85 885.5,-366.08 885.5,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="889,-366.08 885.5,-356.08 882,-366.08 889,-366.08"/>
<text text-anchor="middle" x="899" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">utilizes</text>
</g>
<!-- role_based_access -->
<g id="node29" class="node">
<title>role_based_access</title>
<path fill="#c9c9c9" stroke="black" d="M1070,-356C1070,-356 993,-356 993,-356 987,-356 981,-350 981,-344 981,-344 981,-332 981,-332 981,-326 987,-320 993,-320 993,-320 1070,-320 1070,-320 1076,-320 1082,-326 1082,-332 1082,-332 1082,-344 1082,-344 1082,-350 1076,-356 1070,-356"/>
<text text-anchor="middle" x="1031.5" y="-335.8" font-family="Times,serif" font-size="9.00">Role&#45;based Access</text>
</g>
<!-- authorization_controls&#45;&gt;role_based_access -->
<g id="edge28" class="edge">
<title>authorization_controls&#45;&gt;role_based_access</title>
<path fill="none" stroke="#4a4a4a" d="M1031.5,-399.85C1031.5,-399.85 1031.5,-366.08 1031.5,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1035,-366.08 1031.5,-356.08 1028,-366.08 1035,-366.08"/>
<text text-anchor="middle" x="1053" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">implements</text>
</g>
<!-- sandboxed_execution -->
<g id="node31" class="node">
<title>sandboxed_execution</title>
<path fill="#c9c9c9" stroke="black" d="M1205,-356C1205,-356 1112,-356 1112,-356 1106,-356 1100,-350 1100,-344 1100,-344 1100,-332 1100,-332 1100,-326 1106,-320 1112,-320 1112,-320 1205,-320 1205,-320 1211,-320 1217,-326 1217,-332 1217,-332 1217,-344 1217,-344 1217,-350 1211,-356 1205,-356"/>
<text text-anchor="middle" x="1158.5" y="-335.8" font-family="Times,serif" font-size="9.00">Sandboxed Execution</text>
</g>
<!-- data_isolation&#45;&gt;sandboxed_execution -->
<g id="edge30" class="edge">
<title>data_isolation&#45;&gt;sandboxed_execution</title>
<path fill="none" stroke="#4a4a4a" d="M1158.5,-399.85C1158.5,-399.85 1158.5,-366.08 1158.5,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1162,-366.08 1158.5,-356.08 1155,-366.08 1162,-366.08"/>
<text text-anchor="middle" x="1174" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">provides</text>
</g>
<!-- plugin_architecture -->
<g id="node33" class="node">
<title>plugin_architecture</title>
<path fill="#c5c5c5" stroke="black" d="M1325.5,-436C1325.5,-436 1233.5,-436 1233.5,-436 1227.5,-436 1221.5,-430 1221.5,-424 1221.5,-424 1221.5,-412 1221.5,-412 1221.5,-406 1227.5,-400 1233.5,-400 1233.5,-400 1325.5,-400 1325.5,-400 1331.5,-400 1337.5,-406 1337.5,-412 1337.5,-412 1337.5,-424 1337.5,-424 1337.5,-430 1331.5,-436 1325.5,-436"/>
<text text-anchor="middle" x="1279.5" y="-415.5" font-family="Times,serif" font-size="10.00">Plugin Architecture</text>
</g>
<!-- extensibility_model&#45;&gt;plugin_architecture -->
<g id="edge32" class="edge">
<title>extensibility_model&#45;&gt;plugin_architecture</title>
<path fill="none" stroke="#4a4a4a" d="M1177.9,-499C1224.86,-499 1279.5,-499 1279.5,-499 1279.5,-499 1279.5,-446.38 1279.5,-446.38"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-446.38 1279.5,-436.38 1276,-446.38 1283,-446.38"/>
<text text-anchor="middle" x="1171" y="-456.6" font-family="Times,serif" font-size="8.00" fill="#4a4a4a">enables</text>
</g>
<!-- custom_servers -->
<g id="node34" class="node">
<title>custom_servers</title>
<path fill="#c9c9c9" stroke="black" d="M1312,-356C1312,-356 1247,-356 1247,-356 1241,-356 1235,-350 1235,-344 1235,-344 1235,-332 1235,-332 1235,-326 1241,-320 1247,-320 1247,-320 1312,-320 1312,-320 1318,-320 1324,-326 1324,-332 1324,-332 1324,-344 1324,-344 1324,-350 1318,-356 1312,-356"/>
<text text-anchor="middle" x="1279.5" y="-335.8" font-family="Times,serif" font-size="9.00">Custom Servers</text>
</g>
<!-- plugin_architecture&#45;&gt;custom_servers -->
<g id="edge33" class="edge">
<title>plugin_architecture&#45;&gt;custom_servers</title>
<path fill="none" stroke="#4a4a4a" d="M1279.5,-399.85C1279.5,-399.85 1279.5,-366.08 1279.5,-366.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-366.08 1279.5,-356.08 1276,-366.08 1283,-366.08"/>
<text text-anchor="middle" x="1291.5" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">allows</text>
</g>
<!-- standardized_interfaces -->
<g id="node39" class="node">
<title>standardized_interfaces</title>
<path fill="#c9c9c9" stroke="black" d="M1458.5,-356C1458.5,-356 1354.5,-356 1354.5,-356 1348.5,-356 1342.5,-350 1342.5,-344 1342.5,-344 1342.5,-332 1342.5,-332 1342.5,-326 1348.5,-320 1354.5,-320 1354.5,-320 1458.5,-320 1458.5,-320 1464.5,-320 1470.5,-326 1470.5,-332 1470.5,-332 1470.5,-344 1470.5,-344 1470.5,-350 1464.5,-356 1458.5,-356"/>
<text text-anchor="middle" x="1406.5" y="-335.8" font-family="Times,serif" font-size="9.00">Standardized Interfaces</text>
</g>
<!-- plugin_architecture&#45;&gt;standardized_interfaces -->
<g id="edge38" class="edge">
<title>plugin_architecture&#45;&gt;standardized_interfaces</title>
<path fill="none" stroke="#4a4a4a" d="M1330.75,-399.85C1330.75,-376.24 1330.75,-338 1330.75,-338 1330.75,-338 1332.25,-338 1332.25,-338"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1332.25,-341.5 1342.25,-338 1332.25,-334.5 1332.25,-341.5"/>
<text text-anchor="middle" x="1380" y="-376.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">defines</text>
</g>
<!-- domain_specific_tools -->
<g id="node35" class="node">
<title>domain_specific_tools</title>
<path fill="#cdcdcd" stroke="black" d="M1325.5,-276C1325.5,-276 1233.5,-276 1233.5,-276 1227.5,-276 1221.5,-270 1221.5,-264 1221.5,-264 1221.5,-252 1221.5,-252 1221.5,-246 1227.5,-240 1233.5,-240 1233.5,-240 1325.5,-240 1325.5,-240 1331.5,-240 1337.5,-246 1337.5,-252 1337.5,-252 1337.5,-264 1337.5,-264 1337.5,-270 1331.5,-276 1325.5,-276"/>
<text text-anchor="middle" x="1279.5" y="-255.8" font-family="Times,serif" font-size="9.00">Domain&#45;specific Tools</text>
</g>
<!-- custom_servers&#45;&gt;domain_specific_tools -->
<g id="edge34" class="edge">
<title>custom_servers&#45;&gt;domain_specific_tools</title>
<path fill="none" stroke="#4a4a4a" d="M1279.5,-319.85C1279.5,-319.85 1279.5,-286.08 1279.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-286.08 1279.5,-276.08 1276,-286.08 1283,-286.08"/>
<text text-anchor="middle" x="1293.5" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">creates</text>
</g>
<!-- business_logic_integration -->
<g id="node36" class="node">
<title>business_logic_integration</title>
<path fill="#d1d1d1" stroke="black" d="M1338,-196C1338,-196 1221,-196 1221,-196 1215,-196 1209,-190 1209,-184 1209,-184 1209,-172 1209,-172 1209,-166 1215,-160 1221,-160 1221,-160 1338,-160 1338,-160 1344,-160 1350,-166 1350,-172 1350,-172 1350,-184 1350,-184 1350,-190 1344,-196 1338,-196"/>
<text text-anchor="middle" x="1279.5" y="-175.8" font-family="Times,serif" font-size="9.00">Business Logic Integration</text>
</g>
<!-- domain_specific_tools&#45;&gt;business_logic_integration -->
<g id="edge35" class="edge">
<title>domain_specific_tools&#45;&gt;business_logic_integration</title>
<path fill="none" stroke="#4a4a4a" d="M1279.5,-239.85C1279.5,-239.85 1279.5,-206.08 1279.5,-206.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-206.08 1279.5,-196.08 1276,-206.08 1283,-206.08"/>
<text text-anchor="middle" x="1294" y="-216.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">enables</text>
</g>
<!-- workflow_automation -->
<g id="node37" class="node">
<title>workflow_automation</title>
<path fill="#d5d5d5" stroke="black" d="M1325.5,-116C1325.5,-116 1233.5,-116 1233.5,-116 1227.5,-116 1221.5,-110 1221.5,-104 1221.5,-104 1221.5,-92 1221.5,-92 1221.5,-86 1227.5,-80 1233.5,-80 1233.5,-80 1325.5,-80 1325.5,-80 1331.5,-80 1337.5,-86 1337.5,-92 1337.5,-92 1337.5,-104 1337.5,-104 1337.5,-110 1331.5,-116 1325.5,-116"/>
<text text-anchor="middle" x="1279.5" y="-95.8" font-family="Times,serif" font-size="9.00">Workflow Automation</text>
</g>
<!-- business_logic_integration&#45;&gt;workflow_automation -->
<g id="edge36" class="edge">
<title>business_logic_integration&#45;&gt;workflow_automation</title>
<path fill="none" stroke="#4a4a4a" d="M1279.5,-159.85C1279.5,-159.85 1279.5,-126.08 1279.5,-126.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-126.08 1279.5,-116.08 1276,-126.08 1283,-126.08"/>
<text text-anchor="middle" x="1295.5" y="-136.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">supports</text>
</g>
<!-- ai_agent_orchestration -->
<g id="node38" class="node">
<title>ai_agent_orchestration</title>
<path fill="#d9d9d9" stroke="black" d="M1330,-36C1330,-36 1229,-36 1229,-36 1223,-36 1217,-30 1217,-24 1217,-24 1217,-12 1217,-12 1217,-6 1223,0 1229,0 1229,0 1330,0 1330,0 1336,0 1342,-6 1342,-12 1342,-12 1342,-24 1342,-24 1342,-30 1336,-36 1330,-36"/>
<text text-anchor="middle" x="1279.5" y="-15.8" font-family="Times,serif" font-size="9.00">AI Agent Orchestration</text>
</g>
<!-- workflow_automation&#45;&gt;ai_agent_orchestration -->
<g id="edge37" class="edge">
<title>workflow_automation&#45;&gt;ai_agent_orchestration</title>
<path fill="none" stroke="#4a4a4a" d="M1279.5,-79.85C1279.5,-79.85 1279.5,-46.08 1279.5,-46.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1283,-46.08 1279.5,-36.08 1276,-46.08 1283,-46.08"/>
<text text-anchor="middle" x="1295.5" y="-56.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">supports</text>
</g>
<!-- tool_schema -->
<g id="node40" class="node">
<title>tool_schema</title>
<path fill="#cdcdcd" stroke="black" d="M1424.5,-276C1424.5,-276 1374.5,-276 1374.5,-276 1368.5,-276 1362.5,-270 1362.5,-264 1362.5,-264 1362.5,-252 1362.5,-252 1362.5,-246 1368.5,-240 1374.5,-240 1374.5,-240 1424.5,-240 1424.5,-240 1430.5,-240 1436.5,-246 1436.5,-252 1436.5,-252 1436.5,-264 1436.5,-264 1436.5,-270 1430.5,-276 1424.5,-276"/>
<text text-anchor="middle" x="1399.5" y="-255.8" font-family="Times,serif" font-size="9.00">Tool Schema</text>
</g>
<!-- standardized_interfaces&#45;&gt;tool_schema -->
<g id="edge39" class="edge">
<title>standardized_interfaces&#45;&gt;tool_schema</title>
<path fill="none" stroke="#4a4a4a" d="M1399.5,-319.85C1399.5,-319.85 1399.5,-286.08 1399.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1403,-286.08 1399.5,-276.08 1396,-286.08 1403,-286.08"/>
<text text-anchor="middle" x="1415.5" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">specifies</text>
</g>
<!-- resource_schema -->
<g id="node41" class="node">
<title>resource_schema</title>
<path fill="#cdcdcd" stroke="black" d="M1540.5,-276C1540.5,-276 1466.5,-276 1466.5,-276 1460.5,-276 1454.5,-270 1454.5,-264 1454.5,-264 1454.5,-252 1454.5,-252 1454.5,-246 1460.5,-240 1466.5,-240 1466.5,-240 1540.5,-240 1540.5,-240 1546.5,-240 1552.5,-246 1552.5,-252 1552.5,-252 1552.5,-264 1552.5,-264 1552.5,-270 1546.5,-276 1540.5,-276"/>
<text text-anchor="middle" x="1503.5" y="-255.8" font-family="Times,serif" font-size="9.00">Resource Schema</text>
</g>
<!-- standardized_interfaces&#45;&gt;resource_schema -->
<g id="edge40" class="edge">
<title>standardized_interfaces&#45;&gt;resource_schema</title>
<path fill="none" stroke="#4a4a4a" d="M1462.5,-319.85C1462.5,-319.85 1462.5,-286.08 1462.5,-286.08"/>
<polygon fill="#4a4a4a" stroke="#4a4a4a" points="1466,-286.08 1462.5,-276.08 1459,-286.08 1466,-286.08"/>
<text text-anchor="middle" x="1519.5" y="-296.4" font-family="Times,serif" font-size="7.00" fill="#4a4a4a">specifies</text>
</g>
</g>
</svg>