@elqnt/agents 3.1.0 → 3.2.1

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 (65) hide show
  1. package/README.md +40 -0
  2. package/dist/{agent-models-C36pvpUb.d.mts → agent-models-DLQlC7N6.d.mts} +143 -2
  3. package/dist/{agent-models-C36pvpUb.d.ts → agent-models-DLQlC7N6.d.ts} +143 -2
  4. package/dist/api/index.d.mts +227 -5
  5. package/dist/api/index.d.ts +227 -5
  6. package/dist/api/index.js +54 -2
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/index.mjs +53 -1
  9. package/dist/api/server.d.mts +4 -2
  10. package/dist/api/server.d.ts +4 -2
  11. package/dist/api/server.js +9 -1
  12. package/dist/api/server.js.map +1 -1
  13. package/dist/api/server.mjs +8 -0
  14. package/dist/api/server.mjs.map +1 -1
  15. package/dist/chunk-2JDVRL35.js +133 -0
  16. package/dist/chunk-2JDVRL35.js.map +1 -0
  17. package/dist/chunk-2QL3LLC3.mjs +1075 -0
  18. package/dist/chunk-2QL3LLC3.mjs.map +1 -0
  19. package/dist/chunk-3EHE4O57.mjs +133 -0
  20. package/dist/chunk-3EHE4O57.mjs.map +1 -0
  21. package/dist/{chunk-TPQS2XAW.js → chunk-3VM5TCJR.js} +8 -2
  22. package/dist/chunk-3VM5TCJR.js.map +1 -0
  23. package/dist/chunk-AF4QJD73.js +1075 -0
  24. package/dist/chunk-AF4QJD73.js.map +1 -0
  25. package/dist/{chunk-RAA5NKA7.js → chunk-BH2FIDFK.js} +224 -2
  26. package/dist/chunk-BH2FIDFK.js.map +1 -0
  27. package/dist/{chunk-NF6PGOXP.mjs → chunk-GOHHT3ET.mjs} +224 -2
  28. package/dist/chunk-GOHHT3ET.mjs.map +1 -0
  29. package/dist/{chunk-SXYTVNKJ.mjs → chunk-ZK27UGO6.mjs} +7 -1
  30. package/dist/{chunk-SXYTVNKJ.mjs.map → chunk-ZK27UGO6.mjs.map} +1 -1
  31. package/dist/hooks/index.d.mts +224 -67
  32. package/dist/hooks/index.d.ts +224 -67
  33. package/dist/hooks/index.js +8 -3
  34. package/dist/hooks/index.js.map +1 -1
  35. package/dist/hooks/index.mjs +11 -6
  36. package/dist/index.d.mts +7 -5
  37. package/dist/index.d.ts +7 -5
  38. package/dist/index.js +67 -4
  39. package/dist/index.js.map +1 -1
  40. package/dist/index.mjs +70 -7
  41. package/dist/models/index.d.mts +3 -131
  42. package/dist/models/index.d.ts +3 -131
  43. package/dist/models/index.js +8 -2
  44. package/dist/models/index.js.map +1 -1
  45. package/dist/models/index.mjs +7 -1
  46. package/dist/{integration-21IuOOeV.d.mts → sandbox-DOxoM2Ge.d.mts} +132 -1
  47. package/dist/{integration-21IuOOeV.d.ts → sandbox-DOxoM2Ge.d.ts} +132 -1
  48. package/dist/transport/index.d.mts +36 -0
  49. package/dist/transport/index.d.ts +36 -0
  50. package/dist/transport/index.js +8 -0
  51. package/dist/transport/index.js.map +1 -0
  52. package/dist/transport/index.mjs +8 -0
  53. package/dist/transport/index.mjs.map +1 -0
  54. package/dist/types-C2qd5f-E.d.mts +51 -0
  55. package/dist/types-k9PszCzt.d.ts +51 -0
  56. package/dist/utils/index.d.mts +1 -1
  57. package/dist/utils/index.d.ts +1 -1
  58. package/package.json +10 -4
  59. package/dist/chunk-NF6PGOXP.mjs.map +0 -1
  60. package/dist/chunk-RAA5NKA7.js.map +0 -1
  61. package/dist/chunk-RWFVHX2J.js +0 -585
  62. package/dist/chunk-RWFVHX2J.js.map +0 -1
  63. package/dist/chunk-TPQS2XAW.js.map +0 -1
  64. package/dist/chunk-X4MSBDTZ.mjs +0 -585
  65. package/dist/chunk-X4MSBDTZ.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../hooks/use-agents.ts","../hooks/use-options-ref.ts","../hooks/use-skills.ts","../hooks/use-sub-agents.ts","../hooks/use-tool-definitions.ts","../hooks/use-agent-jobs.ts","../hooks/use-widgets.ts","../hooks/use-skill-user-config.ts","../hooks/use-analytics.ts","../hooks/use-integrations.ts","../hooks/use-sandbox.ts","../hooks/use-scheduler-tasks.ts","../hooks/use-scheduler-schedules.ts","../hooks/use-background-agents.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport type { Agent, AgentSummary } from \"../models\";\nimport {\n listAgentsApi,\n listAgentsSummaryApi,\n getAgentApi,\n createAgentApi,\n updateAgentApi,\n deleteAgentApi,\n getDefaultAgentApi,\n} from \"../api\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseAgentsOptions = ApiClientOptions;\n\n/**\n * Hook for agent CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listAgents, createAgent } = useAgents({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const agents = await listAgents();\n * ```\n */\nexport function useAgents(options: UseAgentsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listAgents, loading: listLoading, error: listError } = useApiAsync(\n () => listAgentsApi(optionsRef.current),\n (data) => data.agents,\n [] as Agent[]\n );\n\n const { execute: listAgentSummaries, loading: listSummaryLoading, error: listSummaryError } = useApiAsync(\n () => listAgentsSummaryApi(optionsRef.current),\n (data) => data.agents,\n [] as AgentSummary[]\n );\n\n const { execute: getAgent, loading: getLoading, error: getError } = useApiAsync(\n (agentId: string) => getAgentApi(agentId, optionsRef.current),\n (data) => data.agent || null,\n null as Agent | null\n );\n\n const { execute: createAgent, loading: createLoading, error: createError } = useApiAsync(\n (agent: Partial<Agent>) => createAgentApi(agent, optionsRef.current),\n (data) => data.agent || null,\n null as Agent | null\n );\n\n const { execute: updateAgent, loading: updateLoading, error: updateError } = useApiAsync(\n (agentId: string, agent: Partial<Agent>) => updateAgentApi(agentId, agent, optionsRef.current),\n (data) => data.agent || null,\n null as Agent | null\n );\n\n const { execute: deleteAgent, loading: deleteLoading, error: deleteError } = useApiAsync(\n (agentId: string) => deleteAgentApi(agentId, optionsRef.current),\n () => true,\n false\n );\n\n const { execute: getDefaultAgent, loading: defaultLoading, error: defaultError } = useApiAsync(\n () => getDefaultAgentApi(optionsRef.current),\n (data) => data.agent || null,\n null as Agent | null\n );\n\n const loading = listLoading || listSummaryLoading || getLoading || createLoading || updateLoading || deleteLoading || defaultLoading;\n const error = listError || listSummaryError || getError || createError || updateError || deleteError || defaultError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listAgents,\n listAgentSummaries,\n getAgent,\n createAgent,\n updateAgent,\n deleteAgent,\n getDefaultAgent,\n }),\n [loading, error, listAgents, listAgentSummaries, getAgent, createAgent, updateAgent, deleteAgent, getDefaultAgent]\n );\n}\n","\"use client\";\n\n/**\n * Options reference utility for React hooks\n *\n * Keeps a mutable ref synchronized with options to avoid\n * stale closures in callbacks while preventing unnecessary re-renders.\n */\n\nimport { useRef, useEffect } from \"react\";\n\n/**\n * Creates a ref that stays synchronized with the provided options.\n * Useful for accessing current options values in callbacks without\n * causing re-renders or stale closure issues.\n *\n * @param options - The options object to track\n * @returns A ref that always contains the latest options\n *\n * @example\n * ```tsx\n * const optionsRef = useOptionsRef(options);\n *\n * const fetchData = useCallback(async () => {\n * // Always has the latest options, no stale closure\n * const result = await api.fetch(optionsRef.current);\n * }, []); // No need to include options in deps\n * ```\n */\nexport function useOptionsRef<T>(options: T): React.MutableRefObject<T> {\n const optionsRef = useRef(options);\n\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n return optionsRef;\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { Skill } from \"../models\";\nimport {\n listSkillsApi,\n getSkillApi,\n createSkillApi,\n updateSkillApi,\n deleteSkillApi,\n getSkillCategoriesApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSkillsOptions = ApiClientOptions;\n\n/**\n * Hook for skill CRUD operations\n */\nexport function useSkills(options: UseSkillsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listSkills, loading: listLoading, error: listError } = useApiAsync(\n () => listSkillsApi(optionsRef.current),\n (data) => data.skills,\n [] as Skill[]\n );\n\n const { execute: getSkill, loading: getLoading, error: getError } = useApiAsync(\n (skillId: string) => getSkillApi(skillId, optionsRef.current),\n (data) => data.skill || null,\n null as Skill | null\n );\n\n const { execute: createSkill, loading: createLoading, error: createError } = useApiAsync(\n (skill: Partial<Skill>) => createSkillApi(skill, optionsRef.current),\n (data) => data.skill || null,\n null as Skill | null\n );\n\n const { execute: updateSkill, loading: updateLoading, error: updateError } = useApiAsync(\n (skillId: string, skill: Partial<Skill>) => updateSkillApi(skillId, skill, optionsRef.current),\n (data) => data.skill || null,\n null as Skill | null\n );\n\n const { execute: deleteSkill, loading: deleteLoading, error: deleteError } = useApiAsync(\n (skillId: string) => deleteSkillApi(skillId, optionsRef.current),\n () => true,\n false\n );\n\n const { execute: getCategories, loading: categoriesLoading, error: categoriesError } = useApiAsync(\n () => getSkillCategoriesApi(optionsRef.current),\n (data) => data.categories,\n [] as string[]\n );\n\n const loading = listLoading || getLoading || createLoading || updateLoading || deleteLoading || categoriesLoading;\n const error = listError || getError || createError || updateError || deleteError || categoriesError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listSkills,\n getSkill,\n createSkill,\n updateSkill,\n deleteSkill,\n getCategories,\n }),\n [loading, error, listSkills, getSkill, createSkill, updateSkill, deleteSkill, getCategories]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { SubAgent } from \"../models\";\nimport {\n listSubAgentsApi,\n getSubAgentApi,\n createSubAgentApi,\n updateSubAgentApi,\n deleteSubAgentApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSubAgentsOptions = ApiClientOptions;\n\n/**\n * Hook for sub-agent CRUD operations\n */\nexport function useSubAgents(options: UseSubAgentsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listSubAgents, loading: listLoading, error: listError } = useApiAsync(\n () => listSubAgentsApi(optionsRef.current),\n (data) => data.subAgents,\n [] as SubAgent[]\n );\n\n const { execute: getSubAgent, loading: getLoading, error: getError } = useApiAsync(\n (subAgentId: string) => getSubAgentApi(subAgentId, optionsRef.current),\n (data) => data.subAgent || null,\n null as SubAgent | null\n );\n\n const { execute: createSubAgent, loading: createLoading, error: createError } = useApiAsync(\n (subAgent: Partial<SubAgent>) => createSubAgentApi(subAgent, optionsRef.current),\n (data) => data.subAgent || null,\n null as SubAgent | null\n );\n\n const { execute: updateSubAgent, loading: updateLoading, error: updateError } = useApiAsync(\n (subAgentId: string, subAgent: Partial<SubAgent>) => updateSubAgentApi(subAgentId, subAgent, optionsRef.current),\n (data) => data.subAgent || null,\n null as SubAgent | null\n );\n\n const { execute: deleteSubAgent, loading: deleteLoading, error: deleteError } = useApiAsync(\n (subAgentId: string) => deleteSubAgentApi(subAgentId, optionsRef.current),\n () => true,\n false\n );\n\n const loading = listLoading || getLoading || createLoading || updateLoading || deleteLoading;\n const error = listError || getError || createError || updateError || deleteError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listSubAgents,\n getSubAgent,\n createSubAgent,\n updateSubAgent,\n deleteSubAgent,\n }),\n [loading, error, listSubAgents, getSubAgent, createSubAgent, updateSubAgent, deleteSubAgent]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ToolDefinition } from \"../models\";\nimport {\n listToolDefinitionsApi,\n getToolDefinitionApi,\n createToolDefinitionApi,\n updateToolDefinitionApi,\n deleteToolDefinitionApi,\n getToolDefinitionsByIdsApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseToolDefinitionsOptions = ApiClientOptions;\n\n/**\n * Hook for tool definition CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listToolDefinitions, createToolDefinition } = useToolDefinitions({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const toolDefs = await listToolDefinitions();\n * ```\n */\nexport function useToolDefinitions(options: UseToolDefinitionsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listToolDefinitions, loading: listLoading, error: listError } = useApiAsync(\n () => listToolDefinitionsApi(optionsRef.current),\n (data) => data.toolDefinitions,\n [] as ToolDefinition[]\n );\n\n const { execute: getToolDefinition, loading: getLoading, error: getError } = useApiAsync(\n (toolDefId: string) => getToolDefinitionApi(toolDefId, optionsRef.current),\n (data) => data.toolDefinition || null,\n null as ToolDefinition | null\n );\n\n const { execute: getToolDefinitionsByIds, loading: getByIdsLoading, error: getByIdsError } = useApiAsync(\n (ids: string[]) => getToolDefinitionsByIdsApi(ids, optionsRef.current),\n (data) => data.toolDefinitions,\n [] as ToolDefinition[]\n );\n\n const { execute: createToolDefinition, loading: createLoading, error: createError } = useApiAsync(\n (toolDefinition: Partial<ToolDefinition>) => createToolDefinitionApi(toolDefinition, optionsRef.current),\n (data) => data.toolDefinition || null,\n null as ToolDefinition | null\n );\n\n const { execute: updateToolDefinition, loading: updateLoading, error: updateError } = useApiAsync(\n (toolDefId: string, toolDefinition: Partial<ToolDefinition>) => updateToolDefinitionApi(toolDefId, toolDefinition, optionsRef.current),\n (data) => data.toolDefinition || null,\n null as ToolDefinition | null\n );\n\n const { execute: deleteToolDefinition, loading: deleteLoading, error: deleteError } = useApiAsync(\n (toolDefId: string) => deleteToolDefinitionApi(toolDefId, optionsRef.current),\n () => true,\n false\n );\n\n const loading = listLoading || getLoading || getByIdsLoading || createLoading || updateLoading || deleteLoading;\n const error = listError || getError || getByIdsError || createError || updateError || deleteError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listToolDefinitions,\n getToolDefinition,\n getToolDefinitionsByIds,\n createToolDefinition,\n updateToolDefinition,\n deleteToolDefinition,\n }),\n [loading, error, listToolDefinitions, getToolDefinition, getToolDefinitionsByIds, createToolDefinition, updateToolDefinition, deleteToolDefinition]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { AgentJob } from \"../models\";\nimport {\n listAgentJobsApi,\n getAgentJobApi,\n createAgentJobApi,\n updateAgentJobApi,\n deleteAgentJobApi,\n pauseAgentJobApi,\n resumeAgentJobApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseAgentJobsOptions = ApiClientOptions;\n\n/**\n * Hook for agent job CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listAgentJobs, createAgentJob, pauseAgentJob } = useAgentJobs({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const jobs = await listAgentJobs();\n * await pauseAgentJob(jobId);\n * ```\n */\nexport function useAgentJobs(options: UseAgentJobsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listAgentJobs, loading: listLoading, error: listError } = useApiAsync(\n () => listAgentJobsApi(optionsRef.current),\n (data) => data.jobs,\n [] as AgentJob[]\n );\n\n const { execute: getAgentJob, loading: getLoading, error: getError } = useApiAsync(\n (jobId: string) => getAgentJobApi(jobId, optionsRef.current),\n (data) => data.job || null,\n null as AgentJob | null\n );\n\n const { execute: createAgentJob, loading: createLoading, error: createError } = useApiAsync(\n (job: Partial<AgentJob>) => createAgentJobApi(job, optionsRef.current),\n (data) => data.job || null,\n null as AgentJob | null\n );\n\n const { execute: updateAgentJob, loading: updateLoading, error: updateError } = useApiAsync(\n (jobId: string, job: Partial<AgentJob>) => updateAgentJobApi(jobId, job, optionsRef.current),\n (data) => data.job || null,\n null as AgentJob | null\n );\n\n const { execute: deleteAgentJob, loading: deleteLoading, error: deleteError } = useApiAsync(\n (jobId: string) => deleteAgentJobApi(jobId, optionsRef.current),\n () => true,\n false\n );\n\n const { execute: pauseAgentJob, loading: pauseLoading, error: pauseError } = useApiAsync(\n (jobId: string) => pauseAgentJobApi(jobId, optionsRef.current),\n (data) => data.job || null,\n null as AgentJob | null\n );\n\n const { execute: resumeAgentJob, loading: resumeLoading, error: resumeError } = useApiAsync(\n (jobId: string) => resumeAgentJobApi(jobId, optionsRef.current),\n (data) => data.job || null,\n null as AgentJob | null\n );\n\n const loading = listLoading || getLoading || createLoading || updateLoading || deleteLoading || pauseLoading || resumeLoading;\n const error = listError || getError || createError || updateError || deleteError || pauseError || resumeError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listAgentJobs,\n getAgentJob,\n createAgentJob,\n updateAgentJob,\n deleteAgentJob,\n pauseAgentJob,\n resumeAgentJob,\n }),\n [loading, error, listAgentJobs, getAgentJob, createAgentJob, updateAgentJob, deleteAgentJob, pauseAgentJob, resumeAgentJob]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { AgentWidget } from \"../models\";\nimport {\n listWidgetsApi,\n getWidgetApi,\n createWidgetApi,\n updateWidgetApi,\n deleteWidgetApi,\n getDefaultWidgetApi,\n setDefaultWidgetApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport interface UseWidgetsOptions extends ApiClientOptions {\n agentId: string;\n}\n\n/**\n * Hook for widget CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listWidgets, createWidget } = useWidgets({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * agentId: selectedAgentId,\n * });\n *\n * const widgets = await listWidgets();\n * ```\n */\nexport function useWidgets(options: UseWidgetsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listWidgets, loading: listLoading, error: listError } = useApiAsync(\n () => listWidgetsApi(optionsRef.current.agentId, optionsRef.current),\n (data) => data.widgets,\n [] as AgentWidget[]\n );\n\n const { execute: getWidget, loading: getLoading, error: getError } = useApiAsync(\n (widgetId: string) => getWidgetApi(widgetId, optionsRef.current),\n (data) => data.widget || null,\n null as AgentWidget | null\n );\n\n const { execute: getDefaultWidget, loading: defaultLoading, error: defaultError } = useApiAsync(\n () => getDefaultWidgetApi(optionsRef.current.agentId, optionsRef.current),\n (data) => data.widget || null,\n null as AgentWidget | null\n );\n\n const { execute: createWidget, loading: createLoading, error: createError } = useApiAsync(\n (widget: Partial<AgentWidget>) => createWidgetApi(optionsRef.current.agentId, widget, optionsRef.current),\n (data) => data.widget || null,\n null as AgentWidget | null\n );\n\n const { execute: updateWidget, loading: updateLoading, error: updateError } = useApiAsync(\n (widgetId: string, widget: Partial<AgentWidget>) => updateWidgetApi(widgetId, widget, optionsRef.current),\n (data) => data.widget || null,\n null as AgentWidget | null\n );\n\n const { execute: deleteWidget, loading: deleteLoading, error: deleteError } = useApiAsync(\n (widgetId: string) => deleteWidgetApi(widgetId, optionsRef.current),\n () => true,\n false\n );\n\n const { execute: setDefaultWidget, loading: setDefaultLoading, error: setDefaultError } = useApiAsync(\n (widgetId: string) => setDefaultWidgetApi(widgetId, optionsRef.current.agentId, optionsRef.current),\n () => true,\n false\n );\n\n const loading = listLoading || getLoading || defaultLoading || createLoading || updateLoading || deleteLoading || setDefaultLoading;\n const error = listError || getError || defaultError || createError || updateError || deleteError || setDefaultError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listWidgets,\n getWidget,\n getDefaultWidget,\n createWidget,\n updateWidget,\n deleteWidget,\n setDefaultWidget,\n }),\n [loading, error, listWidgets, getWidget, getDefaultWidget, createWidget, updateWidget, deleteWidget, setDefaultWidget]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { SkillUserConfig, ResolveSkillConfigResponse } from \"../models\";\nimport {\n getSkillUserConfigApi,\n updateSkillUserConfigApi,\n deleteSkillUserConfigApi,\n listSkillUserConfigsApi,\n resolveSkillConfigApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSkillUserConfigOptions = ApiClientOptions;\n\n/**\n * Hook for skill user configuration operations\n *\n * @example\n * ```tsx\n * const { loading, error, getSkillUserConfig, updateSkillUserConfig } = useSkillUserConfig({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const config = await getSkillUserConfig(skillId);\n * await updateSkillUserConfig(skillId, { enabled: true });\n * ```\n */\nexport function useSkillUserConfig(options: UseSkillUserConfigOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: getSkillUserConfig, loading: getLoading, error: getError } = useApiAsync(\n (skillId: string, agentId?: string) =>\n getSkillUserConfigApi(skillId, { ...optionsRef.current, agentId }),\n (data) => data.userConfig || null,\n null as SkillUserConfig | null\n );\n\n const { execute: updateSkillUserConfig, loading: updateLoading, error: updateError } = useApiAsync(\n (\n skillId: string,\n data: { enabled?: boolean; displayOrder?: number; config?: Record<string, unknown>; agentId?: string }\n ) => updateSkillUserConfigApi(skillId, data, optionsRef.current),\n (data) => data.userConfig || null,\n null as SkillUserConfig | null\n );\n\n const { execute: deleteSkillUserConfig, loading: deleteLoading, error: deleteError } = useApiAsync(\n (skillId: string, agentId?: string) =>\n deleteSkillUserConfigApi(skillId, { ...optionsRef.current, agentId }),\n () => true,\n false\n );\n\n const { execute: listSkillUserConfigs, loading: listLoading, error: listError } = useApiAsync(\n (params?: { agentId?: string; limit?: number; offset?: number }) =>\n listSkillUserConfigsApi({ ...optionsRef.current, ...params }),\n (data) => data.userConfigs || [],\n [] as SkillUserConfig[]\n );\n\n const { execute: resolveSkillConfig, loading: resolveLoading, error: resolveError } = useApiAsync(\n (skillId: string, agentId: string) => resolveSkillConfigApi(skillId, agentId, optionsRef.current),\n (data) => data,\n null as ResolveSkillConfigResponse | null\n );\n\n const loading = getLoading || updateLoading || deleteLoading || listLoading || resolveLoading;\n const error = getError || updateError || deleteError || listError || resolveError;\n\n return useMemo(\n () => ({\n loading,\n error,\n getSkillUserConfig,\n updateSkillUserConfig,\n deleteSkillUserConfig,\n listSkillUserConfigs,\n resolveSkillConfig,\n }),\n [loading, error, getSkillUserConfig, updateSkillUserConfig, deleteSkillUserConfig, listSkillUserConfigs, resolveSkillConfig]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport {\n getAgentChatsAnalyticsApi,\n getAgentCSATAnalyticsApi,\n getAgentListAnalyticsApi,\n getTaskOutcomesApi,\n type DateFilter,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseAnalyticsOptions = ApiClientOptions;\n\n/**\n * Hook for agent analytics operations\n *\n * @example\n * ```tsx\n * const { loading, error, getAgentChatsAnalytics, getAgentCSATAnalytics } = useAnalytics({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const chatsData = await getAgentChatsAnalytics({ from: '2024-01-01', to: '2024-12-31' });\n * ```\n */\nexport function useAnalytics(options: UseAnalyticsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: getAgentChatsAnalytics, loading: chatsLoading, error: chatsError } = useApiAsync(\n (params: { date_filter: DateFilter; agent_id?: string }) =>\n getAgentChatsAnalyticsApi(params, optionsRef.current),\n (data) => data.data,\n [] as unknown[]\n );\n\n const { execute: getAgentCSATAnalytics, loading: csatLoading, error: csatError } = useApiAsync(\n (params: { date_filter: DateFilter; agent_id?: string }) =>\n getAgentCSATAnalyticsApi(params, optionsRef.current),\n (data) => data.data,\n [] as unknown[]\n );\n\n const { execute: getAgentListAnalytics, loading: listLoading, error: listError } = useApiAsync(\n () => getAgentListAnalyticsApi(optionsRef.current),\n (data) => data.data,\n [] as unknown[]\n );\n\n const { execute: getTaskOutcomes, loading: taskLoading, error: taskError } = useApiAsync(\n (params: { date_filter: DateFilter }) => getTaskOutcomesApi(params, optionsRef.current),\n (data) => data.data,\n [] as unknown[]\n );\n\n const loading = chatsLoading || csatLoading || listLoading || taskLoading;\n const error = chatsError || csatError || listError || taskError;\n\n return useMemo(\n () => ({\n loading,\n error,\n getAgentChatsAnalytics,\n getAgentCSATAnalytics,\n getAgentListAnalytics,\n getTaskOutcomes,\n }),\n [loading, error, getAgentChatsAnalytics, getAgentCSATAnalytics, getAgentListAnalytics, getTaskOutcomes]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { UserIntegration, IntegrationProviderTS, IntegrationTypeTS } from \"../models\";\nimport {\n listIntegrationsApi,\n getIntegrationApi,\n connectIntegrationApi,\n disconnectIntegrationApi,\n refreshIntegrationApi,\n updateIntegrationTriageApi,\n runEmailTriageApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseIntegrationsOptions = ApiClientOptions;\n\n/**\n * Hook for user integration operations (OAuth connections)\n *\n * @example\n * ```tsx\n * const { loading, error, listIntegrations, connectIntegration, disconnectIntegration } = useIntegrations({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const integrations = await listIntegrations();\n * const { auth_url } = await connectIntegration({ provider: 'google', integrationType: 'email', redirectUri: '/callback' });\n * ```\n */\nexport function useIntegrations(options: UseIntegrationsOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listIntegrations, loading: listLoading, error: listError } = useApiAsync(\n () => listIntegrationsApi(optionsRef.current),\n (data) => data.integrations,\n [] as UserIntegration[]\n );\n\n const { execute: getIntegration, loading: getLoading, error: getError } = useApiAsync(\n (provider: IntegrationProviderTS, integrationType: IntegrationTypeTS) =>\n getIntegrationApi(provider, integrationType, optionsRef.current),\n (data) => data.integration || null,\n null as UserIntegration | null\n );\n\n const { execute: connectIntegration, loading: connectLoading, error: connectError } = useApiAsync(\n (params: { provider: IntegrationProviderTS; integrationType: IntegrationTypeTS; redirectUri: string }) =>\n connectIntegrationApi(params, optionsRef.current),\n (data) => ({ authUrl: data.auth_url, state: data.state }),\n null as { authUrl: string; state: string } | null\n );\n\n const { execute: disconnectIntegration, loading: disconnectLoading, error: disconnectError } = useApiAsync(\n (params: { provider: IntegrationProviderTS; integrationType: IntegrationTypeTS }) =>\n disconnectIntegrationApi(params, optionsRef.current),\n () => true,\n false\n );\n\n const { execute: refreshIntegration, loading: refreshLoading, error: refreshError } = useApiAsync(\n (params: { provider: IntegrationProviderTS; integrationType: IntegrationTypeTS }) =>\n refreshIntegrationApi(params, optionsRef.current),\n (data) => data.integration || null,\n null as UserIntegration | null\n );\n\n const { execute: updateTriage, loading: updateTriageLoading, error: updateTriageError } = useApiAsync(\n (params: { provider: IntegrationProviderTS; integrationType: IntegrationTypeTS; triageEnabled: boolean }) =>\n updateIntegrationTriageApi(params, optionsRef.current),\n (data) => data.integration || null,\n null as UserIntegration | null\n );\n\n const { execute: runEmailTriage, loading: runTriageLoading, error: runTriageError } = useApiAsync(\n () => runEmailTriageApi(optionsRef.current),\n (data) => ({ success: data.success, emailsFound: data.emails_found, instancesCreated: data.instances_created }),\n null as { success: boolean; emailsFound: number; instancesCreated: number } | null\n );\n\n const loading = listLoading || getLoading || connectLoading || disconnectLoading || refreshLoading || updateTriageLoading || runTriageLoading;\n const error = listError || getError || connectError || disconnectError || refreshError || updateTriageError || runTriageError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listIntegrations,\n getIntegration,\n connectIntegration,\n disconnectIntegration,\n refreshIntegration,\n updateTriage,\n runEmailTriage,\n }),\n [loading, error, listIntegrations, getIntegration, connectIntegration, disconnectIntegration, refreshIntegration, updateTriage, runEmailTriage]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { Sandbox, CreateSandboxRequest } from \"../models\";\nimport {\n createSandboxApi,\n getSandboxApi,\n updateSandboxApi,\n listSandboxesApi,\n deleteSandboxApi,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSandboxOptions = ApiClientOptions;\n\n/**\n * Hook for sandbox operations (AI-generated HTML sandboxes)\n *\n * @example\n * ```tsx\n * const { createSandbox, getSandbox, listSandboxes, loading, error } = useSandbox({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const result = await createSandbox({ prompt: \"Create a bar chart showing sales data\" });\n * console.log(result.url); // sandbox URL\n * ```\n */\nexport function useSandbox(options: UseSandboxOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: createSandbox, loading: createLoading, error: createError } = useApiAsync(\n (request: Omit<CreateSandboxRequest, \"orgId\">) => createSandboxApi(request, optionsRef.current),\n (data) => ({ id: data.id, url: data.url, sandbox: data.sandbox }),\n null as { id: string; url: string; sandbox?: Sandbox } | null\n );\n\n const { execute: getSandbox, loading: getLoading, error: getError } = useApiAsync(\n (sandboxId: string) => getSandboxApi(sandboxId, optionsRef.current),\n (data) => data.sandbox || null,\n null as Sandbox | null\n );\n\n const { execute: updateSandbox, loading: updateLoading, error: updateError } = useApiAsync(\n (sandboxId: string, request: { prompt: string; title?: string }) =>\n updateSandboxApi(sandboxId, request, optionsRef.current),\n (data) => ({ id: data.id, url: data.url, sandbox: data.sandbox }),\n null as { id: string; url: string; sandbox?: Sandbox } | null\n );\n\n const { execute: listSandboxes, loading: listLoading, error: listError } = useApiAsync(\n (limit?: number) => listSandboxesApi({ ...optionsRef.current, limit }),\n (data) => ({ sandboxes: data.sandboxes, total: data.total }),\n { sandboxes: [] as Sandbox[], total: 0 }\n );\n\n const { execute: deleteSandbox, loading: deleteLoading, error: deleteError } = useApiAsync(\n (sandboxId: string) => deleteSandboxApi(sandboxId, optionsRef.current),\n (data) => data.success,\n false\n );\n\n const loading = createLoading || getLoading || updateLoading || listLoading || deleteLoading;\n const error = createError || getError || updateError || listError || deleteError;\n\n return useMemo(\n () => ({\n loading,\n error,\n createSandbox,\n getSandbox,\n updateSandbox,\n listSandboxes,\n deleteSandbox,\n }),\n [loading, error, createSandbox, getSandbox, updateSandbox, listSandboxes, deleteSandbox]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport {\n listSchedulerTasksApi,\n createSchedulerTaskApi,\n getSchedulerTaskApi,\n updateSchedulerTaskApi,\n deleteSchedulerTaskApi,\n snoozeSchedulerTaskApi,\n completeSchedulerTaskApi,\n startSchedulerTaskApi,\n type SchedulerTask,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSchedulerTasksOptions = ApiClientOptions;\n\n/**\n * Hook for scheduler task operations\n *\n * @example\n * ```tsx\n * const { listTasks, createTask, snoozeTask, loading, error } = useSchedulerTasks({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const tasks = await listTasks();\n * await snoozeTask(taskId, { amount: 30, unit: \"minutes\" });\n * ```\n */\nexport function useSchedulerTasks(options: UseSchedulerTasksOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listTasks, loading: listLoading, error: listError } = useApiAsync(\n (params?: { status?: string; limit?: number; offset?: number }) =>\n listSchedulerTasksApi({ ...optionsRef.current, ...params }),\n (data) => data.tasks,\n [] as SchedulerTask[]\n );\n\n const { execute: createTask, loading: createLoading, error: createError } = useApiAsync(\n (task: Partial<SchedulerTask>) => createSchedulerTaskApi(task, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const { execute: getTask, loading: getLoading, error: getError } = useApiAsync(\n (taskId: string) => getSchedulerTaskApi(taskId, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const { execute: updateTask, loading: updateLoading, error: updateError } = useApiAsync(\n (taskId: string, task: Partial<SchedulerTask>) =>\n updateSchedulerTaskApi(taskId, task, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const { execute: deleteTask, loading: deleteLoading, error: deleteError } = useApiAsync(\n (taskId: string) => deleteSchedulerTaskApi(taskId, optionsRef.current),\n (data) => data.success,\n false\n );\n\n const { execute: snoozeTask, loading: snoozeLoading, error: snoozeError } = useApiAsync(\n (taskId: string, delay: { amount: number; unit: string }) =>\n snoozeSchedulerTaskApi(taskId, delay, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const { execute: completeTask, loading: completeLoading, error: completeError } = useApiAsync(\n (taskId: string) => completeSchedulerTaskApi(taskId, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const { execute: startTask, loading: startLoading, error: startError } = useApiAsync(\n (taskId: string) => startSchedulerTaskApi(taskId, optionsRef.current),\n (data) => data.task || null,\n null as SchedulerTask | null\n );\n\n const loading = listLoading || createLoading || getLoading || updateLoading || deleteLoading || snoozeLoading || completeLoading || startLoading;\n const error = listError || createError || getError || updateError || deleteError || snoozeError || completeError || startError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listTasks,\n createTask,\n getTask,\n updateTask,\n deleteTask,\n snoozeTask,\n completeTask,\n startTask,\n }),\n [loading, error, listTasks, createTask, getTask, updateTask, deleteTask, snoozeTask, completeTask, startTask]\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport {\n listSchedulesApi,\n createScheduleApi,\n getScheduleApi,\n updateScheduleApi,\n deleteScheduleApi,\n pauseScheduleApi,\n resumeScheduleApi,\n runScheduleApi,\n type SchedulerSchedule,\n} from \"../api\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\nexport type UseSchedulerSchedulesOptions = ApiClientOptions;\n\n/**\n * Hook for scheduler schedule operations (recurring jobs)\n *\n * @example\n * ```tsx\n * const { listSchedules, createSchedule, pauseSchedule, loading, error } = useSchedulerSchedules({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const schedules = await listSchedules();\n * await pauseSchedule(scheduleId);\n * ```\n */\nexport function useSchedulerSchedules(options: UseSchedulerSchedulesOptions) {\n const optionsRef = useOptionsRef(options);\n\n const { execute: listSchedules, loading: listLoading, error: listError } = useApiAsync(\n (params?: { status?: string; limit?: number; offset?: number }) =>\n listSchedulesApi({ ...optionsRef.current, ...params }),\n (data) => data.schedules,\n [] as SchedulerSchedule[]\n );\n\n const { execute: createSchedule, loading: createLoading, error: createError } = useApiAsync(\n (schedule: Partial<SchedulerSchedule>) => createScheduleApi(schedule, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const { execute: getSchedule, loading: getLoading, error: getError } = useApiAsync(\n (scheduleId: string) => getScheduleApi(scheduleId, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const { execute: updateSchedule, loading: updateLoading, error: updateError } = useApiAsync(\n (scheduleId: string, schedule: Partial<SchedulerSchedule>) =>\n updateScheduleApi(scheduleId, schedule, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const { execute: deleteSchedule, loading: deleteLoading, error: deleteError } = useApiAsync(\n (scheduleId: string) => deleteScheduleApi(scheduleId, optionsRef.current),\n (data) => data.success,\n false\n );\n\n const { execute: pauseSchedule, loading: pauseLoading, error: pauseError } = useApiAsync(\n (scheduleId: string) => pauseScheduleApi(scheduleId, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const { execute: resumeSchedule, loading: resumeLoading, error: resumeError } = useApiAsync(\n (scheduleId: string) => resumeScheduleApi(scheduleId, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const { execute: runSchedule, loading: runLoading, error: runError } = useApiAsync(\n (scheduleId: string) => runScheduleApi(scheduleId, optionsRef.current),\n (data) => data.schedule || null,\n null as SchedulerSchedule | null\n );\n\n const loading = listLoading || createLoading || getLoading || updateLoading || deleteLoading || pauseLoading || resumeLoading || runLoading;\n const error = listError || createError || getError || updateError || deleteError || pauseError || resumeError || runError;\n\n return useMemo(\n () => ({\n loading,\n error,\n listSchedules,\n createSchedule,\n getSchedule,\n updateSchedule,\n deleteSchedule,\n pauseSchedule,\n resumeSchedule,\n runSchedule,\n }),\n [loading, error, listSchedules, createSchedule, getSchedule, updateSchedule, deleteSchedule, pauseSchedule, resumeSchedule, runSchedule]\n );\n}\n","\"use client\";\n\nimport { useState, useEffect, useRef, useCallback, useMemo } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { AgentSummary, TriggerBackgroundAgentRequest, TriggerBackgroundAgentResponse, BackgroundAgentStatusResponse, AgentStatusUpdate } from \"../models\";\nimport {\n listAgentsSummaryApi,\n triggerBackgroundAgentApi,\n checkBackgroundAgentStatusApi,\n} from \"../api\";\nimport type { ChatMessage, Attachment } from \"@elqnt/chat/models\";\nimport { createBGAgentTransport } from \"../transport/sse\";\nimport type { BGAgentTransport, BackgroundAgentProgressEvent } from \"../transport/types\";\nimport { useApiAsync } from \"@elqnt/api-client/hooks\";\nimport { useOptionsRef } from \"./use-options-ref\";\n\n/** Live state accumulated from SSE events for a single background agent */\nexport interface BGAgentLiveState {\n status: \"running\" | \"completed\" | \"failed\";\n progressLog: string[];\n latestMessage: string;\n result?: string;\n error?: string;\n}\n\n/** Options for useBackgroundAgents hook */\nexport interface UseBackgroundAgentsOptions extends ApiClientOptions {\n /** Chat service URL for SSE streaming (e.g., wss://chat.example.com or https://chat.example.com) */\n chatServiceUrl?: string;\n /** User ID (typically email) for chat operations */\n userId?: string;\n}\n\n/** Background status reported by the agent via report_status tool */\nexport type BackgroundStatus = \"processing\" | \"completed\" | \"failed\";\n\n/** Watched chat state with messages */\nexport interface WatchedChatState {\n chatKey: string;\n messages: ChatMessage[];\n status: \"loading\" | \"active\" | \"completed\" | \"error\";\n /** Background agent status (from report_status tool) */\n backgroundStatus?: BackgroundStatus;\n /** Background agent status message (from report_status tool) */\n backgroundStatusMessage?: string;\n /** History of all status updates for inline display */\n statusHistory: AgentStatusUpdate[];\n title?: string;\n metadata?: Record<string, unknown>;\n error?: string;\n}\n\n/**\n * Hook for triggering background agents, streaming progress via SSE, and checking status.\n *\n * @example\n * ```tsx\n * const { startChat, sendMessage } = useChatContext();\n * const { liveStates, createTask, streamJob, checkStatus } = useBackgroundAgents({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * startChat,\n * sendMessage,\n * });\n *\n * // Create a background task (simplified flow using chat)\n * const chatKey = await createTask(\"Analyze the quarterly report\");\n *\n * // Or trigger via jobs API (PostgreSQL-backed)\n * const result = await triggerAgent({ name: \"Analysis\", prompt: \"...\", agentName: \"Research Agent\" });\n * if (result?.jobId) streamJob(result.jobId);\n * ```\n */\nexport function useBackgroundAgents(options: UseBackgroundAgentsOptions) {\n const optionsRef = useOptionsRef(options);\n const [liveStates, setLiveStates] = useState<Record<string, BGAgentLiveState>>({});\n const [watchedChats, setWatchedChats] = useState<Record<string, WatchedChatState>>({});\n const transportRef = useRef<BGAgentTransport | null>(null);\n const sseRef = useRef<EventSource | null>(null);\n const watchedChatKeyRef = useRef<string | null>(null);\n\n // Initialize transport once\n useEffect(() => {\n const transport = createBGAgentTransport();\n transport.connect({ streamBaseUrl: optionsRef.current.baseUrl });\n transportRef.current = transport;\n return () => {\n transport.disconnect();\n transportRef.current = null;\n };\n }, []);\n\n // Track which jobIds already have handlers registered\n const subscribedJobsRef = useRef<Set<string>>(new Set());\n\n // Stream a job's progress via SSE\n const streamJob = useCallback((jobId: string) => {\n const transport = transportRef.current;\n if (!transport) return;\n\n // Skip if already subscribed (prevents duplicate handlers)\n if (subscribedJobsRef.current.has(jobId)) return;\n subscribedJobsRef.current.add(jobId);\n\n // Initialize live state\n setLiveStates((prev) => ({\n ...prev,\n [jobId]: prev[jobId] || { status: \"running\", progressLog: [], latestMessage: \"Starting...\" },\n }));\n\n // Subscribe to events for this job\n transport.on(\"bg_agent.round\", (event: BackgroundAgentProgressEvent) => {\n if (event.jobId !== jobId || !event.content) return;\n setLiveStates((prev) => {\n const cur = prev[jobId] || { status: \"running\" as const, progressLog: [], latestMessage: \"\" };\n return {\n ...prev,\n [jobId]: { ...cur, status: \"running\", progressLog: [...cur.progressLog, event.content!], latestMessage: event.content! },\n };\n });\n });\n\n transport.on(\"bg_agent.completed\", (event: BackgroundAgentProgressEvent) => {\n if (event.jobId !== jobId) return;\n subscribedJobsRef.current.delete(jobId);\n setLiveStates((prev) => ({\n ...prev,\n [jobId]: { ...(prev[jobId] || { progressLog: [], latestMessage: \"\" }), status: \"completed\", result: event.result, latestMessage: event.result || \"Completed\" },\n }));\n });\n\n transport.on(\"bg_agent.failed\", (event: BackgroundAgentProgressEvent) => {\n if (event.jobId !== jobId) return;\n subscribedJobsRef.current.delete(jobId);\n setLiveStates((prev) => ({\n ...prev,\n [jobId]: { ...(prev[jobId] || { progressLog: [], latestMessage: \"\" }), status: \"failed\", error: event.error, latestMessage: event.error || \"Failed\" },\n }));\n });\n\n // Open the SSE stream\n transport.streamJob(jobId);\n }, []);\n\n // Trigger a background agent\n const { execute: triggerAgent, loading: triggerLoading, error: triggerError } = useApiAsync(\n (request: Pick<TriggerBackgroundAgentRequest, \"name\" | \"prompt\" | \"agentName\" | \"context\" | \"enableSSE\" | \"description\">) =>\n triggerBackgroundAgentApi(request, optionsRef.current),\n (data) => data as TriggerBackgroundAgentResponse,\n null as TriggerBackgroundAgentResponse | null\n );\n\n // Check status\n const { execute: checkStatus, loading: statusLoading, error: statusError } = useApiAsync(\n (jobId: string) => checkBackgroundAgentStatusApi(jobId, optionsRef.current),\n (data) => data as BackgroundAgentStatusResponse,\n null as BackgroundAgentStatusResponse | null\n );\n\n // List agent summaries (for agent picker in \"New\" dialog)\n const { execute: listAgentSummaries, loading: summaryLoading, error: summaryError } = useApiAsync(\n () => listAgentsSummaryApi(optionsRef.current),\n (data) => data.agents || [],\n [] as AgentSummary[]\n );\n\n // Create a background task using the chat system (simplified flow, no PostgreSQL)\n // Calls the chat service directly (not through API Gateway)\n const createTask = useCallback(async (prompt: string, attachments?: Attachment[]): Promise<string | null> => {\n const { chatServiceUrl, orgId, userId } = optionsRef.current;\n if (!chatServiceUrl) {\n console.error(\"chatServiceUrl is required for createTask\");\n return null;\n }\n if (!userId) {\n console.error(\"userId is required for createTask\");\n return null;\n }\n\n try {\n // Create chat with background_agent by name and background flag\n // Direct call to chat service (same pattern as regular chat)\n // Include userId and userEmail in metadata for integration tools (email, calendar, etc.)\n const createResponse = await fetch(`${chatServiceUrl}/create`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n orgId,\n userId,\n metadata: {\n agentName: \"background_agent\",\n background: true,\n userId: userId,\n userEmail: userId,\n originalPrompt: prompt,\n },\n }),\n });\n\n if (!createResponse.ok) {\n const errorText = await createResponse.text();\n console.error(\"Failed to create background chat:\", errorText);\n return null;\n }\n\n const createData = await createResponse.json();\n // Chat service wraps response in { success: true, data: { chatKey: \"...\" } }\n const chatKey = createData.data?.chatKey || createData.chatKey;\n\n if (!chatKey) {\n console.error(\"No chatKey returned from create\");\n return null;\n }\n\n // Send the user's prompt as the first message\n // Direct call to chat service\n const sendResponse = await fetch(`${chatServiceUrl}/send`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n orgId,\n userId,\n chatKey,\n message: {\n role: \"user\",\n content: prompt,\n attachments: attachments || undefined,\n },\n }),\n });\n\n if (!sendResponse.ok) {\n const errorText = await sendResponse.text();\n console.error(\"Failed to send message:\", errorText);\n // Still return chatKey since chat was created\n }\n\n return chatKey;\n } catch (err) {\n console.error(\"Failed to create background task:\", err);\n return null;\n }\n }, []);\n\n // Watch a chat for updates via SSE\n // Calls the chat service directly (not through API Gateway)\n const watchChat = useCallback(async (chatKey: string): Promise<void> => {\n const { chatServiceUrl, orgId, userId } = optionsRef.current;\n\n if (!chatServiceUrl) {\n console.error(\"chatServiceUrl is required for watchChat\");\n return;\n }\n if (!userId) {\n console.error(\"userId is required for watchChat\");\n return;\n }\n\n // Close existing SSE connection if watching a different chat\n if (sseRef.current && watchedChatKeyRef.current !== chatKey) {\n sseRef.current.close();\n sseRef.current = null;\n }\n\n watchedChatKeyRef.current = chatKey;\n\n // Set loading state\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: { chatKey, messages: [], status: \"loading\", statusHistory: [] },\n }));\n\n try {\n // Load the chat data directly from chat service (same pattern as regular chat)\n const loadResponse = await fetch(`${chatServiceUrl}/load`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ orgId, chatKey, userId }),\n });\n\n if (!loadResponse.ok) {\n const errorText = await loadResponse.text();\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: { chatKey, messages: [], status: \"error\", statusHistory: [], error: errorText || \"Failed to load chat\" },\n }));\n return;\n }\n\n const loadData = await loadResponse.json();\n // Chat service wraps response in { success: true, data: { chat: {...} } }\n const chat = loadData.data?.chat || loadData.chat;\n\n if (!chat) {\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: { chatKey, messages: [], status: \"error\", statusHistory: [], error: \"No chat data returned\" },\n }));\n return;\n }\n\n // Extract background status from chat metadata if available\n const bgStatus = chat.metadata?.backgroundStatus as BackgroundStatus | undefined;\n const bgMessage = chat.metadata?.backgroundStatusMessage as string | undefined;\n\n // Determine initial status based on background status\n let initialStatus: WatchedChatState[\"status\"] = \"active\";\n if (bgStatus === \"completed\") initialStatus = \"completed\";\n else if (bgStatus === \"failed\") initialStatus = \"error\";\n\n // Initialize status history (will be populated from SSE events)\n const initialStatusHistory: AgentStatusUpdate[] = [];\n\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: {\n chatKey,\n messages: chat.messages || [],\n status: initialStatus,\n title: chat.title,\n metadata: chat.metadata as Record<string, unknown>,\n backgroundStatus: bgStatus,\n backgroundStatusMessage: bgMessage,\n statusHistory: initialStatusHistory,\n },\n }));\n\n // Connect to SSE for real-time updates (direct to chat service)\n const sseUrl = `${chatServiceUrl}/stream?orgId=${orgId}&userId=${userId}&chatId=${chatKey}&clientType=customer`;\n const sse = new EventSource(sseUrl);\n sseRef.current = sse;\n\n // Helper to process SSE event data\n const processEventData = (data: Record<string, unknown>) => {\n console.log(\"[useBackgroundAgents] SSE event received:\", data.type, data);\n // Handle new message events\n if (data.type === \"message\" && data.message) {\n setWatchedChats((prev) => {\n const current = prev[chatKey];\n if (!current) return prev;\n // Avoid duplicate messages\n const msg = data.message as ChatMessage;\n const exists = current.messages.some((m) => m.id === msg.id);\n if (exists) return prev;\n return {\n ...prev,\n [chatKey]: {\n ...current,\n messages: [...current.messages, msg],\n },\n };\n });\n }\n // Handle background status updates from report_status tool\n const eventData = data.data as Record<string, unknown> | undefined;\n if (data.type === \"agent_context_update\" && eventData?.backgroundStatus) {\n const bgStatus = eventData.backgroundStatus as BackgroundStatus;\n const bgMessage = eventData.backgroundStatusMessage as string | undefined;\n const timestamp = Date.now();\n console.log(\"[useBackgroundAgents] Background status update:\", bgStatus, bgMessage);\n setWatchedChats((prev) => {\n const current = prev[chatKey];\n if (!current) return prev;\n // Update background status and auto-set completion status\n const newStatus: WatchedChatState[\"status\"] =\n bgStatus === \"completed\" ? \"completed\" :\n bgStatus === \"failed\" ? \"error\" :\n current.status;\n // Add to status history (avoid duplicates by checking last entry)\n const newHistory = [...current.statusHistory];\n const lastEntry = newHistory[newHistory.length - 1];\n if (!lastEntry || lastEntry.message !== bgMessage || lastEntry.status !== bgStatus) {\n newHistory.push({\n status: bgStatus,\n message: bgMessage || \"\",\n timestamp,\n });\n }\n return {\n ...prev,\n [chatKey]: {\n ...current,\n status: newStatus,\n backgroundStatus: bgStatus,\n backgroundStatusMessage: bgMessage,\n statusHistory: newHistory,\n },\n };\n });\n }\n // Handle explicit chat completion (fallback)\n if (data.type === \"chat_ended\" || data.type === \"agent_done\") {\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: { ...prev[chatKey], status: \"completed\" },\n }));\n }\n };\n\n // Default message handler (for events without custom event type)\n sse.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n processEventData(data);\n } catch (err) {\n console.error(\"Failed to parse SSE event:\", err);\n }\n };\n\n // Handler for custom event types (backend sends events with `event: agent_context_update`)\n // Note: EventSource requires separate listeners for custom event types\n const customEventTypes = [\"agent_context_update\", \"message\", \"chat_ended\", \"agent_done\"];\n for (const eventType of customEventTypes) {\n sse.addEventListener(eventType, (event) => {\n try {\n const data = JSON.parse((event as MessageEvent).data);\n processEventData(data);\n } catch (err) {\n console.error(`Failed to parse SSE ${eventType} event:`, err);\n }\n });\n }\n\n sse.onerror = () => {\n // SSE will auto-reconnect, but log the error\n console.warn(\"SSE connection error for chat:\", chatKey);\n };\n } catch (err) {\n console.error(\"Failed to watch chat:\", err);\n setWatchedChats((prev) => ({\n ...prev,\n [chatKey]: { chatKey, messages: [], status: \"error\", statusHistory: [], error: String(err) },\n }));\n }\n }, []);\n\n // Stop watching a chat\n const unwatchChat = useCallback((chatKey: string) => {\n if (watchedChatKeyRef.current === chatKey && sseRef.current) {\n sseRef.current.close();\n sseRef.current = null;\n watchedChatKeyRef.current = null;\n }\n setWatchedChats((prev) => {\n const next = { ...prev };\n delete next[chatKey];\n return next;\n });\n }, []);\n\n // Cleanup SSE on unmount\n useEffect(() => {\n return () => {\n if (sseRef.current) {\n sseRef.current.close();\n sseRef.current = null;\n }\n };\n }, []);\n\n const loading = triggerLoading || statusLoading || summaryLoading;\n const error = triggerError || statusError || summaryError;\n\n return useMemo(() => ({\n liveStates,\n streamJob,\n createTask,\n watchChat,\n unwatchChat,\n watchedChats,\n triggerAgent,\n checkStatus,\n listAgentSummaries,\n loading,\n error,\n }), [liveStates, streamJob, createTask, watchChat, unwatchChat, watchedChats, triggerAgent, checkStatus, listAgentSummaries, loading, error]);\n}\n"],"mappings":"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","names":["useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useMemo","useApiAsync","useApiAsync","useMemo","useEffect","useRef","useMemo","useApiAsync","useRef","useEffect","useApiAsync","bgStatus","bgMessage","useMemo"]}
