libre-webui 0.2.8 → 0.3.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 (51) hide show
  1. package/README.md +25 -16
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +31 -0
  4. package/backend/dist/db.js.map +1 -1
  5. package/backend/dist/index.d.ts.map +1 -1
  6. package/backend/dist/index.js +13 -0
  7. package/backend/dist/index.js.map +1 -1
  8. package/backend/dist/routes/imageGen.d.ts +3 -0
  9. package/backend/dist/routes/imageGen.d.ts.map +1 -0
  10. package/backend/dist/routes/imageGen.js +313 -0
  11. package/backend/dist/routes/imageGen.js.map +1 -0
  12. package/backend/dist/routes/plugins.d.ts.map +1 -1
  13. package/backend/dist/routes/plugins.js +122 -0
  14. package/backend/dist/routes/plugins.js.map +1 -1
  15. package/backend/dist/services/galleryService.d.ts +41 -0
  16. package/backend/dist/services/galleryService.d.ts.map +1 -0
  17. package/backend/dist/services/galleryService.js +175 -0
  18. package/backend/dist/services/galleryService.js.map +1 -0
  19. package/backend/dist/services/pluginCredentialsService.d.ts +46 -0
  20. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -0
  21. package/backend/dist/services/pluginCredentialsService.js +175 -0
  22. package/backend/dist/services/pluginCredentialsService.js.map +1 -0
  23. package/backend/dist/services/pluginService.d.ts +23 -1
  24. package/backend/dist/services/pluginService.d.ts.map +1 -1
  25. package/backend/dist/services/pluginService.js +440 -24
  26. package/backend/dist/services/pluginService.js.map +1 -1
  27. package/backend/dist/types/index.d.ts +39 -0
  28. package/backend/dist/types/index.d.ts.map +1 -1
  29. package/backend/dist/types/index.js.map +1 -1
  30. package/frontend/dist/assets/index-BAlYrgVl.js +26 -0
  31. package/frontend/dist/css/index-CYRSPYSA.css +1 -0
  32. package/frontend/dist/index.html +4 -4
  33. package/frontend/dist/js/ArtifactContainer-DOyRNr2K.js +24 -0
  34. package/frontend/dist/js/{ArtifactDemoPage-Cg6PD9Cv.js → ArtifactDemoPage-DuHnKjTy.js} +1 -1
  35. package/frontend/dist/js/ChatPage-D4AGvUr9.js +281 -0
  36. package/frontend/dist/js/GalleryPage-DPxs-JHF.js +1 -0
  37. package/frontend/dist/js/ModelsPage-CDx8DvZ8.js +2 -0
  38. package/frontend/dist/js/PersonasPage-CHDGv_Lh.js +13 -0
  39. package/frontend/dist/js/UserManagementPage-COb0e5_w.js +1 -0
  40. package/frontend/dist/js/{markdown-vendor-D-79K2xZ.js → markdown-vendor-DRtqGHm3.js} +1 -1
  41. package/frontend/dist/js/ui-vendor-DA07XX1l.js +177 -0
  42. package/package.json +1 -1
  43. package/plugins/comfyui.json +49 -0
  44. package/frontend/dist/assets/index-CE4fvnod.js +0 -3
  45. package/frontend/dist/css/index-B1OjddR-.css +0 -1
  46. package/frontend/dist/js/ArtifactContainer-BoHnMmlC.js +0 -23
  47. package/frontend/dist/js/ChatPage-Bwc5n8Z3.js +0 -281
  48. package/frontend/dist/js/ModelsPage-2HtOH51G.js +0 -2
  49. package/frontend/dist/js/PersonasPage-BESJgtJW.js +0 -13
  50. package/frontend/dist/js/UserManagementPage-DQaE_2Mt.js +0 -1
  51. package/frontend/dist/js/ui-vendor-VxSCY_bv.js +0 -177
