interlinked-mapper 0.1.2__tar.gz → 0.1.4__tar.gz

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 (26) hide show
  1. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/PKG-INFO +1 -1
  2. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/mcp_server.py +1 -42
  3. interlinked_mapper-0.1.4/interlinked/visualizer/frontend/index.html +2144 -0
  4. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/visualizer/server.py +2 -2
  5. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/PKG-INFO +1 -1
  6. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/SOURCES.txt +1 -0
  7. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/pyproject.toml +4 -1
  8. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/__init__.py +0 -0
  9. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/analyzer/__init__.py +0 -0
  10. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/analyzer/dead_code.py +0 -0
  11. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/analyzer/graph.py +0 -0
  12. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/analyzer/parser.py +0 -0
  13. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/analyzer/similarity.py +0 -0
  14. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/cli.py +0 -0
  15. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/commander/__init__.py +0 -0
  16. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/commander/llm.py +0 -0
  17. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/commander/query.py +0 -0
  18. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/commander/repl.py +0 -0
  19. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/models.py +0 -0
  20. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/visualizer/__init__.py +0 -0
  21. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked/visualizer/layouts.py +0 -0
  22. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/dependency_links.txt +0 -0
  23. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/entry_points.txt +0 -0
  24. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/requires.txt +0 -0
  25. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/interlinked_mapper.egg-info/top_level.txt +0 -0
  26. {interlinked_mapper-0.1.2 → interlinked_mapper-0.1.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: interlinked-mapper
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: A Python program topology explorer — visualize the shape of your codebase
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/austerecryptid/interlinked
@@ -25,7 +25,6 @@ from __future__ import annotations
25
25
 
26
26
  import json
27
27
  import os
28
- import threading
29
28
  from pathlib import Path
30
29
  from typing import Any
31
30
 
@@ -65,7 +64,7 @@ def create_mcp_server(project_path: str) -> Server:
65
64
  to parse, which exceeds Windsurf's startup timeout).
66
65
  """
67
66
  # Lazy state — built on first tool call
68
- _state: dict[str, Any] = {"graph": None, "engine": None, "ready": False, "visualizer_url": None}
67
+ _state: dict[str, Any] = {"graph": None, "engine": None, "ready": False}
69
68
 
70
69
  def _ensure_ready() -> tuple[CodeGraph, QueryEngine]:
71
70
  if not _state["ready"]:
@@ -237,18 +236,6 @@ def create_mcp_server(project_path: str) -> Server:
237
236
  "required": ["api_key"],
238
237
  },
239
238
  ),
240
- Tool(
241
- name="interlinked_visualizer",
242
- description="Start the interactive web visualizer for the analyzed project. Opens a browser UI showing the codebase graph with live updates as you use other interlinked tools. Returns the URL. Calling again returns the existing URL if already running.",
243
- inputSchema={
244
- "type": "object",
245
- "properties": {
246
- "port": {"type": "integer", "description": "Port to run on (default 8420)", "default": 8420},
247
- "host": {"type": "string", "description": "Host to bind to (default 127.0.0.1)", "default": "127.0.0.1"},
248
- },
249
- "required": [],
250
- },
251
- ),
252
239
  ]
253
240
 
254
241
  @server.call_tool()
@@ -258,14 +245,6 @@ def create_mcp_server(project_path: str) -> Server:
258
245
  try:
259
246
  graph, engine = _ensure_ready()
260
247
 
261
- if name == "interlinked_visualizer":
262
- if _state["visualizer_url"]:
263
- return [TextContent(type="text", text=f"Visualizer already running at {_state['visualizer_url']}")]
264
- host = arguments.get("host", "127.0.0.1")
265
- port = arguments.get("port", 8420)
266
- result = _start_visualizer(graph, engine, host, port, project_path, _state)
267
- return [TextContent(type="text", text=result)]
268
-
269
248
  result = _dispatch_tool(name, arguments, engine, graph, api_key)
270
249
  if name == "interlinked_set_api_key":
271
250
  api_key = arguments.get("api_key", "")
@@ -278,26 +257,6 @@ def create_mcp_server(project_path: str) -> Server:
278
257
  return server
279
258
 
280
259
 
281
- def _start_visualizer(
282
- graph: CodeGraph, engine: QueryEngine,
283
- host: str, port: int, project_path: str, _state: dict[str, Any],
284
- ) -> str:
285
- """Start the web visualizer in a background thread, sharing the MCP graph/engine."""
286
- import uvicorn
287
- from interlinked.visualizer.server import create_app
288
-
289
- app = create_app(graph, initial_path=project_path, engine=engine)
290
- url = f"http://{host}:{port}"
291
-
292
- def _run():
293
- uvicorn.run(app, host=host, port=port, log_level="warning")
294
-
295
- t = threading.Thread(target=_run, daemon=True)
296
- t.start()
297
- _state["visualizer_url"] = url
298
- return f"Visualizer started at {url} — open in your browser. MCP tool calls will update the graph in real time."
299
-
300
-
301
260
  def _dispatch_tool(
302
261
  name: str, args: dict[str, Any],
303
262
  engine: QueryEngine, graph: CodeGraph, api_key: str,