orbitchat 2.2.7 → 2.2.9

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/bin/orbitchat.js +79 -46
  2. package/dist/assets/{_basePickBy-1MakYQmz-CFyJwR0u.js → _basePickBy-1MakYQmz-BAhRsHXC.js} +1 -1
  3. package/dist/assets/{_baseUniq-Cd4llU-Q-D06fzDcA.js → _baseUniq-Cd4llU-Q-CsIxZURF.js} +1 -1
  4. package/dist/assets/{api-Ciw0inlZ.js → api-B68Q13El.js} +1 -1
  5. package/dist/assets/{arc-b8oyw-lz-BCfULEh7.js → arc-b8oyw-lz-BqCfYgpU.js} +1 -1
  6. package/dist/assets/{architectureDiagram-VXUJARFQ-BuSDV2Do-DuPWl-E8.js → architectureDiagram-VXUJARFQ-BuSDV2Do-DkCzZT5N.js} +1 -1
  7. package/dist/assets/{blockDiagram-VD42YOAC-jQHtez-j-C4kvu0Em.js → blockDiagram-VD42YOAC-jQHtez-j-CJTsIVbJ.js} +1 -1
  8. package/dist/assets/{c4Diagram-YG6GDRKO-_5giM-EA-CAUaWHfB.js → c4Diagram-YG6GDRKO-_5giM-EA-CdW8htOl.js} +1 -1
  9. package/dist/assets/channel-BLPbvVT2-CP0zgk7D.js +1 -0
  10. package/dist/assets/{chunk-4BX2VUAB-BeuiUsbc-SyLBSPGf.js → chunk-4BX2VUAB-BeuiUsbc-CyOuPrI8.js} +1 -1
  11. package/dist/assets/{chunk-55IACEB6-C4OH5_NF-CeUEEy8j.js → chunk-55IACEB6-C4OH5_NF-HSErBipB.js} +1 -1
  12. package/dist/assets/{chunk-B4BG7PRW-CnUkcto7-Bw3MBwH8.js → chunk-B4BG7PRW-CnUkcto7-m-YHBNjU.js} +1 -1
  13. package/dist/assets/{chunk-DI55MBZ5-CSd59tsh-DMnz_BT4.js → chunk-DI55MBZ5-CSd59tsh-QcxSJz1R.js} +1 -1
  14. package/dist/assets/{chunk-FMBD7UC4-C6VImbBX-Ci00_56S.js → chunk-FMBD7UC4-C6VImbBX-CdWDLckg.js} +1 -1
  15. package/dist/assets/{chunk-QN33PNHL-DrWWTLTH-CxKsUSHw.js → chunk-QN33PNHL-DrWWTLTH-UzcLWgZY.js} +1 -1
  16. package/dist/assets/{chunk-QZHKN3VN-C6_I39By-wG4V5ipa.js → chunk-QZHKN3VN-C6_I39By-Cz33_PSG.js} +1 -1
  17. package/dist/assets/{chunk-TZMSLE5B-DGddLgNl-oFBh2Kwv.js → chunk-TZMSLE5B-DGddLgNl-CfNEVvWN.js} +1 -1
  18. package/dist/assets/{classDiagram-2ON5EDUG-BngjTxOv-BTvgR8FJ.js → classDiagram-2ON5EDUG-BngjTxOv-CQhamgNl.js} +1 -1
  19. package/dist/assets/{classDiagram-v2-WZHVMYZB-BngjTxOv-BTvgR8FJ.js → classDiagram-v2-WZHVMYZB-BngjTxOv-CQhamgNl.js} +1 -1
  20. package/dist/assets/clone-DH1Kq5Y6-Ba-lUtme.js +1 -0
  21. package/dist/assets/{cose-bilkent-S5V4N54A-DcyCVH6S-DmuDbM_l.js → cose-bilkent-S5V4N54A-DcyCVH6S-_Xa90S_g.js} +1 -1
  22. package/dist/assets/{dagre-6UL2VRFP-B799wmhr-COgMFtha.js → dagre-6UL2VRFP-B799wmhr-BmVW0iuC.js} +1 -1
  23. package/dist/assets/{diagram-PSM6KHXK-Dxp2wzKk-BBCx56dy.js → diagram-PSM6KHXK-Dxp2wzKk-CZTFiE4C.js} +1 -1
  24. package/dist/assets/{diagram-QEK2KX5R-Km_liL9n-Betp39ze.js → diagram-QEK2KX5R-Km_liL9n-DFCl3NKk.js} +1 -1
  25. package/dist/assets/{diagram-S2PKOQOG-tSpHqt0k-44sQtblg.js → diagram-S2PKOQOG-tSpHqt0k-xf_ngAOM.js} +1 -1
  26. package/dist/assets/{erDiagram-Q2GNP2WA-DF6ylQ7o-Dt6nMqG4.js → erDiagram-Q2GNP2WA-DF6ylQ7o-DdRu0NKP.js} +1 -1
  27. package/dist/assets/{flowDiagram-NV44I4VS-BQUYJeB--BIIW2JbR.js → flowDiagram-NV44I4VS-BQUYJeB--BeDbFZsR.js} +1 -1
  28. package/dist/assets/{ganttDiagram-LVOFAZNH-BidPm1xz-C_N0fE6y.js → ganttDiagram-LVOFAZNH-BidPm1xz-DBIsx_AE.js} +1 -1
  29. package/dist/assets/{gitGraphDiagram-NY62KEGX-zbMOFVrv-C2aviXPE.js → gitGraphDiagram-NY62KEGX-zbMOFVrv-Cll7Xa35.js} +1 -1
  30. package/dist/assets/{graph-aRt77rZZ-BCYSvQYP.js → graph-aRt77rZZ-slHn5KEJ.js} +1 -1
  31. package/dist/assets/{index-CyVB0J6E.js → index-CFYhtZ1e.js} +73 -73
  32. package/dist/assets/{index-rW5EEHFR-DdBF6BH7.js → index-rW5EEHFR-D-o-LRPp.js} +1 -1
  33. package/dist/assets/{infoDiagram-ER5ION4S-ozjqEnsq-Ba1eAJxv.js → infoDiagram-ER5ION4S-ozjqEnsq-oKxWmhEd.js} +1 -1
  34. package/dist/assets/{journeyDiagram-XKPGCS4Q-C6JuEafR-CDMHuJkC.js → journeyDiagram-XKPGCS4Q-C6JuEafR-DM7w5ttd.js} +1 -1
  35. package/dist/assets/{kanban-definition-3W4ZIXB7-Ci4U3NR--DxVvWtAD.js → kanban-definition-3W4ZIXB7-Ci4U3NR--CR-hFfA0.js} +1 -1
  36. package/dist/assets/{layout-BKjRgLFe-BqG-N5rr.js → layout-BKjRgLFe-DIgRT4aW.js} +1 -1
  37. package/dist/assets/{mindmap-definition-VGOIOE7T-DveejCtl-DLDRL_jx.js → mindmap-definition-VGOIOE7T-DveejCtl-j12l4UiP.js} +1 -1
  38. package/dist/assets/{pieDiagram-ADFJNKIX-DAbSGtae-DaaJODT6.js → pieDiagram-ADFJNKIX-DAbSGtae-NYsX6s7s.js} +1 -1
  39. package/dist/assets/{quadrantDiagram-AYHSOK5B-DnnzUQMW-ByDrDvpT.js → quadrantDiagram-AYHSOK5B-DnnzUQMW-CKhUYTv2.js} +1 -1
  40. package/dist/assets/{requirementDiagram-UZGBJVZJ-BB9jagBx-4ABuhsu-.js → requirementDiagram-UZGBJVZJ-BB9jagBx-4dU9Di2G.js} +1 -1
  41. package/dist/assets/{sankeyDiagram-TZEHDZUN-BttZx2-h-DZFrYF3L.js → sankeyDiagram-TZEHDZUN-BttZx2-h-DeC-xZE-.js} +1 -1
  42. package/dist/assets/{sequenceDiagram-WL72ISMW-DA6yVs26-Cf4EYRDf.js → sequenceDiagram-WL72ISMW-DA6yVs26-Bo7FK6Z3.js} +1 -1
  43. package/dist/assets/{stateDiagram-FKZM4ZOC-BD8xEcbc-DSZVswAk.js → stateDiagram-FKZM4ZOC-BD8xEcbc-DLe6xtjO.js} +1 -1
  44. package/dist/assets/{stateDiagram-v2-4FDKWEC3-DINzAoyF-Biyi4sW7.js → stateDiagram-v2-4FDKWEC3-DINzAoyF-D8wKEAkL.js} +1 -1
  45. package/dist/assets/{timeline-definition-IT6M3QCI-XN-D5T3b-CUWPxmpi.js → timeline-definition-IT6M3QCI-XN-D5T3b-Ckk8yZ6A.js} +1 -1
  46. package/dist/assets/{treemap-KMMF4GRG-C4GHjB3F-HVe9FL0t.js → treemap-KMMF4GRG-C4GHjB3F-B6RJ9b4F.js} +1 -1
  47. package/dist/assets/{xychartDiagram-PRI3JC2R-BL53__6J-Dk9M98Ob.js → xychartDiagram-PRI3JC2R-BL53__6J-B8e2l_RZ.js} +1 -1
  48. package/dist/index.html +1 -1
  49. package/package.json +1 -1
  50. package/dist/assets/channel-BLPbvVT2-BU9ed3z7.js +0 -1
  51. package/dist/assets/clone-DH1Kq5Y6-CC3PuMQg.js +0 -1
package/bin/orbitchat.js CHANGED
@@ -16,7 +16,6 @@ import { homedir } from 'os';
16
16
  import { execSync } from 'child_process';
17
17
  import { fileURLToPath } from 'url';
18
18
  import { dirname } from 'path';
19
- import yaml from 'js-yaml';
20
19
  import { createProxyMiddleware } from 'http-proxy-middleware';
21
20
 
22
21
  const __filename = fileURLToPath(import.meta.url);
@@ -44,30 +43,45 @@ const DEFAULT_CONFIG = {
44
43
  };
45
44
 
46
45
  /**
47
- * Load adapter mappings from YAML file
46
+ * Load adapter mappings from environment variable
47
+ * Format: JSON array of adapter objects
48
+ * Example: ORBIT_ADAPTERS='[{"name":"Simple Chat","apiKey":"key1","apiUrl":"https://api.example.com"}]'
49
+ * @returns {object|null} - Adapters object or null if not found/invalid
48
50
  */