@@ -0,0 +1,133 @@
1
+ "use client";
2
+
3
+ // transport/sse.ts
4
+ function createBGAgentTransport(options) {
5
+ const debug = options?.debug ?? false;
6
+ let config = {};
7
+ let state = "disconnected";
8
+ let error;
9
+ const streams = /* @__PURE__ */ new Map();
10
+ const globalHandlers = /* @__PURE__ */ new Set();
11
+ const typeHandlers = /* @__PURE__ */ new Map();
12
+ function log(...args) {
13
+ if (debug) console.log("[BGAgentTransport]", ...args);
14
+ }
15
+ function emit(event) {
16
+ for (const handler of globalHandlers) {
17
+ try {
18
+ handler(event);
19
+ } catch (err) {
20
+ console.error("[BGAgentTransport] Handler error:", err);
21
+ }
22
+ }
23
+ const handlers = typeHandlers.get(event.type);
24
+ if (handlers) {
25
+ for (const handler of handlers) {
26
+ try {
27
+ handler(event);
28
+ } catch (err) {
29
+ console.error("[BGAgentTransport] Handler error:", err);
30
+ }
31
+ }
32
+ }
33
+ }
34
+ function connect(cfg) {
35
+ config = cfg || {};
36
+ state = "connected";
37
+ error = void 0;
38
+ log("Connected", config);
39
+ }
40
+ function streamJob(jobId) {
41
+ if (streams.has(jobId)) {
42
+ log("Already streaming", jobId);
43
+ return;
44
+ }
45
+ const baseUrl = config.streamBaseUrl || "";
46
+ const url = `${baseUrl}/api/v1/bg-agents/stream?jobId=${jobId}`;
47
+ log("Opening stream", url);
48
+ const es = new EventSource(url);
49
+ es.onmessage = (event) => {
50
+ try {
51
+ const data = JSON.parse(event.data);
52
+ emit(data);
53
+ if (data.type === "bg_agent.completed" || data.type === "bg_agent.failed") {
54
+ log("Terminal event, closing stream", jobId, data.type);
55
+ es.close();
56
+ streams.delete(jobId);
57
+ if (streams.size === 0) state = "connected";
58
+ }
59
+ } catch {
60
+ }
61
+ };
62
+ es.onopen = () => {
63
+ state = "streaming";
64
+ error = void 0;
65
+ log("Stream opened", jobId);
66
+ };
67
+ es.onerror = () => {
68
+ log("Stream error", jobId);
69
+ es.close();
70
+ streams.delete(jobId);
71
+ if (streams.size === 0) state = "connected";
72
+ error = { code: "STREAM_ERROR", message: `SSE connection failed for job ${jobId}`, retryable: true };
73
+ };
74
+ streams.set(jobId, es);
75
+ }
76
+ function stopJob(jobId) {
77
+ const es = streams.get(jobId);
78
+ if (es) {
79
+ es.close();
80
+ streams.delete(jobId);
81
+ log("Stopped stream", jobId);
82
+ if (streams.size === 0) state = "connected";
83
+ }
84
+ }
85
+ function onEvent(handler) {
86
+ globalHandlers.add(handler);
87
+ return () => globalHandlers.delete(handler);
88
+ }
89
+ function on(eventType, handler) {
90
+ if (!typeHandlers.has(eventType)) {
91
+ typeHandlers.set(eventType, /* @__PURE__ */ new Set());
92
+ }
93
+ typeHandlers.get(eventType).add(handler);
94
+ return () => typeHandlers.get(eventType)?.delete(handler);
95
+ }
96
+ function disconnect() {
97
+ for (const [jobId, es] of streams) {
98
+ es.close();
99
+ log("Closed stream", jobId);
100
+ }
101
+ streams.clear();
102
+ globalHandlers.clear();
103
+ typeHandlers.clear();
104
+ state = "disconnected";
105
+ error = void 0;
106
+ log("Disconnected");
107
+ }
108
+ function getState() {
109
+ return state;
110
+ }
111
+ function getError() {
112
+ return error;
113
+ }
114
+ function clearError() {
115
+ error = void 0;
116
+ }
117
+ return {
118
+ connect,
119
+ streamJob,
120
+ stopJob,
121
+ onEvent,
122
+ on,
123
+ disconnect,
124
+ getState,
125
+ getError,
126
+ clearError
127
+ };
128
+ }
129
+
130
+ export {
131
+ createBGAgentTransport
132
+ };
133
+ //# sourceMappingURL=chunk-3EHE4O57.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../transport/sse.ts"],"sourcesContent":["/**\n * Browser SSE Transport for Background Agent Progress\n *\n * Uses native EventSource for receiving agent progress events.\n * Follows the same factory pattern as @elqnt/docs/transport/sse.ts.\n *\n * @example\n * ```ts\n * import { createBGAgentTransport } from \"@elqnt/agents/transport\";\n *\n * const transport = createBGAgentTransport();\n * transport.connect();\n *\n * transport.on(\"bg_agent.round\", (event) => {\n * console.log(`Round ${event.round}: ${event.content}`);\n * });\n *\n * transport.on(\"bg_agent.completed\", (event) => {\n * console.log(\"Done:\", event.result);\n * });\n *\n * transport.streamJob(\"job-uuid-123\");\n *\n * // Clean up\n * transport.disconnect();\n * ```\n */\n\nimport type {\n BGAgentTransport,\n BGAgentTransportConfig,\n BGAgentTransportState,\n BGAgentTransportError,\n BGAgentTransportOptions,\n BGAgentEventType,\n EventHandler,\n Unsubscribe,\n BackgroundAgentProgressEvent,\n} from \"./types\";\n\nexport type { BGAgentTransportOptions };\n\nexport function createBGAgentTransport(\n options?: BGAgentTransportOptions\n): BGAgentTransport {\n const debug = options?.debug ?? false;\n\n // Internal state\n let config: BGAgentTransportConfig = {};\n let state: BGAgentTransportState = \"disconnected\";\n let error: BGAgentTransportError | undefined;\n\n // Active EventSource connections per jobId\n const streams = new Map<string, EventSource>();\n\n // Handler registry\n const globalHandlers = new Set<EventHandler>();\n const typeHandlers = new Map<string, Set<EventHandler>>();\n\n // ============== Internal Helpers ==============\n\n function log(...args: unknown[]) {\n if (debug) console.log(\"[BGAgentTransport]\", ...args);\n }\n\n function emit(event: BackgroundAgentProgressEvent) {\n // Global handlers\n for (const handler of globalHandlers) {\n try {\n handler(event);\n } catch (err) {\n console.error(\"[BGAgentTransport] Handler error:\", err);\n }\n }\n // Type-specific handlers\n const handlers = typeHandlers.get(event.type);\n if (handlers) {\n for (const handler of handlers) {\n try {\n handler(event);\n } catch (err) {\n console.error(\"[BGAgentTransport] Handler error:\", err);\n }\n }\n }\n }\n\n // ============== Transport Methods ==============\n\n function connect(cfg?: BGAgentTransportConfig): void {\n config = cfg || {};\n state = \"connected\";\n error = undefined;\n log(\"Connected\", config);\n }\n\n function streamJob(jobId: string): void {\n if (streams.has(jobId)) {\n log(\"Already streaming\", jobId);\n return;\n }\n\n const baseUrl = config.streamBaseUrl || \"\";\n const url = `${baseUrl}/api/v1/bg-agents/stream?jobId=${jobId}`;\n log(\"Opening stream\", url);\n\n const es = new EventSource(url);\n\n es.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data) as BackgroundAgentProgressEvent;\n emit(data);\n\n // Auto-close on terminal events\n if (data.type === \"bg_agent.completed\" || data.type === \"bg_agent.failed\") {\n log(\"Terminal event, closing stream\", jobId, data.type);\n es.close();\n streams.delete(jobId);\n if (streams.size === 0) state = \"connected\";\n }\n } catch {\n // Ignore parse errors (heartbeat comments, etc.)\n }\n };\n\n es.onopen = () => {\n state = \"streaming\";\n error = undefined;\n log(\"Stream opened\", jobId);\n };\n\n es.onerror = () => {\n log(\"Stream error\", jobId);\n es.close();\n streams.delete(jobId);\n if (streams.size === 0) state = \"connected\";\n error = { code: \"STREAM_ERROR\", message: `SSE connection failed for job ${jobId}`, retryable: true };\n };\n\n streams.set(jobId, es);\n }\n\n function stopJob(jobId: string): void {\n const es = streams.get(jobId);\n if (es) {\n es.close();\n streams.delete(jobId);\n log(\"Stopped stream\", jobId);\n if (streams.size === 0) state = \"connected\";\n }\n }\n\n function onEvent(handler: EventHandler): Unsubscribe {\n globalHandlers.add(handler);\n return () => globalHandlers.delete(handler);\n }\n\n function on(eventType: BGAgentEventType, handler: EventHandler): Unsubscribe {\n if (!typeHandlers.has(eventType)) {\n typeHandlers.set(eventType, new Set());\n }\n typeHandlers.get(eventType)!.add(handler);\n return () => typeHandlers.get(eventType)?.delete(handler);\n }\n\n function disconnect(): void {\n for (const [jobId, es] of streams) {\n es.close();\n log(\"Closed stream\", jobId);\n }\n streams.clear();\n globalHandlers.clear();\n typeHandlers.clear();\n state = \"disconnected\";\n error = undefined;\n log(\"Disconnected\");\n }\n\n function getState(): BGAgentTransportState {\n return state;\n }\n\n function getError(): BGAgentTransportError | undefined {\n return error;\n }\n\n function clearError(): void {\n error = undefined;\n }\n\n return {\n connect,\n streamJob,\n stopJob,\n onEvent,\n on,\n disconnect,\n getState,\n getError,\n clearError,\n };\n}\n"],"mappings":"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","names":[]}
@@ -20,6 +20,7 @@ var PlanStatusCancelled = "cancelled";
20
20
  var AgentScopeOrg = "org";
