iobroker.eos-admin 7.9.93 → 7.9.95

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 (45) hide show
  1. package/INSTALL_TEST_V7.9.95.md +15 -0
  2. package/NEXOWATT_EOS_BUILD_INFO.json +23 -18
  3. package/NEXOWATT_EOS_STABLE_7.9.94.md +16 -0
  4. package/{PUBLISH_STABLE_V7.9.93.md → PUBLISH_STABLE_V7.9.95.md} +2 -5
  5. package/README_STABILITY_V7.9.95.md +12 -0
  6. package/RELEASE_ACCEPTANCE_V7.9.95.md +11 -0
  7. package/RELEASE_NOTES_V7.9.95.md +12 -0
  8. package/adminWww/assets/Adapters-B5_jQ7DE-v84.js +1 -1
  9. package/adminWww/css/nexowatt-native-shell.css +4 -156
  10. package/adminWww/index.html +13 -11
  11. package/adminWww/js/eos-account-management.js +1 -1
  12. package/adminWww/js/eos-assistant.js +5 -556
  13. package/adminWww/js/eos-basic-settings.js +1 -1
  14. package/adminWww/js/eos-branding-sanitizer.js +1 -3
  15. package/adminWww/js/eos-native-security.js +1 -1
  16. package/adminWww/js/eos-policy-client.js +1 -1
  17. package/adminWww/js/eos-role-bootstrap.js +2 -2
  18. package/adminWww/js/eos-role-ui.js +1 -1
  19. package/adminWww/js/nexowatt-native-shell.js +1 -1
  20. package/adminWww/static/js/nexowatt-stable-login.js +79 -0
  21. package/build/lib/chat/assistantKnowledge.js +6 -21
  22. package/build/lib/chat/chatOrchestrator.js +38 -33
  23. package/build/lib/chat/mcpClientManager.js +1 -1
  24. package/build/lib/nexowattStableAuth.js +74 -0
  25. package/build/lib/web.js +24 -7
  26. package/build/main.js +123 -308
  27. package/io-package.json +20 -16
  28. package/package.json +23 -32
  29. package/INSTALL_TEST_V7.9.93.md +0 -12
  30. package/README_STABILITY_V7.9.93.md +0 -15
  31. package/RELEASE_ACCEPTANCE_V7.9.93.md +0 -15
  32. package/RELEASE_NOTES_V7.9.93.md +0 -10
  33. package/tools/nexowatt-account-management-selftest.cjs +0 -61
  34. package/tools/nexowatt-clean-legacy-runtime.cjs +0 -147
  35. package/tools/nexowatt-ensure-release-defaults.cjs +0 -72
  36. package/tools/nexowatt-generate-eos-admin-repo-entry.cjs +0 -37
  37. package/tools/nexowatt-generate-repo-entry.cjs +0 -3
  38. package/tools/nexowatt-internal-reserve-selftest.cjs +0 -57
  39. package/tools/nexowatt-login-layout-selftest.cjs +0 -62
  40. package/tools/nexowatt-modern-ui-selftest.cjs +0 -50
  41. package/tools/nexowatt-patch-repo.cjs +0 -54
  42. package/tools/nexowatt-publish-channel-guard.cjs +0 -58
  43. package/tools/nexowatt-release-defaults-selftest.cjs +0 -29
  44. package/tools/nexowatt-runtime-cleanup-selftest.cjs +0 -47
  45. package/tools/nexowatt-validate-package.cjs +0 -246
@@ -96,22 +96,13 @@ html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#password) {
96
96
  max-width: none !important;
97
97
  max-height: none !important;
98
98
  padding: 28px !important;
99
- overflow: hidden !important;
100
- scrollbar-width: none !important;
99
+ overflow: auto !important;
101
100
  border-radius: 24px !important;
102
101
  color: var(--nx-text) !important;
103
102
  background: linear-gradient(180deg, rgba(14, 36, 56, .97), rgba(4, 15, 27, .96)) !important;
104
103
  border: 1px solid var(--nx-border-accent) !important;
105
104
  box-shadow: 0 18px 44px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .035) !important;
106
105
  }
