neuroalpha 0.6.12 → 0.7.0

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 (46) hide show
  1. package/README.md +14 -10
  2. package/bin/cli.js +79 -69
  3. package/docs//320/230/320/235/320/241/320/242/320/240/320/243/320/232/320/246/320/230/320/257.md +2 -2
  4. package/package.json +4 -5
  5. package/public/activate.html +41 -19
  6. package/public/activate.js +81 -10
  7. package/public/app.js +300 -152
  8. package/public/index.html +4 -37
  9. package/server/api/routes.js +570 -906
  10. package/server/auth/index.js +576 -761
  11. package/server/brokers/index.js +1 -4
  12. package/server/config.js +73 -53
  13. package/server/index.js +186 -187
  14. package/server/llm/local-engine.js +843 -0
  15. package/server/llm/providers.js +45 -34
  16. package/server/model/dataset.js +2 -4
  17. package/server/model/forecast.js +1 -3
  18. package/server/news/index.js +2 -3
  19. package/server/notify/index.js +304 -466
  20. package/deploy/docs/01-central.md +0 -96
  21. package/deploy/docs/02-cloud-instances.md +0 -130
  22. package/deploy/docs/03-desktop-build.md +0 -92
  23. package/deploy/docs/04-client-guide.md +0 -101
  24. package/deploy/docs/05-operations.md +0 -109
  25. package/deploy/docs/06-env-reference.md +0 -91
  26. package/deploy/docs/07-stress-test.md +0 -253
  27. package/deploy/docs/pdf/01-central.pdf +0 -0
  28. package/deploy/docs/pdf/02-cloud-instances.pdf +0 -0
  29. package/deploy/docs/pdf/03-desktop-build.pdf +0 -0
  30. package/deploy/docs/pdf/04-client-guide.pdf +0 -0
  31. package/deploy/docs/pdf/05-operations.pdf +0 -0
  32. package/deploy/docs/pdf/06-env-reference.pdf +0 -0
  33. package/deploy/docs/pdf/07-stress-test.pdf +0 -0
  34. package/deploy/install.sh +0 -128
  35. package/deploy/k8s/instance.yaml +0 -147
  36. package/public/admin.html +0 -604
  37. package/public/landing.html +0 -1207
  38. package/public/legal.html +0 -134
  39. package/scripts/set-admin-password.mjs +0 -30
  40. package/server/billing/yookassa.js +0 -142
  41. package/server/instance/agent.js +0 -259
  42. package/server/instance/central.js +0 -514
  43. package/server/instance/identity.js +0 -79
  44. package/server/instance/provision.js +0 -166
  45. package/server/instance/signing.js +0 -71
  46. package/server/role.js +0 -44
package/public/index.html CHANGED
@@ -89,7 +89,7 @@
89
89
  <button type="button" data-sec="news" id="nnav-news">Новости рынка</button>
90
90
  <div class="ssep"></div>
91
91
  <button type="button" data-sec="overview" id="nnav-overview" hidden>Эксперименты</button>
92
- <button type="button" data-sec="cloud" id="snav-cloud">Подписка и уведомления</button>
92
+ <button type="button" data-sec="cloud" id="snav-cloud">Лицензия и уведомления</button>
93
93
  <button type="button" data-sec="llm" id="snav-llm">Модели ИИ</button>
94
94
  </aside>
95
95
  <div class="spane">
@@ -246,7 +246,7 @@
246
246
  </section>
247
247
 
248
248
  <section class="ssec" data-sec="cloud" id="cloud-box" hidden>
249
- <div class="stitle">Подписка, лицензия и уведомления (Telegram / MAX)</div>
249
+ <div class="stitle">Автономная лицензия, доступ и уведомления (Telegram / MAX)</div>
250
250
  <div class="scard spadded" id="cloud-pane"></div>
251
251
  </section>
252
252
 
@@ -254,11 +254,12 @@
254
254
  <div class="stitle bar">
255
255
  <span id="llm-sum">Модели ИИ для Стратега</span>
256
256
  <div class="row-gap" style="align-items:center">
257
- <button type="button" id="btn-llm-open-add" class="primary">+ Подключить ИИ-сервис</button>
257
+ <button type="button" id="btn-llm-open-add" class="primary">+ Подключить внешний ИИ-сервис</button>
258
258
  </div>
259
259
  </div>
260
260
  <div class="scard spadded">
261
261
  <div id="llm-active-banner"></div>
262
+ <div id="local-llm-box" style="margin-bottom:16px"></div>
262
263
  <div id="llm-form-slot">
263
264
  <details id="llm-add-box" class="llm-form-card">
