spanforge 2.0.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.
Files changed (101) hide show
  1. spanforge/__init__.py +695 -0
  2. spanforge/_batch_exporter.py +322 -0
  3. spanforge/_cli.py +3081 -0
  4. spanforge/_hooks.py +340 -0
  5. spanforge/_server.py +953 -0
  6. spanforge/_span.py +1015 -0
  7. spanforge/_store.py +287 -0
  8. spanforge/_stream.py +654 -0
  9. spanforge/_trace.py +334 -0
  10. spanforge/_tracer.py +253 -0
  11. spanforge/actor.py +141 -0
  12. spanforge/alerts.py +464 -0
  13. spanforge/auto.py +181 -0
  14. spanforge/baseline.py +336 -0
  15. spanforge/config.py +460 -0
  16. spanforge/consent.py +227 -0
  17. spanforge/consumer.py +379 -0
  18. spanforge/core/__init__.py +5 -0
  19. spanforge/core/compliance_mapping.py +1060 -0
  20. spanforge/cost.py +597 -0
  21. spanforge/debug.py +514 -0
  22. spanforge/drift.py +488 -0
  23. spanforge/egress.py +63 -0
  24. spanforge/eval.py +575 -0
  25. spanforge/event.py +1052 -0
  26. spanforge/exceptions.py +246 -0
  27. spanforge/explain.py +181 -0
  28. spanforge/export/__init__.py +50 -0
  29. spanforge/export/append_only.py +342 -0
  30. spanforge/export/cloud.py +349 -0
  31. spanforge/export/datadog.py +495 -0
  32. spanforge/export/grafana.py +331 -0
  33. spanforge/export/jsonl.py +198 -0
  34. spanforge/export/otel_bridge.py +291 -0
  35. spanforge/export/otlp.py +817 -0
  36. spanforge/export/otlp_bridge.py +231 -0
  37. spanforge/export/redis_backend.py +282 -0
  38. spanforge/export/webhook.py +302 -0
  39. spanforge/exporters/__init__.py +29 -0
  40. spanforge/exporters/console.py +271 -0
  41. spanforge/exporters/jsonl.py +144 -0
  42. spanforge/hitl.py +297 -0
  43. spanforge/inspect.py +429 -0
  44. spanforge/integrations/__init__.py +39 -0
  45. spanforge/integrations/_pricing.py +277 -0
  46. spanforge/integrations/anthropic.py +388 -0
  47. spanforge/integrations/bedrock.py +306 -0
  48. spanforge/integrations/crewai.py +251 -0
  49. spanforge/integrations/gemini.py +349 -0
  50. spanforge/integrations/groq.py +444 -0
  51. spanforge/integrations/langchain.py +349 -0
  52. spanforge/integrations/llamaindex.py +370 -0
  53. spanforge/integrations/ollama.py +286 -0
  54. spanforge/integrations/openai.py +370 -0
  55. spanforge/integrations/together.py +485 -0
  56. spanforge/metrics.py +393 -0
  57. spanforge/metrics_export.py +342 -0
  58. spanforge/migrate.py +278 -0
  59. spanforge/model_registry.py +282 -0
  60. spanforge/models.py +407 -0
  61. spanforge/namespaces/__init__.py +215 -0
  62. spanforge/namespaces/audit.py +253 -0
  63. spanforge/namespaces/cache.py +209 -0
  64. spanforge/namespaces/chain.py +74 -0
  65. spanforge/namespaces/confidence.py +69 -0
  66. spanforge/namespaces/consent.py +85 -0
  67. spanforge/namespaces/cost.py +175 -0
  68. spanforge/namespaces/decision.py +135 -0
  69. spanforge/namespaces/diff.py +146 -0
  70. spanforge/namespaces/drift.py +79 -0
  71. spanforge/namespaces/eval_.py +232 -0
  72. spanforge/namespaces/fence.py +180 -0
  73. spanforge/namespaces/guard.py +104 -0
  74. spanforge/namespaces/hitl.py +92 -0
  75. spanforge/namespaces/latency.py +69 -0
  76. spanforge/namespaces/prompt.py +185 -0
  77. spanforge/namespaces/redact.py +172 -0
  78. spanforge/namespaces/template.py +197 -0
  79. spanforge/namespaces/tool_call.py +76 -0
  80. spanforge/namespaces/trace.py +1006 -0
  81. spanforge/normalizer.py +183 -0
  82. spanforge/presidio_backend.py +149 -0
  83. spanforge/processor.py +258 -0
  84. spanforge/prompt_registry.py +415 -0
  85. spanforge/py.typed +0 -0
  86. spanforge/redact.py +780 -0
  87. spanforge/sampling.py +500 -0
  88. spanforge/schemas/v1.0/schema.json +170 -0
  89. spanforge/schemas/v2.0/schema.json +536 -0
  90. spanforge/signing.py +1152 -0
  91. spanforge/stream.py +559 -0
  92. spanforge/testing.py +376 -0
  93. spanforge/trace.py +199 -0
  94. spanforge/types.py +696 -0
  95. spanforge/ulid.py +304 -0
  96. spanforge/validate.py +383 -0
  97. spanforge-2.0.0.dist-info/METADATA +1777 -0
  98. spanforge-2.0.0.dist-info/RECORD +101 -0
  99. spanforge-2.0.0.dist-info/WHEEL +4 -0
  100. spanforge-2.0.0.dist-info/entry_points.txt +5 -0
  101. spanforge-2.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,101 @@
