risicare 0.1.5 → 0.2.0

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 (93) hide show
  1. package/dist/frameworks/instructor.cjs +178 -0
  2. package/dist/frameworks/instructor.cjs.map +1 -0
  3. package/dist/frameworks/instructor.d.cts +28 -0
  4. package/dist/frameworks/instructor.d.ts +28 -0
  5. package/dist/frameworks/instructor.js +151 -0
  6. package/dist/frameworks/instructor.js.map +1 -0
  7. package/dist/frameworks/langchain.cjs +262 -0
  8. package/dist/frameworks/langchain.cjs.map +1 -0
  9. package/dist/frameworks/langchain.d.cts +45 -0
  10. package/dist/frameworks/langchain.d.ts +45 -0
  11. package/dist/frameworks/langchain.js +235 -0
  12. package/dist/frameworks/langchain.js.map +1 -0
  13. package/dist/frameworks/langgraph.cjs +296 -0
  14. package/dist/frameworks/langgraph.cjs.map +1 -0
  15. package/dist/frameworks/langgraph.d.cts +28 -0
  16. package/dist/frameworks/langgraph.d.ts +28 -0
  17. package/dist/frameworks/langgraph.js +269 -0
  18. package/dist/frameworks/langgraph.js.map +1 -0
  19. package/dist/frameworks/llamaindex.cjs +239 -0
  20. package/dist/frameworks/llamaindex.cjs.map +1 -0
  21. package/dist/frameworks/llamaindex.d.cts +55 -0
  22. package/dist/frameworks/llamaindex.d.ts +55 -0
  23. package/dist/frameworks/llamaindex.js +212 -0
  24. package/dist/frameworks/llamaindex.js.map +1 -0
  25. package/dist/index.cjs +407 -4
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +96 -6
  28. package/dist/index.d.ts +96 -6
  29. package/dist/index.js +400 -4
  30. package/dist/index.js.map +1 -1
  31. package/dist/providers/anthropic/index.cjs +22 -0
  32. package/dist/providers/anthropic/index.cjs.map +1 -1
  33. package/dist/providers/anthropic/index.js +22 -0
  34. package/dist/providers/anthropic/index.js.map +1 -1
  35. package/dist/providers/bedrock/index.cjs +334 -0
  36. package/dist/providers/bedrock/index.cjs.map +1 -0
  37. package/dist/providers/bedrock/index.d.cts +37 -0
  38. package/dist/providers/bedrock/index.d.ts +37 -0
  39. package/dist/providers/bedrock/index.js +307 -0
  40. package/dist/providers/bedrock/index.js.map +1 -0
  41. package/dist/providers/cerebras/index.cjs +282 -0
  42. package/dist/providers/cerebras/index.cjs.map +1 -0
  43. package/dist/providers/cerebras/index.d.cts +24 -0
  44. package/dist/providers/cerebras/index.d.ts +24 -0
  45. package/dist/providers/cerebras/index.js +255 -0
  46. package/dist/providers/cerebras/index.js.map +1 -0
  47. package/dist/providers/cohere/index.cjs +347 -0
  48. package/dist/providers/cohere/index.cjs.map +1 -0
  49. package/dist/providers/cohere/index.d.cts +24 -0
  50. package/dist/providers/cohere/index.d.ts +24 -0
  51. package/dist/providers/cohere/index.js +320 -0
  52. package/dist/providers/cohere/index.js.map +1 -0
  53. package/dist/providers/google/index.cjs +337 -0
  54. package/dist/providers/google/index.cjs.map +1 -0
  55. package/dist/providers/google/index.d.cts +25 -0
  56. package/dist/providers/google/index.d.ts +25 -0
  57. package/dist/providers/google/index.js +310 -0
  58. package/dist/providers/google/index.js.map +1 -0
  59. package/dist/providers/groq/index.cjs +282 -0
  60. package/dist/providers/groq/index.cjs.map +1 -0
  61. package/dist/providers/groq/index.d.cts +23 -0
  62. package/dist/providers/groq/index.d.ts +23 -0
  63. package/dist/providers/groq/index.js +255 -0
  64. package/dist/providers/groq/index.js.map +1 -0
  65. package/dist/providers/huggingface/index.cjs +289 -0
  66. package/dist/providers/huggingface/index.cjs.map +1 -0
  67. package/dist/providers/huggingface/index.d.cts +24 -0
  68. package/dist/providers/huggingface/index.d.ts +24 -0
  69. package/dist/providers/huggingface/index.js +262 -0
  70. package/dist/providers/huggingface/index.js.map +1 -0
  71. package/dist/providers/mistral/index.cjs +336 -0
  72. package/dist/providers/mistral/index.cjs.map +1 -0
  73. package/dist/providers/mistral/index.d.cts +24 -0
  74. package/dist/providers/mistral/index.d.ts +24 -0
  75. package/dist/providers/mistral/index.js +309 -0
  76. package/dist/providers/mistral/index.js.map +1 -0
  77. package/dist/providers/ollama/index.cjs +376 -0
  78. package/dist/providers/ollama/index.cjs.map +1 -0
  79. package/dist/providers/ollama/index.d.cts +28 -0
  80. package/dist/providers/ollama/index.d.ts +28 -0
  81. package/dist/providers/ollama/index.js +349 -0
  82. package/dist/providers/ollama/index.js.map +1 -0
  83. package/dist/providers/openai/index.cjs +31 -1
  84. package/dist/providers/openai/index.cjs.map +1 -1
  85. package/dist/providers/openai/index.js +31 -1
  86. package/dist/providers/openai/index.js.map +1 -1
  87. package/dist/providers/together/index.cjs +275 -0
  88. package/dist/providers/together/index.cjs.map +1 -0
  89. package/dist/providers/together/index.d.cts +24 -0
  90. package/dist/providers/together/index.d.ts +24 -0
  91. package/dist/providers/together/index.js +248 -0
  92. package/dist/providers/together/index.js.map +1 -0
  93. package/package.json +124 -2
