@alan-ai/alan-sdk-web 1.8.88 → 1.8.90
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/dist/alan_lib.js +283 -146
- package/dist/alan_lib.min.js +1 -1
- package/package.json +1 -1
package/dist/alan_lib.js
CHANGED
|
@@ -7042,8 +7042,8 @@
|
|
|
7042
7042
|
this.options = options !== null && options !== void 0 ? options : defaultOpts;
|
|
7043
7043
|
this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
|
|
7044
7044
|
}
|
|
7045
|
-
DomHandler2.prototype.onparserinit = function(
|
|
7046
|
-
this.parser =
|
|
7045
|
+
DomHandler2.prototype.onparserinit = function(parser2) {
|
|
7046
|
+
this.parser = parser2;
|
|
7047
7047
|
};
|
|
7048
7048
|
DomHandler2.prototype.onreset = function() {
|
|
7049
7049
|
this.dom = [];
|
|
@@ -8731,8 +8731,8 @@
|
|
|
8731
8731
|
exports.getFeed = void 0;
|
|
8732
8732
|
var stringify_js_1 = require_stringify();
|
|
8733
8733
|
var legacy_js_1 = require_legacy();
|
|
8734
|
-
function getFeed(
|
|
8735
|
-
var feedRoot = getOneElement(isValidFeed,
|
|
8734
|
+
function getFeed(doc2) {
|
|
8735
|
+
var feedRoot = getOneElement(isValidFeed, doc2);
|
|
8736
8736
|
return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot);
|
|
8737
8737
|
}
|
|
8738
8738
|
exports.getFeed = getFeed;
|
|
@@ -10614,8 +10614,8 @@
|
|
|
10614
10614
|
this.options = options !== null && options !== void 0 ? options : defaultOpts;
|
|
10615
10615
|
this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
|
|
10616
10616
|
}
|
|
10617
|
-
DomHandler2.prototype.onparserinit = function(
|
|
10618
|
-
this.parser =
|
|
10617
|
+
DomHandler2.prototype.onparserinit = function(parser2) {
|
|
10618
|
+
this.parser = parser2;
|
|
10619
10619
|
};
|
|
10620
10620
|
DomHandler2.prototype.onreset = function() {
|
|
10621
10621
|
this.dom = [];
|
|
@@ -12303,8 +12303,8 @@
|
|
|
12303
12303
|
exports.getFeed = void 0;
|
|
12304
12304
|
var stringify_js_1 = require_stringify3();
|
|
12305
12305
|
var legacy_js_1 = require_legacy2();
|
|
12306
|
-
function getFeed(
|
|
12307
|
-
var feedRoot = getOneElement(isValidFeed,
|
|
12306
|
+
function getFeed(doc2) {
|
|
12307
|
+
var feedRoot = getOneElement(isValidFeed, doc2);
|
|
12308
12308
|
return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot);
|
|
12309
12309
|
}
|
|
12310
12310
|
exports.getFeed = getFeed;
|
|
@@ -14558,20 +14558,20 @@
|
|
|
14558
14558
|
exports.update = exports.getParse = void 0;
|
|
14559
14559
|
var domutils_1 = require_lib5();
|
|
14560
14560
|
var domhandler_1 = require_lib2();
|
|
14561
|
-
function getParse(
|
|
14561
|
+
function getParse(parser2) {
|
|
14562
14562
|
return function parse(content, options, isDocument, context) {
|
|
14563
14563
|
if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) {
|
|
14564
14564
|
content = content.toString();
|
|
14565
14565
|
}
|
|
14566
14566
|
if (typeof content === "string") {
|
|
14567
|
-
return
|
|
14567
|
+
return parser2(content, options, isDocument, context);
|
|
14568
14568
|
}
|
|
14569
|
-
var
|
|
14570
|
-
if (!Array.isArray(
|
|
14571
|
-
return
|
|
14569
|
+
var doc2 = content;
|
|
14570
|
+
if (!Array.isArray(doc2) && (0, domhandler_1.isDocument)(doc2)) {
|
|
14571
|
+
return doc2;
|
|
14572
14572
|
}
|
|
14573
14573
|
var root = new domhandler_1.Document([]);
|
|
14574
|
-
update(
|
|
14574
|
+
update(doc2, root);
|
|
14575
14575
|
return root;
|
|
14576
14576
|
};
|
|
14577
14577
|
}
|
|
@@ -20110,23 +20110,23 @@
|
|
|
20110
20110
|
}
|
|
20111
20111
|
// API
|
|
20112
20112
|
static parse(html, options) {
|
|
20113
|
-
const
|
|
20114
|
-
|
|
20115
|
-
return
|
|
20113
|
+
const parser2 = new this(options);
|
|
20114
|
+
parser2.tokenizer.write(html, true);
|
|
20115
|
+
return parser2.document;
|
|
20116
20116
|
}
|
|
20117
20117
|
static getFragmentParser(fragmentContext, options) {
|
|
20118
20118
|
const opts = Object.assign(Object.assign({}, defaultParserOptions), options);
|
|
20119
20119
|
fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : fragmentContext = opts.treeAdapter.createElement(html_js_1.TAG_NAMES.TEMPLATE, html_js_1.NS.HTML, []);
|
|
20120
20120
|
const documentMock = opts.treeAdapter.createElement("documentmock", html_js_1.NS.HTML, []);
|
|
20121
|
-
const
|
|
20122
|
-
if (
|
|
20123
|
-
|
|
20121
|
+
const parser2 = new this(opts, documentMock, fragmentContext);
|
|
20122
|
+
if (parser2.fragmentContextID === html_js_1.TAG_ID.TEMPLATE) {
|
|
20123
|
+
parser2.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
|
|
20124
20124
|
}
|
|
20125
|
-
|
|
20126
|
-
|
|
20127
|
-
|
|
20128
|
-
|
|
20129
|
-
return
|
|
20125
|
+
parser2._initTokenizerForFragmentParsing();
|
|
20126
|
+
parser2._insertFakeRootElement();
|
|
20127
|
+
parser2._resetInsertionMode();
|
|
20128
|
+
parser2._findFormInFragmentContext();
|
|
20129
|
+
return parser2;
|
|
20130
20130
|
}
|
|
20131
20131
|
getFragment() {
|
|
20132
20132
|
const rootElement = this.treeAdapter.getFirstChild(this.document);
|
|
@@ -23161,9 +23161,9 @@
|
|
|
23161
23161
|
html = fragmentContext;
|
|
23162
23162
|
fragmentContext = null;
|
|
23163
23163
|
}
|
|
23164
|
-
const
|
|
23165
|
-
|
|
23166
|
-
return
|
|
23164
|
+
const parser2 = index_js_1.Parser.getFragmentParser(fragmentContext, options);
|
|
23165
|
+
parser2.tokenizer.write(html, true);
|
|
23166
|
+
return parser2.getFragment();
|
|
23167
23167
|
}
|
|
23168
23168
|
exports.parseFragment = parseFragment;
|
|
23169
23169
|
}
|
|
@@ -28388,23 +28388,23 @@
|
|
|
28388
28388
|
}
|
|
28389
28389
|
// API
|
|
28390
28390
|
static parse(html, options) {
|
|
28391
|
-
const
|
|
28392
|
-
|
|
28393
|
-
return
|
|
28391
|
+
const parser2 = new this(options);
|
|
28392
|
+
parser2.tokenizer.write(html, true);
|
|
28393
|
+
return parser2.document;
|
|
28394
28394
|
}
|
|
28395
28395
|
static getFragmentParser(fragmentContext, options) {
|
|
28396
28396
|
const opts = Object.assign(Object.assign({}, defaultParserOptions), options);
|
|
28397
28397
|
fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : fragmentContext = opts.treeAdapter.createElement(html_js_1.TAG_NAMES.TEMPLATE, html_js_1.NS.HTML, []);
|
|
28398
28398
|
const documentMock = opts.treeAdapter.createElement("documentmock", html_js_1.NS.HTML, []);
|
|
28399
|
-
const
|
|
28400
|
-
if (
|
|
28401
|
-
|
|
28399
|
+
const parser2 = new this(opts, documentMock, fragmentContext);
|
|
28400
|
+
if (parser2.fragmentContextID === html_js_1.TAG_ID.TEMPLATE) {
|
|
28401
|
+
parser2.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);
|
|
28402
28402
|
}
|
|
28403
|
-
|
|
28404
|
-
|
|
28405
|
-
|
|
28406
|
-
|
|
28407
|
-
return
|
|
28403
|
+
parser2._initTokenizerForFragmentParsing();
|
|
28404
|
+
parser2._insertFakeRootElement();
|
|
28405
|
+
parser2._resetInsertionMode();
|
|
28406
|
+
parser2._findFormInFragmentContext();
|
|
28407
|
+
return parser2;
|
|
28408
28408
|
}
|
|
28409
28409
|
getFragment() {
|
|
28410
28410
|
const rootElement = this.treeAdapter.getFirstChild(this.document);
|
|
@@ -31512,9 +31512,9 @@
|
|
|
31512
31512
|
html = fragmentContext;
|
|
31513
31513
|
fragmentContext = null;
|
|
31514
31514
|
}
|
|
31515
|
-
const
|
|
31516
|
-
|
|
31517
|
-
return
|
|
31515
|
+
const parser2 = index_js_1.Parser.getFragmentParser(fragmentContext, options);
|
|
31516
|
+
parser2.tokenizer.write(html, true);
|
|
31517
|
+
return parser2.getFragment();
|
|
31518
31518
|
}
|
|
31519
31519
|
exports.parseFragment = parseFragment;
|
|
31520
31520
|
}
|
|
@@ -32047,8 +32047,8 @@
|
|
|
32047
32047
|
this.options = options !== null && options !== void 0 ? options : defaultOpts;
|
|
32048
32048
|
this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
|
|
32049
32049
|
}
|
|
32050
|
-
DomHandler2.prototype.onparserinit = function(
|
|
32051
|
-
this.parser =
|
|
32050
|
+
DomHandler2.prototype.onparserinit = function(parser2) {
|
|
32051
|
+
this.parser = parser2;
|
|
32052
32052
|
};
|
|
32053
32053
|
DomHandler2.prototype.onreset = function() {
|
|
32054
32054
|
this.dom = [];
|
|
@@ -90650,6 +90650,17 @@
|
|
|
90650
90650
|
replaceLoader = false;
|
|
90651
90651
|
isNew = false;
|
|
90652
90652
|
mergeProgressiveMessages(messages, msgInd, msg);
|
|
90653
|
+
} else if (msg?.suggestions?.length > 0) {
|
|
90654
|
+
const lastResponseMsgInd = (0, import_lodash.findLastIndex)(messages, (m) => {
|
|
90655
|
+
return msg.type === "response" && m.type === "response" && msgReqId && (m?.ctx?.reqId || m.reqId) === msgReqId;
|
|
90656
|
+
});
|
|
90657
|
+
if (lastResponseMsgInd > -1) {
|
|
90658
|
+
msgInd = lastResponseMsgInd;
|
|
90659
|
+
updateResponse = true;
|
|
90660
|
+
replaceLoader = false;
|
|
90661
|
+
isNew = false;
|
|
90662
|
+
mergeProgressiveMessages(messages, msgInd, msg);
|
|
90663
|
+
}
|
|
90653
90664
|
}
|
|
90654
90665
|
}
|
|
90655
90666
|
}
|
|
@@ -90914,7 +90925,7 @@
|
|
|
90914
90925
|
var key;
|
|
90915
90926
|
if (uiState.project.id) {
|
|
90916
90927
|
key = uiState.project.id;
|
|
90917
|
-
return key.substr(key.indexOf("/"));
|
|
90928
|
+
return key.substr(key.indexOf("/") + 1);
|
|
90918
90929
|
}
|
|
90919
90930
|
return "none";
|
|
90920
90931
|
}
|
|
@@ -90962,7 +90973,7 @@
|
|
|
90962
90973
|
// alan_btn/src/textChat/helpers/adjustIFrameSize.ts
|
|
90963
90974
|
function adjustIFrameSize(iframeMsgData) {
|
|
90964
90975
|
const maxIFrameHeight = 6e3;
|
|
90965
|
-
var { height, width, iframeId, withSvg } = iframeMsgData;
|
|
90976
|
+
var { height, width, iframeId, withSvg, fullWidth } = iframeMsgData;
|
|
90966
90977
|
if (!window.alanIframes) {
|
|
90967
90978
|
window.alanIframes = {};
|
|
90968
90979
|
}
|
|
@@ -91002,7 +91013,7 @@
|
|
|
91002
91013
|
iframeEl.style.width = "100%";
|
|
91003
91014
|
return;
|
|
91004
91015
|
}
|
|
91005
|
-
if (withSvg) {
|
|
91016
|
+
if (withSvg || fullWidth) {
|
|
91006
91017
|
if (!responseWrapper.classList.contains(`with-svg-for-${iframeId}`)) {
|
|
91007
91018
|
responseWrapper.classList.add(`with-svg-for-${iframeId}`);
|
|
91008
91019
|
responseWrapper.classList.add("with-svg");
|
|
@@ -91564,8 +91575,8 @@
|
|
|
91564
91575
|
function parseSvgSize(svgString) {
|
|
91565
91576
|
if (!svgString)
|
|
91566
91577
|
return [];
|
|
91567
|
-
const
|
|
91568
|
-
const svgDoc =
|
|
91578
|
+
const parser2 = new DOMParser();
|
|
91579
|
+
const svgDoc = parser2.parseFromString(svgString, "image/svg+xml");
|
|
91569
91580
|
const svgElement = svgDoc.querySelector("svg");
|
|
91570
91581
|
const width = svgElement.getAttribute("width");
|
|
91571
91582
|
const height = svgElement.getAttribute("height");
|
|
@@ -93620,7 +93631,7 @@
|
|
|
93620
93631
|
hasFooterLinks = !!tempNode.querySelector(".footnotes");
|
|
93621
93632
|
tempNode.remove();
|
|
93622
93633
|
}
|
|
93623
|
-
const links = msg.links?.filter((link) =>
|
|
93634
|
+
const links = msg.links?.filter((link) => isValidUrl2(link?.href));
|
|
93624
93635
|
for (let i = 0; i < links?.length; i++) {
|
|
93625
93636
|
const curLink = links[i];
|
|
93626
93637
|
const target = getLinkTarget(curLink);
|
|
@@ -93644,7 +93655,7 @@
|
|
|
93644
93655
|
return "_blank";
|
|
93645
93656
|
}
|
|
93646
93657
|
}
|
|
93647
|
-
function
|
|
93658
|
+
function isValidUrl2(url) {
|
|
93648
93659
|
try {
|
|
93649
93660
|
const parsedUrl = new URL(url);
|
|
93650
93661
|
const hasValidProtocol = parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:";
|
|
@@ -94236,7 +94247,7 @@
|
|
|
94236
94247
|
window.hljs.addPlugin({
|
|
94237
94248
|
"after:highlightElement": ({ el, text }) => {
|
|
94238
94249
|
const wrapper = el.parentElement;
|
|
94239
|
-
if (wrapper == null) {
|
|
94250
|
+
if (wrapper == null || wrapper.closest(".no-copy-btn")) {
|
|
94240
94251
|
return;
|
|
94241
94252
|
}
|
|
94242
94253
|
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
@@ -94258,19 +94269,19 @@
|
|
|
94258
94269
|
}
|
|
94259
94270
|
var hljsTheme = false;
|
|
94260
94271
|
function initHighlightJs(theme, customDocument) {
|
|
94261
|
-
const
|
|
94272
|
+
const doc2 = customDocument || document;
|
|
94262
94273
|
const hljsStylesId = `alan-hljs-styles-${theme}`;
|
|
94263
|
-
if (hljsTheme === theme &&
|
|
94274
|
+
if (hljsTheme === theme && doc2.getElementById(hljsStylesId))
|
|
94264
94275
|
return;
|
|
94265
94276
|
hljsTheme = theme;
|
|
94266
|
-
var style =
|
|
94277
|
+
var style = doc2.createElement("style");
|
|
94267
94278
|
style.textContent = highlightJsCss(theme);
|
|
94268
94279
|
style.id = hljsStylesId;
|
|
94269
|
-
|
|
94270
|
-
var lightHLJSOnlyStyle =
|
|
94280
|
+
doc2.getElementsByTagName("head")[0].appendChild(style);
|
|
94281
|
+
var lightHLJSOnlyStyle = doc2.createElement("style");
|
|
94271
94282
|
lightHLJSOnlyStyle.textContent = highlightJsCssForOnlyLightTheme();
|
|
94272
94283
|
lightHLJSOnlyStyle.id = `alan-hljs-styles-light-only`;
|
|
94273
|
-
|
|
94284
|
+
doc2.getElementsByTagName("head")[0].appendChild(lightHLJSOnlyStyle);
|
|
94274
94285
|
}
|
|
94275
94286
|
function highlightCode(msgsHolder) {
|
|
94276
94287
|
if (window.hljs) {
|
|
@@ -94531,88 +94542,99 @@ code.hljs {
|
|
|
94531
94542
|
}
|
|
94532
94543
|
function highlightJsCssForOnlyLightTheme() {
|
|
94533
94544
|
const lightOnlyTheme = `
|
|
94534
|
-
.hljs-light-override pre code.hljs {
|
|
94545
|
+
#overlay.hljs-light-override pre code.hljs {
|
|
94535
94546
|
display: block;
|
|
94536
94547
|
overflow-x: auto;
|
|
94537
94548
|
overflow-y: hidden;
|
|
94538
94549
|
padding: 1em;
|
|
94550
|
+
background-color: #f8f8f8 !important;
|
|
94539
94551
|
}
|
|
94540
|
-
.hljs-light-override code.hljs {
|
|
94552
|
+
#overlay.hljs-light-override code.hljs {
|
|
94541
94553
|
padding: 3px 5px;
|
|
94542
94554
|
}
|
|
94543
|
-
.hljs-light-override .hljs {
|
|
94555
|
+
#overlay.hljs-light-override .hljs {
|
|
94544
94556
|
background-color: #f8f8f8 !important;
|
|
94545
94557
|
}
|
|
94546
|
-
.hljs-light-override
|
|
94547
|
-
|
|
94548
|
-
|
|
94549
|
-
|
|
94550
|
-
.hljs-light-override .hljs
|
|
94551
|
-
|
|
94552
|
-
|
|
94558
|
+
#overlay.hljs-light-override pre {
|
|
94559
|
+
background-color: #f8f8f8 !important;
|
|
94560
|
+
border: 1px solid #DDD !important;
|
|
94561
|
+
}
|
|
94562
|
+
#overlay.hljs-light-override code:not(.hljs) {
|
|
94563
|
+
background-color: #f8f8f8 !important;
|
|
94564
|
+
border: 1px solid #DDD !important;
|
|
94565
|
+
}
|
|
94566
|
+
|
|
94567
|
+
|
|
94568
|
+
#overlay.hljs-light-override .hljs-doctag,
|
|
94569
|
+
#overlay.hljs-light-override .hljs-keyword,
|
|
94570
|
+
#overlay.hljs-light-override .hljs-meta .hljs-keyword,
|
|
94571
|
+
#overlay.hljs-light-override .hljs-template-tag,
|
|
94572
|
+
#overlay.hljs-light-override .hljs-template-variable,
|
|
94573
|
+
#overlay.hljs-light-override .hljs-type,
|
|
94574
|
+
#overlay.hljs-light-override .hljs-variable.language_ {
|
|
94553
94575
|
color: #d73a49;
|
|
94554
94576
|
}
|
|
94555
|
-
.hljs-light-override .hljs-title,
|
|
94556
|
-
.hljs-light-override .hljs-title.class_,
|
|
94557
|
-
.hljs-light-override .hljs-title.class_.inherited__,
|
|
94558
|
-
.hljs-light-override .hljs-title.function_ {
|
|
94577
|
+
#overlay.hljs-light-override .hljs-title,
|
|
94578
|
+
#overlay.hljs-light-override .hljs-title.class_,
|
|
94579
|
+
#overlay.hljs-light-override .hljs-title.class_.inherited__,
|
|
94580
|
+
#overlay.hljs-light-override .hljs-title.function_ {
|
|
94559
94581
|
color: #6f42c1;
|
|
94560
94582
|
}
|
|
94561
|
-
.hljs-light-override .hljs-attr,
|
|
94562
|
-
.hljs-light-override .hljs-attribute,
|
|
94563
|
-
.hljs-light-override .hljs-literal,
|
|
94564
|
-
.hljs-light-override .hljs-meta,
|
|
94565
|
-
.hljs-light-override .hljs-number,
|
|
94566
|
-
.hljs-light-override .hljs-operator,
|
|
94567
|
-
.hljs-light-override .hljs-variable,
|
|
94568
|
-
.hljs-light-override .hljs-selector-attr,
|
|
94569
|
-
.hljs-light-override .hljs-selector-class,
|
|
94570
|
-
.hljs-light-override .hljs-selector-id {
|
|
94583
|
+
#overlay.hljs-light-override .hljs-attr,
|
|
94584
|
+
#overlay.hljs-light-override .hljs-attribute,
|
|
94585
|
+
#overlay.hljs-light-override .hljs-literal,
|
|
94586
|
+
#overlay.hljs-light-override .hljs-meta,
|
|
94587
|
+
#overlay.hljs-light-override .hljs-number,
|
|
94588
|
+
#overlay.hljs-light-override .hljs-operator,
|
|
94589
|
+
#overlay.hljs-light-override .hljs-variable,
|
|
94590
|
+
#overlay.hljs-light-override .hljs-selector-attr,
|
|
94591
|
+
#overlay.hljs-light-override .hljs-selector-class,
|
|
94592
|
+
#overlay.hljs-light-override .hljs-selector-id {
|
|
94571
94593
|
color: #005cc5;
|
|
94572
94594
|
}
|
|
94573
|
-
.hljs-light-override .hljs-regexp,
|
|
94574
|
-
.hljs-light-override .hljs-string,
|
|
94575
|
-
.hljs-light-override .hljs-meta .hljs-string {
|
|
94595
|
+
#overlay.hljs-light-override .hljs-regexp,
|
|
94596
|
+
#overlay.hljs-light-override .hljs-string,
|
|
94597
|
+
#overlay.hljs-light-override .hljs-meta .hljs-string {
|
|
94576
94598
|
color: #032f62;
|
|
94577
94599
|
}
|
|
94578
|
-
.hljs-light-override .hljs-built_in,
|
|
94579
|
-
.hljs-light-override .hljs-symbol {
|
|
94600
|
+
#overlay.hljs-light-override .hljs-built_in,
|
|
94601
|
+
#overlay.hljs-light-override .hljs-symbol {
|
|
94580
94602
|
color: #e36209;
|
|
94581
94603
|
}
|
|
94582
|
-
.hljs-light-override .hljs-comment,
|
|
94583
|
-
.hljs-light-override .hljs-code,
|
|
94584
|
-
.hljs-light-override .hljs-formula {
|
|
94604
|
+
#overlay.hljs-light-override .hljs-comment,
|
|
94605
|
+
#overlay.hljs-light-override .hljs-code,
|
|
94606
|
+
#overlay.hljs-light-override .hljs-formula {
|
|
94585
94607
|
color: #6a737d;
|
|
94586
94608
|
}
|
|
94587
|
-
.hljs-light-override .hljs-name,
|
|
94588
|
-
.hljs-light-override .hljs-quote,
|
|
94589
|
-
.hljs-light-override .hljs-selector-tag,
|
|
94590
|
-
.hljs-light-override .hljs-selector-pseudo {
|
|
94609
|
+
#overlay.hljs-light-override .hljs-name,
|
|
94610
|
+
#overlay.hljs-light-override .hljs-quote,
|
|
94611
|
+
#overlay.hljs-light-override .hljs-selector-tag,
|
|
94612
|
+
#overlay.hljs-light-override .hljs-selector-pseudo {
|
|
94591
94613
|
color: #22863a;
|
|
94592
94614
|
}
|
|
94593
|
-
.hljs-light-override .hljs-subst {
|
|
94615
|
+
#overlay.hljs-light-override .hljs-subst {
|
|
94594
94616
|
color: #24292e;
|
|
94595
94617
|
}
|
|
94596
|
-
.hljs-light-override .hljs-section {
|
|
94618
|
+
#overlay.hljs-light-override .hljs-section {
|
|
94597
94619
|
color: #005cc5;
|
|
94598
94620
|
font-weight: bold;
|
|
94599
94621
|
}
|
|
94600
|
-
.hljs-light-override .hljs-bullet {
|
|
94622
|
+
#overlay.hljs-light-override .hljs-bullet {
|
|
94601
94623
|
color: #735c0f;
|
|
94602
94624
|
}
|
|
94603
|
-
.hljs-light-override .hljs-emphasis {
|
|
94625
|
+
#overlay.hljs-light-override .hljs-emphasis {
|
|
94604
94626
|
color: #24292e;
|
|
94605
94627
|
font-style: italic;
|
|
94606
94628
|
}
|
|
94607
|
-
.hljs-light-override .hljs-strong {
|
|
94629
|
+
#overlay.hljs-light-override .hljs-strong {
|
|
94608
94630
|
color: #24292e;
|
|
94609
94631
|
font-weight: bold;
|
|
94610
94632
|
}
|
|
94611
|
-
.hljs-light-override .hljs-addition {
|
|
94633
|
+
#overlay.hljs-light-override .hljs-addition {
|
|
94612
94634
|
color: #22863a;
|
|
94613
94635
|
background-color: #f0fff4;
|
|
94614
94636
|
}
|
|
94615
|
-
.hljs-light-override .hljs-deletion {
|
|
94637
|
+
#overlay.hljs-light-override .hljs-deletion {
|
|
94616
94638
|
color: #b31d28;
|
|
94617
94639
|
background-color: #ffeef0;
|
|
94618
94640
|
}
|
|
@@ -94787,6 +94809,22 @@ code.hljs {
|
|
|
94787
94809
|
|
|
94788
94810
|
// alan_btn/src/textChat/saveChatStateToFile.ts
|
|
94789
94811
|
var LIBS_PREFIX = "https://storage.googleapis.com/alan-ai-public-resources/save-debug-chat-resources";
|
|
94812
|
+
function extractFunction(code, functionName) {
|
|
94813
|
+
const regex = new RegExp(`(?:async\\s+)?function\\s+${functionName}\\s*\\([^)]*\\)\\s*{(?:[^{}]*|{[^{}]*})*}`, "gs");
|
|
94814
|
+
const match = code.match(regex);
|
|
94815
|
+
return match ? match[0] : null;
|
|
94816
|
+
}
|
|
94817
|
+
function stripComments(code) {
|
|
94818
|
+
return code.replace(/("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|\/\/.*|\/\*[\s\S]*?\*\//g, (match, quoted) => {
|
|
94819
|
+
return quoted ? quoted : "";
|
|
94820
|
+
});
|
|
94821
|
+
}
|
|
94822
|
+
function commentInitIframeFnInSourceCode(html, initIframeFn2) {
|
|
94823
|
+
const explanationComment = `// The initIframe function was commented out because resources were inlined in the iframe.
|
|
94824
|
+
`;
|
|
94825
|
+
const commentedFn = initIframeFn2.split("\n").map((line) => "// " + line).join("\n");
|
|
94826
|
+
return html.replace(initIframeFn2, explanationComment + commentedFn);
|
|
94827
|
+
}
|
|
94790
94828
|
async function saveChatState({
|
|
94791
94829
|
chatName,
|
|
94792
94830
|
chatEl,
|
|
@@ -94814,19 +94852,25 @@ code.hljs {
|
|
|
94814
94852
|
continue;
|
|
94815
94853
|
}
|
|
94816
94854
|
let initHtmlContent = await response.text();
|
|
94817
|
-
let htmlContent = await inlineExternalScripts(initHtmlContent);
|
|
94855
|
+
let { htmlContent: htmlContent2 } = await inlineExternalScripts(initHtmlContent);
|
|
94856
|
+
const initIframeFn2 = extractFunction(htmlContent2, "initIframe");
|
|
94857
|
+
if (initIframeFn2) {
|
|
94858
|
+
htmlContent2 = commentInitIframeFnInSourceCode(htmlContent2, initIframeFn2);
|
|
94859
|
+
console.log("Replaced initIframe function with commented version as resources were successfully inlined.");
|
|
94860
|
+
}
|
|
94818
94861
|
const frameSrc = iframe.getAttribute("src");
|
|
94819
94862
|
iframe.removeAttribute("src");
|
|
94820
|
-
iframe.setAttribute("srcdoc",
|
|
94863
|
+
iframe.setAttribute("srcdoc", htmlContent2);
|
|
94821
94864
|
iframe.setAttribute("sandbox", "allow-scripts allow-same-origin");
|
|
94822
94865
|
if (frameSrc.indexOf("alan.") > -1 || frameSrc.indexOf("alan-")) {
|
|
94823
94866
|
const parent = iframe.parentNode;
|
|
94824
94867
|
let controlsDiv = document.createElement("div");
|
|
94825
94868
|
controlsDiv.classList.add("alan-iframe-controls");
|
|
94826
|
-
let
|
|
94827
|
-
|
|
94828
|
-
|
|
94829
|
-
|
|
94869
|
+
let hiddenIframe = document.createElement("iframe");
|
|
94870
|
+
hiddenIframe.srcdoc = `<!--${initHtmlContent}-->`;
|
|
94871
|
+
hiddenIframe.setAttribute("style", "display: none;");
|
|
94872
|
+
hiddenIframe.setAttribute("sandbox", "");
|
|
94873
|
+
controlsDiv.appendChild(hiddenIframe);
|
|
94830
94874
|
const loadIframeLink = document.createElement("a");
|
|
94831
94875
|
loadIframeLink.classList.add("load-iframe-source");
|
|
94832
94876
|
loadIframeLink.textContent = "Load IFrame source \u2B07\uFE0F";
|
|
@@ -94845,11 +94889,16 @@ code.hljs {
|
|
|
94845
94889
|
const functionsToInsert = iFrameSizeListenerFunctions.map((fn) => fn.toString()).join("\n\n");
|
|
94846
94890
|
const onIFrameSizeListenerString = onIFrameSizeListener.toString();
|
|
94847
94891
|
const copyTextToBufferString = copyTextToBuffer.toString();
|
|
94848
|
-
|
|
94849
|
-
|
|
94850
|
-
|
|
94851
|
-
|
|
94852
|
-
|
|
94892
|
+
let outputPhrases = [];
|
|
94893
|
+
try {
|
|
94894
|
+
outputPhrases = await getOutputLogs({
|
|
94895
|
+
projectId,
|
|
94896
|
+
environment,
|
|
94897
|
+
requestIds
|
|
94898
|
+
});
|
|
94899
|
+
} catch (error) {
|
|
94900
|
+
console.info("Chat will be exported without output graphs", error);
|
|
94901
|
+
}
|
|
94853
94902
|
const alanMainClass = "alan-" + projectId;
|
|
94854
94903
|
const code = `
|
|
94855
94904
|
<script type="text/javascript">
|
|
@@ -94857,7 +94906,7 @@ code.hljs {
|
|
|
94857
94906
|
${functionsToInsert}
|
|
94858
94907
|
${copyTextToBufferString}
|
|
94859
94908
|
|
|
94860
|
-
function copyCodeHandler(text){
|
|
94909
|
+
function copyCodeHandler(text, copyButton){
|
|
94861
94910
|
copyTextToBuffer(text);
|
|
94862
94911
|
|
|
94863
94912
|
copyButton.classList.add('alan-copy-btn-copied');
|
|
@@ -94866,35 +94915,36 @@ code.hljs {
|
|
|
94866
94915
|
}, 2000);
|
|
94867
94916
|
}
|
|
94868
94917
|
|
|
94918
|
+
if(window.hljs) {
|
|
94919
|
+
window.hljs.addPlugin({
|
|
94920
|
+
"after:highlightElement": ({ el, text }) => {
|
|
94921
|
+
const wrapper = el.parentElement;
|
|
94922
|
+
if (wrapper == null) {
|
|
94923
|
+
return;
|
|
94924
|
+
}
|
|
94869
94925
|
|
|
94870
|
-
|
|
94871
|
-
"after:highlightElement": ({ el, text }) => {
|
|
94872
|
-
const wrapper = el.parentElement;
|
|
94873
|
-
if (wrapper == null) {
|
|
94874
|
-
return;
|
|
94875
|
-
}
|
|
94876
|
-
|
|
94877
|
-
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
94926
|
+
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
94878
94927
|
|
|
94879
|
-
|
|
94880
|
-
|
|
94881
|
-
|
|
94882
|
-
|
|
94928
|
+
const copyButton = document.createElement("span");
|
|
94929
|
+
copyButton.classList.add(
|
|
94930
|
+
"alan-btn__chat-response__copy-code-btn",
|
|
94931
|
+
);
|
|
94883
94932
|
|
|
94884
|
-
|
|
94885
|
-
|
|
94886
|
-
|
|
94887
|
-
|
|
94933
|
+
const chatIcons = {
|
|
94934
|
+
copy: '<svg class="alan-btn__copy-icon" width="24px" height="24px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 16.5L19.5 4.5L18.75 3.75H9L8.25 4.5L8.25 7.5L5.25 7.5L4.5 8.25V20.25L5.25 21H15L15.75 20.25V17.25H18.75L19.5 16.5ZM15.75 15.75L15.75 8.25L15 7.5L9.75 7.5V5.25L18 5.25V15.75H15.75ZM6 9L14.25 9L14.25 19.5L6 19.5L6 9Z" fill="#080341"/></svg>',
|
|
94935
|
+
copied: '<svg class="alan-btn__copied-icon" width="24px" height="24px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg" aria-labelledby="okIconTitle" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none" color="#000000"> <title id="okIconTitle">Copied!</title> <polyline points="4 13 9 18 20 7"/> </svg>'
|
|
94936
|
+
};
|
|
94888
94937
|
|
|
94889
|
-
|
|
94938
|
+
copyButton.innerHTML = chatIcons.copy + chatIcons.copied;
|
|
94890
94939
|
|
|
94891
|
-
|
|
94892
|
-
|
|
94893
|
-
|
|
94940
|
+
copyButton.onclick = () => {
|
|
94941
|
+
copyCodeHandler(text, copyButton)
|
|
94942
|
+
};
|
|
94894
94943
|
|
|
94895
|
-
|
|
94896
|
-
|
|
94897
|
-
|
|
94944
|
+
wrapper.appendChild(copyButton);
|
|
94945
|
+
},
|
|
94946
|
+
});
|
|
94947
|
+
}
|
|
94898
94948
|
|
|
94899
94949
|
window.addEventListener("message", ${onIFrameSizeListenerString});
|
|
94900
94950
|
|
|
@@ -94973,6 +95023,12 @@ code.hljs {
|
|
|
94973
95023
|
document.addEventListener('click', function onGraphClick(e) {
|
|
94974
95024
|
var graphEl = e.target.closest('.chat-bubble_graph, .alan-btn__chat-graph');
|
|
94975
95025
|
if (graphEl) {
|
|
95026
|
+
|
|
95027
|
+
if (!window.d3 || !window.Viz || !window.alanMarkdown || !window.svgPanZoom || !window.hljs) {
|
|
95028
|
+
alert('Some libraries required to display the graph could not be loaded. Please check your internet connection and try again.');
|
|
95029
|
+
return;
|
|
95030
|
+
}
|
|
95031
|
+
|
|
94976
95032
|
var phrase = logs.filter(l => l.requestId === graphEl.getAttribute('data-request-id'))[0];
|
|
94977
95033
|
|
|
94978
95034
|
if (phrase) {
|
|
@@ -95239,8 +95295,6 @@ code.hljs {
|
|
|
95239
95295
|
<head>
|
|
95240
95296
|
<meta charset="UTF-8">
|
|
95241
95297
|
<title>Alan Text Chat History</title>
|
|
95242
|
-
<link href="${LIBS_PREFIX}/main.css?v=1" rel="stylesheet" />
|
|
95243
|
-
<link href="${LIBS_PREFIX}/highlight.light.css" rel="stylesheet" />
|
|
95244
95298
|
<script src="${LIBS_PREFIX}/d3.v7.min.js" type="text/javascript"><\/script>
|
|
95245
95299
|
<script src="${LIBS_PREFIX}/viz-standalone.js" type="text/javascript"><\/script>
|
|
95246
95300
|
<script src="${LIBS_PREFIX}/svg-pan-zoom.min.js" type="text/javascript"><\/script>
|
|
@@ -95462,7 +95516,7 @@ code.hljs {
|
|
|
95462
95516
|
|
|
95463
95517
|
if(clickedEl.classList.contains('load-iframe-source')) {
|
|
95464
95518
|
const iframe = clickedEl.previousElementSibling;
|
|
95465
|
-
const iframeHtml = iframe.getAttribute('srcdoc')
|
|
95519
|
+
const iframeHtml = iframe.getAttribute('srcdoc').slice(4, -4);;
|
|
95466
95520
|
let blob = new Blob([iframeHtml], { type: "text/html" });
|
|
95467
95521
|
|
|
95468
95522
|
let now = new Date();
|
|
@@ -95635,7 +95689,76 @@ code.hljs {
|
|
|
95635
95689
|
console.error(`Failed to inline script from ${src}:`, error);
|
|
95636
95690
|
}
|
|
95637
95691
|
}
|
|
95638
|
-
|
|
95692
|
+
const initIframeFn = extractFunction(htmlContent, "initIframe");
|
|
95693
|
+
let allInitIframeResourcesInlined = false;
|
|
95694
|
+
if (initIframeFn) {
|
|
95695
|
+
let initIframeBody = stripComments(initIframeFn);
|
|
95696
|
+
const resourceRegex = /await iframe\.(addScript|addStyleSheet|addFont)\(['"]([^'"]+)['"]\)/g;
|
|
95697
|
+
let resourceMatch;
|
|
95698
|
+
const isValidUrlFn = extractFunction(htmlContent, "isValidUrl");
|
|
95699
|
+
const getResourceUrlFn = extractFunction(htmlContent, "getResourceUrl");
|
|
95700
|
+
const getStudioResourceUrlFn = extractFunction(htmlContent, "getStudioResourceUrl");
|
|
95701
|
+
const getProjectResourceUrlFn = extractFunction(htmlContent, "getProjectResourceUrl");
|
|
95702
|
+
let getResourceUrl = null;
|
|
95703
|
+
let getStudioResourceUrl = null;
|
|
95704
|
+
let getProjectResourceUrl = null;
|
|
95705
|
+
let isValidUrl = null;
|
|
95706
|
+
try {
|
|
95707
|
+
if (isValidUrlFn) {
|
|
95708
|
+
eval(`isValidUrl = ${isValidUrlFn}`);
|
|
95709
|
+
}
|
|
95710
|
+
if (getResourceUrlFn) {
|
|
95711
|
+
eval(`getResourceUrl = ${getResourceUrlFn}`);
|
|
95712
|
+
}
|
|
95713
|
+
if (getStudioResourceUrlFn) {
|
|
95714
|
+
eval(`getStudioResourceUrl = ${getStudioResourceUrlFn}`);
|
|
95715
|
+
}
|
|
95716
|
+
if (getProjectResourceUrlFn) {
|
|
95717
|
+
eval(`getProjectResourceUrl = ${getProjectResourceUrlFn}`);
|
|
95718
|
+
}
|
|
95719
|
+
} catch (error) {
|
|
95720
|
+
console.error("Failed to parse resource-related functions using eval:", error);
|
|
95721
|
+
}
|
|
95722
|
+
let hasInternalFunctions = true;
|
|
95723
|
+
if (!getResourceUrl || !getStudioResourceUrl || !getProjectResourceUrl || !isValidUrl) {
|
|
95724
|
+
hasInternalFunctions = false;
|
|
95725
|
+
console.error("Unable to parse resource-related functions from the iframe code. Some iframes may appear without content.");
|
|
95726
|
+
}
|
|
95727
|
+
allInitIframeResourcesInlined = true;
|
|
95728
|
+
if (hasInternalFunctions) {
|
|
95729
|
+
while ((resourceMatch = resourceRegex.exec(initIframeBody)) !== null) {
|
|
95730
|
+
const [_, resourceType, rawResourceUrl] = resourceMatch;
|
|
95731
|
+
try {
|
|
95732
|
+
const resourceUrl = getResourceUrl(rawResourceUrl);
|
|
95733
|
+
const response = await fetch(resourceUrl);
|
|
95734
|
+
if (!response.ok) {
|
|
95735
|
+
console.error(`Failed to fetch ${resourceType} from ${resourceUrl}: ${response.statusText}`);
|
|
95736
|
+
allInitIframeResourcesInlined = false;
|
|
95737
|
+
continue;
|
|
95738
|
+
}
|
|
95739
|
+
const resourceContent = await response.text();
|
|
95740
|
+
if (resourceType === "addScript") {
|
|
95741
|
+
const inlineScript = doc.createElement("script");
|
|
95742
|
+
inlineScript.textContent = resourceContent;
|
|
95743
|
+
doc.head.appendChild(inlineScript);
|
|
95744
|
+
console.log(`Inlined script from initIframe fn: ${resourceUrl}`);
|
|
95745
|
+
} else if (resourceType === "addStyleSheet") {
|
|
95746
|
+
const inlineStyle = doc.createElement("style");
|
|
95747
|
+
inlineStyle.textContent = resourceContent;
|
|
95748
|
+
doc.head.appendChild(inlineStyle);
|
|
95749
|
+
console.log(`Inlined stylesheet from initIframe fn: ${resourceUrl}`);
|
|
95750
|
+
}
|
|
95751
|
+
} catch (error) {
|
|
95752
|
+
console.error(`Failed to inline ${resourceType} from ${rawResourceUrl}:`, error);
|
|
95753
|
+
allInitIframeResourcesInlined = false;
|
|
95754
|
+
}
|
|
95755
|
+
}
|
|
95756
|
+
}
|
|
95757
|
+
}
|
|
95758
|
+
return {
|
|
95759
|
+
htmlContent: doc.documentElement.outerHTML,
|
|
95760
|
+
allInitIframeResourcesInlined
|
|
95761
|
+
};
|
|
95639
95762
|
}
|
|
95640
95763
|
|
|
95641
95764
|
// alan_btn/src/textChat/helpers/chat.ts
|
|
@@ -95812,7 +95935,7 @@ code.hljs {
|
|
|
95812
95935
|
|
|
95813
95936
|
// alan_btn/alan_btn.ts
|
|
95814
95937
|
(function(ns) {
|
|
95815
|
-
uiState.lib.version = "alan-version.1.8.
|
|
95938
|
+
uiState.lib.version = "alan-version.1.8.90".replace("alan-version.", "");
|
|
95816
95939
|
if (window.alanBtn) {
|
|
95817
95940
|
console.warn("Alan: the Alan Button source code has already added (v." + uiState.lib.version + ")");
|
|
95818
95941
|
}
|
|
@@ -98168,13 +98291,15 @@ ${LEARN_MORE_LABEL}
|
|
|
98168
98291
|
enableTextareaInTheChat();
|
|
98169
98292
|
}
|
|
98170
98293
|
}, false);
|
|
98171
|
-
window.addEventListener("click", (e) => {
|
|
98294
|
+
window.addEventListener("click", (0, import_lodash2.debounce)((e) => {
|
|
98295
|
+
if (isTutorMode())
|
|
98296
|
+
return;
|
|
98172
98297
|
var clickedEl = e.target;
|
|
98173
98298
|
processClickByButtonInChat(clickedEl, btnInstance, (text) => {
|
|
98174
98299
|
textChatScrollPosition = null;
|
|
98175
98300
|
_sendText(text);
|
|
98176
98301
|
});
|
|
98177
|
-
});
|
|
98302
|
+
}, 300));
|
|
98178
98303
|
function getMsgBubbleLabel(msg) {
|
|
98179
98304
|
if (msg.type === "request" || msg.type === "response") {
|
|
98180
98305
|
const isResponse = msg.type === "response";
|
|
@@ -98352,7 +98477,8 @@ ${LEARN_MORE_LABEL}
|
|
|
98352
98477
|
innerEl.insertAdjacentHTML("beforeend", buildMsgTextContent(updatedMsg));
|
|
98353
98478
|
innerEl.insertAdjacentHTML("beforeend", buildLinksContent(updatedMsg));
|
|
98354
98479
|
innerEl.insertAdjacentHTML("beforeend", buildCommandsBlock(msg, uiState?.textChat?.options));
|
|
98355
|
-
innerEl.insertAdjacentHTML("beforeend", buildMsgIncommingLoader(
|
|
98480
|
+
innerEl.insertAdjacentHTML("beforeend", buildMsgIncommingLoader(updatedMsg));
|
|
98481
|
+
innerEl.insertAdjacentHTML("beforeend", addGraphIcon(updatedMsg));
|
|
98356
98482
|
const newSuggestions = msg?.suggestions;
|
|
98357
98483
|
if (newSuggestions?.length > 0) {
|
|
98358
98484
|
if (innerEl.nextElementSibling?.classList.contains("alan-btn__chat-suggestions")) {
|
|
@@ -98981,8 +99107,19 @@ ${LEARN_MORE_LABEL}
|
|
|
98981
99107
|
rightHeaderIconsHolder.appendChild(saveChatStateBtnImg);
|
|
98982
99108
|
rightHeaderIconsHolder.appendChild(expandCollapseChatBtnImg);
|
|
98983
99109
|
saveChatStateBtnImg.addEventListener("click", async () => {
|
|
99110
|
+
const projectId = getProjectId();
|
|
99111
|
+
const head = document.head.cloneNode(true);
|
|
99112
|
+
const styleSelectors = [
|
|
99113
|
+
`style#alan-hljs-styles-light`,
|
|
99114
|
+
`style#alan-hljs-styles-dark`,
|
|
99115
|
+
`style#alan-hljs-styles-light-only`,
|
|
99116
|
+
`style#MJX-SVG-styles`,
|
|
99117
|
+
`style#alan-stylesheet-${projectId}`
|
|
99118
|
+
];
|
|
99119
|
+
const styles = head.querySelectorAll(styleSelectors.join(", "));
|
|
99120
|
+
const combinedStylesHTML = Array.from(styles).map((style) => style.outerHTML).join("\n");
|
|
98984
99121
|
const customHeadContent = `
|
|
98985
|
-
${
|
|
99122
|
+
${combinedStylesHTML}
|
|
98986
99123
|
`;
|
|
98987
99124
|
const initChat = document.querySelector("#chatMessagesWrapper");
|
|
98988
99125
|
if (!initChat)
|
|
@@ -98999,7 +99136,7 @@ ${LEARN_MORE_LABEL}
|
|
|
98999
99136
|
chatName: title,
|
|
99000
99137
|
chatEl: initChat,
|
|
99001
99138
|
width: chatWidth2,
|
|
99002
|
-
projectId
|
|
99139
|
+
projectId,
|
|
99003
99140
|
environment: getEnvironment(),
|
|
99004
99141
|
requestIds: textChatMessages?.length > 0 ? textChatMessages.filter((m) => m.type === "response" /* Response */).map((m) => getMsgReqId(m)) : [],
|
|
99005
99142
|
headContent: customHeadContent
|