graphsight 0.3.0__tar.gz → 0.3.1__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 (77) hide show
  1. {graphsight-0.3.0/graphsight.egg-info → graphsight-0.3.1}/PKG-INFO +41 -13
  2. {graphsight-0.3.0 → graphsight-0.3.1}/README.md +40 -12
  3. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/__init__.py +1 -1
  4. graphsight-0.3.0/graphsight/dist/assets/arc-Bsma0Xbp.js → graphsight-0.3.1/graphsight/dist/assets/arc-DGOsvhEX.js +1 -1
  5. graphsight-0.3.0/graphsight/dist/assets/architectureDiagram-3BPJPVTR-4Qdi8s0q.js → graphsight-0.3.1/graphsight/dist/assets/architectureDiagram-3BPJPVTR-CbMqmqRH.js +1 -1
  6. graphsight-0.3.0/graphsight/dist/assets/blockDiagram-GPEHLZMM-Dp7Miq3n.js → graphsight-0.3.1/graphsight/dist/assets/blockDiagram-GPEHLZMM-CDyJXpDM.js +1 -1
  7. graphsight-0.3.0/graphsight/dist/assets/c4Diagram-AAUBKEIU-D1G27yOy.js → graphsight-0.3.1/graphsight/dist/assets/c4Diagram-AAUBKEIU-CDIS2dj-.js +1 -1
  8. graphsight-0.3.1/graphsight/dist/assets/channel-DKZXqgRh.js +1 -0
  9. graphsight-0.3.0/graphsight/dist/assets/chunk-2J33WTMH-DpBo35Ip.js → graphsight-0.3.1/graphsight/dist/assets/chunk-2J33WTMH-DF0wXQ_q.js +1 -1
  10. graphsight-0.3.0/graphsight/dist/assets/chunk-4BX2VUAB-DEs5iyI1.js → graphsight-0.3.1/graphsight/dist/assets/chunk-4BX2VUAB-C6Xwj9Pr.js +1 -1
  11. graphsight-0.3.0/graphsight/dist/assets/chunk-55IACEB6-Bku3rt2s.js → graphsight-0.3.1/graphsight/dist/assets/chunk-55IACEB6-BjGYIYUH.js +1 -1
  12. graphsight-0.3.0/graphsight/dist/assets/chunk-727SXJPM-DzVVvz6q.js → graphsight-0.3.1/graphsight/dist/assets/chunk-727SXJPM-wS8WwDXi.js +1 -1
  13. graphsight-0.3.0/graphsight/dist/assets/chunk-AQP2D5EJ-CuvszdZE.js → graphsight-0.3.1/graphsight/dist/assets/chunk-AQP2D5EJ-MY0fo7mx.js +1 -1
  14. graphsight-0.3.0/graphsight/dist/assets/chunk-FMBD7UC4-BHq1ED1I.js → graphsight-0.3.1/graphsight/dist/assets/chunk-FMBD7UC4-CNVgh_MP.js +1 -1
  15. graphsight-0.3.0/graphsight/dist/assets/chunk-ND2GUHAM-QDS6cCnX.js → graphsight-0.3.1/graphsight/dist/assets/chunk-ND2GUHAM-r3utGEk6.js +1 -1
  16. graphsight-0.3.0/graphsight/dist/assets/chunk-QZHKN3VN-BpvSoQs2.js → graphsight-0.3.1/graphsight/dist/assets/chunk-QZHKN3VN-CRKapwff.js +1 -1
  17. graphsight-0.3.1/graphsight/dist/assets/classDiagram-4FO5ZUOK-DvcSHvlU.js +1 -0
  18. graphsight-0.3.1/graphsight/dist/assets/classDiagram-v2-Q7XG4LA2-DvcSHvlU.js +1 -0
  19. graphsight-0.3.0/graphsight/dist/assets/cose-bilkent-S5V4N54A-CeiajIUk.js → graphsight-0.3.1/graphsight/dist/assets/cose-bilkent-S5V4N54A-D8A0GZYU.js +1 -1
  20. graphsight-0.3.0/graphsight/dist/assets/dagre-BM42HDAG-C83dZHfH.js → graphsight-0.3.1/graphsight/dist/assets/dagre-BM42HDAG-CdY1GieV.js +1 -1
  21. graphsight-0.3.0/graphsight/dist/assets/diagram-2AECGRRQ-Ch3rS7R6.js → graphsight-0.3.1/graphsight/dist/assets/diagram-2AECGRRQ-BmpqIsY_.js +1 -1
  22. graphsight-0.3.0/graphsight/dist/assets/diagram-5GNKFQAL-BmkDW3-M.js → graphsight-0.3.1/graphsight/dist/assets/diagram-5GNKFQAL-CGucdtV7.js +1 -1
  23. graphsight-0.3.0/graphsight/dist/assets/diagram-KO2AKTUF-Bmc4Hn_O.js → graphsight-0.3.1/graphsight/dist/assets/diagram-KO2AKTUF-D8UClmZ6.js +1 -1
  24. graphsight-0.3.0/graphsight/dist/assets/diagram-LMA3HP47-vfKcGnnt.js → graphsight-0.3.1/graphsight/dist/assets/diagram-LMA3HP47-BbUB7zIV.js +1 -1
  25. graphsight-0.3.0/graphsight/dist/assets/diagram-OG6HWLK6-CsDKFBDx.js → graphsight-0.3.1/graphsight/dist/assets/diagram-OG6HWLK6-BLKvQFD6.js +1 -1
  26. graphsight-0.3.0/graphsight/dist/assets/erDiagram-TEJ5UH35-CL6QLPh6.js → graphsight-0.3.1/graphsight/dist/assets/erDiagram-TEJ5UH35-DhE3Yfeq.js +1 -1
  27. graphsight-0.3.0/graphsight/dist/assets/flowDiagram-I6XJVG4X-Dht1jxSH.js → graphsight-0.3.1/graphsight/dist/assets/flowDiagram-I6XJVG4X-BoPzRdHF.js +1 -1
  28. graphsight-0.3.0/graphsight/dist/assets/ganttDiagram-6RSMTGT7-Mrh5sBuC.js → graphsight-0.3.1/graphsight/dist/assets/ganttDiagram-6RSMTGT7-Cn2HPQDn.js +1 -1
  29. graphsight-0.3.0/graphsight/dist/assets/gitGraphDiagram-PVQCEYII-C_to9mh-.js → graphsight-0.3.1/graphsight/dist/assets/gitGraphDiagram-PVQCEYII-e5mkpbyX.js +1 -1
  30. graphsight-0.3.1/graphsight/dist/assets/index-BAt7CdVk.css +1 -0
  31. graphsight-0.3.0/graphsight/dist/assets/index-BA3uz4Sh.js → graphsight-0.3.1/graphsight/dist/assets/index-Bi1lliDA.js +70 -70
  32. graphsight-0.3.0/graphsight/dist/assets/infoDiagram-5YYISTIA-BfyE9D1p.js → graphsight-0.3.1/graphsight/dist/assets/infoDiagram-5YYISTIA-DRkiL_DQ.js +1 -1
  33. graphsight-0.3.0/graphsight/dist/assets/ishikawaDiagram-YF4QCWOH-DljFoVr4.js → graphsight-0.3.1/graphsight/dist/assets/ishikawaDiagram-YF4QCWOH-_FUPaFzj.js +1 -1
  34. graphsight-0.3.0/graphsight/dist/assets/journeyDiagram-JHISSGLW-DhfKGdiA.js → graphsight-0.3.1/graphsight/dist/assets/journeyDiagram-JHISSGLW-BC6uAFP5.js +1 -1
  35. graphsight-0.3.0/graphsight/dist/assets/kanban-definition-UN3LZRKU-BtP5uFd_.js → graphsight-0.3.1/graphsight/dist/assets/kanban-definition-UN3LZRKU-X9H1Bevu.js +1 -1
  36. graphsight-0.3.0/graphsight/dist/assets/linear-E6Djxe1M.js → graphsight-0.3.1/graphsight/dist/assets/linear-L4AgCZnM.js +1 -1
  37. graphsight-0.3.0/graphsight/dist/assets/mermaid.core-Cr4Ida0l.js → graphsight-0.3.1/graphsight/dist/assets/mermaid.core-B4Rsz1_K.js +4 -4
  38. graphsight-0.3.0/graphsight/dist/assets/mindmap-definition-RKZ34NQL-DKsVzrC_.js → graphsight-0.3.1/graphsight/dist/assets/mindmap-definition-RKZ34NQL-BggN-jLg.js +1 -1
  39. graphsight-0.3.0/graphsight/dist/assets/pieDiagram-4H26LBE5-BLFeYvt8.js → graphsight-0.3.1/graphsight/dist/assets/pieDiagram-4H26LBE5-MXE68O6T.js +1 -1
  40. graphsight-0.3.0/graphsight/dist/assets/quadrantDiagram-W4KKPZXB-TOEOxf98.js → graphsight-0.3.1/graphsight/dist/assets/quadrantDiagram-W4KKPZXB-lrEZKCVn.js +1 -1
  41. graphsight-0.3.0/graphsight/dist/assets/requirementDiagram-4Y6WPE33-lxDExpHS.js → graphsight-0.3.1/graphsight/dist/assets/requirementDiagram-4Y6WPE33-BFFGZPL_.js +1 -1
  42. graphsight-0.3.0/graphsight/dist/assets/sankeyDiagram-5OEKKPKP-Bt3RdNXe.js → graphsight-0.3.1/graphsight/dist/assets/sankeyDiagram-5OEKKPKP-D2rDi26n.js +1 -1
  43. graphsight-0.3.0/graphsight/dist/assets/sequenceDiagram-3UESZ5HK-DJG0iUc8.js → graphsight-0.3.1/graphsight/dist/assets/sequenceDiagram-3UESZ5HK-Bit_NcSO.js +1 -1
  44. graphsight-0.3.0/graphsight/dist/assets/stateDiagram-AJRCARHV-a8qXFzmk.js → graphsight-0.3.1/graphsight/dist/assets/stateDiagram-AJRCARHV-yUP1OLyV.js +1 -1
  45. graphsight-0.3.1/graphsight/dist/assets/stateDiagram-v2-BHNVJYJU-CtmFDByB.js +1 -0
  46. graphsight-0.3.0/graphsight/dist/assets/timeline-definition-PNZ67QCA-D-vuX4Ci.js → graphsight-0.3.1/graphsight/dist/assets/timeline-definition-PNZ67QCA-DNKkG3d7.js +1 -1
  47. graphsight-0.3.0/graphsight/dist/assets/vennDiagram-CIIHVFJN-Cv9onzjp.js → graphsight-0.3.1/graphsight/dist/assets/vennDiagram-CIIHVFJN-C7xsmX66.js +1 -1
  48. graphsight-0.3.0/graphsight/dist/assets/wardley-L42UT6IY-D4ojyCVU.js → graphsight-0.3.1/graphsight/dist/assets/wardley-L42UT6IY-rz2LOAhR.js +1 -1
  49. graphsight-0.3.0/graphsight/dist/assets/wardleyDiagram-YWT4CUSO-Ck3lasbB.js → graphsight-0.3.1/graphsight/dist/assets/wardleyDiagram-YWT4CUSO-_1bS5QK8.js +1 -1
  50. graphsight-0.3.0/graphsight/dist/assets/xychartDiagram-2RQKCTM6-Dy1S4t9K.js → graphsight-0.3.1/graphsight/dist/assets/xychartDiagram-2RQKCTM6-CVODa8Gv.js +1 -1
  51. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/index.html +2 -2
  52. {graphsight-0.3.0 → graphsight-0.3.1/graphsight.egg-info}/PKG-INFO +41 -13
  53. graphsight-0.3.1/graphsight.egg-info/SOURCES.txt +69 -0
  54. {graphsight-0.3.0 → graphsight-0.3.1}/pyproject.toml +1 -1
  55. graphsight-0.3.0/graphsight/dist/assets/channel-B61HT7Gu.js +0 -1
  56. graphsight-0.3.0/graphsight/dist/assets/classDiagram-4FO5ZUOK-9u34qdAk.js +0 -1
  57. graphsight-0.3.0/graphsight/dist/assets/classDiagram-v2-Q7XG4LA2-9u34qdAk.js +0 -1
  58. graphsight-0.3.0/graphsight/dist/assets/index-DR9ElM14.css +0 -1
  59. graphsight-0.3.0/graphsight/dist/assets/stateDiagram-v2-BHNVJYJU-C1SCEn23.js +0 -1
  60. graphsight-0.3.0/graphsight.egg-info/SOURCES.txt +0 -69
  61. {graphsight-0.3.0 → graphsight-0.3.1}/LICENSE +0 -0
  62. {graphsight-0.3.0 → graphsight-0.3.1}/MANIFEST.in +0 -0
  63. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/cli.py +0 -0
  64. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/cytoscape.esm-DTSO7Bv0.js +0 -0
  65. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/defaultLocale-DX6XiGOO.js +0 -0
  66. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/graph-CAnANduQ.js +0 -0
  67. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/init-Gi6I4Gst.js +0 -0
  68. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/katex-C5jXJg4s.js +0 -0
  69. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/layout-DGIYPm2g.js +0 -0
  70. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/assets/ordinal-Cboi1Yqb.js +0 -0
  71. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/dist/favicon.svg +0 -0
  72. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight/server.py +0 -0
  73. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight.egg-info/dependency_links.txt +0 -0
  74. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight.egg-info/entry_points.txt +0 -0
  75. {graphsight-0.3.0 → graphsight-0.3.1}/graphsight.egg-info/top_level.txt +0 -0
  76. {graphsight-0.3.0 → graphsight-0.3.1}/setup.cfg +0 -0
  77. {graphsight-0.3.0 → graphsight-0.3.1}/tests/test_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: graphsight
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
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
5
  Author: Arush Karnatak
