iobroker.ai-usage 0.1.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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -0
  3. package/admin/ai-usage.svg +19 -0
  4. package/admin/i18n/de.json +29 -0
  5. package/admin/i18n/en.json +29 -0
  6. package/admin/i18n/es.json +29 -0
  7. package/admin/i18n/fr.json +29 -0
  8. package/admin/i18n/it.json +29 -0
  9. package/admin/i18n/nl.json +29 -0
  10. package/admin/i18n/pl.json +29 -0
  11. package/admin/i18n/pt.json +29 -0
  12. package/admin/i18n/ru.json +29 -0
  13. package/admin/i18n/uk.json +29 -0
  14. package/admin/i18n/zh-cn.json +29 -0
  15. package/admin/jsonConfig.json +252 -0
  16. package/build/lib/http.js +81 -0
  17. package/build/lib/http.js.map +7 -0
  18. package/build/lib/poll-engine.js +341 -0
  19. package/build/lib/poll-engine.js.map +7 -0
  20. package/build/lib/provider.js +40 -0
  21. package/build/lib/provider.js.map +7 -0
  22. package/build/lib/providers/anthropic-api.js +120 -0
  23. package/build/lib/providers/anthropic-api.js.map +7 -0
  24. package/build/lib/providers/claude-auth.js +109 -0
  25. package/build/lib/providers/claude-auth.js.map +7 -0
  26. package/build/lib/providers/claude-sub.js +165 -0
  27. package/build/lib/providers/claude-sub.js.map +7 -0
  28. package/build/lib/providers/deepseek.js +67 -0
  29. package/build/lib/providers/deepseek.js.map +7 -0
  30. package/build/lib/providers/openai.js +136 -0
  31. package/build/lib/providers/openai.js.map +7 -0
  32. package/build/lib/providers/openrouter.js +71 -0
  33. package/build/lib/providers/openrouter.js.map +7 -0
  34. package/build/lib/providers/report-utils.js +59 -0
  35. package/build/lib/providers/report-utils.js.map +7 -0
  36. package/build/lib/pure-helpers.js +96 -0
  37. package/build/lib/pure-helpers.js.map +7 -0
  38. package/build/lib/snapshot-tree.js +175 -0
  39. package/build/lib/snapshot-tree.js.map +7 -0
  40. package/build/lib/totals.js +79 -0
  41. package/build/lib/totals.js.map +7 -0
  42. package/build/main.js +336 -0
  43. package/build/main.js.map +7 -0
  44. package/io-package.json +222 -0
  45. package/package.json +91 -0
