{"version":3,"file":"use-suggestions.cjs","names":["useCopilotKit","useCopilotChatConfiguration","DEFAULT_AGENT_ID"],"sources":["../../src/hooks/use-suggestions.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Suggestion } from \"@copilotkitnext/core\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\nimport { useCopilotChatConfiguration } from \"@/providers/CopilotChatConfigurationProvider\";\nimport { DEFAULT_AGENT_ID } from \"@copilotkitnext/shared\";\n\nexport interface UseSuggestionsOptions {\n  agentId?: string;\n}\n\nexport interface UseSuggestionsResult {\n  suggestions: Suggestion[];\n  reloadSuggestions: () => void;\n  clearSuggestions: () => void;\n  isLoading: boolean;\n}\n\nexport function useSuggestions({\n  agentId,\n}: UseSuggestionsOptions = {}): UseSuggestionsResult {\n  const { copilotkit } = useCopilotKit();\n  const config = useCopilotChatConfiguration();\n  const resolvedAgentId = useMemo(\n    () => agentId ?? config?.agentId ?? DEFAULT_AGENT_ID,\n    [agentId, config?.agentId],\n  );\n\n  const [suggestions, setSuggestions] = useState<Suggestion[]>(() => {\n    const result = copilotkit.getSuggestions(resolvedAgentId);\n    return result.suggestions;\n  });\n  const [isLoading, setIsLoading] = useState(() => {\n    const result = copilotkit.getSuggestions(resolvedAgentId);\n    return result.isLoading;\n  });\n\n  useEffect(() => {\n    const result = copilotkit.getSuggestions(resolvedAgentId);\n    setSuggestions(result.suggestions);\n    setIsLoading(result.isLoading);\n  }, [copilotkit, resolvedAgentId]);\n\n  useEffect(() => {\n    const subscription = copilotkit.subscribe({\n      onSuggestionsChanged: ({ agentId: changedAgentId, suggestions }) => {\n        if (changedAgentId !== resolvedAgentId) {\n          return;\n        }\n        setSuggestions(suggestions);\n      },\n      onSuggestionsStartedLoading: ({ agentId: changedAgentId }) => {\n        if (changedAgentId !== resolvedAgentId) {\n          return;\n        }\n        setIsLoading(true);\n      },\n      onSuggestionsFinishedLoading: ({ agentId: changedAgentId }) => {\n        if (changedAgentId !== resolvedAgentId) {\n          return;\n        }\n        setIsLoading(false);\n      },\n      onSuggestionsConfigChanged: () => {\n        const result = copilotkit.getSuggestions(resolvedAgentId);\n        setSuggestions(result.suggestions);\n        setIsLoading(result.isLoading);\n      },\n    });\n\n    return () => {\n      subscription.unsubscribe();\n    };\n  }, [copilotkit, resolvedAgentId]);\n\n  const reloadSuggestions = useCallback(() => {\n    copilotkit.reloadSuggestions(resolvedAgentId);\n    // Loading state is handled by onSuggestionsStartedLoading event\n  }, [copilotkit, resolvedAgentId]);\n\n  const clearSuggestions = useCallback(() => {\n    copilotkit.clearSuggestions(resolvedAgentId);\n    // State updates are handled by onSuggestionsChanged event\n  }, [copilotkit, resolvedAgentId]);\n\n  return {\n    suggestions,\n    reloadSuggestions,\n    clearSuggestions,\n    isLoading,\n  };\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,eAAe,EAC7B,YACyB,EAAE,EAAwB;CACnD,MAAM,EAAE,eAAeA,0CAAe;CACtC,MAAM,SAASC,sEAA6B;CAC5C,MAAM,2CACE,WAAW,QAAQ,WAAWC,yCACpC,CAAC,SAAS,QAAQ,QAAQ,CAC3B;CAED,MAAM,CAAC,aAAa,4CAA+C;AAEjE,SADe,WAAW,eAAe,gBAAgB,CAC3C;GACd;CACF,MAAM,CAAC,WAAW,0CAA+B;AAE/C,SADe,WAAW,eAAe,gBAAgB,CAC3C;GACd;AAEF,4BAAgB;EACd,MAAM,SAAS,WAAW,eAAe,gBAAgB;AACzD,iBAAe,OAAO,YAAY;AAClC,eAAa,OAAO,UAAU;IAC7B,CAAC,YAAY,gBAAgB,CAAC;AAEjC,4BAAgB;EACd,MAAM,eAAe,WAAW,UAAU;GACxC,uBAAuB,EAAE,SAAS,gBAAgB,kBAAkB;AAClE,QAAI,mBAAmB,gBACrB;AAEF,mBAAe,YAAY;;GAE7B,8BAA8B,EAAE,SAAS,qBAAqB;AAC5D,QAAI,mBAAmB,gBACrB;AAEF,iBAAa,KAAK;;GAEpB,+BAA+B,EAAE,SAAS,qBAAqB;AAC7D,QAAI,mBAAmB,gBACrB;AAEF,iBAAa,MAAM;;GAErB,kCAAkC;IAChC,MAAM,SAAS,WAAW,eAAe,gBAAgB;AACzD,mBAAe,OAAO,YAAY;AAClC,iBAAa,OAAO,UAAU;;GAEjC,CAAC;AAEF,eAAa;AACX,gBAAa,aAAa;;IAE3B,CAAC,YAAY,gBAAgB,CAAC;AAYjC,QAAO;EACL;EACA,gDAZ0C;AAC1C,cAAW,kBAAkB,gBAAgB;KAE5C,CAAC,YAAY,gBAAgB,CAAC;EAU/B,+CARyC;AACzC,cAAW,iBAAiB,gBAAgB;KAE3C,CAAC,YAAY,gBAAgB,CAAC;EAM/B;EACD"}