@copilotkitnext/angular 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/coverage/clover.xml +0 -2008
- package/coverage/coverage-final.json +0 -44
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -251
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-buttons.ts.html +0 -1039
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-renderer.ts.html +0 -1411
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-toolbar.ts.html +0 -145
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message.ts.html +0 -1486
- package/coverage/lcov-report/src/components/chat/copilot-chat-audio-recorder.ts.html +0 -811
- package/coverage/lcov-report/src/components/chat/copilot-chat-buttons.ts.html +0 -1009
- package/coverage/lcov-report/src/components/chat/copilot-chat-input.ts.html +0 -1519
- package/coverage/lcov-report/src/components/chat/copilot-chat-input.types.ts.html +0 -529
- package/coverage/lcov-report/src/components/chat/copilot-chat-message-view-cursor.ts.html +0 -196
- package/coverage/lcov-report/src/components/chat/copilot-chat-message-view.ts.html +0 -715
- package/coverage/lcov-report/src/components/chat/copilot-chat-textarea.ts.html +0 -634
- package/coverage/lcov-report/src/components/chat/copilot-chat-tool-calls-view.ts.html +0 -889
- package/coverage/lcov-report/src/components/chat/copilot-chat-toolbar.ts.html +0 -175
- package/coverage/lcov-report/src/components/chat/copilot-chat-tools-menu.ts.html +0 -625
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-branch-navigation.ts.html +0 -403
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-buttons.ts.html +0 -580
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-renderer.ts.html +0 -181
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-toolbar.ts.html +0 -184
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message.ts.html +0 -784
- package/coverage/lcov-report/src/components/chat/copilot-chat-view-handlers.ts.html +0 -127
- package/coverage/lcov-report/src/components/chat/index.html +0 -401
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.providers.ts.html +0 -304
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.ts.html +0 -580
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.types.ts.html +0 -256
- package/coverage/lcov-report/src/core/chat-configuration/index.html +0 -146
- package/coverage/lcov-report/src/core/copilotkit.providers.ts.html +0 -262
- package/coverage/lcov-report/src/core/copilotkit.ts.html +0 -1612
- package/coverage/lcov-report/src/core/copilotkit.types.ts.html +0 -478
- package/coverage/lcov-report/src/core/index.html +0 -146
- package/coverage/lcov-report/src/directives/copilotkit-agent-context.ts.html +0 -499
- package/coverage/lcov-report/src/directives/copilotkit-agent.ts.html +0 -742
- package/coverage/lcov-report/src/directives/copilotkit-chat-config.ts.html +0 -781
- package/coverage/lcov-report/src/directives/copilotkit-config.ts.html +0 -328
- package/coverage/lcov-report/src/directives/copilotkit-frontend-tool.ts.html +0 -517
- package/coverage/lcov-report/src/directives/copilotkit-human-in-the-loop.ts.html +0 -925
- package/coverage/lcov-report/src/directives/index.html +0 -191
- package/coverage/lcov-report/src/lib/directives/index.html +0 -116
- package/coverage/lcov-report/src/lib/directives/tooltip.ts.html +0 -958
- package/coverage/lcov-report/src/lib/index.html +0 -116
- package/coverage/lcov-report/src/lib/slots/copilot-slot.ts.html +0 -526
- package/coverage/lcov-report/src/lib/slots/index.html +0 -146
- package/coverage/lcov-report/src/lib/slots/slot.types.ts.html +0 -274
- package/coverage/lcov-report/src/lib/slots/slot.utils.ts.html +0 -985
- package/coverage/lcov-report/src/lib/utils.ts.html +0 -112
- package/coverage/lcov-report/src/testing/index.html +0 -116
- package/coverage/lcov-report/src/testing/testing.utils.ts.html +0 -835
- package/coverage/lcov-report/src/utils/agent.utils.ts.html +0 -850
- package/coverage/lcov-report/src/utils/chat-config.utils.ts.html +0 -745
- package/coverage/lcov-report/src/utils/frontend-tool.utils.ts.html +0 -871
- package/coverage/lcov-report/src/utils/human-in-the-loop.utils.ts.html +0 -1150
- package/coverage/lcov-report/src/utils/index.html +0 -161
- package/coverage/lcov-report/test-mocks/index.html +0 -116
- package/coverage/lcov-report/test-mocks/marked.ts.html +0 -127
- package/coverage/lcov.info +0 -4216
|
@@ -1,925 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/directives/copilotkit-human-in-the-loop.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/directives</a> copilotkit-human-in-the-loop.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">83.82% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>57/68</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">70.21% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>33/47</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">82.35% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>14/17</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">82.25% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>51/62</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-yes">1x</span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-yes">1x</span>
|
|
368
|
-
<span class="cline-any cline-yes">1x</span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-yes">1x</span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-yes">11x</span>
|
|
415
|
-
<span class="cline-any cline-yes">11x</span>
|
|
416
|
-
<span class="cline-any cline-yes">11x</span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-yes">11x</span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-yes">11x</span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-yes">11x</span>
|
|
454
|
-
<span class="cline-any cline-yes">1x</span>
|
|
455
|
-
<span class="cline-any cline-yes">1x</span>
|
|
456
|
-
<span class="cline-any cline-yes">1x</span>
|
|
457
|
-
<span class="cline-any cline-yes">1x</span>
|
|
458
|
-
<span class="cline-any cline-yes">1x</span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-yes">11x</span>
|
|
466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-yes">1x</span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-yes">1x</span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-yes">11x</span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-yes">11x</span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-yes">11x</span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-yes">11x</span>
|
|
496
|
-
<span class="cline-any cline-yes">10x</span>
|
|
497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-yes">14x</span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-yes">14x</span>
|
|
509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-yes">3x</span>
|
|
511
|
-
<span class="cline-any cline-yes">3x</span>
|
|
512
|
-
<span class="cline-any cline-yes">2x</span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-yes">11x</span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-no"> </span>
|
|
527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-neutral"> </span>
|
|
529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
530
|
-
<span class="cline-any cline-yes">12x</span>
|
|
531
|
-
<span class="cline-any cline-no"> </span>
|
|
532
|
-
<span class="cline-any cline-no"> </span>
|
|
533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-no"> </span>
|
|
538
|
-
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-yes">12x</span>
|
|
542
|
-
<span class="cline-any cline-yes">2x</span>
|
|
543
|
-
<span class="cline-any cline-yes">2x</span>
|
|
544
|
-
<span class="cline-any cline-yes">2x</span>
|
|
545
|
-
<span class="cline-any cline-yes">2x</span>
|
|
546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">12x</span>
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-neutral"> </span>
|
|
555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
557
|
-
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-yes">12x</span>
|
|
560
|
-
<span class="cline-any cline-yes">12x</span>
|
|
561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-yes">12x</span>
|
|
564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-yes">14x</span>
|
|
571
|
-
<span class="cline-any cline-yes">12x</span>
|
|
572
|
-
<span class="cline-any cline-yes">12x</span>
|
|
573
|
-
<span class="cline-any cline-yes">12x</span>
|
|
574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
575
|
-
<span class="cline-any cline-neutral"> </span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-yes">12x</span>
|
|
584
|
-
<span class="cline-any cline-yes">12x</span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-yes">12x</span>
|
|
587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-no"> </span>
|
|
591
|
-
<span class="cline-any cline-no"> </span>
|
|
592
|
-
<span class="cline-any cline-no"> </span>
|
|
593
|
-
<span class="cline-any cline-no"> </span>
|
|
594
|
-
<span class="cline-any cline-no"> </span>
|
|
595
|
-
<span class="cline-any cline-no"> </span>
|
|
596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">2x</span>
|
|
601
|
-
<span class="cline-any cline-yes">2x</span>
|
|
602
|
-
<span class="cline-any cline-yes">2x</span>
|
|
603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-yes">1x</span>
|
|
617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
623
|
-
<span class="cline-any cline-no"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
627
|
-
Directive,
|
|
628
|
-
Input,
|
|
629
|
-
Output,
|
|
630
|
-
EventEmitter,
|
|
631
|
-
OnInit,
|
|
632
|
-
OnChanges,
|
|
633
|
-
OnDestroy,
|
|
634
|
-
SimpleChanges,
|
|
635
|
-
TemplateRef,
|
|
636
|
-
Type,
|
|
637
|
-
signal,
|
|
638
|
-
isDevMode,
|
|
639
|
-
Inject,
|
|
640
|
-
} from "@angular/core";
|
|
641
|
-
import { CopilotKit } from "../core/copilotkit";
|
|
642
|
-
import type {
|
|
643
|
-
AngularHumanInTheLoop,
|
|
644
|
-
HumanInTheLoopProps,
|
|
645
|
-
AngularFrontendTool,
|
|
646
|
-
} from "../core/copilotkit.types";
|
|
647
|
-
import { ToolCallStatus } from "../core/copilotkit.types";
|
|
648
|
-
import * as z from "zod";
|
|
649
|
-
|
|
650
|
-
/**
|
|
651
|
-
* Directive for declaratively creating human-in-the-loop tools.
|
|
652
|
-
* Provides reactive outputs for status changes and response events.
|
|
653
|
-
*
|
|
654
|
-
* @example
|
|
655
|
-
* ```html
|
|
656
|
-
* <!-- Basic usage -->
|
|
657
|
-
* <div copilotkitHumanInTheLoop
|
|
658
|
-
* [name]="'requireApproval'"
|
|
659
|
-
* [description]="'Requires user approval'"
|
|
660
|
-
* [args]="argsSchema"
|
|
661
|
-
* [render]="approvalComponent"
|
|
662
|
-
* (statusChange)="onStatusChange($event)"
|
|
663
|
-
* (responseProvided)="onResponse($event)">
|
|
664
|
-
* </div>
|
|
665
|
-
*
|
|
666
|
-
* <!-- With template -->
|
|
667
|
-
* <div copilotkitHumanInTheLoop
|
|
668
|
-
* [name]="'requireApproval'"
|
|
669
|
-
* [description]="'Requires user approval'"
|
|
670
|
-
* [args]="argsSchema"
|
|
671
|
-
* [render]="approvalTemplate"
|
|
672
|
-
* [(status)]="approvalStatus">
|
|
673
|
-
* </div>
|
|
674
|
-
*
|
|
675
|
-
* <ng-template #approvalTemplate let-props>
|
|
676
|
-
* <div *ngIf="props.status === 'executing'">
|
|
677
|
-
* <p>{{ props.args.action }}</p>
|
|
678
|
-
* <button (click)="props.respond('approved')">Approve</button>
|
|
679
|
-
* <button (click)="props.respond('rejected')">Reject</button>
|
|
680
|
-
* </div>
|
|
681
|
-
* </ng-template>
|
|
682
|
-
* ```
|
|
683
|
-
*/
|
|
684
|
-
@Directive({
|
|
685
|
-
standalone: true,
|
|
686
|
-
selector: "[copilotkitHumanInTheLoop]",
|
|
687
|
-
})
|
|
688
|
-
export class CopilotKitHumanInTheLoop<
|
|
689
|
-
T extends Record<string, any> = Record<string, any>,
|
|
690
|
-
>
|
|
691
|
-
implements OnInit, OnChanges, OnDestroy
|
|
692
|
-
{
|
|
693
|
-
private toolId?: string;
|
|
694
|
-
private statusSignal = signal<ToolCallStatus>(ToolCallStatus.InProgress);
|
|
695
|
-
private resolvePromise: ((result: unknown) => void) | null = null;
|
|
696
|
-
private _status: ToolCallStatus = ToolCallStatus.InProgress;
|
|
697
|
-
|
|
698
|
-
constructor(
|
|
699
|
-
@Inject(CopilotKit) private readonly copilotkit: CopilotKit<span class="branch-1 cbranch-no" title="branch not covered" ></span>
|
|
700
|
-
) {}
|
|
701
|
-
|
|
702
|
-
/**
|
|
703
|
-
* The name of the human-in-the-loop tool.
|
|
704
|
-
*/
|
|
705
|
-
@Input() name!: string;
|
|
706
|
-
|
|
707
|
-
/**
|
|
708
|
-
* Description of what the tool does.
|
|
709
|
-
*/
|
|
710
|
-
@Input() description!: string;
|
|
711
|
-
|
|
712
|
-
/**
|
|
713
|
-
* Zod schema for the tool parameters.
|
|
714
|
-
*/
|
|
715
|
-
@Input() parameters!: z.ZodSchema<T>;
|
|
716
|
-
|
|
717
|
-
/**
|
|
718
|
-
* Component class or template to render for user interaction.
|
|
719
|
-
*/
|
|
720
|
-
@Input() render!: Type<any> | TemplateRef<HumanInTheLoopProps<T>>;
|
|
721
|
-
|
|
722
|
-
/**
|
|
723
|
-
* Whether the tool should be registered (default: true).
|
|
724
|
-
*/
|
|
725
|
-
@Input() enabled = true;
|
|
726
|
-
|
|
727
|
-
/**
|
|
728
|
-
* Alternative input using the directive selector.
|
|
729
|
-
* Allows: [copilotkitHumanInTheLoop]="config"
|
|
730
|
-
*/
|
|
731
|
-
@Input("copilotkitHumanInTheLoop")
|
|
732
|
-
set config(value: Partial<AngularHumanInTheLoop<T>> | undefined) {
|
|
733
|
-
if (value) {
|
|
734
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (value.name) this.name = value.name;
|
|
735
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (value.description) this.description = value.description;
|
|
736
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if ("parameters" in value && value.parameters)
|
|
737
|
-
this.parameters = value.parameters as z.ZodSchema<T>;
|
|
738
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if ("render" in value && value.render) this.render = value.render;
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
/**
|
|
743
|
-
* Emits when the status changes.
|
|
744
|
-
*/
|
|
745
|
-
@Output() statusChange = new EventEmitter<ToolCallStatus>();
|
|
746
|
-
|
|
747
|
-
/**
|
|
748
|
-
* Two-way binding for status.
|
|
749
|
-
*/
|
|
750
|
-
@Input()
|
|
751
|
-
get status(): ToolCallStatus {
|
|
752
|
-
return this._status;
|
|
753
|
-
}
|
|
754
|
-
set status(value: ToolCallStatus) {
|
|
755
|
-
// Input setter for two-way binding (though typically read-only)
|
|
756
|
-
this._status = value;
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
/**
|
|
760
|
-
* Emits when a response is provided by the user.
|
|
761
|
-
*/
|
|
762
|
-
@Output() responseProvided = new EventEmitter<unknown>();
|
|
763
|
-
|
|
764
|
-
/**
|
|
765
|
-
* Emits when the tool execution starts.
|
|
766
|
-
*/
|
|
767
|
-
@Output() executionStarted = new EventEmitter<any>();
|
|
768
|
-
|
|
769
|
-
/**
|
|
770
|
-
* Emits when the tool execution completes.
|
|
771
|
-
*/
|
|
772
|
-
@Output() executionCompleted = new EventEmitter<unknown>();
|
|
773
|
-
|
|
774
|
-
ngOnInit(): void {
|
|
775
|
-
if (this.enabled) {
|
|
776
|
-
this.registerTool();
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
ngOnChanges(changes: SimpleChanges): void {
|
|
781
|
-
const relevantChanges =
|
|
782
|
-
changes["name"] ||
|
|
783
|
-
changes["description"] ||
|
|
784
|
-
changes["args"] ||
|
|
785
|
-
changes["render"] ||
|
|
786
|
-
changes["enabled"];
|
|
787
|
-
|
|
788
|
-
if (relevantChanges && !relevantChanges.firstChange) {
|
|
789
|
-
// Re-register the tool with new configuration
|
|
790
|
-
this.unregisterTool();
|
|
791
|
-
if (this.enabled) {
|
|
792
|
-
this.registerTool();
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
ngOnDestroy(): void {
|
|
798
|
-
this.unregisterTool();
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
/**
|
|
802
|
-
* Programmatically trigger a response.
|
|
803
|
-
* Useful when the directive is used as a controller.
|
|
804
|
-
*/
|
|
805
|
-
<span class="fstat-no" title="function not covered" > respond(</span>result: unknown): void {
|
|
806
|
-
<span class="cstat-no" title="statement not covered" > this.handleResponse(result);</span>
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
private registerTool(): void {
|
|
810
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!this.name || !this.description || !this.parameters || !this.render) {
|
|
811
|
-
<span class="cstat-no" title="statement not covered" > if (isDevMode()) {</span>
|
|
812
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
813
|
-
"CopilotKitHumanInTheLoop: Missing required inputs. " +
|
|
814
|
-
"Required: name, description, parameters, and render."
|
|
815
|
-
);
|
|
816
|
-
}
|
|
817
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
// Create handler that returns a Promise
|
|
821
|
-
const handler = async (args: T): Promise<unknown> => {
|
|
822
|
-
return new Promise((resolve) => {
|
|
823
|
-
this.updateStatus(ToolCallStatus.Executing);
|
|
824
|
-
this.resolvePromise = resolve;
|
|
825
|
-
this.executionStarted.emit(args);
|
|
826
|
-
});
|
|
827
|
-
};
|
|
828
|
-
|
|
829
|
-
// Create the frontend tool with enhanced render
|
|
830
|
-
const frontendTool: AngularFrontendTool<T> = {
|
|
831
|
-
name: this.name,
|
|
832
|
-
description: this.description,
|
|
833
|
-
parameters: this.parameters,
|
|
834
|
-
handler,
|
|
835
|
-
render: this.render, // Will be enhanced by the render component
|
|
836
|
-
};
|
|
837
|
-
|
|
838
|
-
// Add the tool (returns void, so we use the tool name as ID)
|
|
839
|
-
this.copilotkit.copilotkit.addTool(frontendTool);
|
|
840
|
-
this.toolId = this.name;
|
|
841
|
-
|
|
842
|
-
// Register the render with respond capability
|
|
843
|
-
this.copilotkit.registerToolRender(this.name, {
|
|
844
|
-
name: this.name,
|
|
845
|
-
render: this.createEnhancedRender(),
|
|
846
|
-
});
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
private unregisterTool(): void {
|
|
850
|
-
if (this.toolId) {
|
|
851
|
-
this.copilotkit.copilotkit.removeTool(this.toolId);
|
|
852
|
-
this.copilotkit.unregisterToolRender(this.name);
|
|
853
|
-
this.toolId = undefined;
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
private createEnhancedRender(): Type<any> | TemplateRef<any> {
|
|
858
|
-
// If it's a template, we need to wrap it with our respond function
|
|
859
|
-
// This is handled by returning a special marker that the render component
|
|
860
|
-
// will recognize and enhance with the respond function
|
|
861
|
-
|
|
862
|
-
// Store reference to this directive instance for the render component
|
|
863
|
-
(this.render as any).__humanInTheLoopDirective = this;
|
|
864
|
-
(this.render as any).__humanInTheLoopStatus = this.statusSignal;
|
|
865
|
-
|
|
866
|
-
return this.render;
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
private <span class="fstat-no" title="function not covered" >handleResponse(</span>result: unknown): void {
|
|
870
|
-
<span class="cstat-no" title="statement not covered" > if (this.resolvePromise) {</span>
|
|
871
|
-
<span class="cstat-no" title="statement not covered" > this.resolvePromise(result);</span>
|
|
872
|
-
<span class="cstat-no" title="statement not covered" > this.updateStatus(ToolCallStatus.Complete);</span>
|
|
873
|
-
<span class="cstat-no" title="statement not covered" > this.resolvePromise = null;</span>
|
|
874
|
-
<span class="cstat-no" title="statement not covered" > this.responseProvided.emit(result);</span>
|
|
875
|
-
<span class="cstat-no" title="statement not covered" > this.executionCompleted.emit(result);</span>
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
private updateStatus(status: ToolCallStatus): void {
|
|
880
|
-
this._status = status;
|
|
881
|
-
this.statusSignal.set(status);
|
|
882
|
-
this.statusChange.emit(status);
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
/**
|
|
887
|
-
* Helper directive to provide respond function in templates.
|
|
888
|
-
* This would be used internally by the tool render component.
|
|
889
|
-
*
|
|
890
|
-
* @internal
|
|
891
|
-
*/
|
|
892
|
-
@Directive({
|
|
893
|
-
standalone: true,
|
|
894
|
-
selector: "[copilotkitHumanInTheLoopRespond]",
|
|
895
|
-
})
|
|
896
|
-
export class CopilotKitHumanInTheLoopRespond {
|
|
897
|
-
@Input() copilotkitHumanInTheLoopRespond?: (result: unknown) => Promise<void>;
|
|
898
|
-
|
|
899
|
-
/**
|
|
900
|
-
* Convenience method for templates to call respond.
|
|
901
|
-
*/
|
|
902
|
-
<span class="fstat-no" title="function not covered" > respond(</span>result: unknown): void {
|
|
903
|
-
<span class="cstat-no" title="statement not covered" > this.copilotkitHumanInTheLoopRespond?.(result);</span>
|
|
904
|
-
}
|
|
905
|
-
}
|
|
906
|
-
</pre></td></tr></table></pre>
|
|
907
|
-
|
|
908
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
909
|
-
</div><!-- /wrapper -->
|
|
910
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
911
|
-
Code coverage generated by
|
|
912
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
913
|
-
at 2025-09-15T01:22:45.642Z
|
|
914
|
-
</div>
|
|
915
|
-
<script src="../../prettify.js"></script>
|
|
916
|
-
<script>
|
|
917
|
-
window.onload = function () {
|
|
918
|
-
prettyPrint();
|
|
919
|
-
};
|
|
920
|
-
</script>
|
|
921
|
-
<script src="../../sorter.js"></script>
|
|
922
|
-
<script src="../../block-navigation.js"></script>
|
|
923
|
-
</body>
|
|
924
|
-
</html>
|
|
925
|
-
|