cpee 2.1.130 → 2.1.132

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/FEATURES.md +9 -19
  3. data/cockpit/compliance-view.html +313 -0
  4. data/cockpit/compliance.html +34 -23
  5. data/cockpit/config.json.example +7 -6
  6. data/cockpit/css/compliance.css +70 -2
  7. data/cockpit/css/llm.css +9 -1
  8. data/cockpit/css/llmmodel.css +3 -0
  9. data/cockpit/css/ui.css +9 -30
  10. data/cockpit/edit.html +1 -1
  11. data/cockpit/graph.html +1 -1
  12. data/cockpit/index.html +6 -1
  13. data/cockpit/js/compliance.js +925 -10
  14. data/cockpit/js/instance.js +19 -9
  15. data/cockpit/js/parameters.js +37 -5
  16. data/cockpit/js/ui.js +10 -40
  17. data/cockpit/js/wfadaptor.js +4 -5
  18. data/cockpit/llm.html +24 -26
  19. data/cockpit/llmmodel.html +27 -25
  20. data/cockpit/model.html +1 -1
  21. data/cockpit/only_llm.html +5 -5
  22. data/cockpit/rngs/attributes.rng +2 -2
  23. data/cockpit/rngs/dataelements.rng +2 -2
  24. data/cockpit/rngs/documents.rng +8 -0
  25. data/cockpit/rngs/endpoints.rng +2 -2
  26. data/cockpit/rngs/requirements.rng +2 -2
  27. data/cockpit/themes/THEMES.MD +419 -0
  28. data/cockpit/themes/preset_model/symbols/critical.svg +13 -3
  29. data/cockpit/track.html +1 -1
  30. data/cpee.gemspec +1 -1
  31. data/lib/cpee/implementation.rb +3 -1
  32. data/lib/cpee/implementation_properties.rb +6 -5
  33. data/lib/cpee/persistence.rb +6 -7
  34. data/lib/properties/documents.rng +10 -0
  35. data/lib/properties/properties.rng +2 -0
  36. data/lib/properties/set-properties.rng +2 -0
  37. data/lib/properties/set-some-properties.rng +4 -0
  38. data/lib/properties/set-testset.rng +3 -0
  39. data/lib/properties/t_documents.rng +7 -0
  40. data/lib/properties.xml +22 -0
  41. data/server/executionhandlers/eval/connection.rb +1 -0
  42. data/server/executionhandlers/eval/execution.rb +2 -0
  43. data/server/executionhandlers/ruby/connection.rb +1 -0
  44. data/server/executionhandlers/ruby/controller.rb +4 -8
  45. data/server/executionhandlers/ruby/execution.rb +2 -0
  46. data/server/resources/properties.empty +1 -0
  47. data/server/resources/properties.init +1 -0
  48. data/server/routing/end.pid +1 -1
  49. data/server/routing/forward-events-00.pid +1 -1
  50. data/server/routing/forward-votes.pid +1 -1
  51. data/server/routing/persist.pid +1 -1
  52. data/server/routing/persist.rb +2 -1
  53. data/tools/cpee +1 -1
  54. metadata +7 -2
  55. data/lib/cpee/attributes_helper.rb +0 -41
