project-graph-mcp 2.2.6 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +81 -0
- package/CHANGELOG.md +57 -0
- package/README.md +9 -4
- package/package.json +6 -13
- package/src/compact/expand.js +1 -1
- package/src/core/graph-builder.js +2 -2
- package/src/core/parser.js +2 -2
- package/src/network/server.js +1 -2
- package/vendor/symbiote-node/CHANGELOG.md +31 -0
- package/vendor/symbiote-node/LICENSE +21 -0
- package/vendor/symbiote-node/README.md +206 -0
- package/vendor/symbiote-node/canvas/AutoLayout.js +725 -0
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.css.js +73 -0
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.js +93 -0
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.tpl.js +9 -0
- package/vendor/symbiote-node/canvas/CanvasConnectionRenderer.js +962 -0
- package/vendor/symbiote-node/canvas/ConnectionRenderer.js +1468 -0
- package/vendor/symbiote-node/canvas/FlowSimulator.js +323 -0
- package/vendor/symbiote-node/canvas/ForceLayout.js +189 -0
- package/vendor/symbiote-node/canvas/ForceWorker.js +1325 -0
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.css.js +97 -0
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.js +176 -0
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.tpl.js +12 -0
- package/vendor/symbiote-node/canvas/LODManager.js +88 -0
- package/vendor/symbiote-node/canvas/Minimap/Minimap.css.js +71 -0
- package/vendor/symbiote-node/canvas/Minimap/Minimap.js +207 -0
- package/vendor/symbiote-node/canvas/Minimap/Minimap.tpl.js +9 -0
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.css.js +261 -0
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.js +1840 -0
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.tpl.js +22 -0
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.css.js +97 -0
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.js +132 -0
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.tpl.js +21 -0
- package/vendor/symbiote-node/canvas/NodeViewManager.js +584 -0
- package/vendor/symbiote-node/canvas/PinExpansion.js +131 -0
- package/vendor/symbiote-node/canvas/PseudoConnection.js +80 -0
- package/vendor/symbiote-node/canvas/SubgraphManager.js +201 -0
- package/vendor/symbiote-node/canvas/SubgraphRouter.js +443 -0
- package/vendor/symbiote-node/canvas/ViewportActions.js +446 -0
- package/vendor/symbiote-node/core/Connection.js +45 -0
- package/vendor/symbiote-node/core/Editor.js +451 -0
- package/vendor/symbiote-node/core/Frame.js +31 -0
- package/vendor/symbiote-node/core/GraphMermaid.js +348 -0
- package/vendor/symbiote-node/core/GraphText.js +210 -0
- package/vendor/symbiote-node/core/Node.js +143 -0
- package/vendor/symbiote-node/core/Portal.js +104 -0
- package/vendor/symbiote-node/core/Socket.js +185 -0
- package/vendor/symbiote-node/core/SubgraphNode.js +125 -0
- package/vendor/symbiote-node/index.js +103 -0
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.css.js +361 -0
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.js +332 -0
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.tpl.js +96 -0
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.css.js +104 -0
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.js +133 -0
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.tpl.js +33 -0
- package/vendor/symbiote-node/interactions/ConnectFlow.js +307 -0
- package/vendor/symbiote-node/interactions/Drag.js +102 -0
- package/vendor/symbiote-node/interactions/Selector.js +132 -0
- package/vendor/symbiote-node/interactions/SnapGrid.js +65 -0
- package/vendor/symbiote-node/interactions/Zoom.js +140 -0
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.css.js +88 -0
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.js +254 -0
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.tpl.js +11 -0
- package/vendor/symbiote-node/layout/Layout/Layout.css.js +88 -0
- package/vendor/symbiote-node/layout/Layout/Layout.js +622 -0
- package/vendor/symbiote-node/layout/Layout/Layout.tpl.js +25 -0
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.css.js +293 -0
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.js +467 -0
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.tpl.js +33 -0
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.css.js +46 -0
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.js +102 -0
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.tpl.js +6 -0
- package/vendor/symbiote-node/layout/LayoutRouter/LayoutRouter.js +156 -0
- package/vendor/symbiote-node/layout/LayoutRouter/routerSync.js +250 -0
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.css.js +379 -0
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.js +263 -0
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.tpl.js +20 -0
- package/vendor/symbiote-node/layout/LayoutSidebar/SidebarSection.js +183 -0
- package/vendor/symbiote-node/layout/LayoutTree.js +246 -0
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.css.js +43 -0
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.js +89 -0
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.tpl.js +14 -0
- package/vendor/symbiote-node/layout/index.js +16 -0
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.css.js +61 -0
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.js +79 -0
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.tpl.js +19 -0
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.css.js +41 -0
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.js +24 -0
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.tpl.js +16 -0
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.css.js +65 -0
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.js +29 -0
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.tpl.js +13 -0
- package/vendor/symbiote-node/node/GraphNode/GraphNode.css.js +683 -0
- package/vendor/symbiote-node/node/GraphNode/GraphNode.js +92 -0
- package/vendor/symbiote-node/node/GraphNode/GraphNode.tpl.js +17 -0
- package/vendor/symbiote-node/node/NodeSocket/NodeSocket.js +25 -0
- package/vendor/symbiote-node/node/NodeSocket/NodeSocket.tpl.js +7 -0
- package/vendor/symbiote-node/node/PortItem/PortItem.css.js +90 -0
- package/vendor/symbiote-node/node/PortItem/PortItem.js +87 -0
- package/vendor/symbiote-node/node/PortItem/PortItem.tpl.js +10 -0
- package/vendor/symbiote-node/package.json +59 -0
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.css.js +143 -0
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.js +131 -0
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.tpl.js +16 -0
- package/vendor/symbiote-node/plugins/History.js +384 -0
- package/vendor/symbiote-node/plugins/Readonly.js +59 -0
- package/vendor/symbiote-node/shapes/CircleShape.js +80 -0
- package/vendor/symbiote-node/shapes/CommentShape.js +35 -0
- package/vendor/symbiote-node/shapes/DiamondShape.js +115 -0
- package/vendor/symbiote-node/shapes/NodeShape.js +80 -0
- package/vendor/symbiote-node/shapes/PillShape.js +91 -0
- package/vendor/symbiote-node/shapes/RectShape.js +72 -0
- package/vendor/symbiote-node/shapes/SVGShape.js +494 -0
- package/vendor/symbiote-node/shapes/index.js +53 -0
- package/vendor/symbiote-node/themes/Palette.js +32 -0
- package/vendor/symbiote-node/themes/Skin.js +113 -0
- package/vendor/symbiote-node/themes/Theme.js +84 -0
- package/vendor/symbiote-node/themes/carbon.js +137 -0
- package/vendor/symbiote-node/themes/dark.js +137 -0
- package/vendor/symbiote-node/themes/ebook.js +138 -0
- package/vendor/symbiote-node/themes/grey.js +137 -0
- package/vendor/symbiote-node/themes/light.js +137 -0
- package/vendor/symbiote-node/themes/neon.js +138 -0
- package/vendor/symbiote-node/themes/pcb.js +273 -0
- package/vendor/symbiote-node/themes/synthwave.js +137 -0
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.css.js +86 -0
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.js +128 -0
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.tpl.js +29 -0
- package/web/app.js +6 -5
- package/web/components/canvas-graph.js +1666 -0
- package/web/components/event-feed/CodeWidget.js +32 -0
- package/web/components/event-feed/EventWidget.js +97 -0
- package/web/components/event-feed/ListWidget.js +57 -0
- package/web/components/event-feed/MiniGraphWidget.js +69 -0
- package/web/dashboard.js +1 -1
- package/web/index.html +4 -0
- package/web/panels/ActionBoard/ActionBoard.js +1 -1
- package/web/panels/SettingsPanel/SettingsPanel.tpl.js +1 -1
- package/web/panels/code-viewer.js +50 -15
- package/web/panels/dep-graph.js +2712 -7
- package/web/panels/file-tree.js +5 -2
- package/web/panels/live-monitor.js +75 -3
- package/web/style.css +33 -0
- package/docs/img/explorer-compact.jpg +0 -0
- package/docs/img/explorer-expanded.jpg +0 -0
- package/src/.contextignore +0 -22
- package/src/.project-graph-cache.json +0 -1
- package/src/compact/.project-graph-cache.json +0 -1
- package/web/.project-graph-cache.json +0 -1
- package/web/panels/SettingsPanel/.project-graph-cache.json +0 -1
package/web/panels/file-tree.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// @ctx .context/web/panels/file-tree.ctx
|
|
2
2
|
import e from"@symbiotejs/symbiote";import{api as t,state as n,events as s,emit as r}from"../app.js";
|
|
3
|
-
export class FileTree extends e{init$={treeHTML:'<div class="pg-placeholder">Loading files...</div>',filterText:"",onFilterInput:e=>{this.$.filterText=e.target.value.toLowerCase(),this._applyFilter()},onCollapseAll:()=>{this._collapseAll()}};_treeData=null;initCallback(){this._expandedDirs=new Set;try{const e=localStorage.getItem("pg-tree-expanded");if(e){const t=JSON.parse(e);Array.isArray(t)&&(this._expandedDirs=new Set(t))}}catch(e){}s.addEventListener("skeleton-loaded",e=>{this._renderTree(e.detail),n.activeFile&&requestAnimationFrame(()=>this._highlightFile(n.activeFile))}),n.skeleton?this._renderTree(n.skeleton):this._fetchSkeleton(),s.addEventListener("file-selected",e=>{e.detail.fromRoute&&requestAnimationFrame(()=>this._highlightFile(e.detail.path))}),this.addEventListener("click",e=>{const t=e.target.closest(".pg-tree-file");if(t)return this.querySelectorAll(".pg-tree-file.active").forEach(e=>e.classList.remove("active")),t.classList.add("active"),n.activeFile=t.dataset.file,void r("file-selected",{path:t.dataset.file});const s=e.target.closest(".pg-tree-dir");if(s){const e=s.dataset.dir;null!=e
|
|
4
|
-
|
|
3
|
+
export class FileTree extends e{init$={treeHTML:'<div class="pg-placeholder">Loading files...</div>',filterText:"",onFilterInput:e=>{this.$.filterText=e.target.value.toLowerCase(),this._applyFilter()},onCollapseAll:()=>{this._collapseAll()}};_treeData=null;initCallback(){this._expandedDirs=new Set;try{const e=localStorage.getItem("pg-tree-expanded");if(e){const t=JSON.parse(e);Array.isArray(t)&&(this._expandedDirs=new Set(t))}}catch(e){}s.addEventListener("skeleton-loaded",e=>{this._renderTree(e.detail),n.activeFile&&requestAnimationFrame(()=>this._highlightFile(n.activeFile))}),n.skeleton?this._renderTree(n.skeleton):this._fetchSkeleton(),s.addEventListener("file-selected",e=>{(e.detail.fromRoute||e.detail.source==="canvas")&&requestAnimationFrame(()=>this._highlightFile(e.detail.path))}),this.addEventListener("click",e=>{const t=e.target.closest(".pg-tree-file");if(t)return this.querySelectorAll(".pg-tree-file.active").forEach(e=>e.classList.remove("active")),this.querySelectorAll(".pg-tree-dir.active").forEach(e=>e.classList.remove("active")),t.classList.add("active"),n.activeFile=t.dataset.file,void r("file-selected",{path:t.dataset.file});const s=e.target.closest(".pg-tree-dir");if(s){const e=s.dataset.dir;if(null!=e){this._toggleDir(e);this.querySelectorAll(".pg-tree-file.active").forEach(e=>e.classList.remove("active"));this.querySelectorAll(".pg-tree-dir.active").forEach(e=>e.classList.remove("active"));s.classList.add("active");r("file-selected",{path:e+"/"})}}})}async _fetchSkeleton(){try{const e=await t("/api/skeleton",{});n.skeleton||(n.skeleton=e),this._renderTree(e),r("skeleton-loaded",e),n.activeFile&&requestAnimationFrame(()=>this._highlightFile(n.activeFile))}catch(e){}}_toggleDir(e){this._expandedDirs.has(e)?this._expandedDirs.delete(e):this._expandedDirs.add(e),this._saveExpandedState(),this._updateDirDOM(e)}_saveExpandedState(){localStorage.setItem("pg-tree-expanded",JSON.stringify(Array.from(this._expandedDirs)))}_lazyRenderChildren(e){const t=this.querySelector(`.pg-tree-children[data-dir="${CSS.escape(e)}"]`);if(!t||t.dataset.rendered)return;if(!this._treeData)return;const n=e.split("/");let s=this._treeData;for(const e of n){if(!s||!s.children[e]){s=null;break}s=s.children[e]}if(!s)return;t.innerHTML=this._renderNode(s,e,e.split("/").length);t.dataset.rendered="1"}_updateDirDOM(e){const t=this.querySelector(`.pg-tree-dir[data-dir="${CSS.escape(e)}"]`),n=this.querySelector(`.pg-tree-children[data-dir="${CSS.escape(e)}"]`);if(t&&n){const s=this._expandedDirs.has(e),r=t.querySelector(".pg-chevron");r&&(r.textContent=s?"expand_more":"chevron_right"),s?(this._lazyRenderChildren(e),n.removeAttribute("hidden")):n.setAttribute("hidden","")}}_collapseAll(){this._expandedDirs.clear(),this._saveExpandedState(),this.querySelectorAll(".pg-tree-dir").forEach(e=>{this._updateDirDOM(e.dataset.dir)})}_highlightFile(e){
|
|
4
|
+
// Support directory paths (e.g. "web/" → data-dir="web")
|
|
5
|
+
if(e.endsWith("/")){const d=e.replace(/\/$/,""),n=d.split("/");for(let e=1;e<n.length;e++){const t=n.slice(0,e).join("/");this._expandedDirs.has(t)||(this._expandedDirs.add(t),this._lazyRenderChildren(t),this._updateDirDOM(t))}this._saveExpandedState();const t=this.querySelector(`.pg-tree-dir[data-dir="${CSS.escape(d)}"]`);if(t){this.querySelectorAll(".pg-tree-file.active").forEach(e=>e.classList.remove("active")),this.querySelectorAll(".pg-tree-dir.active").forEach(e=>e.classList.remove("active")),t.classList.add("active"),t.scrollIntoView({block:"center",behavior:"smooth"})}return}
|
|
6
|
+
let t=this.querySelector(`.pg-tree-file[data-file="${CSS.escape(e)}"]`);if(!t){const n=e.split("/");n.pop();for(let e=1;e<=n.length;e++){const t=n.slice(0,e).join("/");this._expandedDirs.has(t)||(this._expandedDirs.add(t),this._lazyRenderChildren(t),this._updateDirDOM(t))}this._saveExpandedState(),t=this.querySelector(`.pg-tree-file[data-file="${CSS.escape(e)}"]`)}if(t){this.querySelectorAll(".pg-tree-file.active").forEach(e=>e.classList.remove("active")),t.classList.add("active"),t.scrollIntoView({block:"center",behavior:"smooth"})}}_buildTree(e){const t=new Map,n=e.n||{};for(const e of Object.values(n))if(e.f){const n=t.get(e.f)||{exports:0,classes:0};n.classes++,t.set(e.f,n)}const s=e.X||{};for(const[e,n]of Object.entries(s)){const s=t.get(e)||{exports:0,classes:0};s.exports=n.length,t.set(e,s)}const r=e.f||{};for(const[e,n]of Object.entries(r))for(const s of n){const n="./"===e?s:`${e}${s}`;t.has(n)||t.set(n,{exports:0,classes:0})}const i=e.a||{};for(const[e,n]of Object.entries(i))for(const s of n){const n="./"===e?s:`${e}${s}`;t.has(n)||t.set(n,{exports:0,classes:0,nonSource:!0})}const l={children:{},files:[]};for(const[e,n]of t){const t=e.split("/"),s=t.pop();let r=l;for(const e of t)r.children[e]||(r.children[e]={children:{},files:[]}),r=r.children[e];r.files.push({f:e,name:s,...n})}return l}_renderNode(e,t,n){const s=[],r=Object.keys(e.children).sort(),i=e.files.sort((e,t)=>e.name.localeCompare(t.name)),l=16*n;for(const i of r){const r=t?`${t}/${i}`:i,a=this._expandedDirs&&this._expandedDirs.has(r),d=a?"expand_more":"chevron_right",p=a?"":" hidden";s.push(`<div class="pg-tree-dir" data-dir="${r}" style="padding-left:${l+6}px"><span class="material-symbols-outlined pg-chevron" style="font-size:16px">${d}</span> <span class="material-symbols-outlined" style="font-size:16px">folder</span> ${i}</div>`);if(a){s.push(`<div class="pg-tree-children" data-dir="${r}" data-rendered="1">`);s.push(this._renderNode(e.children[i],r,n+1));s.push("</div>")}else{s.push(`<div class="pg-tree-children" data-dir="${r}" hidden></div>`)}}for(const e of i){const t=FileTree._getFileIcon(e.name),n=[];e.exports>0&&n.push(`${e.exports}f`),e.classes>0&&n.push(`${e.classes}c`);const r=n.length>0?`<span class="pg-badge">${n.join(" ")}</span>`:"",i=e.nonSource?" pg-non-source":"";s.push(`<div class="pg-tree-file${i}" data-file="${e.f}" style="padding-left:${l+24}px"><span class="material-symbols-outlined" style="font-size:14px">${t}</span> ${e.name}${r}</div>`)}return s.join("")}_renderTree(e){if(!e)return void(this.$.treeHTML='<div class="pg-placeholder">No files found</div>');this._treeData=this._buildTree(e);const t=Object.keys(this._treeData.children).length+this._treeData.files.length;if(0===t)return void(this.$.treeHTML='<div class="pg-placeholder">No files found</div>');this.$.treeHTML=this._renderNode(this._treeData,"",0)}static _getFileIcon(e){return e.endsWith(".html")?"html":e.endsWith(".css")||e.endsWith(".css.js")?"css":e.endsWith(".tpl.js")?"web":e.endsWith(".json")?"data_object":e.endsWith(".md")?"description":e.endsWith(".svg")||e.endsWith(".png")||e.endsWith(".jpg")?"image":e.endsWith(".woff2")||e.endsWith(".ttf")?"font_download":"insert_drive_file"}_applyFilter(){const e=this.$.filterText;if(e){this._expandAllForFilter();this.querySelectorAll(".pg-tree-file").forEach(t=>{const n=t.dataset.file.toLowerCase().includes(e);t.hidden=!n}),this.querySelectorAll(".pg-tree-dir").forEach(e=>{const t=e.dataset.dir,n=this.querySelector(`.pg-tree-children[data-dir="${CSS.escape(t)}"]`);if(!n)return;let s=!1;n.querySelectorAll(".pg-tree-file:not([hidden])").forEach(()=>s=!0),e.hidden=!s})}else{this.querySelectorAll(".pg-tree-file").forEach(e=>e.hidden=!1),this.querySelectorAll(".pg-tree-dir").forEach(e=>e.hidden=!1)}}_expandAllForFilter(){if(!this._treeData)return;const e=(t,n)=>{for(const s of Object.keys(t.children)){const r=n?`${n}/${s}`:s;this._lazyRenderChildren(r);const i=this.querySelector(`.pg-tree-children[data-dir="${CSS.escape(r)}"]`);i&&i.removeAttribute("hidden");e(t.children[s],r)}};e(this._treeData,"")}}
|
|
7
|
+
FileTree.template='\n <div class="pg-panel-toolbar">\n <input type="search" placeholder="Filter files..." bind="oninput: onFilterInput">\n <button class="pg-collapse-all" bind="onclick: onCollapseAll" title="Collapse All Folders">\n <span class="material-symbols-outlined" style="font-size:14px">unfold_less</span>\n </button>\n </div>\n <div class="pg-tree-content" bind="innerHTML: treeHTML"></div>\n',FileTree.rootStyles="\n pg-file-tree {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n font-size: 12px;\n font-family: var(--sn-font, Georgia, serif);\n }\n pg-file-tree .pg-panel-toolbar {\n padding: 6px 8px;\n border-bottom: 1px solid var(--sn-node-border, hsl(35, 18%, 80%));\n display: flex;\n gap: 6px;\n }\n pg-file-tree .pg-panel-toolbar input {\n flex: 1;\n background: var(--sn-bg, hsl(37, 30%, 91%));\n border: 1px solid var(--sn-node-border, hsl(35, 18%, 80%));\n color: var(--sn-text, hsl(30, 15%, 18%));\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-family: inherit;\n outline: none;\n min-width: 0;\n }\n pg-file-tree .pg-panel-toolbar input:focus {\n border-color: var(--sn-node-selected, hsl(210, 55%, 42%));\n }\n pg-file-tree .pg-collapse-all {\n background: var(--sn-bg, hsl(37, 30%, 91%));\n border: 1px solid var(--sn-node-border, hsl(35, 18%, 80%));\n color: var(--sn-text, hsl(30, 15%, 18%));\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 6px;\n transition: all 100ms ease;\n }\n pg-file-tree .pg-collapse-all:hover {\n background: var(--sn-node-hover, hsl(36, 22%, 88%));\n }\n pg-file-tree .pg-tree-content {\n flex: 1;\n overflow-y: auto;\n padding: 4px;\n }\n pg-file-tree .pg-tree-dir {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 3px 6px;\n color: var(--sn-text-dim, hsl(30, 10%, 45%));\n font-weight: 600;\n font-size: 11px;\n cursor: pointer;\n user-select: none;\n }\n pg-file-tree .pg-tree-dir:hover {\n background: var(--sn-node-hover, hsl(36, 22%, 88%));\n border-radius: 4px;\n }\n pg-file-tree .pg-tree-dir .pg-chevron {\n transition: transform 150ms ease;\n }\n pg-file-tree .pg-tree-children[hidden] {\n display: none;\n }\n pg-file-tree .pg-tree-file {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 3px 6px 3px 24px;\n cursor: pointer;\n border-radius: 4px;\n color: var(--sn-text-dim, hsl(30, 10%, 45%));\n transition: all 100ms ease;\n }\n pg-file-tree .pg-tree-file:hover {\n background: var(--sn-node-hover, hsl(36, 22%, 88%));\n color: var(--sn-text, hsl(30, 15%, 18%));\n }\n pg-file-tree .pg-tree-file.active {\n background: hsla(210, 45%, 45%, 0.12);\n color: var(--sn-cat-server, hsl(210, 45%, 45%));\n }\n pg-file-tree .pg-tree-dir.active {\n background: hsla(210, 45%, 45%, 0.12);\n color: var(--sn-cat-server, hsl(210, 45%, 45%));\n border-radius: 4px;\n }\n pg-file-tree .pg-tree-file[hidden] {\n display: none;\n }\n pg-file-tree .pg-tree-file.pg-non-source {\n opacity: 0.6;\n }\n pg-file-tree .pg-badge {\n margin-left: auto;\n font-size: 10px;\n padding: 0 5px;\n border-radius: 8px;\n background: var(--sn-node-hover, hsl(36, 22%, 88%));\n color: var(--sn-text-dim, hsl(30, 10%, 45%));\n border: 1px solid var(--sn-node-border, hsl(35, 18%, 80%));\n }\n",FileTree.reg("pg-file-tree");
|
|
@@ -1,4 +1,76 @@
|
|
|
1
1
|
// @ctx .context/web/panels/live-monitor.ctx
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import Symbiote from "@symbiotejs/symbiote";
|
|
3
|
+
import { events as globalEvents } from "../app.js";
|
|
4
|
+
|
|
5
|
+
import "../components/event-feed/CodeWidget.js";
|
|
6
|
+
import "../components/event-feed/MiniGraphWidget.js";
|
|
7
|
+
import "../components/event-feed/ListWidget.js";
|
|
8
|
+
import "../components/event-feed/EventWidget.js";
|
|
9
|
+
|
|
10
|
+
export class LiveMonitor extends Symbiote {
|
|
11
|
+
init$ = {
|
|
12
|
+
eventCount: "0",
|
|
13
|
+
eventsList: []
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
_events = [];
|
|
17
|
+
|
|
18
|
+
initCallback() {
|
|
19
|
+
globalEvents.addEventListener("tool-event", (e) => this._addEvent(e.detail));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_addEvent(event) {
|
|
23
|
+
this._events.unshift(event);
|
|
24
|
+
if (this._events.length > 100) {
|
|
25
|
+
this._events.pop(); // Keep max 100 for performance
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
this.$.eventCount = String(this._events.length);
|
|
29
|
+
|
|
30
|
+
// Update the itemize list reactively
|
|
31
|
+
this.$.eventsList = this._events.map(ev => ({
|
|
32
|
+
eventData: JSON.stringify(ev)
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
LiveMonitor.template = `
|
|
38
|
+
<div class="pg-mon-header">
|
|
39
|
+
<span>Events: </span><span bind="textContent: eventCount"></span>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="pg-mon-body">
|
|
42
|
+
<div \${{ itemize: 'eventsList', 'item-tag': 'pg-event-widget' }}></div>
|
|
43
|
+
<div class="pg-placeholder" \${{ hidden: 'eventCount' }}>Waiting for tool calls...</div>
|
|
44
|
+
</div>
|
|
45
|
+
`;
|
|
46
|
+
|
|
47
|
+
LiveMonitor.rootStyles = `
|
|
48
|
+
pg-live-monitor { display:flex; flex-direction:column; height:100%; overflow:hidden; font-size:12px; font-family:var(--sn-font, Georgia, serif); }
|
|
49
|
+
.pg-mon-header { padding:6px 12px; border-bottom:1px solid var(--sn-node-border); background:var(--sn-node-header-bg); font-size:11px; color:var(--sn-text-dim); flex-shrink: 0; }
|
|
50
|
+
.pg-mon-body { flex:1; overflow-y:auto; padding:8px; display: flex; flex-direction: column; gap: 8px; }
|
|
51
|
+
|
|
52
|
+
pg-event-widget { display: block; border: 1px solid var(--sn-node-border); border-radius: 6px; background: rgba(0,0,0,0.2); }
|
|
53
|
+
.pg-mon-event { padding: 8px; animation: slideIn 0.2s ease; }
|
|
54
|
+
.event-header { display:flex; align-items:center; gap:8px; font-family:monospace; font-size:11px; margin-bottom: 6px; }
|
|
55
|
+
.pg-mon-arrow { font-weight:bold; width:14px; }
|
|
56
|
+
.pg-mon-event[data-is-call="true"] .pg-mon-arrow { color: var(--sn-cat-server, hsl(210, 45%, 45%)); }
|
|
57
|
+
.pg-mon-event[data-is-call="false"] .pg-mon-arrow { color: var(--sn-success-color, hsl(150, 55%, 38%)); }
|
|
58
|
+
.pg-mon-tool { color:var(--sn-text); font-weight:600; min-width:100px; }
|
|
59
|
+
.pg-mon-time { color:var(--sn-text-dim); font-size:10px; flex:1; text-align:right; }
|
|
60
|
+
.pg-mon-duration { color: hsl(250, 35%, 50%); font-size: 10px; }
|
|
61
|
+
|
|
62
|
+
.event-body { font-family: monospace; font-size: 11px; color: var(--sn-text-dim); background: rgba(0,0,0,0.3); padding: 6px; border-radius: 4px; word-break: break-all; }
|
|
63
|
+
.result-body { color: var(--sn-text); }
|
|
64
|
+
|
|
65
|
+
.code-widget pre { margin: 0; white-space: pre-wrap; font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 10px; color: #a9b7c6; }
|
|
66
|
+
.list-widget-ul { margin: 0; padding-left: 16px; font-size: 10px; color: #a9b7c6; }
|
|
67
|
+
.list-widget-more { font-size: 10px; color: var(--sn-text-dim); margin-top: 4px; font-style: italic; }
|
|
68
|
+
|
|
69
|
+
.raw-output { margin: 0; white-space: pre-wrap; font-size: 10px; max-height: 200px; overflow-y: auto; color: #a9b7c6; }
|
|
70
|
+
.error-msg { color: var(--sn-danger-color, hsl(4, 55%, 48%)); font-weight: bold; }
|
|
71
|
+
|
|
72
|
+
.pg-placeholder { color:var(--sn-text-dim); text-align:center; padding:30px; font-style:italic; }
|
|
73
|
+
@keyframes slideIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
|
|
74
|
+
`;
|
|
75
|
+
|
|
76
|
+
LiveMonitor.reg("pg-live-monitor");
|
package/web/style.css
CHANGED
|
@@ -92,6 +92,39 @@ html, body {
|
|
|
92
92
|
font-size: 14px;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
/* Follow Button */
|
|
96
|
+
.follow-btn {
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
gap: 6px;
|
|
100
|
+
background: transparent;
|
|
101
|
+
color: var(--sn-text-dim, #999);
|
|
102
|
+
border: 1px solid transparent;
|
|
103
|
+
padding: 4px 10px;
|
|
104
|
+
border-radius: 4px;
|
|
105
|
+
font-family: inherit;
|
|
106
|
+
font-size: 11px;
|
|
107
|
+
font-weight: 600;
|
|
108
|
+
cursor: pointer;
|
|
109
|
+
transition: all 0.2s ease;
|
|
110
|
+
letter-spacing: 0.5px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.follow-btn .material-symbols-outlined {
|
|
114
|
+
font-size: 16px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.follow-btn:hover {
|
|
118
|
+
background: rgba(255, 255, 255, 0.05);
|
|
119
|
+
color: var(--sn-text, #f0f0f0);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.follow-btn.active {
|
|
123
|
+
background: rgba(76, 139, 245, 0.15);
|
|
124
|
+
color: #4c8bf5;
|
|
125
|
+
border-color: rgba(76, 139, 245, 0.3);
|
|
126
|
+
}
|
|
127
|
+
|
|
95
128
|
/* Agent badge */
|
|
96
129
|
.agent-badge {
|
|
97
130
|
font-size: 11px;
|
|
Binary file
|
|
Binary file
|
package/src/.contextignore
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Files and directories excluded from AI context (get_ai_context includeFiles: ["*"])
|
|
2
|
-
# Glob patterns — one per line
|
|
3
|
-
|
|
4
|
-
# Vendored / bundled libs
|
|
5
|
-
vendor/
|
|
6
|
-
*.min.js
|
|
7
|
-
*.bundle.js
|
|
8
|
-
chart.js
|
|
9
|
-
d3.js
|
|
10
|
-
three.js
|
|
11
|
-
lodash.js
|
|
12
|
-
jquery*.js
|
|
13
|
-
|
|
14
|
-
# Generated
|
|
15
|
-
dist/
|
|
16
|
-
build/
|
|
17
|
-
coverage/
|
|
18
|
-
*.d.ts
|
|
19
|
-
|
|
20
|
-
# Tests
|
|
21
|
-
*.test.js
|
|
22
|
-
*.spec.js
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"path":"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src","mtimes":{"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/analysis-cache.js":1776021880954.865,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/complexity.js":1776020743745.4976,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/custom-rules.js":1776020743746.4695,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/db-analysis.js":1776020743747.036,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/dead-code.js":1776020743747.205,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/full-analysis.js":1776020743747.434,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/jsdoc-checker.js":1776020743747.778,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/jsdoc-generator.js":1776020743748.1309,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/large-files.js":1775932068231.2554,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/outdated-patterns.js":1775932068241.3853,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/similar-functions.js":1776020743748.3684,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/test-annotations.js":1776021880973.3127,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/type-checker.js":1776020743790.671,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/analysis/undocumented.js":1776020743791.3872,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/cli/cli-handlers.js":1776020743791.534,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/cli/cli.js":1776009281031.448,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/ai-context.js":1776090090709.129,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compact-migrate.js":1776025662126.3894,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compact.js":1776025662121.6743,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compress.js":1776077544228.2026,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/ctx-resolver.js":1776024988359.2908,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/ctx-to-jsdoc.js":1776025604473.7043,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/doc-dialect.js":1776021881027.7375,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/expand.js":1776025662125.8457,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/framework-references.js":1775932068436.373,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/instructions.js":1776089868557.5547,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/jsdoc-builder.js":1776024792784.1958,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/mode-config.js":1776021881032.5818,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/split-declarations.js":1776020731393.9968,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/validate-pipeline.js":1776025626422.5903,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/event-bus.js":1776021881034.3083,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/file-walker.js":1776024739329.9265,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/filters.js":1776021881038.4585,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/graph-builder.js":1776020731524.8525,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/parser.js":1776021881058.1765,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/utils.js":1776024855849.509,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/core/workspace.js":1775932068530.74,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/lang/lang-go.js":1775932068546.679,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/lang/lang-python.js":1775932068554.9434,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/lang/lang-sql.js":1776021881068.4143,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/lang/lang-typescript.js":1775932068582.2983,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/lang/lang-utils.js":1775932068585.4934,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/mcp/mcp-server.js":1776087281350.1672,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/mcp/tool-defs.js":1776089667319.6912,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/mcp/tools.js":1776021881078.6213,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/backend-lifecycle.js":1776087982767.4238,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/backend.js":1775932249992.6167,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/local-gateway.js":1776081624832.668,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/mdns.js":1776020743913.2654,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/server.js":1776088001724.466,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/network/web-server.js":1776087374451.2217},"graph":{"v":1,"legend":{"computeContentHash":"CH","getCachePath":"CP","readCache":"rC","writeCache":"wC","isCacheValid":"CV","p":"p","u":"u","h":"h","analyzeComplexityFile":"CF","f":"f","getComplexity":"gC","y":"y","g":"g","x":"x","v":"v","$":"$","j":"j","S":"sS","b":"b","getCustomRules":"CR","setCustomRule":"CR1","deleteCustomRule":"CR2","detectProjectRuleSets":"PRS","checkCustomRules":"CR3","getDBSchema":"DBS","getTableUsage":"TU","getDBDeadTables":"DBD","m":"m","getDeadCode":"DC","w":"w","F":"fF","D":"dD","M":"mM","P":"pP","getFullAnalysis":"FA","getAnalysisSummaryOnly":"ASO","d":"d","checkJSDocFile":"JSD","checkJSDocConsistency":"JSD1","generateJSDoc":"JSD2","i":"i","o":"o","s":"s","generateJSDocFor":"JSD3","findJSFiles":"JSF","analyzeFile":"aF","getLargeFiles":"LF","analyzeFilePatterns":"FP","analyzePackageJson":"PJ","getOutdatedPatterns":"OP","getSimilarFunctions":"SF","a":"a","parseAnnotations":"pA","getAllFeatures":"AF","getPendingTests":"PT","markTestPassed":"TP","markTestFailed":"TF","getTestSummary":"TS","resetTestState":"TS1","l":"l","checkTypes":"cT","checkUndocumentedFile":"UF","getUndocumented":"gU","getUndocumentedSummary":"US","O":"oO","R":"rR","printHelp":"pH","runCLI":"CLI","_loadIgnore":"_I","_parseIgnore":"_I1","_shouldIgnore":"_I2","getAiContext":"AC","compactMigrate":"cM","addTopLevelNewlines":"TLN","compactFile":"cF","beautifyFile":"bF","compactProject":"cP","expandProject":"eP","c":"c","compressFile":"cF1","editCompressed":"eC","resolveCtxPath":"CP1","resolveCtxRelPath":"CRP","readCtxFile":"CF1","parseCtxFile":"CF2","injectJSDoc":"JSD4","stripJSDoc":"JSD5","validateCtxContracts":"CC","generateDocDialect":"DD","readContextDocs":"CD","getProjectDocs":"PD","E":"eE","checkStaleness":"cS","generateContextFiles":"CF3","expandFile":"eF","fetchReference":"fR","listAvailable":"lA","getFrameworkReference":"FR","getInstructions":"gI","parseCtxParams":"CP2","sanitize":"sa","buildJSDocBlock":"JSD6","buildJSDocFromRaw":"JSD7","getConfig":"gC1","setConfig":"sC","getModeDescription":"MD","getModeWorkflow":"MW","splitDeclarations":"sD","isSingleLineBlob":"SLB","validatePipeline":"vP","emitToolCall":"TC","emitToolResult":"TR","onToolCall":"TC1","onToolResult":"TR1","removeToolListener":"TL","walkJSFiles":"JSF1","getFilters":"gF","setFilters":"sF","addExcludes":"aE","removeExcludes":"rE","resetFilters":"rF","parseGitignore":"pG","shouldExcludeDir":"ED","shouldExcludeFile":"EF","minifyLegend":"mL","e":"e","buildGraph":"bG","createSkeleton":"cS1","parseFile":"pF","discoverSubProjects":"SP","parseProject":"pP1","findAllProjectFiles":"APF","estimateTokens":"eT","setRoots":"sR","getWorkspaceRoot":"WR","resolvePath":"rP","parseGo":"pG1","extractImports":"eI","getBody":"gB","extractCalls":"eC1","parsePython":"pP2","isSQLString":"SQL","t":"t","extractSQLFromString":"SQL1","parseSQL":"SQL2","n":"n","extractSQLFromCode":"SQL3","extractORMFromCode":"ORM","parseTypeScript":"TS2","extractParams":"eP1","stripStringsAndComments":"SAC","createServer":"cS2","startStdioServer":"SS","getGraph":"gG","getSkeleton":"gS","getFocusZone":"FZ","expand":"ex","deps":"de","usages":"us","getCallChain":"CC1","invalidateCache":"iC","_getVersion":"_V","B":"bB","writePortFile":"PF","removePortFile":"PF1","listBackends":"lB","ensureBackend":"eB","startStdioProxy":"SP1","cleanup":"cl","registerService":"rS","getGatewayPort":"GP","registerLocal":"rL","_rv":"_r","k":"k","_clearCache":"_C","N":"nN","z":"z","A":"aA","startWebServer":"WS"},"reverseLegend":{"CH":"computeContentHash","CP":"getCachePath","rC":"readCache","wC":"writeCache","CV":"isCacheValid","p":"p","u":"u","h":"h","CF":"analyzeComplexityFile","f":"f","gC":"getComplexity","y":"y","g":"g","x":"x","v":"v","$":"$","j":"j","sS":"S","b":"b","CR":"getCustomRules","CR1":"setCustomRule","CR2":"deleteCustomRule","PRS":"detectProjectRuleSets","CR3":"checkCustomRules","DBS":"getDBSchema","TU":"getTableUsage","DBD":"getDBDeadTables","m":"m","DC":"getDeadCode","w":"w","fF":"F","dD":"D","mM":"M","pP":"P","FA":"getFullAnalysis","ASO":"getAnalysisSummaryOnly","d":"d","JSD":"checkJSDocFile","JSD1":"checkJSDocConsistency","JSD2":"generateJSDoc","i":"i","o":"o","s":"s","JSD3":"generateJSDocFor","JSF":"findJSFiles","aF":"analyzeFile","LF":"getLargeFiles","FP":"analyzeFilePatterns","PJ":"analyzePackageJson","OP":"getOutdatedPatterns","SF":"getSimilarFunctions","a":"a","pA":"parseAnnotations","AF":"getAllFeatures","PT":"getPendingTests","TP":"markTestPassed","TF":"markTestFailed","TS":"getTestSummary","TS1":"resetTestState","l":"l","cT":"checkTypes","UF":"checkUndocumentedFile","gU":"getUndocumented","US":"getUndocumentedSummary","oO":"O","rR":"R","pH":"printHelp","CLI":"runCLI","_I":"_loadIgnore","_I1":"_parseIgnore","_I2":"_shouldIgnore","AC":"getAiContext","cM":"compactMigrate","TLN":"addTopLevelNewlines","cF":"compactFile","bF":"beautifyFile","cP":"compactProject","eP":"expandProject","c":"c","cF1":"compressFile","eC":"editCompressed","CP1":"resolveCtxPath","CRP":"resolveCtxRelPath","CF1":"readCtxFile","CF2":"parseCtxFile","JSD4":"injectJSDoc","JSD5":"stripJSDoc","CC":"validateCtxContracts","DD":"generateDocDialect","CD":"readContextDocs","PD":"getProjectDocs","eE":"E","cS":"checkStaleness","CF3":"generateContextFiles","eF":"expandFile","fR":"fetchReference","lA":"listAvailable","FR":"getFrameworkReference","gI":"getInstructions","CP2":"parseCtxParams","sa":"sanitize","JSD6":"buildJSDocBlock","JSD7":"buildJSDocFromRaw","gC1":"getConfig","sC":"setConfig","MD":"getModeDescription","MW":"getModeWorkflow","sD":"splitDeclarations","SLB":"isSingleLineBlob","vP":"validatePipeline","TC":"emitToolCall","TR":"emitToolResult","TC1":"onToolCall","TR1":"onToolResult","TL":"removeToolListener","JSF1":"walkJSFiles","gF":"getFilters","sF":"setFilters","aE":"addExcludes","rE":"removeExcludes","rF":"resetFilters","pG":"parseGitignore","ED":"shouldExcludeDir","EF":"shouldExcludeFile","mL":"minifyLegend","e":"e","bG":"buildGraph","cS1":"createSkeleton","pF":"parseFile","SP":"discoverSubProjects","pP1":"parseProject","APF":"findAllProjectFiles","eT":"estimateTokens","sR":"setRoots","WR":"getWorkspaceRoot","rP":"resolvePath","pG1":"parseGo","eI":"extractImports","gB":"getBody","eC1":"extractCalls","pP2":"parsePython","SQL":"isSQLString","t":"t","SQL1":"extractSQLFromString","SQL2":"parseSQL","n":"n","SQL3":"extractSQLFromCode","ORM":"extractORMFromCode","TS2":"parseTypeScript","eP1":"extractParams","SAC":"stripStringsAndComments","cS2":"createServer","SS":"startStdioServer","gG":"getGraph","gS":"getSkeleton","FZ":"getFocusZone","ex":"expand","de":"deps","us":"usages","CC1":"getCallChain","iC":"invalidateCache","_V":"_getVersion","bB":"B","PF":"writePortFile","PF1":"removePortFile","lB":"listBackends","eB":"ensureBackend","SP1":"startStdioProxy","cl":"cleanup","rS":"registerService","GP":"getGatewayPort","rL":"registerLocal","_r":"_rv","k":"k","_C":"_clearCache","nN":"N","z":"z","aA":"A","WS":"startWebServer"},"stats":{"files":51,"classes":0,"functions":246,"tables":0},"nodes":{"CH":{"t":"F","e":true,"f":"analysis/analysis-cache.js"},"CP":{"t":"F","e":true,"f":"analysis/analysis-cache.js"},"rC":{"t":"F","e":true,"f":"analysis/analysis-cache.js"},"wC":{"t":"F","e":true,"f":"analysis/analysis-cache.js"},"CV":{"t":"F","e":true,"f":"analysis/analysis-cache.js"},"p":{"t":"F","e":false,"f":"network/local-gateway.js"},"u":{"t":"F","e":false,"f":"network/web-server.js"},"h":{"t":"F","e":false,"f":"network/local-gateway.js"},"CF":{"t":"F","e":true,"f":"analysis/complexity.js"},"f":{"t":"F","e":false,"f":"network/local-gateway.js"},"gC":{"t":"F","e":true,"f":"analysis/complexity.js"},"y":{"t":"F","e":false,"f":"network/web-server.js"},"g":{"t":"F","e":false,"f":"network/web-server.js"},"x":{"t":"F","e":false,"f":"network/web-server.js"},"v":{"t":"F","e":false,"f":"core/parser.js"},"$":{"t":"F","e":false,"f":"analysis/custom-rules.js"},"j":{"t":"F","e":false,"f":"core/parser.js"},"sS":{"t":"F","e":false,"f":"network/web-server.js"},"b":{"t":"F","e":false,"f":"analysis/custom-rules.js"},"CR":{"t":"F","e":true,"f":"analysis/custom-rules.js"},"CR1":{"t":"F","e":true,"f":"analysis/custom-rules.js"},"CR2":{"t":"F","e":true,"f":"analysis/custom-rules.js"},"PRS":{"t":"F","e":true,"f":"analysis/custom-rules.js"},"CR3":{"t":"F","e":true,"f":"analysis/custom-rules.js"},"DBS":{"t":"F","e":true,"f":"analysis/db-analysis.js"},"TU":{"t":"F","e":true,"f":"analysis/db-analysis.js"},"DBD":{"t":"F","e":true,"f":"analysis/db-analysis.js"},"m":{"t":"F","e":false,"f":"analysis/similar-functions.js"},"DC":{"t":"F","e":true,"f":"analysis/dead-code.js"},"w":{"t":"F","e":false,"f":"network/web-server.js"},"fF":{"t":"F","e":false,"f":"compact/ctx-to-jsdoc.js"},"dD":{"t":"F","e":false,"f":"compact/validate-pipeline.js"},"mM":{"t":"F","e":false,"f":"analysis/full-analysis.js"},"pP":{"t":"F","e":false,"f":"network/web-server.js"},"FA":{"t":"F","e":true,"f":"analysis/full-analysis.js"},"ASO":{"t":"F","e":true,"f":"analysis/full-analysis.js"},"d":{"t":"F","e":false,"f":"network/local-gateway.js"},"JSD":{"t":"F","e":true,"f":"analysis/jsdoc-checker.js"},"JSD1":{"t":"F","e":true,"f":"analysis/jsdoc-checker.js"},"JSD2":{"t":"F","e":true,"f":"analysis/jsdoc-generator.js"},"i":{"t":"F","e":false,"f":"analysis/type-checker.js"},"o":{"t":"F","e":false,"f":"network/mdns.js"},"s":{"t":"F","e":false,"f":"analysis/jsdoc-generator.js"},"JSD3":{"t":"F","e":true,"f":"analysis/jsdoc-generator.js"},"JSF":{"t":"F","e":true,"f":"core/parser.js"},"aF":{"t":"F","e":false,"f":"analysis/large-files.js"},"LF":{"t":"F","e":true,"f":"analysis/large-files.js"},"FP":{"t":"F","e":false,"f":"analysis/outdated-patterns.js"},"PJ":{"t":"F","e":false,"f":"analysis/outdated-patterns.js"},"OP":{"t":"F","e":true,"f":"analysis/outdated-patterns.js"},"SF":{"t":"F","e":true,"f":"analysis/similar-functions.js"},"a":{"t":"F","e":false,"f":"analysis/test-annotations.js"},"pA":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"AF":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"PT":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"TP":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"TF":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"TS":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"TS1":{"t":"F","e":true,"f":"analysis/test-annotations.js"},"l":{"t":"F","e":false,"f":"network/local-gateway.js"},"cT":{"t":"F","e":true,"f":"analysis/type-checker.js"},"UF":{"t":"F","e":true,"f":"analysis/undocumented.js"},"gU":{"t":"F","e":true,"f":"analysis/undocumented.js"},"US":{"t":"F","e":true,"f":"analysis/undocumented.js"},"oO":{"t":"F","e":false,"f":"network/web-server.js"},"rR":{"t":"F","e":false,"f":"cli/cli-handlers.js"},"pH":{"t":"F","e":true,"f":"cli/cli.js"},"CLI":{"t":"F","e":true,"f":"cli/cli.js"},"_I":{"t":"F","e":false,"f":"compact/ai-context.js"},"_I1":{"t":"F","e":false,"f":"compact/ai-context.js"},"_I2":{"t":"F","e":false,"f":"compact/ai-context.js"},"AC":{"t":"F","e":true,"f":"compact/ai-context.js"},"cM":{"t":"F","e":true,"f":"compact/compact-migrate.js"},"TLN":{"t":"F","e":false,"f":"compact/compact.js"},"cF":{"t":"F","e":false,"f":"compact/compact.js"},"bF":{"t":"F","e":false,"f":"compact/compact.js"},"cP":{"t":"F","e":true,"f":"compact/compact.js"},"eP":{"t":"F","e":true,"f":"compact/expand.js"},"c":{"t":"F","e":false,"f":"network/mdns.js"},"cF1":{"t":"F","e":true,"f":"compact/compress.js"},"eC":{"t":"F","e":true,"f":"compact/compress.js"},"CP1":{"t":"F","e":true,"f":"compact/ctx-resolver.js"},"CRP":{"t":"F","e":true,"f":"compact/ctx-resolver.js"},"CF1":{"t":"F","e":true,"f":"compact/ctx-resolver.js"},"CF2":{"t":"F","e":true,"f":"compact/ctx-to-jsdoc.js"},"JSD4":{"t":"F","e":true,"f":"compact/ctx-to-jsdoc.js"},"JSD5":{"t":"F","e":true,"f":"compact/ctx-to-jsdoc.js"},"CC":{"t":"F","e":true,"f":"compact/ctx-to-jsdoc.js"},"DD":{"t":"F","e":true,"f":"compact/doc-dialect.js"},"CD":{"t":"F","e":true,"f":"compact/doc-dialect.js"},"PD":{"t":"F","e":true,"f":"compact/doc-dialect.js"},"eE":{"t":"F","e":false,"f":"core/parser.js"},"cS":{"t":"F","e":true,"f":"compact/doc-dialect.js"},"CF3":{"t":"F","e":true,"f":"compact/doc-dialect.js"},"eF":{"t":"F","e":true,"f":"compact/expand.js"},"fR":{"t":"F","e":false,"f":"compact/framework-references.js"},"lA":{"t":"F","e":false,"f":"compact/framework-references.js"},"FR":{"t":"F","e":true,"f":"compact/framework-references.js"},"gI":{"t":"F","e":true,"f":"compact/instructions.js"},"CP2":{"t":"F","e":true,"f":"compact/jsdoc-builder.js"},"sa":{"t":"F","e":false,"f":"compact/jsdoc-builder.js"},"JSD6":{"t":"F","e":true,"f":"compact/jsdoc-builder.js"},"JSD7":{"t":"F","e":true,"f":"compact/jsdoc-builder.js"},"gC1":{"t":"F","e":true,"f":"compact/mode-config.js"},"sC":{"t":"F","e":true,"f":"compact/mode-config.js"},"MD":{"t":"F","e":true,"f":"compact/mode-config.js"},"MW":{"t":"F","e":true,"f":"compact/mode-config.js"},"sD":{"t":"F","e":true,"f":"compact/split-declarations.js"},"SLB":{"t":"F","e":true,"f":"compact/split-declarations.js"},"vP":{"t":"F","e":true,"f":"compact/validate-pipeline.js"},"TC":{"t":"F","e":true,"f":"core/event-bus.js"},"TR":{"t":"F","e":true,"f":"core/event-bus.js"},"TC1":{"t":"F","e":true,"f":"core/event-bus.js"},"TR1":{"t":"F","e":true,"f":"core/event-bus.js"},"TL":{"t":"F","e":true,"f":"core/event-bus.js"},"JSF1":{"t":"F","e":true,"f":"core/file-walker.js"},"gF":{"t":"F","e":true,"f":"core/filters.js"},"sF":{"t":"F","e":true,"f":"core/filters.js"},"aE":{"t":"F","e":true,"f":"core/filters.js"},"rE":{"t":"F","e":true,"f":"core/filters.js"},"rF":{"t":"F","e":true,"f":"core/filters.js"},"pG":{"t":"F","e":true,"f":"core/filters.js"},"ED":{"t":"F","e":true,"f":"core/filters.js"},"EF":{"t":"F","e":true,"f":"core/filters.js"},"mL":{"t":"F","e":true,"f":"core/graph-builder.js"},"e":{"t":"F","e":false,"f":"core/graph-builder.js"},"bG":{"t":"F","e":true,"f":"core/graph-builder.js"},"cS1":{"t":"F","e":true,"f":"core/graph-builder.js"},"pF":{"t":"F","e":true,"f":"core/parser.js"},"SP":{"t":"F","e":true,"f":"core/parser.js"},"pP1":{"t":"F","e":true,"f":"core/parser.js"},"APF":{"t":"F","e":true,"f":"core/parser.js"},"eT":{"t":"F","e":true,"f":"core/utils.js"},"sR":{"t":"F","e":true,"f":"core/workspace.js"},"WR":{"t":"F","e":true,"f":"core/workspace.js"},"rP":{"t":"F","e":true,"f":"core/workspace.js"},"pG1":{"t":"F","e":true,"f":"lang/lang-go.js"},"eI":{"t":"F","e":false,"f":"lang/lang-go.js"},"gB":{"t":"F","e":false,"f":"lang/lang-go.js"},"eC1":{"t":"F","e":false,"f":"lang/lang-go.js"},"pP2":{"t":"F","e":true,"f":"lang/lang-python.js"},"SQL":{"t":"F","e":true,"f":"lang/lang-sql.js"},"t":{"t":"F","e":false,"f":"lang/lang-sql.js"},"SQL1":{"t":"F","e":true,"f":"lang/lang-sql.js"},"SQL2":{"t":"F","e":true,"f":"lang/lang-sql.js"},"n":{"t":"F","e":false,"f":"network/mdns.js"},"SQL3":{"t":"F","e":true,"f":"lang/lang-sql.js"},"ORM":{"t":"F","e":true,"f":"lang/lang-sql.js"},"TS2":{"t":"F","e":true,"f":"lang/lang-typescript.js"},"eP1":{"t":"F","e":false,"f":"lang/lang-typescript.js"},"SAC":{"t":"F","e":true,"f":"lang/lang-utils.js"},"cS2":{"t":"F","e":true,"f":"mcp/mcp-server.js"},"SS":{"t":"F","e":true,"f":"mcp/mcp-server.js"},"gG":{"t":"F","e":true,"f":"mcp/tools.js"},"gS":{"t":"F","e":true,"f":"mcp/tools.js"},"FZ":{"t":"F","e":true,"f":"mcp/tools.js"},"ex":{"t":"F","e":true,"f":"mcp/tools.js"},"de":{"t":"F","e":true,"f":"mcp/tools.js"},"us":{"t":"F","e":true,"f":"mcp/tools.js"},"CC1":{"t":"F","e":true,"f":"mcp/tools.js"},"iC":{"t":"F","e":true,"f":"mcp/tools.js"},"_V":{"t":"F","e":false,"f":"network/backend-lifecycle.js"},"bB":{"t":"F","e":false,"f":"network/backend-lifecycle.js"},"PF":{"t":"F","e":true,"f":"network/backend-lifecycle.js"},"PF1":{"t":"F","e":true,"f":"network/backend-lifecycle.js"},"lB":{"t":"F","e":true,"f":"network/backend-lifecycle.js"},"eB":{"t":"F","e":true,"f":"network/backend-lifecycle.js"},"SP1":{"t":"F","e":true,"f":"network/backend-lifecycle.js"},"cl":{"t":"F","e":false,"f":"network/backend.js"},"rS":{"t":"F","e":true,"f":"network/local-gateway.js"},"GP":{"t":"F","e":true,"f":"network/local-gateway.js"},"rL":{"t":"F","e":true,"f":"network/mdns.js"},"_r":{"t":"F","e":false,"f":"network/web-server.js"},"k":{"t":"F","e":false,"f":"network/web-server.js"},"_C":{"t":"F","e":false,"f":"network/web-server.js"},"nN":{"t":"F","e":false,"f":"network/web-server.js"},"z":{"t":"F","e":false,"f":"network/web-server.js"},"aA":{"t":"F","e":false,"f":"network/web-server.js"},"WS":{"t":"F","e":true,"f":"network/web-server.js"}},"edges":[],"orphans":["p","u","h","f","y","g","x","v","$","j","S","b","m","w","F","D","M","P","d","i","o","s","analyzeFile","analyzeFilePatterns","analyzePackageJson","a","l","O","R","_loadIgnore","_parseIgnore","_shouldIgnore","addTopLevelNewlines","compactFile","beautifyFile","c","E","fetchReference","listAvailable","sanitize","e","extractImports","getBody","extractCalls","t","n","extractParams","_getVersion","B","cleanup","_rv","k","_clearCache","N","z","A"],"duplicates":{},"files":["analysis/analysis-cache.js","analysis/complexity.js","analysis/custom-rules.js","analysis/db-analysis.js","analysis/dead-code.js","analysis/full-analysis.js","analysis/jsdoc-checker.js","analysis/jsdoc-generator.js","analysis/large-files.js","analysis/outdated-patterns.js","analysis/similar-functions.js","analysis/test-annotations.js","analysis/type-checker.js","analysis/undocumented.js","cli/cli-handlers.js","cli/cli.js","compact/ai-context.js","compact/compact-migrate.js","compact/compact.js","compact/compress.js","compact/ctx-resolver.js","compact/ctx-to-jsdoc.js","compact/doc-dialect.js","compact/expand.js","compact/framework-references.js","compact/instructions.js","compact/jsdoc-builder.js","compact/mode-config.js","compact/split-declarations.js","compact/validate-pipeline.js","core/event-bus.js","core/file-walker.js","core/filters.js","core/graph-builder.js","core/parser.js","core/utils.js","core/workspace.js","lang/lang-go.js","lang/lang-python.js","lang/lang-sql.js","lang/lang-typescript.js","lang/lang-utils.js","mcp/mcp-server.js","mcp/tool-defs.js","mcp/tools.js","network/backend-lifecycle.js","network/backend.js","network/local-gateway.js","network/mdns.js","network/server.js","network/web-server.js"]}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"path":"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact","mtimes":{"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/ai-context.js":1775932068307.1665,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compact-migrate.js":1776001462202.9746,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compact.js":1775932562256.5852,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/compress.js":1775958722177.8923,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/ctx-to-jsdoc.js":1775932068348.9448,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/doc-dialect.js":1775932068402.0254,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/expand.js":1775932068432.0977,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/framework-references.js":1775932068436.373,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/instructions.js":1775932068437.6816,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/mode-config.js":1776001388446.0337,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/src/compact/validate-pipeline.js":1775932068445.2222},"graph":{"v":1,"legend":{"estimateTokens":"eT","getAiContext":"AC","walkJS":"JS","checkGitClean":"GC","extractNames":"eN","buildNamesDirective":"ND","updateCtxNames":"CN","S":"sS","compactMigrate":"cM","walkJSFiles":"JSF","addTopLevelNewlines":"TLN","resolveCtxPath":"CP","compactFile":"cF","beautifyFile":"bF","compactProject":"cP","expandProject":"eP","extractLegend":"eL","compressFile":"cF1","editCompressed":"eC","findSymbolRange":"SR","parseCtxFile":"CF","buildJSDocBlock":"JSD","findCtxFile":"CF1","findExportStart":"ES","injectJSDoc":"JSD1","stripJSDoc":"JSD2","splitTopLevelParams":"TLP","validateCtxContracts":"CC","generateDocDialect":"DD","walkCtxFiles":"CF2","resolveCtxMdPath":"CMP","readContextDocs":"CD","getProjectDocs":"PD","computeSignature":"cS","parseCtxDescriptions":"CD1","checkStaleness":"cS1","buildFileTemplate":"FT","generateContextFiles":"CF3","processFileCtx":"FC","parseCtxSignatures":"CS","parseCtxParams":"CP1","extractReturnType":"RT","sanitizeJSDocText":"JSD3","generateJSDoc":"JSD4","parseCtxVars":"CV","parseCtxNames":"CN1","collectLocals":"cL","collectLocalDecls":"LD","restoreNames":"rN","expandFile":"eF","resolveCtx":"rC","fetchReference":"fR","listAvailable":"lA","getFrameworkReference":"FR","getInstructions":"gI","getConfig":"gC","setConfig":"sC","getModeDescription":"MD","getModeWorkflow":"MW","validatePipeline":"vP"},"reverseLegend":{"eT":"estimateTokens","AC":"getAiContext","JS":"walkJS","GC":"checkGitClean","eN":"extractNames","ND":"buildNamesDirective","CN":"updateCtxNames","sS":"S","cM":"compactMigrate","JSF":"walkJSFiles","TLN":"addTopLevelNewlines","CP":"resolveCtxPath","cF":"compactFile","bF":"beautifyFile","cP":"compactProject","eP":"expandProject","eL":"extractLegend","cF1":"compressFile","eC":"editCompressed","SR":"findSymbolRange","CF":"parseCtxFile","JSD":"buildJSDocBlock","CF1":"findCtxFile","ES":"findExportStart","JSD1":"injectJSDoc","JSD2":"stripJSDoc","TLP":"splitTopLevelParams","CC":"validateCtxContracts","DD":"generateDocDialect","CF2":"walkCtxFiles","CMP":"resolveCtxMdPath","CD":"readContextDocs","PD":"getProjectDocs","cS":"computeSignature","CD1":"parseCtxDescriptions","cS1":"checkStaleness","FT":"buildFileTemplate","CF3":"generateContextFiles","FC":"processFileCtx","CS":"parseCtxSignatures","CP1":"parseCtxParams","RT":"extractReturnType","JSD3":"sanitizeJSDocText","JSD4":"generateJSDoc","CV":"parseCtxVars","CN1":"parseCtxNames","cL":"collectLocals","LD":"collectLocalDecls","rN":"restoreNames","eF":"expandFile","rC":"resolveCtx","fR":"fetchReference","lA":"listAvailable","FR":"getFrameworkReference","gI":"getInstructions","gC":"getConfig","sC":"setConfig","MD":"getModeDescription","MW":"getModeWorkflow","vP":"validatePipeline"},"stats":{"files":11,"classes":0,"functions":67,"tables":0},"nodes":{"eT":{"t":"F","e":false,"f":"validate-pipeline.js"},"AC":{"t":"F","e":true,"f":"ai-context.js"},"JS":{"t":"F","e":false,"f":"compact-migrate.js"},"GC":{"t":"F","e":false,"f":"compact-migrate.js"},"eN":{"t":"F","e":false,"f":"compact-migrate.js"},"ND":{"t":"F","e":false,"f":"compact-migrate.js"},"CN":{"t":"F","e":false,"f":"compact-migrate.js"},"sS":{"t":"F","e":false,"f":"compact-migrate.js"},"cM":{"t":"F","e":true,"f":"compact-migrate.js"},"JSF":{"t":"F","e":false,"f":"validate-pipeline.js"},"TLN":{"t":"F","e":false,"f":"compact.js"},"CP":{"t":"F","e":false,"f":"doc-dialect.js"},"cF":{"t":"F","e":false,"f":"compact.js"},"bF":{"t":"F","e":false,"f":"compact.js"},"cP":{"t":"F","e":true,"f":"compact.js"},"eP":{"t":"F","e":true,"f":"expand.js"},"eL":{"t":"F","e":false,"f":"compress.js"},"cF1":{"t":"F","e":true,"f":"compress.js"},"eC":{"t":"F","e":true,"f":"compress.js"},"SR":{"t":"F","e":false,"f":"compress.js"},"CF":{"t":"F","e":true,"f":"ctx-to-jsdoc.js"},"JSD":{"t":"F","e":false,"f":"ctx-to-jsdoc.js"},"CF1":{"t":"F","e":false,"f":"ctx-to-jsdoc.js"},"ES":{"t":"F","e":false,"f":"ctx-to-jsdoc.js"},"JSD1":{"t":"F","e":true,"f":"ctx-to-jsdoc.js"},"JSD2":{"t":"F","e":true,"f":"ctx-to-jsdoc.js"},"TLP":{"t":"F","e":false,"f":"ctx-to-jsdoc.js"},"CC":{"t":"F","e":true,"f":"ctx-to-jsdoc.js"},"DD":{"t":"F","e":true,"f":"doc-dialect.js"},"CF2":{"t":"F","e":false,"f":"doc-dialect.js"},"CMP":{"t":"F","e":false,"f":"doc-dialect.js"},"CD":{"t":"F","e":true,"f":"doc-dialect.js"},"PD":{"t":"F","e":true,"f":"doc-dialect.js"},"cS":{"t":"F","e":false,"f":"doc-dialect.js"},"CD1":{"t":"F","e":false,"f":"doc-dialect.js"},"cS1":{"t":"F","e":true,"f":"doc-dialect.js"},"FT":{"t":"F","e":false,"f":"doc-dialect.js"},"CF3":{"t":"F","e":true,"f":"doc-dialect.js"},"FC":{"t":"F","e":false,"f":"doc-dialect.js"},"CS":{"t":"F","e":false,"f":"expand.js"},"CP1":{"t":"F","e":false,"f":"expand.js"},"RT":{"t":"F","e":false,"f":"expand.js"},"JSD3":{"t":"F","e":false,"f":"expand.js"},"JSD4":{"t":"F","e":false,"f":"expand.js"},"CV":{"t":"F","e":false,"f":"expand.js"},"CN1":{"t":"F","e":false,"f":"expand.js"},"cL":{"t":"F","e":false,"f":"expand.js"},"LD":{"t":"F","e":false,"f":"expand.js"},"rN":{"t":"F","e":false,"f":"expand.js"},"eF":{"t":"F","e":true,"f":"expand.js"},"rC":{"t":"F","e":false,"f":"expand.js"},"fR":{"t":"F","e":false,"f":"framework-references.js"},"lA":{"t":"F","e":false,"f":"framework-references.js"},"FR":{"t":"F","e":true,"f":"framework-references.js"},"gI":{"t":"F","e":true,"f":"instructions.js"},"gC":{"t":"F","e":true,"f":"mode-config.js"},"sC":{"t":"F","e":true,"f":"mode-config.js"},"MD":{"t":"F","e":true,"f":"mode-config.js"},"MW":{"t":"F","e":true,"f":"mode-config.js"},"vP":{"t":"F","e":true,"f":"validate-pipeline.js"}},"edges":[],"orphans":["estimateTokens","walkJS","checkGitClean","extractNames","buildNamesDirective","updateCtxNames","S","walkJSFiles","addTopLevelNewlines","resolveCtxPath","compactFile","beautifyFile","extractLegend","findSymbolRange","buildJSDocBlock","findCtxFile","findExportStart","splitTopLevelParams","walkCtxFiles","resolveCtxMdPath","computeSignature","parseCtxDescriptions","buildFileTemplate","processFileCtx","parseCtxSignatures","parseCtxParams","extractReturnType","sanitizeJSDocText","generateJSDoc","parseCtxVars","parseCtxNames","collectLocals","collectLocalDecls","restoreNames","resolveCtx","fetchReference","listAvailable"],"duplicates":{},"files":["ai-context.js","compact-migrate.js","compact.js","compress.js","ctx-to-jsdoc.js","doc-dialect.js","expand.js","framework-references.js","instructions.js","mode-config.js","validate-pipeline.js"]}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"path":"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web","mtimes":{"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/app.js":1775830354553.7673,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/components/code-block.js":1775768594540.4138,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/dashboard-state.js":1775841800058.7944,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/dashboard.js":1775841811371.568,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/highlight.js":1775763193218.1758,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/ActionBoard/ActionBoard.js":1775842060331.7385,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/EventItem/EventItem.js":1775842071481.2783,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/ProjectItem/ProjectItem.js":1775842069353.9573,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/ProjectList/ProjectList.js":1775842139530.3425,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/code-viewer.js":1775769030911.7693,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/ctx-panel.js":1775755674646.3315,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/dep-graph.js":1775755687233.0095,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/file-tree.js":1775784918639.9016,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/health-panel.js":1775755699133.5889,"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/live-monitor.js":1775755711324.3772},"graph":{"v":1,"legend":{"CodeBlock":"CB","ActionBoard":"AB","EventItem":"EI","ProjectItem":"PI","ProjectList":"PL","CodeViewer":"CV","CtxPanel":"CP","DepGraph":"DG","FileTree":"FT","HealthPanel":"HP","LiveMonitor":"LM","api":"ap","emit":"em","initWebSocket":"WS","applyRouteLayout":"RL","initLayout":"iL","init":"in","updateAgentBadge":"AB1","fetchGatewayInfo":"GI","initWebSockets":"WS1","esc":"es","highlight":"hi","escRange":"eR","isDigit":"iD","isHexDigit":"HD","isIdentStart":"IS","isIdentPart":"IP","renderCallback":"rC","initCallback":"iC","_getCodeBlock":"_CB","_loadFile":"_F","_loadCtx":"_C","_formatCtx":"_C1","_renderOverview":"_O","_loadDeps":"_D","_highlightFile":"_F1","_renderTree":"_T","_applyFilter":"_F2","_loadHealth":"_H","_metric":"_m","_addEvent":"_E","_esc":"_e","_formatTime":"_T1"},"reverseLegend":{"CB":"CodeBlock","AB":"ActionBoard","EI":"EventItem","PI":"ProjectItem","PL":"ProjectList","CV":"CodeViewer","CP":"CtxPanel","DG":"DepGraph","FT":"FileTree","HP":"HealthPanel","LM":"LiveMonitor","ap":"api","em":"emit","WS":"initWebSocket","RL":"applyRouteLayout","iL":"initLayout","in":"init","AB1":"updateAgentBadge","GI":"fetchGatewayInfo","WS1":"initWebSockets","es":"esc","hi":"highlight","eR":"escRange","iD":"isDigit","HD":"isHexDigit","IS":"isIdentStart","IP":"isIdentPart","rC":"renderCallback","iC":"initCallback","_CB":"_getCodeBlock","_F":"_loadFile","_C":"_loadCtx","_C1":"_formatCtx","_O":"_renderOverview","_D":"_loadDeps","_F1":"_highlightFile","_T":"_renderTree","_F2":"_applyFilter","_H":"_loadHealth","_m":"_metric","_E":"_addEvent","_e":"_esc","_T1":"_formatTime"},"stats":{"files":15,"classes":11,"functions":18,"tables":0},"nodes":{"CB":{"t":"C","x":"Symbiote","m":["rC"],"$":["code","highlighted"],"f":"components/code-block.js"},"AB":{"t":"C","x":"Symbiote","m":["iC"],"$":["eventsItems"],"f":"panels/ActionBoard/ActionBoard.js"},"EI":{"t":"C","x":"Symbiote","m":[],"$":["ts","type","tool"],"f":"panels/EventItem/EventItem.js"},"PI":{"t":"C","x":"Symbiote","m":[],"$":["prefix","projectName","projectPath"],"f":"panels/ProjectItem/ProjectItem.js"},"PL":{"t":"C","x":"Symbiote","m":["iC"],"$":["projects"],"f":"panels/ProjectList/ProjectList.js"},"CV":{"t":"C","x":"Symbiote","m":["iC","rC","_CB","_F"],"$":["filename","hasFile"],"f":"panels/code-viewer.js"},"CP":{"t":"C","x":"Symbiote","m":["iC","_C","_C1"],"$":["contentHTML"],"f":"panels/ctx-panel.js"},"DG":{"t":"C","x":"Symbiote","m":["iC","_O","_D"],"$":["contentHTML"],"f":"panels/dep-graph.js"},"FT":{"t":"C","x":"Symbiote","m":["iC","_F1","_T","_F2"],"$":["treeHTML","filterText","onFilterInput"],"f":"panels/file-tree.js"},"HP":{"t":"C","x":"Symbiote","m":["iC","_H","_m"],"$":["contentHTML","loaded"],"f":"panels/health-panel.js"},"LM":{"t":"C","x":"Symbiote","m":["iC","_E","_e","_T1"],"$":["eventsHTML","eventCount"],"f":"panels/live-monitor.js"},"ap":{"t":"F","e":true,"f":"app.js"},"em":{"t":"F","e":true,"f":"dashboard-state.js"},"WS":{"t":"F","e":false,"f":"app.js"},"RL":{"t":"F","e":false,"f":"app.js"},"iL":{"t":"F","e":false,"f":"app.js"},"in":{"t":"F","e":false,"f":"dashboard.js"},"AB1":{"t":"F","e":false,"f":"app.js"},"GI":{"t":"F","e":false,"f":"dashboard.js"},"WS1":{"t":"F","e":false,"f":"dashboard.js"},"es":{"t":"F","e":false,"f":"highlight.js"},"hi":{"t":"F","e":true,"f":"highlight.js"},"eR":{"t":"F","e":false,"f":"highlight.js"},"iD":{"t":"F","e":false,"f":"highlight.js"},"HD":{"t":"F","e":false,"f":"highlight.js"},"IS":{"t":"F","e":false,"f":"highlight.js"},"IP":{"t":"F","e":false,"f":"highlight.js"}},"edges":[["CB","→","hi"],["CV","→","_F"],["CV","→","ap"],["CV","→","_CB"],["CP","→","_C"],["CP","→","ap"],["CP","→","_C1"],["CP","→","es.slice"],["DG","→","_D"],["DG","→","_O"],["FT","→","_T"],["FT","→","_F1"],["FT","→","em"],["HP","→","_H"],["HP","→","ap"],["HP","→","_m"],["LM","→","_E"],["LM","→","_e"],["LM","→","_T1"]],"orphans":["initWebSocket","applyRouteLayout","initLayout","init","updateAgentBadge","fetchGatewayInfo","initWebSockets","escRange","isDigit","isHexDigit","isIdentStart","isIdentPart"],"duplicates":{"renderCallback":["CodeBlock:15","CodeViewer:9"],"initCallback":["ActionBoard:7","ProjectList:7","CodeViewer:9","CtxPanel:4","DepGraph:4","FileTree:4","HealthPanel:4","LiveMonitor:4"]},"files":["app.js","components/code-block.js","dashboard-state.js","dashboard.js","highlight.js","panels/ActionBoard/ActionBoard.js","panels/EventItem/EventItem.js","panels/ProjectItem/ProjectItem.js","panels/ProjectList/ProjectList.js","panels/code-viewer.js","panels/ctx-panel.js","panels/dep-graph.js","panels/file-tree.js","panels/health-panel.js","panels/live-monitor.js"]}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"path":"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/SettingsPanel","mtimes":{"/Users/v.matiyasevich/Documents/GitHub/project-graph-mcp/web/panels/SettingsPanel/SettingsPanel.js":1775871453008.7366},"graph":{"v":1,"legend":{"SettingsPanel":"SP","metric":"me","renderCallback":"rC","fetchInfo":"fI"},"reverseLegend":{"SP":"SettingsPanel","me":"metric","rC":"renderCallback","fI":"fetchInfo"},"stats":{"files":1,"classes":1,"functions":1,"tables":0},"nodes":{"SP":{"t":"C","x":"Symbiote","m":["rC","fI"],"f":"SettingsPanel.js"},"me":{"t":"F","e":false,"f":"SettingsPanel.js"}},"edges":[["SP","→","fI"],["SP","→","me"]],"orphans":[],"duplicates":{},"files":["SettingsPanel.js"]}}
|