49
51
  function loadAdaptersConfig() {
50
- const configPaths = [
51
- path.join(__dirname, '..', 'adapters.yaml'),
52
- path.join(process.cwd(), 'adapters.yaml'),
53
- path.join(homedir(), '.orbit-chat-app', 'adapters.yaml'),
54
- ];
52
+ const envValue = process.env.ORBIT_ADAPTERS || process.env.VITE_ADAPTERS;
53
+ if (!envValue) {
54
+ return null;
55
+ }
55
56
 
56
- for (const configPath of configPaths) {
57
- try {
58
- if (fs.existsSync(configPath)) {
59
- const content = fs.readFileSync(configPath, 'utf8');
60
- const config = yaml.load(content);
61
- if (config && config.adapters) {
62
- return config.adapters;
63
- }
57
+ try {
58
+ const parsed = JSON.parse(envValue);
59
+ if (!Array.isArray(parsed)) {
60
+ console.warn('Warning: ORBIT_ADAPTERS/VITE_ADAPTERS must be a JSON array');
61
+ return null;
62
+ }
63
+
64
+ // Convert array to object format expected by the rest of the code
65
+ const adapters = {};
66
+ for (const adapter of parsed) {
67
+ if (!adapter.name) {
68
+ console.warn('Warning: Each adapter must have a "name" property');
69
+ continue;
64
70
  }
65
- } catch (error) {
66
- console.warn(`Warning: Could not load adapters config from ${configPath}:`, error.message);
71
+ adapters[adapter.name] = {
72
+ apiKey: adapter.apiKey || 'default-key',
73
+ apiUrl: adapter.apiUrl || 'http://localhost:3000',
74
+ };
67
75
  }
68
- }
69
76
 
70
- return null;
77
+ if (Object.keys(adapters).length > 0) {
78
+ return adapters;
79
+ }
80
+ return null;
81
+ } catch (error) {
82
+ console.warn('Warning: Could not parse ORBIT_ADAPTERS/VITE_ADAPTERS:', error.message);
83
+ return null;
84
+ }
71
85
  }
72
86
 
73
87
  /**
@@ -293,40 +307,28 @@ function createServer(distPath, config) {
293
307
 
294
308
  // API endpoints for middleware mode - MUST be before body parsers
295
309
  if (config.enableApiMiddleware && adapters) {
296
- // Endpoint to list available adapters
297
- app.get('/api/adapters', (req, res) => {
298
- const adapterList = Object.keys(adapters).map(name => ({
299
- name,
300
- apiUrl: adapters[name].apiUrl,
301
- // Don't expose API keys
302
- }));
303
- res.json({ adapters: adapterList });
304
- });
305
-
306
- // Proxy middleware for API requests - must be before body parsers to preserve request stream
307
- app.use('/api/proxy', (req, res, next) => {
308
- const adapterName = req.headers['x-adapter-name'];
309
-
310
- if (!adapterName) {
311
- return res.status(400).json({ error: 'X-Adapter-Name header is required' });
312
- }
313
-
314
- const adapter = adapters[adapterName];
315
- if (!adapter) {
316
- return res.status(404).json({ error: `Adapter '${adapterName}' not found` });
310
+ // Pre-create proxy instances for each adapter to avoid memory leaks
311
+ // Creating proxies on every request adds event listeners that accumulate
312
+ const proxyInstances = {};
313
+ for (const [adapterName, adapter] of Object.entries(adapters)) {
314
+ if (!adapter.apiKey || !adapter.apiUrl) {
315
+ console.warn(`[Proxy] Skipping adapter '${adapterName}': missing apiKey or apiUrl`);
316
+ continue;
317
317
  }
318
-
319
- // Create proxy middleware for this request
320
- const proxy = createProxyMiddleware({
318
+ proxyInstances[adapterName] = createProxyMiddleware({
321
319
  target: adapter.apiUrl,
322
320
  changeOrigin: true,
323
321
  pathRewrite: {
324
322
  '^/api/proxy': '', // Remove /api/proxy prefix
325
323
  },
324
+ // Set headers directly - this is more reliable than onProxyReq for some cases
325
+ headers: {
326
+ 'X-API-Key': adapter.apiKey,
327
+ },
326
328
  onProxyReq: (proxyReq, req) => {
327
329
  // Remove adapter name header
328
330
  proxyReq.removeHeader('x-adapter-name');
329
- // Add actual API key (use X-API-Key to match backend expectation)
331
+ // Ensure API key is set (backup to headers option above)
330
332
  proxyReq.setHeader('X-API-Key', adapter.apiKey);
331
333
  // Preserve important headers
332
334
  const headersToPreserve = ['content-type', 'x-session-id', 'x-thread-id', 'accept', 'content-length'];
@@ -362,6 +364,31 @@ function createServer(distPath, config) {
362
364
  ws: false, // Disable WebSocket proxying
363
365
  logLevel: 'silent', // Reduce logging
364
366
  });
367
+ }
368
+
369
+ // Endpoint to list available adapters
370
+ app.get('/api/adapters', (req, res) => {
371
+ const adapterList = Object.keys(adapters).map(name => ({
372
+ name,
373
+ apiUrl: adapters[name].apiUrl,
374
+ // Don't expose API keys
375
+ }));
376
+ res.json({ adapters: adapterList });
377
+ });
378
+
379
+ // Proxy middleware for API requests - must be before body parsers to preserve request stream
380
+ app.use('/api/proxy', (req, res, next) => {
381
+ const adapterName = req.headers['x-adapter-name'];
382
+
383
+ if (!adapterName) {
384
+ return res.status(400).json({ error: 'X-Adapter-Name header is required' });
385
+ }
386
+
387
+ const proxy = proxyInstances[adapterName];
388
+ if (!proxy) {
389
+ console.error(`[Proxy] Adapter '${adapterName}' not found. Available: ${Object.keys(proxyInstances).join(', ')}`);
390
+ return res.status(404).json({ error: `Adapter '${adapterName}' not found` });
391
+ }
365
392
 
366
393
  proxy(req, res, next);
367
394
  });
@@ -528,12 +555,18 @@ Configuration Priority:
528
555
  3. Environment variables (VITE_*)
529
556
  4. Default values
530
557
 
558
+ Environment Variables for Middleware Mode:
559
+ ORBIT_ADAPTERS or VITE_ADAPTERS JSON array of adapter configurations
560
+ Example: '[{"name":"Chat","apiKey":"key1","apiUrl":"https://api.example.com"}]'
561
+
531
562
  Examples:
532
563
  orbitchat --api-url http://localhost:3000 --port 8080
533
564
  orbitchat --api-key my-key --open
534
565
  orbitchat --enable-audio --enable-upload --console-debug
535
566
  orbitchat --config /path/to/config.json
567
+ ORBIT_ADAPTERS='[{"name":"Chat","apiKey":"mykey","apiUrl":"https://api.example.com"}]' orbitchat --enable-api-middleware
536
568
  `);
569
+
537
570
  }
538
571
 
539
572
  /**
@@ -566,7 +599,7 @@ function main() {
566
599
 
567
600
  // Create and start server
568
601
  const app = createServer(distPath, config);
569
-
602
+
570
603
  app.listen(serverConfig.port, serverConfig.host, () => {
571
604
  const url = `http://${serverConfig.host}:${serverConfig.port}`;
572
605
  console.debug(`\n🚀 ORBIT Chat App is running at ${url}\n`);
@@ -581,7 +614,7 @@ function main() {
581
614
  if (adapters) {
582
615
  console.debug(` Available Adapters: ${Object.keys(adapters).join(', ')}`);
583
616
  } else {
584
- console.debug(` Warning: No adapters.yaml found`);
617
+ console.debug(` Warning: No adapters configured. Set ORBIT_ADAPTERS or VITE_ADAPTERS environment variable.`);
585
618
  }
586
619
  }
587
620
  console.debug('');
@@ -1 +1 @@
1
- import{b as m,L as s,Y as d,O as $,t as j,N as h,y as Q,A as b,M as A,d as G,Q as _}from"./_baseUniq-Cd4llU-Q-D06fzDcA.js";import{aJ as x,br as y,aE as L,aF as N,aQ as S,bs as Y,bt as c,bu as w,aO as C,aK as F}from"./index-CyVB0J6E.js";var J=/\s/;function K(r){for(var t=r.length;t--&&J.test(r.charAt(t)););return t}var M=/^\s+/;function P(r){return r&&r.slice(0,K(r)+1).replace(M,"")}var p=NaN,Z=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,q=/^0o[0-7]+$/i,z=parseInt;function D(r){if(typeof r=="number")return r;if(h(r))return p;if(c(r)){var t=typeof r.valueOf=="function"?r.valueOf():r;r=c(t)?t+"":t}if(typeof r!="string")return r===0?r:+r;r=P(r);var a=k.test(r);return a||q.test(r)?z(r.slice(2),a?2:8):Z.test(r)?p:+r}var g=1/0,E=17976931348623157e292;function H(r){if(!r)return r===0?r:0;if(r=D(r),r===g||r===-g){var t=r<0?-1:1;return t*E}return r===r?r:0}function I(r){var t=H(r),a=t%1;return t===t?a?t-a:t:0}function ur(r){var t=r==null?0:r.length;return t?$(r):[]}var O=Object.prototype,R=O.hasOwnProperty,fr=L(function(r,t){r=Object(r);var a=-1,o=t.length,e=o>2?t[2]:void 0;for(e&&N(t[0],t[1],e)&&(o=1);++a<o;)for(var f=t[a],n=S(f),u=-1,i=n.length;++u<i;){var v=n[u],l=r[v];(l===void 0||Y(l,O[v])&&!R.call(r,v))&&(r[v]=f[v])}return r});function ir(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}function U(r){return function(t,a,o){var e=Object(t);if(!y(t)){var f=s(a);t=G(t),a=function(u){return f(e[u],u,e)}}var n=r(t,a,o);return n>-1?e[f?t[n]:n]:void 0}}var V=Math.max;function W(r,t,a){var o=r==null?0:r.length;if(!o)return-1;var e=a==null?0:I(a);return e<0&&(e=V(o+e,0)),_(r,s(t),e)}var vr=U(W);function X(r,t){var a=-1,o=y(r)?Array(r.length):[];return d(r,function(e,f,n){o[++a]=t(e,f,n)}),o}function lr(r,t){var a=x(r)?m:X;return a(r,s(t))}var B=Object.prototype,T=B.hasOwnProperty;function rr(r,t){return r!=null&&T.call(r,t)}function cr(r,t){return r!=null&&j(r,t,rr)}function tr(r,t){return r<t}function ar(r,t,a){for(var o=-1,e=r.length;++o<e;){var f=r[o],n=t(f);if(n!=null&&(u===void 0?n===n&&!h(n):a(n,u)))var u=n,i=f}return i}function sr(r){return r&&r.length?ar(r,F,tr):void 0}function er(r,t,a,o){if(!c(r))return r;t=b(t,r);for(var e=-1,f=t.length,n=f-1,u=r;u!=null&&++e<f;){var i=A(t[e]),v=a;if(i==="__proto__"||i==="constructor"||i==="prototype")return r;if(e!=n){var l=u[i];v=void 0,v===void 0&&(v=c(l)?l:w(t[e+1])?[]:{})}C(u,i,v),u=u[i]}return r}function pr(r,t,a){for(var o=-1,e=t.length,f={};++o<e;){var n=t[o],u=Q(r,n);a(u,n)&&er(f,b(n,r),u)}return f}export{X as V,H as X,I as Y,lr as b,fr as d,ur as f,cr as g,vr as h,sr as m,pr as o,tr as r,ar as t,ir as u};
1
+ import{b as m,L as s,Y as d,O as $,t as j,N as h,y as Q,A as b,M as A,d as G,Q as _}from"./_baseUniq-Cd4llU-Q-CsIxZURF.js";import{aJ as x,br as y,aE as L,aF as N,aQ as S,bs as Y,bt as c,bu as w,aO as C,aK as F}from"./index-CFYhtZ1e.js";var J=/\s/;function K(r){for(var t=r.length;t--&&J.test(r.charAt(t)););return t}var M=/^\s+/;function P(r){return r&&r.slice(0,K(r)+1).replace(M,"")}var p=NaN,Z=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,q=/^0o[0-7]+$/i,z=parseInt;function D(r){if(typeof r=="number")return r;if(h(r))return p;if(c(r)){var t=typeof r.valueOf=="function"?r.valueOf():r;r=c(t)?t+"":t}if(typeof r!="string")return r===0?r:+r;r=P(r);var a=k.test(r);return a||q.test(r)?z(r.slice(2),a?2:8):Z.test(r)?p:+r}var g=1/0,E=17976931348623157e292;function H(r){if(!r)return r===0?r:0;if(r=D(r),r===g||r===-g){var t=r<0?-1:1;return t*E}return r===r?r:0}function I(r){var t=H(r),a=t%1;return t===t?a?t-a:t:0}function ur(r){var t=r==null?0:r.length;return t?$(r):[]}var O=Object.prototype,R=O.hasOwnProperty,fr=L(function(r,t){r=Object(r);var a=-1,o=t.length,e=o>2?t[2]:void 0;for(e&&N(t[0],t[1],e)&&(o=1);++a<o;)for(var f=t[a],n=S(f),u=-1,i=n.length;++u<i;){var v=n[u],l=r[v];(l===void 0||Y(l,O[v])&&!R.call(r,v))&&(r[v]=f[v])}return r});function ir(r){var t=r==null?0:r.length;return t?r[t-1]:void 0}function U(r){return function(t,a,o){var e=Object(t);if(!y(t)){var f=s(a);t=G(t),a=function(u){return f(e[u],u,e)}}var n=r(t,a,o);return n>-1?e[f?t[n]:n]:void 0}}var V=Math.max;function W(r,t,a){var o=r==null?0:r.length;if(!o)return-1;var e=a==null?0:I(a);return e<0&&(e=V(o+e,0)),_(r,s(t),e)}var vr=U(W);function X(r,t){var a=-1,o=y(r)?Array(r.length):[];return d(r,function(e,f,n){o[++a]=t(e,f,n)}),o}function lr(r,t){var a=x(r)?m:X;return a(r,s(t))}var B=Object.prototype,T=B.hasOwnProperty;function rr(r,t){return r!=null&&T.call(r,t)}function cr(r,t){return r!=null&&j(r,t,rr)}function tr(r,t){return r<t}function ar(r,t,a){for(var o=-1,e=r.length;++o<e;){var f=r[o],n=t(f);if(n!=null&&(u===void 0?n===n&&!h(n):a(n,u)))var u=n,i=f}return i}function sr(r){return r&&r.length?ar(r,F,tr):void 0}function er(r,t,a,o){if(!c(r))return r;t=b(t,r);for(var e=-1,f=t.length,n=f-1,u=r;u!=null&&++e<f;){var i=A(t[e]),v=a;if(i==="__proto__"||i==="constructor"||i==="prototype")return r;if(e!=n){var l=u[i];v=void 0,v===void 0&&(v=c(l)?l:w(t[e+1])?[]:{})}C(u,i,v),u=u[i]}return r}function pr(r,t,a){for(var o=-1,e=t.length,f={};++o<e;){var n=t[o],u=Q(r,n);a(u,n)&&er(f,b(n,r),u)}return f}export{X as V,H as X,I as Y,lr as b,fr as d,ur as f,cr as g,vr as h,sr as m,pr as o,tr as r,ar as t,ir as u};
@@ -1 +1 @@
1
- import{bv as Lr,bw as Mr,br as or,aJ as p,aK as cr,bt as fr,bx as zr,by as O,bz as U,bA as Dr,bB as Fr,bC as m,aL as sr,aO as $r,bD as F,bE as kr,bF as z,aQ as G,bG as Ur,bH as ir,bI as M,bJ as S,bK as Br,bL as w,bM as Gr,bN as Pr,bu as Cr,bO as lr,bP as Nr,bs as Qr,bQ as R,bR as Vr,aP as Hr}from"./index-CyVB0J6E.js";var Jr="[object Symbol]";function P(r){return typeof r=="symbol"||S(r)&&Gr(r)==Jr}function br(r,e){for(var t=-1,a=r==null?0:r.length,n=Array(a);++t<a;)n[t]=e(r[t],t,r);return n}var T=w?w.prototype:void 0,W=T?T.toString:void 0;function vr(r){if(typeof r=="string")return r;if(p(r))return br(r,vr)+"";if(P(r))return W?W.call(r):"";var e=r+"";return e=="0"&&1/r==-1/0?"-0":e}function Kr(){}function jr(r,e){for(var t=-1,a=r==null?0:r.length;++t<a&&e(r[t],t,r)!==!1;);return r}function Rr(r,e,t,a){for(var n=r.length,u=t+-1;++u<n;)if(e(r[u],u,r))return u;return-1}function Tr(r){return r!==r}function Wr(r,e,t){for(var a=t-1,n=r.length;++a<n;)if(r[a]===e)return a;return-1}function Xr(r,e,t){return e===e?Wr(r,e,t):Rr(r,Tr,t)}function qr(r,e){var t=r==null?0:r.length;return!!t&&Xr(r,e,0)>-1}function _(r){return or(r)?Lr(r):Mr(r)}var Yr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Zr=/^\w*$/;function C(r,e){if(p(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||P(r)?!0:Zr.test(r)||!Yr.test(r)||e!=null&&r in Object(e)}var re=500;function ee(r){var e=Vr(r,function(a){return t.size===re&&t.clear(),a}),t=e.cache;return e}var te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/\\(\\)?/g,ue=ee(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(te,function(t,a,n,u){e.push(n?u.replace(ae,"$1"):a||t)}),e});function ne(r){return r==null?"":vr(r)}function yr(r,e){return p(r)?r:C(r,e)?[r]:ue(ne(r))}function D(r){if(typeof r=="string"||P(r))return r;var e=r+"";return e=="0"&&1/r==-1/0?"-0":e}function hr(r,e){e=yr(e,r);for(var t=0,a=e.length;r!=null&&t<a;)r=r[D(e[t++])];return t&&t==a?r:void 0}function oe(r,e,t){var a=r==null?void 0:hr(r,e);return a===void 0?t:a}function N(r,e){for(var t=-1,a=e.length,n=r.length;++t<a;)r[n+t]=e[t];return r}var X=w?w.isConcatSpreadable:void 0;function ce(r){return p(r)||lr(r)||!!(X&&r&&r[X])}function wa(r,e,t,a,n){var u=-1,o=r.length;for(t||(t=ce),n||(n=[]);++u<o;){var c=r[u];t(c)?N(n,c):a||(n[n.length]=c)}return n}function fe(r,e,t,a){var n=-1,u=r==null?0:r.length;for(a&&u&&(t=r[++n]);++n<u;)t=e(t,r[n],n,r);return t}function se(r,e){return r&&z(e,_(e),r)}function ie(r,e){return r&&z(e,G(e),r)}function gr(r,e){for(var t=-1,a=r==null?0:r.length,n=0,u=[];++t<a;){var o=r[t];e(o,t,r)&&(u[n++]=o)}return u}function pr(){return[]}var le=Object.prototype,be=le.propertyIsEnumerable,q=Object.getOwnPropertySymbols,Q=q?function(r){return r==null?[]:(r=Object(r),gr(q(r),function(e){return be.call(r,e)}))}:pr;function ve(r,e){return z(r,Q(r),e)}var je=Object.getOwnPropertySymbols,dr=je?function(r){for(var e=[];r;)N(e,Q(r)),r=Br(r);return e}:pr;function ye(r,e){return z(r,dr(r),e)}function wr(r,e,t){var a=e(r);return p(r)?a:N(a,t(r))}function B(r){return wr(r,_,Q)}function he(r){return wr(r,G,dr)}var ge=Object.prototype,pe=ge.hasOwnProperty;function de(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&pe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}function we(r,e){var t=e?ir(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}var Ae=/\w*$/;function _e(r){var e=new r.constructor(r.source,Ae.exec(r));return e.lastIndex=r.lastIndex,e}var Y=w?w.prototype:void 0,Z=Y?Y.valueOf:void 0;function me(r){return Z?Object(Z.call(r)):{}}var Oe="[object Boolean]",Se="[object Date]",Ee="[object Map]",Ie="[object Number]",xe="[object RegExp]",Le="[object Set]",Me="[object String]",ze="[object Symbol]",De="[object ArrayBuffer]",Fe="[object DataView]",$e="[object Float32Array]",ke="[object Float64Array]",Ue="[object Int8Array]",Be="[object Int16Array]",Ge="[object Int32Array]",Pe="[object Uint8Array]",Ce="[object Uint8ClampedArray]",Ne="[object Uint16Array]",Qe="[object Uint32Array]";function Ve(r,e,t){var a=r.constructor;switch(e){case De:return ir(r);case Oe:case Se:return new a(+r);case Fe:return we(r,t);case $e:case ke:case Ue:case Be:case Ge:case Pe:case Ce:case Ne:case Qe:return Ur(r,t);case Ee:return new a;case Ie:case Me:return new a(r);case xe:return _e(r);case Le:return new a;case ze:return me(r)}}var He="[object Map]";function Je(r){return S(r)&&O(r)==He}var rr=M&&M.isMap,Ke=rr?sr(rr):Je,Re="[object Set]";function Te(r){return S(r)&&O(r)==Re}var er=M&&M.isSet,We=er?sr(er):Te,Xe=1,qe=2,Ye=4,Ar="[object Arguments]",Ze="[object Array]",rt="[object Boolean]",et="[object Date]",tt="[object Error]",_r="[object Function]",at="[object GeneratorFunction]",ut="[object Map]",nt="[object Number]",mr="[object Object]",ot="[object RegExp]",ct="[object Set]",ft="[object String]",st="[object Symbol]",it="[object WeakMap]",lt="[object ArrayBuffer]",bt="[object DataView]",vt="[object Float32Array]",jt="[object Float64Array]",yt="[object Int8Array]",ht="[object Int16Array]",gt="[object Int32Array]",pt="[object Uint8Array]",dt="[object Uint8ClampedArray]",wt="[object Uint16Array]",At="[object Uint32Array]",i={};i[Ar]=i[Ze]=i[lt]=i[bt]=i[rt]=i[et]=i[vt]=i[jt]=i[yt]=i[ht]=i[gt]=i[ut]=i[nt]=i[mr]=i[ot]=i[ct]=i[ft]=i[st]=i[pt]=i[dt]=i[wt]=i[At]=!0;i[tt]=i[_r]=i[it]=!1;function $(r,e,t,a,n,u){var o,c=e&Xe,f=e&qe,v=e&Ye;if(o!==void 0)return o;if(!fr(r))return r;var l=p(r);if(l){if(o=de(r),!c)return zr(r,o)}else{var s=O(r),b=s==_r||s==at;if(U(r))return Dr(r,c);if(s==mr||s==Ar||b&&!n){if(o=f||b?{}:Fr(r),!c)return f?ye(r,ie(o,r)):ve(r,se(o,r))}else{if(!i[s])return n?r:{};o=Ve(r,s,c)}}u||(u=new m);var d=u.get(r);if(d)return d;u.set(r,o),We(r)?r.forEach(function(j){o.add($(j,e,t,j,r,u))}):Ke(r)&&r.forEach(function(j,y){o.set(y,$(j,e,t,y,r,u))});var h=v?f?he:B:f?G:_,g=l?void 0:h(r);return jr(g||r,function(j,y){g&&(y=j,j=r[y]),$r(o,y,$(j,e,t,y,r,u))}),o}var _t="__lodash_hash_undefined__";function mt(r){return this.__data__.set(r,_t),this}function Ot(r){return this.__data__.has(r)}function E(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new kr;++e<t;)this.add(r[e])}E.prototype.add=E.prototype.push=mt;E.prototype.has=Ot;function St(r,e){for(var t=-1,a=r==null?0:r.length;++t<a;)if(e(r[t],t,r))return!0;return!1}function Or(r,e){return r.has(e)}var Et=1,It=2;function Sr(r,e,t,a,n,u){var o=t&Et,c=r.length,f=e.length;if(c!=f&&!(o&&f>c))return!1;var v=u.get(r),l=u.get(e);if(v&&l)return v==e&&l==r;var s=-1,b=!0,d=t&It?new E:void 0;for(u.set(r,e),u.set(e,r);++s<c;){var h=r[s],g=e[s];if(a)var j=o?a(g,h,s,e,r,u):a(h,g,s,r,e,u);if(j!==void 0){if(j)continue;b=!1;break}if(d){if(!St(e,function(y,A){if(!Or(d,A)&&(h===y||n(h,y,t,a,u)))return d.push(A)})){b=!1;break}}else if(!(h===g||n(h,g,t,a,u))){b=!1;break}}return u.delete(r),u.delete(e),b}function xt(r){var e=-1,t=Array(r.size);return r.forEach(function(a,n){t[++e]=[n,a]}),t}function V(r){var e=-1,t=Array(r.size);return r.forEach(function(a){t[++e]=a}),t}var Lt=1,Mt=2,zt="[object Boolean]",Dt="[object Date]",Ft="[object Error]",$t="[object Map]",kt="[object Number]",Ut="[object RegExp]",Bt="[object Set]",Gt="[object String]",Pt="[object Symbol]",Ct="[object ArrayBuffer]",Nt="[object DataView]",tr=w?w.prototype:void 0,k=tr?tr.valueOf:void 0;function Qt(r,e,t,a,n,u,o){switch(t){case Nt:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case Ct:return!(r.byteLength!=e.byteLength||!u(new R(r),new R(e)));case zt:case Dt:case kt:return Qr(+r,+e);case Ft:return r.name==e.name&&r.message==e.message;case Ut:case Gt:return r==e+"";case $t:var c=xt;case Bt:var f=a&Lt;if(c||(c=V),r.size!=e.size&&!f)return!1;var v=o.get(r);if(v)return v==e;a|=Mt,o.set(r,e);var l=Sr(c(r),c(e),a,n,u,o);return o.delete(r),l;case Pt:if(k)return k.call(r)==k.call(e)}return!1}var Vt=1,Ht=Object.prototype,Jt=Ht.hasOwnProperty;function Kt(r,e,t,a,n,u){var o=t&Vt,c=B(r),f=c.length,v=B(e),l=v.length;if(f!=l&&!o)return!1;for(var s=f;s--;){var b=c[s];if(!(o?b in e:Jt.call(e,b)))return!1}var d=u.get(r),h=u.get(e);if(d&&h)return d==e&&h==r;var g=!0;u.set(r,e),u.set(e,r);for(var j=o;++s<f;){b=c[s];var y=r[b],A=e[b];if(a)var K=o?a(A,y,b,e,r,u):a(y,A,b,r,e,u);if(!(K===void 0?y===A||n(y,A,t,a,u):K)){g=!1;break}j||(j=b=="constructor")}if(g&&!j){var I=r.constructor,x=e.constructor;I!=x&&"constructor"in r&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof x=="function"&&x instanceof x)&&(g=!1)}return u.delete(r),u.delete(e),g}var Rt=1,ar="[object Arguments]",ur="[object Array]",L="[object Object]",Tt=Object.prototype,nr=Tt.hasOwnProperty;function Wt(r,e,t,a,n,u){var o=p(r),c=p(e),f=o?ur:O(r),v=c?ur:O(e);f=f==ar?L:f,v=v==ar?L:v;var l=f==L,s=v==L,b=f==v;if(b&&U(r)){if(!U(e))return!1;o=!0,l=!1}if(b&&!l)return u||(u=new m),o||Nr(r)?Sr(r,e,t,a,n,u):Qt(r,e,f,t,a,n,u);if(!(t&Rt)){var d=l&&nr.call(r,"__wrapped__"),h=s&&nr.call(e,"__wrapped__");if(d||h){var g=d?r.value():r,j=h?e.value():e;return u||(u=new m),n(g,j,t,a,u)}}return b?(u||(u=new m),Kt(r,e,t,a,n,u)):!1}function H(r,e,t,a,n){return r===e?!0:r==null||e==null||!S(r)&&!S(e)?r!==r&&e!==e:Wt(r,e,t,a,H,n)}var Xt=1,qt=2;function Yt(r,e,t,a){var n=t.length,u=n;if(r==null)return!u;for(r=Object(r);n--;){var o=t[n];if(o[2]?o[1]!==r[o[0]]:!(o[0]in r))return!1}for(;++n<u;){o=t[n];var c=o[0],f=r[c],v=o[1];if(o[2]){if(f===void 0&&!(c in r))return!1}else{var l=new m,s;if(!(s===void 0?H(v,f,Xt|qt,a,l):s))return!1}}return!0}function Er(r){return r===r&&!fr(r)}function Zt(r){for(var e=_(r),t=e.length;t--;){var a=e[t],n=r[a];e[t]=[a,n,Er(n)]}return e}function Ir(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}function ra(r){var e=Zt(r);return e.length==1&&e[0][2]?Ir(e[0][0],e[0][1]):function(t){return t===r||Yt(t,r,e)}}function ea(r,e){return r!=null&&e in Object(r)}function ta(r,e,t){e=yr(e,r);for(var a=-1,n=e.length,u=!1;++a<n;){var o=D(e[a]);if(!(u=r!=null&&t(r,o)))break;r=r[o]}return u||++a!=n?u:(n=r==null?0:r.length,!!n&&Pr(n)&&Cr(o,n)&&(p(r)||lr(r)))}function aa(r,e){return r!=null&&ta(r,e,ea)}var ua=1,na=2;function oa(r,e){return C(r)&&Er(e)?Ir(D(r),e):function(t){var a=oe(t,r);return a===void 0&&a===e?aa(t,r):H(e,a,ua|na)}}function ca(r){return function(e){return e==null?void 0:e[r]}}function fa(r){return function(e){return hr(e,r)}}function sa(r){return C(r)?ca(D(r)):fa(r)}function xr(r){return typeof r=="function"?r:r==null?cr:typeof r=="object"?p(r)?oa(r[0],r[1]):ra(r):sa(r)}function ia(r,e){return r&&Hr(r,e,_)}function la(r,e){return function(t,a){if(t==null)return t;if(!or(t))return r(t,a);for(var n=t.length,u=-1,o=Object(t);++u<n&&a(o[u],u,o)!==!1;);return t}}var J=la(ia);function ba(r){return typeof r=="function"?r:cr}function Aa(r,e){var t=p(r)?jr:J;return t(r,ba(e))}function va(r,e){var t=[];return J(r,function(a,n,u){e(a,n,u)&&t.push(a)}),t}function _a(r,e){var t=p(r)?gr:va;return t(r,xr(e))}function ja(r,e){return br(e,function(t){return r[t]})}function ma(r){return r==null?[]:ja(r,_(r))}function Oa(r){return r===void 0}function ya(r,e,t,a,n){return n(r,function(u,o,c){t=a?(a=!1,u):e(t,u,o,c)}),t}function Sa(r,e,t){var a=p(r)?fe:ya,n=arguments.length<3;return a(r,xr(e),t,n,J)}var ha=1/0,ga=F&&1/V(new F([,-0]))[1]==ha?function(r){return new F(r)}:Kr,pa=200;function Ea(r,e,t){var a=-1,n=qr,u=r.length,o=!0,c=[],f=c;if(u>=pa){var v=e?null:ga(r);if(v)return V(v);o=!1,n=Or,f=new E}else f=e?[]:c;r:for(;++a<u;){var l=r[a],s=e?e(l):l;if(l=l!==0?l:0,o&&s===s){for(var b=f.length;b--;)if(f[b]===s)continue r;e&&f.push(s),c.push(l)}else n(f,s,t)||(f!==c&&f.push(s),c.push(l))}return c}export{Aa as $,yr as A,ma as E,Sa as I,Kr as J,xr as L,D as M,P as N,wa as O,Ea as P,Rr as Q,Oa as S,gr as T,qr as V,J as Y,_a as _,ne as a,br as b,ba as c,_ as d,E as e,he as f,va as g,St as h,aa as i,Or as j,ia as l,$ as m,ta as t,hr as y,Xr as z};
1
+ import{bv as Lr,bw as Mr,br as or,aJ as p,aK as cr,bt as fr,bx as zr,by as O,bz as U,bA as Dr,bB as Fr,bC as m,aL as sr,aO as $r,bD as F,bE as kr,bF as z,aQ as G,bG as Ur,bH as ir,bI as M,bJ as S,bK as Br,bL as w,bM as Gr,bN as Pr,bu as Cr,bO as lr,bP as Nr,bs as Qr,bQ as R,bR as Vr,aP as Hr}from"./index-CFYhtZ1e.js";var Jr="[object Symbol]";function P(r){return typeof r=="symbol"||S(r)&&Gr(r)==Jr}function br(r,e){for(var t=-1,a=r==null?0:r.length,n=Array(a);++t<a;)n[t]=e(r[t],t,r);return n}var T=w?w.prototype:void 0,W=T?T.toString:void 0;function vr(r){if(typeof r=="string")return r;if(p(r))return br(r,vr)+"";if(P(r))return W?W.call(r):"";var e=r+"";return e=="0"&&1/r==-1/0?"-0":e}function Kr(){}function jr(r,e){for(var t=-1,a=r==null?0:r.length;++t<a&&e(r[t],t,r)!==!1;);return r}function Rr(r,e,t,a){for(var n=r.length,u=t+-1;++u<n;)if(e(r[u],u,r))return u;return-1}function Tr(r){return r!==r}function Wr(r,e,t){for(var a=t-1,n=r.length;++a<n;)if(r[a]===e)return a;return-1}function Xr(r,e,t){return e===e?Wr(r,e,t):Rr(r,Tr,t)}function qr(r,e){var t=r==null?0:r.length;return!!t&&Xr(r,e,0)>-1}function _(r){return or(r)?Lr(r):Mr(r)}var Yr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Zr=/^\w*$/;function C(r,e){if(p(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||P(r)?!0:Zr.test(r)||!Yr.test(r)||e!=null&&r in Object(e)}var re=500;function ee(r){var e=Vr(r,function(a){return t.size===re&&t.clear(),a}),t=e.cache;return e}var te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ae=/\\(\\)?/g,ue=ee(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(te,function(t,a,n,u){e.push(n?u.replace(ae,"$1"):a||t)}),e});function ne(r){return r==null?"":vr(r)}function yr(r,e){return p(r)?r:C(r,e)?[r]:ue(ne(r))}function D(r){if(typeof r=="string"||P(r))return r;var e=r+"";return e=="0"&&1/r==-1/0?"-0":e}function hr(r,e){e=yr(e,r);for(var t=0,a=e.length;r!=null&&t<a;)r=r[D(e[t++])];return t&&t==a?r:void 0}function oe(r,e,t){var a=r==null?void 0:hr(r,e);return a===void 0?t:a}function N(r,e){for(var t=-1,a=e.length,n=r.length;++t<a;)r[n+t]=e[t];return r}var X=w?w.isConcatSpreadable:void 0;function ce(r){return p(r)||lr(r)||!!(X&&r&&r[X])}function wa(r,e,t,a,n){var u=-1,o=r.length;for(t||(t=ce),n||(n=[]);++u<o;){var c=r[u];t(c)?N(n,c):a||(n[n.length]=c)}return n}function fe(r,e,t,a){var n=-1,u=r==null?0:r.length;for(a&&u&&(t=r[++n]);++n<u;)t=e(t,r[n],n,r);return t}function se(r,e){return r&&z(e,_(e),r)}function ie(r,e){return r&&z(e,G(e),r)}function gr(r,e){for(var t=-1,a=r==null?0:r.length,n=0,u=[];++t<a;){var o=r[t];e(o,t,r)&&(u[n++]=o)}return u}function pr(){return[]}var le=Object.prototype,be=le.propertyIsEnumerable,q=Object.getOwnPropertySymbols,Q=q?function(r){return r==null?[]:(r=Object(r),gr(q(r),function(e){return be.call(r,e)}))}:pr;function ve(r,e){return z(r,Q(r),e)}var je=Object.getOwnPropertySymbols,dr=je?function(r){for(var e=[];r;)N(e,Q(r)),r=Br(r);return e}:pr;function ye(r,e){return z(r,dr(r),e)}function wr(r,e,t){var a=e(r);return p(r)?a:N(a,t(r))}function B(r){return wr(r,_,Q)}function he(r){return wr(r,G,dr)}var ge=Object.prototype,pe=ge.hasOwnProperty;function de(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&pe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}function we(r,e){var t=e?ir(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}var Ae=/\w*$/;function _e(r){var e=new r.constructor(r.source,Ae.exec(r));return e.lastIndex=r.lastIndex,e}var Y=w?w.prototype:void 0,Z=Y?Y.valueOf:void 0;function me(r){return Z?Object(Z.call(r)):{}}var Oe="[object Boolean]",Se="[object Date]",Ee="[object Map]",Ie="[object Number]",xe="[object RegExp]",Le="[object Set]",Me="[object String]",ze="[object Symbol]",De="[object ArrayBuffer]",Fe="[object DataView]",$e="[object Float32Array]",ke="[object Float64Array]",Ue="[object Int8Array]",Be="[object Int16Array]",Ge="[object Int32Array]",Pe="[object Uint8Array]",Ce="[object Uint8ClampedArray]",Ne="[object Uint16Array]",Qe="[object Uint32Array]";function Ve(r,e,t){var a=r.constructor;switch(e){case De:return ir(r);case Oe:case Se:return new a(+r);case Fe:return we(r,t);case $e:case ke:case Ue:case Be:case Ge:case Pe:case Ce:case Ne:case Qe:return Ur(r,t);case Ee:return new a;case Ie:case Me:return new a(r);case xe:return _e(r);case Le:return new a;case ze:return me(r)}}var He="[object Map]";function Je(r){return S(r)&&O(r)==He}var rr=M&&M.isMap,Ke=rr?sr(rr):Je,Re="[object Set]";function Te(r){return S(r)&&O(r)==Re}var er=M&&M.isSet,We=er?sr(er):Te,Xe=1,qe=2,Ye=4,Ar="[object Arguments]",Ze="[object Array]",rt="[object Boolean]",et="[object Date]",tt="[object Error]",_r="[object Function]",at="[object GeneratorFunction]",ut="[object Map]",nt="[object Number]",mr="[object Object]",ot="[object RegExp]",ct="[object Set]",ft="[object String]",st="[object Symbol]",it="[object WeakMap]",lt="[object ArrayBuffer]",bt="[object DataView]",vt="[object Float32Array]",jt="[object Float64Array]",yt="[object Int8Array]",ht="[object Int16Array]",gt="[object Int32Array]",pt="[object Uint8Array]",dt="[object Uint8ClampedArray]",wt="[object Uint16Array]",At="[object Uint32Array]",i={};i[Ar]=i[Ze]=i[lt]=i[bt]=i[rt]=i[et]=i[vt]=i[jt]=i[yt]=i[ht]=i[gt]=i[ut]=i[nt]=i[mr]=i[ot]=i[ct]=i[ft]=i[st]=i[pt]=i[dt]=i[wt]=i[At]=!0;i[tt]=i[_r]=i[it]=!1;function $(r,e,t,a,n,u){var o,c=e&Xe,f=e&qe,v=e&Ye;if(o!==void 0)return o;if(!fr(r))return r;var l=p(r);if(l){if(o=de(r),!c)return zr(r,o)}else{var s=O(r),b=s==_r||s==at;if(U(r))return Dr(r,c);if(s==mr||s==Ar||b&&!n){if(o=f||b?{}:Fr(r),!c)return f?ye(r,ie(o,r)):ve(r,se(o,r))}else{if(!i[s])return n?r:{};o=Ve(r,s,c)}}u||(u=new m);var d=u.get(r);if(d)return d;u.set(r,o),We(r)?r.forEach(function(j){o.add($(j,e,t,j,r,u))}):Ke(r)&&r.forEach(function(j,y){o.set(y,$(j,e,t,y,r,u))});var h=v?f?he:B:f?G:_,g=l?void 0:h(r);return jr(g||r,function(j,y){g&&(y=j,j=r[y]),$r(o,y,$(j,e,t,y,r,u))}),o}var _t="__lodash_hash_undefined__";function mt(r){return this.__data__.set(r,_t),this}function Ot(r){return this.__data__.has(r)}function E(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new kr;++e<t;)this.add(r[e])}E.prototype.add=E.prototype.push=mt;E.prototype.has=Ot;function St(r,e){for(var t=-1,a=r==null?0:r.length;++t<a;)if(e(r[t],t,r))return!0;return!1}function Or(r,e){return r.has(e)}var Et=1,It=2;function Sr(r,e,t,a,n,u){var o=t&Et,c=r.length,f=e.length;if(c!=f&&!(o&&f>c))return!1;var v=u.get(r),l=u.get(e);if(v&&l)return v==e&&l==r;var s=-1,b=!0,d=t&It?new E:void 0;for(u.set(r,e),u.set(e,r);++s<c;){var h=r[s],g=e[s];if(a)var j=o?a(g,h,s,e,r,u):a(h,g,s,r,e,u);if(j!==void 0){if(j)continue;b=!1;break}if(d){if(!St(e,function(y,A){if(!Or(d,A)&&(h===y||n(h,y,t,a,u)))return d.push(A)})){b=!1;break}}else if(!(h===g||n(h,g,t,a,u))){b=!1;break}}return u.delete(r),u.delete(e),b}function xt(r){var e=-1,t=Array(r.size);return r.forEach(function(a,n){t[++e]=[n,a]}),t}function V(r){var e=-1,t=Array(r.size);return r.forEach(function(a){t[++e]=a}),t}var Lt=1,Mt=2,zt="[object Boolean]",Dt="[object Date]",Ft="[object Error]",$t="[object Map]",kt="[object Number]",Ut="[object RegExp]",Bt="[object Set]",Gt="[object String]",Pt="[object Symbol]",Ct="[object ArrayBuffer]",Nt="[object DataView]",tr=w?w.prototype:void 0,k=tr?tr.valueOf:void 0;function Qt(r,e,t,a,n,u,o){switch(t){case Nt:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case Ct:return!(r.byteLength!=e.byteLength||!u(new R(r),new R(e)));case zt:case Dt:case kt:return Qr(+r,+e);case Ft:return r.name==e.name&&r.message==e.message;case Ut:case Gt:return r==e+"";case $t:var c=xt;case Bt:var f=a&Lt;if(c||(c=V),r.size!=e.size&&!f)return!1;var v=o.get(r);if(v)return v==e;a|=Mt,o.set(r,e);var l=Sr(c(r),c(e),a,n,u,o);return o.delete(r),l;case Pt:if(k)return k.call(r)==k.call(e)}return!1}var Vt=1,Ht=Object.prototype,Jt=Ht.hasOwnProperty;function Kt(r,e,t,a,n,u){var o=t&Vt,c=B(r),f=c.length,v=B(e),l=v.length;if(f!=l&&!o)return!1;for(var s=f;s--;){var b=c[s];if(!(o?b in e:Jt.call(e,b)))return!1}var d=u.get(r),h=u.get(e);if(d&&h)return d==e&&h==r;var g=!0;u.set(r,e),u.set(e,r);for(var j=o;++s<f;){b=c[s];var y=r[b],A=e[b];if(a)var K=o?a(A,y,b,e,r,u):a(y,A,b,r,e,u);if(!(K===void 0?y===A||n(y,A,t,a,u):K)){g=!1;break}j||(j=b=="constructor")}if(g&&!j){var I=r.constructor,x=e.constructor;I!=x&&"constructor"in r&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof x=="function"&&x instanceof x)&&(g=!1)}return u.delete(r),u.delete(e),g}var Rt=1,ar="[object Arguments]",ur="[object Array]",L="[object Object]",Tt=Object.prototype,nr=Tt.hasOwnProperty;function Wt(r,e,t,a,n,u){var o=p(r),c=p(e),f=o?ur:O(r),v=c?ur:O(e);f=f==ar?L:f,v=v==ar?L:v;var l=f==L,s=v==L,b=f==v;if(b&&U(r)){if(!U(e))return!1;o=!0,l=!1}if(b&&!l)return u||(u=new m),o||Nr(r)?Sr(r,e,t,a,n,u):Qt(r,e,f,t,a,n,u);if(!(t&Rt)){var d=l&&nr.call(r,"__wrapped__"),h=s&&nr.call(e,"__wrapped__");if(d||h){var g=d?r.value():r,j=h?e.value():e;return u||(u=new m),n(g,j,t,a,u)}}return b?(u||(u=new m),Kt(r,e,t,a,n,u)):!1}function H(r,e,t,a,n){return r===e?!0:r==null||e==null||!S(r)&&!S(e)?r!==r&&e!==e:Wt(r,e,t,a,H,n)}var Xt=1,qt=2;function Yt(r,e,t,a){var n=t.length,u=n;if(r==null)return!u;for(r=Object(r);n--;){var o=t[n];if(o[2]?o[1]!==r[o[0]]:!(o[0]in r))return!1}for(;++n<u;){o=t[n];var c=o[0],f=r[c],v=o[1];if(o[2]){if(f===void 0&&!(c in r))return!1}else{var l=new m,s;if(!(s===void 0?H(v,f,Xt|qt,a,l):s))return!1}}return!0}function Er(r){return r===r&&!fr(r)}function Zt(r){for(var e=_(r),t=e.length;t--;){var a=e[t],n=r[a];e[t]=[a,n,Er(n)]}return e}function Ir(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}function ra(r){var e=Zt(r);return e.length==1&&e[0][2]?Ir(e[0][0],e[0][1]):function(t){return t===r||Yt(t,r,e)}}function ea(r,e){return r!=null&&e in Object(r)}function ta(r,e,t){e=yr(e,r);for(var a=-1,n=e.length,u=!1;++a<n;){var o=D(e[a]);if(!(u=r!=null&&t(r,o)))break;r=r[o]}return u||++a!=n?u:(n=r==null?0:r.length,!!n&&Pr(n)&&Cr(o,n)&&(p(r)||lr(r)))}function aa(r,e){return r!=null&&ta(r,e,ea)}var ua=1,na=2;function oa(r,e){return C(r)&&Er(e)?Ir(D(r),e):function(t){var a=oe(t,r);return a===void 0&&a===e?aa(t,r):H(e,a,ua|na)}}function ca(r){return function(e){return e==null?void 0:e[r]}}function fa(r){return function(e){return hr(e,r)}}function sa(r){return C(r)?ca(D(r)):fa(r)}function xr(r){return typeof r=="function"?r:r==null?cr:typeof r=="object"?p(r)?oa(r[0],r[1]):ra(r):sa(r)}function ia(r,e){return r&&Hr(r,e,_)}function la(r,e){return function(t,a){if(t==null)return t;if(!or(t))return r(t,a);for(var n=t.length,u=-1,o=Object(t);++u<n&&a(o[u],u,o)!==!1;);return t}}var J=la(ia);function ba(r){return typeof r=="function"?r:cr}function Aa(r,e){var t=p(r)?jr:J;return t(r,ba(e))}function va(r,e){var t=[];return J(r,function(a,n,u){e(a,n,u)&&t.push(a)}),t}function _a(r,e){var t=p(r)?gr:va;return t(r,xr(e))}function ja(r,e){return br(e,function(t){return r[t]})}function ma(r){return r==null?[]:ja(r,_(r))}function Oa(r){return r===void 0}function ya(r,e,t,a,n){return n(r,function(u,o,c){t=a?(a=!1,u):e(t,u,o,c)}),t}function Sa(r,e,t){var a=p(r)?fe:ya,n=arguments.length<3;return a(r,xr(e),t,n,J)}var ha=1/0,ga=F&&1/V(new F([,-0]))[1]==ha?function(r){return new F(r)}:Kr,pa=200;function Ea(r,e,t){var a=-1,n=qr,u=r.length,o=!0,c=[],f=c;if(u>=pa){var v=e?null:ga(r);if(v)return V(v);o=!1,n=Or,f=new E}else f=e?[]:c;r:for(;++a<u;){var l=r[a],s=e?e(l):l;if(l=l!==0?l:0,o&&s===s){for(var b=f.length;b--;)if(f[b]===s)continue r;e&&f.push(s),c.push(l)}else n(f,s,t)||(f!==c&&f.push(s),c.push(l))}return c}export{Aa as $,yr as A,ma as E,Sa as I,Kr as J,xr as L,D as M,P as N,wa as O,Ea as P,Rr as Q,Oa as S,gr as T,qr as V,J as Y,_a as _,ne as a,br as b,ba as c,_ as d,E as e,he as f,va as g,St as h,aa as i,Or as j,ia as l,$ as m,ta as t,hr as y,Xr as z};
@@ -1,2 +1,2 @@
1
- import{_ as K}from"./index-CyVB0J6E.js";var j=Object.defineProperty,q=(l,i,e)=>i in l?j(l,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[i]=e,I=(l,i,e)=>q(l,typeof i!="symbol"?i+"":i,e);let F=null,$=null;typeof window>"u"&&Promise.all([K(()=>import("./__vite-browser-external-BIHI7g3E.js"),[]).catch(()=>null),K(()=>import("./__vite-browser-external-BIHI7g3E.js"),[]).catch(()=>null)]).then(([l,i])=>{var e,t;(e=l==null?void 0:l.default)!=null&&e.Agent?F=new l.default.Agent({keepAlive:!0}):l!=null&&l.Agent&&(F=new l.Agent({keepAlive:!0})),(t=i==null?void 0:i.default)!=null&&t.Agent?$=new i.default.Agent({keepAlive:!0}):i!=null&&i.Agent&&($=new i.Agent({keepAlive:!0}))}).catch(l=>{console.warn("Failed to initialize HTTP agents:",l.message)});class D{constructor(i){if(I(this,"apiUrl"),I(this,"apiKey"),I(this,"sessionId"),!i.apiUrl||typeof i.apiUrl!="string")throw new Error("API URL must be a valid string");if(i.apiKey!==void 0&&i.apiKey!==null&&typeof i.apiKey!="string")throw new Error("API key must be a valid string or null");if(i.sessionId!==void 0&&i.sessionId!==null&&typeof i.sessionId!="string")throw new Error("Session ID must be a valid string or null");this.apiUrl=i.apiUrl,this.apiKey=i.apiKey??null,this.sessionId=i.sessionId??null}setSessionId(i){if(i!==null&&typeof i!="string")throw new Error("Session ID must be a valid string or null");this.sessionId=i}getSessionId(){return this.sessionId}async validateApiKey(){var i;if(!this.apiKey)throw new Error("API key is required for validation");try{const e=await fetch(`${this.apiUrl}/admin/api-keys/${this.apiKey}/status`,{...this.getFetchOptions({method:"GET"})}).catch(r=>{throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):r});if(!e.ok){let r="";try{r=await e.text()}catch{r=`HTTP ${e.status}`}let s,o;try{const a=JSON.parse(r);s=a.detail||a.message||r}catch{s=r||`HTTP ${e.status}`}switch(e.status){case 401:o="API key is invalid or expired";break;case 403:o="Access denied: API key does not have required permissions";break;case 404:o="API key not found";break;case 503:o="API key management is not available in inference-only mode";break;default:o=`Failed to validate API key: ${s}`;break}throw new Error(o)}const t=await e.json();if(!t.exists){const r="API key does not exist";throw new Error(r)}if(!t.active){const r="API key is inactive";throw new Error(r)}return t}catch(e){let t;throw e instanceof Error&&e.message?e.message.includes("API key")||e.message.includes("Access denied")||e.message.includes("invalid")||e.message.includes("expired")||e.message.includes("inactive")||e.message.includes("not found")||e.message.includes("Could not connect")?t=e.message:t=`API key validation failed: ${e.message}`:e.name==="TypeError"&&(i=e.message)!=null&&i.includes("Failed to fetch")?t="Could not connect to the server. Please check if the server is running.":t="API key validation failed. Please check your API key and try again.",console.warn(`[ApiClient] ${t}`),new Error(t)}}async getAdapterInfo(){var i;if(!this.apiKey)throw new Error("API key is required to get adapter information");try{const e=await fetch(`${this.apiUrl}/admin/api-keys/info`,{...this.getFetchOptions({method:"GET"})}).catch(t=>{throw t.name==="TypeError"&&t.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):t});if(!e.ok){let t="";try{t=await e.text()}catch{t=`HTTP ${e.status}`}let r,s;try{const o=JSON.parse(t);r=o.detail||o.message||t}catch{r=t||`HTTP ${e.status}`}switch(e.status){case 401:s="API key is invalid, disabled, or has no associated adapter";break;case 404:s="Adapter configuration not found";break;case 503:s="Service is not available";break;default:s=`Failed to get adapter info: ${r}`;break}throw new Error(s)}return await e.json()}catch(e){let t;throw e instanceof Error&&e.message?e.message.includes("API key")||e.message.includes("Adapter")||e.message.includes("invalid")||e.message.includes("disabled")||e.message.includes("not found")||e.message.includes("Could not connect")?t=e.message:t=`Failed to get adapter info: ${e.message}`:e.name==="TypeError"&&(i=e.message)!=null&&i.includes("Failed to fetch")?t="Could not connect to the server. Please check if the server is running.":t="Failed to get adapter information. Please try again.",console.warn(`[ApiClient] ${t}`),new Error(t)}}getFetchOptions(i={}){const e={};if(typeof window>"u"){const r=this.apiUrl.startsWith("https:")?$:F;r&&(e.agent=r)}else e.headers={Connection:"keep-alive"};const t={"X-Request-ID":Date.now().toString(36)+Math.random().toString(36).substring(2)};if(e.headers&&Object.assign(t,e.headers),i.headers){const r=i.headers;for(const[s,o]of Object.entries(r))(s.toLowerCase()!=="x-api-key"||!this.apiKey)&&(t[s]=o)}return this.apiKey&&(t["X-API-Key"]=this.apiKey),this.sessionId&&(t["X-Session-ID"]=this.sessionId),{...i,...e,headers:t}}createChatRequest(i,e=!0,t,r,s,o,a,h,p,y,v){const c={messages:[{role:"user",content:i}],stream:e};return t&&t.length>0&&(c.file_ids=t),r&&(c.thread_id=r),s&&(c.audio_input=s),o&&(c.audio_format=o),a&&(c.language=a),h!==void 0&&(c.return_audio=h),p&&(c.tts_voice=p),y&&(c.source_language=y),v&&(c.target_language=v),c}async*streamChat(i,e=!0,t,r,s,o,a,h,p,y,v){var c,C;try{const w=new AbortController,O=setTimeout(()=>w.abort(),6e4),g=await fetch(`${this.apiUrl}/v1/chat`,{...this.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json",Accept:e?"text/event-stream":"application/json"},body:JSON.stringify(this.createChatRequest(i,e,t,r,s,o,a,h,p,y,v))}),signal:w.signal});if(clearTimeout(O),!g.ok){const f=await g.text();throw new Error(`Network response was not ok: ${g.status} ${f}`)}if(!e){const f=await g.json();f.response&&(yield{text:f.response,done:!0,audio:f.audio,audioFormat:f.audio_format});return}const A=(c=g.body)==null?void 0:c.getReader();if(!A)throw new Error("No reader available");const _=new TextDecoder;let u="",E=!1;try{for(;;){const{done:f,value:S}=await A.read();if(f)break;const U=_.decode(S,{stream:!0});u+=U;let k=0,P;for(;(P=u.indexOf(`
1
+ import{_ as K}from"./index-CFYhtZ1e.js";var j=Object.defineProperty,q=(l,i,e)=>i in l?j(l,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[i]=e,I=(l,i,e)=>q(l,typeof i!="symbol"?i+"":i,e);let F=null,$=null;typeof window>"u"&&Promise.all([K(()=>import("./__vite-browser-external-BIHI7g3E.js"),[]).catch(()=>null),K(()=>import("./__vite-browser-external-BIHI7g3E.js"),[]).catch(()=>null)]).then(([l,i])=>{var e,t;(e=l==null?void 0:l.default)!=null&&e.Agent?F=new l.default.Agent({keepAlive:!0}):l!=null&&l.Agent&&(F=new l.Agent({keepAlive:!0})),(t=i==null?void 0:i.default)!=null&&t.Agent?$=new i.default.Agent({keepAlive:!0}):i!=null&&i.Agent&&($=new i.Agent({keepAlive:!0}))}).catch(l=>{console.warn("Failed to initialize HTTP agents:",l.message)});class D{constructor(i){if(I(this,"apiUrl"),I(this,"apiKey"),I(this,"sessionId"),!i.apiUrl||typeof i.apiUrl!="string")throw new Error("API URL must be a valid string");if(i.apiKey!==void 0&&i.apiKey!==null&&typeof i.apiKey!="string")throw new Error("API key must be a valid string or null");if(i.sessionId!==void 0&&i.sessionId!==null&&typeof i.sessionId!="string")throw new Error("Session ID must be a valid string or null");this.apiUrl=i.apiUrl,this.apiKey=i.apiKey??null,this.sessionId=i.sessionId??null}setSessionId(i){if(i!==null&&typeof i!="string")throw new Error("Session ID must be a valid string or null");this.sessionId=i}getSessionId(){return this.sessionId}async validateApiKey(){var i;if(!this.apiKey)throw new Error("API key is required for validation");try{const e=await fetch(`${this.apiUrl}/admin/api-keys/${this.apiKey}/status`,{...this.getFetchOptions({method:"GET"})}).catch(r=>{throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):r});if(!e.ok){let r="";try{r=await e.text()}catch{r=`HTTP ${e.status}`}let s,o;try{const a=JSON.parse(r);s=a.detail||a.message||r}catch{s=r||`HTTP ${e.status}`}switch(e.status){case 401:o="API key is invalid or expired";break;case 403:o="Access denied: API key does not have required permissions";break;case 404:o="API key not found";break;case 503:o="API key management is not available in inference-only mode";break;default:o=`Failed to validate API key: ${s}`;break}throw new Error(o)}const t=await e.json();if(!t.exists){const r="API key does not exist";throw new Error(r)}if(!t.active){const r="API key is inactive";throw new Error(r)}return t}catch(e){let t;throw e instanceof Error&&e.message?e.message.includes("API key")||e.message.includes("Access denied")||e.message.includes("invalid")||e.message.includes("expired")||e.message.includes("inactive")||e.message.includes("not found")||e.message.includes("Could not connect")?t=e.message:t=`API key validation failed: ${e.message}`:e.name==="TypeError"&&(i=e.message)!=null&&i.includes("Failed to fetch")?t="Could not connect to the server. Please check if the server is running.":t="API key validation failed. Please check your API key and try again.",console.warn(`[ApiClient] ${t}`),new Error(t)}}async getAdapterInfo(){var i;if(!this.apiKey)throw new Error("API key is required to get adapter information");try{const e=await fetch(`${this.apiUrl}/admin/api-keys/info`,{...this.getFetchOptions({method:"GET"})}).catch(t=>{throw t.name==="TypeError"&&t.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):t});if(!e.ok){let t="";try{t=await e.text()}catch{t=`HTTP ${e.status}`}let r,s;try{const o=JSON.parse(t);r=o.detail||o.message||t}catch{r=t||`HTTP ${e.status}`}switch(e.status){case 401:s="API key is invalid, disabled, or has no associated adapter";break;case 404:s="Adapter configuration not found";break;case 503:s="Service is not available";break;default:s=`Failed to get adapter info: ${r}`;break}throw new Error(s)}return await e.json()}catch(e){let t;throw e instanceof Error&&e.message?e.message.includes("API key")||e.message.includes("Adapter")||e.message.includes("invalid")||e.message.includes("disabled")||e.message.includes("not found")||e.message.includes("Could not connect")?t=e.message:t=`Failed to get adapter info: ${e.message}`:e.name==="TypeError"&&(i=e.message)!=null&&i.includes("Failed to fetch")?t="Could not connect to the server. Please check if the server is running.":t="Failed to get adapter information. Please try again.",console.warn(`[ApiClient] ${t}`),new Error(t)}}getFetchOptions(i={}){const e={};if(typeof window>"u"){const r=this.apiUrl.startsWith("https:")?$:F;r&&(e.agent=r)}else e.headers={Connection:"keep-alive"};const t={"X-Request-ID":Date.now().toString(36)+Math.random().toString(36).substring(2)};if(e.headers&&Object.assign(t,e.headers),i.headers){const r=i.headers;for(const[s,o]of Object.entries(r))(s.toLowerCase()!=="x-api-key"||!this.apiKey)&&(t[s]=o)}return this.apiKey&&(t["X-API-Key"]=this.apiKey),this.sessionId&&(t["X-Session-ID"]=this.sessionId),{...i,...e,headers:t}}createChatRequest(i,e=!0,t,r,s,o,a,h,p,y,v){const c={messages:[{role:"user",content:i}],stream:e};return t&&t.length>0&&(c.file_ids=t),r&&(c.thread_id=r),s&&(c.audio_input=s),o&&(c.audio_format=o),a&&(c.language=a),h!==void 0&&(c.return_audio=h),p&&(c.tts_voice=p),y&&(c.source_language=y),v&&(c.target_language=v),c}async*streamChat(i,e=!0,t,r,s,o,a,h,p,y,v){var c,C;try{const w=new AbortController,O=setTimeout(()=>w.abort(),6e4),g=await fetch(`${this.apiUrl}/v1/chat`,{...this.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json",Accept:e?"text/event-stream":"application/json"},body:JSON.stringify(this.createChatRequest(i,e,t,r,s,o,a,h,p,y,v))}),signal:w.signal});if(clearTimeout(O),!g.ok){const f=await g.text();throw new Error(`Network response was not ok: ${g.status} ${f}`)}if(!e){const f=await g.json();f.response&&(yield{text:f.response,done:!0,audio:f.audio,audioFormat:f.audio_format});return}const A=(c=g.body)==null?void 0:c.getReader();if(!A)throw new Error("No reader available");const _=new TextDecoder;let u="",E=!1;try{for(;;){const{done:f,value:S}=await A.read();if(f)break;const U=_.decode(S,{stream:!0});u+=U;let k=0,P;for(;(P=u.indexOf(`
2
2
  `,k))!==-1;){const m=u.slice(k,P).trim();if(k=P+1,m&&m.startsWith("data: ")){const d=m.slice(6).trim();if(!d||d==="[DONE]"){yield{text:"",done:!0};return}try{const n=JSON.parse(d);if(n.error){const x=`Server error: ${((C=n.error)==null?void 0:C.message)||n.error||"Unknown server error"}`;throw console.warn(`[ApiClient] ${x}`),new Error(x)}if(n.done===!0){E=!0,yield{text:"",done:!0,audio:n.audio,audioFormat:n.audio_format||n.audioFormat,threading:n.threading};return}const b=n.response||"";n.audio_chunk!==void 0&&(yield{text:"",done:!1,audio_chunk:n.audio_chunk,audioFormat:n.audioFormat||n.audio_format||"opus",chunk_index:n.chunk_index??0}),(b||n.audio)&&(E=!0,yield{text:b,done:n.done||!1,audio:n.audio,audioFormat:n.audio_format||n.audioFormat,threading:n.threading})}catch(n){console.warn("[ApiClient] Unable to parse server response. This may be a temporary issue."),console.warn("[ApiClient] Parse error details:",n==null?void 0:n.message),console.warn("[ApiClient] JSON text length:",d==null?void 0:d.length),console.warn("[ApiClient] JSON text preview (first 200 chars):",d==null?void 0:d.substring(0,200)),console.warn("[ApiClient] JSON text preview (last 200 chars):",d==null?void 0:d.substring(d.length-200))}}else m&&(E=!0,yield{text:m,done:!1})}u=u.slice(k),u.length>1e6&&(console.warn("[ApiClient] Buffer too large, truncating..."),u=u.slice(-5e5))}E&&(yield{text:"",done:!0})}finally{A.releaseLock()}}catch(w){throw w.name==="AbortError"?new Error("Connection timed out. Please check if the server is running."):w.name==="TypeError"&&w.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):w}}async clearConversationHistory(i){const e=i||this.sessionId;if(!e)throw new Error("No session ID provided and no current session available");if(!this.apiKey)throw new Error("API key is required for clearing conversation history");const t={"Content-Type":"application/json","X-Session-ID":e,"X-API-Key":this.apiKey};try{const r=await fetch(`${this.apiUrl}/admin/chat-history/${e}`,{...this.getFetchOptions({method:"DELETE",headers:t})});if(!r.ok){const s=await r.text();throw new Error(`Failed to clear conversation history: ${r.status} ${s}`)}return await r.json()}catch(r){throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):r}}async deleteConversationWithFiles(i,e){const t=i||this.sessionId;if(!t)throw new Error("No session ID provided and no current session available");if(!this.apiKey)throw new Error("API key is required for deleting conversation");const r={"Content-Type":"application/json","X-Session-ID":t,"X-API-Key":this.apiKey},s=e&&e.length>0?`?file_ids=${e.join(",")}`:"",o=`${this.apiUrl}/admin/conversations/${t}${s}`;try{const a=await fetch(o,{...this.getFetchOptions({method:"DELETE",headers:r})});if(!a.ok){const h=await a.text();throw new Error(`Failed to delete conversation: ${a.status} ${h}`)}return await a.json()}catch(a){throw a.name==="TypeError"&&a.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):a}}async createThread(i,e){if(!this.apiKey)throw new Error("API key is required for creating threads");const t={"Content-Type":"application/json","X-API-Key":this.apiKey};try{const r=await fetch(`${this.apiUrl}/api/threads`,{...this.getFetchOptions({method:"POST",headers:t,body:JSON.stringify({message_id:i,session_id:e})})});if(!r.ok){const s=await r.text();throw new Error(`Failed to create thread: ${r.status} ${s}`)}return await r.json()}catch(r){throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):r}}async getThreadInfo(i){if(!this.apiKey)throw new Error("API key is required for getting thread info");const e={"X-API-Key":this.apiKey};try{const t=await fetch(`${this.apiUrl}/api/threads/${i}`,{...this.getFetchOptions({method:"GET",headers:e})});if(!t.ok){const r=await t.text();throw new Error(`Failed to get thread info: ${t.status} ${r}`)}return await t.json()}catch(t){throw t.name==="TypeError"&&t.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):t}}async deleteThread(i){if(!this.apiKey)throw new Error("API key is required for deleting threads");const e={"X-API-Key":this.apiKey};try{const t=await fetch(`${this.apiUrl}/api/threads/${i}`,{...this.getFetchOptions({method:"DELETE",headers:e})});if(!t.ok){const r=await t.text();throw new Error(`Failed to delete thread: ${t.status} ${r}`)}return await t.json()}catch(t){throw t.name==="TypeError"&&t.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):t}}async uploadFile(i){if(!this.apiKey)throw new Error("API key is required for file upload");const e=new FormData;e.append("file",i);try{const t=await fetch(`${this.apiUrl}/api/files/upload`,{...this.getFetchOptions({method:"POST",body:e})});if(!t.ok){const r=await t.text();throw new Error(`Failed to upload file: ${t.status} ${r}`)}return await t.json()}catch(t){throw t.name==="TypeError"&&t.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):t}}async listFiles(){if(!this.apiKey)throw new Error("API key is required for listing files");try{const i=await fetch(`${this.apiUrl}/api/files`,{...this.getFetchOptions({method:"GET"})});if(!i.ok){const e=await i.text();throw new Error(`Failed to list files: ${i.status} ${e}`)}return await i.json()}catch(i){throw i.name==="TypeError"&&i.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):i}}async getFileInfo(i){if(!this.apiKey)throw new Error("API key is required for getting file info");try{const e=await fetch(`${this.apiUrl}/api/files/${i}`,{...this.getFetchOptions({method:"GET"})});if(!e.ok){const t=await e.text();throw new Error(`Failed to get file info: ${e.status} ${t}`)}return await e.json()}catch(e){throw e.name==="TypeError"&&e.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):e}}async queryFile(i,e,t=10){if(!this.apiKey)throw new Error("API key is required for querying files");try{const r=await fetch(`${this.apiUrl}/api/files/${i}/query`,{...this.getFetchOptions({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,max_results:t})})});if(!r.ok){const s=await r.text();throw new Error(`Failed to query file: ${r.status} ${s}`)}return await r.json()}catch(r){throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?new Error("Could not connect to the server. Please check if the server is running."):r}}async deleteFile(i){if(!this.apiKey)throw new Error("API key is required for deleting files");const e=`${this.apiUrl}/api/files/${i}`,t=this.getFetchOptions({method:"DELETE"});try{const r=await fetch(e,t);if(!r.ok){const s=await r.text();let o;try{const a=JSON.parse(s);o=a.detail||a.message||`Failed to delete file (HTTP ${r.status})`}catch{o=`Failed to delete file (HTTP ${r.status})`}throw console.warn(`[ApiClient] ${o}`),new Error(o)}return await r.json()}catch(r){let s;throw r.name==="TypeError"&&r.message.includes("Failed to fetch")?s="Could not connect to the server. Please check if the server is running.":r.message&&!r.message.includes("Failed to delete file")?s=r.message:s="Failed to delete file. Please try again.",console.warn(`[ApiClient] ${s}`),new Error(s)}}}let T=null;const J=(l,i=null,e=null)=>{T=new D({apiUrl:l,apiKey:i,sessionId:e})};async function*L(l,i=!0,e,t,r,s,o,a,h,p,y){if(!T)throw new Error("API not configured. Please call configureApi() with your server URL before using any API functions.");yield*T.streamChat(l,i,e,t,r,s,o,a,h,p,y)}export{D as ApiClient,J as configureApi,L as streamChat};
@@ -1 +1 @@
1
- import{aY as sn,aZ as an,a_ as l,as as on,a$ as M,b0 as R,b1 as E,b2 as un,aq as P,b3 as cn,b4 as S,b5 as e,b6 as rn,b7 as en,b8 as yn}from"./index-CyVB0J6E.js";function fn(i){return i.innerRadius}function ln(i){return i.outerRadius}function gn(i){return i.startAngle}function pn(i){return i.endAngle}function xn(i){return i&&i.padAngle}function mn(i,d,q,C,v,b,W,a){var B=q-i,r=C-d,n=W-v,p=a-b,u=p*B-n*r;if(!(u*u<l))return u=(n*(d-b)-p*(i-v))/u,[i+u*B,d+u*r]}function Q(i,d,q,C,v,b,W){var a=i-q,B=d-C,r=(W?b:-b)/S(a*a+B*B),n=r*B,p=-r*a,u=i+n,s=d+p,y=q+n,f=C+p,_=(u+y)/2,o=(s+f)/2,x=y-u,g=f-s,j=x*x+g*g,T=v-b,A=u*f-y*s,D=(g<0?-1:1)*S(en(0,T*T*j-A*A)),H=(A*g-x*D)/j,L=(-A*x-g*D)/j,O=(A*g+x*D)/j,m=(-A*x+g*D)/j,h=H-_,t=L-o,c=O-_,I=m-o;return h*h+t*t>c*c+I*I&&(H=O,L=m),{cx:H,cy:L,x01:-n,y01:-p,x11:H*(v/T-1),y11:L*(v/T-1)}}function dn(){var i=fn,d=ln,q=P(0),C=null,v=gn,b=pn,W=xn,a=null,B=sn(r);function r(){var n,p,u=+i.apply(this,arguments),s=+d.apply(this,arguments),y=v.apply(this,arguments)-an,f=b.apply(this,arguments)-an,_=un(f-y),o=f>y;if(a||(a=n=B()),s<u&&(p=s,s=u,u=p),!(s>l))a.moveTo(0,0);else if(_>on-l)a.moveTo(s*M(y),s*R(y)),a.arc(0,0,s,y,f,!o),u>l&&(a.moveTo(u*M(f),u*R(f)),a.arc(0,0,u,f,y,o));else{var x=y,g=f,j=y,T=f,A=_,D=_,H=W.apply(this,arguments)/2,L=H>l&&(C?+C.apply(this,arguments):S(u*u+s*s)),O=E(un(s-u)/2,+q.apply(this,arguments)),m=O,h=O,t,c;if(L>l){var I=rn(L/u*R(H)),Y=rn(L/s*R(H));(A-=I*2)>l?(I*=o?1:-1,j+=I,T-=I):(A=0,j=T=(y+f)/2),(D-=Y*2)>l?(Y*=o?1:-1,x+=Y,g-=Y):(D=0,x=g=(y+f)/2)}var $=s*M(x),z=s*R(x),Z=u*M(T),k=u*R(T);if(O>l){var G=s*M(g),N=s*R(g),X=u*M(j),U=u*R(j),F;if(_<cn)if(F=mn($,z,X,U,G,N,Z,k)){var V=$-F[0],w=z-F[1],J=G-F[0],K=N-F[1],nn=1/R(yn((V*J+w*K)/(S(V*V+w*w)*S(J*J+K*K)))/2),tn=S(F[0]*F[0]+F[1]*F[1]);m=E(O,(u-tn)/(nn-1)),h=E(O,(s-tn)/(nn+1))}else m=h=0}D>l?h>l?(t=Q(X,U,$,z,s,h,o),c=Q(G,N,Z,k,s,h,o),a.moveTo(t.cx+t.x01,t.cy+t.y01),h<O?a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,s,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),!o),a.arc(c.cx,c.cy,h,e(c.y11,c.x11),e(c.y01,c.x01),!o))):(a.moveTo($,z),a.arc(0,0,s,x,g,!o)):a.moveTo($,z),!(u>l)||!(A>l)?a.lineTo(Z,k):m>l?(t=Q(Z,k,G,N,u,-m,o),c=Q($,z,X,U,u,-m,o),a.lineTo(t.cx+t.x01,t.cy+t.y01),m<O?a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,u,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),o),a.arc(c.cx,c.cy,m,e(c.y11,c.x11),e(c.y01,c.x01),!o))):a.arc(0,0,u,T,j,o)}if(a.closePath(),n)return a=null,n+""||null}return r.centroid=function(){var n=(+i.apply(this,arguments)+ +d.apply(this,arguments))/2,p=(+v.apply(this,arguments)+ +b.apply(this,arguments))/2-cn/2;return[M(p)*n,R(p)*n]},r.innerRadius=function(n){return arguments.length?(i=typeof n=="function"?n:P(+n),r):i},r.outerRadius=function(n){return arguments.length?(d=typeof n=="function"?n:P(+n),r):d},r.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:P(+n),r):q},r.padRadius=function(n){return arguments.length?(C=n==null?null:typeof n=="function"?n:P(+n),r):C},r.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:P(+n),r):v},r.endAngle=function(n){return arguments.length?(b=typeof n=="function"?n:P(+n),r):b},r.padAngle=function(n){return arguments.length?(W=typeof n=="function"?n:P(+n),r):W},r.context=function(n){return arguments.length?(a=n??null,r):a},r}export{dn as h};
1
+ import{aY as sn,aZ as an,a_ as l,as as on,a$ as M,b0 as R,b1 as E,b2 as un,aq as P,b3 as cn,b4 as S,b5 as e,b6 as rn,b7 as en,b8 as yn}from"./index-CFYhtZ1e.js";function fn(i){return i.innerRadius}function ln(i){return i.outerRadius}function gn(i){return i.startAngle}function pn(i){return i.endAngle}function xn(i){return i&&i.padAngle}function mn(i,d,q,C,v,b,W,a){var B=q-i,r=C-d,n=W-v,p=a-b,u=p*B-n*r;if(!(u*u<l))return u=(n*(d-b)-p*(i-v))/u,[i+u*B,d+u*r]}function Q(i,d,q,C,v,b,W){var a=i-q,B=d-C,r=(W?b:-b)/S(a*a+B*B),n=r*B,p=-r*a,u=i+n,s=d+p,y=q+n,f=C+p,_=(u+y)/2,o=(s+f)/2,x=y-u,g=f-s,j=x*x+g*g,T=v-b,A=u*f-y*s,D=(g<0?-1:1)*S(en(0,T*T*j-A*A)),H=(A*g-x*D)/j,L=(-A*x-g*D)/j,O=(A*g+x*D)/j,m=(-A*x+g*D)/j,h=H-_,t=L-o,c=O-_,I=m-o;return h*h+t*t>c*c+I*I&&(H=O,L=m),{cx:H,cy:L,x01:-n,y01:-p,x11:H*(v/T-1),y11:L*(v/T-1)}}function dn(){var i=fn,d=ln,q=P(0),C=null,v=gn,b=pn,W=xn,a=null,B=sn(r);function r(){var n,p,u=+i.apply(this,arguments),s=+d.apply(this,arguments),y=v.apply(this,arguments)-an,f=b.apply(this,arguments)-an,_=un(f-y),o=f>y;if(a||(a=n=B()),s<u&&(p=s,s=u,u=p),!(s>l))a.moveTo(0,0);else if(_>on-l)a.moveTo(s*M(y),s*R(y)),a.arc(0,0,s,y,f,!o),u>l&&(a.moveTo(u*M(f),u*R(f)),a.arc(0,0,u,f,y,o));else{var x=y,g=f,j=y,T=f,A=_,D=_,H=W.apply(this,arguments)/2,L=H>l&&(C?+C.apply(this,arguments):S(u*u+s*s)),O=E(un(s-u)/2,+q.apply(this,arguments)),m=O,h=O,t,c;if(L>l){var I=rn(L/u*R(H)),Y=rn(L/s*R(H));(A-=I*2)>l?(I*=o?1:-1,j+=I,T-=I):(A=0,j=T=(y+f)/2),(D-=Y*2)>l?(Y*=o?1:-1,x+=Y,g-=Y):(D=0,x=g=(y+f)/2)}var $=s*M(x),z=s*R(x),Z=u*M(T),k=u*R(T);if(O>l){var G=s*M(g),N=s*R(g),X=u*M(j),U=u*R(j),F;if(_<cn)if(F=mn($,z,X,U,G,N,Z,k)){var V=$-F[0],w=z-F[1],J=G-F[0],K=N-F[1],nn=1/R(yn((V*J+w*K)/(S(V*V+w*w)*S(J*J+K*K)))/2),tn=S(F[0]*F[0]+F[1]*F[1]);m=E(O,(u-tn)/(nn-1)),h=E(O,(s-tn)/(nn+1))}else m=h=0}D>l?h>l?(t=Q(X,U,$,z,s,h,o),c=Q(G,N,Z,k,s,h,o),a.moveTo(t.cx+t.x01,t.cy+t.y01),h<O?a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,h,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,s,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),!o),a.arc(c.cx,c.cy,h,e(c.y11,c.x11),e(c.y01,c.x01),!o))):(a.moveTo($,z),a.arc(0,0,s,x,g,!o)):a.moveTo($,z),!(u>l)||!(A>l)?a.lineTo(Z,k):m>l?(t=Q(Z,k,G,N,u,-m,o),c=Q($,z,X,U,u,-m,o),a.lineTo(t.cx+t.x01,t.cy+t.y01),m<O?a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(c.y01,c.x01),!o):(a.arc(t.cx,t.cy,m,e(t.y01,t.x01),e(t.y11,t.x11),!o),a.arc(0,0,u,e(t.cy+t.y11,t.cx+t.x11),e(c.cy+c.y11,c.cx+c.x11),o),a.arc(c.cx,c.cy,m,e(c.y11,c.x11),e(c.y01,c.x01),!o))):a.arc(0,0,u,T,j,o)}if(a.closePath(),n)return a=null,n+""||null}return r.centroid=function(){var n=(+i.apply(this,arguments)+ +d.apply(this,arguments))/2,p=(+v.apply(this,arguments)+ +b.apply(this,arguments))/2-cn/2;return[M(p)*n,R(p)*n]},r.innerRadius=function(n){return arguments.length?(i=typeof n=="function"?n:P(+n),r):i},r.outerRadius=function(n){return arguments.length?(d=typeof n=="function"?n:P(+n),r):d},r.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:P(+n),r):q},r.padRadius=function(n){return arguments.length?(C=n==null?null:typeof n=="function"?n:P(+n),r):C},r.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:P(+n),r):v},r.endAngle=function(n){return arguments.length?(b=typeof n=="function"?n:P(+n),r):b},r.padAngle=function(n){return arguments.length?(W=typeof n=="function"?n:P(+n),r):W},r.context=function(n){return arguments.length?(a=n??null,r):a},r}export{dn as h};