@nine-lab/nine-mu 0.1.338 β†’ 0.1.340

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 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, _renderer2, _ExceptionHook_instances, 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, _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.337"}/dist/css/nine-mu.css";
17540
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/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.337"}/dist/css/nine-mu.css";
43790
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/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.337"}/dist/css/nine-mu.css";
43930
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/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.337"}/dist/css/nine-mu.css";
44039
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/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.337"}/dist/css/nine-mu.css";
44369
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/dist/css/nine-mu.css";
44370
44370
  ${customImport}
44371
44371
  </style>
44372
44372
 
@@ -44468,18 +44468,18 @@ class ExceptionHook extends HTMLElement {
44468
44468
  constructor() {
44469
44469
  super();
44470
44470
  __privateAdd(this, _ExceptionHook_instances);
44471
- // πŸ’‘ [핡심] λΉ„κ³΅κ°œ μΈμŠ€ν„΄μŠ€ ν•„λ“œλŠ” 클래슀 μ΅œμƒλ‹¨μ— λ¨Όμ € μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€.
44472
44471
  __privateAdd(this, _lastPath, window.location.pathname);
44473
44472
  __privateAdd(this, _hasError, false);
44474
44473
  __privateAdd(this, _cssPath, "/css/nine-exception-hook.css");
44474
+ __privateAdd(this, _oldOnError, null);
44475
44475
  __privateAdd(this, _renderer2, () => {
44476
- const customImport = nine.cssPath ? `@import "${nine.cssPath}/nine-mu.css";` : "";
44476
+ const customImport = nine$1.cssPath ? `@import "${nine$1.cssPath}/nine-mu.css";` : "";
44477
44477
  this.shadowRoot.innerHTML = `
44478
- <style>
44479
- @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.337"}/dist/css/nine-mu.css";
44480
- ${customImport}
44481
- </style>
44482
-
44478
+ <style>
44479
+ @import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${"0.1.339"}/dist/css/nine-mu.css";
44480
+ ${customImport}
44481
+ </style>
44482
+
44483
44483
  <div class="nine-hook-core">
44484
44484
  <slot></slot>
44485
44485
  </div>
@@ -44488,24 +44488,38 @@ class ExceptionHook extends HTMLElement {
44488
44488
  });
44489
44489
  __privateAdd(this, _handleRuntimeError, (event) => {
44490
44490
  var _a2, _b;
44491
- if (__privateGet(this, _hasError)) return;
44491
+ trace.log("🚨 [nine-exception-hook] window.addEventListener('error') λ¦¬μŠ€λ„ˆ 포착!!", event);
44492
+ if (__privateGet(this, _hasError)) {
44493
+ trace.log("⚠️ [nine-exception-hook] 이미 μ—λŸ¬ 화면이 ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄ 이벀트 λ¦¬μŠ€λ„ˆ 패슀");
44494
+ return;
44495
+ }
44492
44496
  const errorMessage = ((_a2 = event.error) == null ? void 0 : _a2.message) || event.message || String(event);
44493
44497
  const errorStack = ((_b = event.error) == null ? void 0 : _b.stack) || "No stack trace available";
44494
- if (errorMessage) {
44498
+ if (errorMessage && errorMessage !== "Script error.") {
44499
+ trace.log("🎯 [nine-exception-hook] 정상적인 μ—λŸ¬ λ©”μ‹œμ§€ 확인 -> μ—λŸ¬ λ³΄λ“œ 좜λ ₯ μ‹œλ„", { errorMessage });
44495
44500
  __privateMethod(this, _ExceptionHook_instances, renderError_fn).call(this, errorMessage, errorStack);
44501
+ } else {
44502
+ trace.log("⚠️ [nine-exception-hook] 'Script error.' μ΄κ±°λ‚˜ 빈 λ©”μ‹œμ§€λΌ λ¬΄μ‹œλ¨");
44496
44503
  }
44497
44504
  });
44498
44505
  __privateAdd(this, _handlePromiseError, (event) => {
44506
+ trace.log("🚨 [nine-exception-hook] unhandledrejection (Promise μ—λŸ¬) 포착!!", event);
44499
44507
  if (__privateGet(this, _hasError)) return;
44500
44508
  const reason = event.reason;
44501
44509
  const errorMessage = (reason == null ? void 0 : reason.message) || String(reason || "Unhandled Promise Rejection");
44502
44510
  const errorStack = (reason == null ? void 0 : reason.stack) || "No stack trace available";
44511
+ trace.log("🎯 [nine-exception-hook] Promise κ±°λΆ€ 확인 -> μ—λŸ¬ λ³΄λ“œ 좜λ ₯ μ‹œλ„");
44503
44512
  __privateMethod(this, _ExceptionHook_instances, renderError_fn).call(this, errorMessage, errorStack);
44504
44513
  });
44505
44514
  __privateAdd(this, _handleLocationChange, () => {
44506
44515
  setTimeout(() => {
44516
+ trace.log("πŸ“ [nine-exception-hook] μ£Όμ†Œ 이동 감지 체크", {
44517
+ hasError: __privateGet(this, _hasError),
44518
+ lastPath: __privateGet(this, _lastPath),
44519
+ currentPath: window.location.pathname
44520
+ });
44507
44521
  if (__privateGet(this, _hasError) && __privateGet(this, _lastPath) !== window.location.pathname) {
44508
- console.log("✨ [nine-exception-hook] Shadow DOM λ‚΄λΆ€ μ˜ˆμ™Έ μ²­μ†Œ 및 정상 볡ꡬ");
44522
+ trace.log("✨ [nine-exception-hook] Shadow DOM λ‚΄λΆ€ μ˜ˆμ™Έ μ²­μ†Œ 및 정상 볡ꡬ");
44509
44523
  __privateSet(this, _lastPath, window.location.pathname);
44510
44524
  __privateSet(this, _hasError, false);
44511
44525
  const exceptionBoard = this.shadowRoot.querySelector(".nine-exception-board");
@@ -44516,6 +44530,7 @@ class ExceptionHook extends HTMLElement {
44516
44530
  }, 10);
44517
44531
  });
44518
44532
  __privateAdd(this, _sendToAiAction, async (errorMessage, errorStack) => {
44533
+ trace.log("πŸš€ [nine-exception-hook] AI μˆ˜μ • μš”μ²­ λ²„νŠΌ 클릭됨");
44519
44534
  const btn = this.shadowRoot.querySelector(".nine-ai-btn");
44520
44535
  const footer = this.shadowRoot.querySelector(".nine-error-footer");
44521
44536
  if (!btn) return;
@@ -44524,6 +44539,7 @@ class ExceptionHook extends HTMLElement {
44524
44539
  btn.classList.add("loading");
44525
44540
  try {
44526
44541
  if (window.triggerAutoRecovery) {
44542
+ trace.log("πŸ“‘ [nine-exception-hook] window.triggerAutoRecovery 호좜 μ‹€ν–‰");
44527
44543
  await window.triggerAutoRecovery({
44528
44544
  message: errorMessage,
44529
44545
  stack: errorStack || "No stack trace available",
@@ -44535,35 +44551,64 @@ class ExceptionHook extends HTMLElement {
44535
44551
  throw new Error("window.triggerAutoRecovery κ΄€μ œνƒ‘ 엔진이 λ‘œλ“œλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
44536
44552
  }
44537
44553
  } catch (err) {
44538
- console.error("❌ AI 전솑 μ‹€νŒ¨:", err);
44554
+ trace.error("❌ AI 전솑 μ‹€νŒ¨:", err);
44539
44555
  btn.disabled = false;
44540
44556
  btn.innerText = "❌ μž¬μ „μ†‘ μ‹œλ„";
44541
44557
  footer.innerHTML = `<span style="color: #E53E3E;">⚠️ 전솑 μ‹€νŒ¨: ${err.message}</span>`;
44542
44558
  }
44543
44559
  });
44544
44560
  this.attachShadow({ mode: "open" });
44561
+ trace.log("πŸ” [nine-exception-hook] μΈμŠ€ν„΄μŠ€ 생성됨");
44545
44562
  }
44546
- // src/components/exception/ExceptionHook.js λ‚΄λΆ€ μˆ˜μ •
44547
44563
  connectedCallback() {
44564
+ trace.log("πŸ” [nine-exception-hook] DOM에 마운트됨. 이벀트 λ¦¬μŠ€λ„ˆ 바인딩 μ‹œμž‘");
44548
44565
  __privateGet(this, _renderer2).call(this);
44549
44566
  __privateMethod(this, _ExceptionHook_instances, injectShadowStylesheet_fn).call(this);
44550
- window.addEventListener("error", __privateGet(this, _handleRuntimeError), true);
44567
+ __privateMethod(this, _ExceptionHook_instances, setupGlobalSniffer_fn).call(this);
44551
44568
  window.addEventListener("unhandledrejection", __privateGet(this, _handlePromiseError), true);
44552
44569
  window.addEventListener("popstate", __privateGet(this, _handleLocationChange));
44553
44570
  document.addEventListener("click", __privateGet(this, _handleLocationChange), true);
44554
44571
  }
44555
44572
  disconnectedCallback() {
44573
+ trace.log("πŸ” [nine-exception-hook] DOMμ—μ„œ μ–Έλ§ˆμš΄νŠΈλ¨. λ¦¬μŠ€λ„ˆ ν•΄μ œ");
44556
44574
  window.removeEventListener("error", __privateGet(this, _handleRuntimeError), true);
44557
44575
  window.removeEventListener("unhandledrejection", __privateGet(this, _handlePromiseError), true);
44558
44576
  window.removeEventListener("popstate", __privateGet(this, _handleLocationChange));
44559
44577
  document.removeEventListener("click", __privateGet(this, _handleLocationChange), true);
44578
+ if (window.onerror === __privateGet(this, _handleRuntimeError) || __privateGet(this, _oldOnError)) {
44579
+ window.onerror = __privateGet(this, _oldOnError);
44580
+ trace.log("πŸ” [nine-exception-hook] window.onerror 볡ꡬ μ™„λ£Œ");
44581
+ }
44560
44582
  }
44561
44583
  }
44562
44584
  _lastPath = new WeakMap();
44563
44585
  _hasError = new WeakMap();
44564
44586
  _cssPath = new WeakMap();
44565
- _renderer2 = new WeakMap();
44587
+ _oldOnError = new WeakMap();
44566
44588
  _ExceptionHook_instances = new WeakSet();
44589
+ setupGlobalSniffer_fn = function() {
44590
+ window.addEventListener("error", __privateGet(this, _handleRuntimeError), true);
44591
+ trace.log("πŸ” [nine-exception-hook] window.addEventListener('error') 등둝 μ™„λ£Œ");
44592
+ __privateSet(this, _oldOnError, window.onerror);
44593
+ window.onerror = (message, source, lineno, colno, error) => {
44594
+ trace.log("🚨 [nine-exception-hook] μ›μ‹œ window.onerror 포착!!", { message, source, lineno, error });
44595
+ if (!__privateGet(this, _hasError)) {
44596
+ trace.log("🎯 [nine-exception-hook] ν˜„μž¬ μ—λŸ¬ μƒνƒœ μ—†μŒ -> μ—λŸ¬ λ³΄λ“œ 좜λ ₯ μ‹œλ„");
44597
+ const errorMessage = (error == null ? void 0 : error.message) || message || "μ•Œ 수 μ—†λŠ” λŸ°νƒ€μž„ μ˜ˆμ™Έ";
44598
+ const errorStack = (error == null ? void 0 : error.stack) || `${source}:${lineno}:${colno}`;
44599
+ __privateMethod(this, _ExceptionHook_instances, renderError_fn).call(this, errorMessage, errorStack);
44600
+ } else {
44601
+ trace.log("⚠️ [nine-exception-hook] 이미 μ—λŸ¬ 화면이 ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄ μ›μ‹œ onerror 패슀");
44602
+ }
44603
+ if (__privateGet(this, _oldOnError)) {
44604
+ trace.log("πŸ”„ [nine-exception-hook] 기쑴에 λ“±λ‘λ˜μ–΄ 있던 λ‹€λ₯Έ onerror μ—”μ§„μœΌλ‘œ μœ„μž„");
44605
+ return __privateGet(this, _oldOnError).call(this, message, source, lineno, colno, error);
44606
+ }
44607
+ return false;
44608
+ };
44609
+ trace.log("πŸ” [nine-exception-hook] μ›μ‹œ window.onerror κ°€λ‘œμ±„κΈ°(Chaining) μ™„λ£Œ");
44610
+ };
44611
+ _renderer2 = new WeakMap();
44567
44612
  injectShadowStylesheet_fn = function() {
44568
44613
  if (this.shadowRoot.querySelector(`link[href="${__privateGet(this, _cssPath)}"]`)) return;
44569
44614
  const link = document.createElement("link");
@@ -44576,37 +44621,46 @@ _handlePromiseError = new WeakMap();
44576
44621
  _handleLocationChange = new WeakMap();
44577
44622
  _sendToAiAction = new WeakMap();
44578
44623
  renderError_fn = function(errorMessage, errorStack) {
44579
- if (__privateGet(this, _hasError)) return;
44580
- __privateSet(this, _hasError, true);
44624
+ trace.log("🎨 [nine-exception-hook] #renderError() μ‹€ν–‰ μ‹œμž‘. UI μ „ν™˜ μ§„ν–‰");
44581
44625
  const coreContainer = this.shadowRoot.querySelector(".nine-hook-core");
44582
- if (coreContainer) coreContainer.style.display = "none";
44626
+ if (coreContainer) {
44627
+ coreContainer.style.display = "none";
44628
+ trace.log("🎨 [nine-exception-hook] <slot> λ³Έλ¬Έ μ˜μ—­ μ»¨ν…Œμ΄λ„ˆ μˆ¨κΉ€ (display: none)");
44629
+ } else {
44630
+ trace.error("❌ [nine-exception-hook] .nine-hook-core μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.");
44631
+ }
44583
44632
  const exceptionBoard = this.shadowRoot.querySelector(".nine-exception-board");
44584
- if (!exceptionBoard) return;
44633
+ if (!exceptionBoard) {
44634
+ trace.error("❌ [nine-exception-hook] .nine-exception-board μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.");
44635
+ return;
44636
+ }
44585
44637
  const errorHTML = `
44586
- <div class="nine-error-container">
44587
- <h3 class="nine-error-title">⚠️ μ‹œμŠ€ν…œ μ˜ˆμ™Έ 감지 (${this.tagName.toLowerCase()})</h3>
44588
- <p class="nine-error-label">[μ—λŸ¬ 원인 둜그]:</p>
44589
- <pre class="nine-error-log">${errorMessage}</pre>
44590
-
44591
- <div class="nine-action-area" style="margin-top: 20px; display: flex; align-items: center; gap: 15px;">
44592
- <button class="nine-ai-btn">πŸ€– AIμ—κ²Œ μ†ŒμŠ€μ½”λ“œ μˆ˜μ • μš”μ²­</button>
44593
- <div class="nine-error-footer">
44594
- λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ AIκ°€ 둜그 및 μ»΄ν¬λ„ŒνŠΈ 맡을 μ—­μΆ”μ ν•˜μ—¬ μˆ˜μ •μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
44595
- </div>
44596
- </div>
44597
- </div>
44598
- `;
44638
+ <div class="nine-error-container">
44639
+ <h3 class="nine-error-title">⚠️ μ‹œμŠ€ν…œ μ˜ˆμ™Έ 감지 (${this.tagName.toLowerCase()})</h3>
44640
+ <p class="nine-error-label">[μ—λŸ¬ 원인 둜그]:</p>
44641
+ <pre class="nine-error-log">${errorMessage}</pre>
44642
+
44643
+ <div class="nine-action-area" style="margin-top: 20px; display: flex; align-items: center; gap: 15px;">
44644
+ <button class="nine-ai-btn">πŸ€– AIμ—κ²Œ μ†ŒμŠ€μ½”λ“œ μˆ˜μ • μš”μ²­</button>
44645
+ <div class="nine-error-footer">
44646
+ λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ AIκ°€ 둜그 및 μ»΄ν¬λ„ŒνŠΈ 맡을 μ—­μΆ”μ ν•˜μ—¬ μˆ˜μ •μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
44647
+ </div>
44648
+ </div>
44649
+ </div>
44650
+ `;
44599
44651
  exceptionBoard.innerHTML = errorHTML;
44652
+ trace.log("🎨 [nine-exception-hook] Shadow DOM에 μ—λŸ¬ UI μ‚½μž… μ™„λ£Œ");
44600
44653
  const aiBtn = this.shadowRoot.querySelector(".nine-ai-btn");
44601
44654
  if (aiBtn) {
44602
44655
  aiBtn.addEventListener("click", () => __privateGet(this, _sendToAiAction).call(this, errorMessage, errorStack));
44656
+ trace.log("🎨 [nine-exception-hook] AI μš”μ²­ λ²„νŠΌ 이벀트 λ¦¬μŠ€λ„ˆ 바인딩 성곡");
44603
44657
  }
44604
44658
  };
44605
44659
  if (!customElements.get("nine-exception-hook")) {
44606
44660
  customElements.define("nine-exception-hook", ExceptionHook);
44607
44661
  }
44608
44662
  const NineMu = {
44609
- version: "0.1.337",
44663
+ version: "0.1.339",
44610
44664
  init: (config2) => {
44611
44665
  trace$1.log("πŸ› οΈ Nine-Mu Engine initialized", config2);
44612
44666
  }