@mcp-graph-workflow/mcp-graph 5.2.0 → 5.4.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.
Files changed (244) hide show
  1. package/dist/api/router.d.ts +0 -1
  2. package/dist/api/router.d.ts.map +1 -1
  3. package/dist/api/router.js +4 -5
  4. package/dist/api/router.js.map +1 -1
  5. package/dist/api/routes/benchmark.d.ts.map +1 -1
  6. package/dist/api/routes/benchmark.js +47 -2
  7. package/dist/api/routes/benchmark.js.map +1 -1
  8. package/dist/api/routes/code-graph.d.ts +12 -0
  9. package/dist/api/routes/code-graph.d.ts.map +1 -0
  10. package/dist/api/routes/code-graph.js +154 -0
  11. package/dist/api/routes/code-graph.js.map +1 -0
  12. package/dist/api/routes/context.d.ts.map +1 -1
  13. package/dist/api/routes/context.js +75 -0
  14. package/dist/api/routes/context.js.map +1 -1
  15. package/dist/api/routes/folder.d.ts +1 -4
  16. package/dist/api/routes/folder.d.ts.map +1 -1
  17. package/dist/api/routes/folder.js +19 -17
  18. package/dist/api/routes/folder.js.map +1 -1
  19. package/dist/api/routes/integrations.d.ts.map +1 -1
  20. package/dist/api/routes/integrations.js +60 -16
  21. package/dist/api/routes/integrations.js.map +1 -1
  22. package/dist/api/routes/knowledge.js +1 -1
  23. package/dist/api/routes/knowledge.js.map +1 -1
  24. package/dist/api/routes/skills.d.ts +2 -1
  25. package/dist/api/routes/skills.d.ts.map +1 -1
  26. package/dist/api/routes/skills.js +194 -4
  27. package/dist/api/routes/skills.js.map +1 -1
  28. package/dist/cli/commands/index-cmd.js +5 -5
  29. package/dist/cli/commands/index-cmd.js.map +1 -1
  30. package/dist/core/code/code-indexer.d.ts +20 -0
  31. package/dist/core/code/code-indexer.d.ts.map +1 -0
  32. package/dist/core/code/code-indexer.js +161 -0
  33. package/dist/core/code/code-indexer.js.map +1 -0
  34. package/dist/core/code/code-search.d.ts +16 -0
  35. package/dist/core/code/code-search.d.ts.map +1 -0
  36. package/dist/core/code/code-search.js +77 -0
  37. package/dist/core/code/code-search.js.map +1 -0
  38. package/dist/core/code/code-store.d.ts +35 -0
  39. package/dist/core/code/code-store.d.ts.map +1 -0
  40. package/dist/core/code/code-store.js +228 -0
  41. package/dist/core/code/code-store.js.map +1 -0
  42. package/dist/core/code/code-types.d.ts +209 -0
  43. package/dist/core/code/code-types.d.ts.map +1 -0
  44. package/dist/core/code/code-types.js +94 -0
  45. package/dist/core/code/code-types.js.map +1 -0
  46. package/dist/core/code/graph-traversal.d.ts +27 -0
  47. package/dist/core/code/graph-traversal.d.ts.map +1 -0
  48. package/dist/core/code/graph-traversal.js +122 -0
  49. package/dist/core/code/graph-traversal.js.map +1 -0
  50. package/dist/core/code/process-detector.d.ts +11 -0
  51. package/dist/core/code/process-detector.d.ts.map +1 -0
  52. package/dist/core/code/process-detector.js +65 -0
  53. package/dist/core/code/process-detector.js.map +1 -0
  54. package/dist/core/code/ts-analyzer.d.ts +12 -0
  55. package/dist/core/code/ts-analyzer.d.ts.map +1 -0
  56. package/dist/core/code/ts-analyzer.js +331 -0
  57. package/dist/core/code/ts-analyzer.js.map +1 -0
  58. package/dist/core/config/ai-memory-generator.d.ts.map +1 -1
  59. package/dist/core/config/ai-memory-generator.js +149 -61
  60. package/dist/core/config/ai-memory-generator.js.map +1 -1
  61. package/dist/core/config/config-loader.d.ts.map +1 -1
  62. package/dist/core/config/config-loader.js +2 -10
  63. package/dist/core/config/config-loader.js.map +1 -1
  64. package/dist/core/config/config-schema.d.ts +1 -2
  65. package/dist/core/config/config-schema.d.ts.map +1 -1
  66. package/dist/core/config/config-schema.js +2 -3
  67. package/dist/core/config/config-schema.js.map +1 -1
  68. package/dist/core/context/compact-context.d.ts +51 -0
  69. package/dist/core/context/compact-context.d.ts.map +1 -1
  70. package/dist/core/context/compact-context.js +292 -0
  71. package/dist/core/context/compact-context.js.map +1 -1
  72. package/dist/core/context/context-assembler.d.ts +1 -1
  73. package/dist/core/context/context-assembler.js +1 -1
  74. package/dist/core/doctor/doctor-checks.d.ts +1 -1
  75. package/dist/core/doctor/doctor-checks.js +21 -21
  76. package/dist/core/doctor/doctor-checks.js.map +1 -1
  77. package/dist/core/events/event-types.d.ts +18 -1
  78. package/dist/core/events/event-types.d.ts.map +1 -1
  79. package/dist/core/graph/graph-types.d.ts +1 -0
  80. package/dist/core/graph/graph-types.d.ts.map +1 -1
  81. package/dist/core/insights/bottleneck-detector.js +1 -1
  82. package/dist/core/insights/bottleneck-detector.js.map +1 -1
  83. package/dist/core/integrations/enriched-context.d.ts +10 -6
  84. package/dist/core/integrations/enriched-context.d.ts.map +1 -1
  85. package/dist/core/integrations/enriched-context.js +35 -35
  86. package/dist/core/integrations/enriched-context.js.map +1 -1
  87. package/dist/core/integrations/integration-orchestrator.js +2 -2
  88. package/dist/core/integrations/integration-orchestrator.js.map +1 -1
  89. package/dist/core/integrations/mcp-deps-installer.d.ts +1 -1
  90. package/dist/core/integrations/mcp-deps-installer.d.ts.map +1 -1
  91. package/dist/core/integrations/mcp-deps-installer.js +1 -60
  92. package/dist/core/integrations/mcp-deps-installer.js.map +1 -1
  93. package/dist/core/integrations/mcp-servers-config.d.ts +1 -1
  94. package/dist/core/integrations/mcp-servers-config.d.ts.map +1 -1
  95. package/dist/core/integrations/mcp-servers-config.js +0 -17
  96. package/dist/core/integrations/mcp-servers-config.js.map +1 -1
  97. package/dist/core/integrations/tool-status.d.ts +8 -3
  98. package/dist/core/integrations/tool-status.d.ts.map +1 -1
  99. package/dist/core/integrations/tool-status.js +38 -48
  100. package/dist/core/integrations/tool-status.js.map +1 -1
  101. package/dist/core/memory/memory-migrator.d.ts +15 -0
  102. package/dist/core/memory/memory-migrator.d.ts.map +1 -0
  103. package/dist/core/memory/memory-migrator.js +64 -0
  104. package/dist/core/memory/memory-migrator.js.map +1 -0
  105. package/dist/core/memory/memory-reader.d.ts +30 -0
  106. package/dist/core/memory/memory-reader.d.ts.map +1 -0
  107. package/dist/core/memory/memory-reader.js +106 -0
  108. package/dist/core/memory/memory-reader.js.map +1 -0
  109. package/dist/core/planner/lifecycle-phase.d.ts +1 -0
  110. package/dist/core/planner/lifecycle-phase.d.ts.map +1 -1
  111. package/dist/core/planner/lifecycle-phase.js +11 -8
  112. package/dist/core/planner/lifecycle-phase.js.map +1 -1
  113. package/dist/core/rag/memory-indexer.d.ts +16 -0
  114. package/dist/core/rag/memory-indexer.d.ts.map +1 -0
  115. package/dist/core/rag/{serena-indexer.js → memory-indexer.js} +12 -12
  116. package/dist/core/rag/memory-indexer.js.map +1 -0
  117. package/dist/core/rag/{serena-rag-query.d.ts → memory-rag-query.d.ts} +11 -9
  118. package/dist/core/rag/memory-rag-query.d.ts.map +1 -0
  119. package/dist/core/rag/{serena-rag-query.js → memory-rag-query.js} +18 -15
  120. package/dist/core/rag/memory-rag-query.js.map +1 -0
  121. package/dist/core/rag/skill-indexer.d.ts +16 -0
  122. package/dist/core/rag/skill-indexer.d.ts.map +1 -0
  123. package/dist/core/rag/skill-indexer.js +98 -0
  124. package/dist/core/rag/skill-indexer.js.map +1 -0
  125. package/dist/core/skills/built-in-skills.d.ts +26 -0
  126. package/dist/core/skills/built-in-skills.d.ts.map +1 -0
  127. package/dist/core/skills/built-in-skills.js +467 -0
  128. package/dist/core/skills/built-in-skills.js.map +1 -0
  129. package/dist/core/skills/self-healing-listener.d.ts +22 -0
  130. package/dist/core/skills/self-healing-listener.d.ts.map +1 -0
  131. package/dist/core/skills/self-healing-listener.js +102 -0
  132. package/dist/core/skills/self-healing-listener.js.map +1 -0
  133. package/dist/core/skills/skill-store.d.ts +14 -0
  134. package/dist/core/skills/skill-store.d.ts.map +1 -0
  135. package/dist/core/skills/skill-store.js +109 -0
  136. package/dist/core/skills/skill-store.js.map +1 -0
  137. package/dist/core/store/knowledge-store.d.ts +1 -1
  138. package/dist/core/store/knowledge-store.js +1 -1
  139. package/dist/core/store/migrations.d.ts.map +1 -1
  140. package/dist/core/store/migrations.js +128 -0
  141. package/dist/core/store/migrations.js.map +1 -1
  142. package/dist/core/store/path-resolver.d.ts +38 -0
  143. package/dist/core/store/path-resolver.d.ts.map +1 -0
  144. package/dist/core/store/path-resolver.js +92 -0
  145. package/dist/core/store/path-resolver.js.map +1 -0
  146. package/dist/core/store/sqlite-store.d.ts +21 -0
  147. package/dist/core/store/sqlite-store.d.ts.map +1 -1
  148. package/dist/core/store/sqlite-store.js +81 -30
  149. package/dist/core/store/sqlite-store.js.map +1 -1
  150. package/dist/core/store/tool-token-store.d.ts +39 -0
  151. package/dist/core/store/tool-token-store.d.ts.map +1 -0
  152. package/dist/core/store/tool-token-store.js +79 -0
  153. package/dist/core/store/tool-token-store.js.map +1 -0
  154. package/dist/core/utils/constants.d.ts +10 -0
  155. package/dist/core/utils/constants.d.ts.map +1 -1
  156. package/dist/core/utils/constants.js +12 -0
  157. package/dist/core/utils/constants.js.map +1 -1
  158. package/dist/mcp/app-factory.d.ts +0 -1
  159. package/dist/mcp/app-factory.d.ts.map +1 -1
  160. package/dist/mcp/app-factory.js +2 -2
  161. package/dist/mcp/app-factory.js.map +1 -1
  162. package/dist/mcp/lifecycle-wrapper.d.ts +3 -1
  163. package/dist/mcp/lifecycle-wrapper.d.ts.map +1 -1
  164. package/dist/mcp/lifecycle-wrapper.js +41 -1
  165. package/dist/mcp/lifecycle-wrapper.js.map +1 -1
  166. package/dist/mcp/server.js +19 -14
  167. package/dist/mcp/server.js.map +1 -1
  168. package/dist/mcp/tools/index.d.ts.map +1 -1
  169. package/dist/mcp/tools/index.js +6 -0
  170. package/dist/mcp/tools/index.js.map +1 -1
  171. package/dist/mcp/tools/list-skills.d.ts +7 -0
  172. package/dist/mcp/tools/list-skills.d.ts.map +1 -0
  173. package/dist/mcp/tools/list-skills.js +68 -0
  174. package/dist/mcp/tools/list-skills.js.map +1 -0
  175. package/dist/mcp/tools/manage-skill.d.ts +8 -0
  176. package/dist/mcp/tools/manage-skill.d.ts.map +1 -0
  177. package/dist/mcp/tools/manage-skill.js +149 -0
  178. package/dist/mcp/tools/manage-skill.js.map +1 -0
  179. package/dist/mcp/tools/memory.d.ts +8 -0
  180. package/dist/mcp/tools/memory.d.ts.map +1 -0
  181. package/dist/mcp/tools/memory.js +106 -0
  182. package/dist/mcp/tools/memory.js.map +1 -0
  183. package/dist/mcp/tools/reindex-knowledge.d.ts.map +1 -1
  184. package/dist/mcp/tools/reindex-knowledge.js +11 -7
  185. package/dist/mcp/tools/reindex-knowledge.js.map +1 -1
  186. package/dist/schemas/graph.schema.d.ts +2 -0
  187. package/dist/schemas/graph.schema.d.ts.map +1 -1
  188. package/dist/schemas/graph.schema.js +1 -0
  189. package/dist/schemas/graph.schema.js.map +1 -1
  190. package/dist/schemas/knowledge.schema.d.ts +4 -0
  191. package/dist/schemas/knowledge.schema.d.ts.map +1 -1
  192. package/dist/schemas/knowledge.schema.js +1 -1
  193. package/dist/schemas/knowledge.schema.js.map +1 -1
  194. package/dist/schemas/skill.schema.d.ts +57 -0
  195. package/dist/schemas/skill.schema.d.ts.map +1 -0
  196. package/dist/schemas/skill.schema.js +24 -0
  197. package/dist/schemas/skill.schema.js.map +1 -0
  198. package/dist/web/dashboard/dist/assets/benchmark-tab-BW4QxI49.js +1 -0
  199. package/dist/web/dashboard/dist/assets/constants-kpH_c6vY.js +1 -0
  200. package/dist/web/dashboard/dist/assets/context-tab-C5RAlXNW.js +1 -0
  201. package/dist/web/dashboard/dist/assets/gitnexus-tab-BnxxYl2F.js +430 -0
  202. package/dist/web/dashboard/dist/assets/graph-tab-Cv_wQ6Az.js +1 -0
  203. package/dist/web/dashboard/dist/assets/graph-utils-Ds1zJyD1.js +7 -0
  204. package/dist/web/dashboard/dist/assets/index-BAeZDWWy.js +53 -0
  205. package/dist/web/dashboard/dist/assets/index-Bic_URMs.js +17 -0
  206. package/dist/web/dashboard/dist/assets/index-DQqYFXms.css +1 -0
  207. package/dist/web/dashboard/dist/assets/insights-tab-U_ATOqPu.js +52 -0
  208. package/dist/web/dashboard/dist/assets/{logs-tab-Cxpcv_ni.js → logs-tab-B8psCXuB.js} +1 -1
  209. package/dist/web/dashboard/dist/assets/memories-tab-DcWok2by.js +1 -0
  210. package/dist/web/dashboard/dist/assets/prd-backlog-tab-CjftveTc.js +1 -0
  211. package/dist/web/dashboard/dist/assets/skills-tab-Ddp1w4vS.js +1 -0
  212. package/dist/web/dashboard/dist/index.html +2 -2
  213. package/package.json +2 -2
  214. package/dist/api/routes/gitnexus.d.ts +0 -12
  215. package/dist/api/routes/gitnexus.d.ts.map +0 -1
  216. package/dist/api/routes/gitnexus.js +0 -164
  217. package/dist/api/routes/gitnexus.js.map +0 -1
  218. package/dist/core/integrations/gitnexus-launcher.d.ts +0 -67
  219. package/dist/core/integrations/gitnexus-launcher.d.ts.map +0 -1
  220. package/dist/core/integrations/gitnexus-launcher.js +0 -268
  221. package/dist/core/integrations/gitnexus-launcher.js.map +0 -1
  222. package/dist/core/integrations/gitnexus-queries.d.ts +0 -55
  223. package/dist/core/integrations/gitnexus-queries.d.ts.map +0 -1
  224. package/dist/core/integrations/gitnexus-queries.js +0 -168
  225. package/dist/core/integrations/gitnexus-queries.js.map +0 -1
  226. package/dist/core/integrations/serena-reader.d.ts +0 -18
  227. package/dist/core/integrations/serena-reader.d.ts.map +0 -1
  228. package/dist/core/integrations/serena-reader.js +0 -68
  229. package/dist/core/integrations/serena-reader.js.map +0 -1
  230. package/dist/core/rag/serena-indexer.d.ts +0 -16
  231. package/dist/core/rag/serena-indexer.d.ts.map +0 -1
  232. package/dist/core/rag/serena-indexer.js.map +0 -1
  233. package/dist/core/rag/serena-rag-query.d.ts.map +0 -1
  234. package/dist/core/rag/serena-rag-query.js.map +0 -1
  235. package/dist/web/dashboard/dist/assets/benchmark-tab-DE6hAHVG.js +0 -1
  236. package/dist/web/dashboard/dist/assets/constants-BIEJOBya.js +0 -1
  237. package/dist/web/dashboard/dist/assets/gitnexus-tab-DsBjJHx8.js +0 -312
  238. package/dist/web/dashboard/dist/assets/graph-tab-C09DzeZ_.js +0 -1
  239. package/dist/web/dashboard/dist/assets/graph-utils-D4LFspTf.js +0 -23
  240. package/dist/web/dashboard/dist/assets/index-B2fTJ4AS.js +0 -53
  241. package/dist/web/dashboard/dist/assets/index-CkqEqKiH.css +0 -1
  242. package/dist/web/dashboard/dist/assets/insights-tab-Bm7CDckb.js +0 -1
  243. package/dist/web/dashboard/dist/assets/prd-backlog-tab-X84Rj-IB.js +0 -1
  244. package/dist/web/dashboard/dist/assets/serena-tab-BunULNvw.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as u,a as h,j as e}from"./index-BAeZDWWy.js";function v(){const[n,d]=u.useState(null),[m,t]=u.useState(!0),[a,x]=u.useState(null);return u.useEffect(()=>{async function r(){try{const c=await h.request("/benchmark");d(c)}catch(c){x(c instanceof Error?c.message:"Failed to load benchmark data")}finally{t(!1)}}r()},[]),{data:n,loading:m,error:a}}function b(){const{data:n,loading:d,error:m}=v();if(d)return e.jsx("div",{className:"flex items-center justify-center h-full text-[var(--color-text-muted)]",children:"Loading benchmark data..."});if(m)return e.jsxs("div",{className:"flex items-center justify-center h-full text-[var(--color-danger)]",children:["Failed to load: ",m]});if(!n)return e.jsx("div",{});const{tokenEconomy:t,layeredCompression:a,dependencyIntelligence:x,toolTokenUsage:r,formulas:c}=n;return e.jsxs("div",{className:"p-6 max-w-5xl mx-auto space-y-6 overflow-y-auto h-full",children:[e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Token Economy"}),e.jsxs("div",{className:"grid grid-cols-4 gap-3 mb-4",children:[e.jsx(s,{value:`${t.avgCompressionPercent}%`,label:"Avg Compress"}),e.jsx(s,{value:t.sampleSize>0?Math.round(t.totalTokensSaved/t.sampleSize).toLocaleString():"0",label:"Tokens Saved/Task"}),e.jsx(s,{value:t.totalNodes,label:"Nodes"}),e.jsx(s,{value:t.totalEdges,label:"Edges"})]}),t.perTaskMetrics.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-2",children:"Context Compression per Task (vs Full Graph)"}),e.jsx("div",{className:"space-y-1.5","data-testid":"compression-bars",children:t.perTaskMetrics.slice(0,15).map(l=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"w-32 truncate",title:l.title,children:l.title}),e.jsx("div",{className:"flex-1 h-3 bg-[var(--color-bg-tertiary)] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full bg-[var(--color-accent)]",style:{width:`${Math.min(l.compressionPercent,100)}%`}})}),e.jsxs("span",{className:"text-[var(--color-text-muted)] w-24 text-right",children:[l.compressionPercent,"% (",l.estimatedTokens," tok)"]})]},l.id))})]})]}),a&&e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Real Token Savings (Per-Layer)"}),e.jsxs("div",{className:"grid grid-cols-5 gap-3 mb-4",children:[e.jsx(s,{value:`${a.avgLayer1SavingsPercent}%`,label:"L1: Field Strip"}),e.jsx(s,{value:`${a.avgLayer2SavingsPercent}%`,label:"L2: Desc Truncate"}),e.jsx(s,{value:`${a.avgLayer3SavingsPercent}%`,label:"L3: Default Omit"}),e.jsx(s,{value:`${a.avgLayer4SavingsPercent}%`,label:"L4: Short Keys"}),e.jsx(s,{value:`${a.avgTotalRealSavingsPercent}%`,label:"Total Real Savings"})]}),(()=>{const l=Math.max(a.avgNaiveNeighborhoodTokens,1),o=[{label:"Naive Neighborhood",tokens:a.avgNaiveNeighborhoodTokens,color:"#ef4444"},{label:"L1: Field Stripping",tokens:a.avgCompactContextTokens,color:"#f97316"},{label:"L2: Desc Truncation",tokens:a.avgNeighborTruncatedTokens,color:"#eab308"},{label:"L3: Default Omission",tokens:a.avgDefaultOmittedTokens,color:"#22c55e"},{label:"L4: Short Keys",tokens:a.avgShortKeysTokens,color:"#3b82f6"},{label:"Summary Tier",tokens:a.avgSummaryTierTokens,color:"#8b5cf6"}];return e.jsx("div",{className:"space-y-1.5","data-testid":"waterfall-bars",children:o.map(i=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"w-40 truncate",title:i.label,children:i.label}),e.jsx("div",{className:"flex-1 h-3 bg-[var(--color-bg-tertiary)] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${Math.min(i.tokens/l*100,100)}%`,backgroundColor:i.color}})}),e.jsxs("span",{className:"text-[var(--color-text-muted)] w-20 text-right",children:[i.tokens.toLocaleString()," tok"]})]},i.label))})})()]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Dependency Intelligence"}),e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsx(s,{value:x.inferredDeps,label:"Auto Inferred"}),e.jsx(s,{value:`${x.blockedTasks}/${t.totalNodes}`,label:"Blocked Detected"}),e.jsx(s,{value:x.cycles,label:"Cycles Detected"})]})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Formulas & Justification"}),e.jsx("div",{className:"px-3 py-2 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-xs space-y-1","data-testid":"formulas-section",children:Object.entries(c).map(([l,o])=>e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("span",{className:"text-[var(--color-text-muted)] font-mono w-40 shrink-0",children:[l,":"]}),e.jsx("span",{children:o})]},l))})]}),r&&r.totalCalls>0&&e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Tool Token Usage"}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[e.jsx(s,{value:r.totalCalls.toLocaleString(),label:"Total Calls"}),e.jsx(s,{value:r.totalInputTokens.toLocaleString(),label:"Total Input Tokens"}),e.jsx(s,{value:r.totalOutputTokens.toLocaleString(),label:"Total Output Tokens"})]}),r.perTool.length>0&&(()=>{const l=Math.max(...r.perTool.map(o=>o.totalTokens),1);return e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-2",children:"Token Usage per Tool"}),e.jsx("div",{className:"space-y-1.5","data-testid":"tool-token-bars",children:r.perTool.slice(0,15).map(o=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"w-32 truncate font-mono",title:o.toolName,children:o.toolName}),e.jsx("div",{className:"flex-1 h-3 bg-[var(--color-bg-tertiary)] rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full bg-[var(--color-accent)]",style:{width:`${Math.min(o.totalTokens/l*100,100)}%`}})}),e.jsxs("span",{className:"text-[var(--color-text-muted)] w-32 text-right",children:[o.callCount," calls, ",o.totalTokens.toLocaleString()," tok"]})]},o.toolName))})]})})()]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-3",children:"Cost Savings per Task"}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(s,{value:`$${t.costSavings.opusPerTask.toFixed(3)}`,label:"Opus Input"}),e.jsx(s,{value:`$${t.costSavings.sonnetPerTask.toFixed(3)}`,label:"Sonnet Input"})]})]})]})}function s({value:n,label:d}){return e.jsxs("div",{className:"p-3 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-center","data-testid":"metric-card",children:[e.jsx("div",{className:"text-xl font-bold",children:n}),e.jsx("div",{className:"text-[10px] text-[var(--color-text-muted)] uppercase",children:d})]})}export{b as BenchmarkTab};
