@rodrigocoliveira/agno-react 1.1.5 → 1.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.
package/README.md CHANGED
@@ -101,7 +101,6 @@ function ChatPage() {
101
101
  />
102
102
  </AgnoChat.EmptyState>
103
103
  </AgnoChat.Messages>
104
- <AgnoChat.ToolStatus />
105
104
  <AgnoChat.ErrorBar />
106
105
  <AgnoChat.Input placeholder="Ask me anything..." />
107
106
  </AgnoChat>
@@ -337,7 +336,6 @@ function ChatPage() {
337
336
  </AgnoChat.EmptyState>
338
337
  </AgnoChat.Messages>
339
338
 
340
- <AgnoChat.ToolStatus className="bg-violet-500/5 border-violet-500/20" />
341
339
  <AgnoChat.ErrorBar className="bg-red-500/5" />
342
340
  <AgnoChat.Input
343
341
  placeholder="Ask me anything..."
@@ -358,7 +356,6 @@ function ChatPage() {
358
356
  | `AgnoChat.Messages` | Message list with auto-scroll. Accepts `userAvatar`, `assistantAvatar`, `messageItemProps`. |
359
357
  | `AgnoChat.EmptyState` | Shown when there are no messages. Place inside `Messages`. |
360
358
  | `AgnoChat.SuggestedPrompts` | Clickable prompt suggestions. Place inside `EmptyState`. |
361
- | `AgnoChat.ToolStatus` | Status bar shown when tools are executing. |
362
359
  | `AgnoChat.ErrorBar` | Error display bar. |
363
360
  | `AgnoChat.Input` | Chat input with file uploads and optional audio recorder. |
364
361
 
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Hook for reactive access to the backend-managed `session_state` dict.
3
+ *
4
+ * The cache is populated automatically by the client:
5
+ * - On `loadSession()` via a parallel `getSessionById()` call
6
+ * - On agent `RunCompleted` chunks that carry `session_state`
7
+ * - On any CustomEvent with a `session_state` field (opt-out via config)
8
+ * - On team runs, via a post-stream REST refresh (workaround through Agno 2.6.0)
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * type MyState = { counter: number; lastAction?: string };
13
+ *
14
+ * function Panel() {
15
+ * const { sessionState, setSessionState, mergeSessionState } =
16
+ * useAgnoSessionState<MyState>();
17
+ * return <div>count: {sessionState?.counter ?? 0}</div>;
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function useAgnoSessionState<T extends Record<string, unknown> = Record<string, unknown>>(): {
22
+ sessionState: T | null;
23
+ isRefreshing: boolean;
24
+ setSessionState: (next: T | ((prev: T | null) => T)) => Promise<void>;
25
+ mergeSessionState: (partial: Partial<T>) => Promise<void>;
26
+ refreshSessionState: () => Promise<T | null>;
27
+ };
28
+ //# sourceMappingURL=useAgnoSessionState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAgnoSessionState.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgnoSessionState.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACxD;IACH,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,mBAAmB,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC9C,CA+DA"}
@@ -48,7 +48,9 @@ export interface ToolExecutionEvent {
48
48
  * const { isPaused, isExecuting, pendingTools } = useAgnoToolExecution(toolHandlers);
49
49
  * ```
50
50
  */
51
- export declare function useAgnoToolExecution(handlers?: Record<string, ToolHandler>, autoExecute?: boolean): {
51
+ export declare function useAgnoToolExecution(handlers?: Record<string, ToolHandler>, autoExecute?: boolean, options?: {
52
+ skipHydration?: string[];
53
+ }): {
52
54
  /** Whether the run is currently paused awaiting tool execution */
53
55
  isPaused: boolean;
54
56
  /** Whether tools are currently being executed */
@@ -1 +1 @@
1
- {"version":3,"file":"useAgnoToolExecution.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgnoToolExecution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAGR,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AAItC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAiBtE;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE7E;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,GAAG;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAoDA;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,EAC1C,WAAW,GAAE,OAAc;IA2OzB,kEAAkE;;IAElE,iDAAiD;;IAEjD,+BAA+B;;IAE/B,qDAAqD;;IAErD,mEAAmE;0BAlErD,QAAQ,EAAE,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoE9C,2DAA2D;iCAjC7C,QAAQ,EAAE,YAAY;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAmCzG,wCAAwC;;EAG3C"}
1
+ {"version":3,"file":"useAgnoToolExecution.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgnoToolExecution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAGR,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AAItC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAiBtE;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE7E;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,GAAG;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAoDA;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,EAC1C,WAAW,GAAE,OAAc,EAC3B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE;IA4OpC,kEAAkE;;IAElE,iDAAiD;;IAEjD,+BAA+B;;IAE/B,qDAAqD;;IAErD,mEAAmE;0BAlErD,QAAQ,EAAE,KAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAoE9C,2DAA2D;iCAjC7C,QAAQ,EAAE,YAAY;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAmCzG,wCAAwC;;EAG3C"}
package/dist/index.d.ts CHANGED
@@ -17,8 +17,10 @@ export { useAgnoSession } from './hooks/useAgnoSession';
17
17
  export { useAgnoActions } from './hooks/useAgnoActions';
18
18
  export { useAgnoToolExecution, getCustomRender } from './hooks/useAgnoToolExecution';
19
19
  export type { ToolHandler, ToolExecutionEvent } from './hooks/useAgnoToolExecution';
20
+ export type { ToolResultRenderer } from './ui/composed/agno-chat/context';
20
21
  export { useAgnoCustomEvents } from './hooks/useAgnoCustomEvents';
21
22
  export { useAgnoMemory } from './hooks/useAgnoMemory';
23
+ export { useAgnoSessionState } from './hooks/useAgnoSessionState';
22
24
  export { useAgnoKnowledge } from './hooks/useAgnoKnowledge';
23
25
  export { useAgnoMetrics } from './hooks/useAgnoMetrics';
24
26
  export { useAgnoEvals } from './hooks/useAgnoEvals';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpF,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACrF,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,QAAQ,EAER,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,eAAe,EAEf,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EAErB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EAEpB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,qBAAqB,EAErB,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EAErB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,cAAc,GACf,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -45,6 +45,7 @@ __export(exports_src, {
45
45
  useToolHandlers: () => useToolHandlers,
46
46
  useAgnoTraces: () => useAgnoTraces,
47
47
  useAgnoToolExecution: () => useAgnoToolExecution,
48
+ useAgnoSessionState: () => useAgnoSessionState,
48
49
  useAgnoSession: () => useAgnoSession,
49
50
  useAgnoMetrics: () => useAgnoMetrics,
50
51
  useAgnoMemory: () => useAgnoMemory,
@@ -244,7 +245,7 @@ function processToolResult(result, _tool) {
244
245
  uiComponent: undefined
245
246
  };
246
247
  }
247
- function useAgnoToolExecution(handlers = {}, autoExecute = true) {
248
+ function useAgnoToolExecution(handlers = {}, autoExecute = true, options) {
248
249
  const client = useAgnoClient();
249
250
  const toolHandlerContext = useToolHandlers();
250
251
  const isTeamMode = client.getConfig().mode === "team";
@@ -343,7 +344,7 @@ function useAgnoToolExecution(handlers = {}, autoExecute = true) {
343
344
  for (const tool of message.tool_calls) {
344
345
  if (tool.ui_component)
345
346
  continue;
346
- if (tool.result !== undefined || tool.content)
347
+ if (options?.skipHydration?.includes(tool.tool_name))
347
348
  continue;
348
349
  const handler = mergedHandlers[tool.tool_name];
349
350
  if (!handler)
@@ -388,13 +389,13 @@ function useAgnoToolExecution(handlers = {}, autoExecute = true) {
388
389
  }
389
390
  }));
390
391
  }, [mergedHandlers]);
391
- const continueWithResults = import_react3.useCallback(async (tools, options) => {
392
+ const continueWithResults = import_react3.useCallback(async (tools, options2) => {
392
393
  if (!isPaused) {
393
394
  throw new Error("No paused run to continue");
394
395
  }
395
396
  setIsExecuting(true);
396
397
  try {
397
- await client.continueRun(tools, options);
398
+ await client.continueRun(tools, options2);
398
399
  } catch (error) {
399
400
  setIsExecuting(false);
400
401
  throw error;
@@ -1336,15 +1337,59 @@ function useAgnoMemory() {
1336
1337
  deleteMultipleMemories
1337
1338
  };
1338
1339
  }
1339
- // src/hooks/useAgnoKnowledge.ts
1340
+ // src/hooks/useAgnoSessionState.ts
1340
1341
  var import_react10 = require("react");
1342
+ function useAgnoSessionState() {
1343
+ const client = useAgnoClient();
1344
+ const [sessionState, setLocalSessionState] = import_react10.useState(() => client.getSessionState());
1345
+ const [isRefreshing, setIsRefreshing] = import_react10.useState(() => client.getState().isSessionStateRefreshing ?? false);
1346
+ import_react10.useEffect(() => {
1347
+ const handleStateChange = (state) => {
1348
+ setLocalSessionState(state);
1349
+ };
1350
+ const handleRefreshStart = () => setIsRefreshing(true);
1351
+ const handleRefreshEnd = () => setIsRefreshing(false);
1352
+ client.on("session-state:change", handleStateChange);
1353
+ client.on("session-state:refresh:start", handleRefreshStart);
1354
+ client.on("session-state:refresh:end", handleRefreshEnd);
1355
+ setLocalSessionState(client.getSessionState());
1356
+ setIsRefreshing(client.getState().isSessionStateRefreshing ?? false);
1357
+ return () => {
1358
+ client.off("session-state:change", handleStateChange);
1359
+ client.off("session-state:refresh:start", handleRefreshStart);
1360
+ client.off("session-state:refresh:end", handleRefreshEnd);
1361
+ };
1362
+ }, [client]);
1363
+ const setSessionState = import_react10.useCallback(async (next) => {
1364
+ const resolved = typeof next === "function" ? next(client.getSessionState()) : next;
1365
+ await client.setSessionState(resolved);
1366
+ }, [client]);
1367
+ const mergeSessionState = import_react10.useCallback(async (partial) => {
1368
+ const current = client.getSessionState() ?? {};
1369
+ const merged = { ...current, ...partial };
1370
+ await client.setSessionState(merged);
1371
+ }, [client]);
1372
+ const refreshSessionState = import_react10.useCallback(async () => {
1373
+ const result = await client.refreshSessionState();
1374
+ return result ?? null;
1375
+ }, [client]);
1376
+ return {
1377
+ sessionState,
1378
+ isRefreshing,
1379
+ setSessionState,
1380
+ mergeSessionState,
1381
+ refreshSessionState
1382
+ };
1383
+ }
1384
+ // src/hooks/useAgnoKnowledge.ts
1385
+ var import_react11 = require("react");
1341
1386
  function useAgnoKnowledge() {
1342
1387
  const client = useAgnoClient();
1343
- const [isLoading, setIsLoading] = import_react10.useState(false);
1344
- const [error, setError] = import_react10.useState();
1345
- const [config, setConfig] = import_react10.useState();
1346
- const [content, setContent] = import_react10.useState([]);
1347
- const getConfig = import_react10.useCallback(async (options) => {
1388
+ const [isLoading, setIsLoading] = import_react11.useState(false);
1389
+ const [error, setError] = import_react11.useState();
1390
+ const [config, setConfig] = import_react11.useState();
1391
+ const [content, setContent] = import_react11.useState([]);
1392
+ const getConfig = import_react11.useCallback(async (options) => {
1348
1393
  setIsLoading(true);
1349
1394
  setError(undefined);
1350
1395
  try {
@@ -1359,7 +1404,7 @@ function useAgnoKnowledge() {
1359
1404
  setIsLoading(false);
1360
1405
  }
1361
1406
  }, [client]);
1362
- const listContent = import_react10.useCallback(async (listOptions, options) => {
1407
+ const listContent = import_react11.useCallback(async (listOptions, options) => {
1363
1408
  setIsLoading(true);
1364
1409
  setError(undefined);
1365
1410
  try {
@@ -1374,7 +1419,7 @@ function useAgnoKnowledge() {
1374
1419
  setIsLoading(false);
1375
1420
  }
1376
1421
  }, [client]);
1377
- const getContent = import_react10.useCallback(async (contentId, options) => {
1422
+ const getContent = import_react11.useCallback(async (contentId, options) => {
1378
1423
  setIsLoading(true);
1379
1424
  setError(undefined);
1380
1425
  try {
@@ -1387,7 +1432,7 @@ function useAgnoKnowledge() {
1387
1432
  setIsLoading(false);
1388
1433
  }
1389
1434
  }, [client]);
1390
- const getContentStatus = import_react10.useCallback(async (contentId, options) => {
1435
+ const getContentStatus = import_react11.useCallback(async (contentId, options) => {
1391
1436
  setIsLoading(true);
1392
1437
  setError(undefined);
1393
1438
  try {
@@ -1400,7 +1445,7 @@ function useAgnoKnowledge() {
1400
1445
  setIsLoading(false);
1401
1446
  }
1402
1447
  }, [client]);
1403
- const search = import_react10.useCallback(async (request, options) => {
1448
+ const search = import_react11.useCallback(async (request, options) => {
1404
1449
  setIsLoading(true);
1405
1450
  setError(undefined);
1406
1451
  try {
@@ -1413,7 +1458,7 @@ function useAgnoKnowledge() {
1413
1458
  setIsLoading(false);
1414
1459
  }
1415
1460
  }, [client]);
1416
- const uploadContent = import_react10.useCallback(async (data, options) => {
1461
+ const uploadContent = import_react11.useCallback(async (data, options) => {
1417
1462
  setIsLoading(true);
1418
1463
  setError(undefined);
1419
1464
  try {
@@ -1428,7 +1473,7 @@ function useAgnoKnowledge() {
1428
1473
  setIsLoading(false);
1429
1474
  }
1430
1475
  }, [client]);
1431
- const updateContent = import_react10.useCallback(async (contentId, request, options) => {
1476
+ const updateContent = import_react11.useCallback(async (contentId, request, options) => {
1432
1477
  setIsLoading(true);
1433
1478
  setError(undefined);
1434
1479
  try {
@@ -1443,7 +1488,7 @@ function useAgnoKnowledge() {
1443
1488
  setIsLoading(false);
1444
1489
  }
1445
1490
  }, [client]);
1446
- const deleteAllContent = import_react10.useCallback(async (options) => {
1491
+ const deleteAllContent = import_react11.useCallback(async (options) => {
1447
1492
  setIsLoading(true);
1448
1493
  setError(undefined);
1449
1494
  try {
@@ -1457,7 +1502,7 @@ function useAgnoKnowledge() {
1457
1502
  setIsLoading(false);
1458
1503
  }
1459
1504
  }, [client]);
1460
- const deleteContent = import_react10.useCallback(async (contentId, options) => {
1505
+ const deleteContent = import_react11.useCallback(async (contentId, options) => {
1461
1506
  setIsLoading(true);
1462
1507
  setError(undefined);
1463
1508
  try {
@@ -1489,14 +1534,14 @@ function useAgnoKnowledge() {
1489
1534
  };
1490
1535
  }
1491
1536
  // src/hooks/useAgnoMetrics.ts
1492
- var import_react11 = require("react");
1537
+ var import_react12 = require("react");
1493
1538
  function useAgnoMetrics() {
1494
1539
  const client = useAgnoClient();
1495
- const [isLoading, setIsLoading] = import_react11.useState(false);
1496
- const [isRefreshing, setIsRefreshing] = import_react11.useState(false);
1497
- const [error, setError] = import_react11.useState();
1498
- const [metrics, setMetrics] = import_react11.useState();
1499
- const fetchMetrics = import_react11.useCallback(async (options) => {
1540
+ const [isLoading, setIsLoading] = import_react12.useState(false);
1541
+ const [isRefreshing, setIsRefreshing] = import_react12.useState(false);
1542
+ const [error, setError] = import_react12.useState();
1543
+ const [metrics, setMetrics] = import_react12.useState();
1544
+ const fetchMetrics = import_react12.useCallback(async (options) => {
1500
1545
  setIsLoading(true);
1501
1546
  setError(undefined);
1502
1547
  try {
@@ -1511,7 +1556,7 @@ function useAgnoMetrics() {
1511
1556
  setIsLoading(false);
1512
1557
  }
1513
1558
  }, [client]);
1514
- const refreshMetrics = import_react11.useCallback(async (options) => {
1559
+ const refreshMetrics = import_react12.useCallback(async (options) => {
1515
1560
  setIsRefreshing(true);
1516
1561
  setError(undefined);
1517
1562
  try {
@@ -1525,7 +1570,7 @@ function useAgnoMetrics() {
1525
1570
  setIsRefreshing(false);
1526
1571
  }
1527
1572
  }, [client]);
1528
- const clearMetrics = import_react11.useCallback(() => {
1573
+ const clearMetrics = import_react12.useCallback(() => {
1529
1574
  setMetrics(undefined);
1530
1575
  setError(undefined);
1531
1576
  }, []);
@@ -1540,14 +1585,14 @@ function useAgnoMetrics() {
1540
1585
  };
1541
1586
  }
1542
1587
  // src/hooks/useAgnoEvals.ts
1543
- var import_react12 = require("react");
1588
+ var import_react13 = require("react");
1544
1589
  function useAgnoEvals() {
1545
1590
  const client = useAgnoClient();
1546
- const [evalRuns, setEvalRuns] = import_react12.useState([]);
1547
- const [pagination, setPagination] = import_react12.useState();
1548
- const [isLoading, setIsLoading] = import_react12.useState(false);
1549
- const [error, setError] = import_react12.useState();
1550
- const listEvalRuns = import_react12.useCallback(async (listParams = {}, options) => {
1591
+ const [evalRuns, setEvalRuns] = import_react13.useState([]);
1592
+ const [pagination, setPagination] = import_react13.useState();
1593
+ const [isLoading, setIsLoading] = import_react13.useState(false);
1594
+ const [error, setError] = import_react13.useState();
1595
+ const listEvalRuns = import_react13.useCallback(async (listParams = {}, options) => {
1551
1596
  setIsLoading(true);
1552
1597
  setError(undefined);
1553
1598
  try {
@@ -1563,7 +1608,7 @@ function useAgnoEvals() {
1563
1608
  setIsLoading(false);
1564
1609
  }
1565
1610
  }, [client]);
1566
- const getEvalRun = import_react12.useCallback(async (evalRunId, options) => {
1611
+ const getEvalRun = import_react13.useCallback(async (evalRunId, options) => {
1567
1612
  setIsLoading(true);
1568
1613
  setError(undefined);
1569
1614
  try {
@@ -1576,7 +1621,7 @@ function useAgnoEvals() {
1576
1621
  setIsLoading(false);
1577
1622
  }
1578
1623
  }, [client]);
1579
- const executeEval = import_react12.useCallback(async (request, options) => {
1624
+ const executeEval = import_react13.useCallback(async (request, options) => {
1580
1625
  setIsLoading(true);
1581
1626
  setError(undefined);
1582
1627
  try {
@@ -1591,7 +1636,7 @@ function useAgnoEvals() {
1591
1636
  setIsLoading(false);
1592
1637
  }
1593
1638
  }, [client]);
1594
- const updateEvalRun = import_react12.useCallback(async (evalRunId, request, options) => {
1639
+ const updateEvalRun = import_react13.useCallback(async (evalRunId, request, options) => {
1595
1640
  setIsLoading(true);
1596
1641
  setError(undefined);
1597
1642
  try {
@@ -1606,7 +1651,7 @@ function useAgnoEvals() {
1606
1651
  setIsLoading(false);
1607
1652
  }
1608
1653
  }, [client]);
1609
- const deleteEvalRuns = import_react12.useCallback(async (evalRunIds, options) => {
1654
+ const deleteEvalRuns = import_react13.useCallback(async (evalRunIds, options) => {
1610
1655
  setIsLoading(true);
1611
1656
  setError(undefined);
1612
1657
  try {
@@ -1621,7 +1666,7 @@ function useAgnoEvals() {
1621
1666
  setIsLoading(false);
1622
1667
  }
1623
1668
  }, [client]);
1624
- const renameEvalRun = import_react12.useCallback(async (evalRunId, newName, options) => {
1669
+ const renameEvalRun = import_react13.useCallback(async (evalRunId, newName, options) => {
1625
1670
  return updateEvalRun(evalRunId, { name: newName }, options);
1626
1671
  }, [updateEvalRun]);
1627
1672
  return {
@@ -1638,14 +1683,14 @@ function useAgnoEvals() {
1638
1683
  };
1639
1684
  }
1640
1685
  // src/hooks/useAgnoTraces.ts
1641
- var import_react13 = require("react");
1686
+ var import_react14 = require("react");
1642
1687
  function useAgnoTraces() {
1643
1688
  const client = useAgnoClient();
1644
- const [traces, setTraces] = import_react13.useState([]);
1645
- const [traceSessionStats, setTraceSessionStats] = import_react13.useState([]);
1646
- const [isLoading, setIsLoading] = import_react13.useState(false);
1647
- const [error, setError] = import_react13.useState();
1648
- import_react13.useEffect(() => {
1689
+ const [traces, setTraces] = import_react14.useState([]);
1690
+ const [traceSessionStats, setTraceSessionStats] = import_react14.useState([]);
1691
+ const [isLoading, setIsLoading] = import_react14.useState(false);
1692
+ const [error, setError] = import_react14.useState();
1693
+ import_react14.useEffect(() => {
1649
1694
  const handleStateChange = () => {
1650
1695
  const state2 = client.getState();
1651
1696
  setTraces(state2.traces);
@@ -1659,7 +1704,7 @@ function useAgnoTraces() {
1659
1704
  client.off("state:change", handleStateChange);
1660
1705
  };
1661
1706
  }, [client]);
1662
- const fetchTraces = import_react13.useCallback(async (options = {}, requestOptions) => {
1707
+ const fetchTraces = import_react14.useCallback(async (options = {}, requestOptions) => {
1663
1708
  setIsLoading(true);
1664
1709
  setError(undefined);
1665
1710
  try {
@@ -1674,7 +1719,7 @@ function useAgnoTraces() {
1674
1719
  setIsLoading(false);
1675
1720
  }
1676
1721
  }, [client]);
1677
- const getTraceDetail = import_react13.useCallback(async (traceId, options = {}, requestOptions) => {
1722
+ const getTraceDetail = import_react14.useCallback(async (traceId, options = {}, requestOptions) => {
1678
1723
  setIsLoading(true);
1679
1724
  setError(undefined);
1680
1725
  try {
@@ -1687,7 +1732,7 @@ function useAgnoTraces() {
1687
1732
  setIsLoading(false);
1688
1733
  }
1689
1734
  }, [client]);
1690
- const fetchTraceSessionStats = import_react13.useCallback(async (options = {}, requestOptions) => {
1735
+ const fetchTraceSessionStats = import_react14.useCallback(async (options = {}, requestOptions) => {
1691
1736
  setIsLoading(true);
1692
1737
  setError(undefined);
1693
1738
  try {
@@ -1713,4 +1758,4 @@ function useAgnoTraces() {
1713
1758
  };
1714
1759
  }
1715
1760
 
1716
- //# debugId=F37F073610C2950164756E2164756E21
1761
+ //# debugId=1F5634926049BF8564756E2164756E21