@@ -0,0 +1,222 @@
1
+ {
2
+ "common": {
3
+ "name": "ai-usage",
4
+ "version": "0.1.0",
5
+ "news": {
6
+ "0.1.0": {
7
+ "en": "First release: usage limits, credits and costs of your Claude, OpenAI, Anthropic, OpenRouter and DeepSeek accounts as datapoints, with a warning at your chosen threshold",
8
+ "de": "Erste Version: Auslastungs-Limits, Guthaben und Kosten Ihrer Claude-, OpenAI-, Anthropic-, OpenRouter- und DeepSeek-Konten als Datenpunkte, mit Warnung an Ihrer Schwelle",
9
+ "ru": "Первый выпуск: лимиты, кредиты и расходы аккаунтов Claude, OpenAI, Anthropic, OpenRouter и DeepSeek как точки данных, с предупреждением на заданном пороге",
10
+ "pt": "Primeira versão: limites de uso, créditos e custos das contas Claude, OpenAI, Anthropic, OpenRouter e DeepSeek como pontos de dados, com aviso no limite escolhido",
11
+ "nl": "Eerste release: gebruikslimieten, tegoeden en kosten van uw Claude-, OpenAI-, Anthropic-, OpenRouter- en DeepSeek-accounts als datapunten, met waarschuwing bij uw drempel",
12
+ "fr": "Première version : limites d'utilisation, crédits et coûts de vos comptes Claude, OpenAI, Anthropic, OpenRouter et DeepSeek comme points de données, avec alerte au seuil choisi",
13
+ "it": "Prima versione: limiti di utilizzo, crediti e costi degli account Claude, OpenAI, Anthropic, OpenRouter e DeepSeek come punti dati, con avviso alla soglia scelta",
14
+ "es": "Primera versión: límites de uso, créditos y costes de sus cuentas Claude, OpenAI, Anthropic, OpenRouter y DeepSeek como puntos de datos, con aviso en el umbral elegido",
15
+ "pl": "Pierwsze wydanie: limity użycia, środki i koszty kont Claude, OpenAI, Anthropic, OpenRouter i DeepSeek jako punkty danych, z ostrzeżeniem przy wybranym progu",
16
+ "uk": "Перший випуск: ліміти використання, кредити та витрати акаунтів Claude, OpenAI, Anthropic, OpenRouter і DeepSeek як точки даних, з попередженням на обраному порозі",
17
+ "zh-cn": "首个版本:将 Claude、OpenAI、Anthropic、OpenRouter 和 DeepSeek 账户的使用限额、余额与费用作为数据点,并在达到所选阈值时发出警告"
18
+ },
19
+ "0.0.1": {
20
+ "en": "Initial development version",
21
+ "de": "Erste Entwicklungsversion",
22
+ "ru": "Первая версия для разработки",
23
+ "pt": "Primeira versão de desenvolvimento",
24
+ "nl": "Eerste ontwikkelversie",
25
+ "fr": "Première version de développement",
26
+ "it": "Prima versione di sviluppo",
27
+ "es": "Primera versión de desarrollo",
28
+ "pl": "Pierwsza wersja rozwojowa",
29
+ "uk": "Перша версія для розробки",
30
+ "zh-cn": "初始开发版本"
31
+ }
32
+ },
33
+ "titleLang": {
34
+ "en": "AI Usage",
35
+ "de": "AI Usage",
36
+ "ru": "AI Usage",
37
+ "pt": "AI Usage",
38
+ "nl": "AI Usage",
39
+ "fr": "AI Usage",
40
+ "it": "AI Usage",
41
+ "es": "AI Usage",
42
+ "pl": "AI Usage",
43
+ "uk": "AI Usage",
44
+ "zh-cn": "AI Usage"
45
+ },
46
+ "desc": {
47
+ "en": "Monitors usage, limits and costs of AI accounts (Claude, OpenAI, OpenRouter, DeepSeek)",
48
+ "de": "Überwacht Verbrauch, Limits und Kosten von KI-Konten (Claude, OpenAI, OpenRouter, DeepSeek)",
49
+ "ru": "Отслеживает использование, лимиты и расходы аккаунтов ИИ (Claude, OpenAI, OpenRouter, DeepSeek)",
50
+ "pt": "Monitora uso, limites e custos de contas de IA (Claude, OpenAI, OpenRouter, DeepSeek)",
51
+ "nl": "Bewaakt verbruik, limieten en kosten van AI-accounts (Claude, OpenAI, OpenRouter, DeepSeek)",
52
+ "fr": "Surveille l'utilisation, les limites et les coûts des comptes IA (Claude, OpenAI, OpenRouter, DeepSeek)",
53
+ "it": "Monitora utilizzo, limiti e costi degli account IA (Claude, OpenAI, OpenRouter, DeepSeek)",
54
+ "es": "Supervisa el uso, los límites y los costes de las cuentas de IA (Claude, OpenAI, OpenRouter, DeepSeek)",
55
+ "pl": "Monitoruje zużycie, limity i koszty kont AI (Claude, OpenAI, OpenRouter, DeepSeek)",
56
+ "uk": "Відстежує використання, ліміти та витрати акаунтів ШІ (Claude, OpenAI, OpenRouter, DeepSeek)",
57
+ "zh-cn": "监控 AI 账户的使用量、限额和费用(Claude、OpenAI、OpenRouter、DeepSeek)"
58
+ },
59
+ "keywords": [
60
+ "ai",
61
+ "usage",
62
+ "limits",
63
+ "costs",
64
+ "claude",
65
+ "openai",
66
+ "openrouter",
67
+ "deepseek",
68
+ "monitoring"
69
+ ],
70
+ "authors": [
71
+ "krobi <krobi@power-dreams.com>"
72
+ ],
73
+ "licenseInformation": {
74
+ "license": "MIT",
75
+ "type": "free"
76
+ },
77
+ "platform": "Javascript/Node.js",
78
+ "icon": "ai-usage.svg",
79
+ "extIcon": "https://raw.githubusercontent.com/krobipd/ioBroker.ai-usage/main/admin/ai-usage.svg",
80
+ "readme": "https://github.com/krobipd/ioBroker.ai-usage/blob/main/README.md",
81
+ "enabled": true,
82
+ "tier": 3,
83
+ "loglevel": "info",
84
+ "mode": "daemon",
85
+ "type": "infrastructure",
86
+ "compact": true,
87
+ "connectionType": "cloud",
88
+ "dataSource": "poll",
89
+ "adminUI": {
90
+ "config": "json"
91
+ },
92
+ "supportedMessages": {
93
+ "stopInstance": true
94
+ },
95
+ "messagebox": true,
96
+ "dependencies": [
97
+ {
98
+ "js-controller": ">=7.2.2"
99
+ }
100
+ ],
101
+ "globalDependencies": [
102
+ {
103
+ "admin": ">=8.0.0"
104
+ }
105
+ ]
106
+ },
107
+ "encryptedNative": [],
108
+ "protectedNative": [],
109
+ "native": {
110
+ "accounts": [],
111
+ "pollInterval": 300,
112
+ "notifications": true
113
+ },
114
+ "instanceObjects": [
115
+ {
116
+ "_id": "info",
117
+ "type": "channel",
118
+ "common": {
119
+ "name": "Adapter Information"
120
+ },
121
+ "native": {}
122
+ },
123
+ {
124
+ "_id": "info.connection",
125
+ "type": "state",
126
+ "common": {
127
+ "name": "At least one account reachable",
128
+ "type": "boolean",
129
+ "role": "indicator.connected",
130
+ "read": true,
131
+ "write": false,
132
+ "def": false
133
+ },
134
+ "native": {}
135
+ },
136
+ {
137
+ "_id": "total",
138
+ "type": "folder",
139
+ "common": {
140
+ "name": {
141
+ "en": "Totals across all accounts",
142
+ "de": "Gesamtwerte über alle Konten",
143
+ "ru": "Итоги по всем аккаунтам",
144
+ "pt": "Totais de todas as contas",
145
+ "nl": "Totalen over alle accounts",
146
+ "fr": "Totaux de tous les comptes",
147
+ "it": "Totali di tutti gli account",
148
+ "es": "Totales de todas las cuentas",
149
+ "pl": "Sumy dla wszystkich kont",
150
+ "uk": "Підсумки за всіма акаунтами",
151
+ "zh-cn": "所有账户的总计"
152
+ }
153
+ },
154
+ "native": {}
155
+ }
156
+ ],
157
+ "notifications": [
158
+ {
159
+ "scope": "ai-usage",
160
+ "name": {
161
+ "en": "AI Usage",
162
+ "de": "AI Usage",
163
+ "ru": "AI Usage",
164
+ "pt": "AI Usage",
165
+ "nl": "AI Usage",
166
+ "fr": "AI Usage",
167
+ "it": "AI Usage",
168
+ "es": "AI Usage",
169
+ "pl": "AI Usage",
170
+ "uk": "AI Usage",
171
+ "zh-cn": "AI Usage"
172
+ },
173
+ "description": {
174
+ "en": "AI Usage adapter",
175
+ "de": "AI-Usage-Adapter",
176
+ "ru": "Адаптер AI Usage",
177
+ "pt": "Adaptador AI Usage",
178
+ "nl": "AI Usage-adapter",
179
+ "fr": "Adaptateur AI Usage",
180
+ "it": "Adattatore AI Usage",
181
+ "es": "Adaptador AI Usage",
182
+ "pl": "Adapter AI Usage",
183
+ "uk": "Адаптер AI Usage",
184
+ "zh-cn": "AI Usage 适配器"
185
+ },
186
+ "categories": [
187
+ {
188
+ "category": "userActionRequired",
189
+ "name": {
190
+ "en": "Action required",
191
+ "de": "Aktion erforderlich",
192
+ "ru": "Требуется действие",
193
+ "pt": "Ação necessária",
194
+ "nl": "Actie vereist",
195
+ "fr": "Action requise",
196
+ "it": "Azione richiesta",
197
+ "es": "Acción requerida",
198
+ "pl": "Wymagane działanie",
199
+ "uk": "Потрібна дія",
200
+ "zh-cn": "需要操作"
201
+ },
202
+ "description": {
203
+ "en": "An AI account crossed its warn threshold or its credentials stopped working.",
204
+ "de": "Ein KI-Konto hat seine Warnschwelle überschritten oder die Zugangsdaten funktionieren nicht mehr.",
205
+ "ru": "Аккаунт ИИ превысил порог предупреждения или его учётные данные перестали работать.",
206
+ "pt": "Uma conta de IA ultrapassou o limite de aviso ou as credenciais deixaram de funcionar.",
207
+ "nl": "Een AI-account heeft de waarschuwingsdrempel overschreden of de inloggegevens werken niet meer.",
208
+ "fr": "Un compte IA a dépassé son seuil d'alerte ou ses identifiants ne fonctionnent plus.",
209
+ "it": "Un account IA ha superato la soglia di avviso o le credenziali non funzionano più.",
210
+ "es": "Una cuenta de IA superó su umbral de aviso o sus credenciales dejaron de funcionar.",
211
+ "pl": "Konto AI przekroczyło próg ostrzegawczy lub jego dane dostępowe przestały działać.",
212
+ "uk": "Акаунт ШІ перевищив поріг попередження або його облікові дані перестали працювати.",
213
+ "zh-cn": "某个 AI 账户超过了警告阈值,或其凭据已失效。"
214
+ },
215
+ "severity": "notify",
216
+ "regex": [],
217
+ "limit": 1
218
+ }
219
+ ]
220
+ }
221
+ ]
222
+ }
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "iobroker.ai-usage",
3
+ "version": "0.1.0",
4
+ "description": "ioBroker adapter monitoring usage, limits and costs of AI accounts (Claude, OpenAI, OpenRouter, DeepSeek)",
5
+ "author": {
6
+ "name": "krobi",
7
+ "email": "krobi@power-dreams.com"
8
+ },
9
+ "contributors": [
10
+ {
11
+ "name": "Claude (Anthropic)",
12
+ "role": "Coding assistance"
13
+ }
14
+ ],
15
+ "homepage": "https://github.com/krobipd/ioBroker.ai-usage",
16
+ "license": "MIT",
17
+ "keywords": [
18
+ "ioBroker",
19
+ "ai",
20
+ "usage",
21
+ "limits",
22
+ "costs",
23
+ "claude",
24
+ "openai",
25
+ "openrouter",
26
+ "deepseek",
27
+ "monitoring"
28
+ ],
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/krobipd/ioBroker.ai-usage"
32
+ },
33
+ "engines": {
34
+ "node": ">=22"
35
+ },
36
+ "files": [
37
+ "admin",
38
+ "build",
39
+ "io-package.json",
40
+ "LICENSE",
41
+ "README.md"
42
+ ],
43
+ "dependencies": {
44
+ "@iobroker/adapter-core": "^3.4.3"
45
+ },
46
+ "devDependencies": {
47
+ "@alcalzone/release-script": "^5.2.1",
48
+ "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
49
+ "@alcalzone/release-script-plugin-license": "^5.2.2",
50
+ "@iobroker/adapter-dev": "^1.5.0",
51
+ "@iobroker/eslint-config": "^2.3.4",
52
+ "@iobroker/testing": "^5.3.0",
53
+ "@tsconfig/node22": "^22.0.5",
54
+ "@types/iobroker": "npm:@iobroker/types@^7.2.2",
55
+ "@types/node": "^22.10.7",
56
+ "@vitest/coverage-v8": "^4.1.11",
57
+ "iobroker-adapter-checks": "^0.3.0",
58
+ "rimraf": "^6.1.3",
59
+ "typescript": "~6.0.3",
60
+ "vitest": "^4.1.11"
61
+ },
62
+ "main": "build/main.js",
63
+ "scripts": {
64
+ "prebuild": "rimraf build",
65
+ "build": "build-adapter ts",
66
+ "watch": "build-adapter ts --watch",
67
+ "check": "tsc --noEmit",
68
+ "test:ts": "vitest run",
69
+ "test:unit": "vitest run",
70
+ "test:package": "mocha test/package --exit",
71
+ "test:integration": "mocha test/integration --exit",
72
+ "test": "npm run test:ts && npm run test:package",
73
+ "coverage": "vitest run --coverage",
74
+ "lint": "eslint",
75
+ "lint:fix": "eslint --fix",
76
+ "format": "prettier --write .",
77
+ "format:check": "prettier --check .",
78
+ "translate": "translate-adapter",
79
+ "release": "release-script"
80
+ },
81
+ "bugs": {
82
+ "url": "https://github.com/krobipd/ioBroker.ai-usage/issues"
83
+ },
84
+ "overrides": {
85
+ "mocha": {
86
+ "diff": "^8.0.3",
87
+ "serialize-javascript": "^7.0.5"
88
+ },
89
+ "esbuild": ">=0.25.0"
90
+ }
91
+ }