loopview 0.1.0__py3-none-any.whl
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.
- loopview/__init__.py +3 -0
- loopview/app.py +252 -0
- loopview/cli.py +128 -0
- loopview/cost/__init__.py +1 -0
- loopview/cost/pricing.json +62 -0
- loopview/cost/pricing.py +74 -0
- loopview/cost/split.py +228 -0
- loopview/demo_data/flagship.otlp.jsonl +13 -0
- loopview/devtools/__init__.py +1 -0
- loopview/devtools/dump_normalized.py +211 -0
- loopview/ingest/__init__.py +1 -0
- loopview/ingest/otlp.py +305 -0
- loopview/ingest/raw.py +47 -0
- loopview/live.py +154 -0
- loopview/normalize/__init__.py +1 -0
- loopview/normalize/adapters/__init__.py +14 -0
- loopview/normalize/adapters/base.py +87 -0
- loopview/normalize/adapters/gen_ai.py +252 -0
- loopview/normalize/adapters/generic.py +22 -0
- loopview/normalize/adapters/openinference.py +367 -0
- loopview/normalize/derived_tools.py +90 -0
- loopview/normalize/loop_nodes.py +193 -0
- loopview/normalize/normalizer.py +326 -0
- loopview/normalize/schema.py +161 -0
- loopview/normalize/transitions.py +106 -0
- loopview/py.typed +0 -0
- loopview/static/assets/elk-worker.min-DfmSo98M.js +22 -0
- loopview/static/assets/index-CEGppBgk.css +1 -0
- loopview/static/assets/index-DzC96LiQ.js +21 -0
- loopview/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- loopview/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- loopview/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- loopview/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- loopview/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- loopview/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- loopview/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- loopview/static/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- loopview/static/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- loopview/static/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- loopview/static/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- loopview/static/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- loopview/static/index.html +13 -0
- loopview/store/__init__.py +1 -0
- loopview/store/capture.py +112 -0
- loopview/store/memory.py +165 -0
- loopview/tools/__init__.py +1 -0
- loopview/tools/report.py +347 -0
- loopview-0.1.0.dist-info/METADATA +72 -0
- loopview-0.1.0.dist-info/RECORD +51 -0
- loopview-0.1.0.dist-info/WHEEL +4 -0
- loopview-0.1.0.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: loopview
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Watch your AI agents run as a live graph, from any OpenTelemetry trace.
|
|
5
|
+
Keywords: ai-agents,llm,opentelemetry,observability,debugging,tracing
|
|
6
|
+
Author: YasmineZerai
|
|
7
|
+
Author-email: YasmineZerai <zeraiyasmine7@gmail.com>
|
|
8
|
+
License-Expression: Apache-2.0
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Topic :: Software Development :: Debuggers
|
|
16
|
+
Classifier: Topic :: System :: Monitoring
|
|
17
|
+
Requires-Dist: fastapi>=0.115
|
|
18
|
+
Requires-Dist: uvicorn>=0.30
|
|
19
|
+
Requires-Dist: pydantic>=2.7
|
|
20
|
+
Requires-Dist: opentelemetry-proto>=1.45
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Project-URL: Homepage, https://github.com/YasmineZerai/loopview
|
|
23
|
+
Project-URL: Demo, https://yasminezerai.github.io/loopview/
|
|
24
|
+
Project-URL: Documentation, https://github.com/YasmineZerai/loopview#readme
|
|
25
|
+
Project-URL: Issues, https://github.com/YasmineZerai/loopview/issues
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# loopview
|
|
29
|
+
|
|
30
|
+
**Debug your AI agents as a live graph, whatever framework they're built with.**
|
|
31
|
+
|
|
32
|
+
See which agent ran, what it thought, which tool failed, what it did next, and what it cost.
|
|
33
|
+
LangGraph, Pydantic AI, CrewAI, the OpenAI Agents SDK or your own loop: one view, from
|
|
34
|
+
standard OpenTelemetry, on your machine.
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
[Live demo](https://yasminezerai.github.io/loopview/) ·
|
|
39
|
+
[Documentation](https://github.com/YasmineZerai/loopview#readme)
|
|
40
|
+
|
|
41
|
+
## Try it
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
uvx loopview demo
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Your browser opens on a recorded multi-agent run. No API key needed.
|
|
48
|
+
|
|
49
|
+
## Watch your own agent
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
uvx loopview # UI and OTLP endpoint on http://127.0.0.1:4318
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
In your agent's environment:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
pip install loopview-sdk
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
import loopview_sdk
|
|
63
|
+
|
|
64
|
+
loopview_sdk.connect() # at the start of your program
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`connect()` switches on the OpenTelemetry instrumentation of every agent framework and model
|
|
68
|
+
SDK it finds installed. Agents in other languages can send OTLP over HTTP to
|
|
69
|
+
`http://127.0.0.1:4318/v1/traces`.
|
|
70
|
+
|
|
71
|
+
Which instrumentation package each framework needs, and everything else, is in the
|
|
72
|
+
[README on GitHub](https://github.com/YasmineZerai/loopview#connect-your-agent).
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
loopview/__init__.py,sha256=llYI_lSb0TCI3si9-oUSOM_QZf2mGlzpruVB9MaXQbc,106
|
|
2
|
+
loopview/app.py,sha256=fVwcmicaQ4tjY-BOe70qsZrzoOI9HI7R6dji7xb4qyM,10422
|
|
3
|
+
loopview/cli.py,sha256=N8mM46yqpgdm051U5jAEjj7CqsioiJJHetuRgLR59lw,4707
|
|
4
|
+
loopview/cost/__init__.py,sha256=eLxeYwQJMUk3k5q_KgKc6fK9UR5D2oM1Ev_fl3-Hugk,79
|
|
5
|
+
loopview/cost/pricing.json,sha256=hSUYyKBNQtX5hNgAggCViAJVY0qrzVp5GQfdCc48NE8,9985
|
|
6
|
+
loopview/cost/pricing.py,sha256=v9unLEQZv1Xp5v7WdQKvnTahrDW9rb0x1mJ_7upt06s,2359
|
|
7
|
+
loopview/cost/split.py,sha256=NZN4J45AD3oTyPk4YJXFVosVj5UqQdZlgCXFt6h9FYo,9151
|
|
8
|
+
loopview/demo_data/flagship.otlp.jsonl,sha256=h8Etmjq4BWyypE2RrjmjFdHYamuUOj46lYrqgjrp4ws,1413694
|
|
9
|
+
loopview/devtools/__init__.py,sha256=C_hX9T3og-ZWYgTdzN5Jsz1fV2I3VcJpcYRDyiUAVEk,44
|
|
10
|
+
loopview/devtools/dump_normalized.py,sha256=N5ZHLKrCljShyulBYvvNxRsNRTA2ehxt5AVOqwB2QQw,9409
|
|
11
|
+
loopview/ingest/__init__.py,sha256=2FOkWPllkwfSY51r1_2d1aqmkBDh0YIvKZa0IcNOutM,60
|
|
12
|
+
loopview/ingest/otlp.py,sha256=vBMJjMvAVKT_x8djJQMoMt4z8uE-m1gg-FvVuSnm3G4,11260
|
|
13
|
+
loopview/ingest/raw.py,sha256=hgNCxL08K2GlGXpaWafbqFaRvuoKwYfF7xomqEQ6ww8,1645
|
|
14
|
+
loopview/live.py,sha256=kkPB6ZILcVn2EVQViejOnt_wNY8BEq04xlb2tS9A1BI,6344
|
|
15
|
+
loopview/normalize/__init__.py,sha256=wVPLQY30SzGcMuPx1DOEB1jDbIYYAbq34cjb0oMTLp8,77
|
|
16
|
+
loopview/normalize/adapters/__init__.py,sha256=Sam_Cw_9qcSpMWtdx3HC-Fxpm9msFe1ForWa4_jE0-E,595
|
|
17
|
+
loopview/normalize/adapters/base.py,sha256=lV7xlE9xJehl14gjTf5g52zs7tMx68bd0Bjnu-WBNzs,2736
|
|
18
|
+
loopview/normalize/adapters/gen_ai.py,sha256=DPZPT7c21GLV9kFexamlOykTzdMXk6dmo0pUArIOgAw,9631
|
|
19
|
+
loopview/normalize/adapters/generic.py,sha256=ofk8QI6r3a4Vh_rM5Y50kK5Fab7HLHnDUts_SZV1oJg,765
|
|
20
|
+
loopview/normalize/adapters/openinference.py,sha256=G7jrv051wPaq7zpo9uFwu-3XM-0gv60fuF6JBVgMwUk,15063
|
|
21
|
+
loopview/normalize/derived_tools.py,sha256=igOTbNJBDnei42FGLbs0L4KJxDAqE-2gcYwr1bBSMQA,4371
|
|
22
|
+
loopview/normalize/loop_nodes.py,sha256=QoCub_-jkNU1uYfeqMtHTiPlEOIu83fgi-ZtgmXQyBQ,7825
|
|
23
|
+
loopview/normalize/normalizer.py,sha256=zwyjmhf_qWDP6fphbtQvxHegN7IAGmJITlfTortsvJ8,12705
|
|
24
|
+
loopview/normalize/schema.py,sha256=flmvebZN_rC9SK6pPswZk5lt5dfIPyhr_qfkpy7hV4Y,5896
|
|
25
|
+
loopview/normalize/transitions.py,sha256=7CUzxNDPPH6OdftZ3IPC9I8KLT1kGIYLBVKcxLn8srI,4429
|
|
26
|
+
loopview/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
loopview/static/assets/elk-worker.min-DfmSo98M.js,sha256=x6UTvV-ZfnSEq2CAsWurNonOcWIlzc-RDsljNuK0IKc,1424028
|
|
28
|
+
loopview/static/assets/index-CEGppBgk.css,sha256=ZqbnSBVqRgyEQhnn1B1yj8MIXQ8InJpeqJ1wJH1RNNc,67410
|
|
29
|
+
loopview/static/assets/index-DzC96LiQ.js,sha256=QErZ2dezRrHJjc5d-HvECR-dO8Ck0fb1YraAkkqiGq8,499747
|
|
30
|
+
loopview/static/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2,sha256=yhVwYzOaxK1BjyFPOr_tEZsHmKtNN3OGzlyeWnpDXr0,25960
|
|
31
|
+
loopview/static/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2,sha256=cdXuk8wenx1SCjqLZkVt4Yx4edjfCdV_zS6v91_vAHU,18748
|
|
32
|
+
loopview/static/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2,sha256=bp4CCiX5tW1BjywIWx08CXJaTaI_5pOltGMGRgZzIZA,11232
|
|
33
|
+
loopview/static/assets/inter-greek-wght-normal-CkhJZR-_.woff2,sha256=G-NEjikvvwX_4Xb-HkPxNQE9ULHn0yStGlWPYj07tvY,18996
|
|
34
|
+
loopview/static/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2,sha256=NLnFBMq3pz43t0Y0OkSRMuVs97VIGvLLgdx03P8lyVY,85068
|
|
35
|
+
loopview/static/assets/inter-latin-wght-normal-Dx4kXJAl.woff2,sha256=MQDndehhbNJhG-7PojpCY9cDdYZ4m0PwNSNqLm-9TGI,48256
|
|
36
|
+
loopview/static/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2,sha256=XGb54H6QxtSsSSLMaNYN4mwXsYWOZ3-15gP845UrP_I,10252
|
|
37
|
+
loopview/static/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2,sha256=0nRgTEB1f5jwffYjqLj7UZRQim-k9UE6ehB_CeO3RSo,12108
|
|
38
|
+
loopview/static/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2,sha256=7oYxmAd_MJP_qBwHJYHMS9YIoE5gqKnAuEY5bOTxQQk,9004
|
|
39
|
+
loopview/static/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2,sha256=eb_aubpGfibupBIubyVn4YjdigmoxzDVAfxIfEq5nG4,15196
|
|
40
|
+
loopview/static/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2,sha256=GL5FJyS_3CNsB0ypSiSaf0GoZ1LH0EqyWM6e1WUfan4,40404
|
|
41
|
+
loopview/static/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2,sha256=Ioh5Xaid2X5kiVS5biK0UBvYXfxFMmRGCyUviItYLKI,7504
|
|
42
|
+
loopview/static/index.html,sha256=eOJ33AgjWLKxm-YLHZbaO5ADsZyTZV8FqWlLEWim1s0,393
|
|
43
|
+
loopview/store/__init__.py,sha256=0waqc4EsMt0E1vkg4WJvFRvW_yJvasYUNFVcKFdefgY,74
|
|
44
|
+
loopview/store/capture.py,sha256=Za5YWYM7ej3zzdsFQJKdSC3w-V4ziq9iJmzIyE_5Gi4,3918
|
|
45
|
+
loopview/store/memory.py,sha256=MK66MaOg4_PDIG_N2yM2-2C6ODVfYS0TjdVQ_LXdzoY,6665
|
|
46
|
+
loopview/tools/__init__.py,sha256=cnYQFw07Q5iKXFAs7XpQMyl4fWyU1ePssSaXtVH3viU,68
|
|
47
|
+
loopview/tools/report.py,sha256=zdkQDk36iZ6lrPKdpU6iloa6OWiGHlkgI7ktqh4TJ6g,13601
|
|
48
|
+
loopview-0.1.0.dist-info/WHEEL,sha256=cmC5s21ojypbVslldL7IJq3hjZH-tINy4rziKePFsG0,81
|
|
49
|
+
loopview-0.1.0.dist-info/entry_points.txt,sha256=cUF40S0OICzR0G-MRUKSfqaznvGGp7my0VuXRfhedxo,48
|
|
50
|
+
loopview-0.1.0.dist-info/METADATA,sha256=xce-bqLlfrwX4x3ttkEnu8-DjJFrLitsvuL0s8ZhmAw,2452
|
|
51
|
+
loopview-0.1.0.dist-info/RECORD,,
|