264
265
  <summary id="llm-add-sum">+ Подключить новый сервис или локальную модель ИИ</summary>
@@ -372,40 +373,6 @@
372
373
  </div>
373
374
  </div>
374
375
 
375
- <!-- Модальное окно подписания Договора-оферты и Декларации о рисках -->
376
- <div id="offer-modal" class="modal" hidden>
377
- <div class="modal-box" style="max-width:680px">
378
- <div class="modal-head">
379
- <b>Договор публичной оферты и Декларация о рисках</b>
380
- <button id="offer-close" class="icon">✕</button>
381
- </div>
382
- <div class="md" style="max-height:300px;overflow-y:auto;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.55">
383
- <p style="margin-top:0"><b>1. Предмет договора:</b> Настоящая Публичная оферта регулирует предоставление доступа к облачной аналитической платформе «НейроАльфа» (PaaS/SaaS) согласно выбранному тарифному плану («Инвестор», «Профи», «VIP»).</p>
384
- <p><b>2. Правовой статус (отсутствие ИИР и ДУ):</b> Сервис является исключительно программно-техническим средством (калькулятором статистических закономерностей). Исполнитель <b>не осуществляет инвестиционное консультирование</b>, не даёт индивидуальных инвестиционных рекомендаций (ФЗ № 39-ФЗ) и не осуществляет доверительное управление. Все сделки совершаются Пользователем самостоятельно на его личном брокерском счёте.</p>
385
- <p><b>3. Параметры тарифов и предельные уровни доходности:</b>
386
- <br>• <b>«Инвестор» (3 900 ₽/мес)</b> — 1 брокерский счёт, стартовый лимит до 1 000 000 ₽ (+ реинвестирование всей заработанной прибыли), торговля только от покупки («Только в рост (без шорта)»);
387
- <br>• <b>«Профи» (9 900 ₽/мес)</b> — до 5 брокерских счетов, стартовый лимит до 1 000 000 ₽ на каждом счёте (+ реинвестирование всей заработанной прибыли), торговля в рост и в падение (с шортами);
388
- <br>• <b>«VIP» (по индивидуальному согласованию)</b> — количество счетов и начальная сумма торговли по согласованию, торговля в рост и в падение (с шортами).
389
- </p>
390
- <p><b>4. Запрет автоследования и ретрансляции сигналов:</b> Пользователю строго запрещается подключать к платформе счета, участвующие в сервисах автоследования или копирования сделок (как в роли ведущего/автора стратегии, так и в роли подписчика), а также передавать или перепродавать сигналы третьим лицам. При обнаружении признаков автоследования счёт автоматически блокируется.</p>
391
- <p style="margin-bottom:0"><b>5. Декларация о рисках:</b> Торговля ценными бумагами сопряжена с риском потери части или всего инвестированного капитала. Результаты на исторических данных не гарантируют доходности в будущем. Полный текст документа: <a href="/legal" target="_blank" style="color:var(--accent)">открыть /legal →</a></p>
392
- </div>
393
- <div style="padding:14px 18px;display:grid;gap:10px;font-size:13px">
394
- <label style="display:flex;gap:10px;align-items:flex-start;cursor:pointer">
395
- <input type="checkbox" id="term-offer-chk1" style="width:16px;height:16px;margin-top:2px;flex:none">
396
- <span>Я прочитал(а) и безоговорочно принимаю условия <a href="/legal#offer" target="_blank" style="color:var(--accent)">Договора публичной оферты</a> и <a href="/legal#privacy" target="_blank" style="color:var(--accent)">Политики обработки персональных данных</a>.</span>
397
- </label>
398
- <label style="display:flex;gap:10px;align-items:flex-start;cursor:pointer">
399
- <input type="checkbox" id="term-offer-chk2" style="width:16px;height:16px;margin-top:2px;flex:none">
400
- <span>Я ознакомлен(а) с <a href="/legal#risks" target="_blank" style="color:var(--accent)">Декларацией о рисках</a>, понимаю, что сервис не является индивидуальной инвестиционной рекомендацией, и обязуюсь <b>не использовать автоследование</b> на подключаемых счетах.</span>
401
- </label>
402
- <div class="row-gap" style="justify-content:flex-end;margin-top:4px">
403
- <button type="button" id="term-offer-decline">Отказ (Отмена)</button>
404
- <button type="button" class="primary" id="term-offer-accept" disabled>Подписать оферту и продолжить →</button>
405
- </div>
406
- </div>
407
- </div>
408
- </div>
409
376
  <div id="toast"></div>
410
377
  <script src="app.js" type="module"></script>
411
378
  </body>