continuous-intelligence-layer 0.1.1__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.
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/PACKAGE_README.md +3 -1
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/PKG-INFO +4 -2
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/__init__.py +1 -1
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/anthropic/init.py +14 -22
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/crewai/init.py +14 -22
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/langgraph/init.py +16 -25
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/openai/init.py +14 -22
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/pyproject.toml +1 -1
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/.gitignore +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/LICENSE +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/_core/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/_core/exporter.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/_core/graph_exporter.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/_core/utils.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/anthropic/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/anthropic/instrumentation.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/crewai/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/crewai/instrumentation.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/langgraph/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/langgraph/instrumentation.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/openai/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/continuous_intelligence_layer/openai/instrumentation.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/base_evaluator.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/crewai_input_evaluator.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/input_evaluator.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/models.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/output_evaluator.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/runner.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/tool_agent_evaluator.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/builder.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/models.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/mongo_store.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/llm_router/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/llm_router/router.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/rca_engine/__init__.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/rca_engine/incident_report.py +0 -0
- {continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/rca_engine/rca_engine.py +0 -0
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/PACKAGE_README.md
RENAMED
|
@@ -55,7 +55,9 @@ framework's `init()` shares this same signature and return contract.
|
|
|
55
55
|
| `evaluation_provider` | `"openai"` | Provider for the evaluator/RCA LLM |
|
|
56
56
|
| `run_evaluations` | `True` | Run Input/Output/Tool evaluators + RCA automatically after each trace |
|
|
57
57
|
| `session_id` | auto-generated | Groups multiple runs into one conversation/session |
|
|
58
|
-
|
|
58
|
+
|
|
59
|
+
Trace data is always POSTed to your API's `/traces/ingest` — the SDK never
|
|
60
|
+
writes to a database directly from the agent's machine.
|
|
59
61
|
|
|
60
62
|
Trace data is only sent at process **shutdown**, not per-span in real time —
|
|
61
63
|
make sure your process exits normally (or call the framework's shutdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: continuous-intelligence-layer
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Multi-Agent Intelligent Validation & RCA Framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/Jugal-lachhwani/Multi_agent_intelligence_layer
|
|
6
6
|
Project-URL: Repository, https://github.com/Jugal-lachhwani/Multi_agent_intelligence_layer
|
|
@@ -120,7 +120,9 @@ framework's `init()` shares this same signature and return contract.
|
|
|
120
120
|
| `evaluation_provider` | `"openai"` | Provider for the evaluator/RCA LLM |
|
|
121
121
|
| `run_evaluations` | `True` | Run Input/Output/Tool evaluators + RCA automatically after each trace |
|
|
122
122
|
| `session_id` | auto-generated | Groups multiple runs into one conversation/session |
|
|
123
|
-
|
|
123
|
+
|
|
124
|
+
Trace data is always POSTed to your API's `/traces/ingest` — the SDK never
|
|
125
|
+
writes to a database directly from the agent's machine.
|
|
124
126
|
|
|
125
127
|
Trace data is only sent at process **shutdown**, not per-span in real time —
|
|
126
128
|
make sure your process exits normally (or call the framework's shutdown
|
|
@@ -52,7 +52,6 @@ def init(
|
|
|
52
52
|
service_name: str = "continuous-intelligence-layer",
|
|
53
53
|
execution_id: str | None = None,
|
|
54
54
|
session_id: str | None = None,
|
|
55
|
-
store: str | None = "mongodb",
|
|
56
55
|
write_jsonl: bool = False,
|
|
57
56
|
verbose: bool = True,
|
|
58
57
|
base_url: str = "http://localhost:8080",
|
|
@@ -78,10 +77,9 @@ def init(
|
|
|
78
77
|
runs.
|
|
79
78
|
write_jsonl :
|
|
80
79
|
If True, also append every span to a local JSONL file at
|
|
81
|
-
``output_path``. Defaults to False
|
|
82
|
-
is the
|
|
83
|
-
opt-in local debug/backup mechanism.
|
|
84
|
-
``store`` is not "mongodb" (otherwise nothing would be persisted).
|
|
80
|
+
``output_path``. Defaults to False — MongoDB (via the API's
|
|
81
|
+
``/traces/ingest``) is always the source of truth; JSONL is only an
|
|
82
|
+
opt-in local debug/backup mechanism.
|
|
85
83
|
service_name :
|
|
86
84
|
An arbitrary label written to every span as ``service.name``.
|
|
87
85
|
Useful when you have multiple agents writing to the same file.
|
|
@@ -91,9 +89,6 @@ def init(
|
|
|
91
89
|
``execution_id``, so you can filter a single run later.
|
|
92
90
|
session_id :
|
|
93
91
|
Identifier for the conversational session/thread.
|
|
94
|
-
store :
|
|
95
|
-
Optional. If set to "mongodb", also buffers spans and saves them to
|
|
96
|
-
MongoDB on shutdown.
|
|
97
92
|
verbose :
|
|
98
93
|
Print a one-line confirmation when init succeeds.
|
|
99
94
|
run_evaluations :
|
|
@@ -129,7 +124,6 @@ def init(
|
|
|
129
124
|
session_id = session_id or str(uuid.uuid4())[:12]
|
|
130
125
|
|
|
131
126
|
# ── Step 1: Build the span exporter ─────────────────────────────────────
|
|
132
|
-
write_jsonl = write_jsonl or store != "mongodb"
|
|
133
127
|
exporter = ExecutionSpanExporter(
|
|
134
128
|
output_path=output_path,
|
|
135
129
|
execution_id=execution_id,
|
|
@@ -183,17 +177,16 @@ def init(
|
|
|
183
177
|
if write_jsonl:
|
|
184
178
|
provider.add_span_processor(SimpleSpanProcessor(exporter))
|
|
185
179
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
180
|
+
from .._core.graph_exporter import GraphSpanExporter
|
|
181
|
+
graph_exporter = GraphSpanExporter(
|
|
182
|
+
exporter,
|
|
183
|
+
session_id=session_id,
|
|
184
|
+
base_url=base_url,
|
|
185
|
+
api_key=api_key,
|
|
186
|
+
project_id=project_id,
|
|
187
|
+
run_evaluations=run_evaluations,
|
|
188
|
+
)
|
|
189
|
+
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
197
190
|
|
|
198
191
|
# ── Step 4: Set as global OTel provider ───────────────────────────────
|
|
199
192
|
trace.set_tracer_provider(provider)
|
|
@@ -205,12 +198,11 @@ def init(
|
|
|
205
198
|
_INITIALIZED = True
|
|
206
199
|
|
|
207
200
|
if verbose:
|
|
208
|
-
store_line = f" Store : MongoDB (project={service_name})\n" if store == "mongodb" else ""
|
|
209
201
|
jsonl_line = f" Output file : {output_path}\n" if write_jsonl else ""
|
|
210
202
|
print(
|
|
211
203
|
f"[continuous-intelligence-layer] ✅ Initialized\n"
|
|
212
204
|
f" Execution ID : {execution_id}\n"
|
|
213
|
-
f"{
|
|
205
|
+
f" Store : MongoDB (project={service_name})\n"
|
|
214
206
|
f"{jsonl_line}"
|
|
215
207
|
f" Service name : {service_name}"
|
|
216
208
|
)
|
|
@@ -49,7 +49,6 @@ def init(
|
|
|
49
49
|
service_name: str = "continuous-intelligence-layer",
|
|
50
50
|
execution_id: str | None = None,
|
|
51
51
|
session_id: str | None = None,
|
|
52
|
-
store: str | None = "mongodb",
|
|
53
52
|
write_jsonl: bool = False,
|
|
54
53
|
verbose: bool = True,
|
|
55
54
|
base_url: str = "http://localhost:8080",
|
|
@@ -74,10 +73,9 @@ def init(
|
|
|
74
73
|
runs.
|
|
75
74
|
write_jsonl :
|
|
76
75
|
If True, also append every span to a local JSONL file at
|
|
77
|
-
``output_path``. Defaults to False
|
|
78
|
-
is the
|
|
79
|
-
opt-in local debug/backup mechanism.
|
|
80
|
-
``store`` is not "mongodb" (otherwise nothing would be persisted).
|
|
76
|
+
``output_path``. Defaults to False — MongoDB (via the API's
|
|
77
|
+
``/traces/ingest``) is always the source of truth; JSONL is only an
|
|
78
|
+
opt-in local debug/backup mechanism.
|
|
81
79
|
service_name :
|
|
82
80
|
An arbitrary label written to every span as ``service.name``.
|
|
83
81
|
Useful when you have multiple agents writing to the same file.
|
|
@@ -87,9 +85,6 @@ def init(
|
|
|
87
85
|
``execution_id``, so you can filter a single run later.
|
|
88
86
|
session_id :
|
|
89
87
|
Identifier for the conversational session/thread.
|
|
90
|
-
store :
|
|
91
|
-
Optional. If set to "mongodb", also buffers spans and saves them to
|
|
92
|
-
MongoDB on shutdown.
|
|
93
88
|
verbose :
|
|
94
89
|
Print a one-line confirmation when init succeeds.
|
|
95
90
|
run_evaluations :
|
|
@@ -125,7 +120,6 @@ def init(
|
|
|
125
120
|
session_id = session_id or str(uuid.uuid4())[:12]
|
|
126
121
|
|
|
127
122
|
# ── Step 1: Build the span exporter ─────────────────────────────────────
|
|
128
|
-
write_jsonl = write_jsonl or store != "mongodb"
|
|
129
123
|
exporter = ExecutionSpanExporter(
|
|
130
124
|
output_path=output_path,
|
|
131
125
|
execution_id=execution_id,
|
|
@@ -179,17 +173,16 @@ def init(
|
|
|
179
173
|
if write_jsonl:
|
|
180
174
|
provider.add_span_processor(SimpleSpanProcessor(exporter))
|
|
181
175
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
176
|
+
from .._core.graph_exporter import GraphSpanExporter
|
|
177
|
+
graph_exporter = GraphSpanExporter(
|
|
178
|
+
exporter,
|
|
179
|
+
session_id=session_id,
|
|
180
|
+
base_url=base_url,
|
|
181
|
+
api_key=api_key,
|
|
182
|
+
project_id=project_id,
|
|
183
|
+
run_evaluations=run_evaluations,
|
|
184
|
+
)
|
|
185
|
+
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
193
186
|
|
|
194
187
|
# ── Step 4: Set as global OTel provider ───────────────────────────────
|
|
195
188
|
trace.set_tracer_provider(provider)
|
|
@@ -201,12 +194,11 @@ def init(
|
|
|
201
194
|
_INITIALIZED = True
|
|
202
195
|
|
|
203
196
|
if verbose:
|
|
204
|
-
store_line = f" Store : MongoDB (project={service_name})\n" if store == "mongodb" else ""
|
|
205
197
|
jsonl_line = f" Output file : {output_path}\n" if write_jsonl else ""
|
|
206
198
|
print(
|
|
207
199
|
f"[continuous-intelligence-layer] ✅ Initialized\n"
|
|
208
200
|
f" Execution ID : {execution_id}\n"
|
|
209
|
-
f"{
|
|
201
|
+
f" Store : MongoDB (project={service_name})\n"
|
|
210
202
|
f"{jsonl_line}"
|
|
211
203
|
f" Service name : {service_name}"
|
|
212
204
|
)
|
|
@@ -50,7 +50,6 @@ def init(
|
|
|
50
50
|
service_name: str = "continuous-intelligence-layer",
|
|
51
51
|
execution_id: str | None = None,
|
|
52
52
|
session_id: str | None = None,
|
|
53
|
-
store: str | None = "mongodb",
|
|
54
53
|
write_jsonl: bool = False,
|
|
55
54
|
verbose: bool = True,
|
|
56
55
|
base_url: str = "http://localhost:8080",
|
|
@@ -75,10 +74,9 @@ def init(
|
|
|
75
74
|
runs.
|
|
76
75
|
write_jsonl :
|
|
77
76
|
If True, also append every span to a local JSONL file at
|
|
78
|
-
``output_path``. Defaults to False
|
|
79
|
-
is the
|
|
80
|
-
opt-in local debug/backup mechanism.
|
|
81
|
-
``store`` is not "mongodb" (otherwise nothing would be persisted).
|
|
77
|
+
``output_path``. Defaults to False — MongoDB (via the API's
|
|
78
|
+
``/traces/ingest``) is always the source of truth; JSONL is only an
|
|
79
|
+
opt-in local debug/backup mechanism.
|
|
82
80
|
service_name :
|
|
83
81
|
An arbitrary label written to every span as ``service.name``.
|
|
84
82
|
Useful when you have multiple agents writing to the same file.
|
|
@@ -88,9 +86,6 @@ def init(
|
|
|
88
86
|
``execution_id``, so you can filter a single run later.
|
|
89
87
|
session_id :
|
|
90
88
|
Identifier for the conversational session/thread.
|
|
91
|
-
store :
|
|
92
|
-
Optional. If set to "mongodb", also buffers spans and saves them to
|
|
93
|
-
MongoDB on shutdown.
|
|
94
89
|
verbose :
|
|
95
90
|
Print a one-line confirmation when init succeeds.
|
|
96
91
|
run_evaluations :
|
|
@@ -131,11 +126,9 @@ def init(
|
|
|
131
126
|
# parse a ReadableSpan into a flat dict (via ._extract). GraphSpanExporter
|
|
132
127
|
# reuses that parsing logic to build the MongoDB graph, so this object is
|
|
133
128
|
# always constructed — but it's only wired up to actually *write* a JSONL
|
|
134
|
-
# file to disk if write_jsonl is True.
|
|
135
|
-
# the
|
|
136
|
-
# there'd be nowhere else for spans to go, so JSONL is forced on.
|
|
129
|
+
# file to disk if write_jsonl is True. MongoDB (via the API) is always
|
|
130
|
+
# the source of truth; JSONL is opt-in local debug output only.
|
|
137
131
|
#
|
|
138
|
-
write_jsonl = write_jsonl or store != "mongodb"
|
|
139
132
|
exporter = ExecutionSpanExporter(
|
|
140
133
|
output_path=output_path,
|
|
141
134
|
execution_id=execution_id,
|
|
@@ -194,17 +187,16 @@ def init(
|
|
|
194
187
|
if write_jsonl:
|
|
195
188
|
provider.add_span_processor(SimpleSpanProcessor(exporter))
|
|
196
189
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
190
|
+
from .._core.graph_exporter import GraphSpanExporter
|
|
191
|
+
graph_exporter = GraphSpanExporter(
|
|
192
|
+
exporter,
|
|
193
|
+
session_id=session_id,
|
|
194
|
+
base_url=base_url,
|
|
195
|
+
api_key=api_key,
|
|
196
|
+
project_id=project_id,
|
|
197
|
+
run_evaluations=run_evaluations,
|
|
198
|
+
)
|
|
199
|
+
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
208
200
|
|
|
209
201
|
# ── Step 4: Set as global OTel provider ───────────────────────────────
|
|
210
202
|
#
|
|
@@ -226,12 +218,11 @@ def init(
|
|
|
226
218
|
_INITIALIZED = True
|
|
227
219
|
|
|
228
220
|
if verbose:
|
|
229
|
-
store_line = f" Store : MongoDB (project={service_name})\n" if store == "mongodb" else ""
|
|
230
221
|
jsonl_line = f" Output file : {output_path}\n" if write_jsonl else ""
|
|
231
222
|
print(
|
|
232
223
|
f"[continuous-intelligence-layer] ✅ Initialized\n"
|
|
233
224
|
f" Execution ID : {execution_id}\n"
|
|
234
|
-
f"{
|
|
225
|
+
f" Store : MongoDB (project={service_name})\n"
|
|
235
226
|
f"{jsonl_line}"
|
|
236
227
|
f" Service name : {service_name}"
|
|
237
228
|
)
|
|
@@ -50,7 +50,6 @@ def init(
|
|
|
50
50
|
service_name: str = "continuous-intelligence-layer",
|
|
51
51
|
execution_id: str | None = None,
|
|
52
52
|
session_id: str | None = None,
|
|
53
|
-
store: str | None = "mongodb",
|
|
54
53
|
write_jsonl: bool = False,
|
|
55
54
|
verbose: bool = True,
|
|
56
55
|
base_url: str = "http://localhost:8080",
|
|
@@ -75,10 +74,9 @@ def init(
|
|
|
75
74
|
runs.
|
|
76
75
|
write_jsonl :
|
|
77
76
|
If True, also append every span to a local JSONL file at
|
|
78
|
-
``output_path``. Defaults to False
|
|
79
|
-
is the
|
|
80
|
-
opt-in local debug/backup mechanism.
|
|
81
|
-
``store`` is not "mongodb" (otherwise nothing would be persisted).
|
|
77
|
+
``output_path``. Defaults to False — MongoDB (via the API's
|
|
78
|
+
``/traces/ingest``) is always the source of truth; JSONL is only an
|
|
79
|
+
opt-in local debug/backup mechanism.
|
|
82
80
|
service_name :
|
|
83
81
|
An arbitrary label written to every span as ``service.name``.
|
|
84
82
|
Useful when you have multiple agents writing to the same file.
|
|
@@ -88,9 +86,6 @@ def init(
|
|
|
88
86
|
``execution_id``, so you can filter a single run later.
|
|
89
87
|
session_id :
|
|
90
88
|
Identifier for the conversational session/thread.
|
|
91
|
-
store :
|
|
92
|
-
Optional. If set to "mongodb", also buffers spans and saves them to
|
|
93
|
-
MongoDB on shutdown.
|
|
94
89
|
verbose :
|
|
95
90
|
Print a one-line confirmation when init succeeds.
|
|
96
91
|
run_evaluations :
|
|
@@ -126,7 +121,6 @@ def init(
|
|
|
126
121
|
session_id = session_id or str(uuid.uuid4())[:12]
|
|
127
122
|
|
|
128
123
|
# ── Step 1: Build the span exporter ─────────────────────────────────────
|
|
129
|
-
write_jsonl = write_jsonl or store != "mongodb"
|
|
130
124
|
exporter = ExecutionSpanExporter(
|
|
131
125
|
output_path=output_path,
|
|
132
126
|
execution_id=execution_id,
|
|
@@ -180,17 +174,16 @@ def init(
|
|
|
180
174
|
if write_jsonl:
|
|
181
175
|
provider.add_span_processor(SimpleSpanProcessor(exporter))
|
|
182
176
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
177
|
+
from .._core.graph_exporter import GraphSpanExporter
|
|
178
|
+
graph_exporter = GraphSpanExporter(
|
|
179
|
+
exporter,
|
|
180
|
+
session_id=session_id,
|
|
181
|
+
base_url=base_url,
|
|
182
|
+
api_key=api_key,
|
|
183
|
+
project_id=project_id,
|
|
184
|
+
run_evaluations=run_evaluations,
|
|
185
|
+
)
|
|
186
|
+
provider.add_span_processor(SimpleSpanProcessor(graph_exporter))
|
|
194
187
|
|
|
195
188
|
# ── Step 4: Set as global OTel provider ───────────────────────────────
|
|
196
189
|
trace.set_tracer_provider(provider)
|
|
@@ -202,12 +195,11 @@ def init(
|
|
|
202
195
|
_INITIALIZED = True
|
|
203
196
|
|
|
204
197
|
if verbose:
|
|
205
|
-
store_line = f" Store : MongoDB (project={service_name})\n" if store == "mongodb" else ""
|
|
206
198
|
jsonl_line = f" Output file : {output_path}\n" if write_jsonl else ""
|
|
207
199
|
print(
|
|
208
200
|
f"[continuous-intelligence-layer] ✅ Initialized\n"
|
|
209
201
|
f" Execution ID : {execution_id}\n"
|
|
210
|
-
f"{
|
|
202
|
+
f" Store : MongoDB (project={service_name})\n"
|
|
211
203
|
f"{jsonl_line}"
|
|
212
204
|
f" Service name : {service_name}"
|
|
213
205
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/evaluators/runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/builder.py
RENAMED
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/graph_builder/models.py
RENAMED
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/llm_router/__init__.py
RENAMED
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/llm_router/router.py
RENAMED
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/rca_engine/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{continuous_intelligence_layer-0.1.1 → continuous_intelligence_layer-0.1.2}/rca_engine/rca_engine.py
RENAMED
|
File without changes
|