@@ -0,0 +1,175 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at:
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { v4 as uuidv4 } from 'uuid';
18
+ import { getDatabaseSafe } from '../db.js';
19
+ import { encryptionService } from './encryptionService.js';
20
+ class PluginCredentialsService {
21
+ /**
22
+ * Get API key for a specific plugin and user
23
+ * Returns null if not found, with optional fallback to environment variable
24
+ */
25
+ getApiKey(pluginId, keyEnv, userId) {
26
+ const effectiveUserId = userId || 'default';
27
+ const db = getDatabaseSafe();
28
+ if (db) {
29
+ try {
30
+ const row = db
31
+ .prepare('SELECT api_key FROM plugin_credentials WHERE plugin_id = ? AND user_id = ?')
32
+ .get(pluginId, effectiveUserId);
33
+ if (row?.api_key) {
34
+ // Decrypt the API key
35
+ const decryptedKey = encryptionService.decrypt(row.api_key);
36
+ if (decryptedKey) {
37
+ return decryptedKey;
38
+ }
39
+ }
40
+ }
41
+ catch (error) {
42
+ console.error('Failed to get API key for plugin %s:', pluginId, error);
43
+ }
44
+ }
45
+ // Fallback to environment variable
46
+ return process.env[keyEnv] || null;
47
+ }
48
+ /**
49
+ * Get all credentials for a user (API keys are masked for security)
50
+ */
51
+ getCredentials(userId) {
52
+ const effectiveUserId = userId || 'default';
53
+ const db = getDatabaseSafe();
54
+ if (!db) {
55
+ return [];
56
+ }
57
+ try {
58
+ const rows = db
59
+ .prepare('SELECT plugin_id, api_key, updated_at FROM plugin_credentials WHERE user_id = ?')
60
+ .all(effectiveUserId);
61
+ return rows.map(row => ({
62
+ plugin_id: row.plugin_id,
63
+ has_api_key: Boolean(row.api_key),
64
+ updated_at: row.updated_at,
65
+ }));
66
+ }
67
+ catch (error) {
68
+ console.error('Failed to get plugin credentials:', error);
69
+ return [];
70
+ }
71
+ }
72
+ /**
73
+ * Set or update API key for a plugin
74
+ */
75
+ setApiKey(pluginId, apiKey, userId) {
76
+ const effectiveUserId = userId || 'default';
77
+ const db = getDatabaseSafe();
78
+ if (!db) {
79
+ console.error('Database not available for storing plugin credentials');
80
+ return false;
81
+ }
82
+ try {
83
+ const now = Date.now();
84
+ const encryptedKey = encryptionService.encrypt(apiKey);
85
+ // Check if credential already exists
86
+ const existing = db
87
+ .prepare('SELECT id FROM plugin_credentials WHERE plugin_id = ? AND user_id = ?')
88
+ .get(pluginId, effectiveUserId);
89
+ if (existing) {
90
+ // Update existing credential
91
+ db.prepare('UPDATE plugin_credentials SET api_key = ?, updated_at = ? WHERE id = ?').run(encryptedKey, now, existing.id);
92
+ }
93
+ else {
94
+ // Insert new credential
95
+ const id = uuidv4();
96
+ db.prepare('INSERT INTO plugin_credentials (id, user_id, plugin_id, api_key, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)').run(id, effectiveUserId, pluginId, encryptedKey, now, now);
97
+ }
98
+ console.log(`API key ${existing ? 'updated' : 'set'} for plugin ${pluginId} (user: ${effectiveUserId})`);
99
+ return true;
100
+ }
101
+ catch (error) {
102
+ console.error('Failed to set API key for plugin %s:', pluginId, error);
103
+ return false;
104
+ }
105
+ }
106
+ /**
107
+ * Delete API key for a plugin
108
+ */
109
+ deleteApiKey(pluginId, userId) {
110
+ const effectiveUserId = userId || 'default';
111
+ const db = getDatabaseSafe();
112
+ if (!db) {
113
+ return false;
114
+ }
115
+ try {
116
+ const result = db
117
+ .prepare('DELETE FROM plugin_credentials WHERE plugin_id = ? AND user_id = ?')
118
+ .run(pluginId, effectiveUserId);
119
+ if (result.changes > 0) {
120
+ console.log(`API key deleted for plugin ${pluginId} (user: ${effectiveUserId})`);
121
+ return true;
122
+ }
123
+ return false;
124
+ }
125
+ catch (error) {
126
+ console.error('Failed to delete API key for plugin %s:', pluginId, error);
127
+ return false;
128
+ }
129
+ }
130
+ /**
131
+ * Check if a user has an API key set for a plugin
132
+ */
133
+ hasApiKey(pluginId, keyEnv, userId) {
134
+ return this.getApiKey(pluginId, keyEnv, userId) !== null;
135
+ }
136
+ /**
137
+ * Delete all credentials for a user (used when user account is deleted)
138
+ */
139
+ deleteAllUserCredentials(userId) {
140
+ const db = getDatabaseSafe();
141
+ if (!db) {
142
+ return false;
143
+ }
144
+ try {
145
+ db.prepare('DELETE FROM plugin_credentials WHERE user_id = ?').run(userId);
146
+ console.log(`All plugin credentials deleted for user ${userId}`);
147
+ return true;
148
+ }
149
+ catch (error) {
150
+ console.error(`Failed to delete all credentials for user ${userId}:`, error);
151
+ return false;
152
+ }
153
+ }
154
+ /**
155
+ * Delete all credentials for a plugin (used when plugin is deleted)
156
+ */
157
+ deleteAllPluginCredentials(pluginId) {
158
+ const db = getDatabaseSafe();
159
+ if (!db) {
160
+ return false;
161
+ }
162
+ try {
163
+ db.prepare('DELETE FROM plugin_credentials WHERE plugin_id = ?').run(pluginId);
164
+ console.log(`All credentials deleted for plugin ${pluginId}`);
165
+ return true;
166
+ }
167
+ catch (error) {
168
+ console.error(`Failed to delete all credentials for plugin ${pluginId}:`, error);
169
+ return false;
170
+ }
171
+ }
172
+ }
173
+ const pluginCredentialsService = new PluginCredentialsService();
174
+ export default pluginCredentialsService;
175
+ //# sourceMappingURL=pluginCredentialsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginCredentialsService.js","sourceRoot":"","sources":["../../src/services/pluginCredentialsService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Plugin, PluginStatus, PluginResponse, ChatMessage, GenerationOptions, TTSConfig, PluginType } from '../types/index.js';
1
+ import { Plugin, PluginStatus, PluginResponse, ChatMessage, GenerationOptions, TTSConfig, ImageGenConfig, ImageGenResponse, PluginType } from '../types/index.js';
2
2
  declare class PluginService {
3
3
  private pluginsDir;
4
4
  private activePluginIds;
@@ -6,6 +6,13 @@ declare class PluginService {
6
6
  private ensurePluginsDirectory;
7
7
  private loadActivePlugins;
8
8
  private saveActivePlugins;
9
+ /**
10
+ * Get API key for a plugin from database (per-user) or environment variable (fallback)
11
+ * @param plugin The plugin to get the API key for
12
+ * @param userId Optional user ID for per-user credentials
13
+ * @returns The API key or null if not found
14
+ */
15
+ getApiKey(plugin: Plugin, userId?: string): string | null;
9
16
  getAllPlugins(): Plugin[];
10
17
  getPlugin(id: string): Plugin | null;
11
18
  installPlugin(pluginData: Plugin): Plugin;
@@ -35,6 +42,21 @@ declare class PluginService {
35
42
  }): Promise<Buffer>;
36
43
  private splitTextForTTS;
37
44
  getTTSConfig(pluginId: string): TTSConfig | null;
45
+ getPluginForImageGen(model: string): Plugin | null;
46
+ getAvailableImageGenModels(): {
47
+ model: string;
48
+ plugin: string;
49
+ config?: ImageGenConfig;
50
+ }[];
51
+ executeImageGenRequest(model: string, prompt: string, options?: {
52
+ size?: string;
53
+ quality?: string;
54
+ style?: string;
55
+ n?: number;
56
+ response_format?: 'url' | 'b64_json';
57
+ }): Promise<ImageGenResponse>;
58
+ private executeComfyUIRequest;
59
+ getImageGenConfig(pluginId: string): ImageGenConfig | null;
38
60
  getPluginsByCapability(capabilityType: PluginType): Plugin[];
39
61
  }
40
62
  declare const _default: PluginService;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginService.d.ts","sourceRoot":"","sources":["../../src/services/pluginService.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,cAAM,aAAa;IACjB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA0B;;IAQjD,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,iBAAiB;IAUzB,aAAa,IAAI,MAAM,EAAE;IA+BzB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkCpC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAoBzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IA2CjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAanC,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAYtC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAqCrD,gBAAgB,IAAI,MAAM,EAAE;IAqB5B,eAAe,IAAI,MAAM,GAAG,IAAI;IAMhC,eAAe,IAAI,YAAY,EAAE;IAU3B,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAkT1B,OAAO,CAAC,wBAAwB;IA8EhC,OAAO,CAAC,qBAAqB;IAyF7B,OAAO,CAAC,cAAc;IA2BtB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvC,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM;IAoBzC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkD7C,qBAAqB,IAAI;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB,EAAE;IAuCG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;QAClE,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CAAC,MAAM,CAAC;IA4NlB,OAAO,CAAC,eAAe;IA4CvB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAYhD,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,EAAE;CAgD7D;;AAED,wBAAmC"}
1
+ {"version":3,"file":"pluginService.d.ts","sourceRoot":"","sources":["../../src/services/pluginService.ts"],"names":[],"mappings":"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"}