@nine-lab/nine-mu 0.1.343 → 0.1.344
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nine-mu.js +50 -66
- package/dist/nine-mu.js.map +1 -1
- package/dist/nine-mu.umd.js +3 -3
- package/dist/nine-mu.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/exception/ExceptionHook.js +52 -63
package/dist/nine-mu.js
CHANGED
|
@@ -9,7 +9,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
|
|
|
9
9
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
10
10
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
11
11
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
12
|
-
var _owner, _collectedFiles, _NotificationHandler_instances, handleLoggingMessage_fn, _collectModifySource, _openDiffPopup, _openRouteDiffPopup, _generateSource, _generateMenu, _mcpClient, _onAction, _onStatus, _onMessage, _owner2, _routeUrl, _chatHistory, _notiHandler, _NineChatManager_instances, connect_fn, updateStatus_fn, callTool_fn, _getSourcePath, _service, _packageName, _routesPath, _connectorUrl, _manager, _config, _$nineChatMessage, _NineChat_instances, initInteractions_fn, initActions_fn, render_fn, _sourceGenHandler, _asisEditorView, _tobeEditorView, _asisEditorEl, _tobeEditorEl, _isDirty, _initialAsisSrc, _initialTobeSrc, _languageCompartment, _isScrollSyncActive, _initCodeMirror, _checkDirtyState, _setupScrollSync, _applyDiffDecorations, _dialog, _tabContainer, _fileList, _host, _NineDiffPopup_instances, renderScaffolding_fn, handleConfirmAll_fn, handleCancel_fn, _dialog2, _diffView, _asisBackup, _host2, _NineMenuDiffPopup_instances, render_fn2, handleConfirm_fn, handleCancel_fn2, _message, _data, _unique, _init, _message2, _init2, _progressData, _progressElements, _animationIntervals, _ProgressMessage_instances, updateCurrentActiveProgress_fn, renderProgress_fn, updateProgressItemVisuals_fn, startAnimation_fn, updateProgressItem_fn, _renderer, _init3, _lastPath, _hasError, _cssPath, _oldOnError, _ExceptionHook_instances, setupGlobalSniffer_fn, _renderer2, injectShadowStylesheet_fn, _handleRuntimeError, _handlePromiseError, _handleLocationChange, _sendToAiAction, renderError_fn;
|
|
12
|
+
var _owner, _collectedFiles, _NotificationHandler_instances, handleLoggingMessage_fn, _collectModifySource, _openDiffPopup, _openRouteDiffPopup, _generateSource, _generateMenu, _mcpClient, _onAction, _onStatus, _onMessage, _owner2, _routeUrl, _chatHistory, _notiHandler, _NineChatManager_instances, connect_fn, updateStatus_fn, callTool_fn, _getSourcePath, _service, _packageName, _routesPath, _connectorUrl, _manager, _config, _$nineChatMessage, _NineChat_instances, initInteractions_fn, initActions_fn, render_fn, _sourceGenHandler, _asisEditorView, _tobeEditorView, _asisEditorEl, _tobeEditorEl, _isDirty, _initialAsisSrc, _initialTobeSrc, _languageCompartment, _isScrollSyncActive, _initCodeMirror, _checkDirtyState, _setupScrollSync, _applyDiffDecorations, _dialog, _tabContainer, _fileList, _host, _NineDiffPopup_instances, renderScaffolding_fn, handleConfirmAll_fn, handleCancel_fn, _dialog2, _diffView, _asisBackup, _host2, _NineMenuDiffPopup_instances, render_fn2, handleConfirm_fn, handleCancel_fn2, _message, _data, _unique, _init, _message2, _init2, _progressData, _progressElements, _animationIntervals, _ProgressMessage_instances, updateCurrentActiveProgress_fn, renderProgress_fn, updateProgressItemVisuals_fn, startAnimation_fn, updateProgressItem_fn, _renderer, _init3, _lastPath, _hasError, _cssPath, _oldOnError, _ExceptionHook_instances, setupGlobalSniffer_fn, _renderer2, injectShadowStylesheet_fn, _handleRuntimeError, _handlePromiseError, _handleLocationChange, removeExternalOverlay_fn, _sendToAiAction, renderError_fn;
|
|
13
13
|
import { trace as trace$1, api, nine as nine$1 } from "@nine-lab/nine-util";
|
|
14
14
|
class Trace extends trace$1.constructor {
|
|
15
15
|
constructor() {
|
|
@@ -17537,7 +17537,7 @@ render_fn = function() {
|
|
|
17537
17537
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
17538
17538
|
this.shadowRoot.innerHTML = `
|
|
17539
17539
|
<style>
|
|
17540
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
17540
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
17541
17541
|
${customImport}
|
|
17542
17542
|
</style>
|
|
17543
17543
|
<div class="wrapper">
|
|
@@ -43787,7 +43787,7 @@ class NineDiff extends HTMLElement {
|
|
|
43787
43787
|
const customImport = nine.cssPath ? `@import "${nine.cssPath}/nine-mu.css";` : "";
|
|
43788
43788
|
this.shadowRoot.innerHTML = `
|
|
43789
43789
|
<style>
|
|
43790
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
43790
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
43791
43791
|
${customImport}
|
|
43792
43792
|
</style>
|
|
43793
43793
|
|
|
@@ -43927,7 +43927,7 @@ renderScaffolding_fn = function() {
|
|
|
43927
43927
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
43928
43928
|
this.shadowRoot.innerHTML = `
|
|
43929
43929
|
<style>
|
|
43930
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
43930
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
43931
43931
|
${customImport}
|
|
43932
43932
|
</style>
|
|
43933
43933
|
|
|
@@ -44036,7 +44036,7 @@ render_fn2 = function() {
|
|
|
44036
44036
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
44037
44037
|
this.shadowRoot.innerHTML = `
|
|
44038
44038
|
<style>
|
|
44039
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
44039
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
44040
44040
|
${customImport}
|
|
44041
44041
|
</style>
|
|
44042
44042
|
|
|
@@ -44366,7 +44366,7 @@ class ChatMessageBody extends HTMLElement {
|
|
|
44366
44366
|
const customImport = nine.cssPath ? `@import "${nine.cssPath}/nine-mu.css";` : "";
|
|
44367
44367
|
this.shadowRoot.innerHTML = `
|
|
44368
44368
|
<style>
|
|
44369
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
44369
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
44370
44370
|
${customImport}
|
|
44371
44371
|
</style>
|
|
44372
44372
|
|
|
@@ -44476,28 +44476,14 @@ class ExceptionHook extends HTMLElement {
|
|
|
44476
44476
|
const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
|
|
44477
44477
|
this.shadowRoot.innerHTML = `
|
|
44478
44478
|
<style>
|
|
44479
|
-
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.
|
|
44479
|
+
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.343"}/dist/css/nine-mu.css";
|
|
44480
44480
|
${customImport}
|
|
44481
|
-
|
|
44482
44481
|
:host {
|
|
44483
44482
|
display: block;
|
|
44484
44483
|
width: 100%;
|
|
44485
44484
|
height: 100%;
|
|
44486
44485
|
}
|
|
44487
|
-
/* 어떤 로딩 레이어가 돌고 있어도 뷰포트 기준 무조건 맨 앞(최상단)으로 빼버리는 절대 방어 클래스 */
|
|
44488
|
-
.nine-hook-full-overlay {
|
|
44489
|
-
position: fixed !important;
|
|
44490
|
-
top: 0 !important;
|
|
44491
|
-
left: 0 !important;
|
|
44492
|
-
width: 100vw !important;
|
|
44493
|
-
height: 100vh !important;
|
|
44494
|
-
box-sizing: border-box !important;
|
|
44495
|
-
background-color: #FFF5F5 !important;
|
|
44496
|
-
z-index: 99999999 !important;
|
|
44497
|
-
overflow: auto !important;
|
|
44498
|
-
}
|
|
44499
44486
|
</style>
|
|
44500
|
-
|
|
44501
44487
|
<div class="nine-hook-core" style="width: 100%; height: 100%;">
|
|
44502
44488
|
<slot></slot>
|
|
44503
44489
|
</div>
|
|
@@ -44507,17 +44493,11 @@ class ExceptionHook extends HTMLElement {
|
|
|
44507
44493
|
__privateAdd(this, _handleRuntimeError, (event) => {
|
|
44508
44494
|
var _a2, _b;
|
|
44509
44495
|
trace.log("🚨 [nine-exception-hook] window.addEventListener('error') 리스너 포착!!", event);
|
|
44510
|
-
if (__privateGet(this, _hasError))
|
|
44511
|
-
trace.log("⚠️ [nine-exception-hook] 이미 에러 화면이 활성화되어 있어 이벤트 리스너 패스");
|
|
44512
|
-
return;
|
|
44513
|
-
}
|
|
44496
|
+
if (__privateGet(this, _hasError)) return;
|
|
44514
44497
|
const errorMessage = ((_a2 = event.error) == null ? void 0 : _a2.message) || event.message || String(event);
|
|
44515
44498
|
const errorStack = ((_b = event.error) == null ? void 0 : _b.stack) || "No stack trace available";
|
|
44516
44499
|
if (errorMessage && errorMessage !== "Script error.") {
|
|
44517
|
-
trace.log("🎯 [nine-exception-hook] 정상적인 에러 메시지 확인 -> 에러 보드 출력 시도", { errorMessage });
|
|
44518
44500
|
__privateMethod(this, _ExceptionHook_instances, renderError_fn).call(this, errorMessage, errorStack);
|
|
44519
|
-
} else {
|
|
44520
|
-
trace.log("⚠️ [nine-exception-hook] 'Script error.' 이거나 빈 메시지라 무시됨");
|
|
44521
44501
|
}
|
|
44522
44502
|
});
|
|
44523
44503
|
__privateAdd(this, _handlePromiseError, (event) => {
|
|
@@ -44526,38 +44506,30 @@ class ExceptionHook extends HTMLElement {
|
|
|
44526
44506
|
const reason = event.reason;
|
|
44527
44507
|
const errorMessage = (reason == null ? void 0 : reason.message) || String(reason || "Unhandled Promise Rejection");
|
|
44528
44508
|
const errorStack = (reason == null ? void 0 : reason.stack) || "No stack trace available";
|
|
44529
|
-
trace.log("🎯 [nine-exception-hook] Promise 거부 확인 -> 에러 보드 출력 시도");
|
|
44530
44509
|
__privateMethod(this, _ExceptionHook_instances, renderError_fn).call(this, errorMessage, errorStack);
|
|
44531
44510
|
});
|
|
44532
44511
|
__privateAdd(this, _handleLocationChange, () => {
|
|
44533
44512
|
setTimeout(() => {
|
|
44534
|
-
trace.log("📍 [nine-exception-hook] 주소 이동 감지 체크", {
|
|
44535
|
-
hasError: __privateGet(this, _hasError),
|
|
44536
|
-
lastPath: __privateGet(this, _lastPath),
|
|
44537
|
-
currentPath: window.location.pathname
|
|
44538
|
-
});
|
|
44539
44513
|
if (__privateGet(this, _hasError) && __privateGet(this, _lastPath) !== window.location.pathname) {
|
|
44540
|
-
trace.log("✨ [nine-exception-hook] Shadow DOM 내부 예외 청소 및 정상 복구");
|
|
44514
|
+
trace.log("✨ [nine-exception-hook] Shadow DOM 및 글로벌 오버레이 내부 예외 청소 및 정상 복구");
|
|
44541
44515
|
__privateSet(this, _lastPath, window.location.pathname);
|
|
44542
44516
|
__privateSet(this, _hasError, false);
|
|
44543
|
-
|
|
44544
|
-
if (exceptionBoard) exceptionBoard.innerHTML = "";
|
|
44517
|
+
__privateMethod(this, _ExceptionHook_instances, removeExternalOverlay_fn).call(this);
|
|
44545
44518
|
const coreContainer = this.shadowRoot.querySelector(".nine-hook-core");
|
|
44546
44519
|
if (coreContainer) coreContainer.style.display = "";
|
|
44547
44520
|
}
|
|
44548
44521
|
}, 50);
|
|
44549
44522
|
});
|
|
44550
44523
|
__privateAdd(this, _sendToAiAction, async (errorMessage, errorStack) => {
|
|
44551
|
-
|
|
44552
|
-
const btn =
|
|
44553
|
-
const footer =
|
|
44524
|
+
const root = document.getElementById("nine-global-exception-container") || this.shadowRoot;
|
|
44525
|
+
const btn = root.querySelector(".nine-ai-btn");
|
|
44526
|
+
const footer = root.querySelector(".nine-error-footer");
|
|
44554
44527
|
if (!btn) return;
|
|
44555
44528
|
btn.disabled = true;
|
|
44556
44529
|
btn.innerText = "⚡ AI 관제탑에 소스 분석 요청 중...";
|
|
44557
44530
|
btn.classList.add("loading");
|
|
44558
44531
|
try {
|
|
44559
44532
|
if (window.triggerAutoRecovery) {
|
|
44560
|
-
trace.log("📡 [nine-exception-hook] window.triggerAutoRecovery 호출 실행");
|
|
44561
44533
|
await window.triggerAutoRecovery({
|
|
44562
44534
|
message: errorMessage,
|
|
44563
44535
|
stack: errorStack || "No stack trace available",
|
|
@@ -44597,6 +44569,7 @@ class ExceptionHook extends HTMLElement {
|
|
|
44597
44569
|
window.onerror = __privateGet(this, _oldOnError);
|
|
44598
44570
|
trace.log("🔍 [nine-exception-hook] window.onerror 복구 완료");
|
|
44599
44571
|
}
|
|
44572
|
+
__privateMethod(this, _ExceptionHook_instances, removeExternalOverlay_fn).call(this);
|
|
44600
44573
|
}
|
|
44601
44574
|
}
|
|
44602
44575
|
_lastPath = new WeakMap();
|
|
@@ -44637,44 +44610,55 @@ injectShadowStylesheet_fn = function() {
|
|
|
44637
44610
|
_handleRuntimeError = new WeakMap();
|
|
44638
44611
|
_handlePromiseError = new WeakMap();
|
|
44639
44612
|
_handleLocationChange = new WeakMap();
|
|
44613
|
+
removeExternalOverlay_fn = function() {
|
|
44614
|
+
const target = document.getElementById("nine-global-exception-container");
|
|
44615
|
+
if (target) target.remove();
|
|
44616
|
+
};
|
|
44640
44617
|
_sendToAiAction = new WeakMap();
|
|
44641
44618
|
renderError_fn = function(errorMessage, errorStack) {
|
|
44642
44619
|
if (__privateGet(this, _hasError)) return;
|
|
44643
44620
|
__privateSet(this, _hasError, true);
|
|
44644
44621
|
setTimeout(() => {
|
|
44645
|
-
trace.log("🎨 [nine-exception-hook] 리액트 사이클 종료 후 에러
|
|
44622
|
+
trace.log("🎨 [nine-exception-hook] 리액트 사이클 종료 후 최상단 글로벌 에러 레이어 생성");
|
|
44646
44623
|
const coreContainer = this.shadowRoot.querySelector(".nine-hook-core");
|
|
44647
|
-
if (coreContainer)
|
|
44648
|
-
|
|
44649
|
-
|
|
44650
|
-
|
|
44651
|
-
|
|
44652
|
-
|
|
44653
|
-
|
|
44654
|
-
|
|
44655
|
-
|
|
44624
|
+
if (coreContainer) coreContainer.style.display = "none";
|
|
44625
|
+
__privateMethod(this, _ExceptionHook_instances, removeExternalOverlay_fn).call(this);
|
|
44626
|
+
const externalContainer = document.createElement("div");
|
|
44627
|
+
externalContainer.id = "nine-global-exception-container";
|
|
44628
|
+
Object.assign(externalContainer.style, {
|
|
44629
|
+
position: "fixed",
|
|
44630
|
+
top: "0",
|
|
44631
|
+
left: "0",
|
|
44632
|
+
width: "100vw",
|
|
44633
|
+
height: "100vh",
|
|
44634
|
+
backgroundColor: "#FFF5F5",
|
|
44635
|
+
zIndex: "2147483647",
|
|
44636
|
+
// 브라우저 표현 최대 z-index 값 부여
|
|
44637
|
+
overflow: "auto",
|
|
44638
|
+
boxSizing: "border-box",
|
|
44639
|
+
display: "block"
|
|
44640
|
+
});
|
|
44656
44641
|
const errorHTML = `
|
|
44657
|
-
<div class="nine-
|
|
44658
|
-
<
|
|
44659
|
-
|
|
44660
|
-
|
|
44661
|
-
<pre class="nine-error-log" style="background: #1A202C; color: #EDF2F7; padding: 20px; border-radius: 6px; overflow-x: auto; white-space: pre-wrap; font-family: monospace; font-size: 14px; line-height: 1.6; margin-bottom: 25px;">${errorMessage}
|
|
44642
|
+
<div class="nine-error-container" style="padding: 40px; max-width: 1200px; margin: 40px auto; font-family: sans-serif; background: white; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,0.08); text-align: left;">
|
|
44643
|
+
<h3 class="nine-error-title" style="color: #C53030; margin-top: 0; font-size: 22px; font-weight: 700; border-bottom: 2px solid #FED2D2; padding-bottom: 12px; font-family: sans-serif;">⚠️ 시스템 예외 감지 (nine-exception-hook)</h3>
|
|
44644
|
+
<p class="nine-error-label" style="font-weight: bold; margin: 20px 0 8px 0; color: #4A5568; font-size: 15px; font-family: sans-serif;">[에러 원인 로그]:</p>
|
|
44645
|
+
<pre class="nine-error-log" style="background: #1A202C; color: #EDF2F7; padding: 20px; border-radius: 6px; overflow-x: auto; white-space: pre-wrap; font-family: monospace; font-size: 14px; line-height: 1.6; margin-bottom: 25px;">${errorMessage}
|
|
44662
44646
|
|
|
44663
44647
|
[Stack Trace]
|
|
44664
44648
|
${errorStack}</pre>
|
|
44665
|
-
|
|
44666
|
-
|
|
44667
|
-
|
|
44668
|
-
|
|
44669
|
-
|
|
44670
|
-
</div>
|
|
44649
|
+
|
|
44650
|
+
<div class="nine-action-area" style="display: flex; align-items: center; gap: 20px; border-top: 1px solid #E2E8F0; padding-top: 20px;">
|
|
44651
|
+
<button class="nine-ai-btn" style="background: #3182CE; color: white; border: none; padding: 14px 28px; border-radius: 6px; font-weight: bold; cursor: pointer; font-size: 16px;">🤖 AI에게 소스코드 수정 요청</button>
|
|
44652
|
+
<div class="nine-error-footer" style="font-size: 14px; color: #718096; line-height: 1.4; font-family: sans-serif;">
|
|
44653
|
+
버튼을 누르면 AI가 로그 및 컴포넌트 맵을 역추적하여 수정을 시작합니다.
|
|
44671
44654
|
</div>
|
|
44672
44655
|
</div>
|
|
44673
44656
|
</div>
|
|
44674
44657
|
`;
|
|
44675
|
-
|
|
44676
|
-
|
|
44677
|
-
|
|
44658
|
+
externalContainer.innerHTML = errorHTML;
|
|
44659
|
+
document.body.appendChild(externalContainer);
|
|
44660
|
+
trace.log("🎨 [nine-exception-hook] 브라우저 Body 최상단 레이어 배정 성공");
|
|
44661
|
+
const aiBtn = externalContainer.querySelector(".nine-ai-btn");
|
|
44678
44662
|
if (aiBtn) {
|
|
44679
44663
|
aiBtn.addEventListener("click", () => __privateGet(this, _sendToAiAction).call(this, errorMessage, errorStack));
|
|
44680
44664
|
trace.log("🎨 [nine-exception-hook] AI 요청 버튼 이벤트 리스너 최종 바인딩 성공");
|
|
@@ -44685,7 +44669,7 @@ if (!customElements.get("nine-exception-hook")) {
|
|
|
44685
44669
|
customElements.define("nine-exception-hook", ExceptionHook);
|
|
44686
44670
|
}
|
|
44687
44671
|
const NineMu = {
|
|
44688
|
-
version: "0.1.
|
|
44672
|
+
version: "0.1.343",
|
|
44689
44673
|
init: (config2) => {
|
|
44690
44674
|
trace$1.log("🛠️ Nine-Mu Engine initialized", config2);
|
|
44691
44675
|
}
|