@@ -47,27 +47,41 @@ web-app: {
47
47
label : "Editor\n\n Web-based editor for\n ΔQ expressions "
48
48
}
49
49
50
- visualizer : {
50
+ agent : {
51
51
class : component
52
- label : "Visualizer\n\n Renders CDFs and\n resource usage graphs "
52
+ label : "Agent\n\n Evaluates ΔQ expressions\n in a web worker "
53
+ }
54
+
55
+ index : {
56
+ class : component
57
+ label : index.html JS code\n\n Uses plotly.js for visualisation of CDFs and\n resource usage distribution functions
53
58
}
54
59
55
60
storage : {
56
61
class : component
57
62
label : "Local Storage\n\n Persists expressions\n and models "
58
63
}
64
+
65
+ editor -> storage : "Saves/loads "
66
+ editor -> agent : "Sends ΔQ expression "
67
+ editor -> index : "Renders "
59
68
}
60
69
61
70
# Core Engine Container
62
71
core : {
63
72
class : container
64
- label : "Core Engine "
73
+ label : "Core Engine (WASM) "
65
74
66
75
parser : {
67
76
class : component
68
77
label : "Parser\n\n Parses ΔQ expressions\n and metrics "
69
78
}
70
79
80
+ renderer : {
81
+ class : component
82
+ label : "Renderer\n\n Renders ΔQ expressions\n and supports edits "
83
+ }
84
+
71
85
evaluator : {
72
86
class : component
73
87
label : "Evaluator\n\n Computes CDFs and\n resource metrics "
@@ -77,6 +91,34 @@ core: {
77
91
class : component
78
92
label : "Gossip Engine\n\n Implements gossip\n operator evaluation "
79
93
}
94
+
95
+ step_function : {
96
+ class : component
97
+ label : "Step Function\n\n Implements step functions\n (also CDF specialisation) "
98
+ }
99
+
100
+ outcome : {
101
+ class : component
102
+ label : "Outcome\n\n Completion CDF\n plus resource usage\n step functions "
103
+ }
104
+
105
+ compaction : {
106
+ class : component
107
+ label : "Compaction\n\n Compacts the outcome\n to bounded complexity "
108
+ }
109
+
110
+ ast : {
111
+ class : component
112
+ label : "DeltaQ\n\n Abstract syntax tree\n for ΔQ expressions "
113
+ }
114
+
115
+ evaluator -> gossip : "uses "
116
+ evaluator -> outcome : "uses "
117
+ outcome -> step_function : "uses "
118
+ outcome -> compaction : "uses "
119
+ parser -> ast : "uses "
120
+ renderer -> ast : "uses "
121
+ gossip -> ast : "uses "
80
122
}
81
123
82
124
# Dependencies Container
@@ -93,13 +135,17 @@ deps: {
93
135
class : component
94
136
label : "WASM Bindings\n\n Web APIs and\n JavaScript interop "
95
137
}
138
+
139
+ plotly : {
140
+ class : component
141
+ label : "Plotly.js\n\n JavaScript library for\n visualisation "
142
+ }
143
+
144
+ yew -> wasm : "Uses "
96
145
}
97
146
98
147
# Relationships
99
- web-app .editor -> core .parser : "Sends expressions "
100
- web-app .editor -> web-app .storage : "Saves/loads "
101
- web-app .visualizer -> core .evaluator : "Gets results "
102
- core .parser -> core .evaluator : "Provides AST "
103
- core .evaluator -> core .gossip : "Uses for gossip\n operations "
104
- web-app -> deps .yew : "Built with "
105
- deps .yew -> deps .wasm : "Uses "
148
+ web-app .editor -> core .parser : "Turns text into DeltaQ "
149
+ web-app .agent -> core .evaluator : "Turns DeltaQ into CDFs\n and resource usage distribution functions "
150
+ web-app .editor -> core .renderer : "Turns DeltaQ into HTML "
151
+ web-app -> deps : "Built with "
0 commit comments