mutts 1.0.13 → 1.0.14

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.
Files changed (54) hide show
  1. package/BROWSER_ASYNC_POLYFILL.md +79 -0
  2. package/README.md +2 -2
  3. package/dist/browser.cjs +145 -26
  4. package/dist/browser.cjs.map +1 -1
  5. package/dist/browser.d.ts +42 -9
  6. package/dist/browser.dev.cjs +12 -2
  7. package/dist/browser.dev.cjs.map +1 -1
  8. package/dist/browser.dev.d.ts +2 -2
  9. package/dist/browser.dev.esm.js +2 -2
  10. package/dist/browser.esm.js +137 -28
  11. package/dist/browser.esm.js.map +1 -1
  12. package/dist/chunks/{index-CAdnMJev.cjs → index-BnTNC9eC.cjs} +158 -90
  13. package/dist/chunks/index-BnTNC9eC.cjs.map +1 -0
  14. package/dist/chunks/{index-XsYTUhHx.esm.js → index-CAWVZL7P.esm.js} +156 -88
  15. package/dist/chunks/index-CAWVZL7P.esm.js.map +1 -0
  16. package/dist/chunks/node-Df_5r_WA.cjs +187 -0
  17. package/dist/chunks/node-Df_5r_WA.cjs.map +1 -0
  18. package/dist/chunks/node-DuIduHw3.esm.js +185 -0
  19. package/dist/chunks/node-DuIduHw3.esm.js.map +1 -0
  20. package/dist/chunks/{proxy-BtmPFjSr.esm.js → proxy-C2lnvvbx.esm.js} +652 -222
  21. package/dist/chunks/proxy-C2lnvvbx.esm.js.map +1 -0
  22. package/dist/chunks/{proxy-DBHj3kGK.cjs → proxy-HA_QQnd5.cjs} +662 -223
  23. package/dist/chunks/proxy-HA_QQnd5.cjs.map +1 -0
  24. package/dist/debug.cjs +37 -10
  25. package/dist/debug.cjs.map +1 -1
  26. package/dist/debug.esm.js +37 -10
  27. package/dist/debug.esm.js.map +1 -1
  28. package/dist/mutts.umd.js +4086 -3469
  29. package/dist/mutts.umd.js.map +1 -1
  30. package/dist/mutts.umd.min.js +1 -1
  31. package/dist/mutts.umd.min.js.map +1 -1
  32. package/dist/node.cjs +13 -3
  33. package/dist/node.cjs.map +1 -1
  34. package/dist/node.d.ts +2 -2
  35. package/dist/node.dev.cjs +13 -3
  36. package/dist/node.dev.cjs.map +1 -1
  37. package/dist/node.dev.d.ts +2 -2
  38. package/dist/node.dev.esm.js +3 -3
  39. package/dist/node.esm.js +3 -3
  40. package/dist/types.d.ts +30 -15
  41. package/docs/ai/api-reference.md +3 -1
  42. package/docs/ai/manual.md +17 -5
  43. package/docs/reactive/advanced.md +169 -10
  44. package/docs/reactive/debugging.md +15 -13
  45. package/docs/reactive.md +2 -1
  46. package/package.json +12 -7
  47. package/dist/chunks/index-CAdnMJev.cjs.map +0 -1
  48. package/dist/chunks/index-XsYTUhHx.esm.js.map +0 -1
  49. package/dist/chunks/node-DrrphEPf.cjs +0 -98
  50. package/dist/chunks/node-DrrphEPf.cjs.map +0 -1
  51. package/dist/chunks/node-NEZvVo4M.esm.js +0 -96
  52. package/dist/chunks/node-NEZvVo4M.esm.js.map +0 -1
  53. package/dist/chunks/proxy-BtmPFjSr.esm.js.map +0 -1
  54. package/dist/chunks/proxy-DBHj3kGK.cjs.map +0 -1
package/dist/debug.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { J as getActiveEffect, ap as getRoot, ah as getEffectNode, aE as effectMarker, G as formatCleanupReason, a3 as reactive, y as effect, a4 as options, aF as setDebugHooks, aD as effectToReactiveObjects, aG as allProps } from './chunks/proxy-BtmPFjSr.esm.js';
1
+ import { J as getActiveEffect, az as getRoot, ar as getEffectNode, aO as effectMarker, G as formatCleanupReason, a9 as reactive, y as effect, U as isReactive, al as unwrap, aa as options, x as devPreset, aP as setDebugHooks, aN as effectToReactiveObjects, aQ as allProps } from './chunks/proxy-C2lnvvbx.esm.js';
2
2
 
3
3
  const lineageObjects = new WeakSet();
4
4
  const lineageSegmentObjects = new WeakSet();