1
+ spanforge/__init__.py,sha256=c7JCRvFa66rHU4o3Gk3A4wx5_0UqGUQeIcWh9jio5Uo,19699
2
+ spanforge/_batch_exporter.py,sha256=V8lFQxIm-A-YTtxQzxRfBEnyngQzMaE4Yi79fsW2rXo,12213
3
+ spanforge/_cli.py,sha256=g9NFDIHv7-kQOrtd-OgT54hj8Col32qGe29QJ8Zg7Dc,114005
4
+ spanforge/_hooks.py,sha256=blO--pL9HbAhij2jGc1UKQkq9G0CGXuiipdJ0MqPIig,13048
5
+ spanforge/_server.py,sha256=3M4XQfBbEnyubkhn-LSo1oN-13XAflPfAqURlxFHip0,51659
6
+ spanforge/_span.py,sha256=gluGdy2lo2xXWWaXbIfdzuDDjgUJxy12bYNuGnNMiuk,38562
7
+ spanforge/_store.py,sha256=9X0MyF48sZeFCkMwk7MsdgDjV5NJFxWj1Km10DXwC08,11053
8
+ spanforge/_stream.py,sha256=QbMOZL5ZlAFe1Njt-yY0NWrFGjUDc0yxBBWOyW1hhX4,24306
9
+ spanforge/_trace.py,sha256=X6EbJ3LK3iJssXwbA71lejvrNBF7X6CQX1IaL4Z-uIk,11525
10
+ spanforge/_tracer.py,sha256=xFxlrninUucrwsYISh7QFaaVlHxg0K81cy7iqIepuEk,9348
11
+ spanforge/actor.py,sha256=VNuoHw6Z2tbd_hkiYZ5Sn3qX-lOiCVCt8MCz4KSQJuE,5160
12
+ spanforge/alerts.py,sha256=lJAQnFU-lK32OlrihxD2--MM94Qk7aUmwXPlAK60aBs,17438
13
+ spanforge/auto.py,sha256=B95k6Lz95LH0UKwbz8k02yElXCRb5cbp-IZksOEIMag,6585
14
+ spanforge/baseline.py,sha256=0Lc9DqqxiGW_ZR_YL14_rTJIiX3KE_9Zp6VXYNz8Wrg,13348
15
+ spanforge/config.py,sha256=BP6ITaKnFI_wzFv8sKSh5xv5eq67Wd0uv9QMN3WdcHg,23085
16
+ spanforge/consent.py,sha256=ofALilcWnLvP62EfBu8oh_pu0GwgwdmGLswu-krbst4,7654
17
+ spanforge/consumer.py,sha256=6VTnBvOGVbB5qjHuONl8ZNw2t0cTThts_iQp044hdVE,13472
18
+ spanforge/cost.py,sha256=cs8pA9UCYGqMpDQPaFlEZbLyg2Wdeoa5A7ezx8fG-Ms,21972
19
+ spanforge/debug.py,sha256=KgC6IBkkRQ3H1hZzxa7nOPJT8Rhf7tF4iJt8XKp6ei0,18106
20
+ spanforge/drift.py,sha256=m8dudafroG7yLwYIRZ7shyTYTd7OBgADgbSbvBJ0wZk,18772
21
+ spanforge/egress.py,sha256=v0F7umzCsSewUbdbz5XS9feZzkymuxuemJ6qHRfEOGk,1926
22
+ spanforge/eval.py,sha256=JV9br0eu-Ij2Sww1gBV45BGG3Zqf00Ud2j1sLBtiM_k,20125
23
+ spanforge/event.py,sha256=KiqOe5bbdCN9qrgVSixZA9sM67w9ZakXiTl6LV4b_HA,40725
24
+ spanforge/exceptions.py,sha256=hgWoelw9OzwnDT8tfafIZlhx5BxNjooMnZoOgbR9RgM,8053
25
+ spanforge/explain.py,sha256=jVHo0pGe7fXG3s18Unzzf0SG23ecj53HmXR_Z6rSLhk,6195
26
+ spanforge/hitl.py,sha256=nYVXovnBlTxwscv3Y79cylW1LSditKoLbA0DeeKDpxc,9647
27
+ spanforge/inspect.py,sha256=Bl89AsGB1EpXw73ESaN9hiwqm8TjPg_bh6l6P5bTSaU,15721
28
+ spanforge/metrics.py,sha256=IYxr1ciIO9qx0nnTDRujvFFslBsPjKOC0BXv2Gn2jEE,14472
29
+ spanforge/metrics_export.py,sha256=7LHsg2-et2KtLTObrKNL3k8cgyyl-ohnDIa9ocdBJl0,13608
30
+ spanforge/migrate.py,sha256=IdHTJNXHQd1B3h_iYcbPzawpYzjkd9Iv2AnUQlxmE0M,10138
31
+ spanforge/model_registry.py,sha256=lgc5FYTnFjQz2OgqnFcK7CiPGv-65pqFewmrAEBipmE,10024
32
+ spanforge/models.py,sha256=0paxHXftd24aoRnXdKug8SEIEyKMFD4p1xdGtbxoa44,14794
33
+ spanforge/normalizer.py,sha256=rqtYDv9PiOMl5cOaztq5aDwIRp70FUY5WcFmi7UDzn0,6624
34
+ spanforge/presidio_backend.py,sha256=x6nAjThhoUlEUYTBGudAXE55Hs1N7mxet_xCRDR-nLc,5183
35
+ spanforge/processor.py,sha256=f102mNVgOM1GqU4FGH9TWiPLHJjoZrV_oQk_2THdoZ8,8964
36
+ spanforge/prompt_registry.py,sha256=fjKqHSU9ziEbcFf1ZWPaRjuiTgsmRW6dsYIbGjGt1xc,14539
37
+ spanforge/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ spanforge/redact.py,sha256=6vp8xh-UG_AsJ0yP0RmE4GAuVsiNFuhN1WYT37csTBs,28400
39
+ spanforge/sampling.py,sha256=jBke0yZeJU7AVFzZIIkggeQWj6OJ5vTClBSSkS2_dAY,18368
40
+ spanforge/signing.py,sha256=ZfU6wja_NhUuqqomv9IKoEIHj2XyYqVfa_HQz3-eoM0,43188
41
+ spanforge/stream.py,sha256=NUDFm1P8ihEE44gW2QMhD2LxuRdWUmXubnnp0FoehNQ,19655
42
+ spanforge/testing.py,sha256=x-MnwYggRk-5YS_PSD2TC5p4fsM-pP4KZYIi2ZqpLcA,12290
43
+ spanforge/trace.py,sha256=C5KhZRtjHlAuIHoeEoAk3PIW9qoFIza2XMIXEIZlpmA,7054
44
+ spanforge/types.py,sha256=4mSgtVjB6S2swg1n_zjSBXka3yk6Ke7nnj-N5NRY3pM,24922
45
+ spanforge/ulid.py,sha256=EogjONeYnLYpktEKs_GwfI7W3tL4pksyLHIuDtyMsME,10496
46
+ spanforge/validate.py,sha256=-xgP_XL9GFkO3GA-nnaib3aJA9ow9NvRynnOTQmUFj8,14446
47
+ spanforge/core/__init__.py,sha256=qVozFPRxiWsNDk1jfkfP-Az5unbwtRZsU5Hxi40PzP0,128
48
+ spanforge/core/compliance_mapping.py,sha256=rdA1j5gOUUsIuv46dqKWNigHifN_hX3sBQf1jUmu7fE,42331
49
+ spanforge/export/__init__.py,sha256=sGsipasCB3OB0vE3H0IbqUCLG2KlGwPwVxYdAdyDAO4,1852
50
+ spanforge/export/append_only.py,sha256=76b10NAhxgfOunQoW499f6m4S7t490frlUQsk95LVR0,11757
51
+ spanforge/export/cloud.py,sha256=1hC6o4_KT4RHpkahyoaqpdrbiJ9k_vHy7VH4bKhr3Tw,13296
52
+ spanforge/export/datadog.py,sha256=CIPUDUpuJkEymTQsaBB1CjmSIBnSDNUjj8cjvTKsswg,17719
53
+ spanforge/export/grafana.py,sha256=Ys1KFANNiVXz26sYrVquKGaLjXq1atXHBRw4k_o0IC0,11615
54
+ spanforge/export/jsonl.py,sha256=ue18pKIaNFZssV0_cgzpn5dL8s9uzRDLWtfwmGOgZ_A,6471
55
+ spanforge/export/otel_bridge.py,sha256=0FL973L7_w8MGMiS7q_CAXNGuqhg_CM1QUCxy5Zqgzg,11264
56
+ spanforge/export/otlp.py,sha256=dLgkl6L3s1QkP8e7s1E8rsuAZQBuVrEUTOZpaO_wCsY,30227
57
+ spanforge/export/otlp_bridge.py,sha256=Ji7pFlIgqTnhpUiiVcup8G4pWApAa4MNzflD_UYokqk,8534
58
+ spanforge/export/redis_backend.py,sha256=eJ5oivperx635-t0VCwYmK5o-ecPUnNrzxQYPY1Up2E,10488
59
+ spanforge/export/webhook.py,sha256=iv_Ug0iVPd74QEnvzINXlJbRbjjJe8dCzFcX51myXrM,11092
60
+ spanforge/exporters/__init__.py,sha256=1OSdfTXz8daLTGYbx3xa546pXv95Rzi9NiSSB1djjpo,1103
61
+ spanforge/exporters/console.py,sha256=su6ib24eL1vhO6s4Bj4VhInPsiuloSAPuMFeve6EOAk,8780
62
+ spanforge/exporters/jsonl.py,sha256=z5S12K_6kasY3m7srri1U937zhVWkv4R6matOj2rjWM,4830
63
+ spanforge/integrations/__init__.py,sha256=ZGhDQheSGUF1EbUUlb7pmT8pPoJtQ1S_R90458S12Tc,1681
64
+ spanforge/integrations/_pricing.py,sha256=VIRHyuN4uot75ynyzSHNHvCZUQgtjIwmGAwuJSXB9vw,8755
65
+ spanforge/integrations/anthropic.py,sha256=wel709Sf2wJaMvv2r7l7dWiuOpmrlVmg4r-43MqUZAw,13388
66
+ spanforge/integrations/bedrock.py,sha256=PXtL_9Fj0bEQZAEOWf2KaVbpydLjlGUXP1zcSNZ06Tg,9852
67
+ spanforge/integrations/crewai.py,sha256=kHN4oEi5w-SOOyXp5vpXolaIkk9wU7dr-XjMJViE5Xc,9130
68
+ spanforge/integrations/gemini.py,sha256=R_GVaQLYBzUagA029rl-TZidStIC7HsTl1NDSdKuAPE,11909
69
+ spanforge/integrations/groq.py,sha256=8b4ctC1xzIFYWLMV4R0gKCrTgeF3JpgPgKkpeZquCms,15085
70
+ spanforge/integrations/langchain.py,sha256=2DKnjDiDdNGh8pT7XtP__VyP4qyyIlKpHnB8fFtTCiY,11772
71
+ spanforge/integrations/llamaindex.py,sha256=Po0KFapl3b_slpSBZzqW9UR-bHiPke3Nh0nQwBpgD-4,13347
72
+ spanforge/integrations/ollama.py,sha256=_q4ybAQwDG25j_PJ76MI2w496n8gQ2U08D6jUq3rA7U,10268
73
+ spanforge/integrations/openai.py,sha256=iaNIJV2iqbO9ew8gTqD-kwsVwLDxHiPaP00mHd-qcow,13874
74
+ spanforge/integrations/together.py,sha256=Ulm4xvg2Oze0pdCmKofMZspUD4v611N1y6_D0Ypw55I,17004
75
+ spanforge/namespaces/__init__.py,sha256=dJQr7M8fUCAQVUpOaDpgwNbn3-TaagLZ_UKuAzTEqeM,6721
76
+ spanforge/namespaces/audit.py,sha256=8sPo--1GN_0eeJYkrFbQqJ7xEUf1cs54MNYQricDX-E,10931
77
+ spanforge/namespaces/cache.py,sha256=EDUFBuP-sePVs3bROiUrZeqYqnRUiw6CZkOpQHxk4qs,8523
78
+ spanforge/namespaces/chain.py,sha256=a6V_7jejelKbzjlclabLCdQqGHBU8RPm6ehbmkxMS9A,2926
79
+ spanforge/namespaces/confidence.py,sha256=ezgodmYMtH2nbf9aei-k7a-2y-jXkykL3qKCODjzxbM,2511
80
+ spanforge/namespaces/consent.py,sha256=92yG2Tjo2zzEoVjwZP8FTeX-cklJy1RTyof3luf5g3o,3072
81
+ spanforge/namespaces/cost.py,sha256=QYT6qbYqL0ySuFLXJD40ZsXO2BiopIWQ-eNMmOdc-hc,6909
82
+ spanforge/namespaces/decision.py,sha256=wP43Kr3YaJ2sv7ZB2IdZB7_oc_bO-l-WrxOSCQEnH70,5161
83
+ spanforge/namespaces/diff.py,sha256=PM0GCLHgsLXxYkiCJU4kS8Ia0swvAS_D2SXb4mfomhQ,6466
84
+ spanforge/namespaces/drift.py,sha256=F5ieCqzxiVUVwzHB70UkbFzN_GWNNRe_p0j64iq3CKk,2814
85
+ spanforge/namespaces/eval_.py,sha256=NjLTVl59GKroOynM4jR_yNofN7QbRqg_PVHq7CzDMz0,9504
86
+ spanforge/namespaces/fence.py,sha256=0aEw8yV_VeDGYUiawTD9-6WP677CMDOODt9tUEfsU54,7569
87
+ spanforge/namespaces/guard.py,sha256=H5HUQHHC_C86-MMtmuqtqQfxsJNKb-fcfyUe4m2QMbM,4374
88
+ spanforge/namespaces/hitl.py,sha256=6sqBwljaL_WZGAEQyMDCPH58fpneAnxhhLsn4xDrY34,3516
89
+ spanforge/namespaces/latency.py,sha256=Shb18sZw8Uk_2unI8CAZ8nE3jSzPijQbKgvVzH42Zv0,2257
90
+ spanforge/namespaces/prompt.py,sha256=MpyGG4_sTrcBg_BYqk9j2-kJMoUu3hm_nEr9L1AY_7U,7449
91
+ spanforge/namespaces/redact.py,sha256=gLzAz4FrJAQqFORrnAiuv9SPs_IW6VtxJSy6DpEbojw,7259
92
+ spanforge/namespaces/template.py,sha256=RXRloqbZwCgWmkAwUN1a1cA7hx9xyAQDQRH9lfD0vrs,8071
93
+ spanforge/namespaces/tool_call.py,sha256=DcyJq6MEJJpL2eF6xOOVU_f0Z9yU8EdMyes_1iL1KzI,2686
94
+ spanforge/namespaces/trace.py,sha256=WuDeyZ53JVVs8uli7yyIAEg9ImlevCd_AV3gv67yGFI,44029
95
+ spanforge/schemas/v1.0/schema.json,sha256=3oqTTPfWABis7Fqdacs1X7U40Ha0KfK4YCk4SjSgqHc,6140
96
+ spanforge/schemas/v2.0/schema.json,sha256=L7F8fKE1gLL9-vbLaXcQM6QQ8OvH-AIqu-yDBgpxda0,19107
97
+ spanforge-2.0.0.dist-info/METADATA,sha256=z5G-lp8-VJjt5NsHNSik3NR0DJ0rSC21aXlbDU7KF2g,72339
98
+ spanforge-2.0.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
99
+ spanforge-2.0.0.dist-info/entry_points.txt,sha256=E0EkfBY6F7Ir44r0Cbm511k7us2YgReB1pmPshf215Y,115
100
+ spanforge-2.0.0.dist-info/licenses/LICENSE,sha256=CZz6NAd6CYP_wt9PUYbaXsSdnXbV8YgZWrom_uT1hRQ,1096
101
+ spanforge-2.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ spanforge = spanforge._cli:main
3
+
4
+ [flake8.extension]
5
+ AO = spanforge.lint._flake8:SpanForgeChecker
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 viswanathanstartup
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.