@rodrigocoliveira/agno-react 1.1.6 → 1.3.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,54 @@
1
+ import type { ComponentResponse, ComponentCreate, ComponentUpdate, ComponentConfigResponse, ConfigCreate, ConfigUpdate, ComponentsListResponse, ListComponentsParams } from '@rodrigocoliveira/agno-types';
2
+ /**
3
+ * Hook for AgentOS Studio components (DB-stored agents/teams/workflows).
4
+ *
5
+ * Covers both component CRUD and config versioning. Components live in the
6
+ * AgentOS database and represent agents/teams/workflows that can be created,
7
+ * edited, and published without code changes.
8
+ *
9
+ * Note: the Agno `/components` endpoint has no native filter by `user_id`.
10
+ * For per-user scoping, either store `user_id` in `metadata` and filter
11
+ * client-side, or extend your backend and pass `params: { user_id }` through.
12
+ */
13
+ export declare function useAgnoComponents(): {
14
+ components: ComponentResponse[];
15
+ isLoading: boolean;
16
+ error: string | undefined;
17
+ fetchComponents: (queryParams?: ListComponentsParams, options?: {
18
+ params?: Record<string, string>;
19
+ }) => Promise<ComponentsListResponse>;
20
+ getComponentById: (componentId: string, options?: {
21
+ params?: Record<string, string>;
22
+ }) => Promise<ComponentResponse>;
23
+ createComponent: (request: ComponentCreate, options?: {
24
+ params?: Record<string, string>;
25
+ }) => Promise<ComponentResponse>;
26
+ updateComponent: (componentId: string, request: ComponentUpdate, options?: {
27
+ params?: Record<string, string>;
28
+ }) => Promise<ComponentResponse>;
29
+ deleteComponent: (componentId: string, options?: {
30
+ params?: Record<string, string>;
31
+ }) => Promise<void>;
32
+ fetchComponentConfigs: (componentId: string, options?: {
33
+ params?: Record<string, string>;
34
+ }) => Promise<ComponentConfigResponse[]>;
35
+ createComponentConfig: (componentId: string, request: ConfigCreate, options?: {
36
+ params?: Record<string, string>;
37
+ }) => Promise<ComponentConfigResponse>;
38
+ getCurrentComponentConfig: (componentId: string, options?: {
39
+ params?: Record<string, string>;
40
+ }) => Promise<ComponentConfigResponse>;
41
+ getComponentConfigByVersion: (componentId: string, version: number, options?: {
42
+ params?: Record<string, string>;
43
+ }) => Promise<ComponentConfigResponse>;
44
+ updateComponentConfig: (componentId: string, version: number, request: ConfigUpdate, options?: {
45
+ params?: Record<string, string>;
46
+ }) => Promise<ComponentConfigResponse>;
47
+ deleteComponentConfig: (componentId: string, version: number, options?: {
48
+ params?: Record<string, string>;
49
+ }) => Promise<void>;
50
+ setCurrentComponentConfig: (componentId: string, version: number, options?: {
51
+ params?: Record<string, string>;
52
+ }) => Promise<ComponentConfigResponse>;
53
+ };
54
+ //# sourceMappingURL=useAgnoComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAgnoComponents.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgnoComponents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AAGtC;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB;;;;oCA0Cb,oBAAoB,YACxB;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,sBAAsB,CAAC;oCAoBnB,MAAM,YACT;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,iBAAiB,CAAC;+BAkBlB,eAAe,YACd;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,iBAAiB,CAAC;mCAkBd,MAAM,WACV,eAAe,YACd;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,iBAAiB,CAAC;mCAkBd,MAAM,YACT;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,IAAI,CAAC;yCAkBD,MAAM,YACT;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC;yCAkBtB,MAAM,WACV,YAAY,YACX;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,CAAC;6CAkBpB,MAAM,YACT;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,CAAC;+CAkBpB,MAAM,WACV,MAAM,YACL;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,CAAC;yCAkBpB,MAAM,WACV,MAAM,WACN,YAAY,YACX;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,CAAC;yCAkBpB,MAAM,WACV,MAAM,YACL;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,IAAI,CAAC;6CAkBD,MAAM,WACV,MAAM,YACL;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,uBAAuB,CAAC;EAiCtC"}
@@ -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"}
package/dist/index.d.ts CHANGED
@@ -20,10 +20,12 @@ export type { ToolHandler, ToolExecutionEvent } from './hooks/useAgnoToolExecuti
20
20
  export type { ToolResultRenderer } from './ui/composed/agno-chat/context';