@@ -728,13 +728,13 @@ function showLineagePanel() {
728
728
  panel.appendChild(content);
729
729
  document.body.appendChild(panel);
730
730
  // Reactivity: Update Visibility
731
- effect(() => {
731
+ effect `lineage-panel:visibility`(() => {
732
732
  panel.style.opacity = state.isVisible ? '1' : '0';
733
733
  panel.style.pointerEvents = state.isVisible ? 'all' : 'none';
734
734
  panel.style.transform = state.isVisible ? 'translateY(0)' : 'translateY(20px)';
735
735
  });
736
736
  // Reactivity: Update Content
737
- effect(() => {
737
+ effect `lineage-panel:content`(() => {
738
738
  if (state.activeLineage.length === 0) {
739
739
  content.innerHTML = `<div style="color: ${colors.placeholderText}; font-style: italic; text-align: center; margin-top: 20px;">No effect triggered yet...</div>`;
740
740
  return;
@@ -776,6 +776,35 @@ function showLineagePanel() {
776
776
  });
777
777
  }
778
778
 
779
+ function getColors() {
780
+ const isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches;
781
+ return {
782
+ accent: isDark ? '#b392f0' : '#6f42c1',
783
+ meta: isDark ? '#8b949e' : '#57606a',
784
+ };
785
+ }
786
+ function getReactiveTarget(obj) {
787
+ if (!obj || typeof obj !== 'object' || !isReactive(obj))
788
+ return undefined;
789
+ return unwrap(obj);
790
+ }
791
+ const reactiveFormatter = {
792
+ header: (obj) => {
793
+ const target = getReactiveTarget(obj);
794
+ if (!target)
795
+ return null;
796
+ const colors = getColors();
797
+ return [
798
+ 'span',
799
+ {},
800
+ ['span', { style: `color: ${colors.accent}; font-weight: bold;` }, 'Reactive<'],
801
+ ['object', { object: target }],
802
+ ['span', { style: `color: ${colors.accent}; font-weight: bold;` }, '>'],
803
+ ];
804
+ },
805
+ hasBody: () => false,
806
+ };
807
+
779
808
  /**
780
809
  * Debug utilities for the reactivity system
781
810
  * - Captures effect metadata (names, parent relationships)
@@ -1160,13 +1189,10 @@ function enableDevTools() {
1160
1189
  },
1161
1190
  };
1162
1191
  // @ts-ignore - devtoolsFormatters is a Chrome-specific array
1163
- if (globalScope.devtoolsFormatters) {
1164
- globalScope.devtoolsFormatters.push(lineageFormatter);
1165
- globalScope.devtoolsFormatters.push(reasonFormatter);
1166
- }
1167
- else {
1168
- globalScope.devtoolsFormatters = [lineageFormatter, reasonFormatter];
1169
- }
1192
+ if (globalScope.devtoolsFormatters)
1193
+ globalScope.devtoolsFormatters.push(lineageFormatter, reasonFormatter, reactiveFormatter);
1194
+ else
1195
+ globalScope.devtoolsFormatters = [lineageFormatter, reasonFormatter, reactiveFormatter];
1170
1196
  setDebugHooks({
1171
1197
  isDevtoolsEnabled: () => devtoolsEnabled,
1172
1198
  registerEffect: registerEffectForDebug,
@@ -1319,6 +1345,7 @@ function isDevelopmentMode() {
1319
1345
  }
1320
1346
  // Auto-enable devtools when the module loads in development
1321
1347
  if (isDevelopmentMode() && !devtoolsEnabled) {
1348
+ Object.assign(options, devPreset);
1322
1349
  enableDevTools();
1323
1350
  // Optional: Log that devtools were enabled (only in development)
1324
1351
  if (typeof console !== 'undefined' && console.info) {
@@ -1 +1 @@
1
- {"version":3,"file":"debug.esm.js","sources":["../debug/lineage.ts","../debug/reason.ts","../debug/lineage-panel.ts","../debug/debug.ts"],"sourcesContent":["import { getActiveEffect } from '../src/reactive/effect-context'\nimport { getEffectNode, getRoot } from '../src/reactive/registry'\nimport { type EffectTrigger, effectMarker } from '../src/reactive/types'\n\nexport interface StackFrame {\n\tfunctionName: string\n\tfileName: string\n\tlineNumber: number\n\tcolumnNumber: number\n\traw: string\n}\n\nexport interface LineageSegment {\n\teffect?: EffectTrigger\n\teffectName: string\n\tstack: StackFrame[]\n}\n\nexport interface LineageSignature {\n\teffect?: EffectTrigger\n\tstack?: unknown\n\tdigested?: LineageSegment[]\n\ttoString(): string\n}\n\nconst lineageObjects = new WeakSet<object>()\nconst lineageSegmentObjects = new WeakSet<object>()\nconst lineageFrameObjects = new WeakSet<object>()\n\ntype LineageSegmentView = {\n\tindex: number\n\ttotal: number\n\tsegment: LineageSegment\n}\n\ntype LineageFrameView = {\n\tframe: StackFrame\n}\n\nexport function isLineage(obj: any): obj is LineageSignature {\n\treturn !!obj && typeof obj === 'object' && lineageObjects.has(obj)\n}\n\nfunction isLineageSegmentView(obj: unknown): obj is LineageSegmentView {\n\treturn !!obj && typeof obj === 'object' && lineageSegmentObjects.has(obj)\n}\n\nfunction isLineageFrameView(obj: unknown): obj is LineageFrameView {\n\treturn !!obj && typeof obj === 'object' && lineageFrameObjects.has(obj)\n}\n\nlet internalFile: string | undefined\n\nfunction parseStackLine(line: string): StackFrame | null {\n\tconst nodeMatch = line.match(/^\\s*at\\s+(?:(.+?)\\s+\\()?(?:(.+?):(\\d+):(\\d+))\\)?$/)\n\tconst browserMatch = line.match(/(?:(.+?)(?:\\@|\\(?))?(?:(.+?):(\\d+):(\\d+))(?:\\@|\\)?)$/)\n\tconst match = nodeMatch || browserMatch\n\tif (!match) return null\n\n\tconst [, functionName = 'anonymous', fileName, lineNumber, columnNumber] = match\n\treturn {\n\t\tfunctionName: functionName.trim(),\n\t\tfileName,\n\t\tlineNumber: parseInt(lineNumber, 10),\n\t\tcolumnNumber: parseInt(columnNumber, 10),\n\t\traw: line.trim(),\n\t}\n}\n\nfunction extractRawStack(error: unknown = new Error()): string | undefined {\n\tif (typeof error === 'string') return error\n\tif (error && typeof error === 'object' && 'stack' in error) {\n\t\tconst stack = (error as { stack?: unknown }).stack\n\t\treturn typeof stack === 'string' ? stack : undefined\n\t}\n\treturn undefined\n}\n\nexport function getStackFrame(error?: unknown): string | undefined {\n\treturn extractRawStack(error)\n}\n\nfunction parseStackFrames(stack: unknown): StackFrame[] {\n\tconst rawStack = extractRawStack(stack)\n\tif (!rawStack) return []\n\n\tconst lines = rawStack.split('\\n')\n\tconst lastLine = lines.findIndex((line) => line.includes(effectMarker.enter))\n\tif (lastLine !== -1) lines.splice(lastLine)\n\tconst firstLine = lines.findLastIndex((line) => line.includes(effectMarker.leave))\n\tif (firstLine !== -1) lines.splice(0, firstLine + 1)\n\telse {\n\t\tif (!internalFile && lines[1]) {\n\t\t\tconst selfFrame = parseStackLine(lines[1])\n\t\t\tif (selfFrame) internalFile = selfFrame.fileName\n\t\t}\n\t\tlet l = 1\n\t\tfor (; l < lines.length; l++) {\n\t\t\tconst frame = parseStackLine(lines[l])\n\t\t\tif (!frame) continue\n\t\t\tconst isInternal =\n\t\t\t\t/Lineage$/.test(frame.functionName) ||\n\t\t\t\tframe.functionName === 'eval' ||\n\t\t\t\t[`getStackFrame`, `captureLineage`, `getLineage`, `digestLineage`, `formatLineage`].includes(\n\t\t\t\t\tframe.functionName\n\t\t\t\t)\n\t\t\tif (!isInternal) break\n\t\t}\n\t\tlines.splice(0, l)\n\t}\n\n\treturn filterNodeModules(lines.map(parseStackLine).filter((frame): frame is StackFrame => !!frame))\n}\n\nfunction filterNodeModules(frames: StackFrame[]): StackFrame[] {\n\tconst result: StackFrame[] = []\n\tlet inNodeModules = false\n\tfor (const frame of frames) {\n\t\tconst isNodeModule = frame.fileName.includes('/node_modules/')\n\t\tif (isNodeModule && !inNodeModules) {\n\t\t\tinNodeModules = true\n\t\t\tresult.push({\n\t\t\t\tfunctionName: '...node_modules...',\n\t\t\t\tfileName: '[filtered]',\n\t\t\t\tlineNumber: 0,\n\t\t\t\tcolumnNumber: 0,\n\t\t\t\traw: 'at ...node_modules...',\n\t\t\t})\n\t\t\tcontinue\n\t\t}\n\t\tif (!isNodeModule && inNodeModules) inNodeModules = false\n\t\tif (!isNodeModule) result.push(frame)\n\t}\n\treturn result\n}\n\nfunction formatEffectPreview(effect?: EffectTrigger): string {\n\tif (!effect) return 'root'\n\treturn `[effect ${effect.name || 'anonymous'}]`\n}\n\nfunction formatSegmentTitle(segment: LineageSegment, index: number, total: number): string {\n\tconst isLast = index === total - 1\n\tconst prefix = index === 0 ? '📍' : isLast ? '└─' : '├─'\n\treturn `${prefix} Effect: ${segment.effect?.name || 'root'}`\n}\n\nfunction wrapLineageSegmentView(segment: LineageSegment, index: number, total: number): LineageSegmentView {\n\tconst view = { index, total, segment }\n\tlineageSegmentObjects.add(view)\n\treturn view\n}\n\nfunction wrapLineageFrameView(frame: StackFrame): LineageFrameView {\n\tconst view = { frame }\n\tlineageFrameObjects.add(view)\n\treturn view\n}\n\nfunction formatLocationHref(frame: StackFrame): string {\n\treturn `${frame.fileName}:${frame.lineNumber}:${frame.columnNumber}`\n}\n\nfunction formatLocationLabel(frame: StackFrame): string {\n\tconst source = frame.fileName.split('?')[0]\n\tconst fileName = source.split('/').pop() || source\n\treturn `${fileName}:${frame.lineNumber}:${frame.columnNumber}`\n}\n\nfunction ensureSignature(signature: LineageSignature): LineageSignature {\n\tif (!isLineage(signature)) {\n\t\tObject.defineProperty(signature, 'toString', {\n\t\t\tvalue: () => formatLineage(signature),\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t})\n\t\tlineageObjects.add(signature)\n\t}\n\treturn signature\n}\n\nexport function getLineage(effect?: EffectTrigger, currentStack: unknown = new Error()): LineageSignature {\n\treturn ensureSignature({\n\t\teffect: effect ?? getActiveEffect(),\n\t\tstack: currentStack,\n\t\ttoString() {\n\t\t\treturn formatLineage(this)\n\t\t},\n\t})\n}\n\nexport function captureLineage(effect?: EffectTrigger, currentStack?: unknown): LineageSignature {\n\treturn getLineage(effect, currentStack ?? new Error())\n}\n\nexport function digestLineage(lineage: LineageSignature): LineageSegment[] {\n\tif (lineage.digested) return lineage.digested\n\n\tconst currentEffect = lineage.effect\n\tconst currentStack = parseStackFrames(lineage.stack)\n\tconst segments: LineageSegment[] = []\n\n\tif (!currentEffect) {\n\t\tlineage.digested = [\n\t\t\t{\n\t\t\t\teffect: undefined,\n\t\t\t\teffectName: 'root',\n\t\t\t\tstack: currentStack,\n\t\t\t},\n\t\t]\n\t\treturn lineage.digested\n\t}\n\n\tlet current: EffectTrigger | undefined = currentEffect\n\tlet lastStack = currentStack\n\twhile (current) {\n\t\tconst rootFn = getRoot(current)\n\t\tsegments.push({\n\t\t\teffect: rootFn,\n\t\t\teffectName: rootFn.name || 'anonymous',\n\t\t\tstack: lastStack,\n\t\t})\n\n\t\tconst node = getEffectNode(current)\n\t\tconst parent = node.parent\n\t\tconst creationStack = parseStackFrames(node.creationStack)\n\t\tif (parent) {\n\t\t\tcurrent = parent\n\t\t\tlastStack = creationStack\n\t\t} else if (node.creationStack) {\n\t\t\tsegments.push({\n\t\t\t\teffect: undefined,\n\t\t\t\teffectName: 'root',\n\t\t\t\tstack: creationStack,\n\t\t\t})\n\t\t\tbreak\n\t\t} else break\n\t}\n\n\tlineage.digested = segments\n\treturn segments\n}\n\nexport function formatLineage(lineage: LineageSignature | LineageSegment[]): string {\n\tconst segments = Array.isArray(lineage) ? lineage : digestLineage(lineage)\n\tconst result: string[] = []\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i]\n\t\tif (i > 0) {\n\t\t\tconst triggerEffect = segments[i - 1].effect\n\t\t\tconst triggerName = triggerEffect ? getRoot(triggerEffect).name || 'anonymous' : 'root'\n\t\t\tresult.push(` --- effect: ${triggerName} ---`)\n\t\t}\n\t\tfor (const frame of segment.stack) result.push(` ${frame.raw}`)\n\t}\n\treturn result.join('\\n')\n}\n\nexport function logLineage(lineage: LineageSignature | LineageSegment[]): void {\n\tconst segments = Array.isArray(lineage) ? lineage : digestLineage(lineage)\n\tconsole.groupCollapsed(`🦴 Effect Lineage Trace (${segments.length} segment${segments.length === 1 ? '' : 's'})`)\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i]\n\t\tconst isLast = i === segments.length - 1\n\t\tconst prefix = i === 0 ? '📍' : isLast ? '└─' : '├─'\n\t\tconsole.groupCollapsed(`${prefix} Effect:`, segment.effect ? segment.effect.name || 'anonymous' : 'root')\n\t\tfor (let j = 0; j < segment.stack.length; j++) {\n\t\t\tconst frame = segment.stack[j]\n\t\t\tconst isLastFrame = j === segment.stack.length - 1\n\t\t\tconst framePrefix = isLastFrame ? '└─' : '├─'\n\t\t\tif (frame.functionName === '...node_modules...') {\n\t\t\t\tconsole.log(`%c${framePrefix} ${frame.functionName}`, 'color: #888; font-style: italic;')\n\t\t\t} else {\n\t\t\t\tconst fnStyle =\n\t\t\t\t\tframe.functionName === 'anonymous' ? 'color: #888;' : 'color: #1a7f37; font-weight: bold;'\n\t\t\t\tconst fileStyle = 'color: #0550ae;'\n\t\t\t\tconsole.log(\n\t\t\t\t\t`%c${framePrefix} %c${frame.functionName} %c(${frame.fileName}:${frame.lineNumber}:${frame.columnNumber})`,\n\t\t\t\t\t'color: #888;',\n\t\t\t\t\tfnStyle,\n\t\t\t\t\tfileStyle\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tconsole.groupEnd()\n\t}\n\tconsole.groupEnd()\n}\n\nexport function captureNodeLineage(): void {\n\tlogLineage(getLineage())\n}\n\nexport const lineageFormatter = {\n\theader: (obj: any) => {\n\t\tif (isLineageSegmentView(obj)) {\n\t\t\tconst isDark =\n\t\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\t\tconst frameColor = isDark ? '#8b949e' : '#57606a'\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: bold;' },\n\t\t\t\tformatSegmentTitle(obj.segment, obj.index, obj.total),\n\t\t\t\t['span', { style: `color: ${frameColor}; margin-left: 6px; font-weight: normal;` }, formatEffectPreview(obj.segment.effect)],\n\t\t\t\t[\n\t\t\t\t\t'span',\n\t\t\t\t\t{ style: `color: ${frameColor}; margin-left: 6px; font-weight: normal;` },\n\t\t\t\t\t`${obj.segment.stack.length} frame${obj.segment.stack.length === 1 ? '' : 's'}`,\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (isLineageFrameView(obj)) {\n\t\t\tconst isDark =\n\t\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\t\tconst fnColor = obj.frame.functionName === 'anonymous' ? '#8b949e' : isDark ? '#ffffff' : '#222'\n\t\t\tconst linkColor = isDark ? '#58a6ff' : '#005cc5'\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'display: block;' },\n\t\t\t\t['span', { style: `color: ${fnColor}; font-weight: bold;` }, obj.frame.functionName],\n\t\t\t\t['span', { style: 'color: #8b949e; margin: 0 6px;' }, '@'],\n\t\t\t\t[\n\t\t\t\t\t'span',\n\t\t\t\t\t{ style: `color: ${linkColor}; text-decoration: underline;` },\n\t\t\t\t\tformatLocationHref(obj.frame),\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (!isLineage(obj)) return null\n\t\tconst isDark =\n\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst headerColor = isDark ? '#cd9d5d' : '#704214'\n\t\treturn [\n\t\t\t'span',\n\t\t\t{ style: `color: ${headerColor}; font-weight: bold;` },\n\t\t\tobj.digested\n\t\t\t\t? `🦴 Effect Lineage (${obj.digested.length} segments)`\n\t\t\t\t: '🦴 Effect Lineage (lazy)',\n\t\t]\n\t},\n\thasBody: (obj: any) => isLineage(obj) || isLineageSegmentView(obj),\n\tbody: (obj: any) => {\n\t\tif (isLineageSegmentView(obj)) {\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0;' },\n\t\t\t\t...obj.segment.stack.map((frame) => [\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'display: block; margin-top: 2px;' },\n\t\t\t\t\t['object', { object: wrapLineageFrameView(frame) }],\n\t\t\t\t]),\n\t\t\t]\n\t\t}\n\t\tif (!isLineage(obj)) return null\n\t\tconst segments = digestLineage(obj)\n\t\treturn [\n\t\t\t'div',\n\t\t\t{ style: 'padding: 5px; line-height: 1.4;' },\n\t\t\t...segments.map((segment, index) => [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'display: block; margin-top: 4px;' },\n\t\t\t\t['object', { object: wrapLineageSegmentView(segment, index, segments.length) }],\n\t\t\t]),\n\t\t]\n\t},\n}\n\nexport function wrapLineageForDebug(lineage?: LineageSignature) {\n\treturn ensureSignature(lineage ?? getLineage())\n}\n","import { formatCleanupReason, type CleanupReason } from '../src/reactive/types'\n\nconst reasonTypes = new Set(['propChange', 'invalidate', 'external', 'stopped', 'gc', 'lineage', 'error', 'multiple'])\nconst reasonCauseLists = new WeakSet<object>()\n\nfunction hasOwn(value: object, key: string) {\n\treturn Object.prototype.hasOwnProperty.call(value, key)\n}\n\nexport function isCleanupReason(value: unknown): value is CleanupReason {\n\tif (!value || typeof value !== 'object') return false\n\tif (!hasOwn(value, 'type')) return false\n\tconst type = (value as { type?: unknown }).type\n\tif (typeof type !== 'string' || !reasonTypes.has(type)) return false\n\tswitch (type) {\n\t\tcase 'propChange':\n\t\t\treturn Array.isArray((value as { triggers?: unknown }).triggers)\n\t\tcase 'invalidate':\n\t\t\treturn hasOwn(value, 'cause')\n\t\tcase 'lineage':\n\t\t\treturn hasOwn(value, 'parent')\n\t\tcase 'error':\n\t\t\treturn hasOwn(value, 'error')\n\t\tcase 'multiple':\n\t\t\treturn Array.isArray((value as { reasons?: unknown }).reasons)\n\t\tdefault:\n\t\t\treturn true\n\t}\n}\n\ntype ReasonCauseEntry = {\n\tlabel: string\n\ttouch?: unknown[]\n\tdependency?: unknown[]\n}\n\ntype ReasonCauseList = {\n\tcount: number\n\tentries: ReasonCauseEntry[]\n}\n\nconst reasonCauseEntries = new WeakSet<object>()\nconst reasonCauseDetails = new WeakSet<object>()\n\ntype ReasonCauseDetail = {\n\tkind: 'touch' | 'dependency'\n\tvalues: unknown[]\n}\n\nfunction isReasonCauseList(value: unknown): value is ReasonCauseList {\n\treturn !!value && typeof value === 'object' && reasonCauseLists.has(value)\n}\n\nfunction isReasonCauseEntry(value: unknown): value is ReasonCauseEntry {\n\treturn !!value && typeof value === 'object' && reasonCauseEntries.has(value)\n}\n\nfunction isReasonCauseDetail(value: unknown): value is ReasonCauseDetail {\n\treturn !!value && typeof value === 'object' && reasonCauseDetails.has(value)\n}\n\nfunction wrapReasonCauseEntry(entry: ReasonCauseEntry): ReasonCauseEntry {\n\treasonCauseEntries.add(entry)\n\treturn entry\n}\n\nfunction wrapReasonCauseDetail(detail: ReasonCauseDetail): ReasonCauseDetail {\n\treasonCauseDetails.add(detail)\n\treturn detail\n}\n\nfunction wrapReasonCauseList(list: ReasonCauseList): ReasonCauseList {\n\treasonCauseLists.add(list)\n\treturn list\n}\n\nexport function getCleanupReasonChain(reason: CleanupReason): CleanupReason[] {\n\tconst chain: CleanupReason[] = []\n\tlet current: CleanupReason | undefined = reason\n\twhile (current) {\n\t\tchain.push(current)\n\t\tcurrent = current.chain\n\t}\n\treturn chain\n}\n\nfunction formatReasonSummary(reason: CleanupReason): string {\n\tswitch (reason.type) {\n\t\tcase 'propChange':\n\t\t\treturn `propChange: ${formatTriggerSummary(reason)}`\n\t\tcase 'invalidate':\n\t\t\treturn `invalidate ← ${formatReasonSummary(reason.cause)}`\n\t\tcase 'stopped':\n\t\t\treturn reason.detail ? `stopped (${reason.detail})` : 'stopped'\n\t\tcase 'external':\n\t\t\treturn `external: ${reason.detail}`\n\t\tcase 'gc':\n\t\t\treturn 'gc'\n\t\tcase 'lineage':\n\t\t\treturn `lineage ← ${formatReasonSummary(reason.parent)}`\n\t\tcase 'error':\n\t\t\treturn `error: ${formatUnknownSummary(reason.error)}`\n\t\tcase 'multiple':\n\t\t\treturn `multiple: ${reason.reasons.map(formatReasonSummary).join(' | ')}`\n\t}\n}\n\nfunction formatTriggerSummary(reason: Extract<CleanupReason, { type: 'propChange' }>): string {\n\tconst groups = new Map<object, { target: string; parts: string[] }>()\n\tconst ordered: Array<{ target: string; parts: string[] }> = []\n\tfor (const { obj, evolution } of reason.triggers) {\n\t\tlet group = groups.get(obj)\n\t\tif (!group) {\n\t\t\tgroup = { target: describeTarget(obj), parts: [] }\n\t\t\tgroups.set(obj, group)\n\t\t\tordered.push(group)\n\t\t}\n\t\tgroup.parts.push(\n\t\t\tevolution.type === 'bunch'\n\t\t\t\t? `${evolution.type} ${String(evolution.method)}`\n\t\t\t\t: `${evolution.type} ${String(evolution.prop)}`\n\t\t)\n\t}\n\treturn ordered.map(({ target, parts }) => `${target}: ${parts.join(', ')}`).join(' | ')\n}\n\nfunction formatUnknownSummary(value: unknown): string {\n\tif (typeof value === 'string') return value\n\tif (typeof value === 'number' || typeof value === 'boolean' || value == null) return String(value)\n\tif (value instanceof Error) return value.message\n\tif (typeof value === 'function') return value.name || 'anonymous'\n\tif (typeof value === 'object') return value.constructor?.name || 'object'\n\treturn typeof value\n}\n\nfunction describeTarget(value: unknown): string {\n\tif (!value || typeof value !== 'object') return formatUnknownSummary(value)\n\tconst tag = value[Symbol.toStringTag]\n\tif (typeof tag === 'string' && tag && tag !== 'Object' && tag !== 'Array') return tag\n\tif (Array.isArray(value)) return 'Array'\n\tif (value instanceof Map) return 'Map'\n\tif (value instanceof Set) return 'Set'\n\treturn value.constructor?.name || 'object'\n}\n\nfunction formatPreview(value: unknown): string {\n\tif (typeof value === 'string') return value\n\tif (typeof value === 'number' || typeof value === 'boolean' || value == null) return String(value)\n\tif (typeof value === 'function') return `[function ${value.name || 'anonymous'}]`\n\tif (value instanceof Error) return `[Error: ${value.message}]`\n\tif (value && typeof value === 'object' && 'stack' in value) return '[lineage]'\n\tif (typeof value === 'object') return `[${value.constructor?.name || 'object'}]`\n\treturn `[${typeof value}]`\n}\n\nfunction renderDetailValue(value: unknown, color: string): unknown[] {\n\tif (value && typeof value === 'object' && 'stack' in value) {\n\t\treturn ['object', { object: value }]\n\t}\n\treturn ['span', { style: `color: ${color}; white-space: pre-wrap;` }, formatPreview(value)]\n}\n\ntype ReasonLineageDetail = {\n\tkind: 'touch' | 'dependency'\n\ttarget: string\n\tlabel: string\n\tvalue: unknown\n}\n\nfunction getReasonLineageDetails(reason: CleanupReason): ReasonLineageDetail[] {\n\tswitch (reason.type) {\n\t\tcase 'propChange': {\n\t\t\tconst details: ReasonLineageDetail[] = []\n\t\t\tfor (const trigger of reason.triggers) {\n\t\t\t\tconst target =\n\t\t\t\t\ttrigger.evolution.type === 'bunch'\n\t\t\t\t\t\t? String(trigger.evolution.method)\n\t\t\t\t\t\t: String(trigger.evolution.prop)\n\t\t\t\tconst label =\n\t\t\t\t\ttrigger.evolution.type === 'bunch'\n\t\t\t\t\t\t? `${trigger.evolution.type} ${String(trigger.evolution.method)}`\n\t\t\t\t\t\t: `${trigger.evolution.type} ${String(trigger.evolution.prop)}`\n\t\t\t\tif (trigger.touch) details.push({ kind: 'touch', target, label, value: trigger.touch })\n\t\t\t\tif (trigger.dependency)\n\t\t\t\t\tdetails.push({ kind: 'dependency', target, label, value: trigger.dependency })\n\t\t\t}\n\t\t\treturn details\n\t\t}\n\t\tcase 'invalidate':\n\t\t\treturn getReasonLineageDetails(reason.cause)\n\t\tcase 'lineage':\n\t\t\treturn getReasonLineageDetails(reason.parent)\n\t\tcase 'multiple':\n\t\t\treturn reason.reasons.flatMap(getReasonLineageDetails)\n\t\tcase 'external':\n\t\tdefault:\n\t\t\treturn []\n\t}\n}\n\nfunction renderLineageGroup(\n\tlabel: string,\n\tdetails: ReasonLineageDetail[],\n\tcolors: { block: string; title: string; meta: string }\n): unknown[] {\n\tconst groupObject = Object.fromEntries(details.map(({ label, value }) => [label, value]))\n\treturn [\n\t\t'div',\n\t\t{\n\t\t\tstyle: `margin-top: 4px; padding: 3px 5px; background: ${colors.block}; border-radius: 3px;`,\n\t\t},\n\t\t['div', { style: `color: ${colors.title}; margin-bottom: 3px;` }, `${label}: ${details.length}`],\n\t\t['object', { object: groupObject }],\n\t]\n}\n\nfunction renderLineageList(\n\tdetails: ReasonLineageDetail[],\n\tcolors: { block: string; title: string; meta: string }\n): unknown[] {\n\tconst grouped = new Map<string, ReasonCauseEntry>()\n\tfor (const { kind, label, value } of details) {\n\t\tlet entry = grouped.get(label)\n\t\tif (!entry) {\n\t\t\tentry = { label }\n\t\t\tgrouped.set(label, entry)\n\t\t}\n\t\tif (kind === 'touch') entry.touch = [...(entry.touch ?? []), value]\n\t\tif (kind === 'dependency') entry.dependency = [...(entry.dependency ?? []), value]\n\t}\n\tconst listObject = wrapReasonCauseList({\n\t\tcount: grouped.size,\n\t\tentries: Array.from(grouped.values(), wrapReasonCauseEntry),\n\t})\n\treturn [\n\t\t'div',\n\t\t{\n\t\t\tstyle: `margin-top: 4px; padding: 3px 5px; background: ${colors.block}; border-radius: 3px;`,\n\t\t},\n\t\t['object', { object: listObject }],\n\t]\n}\n\nfunction formatReasonWithoutChain(reason: CleanupReason): unknown[] {\n\tswitch (reason.type) {\n\t\tcase 'propChange':\n\t\t\treturn formatCleanupReason({ type: 'propChange', triggers: reason.triggers })\n\t\tcase 'invalidate':\n\t\t\treturn formatCleanupReason({ type: 'invalidate', cause: reason.cause })\n\t\tcase 'stopped':\n\t\t\treturn formatCleanupReason(reason.detail ? { type: 'stopped', detail: reason.detail } : { type: 'stopped' })\n\t\tcase 'external':\n\t\t\treturn formatCleanupReason({ type: 'external', detail: reason.detail })\n\t\tcase 'gc':\n\t\t\treturn formatCleanupReason({ type: 'gc' })\n\t\tcase 'lineage':\n\t\t\treturn formatCleanupReason({ type: 'lineage', parent: reason.parent })\n\t\tcase 'error':\n\t\t\treturn formatCleanupReason({ type: 'error', error: reason.error })\n\t\tcase 'multiple':\n\t\t\treturn formatCleanupReason({ type: 'multiple', reasons: reason.reasons })\n\t}\n}\n\nexport function logReason(reason: CleanupReason, tag?: string): string {\n\tconst chain = getCleanupReasonChain(reason)\n\tconsole.groupCollapsed(`🧹 Cleanup Reason${tag ? ` (${tag})` : ''}`)\n\tfor (let i = 0; i < chain.length; i++) {\n\t\tconsole.groupCollapsed(`${i === 0 ? '📍' : '↖'} ${formatReasonSummary(chain[i])}`)\n\t\tconst details = getReasonLineageDetails(chain[i])\n\t\tif (details.length > 0) {\n\t\t\tfor (const { kind, label, value } of details) console.log(`${kind} ${label}`, value)\n\t\t} else {\n\t\t\tconsole.log(...formatReasonWithoutChain(chain[i]))\n\t\t}\n\t\tconsole.groupEnd()\n\t}\n\tconsole.groupEnd()\n\treturn `🧹 Cleanup Reason${tag ? ` (${tag})` : ''}`\n}\n\nexport const reasonFormatter = {\n\theader: (obj: unknown) => {\n\t\tif (isReasonCauseList(obj)) {\n\t\t\treturn ['span', { style: 'font-weight: bold;' }, `causes: ${obj.count}`]\n\t\t}\n\t\tif (isReasonCauseEntry(obj)) {\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: bold;' },\n\t\t\t\t`${obj.label}:`,\n\t\t\t\t...(obj.touch?.length\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t['span', { style: 'margin-left: 6px;' }, ['object', { object: wrapReasonCauseDetail({ kind: 'touch', values: obj.touch }) }]],\n\t\t\t\t\t\t]\n\t\t\t\t\t: []),\n\t\t\t\t...(obj.dependency?.length\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t['span', { style: 'margin-left: 6px;' }, ['object', { object: wrapReasonCauseDetail({ kind: 'dependency', values: obj.dependency }) }]],\n\t\t\t\t\t\t]\n\t\t\t\t\t: []),\n\t\t\t]\n\t\t}\n\t\tif (isReasonCauseDetail(obj)) {\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: normal;' },\n\t\t\t\tobj.values.length === 1 ? obj.kind : `${obj.values.length} ${obj.kind}`,\n\t\t\t]\n\t\t}\n\t\tif (!isCleanupReason(obj)) return null\n\t\tconst chain = getCleanupReasonChain(obj)\n\t\tconst isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst color = isDark ? '#8fb3ff' : '#0b5fff'\n\t\treturn ['span', { style: `color: ${color}; font-weight: bold;` }, `🧹 ${formatReasonSummary(obj)}${chain.length > 1 ? ` ×${chain.length}` : ''}`]\n\t},\n\thasBody: (obj: unknown) => isCleanupReason(obj) || isReasonCauseList(obj) || isReasonCauseDetail(obj),\n\tbody: (obj: unknown) => {\n\t\tif (isReasonCauseList(obj)) {\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0;' },\n\t\t\t\t...obj.entries.map((entry) => [\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'display: block; margin-top: 2px;' },\n\t\t\t\t\t['object', { object: entry }],\n\t\t\t\t]),\n\t\t\t]\n\t\t}\n\t\tif (isReasonCauseDetail(obj)) {\n\t\t\tconst detailValue =\n\t\t\t\tobj.values.length === 1\n\t\t\t\t\t? obj.values[0]\n\t\t\t\t\t: Object.fromEntries(obj.values.map((value, index) => [`${obj.kind} ${index + 1}`, value]))\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0; line-height: 1.4;' },\n\t\t\t\t[\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'margin-top: 2px;' },\n\t\t\t\t\trenderDetailValue(detailValue, 'inherit'),\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (!isCleanupReason(obj)) return null\n\t\tconst chain = getCleanupReasonChain(obj)\n\t\tconst isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst colors = isDark\n\t\t\t? { block: '#2d2d2d', title: '#ffffff', meta: '#8b949e' }\n\t\t\t: { block: '#eee', title: '#222', meta: '#57606a' }\n\t\tconst children = chain.map((reason, index) => {\n\t\t\tconst lineageDetails = getReasonLineageDetails(reason)\n\t\t\tconst renderedDetails =\n\t\t\t\tlineageDetails.length > 0\n\t\t\t\t\t? [renderLineageList(lineageDetails, colors)]\n\t\t\t\t\t: formatReasonWithoutChain(reason).map((part) =>\n\t\t\t\t\t\t\ttypeof part === 'string'\n\t\t\t\t\t\t\t\t? ['span', { style: `color: ${colors.meta}; white-space: pre-wrap;` }, part]\n\t\t\t\t\t\t\t\t: renderDetailValue(part, colors.meta)\n\t\t\t\t\t\t)\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: `margin-top: 5px; padding: 4px 6px; background: ${colors.block}; border-radius: 3px;` },\n\t\t\t\t['div', { style: `font-weight: bold; color: ${colors.title}; margin-bottom: 3px;` }, `${index === 0 ? '📍' : '↖'} ${formatReasonSummary(reason)}`],\n\t\t\t\t['div', { style: 'display: inline-block;' }, ...renderedDetails],\n\t\t\t]\n\t\t})\n\t\treturn ['div', { style: 'padding: 5px; line-height: 1.4;' }, ...children]\n\t},\n}\n","import { effect } from '../src/reactive/effects'\nimport { getRoot } from '../src/reactive/registry'\nimport type { LineageSegment } from './lineage'\nimport { reactive } from '../src/reactive/proxy'\n\n/**\n * Displays a floating reactive panel in the browser showing the lineage of triggered effects.\n */\nexport function showLineagePanel() {\n\tif (typeof document === 'undefined') return\n\n\t// Detect color scheme preference\n\tconst isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n\t\n\t// Color schemes\n\tconst colors = isDarkMode ? {\n\t\tpanelBg: 'rgba(30, 30, 30, 0.95)',\n\t\tpanelBorder: '#444',\n\t\theaderBg: '#8B4513',\n\t\theaderText: '#ffffff',\n\t\tcloseBtn: '#ffffff',\n\t\tplaceholderText: '#999',\n\t\tsegmentBorder: '#8B4513',\n\t\ttitleText: '#ffffff',\n\t\tframeText: '#ccc',\n\t\tatText: '#888',\n\t\tlinkText: '#58a6ff',\n\t} : {\n\t\tpanelBg: 'rgba(255, 255, 255, 0.95)',\n\t\tpanelBorder: '#ddd',\n\t\theaderBg: '#704214',\n\t\theaderText: '#ffffff',\n\t\tcloseBtn: '#ffffff',\n\t\tplaceholderText: '#666',\n\t\tsegmentBorder: '#704214',\n\t\ttitleText: '#222',\n\t\tframeText: '#555',\n\t\tatText: '#999',\n\t\tlinkText: '#005cc5',\n\t}\n\n\tconst state = reactive({\n\t\tactiveLineage: [] as LineageSegment[],\n\t\tisVisible: true,\n\t})\n\n\t// onEffectTrigger tracks \"this effect\" (here nothing) — not useful for a global panel.\n\t// Would need zone-based events to track all triggers. Panel is cosmetic/experimental (260206).\n\n\t// UI Creation\n\tconst panel = document.createElement('div')\n\tpanel.id = 'mutts-lineage-panel'\n\tObject.assign(panel.style, {\n\t\tposition: 'fixed',\n\t\tbottom: '20px',\n\t\tright: '20px',\n\t\twidth: '400px',\n\t\tmaxHeight: '80vh',\n\t\tbackgroundColor: colors.panelBg,\n\t\tbackdropFilter: 'blur(10px)',\n\t\tborder: `1px solid ${colors.panelBorder}`,\n\t\tborderRadius: '12px',\n\t\tboxShadow: '0 10px 25px rgba(0,0,0,0.15)',\n\t\tzIndex: '999999',\n\t\tfontFamily: 'Inter, system-ui, sans-serif',\n\t\tfontSize: '12px',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\toverflow: 'hidden',\n\t\ttransition: 'opacity 0.3s, transform 0.3s',\n\t})\n\n\tconst header = document.createElement('div')\n\tObject.assign(header.style, {\n\t\tpadding: '12px 16px',\n\t\tbackground: colors.headerBg,\n\t\tcolor: colors.headerText,\n\t\tfontWeight: '600',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t\tcursor: 'grab',\n\t})\n\theader.innerHTML = '<span><span style=\"font-size: 14px; margin-right: 5px;\">🦴</span> Mutts Lineage</span>'\n\t\n\tconst closeBtn = document.createElement('button')\n\tcloseBtn.innerText = '×'\n\tObject.assign(closeBtn.style, {\n\t\tbackground: 'none',\n\t\tborder: 'none',\n\t\tcolor: colors.closeBtn,\n\t\tfontSize: '20px',\n\t\tcursor: 'pointer',\n\t\tpadding: '0 5px',\n\t})\n\tcloseBtn.onclick = () => {\n\t\tstate.isVisible = false\n\t}\n\theader.appendChild(closeBtn)\n\tpanel.appendChild(header)\n\n\tconst content = document.createElement('div')\n\tObject.assign(content.style, {\n\t\tpadding: '16px',\n\t\toverflowY: 'auto',\n\t\tflex: '1',\n\t})\n\tpanel.appendChild(content)\n\n\tdocument.body.appendChild(panel)\n\n\t// Reactivity: Update Visibility\n\teffect(() => {\n\t\tpanel.style.opacity = state.isVisible ? '1' : '0'\n\t\tpanel.style.pointerEvents = state.isVisible ? 'all' : 'none'\n\t\tpanel.style.transform = state.isVisible ? 'translateY(0)' : 'translateY(20px)'\n\t})\n\n\t// Reactivity: Update Content\n\teffect(() => {\n\t\tif (state.activeLineage.length === 0) {\n\t\t\tcontent.innerHTML = `<div style=\"color: ${colors.placeholderText}; font-style: italic; text-align: center; margin-top: 20px;\">No effect triggered yet...</div>`\n\t\t\treturn\n\t\t}\n\n\t\tcontent.innerHTML = ''\n\t\tstate.activeLineage.forEach((segment, i) => {\n\t\t\tconst segDiv = document.createElement('div')\n\t\t\tObject.assign(segDiv.style, {\n\t\t\t\tmarginBottom: '16px',\n\t\t\t\tborderLeft: `2px solid ${colors.segmentBorder}`,\n\t\t\t\tpaddingLeft: '12px',\n\t\t\t})\n\n\t\t\tconst title = document.createElement('div')\n\t\t\tObject.assign(title.style, {\n\t\t\t\tfontWeight: 'bold',\n\t\t\t\tmarginBottom: '6px',\n\t\t\t\tcolor: colors.titleText,\n\t\t\t})\n\t\t\tconst effectName = segment.effect ? (getRoot(segment.effect).name || 'anonymous') : 'root'\n\t\t\ttitle.innerText = i === 0 ? `📍 Current: ${effectName}` : `↖ Effect: ${effectName}`\n\t\t\tsegDiv.appendChild(title)\n\n\t\t\tsegment.stack.forEach(frame => {\n\t\t\t\tconst frameDiv = document.createElement('div')\n\t\t\t\tObject.assign(frameDiv.style, {\n\t\t\t\t\tcolor: colors.frameText,\n\t\t\t\t\tmarginBottom: '3px',\n\t\t\t\t\tfontSize: '11px',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t})\n\t\t\t\tframeDiv.title = frame.raw\n\t\t\t\tframeDiv.innerHTML = `<span style=\"color: ${colors.atText}\">at</span> ${frame.functionName} <span style=\"color: ${colors.linkText}; text-decoration: underline;\">(${frame.fileName.split('/').pop()}:${frame.lineNumber})</span>`\n\t\t\t\tsegDiv.appendChild(frameDiv)\n\t\t\t})\n\n\t\t\tcontent.appendChild(segDiv)\n\t\t})\n\t})\n}\n","/**\n * Debug utilities for the reactivity system\n * - Captures effect metadata (names, parent relationships)\n * - Records cause → consequence edges with object/prop labels\n * - Provides graph data for tooling (DevTools panel, etc.)\n */\n\nimport { effect } from '../src/reactive/effects'\nimport { effectToReactiveObjects, getEffectNode, getRoot, markWithRoot } from '../src/reactive/registry'\nimport { allProps, type EffectCleanup, type EffectTrigger, type Evolution, type CleanupReason, options } from '../src/reactive/types'\nimport { captureLineage, digestLineage, getStackFrame, getLineage, formatLineage, wrapLineageForDebug, lineageFormatter, logLineage, isLineage } from './lineage'\nimport { isCleanupReason, logReason, reasonFormatter } from './reason'\nimport { showLineagePanel } from './lineage-panel'\nimport { setDebugHooks } from '../src/reactive/debug-hooks'\nimport { getActiveEffect } from '../src/reactive/effect-context'\n\n/**\n * Log an error with detailed context if error logging is enabled\n */\nexport function logError(error: Error, context: 'throw' | 'catch', effect?: any) {\n\tif (!options.introspection?.logErrors) return\n\t\n\tconst contextStr = context === 'throw' ? '🔴 Thrown' : '🟡 Caught'\n\t\n\tconsole.group(`${contextStr} Error: ${error.message}`)\n\tconsole.error('Error:', error)\n\t\n\t// Try to get effect name if available\n\tif (effect && typeof effect === 'object' && effect.name) {\n\t\tconsole.log('Effect:', effect.name)\n\t}\n\t\n\tconsole.groupEnd()\n}\n\n// Log initialization for debugging\n\nconst EXTERNAL_SOURCE = Symbol('external-source')\ntype SourceEffect = EffectTrigger | typeof EXTERNAL_SOURCE\n\nlet devtoolsEnabled = false\n\n// Registry for debugging (populated lazily when DevTools are enabled)\nconst debugEffectRegistry = new Set<EffectTrigger>()\nconst debugObjectRegistry = new Set<object>()\n\n// Human-friendly names\nconst effectNames = new WeakMap<EffectTrigger | EffectCleanup, string>()\nconst objectNames = new WeakMap<object, string>()\nlet effectCounter = 0\nlet objectCounter = 0\n\n// Cause/consequence edges aggregated by (source, target, descriptor)\ninterface TriggerRecord {\n\tlabel: string\n\tobject: object\n\tprop: any\n\tevolution: Evolution\n\tcount: number\n\tlastTriggered: number\n}\n\nconst triggerGraph = new Map<SourceEffect, Map<EffectTrigger, Map<string, TriggerRecord>>>()\n\nexport type NodeKind = 'effect' | 'external' | 'state'\nexport type EdgeKind = 'cause' | 'dependency' | 'trigger'\n\nexport interface EffectNode {\n\tid: string\n\tlabel: string\n\ttype: NodeKind\n\tdepth: number\n\tparentId?: string\n\tdebugName?: string\n}\n\nexport interface ObjectNode {\n\tid: string\n\tlabel: string\n\ttype: NodeKind\n\tdebugName?: string\n}\n\nexport interface GraphEdge {\n\tid: string\n\tsource: string\n\ttarget: string\n\ttype: EdgeKind\n\tlabel: string\n\tcount?: number\n}\n\nexport interface ReactivityGraph {\n\tnodes: Array<EffectNode | ObjectNode>\n\tedges: GraphEdge[]\n\tmeta: {\n\t\tgeneratedAt: number\n\t\tdevtoolsEnabled: boolean\n\t}\n}\n\nfunction ensureEffectName(effect: EffectTrigger | EffectCleanup): string {\n\tlet name = effectNames.get(effect)\n\tif (!name) {\n\t\tconst root = getRoot(effect)\n\t\tname = root?.name?.trim() || `effect_${++effectCounter}`\n\t}\n\teffectNames.set(effect, name)\n\treturn name\n}\n\nfunction ensureObjectName(obj: object): string {\n\tlet name = objectNames.get(obj)\n\tif (!name) {\n\t\t// Try Symbol.toStringTag first (standard way to customize object string representation)\n\t\tconst toStringTag = obj?.[Symbol.toStringTag]\n\t\tconst ctorName = obj?.constructor?.name\n\t\tconst base = toStringTag || (ctorName && ctorName !== 'Object' ? ctorName : 'object')\n\t\tname = `${base}_${++objectCounter}`\n\t\tobjectNames.set(obj, name)\n\t}\n\treturn name\n}\n\nfunction describeProp(obj: object, prop: any): string {\n\tconst objectName = ensureObjectName(obj)\n\tif (prop === allProps) return `${objectName}.*`\n\tif (typeof prop === 'symbol') return `${objectName}.${prop.description ?? prop.toString()}`\n\treturn `${objectName}.${String(prop)}`\n}\n\nfunction addEffectToRegistry(effect: EffectTrigger) {\n\tif (!effect || debugEffectRegistry.has(effect)) return\n\tdebugEffectRegistry.add(effect)\n\tconst deps = effectToReactiveObjects.get(effect)\n\tif (deps) {\n\t\tfor (const obj of deps) {\n\t\t\tdocumentObject(obj)\n\t\t}\n\t}\n}\n\nfunction documentObject(obj: object) {\n\tif (!debugObjectRegistry.has(obj)) {\n\t\tdbRegisterObject(obj)\n\t}\n}\n\nfunction dbRegisterObject(obj: object) {\n\tdebugObjectRegistry.add(obj)\n\tensureObjectName(obj)\n}\n\nfunction ensureParentChains(effects: Set<EffectTrigger>) {\n\tconst queue = Array.from(effects)\n\tfor (let i = 0; i < queue.length; i++) {\n\t\tconst effect = queue[i]\n\t\tconst parent = getEffectNode(effect).parent\n\t\tif (parent && !effects.has(parent)) {\n\t\t\teffects.add(parent)\n\t\t\tqueue.push(parent)\n\t\t}\n\t}\n}\n\nfunction ensureTriggerContainers(source: SourceEffect) {\n\tlet targetMap = triggerGraph.get(source)\n\tif (!targetMap) {\n\t\ttargetMap = new Map()\n\t\ttriggerGraph.set(source, targetMap)\n\t}\n\treturn targetMap\n}\n\nfunction ensureTriggerRecord(\n\tsource: SourceEffect,\n\ttarget: EffectTrigger,\n\tlabel: string,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n): TriggerRecord {\n\tconst targetMap = ensureTriggerContainers(source)\n\tlet labelMap = targetMap.get(target)\n\tif (!labelMap) {\n\t\tlabelMap = new Map()\n\t\ttargetMap.set(target, labelMap)\n\t}\n\tlet record = labelMap.get(label)\n\tif (!record) {\n\t\trecord = { label, object: obj, prop, evolution, count: 0, lastTriggered: Date.now() }\n\t\tlabelMap.set(label, record)\n\t}\n\treturn record\n}\n\n/**\n * Assign a debug-friendly name to an effect (shown in DevTools)\n */\nexport function setEffectName(effect: EffectTrigger | EffectCleanup, name: string) {\n\teffectNames.set(effect, name)\n}\n\n/**\n * Assign a debug-friendly name to a reactive object\n */\nexport function setObjectName(obj: object, name: string) {\n\tobjectNames.set(obj, name)\n\tdebugObjectRegistry.add(obj)\n}\n\n/**\n * Register an effect so it appears in the DevTools graph\n */\nexport function registerEffectForDebug(effect: EffectTrigger) {\n\tif (!effect || !devtoolsEnabled) return\n\taddEffectToRegistry(effect)\n}\n\n/**\n * Register a reactive object so it appears in the DevTools graph\n */\nexport function registerObjectForDebug(obj: object) {\n\tif (!devtoolsEnabled) return\n\tdocumentObject(obj)\n}\n\n/**\n * Records a cause → consequence relationship between effects.\n * @param source - The effect performing the write (undefined if external/user input)\n * @param target - The effect that re-ran because of the write\n * @param obj - The reactive object that changed\n * @param prop - The property that changed\n * @param evolution - The type of change (set/add/del/bunch)\n */\nexport function recordTriggerLink(\n\tsource: EffectTrigger | undefined,\n\ttarget: EffectTrigger,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n) {\n\tif (options.introspection?.enableHistory) {\n\t\taddToMutationHistory(source, target, obj, prop, evolution)\n\t}\n\tif (!devtoolsEnabled) return\n\taddEffectToRegistry(target)\n\tif (source) addEffectToRegistry(source)\n\tconst descriptor = describeProp(obj, prop)\n\tconst record = ensureTriggerRecord(\n\t\tsource ?? EXTERNAL_SOURCE,\n\t\ttarget,\n\t\tdescriptor,\n\t\tobj,\n\t\tprop,\n\t\tevolution\n\t)\n\trecord.count += 1\n\trecord.lastTriggered = Date.now()\n\tdocumentObject(obj)\n}\n\n/**\n * Traces back the chain of triggers that led to a specific effect\n * @param effect The effect to trace back\n * @param limit Max depth\n */\nexport function getTriggerChain(effect: EffectTrigger, limit = 5): string[] {\n\tconst chain: string[] = []\n\tlet current = effect\n\tfor (let i = 0; i < limit; i++) {\n\t\t// Find who triggered 'current'\n\t\t// We need to reverse search the triggerGraph (source -> target)\n\t\t// This is expensive O(Edges) but okay for error reporting\n\t\tlet foundSource: EffectTrigger | undefined\n\t\tlet foundReason = ''\n\n\t\tsearch: for (const [source, targetMap] of triggerGraph) {\n\t\t\tfor (const [target, labelMap] of targetMap) {\n\t\t\t\tif (target === current) {\n\t\t\t\t\t// Found a source! Use the most recent trigger record\n\t\t\t\t\tlet lastTime = 0\n\t\t\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\t\t\tif (record.lastTriggered > lastTime) {\n\t\t\t\t\t\t\tlastTime = record.lastTriggered\n\t\t\t\t\t\t\tfoundReason = record.label\n\t\t\t\t\t\t\tfoundSource = source === EXTERNAL_SOURCE ? undefined : (source as EffectTrigger)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (foundSource || foundReason) break search\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (foundSource) {\n\t\t\tchain.push(\n\t\t\t\t`${ensureEffectName(foundSource)} -> (${foundReason}) -> ${ensureEffectName(current)}`\n\t\t\t)\n\t\t\tcurrent = foundSource\n\t\t} else if (foundReason) {\n\t\t\tchain.push(`External -> (${foundReason}) -> ${ensureEffectName(current)}`)\n\t\t\tbreak\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn chain.reverse()\n}\n\nfunction buildEffectNodes(allEffects: Set<EffectTrigger>) {\n\tconst nodes: EffectNode[] = []\n\tconst nodeByEffect = new Map<EffectTrigger, EffectNode>()\n\n\tconst ordered = Array.from(allEffects)\n\tfor (const effect of ordered) {\n\t\tconst label = ensureEffectName(effect)\n\t\tconst node: EffectNode = {\n\t\t\tid: `effect_${nodes.length}`,\n\t\t\tlabel,\n\t\t\ttype: 'effect',\n\t\t\tdepth: 0,\n\t\t\tdebugName: label,\n\t\t}\n\t\tnodes.push(node)\n\t\tnodeByEffect.set(effect, node)\n\t}\n\n\tconst depthCache = new Map<EffectTrigger, number>()\n\tconst computeDepth = (effect: EffectTrigger | undefined): number => {\n\t\tif (!effect) return 0\n\t\tconst cached = depthCache.get(effect)\n\t\tif (cached !== undefined) return cached\n\t\tconst parent = getEffectNode(effect).parent\n\t\tconst depth = computeDepth(parent) + (parent ? 1 : 0)\n\t\tdepthCache.set(effect, depth)\n\t\treturn depth\n\t}\n\n\tfor (const [effect, node] of nodeByEffect) {\n\t\tnode.depth = computeDepth(effect)\n\t\tconst parent = getEffectNode(effect).parent\n\t\tif (parent) {\n\t\t\tconst parentNode = nodeByEffect.get(parent)\n\t\t\tif (parentNode) {\n\t\t\t\tnode.parentId = parentNode.id\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { nodes, nodeByEffect }\n}\n\n/**\n * Builds a graph representing current reactive state (effects, objects, and trigger edges)\n */\nexport function buildReactivityGraph(): ReactivityGraph {\n\tconst nodes: Array<EffectNode | ObjectNode> = []\n\tconst edges: GraphEdge[] = []\n\tconst nodeIds = new Map<EffectTrigger | EffectCleanup | object | SourceEffect, string>()\n\n\tconst allEffects = new Set<EffectTrigger>(debugEffectRegistry)\n\tensureParentChains(allEffects)\n\tconst { nodes: effectNodes, nodeByEffect } = buildEffectNodes(allEffects)\n\tfor (const node of effectNodes) nodes.push(node)\n\tfor (const [effect, node] of nodeByEffect) {\n\t\tnodeIds.set(effect, node.id)\n\t}\n\n\t// Object nodes (optional, used for dependency inspection)\n\tfor (const obj of debugObjectRegistry) {\n\t\tconst id = `object_${nodes.length}`\n\t\tnodes.push({ id, label: ensureObjectName(obj), type: 'state', debugName: objectNames.get(obj) })\n\t\tnodeIds.set(obj, id)\n\t}\n\n\t// External source node (user/system outside of effects)\n\tif (triggerGraph.has(EXTERNAL_SOURCE)) {\n\t\tconst externalId = `effect_external`\n\t\tnodes.push({ id: externalId, label: 'External', type: 'external', depth: 0 })\n\t\tnodeIds.set(EXTERNAL_SOURCE, externalId)\n\t}\n\n\t// Dependency edges (effect → object)\n\tfor (const effect of allEffects) {\n\t\tconst effectId = nodeIds.get(effect)\n\t\tif (!effectId) continue\n\t\tconst deps = effectToReactiveObjects.get(effect)\n\t\tif (!deps) continue\n\t\tfor (const obj of deps) {\n\t\t\tconst objId = nodeIds.get(obj)\n\t\t\tif (!objId) continue\n\t\t\tedges.push({\n\t\t\t\tid: `${effectId}->${objId}`,\n\t\t\t\tsource: effectId,\n\t\t\t\ttarget: objId,\n\t\t\t\ttype: 'dependency',\n\t\t\t\tlabel: 'depends',\n\t\t\t})\n\t\t}\n\t}\n\n\t// Cause edges (effect/object/prop → effect)\n\tfor (const [source, targetMap] of triggerGraph) {\n\t\tfor (const [targetEffect, labelMap] of targetMap) {\n\t\t\tconst targetId = nodeIds.get(targetEffect)\n\t\t\tif (!targetId) continue\n\t\t\tconst sourceId = nodeIds.get(source)\n\t\t\tif (!sourceId) continue\n\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\tedges.push({\n\t\t\t\t\tid: `${sourceId}->${targetId}:${record.label}`,\n\t\t\t\t\tsource: sourceId,\n\t\t\t\t\ttarget: targetId,\n\t\t\t\t\ttype: 'cause',\n\t\t\t\t\tlabel: record.count > 1 ? `${record.label} (${record.count})` : record.label,\n\t\t\t\t\tcount: record.count,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tnodes,\n\t\tedges,\n\t\tmeta: {\n\t\t\tgeneratedAt: Date.now(),\n\t\t\tdevtoolsEnabled,\n\t\t},\n\t}\n}\n/**\n * Enables the DevTools bridge and exposes the debug API on window/global.\n * Call as early as possible in development builds.\n */\nexport function enableDevTools() {\n\tconst globalScope = (\n\t\ttypeof globalThis !== 'undefined'\n\t\t\t? globalThis\n\t\t\t: typeof window !== 'undefined'\n\t\t\t\t? window\n\t\t\t\t: typeof global !== 'undefined'\n\t\t\t\t\t? global\n\t\t\t\t\t: undefined\n\t) as any\n\tif (!globalScope) return\n\tif (devtoolsEnabled) return\n\tdevtoolsEnabled = true\n\tif (options.introspection) {\n\t\toptions.introspection.logErrors = true\n\t}\n\t\n\tglobalScope.__MUTTS_DEBUG__ = {\n\t\tgetGraph: buildReactivityGraph,\n\t\tlogLineage(tag?: string) {\n\t\t\tlogLineage(getLineage())\n\t\t\treturn '🦴 Effect Lineage Trace' + (tag ? ` (${tag})` : '')\n\t\t},\n\t\tlogReason(reason?: CleanupReason, tag?: string) {\n\t\t\tconst reasonToLog = reason ?? globalScope.__MUTTS_DEBUG__.reason\n\t\t\tif (!reasonToLog) return '🧹 Cleanup Reason'\n\t\t\treturn logReason(reasonToLog, tag)\n\t\t},\n\t\tget lineage() {\n\t\t\treturn getLineage()\n\t\t},\n\t\tshowLineagePanel,\n\t\tsetEffectName,\n\t\tsetObjectName,\n\t\tregisterEffect: registerEffectForDebug,\n\t\tregisterObject: registerObjectForDebug,\n\t\t/**\n\t\t * Returns the reason why the current effect is being executed.\n\t\t * Returns undefined if not in an effect or if this is the first run.\n\t\t * @type {() => import('../src/reactive/types').CleanupReason | undefined}\n\t\t */\n\t\tget reason() {\n\t\t\tconst activeEffect = getActiveEffect()\n\t\t\tif (!activeEffect) return undefined\n\t\t\tconst node = getEffectNode(activeEffect)\n\t\t\treturn node?.currentReason\n\t\t},\n\t}\n\n\t// @ts-ignore - devtoolsFormatters is a Chrome-specific array\n\tif (globalScope.devtoolsFormatters) {\n\t\tglobalScope.devtoolsFormatters.push(lineageFormatter)\n\t\tglobalScope.devtoolsFormatters.push(reasonFormatter)\n\t} else {\n\t\tglobalScope.devtoolsFormatters = [lineageFormatter, reasonFormatter]\n\t}\n\n\tsetDebugHooks({\n\t\tisDevtoolsEnabled: () => devtoolsEnabled,\n\t\tregisterEffect: registerEffectForDebug,\n\t\tgetTriggerChain: getTriggerChain,\n\t\tcaptureStack: getStackFrame,\n\t\tcaptureLineage,\n\t\tformatStack: (stack: any) => {\n\t\t\tif (isCleanupReason(stack)) return [stack]\n\t\t\tif (typeof stack === 'string') {\n\t\t\t\treturn [\n\t\t\t\t\t`\\n ${stack\n\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t.map((l) => l.trim())\n\t\t\t\t\t\t.join('\\n ')}`,\n\t\t\t\t]\n\t\t\t}\n\t\t\tif (isLineage(stack)) {\n\t\t\t\treturn ['\\n', stack]\n\t\t\t}\n\t\t\treturn ['\\n', stack]\n\t\t},\n\t\trecordTriggerLink: recordTriggerLink,\n\t\tdecorateError: (error, trigger) => {\n\t\t\tif (\n\t\t\t\toptions.introspection?.logErrors &&\n\t\t\t\terror &&\n\t\t\t\ttypeof error === 'object' &&\n\t\t\t\t'stack' in error &&\n\t\t\t\t!('lineage' in error)\n\t\t\t) {\n\t\t\t\t;(error as any).lineage = wrapLineageForDebug(getLineage(trigger, error))\n\t\t\t}\n\t\t},\n\t})\n\n\tconst originalWarn = options.warn\n\toptions.warn = (...args: any[]) => {\n\t\tconst lineage = captureLineage()\n\t\toriginalWarn(...args, lineage)\n\t}\n}\n\nexport function forceEnableGraphTracking() {\n\tdevtoolsEnabled = true\n}\n\nexport function isDevtoolsEnabled() {\n\treturn devtoolsEnabled\n}\n\n/**\n * Returns the raw dependency graph data structure.\n * This is useful for programmatic analysis of the reactive system.\n */\nexport function getDependencyGraph() {\n\treturn {\n\t\tnodes: buildReactivityGraph().nodes,\n\t\tedges: buildReactivityGraph().edges,\n\t}\n}\n\n/**\n * Capture a complete snapshot of the current reactive state\n */\nexport function snapshot() {\n\treturn {\n\t\tgraph: getDependencyGraph(),\n\t\thistory: getMutationHistory(),\n\t\ttimestamp: Date.now(),\n\t}\n}\n\n/**\n * Returns a list of effects that depend on the given object.\n */\nexport function getDependents(obj: object): EffectTrigger[] {\n\tconst dependents: EffectTrigger[] = []\n\t// Scan the trigger graph for effects triggered by this object\n\t// This is O(E) where E is the number of edges, might need optimization for large graphs\n\t// but acceptable for introspection\n\tfor (const [_source, targetMap] of triggerGraph) {\n\t\tfor (const [targetEffect, labelMap] of targetMap) {\n\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\tif (record.object === obj) {\n\t\t\t\t\tdependents.push(targetEffect)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Also check direct dependencies (dependency graph)\n\t// We don't have a direct obj -> effect map without walking all effects\n\t// unless we use `watchers` from tracking.ts but that's internal\n\treturn [...new Set(dependents)]\n}\n\n/**\n * Returns a list of objects that the given effect depends on.\n */\nexport function getDependencies(effect: EffectTrigger): object[] {\n\tconst deps = effectToReactiveObjects.get(effect)\n\treturn deps ? Array.from(deps) : []\n}\n\n// --- Mutation History ---\n\nexport interface MutationRecord {\n\tid: number\n\ttimestamp: number\n\tsource: string\n\ttarget: string\n\tobjectName: string\n\tprop: string\n\ttype: string\n}\n\nconst mutationHistory: MutationRecord[] = []\nlet mutationCounter = 0\n\nfunction addToMutationHistory(\n\tsource: EffectTrigger | undefined,\n\ttarget: EffectTrigger,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n) {\n\tconst record: MutationRecord = {\n\t\tid: ++mutationCounter,\n\t\ttimestamp: Date.now(),\n\t\tsource: source ? ensureEffectName(source) : 'External',\n\t\ttarget: ensureEffectName(target),\n\t\tobjectName: ensureObjectName(obj),\n\t\tprop: String(prop),\n\t\ttype: evolution.type,\n\t}\n\n\tmutationHistory.push(record)\n\tif (mutationHistory.length > (options.introspection?.historySize ?? 50)) {\n\t\tmutationHistory.shift()\n\t}\n}\n\n/**\n * Get the recent mutation history\n */\nexport function getMutationHistory(): MutationRecord[] {\n\treturn [...mutationHistory]\n}\n\n// --- Auto DevTools Initialization ---\n// Automatically enable devtools in development environments\n\n/**\n * Checks if we're in a development environment\n * Detection order:\n * 1. process.env.NODE_ENV (Node.js)\n * 2. import.meta.env.DEV (Vite)\n * 3. import.meta.env.PROD === false (Vite alternative)\n * 4. Assumes development if none of the above are set (safe default)\n */\nfunction isDevelopmentMode(): boolean {\n\t// Check for explicit production flag first\n\tif (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') {\n\t\treturn false\n\t}\n\t\n\t// Check for Vite's DEV flag\n\tif (typeof import.meta !== 'undefined') {\n\t\tconst meta = import.meta as any\n\t\tif (meta.env?.PROD === true) {\n\t\t\treturn false\n\t\t}\n\t\tif (meta.env?.DEV === true) {\n\t\t\treturn true\n\t\t}\n\t}\n\t\n\t// Check for custom global override\n\tif (typeof globalThis !== 'undefined' && '__MUTTS_DEV_MODE__' in globalThis) {\n\t\treturn (globalThis as any).__MUTTS_DEV_MODE__ !== false\n\t}\n\t\n\t// Default to development (safer to enable in dev than disable in prod)\n\treturn true\n}\n\n// Auto-enable devtools when the module loads in development\nif (isDevelopmentMode() && !devtoolsEnabled) {\n\tenableDevTools()\n\t\n\t// Optional: Log that devtools were enabled (only in development)\n\tif (typeof console !== 'undefined' && console.info) {\n\t\t// Do not log these in when mode === 'test'\n\t\tconsole.info('🦴 Mutts DevTools enabled automatically in development mode')\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.esm.js","sources":["../debug/lineage.ts","../debug/reason.ts","../debug/lineage-panel.ts","../debug/reactive.ts","../debug/debug.ts"],"sourcesContent":["import { getActiveEffect } from '../src/reactive/effect-context'\nimport { getEffectNode, getRoot } from '../src/reactive/registry'\nimport { type EffectTrigger, effectMarker } from '../src/reactive/types'\n\nexport interface StackFrame {\n\tfunctionName: string\n\tfileName: string\n\tlineNumber: number\n\tcolumnNumber: number\n\traw: string\n}\n\nexport interface LineageSegment {\n\teffect?: EffectTrigger\n\teffectName: string\n\tstack: StackFrame[]\n}\n\nexport interface LineageSignature {\n\teffect?: EffectTrigger\n\tstack?: unknown\n\tdigested?: LineageSegment[]\n\ttoString(): string\n}\n\nconst lineageObjects = new WeakSet<object>()\nconst lineageSegmentObjects = new WeakSet<object>()\nconst lineageFrameObjects = new WeakSet<object>()\n\ntype LineageSegmentView = {\n\tindex: number\n\ttotal: number\n\tsegment: LineageSegment\n}\n\ntype LineageFrameView = {\n\tframe: StackFrame\n}\n\nexport function isLineage(obj: any): obj is LineageSignature {\n\treturn !!obj && typeof obj === 'object' && lineageObjects.has(obj)\n}\n\nfunction isLineageSegmentView(obj: unknown): obj is LineageSegmentView {\n\treturn !!obj && typeof obj === 'object' && lineageSegmentObjects.has(obj)\n}\n\nfunction isLineageFrameView(obj: unknown): obj is LineageFrameView {\n\treturn !!obj && typeof obj === 'object' && lineageFrameObjects.has(obj)\n}\n\nlet internalFile: string | undefined\n\nfunction parseStackLine(line: string): StackFrame | null {\n\tconst nodeMatch = line.match(/^\\s*at\\s+(?:(.+?)\\s+\\()?(?:(.+?):(\\d+):(\\d+))\\)?$/)\n\tconst browserMatch = line.match(/(?:(.+?)(?:\\@|\\(?))?(?:(.+?):(\\d+):(\\d+))(?:\\@|\\)?)$/)\n\tconst match = nodeMatch || browserMatch\n\tif (!match) return null\n\n\tconst [, functionName = 'anonymous', fileName, lineNumber, columnNumber] = match\n\treturn {\n\t\tfunctionName: functionName.trim(),\n\t\tfileName,\n\t\tlineNumber: parseInt(lineNumber, 10),\n\t\tcolumnNumber: parseInt(columnNumber, 10),\n\t\traw: line.trim(),\n\t}\n}\n\nfunction extractRawStack(error: unknown = new Error()): string | undefined {\n\tif (typeof error === 'string') return error\n\tif (error && typeof error === 'object' && 'stack' in error) {\n\t\tconst stack = (error as { stack?: unknown }).stack\n\t\treturn typeof stack === 'string' ? stack : undefined\n\t}\n\treturn undefined\n}\n\nexport function getStackFrame(error?: unknown): string | undefined {\n\treturn extractRawStack(error)\n}\n\nfunction parseStackFrames(stack: unknown): StackFrame[] {\n\tconst rawStack = extractRawStack(stack)\n\tif (!rawStack) return []\n\n\tconst lines = rawStack.split('\\n')\n\tconst lastLine = lines.findIndex((line) => line.includes(effectMarker.enter))\n\tif (lastLine !== -1) lines.splice(lastLine)\n\tconst firstLine = lines.findLastIndex((line) => line.includes(effectMarker.leave))\n\tif (firstLine !== -1) lines.splice(0, firstLine + 1)\n\telse {\n\t\tif (!internalFile && lines[1]) {\n\t\t\tconst selfFrame = parseStackLine(lines[1])\n\t\t\tif (selfFrame) internalFile = selfFrame.fileName\n\t\t}\n\t\tlet l = 1\n\t\tfor (; l < lines.length; l++) {\n\t\t\tconst frame = parseStackLine(lines[l])\n\t\t\tif (!frame) continue\n\t\t\tconst isInternal =\n\t\t\t\t/Lineage$/.test(frame.functionName) ||\n\t\t\t\tframe.functionName === 'eval' ||\n\t\t\t\t[`getStackFrame`, `captureLineage`, `getLineage`, `digestLineage`, `formatLineage`].includes(\n\t\t\t\t\tframe.functionName\n\t\t\t\t)\n\t\t\tif (!isInternal) break\n\t\t}\n\t\tlines.splice(0, l)\n\t}\n\n\treturn filterNodeModules(lines.map(parseStackLine).filter((frame): frame is StackFrame => !!frame))\n}\n\nfunction filterNodeModules(frames: StackFrame[]): StackFrame[] {\n\tconst result: StackFrame[] = []\n\tlet inNodeModules = false\n\tfor (const frame of frames) {\n\t\tconst isNodeModule = frame.fileName.includes('/node_modules/')\n\t\tif (isNodeModule && !inNodeModules) {\n\t\t\tinNodeModules = true\n\t\t\tresult.push({\n\t\t\t\tfunctionName: '...node_modules...',\n\t\t\t\tfileName: '[filtered]',\n\t\t\t\tlineNumber: 0,\n\t\t\t\tcolumnNumber: 0,\n\t\t\t\traw: 'at ...node_modules...',\n\t\t\t})\n\t\t\tcontinue\n\t\t}\n\t\tif (!isNodeModule && inNodeModules) inNodeModules = false\n\t\tif (!isNodeModule) result.push(frame)\n\t}\n\treturn result\n}\n\nfunction formatEffectPreview(effect?: EffectTrigger): string {\n\tif (!effect) return 'root'\n\treturn `[effect ${effect.name || 'anonymous'}]`\n}\n\nfunction formatSegmentTitle(segment: LineageSegment, index: number, total: number): string {\n\tconst isLast = index === total - 1\n\tconst prefix = index === 0 ? '📍' : isLast ? '└─' : '├─'\n\treturn `${prefix} Effect: ${segment.effect?.name || 'root'}`\n}\n\nfunction wrapLineageSegmentView(segment: LineageSegment, index: number, total: number): LineageSegmentView {\n\tconst view = { index, total, segment }\n\tlineageSegmentObjects.add(view)\n\treturn view\n}\n\nfunction wrapLineageFrameView(frame: StackFrame): LineageFrameView {\n\tconst view = { frame }\n\tlineageFrameObjects.add(view)\n\treturn view\n}\n\nfunction formatLocationHref(frame: StackFrame): string {\n\treturn `${frame.fileName}:${frame.lineNumber}:${frame.columnNumber}`\n}\n\nfunction formatLocationLabel(frame: StackFrame): string {\n\tconst source = frame.fileName.split('?')[0]\n\tconst fileName = source.split('/').pop() || source\n\treturn `${fileName}:${frame.lineNumber}:${frame.columnNumber}`\n}\n\nfunction ensureSignature(signature: LineageSignature): LineageSignature {\n\tif (!isLineage(signature)) {\n\t\tObject.defineProperty(signature, 'toString', {\n\t\t\tvalue: () => formatLineage(signature),\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t})\n\t\tlineageObjects.add(signature)\n\t}\n\treturn signature\n}\n\nexport function getLineage(effect?: EffectTrigger, currentStack: unknown = new Error()): LineageSignature {\n\treturn ensureSignature({\n\t\teffect: effect ?? getActiveEffect(),\n\t\tstack: currentStack,\n\t\ttoString() {\n\t\t\treturn formatLineage(this)\n\t\t},\n\t})\n}\n\nexport function captureLineage(effect?: EffectTrigger, currentStack?: unknown): LineageSignature {\n\treturn getLineage(effect, currentStack ?? new Error())\n}\n\nexport function digestLineage(lineage: LineageSignature): LineageSegment[] {\n\tif (lineage.digested) return lineage.digested\n\n\tconst currentEffect = lineage.effect\n\tconst currentStack = parseStackFrames(lineage.stack)\n\tconst segments: LineageSegment[] = []\n\n\tif (!currentEffect) {\n\t\tlineage.digested = [\n\t\t\t{\n\t\t\t\teffect: undefined,\n\t\t\t\teffectName: 'root',\n\t\t\t\tstack: currentStack,\n\t\t\t},\n\t\t]\n\t\treturn lineage.digested\n\t}\n\n\tlet current: EffectTrigger | undefined = currentEffect\n\tlet lastStack = currentStack\n\twhile (current) {\n\t\tconst rootFn = getRoot(current)\n\t\tsegments.push({\n\t\t\teffect: rootFn,\n\t\t\teffectName: rootFn.name || 'anonymous',\n\t\t\tstack: lastStack,\n\t\t})\n\n\t\tconst node = getEffectNode(current)\n\t\tconst parent = node.parent\n\t\tconst creationStack = parseStackFrames(node.creationStack)\n\t\tif (parent) {\n\t\t\tcurrent = parent\n\t\t\tlastStack = creationStack\n\t\t} else if (node.creationStack) {\n\t\t\tsegments.push({\n\t\t\t\teffect: undefined,\n\t\t\t\teffectName: 'root',\n\t\t\t\tstack: creationStack,\n\t\t\t})\n\t\t\tbreak\n\t\t} else break\n\t}\n\n\tlineage.digested = segments\n\treturn segments\n}\n\nexport function formatLineage(lineage: LineageSignature | LineageSegment[]): string {\n\tconst segments = Array.isArray(lineage) ? lineage : digestLineage(lineage)\n\tconst result: string[] = []\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i]\n\t\tif (i > 0) {\n\t\t\tconst triggerEffect = segments[i - 1].effect\n\t\t\tconst triggerName = triggerEffect ? getRoot(triggerEffect).name || 'anonymous' : 'root'\n\t\t\tresult.push(` --- effect: ${triggerName} ---`)\n\t\t}\n\t\tfor (const frame of segment.stack) result.push(` ${frame.raw}`)\n\t}\n\treturn result.join('\\n')\n}\n\nexport function logLineage(lineage: LineageSignature | LineageSegment[]): void {\n\tconst segments = Array.isArray(lineage) ? lineage : digestLineage(lineage)\n\tconsole.groupCollapsed(`🦴 Effect Lineage Trace (${segments.length} segment${segments.length === 1 ? '' : 's'})`)\n\tfor (let i = 0; i < segments.length; i++) {\n\t\tconst segment = segments[i]\n\t\tconst isLast = i === segments.length - 1\n\t\tconst prefix = i === 0 ? '📍' : isLast ? '└─' : '├─'\n\t\tconsole.groupCollapsed(`${prefix} Effect:`, segment.effect ? segment.effect.name || 'anonymous' : 'root')\n\t\tfor (let j = 0; j < segment.stack.length; j++) {\n\t\t\tconst frame = segment.stack[j]\n\t\t\tconst isLastFrame = j === segment.stack.length - 1\n\t\t\tconst framePrefix = isLastFrame ? '└─' : '├─'\n\t\t\tif (frame.functionName === '...node_modules...') {\n\t\t\t\tconsole.log(`%c${framePrefix} ${frame.functionName}`, 'color: #888; font-style: italic;')\n\t\t\t} else {\n\t\t\t\tconst fnStyle =\n\t\t\t\t\tframe.functionName === 'anonymous' ? 'color: #888;' : 'color: #1a7f37; font-weight: bold;'\n\t\t\t\tconst fileStyle = 'color: #0550ae;'\n\t\t\t\tconsole.log(\n\t\t\t\t\t`%c${framePrefix} %c${frame.functionName} %c(${frame.fileName}:${frame.lineNumber}:${frame.columnNumber})`,\n\t\t\t\t\t'color: #888;',\n\t\t\t\t\tfnStyle,\n\t\t\t\t\tfileStyle\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tconsole.groupEnd()\n\t}\n\tconsole.groupEnd()\n}\n\nexport function captureNodeLineage(): void {\n\tlogLineage(getLineage())\n}\n\nexport const lineageFormatter = {\n\theader: (obj: any) => {\n\t\tif (isLineageSegmentView(obj)) {\n\t\t\tconst isDark =\n\t\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\t\tconst frameColor = isDark ? '#8b949e' : '#57606a'\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: bold;' },\n\t\t\t\tformatSegmentTitle(obj.segment, obj.index, obj.total),\n\t\t\t\t['span', { style: `color: ${frameColor}; margin-left: 6px; font-weight: normal;` }, formatEffectPreview(obj.segment.effect)],\n\t\t\t\t[\n\t\t\t\t\t'span',\n\t\t\t\t\t{ style: `color: ${frameColor}; margin-left: 6px; font-weight: normal;` },\n\t\t\t\t\t`${obj.segment.stack.length} frame${obj.segment.stack.length === 1 ? '' : 's'}`,\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (isLineageFrameView(obj)) {\n\t\t\tconst isDark =\n\t\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\t\tconst fnColor = obj.frame.functionName === 'anonymous' ? '#8b949e' : isDark ? '#ffffff' : '#222'\n\t\t\tconst linkColor = isDark ? '#58a6ff' : '#005cc5'\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'display: block;' },\n\t\t\t\t['span', { style: `color: ${fnColor}; font-weight: bold;` }, obj.frame.functionName],\n\t\t\t\t['span', { style: 'color: #8b949e; margin: 0 6px;' }, '@'],\n\t\t\t\t[\n\t\t\t\t\t'span',\n\t\t\t\t\t{ style: `color: ${linkColor}; text-decoration: underline;` },\n\t\t\t\t\tformatLocationHref(obj.frame),\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (!isLineage(obj)) return null\n\t\tconst isDark =\n\t\t\ttypeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst headerColor = isDark ? '#cd9d5d' : '#704214'\n\t\treturn [\n\t\t\t'span',\n\t\t\t{ style: `color: ${headerColor}; font-weight: bold;` },\n\t\t\tobj.digested\n\t\t\t\t? `🦴 Effect Lineage (${obj.digested.length} segments)`\n\t\t\t\t: '🦴 Effect Lineage (lazy)',\n\t\t]\n\t},\n\thasBody: (obj: any) => isLineage(obj) || isLineageSegmentView(obj),\n\tbody: (obj: any) => {\n\t\tif (isLineageSegmentView(obj)) {\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0;' },\n\t\t\t\t...obj.segment.stack.map((frame) => [\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'display: block; margin-top: 2px;' },\n\t\t\t\t\t['object', { object: wrapLineageFrameView(frame) }],\n\t\t\t\t]),\n\t\t\t]\n\t\t}\n\t\tif (!isLineage(obj)) return null\n\t\tconst segments = digestLineage(obj)\n\t\treturn [\n\t\t\t'div',\n\t\t\t{ style: 'padding: 5px; line-height: 1.4;' },\n\t\t\t...segments.map((segment, index) => [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'display: block; margin-top: 4px;' },\n\t\t\t\t['object', { object: wrapLineageSegmentView(segment, index, segments.length) }],\n\t\t\t]),\n\t\t]\n\t},\n}\n\nexport function wrapLineageForDebug(lineage?: LineageSignature) {\n\treturn ensureSignature(lineage ?? getLineage())\n}\n","import { formatCleanupReason, type CleanupReason } from '../src/reactive/types'\n\nconst reasonTypes = new Set(['propChange', 'invalidate', 'external', 'stopped', 'gc', 'lineage', 'error', 'multiple'])\nconst reasonCauseLists = new WeakSet<object>()\n\nfunction hasOwn(value: object, key: string) {\n\treturn Object.prototype.hasOwnProperty.call(value, key)\n}\n\nexport function isCleanupReason(value: unknown): value is CleanupReason {\n\tif (!value || typeof value !== 'object') return false\n\tif (!hasOwn(value, 'type')) return false\n\tconst type = (value as { type?: unknown }).type\n\tif (typeof type !== 'string' || !reasonTypes.has(type)) return false\n\tswitch (type) {\n\t\tcase 'propChange':\n\t\t\treturn Array.isArray((value as { triggers?: unknown }).triggers)\n\t\tcase 'invalidate':\n\t\t\treturn hasOwn(value, 'cause')\n\t\tcase 'lineage':\n\t\t\treturn hasOwn(value, 'parent')\n\t\tcase 'error':\n\t\t\treturn hasOwn(value, 'error')\n\t\tcase 'multiple':\n\t\t\treturn Array.isArray((value as { reasons?: unknown }).reasons)\n\t\tdefault:\n\t\t\treturn true\n\t}\n}\n\ntype ReasonCauseEntry = {\n\tlabel: string\n\ttouch?: unknown[]\n\tdependency?: unknown[]\n}\n\ntype ReasonCauseList = {\n\tcount: number\n\tentries: ReasonCauseEntry[]\n}\n\nconst reasonCauseEntries = new WeakSet<object>()\nconst reasonCauseDetails = new WeakSet<object>()\n\ntype ReasonCauseDetail = {\n\tkind: 'touch' | 'dependency'\n\tvalues: unknown[]\n}\n\nfunction isReasonCauseList(value: unknown): value is ReasonCauseList {\n\treturn !!value && typeof value === 'object' && reasonCauseLists.has(value)\n}\n\nfunction isReasonCauseEntry(value: unknown): value is ReasonCauseEntry {\n\treturn !!value && typeof value === 'object' && reasonCauseEntries.has(value)\n}\n\nfunction isReasonCauseDetail(value: unknown): value is ReasonCauseDetail {\n\treturn !!value && typeof value === 'object' && reasonCauseDetails.has(value)\n}\n\nfunction wrapReasonCauseEntry(entry: ReasonCauseEntry): ReasonCauseEntry {\n\treasonCauseEntries.add(entry)\n\treturn entry\n}\n\nfunction wrapReasonCauseDetail(detail: ReasonCauseDetail): ReasonCauseDetail {\n\treasonCauseDetails.add(detail)\n\treturn detail\n}\n\nfunction wrapReasonCauseList(list: ReasonCauseList): ReasonCauseList {\n\treasonCauseLists.add(list)\n\treturn list\n}\n\nexport function getCleanupReasonChain(reason: CleanupReason): CleanupReason[] {\n\tconst chain: CleanupReason[] = []\n\tlet current: CleanupReason | undefined = reason\n\twhile (current) {\n\t\tchain.push(current)\n\t\tcurrent = current.chain\n\t}\n\treturn chain\n}\n\nfunction formatReasonSummary(reason: CleanupReason): string {\n\tswitch (reason.type) {\n\t\tcase 'propChange':\n\t\t\treturn `propChange: ${formatTriggerSummary(reason)}`\n\t\tcase 'invalidate':\n\t\t\treturn `invalidate ← ${formatReasonSummary(reason.cause)}`\n\t\tcase 'stopped':\n\t\t\treturn reason.detail ? `stopped (${reason.detail})` : 'stopped'\n\t\tcase 'external':\n\t\t\treturn `external: ${reason.detail}`\n\t\tcase 'gc':\n\t\t\treturn 'gc'\n\t\tcase 'lineage':\n\t\t\treturn `lineage ← ${formatReasonSummary(reason.parent)}`\n\t\tcase 'error':\n\t\t\treturn `error: ${formatUnknownSummary(reason.error)}`\n\t\tcase 'multiple':\n\t\t\treturn `multiple: ${reason.reasons.map(formatReasonSummary).join(' | ')}`\n\t}\n}\n\nfunction formatTriggerSummary(reason: Extract<CleanupReason, { type: 'propChange' }>): string {\n\tconst groups = new Map<object, { target: string; parts: string[] }>()\n\tconst ordered: Array<{ target: string; parts: string[] }> = []\n\tfor (const { obj, evolution } of reason.triggers) {\n\t\tlet group = groups.get(obj)\n\t\tif (!group) {\n\t\t\tgroup = { target: describeTarget(obj), parts: [] }\n\t\t\tgroups.set(obj, group)\n\t\t\tordered.push(group)\n\t\t}\n\t\tgroup.parts.push(\n\t\t\tevolution.type === 'bunch'\n\t\t\t\t? `${evolution.type} ${String(evolution.method)}`\n\t\t\t\t: `${evolution.type} ${String(evolution.prop)}`\n\t\t)\n\t}\n\treturn ordered.map(({ target, parts }) => `${target}: ${parts.join(', ')}`).join(' | ')\n}\n\nfunction formatUnknownSummary(value: unknown): string {\n\tif (typeof value === 'string') return value\n\tif (typeof value === 'number' || typeof value === 'boolean' || value == null) return String(value)\n\tif (value instanceof Error) return value.message\n\tif (typeof value === 'function') return value.name || 'anonymous'\n\tif (typeof value === 'object') return value.constructor?.name || 'object'\n\treturn typeof value\n}\n\nfunction describeTarget(value: unknown): string {\n\tif (!value || typeof value !== 'object') return formatUnknownSummary(value)\n\tconst tag = value[Symbol.toStringTag]\n\tif (typeof tag === 'string' && tag && tag !== 'Object' && tag !== 'Array') return tag\n\tif (Array.isArray(value)) return 'Array'\n\tif (value instanceof Map) return 'Map'\n\tif (value instanceof Set) return 'Set'\n\treturn value.constructor?.name || 'object'\n}\n\nfunction formatPreview(value: unknown): string {\n\tif (typeof value === 'string') return value\n\tif (typeof value === 'number' || typeof value === 'boolean' || value == null) return String(value)\n\tif (typeof value === 'function') return `[function ${value.name || 'anonymous'}]`\n\tif (value instanceof Error) return `[Error: ${value.message}]`\n\tif (value && typeof value === 'object' && 'stack' in value) return '[lineage]'\n\tif (typeof value === 'object') return `[${value.constructor?.name || 'object'}]`\n\treturn `[${typeof value}]`\n}\n\nfunction renderDetailValue(value: unknown, color: string): unknown[] {\n\tif (value && typeof value === 'object' && 'stack' in value) {\n\t\treturn ['object', { object: value }]\n\t}\n\treturn ['span', { style: `color: ${color}; white-space: pre-wrap;` }, formatPreview(value)]\n}\n\ntype ReasonLineageDetail = {\n\tkind: 'touch' | 'dependency'\n\ttarget: string\n\tlabel: string\n\tvalue: unknown\n}\n\nfunction getReasonLineageDetails(reason: CleanupReason): ReasonLineageDetail[] {\n\tswitch (reason.type) {\n\t\tcase 'propChange': {\n\t\t\tconst details: ReasonLineageDetail[] = []\n\t\t\tfor (const trigger of reason.triggers) {\n\t\t\t\tconst target =\n\t\t\t\t\ttrigger.evolution.type === 'bunch'\n\t\t\t\t\t\t? String(trigger.evolution.method)\n\t\t\t\t\t\t: String(trigger.evolution.prop)\n\t\t\t\tconst label =\n\t\t\t\t\ttrigger.evolution.type === 'bunch'\n\t\t\t\t\t\t? `${trigger.evolution.type} ${String(trigger.evolution.method)}`\n\t\t\t\t\t\t: `${trigger.evolution.type} ${String(trigger.evolution.prop)}`\n\t\t\t\tif (trigger.touch) details.push({ kind: 'touch', target, label, value: trigger.touch })\n\t\t\t\tif (trigger.dependency)\n\t\t\t\t\tdetails.push({ kind: 'dependency', target, label, value: trigger.dependency })\n\t\t\t}\n\t\t\treturn details\n\t\t}\n\t\tcase 'invalidate':\n\t\t\treturn getReasonLineageDetails(reason.cause)\n\t\tcase 'lineage':\n\t\t\treturn getReasonLineageDetails(reason.parent)\n\t\tcase 'multiple':\n\t\t\treturn reason.reasons.flatMap(getReasonLineageDetails)\n\t\tcase 'external':\n\t\tdefault:\n\t\t\treturn []\n\t}\n}\n\nfunction renderLineageGroup(\n\tlabel: string,\n\tdetails: ReasonLineageDetail[],\n\tcolors: { block: string; title: string; meta: string }\n): unknown[] {\n\tconst groupObject = Object.fromEntries(details.map(({ label, value }) => [label, value]))\n\treturn [\n\t\t'div',\n\t\t{\n\t\t\tstyle: `margin-top: 4px; padding: 3px 5px; background: ${colors.block}; border-radius: 3px;`,\n\t\t},\n\t\t['div', { style: `color: ${colors.title}; margin-bottom: 3px;` }, `${label}: ${details.length}`],\n\t\t['object', { object: groupObject }],\n\t]\n}\n\nfunction renderLineageList(\n\tdetails: ReasonLineageDetail[],\n\tcolors: { block: string; title: string; meta: string }\n): unknown[] {\n\tconst grouped = new Map<string, ReasonCauseEntry>()\n\tfor (const { kind, label, value } of details) {\n\t\tlet entry = grouped.get(label)\n\t\tif (!entry) {\n\t\t\tentry = { label }\n\t\t\tgrouped.set(label, entry)\n\t\t}\n\t\tif (kind === 'touch') entry.touch = [...(entry.touch ?? []), value]\n\t\tif (kind === 'dependency') entry.dependency = [...(entry.dependency ?? []), value]\n\t}\n\tconst listObject = wrapReasonCauseList({\n\t\tcount: grouped.size,\n\t\tentries: Array.from(grouped.values(), wrapReasonCauseEntry),\n\t})\n\treturn [\n\t\t'div',\n\t\t{\n\t\t\tstyle: `margin-top: 4px; padding: 3px 5px; background: ${colors.block}; border-radius: 3px;`,\n\t\t},\n\t\t['object', { object: listObject }],\n\t]\n}\n\nfunction formatReasonWithoutChain(reason: CleanupReason): unknown[] {\n\tswitch (reason.type) {\n\t\tcase 'propChange':\n\t\t\treturn formatCleanupReason({ type: 'propChange', triggers: reason.triggers })\n\t\tcase 'invalidate':\n\t\t\treturn formatCleanupReason({ type: 'invalidate', cause: reason.cause })\n\t\tcase 'stopped':\n\t\t\treturn formatCleanupReason(reason.detail ? { type: 'stopped', detail: reason.detail } : { type: 'stopped' })\n\t\tcase 'external':\n\t\t\treturn formatCleanupReason({ type: 'external', detail: reason.detail })\n\t\tcase 'gc':\n\t\t\treturn formatCleanupReason({ type: 'gc' })\n\t\tcase 'lineage':\n\t\t\treturn formatCleanupReason({ type: 'lineage', parent: reason.parent })\n\t\tcase 'error':\n\t\t\treturn formatCleanupReason({ type: 'error', error: reason.error })\n\t\tcase 'multiple':\n\t\t\treturn formatCleanupReason({ type: 'multiple', reasons: reason.reasons })\n\t}\n}\n\nexport function logReason(reason: CleanupReason, tag?: string): string {\n\tconst chain = getCleanupReasonChain(reason)\n\tconsole.groupCollapsed(`🧹 Cleanup Reason${tag ? ` (${tag})` : ''}`)\n\tfor (let i = 0; i < chain.length; i++) {\n\t\tconsole.groupCollapsed(`${i === 0 ? '📍' : '↖'} ${formatReasonSummary(chain[i])}`)\n\t\tconst details = getReasonLineageDetails(chain[i])\n\t\tif (details.length > 0) {\n\t\t\tfor (const { kind, label, value } of details) console.log(`${kind} ${label}`, value)\n\t\t} else {\n\t\t\tconsole.log(...formatReasonWithoutChain(chain[i]))\n\t\t}\n\t\tconsole.groupEnd()\n\t}\n\tconsole.groupEnd()\n\treturn `🧹 Cleanup Reason${tag ? ` (${tag})` : ''}`\n}\n\nexport const reasonFormatter = {\n\theader: (obj: unknown) => {\n\t\tif (isReasonCauseList(obj)) {\n\t\t\treturn ['span', { style: 'font-weight: bold;' }, `causes: ${obj.count}`]\n\t\t}\n\t\tif (isReasonCauseEntry(obj)) {\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: bold;' },\n\t\t\t\t`${obj.label}:`,\n\t\t\t\t...(obj.touch?.length\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t['span', { style: 'margin-left: 6px;' }, ['object', { object: wrapReasonCauseDetail({ kind: 'touch', values: obj.touch }) }]],\n\t\t\t\t\t\t]\n\t\t\t\t\t: []),\n\t\t\t\t...(obj.dependency?.length\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t['span', { style: 'margin-left: 6px;' }, ['object', { object: wrapReasonCauseDetail({ kind: 'dependency', values: obj.dependency }) }]],\n\t\t\t\t\t\t]\n\t\t\t\t\t: []),\n\t\t\t]\n\t\t}\n\t\tif (isReasonCauseDetail(obj)) {\n\t\t\treturn [\n\t\t\t\t'span',\n\t\t\t\t{ style: 'font-weight: normal;' },\n\t\t\t\tobj.values.length === 1 ? obj.kind : `${obj.values.length} ${obj.kind}`,\n\t\t\t]\n\t\t}\n\t\tif (!isCleanupReason(obj)) return null\n\t\tconst chain = getCleanupReasonChain(obj)\n\t\tconst isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst color = isDark ? '#8fb3ff' : '#0b5fff'\n\t\treturn ['span', { style: `color: ${color}; font-weight: bold;` }, `🧹 ${formatReasonSummary(obj)}${chain.length > 1 ? ` ×${chain.length}` : ''}`]\n\t},\n\thasBody: (obj: unknown) => isCleanupReason(obj) || isReasonCauseList(obj) || isReasonCauseDetail(obj),\n\tbody: (obj: unknown) => {\n\t\tif (isReasonCauseList(obj)) {\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0;' },\n\t\t\t\t...obj.entries.map((entry) => [\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'display: block; margin-top: 2px;' },\n\t\t\t\t\t['object', { object: entry }],\n\t\t\t\t]),\n\t\t\t]\n\t\t}\n\t\tif (isReasonCauseDetail(obj)) {\n\t\t\tconst detailValue =\n\t\t\t\tobj.values.length === 1\n\t\t\t\t\t? obj.values[0]\n\t\t\t\t\t: Object.fromEntries(obj.values.map((value, index) => [`${obj.kind} ${index + 1}`, value]))\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: 'padding: 4px 0; line-height: 1.4;' },\n\t\t\t\t[\n\t\t\t\t\t'div',\n\t\t\t\t\t{ style: 'margin-top: 2px;' },\n\t\t\t\t\trenderDetailValue(detailValue, 'inherit'),\n\t\t\t\t],\n\t\t\t]\n\t\t}\n\t\tif (!isCleanupReason(obj)) return null\n\t\tconst chain = getCleanupReasonChain(obj)\n\t\tconst isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\t\tconst colors = isDark\n\t\t\t? { block: '#2d2d2d', title: '#ffffff', meta: '#8b949e' }\n\t\t\t: { block: '#eee', title: '#222', meta: '#57606a' }\n\t\tconst children = chain.map((reason, index) => {\n\t\t\tconst lineageDetails = getReasonLineageDetails(reason)\n\t\t\tconst renderedDetails =\n\t\t\t\tlineageDetails.length > 0\n\t\t\t\t\t? [renderLineageList(lineageDetails, colors)]\n\t\t\t\t\t: formatReasonWithoutChain(reason).map((part) =>\n\t\t\t\t\t\t\ttypeof part === 'string'\n\t\t\t\t\t\t\t\t? ['span', { style: `color: ${colors.meta}; white-space: pre-wrap;` }, part]\n\t\t\t\t\t\t\t\t: renderDetailValue(part, colors.meta)\n\t\t\t\t\t\t)\n\t\t\treturn [\n\t\t\t\t'div',\n\t\t\t\t{ style: `margin-top: 5px; padding: 4px 6px; background: ${colors.block}; border-radius: 3px;` },\n\t\t\t\t['div', { style: `font-weight: bold; color: ${colors.title}; margin-bottom: 3px;` }, `${index === 0 ? '📍' : '↖'} ${formatReasonSummary(reason)}`],\n\t\t\t\t['div', { style: 'display: inline-block;' }, ...renderedDetails],\n\t\t\t]\n\t\t})\n\t\treturn ['div', { style: 'padding: 5px; line-height: 1.4;' }, ...children]\n\t},\n}\n","import { effect } from '../src/reactive/effects'\nimport { getRoot } from '../src/reactive/registry'\nimport type { LineageSegment } from './lineage'\nimport { reactive } from '../src/reactive/proxy'\n\n/**\n * Displays a floating reactive panel in the browser showing the lineage of triggered effects.\n */\nexport function showLineagePanel() {\n\tif (typeof document === 'undefined') return\n\n\t// Detect color scheme preference\n\tconst isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n\t\n\t// Color schemes\n\tconst colors = isDarkMode ? {\n\t\tpanelBg: 'rgba(30, 30, 30, 0.95)',\n\t\tpanelBorder: '#444',\n\t\theaderBg: '#8B4513',\n\t\theaderText: '#ffffff',\n\t\tcloseBtn: '#ffffff',\n\t\tplaceholderText: '#999',\n\t\tsegmentBorder: '#8B4513',\n\t\ttitleText: '#ffffff',\n\t\tframeText: '#ccc',\n\t\tatText: '#888',\n\t\tlinkText: '#58a6ff',\n\t} : {\n\t\tpanelBg: 'rgba(255, 255, 255, 0.95)',\n\t\tpanelBorder: '#ddd',\n\t\theaderBg: '#704214',\n\t\theaderText: '#ffffff',\n\t\tcloseBtn: '#ffffff',\n\t\tplaceholderText: '#666',\n\t\tsegmentBorder: '#704214',\n\t\ttitleText: '#222',\n\t\tframeText: '#555',\n\t\tatText: '#999',\n\t\tlinkText: '#005cc5',\n\t}\n\n\tconst state = reactive({\n\t\tactiveLineage: [] as LineageSegment[],\n\t\tisVisible: true,\n\t})\n\n\t// onEffectTrigger tracks \"this effect\" (here nothing) — not useful for a global panel.\n\t// Would need zone-based events to track all triggers. Panel is cosmetic/experimental (260206).\n\n\t// UI Creation\n\tconst panel = document.createElement('div')\n\tpanel.id = 'mutts-lineage-panel'\n\tObject.assign(panel.style, {\n\t\tposition: 'fixed',\n\t\tbottom: '20px',\n\t\tright: '20px',\n\t\twidth: '400px',\n\t\tmaxHeight: '80vh',\n\t\tbackgroundColor: colors.panelBg,\n\t\tbackdropFilter: 'blur(10px)',\n\t\tborder: `1px solid ${colors.panelBorder}`,\n\t\tborderRadius: '12px',\n\t\tboxShadow: '0 10px 25px rgba(0,0,0,0.15)',\n\t\tzIndex: '999999',\n\t\tfontFamily: 'Inter, system-ui, sans-serif',\n\t\tfontSize: '12px',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\toverflow: 'hidden',\n\t\ttransition: 'opacity 0.3s, transform 0.3s',\n\t})\n\n\tconst header = document.createElement('div')\n\tObject.assign(header.style, {\n\t\tpadding: '12px 16px',\n\t\tbackground: colors.headerBg,\n\t\tcolor: colors.headerText,\n\t\tfontWeight: '600',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t\tcursor: 'grab',\n\t})\n\theader.innerHTML = '<span><span style=\"font-size: 14px; margin-right: 5px;\">🦴</span> Mutts Lineage</span>'\n\t\n\tconst closeBtn = document.createElement('button')\n\tcloseBtn.innerText = '×'\n\tObject.assign(closeBtn.style, {\n\t\tbackground: 'none',\n\t\tborder: 'none',\n\t\tcolor: colors.closeBtn,\n\t\tfontSize: '20px',\n\t\tcursor: 'pointer',\n\t\tpadding: '0 5px',\n\t})\n\tcloseBtn.onclick = () => {\n\t\tstate.isVisible = false\n\t}\n\theader.appendChild(closeBtn)\n\tpanel.appendChild(header)\n\n\tconst content = document.createElement('div')\n\tObject.assign(content.style, {\n\t\tpadding: '16px',\n\t\toverflowY: 'auto',\n\t\tflex: '1',\n\t})\n\tpanel.appendChild(content)\n\n\tdocument.body.appendChild(panel)\n\n\t// Reactivity: Update Visibility\n\teffect`lineage-panel:visibility`(() => {\n\t\tpanel.style.opacity = state.isVisible ? '1' : '0'\n\t\tpanel.style.pointerEvents = state.isVisible ? 'all' : 'none'\n\t\tpanel.style.transform = state.isVisible ? 'translateY(0)' : 'translateY(20px)'\n\t})\n\n\t// Reactivity: Update Content\n\teffect`lineage-panel:content`(() => {\n\t\tif (state.activeLineage.length === 0) {\n\t\t\tcontent.innerHTML = `<div style=\"color: ${colors.placeholderText}; font-style: italic; text-align: center; margin-top: 20px;\">No effect triggered yet...</div>`\n\t\t\treturn\n\t\t}\n\n\t\tcontent.innerHTML = ''\n\t\tstate.activeLineage.forEach((segment, i) => {\n\t\t\tconst segDiv = document.createElement('div')\n\t\t\tObject.assign(segDiv.style, {\n\t\t\t\tmarginBottom: '16px',\n\t\t\t\tborderLeft: `2px solid ${colors.segmentBorder}`,\n\t\t\t\tpaddingLeft: '12px',\n\t\t\t})\n\n\t\t\tconst title = document.createElement('div')\n\t\t\tObject.assign(title.style, {\n\t\t\t\tfontWeight: 'bold',\n\t\t\t\tmarginBottom: '6px',\n\t\t\t\tcolor: colors.titleText,\n\t\t\t})\n\t\t\tconst effectName = segment.effect ? (getRoot(segment.effect).name || 'anonymous') : 'root'\n\t\t\ttitle.innerText = i === 0 ? `📍 Current: ${effectName}` : `↖ Effect: ${effectName}`\n\t\t\tsegDiv.appendChild(title)\n\n\t\t\tsegment.stack.forEach(frame => {\n\t\t\t\tconst frameDiv = document.createElement('div')\n\t\t\t\tObject.assign(frameDiv.style, {\n\t\t\t\t\tcolor: colors.frameText,\n\t\t\t\t\tmarginBottom: '3px',\n\t\t\t\t\tfontSize: '11px',\n\t\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\ttextOverflow: 'ellipsis',\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t})\n\t\t\t\tframeDiv.title = frame.raw\n\t\t\t\tframeDiv.innerHTML = `<span style=\"color: ${colors.atText}\">at</span> ${frame.functionName} <span style=\"color: ${colors.linkText}; text-decoration: underline;\">(${frame.fileName.split('/').pop()}:${frame.lineNumber})</span>`\n\t\t\t\tsegDiv.appendChild(frameDiv)\n\t\t\t})\n\n\t\t\tcontent.appendChild(segDiv)\n\t\t})\n\t})\n}\n","import { isReactive, unwrap } from '../src/reactive/types'\n\nfunction getColors() {\n\tconst isDark = typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches\n\treturn {\n\t\taccent: isDark ? '#b392f0' : '#6f42c1',\n\t\tmeta: isDark ? '#8b949e' : '#57606a',\n\t}\n}\n\nfunction getReactiveTarget(obj: unknown): object | undefined {\n\tif (!obj || typeof obj !== 'object' || !isReactive(obj)) return undefined\n\treturn unwrap(obj)\n}\n\nexport const reactiveFormatter = {\n\theader: (obj: unknown) => {\n\t\tconst target = getReactiveTarget(obj)\n\t\tif (!target) return null\n\t\tconst colors = getColors()\n\t\treturn [\n\t\t\t'span',\n\t\t\t{},\n\t\t\t['span', { style: `color: ${colors.accent}; font-weight: bold;` }, 'Reactive<'],\n\t\t\t['object', { object: target }],\n\t\t\t['span', { style: `color: ${colors.accent}; font-weight: bold;` }, '>'],\n\t\t]\n\t},\n\thasBody: () => false,\n}\n","/**\n * Debug utilities for the reactivity system\n * - Captures effect metadata (names, parent relationships)\n * - Records cause → consequence edges with object/prop labels\n * - Provides graph data for tooling (DevTools panel, etc.)\n */\n\nimport { effect } from '../src/reactive/effects'\nimport { effectToReactiveObjects, getEffectNode, getRoot, markWithRoot } from '../src/reactive/registry'\nimport { allProps, type EffectCleanup, type EffectTrigger, type Evolution, type CleanupReason, devPreset, options } from '../src/reactive/types'\nimport { captureLineage, digestLineage, getStackFrame, getLineage, formatLineage, wrapLineageForDebug, lineageFormatter, logLineage, isLineage } from './lineage'\nimport { isCleanupReason, logReason, reasonFormatter } from './reason'\nimport { showLineagePanel } from './lineage-panel'\nimport { setDebugHooks } from '../src/reactive/debug-hooks'\nimport { getActiveEffect } from '../src/reactive/effect-context'\nimport { reactiveFormatter } from './reactive'\n\n/**\n * Log an error with detailed context if error logging is enabled\n */\nexport function logError(error: Error, context: 'throw' | 'catch', effect?: any) {\n\tif (!options.introspection?.logErrors) return\n\t\n\tconst contextStr = context === 'throw' ? '🔴 Thrown' : '🟡 Caught'\n\t\n\tconsole.group(`${contextStr} Error: ${error.message}`)\n\tconsole.error('Error:', error)\n\t\n\t// Try to get effect name if available\n\tif (effect && typeof effect === 'object' && effect.name) {\n\t\tconsole.log('Effect:', effect.name)\n\t}\n\t\n\tconsole.groupEnd()\n}\n\n// Log initialization for debugging\n\nconst EXTERNAL_SOURCE = Symbol('external-source')\ntype SourceEffect = EffectTrigger | typeof EXTERNAL_SOURCE\n\nlet devtoolsEnabled = false\n\n// Registry for debugging (populated lazily when DevTools are enabled)\nconst debugEffectRegistry = new Set<EffectTrigger>()\nconst debugObjectRegistry = new Set<object>()\n\n// Human-friendly names\nconst effectNames = new WeakMap<EffectTrigger | EffectCleanup, string>()\nconst objectNames = new WeakMap<object, string>()\nlet effectCounter = 0\nlet objectCounter = 0\n\n// Cause/consequence edges aggregated by (source, target, descriptor)\ninterface TriggerRecord {\n\tlabel: string\n\tobject: object\n\tprop: any\n\tevolution: Evolution\n\tcount: number\n\tlastTriggered: number\n}\n\nconst triggerGraph = new Map<SourceEffect, Map<EffectTrigger, Map<string, TriggerRecord>>>()\n\nexport type NodeKind = 'effect' | 'external' | 'state'\nexport type EdgeKind = 'cause' | 'dependency' | 'trigger'\n\nexport interface EffectNode {\n\tid: string\n\tlabel: string\n\ttype: NodeKind\n\tdepth: number\n\tparentId?: string\n\tdebugName?: string\n}\n\nexport interface ObjectNode {\n\tid: string\n\tlabel: string\n\ttype: NodeKind\n\tdebugName?: string\n}\n\nexport interface GraphEdge {\n\tid: string\n\tsource: string\n\ttarget: string\n\ttype: EdgeKind\n\tlabel: string\n\tcount?: number\n}\n\nexport interface ReactivityGraph {\n\tnodes: Array<EffectNode | ObjectNode>\n\tedges: GraphEdge[]\n\tmeta: {\n\t\tgeneratedAt: number\n\t\tdevtoolsEnabled: boolean\n\t}\n}\n\nfunction ensureEffectName(effect: EffectTrigger | EffectCleanup): string {\n\tlet name = effectNames.get(effect)\n\tif (!name) {\n\t\tconst root = getRoot(effect)\n\t\tname = root?.name?.trim() || `effect_${++effectCounter}`\n\t}\n\teffectNames.set(effect, name)\n\treturn name\n}\n\nfunction ensureObjectName(obj: object): string {\n\tlet name = objectNames.get(obj)\n\tif (!name) {\n\t\t// Try Symbol.toStringTag first (standard way to customize object string representation)\n\t\tconst toStringTag = obj?.[Symbol.toStringTag]\n\t\tconst ctorName = obj?.constructor?.name\n\t\tconst base = toStringTag || (ctorName && ctorName !== 'Object' ? ctorName : 'object')\n\t\tname = `${base}_${++objectCounter}`\n\t\tobjectNames.set(obj, name)\n\t}\n\treturn name\n}\n\nfunction describeProp(obj: object, prop: any): string {\n\tconst objectName = ensureObjectName(obj)\n\tif (prop === allProps) return `${objectName}.*`\n\tif (typeof prop === 'symbol') return `${objectName}.${prop.description ?? prop.toString()}`\n\treturn `${objectName}.${String(prop)}`\n}\n\nfunction addEffectToRegistry(effect: EffectTrigger) {\n\tif (!effect || debugEffectRegistry.has(effect)) return\n\tdebugEffectRegistry.add(effect)\n\tconst deps = effectToReactiveObjects.get(effect)\n\tif (deps) {\n\t\tfor (const obj of deps) {\n\t\t\tdocumentObject(obj)\n\t\t}\n\t}\n}\n\nfunction documentObject(obj: object) {\n\tif (!debugObjectRegistry.has(obj)) {\n\t\tdbRegisterObject(obj)\n\t}\n}\n\nfunction dbRegisterObject(obj: object) {\n\tdebugObjectRegistry.add(obj)\n\tensureObjectName(obj)\n}\n\nfunction ensureParentChains(effects: Set<EffectTrigger>) {\n\tconst queue = Array.from(effects)\n\tfor (let i = 0; i < queue.length; i++) {\n\t\tconst effect = queue[i]\n\t\tconst parent = getEffectNode(effect).parent\n\t\tif (parent && !effects.has(parent)) {\n\t\t\teffects.add(parent)\n\t\t\tqueue.push(parent)\n\t\t}\n\t}\n}\n\nfunction ensureTriggerContainers(source: SourceEffect) {\n\tlet targetMap = triggerGraph.get(source)\n\tif (!targetMap) {\n\t\ttargetMap = new Map()\n\t\ttriggerGraph.set(source, targetMap)\n\t}\n\treturn targetMap\n}\n\nfunction ensureTriggerRecord(\n\tsource: SourceEffect,\n\ttarget: EffectTrigger,\n\tlabel: string,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n): TriggerRecord {\n\tconst targetMap = ensureTriggerContainers(source)\n\tlet labelMap = targetMap.get(target)\n\tif (!labelMap) {\n\t\tlabelMap = new Map()\n\t\ttargetMap.set(target, labelMap)\n\t}\n\tlet record = labelMap.get(label)\n\tif (!record) {\n\t\trecord = { label, object: obj, prop, evolution, count: 0, lastTriggered: Date.now() }\n\t\tlabelMap.set(label, record)\n\t}\n\treturn record\n}\n\n/**\n * Assign a debug-friendly name to an effect (shown in DevTools)\n */\nexport function setEffectName(effect: EffectTrigger | EffectCleanup, name: string) {\n\teffectNames.set(effect, name)\n}\n\n/**\n * Assign a debug-friendly name to a reactive object\n */\nexport function setObjectName(obj: object, name: string) {\n\tobjectNames.set(obj, name)\n\tdebugObjectRegistry.add(obj)\n}\n\n/**\n * Register an effect so it appears in the DevTools graph\n */\nexport function registerEffectForDebug(effect: EffectTrigger) {\n\tif (!effect || !devtoolsEnabled) return\n\taddEffectToRegistry(effect)\n}\n\n/**\n * Register a reactive object so it appears in the DevTools graph\n */\nexport function registerObjectForDebug(obj: object) {\n\tif (!devtoolsEnabled) return\n\tdocumentObject(obj)\n}\n\n/**\n * Records a cause → consequence relationship between effects.\n * @param source - The effect performing the write (undefined if external/user input)\n * @param target - The effect that re-ran because of the write\n * @param obj - The reactive object that changed\n * @param prop - The property that changed\n * @param evolution - The type of change (set/add/del/bunch)\n */\nexport function recordTriggerLink(\n\tsource: EffectTrigger | undefined,\n\ttarget: EffectTrigger,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n) {\n\tif (options.introspection?.enableHistory) {\n\t\taddToMutationHistory(source, target, obj, prop, evolution)\n\t}\n\tif (!devtoolsEnabled) return\n\taddEffectToRegistry(target)\n\tif (source) addEffectToRegistry(source)\n\tconst descriptor = describeProp(obj, prop)\n\tconst record = ensureTriggerRecord(\n\t\tsource ?? EXTERNAL_SOURCE,\n\t\ttarget,\n\t\tdescriptor,\n\t\tobj,\n\t\tprop,\n\t\tevolution\n\t)\n\trecord.count += 1\n\trecord.lastTriggered = Date.now()\n\tdocumentObject(obj)\n}\n\n/**\n * Traces back the chain of triggers that led to a specific effect\n * @param effect The effect to trace back\n * @param limit Max depth\n */\nexport function getTriggerChain(effect: EffectTrigger, limit = 5): string[] {\n\tconst chain: string[] = []\n\tlet current = effect\n\tfor (let i = 0; i < limit; i++) {\n\t\t// Find who triggered 'current'\n\t\t// We need to reverse search the triggerGraph (source -> target)\n\t\t// This is expensive O(Edges) but okay for error reporting\n\t\tlet foundSource: EffectTrigger | undefined\n\t\tlet foundReason = ''\n\n\t\tsearch: for (const [source, targetMap] of triggerGraph) {\n\t\t\tfor (const [target, labelMap] of targetMap) {\n\t\t\t\tif (target === current) {\n\t\t\t\t\t// Found a source! Use the most recent trigger record\n\t\t\t\t\tlet lastTime = 0\n\t\t\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\t\t\tif (record.lastTriggered > lastTime) {\n\t\t\t\t\t\t\tlastTime = record.lastTriggered\n\t\t\t\t\t\t\tfoundReason = record.label\n\t\t\t\t\t\t\tfoundSource = source === EXTERNAL_SOURCE ? undefined : (source as EffectTrigger)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (foundSource || foundReason) break search\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (foundSource) {\n\t\t\tchain.push(\n\t\t\t\t`${ensureEffectName(foundSource)} -> (${foundReason}) -> ${ensureEffectName(current)}`\n\t\t\t)\n\t\t\tcurrent = foundSource\n\t\t} else if (foundReason) {\n\t\t\tchain.push(`External -> (${foundReason}) -> ${ensureEffectName(current)}`)\n\t\t\tbreak\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn chain.reverse()\n}\n\nfunction buildEffectNodes(allEffects: Set<EffectTrigger>) {\n\tconst nodes: EffectNode[] = []\n\tconst nodeByEffect = new Map<EffectTrigger, EffectNode>()\n\n\tconst ordered = Array.from(allEffects)\n\tfor (const effect of ordered) {\n\t\tconst label = ensureEffectName(effect)\n\t\tconst node: EffectNode = {\n\t\t\tid: `effect_${nodes.length}`,\n\t\t\tlabel,\n\t\t\ttype: 'effect',\n\t\t\tdepth: 0,\n\t\t\tdebugName: label,\n\t\t}\n\t\tnodes.push(node)\n\t\tnodeByEffect.set(effect, node)\n\t}\n\n\tconst depthCache = new Map<EffectTrigger, number>()\n\tconst computeDepth = (effect: EffectTrigger | undefined): number => {\n\t\tif (!effect) return 0\n\t\tconst cached = depthCache.get(effect)\n\t\tif (cached !== undefined) return cached\n\t\tconst parent = getEffectNode(effect).parent\n\t\tconst depth = computeDepth(parent) + (parent ? 1 : 0)\n\t\tdepthCache.set(effect, depth)\n\t\treturn depth\n\t}\n\n\tfor (const [effect, node] of nodeByEffect) {\n\t\tnode.depth = computeDepth(effect)\n\t\tconst parent = getEffectNode(effect).parent\n\t\tif (parent) {\n\t\t\tconst parentNode = nodeByEffect.get(parent)\n\t\t\tif (parentNode) {\n\t\t\t\tnode.parentId = parentNode.id\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { nodes, nodeByEffect }\n}\n\n/**\n * Builds a graph representing current reactive state (effects, objects, and trigger edges)\n */\nexport function buildReactivityGraph(): ReactivityGraph {\n\tconst nodes: Array<EffectNode | ObjectNode> = []\n\tconst edges: GraphEdge[] = []\n\tconst nodeIds = new Map<EffectTrigger | EffectCleanup | object | SourceEffect, string>()\n\n\tconst allEffects = new Set<EffectTrigger>(debugEffectRegistry)\n\tensureParentChains(allEffects)\n\tconst { nodes: effectNodes, nodeByEffect } = buildEffectNodes(allEffects)\n\tfor (const node of effectNodes) nodes.push(node)\n\tfor (const [effect, node] of nodeByEffect) {\n\t\tnodeIds.set(effect, node.id)\n\t}\n\n\t// Object nodes (optional, used for dependency inspection)\n\tfor (const obj of debugObjectRegistry) {\n\t\tconst id = `object_${nodes.length}`\n\t\tnodes.push({ id, label: ensureObjectName(obj), type: 'state', debugName: objectNames.get(obj) })\n\t\tnodeIds.set(obj, id)\n\t}\n\n\t// External source node (user/system outside of effects)\n\tif (triggerGraph.has(EXTERNAL_SOURCE)) {\n\t\tconst externalId = `effect_external`\n\t\tnodes.push({ id: externalId, label: 'External', type: 'external', depth: 0 })\n\t\tnodeIds.set(EXTERNAL_SOURCE, externalId)\n\t}\n\n\t// Dependency edges (effect → object)\n\tfor (const effect of allEffects) {\n\t\tconst effectId = nodeIds.get(effect)\n\t\tif (!effectId) continue\n\t\tconst deps = effectToReactiveObjects.get(effect)\n\t\tif (!deps) continue\n\t\tfor (const obj of deps) {\n\t\t\tconst objId = nodeIds.get(obj)\n\t\t\tif (!objId) continue\n\t\t\tedges.push({\n\t\t\t\tid: `${effectId}->${objId}`,\n\t\t\t\tsource: effectId,\n\t\t\t\ttarget: objId,\n\t\t\t\ttype: 'dependency',\n\t\t\t\tlabel: 'depends',\n\t\t\t})\n\t\t}\n\t}\n\n\t// Cause edges (effect/object/prop → effect)\n\tfor (const [source, targetMap] of triggerGraph) {\n\t\tfor (const [targetEffect, labelMap] of targetMap) {\n\t\t\tconst targetId = nodeIds.get(targetEffect)\n\t\t\tif (!targetId) continue\n\t\t\tconst sourceId = nodeIds.get(source)\n\t\t\tif (!sourceId) continue\n\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\tedges.push({\n\t\t\t\t\tid: `${sourceId}->${targetId}:${record.label}`,\n\t\t\t\t\tsource: sourceId,\n\t\t\t\t\ttarget: targetId,\n\t\t\t\t\ttype: 'cause',\n\t\t\t\t\tlabel: record.count > 1 ? `${record.label} (${record.count})` : record.label,\n\t\t\t\t\tcount: record.count,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tnodes,\n\t\tedges,\n\t\tmeta: {\n\t\t\tgeneratedAt: Date.now(),\n\t\t\tdevtoolsEnabled,\n\t\t},\n\t}\n}\n/**\n * Enables the DevTools bridge and exposes the debug API on window/global.\n * Call as early as possible in development builds.\n */\nexport function enableDevTools() {\n\tconst globalScope = (\n\t\ttypeof globalThis !== 'undefined'\n\t\t\t? globalThis\n\t\t\t: typeof window !== 'undefined'\n\t\t\t\t? window\n\t\t\t\t: typeof global !== 'undefined'\n\t\t\t\t\t? global\n\t\t\t\t\t: undefined\n\t) as any\n\tif (!globalScope) return\n\tif (devtoolsEnabled) return\n\tdevtoolsEnabled = true\n\tif (options.introspection) {\n\t\toptions.introspection.logErrors = true\n\t}\n\t\n\tglobalScope.__MUTTS_DEBUG__ = {\n\t\tgetGraph: buildReactivityGraph,\n\t\tlogLineage(tag?: string) {\n\t\t\tlogLineage(getLineage())\n\t\t\treturn '🦴 Effect Lineage Trace' + (tag ? ` (${tag})` : '')\n\t\t},\n\t\tlogReason(reason?: CleanupReason, tag?: string) {\n\t\t\tconst reasonToLog = reason ?? globalScope.__MUTTS_DEBUG__.reason\n\t\t\tif (!reasonToLog) return '🧹 Cleanup Reason'\n\t\t\treturn logReason(reasonToLog, tag)\n\t\t},\n\t\tget lineage() {\n\t\t\treturn getLineage()\n\t\t},\n\t\tshowLineagePanel,\n\t\tsetEffectName,\n\t\tsetObjectName,\n\t\tregisterEffect: registerEffectForDebug,\n\t\tregisterObject: registerObjectForDebug,\n\t\t/**\n\t\t * Returns the reason why the current effect is being executed.\n\t\t * Returns undefined if not in an effect or if this is the first run.\n\t\t * @type {() => import('../src/reactive/types').CleanupReason | undefined}\n\t\t */\n\t\tget reason() {\n\t\t\tconst activeEffect = getActiveEffect()\n\t\t\tif (!activeEffect) return undefined\n\t\t\tconst node = getEffectNode(activeEffect)\n\t\t\treturn node?.currentReason\n\t\t},\n\t}\n\n\t// @ts-ignore - devtoolsFormatters is a Chrome-specific array\n\tif (globalScope.devtoolsFormatters)\n\t\tglobalScope.devtoolsFormatters.push(lineageFormatter, reasonFormatter, reactiveFormatter)\n\telse\n\t\tglobalScope.devtoolsFormatters = [lineageFormatter, reasonFormatter, reactiveFormatter]\n\n\tsetDebugHooks({\n\t\tisDevtoolsEnabled: () => devtoolsEnabled,\n\t\tregisterEffect: registerEffectForDebug,\n\t\tgetTriggerChain: getTriggerChain,\n\t\tcaptureStack: getStackFrame,\n\t\tcaptureLineage,\n\t\tformatStack: (stack: any) => {\n\t\t\tif (isCleanupReason(stack)) return [stack]\n\t\t\tif (typeof stack === 'string') {\n\t\t\t\treturn [\n\t\t\t\t\t`\\n ${stack\n\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t.map((l) => l.trim())\n\t\t\t\t\t\t.join('\\n ')}`,\n\t\t\t\t]\n\t\t\t}\n\t\t\tif (isLineage(stack)) {\n\t\t\t\treturn ['\\n', stack]\n\t\t\t}\n\t\t\treturn ['\\n', stack]\n\t\t},\n\t\trecordTriggerLink: recordTriggerLink,\n\t\tdecorateError: (error, trigger) => {\n\t\t\tif (\n\t\t\t\toptions.introspection?.logErrors &&\n\t\t\t\terror &&\n\t\t\t\ttypeof error === 'object' &&\n\t\t\t\t'stack' in error &&\n\t\t\t\t!('lineage' in error)\n\t\t\t) {\n\t\t\t\t;(error as any).lineage = wrapLineageForDebug(getLineage(trigger, error))\n\t\t\t}\n\t\t},\n\t})\n\n\tconst originalWarn = options.warn\n\toptions.warn = (...args: any[]) => {\n\t\tconst lineage = captureLineage()\n\t\toriginalWarn(...args, lineage)\n\t}\n}\n\nexport function forceEnableGraphTracking() {\n\tdevtoolsEnabled = true\n}\n\nexport function isDevtoolsEnabled() {\n\treturn devtoolsEnabled\n}\n\n/**\n * Returns the raw dependency graph data structure.\n * This is useful for programmatic analysis of the reactive system.\n */\nexport function getDependencyGraph() {\n\treturn {\n\t\tnodes: buildReactivityGraph().nodes,\n\t\tedges: buildReactivityGraph().edges,\n\t}\n}\n\n/**\n * Capture a complete snapshot of the current reactive state\n */\nexport function snapshot() {\n\treturn {\n\t\tgraph: getDependencyGraph(),\n\t\thistory: getMutationHistory(),\n\t\ttimestamp: Date.now(),\n\t}\n}\n\n/**\n * Returns a list of effects that depend on the given object.\n */\nexport function getDependents(obj: object): EffectTrigger[] {\n\tconst dependents: EffectTrigger[] = []\n\t// Scan the trigger graph for effects triggered by this object\n\t// This is O(E) where E is the number of edges, might need optimization for large graphs\n\t// but acceptable for introspection\n\tfor (const [_source, targetMap] of triggerGraph) {\n\t\tfor (const [targetEffect, labelMap] of targetMap) {\n\t\t\tfor (const record of labelMap.values()) {\n\t\t\t\tif (record.object === obj) {\n\t\t\t\t\tdependents.push(targetEffect)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Also check direct dependencies (dependency graph)\n\t// We don't have a direct obj -> effect map without walking all effects\n\t// unless we use `watchers` from tracking.ts but that's internal\n\treturn [...new Set(dependents)]\n}\n\n/**\n * Returns a list of objects that the given effect depends on.\n */\nexport function getDependencies(effect: EffectTrigger): object[] {\n\tconst deps = effectToReactiveObjects.get(effect)\n\treturn deps ? Array.from(deps) : []\n}\n\n// --- Mutation History ---\n\nexport interface MutationRecord {\n\tid: number\n\ttimestamp: number\n\tsource: string\n\ttarget: string\n\tobjectName: string\n\tprop: string\n\ttype: string\n}\n\nconst mutationHistory: MutationRecord[] = []\nlet mutationCounter = 0\n\nfunction addToMutationHistory(\n\tsource: EffectTrigger | undefined,\n\ttarget: EffectTrigger,\n\tobj: object,\n\tprop: any,\n\tevolution: Evolution\n) {\n\tconst record: MutationRecord = {\n\t\tid: ++mutationCounter,\n\t\ttimestamp: Date.now(),\n\t\tsource: source ? ensureEffectName(source) : 'External',\n\t\ttarget: ensureEffectName(target),\n\t\tobjectName: ensureObjectName(obj),\n\t\tprop: String(prop),\n\t\ttype: evolution.type,\n\t}\n\n\tmutationHistory.push(record)\n\tif (mutationHistory.length > (options.introspection?.historySize ?? 50)) {\n\t\tmutationHistory.shift()\n\t}\n}\n\n/**\n * Get the recent mutation history\n */\nexport function getMutationHistory(): MutationRecord[] {\n\treturn [...mutationHistory]\n}\n\n// --- Auto DevTools Initialization ---\n// Automatically enable devtools in development environments\n\n/**\n * Checks if we're in a development environment\n * Detection order:\n * 1. process.env.NODE_ENV (Node.js)\n * 2. import.meta.env.DEV (Vite)\n * 3. import.meta.env.PROD === false (Vite alternative)\n * 4. Assumes development if none of the above are set (safe default)\n */\nfunction isDevelopmentMode(): boolean {\n\t// Check for explicit production flag first\n\tif (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') {\n\t\treturn false\n\t}\n\t\n\t// Check for Vite's DEV flag\n\tif (typeof import.meta !== 'undefined') {\n\t\tconst meta = import.meta as any\n\t\tif (meta.env?.PROD === true) {\n\t\t\treturn false\n\t\t}\n\t\tif (meta.env?.DEV === true) {\n\t\t\treturn true\n\t\t}\n\t}\n\t\n\t// Check for custom global override\n\tif (typeof globalThis !== 'undefined' && '__MUTTS_DEV_MODE__' in globalThis) {\n\t\treturn (globalThis as any).__MUTTS_DEV_MODE__ !== false\n\t}\n\t\n\t// Default to development (safer to enable in dev than disable in prod)\n\treturn true\n}\n\n// Auto-enable devtools when the module loads in development\nif (isDevelopmentMode() && !devtoolsEnabled) {\n\tObject.assign(options, devPreset)\n\tenableDevTools()\n\t\n\t// Optional: Log that devtools were enabled (only in development)\n\tif (typeof console !== 'undefined' && console.info) {\n\t\t// Do not log these in when mode === 'test'\n\t\tconsole.info('🦴 Mutts DevTools enabled automatically in development mode')\n\t}\n}\n"],"names":[],"mappings":"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"}