21
21
  var AgentScopeTeam = "team";
22
22
  var AgentScopeUser = "user";
23
+ var AgentScopeCustom = "custom";
23
24
  var SkillCategoryProductivity = "productivity";
24
25
  var SkillCategoryCreative = "creative";
25
26
  var SkillCategoryIntegration = "integration";
@@ -151,6 +152,8 @@ var AgentJobListSubject = "agents.jobs.list";
151
152
  var AgentJobPauseSubject = "agents.jobs.pause";
152
153
  var AgentJobResumeSubject = "agents.jobs.resume";
153
154
  var AgentJobTriggerSubject = "agents.job.trigger";
155
+ var TriggerBackgroundAgentToolSubject = "agents.tool.execute.trigger_background_agent";
156
+ var CheckBackgroundAgentStatusToolSubject = "agents.tool.execute.check_background_agent_status";
154
157
  var JobExecutionGetSubject = "agents.executions.get";
155
158
  var JobExecutionListSubject = "agents.executions.list";
156
159
  var RuntimeJobExecuteSubject = "runtime.job.execute";
@@ -498,5 +501,8 @@ var SettingsSubjects = {
498
501
 
499
502
 
500
503
 
501
- exports.ExecutionStatusPending = ExecutionStatusPending; exports.ExecutionStatusRunning = ExecutionStatusRunning; exports.ExecutionStatusCompleted = ExecutionStatusCompleted; exports.ExecutionStatusFailed = ExecutionStatusFailed; exports.ExecutionStatusSkipped = ExecutionStatusSkipped; exports.MergeStrategyReplace = MergeStrategyReplace; exports.MergeStrategyMerge = MergeStrategyMerge; exports.MergeStrategyAppend = MergeStrategyAppend; exports.MaxExecutions = MaxExecutions; exports.ExecutionTTLHours = ExecutionTTLHours; exports.PlanStatusPendingApproval = PlanStatusPendingApproval; exports.PlanStatusApproved = PlanStatusApproved; exports.PlanStatusExecuting = PlanStatusExecuting; exports.PlanStatusCompleted = PlanStatusCompleted; exports.PlanStatusRejected = PlanStatusRejected; exports.PlanStatusCancelled = PlanStatusCancelled; exports.AgentScopeOrg = AgentScopeOrg; exports.AgentScopeTeam = AgentScopeTeam; exports.AgentScopeUser = AgentScopeUser; exports.SkillCategoryProductivity = SkillCategoryProductivity; exports.SkillCategoryCreative = SkillCategoryCreative; exports.SkillCategoryIntegration = SkillCategoryIntegration; exports.SkillCategoryAnalysis = SkillCategoryAnalysis; exports.SkillCategoryCommunication = SkillCategoryCommunication; exports.SkillCategoryCustom = SkillCategoryCustom; exports.AgentTypeChat = AgentTypeChat; exports.AgentTypeReact = AgentTypeReact; exports.AgentSubTypeChat = AgentSubTypeChat; exports.AgentSubTypeReact = AgentSubTypeReact; exports.AgentSubTypeWorkflow = AgentSubTypeWorkflow; exports.AgentSubTypeDocument = AgentSubTypeDocument; exports.AgentStatusDraft = AgentStatusDraft; exports.AgentStatusActive = AgentStatusActive; exports.AgentStatusInactive = AgentStatusInactive; exports.AgentStatusArchived = AgentStatusArchived; exports.ToolExecutionStatusStarted = ToolExecutionStatusStarted; exports.ToolExecutionStatusExecuting = ToolExecutionStatusExecuting; exports.ToolExecutionStatusCompleted = ToolExecutionStatusCompleted; exports.ToolExecutionStatusFailed = ToolExecutionStatusFailed; exports.ToolExecutionStatusTimeout = ToolExecutionStatusTimeout; exports.ToolExecutionStatusSkipped = ToolExecutionStatusSkipped; exports.ExecutionModeSync = ExecutionModeSync; exports.ExecutionModeAsync = ExecutionModeAsync; exports.ExecutionModeAsyncClient = ExecutionModeAsyncClient; exports.JobScopePrivate = JobScopePrivate; exports.JobScopeTeam = JobScopeTeam; exports.JobScopeOrg = JobScopeOrg; exports.JobStatusActive = JobStatusActive; exports.JobStatusExecuting = JobStatusExecuting; exports.JobStatusPaused = JobStatusPaused; exports.JobStatusDisabled = JobStatusDisabled; exports.JobFrequencyOneTime = JobFrequencyOneTime; exports.JobFrequencySchedule = JobFrequencySchedule; exports.JobExecutionStatusRunning = JobExecutionStatusRunning; exports.JobExecutionStatusSuccess = JobExecutionStatusSuccess; exports.JobExecutionStatusFailed = JobExecutionStatusFailed; exports.JobExecutionStatusTimedOut = JobExecutionStatusTimedOut; exports.AgentCreateSubject = AgentCreateSubject; exports.AgentCreatedSubject = AgentCreatedSubject; exports.AgentGetSubject = AgentGetSubject; exports.AgentUpdateSubject = AgentUpdateSubject; exports.AgentUpdatedSubject = AgentUpdatedSubject; exports.AgentDeleteSubject = AgentDeleteSubject; exports.AgentDeletedSubject = AgentDeletedSubject; exports.AgentListSubject = AgentListSubject; exports.AgentListSummarySubject = AgentListSummarySubject; exports.AgentSearchSubject = AgentSearchSubject; exports.AgentChatCreateSubject = AgentChatCreateSubject; exports.AgentChatUpdateSubject = AgentChatUpdateSubject; exports.AgentChatGetSubject = AgentChatGetSubject; exports.AgentChatValidateSubject = AgentChatValidateSubject; exports.AgentReactCreateSubject = AgentReactCreateSubject; exports.AgentReactUpdateSubject = AgentReactUpdateSubject; exports.AgentReactGetSubject = AgentReactGetSubject; exports.AgentReactValidateSubject = AgentReactValidateSubject; exports.AgentExecuteSubject = AgentExecuteSubject; exports.AgentExecuteStatusSubject = AgentExecuteStatusSubject; exports.AgentExecuteStopSubject = AgentExecuteStopSubject; exports.AgentVersionCreateSubject = AgentVersionCreateSubject; exports.AgentVersionCreatedSubject = AgentVersionCreatedSubject; exports.AgentVersionGetSubject = AgentVersionGetSubject; exports.AgentVersionListSubject = AgentVersionListSubject; exports.AgentVersionActivateSubject = AgentVersionActivateSubject; exports.AgentVersionActivatedSubject = AgentVersionActivatedSubject; exports.AgentEnsureDefaultSubject = AgentEnsureDefaultSubject; exports.AgentGetDefaultSubject = AgentGetDefaultSubject; exports.AgentGetByOrgSubject = AgentGetByOrgSubject; exports.AgentCloneSubject = AgentCloneSubject; exports.AgentExportSubject = AgentExportSubject; exports.AgentImportSubject = AgentImportSubject; exports.AgentUpdateOrgSubject = AgentUpdateOrgSubject; exports.AgentTemplateListSubject = AgentTemplateListSubject; exports.AgentTemplateGetSubject = AgentTemplateGetSubject; exports.AgentFromTemplateSubject = AgentFromTemplateSubject; exports.ChatAgentExecuteSubject = ChatAgentExecuteSubject; exports.ChatAgentStatusSubject = ChatAgentStatusSubject; exports.ReactAgentExecuteSubject = ReactAgentExecuteSubject; exports.ReactAgentStatusSubject = ReactAgentStatusSubject; exports.ReactAgentStopSubject = ReactAgentStopSubject; exports.WorkflowAgentGetSubject = WorkflowAgentGetSubject; exports.WorkflowAgentUpdateSubject = WorkflowAgentUpdateSubject; exports.ToolDefinitionsCreateSubject = ToolDefinitionsCreateSubject; exports.ToolDefinitionsCreatedSubject = ToolDefinitionsCreatedSubject; exports.ToolDefinitionsGetSubject = ToolDefinitionsGetSubject; exports.ToolDefinitionsUpdateSubject = ToolDefinitionsUpdateSubject; exports.ToolDefinitionsUpdatedSubject = ToolDefinitionsUpdatedSubject; exports.ToolDefinitionsDeleteSubject = ToolDefinitionsDeleteSubject; exports.ToolDefinitionsDeletedSubject = ToolDefinitionsDeletedSubject; exports.ToolDefinitionsListSubject = ToolDefinitionsListSubject; exports.ToolDefinitionsGetByIDsSubject = ToolDefinitionsGetByIDsSubject; exports.ToolDefinitionsExecuteSubject = ToolDefinitionsExecuteSubject; exports.ToolDefinitionsValidateSubject = ToolDefinitionsValidateSubject; exports.SubAgentsCreateSubject = SubAgentsCreateSubject; exports.SubAgentsCreatedSubject = SubAgentsCreatedSubject; exports.SubAgentsGetSubject = SubAgentsGetSubject; exports.SubAgentsUpdateSubject = SubAgentsUpdateSubject; exports.SubAgentsUpdatedSubject = SubAgentsUpdatedSubject; exports.SubAgentsDeleteSubject = SubAgentsDeleteSubject; exports.SubAgentsDeletedSubject = SubAgentsDeletedSubject; exports.SubAgentsListSubject = SubAgentsListSubject; exports.SubAgentsGetByIDsSubject = SubAgentsGetByIDsSubject; exports.SubAgentsExecuteSubject = SubAgentsExecuteSubject; exports.SubAgentsValidateSubject = SubAgentsValidateSubject; exports.SkillsCreateSubject = SkillsCreateSubject; exports.SkillsCreatedSubject = SkillsCreatedSubject; exports.SkillsGetSubject = SkillsGetSubject; exports.SkillsUpdateSubject = SkillsUpdateSubject; exports.SkillsUpdatedSubject = SkillsUpdatedSubject; exports.SkillsDeleteSubject = SkillsDeleteSubject; exports.SkillsDeletedSubject = SkillsDeletedSubject; exports.SkillsListSubject = SkillsListSubject; exports.SkillsGetByIDsSubject = SkillsGetByIDsSubject; exports.SkillsUpdateOrgConfigSubject = SkillsUpdateOrgConfigSubject; exports.AgentSkillUpdateConfigSubject = AgentSkillUpdateConfigSubject; exports.AgentSkillGetConfigSubject = AgentSkillGetConfigSubject; exports.SkillUserConfigGetSubject = SkillUserConfigGetSubject; exports.SkillUserConfigUpdateSubject = SkillUserConfigUpdateSubject; exports.SkillUserConfigDeleteSubject = SkillUserConfigDeleteSubject; exports.SkillUserConfigListSubject = SkillUserConfigListSubject; exports.SkillResolveConfigSubject = SkillResolveConfigSubject; exports.WidgetConfigGetByAgentSubject = WidgetConfigGetByAgentSubject; exports.WidgetConfigSaveSubject = WidgetConfigSaveSubject; exports.AgentJobCreateSubject = AgentJobCreateSubject; exports.AgentJobGetSubject = AgentJobGetSubject; exports.AgentJobUpdateSubject = AgentJobUpdateSubject; exports.AgentJobDeleteSubject = AgentJobDeleteSubject; exports.AgentJobListSubject = AgentJobListSubject; exports.AgentJobPauseSubject = AgentJobPauseSubject; exports.AgentJobResumeSubject = AgentJobResumeSubject; exports.AgentJobTriggerSubject = AgentJobTriggerSubject; exports.JobExecutionGetSubject = JobExecutionGetSubject; exports.JobExecutionListSubject = JobExecutionListSubject; exports.RuntimeJobExecuteSubject = RuntimeJobExecuteSubject; exports.RuntimeJobCompletedSubject = RuntimeJobCompletedSubject; exports.ExecutionsTTLCleanupSubject = ExecutionsTTLCleanupSubject; exports.AgentInstanceCreateSubject = AgentInstanceCreateSubject; exports.AgentInstanceCreatedSubject = AgentInstanceCreatedSubject; exports.AgentInstanceGetSubject = AgentInstanceGetSubject; exports.AgentInstanceUpdateSubject = AgentInstanceUpdateSubject; exports.AgentInstanceUpdatedSubject = AgentInstanceUpdatedSubject; exports.AgentInstanceListSubject = AgentInstanceListSubject; exports.AgentInstanceDeleteSubject = AgentInstanceDeleteSubject; exports.AgentInstanceDeletedSubject = AgentInstanceDeletedSubject; exports.AgentInstanceCreatePlanSubject = AgentInstanceCreatePlanSubject; exports.AgentInstanceExecutePlanSubject = AgentInstanceExecutePlanSubject; exports.AgentInstancePausePlanSubject = AgentInstancePausePlanSubject; exports.AgentInstanceResumePlanSubject = AgentInstanceResumePlanSubject; exports.AgentInstanceCancelPlanSubject = AgentInstanceCancelPlanSubject; exports.AgentInstanceGetHistorySubject = AgentInstanceGetHistorySubject; exports.AgentInstanceClearHistorySubject = AgentInstanceClearHistorySubject; exports.AgentCategorySupport = AgentCategorySupport; exports.AgentCategorySales = AgentCategorySales; exports.AgentCategoryResearch = AgentCategoryResearch; exports.AgentCategoryWriting = AgentCategoryWriting; exports.AgentCategoryProductivity = AgentCategoryProductivity; exports.AgentCategoryDevelopment = AgentCategoryDevelopment; exports.AgentCategoryMarketing = AgentCategoryMarketing; exports.AgentCategoryHR = AgentCategoryHR; exports.AgentCategoryFinance = AgentCategoryFinance; exports.AgentCategoryGeneral = AgentCategoryGeneral; exports.TemplateStatusPublished = TemplateStatusPublished; exports.TemplateStatusDraft = TemplateStatusDraft; exports.PublisherTypeEloquent = PublisherTypeEloquent; exports.PublisherTypePartner = PublisherTypePartner; exports.AgentWidgetsCreateSubject = AgentWidgetsCreateSubject; exports.AgentWidgetsGetSubject = AgentWidgetsGetSubject; exports.AgentWidgetsGetByWidgetID = AgentWidgetsGetByWidgetID; exports.AgentWidgetsUpdateSubject = AgentWidgetsUpdateSubject; exports.AgentWidgetsDeleteSubject = AgentWidgetsDeleteSubject; exports.AgentWidgetsListSubject = AgentWidgetsListSubject; exports.AgentWidgetsSetDefaultSubject = AgentWidgetsSetDefaultSubject; exports.AgentWidgetsGetDefaultSubject = AgentWidgetsGetDefaultSubject; exports.HubAnalyticsGetTaskOutcomes = HubAnalyticsGetTaskOutcomes; exports.HubAnalyticsGetTaskMetrics = HubAnalyticsGetTaskMetrics; exports.HubEventsInsertTaskOutcomes = HubEventsInsertTaskOutcomes; exports.HubEventsUpdateTaskOutcomeStatus = HubEventsUpdateTaskOutcomeStatus; exports.IntegrationProviderGoogle = IntegrationProviderGoogle; exports.IntegrationProviderMicrosoft = IntegrationProviderMicrosoft; exports.IntegrationTypeEmail = IntegrationTypeEmail; exports.IntegrationTypeCalendar = IntegrationTypeCalendar; exports.IntegrationTypeDrive = IntegrationTypeDrive; exports.IntegrationStatusActive = IntegrationStatusActive; exports.IntegrationStatusExpired = IntegrationStatusExpired; exports.IntegrationStatusRevoked = IntegrationStatusRevoked; exports.IntegrationStatusError = IntegrationStatusError; exports.IntegrationModeServicePrincipal = IntegrationModeServicePrincipal; exports.IntegrationModeDomainDelegation = IntegrationModeDomainDelegation; exports.HubIntegrationUserList = HubIntegrationUserList; exports.HubIntegrationUserGet = HubIntegrationUserGet; exports.HubIntegrationUserConnect = HubIntegrationUserConnect; exports.HubIntegrationUserCallback = HubIntegrationUserCallback; exports.HubIntegrationUserDisconnect = HubIntegrationUserDisconnect; exports.HubIntegrationUserRefresh = HubIntegrationUserRefresh; exports.HubIntegrationUserUpdateTriage = HubIntegrationUserUpdateTriage; exports.HubIntegrationOrgList = HubIntegrationOrgList; exports.HubIntegrationOrgConfigure = HubIntegrationOrgConfigure; exports.HubIntegrationOrgDisable = HubIntegrationOrgDisable; exports.HubIntegrationEmailSearch = HubIntegrationEmailSearch; exports.HubIntegrationEmailGet = HubIntegrationEmailGet; exports.HubIntegrationEmailThread = HubIntegrationEmailThread; exports.HubIntegrationEmailSend = HubIntegrationEmailSend; exports.HubIntegrationEmailArchive = HubIntegrationEmailArchive; exports.HubIntegrationEmailMarkRead = HubIntegrationEmailMarkRead; exports.HubIntegrationEmailForward = HubIntegrationEmailForward; exports.HubEmailTriageRunNow = HubEmailTriageRunNow; exports.HubIntegrationCalendarList = HubIntegrationCalendarList; exports.HubIntegrationCalendarGet = HubIntegrationCalendarGet; exports.HubIntegrationCalendarCreate = HubIntegrationCalendarCreate; exports.HubIntegrationCalendarUpdate = HubIntegrationCalendarUpdate; exports.HubIntegrationCalendarDelete = HubIntegrationCalendarDelete; exports.HubIntegrationCalendarRSVP = HubIntegrationCalendarRSVP; exports.HubIntegrationDriveSearch = HubIntegrationDriveSearch; exports.HubIntegrationDriveGet = HubIntegrationDriveGet; exports.HubIntegrationSetupOrg = HubIntegrationSetupOrg; exports.CreateSandboxSubject = CreateSandboxSubject; exports.GetSandboxSubject = GetSandboxSubject; exports.UpdateSandboxSubject = UpdateSandboxSubject; exports.ListSandboxSubject = ListSandboxSubject; exports.DeleteSandboxSubject = DeleteSandboxSubject; exports.SettingsSubjects = SettingsSubjects;
502
- //# sourceMappingURL=chunk-TPQS2XAW.js.map
504
+
505
+
506
+
507
+ exports.ExecutionStatusPending = ExecutionStatusPending; exports.ExecutionStatusRunning = ExecutionStatusRunning; exports.ExecutionStatusCompleted = ExecutionStatusCompleted; exports.ExecutionStatusFailed = ExecutionStatusFailed; exports.ExecutionStatusSkipped = ExecutionStatusSkipped; exports.MergeStrategyReplace = MergeStrategyReplace; exports.MergeStrategyMerge = MergeStrategyMerge; exports.MergeStrategyAppend = MergeStrategyAppend; exports.MaxExecutions = MaxExecutions; exports.ExecutionTTLHours = ExecutionTTLHours; exports.PlanStatusPendingApproval = PlanStatusPendingApproval; exports.PlanStatusApproved = PlanStatusApproved; exports.PlanStatusExecuting = PlanStatusExecuting; exports.PlanStatusCompleted = PlanStatusCompleted; exports.PlanStatusRejected = PlanStatusRejected; exports.PlanStatusCancelled = PlanStatusCancelled; exports.AgentScopeOrg = AgentScopeOrg; exports.AgentScopeTeam = AgentScopeTeam; exports.AgentScopeUser = AgentScopeUser; exports.AgentScopeCustom = AgentScopeCustom; exports.SkillCategoryProductivity = SkillCategoryProductivity; exports.SkillCategoryCreative = SkillCategoryCreative; exports.SkillCategoryIntegration = SkillCategoryIntegration; exports.SkillCategoryAnalysis = SkillCategoryAnalysis; exports.SkillCategoryCommunication = SkillCategoryCommunication; exports.SkillCategoryCustom = SkillCategoryCustom; exports.AgentTypeChat = AgentTypeChat; exports.AgentTypeReact = AgentTypeReact; exports.AgentSubTypeChat = AgentSubTypeChat; exports.AgentSubTypeReact = AgentSubTypeReact; exports.AgentSubTypeWorkflow = AgentSubTypeWorkflow; exports.AgentSubTypeDocument = AgentSubTypeDocument; exports.AgentStatusDraft = AgentStatusDraft; exports.AgentStatusActive = AgentStatusActive; exports.AgentStatusInactive = AgentStatusInactive; exports.AgentStatusArchived = AgentStatusArchived; exports.ToolExecutionStatusStarted = ToolExecutionStatusStarted; exports.ToolExecutionStatusExecuting = ToolExecutionStatusExecuting; exports.ToolExecutionStatusCompleted = ToolExecutionStatusCompleted; exports.ToolExecutionStatusFailed = ToolExecutionStatusFailed; exports.ToolExecutionStatusTimeout = ToolExecutionStatusTimeout; exports.ToolExecutionStatusSkipped = ToolExecutionStatusSkipped; exports.ExecutionModeSync = ExecutionModeSync; exports.ExecutionModeAsync = ExecutionModeAsync; exports.ExecutionModeAsyncClient = ExecutionModeAsyncClient; exports.JobScopePrivate = JobScopePrivate; exports.JobScopeTeam = JobScopeTeam; exports.JobScopeOrg = JobScopeOrg; exports.JobStatusActive = JobStatusActive; exports.JobStatusExecuting = JobStatusExecuting; exports.JobStatusPaused = JobStatusPaused; exports.JobStatusDisabled = JobStatusDisabled; exports.JobFrequencyOneTime = JobFrequencyOneTime; exports.JobFrequencySchedule = JobFrequencySchedule; exports.JobExecutionStatusRunning = JobExecutionStatusRunning; exports.JobExecutionStatusSuccess = JobExecutionStatusSuccess; exports.JobExecutionStatusFailed = JobExecutionStatusFailed; exports.JobExecutionStatusTimedOut = JobExecutionStatusTimedOut; exports.AgentCreateSubject = AgentCreateSubject; exports.AgentCreatedSubject = AgentCreatedSubject; exports.AgentGetSubject = AgentGetSubject; exports.AgentUpdateSubject = AgentUpdateSubject; exports.AgentUpdatedSubject = AgentUpdatedSubject; exports.AgentDeleteSubject = AgentDeleteSubject; exports.AgentDeletedSubject = AgentDeletedSubject; exports.AgentListSubject = AgentListSubject; exports.AgentListSummarySubject = AgentListSummarySubject; exports.AgentSearchSubject = AgentSearchSubject; exports.AgentChatCreateSubject = AgentChatCreateSubject; exports.AgentChatUpdateSubject = AgentChatUpdateSubject; exports.AgentChatGetSubject = AgentChatGetSubject; exports.AgentChatValidateSubject = AgentChatValidateSubject; exports.AgentReactCreateSubject = AgentReactCreateSubject; exports.AgentReactUpdateSubject = AgentReactUpdateSubject; exports.AgentReactGetSubject = AgentReactGetSubject; exports.AgentReactValidateSubject = AgentReactValidateSubject; exports.AgentExecuteSubject = AgentExecuteSubject; exports.AgentExecuteStatusSubject = AgentExecuteStatusSubject; exports.AgentExecuteStopSubject = AgentExecuteStopSubject; exports.AgentVersionCreateSubject = AgentVersionCreateSubject; exports.AgentVersionCreatedSubject = AgentVersionCreatedSubject; exports.AgentVersionGetSubject = AgentVersionGetSubject; exports.AgentVersionListSubject = AgentVersionListSubject; exports.AgentVersionActivateSubject = AgentVersionActivateSubject; exports.AgentVersionActivatedSubject = AgentVersionActivatedSubject; exports.AgentEnsureDefaultSubject = AgentEnsureDefaultSubject; exports.AgentGetDefaultSubject = AgentGetDefaultSubject; exports.AgentGetByOrgSubject = AgentGetByOrgSubject; exports.AgentCloneSubject = AgentCloneSubject; exports.AgentExportSubject = AgentExportSubject; exports.AgentImportSubject = AgentImportSubject; exports.AgentUpdateOrgSubject = AgentUpdateOrgSubject; exports.AgentTemplateListSubject = AgentTemplateListSubject; exports.AgentTemplateGetSubject = AgentTemplateGetSubject; exports.AgentFromTemplateSubject = AgentFromTemplateSubject; exports.ChatAgentExecuteSubject = ChatAgentExecuteSubject; exports.ChatAgentStatusSubject = ChatAgentStatusSubject; exports.ReactAgentExecuteSubject = ReactAgentExecuteSubject; exports.ReactAgentStatusSubject = ReactAgentStatusSubject; exports.ReactAgentStopSubject = ReactAgentStopSubject; exports.WorkflowAgentGetSubject = WorkflowAgentGetSubject; exports.WorkflowAgentUpdateSubject = WorkflowAgentUpdateSubject; exports.ToolDefinitionsCreateSubject = ToolDefinitionsCreateSubject; exports.ToolDefinitionsCreatedSubject = ToolDefinitionsCreatedSubject; exports.ToolDefinitionsGetSubject = ToolDefinitionsGetSubject; exports.ToolDefinitionsUpdateSubject = ToolDefinitionsUpdateSubject; exports.ToolDefinitionsUpdatedSubject = ToolDefinitionsUpdatedSubject; exports.ToolDefinitionsDeleteSubject = ToolDefinitionsDeleteSubject; exports.ToolDefinitionsDeletedSubject = ToolDefinitionsDeletedSubject; exports.ToolDefinitionsListSubject = ToolDefinitionsListSubject; exports.ToolDefinitionsGetByIDsSubject = ToolDefinitionsGetByIDsSubject; exports.ToolDefinitionsExecuteSubject = ToolDefinitionsExecuteSubject; exports.ToolDefinitionsValidateSubject = ToolDefinitionsValidateSubject; exports.SubAgentsCreateSubject = SubAgentsCreateSubject; exports.SubAgentsCreatedSubject = SubAgentsCreatedSubject; exports.SubAgentsGetSubject = SubAgentsGetSubject; exports.SubAgentsUpdateSubject = SubAgentsUpdateSubject; exports.SubAgentsUpdatedSubject = SubAgentsUpdatedSubject; exports.SubAgentsDeleteSubject = SubAgentsDeleteSubject; exports.SubAgentsDeletedSubject = SubAgentsDeletedSubject; exports.SubAgentsListSubject = SubAgentsListSubject; exports.SubAgentsGetByIDsSubject = SubAgentsGetByIDsSubject; exports.SubAgentsExecuteSubject = SubAgentsExecuteSubject; exports.SubAgentsValidateSubject = SubAgentsValidateSubject; exports.SkillsCreateSubject = SkillsCreateSubject; exports.SkillsCreatedSubject = SkillsCreatedSubject; exports.SkillsGetSubject = SkillsGetSubject; exports.SkillsUpdateSubject = SkillsUpdateSubject; exports.SkillsUpdatedSubject = SkillsUpdatedSubject; exports.SkillsDeleteSubject = SkillsDeleteSubject; exports.SkillsDeletedSubject = SkillsDeletedSubject; exports.SkillsListSubject = SkillsListSubject; exports.SkillsGetByIDsSubject = SkillsGetByIDsSubject; exports.SkillsUpdateOrgConfigSubject = SkillsUpdateOrgConfigSubject; exports.AgentSkillUpdateConfigSubject = AgentSkillUpdateConfigSubject; exports.AgentSkillGetConfigSubject = AgentSkillGetConfigSubject; exports.SkillUserConfigGetSubject = SkillUserConfigGetSubject; exports.SkillUserConfigUpdateSubject = SkillUserConfigUpdateSubject; exports.SkillUserConfigDeleteSubject = SkillUserConfigDeleteSubject; exports.SkillUserConfigListSubject = SkillUserConfigListSubject; exports.SkillResolveConfigSubject = SkillResolveConfigSubject; exports.WidgetConfigGetByAgentSubject = WidgetConfigGetByAgentSubject; exports.WidgetConfigSaveSubject = WidgetConfigSaveSubject; exports.AgentJobCreateSubject = AgentJobCreateSubject; exports.AgentJobGetSubject = AgentJobGetSubject; exports.AgentJobUpdateSubject = AgentJobUpdateSubject; exports.AgentJobDeleteSubject = AgentJobDeleteSubject; exports.AgentJobListSubject = AgentJobListSubject; exports.AgentJobPauseSubject = AgentJobPauseSubject; exports.AgentJobResumeSubject = AgentJobResumeSubject; exports.AgentJobTriggerSubject = AgentJobTriggerSubject; exports.TriggerBackgroundAgentToolSubject = TriggerBackgroundAgentToolSubject; exports.CheckBackgroundAgentStatusToolSubject = CheckBackgroundAgentStatusToolSubject; exports.JobExecutionGetSubject = JobExecutionGetSubject; exports.JobExecutionListSubject = JobExecutionListSubject; exports.RuntimeJobExecuteSubject = RuntimeJobExecuteSubject; exports.RuntimeJobCompletedSubject = RuntimeJobCompletedSubject; exports.ExecutionsTTLCleanupSubject = ExecutionsTTLCleanupSubject; exports.AgentInstanceCreateSubject = AgentInstanceCreateSubject; exports.AgentInstanceCreatedSubject = AgentInstanceCreatedSubject; exports.AgentInstanceGetSubject = AgentInstanceGetSubject; exports.AgentInstanceUpdateSubject = AgentInstanceUpdateSubject; exports.AgentInstanceUpdatedSubject = AgentInstanceUpdatedSubject; exports.AgentInstanceListSubject = AgentInstanceListSubject; exports.AgentInstanceDeleteSubject = AgentInstanceDeleteSubject; exports.AgentInstanceDeletedSubject = AgentInstanceDeletedSubject; exports.AgentInstanceCreatePlanSubject = AgentInstanceCreatePlanSubject; exports.AgentInstanceExecutePlanSubject = AgentInstanceExecutePlanSubject; exports.AgentInstancePausePlanSubject = AgentInstancePausePlanSubject; exports.AgentInstanceResumePlanSubject = AgentInstanceResumePlanSubject; exports.AgentInstanceCancelPlanSubject = AgentInstanceCancelPlanSubject; exports.AgentInstanceGetHistorySubject = AgentInstanceGetHistorySubject; exports.AgentInstanceClearHistorySubject = AgentInstanceClearHistorySubject; exports.AgentCategorySupport = AgentCategorySupport; exports.AgentCategorySales = AgentCategorySales; exports.AgentCategoryResearch = AgentCategoryResearch; exports.AgentCategoryWriting = AgentCategoryWriting; exports.AgentCategoryProductivity = AgentCategoryProductivity; exports.AgentCategoryDevelopment = AgentCategoryDevelopment; exports.AgentCategoryMarketing = AgentCategoryMarketing; exports.AgentCategoryHR = AgentCategoryHR; exports.AgentCategoryFinance = AgentCategoryFinance; exports.AgentCategoryGeneral = AgentCategoryGeneral; exports.TemplateStatusPublished = TemplateStatusPublished; exports.TemplateStatusDraft = TemplateStatusDraft; exports.PublisherTypeEloquent = PublisherTypeEloquent; exports.PublisherTypePartner = PublisherTypePartner; exports.AgentWidgetsCreateSubject = AgentWidgetsCreateSubject; exports.AgentWidgetsGetSubject = AgentWidgetsGetSubject; exports.AgentWidgetsGetByWidgetID = AgentWidgetsGetByWidgetID; exports.AgentWidgetsUpdateSubject = AgentWidgetsUpdateSubject; exports.AgentWidgetsDeleteSubject = AgentWidgetsDeleteSubject; exports.AgentWidgetsListSubject = AgentWidgetsListSubject; exports.AgentWidgetsSetDefaultSubject = AgentWidgetsSetDefaultSubject; exports.AgentWidgetsGetDefaultSubject = AgentWidgetsGetDefaultSubject; exports.HubAnalyticsGetTaskOutcomes = HubAnalyticsGetTaskOutcomes; exports.HubAnalyticsGetTaskMetrics = HubAnalyticsGetTaskMetrics; exports.HubEventsInsertTaskOutcomes = HubEventsInsertTaskOutcomes; exports.HubEventsUpdateTaskOutcomeStatus = HubEventsUpdateTaskOutcomeStatus; exports.IntegrationProviderGoogle = IntegrationProviderGoogle; exports.IntegrationProviderMicrosoft = IntegrationProviderMicrosoft; exports.IntegrationTypeEmail = IntegrationTypeEmail; exports.IntegrationTypeCalendar = IntegrationTypeCalendar; exports.IntegrationTypeDrive = IntegrationTypeDrive; exports.IntegrationStatusActive = IntegrationStatusActive; exports.IntegrationStatusExpired = IntegrationStatusExpired; exports.IntegrationStatusRevoked = IntegrationStatusRevoked; exports.IntegrationStatusError = IntegrationStatusError; exports.IntegrationModeServicePrincipal = IntegrationModeServicePrincipal; exports.IntegrationModeDomainDelegation = IntegrationModeDomainDelegation; exports.HubIntegrationUserList = HubIntegrationUserList; exports.HubIntegrationUserGet = HubIntegrationUserGet; exports.HubIntegrationUserConnect = HubIntegrationUserConnect; exports.HubIntegrationUserCallback = HubIntegrationUserCallback; exports.HubIntegrationUserDisconnect = HubIntegrationUserDisconnect; exports.HubIntegrationUserRefresh = HubIntegrationUserRefresh; exports.HubIntegrationUserUpdateTriage = HubIntegrationUserUpdateTriage; exports.HubIntegrationOrgList = HubIntegrationOrgList; exports.HubIntegrationOrgConfigure = HubIntegrationOrgConfigure; exports.HubIntegrationOrgDisable = HubIntegrationOrgDisable; exports.HubIntegrationEmailSearch = HubIntegrationEmailSearch; exports.HubIntegrationEmailGet = HubIntegrationEmailGet; exports.HubIntegrationEmailThread = HubIntegrationEmailThread; exports.HubIntegrationEmailSend = HubIntegrationEmailSend; exports.HubIntegrationEmailArchive = HubIntegrationEmailArchive; exports.HubIntegrationEmailMarkRead = HubIntegrationEmailMarkRead; exports.HubIntegrationEmailForward = HubIntegrationEmailForward; exports.HubEmailTriageRunNow = HubEmailTriageRunNow; exports.HubIntegrationCalendarList = HubIntegrationCalendarList; exports.HubIntegrationCalendarGet = HubIntegrationCalendarGet; exports.HubIntegrationCalendarCreate = HubIntegrationCalendarCreate; exports.HubIntegrationCalendarUpdate = HubIntegrationCalendarUpdate; exports.HubIntegrationCalendarDelete = HubIntegrationCalendarDelete; exports.HubIntegrationCalendarRSVP = HubIntegrationCalendarRSVP; exports.HubIntegrationDriveSearch = HubIntegrationDriveSearch; exports.HubIntegrationDriveGet = HubIntegrationDriveGet; exports.HubIntegrationSetupOrg = HubIntegrationSetupOrg; exports.CreateSandboxSubject = CreateSandboxSubject; exports.GetSandboxSubject = GetSandboxSubject; exports.UpdateSandboxSubject = UpdateSandboxSubject; exports.ListSandboxSubject = ListSandboxSubject; exports.DeleteSandboxSubject = DeleteSandboxSubject; exports.SettingsSubjects = SettingsSubjects;
508
+ //# sourceMappingURL=chunk-3VM5TCJR.js.map