mito-ai 0.1.28__py3-none-any.whl → 0.1.29__py3-none-any.whl
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.
Potentially problematic release.
This version of mito-ai might be problematic. Click here for more details.
- mito_ai/_version.py +1 -1
- mito_ai/openai_client.py +22 -6
- mito_ai/tests/providers/test_azure.py +635 -0
- mito_ai/utils/anthropic_utils.py +3 -0
- mito_ai/utils/open_ai_utils.py +0 -4
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +1 -1
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/package.json +2 -2
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig +1 -1
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.114d2b34bc18a45df338.js → mito_ai-0.1.29.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.8fc39671fbc9ba62e74b.js +219 -72
- mito_ai-0.1.29.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.8fc39671fbc9ba62e74b.js.map +1 -0
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.92c6411fdc4075df549b.js → mito_ai-0.1.29.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.6bf957d24d60237bb287.js +3 -3
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.92c6411fdc4075df549b.js.map → mito_ai-0.1.29.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.6bf957d24d60237bb287.js.map +1 -1
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.29.dist-info}/METADATA +1 -1
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.29.dist-info}/RECORD +28 -27
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.114d2b34bc18a45df338.js.map +0 -1
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.06083e515de4862df010.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.06083e515de4862df010.js.map +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_html2canvas_dist_html2canvas_js.ea47e8c8c906197f8d19.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_html2canvas_dist_html2canvas_js.ea47e8c8c906197f8d19.js.map +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.29.dist-info}/WHEEL +0 -0
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.29.dist-info}/entry_points.txt +0 -0
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.29.dist-info}/licenses/LICENSE +0 -0
{mito_ai-0.1.28.data → mito_ai-0.1.29.data}/data/share/jupyter/labextensions/mito_ai/package.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mito_ai",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.29",
|
|
4
4
|
"description": "AI chat for JupyterLab",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"outputDir": "mito_ai/labextension",
|
|
139
139
|
"schemaDir": "schema",
|
|
140
140
|
"_build": {
|
|
141
|
-
"load": "static/remoteEntry.
|
|
141
|
+
"load": "static/remoteEntry.6bf957d24d60237bb287.js",
|
|
142
142
|
"extension": "./extension",
|
|
143
143
|
"style": "./style"
|
|
144
144
|
}
|
|
@@ -510,6 +510,67 @@ const AlertBlock = ({ content, mitoAIConnectionErrorType }) => {
|
|
|
510
510
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertBlock);
|
|
511
511
|
|
|
512
512
|
|
|
513
|
+
/***/ }),
|
|
514
|
+
|
|
515
|
+
/***/ "./lib/Extensions/AiChat/ChatMessage/AssistantCodeBlock.js":
|
|
516
|
+
/*!*****************************************************************!*\
|
|
517
|
+
!*** ./lib/Extensions/AiChat/ChatMessage/AssistantCodeBlock.js ***!
|
|
518
|
+
\*****************************************************************/
|
|
519
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
520
|
+
|
|
521
|
+
__webpack_require__.r(__webpack_exports__);
|
|
522
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
523
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
524
|
+
/* harmony export */ });
|
|
525
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
526
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
527
|
+
/* harmony import */ var _PythonCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./PythonCode */ "./lib/Extensions/AiChat/ChatMessage/PythonCode.js");
|
|
528
|
+
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/classNames */ "./lib/utils/classNames.js");
|
|
529
|
+
/* harmony import */ var _style_CodeBlock_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/CodeBlock.css */ "./style/CodeBlock.css");
|
|
530
|
+
/* harmony import */ var _icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../icons/ExpandIcon */ "./lib/icons/ExpandIcon.js");
|
|
531
|
+
/* harmony import */ var _icons_CodeIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../icons/CodeIcon */ "./lib/icons/CodeIcon.js");
|
|
532
|
+
/* harmony import */ var _CodeBlockToolbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CodeBlockToolbar */ "./lib/Extensions/AiChat/ChatMessage/CodeBlockToolbar.js");
|
|
533
|
+
/*
|
|
534
|
+
* Copyright (c) Saga Inc.
|
|
535
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
536
|
+
*/
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
const AssistantCodeBlock = ({ code, isCodeComplete, renderMimeRegistry, previewAICode, acceptAICode, rejectAICode, isLastAiMessage, codeReviewStatus, agentModeEnabled }) => {
|
|
545
|
+
const [isCodeExpanded, setIsCodeExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
546
|
+
// Memoize calculations
|
|
547
|
+
const lineCount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => code.split('\n').length - 2, [code]);
|
|
548
|
+
const shouldShowToolbar = isLastAiMessage || isCodeComplete;
|
|
549
|
+
if (agentModeEnabled) {
|
|
550
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_2__.classNames)('code-block-container', {
|
|
551
|
+
'agent-mode': true,
|
|
552
|
+
'agent-mode-collapsed': !isCodeExpanded
|
|
553
|
+
}) },
|
|
554
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { onClick: () => setIsCodeExpanded(!isCodeExpanded), className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_2__.classNames)('agent-mode-toggle', {
|
|
555
|
+
expanded: isCodeExpanded
|
|
556
|
+
}) },
|
|
557
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: "agent-mode-toggle-content" },
|
|
558
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_CodeIcon__WEBPACK_IMPORTED_MODULE_3__["default"], null),
|
|
559
|
+
"Generated ",
|
|
560
|
+
lineCount,
|
|
561
|
+
" lines of code"),
|
|
562
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_4__["default"], { isExpanded: isCodeExpanded })),
|
|
563
|
+
isCodeExpanded && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PythonCode__WEBPACK_IMPORTED_MODULE_5__["default"], { code: code, renderMimeRegistry: renderMimeRegistry }))));
|
|
564
|
+
}
|
|
565
|
+
else {
|
|
566
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "code-block-container" },
|
|
567
|
+
shouldShowToolbar && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_CodeBlockToolbar__WEBPACK_IMPORTED_MODULE_6__["default"], { code: code, isLastAiMessage: isLastAiMessage, codeReviewStatus: codeReviewStatus, onPreview: previewAICode, onAccept: acceptAICode, onReject: rejectAICode })),
|
|
568
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PythonCode__WEBPACK_IMPORTED_MODULE_5__["default"], { code: code, renderMimeRegistry: renderMimeRegistry })));
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AssistantCodeBlock);
|
|
572
|
+
|
|
573
|
+
|
|
513
574
|
/***/ }),
|
|
514
575
|
|
|
515
576
|
/***/ "./lib/Extensions/AiChat/ChatMessage/ChatDropdown.js":
|
|
@@ -874,20 +935,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
874
935
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
875
936
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
876
937
|
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/classNames */ "./lib/utils/classNames.js");
|
|
877
|
-
/* harmony import */ var
|
|
938
|
+
/* harmony import */ var _UserCodeBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./UserCodeBlock */ "./lib/Extensions/AiChat/ChatMessage/UserCodeBlock.js");
|
|
939
|
+
/* harmony import */ var _AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./AssistantCodeBlock */ "./lib/Extensions/AiChat/ChatMessage/AssistantCodeBlock.js");
|
|
878
940
|
/* harmony import */ var _AlertBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AlertBlock */ "./lib/Extensions/AiChat/ChatMessage/AlertBlock.js");
|
|
879
|
-
/* harmony import */ var
|
|
941
|
+
/* harmony import */ var _MarkdownBlock__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./MarkdownBlock */ "./lib/Extensions/AiChat/ChatMessage/MarkdownBlock.js");
|
|
880
942
|
/* harmony import */ var _utils_strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/strings */ "./lib/utils/strings.js");
|
|
881
|
-
/* harmony import */ var
|
|
943
|
+
/* harmony import */ var _icons_Pencil__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../icons/Pencil */ "./lib/icons/Pencil.js");
|
|
882
944
|
/* harmony import */ var _ChatInput__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ChatInput */ "./lib/Extensions/AiChat/ChatMessage/ChatInput.js");
|
|
883
|
-
/* harmony import */ var
|
|
884
|
-
/* harmony import */ var
|
|
885
|
-
/* harmony import */ var
|
|
886
|
-
/* harmony import */ var
|
|
887
|
-
/* harmony import */ var
|
|
945
|
+
/* harmony import */ var _components_TextAndIconButton__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../components/TextAndIconButton */ "./lib/components/TextAndIconButton.js");
|
|
946
|
+
/* harmony import */ var _icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../icons/PlayButtonIcon */ "./lib/icons/PlayButtonIcon.js");
|
|
947
|
+
/* harmony import */ var _icons_CopyIcon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../icons/CopyIcon */ "./lib/icons/CopyIcon.js");
|
|
948
|
+
/* harmony import */ var _utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../utils/copyToClipboard */ "./lib/utils/copyToClipboard.js");
|
|
949
|
+
/* harmony import */ var _components_TextButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../components/TextButton */ "./lib/components/TextButton.js");
|
|
888
950
|
/* harmony import */ var _style_ChatMessage_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/ChatMessage.css */ "./style/ChatMessage.css");
|
|
889
951
|
/* harmony import */ var _style_MarkdownMessage_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../style/MarkdownMessage.css */ "./style/MarkdownMessage.css");
|
|
890
|
-
/* harmony import */ var
|
|
952
|
+
/* harmony import */ var _components_AgentToolComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../components/AgentToolComponents/GetCellOutputToolUI */ "./lib/components/AgentToolComponents/GetCellOutputToolUI.js");
|
|
891
953
|
/*
|
|
892
954
|
* Copyright (c) Saga Inc.
|
|
893
955
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -908,7 +970,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
908
970
|
|
|
909
971
|
|
|
910
972
|
|
|
911
|
-
|
|
973
|
+
|
|
974
|
+
const ChatMessage = ({ message, messageType, promptType, agentResponse, messageIndex, mitoAIConnectionError, mitoAIConnectionErrorType, notebookTracker, renderMimeRegistry, isLastAiMessage, isLastMessage, operatingSystem, previewAICode, acceptAICode, rejectAICode, onUpdateMessage, contextManager, codeReviewStatus, setNextSteps, agentModeEnabled, }) => {
|
|
912
975
|
const [isEditing, setIsEditing] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
913
976
|
if (message.role !== 'user' && message.role !== 'assistant') {
|
|
914
977
|
return null;
|
|
@@ -958,15 +1021,15 @@ const ChatMessage = ({ message, messageType, promptType, agentResponse, messageI
|
|
|
958
1021
|
// An empty code will look like this '```python ```'
|
|
959
1022
|
if (messagePart.length > 14) {
|
|
960
1023
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
961
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1024
|
+
message.role === 'user' ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_UserCodeBlock__WEBPACK_IMPORTED_MODULE_7__["default"], { code: messagePart, renderMimeRegistry: renderMimeRegistry, agentModeEnabled: agentModeEnabled })) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_8__["default"], { code: messagePart, isCodeComplete: isCodeComplete, renderMimeRegistry: renderMimeRegistry, previewAICode: previewAICode, acceptAICode: acceptAICode, rejectAICode: rejectAICode, isLastAiMessage: isLastAiMessage, codeReviewStatus: codeReviewStatus, agentModeEnabled: agentModeEnabled })),
|
|
962
1025
|
isLastAiMessage && isCodeComplete && codeReviewStatus === 'chatPreview' &&
|
|
963
1026
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-message-buttons' },
|
|
964
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
965
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1027
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextAndIconButton__WEBPACK_IMPORTED_MODULE_9__["default"], { onClick: () => { previewAICode(); }, text: 'Overwrite Active Cell', icon: _icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_10__["default"], title: 'Write the Ai generated code to the active cell in the jupyter notebook, replacing the current code.', variant: 'gray', width: 'fit-contents' }),
|
|
1028
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextAndIconButton__WEBPACK_IMPORTED_MODULE_9__["default"], { onClick: () => { void (0,_utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_11__["default"])(messagePart); }, text: 'Copy', icon: _icons_CopyIcon__WEBPACK_IMPORTED_MODULE_12__["default"], title: 'Copy the Ai generated code to your clipboard', variant: 'gray', width: 'fit-contents' })),
|
|
966
1029
|
isLastAiMessage && isCodeComplete && codeReviewStatus === 'codeCellPreview' &&
|
|
967
1030
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-message-buttons' },
|
|
968
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
969
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1031
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextButton__WEBPACK_IMPORTED_MODULE_13__["default"], { onClick: () => { acceptAICode(); }, text: `Accept code ${operatingSystem === 'mac' ? '⌘Y' : 'Ctrl+Y'}`, title: 'Accept the Ai generated code', variant: 'green', width: 'fit-contents' }),
|
|
1032
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextButton__WEBPACK_IMPORTED_MODULE_13__["default"], { onClick: () => { rejectAICode(); }, text: `Reject code ${operatingSystem === 'mac' ? '⌘U' : 'Ctrl+U'}`, title: 'Reject the Ai generated code and revert to the previous version of the code cell', variant: 'red', width: 'fit-contents' }))));
|
|
970
1033
|
}
|
|
971
1034
|
else {
|
|
972
1035
|
// Return null for empty code blocks
|
|
@@ -982,15 +1045,15 @@ const ChatMessage = ({ message, messageType, promptType, agentResponse, messageI
|
|
|
982
1045
|
}
|
|
983
1046
|
} }, message.role === 'user' && promptType === 'smartDebug' ? (
|
|
984
1047
|
/* Use a pre tag to preserve the newline and indentation of the error message */
|
|
985
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("pre", { className: "chat-taskpane-smart-debug-error-message" }, messagePart)) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1048
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("pre", { className: "chat-taskpane-smart-debug-error-message" }, messagePart)) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_MarkdownBlock__WEBPACK_IMPORTED_MODULE_14__["default"], { markdown: messagePart, renderMimeRegistry: renderMimeRegistry, notebookTracker: notebookTracker })))));
|
|
986
1049
|
}
|
|
987
1050
|
}),
|
|
988
1051
|
editable &&
|
|
989
1052
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "message-action-buttons" },
|
|
990
1053
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "message-start-editing-button", onClick: handleEditClick, title: "Edit message" },
|
|
991
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1054
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_Pencil__WEBPACK_IMPORTED_MODULE_15__["default"], null))),
|
|
992
1055
|
(agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.type) === 'get_cell_output' &&
|
|
993
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1056
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_AgentToolComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_16__["default"], null)));
|
|
994
1057
|
};
|
|
995
1058
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ChatMessage);
|
|
996
1059
|
|
|
@@ -1045,10 +1108,10 @@ const Citation = ({ citationIndex, cellId, line, notebookTracker }) => {
|
|
|
1045
1108
|
|
|
1046
1109
|
/***/ }),
|
|
1047
1110
|
|
|
1048
|
-
/***/ "./lib/Extensions/AiChat/ChatMessage/
|
|
1049
|
-
|
|
1050
|
-
!*** ./lib/Extensions/AiChat/ChatMessage/
|
|
1051
|
-
|
|
1111
|
+
/***/ "./lib/Extensions/AiChat/ChatMessage/CodeBlockToolbar.js":
|
|
1112
|
+
/*!***************************************************************!*\
|
|
1113
|
+
!*** ./lib/Extensions/AiChat/ChatMessage/CodeBlockToolbar.js ***!
|
|
1114
|
+
\***************************************************************/
|
|
1052
1115
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1053
1116
|
|
|
1054
1117
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -1057,15 +1120,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1057
1120
|
/* harmony export */ });
|
|
1058
1121
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
1059
1122
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1060
|
-
/* harmony import */ var
|
|
1061
|
-
/* harmony import */ var
|
|
1062
|
-
/* harmony import */ var
|
|
1063
|
-
/* harmony import */ var
|
|
1064
|
-
/* harmony import */ var
|
|
1065
|
-
/* harmony import */ var
|
|
1066
|
-
/* harmony import */ var _icons_AcceptIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../icons/AcceptIcon */ "./lib/icons/AcceptIcon.js");
|
|
1067
|
-
/* harmony import */ var _icons_RejectIcon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../icons/RejectIcon */ "./lib/icons/RejectIcon.js");
|
|
1068
|
-
/* harmony import */ var _icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../icons/ExpandIcon */ "./lib/icons/ExpandIcon.js");
|
|
1123
|
+
/* harmony import */ var _utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../utils/copyToClipboard */ "./lib/utils/copyToClipboard.js");
|
|
1124
|
+
/* harmony import */ var _components_IconButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../components/IconButton */ "./lib/components/IconButton.js");
|
|
1125
|
+
/* harmony import */ var _icons_CopyIcon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../icons/CopyIcon */ "./lib/icons/CopyIcon.js");
|
|
1126
|
+
/* harmony import */ var _icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../icons/PlayButtonIcon */ "./lib/icons/PlayButtonIcon.js");
|
|
1127
|
+
/* harmony import */ var _icons_AcceptIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../icons/AcceptIcon */ "./lib/icons/AcceptIcon.js");
|
|
1128
|
+
/* harmony import */ var _icons_RejectIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../icons/RejectIcon */ "./lib/icons/RejectIcon.js");
|
|
1069
1129
|
/*
|
|
1070
1130
|
* Copyright (c) Saga Inc.
|
|
1071
1131
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -1077,44 +1137,15 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1077
1137
|
|
|
1078
1138
|
|
|
1079
1139
|
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
const isCodeExpandable = code.split('\n').length > numCodePreviewLines;
|
|
1088
|
-
const previewCode = code.split('\n').slice(0, numCodePreviewLines).join('\n');
|
|
1089
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-container active-cell-code-block', onClick: () => setIsExpanded(!isExpanded), style: { cursor: 'pointer' } },
|
|
1090
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PythonCode__WEBPACK_IMPORTED_MODULE_2__["default"], { code: isExpanded ? code : previewCode, renderMimeRegistry: renderMimeRegistry }),
|
|
1091
|
-
isCodeExpandable && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-expand-button', title: isExpanded ? "Collapse" : "Expand", onClick: (e) => {
|
|
1092
|
-
e.stopPropagation();
|
|
1093
|
-
setIsExpanded(!isExpanded);
|
|
1094
|
-
} },
|
|
1095
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { isExpanded: isExpanded })))));
|
|
1096
|
-
}
|
|
1097
|
-
if (role === 'assistant') {
|
|
1098
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-container' },
|
|
1099
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
1100
|
-
isLastAiMessage && isCodeComplete &&
|
|
1101
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-toolbar' },
|
|
1102
|
-
codeReviewStatus === 'chatPreview' &&
|
|
1103
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_4__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_5__["default"], null), title: "Overwrite Active Cell", onClick: () => { previewAICode(); } }),
|
|
1104
|
-
codeReviewStatus === 'codeCellPreview' &&
|
|
1105
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_4__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_AcceptIcon__WEBPACK_IMPORTED_MODULE_6__["default"], null), title: "Accept AI Generated Code", onClick: () => { acceptAICode(); }, style: { color: 'var(--green-700)' } }),
|
|
1106
|
-
codeReviewStatus === 'codeCellPreview' &&
|
|
1107
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_4__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_RejectIcon__WEBPACK_IMPORTED_MODULE_7__["default"], null), title: "Reject AI Generated Code", onClick: () => { rejectAICode(); }, style: { color: 'var(--red-700)' } }),
|
|
1108
|
-
codeReviewStatus !== 'codeCellPreview' &&
|
|
1109
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_4__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_CopyIcon__WEBPACK_IMPORTED_MODULE_8__["default"], null), title: "Copy", onClick: () => { void (0,_utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_9__["default"])(code); } })),
|
|
1110
|
-
!isLastAiMessage &&
|
|
1111
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-toolbar' },
|
|
1112
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_4__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_CopyIcon__WEBPACK_IMPORTED_MODULE_8__["default"], null), title: "Copy", onClick: () => { void (0,_utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_9__["default"])(code); } }))),
|
|
1113
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PythonCode__WEBPACK_IMPORTED_MODULE_2__["default"], { code: code, renderMimeRegistry: renderMimeRegistry })));
|
|
1114
|
-
}
|
|
1115
|
-
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null);
|
|
1140
|
+
const CodeBlockToolbar = ({ code, isLastAiMessage = false, codeReviewStatus, onPreview, onAccept, onReject }) => {
|
|
1141
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-toolbar' },
|
|
1142
|
+
isLastAiMessage && codeReviewStatus === 'chatPreview' && onPreview && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_1__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_2__["default"], null), title: "Overwrite Active Cell", onClick: onPreview })),
|
|
1143
|
+
isLastAiMessage && codeReviewStatus === 'codeCellPreview' && onAccept && onReject && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
1144
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_1__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_AcceptIcon__WEBPACK_IMPORTED_MODULE_3__["default"], null), title: "Accept AI Generated Code", onClick: onAccept, style: { color: 'var(--green-700)' } }),
|
|
1145
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_1__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_RejectIcon__WEBPACK_IMPORTED_MODULE_4__["default"], null), title: "Reject AI Generated Code", onClick: onReject, style: { color: 'var(--red-700)' } }))),
|
|
1146
|
+
(!isLastAiMessage || codeReviewStatus !== 'codeCellPreview') && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_IconButton__WEBPACK_IMPORTED_MODULE_1__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_CopyIcon__WEBPACK_IMPORTED_MODULE_5__["default"], null), title: "Copy", onClick: () => { void (0,_utils_copyToClipboard__WEBPACK_IMPORTED_MODULE_6__["default"])(code); } }))));
|
|
1116
1147
|
};
|
|
1117
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
1148
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CodeBlockToolbar);
|
|
1118
1149
|
|
|
1119
1150
|
|
|
1120
1151
|
/***/ }),
|
|
@@ -1447,6 +1478,47 @@ const ScrollableSuggestions = ({ onSelectSuggestion }) => {
|
|
|
1447
1478
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ScrollableSuggestions);
|
|
1448
1479
|
|
|
1449
1480
|
|
|
1481
|
+
/***/ }),
|
|
1482
|
+
|
|
1483
|
+
/***/ "./lib/Extensions/AiChat/ChatMessage/UserCodeBlock.js":
|
|
1484
|
+
/*!************************************************************!*\
|
|
1485
|
+
!*** ./lib/Extensions/AiChat/ChatMessage/UserCodeBlock.js ***!
|
|
1486
|
+
\************************************************************/
|
|
1487
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1488
|
+
|
|
1489
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1490
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1491
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1492
|
+
/* harmony export */ });
|
|
1493
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
1494
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1495
|
+
/* harmony import */ var _PythonCode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PythonCode */ "./lib/Extensions/AiChat/ChatMessage/PythonCode.js");
|
|
1496
|
+
/* harmony import */ var _style_CodeBlock_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/CodeBlock.css */ "./style/CodeBlock.css");
|
|
1497
|
+
/* harmony import */ var _icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../icons/ExpandIcon */ "./lib/icons/ExpandIcon.js");
|
|
1498
|
+
/*
|
|
1499
|
+
* Copyright (c) Saga Inc.
|
|
1500
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
1501
|
+
*/
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
|
|
1505
|
+
|
|
1506
|
+
const UserCodeBlock = ({ code, renderMimeRegistry, agentModeEnabled }) => {
|
|
1507
|
+
const [isExpanded, setIsExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1508
|
+
const numCodePreviewLines = 5;
|
|
1509
|
+
const isCodeExpandable = code.split('\n').length > numCodePreviewLines;
|
|
1510
|
+
const previewCode = code.split('\n').slice(0, numCodePreviewLines).join('\n');
|
|
1511
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: `code-block-container active-cell-code-block ${agentModeEnabled ? 'agent-mode' : ''}`, onClick: () => setIsExpanded(!isExpanded), style: { cursor: 'pointer' } },
|
|
1512
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_PythonCode__WEBPACK_IMPORTED_MODULE_2__["default"], { code: isExpanded ? code : previewCode, renderMimeRegistry: renderMimeRegistry }),
|
|
1513
|
+
isCodeExpandable && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'code-block-expand-button', title: isExpanded ? "Collapse" : "Expand", onClick: (e) => {
|
|
1514
|
+
e.stopPropagation();
|
|
1515
|
+
setIsExpanded(!isExpanded);
|
|
1516
|
+
} },
|
|
1517
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_ExpandIcon__WEBPACK_IMPORTED_MODULE_3__["default"], { isExpanded: isExpanded })))));
|
|
1518
|
+
};
|
|
1519
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserCodeBlock);
|
|
1520
|
+
|
|
1521
|
+
|
|
1450
1522
|
/***/ }),
|
|
1451
1523
|
|
|
1452
1524
|
/***/ "./lib/Extensions/AiChat/ChatTaskpane.js":
|
|
@@ -2481,7 +2553,7 @@ const ChatTaskpane = ({ notebookTracker, renderMimeRegistry, contextManager, app
|
|
|
2481
2553
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement("span", { style: { display: 'block', textAlign: 'center', fontWeight: 'bold', fontSize: '20px', marginBottom: '15px' } }, "Data Copilot"),
|
|
2482
2554
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CTACarousel__WEBPACK_IMPORTED_MODULE_25__["default"], { app: app })),
|
|
2483
2555
|
displayOptimizedChatHistory.map((displayOptimizedChat, index) => {
|
|
2484
|
-
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_ChatMessage_ChatMessage__WEBPACK_IMPORTED_MODULE_26__["default"], { key: index, message: displayOptimizedChat.message, promptType: displayOptimizedChat.promptType, messageType: displayOptimizedChat.type, agentResponse: displayOptimizedChat.agentResponse, codeCellID: displayOptimizedChat.codeCellID, mitoAIConnectionError: displayOptimizedChat.type === 'connection error', mitoAIConnectionErrorType: displayOptimizedChat.mitoAIConnectionErrorType || null, messageIndex: index, notebookTracker: notebookTracker, renderMimeRegistry: renderMimeRegistry, app: app, isLastAiMessage: index === lastAIMessagesIndex, isLastMessage: index === displayOptimizedChatHistory.length - 1, operatingSystem: operatingSystem, previewAICode: previewAICodeToActiveCell, acceptAICode: acceptAICode, rejectAICode: rejectAICode, onUpdateMessage: handleUpdateMessage, contextManager: contextManager, codeReviewStatus: codeReviewStatus, setNextSteps: setNextSteps }));
|
|
2556
|
+
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_ChatMessage_ChatMessage__WEBPACK_IMPORTED_MODULE_26__["default"], { key: index, message: displayOptimizedChat.message, promptType: displayOptimizedChat.promptType, messageType: displayOptimizedChat.type, agentResponse: displayOptimizedChat.agentResponse, codeCellID: displayOptimizedChat.codeCellID, mitoAIConnectionError: displayOptimizedChat.type === 'connection error', mitoAIConnectionErrorType: displayOptimizedChat.mitoAIConnectionErrorType || null, messageIndex: index, notebookTracker: notebookTracker, renderMimeRegistry: renderMimeRegistry, app: app, isLastAiMessage: index === lastAIMessagesIndex, isLastMessage: index === displayOptimizedChatHistory.length - 1, operatingSystem: operatingSystem, previewAICode: previewAICodeToActiveCell, acceptAICode: acceptAICode, rejectAICode: rejectAICode, onUpdateMessage: handleUpdateMessage, contextManager: contextManager, codeReviewStatus: codeReviewStatus, setNextSteps: setNextSteps, agentModeEnabled: agentModeEnabled }));
|
|
2485
2557
|
}).filter(message => message !== null),
|
|
2486
2558
|
loadingAIResponse &&
|
|
2487
2559
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { className: "chat-loading-message" },
|
|
@@ -6439,6 +6511,31 @@ const AcceptIcon = () => (react__WEBPACK_IMPORTED_MODULE_0___default().createEle
|
|
|
6439
6511
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AcceptIcon);
|
|
6440
6512
|
|
|
6441
6513
|
|
|
6514
|
+
/***/ }),
|
|
6515
|
+
|
|
6516
|
+
/***/ "./lib/icons/CodeIcon.js":
|
|
6517
|
+
/*!*******************************!*\
|
|
6518
|
+
!*** ./lib/icons/CodeIcon.js ***!
|
|
6519
|
+
\*******************************/
|
|
6520
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6521
|
+
|
|
6522
|
+
__webpack_require__.r(__webpack_exports__);
|
|
6523
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6524
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
6525
|
+
/* harmony export */ });
|
|
6526
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6527
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6528
|
+
/*
|
|
6529
|
+
* Copyright (c) Saga Inc.
|
|
6530
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
6531
|
+
*/
|
|
6532
|
+
|
|
6533
|
+
const CodeIcon = () => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { width: "14", height: "14", viewBox: "0 0 20 14", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
6534
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("g", { fill: "currentColor" },
|
|
6535
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { d: "M12.3162 0.0513449C12.8027 0.213518 13.0817 0.713391 12.9792 1.20347L12.9487 1.31624L8.94868 13.3162C8.77403 13.8402 8.20773 14.1233 7.68378 13.9487C7.19726 13.7865 6.91835 13.2866 7.02082 12.7966L7.05134 12.6838L11.0513 0.683791C11.226 0.159848 11.7923 -0.123303 12.3162 0.0513449ZM5.79999 3.40001C6.10587 3.80785 6.05312 4.37331 5.69568 4.71852L5.59998 4.8L2.667 7.00001L5.59998 9.20003C6.00782 9.50591 6.1155 10.0635 5.86902 10.495L5.79999 10.6C5.49411 11.0079 4.9365 11.1155 4.50501 10.869L4.40003 10.8L0.40003 7.8C-0.0977483 7.42667 -0.130987 6.7049 0.30042 6.28511L0.40003 6.20003L4.40003 3.20003C4.84186 2.86866 5.46862 2.95818 5.79999 3.40001ZM15.495 3.131L15.6 3.20003L19.6 6.20003C20.0978 6.57336 20.131 7.29513 19.6996 7.71492L19.6 7.8L15.6 10.8C15.1582 11.1314 14.5314 11.0418 14.2 10.6C13.8941 10.1922 13.9469 9.62672 14.3043 9.28151L14.4 9.20003L17.333 7.00001L14.4 4.8C13.9922 4.49412 13.8845 3.93654 14.131 3.50505L14.2 3.40001C14.5059 2.99217 15.0635 2.88452 15.495 3.131Z" }))));
|
|
6536
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CodeIcon);
|
|
6537
|
+
|
|
6538
|
+
|
|
6442
6539
|
/***/ }),
|
|
6443
6540
|
|
|
6444
6541
|
/***/ "./lib/icons/CopyIcon.js":
|
|
@@ -8632,6 +8729,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8632
8729
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8633
8730
|
/* harmony export */ waitForNotebookReady: () => (/* binding */ waitForNotebookReady)
|
|
8634
8731
|
/* harmony export */ });
|
|
8732
|
+
/*
|
|
8733
|
+
* Copyright (c) Saga Inc.
|
|
8734
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
8735
|
+
*/
|
|
8635
8736
|
/*
|
|
8636
8737
|
Wait for the notebook to be ready and attached.
|
|
8637
8738
|
This is used to wait for the notebook to be ready before sending the first message.
|
|
@@ -8644,7 +8745,7 @@ const waitForNotebookReady = async (notebookTracker) => {
|
|
|
8644
8745
|
}
|
|
8645
8746
|
// Wait for notebook to be ready and attached
|
|
8646
8747
|
await notebook.context.ready;
|
|
8647
|
-
// Wait
|
|
8748
|
+
// Wait for attachment
|
|
8648
8749
|
if (!notebook.content.isAttached) {
|
|
8649
8750
|
await new Promise(resolve => {
|
|
8650
8751
|
const checkAttached = () => {
|
|
@@ -8658,6 +8759,25 @@ const waitForNotebookReady = async (notebookTracker) => {
|
|
|
8658
8759
|
checkAttached();
|
|
8659
8760
|
});
|
|
8660
8761
|
}
|
|
8762
|
+
// Wait for all cells to be created and ready
|
|
8763
|
+
await new Promise(resolve => {
|
|
8764
|
+
const checkCellsReady = () => {
|
|
8765
|
+
const cells = notebook.content.widgets;
|
|
8766
|
+
// In large notebooks, not all of the cells are attatched I think.
|
|
8767
|
+
// So instead we just wait for any cell to be ready and then give it
|
|
8768
|
+
// another 500ms to be ready.
|
|
8769
|
+
const anyCellReady = cells.some(cell => cell.isAttached && cell.model);
|
|
8770
|
+
if (anyCellReady && cells.length > 0) {
|
|
8771
|
+
resolve();
|
|
8772
|
+
}
|
|
8773
|
+
else {
|
|
8774
|
+
setTimeout(checkCellsReady, 100);
|
|
8775
|
+
}
|
|
8776
|
+
};
|
|
8777
|
+
checkCellsReady();
|
|
8778
|
+
});
|
|
8779
|
+
// Small buffer for final initialization
|
|
8780
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
8661
8781
|
};
|
|
8662
8782
|
|
|
8663
8783
|
|
|
@@ -10112,9 +10232,36 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10112
10232
|
background-color: transparent;
|
|
10113
10233
|
}
|
|
10114
10234
|
|
|
10235
|
+
.agent-mode-toggle {
|
|
10236
|
+
cursor: pointer;
|
|
10237
|
+
padding: 10px;
|
|
10238
|
+
color: var(--jp-ui-font-color2);
|
|
10239
|
+
display: flex;
|
|
10240
|
+
justify-content: space-between;
|
|
10241
|
+
align-items: center;
|
|
10242
|
+
border: 1px solid var(--jp-ui-font-color2);
|
|
10243
|
+
border-radius: 5px;
|
|
10244
|
+
}
|
|
10245
|
+
|
|
10246
|
+
.agent-mode-toggle-content {
|
|
10247
|
+
display: flex;
|
|
10248
|
+
align-items: center;
|
|
10249
|
+
gap: 10px;
|
|
10250
|
+
}
|
|
10251
|
+
|
|
10252
|
+
.agent-mode-toggle.expanded {
|
|
10253
|
+
border: none;
|
|
10254
|
+
border-bottom: 1px solid var(--grey-300);
|
|
10255
|
+
border-radius: 5px 5px 0 0;
|
|
10256
|
+
}
|
|
10257
|
+
|
|
10258
|
+
.agent-mode-collapsed {
|
|
10259
|
+
border: none;
|
|
10260
|
+
}
|
|
10261
|
+
|
|
10115
10262
|
|
|
10116
10263
|
|
|
10117
|
-
`, "",{"version":3,"sources":["webpack://./style/CodeBlock.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;;EAEd,8CAA8C;EAC9C,kBAAkB;EAClB,iCAAiC;EACjC,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;;EAEpB,WAAW;EACX,2DAA2D;EAC3D,wCAAwC;EACxC,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,0CAA0C;AAC5C;;AAEA;EACE,2DAA2D;EAC3D,YAAY;EACZ,sCAAsC;EACtC,kBAAkB;;EAElB,gBAAgB;EAChB,0CAA0C;AAC5C;;AAEA;EACE,8CAA8C;EAC9C,+CAA+C;AACjD;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,UAAU;EACV,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,cAAc;EACd,WAAW;EACX,8CAA8C;EAC9C,iCAAiC;EACjC,eAAe;AACjB;;AAEA;EACE,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,SAAS;AACX;;AAEA;EACE,6BAA6B;AAC/B","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.code-block-container {\n display: flex;\n flex-direction: column;\n position: relative;\n margin: 10px 0;\n\n background-color: var(--chat-background-color);\n border-radius: 4px;\n border: 1px solid var(--grey-300);\n overflow: hidden;\n}\n\n.code-content {\n width: 100%;\n overflow-x: auto;\n}\n\n.code-block-toolbar {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n\n width: 100%;\n background-color: var(--chat-user-message-background-color);\n border-bottom: 1px solid var(--grey-300);\n font-size: 0.8em;\n}\n\n.code-location {\n flex-grow: 1;\n margin-left: 5px;\n color: var(--chat-user-message-font-color);\n}\n\n.code-block-toolbar button {\n background-color: var(--chat-user-message-background-color);\n border: none;\n border-left: 1px solid var(--grey-300);\n border-radius: 0px;\n\n font-size: 0.8em;\n color: var(--chat-user-message-font-color);\n}\n\n.code-block-toolbar button:hover {\n background-color: var(--chat-background-color);\n color: var(--chat-assistant-message-font-color);\n}\n\n.active-cell-code-block {\n opacity: 0.7;\n}\n\n.active-cell-code-block:hover {\n opacity: 1;\n transition: 0.3s;\n}\n\n.code-block-expand-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px 0;\n width: 100%;\n background-color: var(--chat-background-color);\n transition: background-color 0.2s;\n cursor: pointer;\n}\n\n.code-block-expand-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.code-block-expand-button svg {\n display: block;\n margin: 0;\n}\n\n.code-block-expand-button .icon-button {\n background-color: transparent;\n}\n\n\n\n"],"sourceRoot":""}]);
|
|
10264
|
+
`, "",{"version":3,"sources":["webpack://./style/CodeBlock.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;;EAEd,8CAA8C;EAC9C,kBAAkB;EAClB,iCAAiC;EACjC,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,oBAAoB;;EAEpB,WAAW;EACX,2DAA2D;EAC3D,wCAAwC;EACxC,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,0CAA0C;AAC5C;;AAEA;EACE,2DAA2D;EAC3D,YAAY;EACZ,sCAAsC;EACtC,kBAAkB;;EAElB,gBAAgB;EAChB,0CAA0C;AAC5C;;AAEA;EACE,8CAA8C;EAC9C,+CAA+C;AACjD;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,UAAU;EACV,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,cAAc;EACd,WAAW;EACX,8CAA8C;EAC9C,iCAAiC;EACjC,eAAe;AACjB;;AAEA;EACE,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,SAAS;AACX;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,eAAe;EACf,aAAa;EACb,+BAA+B;EAC/B,aAAa;EACb,8BAA8B;EAC9B,mBAAmB;EACnB,0CAA0C;EAC1C,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;AACX;;AAEA;EACE,YAAY;EACZ,wCAAwC;EACxC,0BAA0B;AAC5B;;AAEA;EACE,YAAY;AACd","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.code-block-container {\n display: flex;\n flex-direction: column;\n position: relative;\n margin: 10px 0;\n\n background-color: var(--chat-background-color);\n border-radius: 4px;\n border: 1px solid var(--grey-300);\n overflow: hidden;\n}\n\n.code-content {\n width: 100%;\n overflow-x: auto;\n}\n\n.code-block-toolbar {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: end;\n\n width: 100%;\n background-color: var(--chat-user-message-background-color);\n border-bottom: 1px solid var(--grey-300);\n font-size: 0.8em;\n}\n\n.code-location {\n flex-grow: 1;\n margin-left: 5px;\n color: var(--chat-user-message-font-color);\n}\n\n.code-block-toolbar button {\n background-color: var(--chat-user-message-background-color);\n border: none;\n border-left: 1px solid var(--grey-300);\n border-radius: 0px;\n\n font-size: 0.8em;\n color: var(--chat-user-message-font-color);\n}\n\n.code-block-toolbar button:hover {\n background-color: var(--chat-background-color);\n color: var(--chat-assistant-message-font-color);\n}\n\n.active-cell-code-block {\n opacity: 0.7;\n}\n\n.active-cell-code-block:hover {\n opacity: 1;\n transition: 0.3s;\n}\n\n.code-block-expand-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px 0;\n width: 100%;\n background-color: var(--chat-background-color);\n transition: background-color 0.2s;\n cursor: pointer;\n}\n\n.code-block-expand-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.code-block-expand-button svg {\n display: block;\n margin: 0;\n}\n\n.code-block-expand-button .icon-button {\n background-color: transparent;\n}\n\n.agent-mode-toggle {\n cursor: pointer;\n padding: 10px;\n color: var(--jp-ui-font-color2);\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 1px solid var(--jp-ui-font-color2);\n border-radius: 5px;\n}\n\n.agent-mode-toggle-content {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.agent-mode-toggle.expanded {\n border: none;\n border-bottom: 1px solid var(--grey-300);\n border-radius: 5px 5px 0 0;\n}\n\n.agent-mode-collapsed {\n border: none;\n}\n\n\n\n"],"sourceRoot":""}]);
|
|
10118
10265
|
// Exports
|
|
10119
10266
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
10120
10267
|
|
|
@@ -13891,4 +14038,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
13891
14038
|
/***/ })
|
|
13892
14039
|
|
|
13893
14040
|
}]);
|
|
13894
|
-
//# sourceMappingURL=lib_index_js.
|
|
14041
|
+
//# sourceMappingURL=lib_index_js.8fc39671fbc9ba62e74b.js.map
|