@alan-ai/alan-sdk-web 1.8.89 → 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 +272 -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 = [];
|
|
@@ -90652,7 +90652,7 @@
|
|
|
90652
90652
|
mergeProgressiveMessages(messages, msgInd, msg);
|
|
90653
90653
|
} else if (msg?.suggestions?.length > 0) {
|
|
90654
90654
|
const lastResponseMsgInd = (0, import_lodash.findLastIndex)(messages, (m) => {
|
|
90655
|
-
return msg.type === "response" && msgReqId && (m?.ctx?.reqId || m.reqId) === msgReqId;
|
|
90655
|
+
return msg.type === "response" && m.type === "response" && msgReqId && (m?.ctx?.reqId || m.reqId) === msgReqId;
|
|
90656
90656
|
});
|
|
90657
90657
|
if (lastResponseMsgInd > -1) {
|
|
90658
90658
|
msgInd = lastResponseMsgInd;
|
|
@@ -90925,7 +90925,7 @@
|
|
|
90925
90925
|
var key;
|
|
90926
90926
|
if (uiState.project.id) {
|
|
90927
90927
|
key = uiState.project.id;
|
|
90928
|
-
return key.substr(key.indexOf("/"));
|
|
90928
|
+
return key.substr(key.indexOf("/") + 1);
|
|
90929
90929
|
}
|
|
90930
90930
|
return "none";
|
|
90931
90931
|
}
|
|
@@ -90973,7 +90973,7 @@
|
|
|
90973
90973
|
// alan_btn/src/textChat/helpers/adjustIFrameSize.ts
|
|
90974
90974
|
function adjustIFrameSize(iframeMsgData) {
|
|
90975
90975
|
const maxIFrameHeight = 6e3;
|
|
90976
|
-
var { height, width, iframeId, withSvg } = iframeMsgData;
|
|
90976
|
+
var { height, width, iframeId, withSvg, fullWidth } = iframeMsgData;
|
|
90977
90977
|
if (!window.alanIframes) {
|
|
90978
90978
|
window.alanIframes = {};
|
|
90979
90979
|
}
|
|
@@ -91013,7 +91013,7 @@
|
|
|
91013
91013
|
iframeEl.style.width = "100%";
|
|
91014
91014
|
return;
|
|
91015
91015
|
}
|
|
91016
|
-
if (withSvg) {
|
|
91016
|
+
if (withSvg || fullWidth) {
|
|
91017
91017
|
if (!responseWrapper.classList.contains(`with-svg-for-${iframeId}`)) {
|
|
91018
91018
|
responseWrapper.classList.add(`with-svg-for-${iframeId}`);
|
|
91019
91019
|
responseWrapper.classList.add("with-svg");
|
|
@@ -91575,8 +91575,8 @@
|
|
|
91575
91575
|
function parseSvgSize(svgString) {
|
|
91576
91576
|
if (!svgString)
|
|
91577
91577
|
return [];
|
|
91578
|
-
const
|
|
91579
|
-
const svgDoc =
|
|
91578
|
+
const parser2 = new DOMParser();
|
|
91579
|
+
const svgDoc = parser2.parseFromString(svgString, "image/svg+xml");
|
|
91580
91580
|
const svgElement = svgDoc.querySelector("svg");
|
|
91581
91581
|
const width = svgElement.getAttribute("width");
|
|
91582
91582
|
const height = svgElement.getAttribute("height");
|
|
@@ -93631,7 +93631,7 @@
|
|
|
93631
93631
|
hasFooterLinks = !!tempNode.querySelector(".footnotes");
|
|
93632
93632
|
tempNode.remove();
|
|
93633
93633
|
}
|
|
93634
|
-
const links = msg.links?.filter((link) =>
|
|
93634
|
+
const links = msg.links?.filter((link) => isValidUrl2(link?.href));
|
|
93635
93635
|
for (let i = 0; i < links?.length; i++) {
|
|
93636
93636
|
const curLink = links[i];
|
|
93637
93637
|
const target = getLinkTarget(curLink);
|
|
@@ -93655,7 +93655,7 @@
|
|
|
93655
93655
|
return "_blank";
|
|
93656
93656
|
}
|
|
93657
93657
|
}
|
|
93658
|
-
function
|
|
93658
|
+
function isValidUrl2(url) {
|
|
93659
93659
|
try {
|
|
93660
93660
|
const parsedUrl = new URL(url);
|
|
93661
93661
|
const hasValidProtocol = parsedUrl.protocol === "http:" || parsedUrl.protocol === "https:";
|
|
@@ -94247,7 +94247,7 @@
|
|
|
94247
94247
|
window.hljs.addPlugin({
|
|
94248
94248
|
"after:highlightElement": ({ el, text }) => {
|
|
94249
94249
|
const wrapper = el.parentElement;
|
|
94250
|
-
if (wrapper == null) {
|
|
94250
|
+
if (wrapper == null || wrapper.closest(".no-copy-btn")) {
|
|
94251
94251
|
return;
|
|
94252
94252
|
}
|
|
94253
94253
|
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
@@ -94269,19 +94269,19 @@
|
|
|
94269
94269
|
}
|
|
94270
94270
|
var hljsTheme = false;
|
|
94271
94271
|
function initHighlightJs(theme, customDocument) {
|
|
94272
|
-
const
|
|
94272
|
+
const doc2 = customDocument || document;
|
|
94273
94273
|
const hljsStylesId = `alan-hljs-styles-${theme}`;
|
|
94274
|
-
if (hljsTheme === theme &&
|
|
94274
|
+
if (hljsTheme === theme && doc2.getElementById(hljsStylesId))
|
|
94275
94275
|
return;
|
|
94276
94276
|
hljsTheme = theme;
|
|
94277
|
-
var style =
|
|
94277
|
+
var style = doc2.createElement("style");
|
|
94278
94278
|
style.textContent = highlightJsCss(theme);
|
|
94279
94279
|
style.id = hljsStylesId;
|
|
94280
|
-
|
|
94281
|
-
var lightHLJSOnlyStyle =
|
|
94280
|
+
doc2.getElementsByTagName("head")[0].appendChild(style);
|
|
94281
|
+
var lightHLJSOnlyStyle = doc2.createElement("style");
|
|
94282
94282
|
lightHLJSOnlyStyle.textContent = highlightJsCssForOnlyLightTheme();
|
|
94283
94283
|
lightHLJSOnlyStyle.id = `alan-hljs-styles-light-only`;
|
|
94284
|
-
|
|
94284
|
+
doc2.getElementsByTagName("head")[0].appendChild(lightHLJSOnlyStyle);
|
|
94285
94285
|
}
|
|
94286
94286
|
function highlightCode(msgsHolder) {
|
|
94287
94287
|
if (window.hljs) {
|
|
@@ -94542,88 +94542,99 @@ code.hljs {
|
|
|
94542
94542
|
}
|
|
94543
94543
|
function highlightJsCssForOnlyLightTheme() {
|
|
94544
94544
|
const lightOnlyTheme = `
|
|
94545
|
-
.hljs-light-override pre code.hljs {
|
|
94545
|
+
#overlay.hljs-light-override pre code.hljs {
|
|
94546
94546
|
display: block;
|
|
94547
94547
|
overflow-x: auto;
|
|
94548
94548
|
overflow-y: hidden;
|
|
94549
94549
|
padding: 1em;
|
|
94550
|
+
background-color: #f8f8f8 !important;
|
|
94550
94551
|
}
|
|
94551
|
-
.hljs-light-override code.hljs {
|
|
94552
|
+
#overlay.hljs-light-override code.hljs {
|
|
94552
94553
|
padding: 3px 5px;
|
|
94553
94554
|
}
|
|
94554
|
-
.hljs-light-override .hljs {
|
|
94555
|
+
#overlay.hljs-light-override .hljs {
|
|
94555
94556
|
background-color: #f8f8f8 !important;
|
|
94556
94557
|
}
|
|
94557
|
-
.hljs-light-override
|
|
94558
|
-
|
|
94559
|
-
|
|
94560
|
-
|
|
94561
|
-
.hljs-light-override .hljs
|
|
94562
|
-
|
|
94563
|
-
|
|
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_ {
|
|
94564
94575
|
color: #d73a49;
|
|
94565
94576
|
}
|
|
94566
|
-
.hljs-light-override .hljs-title,
|
|
94567
|
-
.hljs-light-override .hljs-title.class_,
|
|
94568
|
-
.hljs-light-override .hljs-title.class_.inherited__,
|
|
94569
|
-
.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_ {
|
|
94570
94581
|
color: #6f42c1;
|
|
94571
94582
|
}
|
|
94572
|
-
.hljs-light-override .hljs-attr,
|
|
94573
|
-
.hljs-light-override .hljs-attribute,
|
|
94574
|
-
.hljs-light-override .hljs-literal,
|
|
94575
|
-
.hljs-light-override .hljs-meta,
|
|
94576
|
-
.hljs-light-override .hljs-number,
|
|
94577
|
-
.hljs-light-override .hljs-operator,
|
|
94578
|
-
.hljs-light-override .hljs-variable,
|
|
94579
|
-
.hljs-light-override .hljs-selector-attr,
|
|
94580
|
-
.hljs-light-override .hljs-selector-class,
|
|
94581
|
-
.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 {
|
|
94582
94593
|
color: #005cc5;
|
|
94583
94594
|
}
|
|
94584
|
-
.hljs-light-override .hljs-regexp,
|
|
94585
|
-
.hljs-light-override .hljs-string,
|
|
94586
|
-
.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 {
|
|
94587
94598
|
color: #032f62;
|
|
94588
94599
|
}
|
|
94589
|
-
.hljs-light-override .hljs-built_in,
|
|
94590
|
-
.hljs-light-override .hljs-symbol {
|
|
94600
|
+
#overlay.hljs-light-override .hljs-built_in,
|
|
94601
|
+
#overlay.hljs-light-override .hljs-symbol {
|
|
94591
94602
|
color: #e36209;
|
|
94592
94603
|
}
|
|
94593
|
-
.hljs-light-override .hljs-comment,
|
|
94594
|
-
.hljs-light-override .hljs-code,
|
|
94595
|
-
.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 {
|
|
94596
94607
|
color: #6a737d;
|
|
94597
94608
|
}
|
|
94598
|
-
.hljs-light-override .hljs-name,
|
|
94599
|
-
.hljs-light-override .hljs-quote,
|
|
94600
|
-
.hljs-light-override .hljs-selector-tag,
|
|
94601
|
-
.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 {
|
|
94602
94613
|
color: #22863a;
|
|
94603
94614
|
}
|
|
94604
|
-
.hljs-light-override .hljs-subst {
|
|
94615
|
+
#overlay.hljs-light-override .hljs-subst {
|
|
94605
94616
|
color: #24292e;
|
|
94606
94617
|
}
|
|
94607
|
-
.hljs-light-override .hljs-section {
|
|
94618
|
+
#overlay.hljs-light-override .hljs-section {
|
|
94608
94619
|
color: #005cc5;
|
|
94609
94620
|
font-weight: bold;
|
|
94610
94621
|
}
|
|
94611
|
-
.hljs-light-override .hljs-bullet {
|
|
94622
|
+
#overlay.hljs-light-override .hljs-bullet {
|
|
94612
94623
|
color: #735c0f;
|
|
94613
94624
|
}
|
|
94614
|
-
.hljs-light-override .hljs-emphasis {
|
|
94625
|
+
#overlay.hljs-light-override .hljs-emphasis {
|
|
94615
94626
|
color: #24292e;
|
|
94616
94627
|
font-style: italic;
|
|
94617
94628
|
}
|
|
94618
|
-
.hljs-light-override .hljs-strong {
|
|
94629
|
+
#overlay.hljs-light-override .hljs-strong {
|
|
94619
94630
|
color: #24292e;
|
|
94620
94631
|
font-weight: bold;
|
|
94621
94632
|
}
|
|
94622
|
-
.hljs-light-override .hljs-addition {
|
|
94633
|
+
#overlay.hljs-light-override .hljs-addition {
|
|
94623
94634
|
color: #22863a;
|
|
94624
94635
|
background-color: #f0fff4;
|
|
94625
94636
|
}
|
|
94626
|
-
.hljs-light-override .hljs-deletion {
|
|
94637
|
+
#overlay.hljs-light-override .hljs-deletion {
|
|
94627
94638
|
color: #b31d28;
|
|
94628
94639
|
background-color: #ffeef0;
|
|
94629
94640
|
}
|
|
@@ -94798,6 +94809,22 @@ code.hljs {
|
|
|
94798
94809
|
|
|
94799
94810
|
// alan_btn/src/textChat/saveChatStateToFile.ts
|
|
94800
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
|
+
}
|
|
94801
94828
|
async function saveChatState({
|
|
94802
94829
|
chatName,
|
|
94803
94830
|
chatEl,
|
|
@@ -94825,19 +94852,25 @@ code.hljs {
|
|
|
94825
94852
|
continue;
|
|
94826
94853
|
}
|
|
94827
94854
|
let initHtmlContent = await response.text();
|
|
94828
|
-
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
|
+
}
|
|
94829
94861
|
const frameSrc = iframe.getAttribute("src");
|
|
94830
94862
|
iframe.removeAttribute("src");
|
|
94831
|
-
iframe.setAttribute("srcdoc",
|
|
94863
|
+
iframe.setAttribute("srcdoc", htmlContent2);
|
|
94832
94864
|
iframe.setAttribute("sandbox", "allow-scripts allow-same-origin");
|
|
94833
94865
|
if (frameSrc.indexOf("alan.") > -1 || frameSrc.indexOf("alan-")) {
|
|
94834
94866
|
const parent = iframe.parentNode;
|
|
94835
94867
|
let controlsDiv = document.createElement("div");
|
|
94836
94868
|
controlsDiv.classList.add("alan-iframe-controls");
|
|
94837
|
-
let
|
|
94838
|
-
|
|
94839
|
-
|
|
94840
|
-
|
|
94869
|
+
let hiddenIframe = document.createElement("iframe");
|
|
94870
|
+
hiddenIframe.srcdoc = `<!--${initHtmlContent}-->`;
|
|
94871
|
+
hiddenIframe.setAttribute("style", "display: none;");
|
|
94872
|
+
hiddenIframe.setAttribute("sandbox", "");
|
|
94873
|
+
controlsDiv.appendChild(hiddenIframe);
|
|
94841
94874
|
const loadIframeLink = document.createElement("a");
|
|
94842
94875
|
loadIframeLink.classList.add("load-iframe-source");
|
|
94843
94876
|
loadIframeLink.textContent = "Load IFrame source \u2B07\uFE0F";
|
|
@@ -94856,11 +94889,16 @@ code.hljs {
|
|
|
94856
94889
|
const functionsToInsert = iFrameSizeListenerFunctions.map((fn) => fn.toString()).join("\n\n");
|
|
94857
94890
|
const onIFrameSizeListenerString = onIFrameSizeListener.toString();
|
|
94858
94891
|
const copyTextToBufferString = copyTextToBuffer.toString();
|
|
94859
|
-
|
|
94860
|
-
|
|
94861
|
-
|
|
94862
|
-
|
|
94863
|
-
|
|
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
|
+
}
|
|
94864
94902
|
const alanMainClass = "alan-" + projectId;
|
|
94865
94903
|
const code = `
|
|
94866
94904
|
<script type="text/javascript">
|
|
@@ -94868,7 +94906,7 @@ code.hljs {
|
|
|
94868
94906
|
${functionsToInsert}
|
|
94869
94907
|
${copyTextToBufferString}
|
|
94870
94908
|
|
|
94871
|
-
function copyCodeHandler(text){
|
|
94909
|
+
function copyCodeHandler(text, copyButton){
|
|
94872
94910
|
copyTextToBuffer(text);
|
|
94873
94911
|
|
|
94874
94912
|
copyButton.classList.add('alan-copy-btn-copied');
|
|
@@ -94877,35 +94915,36 @@ code.hljs {
|
|
|
94877
94915
|
}, 2000);
|
|
94878
94916
|
}
|
|
94879
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
|
+
}
|
|
94880
94925
|
|
|
94881
|
-
|
|
94882
|
-
"after:highlightElement": ({ el, text }) => {
|
|
94883
|
-
const wrapper = el.parentElement;
|
|
94884
|
-
if (wrapper == null) {
|
|
94885
|
-
return;
|
|
94886
|
-
}
|
|
94887
|
-
|
|
94888
|
-
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
94926
|
+
wrapper.classList.add("alan-btn__chat-response__code-wrapper");
|
|
94889
94927
|
|
|
94890
|
-
|
|
94891
|
-
|
|
94892
|
-
|
|
94893
|
-
|
|
94928
|
+
const copyButton = document.createElement("span");
|
|
94929
|
+
copyButton.classList.add(
|
|
94930
|
+
"alan-btn__chat-response__copy-code-btn",
|
|
94931
|
+
);
|
|
94894
94932
|
|
|
94895
|
-
|
|
94896
|
-
|
|
94897
|
-
|
|
94898
|
-
|
|
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
|
+
};
|
|
94899
94937
|
|
|
94900
|
-
|
|
94938
|
+
copyButton.innerHTML = chatIcons.copy + chatIcons.copied;
|
|
94901
94939
|
|
|
94902
|
-
|
|
94903
|
-
|
|
94904
|
-
|
|
94940
|
+
copyButton.onclick = () => {
|
|
94941
|
+
copyCodeHandler(text, copyButton)
|
|
94942
|
+
};
|
|
94905
94943
|
|
|
94906
|
-
|
|
94907
|
-
|
|
94908
|
-
|
|
94944
|
+
wrapper.appendChild(copyButton);
|
|
94945
|
+
},
|
|
94946
|
+
});
|
|
94947
|
+
}
|
|
94909
94948
|
|
|
94910
94949
|
window.addEventListener("message", ${onIFrameSizeListenerString});
|
|
94911
94950
|
|
|
@@ -94984,6 +95023,12 @@ code.hljs {
|
|
|
94984
95023
|
document.addEventListener('click', function onGraphClick(e) {
|
|
94985
95024
|
var graphEl = e.target.closest('.chat-bubble_graph, .alan-btn__chat-graph');
|
|
94986
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
|
+
|
|
94987
95032
|
var phrase = logs.filter(l => l.requestId === graphEl.getAttribute('data-request-id'))[0];
|
|
94988
95033
|
|
|
94989
95034
|
if (phrase) {
|
|
@@ -95250,8 +95295,6 @@ code.hljs {
|
|
|
95250
95295
|
<head>
|
|
95251
95296
|
<meta charset="UTF-8">
|
|
95252
95297
|
<title>Alan Text Chat History</title>
|
|
95253
|
-
<link href="${LIBS_PREFIX}/main.css?v=1" rel="stylesheet" />
|
|
95254
|
-
<link href="${LIBS_PREFIX}/highlight.light.css" rel="stylesheet" />
|
|
95255
95298
|
<script src="${LIBS_PREFIX}/d3.v7.min.js" type="text/javascript"><\/script>
|
|
95256
95299
|
<script src="${LIBS_PREFIX}/viz-standalone.js" type="text/javascript"><\/script>
|
|
95257
95300
|
<script src="${LIBS_PREFIX}/svg-pan-zoom.min.js" type="text/javascript"><\/script>
|
|
@@ -95473,7 +95516,7 @@ code.hljs {
|
|
|
95473
95516
|
|
|
95474
95517
|
if(clickedEl.classList.contains('load-iframe-source')) {
|
|
95475
95518
|
const iframe = clickedEl.previousElementSibling;
|
|
95476
|
-
const iframeHtml = iframe.getAttribute('srcdoc')
|
|
95519
|
+
const iframeHtml = iframe.getAttribute('srcdoc').slice(4, -4);;
|
|
95477
95520
|
let blob = new Blob([iframeHtml], { type: "text/html" });
|
|
95478
95521
|
|
|
95479
95522
|
let now = new Date();
|
|
@@ -95646,7 +95689,76 @@ code.hljs {
|
|
|
95646
95689
|
console.error(`Failed to inline script from ${src}:`, error);
|
|
95647
95690
|
}
|
|
95648
95691
|
}
|
|
95649
|
-
|
|
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
|
+
};
|
|
95650
95762
|
}
|
|
95651
95763
|
|
|
95652
95764
|
// alan_btn/src/textChat/helpers/chat.ts
|
|
@@ -95823,7 +95935,7 @@ code.hljs {
|
|
|
95823
95935
|
|
|
95824
95936
|
// alan_btn/alan_btn.ts
|
|
95825
95937
|
(function(ns) {
|
|
95826
|
-
uiState.lib.version = "alan-version.1.8.
|
|
95938
|
+
uiState.lib.version = "alan-version.1.8.90".replace("alan-version.", "");
|
|
95827
95939
|
if (window.alanBtn) {
|
|
95828
95940
|
console.warn("Alan: the Alan Button source code has already added (v." + uiState.lib.version + ")");
|
|
95829
95941
|
}
|
|
@@ -98179,13 +98291,15 @@ ${LEARN_MORE_LABEL}
|
|
|
98179
98291
|
enableTextareaInTheChat();
|
|
98180
98292
|
}
|
|
98181
98293
|
}, false);
|
|
98182
|
-
window.addEventListener("click", (e) => {
|
|
98294
|
+
window.addEventListener("click", (0, import_lodash2.debounce)((e) => {
|
|
98295
|
+
if (isTutorMode())
|
|
98296
|
+
return;
|
|
98183
98297
|
var clickedEl = e.target;
|
|
98184
98298
|
processClickByButtonInChat(clickedEl, btnInstance, (text) => {
|
|
98185
98299
|
textChatScrollPosition = null;
|
|
98186
98300
|
_sendText(text);
|
|
98187
98301
|
});
|
|
98188
|
-
});
|
|
98302
|
+
}, 300));
|
|
98189
98303
|
function getMsgBubbleLabel(msg) {
|
|
98190
98304
|
if (msg.type === "request" || msg.type === "response") {
|
|
98191
98305
|
const isResponse = msg.type === "response";
|
|
@@ -98364,6 +98478,7 @@ ${LEARN_MORE_LABEL}
|
|
|
98364
98478
|
innerEl.insertAdjacentHTML("beforeend", buildLinksContent(updatedMsg));
|
|
98365
98479
|
innerEl.insertAdjacentHTML("beforeend", buildCommandsBlock(msg, uiState?.textChat?.options));
|
|
98366
98480
|
innerEl.insertAdjacentHTML("beforeend", buildMsgIncommingLoader(updatedMsg));
|
|
98481
|
+
innerEl.insertAdjacentHTML("beforeend", addGraphIcon(updatedMsg));
|
|
98367
98482
|
const newSuggestions = msg?.suggestions;
|
|
98368
98483
|
if (newSuggestions?.length > 0) {
|
|
98369
98484
|
if (innerEl.nextElementSibling?.classList.contains("alan-btn__chat-suggestions")) {
|
|
@@ -98992,8 +99107,19 @@ ${LEARN_MORE_LABEL}
|
|
|
98992
99107
|
rightHeaderIconsHolder.appendChild(saveChatStateBtnImg);
|
|
98993
99108
|
rightHeaderIconsHolder.appendChild(expandCollapseChatBtnImg);
|
|
98994
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");
|
|
98995
99121
|
const customHeadContent = `
|
|
98996
|
-
${
|
|
99122
|
+
${combinedStylesHTML}
|
|
98997
99123
|
`;
|
|
98998
99124
|
const initChat = document.querySelector("#chatMessagesWrapper");
|
|
98999
99125
|
if (!initChat)
|
|
@@ -99010,7 +99136,7 @@ ${LEARN_MORE_LABEL}
|
|
|
99010
99136
|
chatName: title,
|
|
99011
99137
|
chatEl: initChat,
|
|
99012
99138
|
width: chatWidth2,
|
|
99013
|
-
projectId
|
|
99139
|
+
projectId,
|
|
99014
99140
|
environment: getEnvironment(),
|
|
99015
99141
|
requestIds: textChatMessages?.length > 0 ? textChatMessages.filter((m) => m.type === "response" /* Response */).map((m) => getMsgReqId(m)) : [],
|
|
99016
99142
|
headContent: customHeadContent
|