@websolutespa/bom-mixer-llm 2.0.1 → 2.0.3

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/CHANGELOG.md +13 -0
  2. package/dist/cjs/index.js +65 -29
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/esm/initializer/app/app.js +10 -6
  5. package/dist/esm/initializer/app/app.js.map +1 -1
  6. package/dist/esm/initializer/initializer.js +5 -4
  7. package/dist/esm/initializer/initializer.js.map +1 -1
  8. package/dist/esm/llm/components/IntroContext/intro-context.js +12 -0
  9. package/dist/esm/llm/components/IntroContext/intro-context.js.map +1 -0
  10. package/dist/esm/llm/components/Main/main.js +3 -1
  11. package/dist/esm/llm/components/Main/main.js.map +1 -1
  12. package/dist/esm/llm/components/Suggestions/suggestions.js +4 -0
  13. package/dist/esm/llm/components/Suggestions/suggestions.js.map +1 -1
  14. package/dist/esm/llm/components/index.js +2 -0
  15. package/dist/esm/llm/components/index.js.map +1 -1
  16. package/dist/esm/llm/llm.js +6 -6
  17. package/dist/esm/llm/llm.js.map +1 -1
  18. package/dist/esm/useLlm/useLlm.js +1 -1
  19. package/dist/esm/useLlm/useLlm.js.map +1 -1
  20. package/dist/esm/useLlm/useLlmView.js +28 -11
  21. package/dist/esm/useLlm/useLlmView.js.map +1 -1
  22. package/dist/types/initializer/initializer.d.ts +2 -1
  23. package/dist/types/initializer/initializer.d.ts.map +1 -1
  24. package/dist/types/llm/components/IntroContext/intro-context-test.d.ts +3 -0
  25. package/dist/types/llm/components/IntroContext/intro-context-test.d.ts.map +1 -0
  26. package/dist/types/llm/components/IntroContext/intro-context.d.ts +3 -0
  27. package/dist/types/llm/components/IntroContext/intro-context.d.ts.map +1 -0
  28. package/dist/types/llm/components/Main/main.d.ts.map +1 -1
  29. package/dist/types/llm/components/Suggestions/suggestions.d.ts.map +1 -1
  30. package/dist/types/llm/components/index.d.ts +1 -0
  31. package/dist/types/llm/components/index.d.ts.map +1 -1
  32. package/dist/types/types.d.ts +3 -3
  33. package/dist/types/types.d.ts.map +1 -1
  34. package/dist/types/useLlm/useLlm.d.ts +3 -2
  35. package/dist/types/useLlm/useLlm.d.ts.map +1 -1
  36. package/dist/types/useLlm/useLlmView.d.ts +6 -3
  37. package/dist/types/useLlm/useLlmView.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/initializer/app/app.tsx +12 -5
  40. package/src/initializer/initializer.ts +6 -5
  41. package/src/llm/components/Intro/intro.tsx +1 -1
  42. package/src/llm/components/IntroContext/_style.scss +71 -0
  43. package/src/llm/components/IntroContext/intro-context-test.tsx +78 -0
  44. package/src/llm/components/IntroContext/intro-context.tsx +10 -0
  45. package/src/llm/components/Main/main.tsx +7 -1
  46. package/src/llm/components/Suggestions/suggestions.tsx +5 -0
  47. package/src/llm/components/index.ts +2 -0
  48. package/src/llm/llm.tsx +6 -6
  49. package/src/types.ts +11 -11
  50. package/src/useLlm/useLlm.tsx +5 -4
  51. package/src/useLlm/useLlmView.tsx +39 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @websolutespa/bom-mixer-llm
2
2
 
3
+ ## 2.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Added: setCurrentContext with openingContext
8
+
9
+ ## 2.0.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Added: openingContext & IntroContext
14
+ - 71f0616: Added: pluginLabels
15
+
3
16
  ## 2.0.1
4
17
 
5
18
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -223,7 +223,8 @@ const createLlmViewStore = _ref => {
223
223
  embedded,
224
224
  portal,
225
225
  send,
226
- setEmbed
226
+ setEmbed,
227
+ setCurrentContext
227
228
  } = _ref;
228
229
  const props = {
229
230
  opened: opened != null ? opened : embedded != null || threadId != null ? true : false,
@@ -384,13 +385,20 @@ const createLlmViewStore = _ref => {
384
385
  }
385
386
  });
386
387
  }),