@@ -16,6 +16,7 @@ var model_loaded = new Event("model:loaded", {"bubbles":true, "cancelable":false
16
16
  var save = {};
17
17
  save['endpoints'] = undefined;
18
18
  save['dataelements'] = undefined;
19
+ save['documents'] = undefined;
19
20
  save['attributes'] = undefined;
20
21
  save['attributes_raw'] = {};
21
22
  var node_state = {};
@@ -60,6 +61,8 @@ var sub_more = 'topic' + '=' + 'activity' + '&' +// {{{
60
61
  'events' + '=' + 'change' + '&' +
61
62
  'topic' + '=' + 'dataelements' + '&' +
62
63
  'events' + '=' + 'change' + '&' +
64
+ 'topic' + '=' + 'documents' + '&' +
65
+ 'events' + '=' + 'change' + '&' +
63
66
  'topic' + '=' + 'endpoints' + '&' +
64
67
  'events' + '=' + 'change' + '&' +
65
68
  'topic' + '=' + 'attributes' + '&' +
@@ -82,6 +85,8 @@ var sub_less = 'topic' + '=' + 'activity' + '&' +// {{{
82
85
  'events' + '=' + 'change' + '&' +
83
86
  'topic' + '=' + 'dataelements' + '&' +
84
87
  'events' + '=' + 'change' + '&' +
88
+ 'topic' + '=' + 'documents' + '&' +
89
+ 'events' + '=' + 'change' + '&' +
85
90
  'topic' + '=' + 'endpoints' + '&' +
86
91
  'events' + '=' + 'change' + '&' +
87
92
  'topic' + '=' + 'attributes' + '&' +
@@ -162,7 +167,7 @@ function cockpit() { //{{{
162
167
  e.stopImmediatePropagation();
163
168
  });
164
169
  document.addEventListener('uidash:activate_tab', function (e) {
165
- if (!$('#tabdetails').hasClass('inactive')) {
170
+ if (e.detail.active == 'details') {
166
171
  if (save['graph_adaptor']) {
167
172
  var svgid = manifestation.selected();
168
173
  var marks = manifestation.marked();
@@ -193,13 +198,6 @@ function cockpit() { //{{{
193
198
  },
194
199
  complete: function() {
195
200
  var q = $.parseQuerySimple();
196
- if (q.min || q.min == "") {
197
- uidash_toggle_vis_tab($('#instance'));
198
- uidash_toggle_vis_tab($('#parameters'));
199
- }
200
- if (q.dea || q.dea == "") {
201
- uidash_toggle_vis_tab($('#instance'));
202
- }
203
201
  if (q.theme) { graph_theme = q.theme; }
204
202
  if (q.position) { graph_position = q.position == 'false' ? 'false' : 'true'; }
205
203
  if (q.highlight) {
@@ -256,6 +254,13 @@ function cockpit() { //{{{
256
254
  uidash_activate_tab("#tabexecution");
257
255
  create_instance($("body").attr('current-base'),q.exec,true,true);
258
256
  }
257
+ if (q.min || q.min == "") {
258
+ uidash_toggle_vis_tab($('#instance'));
259
+ uidash_toggle_vis_tab($('#parameters'));
260
+ }
261
+ if (q.dea || q.dea == "") {
262
+ uidash_toggle_vis_tab($('#instance'));
263
+ }
259
264
  }
260
265
  });
261
266
  $.ajax({
@@ -357,6 +362,9 @@ async function sse() { //{{{
357
362
  case 'dataelements':
358
363
  monitor_instance_values("dataelements",data.content.values);
359
364
  break;
365
+ case 'documents':
366
+ monitor_instance_values("documents",data.content.values);
367
+ break;
360
368
  case 'description':
361
369
  monitor_instance_dsl();
362
370
  monitor_graph_change(false);
@@ -407,6 +415,7 @@ async function sse() { //{{{
407
415
  await monitor_instance_values("endpoints"); // we cant render before we know specialized endpoint symbols
408
416
  await monitor_instance_values("attributes"); // attributes first, to catch the <resources> attribute which overrides current-resources
409
417
  monitor_instance_values("dataelements");
418
+ monitor_instance_values("documents");
410
419
  monitor_instance_dsl();
411
420
  monitor_graph_change(false);
412
421
  monitor_instance_state();
@@ -625,7 +634,7 @@ function adaptor_init(url,theme,dslx) { //{{{
625
634
  // while inside and svgs are reloaded, do nothing here
626
635
  suspended_redrawing = true;
627
636
  save['graph_theme'] = theme;
628
- save['graph_adaptor'] = new WfAdaptor($('body').data('theme-base') + '/' + theme + '/theme.js',function(graphrealization){
637
+ save['graph_adaptor'] = new WfAdaptor($('body').data('base-themes') + '/' + theme + '/theme.js',function(graphrealization){
629
638
  graphrealization.illustrator.get_symbol = (target) => { //{{{
630
639
  if (save['endpoints_cache'][target]) {
631
640
  return save['endpoints_cache'][target].symbol;
@@ -1142,6 +1151,7 @@ async function set_testset(testset,exec) {// {{{
1142
1151
  tset.append($("testset > executionhandler",testset));
1143
1152
  tset.append($("testset > positions",testset));
1144
1153
  tset.append($("testset > dataelements",testset));
1154
+ tset.append($("testset > documents",testset));
1145
1155
  tset.append($("testset > endpoints",testset));
1146
1156
  tset.append($("testset > attributes",testset));
1147
1157
  tset.append($("testset > description",testset));
@@ -2,6 +2,7 @@ var parameters_changed = new Event("parameters:changed", {"bubbles":true, "cance
2
2
  var attributes_changed = new Event("attributes:changed", {"bubbles":true, "cancelable":false});
3
3
  var endpoints_changed = new Event("endpoints:changed", {"bubbles":true, "cancelable":false});
4
4
  var dataelements_changed = new Event("dataelements:changed", {"bubbles":true, "cancelable":false});
5
+ var documents_changed = new Event("documents:changed", {"bubbles":true, "cancelable":false});
5
6
 
6
7
  $(document).ready(function() {
7
8
  // hook up dataelements with relaxngui //{{{
@@ -31,10 +32,19 @@ $(document).ready(function() {
31
32
  save['attributes'] = new RelaxNGui(rng,$('#dat_attributes'));
32
33
  }
33
34
  }); //}}}
35
+ // hook up documents with relaxngui //{{{
36
+ $.ajax({
37
+ type: "GET",
38
+ dataType: "xml",
39
+ url: "rngs/documents.rng",
40
+ success: function(rng){
41
+ save['documents'] = new RelaxNGui(rng,$('#dat_documents'));
42
+ }
43
+ }); //}}}
34
44
 
35
45
  // new entry //{{{
36
46
  $('#parameters ui-content ui-area > button').click(function(event){
37
- var but = $(document).find('#parameters ui-content ui-area:not(.inactive) > div button');
47
+ var but = $(document).find('#parameters ui-content ui-area:not(.inactive) > div button.relaxngui_control');
38
48
  but.click();
39
49
  var inp = $(document).find('#parameters ui-content ui-area:not(.inactive) > div input');
40
50
  $(inp[inp.length-2]).focus();
@@ -45,19 +55,19 @@ $(document).ready(function() {
45
55
 
46
56
  var timer;
47
57
  // when input in one of the inputs, save
48
- $(document).on('input','#dat_dataelements input, #dat_endpoints input, #dat_attributes input',function(event){
58
+ $(document).on('input','#dat_dataelements input, #dat_endpoints input, #dat_attributes input, #dat_documents input',function(event){
49
59
  clearTimeout(timer);
50
60
  timer = setTimeout(function(){ do_parameters_save(event); }, 5000);
51
61
  });
52
- $(document).on('relaxngui_remove', '#dat_dataelements, #dat_endpoints, #dat_attributes', function(event){
62
+ $(document).on('relaxngui_remove', '#dat_dataelements, #dat_endpoints, #dat_attributes, #dat_documents', function(event){
53
63
  clearTimeout(timer);
54
64
  do_parameters_save(event);
55
65
  });
56
- $(document).on('relaxngui_move', '#dat_dataelements, #dat_endpoints, #dat_attributes', function(event){
66
+ $(document).on('relaxngui_move', '#dat_dataelements, #dat_endpoints, #dat_attributes, #dat_documents', function(event){
57
67
  clearTimeout(timer);
58
68
  do_parameters_save(event);
59
69
  });
60
- $(document).on('relaxngui_change', '#dat_dataelements, #dat_endpoints, #dat_attributes', function(event){
70
+ $(document).on('relaxngui_change', '#dat_dataelements, #dat_endpoints, #dat_attributes, #dat_documents', function(event){
61
71
  clearTimeout(timer);
62
72
  do_parameters_save(event);
63
73
  });
@@ -86,3 +96,25 @@ function do_parameters_save_part(visid,send) { //{{{
86
96
  data: send
87
97
  });
88
98
  } //}}}
99
+
100
+ function do_parameters_save_document(id,file,content) { //{{{
101
+ let name = $('input#' + id).parent().find('input.relaxngui_cell').first().get_val();
102
+ if (!name) {
103
+ return '';
104
+ } else {
105
+ // todo store in dstore
106
+ let surl = $.path_join($('body').attr('current-document-store'),save.attributes_raw.uuid,name);
107
+
108
+ $.ajax({
109
+ type: "PUT",
110
+ url: surl,
111
+ contentType: (file.type == "" ? "application/octet-stream" : file.type),
112
+ headers: {
113
+ 'Content-ID': 'file'
114
+ },
115
+ data: content.result
116
+ });
117
+
118
+ return surl;
119
+ }
120
+ } //}}}
data/cockpit/js/ui.js CHANGED
@@ -2,13 +2,11 @@ function config_defaults(){
2
2
  var default_values = {};
3
3
  // logs is missing, so that the button is not shown, when there is no info
4
4
  if (location.protocol.match(/^file/)) {
5
- default_values['res-url'] = 'http://localhost:' + $('body').data('res-port');
6
5
  default_values['base-url'] = 'http://localhost:' + $('body').data('base-port');
7
- default_values['save-url'] = 'http://localhost:' + $('body').data('base-port') + '/design';
6
+ } else if (location.port == '') {
7
+ default_values['base-url'] = $.path_join(location.protocol + "//", location.hostname, location.pathname, $('body').data('base-engine'));
8
8
  } else {
9
- default_values['res-url'] = location.protocol + "//" + location.hostname + ":" + $('body').data('res-port');
10
9
  default_values['base-url'] = location.protocol + "//" + location.hostname + ":" + $('body').data('base-port');
11
- default_values['save-url'] = location.protocol + "//" + location.hostname + ":" + $('body').data('base-port') + '/design';
12
10
  }
13
11
  default_values['templates-url'] = 'templates/';
14
12
  return default_values;
@@ -35,45 +33,17 @@ $(document).ready(function() {
35
33
  url: "config.json",
36
34
  success: function(res){
37
35
  var res_def = config_defaults();
38
- if (res['log-url']) { // just leave it out when it is not configured
39
- $("body").attr('current-logs',res['log-url'].replace("%host",window.location.host));
40
- }
41
- if (res['llm-url']) { // just leave it out when it is not configured
42
- $("body").attr('current-llm-service',res['llm-url'].replace("%host",window.location.host));
43
- }
44
- if (res['res-url']) {
45
- $("body").attr('current-resources',res['res-url'].replace("%host",window.location.host));
46
- } else {
47
- $("body").attr('current-resources',res_def['res-url'].replace("%host",window.location.host));
48
- }
49
- if (res['base-url']) {
50
- $("body").attr('current-base',res['base-url'].replace("%host",window.location.host));
51
- } else {
52
- $("body").attr('current-base',res_def['base-url'].replace("%host",window.location.host));
53
- }
54
- if (res['save-url']) {
55
- $("body").attr('current-save',res['save-url'].replace("%host",window.location.host));
56
- } else {
57
- $("body").attr('current-save',res_def['save-url'].replace("%host",window.location.host));
58
- }
59
- if (res['templates-url']) {
60
- $("body").attr('current-templates',res['templates-url'].replace("%host",window.location.host));
61
- } else {
62
- $("body").attr('current-templates',res_def['templates-url'].replace("%host",window.location.host));
63
- }
64
- $("input[name=res-url]").val($("body").attr('current-resources').replace("%host",window.location.host));
65
- $("input[name=base-url]").val($("body").attr('current-base').replace("%host",window.location.host));
36
+ $("body").attr('current-base',(res['base-url'] || res_def['base-url']).replace("%host",window.location.host));
37
+ $("body").attr('current-templates',(res['templates-url'] || res_def['templates-url']).replace("%host",window.location.host));
38
+ $.each(res, function(key, value){ // just leave it out when it is not configured
39
+ if (key != 'base-url' && key != 'templates-url') {
40
+ $("body").attr('current-' + key.replace(/-url$/,''), value.replace("%host",window.location.host));
41
+ }
42
+ });
66
43
  cockpit();
67
44
  },
68
45
  error: function(){
69
- var res = config_defaults();
70
- $("body").attr('current-resources',res['res-url'].replace("%host",window.location.host));
71
- $("body").attr('current-base',res['base-url'].replace("%host",window.location.host));
72
- $("body").attr('current-save',res['save-url'].replace("%host",window.location.host));
73
- $("body").attr('current-templates',res['templates-url'].replace("%host",window.location.host));
74
- $("input[name=res-url]").val($("body").attr('current-resources'));
75
- $("input[name=base-url]").val($("body").attr('current-base'));
76
- cockpit();
46
+ alert('fix your config.json');
77
47
  }
78
48
  });
79
49
  }
@@ -1168,17 +1168,16 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
1168
1168
  set_details(ctname,csname,pos,context,true);
1169
1169
  [undefined, endnodes] = draw_position(ctname,parent_pos,pos,prev,block,[],context,{svg: g, pos: origpos});
1170
1170
  }
1171
- prev = JSON.parse(JSON.stringify(endnodes));
1172
1171
  if (illustrator.elements[sname].border == 'structural') {
1173
- // structural border: outgoing arrow starts at the group border instead of leaving from the icon
1174
- // small y offset
1175
- prev = prev.map(function(p) {
1176
- if (!p) return p;
1172
+ // structural border: outgoing arrow starts at the group border instead of from the icon
1173
+ // small y offset.
1174
+ endnodes = endnodes.map(function(p) {
1177
1175
  var np = JSON.parse(JSON.stringify(p));
1178
1176
  np.yoffset = illustrator.height_shift/2 + illustrator.group_extend + 15 - illustrator.structural_tighten;
1179
1177
  return np;
1180
1178
  });
1181
1179
  }
1180
+ prev = JSON.parse(JSON.stringify(endnodes));
1182
1181
  }
1183
1182
  });
1184
1183
 
data/cockpit/llm.html CHANGED
@@ -70,7 +70,7 @@
70
70
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
71
71
  <style></style>
72
72
  </head>
73
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
73
+ <body data-base-port="8298" data-base-engine="engine/" data-base-themes="themes" is="x-ui-">
74
74
  <div id='disclaimer' class='hidden'> <!--{{{-->
75
75
  <h1>Disclaimer</h1>
76
76
 
@@ -136,35 +136,35 @@
136
136
  </svg>
137
137
  </template>
138
138
 
139
+ <div class='hidden' id="areanew"> <!--{{{-->
140
+ <table class='x-ui-layout'>
141
+ <tr>
142
+ <td>Resources:</td>
143
+ <td><input name="res-url" type="text" value=""/></td>
144
+ <td></td>
145
+ </tr>
146
+ <tr>
147
+ <td>Engine:</td>
148
+ <td><input name="base-url" type="text" value=""/></td>
149
+ <td><button name="base">create new instance</button></td>
150
+ </tr>
151
+ <tr>
152
+ <td>Instance:</td>
153
+ <td><input name="instance-url" type="text" value=""/></td>
154
+ <td><button name="instance">monitor instance</button></td>
155
+ </tr>
156
+ </table>
157
+ </div> <!--}}}-->
158
+
139
159
  <ui-tabbed id="instance">
140
160
  <ui-tabbar>
141
161
  <ui-tab class="switch" ></ui-tab>
142
- <ui-tab class="" data-tab="new" id="tabnew" >New</ui-tab>
143
162
  <ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
144
163
  <ui-tab class="inactive hidden" data-tab="execution" id="tabexecution">Execution</ui-tab>
145
164
  <ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
146
165
  <ui-last ><a class="logo" href=".."></a></ui-last>
147
166
  </ui-tabbar>
148
167
  <ui-content>
149
- <ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
150
- <table class='x-ui-layout'>
151
- <tr>
152
- <td>Resources:</td>
153
- <td><input name="res-url" type="text" value=""/></td>
154
- <td></td>
155
- </tr>
156
- <tr>
157
- <td>Engine:</td>
158
- <td><input name="base-url" type="text" value=""/></td>
159
- <td><button name="base">create new instance</button></td>
160
- </tr>
161
- <tr>
162
- <td>Instance:</td>
163
- <td><input name="instance-url" type="text" value=""/></td>
164
- <td><button name="instance">monitor instance</button></td>
165
- </tr>
166
- </table>
167
- </ui-area> <!--}}}-->
168
168
  <ui-area data-belongs-to-tab="instance" id="areainstance" class="inactive"> <!--{{{-->
169
169
  <div>
170
170
  <div class='section'>
@@ -264,7 +264,6 @@
264
264
  <ui-tabbar>
265
265
  <ui-before ></ui-before>
266
266
  <ui-tab class="" data-tab="details" id="tabdetails">Graph</ui-tab>
267
- <ui-tab class="inactive" data-tab="dsl" id="tabdsl" >Description</ui-tab>
268
267
  <ui-tab class="inactive" data-tab="log" id="tablog" >Log</ui-tab>
269
268
  <ui-behind ><a style='display:none' target='_blank' id='current-track'>T</a><a style='display:none' target='_blank' id='current-graph'>G</a></ui-behind>
270
269
  </ui-tabbar>
@@ -290,9 +289,9 @@
290
289
  <option value="noendpoints" selected="selected">Generate/Adapt from Scratch</option>
291
290
  <option value="endpoints">Generate/Adapt with Endpoint Knowledge</option>
292
291
  </select>
293
- <button id='prompt_submit_button' title="CTRL-ENTER to Submit" class="llm_button small">➤</button>
294
- <button id='prompt_reset_button' title="Reset Context" class="llm_button small">🗲</button>
295
- <button id='prompt_prop_button' title="Properties" class="llm_button small">⚙</button>
292
+ <button id='prompt_submit_button' title="CTRL-ENTER to Submit" class="llm_button small"><i class="uidash-icon uidash-icon-send"></i></button>
293
+ <button id='prompt_reset_button' title="Reset Context" class="llm_button small"><i class="uidash-icon uidash-icon-reset"></i></button>
294
+ <button id='prompt_prop_button' title="Properties" class="llm_button small"><i class="uidash-icon uidash-icon-properties"></i></button>
296
295
  <select name="llms" id="llms" class='active hidden'>
297
296
  <option value="gemini-3.1-flash-lite" selected="selected">gemini 3.1 Flash Lite</option>
298
297
  <option value="gemini-3.1-flash">gemini 3.1 Flash</option>
@@ -315,7 +314,6 @@
315
314
  <div id="dat_details" class='x-ui-layout'></div>
316
315
  </ui-part>
317
316
  </ui-area>
318
- <ui-area data-belongs-to-tab="dsl" id="areadsl" class="inactive"></ui-area>
319
317
  <ui-area data-belongs-to-tab="log" id="arealog" class="inactive"> <!--{{{-->
320
318
  <div>Persistent Log: <a style='display:none' target='_blank' id='current-log'></a> [<a style='display:none' target='_blank' id='xml-log'>X</a>,<a style='display:none' target='_blank' id='shifted-log'>S</a>]</div>
321
319
  <table id="dat_log" class="x-ui-layout"></table>
@@ -62,16 +62,18 @@
62
62
  <script type="text/javascript" src="js/modifiers.js"></script>
63
63
  <script type="text/javascript" src="themes/base.js"></script>
64
64
 
65
- <script type="text/javascript" src="js/llm.js"></script>
66
- <link rel="stylesheet" href="css/llm.css" type="text/css"/>
67
-
68
65
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
69
66
  <link rel="stylesheet" href="css/extended_columns-label.css" type="text/css"/>
70
67
  <link rel="stylesheet" href="css/extended_columns-svg.css" type="text/css" data-include-export="true"/>
71
68
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
69
+
70
+ <script type="text/javascript" src="js/llm.js"></script>
71
+ <link rel="stylesheet" href="css/llm.css" type="text/css"/>
72
+ <link rel="stylesheet" href="css/llmmodel.css" type="text/css"/>
73
+
72
74
  <style></style>
73
75
  </head>
74
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
76
+ <body data-base-port="8298" data-base-engine="engine/" data-base-themes="themes" is="x-ui-">
75
77
  <div class='hidden' id='relaxngworker'></div>
76
78
 
77
79
  <div class='menu' id='templates'></div>
@@ -88,31 +90,31 @@
88
90
  </svg>
89
91
  </template>
90
92
 
93
+ <div class='hidden' id="areanew"> <!--{{{-->
94
+ <table class='x-ui-layout'>
95
+ <tr>
96
+ <td>Resources:</td>
97
+ <td><input name="res-url" type="text" value=""/></td>
98
+ </tr>
99
+ <tr>
100
+ <td>Engine:</td>
101
+ <td><input name="base-url" type="text" value=""/></td>
102
+ </tr>
103
+ <tr>
104
+ <td>Instance:</td>
105
+ <td><input name="instance-url" type="text" value=""/></td>
106
+ </tr>
107
+ </table>
108
+ </div> <!--}}}-->
109
+
91
110
  <ui-tabbed id="instance">
92
111
  <ui-tabbar>
93
112
  <ui-tab class="switch" ></ui-tab>
94
- <ui-tab class="" data-tab="new" id="tabnew" >Config</ui-tab>
95
- <ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
113
+ <ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Model</ui-tab>
96
114
  <ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
97
115
  <ui-last ><a class="logo" href=".."></a></ui-last>
98
116
  </ui-tabbar>
99
117
  <ui-content>
100
- <ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
101
- <table class='x-ui-layout'>
102
- <tr>
103
- <td>Resources:</td>
104
- <td><input name="res-url" type="text" value=""/></td>
105
- </tr>
106
- <tr>
107
- <td>Engine:</td>
108
- <td><input name="base-url" type="text" value=""/></td>
109
- </tr>
110
- <tr>
111
- <td>Instance:</td>
112
- <td><input name="instance-url" type="text" value=""/></td>
113
- </tr>
114
- </table>
115
- </ui-area> <!--}}}-->
116
118
  <ui-area data-belongs-to-tab="instance" id="areainstance" class="inactive"> <!--{{{-->
117
119
  <div>
118
120
  <div class='section'>
@@ -189,9 +191,9 @@
189
191
  <option value="noendpoints">Generate/Adapt from Scratch</option>
190
192
  <option value="endpoints">Generate/Adapt with Endpoint Knowledge</option>
191
193
  </select>
192
- <button id='prompt_submit_button' title="CTRL-ENTER to Submit" class="llm_button small">➤</button>
193
- <button id='prompt_reset_button' title="Reset Context" class="llm_button small">🗲</button>
194
- <button id='prompt_prop_button' title="Properties" class="llm_button small">⚙</button>
194
+ <button id='prompt_submit_button' title="CTRL-ENTER to Submit" class="llm_button small"><i class="uidash-icon uidash-icon-send"></i></button>
195
+ <button id='prompt_reset_button' title="Reset Context" class="llm_button small"><i class="uidash-icon uidash-icon-reset"></i></button>
196
+ <button id='prompt_prop_button' title="Properties" class="llm_button small"><i class="uidash-icon uidash-icon-properties"></i></button>
195
197
  <select name="llms" id="llms" class='active hidden'>
196
198
  <option value="gemini-3.1-flash-lite" selected="selected">gemini 3.1 Flash Lite</option>
197
199
  <option value="gemini-3.1-flash">gemini 3.1 Flash</option>
data/cockpit/model.html CHANGED
@@ -69,7 +69,7 @@
69
69
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
70
70
  <style></style>
71
71
  </head>
72
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
72
+ <body data-base-port="8298" data-base-engine="engine/" data-base-themes="themes" is="x-ui-">
73
73
  <div id='disclaimer' class='hidden'> <!--{{{-->
74
74
  <h1>Disclaimer</h1>
75
75
 
@@ -70,7 +70,7 @@
70
70
  <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
71
71
  <style></style>
72
72
  </head>
73
- <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
73
+ <body data-base-port="8298" data-base-engine="engine/" data-base-themes="themes" is="x-ui-">
74
74
  <div id='disclaimer' class='hidden'> <!--{{{-->
75
75
  <h1>Disclaimer</h1>
76
76
 
@@ -243,10 +243,10 @@
243
243
  </div>
244
244
  <div><input id="loadtxt" accept=".txt" type="file"/></div>
245
245
  <div id='prompt_submit_container' class="multi">
246
- <button id='prompt_undo_button' class='llm_button' title='undo (reset to state before your last submit)'>&#10554;</button>
247
- <button id='prompt_reset_button' title="Reset Context" class="llm_button">🗲</button>
248
- <button id='prompt_attach_button' class='llm_button' title='load text from (txt) file'>&#128206;</button>
249
- <button id='prompt_submit_button' class='llm_button' title='submit'>&#x27A4;</button>
246
+ <button id='prompt_undo_button' class='llm_button' title='undo (reset to state before your last submit)'><i class="uidash-icon uidash-icon-back"></i></button>
247
+ <button id='prompt_reset_button' title="Reset Context" class="llm_button"><i class="uidash-icon uidash-icon-reset"></i></button>
248
+ <button id='prompt_attach_button' class='llm_button' title='load text from (txt) file'><i class="uidash-icon uidash-icon-attach"></i></button>
249
+ <button id='prompt_submit_button' title="CTRL-ENTER to Submit" class="llm_button"><i class="uidash-icon uidash-icon-send"></i></button>
250
250
  </div>
251
251
  </ui-area>
252
252
  <ui-resizehandle data-belongs-to-tab="details" data-label="drag to resize"></ui-resizehandle>
@@ -1,7 +1,7 @@
1
1
  <element rngui:version="1.2" name="attributes" ns="http://cpee.org/ns/properties/2.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Attributes">
3
- <element rngui:label='name'>
4
- <anyName/>
3
+ <element rngui:label='Name'>
4
+ <anyName rngui:unique="true"/>
5
5
  <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
@@ -1,7 +1,7 @@
1
1
  <element rngui:version="1.2" name="dataelements" ns="http://cpee.org/ns/properties/2.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Data Element">
3
- <element rngui:label='name'>
4
- <anyName/>
3
+ <element rngui:label='Name'>
4
+ <anyName rngui:unique="true"/>
5
5
  <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
@@ -0,0 +1,8 @@
1
+ <element rngui:version="1.2" name="documents" ns="http://cpee.org/ns/properties/2.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
+ <zeroOrMore rngui:label="Create Document">
3
+ <element rngui:label='Name'>
4
+ <anyName rngui:unique="true"/>
5
+ <data type="string" rngui:label="Value" rngui:filehandler="do_parameters_save_document(id,file,content)"/>
6
+ </element>
7
+ </zeroOrMore>
8
+ </element>
@@ -1,7 +1,7 @@
1
1
  <element rngui:version="1.2" name="endpoints" ns="http://cpee.org/ns/properties/2.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Endpoint">
3
- <element rngui:label='name'>
4
- <anyName/>
3
+ <element rngui:label='Name'>
4
+ <anyName rngui:unique="true"/>
5
5
  <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
@@ -1,7 +1,7 @@
1
1
  <element rngui:version="1.2" name="requirements" ns="http://cpee.org/ns/properties/2.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Requirement">
3
- <element rngui:label='name'>
4
- <anyName/>
3
+ <element rngui:label='Name'>
4
+ <anyName rngui:unique="true"/>
5
5
  <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>