107
-
108
- html.eos-login .eos-login-card-modern::-webkit-scrollbar,
109
- html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#username)::-webkit-scrollbar,
110
- html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#password)::-webkit-scrollbar {
111
- display: none !important;
112
- width: 0 !important;
113
- height: 0 !important;
114
- }
115
106
  html.eos-login img[src*="admin"],
116
107
  html.eos-login .MuiAvatar-img { object-fit: contain !important; filter: drop-shadow(0 0 18px rgba(0,255,136,.35)); }
117
108
 
@@ -865,7 +856,7 @@ html.eos-modern-login body::before {
865
856
 
866
857
 
867
858
  /* ==========================================================================
868
- NexoWatt EOS 7.9.92 – stable product layout
859
+ NexoWatt EOS 7.9.94 – stable product layout
869
860
  Integrated first login, header assistant, role-safe overview and account
870
861
  management exclusively below "Zugänge & Rechte".
871
862
  ========================================================================== */
@@ -900,8 +891,7 @@ html.eos-login .eos-login-card-modern {
900
891
  min-height: 0 !important;
901
892
  max-width: none !important;
902
893
  max-height: none !important;
903
- overflow: hidden !important;
904
- scrollbar-width: none !important;
894
+ overflow: auto !important;
905
895
  }
906
896
  .eos-login-role-selector {
907
897
  display: none !important;
@@ -1203,7 +1193,7 @@ html.eos-role-enduser [data-instance-id^="backitup."] { display: none !important
1203
1193
 
1204
1194
 
1205
1195
 
1206
- /* Final 7.9.92 interaction guards. */
1196
+ /* Final 7.9.94 interaction guards. */
1207
1197
  html.eos-safe-overview-active #app-paper { position: relative !important; }
1208
1198
  html.eos-safe-overview-active #app-paper > :not(#eos-role-safe-overview):not(.MuiSnackbar-root):not([role="presentation"]) {
1209
1199
  pointer-events: none !important;
@@ -1301,145 +1291,3 @@ html.eos-route-intro #app-paper [class*="card"] {
1301
1291
  .eos-account-management-entry { margin: 9px; padding: 19px; border-radius: 18px; }
1302
1292
  .eos-assist-header-root .eos-assist-panel { right: 8px !important; width: calc(100vw - 16px); }
1303
1293
  }
1304
-
1305
- /* v93 EOS Assist – live, role-aware system assistant in the fixed header. */
1306
- .eos-assist-header-root .eos-assist-panel {
1307
- display: flex;
1308
- flex-direction: column;
1309
- width: min(520px, calc(100vw - 32px));
1310
- max-height: min(720px, calc(100vh - var(--nx-content-top) - 12px));
1311
- overflow: hidden !important;
1312
- }
1313
- .eos-assist-toolbar {
1314
- display: flex;
1315
- justify-content: space-between;
1316
- gap: 8px;
1317
- margin-top: 12px;
1318
- }
1319
- .eos-assist-toolbar button,
1320
- .eos-assist-settings-actions button {
1321
- min-height: 34px;
1322
- padding: 7px 11px;
1323
- color: #dcf8ff;
1324
- font-size: 11px;
1325
- font-weight: 800;
1326
- border: 1px solid rgba(69, 213, 255, .2);
1327
- border-radius: 10px;
1328
- background: rgba(7, 27, 41, .78);
1329
- cursor: pointer;
1330
- }
1331
- .eos-assist-toolbar button:hover,
1332
- .eos-assist-settings-actions button:hover { border-color: rgba(0, 229, 138, .48); }
1333
- .eos-assist-conversation {
1334
- display: flex;
1335
- flex: 1 1 auto;
1336
- min-height: 0;
1337
- flex-direction: column;
1338
- }
1339
- .eos-assist-transcript {
1340
- flex: 1 1 auto;
1341
- min-height: 150px;
1342
- max-height: 390px;
1343
- margin-top: 12px;
1344
- padding: 10px;
1345
- overflow-y: auto;
1346
- overscroll-behavior: contain;
1347
- border: 1px solid rgba(0, 212, 255, .16);
1348
- border-radius: 15px;
1349
- background: rgba(0, 6, 12, .32);
1350
- scrollbar-width: thin;
1351
- scrollbar-color: rgba(0, 229, 138, .5) rgba(3, 16, 27, .7);
1352
- }
1353
- .eos-assist-welcome {
1354
- padding: 17px 12px;
1355
- color: #99b9c7;
1356
- font-size: 12px;
1357
- line-height: 1.55;
1358
- text-align: center;
1359
- }
1360
- .eos-assist-message {
1361
- max-width: 92%;
1362
- margin: 0 0 9px;
1363
- padding: 10px 12px;
1364
- color: #edfaff;
1365
- font-size: 12px;
1366
- line-height: 1.52;
1367
- white-space: pre-wrap;
1368
- overflow-wrap: anywhere;
1369
- border: 1px solid rgba(69, 213, 255, .14);
1370
- border-radius: 14px;
1371
- background: rgba(9, 31, 45, .72);
1372
- }
1373
- .eos-assist-message strong { display: block; margin-bottom: 4px; color: #00e58a; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
1374
- .eos-assist-message-user { margin-left: auto; border-color: rgba(0, 229, 138, .2); background: rgba(0, 98, 78, .24); }
1375
- .eos-assist-message-error { border-color: rgba(255, 174, 66, .34); background: rgba(102, 58, 5, .25); }
1376
- .eos-assist-message-error strong { color: #ffc56b; }
1377
- .eos-assist-message a { color: #51dcff; font-weight: 800; text-decoration: underline; }
1378
- .eos-assist-input-row { align-items: stretch; }
1379
- .eos-assist-input {
1380
- min-height: 48px;
1381
- max-height: 110px;
1382
- resize: vertical;
1383
- font: inherit;
1384
- line-height: 1.4;
1385
- }
1386
- .eos-assist-send { min-width: 82px; }
1387
- .eos-assist-send:disabled { cursor: progress; opacity: .62; }
1388
- .eos-assist-status {
1389
- margin-top: 10px;
1390
- padding-top: 9px;
1391
- color: #8eaeba;
1392
- font-size: 10px;
1393
- line-height: 1.35;
1394
- border-top: 1px solid rgba(69, 213, 255, .1);
1395
- }
1396
- .eos-assist-status[data-kind="ready"] { color: #71eeb9; }
1397
- .eos-assist-status[data-kind="warning"] { color: #ffc56b; }
1398
- .eos-assist-status[data-kind="error"] { color: #ff8b8b; }
1399
- .eos-assist-settings {
1400
- display: none;
1401
- flex: 1 1 auto;
1402
- min-height: 0;
1403
- margin-top: 12px;
1404
- padding: 12px;
1405
- overflow-y: auto;
1406
- border: 1px solid rgba(0, 229, 138, .18);
1407
- border-radius: 15px;
1408
- background: rgba(0, 8, 15, .36);
1409
- }
1410
- .eos-assist-settings-open .eos-assist-conversation { display: none; }
1411
- .eos-assist-settings-open .eos-assist-settings { display: grid; gap: 10px; }
1412
- .eos-assist-settings label { display: grid; gap: 5px; color: #9fc0cc; font-size: 11px; font-weight: 750; }
1413
- .eos-assist-settings input,
1414
- .eos-assist-settings select {
1415
- width: 100%;
1416
- min-height: 37px;
1417
- box-sizing: border-box;
1418
- padding: 7px 9px;
1419
- color: #eafaff;
1420
- border: 1px solid rgba(69, 213, 255, .2);
1421
- border-radius: 9px;
1422
- background: #061724;
1423
- outline: none;
1424
- }
1425
- .eos-assist-settings input:focus,
1426
- .eos-assist-settings select:focus { border-color: rgba(0, 229, 138, .58); box-shadow: 0 0 0 2px rgba(0, 229, 138, .08); }
1427
- .eos-assist-settings .eos-assist-check { display: flex; align-items: center; gap: 8px; }
1428
- .eos-assist-settings .eos-assist-check input { width: 18px; min-height: 18px; }
1429
- .eos-assist-base-url-label { display: none !important; }
1430
- .eos-assist-custom-provider .eos-assist-base-url-label { display: grid !important; }
1431
- .eos-assist-settings-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
1432
- .eos-assist-settings-actions .eos-assist-save { color: #00151c; border: 0; background: linear-gradient(135deg, #00e58a, #45d5ff); }
1433
- .eos-assist-not-configured .eos-assist-dot { background: #ffc34d; box-shadow: 0 0 12px rgba(255, 195, 77, .9); }
1434
- @media (max-width: 620px) {
1435
- .eos-assist-header-root .eos-assist-panel {
1436
- top: calc(var(--nx-shell-top) + var(--nx-header-h) + 5px) !important;
1437
- right: 7px !important;
1438
- width: calc(100vw - 14px);
1439
- max-height: calc(100vh - var(--nx-header-h) - 20px);
1440
- padding: 13px;
1441
- }
1442
- .eos-assist-transcript { max-height: 45vh; }
1443
- .eos-assist-input-row { flex-direction: column; }
1444
- .eos-assist-send { min-height: 40px; }
1445
- }
@@ -8,7 +8,7 @@
8
8
  <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
9
9
  <meta http-equiv="Pragma" content="no-cache" />
10
10
  <meta http-equiv="Expires" content="0" />
11
- <script src="./js/eos-manual-write-policy.js?v=93"></script>
11
+ <script src="./js/eos-manual-write-policy.js?v=91"></script>
12
12
  <script type="module" src="./assets/hostInit-v84.js?v=84"></script>
13
13
 
14
14
  <meta charset="utf-8" />
@@ -36,7 +36,7 @@
36
36
  rel="stylesheet"
37
37
  href="css/leaflet.css"
38
38
  />
39
- <link rel="stylesheet" href="./css/nexowatt-native-shell.css?v=93" />
39
+ <link rel="stylesheet" href="./css/nexowatt-native-shell.css?v=91" />
40
40
  <link
41
41
  rel="manifest"
42
42
  href="manifest.json"
@@ -158,18 +158,20 @@
158
158
  </script>
159
159
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
160
160
  <link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
161
- <script defer src="./js/eos-role-bootstrap.js?v=93" data-eos-entry="./assets/index-CQZugZ1z-v84.js?v=84"></script>
162
- <script defer src="./js/eos-policy-client.js?v=93"></script>
163
- <script defer src="./js/eos-branding-sanitizer.js?v=93"></script>
164
- <script defer src="./js/nexowatt-native-shell.js?v=93"></script>
165
- <script defer src="./js/eos-native-security.js?v=93"></script>
166
- <script defer src="./js/eos-basic-settings.js?v=93"></script>
167
- <script defer src="./js/eos-role-ui.js?v=93"></script>
168
- <script defer src="./js/eos-account-management.js?v=93"></script>
169
- <script defer src="./js/eos-assistant.js?v=93"></script>
161
+ <script defer src="./js/eos-role-bootstrap.js?v=91" data-eos-entry="./assets/index-CQZugZ1z-v84.js?v=84"></script>
162
+ <script defer src="./js/eos-policy-client.js?v=91"></script>
163
+ <script defer src="./js/eos-branding-sanitizer.js?v=91"></script>
164
+ <script defer src="./js/nexowatt-native-shell.js?v=91"></script>
165
+ <script defer src="./js/eos-native-security.js?v=91"></script>
166
+ <script defer src="./js/eos-basic-settings.js?v=91"></script>
167
+ <script defer src="./js/eos-role-ui.js?v=91"></script>
168
+ <script defer src="./js/eos-account-management.js?v=91"></script>
169
+ <script defer src="./js/eos-assistant.js?v=91"></script>
170
170
  </head>
171
171
  <body>
172
172
  <noscript>Für NexoWatt EOS muss JavaScript aktiviert sein.</noscript>
173
173
  <div id="root"></div>
174
+ <script defer src="static/js/nexowatt-stable-login.js?v=95"></script>
175
+ <script defer src="static/js/nexowatt-stable-v95.js?v=95"></script>
174
176
  </body>
175
177
  </html>
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const VERSION = 'v93-account-management-under-access-rights';
4
+ const VERSION = 'v91-account-management-under-access-rights';
5
5
  const script = document.currentScript || document.querySelector('script[src*="eos-account-management.js"]');
6
6
  const base = new URL('../', script?.src || window.location.href);
7
7
  const abort = new AbortController();