@@ -0,0 +1 @@
1
+ const e={epic:"#7c3aed",task:"#2196f3",subtask:"#10b981",requirement:"#f59e0b",constraint:"#ef4444",milestone:"#8b5cf6",acceptance_criteria:"#06b6d4",risk:"#f97316",decision:"#ec4899"},o={done:"#4caf50",in_progress:"#2196f3",blocked:"#f44336",ready:"#ff9800",backlog:"#9e9e9e"},s={done:"Done",in_progress:"In Progress",blocked:"Blocked",ready:"Ready",backlog:"Backlog"},a={depends_on:{color:"#6c757d",dashed:!1,label:"depends on"},blocks:{color:"#f44336",dashed:!0,label:"blocks"},parent_of:{color:"#7c3aed",dashed:!1,label:"parent of"},child_of:{color:"#10b981",dashed:!1,label:"child of"},related_to:{color:"#9e9e9e",dashed:!0,label:"related to"},priority_over:{color:"#ff9800",dashed:!0,label:"priority over"},implements:{color:"#2196f3",dashed:!1,label:"implements"},derived_from:{color:"#06b6d4",dashed:!0,label:"derived from"}},c=["backlog","ready","in_progress","blocked","done"],d=["epic","task","subtask","requirement","constraint","milestone","acceptance_criteria","risk","decision"],l={function:"#4fc3f7",class:"#ce93d8",method:"#81c784",interface:"#4dd0e1",variable:"#ffd54f",module:"#b39ddb",file:"#90a4ae",folder:"#78909c"},r={imports:"#546e7a",calls:"#4fc3f7",belongs_to:"#ce93d8",extends:"#81c784",implements:"#4dd0e1"},t={belongs_to:"Contains",imports:"Imports",calls:"Calls",extends:"Extends",implements:"Implements"};export{c as A,l as C,a as E,e as N,o as S,d as a,r as b,t as c,s as d};
@@ -0,0 +1 @@
1
+ import{r as o,a as x,j as e}from"./index-BAeZDWWy.js";function u(){const[t,n]=o.useState(null),[d,l]=o.useState(!0),[a,c]=o.useState(null),r=o.useCallback(async()=>{l(!0),c(null);try{const s=await x.getContextBudget();n(s)}catch(s){c(s instanceof Error?s.message:"Failed to load context budget")}finally{l(!1)}},[]);return o.useEffect(()=>{r()},[r]),{budget:t,loading:d,error:a,refresh:r}}const i={green:{bg:"bg-green-500/10",text:"text-green-500",border:"border-green-500/30"},yellow:{bg:"bg-yellow-500/10",text:"text-yellow-500",border:"border-yellow-500/30"},red:{bg:"bg-red-500/10",text:"text-red-500",border:"border-red-500/30"}};function h(){const{budget:t,loading:n,error:d,refresh:l}=u();if(d)return e.jsxs("div",{className:"flex items-center justify-center h-full text-[var(--color-danger)]",children:["Failed to load context budget: ",d]});if(n||!t)return e.jsx("div",{className:"flex items-center justify-center h-full text-[var(--color-text-muted)]",children:"Loading context budget..."});const a=i[t.health]??i.green,c=async r=>{await x.toggleSkill(r,!1),l()};return e.jsxs("div",{className:"p-6 max-w-6xl mx-auto space-y-6 overflow-y-auto h-full",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Context Management"}),e.jsx("button",{onClick:()=>l(),className:"text-xs px-3 py-1.5 rounded-lg bg-[var(--color-accent)] text-white hover:opacity-90 transition-opacity",children:"Refresh"})]}),e.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3",children:[e.jsxs("div",{className:"p-3 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-center",children:[e.jsx("div",{className:"text-xl font-bold",children:t.activeTokens.toLocaleString()}),e.jsx("div",{className:"text-[10px] text-[var(--color-text-muted)] uppercase",children:"Active Tokens"})]}),e.jsxs("div",{className:"p-3 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-center",children:[e.jsx("div",{className:"text-xl font-bold",children:t.totalTokens.toLocaleString()}),e.jsx("div",{className:"text-[10px] text-[var(--color-text-muted)] uppercase",children:"Total Tokens"})]}),e.jsxs("div",{className:"p-3 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-center",children:[e.jsx("div",{className:"text-xl font-bold",children:t.activeCount}),e.jsx("div",{className:"text-[10px] text-[var(--color-text-muted)] uppercase",children:"Active Skills"})]}),e.jsxs("div",{className:"p-3 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] text-center",children:[e.jsx("div",{className:"text-xl font-bold",children:t.totalCount}),e.jsx("div",{className:"text-[10px] text-[var(--color-text-muted)] uppercase",children:"Total Skills"})]})]}),e.jsxs("div",{className:`p-4 rounded-lg border ${a.bg} ${a.border}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-3 h-3 rounded-full ${t.health==="green"?"bg-green-500":t.health==="yellow"?"bg-yellow-500":"bg-red-500"}`}),e.jsxs("div",{children:[e.jsxs("div",{className:`text-sm font-medium ${a.text}`,children:["Session Health: ",t.health.charAt(0).toUpperCase()+t.health.slice(1)]}),e.jsx("div",{className:"text-xs text-[var(--color-text-muted)] mt-0.5",children:t.healthMessage})]})]}),t.recommendations.length>0&&e.jsx("div",{className:"mt-3 space-y-1",children:t.recommendations.map((r,s)=>e.jsx("div",{className:"text-xs text-[var(--color-text-muted)]",children:r},s))})]}),e.jsxs("div",{className:"p-4 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h3",{className:"text-xs font-semibold text-[var(--color-text-muted)] uppercase",children:"Token Budget"}),e.jsxs("span",{className:"text-xs text-[var(--color-text-muted)]",children:[t.activeTokens.toLocaleString()," / 4,000 (",Math.round(t.activeTokens/40),"%)"]})]}),e.jsxs("div",{className:"w-full h-3 rounded-full bg-[var(--color-border)] relative",children:[e.jsx("div",{className:"h-full rounded-full absolute top-0 left-0 opacity-20",style:{width:`${Math.min(Math.round(t.totalTokens/40),100)}%`,background:"#6b7280"}}),e.jsx("div",{className:"h-full rounded-full absolute top-0 left-0 transition-all",style:{width:`${Math.min(Math.round(t.activeTokens/40),100)}%`,background:t.health==="red"?"#ef4444":t.health==="yellow"?"#f59e0b":"#10b981"}})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"text-xs font-semibold text-[var(--color-text-muted)] uppercase",children:"Token Breakdown by Skill"}),e.jsx("div",{className:"space-y-1",children:t.breakdown.map(r=>{const s=t.totalTokens>0?Math.round(r.tokens/t.totalTokens*100):0;return e.jsxs("div",{className:`flex items-center gap-3 p-2 rounded-lg bg-[var(--color-bg-secondary)] border border-[var(--color-border)] ${r.enabled?"":"opacity-40"}`,children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs font-medium truncate",children:r.name}),e.jsx("span",{className:`px-1 py-0.5 rounded text-[9px] ${r.source==="custom"?"bg-purple-500/10 text-purple-500":"bg-blue-500/10 text-blue-500"}`,children:r.source})]}),e.jsx("div",{className:"w-full h-1 rounded-full bg-[var(--color-border)] mt-1",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${s}%`,background:r.enabled?"#3b82f6":"#6b7280"}})})]}),e.jsxs("span",{className:"text-[10px] text-[var(--color-text-muted)] shrink-0 w-16 text-right",children:[r.tokens.toLocaleString()," tok"]}),r.enabled&&e.jsx("button",{onClick:()=>void c(r.name),className:"text-[10px] px-1.5 py-0.5 rounded border border-[var(--color-border)] text-[var(--color-text-muted)] hover:text-red-500 hover:border-red-500/50 shrink-0",children:"Disable"})]},r.name)})})]})]})}export{h as ContextTab};