forgesight 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.
forgesight/__init__.py ADDED
@@ -0,0 +1,41 @@
1
+ """ForgeSight — the batteries-included facade.
2
+
3
+ ``import forgesight`` gives you ``configure()``, the ``telemetry`` instrumentation
4
+ facade, and the ``@instrument`` decorator. Backends are added by installing their
5
+ package (``forgesight-otel`` etc.) — never a code change here.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from forgesight_core import (
11
+ ConsoleExporter,
12
+ InMemoryExporter,
13
+ Telemetry,
14
+ configure,
15
+ current_run_scope,
16
+ get_runtime,
17
+ instrument,
18
+ register,
19
+ telemetry,
20
+ )
21
+
22
+ __version__ = "0.1.0"
23
+
24
+
25
+ def current_run() -> object | None:
26
+ """The active run scope, or ``None`` outside any run (alias of ``telemetry.current_run``)."""
27
+ return current_run_scope()
28
+
29
+
30
+ __all__ = [
31
+ "ConsoleExporter",
32
+ "InMemoryExporter",
33
+ "Telemetry",
34
+ "__version__",
35
+ "configure",
36
+ "current_run",
37
+ "get_runtime",
38
+ "instrument",
39
+ "register",
40
+ "telemetry",
41
+ ]
forgesight/py.typed ADDED
File without changes
@@ -0,0 +1,27 @@
1
+ """ForgeSight testing surface — re-exported from ``forgesight_core.testing``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from forgesight_core.testing import (
6
+ InMemoryExporter,
7
+ SpanData,
8
+ assert_span_tree,
9
+ build_spans,
10
+ find_span,
11
+ find_spans,
12
+ llm_call_factory,
13
+ token_usage_factory,
14
+ tool_call_factory,
15
+ )
16
+
17
+ __all__ = [
18
+ "InMemoryExporter",
19
+ "SpanData",
20
+ "assert_span_tree",
21
+ "build_spans",
22
+ "find_span",
23
+ "find_spans",
24
+ "llm_call_factory",
25
+ "token_usage_factory",
26
+ "tool_call_factory",
27
+ ]
@@ -0,0 +1,17 @@
1
+ """Per-SPI conformance suites — re-exported from ``forgesight_core.testing.conformance``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from forgesight_core.testing.conformance import (
6
+ run_event_listener_conformance,
7
+ run_exporter_conformance,
8
+ run_interceptor_conformance,
9
+ run_pricing_conformance,
10
+ )
11
+
12
+ __all__ = [
13
+ "run_event_listener_conformance",
14
+ "run_exporter_conformance",
15
+ "run_interceptor_conformance",
16
+ "run_pricing_conformance",
17
+ ]
@@ -0,0 +1,139 @@
1
+ Metadata-Version: 2.4
2
+ Name: forgesight
3
+ Version: 0.1.0
4
+ Summary: Vendor-neutral, OpenTelemetry-first telemetry for AI agents: traces, cost, budgets, and a tamper-evident audit trail — ship to any backend, no agent-code changes.
5
+ Project-URL: Homepage, https://github.com/Scaffoldic/forgesight
6
+ Project-URL: Repository, https://github.com/Scaffoldic/forgesight
7
+ Project-URL: Issues, https://github.com/Scaffoldic/forgesight/issues
8
+ Project-URL: Changelog, https://github.com/Scaffoldic/forgesight/blob/main/docs/releases/v0.1.md
9
+ Author: kjoshi
10
+ License-Expression: Apache-2.0
11
+ Keywords: agent-observability,ai-agents,audit,cost,finops,genai,governance,llm,llm-observability,observability,opentelemetry,otel,telemetry,tracing
12
+ Classifier: Development Status :: 2 - Pre-Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Information Technology
15
+ Classifier: License :: OSI Approved :: Apache Software License
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: System :: Monitoring
22
+ Classifier: Typing :: Typed
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: forgesight-core
25
+ Provides-Extra: adapters-crewai
26
+ Requires-Dist: forgesight-adapters-crewai[crewai]~=0.1.0; extra == 'adapters-crewai'
27
+ Provides-Extra: adapters-langgraph
28
+ Requires-Dist: forgesight-adapters-langgraph~=0.1.0; extra == 'adapters-langgraph'
29
+ Provides-Extra: all
30
+ Requires-Dist: forgesight-adapters-langgraph~=0.1.0; extra == 'all'
31
+ Requires-Dist: forgesight-audit~=0.1.0; extra == 'all'
32
+ Requires-Dist: forgesight-clickhouse~=0.1.0; extra == 'all'
33
+ Requires-Dist: forgesight-datadog~=0.1.0; extra == 'all'
34
+ Requires-Dist: forgesight-eval~=0.1.0; extra == 'all'
35
+ Requires-Dist: forgesight-fastapi~=0.1.0; extra == 'all'
36
+ Requires-Dist: forgesight-github~=0.1.0; extra == 'all'
37
+ Requires-Dist: forgesight-governance~=0.1.0; extra == 'all'
38
+ Requires-Dist: forgesight-langfuse~=0.1.0; extra == 'all'
39
+ Requires-Dist: forgesight-mcp~=0.1.0; extra == 'all'
40
+ Requires-Dist: forgesight-otel~=0.1.0; extra == 'all'
41
+ Requires-Dist: forgesight-prometheus~=0.1.0; extra == 'all'
42
+ Requires-Dist: forgesight-registry~=0.1.0; extra == 'all'
43
+ Provides-Extra: audit
44
+ Requires-Dist: forgesight-audit~=0.1.0; extra == 'audit'
45
+ Provides-Extra: clickhouse
46
+ Requires-Dist: forgesight-clickhouse~=0.1.0; extra == 'clickhouse'
47
+ Provides-Extra: datadog
48
+ Requires-Dist: forgesight-datadog~=0.1.0; extra == 'datadog'
49
+ Provides-Extra: eval
50
+ Requires-Dist: forgesight-eval~=0.1.0; extra == 'eval'
51
+ Provides-Extra: fastapi
52
+ Requires-Dist: forgesight-fastapi~=0.1.0; extra == 'fastapi'
53
+ Provides-Extra: github
54
+ Requires-Dist: forgesight-github~=0.1.0; extra == 'github'
55
+ Provides-Extra: governance
56
+ Requires-Dist: forgesight-governance~=0.1.0; extra == 'governance'
57
+ Provides-Extra: langfuse
58
+ Requires-Dist: forgesight-langfuse~=0.1.0; extra == 'langfuse'
59
+ Provides-Extra: mcp
60
+ Requires-Dist: forgesight-mcp~=0.1.0; extra == 'mcp'
61
+ Provides-Extra: otel
62
+ Requires-Dist: forgesight-otel~=0.1.0; extra == 'otel'
63
+ Provides-Extra: prometheus
64
+ Requires-Dist: forgesight-prometheus~=0.1.0; extra == 'prometheus'
65
+ Provides-Extra: registry
66
+ Requires-Dist: forgesight-registry~=0.1.0; extra == 'registry'
67
+ Description-Content-Type: text/markdown
68
+
69
+ # ForgeSight
70
+
71
+ **Instrument any AI agent in a few lines — then ship traces, cost, metrics, evals, budgets,
72
+ and a tamper-evident audit trail to any backend by changing one line of config.
73
+ OpenTelemetry-first. Vendor-neutral. Never an agent-code change.**
74
+
75
+ [![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/Scaffoldic/forgesight/blob/main/LICENSE)
76
+ [![Python](https://img.shields.io/badge/python-3.11_|_3.12_|_3.13-blue.svg)](https://pypi.org/project/forgesight/)
77
+
78
+ ▶️ **[See the 30-second demo](https://github.com/Scaffoldic/forgesight#forgesight)** — instrument
79
+ an agent and watch the trace, cost, and a verified tamper-evident audit trail appear.
80
+
81
+ `forgesight` is the batteries-included facade — the package most people install.
82
+
83
+ ```bash
84
+ pip install "forgesight[otel]"
85
+ ```
86
+
87
+ ```python
88
+ import forgesight
89
+ from forgesight import telemetry
90
+
91
+ forgesight.configure(exporters=["otel"]) # pick a backend by name — that's it
92
+
93
+ with telemetry.agent_run("pr-reviewer", version="2.1.0", metadata={"team": "platform"}) as run:
94
+ with run.llm_call("anthropic", "claude-sonnet-4-5") as call:
95
+ resp = await client.messages.create(...)
96
+ call.record_usage(input=resp.usage.input_tokens, output=resp.usage.output_tokens)
97
+ with run.tool_call("github_get_diff"):
98
+ diff = gh.get_diff(pr)
99
+ ```
100
+
101
+ Cost, token usage, trace nesting, metrics, and multi-backend fan-out come for free. Swap
102
+ `otel` → `langfuse`, `datadog`, `clickhouse`, `prometheus` — the agent code never moves.
103
+
104
+ ## What you get
105
+
106
+ - **🔌 Vendor-neutral.** The core depends on *no* backend or model-provider SDK. Backends are
107
+ packages you install and select by config.
108
+ - **📐 OpenTelemetry-first.** GenAI semantic conventions, so any OTLP backend works with no
109
+ dedicated package.
110
+ - **💰 Cost built in.** Token usage → USD via a pluggable pricing table — the same number
111
+ everywhere — plus live attribution by team and pre-call budget projection.
112
+ - **🚦 Non-blocking & fault-isolated.** Export runs on a background worker; a backend outage
113
+ never breaks a run.
114
+ - **🔒 Secure by default.** Content capture is opt-in; redaction runs before export.
115
+ - **🧾 Accountability.** A tamper-evident, hash-chained **audit trail** with a compliance
116
+ query/export surface.
117
+
118
+ ## Install backends & integrations as extras
119
+
120
+ ```bash
121
+ pip install "forgesight[otel]" # one backend (OTLP → any OTel platform)
122
+ pip install "forgesight[otel,langfuse,datadog]" # several
123
+ pip install "forgesight[all]" # everything except the heavy CrewAI tree
124
+ ```
125
+
126
+ Extras: `otel` · `prometheus` · `langfuse` · `clickhouse` · `datadog` · `mcp` · `fastapi` ·
127
+ `github` · `governance` · `eval` · `registry` · `audit` · `adapters-langgraph` ·
128
+ `adapters-crewai`. Installing a package *enables* a backend; config *selects* it.
129
+
130
+ ## Docs
131
+
132
+ - **[README & guides](https://github.com/Scaffoldic/forgesight)** — full docs, playbooks, runbooks
133
+ - **[Quick start](https://github.com/Scaffoldic/forgesight/blob/main/docs/playbooks/01-install.md)** ·
134
+ **[Run locally with Docker](https://github.com/Scaffoldic/forgesight/blob/main/docs/playbooks/03-run-locally-with-docker.md)** ·
135
+ **[Examples](https://github.com/Scaffoldic/forgesight/tree/main/examples)**
136
+
137
+ ## License
138
+
139
+ [Apache-2.0](https://github.com/Scaffoldic/forgesight/blob/main/LICENSE)
@@ -0,0 +1,7 @@
1
+ forgesight/__init__.py,sha256=8l6ODKgmRndc6Ue58-mnY0NyDEWablJxHPp7du3zS7Q,906
2
+ forgesight/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ forgesight/testing/__init__.py,sha256=-Lb9pDx587FaI8utzsq1_RpYLsx4pEft6prEY2Go_SM,545
4
+ forgesight/testing/conformance.py,sha256=H-AC6gQ_A7Johvr58JwBapM5afQMwIcdw85idI3L69Q,463
5
+ forgesight-0.1.0.dist-info/METADATA,sha256=ehp1DEREox5uc6mJj9DyzFQdRXrlNewuEuxGPdiGgNo,6805
6
+ forgesight-0.1.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
7
+ forgesight-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any