graphsight 0.1.0__tar.gz → 0.1.2__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 (69) hide show
  1. graphsight-0.1.2/PKG-INFO +145 -0
  2. graphsight-0.1.2/README.md +121 -0
  3. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/__init__.py +1 -1
  4. graphsight-0.1.2/graphsight.egg-info/PKG-INFO +145 -0
  5. {graphsight-0.1.0 → graphsight-0.1.2}/pyproject.toml +2 -2
  6. graphsight-0.1.0/PKG-INFO +0 -79
  7. graphsight-0.1.0/README.md +0 -55
  8. graphsight-0.1.0/graphsight.egg-info/PKG-INFO +0 -79
  9. {graphsight-0.1.0 → graphsight-0.1.2}/LICENSE +0 -0
  10. {graphsight-0.1.0 → graphsight-0.1.2}/MANIFEST.in +0 -0
  11. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/cli.py +0 -0
  12. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/arc-282qzf6n.js +0 -0
  13. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/architectureDiagram-3BPJPVTR-tSygxTjd.js +0 -0
  14. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/blockDiagram-GPEHLZMM-BYW4VSTy.js +0 -0
  15. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/c4Diagram-AAUBKEIU-DshceuSY.js +0 -0
  16. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/channel-Bytuqw4f.js +0 -0
  17. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-2J33WTMH-CQhGOlU3.js +0 -0
  18. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-4BX2VUAB-cii6B6Oq.js +0 -0
  19. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-55IACEB6-CFyfIrpG.js +0 -0
  20. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-727SXJPM-B1KyzNlo.js +0 -0
  21. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-AQP2D5EJ-Ba59PxHf.js +0 -0
  22. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-FMBD7UC4-BmQHBE9I.js +0 -0
  23. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-ND2GUHAM-QqXGm5Ak.js +0 -0
  24. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/chunk-QZHKN3VN-iBcl3HsH.js +0 -0
  25. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/classDiagram-4FO5ZUOK-D-CeqiGf.js +0 -0
  26. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/classDiagram-v2-Q7XG4LA2-D-CeqiGf.js +0 -0
  27. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/cose-bilkent-S5V4N54A-DsHwUTR6.js +0 -0
  28. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/cytoscape.esm-DTSO7Bv0.js +0 -0
  29. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/dagre-BM42HDAG-CNsSWoYA.js +0 -0
  30. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/diagram-2AECGRRQ-CMHIHZNi.js +0 -0
  31. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/diagram-5GNKFQAL-kMo5zS3e.js +0 -0
  32. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/diagram-KO2AKTUF-ltGPO4za.js +0 -0
  33. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/diagram-LMA3HP47-CZtVlWur.js +0 -0
  34. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/diagram-OG6HWLK6-DqdvrqB1.js +0 -0
  35. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/erDiagram-TEJ5UH35-p4XJdD9X.js +0 -0
  36. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/flowDiagram-I6XJVG4X-DqrhhzMR.js +0 -0
  37. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/ganttDiagram-6RSMTGT7-BevTTBWs.js +0 -0
  38. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/gitGraphDiagram-PVQCEYII-COt0tajM.js +0 -0
  39. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/graph-CAnANduQ.js +0 -0
  40. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/index-CC7N1tRi.css +0 -0
  41. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/index-D4UHTbV2.js +0 -0
  42. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/infoDiagram-5YYISTIA-Ji4Pqivh.js +0 -0
  43. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/ishikawaDiagram-YF4QCWOH-C81Ve9cn.js +0 -0
  44. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/journeyDiagram-JHISSGLW-BbI7_1jI.js +0 -0
  45. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/kanban-definition-UN3LZRKU-C7yEGATn.js +0 -0
  46. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/katex-C5jXJg4s.js +0 -0
  47. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/layout-DGIYPm2g.js +0 -0
  48. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/mermaid.core-DNEcyQqL.js +0 -0
  49. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/mindmap-definition-RKZ34NQL-DhzNYyUX.js +0 -0
  50. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/pieDiagram-4H26LBE5-C3OurPuK.js +0 -0
  51. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/quadrantDiagram-W4KKPZXB-m083ryNG.js +0 -0
  52. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/requirementDiagram-4Y6WPE33-D-PTY7Ji.js +0 -0
  53. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/sankeyDiagram-5OEKKPKP-BPznCs16.js +0 -0
  54. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/sequenceDiagram-3UESZ5HK-D0HQH4Ei.js +0 -0
  55. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/stateDiagram-AJRCARHV-DJzoC32N.js +0 -0
  56. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/stateDiagram-v2-BHNVJYJU-BMj9TnWE.js +0 -0
  57. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/timeline-definition-PNZ67QCA-BPXKhdeC.js +0 -0
  58. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/vennDiagram-CIIHVFJN-CakkGioY.js +0 -0
  59. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/wardley-L42UT6IY-DJo-t8ql.js +0 -0
  60. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/wardleyDiagram-YWT4CUSO-D2M9EKK8.js +0 -0
  61. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/assets/xychartDiagram-2RQKCTM6-DyXGPUCc.js +0 -0
  62. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/favicon.svg +0 -0
  63. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/dist/index.html +0 -0
  64. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight/server.py +0 -0
  65. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight.egg-info/SOURCES.txt +0 -0
  66. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight.egg-info/dependency_links.txt +0 -0
  67. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight.egg-info/entry_points.txt +0 -0
  68. {graphsight-0.1.0 → graphsight-0.1.2}/graphsight.egg-info/top_level.txt +0 -0
  69. {graphsight-0.1.0 → graphsight-0.1.2}/setup.cfg +0 -0
