mito-ai 0.1.28__py3-none-any.whl → 0.1.30__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.30.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +1 -1
- {mito_ai-0.1.28.data → mito_ai-0.1.30.data}/data/share/jupyter/labextensions/mito_ai/package.json +2 -2
- {mito_ai-0.1.28.data → mito_ai-0.1.30.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.30.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.5c78616c48ffde147e05.js +225 -72
- mito_ai-0.1.30.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.5c78616c48ffde147e05.js.map +1 -0
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.92c6411fdc4075df549b.js → mito_ai-0.1.30.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.017b9e90c5534a403f4b.js +3 -3
- mito_ai-0.1.28.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.92c6411fdc4075df549b.js.map → mito_ai-0.1.30.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.017b9e90c5534a403f4b.js.map +1 -1
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.30.dist-info}/METADATA +1 -1
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.30.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.30.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.30.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.30.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
- {mito_ai-0.1.28.data → mito_ai-0.1.30.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.30.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.30.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.30.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.30.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.30.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.30.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.30.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.30.dist-info}/WHEEL +0 -0
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.30.dist-info}/entry_points.txt +0 -0
- {mito_ai-0.1.28.dist-info → mito_ai-0.1.30.dist-info}/licenses/LICENSE +0 -0
{mito_ai-0.1.28.data → mito_ai-0.1.30.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.30",
|
|
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.017b9e90c5534a403f4b.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":
|
|
@@ -2419,6 +2491,12 @@ const ChatTaskpane = ({ notebookTracker, renderMimeRegistry, contextManager, app
|
|
|
2419
2491
|
// TODO: Instead of casting, we should rely on the type system to make
|
|
2420
2492
|
// sure we're using the correct types!
|
|
2421
2493
|
const codeCell = cell;
|
|
2494
|
+
// Add safety check to ensure codeCell is a valid object before using it as WeakMap key
|
|
2495
|
+
// This sometimes happens when starting a chat from trymito.io
|
|
2496
|
+
if (!codeCell || typeof codeCell !== 'object') {
|
|
2497
|
+
console.warn('Mito AI: Invalid codeCell object, skipping code diff stripes');
|
|
2498
|
+
return;
|
|
2499
|
+
}
|
|
2422
2500
|
const cmEditor = codeCell.editor;
|
|
2423
2501
|
const editorView = cmEditor === null || cmEditor === void 0 ? void 0 : cmEditor.editor;
|
|
2424
2502
|
if (editorView) {
|
|
@@ -2481,7 +2559,7 @@ const ChatTaskpane = ({ notebookTracker, renderMimeRegistry, contextManager, app
|
|
|
2481
2559
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement("span", { style: { display: 'block', textAlign: 'center', fontWeight: 'bold', fontSize: '20px', marginBottom: '15px' } }, "Data Copilot"),
|
|
2482
2560
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_CTACarousel__WEBPACK_IMPORTED_MODULE_25__["default"], { app: app })),
|
|
2483
2561
|
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 }));
|
|
2562
|
+
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
2563
|
}).filter(message => message !== null),
|
|
2486
2564
|
loadingAIResponse &&
|
|
2487
2565
|
react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { className: "chat-loading-message" },
|
|
@@ -6439,6 +6517,31 @@ const AcceptIcon = () => (react__WEBPACK_IMPORTED_MODULE_0___default().createEle
|
|
|
6439
6517
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AcceptIcon);
|
|
6440
6518
|
|
|
6441
6519
|
|
|
6520
|
+
/***/ }),
|
|
6521
|
+
|
|
6522
|
+
/***/ "./lib/icons/CodeIcon.js":
|
|
6523
|
+
/*!*******************************!*\
|
|
6524
|
+
!*** ./lib/icons/CodeIcon.js ***!
|
|
6525
|
+
\*******************************/
|
|
6526
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6527
|
+
|
|
6528
|
+
__webpack_require__.r(__webpack_exports__);
|
|
6529
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
6530
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
6531
|
+
/* harmony export */ });
|
|
6532
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6533
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6534
|
+
/*
|
|
6535
|
+
* Copyright (c) Saga Inc.
|
|
6536
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
6537
|
+
*/
|
|
6538
|
+
|
|
6539
|
+
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" },
|
|
6540
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("g", { fill: "currentColor" },
|
|
6541
|
+
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" }))));
|
|
6542
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CodeIcon);
|
|
6543
|
+
|
|
6544
|
+
|
|
6442
6545
|
/***/ }),
|
|
6443
6546
|
|
|
6444
6547
|
/***/ "./lib/icons/CopyIcon.js":
|
|
@@ -8632,6 +8735,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8632
8735
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8633
8736
|
/* harmony export */ waitForNotebookReady: () => (/* binding */ waitForNotebookReady)
|
|
8634
8737
|
/* harmony export */ });
|
|
8738
|
+
/*
|
|
8739
|
+
* Copyright (c) Saga Inc.
|
|
8740
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
8741
|
+
*/
|
|
8635
8742
|
/*
|
|
8636
8743
|
Wait for the notebook to be ready and attached.
|
|
8637
8744
|
This is used to wait for the notebook to be ready before sending the first message.
|
|
@@ -8644,7 +8751,7 @@ const waitForNotebookReady = async (notebookTracker) => {
|
|
|
8644
8751
|
}
|
|
8645
8752
|
// Wait for notebook to be ready and attached
|
|
8646
8753
|
await notebook.context.ready;
|
|
8647
|
-
// Wait
|
|
8754
|
+
// Wait for attachment
|
|
8648
8755
|
if (!notebook.content.isAttached) {
|
|
8649
8756
|
await new Promise(resolve => {
|
|
8650
8757
|
const checkAttached = () => {
|
|
@@ -8658,6 +8765,25 @@ const waitForNotebookReady = async (notebookTracker) => {
|
|
|
8658
8765
|
checkAttached();
|
|
8659
8766
|
});
|
|
8660
8767
|
}
|
|
8768
|
+
// Wait for all cells to be created and ready
|
|
8769
|
+
await new Promise(resolve => {
|
|
8770
|
+
const checkCellsReady = () => {
|
|
8771
|
+
const cells = notebook.content.widgets;
|
|
8772
|
+
// In large notebooks, not all of the cells are attatched I think.
|
|
8773
|
+
// So instead we just wait for any cell to be ready and then give it
|
|
8774
|
+
// another 500ms to be ready.
|
|
8775
|
+
const anyCellReady = cells.some(cell => cell.isAttached && cell.model);
|
|
8776
|
+
if (anyCellReady && cells.length > 0) {
|
|
8777
|
+
resolve();
|
|
8778
|
+
}
|
|
8779
|
+
else {
|
|
8780
|
+
setTimeout(checkCellsReady, 100);
|
|
8781
|
+
}
|
|
8782
|
+
};
|
|
8783
|
+
checkCellsReady();
|
|
8784
|
+
});
|
|
8785
|
+
// Small buffer for final initialization
|
|
8786
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
8661
8787
|
};
|
|
8662
8788
|
|
|
8663
8789
|
|
|
@@ -10112,9 +10238,36 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10112
10238
|
background-color: transparent;
|
|
10113
10239
|
}
|
|
10114
10240
|
|
|
10241
|
+
.agent-mode-toggle {
|
|
10242
|
+
cursor: pointer;
|
|
10243
|
+
padding: 10px;
|
|
10244
|
+
color: var(--jp-ui-font-color2);
|
|
10245
|
+
display: flex;
|
|
10246
|
+
justify-content: space-between;
|
|
10247
|
+
align-items: center;
|
|
10248
|
+
border: 1px solid var(--jp-ui-font-color2);
|
|
10249
|
+
border-radius: 5px;
|
|
10250
|
+
}
|
|
10251
|
+
|
|
10252
|
+
.agent-mode-toggle-content {
|
|
10253
|
+
display: flex;
|
|
10254
|
+
align-items: center;
|
|
10255
|
+
gap: 10px;
|
|
10256
|
+
}
|
|
10257
|
+
|
|
10258
|
+
.agent-mode-toggle.expanded {
|
|
10259
|
+
border: none;
|
|
10260
|
+
border-bottom: 1px solid var(--grey-300);
|
|
10261
|
+
border-radius: 5px 5px 0 0;
|
|
10262
|
+
}
|
|
10263
|
+
|
|
10264
|
+
.agent-mode-collapsed {
|
|
10265
|
+
border: none;
|
|
10266
|
+
}
|
|
10267
|
+
|
|
10115
10268
|
|
|
10116
10269
|
|
|
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":""}]);
|
|
10270
|
+
`, "",{"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
10271
|
// Exports
|
|
10119
10272
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
10120
10273
|
|
|
@@ -13891,4 +14044,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
13891
14044
|
/***/ })
|
|
13892
14045
|
|
|
13893
14046
|
}]);
|
|
13894
|
-
//# sourceMappingURL=lib_index_js.
|
|
14047
|
+
//# sourceMappingURL=lib_index_js.5c78616c48ffde147e05.js.map
|