package/dist/index.js CHANGED
@@ -113,19 +113,39 @@ var SemanticPhase = /* @__PURE__ */ ((SemanticPhase2) => {
113
113
  var AgentRole = /* @__PURE__ */ ((AgentRole2) => {
114
114
  AgentRole2["ORCHESTRATOR"] = "orchestrator";
115
115
  AgentRole2["WORKER"] = "worker";
116
- AgentRole2["REVIEWER"] = "reviewer";
116
+ AgentRole2["SUPERVISOR"] = "supervisor";
117
+ AgentRole2["SPECIALIST"] = "specialist";
118
+ AgentRole2["ROUTER"] = "router";
119
+ AgentRole2["AGGREGATOR"] = "aggregator";
120
+ AgentRole2["BROADCASTER"] = "broadcaster";
121
+ AgentRole2["CRITIC"] = "critic";
117
122
  AgentRole2["PLANNER"] = "planner";
118
123
  AgentRole2["EXECUTOR"] = "executor";
119
- AgentRole2["CRITIC"] = "critic";
124
+ AgentRole2["RETRIEVER"] = "retriever";
125
+ AgentRole2["VALIDATOR"] = "validator";
126
+ AgentRole2["REVIEWER"] = "reviewer";
120
127
  AgentRole2["CUSTOM"] = "custom";
121
128
  return AgentRole2;
122
129
  })(AgentRole || {});
123
130
  var MessageType = /* @__PURE__ */ ((MessageType2) => {
124
- MessageType2["REQUEST"] = "request";
131
+ MessageType2["TASK"] = "task";
132
+ MessageType2["RESULT"] = "result";
133
+ MessageType2["STATUS"] = "status";
134
+ MessageType2["ERROR"] = "error";
135
+ MessageType2["QUERY"] = "query";
125
136
  MessageType2["RESPONSE"] = "response";
137
+ MessageType2["BROADCAST"] = "broadcast";
138
+ MessageType2["DIRECT"] = "direct";
139
+ MessageType2["PROPOSAL"] = "proposal";
140
+ MessageType2["VOTE"] = "vote";
141
+ MessageType2["CONSENSUS"] = "consensus";
142
+ MessageType2["CONFLICT"] = "conflict";
143
+ MessageType2["HEARTBEAT"] = "heartbeat";
144
+ MessageType2["SHUTDOWN"] = "shutdown";
145
+ MessageType2["HANDOFF"] = "handoff";
146
+ MessageType2["REQUEST"] = "request";
126
147
  MessageType2["DELEGATE"] = "delegate";
127
148
  MessageType2["COORDINATE"] = "coordinate";
128
- MessageType2["BROADCAST"] = "broadcast";
129
149
  return MessageType2;
130
150
  })(MessageType || {});
131
151
 
@@ -1361,9 +1381,380 @@ function maybeCleanup() {
1361
1381
  }
1362
1382
  }
1363
1383
  }