21
21
  export { useAgnoCustomEvents } from './hooks/useAgnoCustomEvents';
22
22
  export { useAgnoMemory } from './hooks/useAgnoMemory';
23
+ export { useAgnoSessionState } from './hooks/useAgnoSessionState';
23
24
  export { useAgnoKnowledge } from './hooks/useAgnoKnowledge';
24
25
  export { useAgnoMetrics } from './hooks/useAgnoMetrics';
25
26
  export { useAgnoEvals } from './hooks/useAgnoEvals';
26
27
  export { useAgnoTraces } from './hooks/useAgnoTraces';
28
+ export { useAgnoComponents } from './hooks/useAgnoComponents';
27
29
  export type { PaginatedTracesResult, PaginatedTraceSessionStatsResult, } from './hooks/useAgnoTraces';
28
- export type { AgnoClientConfig, ChatMessage, ToolCall, SessionEntry, AgentDetails, TeamDetails, ClientState, RunEvent, UIComponentSpec, ChartComponentSpec, CardGridComponentSpec, TableComponentSpec, MarkdownComponentSpec, CustomComponentSpec, ArtifactComponentSpec, ToolHandlerResult, GenerativeUIData, ChartSeries, CardData, TableColumn, CustomEventData, UserMemory, MemoriesListResponse, ListMemoriesParams, CreateMemoryRequest, UpdateMemoryRequest, DeleteMultipleMemoriesRequest, UserMemoryStats, UserMemoryStatsResponse, UserMemoryStatsParams, ContentStatus, ReaderSchema, ChunkerSchema, VectorDbSchema, KnowledgeConfigResponse, ContentResponse, ContentStatusResponse, ContentListResponse, ContentListOptions, VectorSearchRequest, VectorSearchResult, VectorSearchResponse, ContentUploadRequest, ContentUpdateRequest, TokenMetrics, ModelMetrics, DayAggregatedMetrics, MetricsResponse, MetricsOptions, RefreshMetricsOptions, EvalType, EvalComponentType, ScoringStrategy, SortOrder, EvalSchema, ListEvalRunsParams, EvalRunsListResponse, ExecuteEvalRequest, UpdateEvalRunRequest, DeleteEvalRunsRequest, TraceStatus, TraceSummary, TraceNode, TraceDetail, TraceSessionStats, TracesListResponse, TraceSessionStatsResponse, ListTracesOptions, GetTraceOptions, GetTraceSessionStatsOptions, PaginationInfo, } from '@rodrigocoliveira/agno-types';
30
+ export type { AgnoClientConfig, ChatMessage, ToolCall, SessionEntry, AgentDetails, TeamDetails, ClientState, RunEvent, UIComponentSpec, ChartComponentSpec, CardGridComponentSpec, TableComponentSpec, MarkdownComponentSpec, CustomComponentSpec, ArtifactComponentSpec, ToolHandlerResult, GenerativeUIData, ChartSeries, CardData, TableColumn, CustomEventData, UserMemory, MemoriesListResponse, ListMemoriesParams, CreateMemoryRequest, UpdateMemoryRequest, DeleteMultipleMemoriesRequest, UserMemoryStats, UserMemoryStatsResponse, UserMemoryStatsParams, ContentStatus, ReaderSchema, ChunkerSchema, VectorDbSchema, KnowledgeConfigResponse, ContentResponse, ContentStatusResponse, ContentListResponse, ContentListOptions, VectorSearchRequest, VectorSearchResult, VectorSearchResponse, ContentUploadRequest, ContentUpdateRequest, TokenMetrics, ModelMetrics, DayAggregatedMetrics, MetricsResponse, MetricsOptions, RefreshMetricsOptions, EvalType, EvalComponentType, ScoringStrategy, SortOrder, EvalSchema, ListEvalRunsParams, EvalRunsListResponse, ExecuteEvalRequest, UpdateEvalRunRequest, DeleteEvalRunsRequest, TraceStatus, TraceSummary, TraceNode, TraceDetail, TraceSessionStats, TracesListResponse, TraceSessionStatsResponse, ListTracesOptions, GetTraceOptions, GetTraceSessionStatsOptions, PaginationInfo, ComponentType, ListComponentsParams, ComponentCreate, ComponentUpdate, ComponentResponse, ConfigCreate, ConfigUpdate, ComponentConfigResponse, ComponentsListResponse, } from '@rodrigocoliveira/agno-types';
29
31
  //# sourceMappingURL=index.d.ts.map
@@ -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":"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"}