odant-work 1.0.0 → 1.0.1

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.
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  icon: 'carbon:certificate',
3
- label: 'Лицензия ПАК',
3
+ label: 'Лицензия ODANT-WORK',
4
4
  roles: ['ADMIN', 'BOSS'],
5
5
  order: 3,
6
6
  allowUse($context) {
@@ -181,7 +181,7 @@ export default {
181
181
  <div class="kv-list">
182
182
  <div class="kv-row">
183
183
  <span class="kv-label">Платформа ПАК</span>
184
- <span class="kv-val">{{status?.pakSpec?.cpu || 'AMD Ryzen 495 8085'}} · {{status?.pakSpec?.ramGb || 192}} ГБ RAM · SSD {{status?.pakSpec?.ssdTb || 4}} ТБ</span>
184
+ <span class="kv-val">{{status?.pakSpec?.cpu || 'AMD Ryzen™ AI Max+ PRO 495'}} · {{status?.pakSpec?.ramGb || 192}} ГБ RAM · SSD {{status?.pakSpec?.ssdTb || 4}} ТБ</span>
185
185
  </div>
186
186
  <div class="kv-row">
187
187
  <span class="kv-label">Hardware ID (HWID)</span>
@@ -238,9 +238,9 @@ export default {
238
238
  <div class="card-head">
239
239
  <div class="card-title">
240
240
  <oda-icon icon="carbon:machine-learning-model" :icon-size="20"></oda-icon>
241
- <span>Предустановленный локальный стек ИИ ПАК WORK</span>
241
+ <span>Предустановленный локальный стек ИИ ODANT-WORK</span>
242
242
  </div>
243
- <span class="badge">4 контура ИИ + Типовая конфигурация (1С-класс)</span>
243
+ <span class="badge">Встроенная система учёта, документооборота, процессов и приватный ИИ</span>
244
244
  </div>
245
245
  <div class="models-grid">
246
246
  <div class="model-box" ~for="status?.preinstalledModels || []">
@@ -0,0 +1,5 @@
1
+ {
2
+ "publicKey": "MCowBQYDK2VwAyEAWUaWWCwtQMu6P1vyw67NV4k1n+u2rWlKsYzqwMZWLBs=",
3
+ "privateKey": "MC4CAQAwBQYDK2VwBCIEIJ11hrseEgp+y+025hchZFmZDdMppBxHNQIU18YFCd6q",
4
+ "created": 1793258170482
5
+ }
@@ -0,0 +1,182 @@
1
+ {
2
+ "licenses": {
3
+ "WORK-PAK-300A0DD0": {
4
+ "licenseId": "WORK-PAK-300A0DD0",
5
+ "issuedAt": 1793262666169,
6
+ "updatedAt": 1793262666169,
7
+ "issuer": "work.odant.org",
8
+ "customer": {
9
+ "name": "ООО «Маслоторг»",
10
+ "inn": "",
11
+ "email": "admin@maslotorg.ru",
12
+ "phone": ""
13
+ },
14
+ "hardware": {
15
+ "hwid": "PAK-3C564FAE8C0E",
16
+ "nodeFingerprint": "",
17
+ "sku": "WORK-PAK-495-192-4T",
18
+ "cpu": "AMD Ryzen™ AI Max+ PRO 495 (Zen 5, 16 ядер / 32 потока, до 5.2 ГГц, кэш 80 МБ)",
19
+ "ramGb": 192,
20
+ "ssdTb": 4,
21
+ "warrantyYears": 1,
22
+ "warrantyUntil": 1824798666169,
23
+ "warrantyProvider": "Партнёр-интегратор WORK"
24
+ },
25
+ "partner": null,
26
+ "baseSeats": 5,
27
+ "perpetualBase": true,
28
+ "addonSubscriptions": [],
29
+ "support": {
30
+ "tier": "business",
31
+ "includedUntil": 1824798666169,
32
+ "ticketsUsed": 1,
33
+ "bindCode": "BIND-4D86AF"
34
+ },
35
+ "protocol": "WORK-LIC-v1",
36
+ "issuerPublicKey": "MCowBQYDK2VwAyEAWUaWWCwtQMu6P1vyw67NV4k1n+u2rWlKsYzqwMZWLBs=",
37
+ "signature": "MrJ6/gykvxB9dP3nCqqhScggoWXb1k8xnHBEgCEbLP37htvCVij3epU6atmhp9UBx8Ua59OvcKGCKaPgNPQxCA=="
38
+ }
39
+ },
40
+ "orders": {
41
+ "ORD-MVTAMUDM-0F96": {
42
+ "orderId": "ORD-MVTAMUDM-0F96",
43
+ "licenseId": "WORK-PAK-300A0DD0",
44
+ "partnerId": "",
45
+ "partnerDiscountPercent": 0,
46
+ "partnerMarginRub": 0,
47
+ "includeBasePak": false,
48
+ "tier": "business",
49
+ "tierName": "Business",
50
+ "addonSeats": 10,
51
+ "years": 1,
52
+ "amountRub": 135000,
53
+ "items": [
54
+ {
55
+ "title": "Годовая лицензия ODANT-WORK на доп. рабочее место (уровень Business, 1 г., скидка −10% за объём)",
56
+ "quantity": 10,
57
+ "unitPriceRub": 13500,
58
+ "totalRub": 135000
59
+ }
60
+ ],
61
+ "customer": {
62
+ "name": "ООО «Маслоторг»",
63
+ "inn": "7701234567",
64
+ "email": "admin@maslotorg.ru",
65
+ "phone": ""
66
+ },
67
+ "status": "pending",
68
+ "paymentId": "yk_sandbox_2874a3734d40ab1b",
69
+ "confirmationUrl": "http://localhost:8020/pay/sandbox/ORD-MVTAMUDM-0F96",
70
+ "returnUrl": "https://work.odant.org",
71
+ "createdAt": 1793263243594,
72
+ "paidAt": null,
73
+ "yookassaMode": "sandbox"
74
+ },
75
+ "ORD-FR-MVTAMUET-FFAD": {
76
+ "orderId": "ORD-FR-MVTAMUET-FFAD",
77
+ "kind": "franchise_reservation",
78
+ "reservationId": "RES-TA-8EFAA5",
79
+ "licenseId": "RES-TA-8EFAA5",
80
+ "regionCode": "RU-TA",
81
+ "regionName": "Республика Татарстан",
82
+ "tierName": "Резерв франшизы (Республика Татарстан)",
83
+ "addonSeats": 1,
84
+ "years": 1,
85
+ "amountRub": 100000,
86
+ "franchiseFeeRub": 6500000,
87
+ "items": [
88
+ {
89
+ "title": "Невозвратный залог за резервирование региональной франшизы ODANT-WORK (Республика Татарстан, стоимость франшизы 6 500 000 ₽)",
90
+ "quantity": 1,
91
+ "unitPriceRub": 100000,
92
+ "totalRub": 100000
93
+ }
94
+ ],
95
+ "customer": {
96
+ "name": "ООО «Волга-Интеграция»",
97
+ "inn": "1655123456",
98
+ "email": "partner@volga-it.ru",
99
+ "phone": ""
100
+ },
101
+ "status": "pending",
102
+ "paymentId": "yk_sandbox_fae9588353cc1267",
103
+ "confirmationUrl": "http://localhost:8020/pay/sandbox/ORD-FR-MVTAMUET-FFAD",
104
+ "returnUrl": "https://work.odant.org",
105
+ "createdAt": 1793263243636,
106
+ "paidAt": null,
107
+ "yookassaMode": "sandbox"
108
+ }
109
+ },
110
+ "tickets": {
111
+ "TCK-0000-28BE": {
112
+ "ticketId": "TCK-0000-28BE",
113
+ "licenseId": "WORK-PAK-300A0DD0",
114
+ "customerName": "ООО «Маслоторг»",
115
+ "channel": "max",
116
+ "chatId": "client-101",
117
+ "userName": "Пользователь MAX",
118
+ "tier": "business",
119
+ "tierName": "Business",
120
+ "reactionMinutes": 120,
121
+ "reactionLabel": "до 2 часов",
122
+ "slaDeadlineAt": 1793270443784,
123
+ "status": "open",
124
+ "createdAt": 1793263243784,
125
+ "firstReplyAt": null,
126
+ "slaMet": null,
127
+ "messages": [
128
+ {
129
+ "from": "client",
130
+ "author": "Пользователь MAX",
131
+ "text": "Подскажите, как синхронизировать сертификат после докупки 10 мест?",
132
+ "time": 1793263243784
133
+ }
134
+ ]
135
+ }
136
+ },
137
+ "botBindings": {
138
+ "max:client-101": {
139
+ "channel": "max",
140
+ "chatId": "client-101",
141
+ "userName": "Пользователь MAX",
142
+ "licenseId": "WORK-PAK-300A0DD0",
143
+ "boundAt": 1793263243683
144
+ }
145
+ },
146
+ "partners": {},
147
+ "reservations": {
148
+ "RES-TA-8EFAA5": {
149
+ "reservationId": "RES-TA-8EFAA5",
150
+ "orderId": "ORD-FR-MVTAMUET-FFAD",
151
+ "regionCode": "RU-TA",
152
+ "regionName": "Республика Татарстан",
153
+ "district": "ПФО",
154
+ "companyName": "ООО «Волга-Интеграция»",
155
+ "inn": "1655123456",
156
+ "email": "partner@volga-it.ru",
157
+ "phone": "",
158
+ "contactPerson": "",
159
+ "franchiseFeeRub": 6500000,
160
+ "nonRefundableDepositRub": 100000,
161
+ "remainingFranchiseFeeRub": 6400000,
162
+ "status": "reserved_pending_deposit",
163
+ "depositPaid": false,
164
+ "createdAt": 1793263243636,
165
+ "expiresAt": 1794472843636
166
+ }
167
+ },
168
+ "certificates": {},
169
+ "users": {
170
+ "admin@maslotorg.ru": {
171
+ "userId": "USR-4DB3960551",
172
+ "email": "admin@maslotorg.ru",
173
+ "name": "ООО «Маслоторг»",
174
+ "companyName": "ООО «Маслоторг»",
175
+ "inn": "",
176
+ "licenseId": "WORK-PAK-300A0DD0",
177
+ "sessionKey": "wks_d0839169d8c9db42e8815c031140eb7c",
178
+ "createdAt": 1793262666168,
179
+ "lastLoginAt": 1793262666168
180
+ }
181
+ }
182
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "odant-work",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "WORK — платформа цифровой организации (учётная система уровня 1С, документооборот, чаты и локальный мультимодальный ИИ)",
5
5
  "type": "module",
6
6
  "main": "sources/work.js",
@@ -14,7 +14,7 @@
14
14
  "test": "node --test \"tests/**/*.test.js\"",
15
15
  "test:ci": "npm test",
16
16
  "setup-mirror": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/setup-svn-mirror.ps1",
17
- "publish": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/svn-publish.ps1",
17
+ "svn:publish": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/svn-publish.ps1",
18
18
  "sync": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/svn-sync.ps1",
19
19
  "mirror": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/mirror-to-git.ps1",
20
20
  "test:ui": "node tests/ui/run.mjs",
@@ -2,7 +2,7 @@
2
2
  * Клиентский модуль лицензирования ПАК WORK (sources/modules/license/index.js).
3
3
  *
4
4
  * Отвечает за:
5
- * - паспорт программно-аппаратного комплекса (AMD Ryzen 495 8085, 192 ГБ RAM, SSD 4 ТБ)
5
+ * - паспорт программно-аппаратного комплекса (AMD Ryzen™ AI Max+ PRO 495, 192 ГБ RAM, SSD 4 ТБ)
6
6
  * и реестр предустановленных моделей ИИ (Qwen 3 30B + Голосовая + Генерация изображений + Embedding);
7
7
  * - хранение и криптографическую проверку сертификата лицензии Ed25519 (#system/license.json);
8
8
  * - учёт рабочих мест: 5 вечных (базовый комплект ПАК) + срочные годовые лицензии (Start / Business / Enterprise);
@@ -21,54 +21,55 @@ export const LICENSE_PROTOCOL = 'WORK-LIC-v1';
21
21
  export const DEFAULT_LICENSE_HUB_URL = process.env.WORK_LICENSE_HUB_URL || 'https://work.odant.org';
22
22
  const LICENSE_FILE = './#system/license.json';
23
23
 
24
- /** Эталонная спецификация базового ПАК WORK. */
24
+ /** Эталонная спецификация базового комплекса ODANT-WORK. */
25
25
  export const PAK_HARDWARE_SPEC = Object.freeze({
26
26
  sku: 'WORK-PAK-495-192-4T',
27
- title: 'ПАК WORK AI-Server (Базовый комплект)',
28
- cpu: 'AMD Ryzen 495 8085',
27
+ title: 'ODANT-WORK (Программно-аппаратный комплекс)',
28
+ cpu: 'AMD Ryzen™ AI Max+ PRO 495 (16 ядер / 32 потока Zen 5, до 5.2 ГГц)',
29
+ gpu: 'AMD Radeon™ 8065S Graphics (40 ядер, 3000 МГц, до 61 TFLOPS FP16)',
30
+ npu: 'AMD Ryzen™ AI (до 132 TOPS общий ИИ / 55 TOPS NPU)',
31
+ ram: '192 ГБ 256-bit LPDDR5x-8533 Unified Memory',
29
32
  ramGb: 192,
33
+ ssd: 'SSD 4 ТБ NVMe PCIe 4.0 (RAID0/RAID1)',
30
34
  ssdTb: 4,
35
+ security: 'AMD PRO Technologies, AMD Memory Guard, AMD Secure Processor',
31
36
  basePriceRub: 5_000_000,
32
37
  baseSeats: 5,
33
38
  perpetualBase: true,
34
39
  includedSupportYears: 1,
35
40
  includedSupportTier: 'business',
36
- configuration: 'Типовая комплексная учётная конфигурация (аналог 1С: Предприятие — справочники, план счетов, двойная запись, ведомости, первичные документы, импорт 1С)',
41
+ configuration: 'Встроенная система учёта, документооборота, управления процессами и приватный мультимодальный ИИ (справочники, план счетов, двойная запись, ведомости, первичные документы, сквозные процессы и корпоративные коммуникации)',
37
42
  preinstalledModels: Object.freeze([
38
43
  {
39
44
  id: 'Qwen3-30B-A3B',
40
45
  category: 'llm',
41
- title: 'Qwen 3 30B',
42
- role: 'Основная языковая модель (диалог, ИИ-агент, учётные операции, аналитика, код)',
46
+ title: 'Большая языковая модель (LLM)',
47
+ role: 'Диалог, ведение учёта, документооборот, управление процессами, аналитика и генерация кода',
43
48
  path: '/MODELS/Local/Qwen3-30B-A3B',
44
- hfRepo: 'Qwen/Qwen3-30B-A3B',
45
49
  ramEstimateGb: 18.5,
46
50
  },
47
51
  {
48
52
  id: 'Qwen3-Voice',
49
53
  category: 'voice',
50
54
  title: 'Голосовая модель (ASR + TTS)',
51
- role: 'Полнодуплексный голосовой диалог с перебиванием, распознавание и синтез речи (Qwen3-ASR + Qwen3-TTS)',
55
+ role: 'Полнодуплексный голосовой диалог с перебиванием, распознавание и синтез естественной речи',
52
56
  path: '/MODELS/Local/Qwen3-Voice',
53
- hfRepo: 'Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign',
54
57
  ramEstimateGb: 4.2,
55
58
  },
56
59
  {
57
60
  id: 'Flux-Image',
58
61
  category: 'image',
59
- title: 'Генерация изображений',
62
+ title: 'Модель генерации изображений',
60
63
  role: 'Локальный синтез иллюстраций, карточек товаров, схем и визуальных материалов',
61
64
  path: '/MODELS/Local/Flux-Image',
62
- hfRepo: 'black-forest-labs/FLUX.1-schnell',
63
65
  ramEstimateGb: 12.0,
64
66
  },
65
67
  {
66
68
  id: 'Qwen3-Embedding',
67
69
  category: 'embedding',
68
- title: 'Embedding-модель (RAG)',
69
- role: 'Семантический векторный поиск по документам, договорам, проводкам и базе знаний',
70
+ title: 'Модель векторного поиска (Embedding / RAG)',
71
+ role: 'Семантический поиск и индексация договоров, первичных документов, проводок и базы знаний',
70
72
  path: '/MODELS/Local/Qwen3-Embedding',
71
- hfRepo: 'Qwen/Qwen3-Embedding-4B',
72
73
  ramEstimateGb: 2.5,
73
74
  },
74
75
  ]),
@@ -79,7 +80,7 @@ export const SUPPORT_TIERS = Object.freeze({
79
80
  start: Object.freeze({
80
81
  id: 'start',
81
82
  name: 'Start',
82
- pricePerUserYearRub: 15_000,
83
+ pricePerUserYearRub: 10_000,
83
84
  ticketsPerSeatYear: 12,
84
85
  reactionMinutes: 480,
85
86
  reactionText: 'до 8 рабочих часов',
@@ -90,24 +91,24 @@ export const SUPPORT_TIERS = Object.freeze({
90
91
  business: Object.freeze({
91
92
  id: 'business',
92
93
  name: 'Business',
93
- pricePerUserYearRub: 40_000,
94
+ pricePerUserYearRub: 15_000,
94
95
  ticketsPerSeatYear: 48,
95
96
  reactionMinutes: 120,
96
97
  reactionText: 'до 2 часов',
97
98
  scheduleText: '7 дней в неделю (08:00–22:00 МСК)',
98
99
  channels: ['MAX', 'Telegram', 'VK'],
99
- description: 'Бизнес-поддержка: до 48 обращений в год на место, время реакции до 2 часов, помощь по настройке учёта и локальных моделей.',
100
+ description: 'Бизнес-поддержка: до 48 обращений в год на место, время реакции до 2 часов, помощь по настройке учёта, процессов и моделей ИИ.',
100
101
  }),
101
102
  enterprise: Object.freeze({
102
103
  id: 'enterprise',
103
104
  name: 'Enterprise',
104
- pricePerUserYearRub: 100_000,
105
+ pricePerUserYearRub: 20_000,
105
106
  ticketsPerSeatYear: 9999,
106
107
  reactionMinutes: 15,
107
108
  reactionText: 'до 15 минут (24/7)',
108
109
  scheduleText: '24/7/365 (круглосуточно)',
109
110
  channels: ['MAX', 'Telegram', 'VK', 'Выделенный инженер'],
110
- description: 'Приоритетная поддержка 24/7: безлимитные обращения, реакция до 15 минут, персональный инженер и помощь в дообучении моделей (LoRA).',
111
+ description: 'Приоритетная поддержка 24/7: безлимитные обращения, реакция до 15 минут, персональный инженер и помощь в дообучении моделей.',
111
112
  }),
112
113
  });
113
114