@@ -0,0 +1,145 @@
1
+ Metadata-Version: 2.4
2
+ Name: graphsight
3
+ Version: 0.1.2
4
+ Summary: See why your AI agent retrieved what it did — interactive graph viewer for agent retrieval traces. One command, zero dependencies, nothing leaves your machine.
5
+ Author: Arush Karnatak
6
+ License: MIT
7
+ Project-URL: Repository, https://github.com/Kcodess2807/graphsight
8
+ Project-URL: Documentation, https://github.com/Kcodess2807/graphsight/tree/main/graphsight
9
+ Keywords: tracing,observability,rag,retrieval,agents,visualization,langgraph
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Debuggers
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Dynamic: license-file
24
+
25
+ # graphsight
26
+
27
+ [![PyPI](https://img.shields.io/pypi/v/graphsight.svg)](https://pypi.org/project/graphsight/)
28
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://pypi.org/project/graphsight/)
29
+ [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Kcodess2807/graphsight/blob/main/graphsight/LICENSE)
30
+
31
+ **See exactly why your AI agent retrieved what it did.**
32
+
33
+ Your agent answered a question. Which documents did it actually pull? What
34
+ scores did they get? How are they connected to each other? Most stacks make
35
+ you dig through logs to answer that. Graphsight renders the run as an
36
+ **interactive graph in your browser** — one command, zero dependencies,
37
+ nothing leaves your machine.
38
+
39
+ ```bash
40
+ pip install graphsight
41
+ graphsight path/to/trace_state.json
42
+ ```
43
+
44
+ ## What you get
45
+
46
+ - **Every retrieved item as a typed node** — PR, Service, Person, Ticket,
47
+ Document, Repo, Library, Team, Tool — with its retrieval score.
48
+ - **Relational paths between results** — *person → authored → PR →
49
+ resolves → issue* — the chain of evidence, not just a ranked list.
50
+ - **An inspector on every node**: underlying content, score, source link.
51
+ - **The execution timeline** of the run: each agent step, each retriever
52
+ call, per-span timings, and which retrieval arm (vector / graph) produced
53
+ the results.
54
+
55
+ ## Requirements
56
+
57
+ | | |
58
+ |---|---|
59
+ | Python | ≥ 3.10 |
60
+ | Runtime dependencies | **none** (stdlib only) |
61
+ | Platforms | Windows, macOS, Linux |
62
+ | Browser | any modern browser |
63
+
64
+ ## Usage
65
+
66
+ ```
67
+ graphsight [trace] [--port PORT] [--no-browser]
68
+ ```
69
+
70
+ | Argument | Default | Description |
71
+ |---|---|---|
72
+ | `trace` | — | Path to a `trace_state.json`. Optional — omit to open the import page and drag-and-drop or paste JSON instead. |
73
+ | `--port` | `4630` | Local port to serve on. |
74
+ | `--no-browser` | off | Start the server without opening a browser window. |
75
+
76
+ The server binds to `127.0.0.1` only and runs until you press `Ctrl+C`.
77
+
78
+ ## Producing traces
79
+
80
+ Graphsight renders any file matching its trace JSON contract. Current
81
+ producers:
82
+
83
+ - **[graphsight-langgraph](https://pypi.org/project/graphsight-langgraph/)** —
84
+ instrument any [LangGraph](https://github.com/langchain-ai/langgraph)
85
+ agent with a single callback handler, or trace a GitHub repository in one
86
+ command:
87
+
88
+ ```bash
89
+ pip install "graphsight-langgraph[example]"
90
+ graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
91
+ graphsight graphsight_out/trace_state.json
92
+ ```
93
+
94
+ - **The TraceRAG engine** — the graph-memory backend this project grew out
95
+ of; its `/api/trace` responses are the same shape.
96
+
97
+ Adapters for LlamaIndex and raw OpenTelemetry spans are planned; all
98
+ producers emit the same schema and render in this same viewer.
99
+
100
+ ### Writing your own producer
101
+
102
+ The minimum contract is small — a JSON object with:
103
+
104
+ ```jsonc
105
+ {
106
+ "query": "the question that was asked", // required, string
107
+ "graph": {
108
+ "nodes": [{ "id", "label", "type", "score", "meta": { "snippet", "sourceUrl" } }],
109
+ "edges": [{ "id", "source", "target", "relation", "confidence" }]
110
+ },
111
+ "steps": [ /* execution timeline, optional */ ],
112
+ "metrics": { "queryTimeSec": 0.004 } // optional
113
+ }
114
+ ```
115
+
116
+ Node positions are computed client-side; emitters never deal with layout.
117
+ The complete schema and a reference emitter live in the
118
+ [graphsight-langgraph source](https://github.com/Kcodess2807/graphsight/tree/main/graphsight-langgraph).
119
+
120
+ ## Security and privacy
121
+
122
+ - The dependency list is empty by design: the UI is a bundled static build
123
+ (Vite + React + React Flow) served by Python's stdlib `http.server`.
124
+ - Binds to `127.0.0.1` — not reachable from other machines.
125
+ - No accounts, no telemetry, no outbound network calls. Your traces stay on
126
+ your disk.
127
+
128
+ ## Troubleshooting
129
+
130
+ | Symptom | Cause / fix |
131
+ |---|---|
132
+ | `Address already in use` | Another process holds the port — pass `--port 4631`. |
133
+ | Browser doesn't open | Some environments (SSH, WSL, containers) can't launch one — start with `--no-browser` and open the printed URL yourself. |
134
+ | `Bundled UI missing` error | Broken installation — `pip install --force-reinstall graphsight`. |
135
+ | Page loads but trace doesn't | The JSON didn't match the contract — the import page shows the specific validation error. |
136
+
137
+ ## Links
138
+
139
+ - Source & issue tracker: [github.com/Kcodess2807/graphsight](https://github.com/Kcodess2807/graphsight)
140
+ - LangGraph adapter: [graphsight-langgraph on PyPI](https://pypi.org/project/graphsight-langgraph/)
141
+ - Beta test script: [BETA.md](https://github.com/Kcodess2807/graphsight/blob/main/BETA.md)
142
+
143
+ ## License
144
+
145
+ MIT © Arush Karnatak
@@ -0,0 +1,121 @@
1
+ # graphsight
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/graphsight.svg)](https://pypi.org/project/graphsight/)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://pypi.org/project/graphsight/)
5
+ [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Kcodess2807/graphsight/blob/main/graphsight/LICENSE)
6
+
7
+ **See exactly why your AI agent retrieved what it did.**
8
+
9
+ Your agent answered a question. Which documents did it actually pull? What
10
+ scores did they get? How are they connected to each other? Most stacks make
11
+ you dig through logs to answer that. Graphsight renders the run as an
12
+ **interactive graph in your browser** — one command, zero dependencies,
13
+ nothing leaves your machine.
14
+
15
+ ```bash
16
+ pip install graphsight
17
+ graphsight path/to/trace_state.json
18
+ ```
19
+
20
+ ## What you get
21
+
22
+ - **Every retrieved item as a typed node** — PR, Service, Person, Ticket,
23
+ Document, Repo, Library, Team, Tool — with its retrieval score.
24
+ - **Relational paths between results** — *person → authored → PR →
25
+ resolves → issue* — the chain of evidence, not just a ranked list.
26
+ - **An inspector on every node**: underlying content, score, source link.
27
+ - **The execution timeline** of the run: each agent step, each retriever
28
+ call, per-span timings, and which retrieval arm (vector / graph) produced
29
+ the results.
30
+
31
+ ## Requirements
32
+
33
+ | | |
34
+ |---|---|
35
+ | Python | ≥ 3.10 |
36
+ | Runtime dependencies | **none** (stdlib only) |
37
+ | Platforms | Windows, macOS, Linux |
38
+ | Browser | any modern browser |
39
+
40
+ ## Usage
41
+
42
+ ```
43
+ graphsight [trace] [--port PORT] [--no-browser]
44
+ ```
45
+
46
+ | Argument | Default | Description |
47
+ |---|---|---|
48
+ | `trace` | — | Path to a `trace_state.json`. Optional — omit to open the import page and drag-and-drop or paste JSON instead. |
49
+ | `--port` | `4630` | Local port to serve on. |
50
+ | `--no-browser` | off | Start the server without opening a browser window. |
51
+
52
+ The server binds to `127.0.0.1` only and runs until you press `Ctrl+C`.
53
+
54
+ ## Producing traces
55
+
56
+ Graphsight renders any file matching its trace JSON contract. Current
57
+ producers:
58
+
59
+ - **[graphsight-langgraph](https://pypi.org/project/graphsight-langgraph/)** —
60
+ instrument any [LangGraph](https://github.com/langchain-ai/langgraph)
61
+ agent with a single callback handler, or trace a GitHub repository in one
62
+ command:
63
+
64
+ ```bash
65
+ pip install "graphsight-langgraph[example]"
66
+ graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
67
+ graphsight graphsight_out/trace_state.json
68
+ ```
69
+
70
+ - **The TraceRAG engine** — the graph-memory backend this project grew out
71
+ of; its `/api/trace` responses are the same shape.
72
+
73
+ Adapters for LlamaIndex and raw OpenTelemetry spans are planned; all
74
+ producers emit the same schema and render in this same viewer.
75
+
76
+ ### Writing your own producer
77
+
78
+ The minimum contract is small — a JSON object with:
79
+
80
+ ```jsonc
81
+ {
82
+ "query": "the question that was asked", // required, string
83
+ "graph": {
84
+ "nodes": [{ "id", "label", "type", "score", "meta": { "snippet", "sourceUrl" } }],
85
+ "edges": [{ "id", "source", "target", "relation", "confidence" }]
86
+ },
87
+ "steps": [ /* execution timeline, optional */ ],
88
+ "metrics": { "queryTimeSec": 0.004 } // optional
89
+ }
90
+ ```
91
+
92
+ Node positions are computed client-side; emitters never deal with layout.
93
+ The complete schema and a reference emitter live in the
94
+ [graphsight-langgraph source](https://github.com/Kcodess2807/graphsight/tree/main/graphsight-langgraph).
95
+
96
+ ## Security and privacy
97
+
98
+ - The dependency list is empty by design: the UI is a bundled static build
99
+ (Vite + React + React Flow) served by Python's stdlib `http.server`.
100
+ - Binds to `127.0.0.1` — not reachable from other machines.
101
+ - No accounts, no telemetry, no outbound network calls. Your traces stay on
102
+ your disk.
103
+
104
+ ## Troubleshooting
105
+
106
+ | Symptom | Cause / fix |
107
+ |---|---|
108
+ | `Address already in use` | Another process holds the port — pass `--port 4631`. |
109
+ | Browser doesn't open | Some environments (SSH, WSL, containers) can't launch one — start with `--no-browser` and open the printed URL yourself. |
110
+ | `Bundled UI missing` error | Broken installation — `pip install --force-reinstall graphsight`. |
111
+ | Page loads but trace doesn't | The JSON didn't match the contract — the import page shows the specific validation error. |
112
+
113
+ ## Links
114
+
115
+ - Source & issue tracker: [github.com/Kcodess2807/graphsight](https://github.com/Kcodess2807/graphsight)
116
+ - LangGraph adapter: [graphsight-langgraph on PyPI](https://pypi.org/project/graphsight-langgraph/)
117
+ - Beta test script: [BETA.md](https://github.com/Kcodess2807/graphsight/blob/main/BETA.md)
118
+
119
+ ## License
120
+
121
+ MIT © Arush Karnatak
@@ -8,4 +8,4 @@ Serves the bundled Graphsight Studio UI locally and opens the trace in the
8
8
  browser. No backend, no accounts, no network calls beyond localhost.
9
9
  """
10
10
 
11
- __version__ = "0.1.0"
11
+ __version__ = "0.1.2"
@@ -0,0 +1,145 @@
1
+ Metadata-Version: 2.4
2
+ Name: graphsight
3
+ Version: 0.1.2
4
+ Summary: See why your AI agent retrieved what it did — interactive graph viewer for agent retrieval traces. One command, zero dependencies, nothing leaves your machine.
5
+ Author: Arush Karnatak
6
+ License: MIT
7
+ Project-URL: Repository, https://github.com/Kcodess2807/graphsight
8
+ Project-URL: Documentation, https://github.com/Kcodess2807/graphsight/tree/main/graphsight
9
+ Keywords: tracing,observability,rag,retrieval,agents,visualization,langgraph
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Debuggers
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Dynamic: license-file
24
+
25
+ # graphsight
26
+
27
+ [![PyPI](https://img.shields.io/pypi/v/graphsight.svg)](https://pypi.org/project/graphsight/)
28
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://pypi.org/project/graphsight/)
29
+ [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Kcodess2807/graphsight/blob/main/graphsight/LICENSE)
30
+
31
+ **See exactly why your AI agent retrieved what it did.**
32
+
33
+ Your agent answered a question. Which documents did it actually pull? What
34
+ scores did they get? How are they connected to each other? Most stacks make
35
+ you dig through logs to answer that. Graphsight renders the run as an
36
+ **interactive graph in your browser** — one command, zero dependencies,
37
+ nothing leaves your machine.
38
+
39
+ ```bash
40
+ pip install graphsight
41
+ graphsight path/to/trace_state.json
42
+ ```
43
+
44
+ ## What you get
45
+
46
+ - **Every retrieved item as a typed node** — PR, Service, Person, Ticket,
47
+ Document, Repo, Library, Team, Tool — with its retrieval score.
48
+ - **Relational paths between results** — *person → authored → PR →
49
+ resolves → issue* — the chain of evidence, not just a ranked list.
50
+ - **An inspector on every node**: underlying content, score, source link.
51
+ - **The execution timeline** of the run: each agent step, each retriever
52
+ call, per-span timings, and which retrieval arm (vector / graph) produced
53
+ the results.
54
+
55
+ ## Requirements
56
+
57
+ | | |
58
+ |---|---|
59
+ | Python | ≥ 3.10 |
60
+ | Runtime dependencies | **none** (stdlib only) |
61
+ | Platforms | Windows, macOS, Linux |
62
+ | Browser | any modern browser |
63
+
64
+ ## Usage
65
+
66
+ ```
67
+ graphsight [trace] [--port PORT] [--no-browser]
68
+ ```
69
+
70
+ | Argument | Default | Description |
71
+ |---|---|---|
72
+ | `trace` | — | Path to a `trace_state.json`. Optional — omit to open the import page and drag-and-drop or paste JSON instead. |
73
+ | `--port` | `4630` | Local port to serve on. |
74
+ | `--no-browser` | off | Start the server without opening a browser window. |
75
+
76
+ The server binds to `127.0.0.1` only and runs until you press `Ctrl+C`.
77
+
78
+ ## Producing traces
79
+
80
+ Graphsight renders any file matching its trace JSON contract. Current
81
+ producers:
82
+
83
+ - **[graphsight-langgraph](https://pypi.org/project/graphsight-langgraph/)** —
84
+ instrument any [LangGraph](https://github.com/langchain-ai/langgraph)
85
+ agent with a single callback handler, or trace a GitHub repository in one
86
+ command:
87
+
88
+ ```bash
89
+ pip install "graphsight-langgraph[example]"
90
+ graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
91
+ graphsight graphsight_out/trace_state.json
92
+ ```
93
+
94
+ - **The TraceRAG engine** — the graph-memory backend this project grew out
95
+ of; its `/api/trace` responses are the same shape.
96
+
97
+ Adapters for LlamaIndex and raw OpenTelemetry spans are planned; all
98
+ producers emit the same schema and render in this same viewer.
99
+
100
+ ### Writing your own producer
101
+
102
+ The minimum contract is small — a JSON object with:
103
+
104
+ ```jsonc
105
+ {
106
+ "query": "the question that was asked", // required, string
107
+ "graph": {
108
+ "nodes": [{ "id", "label", "type", "score", "meta": { "snippet", "sourceUrl" } }],
109
+ "edges": [{ "id", "source", "target", "relation", "confidence" }]
110
+ },
111
+ "steps": [ /* execution timeline, optional */ ],
112
+ "metrics": { "queryTimeSec": 0.004 } // optional
113
+ }
114
+ ```
115
+
116
+ Node positions are computed client-side; emitters never deal with layout.
117
+ The complete schema and a reference emitter live in the
118
+ [graphsight-langgraph source](https://github.com/Kcodess2807/graphsight/tree/main/graphsight-langgraph).
119
+
120
+ ## Security and privacy
121
+
122
+ - The dependency list is empty by design: the UI is a bundled static build
123
+ (Vite + React + React Flow) served by Python's stdlib `http.server`.
124
+ - Binds to `127.0.0.1` — not reachable from other machines.
125
+ - No accounts, no telemetry, no outbound network calls. Your traces stay on
126
+ your disk.
127
+
128
+ ## Troubleshooting
129
+
130
+ | Symptom | Cause / fix |
131
+ |---|---|
132
+ | `Address already in use` | Another process holds the port — pass `--port 4631`. |
133
+ | Browser doesn't open | Some environments (SSH, WSL, containers) can't launch one — start with `--no-browser` and open the printed URL yourself. |
134
+ | `Bundled UI missing` error | Broken installation — `pip install --force-reinstall graphsight`. |
135
+ | Page loads but trace doesn't | The JSON didn't match the contract — the import page shows the specific validation error. |
136
+
137
+ ## Links
138
+
139
+ - Source & issue tracker: [github.com/Kcodess2807/graphsight](https://github.com/Kcodess2807/graphsight)
140
+ - LangGraph adapter: [graphsight-langgraph on PyPI](https://pypi.org/project/graphsight-langgraph/)
141
+ - Beta test script: [BETA.md](https://github.com/Kcodess2807/graphsight/blob/main/BETA.md)
142
+
143
+ ## License
144
+
145
+ MIT © Arush Karnatak
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "graphsight"
7
- version = "0.1.0"
8
- description = "Local viewer for agent retrieval traces — open a trace_state.json in the Graphsight Studio with one command, no backend."
7
+ version = "0.1.2"
8
+ description = "See why your AI agent retrieved what it did — interactive graph viewer for agent retrieval traces. One command, zero dependencies, nothing leaves your machine."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  license = { text = "MIT" }
graphsight-0.1.0/PKG-INFO DELETED
@@ -1,79 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: graphsight
3
- Version: 0.1.0
4
- Summary: Local viewer for agent retrieval traces — open a trace_state.json in the Graphsight Studio with one command, no backend.
5
- Author: Arush Karnatak
6
- License: MIT
7
- Project-URL: Repository, https://github.com/Kcodess2807/graphsight
8
- Project-URL: Documentation, https://github.com/Kcodess2807/graphsight/tree/main/graphsight
9
- Keywords: tracing,observability,rag,retrieval,agents,visualization,langgraph
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: MIT License
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Topic :: Software Development :: Debuggers
19
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Requires-Python: >=3.10
21
- Description-Content-Type: text/markdown
22
- License-File: LICENSE
23
- Dynamic: license-file
24
-
25
- # graphsight
26
-
27
- **Open an agent retrieval trace in your browser with one command.**
28
-
29
- ```bash
30
- pip install graphsight
31
- graphsight path/to/trace_state.json
32
- ```
33
-
34
- That's it — a local server starts (stdlib only, zero dependencies), your
35
- browser opens, and the Graphsight Studio renders the trace: the retrieved
36
- entities as a graph, relational edges between them, per-item scores, and the
37
- execution timeline of the run that produced it. No backend, no account, no
38
- telemetry — nothing leaves localhost.
39
-
40
- ## Where traces come from
41
-
42
- Any tool that emits the Studio's `TraceState` JSON. Today that's:
43
-
44
- - [`graphsight-langgraph`](../graphsight-langgraph) — trace any LangGraph agent
45
- with one callback handler:
46
-
47
- ```bash
48
- pip install "graphsight-langgraph[example]"
49
- graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
50
- graphsight graphsight_out/trace_state.json
51
- ```
52
-
53
- - The full TraceRAG engine (this repo) — its `/api/trace` responses are the
54
- same shape.
55
-
56
- LlamaIndex and raw-OTel adapters are planned; they'll emit the same schema.
57
-
58
- ## CLI
59
-
60
- ```
61
- graphsight [trace_state.json] [--port 4630] [--no-browser]
62
- ```
63
-
64
- - With a trace file: serves it and opens `/memory/import?src=…` — the Studio
65
- auto-loads it.
66
- - Without: opens the import page, where you can drag-and-drop or paste JSON.
67
-
68
- ## How it's built
69
-
70
- The package bundles a static build of the Studio UI (Vite + React + React
71
- Flow) and serves it with Python's stdlib `http.server` — which is why the
72
- dependency list is empty. The UI source lives in
73
- [`frontend/`](../frontend) in the main repo; to refresh the bundle:
74
-
75
- ```bash
76
- cd frontend && npm run build
77
- rm -rf ../graphsight/graphsight/dist
78
- cp -r dist ../graphsight/graphsight/dist
79
- ```
@@ -1,55 +0,0 @@
1
- # graphsight
2
-
3
- **Open an agent retrieval trace in your browser with one command.**
4
-
5
- ```bash
6
- pip install graphsight
7
- graphsight path/to/trace_state.json
8
- ```
9
-
10
- That's it — a local server starts (stdlib only, zero dependencies), your
11
- browser opens, and the Graphsight Studio renders the trace: the retrieved
12
- entities as a graph, relational edges between them, per-item scores, and the
13
- execution timeline of the run that produced it. No backend, no account, no
14
- telemetry — nothing leaves localhost.
15
-
16
- ## Where traces come from
17
-
18
- Any tool that emits the Studio's `TraceState` JSON. Today that's:
19
-
20
- - [`graphsight-langgraph`](../graphsight-langgraph) — trace any LangGraph agent
21
- with one callback handler:
22
-
23
- ```bash
24
- pip install "graphsight-langgraph[example]"
25
- graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
26
- graphsight graphsight_out/trace_state.json
27
- ```
28
-
29
- - The full TraceRAG engine (this repo) — its `/api/trace` responses are the
30
- same shape.
31
-
32
- LlamaIndex and raw-OTel adapters are planned; they'll emit the same schema.
33
-
34
- ## CLI
35
-
36
- ```
37
- graphsight [trace_state.json] [--port 4630] [--no-browser]
38
- ```
39
-
40
- - With a trace file: serves it and opens `/memory/import?src=…` — the Studio
41
- auto-loads it.
42
- - Without: opens the import page, where you can drag-and-drop or paste JSON.
43
-
44
- ## How it's built
45
-
46
- The package bundles a static build of the Studio UI (Vite + React + React
47
- Flow) and serves it with Python's stdlib `http.server` — which is why the
48
- dependency list is empty. The UI source lives in
49
- [`frontend/`](../frontend) in the main repo; to refresh the bundle:
50
-
51
- ```bash
52
- cd frontend && npm run build
53
- rm -rf ../graphsight/graphsight/dist
54
- cp -r dist ../graphsight/graphsight/dist
55
- ```
@@ -1,79 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: graphsight
3
- Version: 0.1.0
4
- Summary: Local viewer for agent retrieval traces — open a trace_state.json in the Graphsight Studio with one command, no backend.
5
- Author: Arush Karnatak
6
- License: MIT
7
- Project-URL: Repository, https://github.com/Kcodess2807/graphsight
8
- Project-URL: Documentation, https://github.com/Kcodess2807/graphsight/tree/main/graphsight
9
- Keywords: tracing,observability,rag,retrieval,agents,visualization,langgraph
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Intended Audience :: Developers
12
- Classifier: License :: OSI Approved :: MIT License
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Topic :: Software Development :: Debuggers
19
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Requires-Python: >=3.10
21
- Description-Content-Type: text/markdown
22
- License-File: LICENSE
23
- Dynamic: license-file
24
-
25
- # graphsight
26
-
27
- **Open an agent retrieval trace in your browser with one command.**
28
-
29
- ```bash
30
- pip install graphsight
31
- graphsight path/to/trace_state.json
32
- ```
33
-
34
- That's it — a local server starts (stdlib only, zero dependencies), your
35
- browser opens, and the Graphsight Studio renders the trace: the retrieved
36
- entities as a graph, relational edges between them, per-item scores, and the
37
- execution timeline of the run that produced it. No backend, no account, no
38
- telemetry — nothing leaves localhost.
39
-
40
- ## Where traces come from
41
-
42
- Any tool that emits the Studio's `TraceState` JSON. Today that's:
43
-
44
- - [`graphsight-langgraph`](../graphsight-langgraph) — trace any LangGraph agent
45
- with one callback handler:
46
-
47
- ```bash
48
- pip install "graphsight-langgraph[example]"
49
- graphsight-github-trace langchain-ai/langgraph "who fixed the recent streaming bugs?"
50
- graphsight graphsight_out/trace_state.json
51
- ```
52
-
53
- - The full TraceRAG engine (this repo) — its `/api/trace` responses are the
54
- same shape.
55
-
56
- LlamaIndex and raw-OTel adapters are planned; they'll emit the same schema.
57
-
58
- ## CLI
59
-
60
- ```
61
- graphsight [trace_state.json] [--port 4630] [--no-browser]
62
- ```
63
-
64
- - With a trace file: serves it and opens `/memory/import?src=…` — the Studio
65
- auto-loads it.
66
- - Without: opens the import page, where you can drag-and-drop or paste JSON.
67
-
68
- ## How it's built
69
-
70
- The package bundles a static build of the Studio UI (Vite + React + React
71
- Flow) and serves it with Python's stdlib `http.server` — which is why the
72
- dependency list is empty. The UI source lives in
73
- [`frontend/`](../frontend) in the main repo; to refresh the bundle:
74
-
75
- ```bash
76
- cd frontend && npm run build
77
- rm -rf ../graphsight/graphsight/dist
78
- cp -r dist ../graphsight/graphsight/dist
79
- ```
File without changes
File without changes
File without changes
File without changes