387
- open: () => {
388
+ open: openingContext => {
388
389
  setIdleTimeout();
389
390
  set(state => {
390
391
  const opened = !state.opened;
391
- pushDataLayer({
392
- event: opened ? 'llm_open' : 'llm_close'
393
- });
392
+ if (opened) {
393
+ state.openingContext = openingContext;
394
+ setCurrentContext(openingContext ? {
395
+ context: openingContext,
396
+ title: 'opening-context'
397
+ } : undefined);
398
+ }
399
+ pushDataLayer(Object.assign({
400
+ event: opened ? state.openingContext ? 'llm_open_context' : 'llm_open' : 'llm_close'
401
+ }, state.openingContext || {}));
394
402
  persistMinimized(false);
395
403
  return {
396
404
  opened,
@@ -404,12 +412,19 @@ const createLlmViewStore = _ref => {
404
412
  } = get();
405
413
  return opened;
406
414
  },
407
- setOpened: opened => {
415
+ setOpened: (opened, openingContext) => {
408
416
  setIdleTimeout();
409
417
  set(state => {
410
- pushDataLayer({
411
- event: opened ? 'llm_open' : 'llm_close'
412
- });
418
+ if (opened) {
419
+ state.openingContext = openingContext;
420
+ setCurrentContext(openingContext ? {
421
+ context: openingContext,
422
+ title: 'opening-context'
423
+ } : undefined);
424
+ }
425
+ pushDataLayer(Object.assign({
426
+ event: opened ? state.openingContext ? 'llm_open_context' : 'llm_open' : 'llm_close'
427
+ }, state.openingContext || {}));
413
428
  return {
414
429
  opened
415
430
  };
@@ -475,13 +490,15 @@ function LlmViewProvider(_a) {
475
490
  props = __rest(_a, ["children"]);
476
491
  const {
477
492
  send,
478
- setEmbed
493
+ setEmbed,
494
+ setCurrentContext
479
495
  } = useLlm(state => state.actions);
480
496
  const storeRef = React.useRef();
481
497
  if (!storeRef.current) {
482
498
  storeRef.current = createLlmViewStore(Object.assign(Object.assign({}, props), {
483
499
  send,
484
- setEmbed
500
+ setEmbed,
501
+ setCurrentContext
485
502
  }));
486
503
  }
487
504
  return storeRef.current && jsxRuntime.jsx(LlmViewContext.Provider, {
@@ -3475,12 +3492,20 @@ const Intro = () => {
3475
3492
  });
3476
3493
  };
3477
3494
 
3495
+ const IntroContext = () => {
3496
+ const {
3497
+ Intro
3498
+ } = useLlm(state => state.components);
3499
+ return jsxRuntime.jsx(Intro, {});
3500
+ };
3501
+
3478
3502
  const Main = () => {
3479
3503
  var _a;
3480
3504
  const {
3481
3505
  Canvas,
3482
3506
  Header,
3483
3507
  Intro,
3508
+ IntroContext,
3484
3509
  Prompt,
3485
3510
  Scroller,
3486
3511
  ScrollProposition,
@@ -3489,6 +3514,7 @@ const Main = () => {
3489
3514
  const app = useLlm(state => state.app);
3490
3515
  const theme = useLlm(state => state.theme);
3491
3516
  const messages = useLlm(state => state.messages);
3517
+ const openingContext = useLlmView(state => state.openingContext);
3492
3518
  const introed = useLlmView(state => state.introed);
3493
3519
  const visible = useLlmView(state => state.visible);
3494
3520
  const embedded = useLlmView(state => state.embedded);
@@ -3572,7 +3598,7 @@ const Main = () => {
3572
3598
  initial: "hidden",
3573
3599
  animate: "show",
3574
3600
  className: "llm__content",
3575
- children: [jsxRuntime.jsx(Intro, {}), messages && messages.length > 0 && jsxRuntime.jsx(Thread, {})]
3601
+ children: [openingContext ? jsxRuntime.jsx(IntroContext, {}) : jsxRuntime.jsx(Intro, {}), messages && messages.length > 0 && jsxRuntime.jsx(Thread, {})]
3576
3602
  })
3577
3603
  }), shouldShowPrompt && jsxRuntime.jsxs(jsxRuntime.Fragment, {
3578
3604
  children: [app && !((_a = theme.canvas) === null || _a === void 0 ? void 0 : _a.enabled) && jsxRuntime.jsx("div", {
@@ -5087,6 +5113,7 @@ const Stream = _ref => {
5087
5113
  const Suggestions = () => {
5088
5114
  bomMixerHooks.useWindowSize();
5089
5115
  const app = useLlm(state => state.app);
5116
+ const openingContext = useLlmView(state => state.openingContext);
5090
5117
  const {
5091
5118
  send
5092
5119
  } = useLlmView(state => state.actions);
@@ -5097,6 +5124,9 @@ const Suggestions = () => {
5097
5124
  // console.log('Suggestions.onEnd', response);
5098
5125
  });
5099
5126
  });
5127
+ if (openingContext) {
5128
+ return;
5129
+ }
5100
5130
  const sampleInputTexts = app === null || app === void 0 ? void 0 : app.contents.sampleInputTexts;
5101
5131
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
5102
5132
  children: sampleInputTexts && sampleInputTexts.length > 0 && jsxRuntime.jsx("section", {
@@ -5269,6 +5299,7 @@ const LLM_COMPONENTS = {
5269
5299
  Header,
5270
5300
  Hints,
5271
5301
  Intro,
5302
+ IntroContext,
5272
5303
  Main,
5273
5304
  PageActions,
5274
5305
  PageContext,
@@ -8587,7 +8618,7 @@ const createLlmStore = config => {
8587
8618
  } = get();
8588
8619
  set(state => ({
8589
8620
  currentContext,
8590
- systemContext: Object.assign(Object.assign({}, systemContext), currentContext.context)
8621
+ systemContext: Object.assign(Object.assign({}, systemContext), currentContext === null || currentContext === void 0 ? void 0 : currentContext.context)
8591
8622
  }));
8592
8623
  },
8593
8624
  setVars: vars => set(state => ({
@@ -8962,17 +8993,17 @@ const LlmComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
8962
8993
  const embedded = useLlmView(state => state.embedded);
8963
8994
  const imperative = useLlmView(state => state.imperative);
8964
8995
  const instance = React.useMemo(() => ({
8965
- open: () => {
8966
- open();
8996
+ open: openingContext => {
8997
+ open(openingContext);
8967
8998
  },
8968
8999
  isOpened: () => {
8969
9000
  return isOpened();
8970
9001
  },
8971
- setOpened: opened => {
8972
- setOpened(opened);
9002
+ setOpened: (opened, openingContext) => {
9003
+ setOpened(opened, openingContext);
8973
9004
  },
8974
- send: message => {
8975
- setOpened(true);
9005
+ send: (message, openingContext) => {
9006
+ setOpened(true, openingContext);
8976
9007
  send(message);
8977
9008
  },
8978
9009
  clear: () => {
@@ -9392,7 +9423,7 @@ const App = _a => {
9392
9423
  const defaultEndpoint = typeof props.test !== 'undefined' ? 'https://bom-sample-basic-web-git-bom-llm-actarian.vercel.app' : 'https://platform.websolute.ai';
9393
9424
  const endpoint = props.endpoint || defaultEndpoint;
9394
9425
  const layout = {
9395
- labels: getLabels(data.locale, defaultLabels, props.labels),
9426
+ labels: getLabels(data.locale, defaultLabels, props.pluginLabels, props.labels),
9396
9427
  locale: data.locale,
9397
9428
  locales: [{
9398
9429
  id: data.locale,
@@ -9462,12 +9493,16 @@ const App = _a => {
9462
9493
  })
9463
9494
  });
9464
9495
  };
9465
- function getLabels(locale, defaultLabels, extendedLabels) {
9466
- if (extendedLabels === void 0) {
9467
- extendedLabels = [];
9496
+ function getLabels(locale, defaultLabels, pluginLabels, externalLabels) {
9497
+ if (pluginLabels === void 0) {
9498
+ pluginLabels = [];
9499
+ }
9500
+ if (externalLabels === void 0) {
9501
+ externalLabels = [];
9468
9502
  }
9469
- const labels = [...defaultLabels.filter(x => extendedLabels.findIndex(e => e.id === x.id) === -1), ...extendedLabels];
9470
- return labels.map(x => {
9503
+ const labels = [...defaultLabels.filter(x => pluginLabels.findIndex(e => e.id === x.id) === -1), ...pluginLabels];
9504
+ const finalLabels = [...labels.filter(x => externalLabels.findIndex(e => e.id === x.id) === -1), ...externalLabels];
9505
+ return finalLabels.map(x => {
9471
9506
  const localizedItem = bomCore.localizeItem(x, locale, 'en');
9472
9507
  return {
9473
9508
  id: localizedItem.id,
@@ -9612,7 +9647,7 @@ function isIterable(element) {
9612
9647
  return element != null && typeof element[Symbol.iterator] === 'function';
9613
9648
  }
9614
9649
 
9615
- function getInitializer(globalName, plugins) {
9650
+ function getInitializer(globalName, plugins, pluginLabels) {
9616
9651
  if (globalName === void 0) {
9617
9652
  globalName = 'bomLlm';
9618
9653
  }
@@ -9625,23 +9660,24 @@ function getInitializer(globalName, plugins) {
9625
9660
  return;
9626
9661
  }
9627
9662
  props.plugins = [...(props.plugins || []), ...(plugins || [])];
9663
+ props.pluginLabels = pluginLabels;
9628
9664
  const id = bomCore.toKebabCase(globalName);
9629
9665
  const node = document.createElement('div');
9630
9666
  node.setAttribute('id', id);
9631
9667
  body.appendChild(node);
9632
9668
  const initError = 'llm plugin is not initialized';
9633
9669
  const llmInstance = {
9634
- open: () => {
9670
+ open: openingContext => {
9635
9671
  console.log(initError);
9636
9672
  },
9637
- setOpened: opened => {
9673
+ setOpened: (opened, openingContext) => {
9638
9674
  console.log(initError);
9639
9675
  },
9640
9676
  isOpened: () => {
9641
9677
  console.log(initError);
9642
9678
  return false;
9643
9679
  },
9644
- send: message => {
9680
+ send: (message, openingContext) => {
9645
9681
  console.log(initError);
9646
9682
  },
9647
9683
  clear: () => {