6
6
  License: MIT
@@ -28,20 +28,42 @@ Dynamic: license-file
28
28
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://pypi.org/project/graphsight/)
29
29
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Kcodess2807/graphsight/blob/main/graphsight/LICENSE)
30
30
 
31
- **See exactly why your AI agent retrieved what it did.**
31
+ **See which retrieved documents your agent actually used — and which it ignored.**
32
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,
33
+ Your agent answered a question. Which documents did it actually pull? Which
34
+ of those did the answer come from? What scores did they get, and how are they
35
+ connected? Most stacks make you dig through logs. Graphsight renders the run
36
+ as an **interactive graph in your browser** — one command, zero dependencies,
37
37
  nothing leaves your machine.
38
38
 
39
+ ![Graphsight showing a retrieved-but-unused document](https://raw.githubusercontent.com/Kcodess2807/graphsight/main/docs/media/retrieved-vs-used.gif)
40
+
41
+ *A real run. `PR #101` scored **0.910** — the highest of anything retrieved — and the answer
42
+ never used it. `PR #412` scored **0.340** and is the one that answered.*
43
+
39
44
  ```bash
40
45
  pip install graphsight
41
46
  graphsight path/to/trace_state.json
42
47
  ```
43
48
 
44
- ## What you get
49
+ ## Retrieved vs. used
50
+
51
+ The signal that isn't in your logs. When a trace carries the final answer,
52
+ every retrieved item is scored by lexical overlap against it and rendered
53
+ either **highlighted** (surfaced in the answer) or **dimmed** with the label
54
+ *"retrieved, unused."* That splits the two classic retrieval failures at a
55
+ glance:
56
+
57
+ - **Right document retrieved, ignored by the model** → a dimmed node with a
58
+ high retrieval score. Your retriever worked; your prompt or context order
59
+ didn't.
60
+ - **Wrong document trusted** → a highlighted node that shouldn't be.
61
+
62
+ The overlap is a lexical heuristic, labeled as such (threshold 0.2). No LLM
63
+ re-reads your evidence, and no score is invented — a trace with no answer
64
+ attached makes no usage claims at all.
65
+
66
+ ## What else you get
45
67
 
46
68
  - **Every retrieved item as a typed node** — PR, Service, Person, Ticket,
47
69
  Document, Repo, Library, Team, Tool — with its retrieval score.
@@ -86,10 +108,13 @@ graphsight .graphsight/
86
108
 
87
109
  The [graphsight-langgraph](https://pypi.org/project/graphsight-langgraph/)
88
110
  `capture()` helper appends every agent run there automatically, so your
89
- debugging history accumulates with zero ceremony. Traces render with the
90
- **retrieved vs. used** split: items that surfaced in the answer highlighted,
91
- items retrieved but ignored dimmed — the two classic retrieval failures,
92
- visible at a glance.
111
+ debugging history accumulates with zero ceremony — no setup, no database.
112
+
113
+ Because the history is a directory of plain files, you can **compare two
114
+ runs side by side**: what the retrieval returned before a prompt change and
115
+ after it, which items appeared or vanished, and which flipped between used
116
+ and ignored. That is usually the fastest way to answer "what did my edit
117
+ actually do to retrieval?"
93
118
 
94
119
  ## Sharing traces with your team
95
120
 
@@ -122,8 +147,11 @@ producers:
122
147
  graphsight graphsight_out/trace_state.json
123
148
  ```
124
149
 
125
- - **The TraceRAG engine** — the graph-memory backend this project grew out
126
- of; its `/api/trace` responses are the same shape.
150
+ - **The Graphsight graph-memory engine** — the backend this project grew out
151
+ of: GitHub events become a live knowledge graph with typed, timestamped
152
+ edges (`AUTHORED`, `RESOLVES`, `TOUCHES`), queried by a hybrid
153
+ vector + graph router. Its `/api/trace` responses are the same shape. See
154
+ the [main repository](https://github.com/Kcodess2807/graphsight).
127
155
 
128
156
  Adapters for LlamaIndex and raw OpenTelemetry spans are planned; all
129
157
  producers emit the same schema and render in this same viewer.
@@ -4,20 +4,42 @@
4
4
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://pypi.org/project/graphsight/)
5
5
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Kcodess2807/graphsight/blob/main/graphsight/LICENSE)
6
6
 
7
- **See exactly why your AI agent retrieved what it did.**
7
+ **See which retrieved documents your agent actually used — and which it ignored.**
8
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,
9
+ Your agent answered a question. Which documents did it actually pull? Which
10
+ of those did the answer come from? What scores did they get, and how are they
11
+ connected? Most stacks make you dig through logs. Graphsight renders the run
12
+ as an **interactive graph in your browser** — one command, zero dependencies,
13
13
  nothing leaves your machine.
14
14
 
15
+ ![Graphsight showing a retrieved-but-unused document](https://raw.githubusercontent.com/Kcodess2807/graphsight/main/docs/media/retrieved-vs-used.gif)
16
+
17
+ *A real run. `PR #101` scored **0.910** — the highest of anything retrieved — and the answer
18
+ never used it. `PR #412` scored **0.340** and is the one that answered.*
19
+
15
20
  ```bash
16
21
  pip install graphsight
17
22
  graphsight path/to/trace_state.json
18
23
  ```
19
24
 
20
- ## What you get
25
+ ## Retrieved vs. used
26
+
27
+ The signal that isn't in your logs. When a trace carries the final answer,
28
+ every retrieved item is scored by lexical overlap against it and rendered
29
+ either **highlighted** (surfaced in the answer) or **dimmed** with the label
30
+ *"retrieved, unused."* That splits the two classic retrieval failures at a
31
+ glance:
32
+
33
+ - **Right document retrieved, ignored by the model** → a dimmed node with a
34
+ high retrieval score. Your retriever worked; your prompt or context order
35
+ didn't.
36
+ - **Wrong document trusted** → a highlighted node that shouldn't be.
37
+
38
+ The overlap is a lexical heuristic, labeled as such (threshold 0.2). No LLM
39
+ re-reads your evidence, and no score is invented — a trace with no answer
40
+ attached makes no usage claims at all.
41
+
42
+ ## What else you get
21
43
 
22
44
  - **Every retrieved item as a typed node** — PR, Service, Person, Ticket,
23
45
  Document, Repo, Library, Team, Tool — with its retrieval score.
@@ -62,10 +84,13 @@ graphsight .graphsight/
62
84
 
63
85
  The [graphsight-langgraph](https://pypi.org/project/graphsight-langgraph/)
64
86
  `capture()` helper appends every agent run there automatically, so your
65
- debugging history accumulates with zero ceremony. Traces render with the
66
- **retrieved vs. used** split: items that surfaced in the answer highlighted,
67
- items retrieved but ignored dimmed — the two classic retrieval failures,
68
- visible at a glance.
87
+ debugging history accumulates with zero ceremony — no setup, no database.
88
+
89
+ Because the history is a directory of plain files, you can **compare two
90
+ runs side by side**: what the retrieval returned before a prompt change and
91
+ after it, which items appeared or vanished, and which flipped between used
92
+ and ignored. That is usually the fastest way to answer "what did my edit
93
+ actually do to retrieval?"
69
94
 
70
95
  ## Sharing traces with your team
71
96
 
@@ -98,8 +123,11 @@ producers:
98
123
  graphsight graphsight_out/trace_state.json
99
124
  ```
100
125
 
101
- - **The TraceRAG engine** — the graph-memory backend this project grew out
102
- of; its `/api/trace` responses are the same shape.
126
+ - **The Graphsight graph-memory engine** — the backend this project grew out
127
+ of: GitHub events become a live knowledge graph with typed, timestamped
128
+ edges (`AUTHORED`, `RESOLVES`, `TOUCHES`), queried by a hybrid
129
+ vector + graph router. Its `/api/trace` responses are the same shape. See
130
+ the [main repository](https://github.com/Kcodess2807/graphsight).
103
131
 
104
132
  Adapters for LlamaIndex and raw OpenTelemetry spans are planned; all
105
133
  producers emit the same schema and render in this same viewer.
@@ -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.3.0"
11
+ __version__ = "0.3.1"
@@ -1 +1 @@
1
- import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-Cr4Ida0l.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{$ as ln,a0 as an,a1 as G,a2 as q,a3 as z,a4 as un,a5 as y,a6 as tn,a7 as K,a8 as _,a9 as rn,aa as o,ab as on,ac as sn,ad as fn}from"./mermaid.core-B4Rsz1_K.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,B,a){var O=I-l,i=D-h,n=B-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function V(l,h,I,D,v,A,B){var a=l-I,O=h-D,i=(B?A:-A)/K(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,C=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*K(on(0,T*T*R-P*P)),$=(P*g-m*S)/R,j=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=$-C,e=j-t,r=w-C,F=p-t;return x*x+e*e>r*r+F*F&&($=w,j=p),{cx:$,cy:j,x01:-n,y01:-d,x11:$*(v/T-1),y11:j*(v/T-1)}}function hn(){var l=cn,h=yn,I=z(0),D=null,v=gn,A=dn,B=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,C=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(C>tn-y)a.moveTo(s*G(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*G(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=C,S=C,$=B.apply(this,arguments)/2,j=$>y&&(D?+D.apply(this,arguments):K(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(j>y){var F=sn(j/u*q($)),L=sn(j/s*q($));(P-=F*2)>y?(F*=t?1:-1,R+=F,T-=F):(P=0,R=T=(f+c)/2),(S-=L*2)>y?(L*=t?1:-1,m+=L,g-=L):(S=0,m=g=(f+c)/2)}var H=s*G(m),J=s*q(m),M=u*G(T),N=u*q(T);if(w>y){var Q=s*G(g),U=s*q(g),W=u*G(R),X=u*q(R),E;if(C<an)if(E=pn(H,J,W,X,Q,U,M,N)){var Y=H-E[0],Z=J-E[1],b=Q-E[0],k=U-E[1],nn=1/q(fn((Y*b+Z*k)/(K(Y*Y+Z*Z)*K(b*b+k*k)))/2),en=K(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=V(W,X,H,J,s,x,t),r=V(Q,U,M,N,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(H,J),a.arc(0,0,s,m,g,!t)):a.moveTo(H,J),!(u>y)||!(P>y)?a.lineTo(M,N):p>y?(e=V(M,N,Q,U,u,-p,t),r=V(H,J,W,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[G(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:z(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:z(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:z(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:z(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:z(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:z(+n),i):A},i.padAngle=function(n){return arguments.length?(B=typeof n=="function"?n:z(+n),i):B},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};