1384
+
1385
+ // src/streaming.ts
1386
+ async function* tracedStream(source, options) {
1387
+ const opts = typeof options === "string" ? { name: options } : options;
1388
+ const tracer = getTracer2();
1389
+ if (!tracer || !tracer.enabled) {
1390
+ yield* source;
1391
+ return;
1392
+ }
1393
+ const span = tracer.createSpan({
1394
+ name: opts.name,
1395
+ kind: opts.kind ?? "internal" /* INTERNAL */,
1396
+ attributes: opts.attributes
1397
+ });
1398
+ let chunkCount = 0;
1399
+ try {
1400
+ for await (const chunk of source) {
1401
+ chunkCount++;
1402
+ yield chunk;
1403
+ }
1404
+ span.setAttribute("stream.chunk_count", chunkCount);
1405
+ span.setAttribute("stream.completed", true);
1406
+ } catch (error) {
1407
+ span.setAttribute("stream.chunk_count", chunkCount);
1408
+ span.setAttribute("stream.completed", false);
1409
+ span.recordException(error instanceof Error ? error : String(error));
1410
+ throw error;
1411
+ } finally {
1412
+ span.end();
1413
+ }
1414
+ }
1415
+
1416
+ // src/frameworks/langchain.ts
1417
+ var RisicareCallbackHandler = class {
1418
+ name = "RisicareCallbackHandler";
1419
+ _spans = /* @__PURE__ */ new Map();
1420
+ // ── Chain lifecycle ────────────────────────────────────────────────────────
1421
+ handleChainStart(chain, _inputs, runId, parentRunId) {
1422
+ const tracer = getTracer2();
1423
+ if (!tracer?.enabled) return;
1424
+ const parentEntry = parentRunId ? this._spans.get(parentRunId) : void 0;
1425
+ const span = tracer.createSpan({
1426
+ name: chain.name || chain._type || "chain",
1427
+ kind: "internal" /* INTERNAL */,
1428
+ parentSpanId: parentEntry?.span.spanId,
1429
+ traceId: parentEntry?.span.traceId,
1430
+ attributes: {
1431
+ "framework": "langchain",
1432
+ "langchain.run_id": runId,
1433
+ ...parentRunId ? { "langchain.parent_run_id": parentRunId } : {},
1434
+ ...chain._type ? { "langchain.chain_type": chain._type } : {}
1435
+ }
1436
+ });
1437
+ this._spans.set(runId, { span, startTime: Date.now() });
1438
+ }
1439
+ handleChainEnd(_outputs, runId) {
1440
+ const entry = this._spans.get(runId);
1441
+ if (!entry) return;
1442
+ entry.span.setAttribute("gen_ai.latency_ms", Date.now() - entry.startTime);
1443
+ entry.span.end();
1444
+ this._spans.delete(runId);
1445
+ }
1446
+ handleChainError(error, runId) {
1447
+ const entry = this._spans.get(runId);
1448
+ if (!entry) return;
1449
+ entry.span.recordException(error);
1450
+ entry.span.end();
1451
+ this._spans.delete(runId);
1452
+ }
1453
+ // ── LLM lifecycle ─────────────────────────────────────────────────────────
1454
+ handleLLMStart(llm, _prompts, runId, parentRunId) {
1455
+ const tracer = getTracer2();
1456
+ if (!tracer?.enabled) return;
1457
+ const parentEntry = parentRunId ? this._spans.get(parentRunId) : void 0;
1458
+ const span = tracer.createSpan({
1459
+ name: llm.name || llm._type || "llm",
1460
+ kind: "llm_call" /* LLM_CALL */,
1461
+ parentSpanId: parentEntry?.span.spanId,
1462
+ traceId: parentEntry?.span.traceId,
1463
+ attributes: {
1464
+ "framework": "langchain",
1465
+ "langchain.run_id": runId,
1466
+ "gen_ai.system": "langchain",
1467
+ "gen_ai.prompt.count": _prompts.length
1468
+ }
1469
+ });
1470
+ this._spans.set(runId, { span, startTime: Date.now() });
1471
+ }
1472
+ handleLLMEnd(output, runId) {
1473
+ const entry = this._spans.get(runId);
1474
+ if (!entry) return;
1475
+ const usage = output.llmOutput?.tokenUsage;
1476
+ if (usage) {
1477
+ entry.span.setLlmFields({
1478
+ promptTokens: usage.promptTokens ?? usage.prompt_tokens,
1479
+ completionTokens: usage.completionTokens ?? usage.completion_tokens,
1480
+ totalTokens: usage.totalTokens ?? usage.total_tokens
1481
+ });
1482
+ }
1483
+ const model = output.llmOutput?.model ?? output.llmOutput?.modelName;
1484
+ if (model) {
1485
+ entry.span.setLlmFields({ model });
1486
+ }
1487
+ entry.span.setAttribute("gen_ai.latency_ms", Date.now() - entry.startTime);
1488
+ entry.span.end();
1489
+ this._spans.delete(runId);
1490
+ }
1491
+ handleLLMError(error, runId) {
1492
+ const entry = this._spans.get(runId);
1493
+ if (!entry) return;
1494
+ entry.span.recordException(error);
1495
+ entry.span.end();
1496
+ this._spans.delete(runId);
1497
+ }
1498
+ // ── Tool lifecycle ────────────────────────────────────────────────────────
1499
+ handleToolStart(tool, input, runId, parentRunId) {
1500
+ const tracer = getTracer2();
1501
+ if (!tracer?.enabled) return;
1502
+ const parentEntry = parentRunId ? this._spans.get(parentRunId) : void 0;
1503
+ const span = tracer.createSpan({
1504
+ name: tool.name || "tool",
1505
+ kind: "tool_call" /* TOOL_CALL */,
1506
+ parentSpanId: parentEntry?.span.spanId,
1507
+ traceId: parentEntry?.span.traceId,
1508
+ attributes: {
1509
+ "framework": "langchain",
1510
+ "langchain.run_id": runId,
1511
+ "tool.name": tool.name || "unknown",
1512
+ "tool.input_length": input?.length ?? 0
1513
+ }
1514
+ });
1515
+ this._spans.set(runId, { span, startTime: Date.now() });
1516
+ }
1517
+ handleToolEnd(output, runId) {
1518
+ const entry = this._spans.get(runId);
1519
+ if (!entry) return;
1520
+ entry.span.setAttribute("tool.output_length", output?.length ?? 0);
1521
+ entry.span.setAttribute("gen_ai.latency_ms", Date.now() - entry.startTime);
1522
+ entry.span.end();
1523
+ this._spans.delete(runId);
1524
+ }
1525
+ handleToolError(error, runId) {
1526
+ const entry = this._spans.get(runId);
1527
+ if (!entry) return;
1528
+ entry.span.recordException(error);
1529
+ entry.span.end();
1530
+ this._spans.delete(runId);
1531
+ }
1532
+ // ── Retriever lifecycle ───────────────────────────────────────────────────
1533
+ handleRetrieverStart(retriever, _query, runId, parentRunId) {
1534
+ const tracer = getTracer2();
1535
+ if (!tracer?.enabled) return;
1536
+ const parentEntry = parentRunId ? this._spans.get(parentRunId) : void 0;
1537
+ const span = tracer.createSpan({
1538
+ name: retriever.name || "retriever",
1539
+ kind: "retrieval" /* RETRIEVAL */,
1540
+ parentSpanId: parentEntry?.span.spanId,
1541
+ traceId: parentEntry?.span.traceId,
1542
+ attributes: {
1543
+ "framework": "langchain",
1544
+ "langchain.run_id": runId
1545
+ }
1546
+ });
1547
+ this._spans.set(runId, { span, startTime: Date.now() });
1548
+ }
1549
+ handleRetrieverEnd(documents, runId) {
1550
+ const entry = this._spans.get(runId);
1551
+ if (!entry) return;
1552
+ entry.span.setAttribute(
1553
+ "retriever.document_count",
1554
+ documents?.length ?? 0
1555
+ );
1556
+ entry.span.setAttribute("gen_ai.latency_ms", Date.now() - entry.startTime);
1557
+ entry.span.end();
1558
+ this._spans.delete(runId);
1559
+ }
1560
+ };
1561
+
1562
+ // src/frameworks/langgraph.ts
1563
+ function instrumentLangGraph(graph) {
1564
+ return new Proxy(graph, {
1565
+ get(target, prop, receiver) {
1566
+ const value = Reflect.get(target, prop, receiver);
1567
+ if ((prop === "invoke" || prop === "stream") && typeof value === "function") {
1568
+ return function patchedMethod(...args) {
1569
+ const tracer = getTracer2();
1570
+ if (!tracer?.enabled) return value.apply(this, args);
1571
+ return tracer.startSpan(
1572
+ {
1573
+ name: `langgraph.${String(prop)}`,
1574
+ kind: "agent" /* AGENT */,
1575
+ attributes: { framework: "langgraph" }
1576
+ },
1577
+ (_span) => {
1578
+ const config = args[1] ?? {};
1579
+ const callbacks = config.callbacks ?? [];
1580
+ callbacks.push(new RisicareCallbackHandler());
1581
+ args[1] = { ...config, callbacks };
1582
+ const result = value.apply(this, args);
1583
+ if (result && typeof result.then === "function") {
1584
+ return result.then((r) => r);
1585
+ }
1586
+ return result;
1587
+ }
1588
+ );
1589
+ };
1590
+ }
1591
+ return value;
1592
+ }
1593
+ });
1594
+ }
1595
+
1596
+ // src/frameworks/instructor.ts
1597
+ function patchInstructor(client) {
1598
+ return new Proxy(client, {
1599
+ get(target, prop, receiver) {
1600
+ const value = Reflect.get(target, prop, receiver);
1601
+ if (prop === "create" && typeof value === "function") {
1602
+ return function patchedCreate(...args) {
1603
+ const tracer = getTracer2();
1604
+ if (!tracer?.enabled) {
1605
+ debug(
1606
+ "Tracer not initialized \u2014 call init() before using patchInstructor()"
1607
+ );
1608
+ return value.apply(this, args);
1609
+ }
1610
+ const params = args[0] ?? {};
1611
+ const responseModel = params.response_model ?? params.responseModel;
1612
+ let modelName = "unknown";
1613
+ if (responseModel && typeof responseModel === "function") {
1614
+ modelName = responseModel.name || "unknown";
1615
+ } else if (responseModel && typeof responseModel === "object") {
1616
+ modelName = responseModel.name ?? responseModel.description ?? "schema";
1617
+ } else if (typeof responseModel === "string") {
1618
+ modelName = responseModel;
1619
+ }
1620
+ return tracer.startSpan(
1621
+ {
1622
+ name: "instructor.create",
1623
+ kind: "llm_call" /* LLM_CALL */,
1624
+ attributes: {
1625
+ framework: "instructor",
1626
+ "framework.span_kind": "extraction",
1627
+ "instructor.response_model": modelName,
1628
+ ...params.max_retries != null ? { "instructor.max_retries": params.max_retries } : {},
1629
+ ...params.model != null ? { "gen_ai.request.model": params.model } : {}
1630
+ }
1631
+ },
1632
+ (_span) => {
1633
+ const result = value.apply(this, args);
1634
+ if (result && typeof result.then === "function") {
1635
+ return result.then((r) => r);
1636
+ }
1637
+ return result;
1638
+ }
1639
+ );
1640
+ };
1641
+ }
1642
+ return value;
1643
+ }
1644
+ });
1645
+ }
1646
+
1647
+ // src/context/dedup.ts
1648
+ function suppressProviderInstrumentation(fn) {
1649
+ return runWithContext({ _suppressProviderInstrumentation: true }, fn);
1650
+ }
1651
+ function isProviderInstrumentationSuppressed() {
1652
+ return getContext()._suppressProviderInstrumentation === true;
1653
+ }
1654
+
1655
+ // src/frameworks/llamaindex.ts
1656
+ var RisicareLlamaIndexHandler = class {
1657
+ _spans = /* @__PURE__ */ new Map();
1658
+ /**
1659
+ * Handle a LlamaIndex lifecycle event.
1660
+ *
1661
+ * Events follow the convention:
1662
+ * - `*.start` / `*.begin` -- component starts
1663
+ * - `*.end` / `*.complete` -- component finishes
1664
+ * - `*.error` -- component failed
1665
+ */
1666
+ onEvent(event) {
1667
+ const tracer = getTracer2();
1668
+ if (!tracer?.enabled) return;
1669
+ if (event.type.endsWith(".start") || event.type.endsWith(".begin")) {
1670
+ this._handleStart(event);
1671
+ } else if (event.type.endsWith(".end") || event.type.endsWith(".complete")) {
1672
+ this._handleEnd(event);
1673
+ } else if (event.type.endsWith(".error")) {
1674
+ this._handleError(event);
1675
+ }
1676
+ }
1677
+ /**
1678
+ * Run a function with provider instrumentation suppressed.
1679
+ *
1680
+ * LlamaIndex handler creates its own LLM spans, so provider spans
1681
+ * (patchOpenAI, patchAnthropic, etc.) should be suppressed to avoid
1682
+ * double-tracing.
1683
+ */
1684
+ withSuppression(fn) {
1685
+ return suppressProviderInstrumentation(fn);
1686
+ }
1687
+ // ── Internal event handlers ───────────────────────────────────────────────
1688
+ _handleStart(event) {
1689
+ const tracer = getTracer2();
1690
+ if (!tracer?.enabled) return;
1691
+ const componentKind = this._classifyComponent(event.type);
1692
+ const parentEntry = event.parentId ? this._spans.get(event.parentId) : void 0;
1693
+ const spanKind = componentKind === "llm" ? "llm_call" /* LLM_CALL */ : componentKind === "retrieval" ? "retrieval" /* RETRIEVAL */ : componentKind === "embedding" ? "llm_call" /* LLM_CALL */ : "internal" /* INTERNAL */;
1694
+ const span = tracer.createSpan({
1695
+ name: event.type.replace(/\.(start|begin)$/, ""),
1696
+ kind: spanKind,
1697
+ parentSpanId: parentEntry?.span.spanId,
1698
+ traceId: parentEntry?.span.traceId,
1699
+ attributes: {
1700
+ framework: "llamaindex",
1701
+ "framework.span_kind": componentKind,
1702
+ ...event.data?.model ? { "gen_ai.request.model": event.data.model } : {}
1703
+ }
1704
+ });
1705
+ this._spans.set(event.id, { span, startTime: Date.now(), componentKind });
1706
+ }
1707
+ _handleEnd(event) {
1708
+ const entry = this._spans.get(event.id);
1709
+ if (!entry) return;
1710
+ entry.span.setAttribute(
1711
+ "gen_ai.latency_ms",
1712
+ Date.now() - entry.startTime
1713
+ );
1714
+ const usage = event.data?.usage;
1715
+ if (usage) {
1716
+ entry.span.setLlmFields({
1717
+ promptTokens: usage.promptTokens ?? usage.prompt_tokens,
1718
+ completionTokens: usage.completionTokens ?? usage.completion_tokens
1719
+ });
1720
+ }
1721
+ if (event.data?.documentCount != null) {
1722
+ entry.span.setAttribute(
1723
+ "retriever.document_count",
1724
+ event.data.documentCount
1725
+ );
1726
+ }
1727
+ entry.span.end();
1728
+ this._spans.delete(event.id);
1729
+ }
1730
+ _handleError(event) {
1731
+ const entry = this._spans.get(event.id);
1732
+ if (!entry) return;
1733
+ const error = event.data?.error;
1734
+ entry.span.recordException(
1735
+ error instanceof Error ? error : String(error ?? "Unknown error")
1736
+ );
1737
+ entry.span.end();
1738
+ this._spans.delete(event.id);
1739
+ }
1740
+ /**
1741
+ * Classify a LlamaIndex event type into a component kind.
1742
+ */
1743
+ _classifyComponent(eventType) {
1744
+ const lower = eventType.toLowerCase();
1745
+ if (lower.includes("llm") || lower.includes("chat")) return "llm";
1746
+ if (lower.includes("embed")) return "embedding";
1747
+ if (lower.includes("retriev") || lower.includes("vector")) return "retrieval";
1748
+ if (lower.includes("synth") || lower.includes("response")) return "synthesis";
1749
+ if (lower.includes("query")) return "query";
1750
+ return "component";
1751
+ }
1752
+ };
1364
1753
  export {
1365
1754
  AgentRole,
1366
1755
  MessageType,
1756
+ RisicareCallbackHandler,
1757
+ RisicareLlamaIndexHandler,
1367
1758
  SemanticPhase,
1368
1759
  SpanKind,
1369
1760
  SpanStatus,
@@ -1388,12 +1779,16 @@ export {
1388
1779
  getTracer2 as getTracer,
1389
1780
  init,
1390
1781
  injectTraceContext,
1782
+ instrumentLangGraph,
1391
1783
  isEnabled,
1784
+ isProviderInstrumentationSuppressed,
1785
+ patchInstructor,
1392
1786
  registerSpan,
1393
1787
  reportError,
1394
1788
  score,
1395
1789
  session,
1396
1790
  shutdown,
1791
+ suppressProviderInstrumentation,
1397
1792
  traceAct,
1398
1793
  traceCoordinate,
1399
1794
  traceDecide,
@@ -1401,6 +1796,7 @@ export {
1401
1796
  traceMessage,
1402
1797
  traceObserve,
1403
1798
  traceThink,
1799
+ tracedStream,
1404
1800
  unregisterSpan,
1405
1801
  withAgent,
1406
1802
  withPhase,