{"version":3,"file":"use-agent-context.cjs","names":["useCopilotKit"],"sources":["../../src/hooks/use-agent-context.tsx"],"sourcesContent":["import { useCopilotKit } from \"../providers/CopilotKitProvider\";\nimport { useLayoutEffect, useMemo } from \"react\";\n\n/**\n * Represents any value that can be serialized to JSON.\n */\nexport type JsonSerializable =\n  | string\n  | number\n  | boolean\n  | null\n  | JsonSerializable[]\n  | { [key: string]: JsonSerializable };\n\n/**\n * Context configuration for useAgentContext.\n * Accepts any JSON-serializable value which will be converted to a string.\n */\nexport interface AgentContextInput {\n  /** A human-readable description of what this context represents */\n  description: string;\n  /** The context value - will be converted to a JSON string if not already a string */\n  value: JsonSerializable;\n}\n\nexport function useAgentContext(context: AgentContextInput) {\n  const { description, value } = context;\n  const { copilotkit } = useCopilotKit();\n\n  const stringValue = useMemo(() => {\n    if (typeof value === \"string\") {\n      return value;\n    }\n    return JSON.stringify(value);\n  }, [value]);\n\n  useLayoutEffect(() => {\n    if (!copilotkit) return;\n\n    const id = copilotkit.addContext({ description, value: stringValue });\n    return () => {\n      copilotkit.removeContext(id);\n    };\n  }, [description, stringValue, copilotkit]);\n}\n"],"mappings":";;;;;AAyBA,SAAgB,gBAAgB,SAA4B;CAC1D,MAAM,EAAE,aAAa,UAAU;CAC/B,MAAM,EAAE,eAAeA,0CAAe;CAEtC,MAAM,uCAA4B;AAChC,MAAI,OAAO,UAAU,SACnB,QAAO;AAET,SAAO,KAAK,UAAU,MAAM;IAC3B,CAAC,MAAM,CAAC;AAEX,kCAAsB;AACpB,MAAI,CAAC,WAAY;EAEjB,MAAM,KAAK,WAAW,WAAW;GAAE;GAAa,OAAO;GAAa,CAAC;AACrE,eAAa;AACX,cAAW,cAAc,GAAG;;IAE7B;EAAC;EAAa;EAAa;EAAW,CAAC"}