@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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/index.js +65 -29
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/initializer/app/app.js +10 -6
- package/dist/esm/initializer/app/app.js.map +1 -1
- package/dist/esm/initializer/initializer.js +5 -4
- package/dist/esm/initializer/initializer.js.map +1 -1
- package/dist/esm/llm/components/IntroContext/intro-context.js +12 -0
- package/dist/esm/llm/components/IntroContext/intro-context.js.map +1 -0
- package/dist/esm/llm/components/Main/main.js +3 -1
- package/dist/esm/llm/components/Main/main.js.map +1 -1
- package/dist/esm/llm/components/Suggestions/suggestions.js +4 -0
- package/dist/esm/llm/components/Suggestions/suggestions.js.map +1 -1
- package/dist/esm/llm/components/index.js +2 -0
- package/dist/esm/llm/components/index.js.map +1 -1
- package/dist/esm/llm/llm.js +6 -6
- package/dist/esm/llm/llm.js.map +1 -1
- package/dist/esm/useLlm/useLlm.js +1 -1
- package/dist/esm/useLlm/useLlm.js.map +1 -1
- package/dist/esm/useLlm/useLlmView.js +28 -11
- package/dist/esm/useLlm/useLlmView.js.map +1 -1
- package/dist/types/initializer/initializer.d.ts +2 -1
- package/dist/types/initializer/initializer.d.ts.map +1 -1
- package/dist/types/llm/components/IntroContext/intro-context-test.d.ts +3 -0
- package/dist/types/llm/components/IntroContext/intro-context-test.d.ts.map +1 -0
- package/dist/types/llm/components/IntroContext/intro-context.d.ts +3 -0
- package/dist/types/llm/components/IntroContext/intro-context.d.ts.map +1 -0
- package/dist/types/llm/components/Main/main.d.ts.map +1 -1
- package/dist/types/llm/components/Suggestions/suggestions.d.ts.map +1 -1
- package/dist/types/llm/components/index.d.ts +1 -0
- package/dist/types/llm/components/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +3 -3
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/useLlm/useLlm.d.ts +3 -2
- package/dist/types/useLlm/useLlm.d.ts.map +1 -1
- package/dist/types/useLlm/useLlmView.d.ts +6 -3
- package/dist/types/useLlm/useLlmView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/initializer/app/app.tsx +12 -5
- package/src/initializer/initializer.ts +6 -5
- package/src/llm/components/Intro/intro.tsx +1 -1
- package/src/llm/components/IntroContext/_style.scss +71 -0
- package/src/llm/components/IntroContext/intro-context-test.tsx +78 -0
- package/src/llm/components/IntroContext/intro-context.tsx +10 -0
- package/src/llm/components/Main/main.tsx +7 -1
- package/src/llm/components/Suggestions/suggestions.tsx +5 -0
- package/src/llm/components/index.ts +2 -0
- package/src/llm/llm.tsx +6 -6
- package/src/types.ts +11 -11
- package/src/useLlm/useLlm.tsx +5 -4
- 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
|
-
|
|
392
|
-
|
|
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
|
-
|
|
411
|
-
|
|
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,
|
|
9466
|
-
if (
|
|
9467
|
-
|
|
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 =>
|
|
9470
|
-
|
|
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: () => {
|