@hotmeshio/long-tail 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/adapters/express.d.ts +68 -0
- package/build/adapters/express.js +163 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +3 -1
- package/build/lib/events/socketio.d.ts +3 -0
- package/build/lib/events/socketio.js +6 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/dashboard/dist/assets/{AdminDashboard-qZYNzvw8.js → AdminDashboard-BVtpNGO1.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-qZYNzvw8.js.map → AdminDashboard-BVtpNGO1.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-_SMbioNp.js → AgentConfigPage-BGDDZpxn.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-_SMbioNp.js.map → AgentConfigPage-BGDDZpxn.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-Cf_SRtbT.js → AgentDetailPage-9wlNBv63.js} +2 -2
- package/dashboard/dist/assets/{AgentDetailPage-Cf_SRtbT.js.map → AgentDetailPage-9wlNBv63.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-q53C1Xk_.js → AgentsPage-C8Sf-OUW.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-q53C1Xk_.js.map → AgentsPage-C8Sf-OUW.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-DHWciaKb.js → AvailableEscalationsPage-BzfgOP5p.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-DHWciaKb.js.map → AvailableEscalationsPage-BzfgOP5p.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-638n5Jaz.js → BotPicker-6Xk1Fq1l.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-638n5Jaz.js.map → BotPicker-6Xk1Fq1l.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-PmgEhPl8.js → CapabilitiesPage-C30RqH3d.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-PmgEhPl8.js.map → CapabilitiesPage-C30RqH3d.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-BEZoI6NU.js → CollapsibleSection-DR3D4kMt.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-BEZoI6NU.js.map → CollapsibleSection-DR3D4kMt.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-2nEwkFSm.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-2nEwkFSm.js.map +1 -0
- package/dashboard/dist/assets/{CronLabel-Dg8U0s5a.js → CronLabel-Cfq2Hlsq.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-Dg8U0s5a.js.map → CronLabel-Cfq2Hlsq.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-BCbVMr-4.js → CustomDurationPicker-CSvIDpXD.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-BCbVMr-4.js.map → CustomDurationPicker-CSvIDpXD.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-fuG5wRDw.js → ElapsedCell-B4nhqILk.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-fuG5wRDw.js.map → ElapsedCell-B4nhqILk.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-nYOZczYx.js → EscalationsOverview-CvMHVxgm.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-nYOZczYx.js.map → EscalationsOverview-CvMHVxgm.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-Cm0Ql46x.js → EventTable-faF8fMen.js} +2 -2
- package/dashboard/dist/assets/{EventTable-Cm0Ql46x.js.map → EventTable-faF8fMen.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-Cx6pvCFX.js → HomePage-DnSHq_dm.js} +2 -2
- package/dashboard/dist/assets/{HomePage-Cx6pvCFX.js.map → HomePage-DnSHq_dm.js.map} +1 -1
- package/dashboard/dist/assets/ListToolbar-C1EXfNfS.js +2 -0
- package/dashboard/dist/assets/ListToolbar-C1EXfNfS.js.map +1 -0
- package/dashboard/dist/assets/{McpOverview-BWsaxVKL.js → McpOverview-B9ZDlmUD.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BWsaxVKL.js.map → McpOverview-B9ZDlmUD.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CQk3YpR-.js → McpQueryDetailPage-DdrdIa-N.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CQk3YpR-.js.map → McpQueryDetailPage-DdrdIa-N.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-Uf5DKujM.js → McpQueryPage-C9wb1cOa.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-Uf5DKujM.js.map → McpQueryPage-C9wb1cOa.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-D9GU27cS.js → McpRunDetailPage-b5ungm-L.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-D9GU27cS.js.map → McpRunDetailPage-b5ungm-L.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-5dVAu25-.js → McpRunsPage-wa62n3tp.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-5dVAu25-.js.map → McpRunsPage-wa62n3tp.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-DNJtUDxl.js → OperatorDashboard-BDpk_HF5.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-DNJtUDxl.js.map → OperatorDashboard-BDpk_HF5.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-BPsvlG0E.js → ProcessDetailPage-DHLKP0kz.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-BPsvlG0E.js.map → ProcessDetailPage-DHLKP0kz.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-CnuCtHSP.js → ProcessesListPage-CpANHQGA.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-CnuCtHSP.js.map → ProcessesListPage-CpANHQGA.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-BGJMx2S2.js → RolesPage-Ddta3UZX.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-BGJMx2S2.js.map → RolesPage-Ddta3UZX.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-CcNnj5AF.js → RunAsSelector-BpeN2J3V.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-CcNnj5AF.js.map → RunAsSelector-BpeN2J3V.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-fWiYlTQw.js → SwimlaneTimeline-DSra_wMN.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-fWiYlTQw.js.map → SwimlaneTimeline-DSra_wMN.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-Byz19B5I.js → TaskDetailPage-Dqha2tKb.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-Byz19B5I.js.map → TaskDetailPage-Dqha2tKb.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-pe1Opw6s.js → TasksListPage-CM16b5S8.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-pe1Opw6s.js.map → TasksListPage-CM16b5S8.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-8aYUlXT9.js → TimeAgo-DCjPMPw-.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-8aYUlXT9.js.map → TimeAgo-DCjPMPw-.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-_1fW34op.js → TimestampCell-BBdTvZ08.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-_1fW34op.js.map → TimestampCell-BBdTvZ08.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-BD7ZkPeM.js → ToolTestPanel-Dz-76HVQ.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-BD7ZkPeM.js.map → ToolTestPanel-Dz-76HVQ.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-DL6QarSi.js → TopicDetailPage-Ccqf9h5E.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-DL6QarSi.js.map → TopicDetailPage-Ccqf9h5E.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-JYAk0csl.js → TopicsPage--1V67zFa.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-JYAk0csl.js.map → TopicsPage--1V67zFa.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Dcn8reNm.js → UserName-CfaTpV3T.js} +2 -2
- package/dashboard/dist/assets/{UserName-Dcn8reNm.js.map → UserName-CfaTpV3T.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-DPie2xiD.js → WorkflowExecutionPage-Cp5_bsHY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-DPie2xiD.js.map → WorkflowExecutionPage-Cp5_bsHY.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-BRKurUye.js → WorkflowsDashboard-DaZZg4xU.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-BRKurUye.js.map → WorkflowsDashboard-DaZZg4xU.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-C9Wob38P.js → WorkflowsOverview-D_ZkBVhB.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-C9Wob38P.js.map → WorkflowsOverview-D_ZkBVhB.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-BoKSRpKN.js → YamlWorkflowsPage-BKFXRwbK.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-BoKSRpKN.js.map → YamlWorkflowsPage-BKFXRwbK.js.map} +1 -1
- package/dashboard/dist/assets/{agents-CpLOugsY.js → agents-GIg2jxet.js} +2 -2
- package/dashboard/dist/assets/{agents-CpLOugsY.js.map → agents-GIg2jxet.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DRrquJqC.js → bots-CvrmNkL3.js} +2 -2
- package/dashboard/dist/assets/{bots-DRrquJqC.js.map → bots-CvrmNkL3.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-xbHvOXKc.js → capabilities-CQ5WgulO.js} +2 -2
- package/dashboard/dist/assets/{capabilities-xbHvOXKc.js.map → capabilities-CQ5WgulO.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-FilVp8jI.js → controlplane-sh5paKGB.js} +2 -2
- package/dashboard/dist/assets/{controlplane-FilVp8jI.js.map → controlplane-sh5paKGB.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-SGea3mBy.js → escalation-DlTtA35J.js} +2 -2
- package/dashboard/dist/assets/{escalation-SGea3mBy.js.map → escalation-DlTtA35J.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-C6sLGnSX.js → escalation-columns-BHiDO_RZ.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-C6sLGnSX.js.map → escalation-columns-BHiDO_RZ.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-wHzG3Maf.js → helpers-DuKOBZxw.js} +2 -2
- package/dashboard/dist/assets/{helpers-wHzG3Maf.js.map → helpers-DuKOBZxw.js.map} +1 -1
- package/dashboard/dist/assets/{index-C7k3xfpt.js → index-7icR5Pxv.js} +2 -2
- package/dashboard/dist/assets/index-7icR5Pxv.js.map +1 -0
- package/dashboard/dist/assets/{index-E1i1ADY1.js → index-BWXKb7C7.js} +2 -2
- package/dashboard/dist/assets/{index-E1i1ADY1.js.map → index-BWXKb7C7.js.map} +1 -1
- package/dashboard/dist/assets/{index-90jmsIHz.js → index-BXGMin7U.js} +2 -2
- package/dashboard/dist/assets/{index-90jmsIHz.js.map → index-BXGMin7U.js.map} +1 -1
- package/dashboard/dist/assets/{index-B7Vxutyl.js → index-B_e2uIz9.js} +28 -28
- package/dashboard/dist/assets/index-B_e2uIz9.js.map +1 -0
- package/dashboard/dist/assets/{index-Bu2EEWNN.js → index-C-JkowYp.js} +2 -2
- package/dashboard/dist/assets/{index-Bu2EEWNN.js.map → index-C-JkowYp.js.map} +1 -1
- package/dashboard/dist/assets/{index-H2tN256i.js → index-CRDT24gK.js} +2 -2
- package/dashboard/dist/assets/{index-H2tN256i.js.map → index-CRDT24gK.js.map} +1 -1
- package/dashboard/dist/assets/{index-BS3KIrQL.js → index-CglOyur2.js} +2 -2
- package/dashboard/dist/assets/{index-BS3KIrQL.js.map → index-CglOyur2.js.map} +1 -1
- package/dashboard/dist/assets/{index-DzgixtgL.js → index-CugmdGk-.js} +2 -2
- package/dashboard/dist/assets/{index-DzgixtgL.js.map → index-CugmdGk-.js.map} +1 -1
- package/dashboard/dist/assets/{index-WwUcAoas.js → index-DIpDSspp.js} +2 -2
- package/dashboard/dist/assets/{index-WwUcAoas.js.map → index-DIpDSspp.js.map} +1 -1
- package/dashboard/dist/assets/{index-DVxBi47d.js → index-Dbxp9Nvq.js} +2 -2
- package/dashboard/dist/assets/{index-DVxBi47d.js.map → index-Dbxp9Nvq.js.map} +1 -1
- package/dashboard/dist/assets/{index-CkYNpw4d.js → index-JH__2KWY.js} +2 -2
- package/dashboard/dist/assets/{index-CkYNpw4d.js.map → index-JH__2KWY.js.map} +1 -1
- package/dashboard/dist/assets/{index-C8xDd-Ys.js → index-PZaFsSGv.js} +2 -2
- package/dashboard/dist/assets/{index-C8xDd-Ys.js.map → index-PZaFsSGv.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dr8WJAGM.js → index-qpt9aUuQ.js} +2 -2
- package/dashboard/dist/assets/{index-Dr8WJAGM.js.map → index-qpt9aUuQ.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-CQWNz28-.js → knowledge-tDl7bioT.js} +2 -2
- package/dashboard/dist/assets/{knowledge-CQWNz28-.js.map → knowledge-tDl7bioT.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-J_cDlKuA.js → mcp-CvdtxZQK.js} +2 -2
- package/dashboard/dist/assets/{mcp-J_cDlKuA.js.map → mcp-CvdtxZQK.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-C1zyeRvo.js → mcp-query-D5uxvom6.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-C1zyeRvo.js.map → mcp-query-D5uxvom6.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-BR4fvXXw.js → mcp-runs-DBUF_MeD.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-BR4fvXXw.js.map → mcp-runs-DBUF_MeD.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-XOr9_XCV.js → namespaces-BYTDs3EH.js} +2 -2
- package/dashboard/dist/assets/{namespaces-XOr9_XCV.js.map → namespaces-BYTDs3EH.js.map} +1 -1
- package/dashboard/dist/assets/{roles-yuxJgQBf.js → roles-BWPoKy_E.js} +2 -2
- package/dashboard/dist/assets/{roles-yuxJgQBf.js.map → roles-BWPoKy_E.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CI3qsHdP.js → tasks-BQH9o3Ge.js} +2 -2
- package/dashboard/dist/assets/{tasks-CI3qsHdP.js.map → tasks-BQH9o3Ge.js.map} +1 -1
- package/dashboard/dist/assets/{topics-lm2GYKuv.js → topics-BjuxqPQn.js} +2 -2
- package/dashboard/dist/assets/{topics-lm2GYKuv.js.map → topics-BjuxqPQn.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-DpvfSw9p.js → useEventHooks-CZR0V3cW.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-DpvfSw9p.js.map → useEventHooks-CZR0V3cW.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-D-zuU9Ts.js → useYamlActivityEvents-DATwT-Bk.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-D-zuU9Ts.js.map → useYamlActivityEvents-DATwT-Bk.js.map} +1 -1
- package/dashboard/dist/assets/{users-DRkulG9o.js → users-DzO800OU.js} +2 -2
- package/dashboard/dist/assets/{users-DRkulG9o.js.map → users-DzO800OU.js.map} +1 -1
- package/dashboard/dist/assets/{workflows-dhvM792w.js → workflows-C093TSq9.js} +2 -2
- package/dashboard/dist/assets/{workflows-dhvM792w.js.map → workflows-C093TSq9.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DqbGpE2x.js → yaml-workflows-Du9N-ZOj.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DqbGpE2x.js.map → yaml-workflows-Du9N-ZOj.js.map} +1 -1
- package/dashboard/dist/index.html +6 -6
- package/package.json +1 -1
- package/dashboard/dist/assets/CredentialsPage-Dl15oW3U.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-Dl15oW3U.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar-YHesiWwN.js +0 -2
- package/dashboard/dist/assets/ListToolbar-YHesiWwN.js.map +0 -1
- package/dashboard/dist/assets/index-B7Vxutyl.js.map +0 -1
- package/dashboard/dist/assets/index-C7k3xfpt.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as n,b as s,c as u}from"./vendor-query-B2UbickB.js";import{b as r}from"./index-
|
|
2
|
-
//# sourceMappingURL=workflows-
|
|
1
|
+
import{u as n,b as s,c as u}from"./vendor-query-B2UbickB.js";import{b as r}from"./index-B_e2uIz9.js";function f(){return n({queryKey:["activeWorkers"],queryFn:async()=>(await r("/workflows/workers")).workers})}function w(){return n({queryKey:["discoveredWorkflows"],queryFn:async()=>(await r("/workflows/discovered")).workflows})}function l(){return n({queryKey:["workflowConfigs"],queryFn:async()=>(await r("/workflows/config")).workflows})}function d(){return n({queryKey:["cronStatus"],queryFn:async()=>(await r("/workflows/cron/status")).schedules})}function k(e){return n({queryKey:["workflowExecution",e],queryFn:()=>r(`/workflow-states/${e}/execution`),enabled:!!e})}function m(e){const o=new URLSearchParams;return e.limit&&o.set("limit",String(e.limit)),e.offset!==void 0&&o.set("offset",String(e.offset)),e.entity&&o.set("entity",e.entity),e.search&&o.set("search",e.search),e.status&&o.set("status",e.status),e.sort_by&&o.set("sort_by",e.sort_by),e.order&&o.set("order",e.order),e.registered&&o.set("registered",e.registered),e.namespace&&o.set("namespace",e.namespace),n({queryKey:["jobs",e],queryFn:()=>r(`/workflow-states/jobs?${o}`)})}function q(){const e=s();return u({mutationFn:o=>r(`/workflows/${o}/terminate`,{method:"POST"}),onSuccess:(o,t)=>{e.invalidateQueries({queryKey:["workflowExecution",t],refetchType:"all"}),e.invalidateQueries({queryKey:["jobs"],refetchType:"all"})}})}function h(){const e=s();return u({mutationFn:({workflow_type:o,...t})=>r(`/workflows/${encodeURIComponent(o)}/config`,{method:"PUT",body:JSON.stringify(t)}),onSuccess:()=>{e.invalidateQueries({queryKey:["workflowConfigs"],refetchType:"all"})}})}function p(){const e=s();return u({mutationFn:o=>r(`/workflows/${encodeURIComponent(o)}/config`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["workflowConfigs"],refetchType:"all"})}})}function g(){const e=s();return u({mutationFn:({config:o,cron_schedule:t,envelope_schema:i})=>r(`/workflows/${encodeURIComponent(o.workflow_type)}/config`,{method:"PUT",body:JSON.stringify({...o,cron_schedule:t,...i!==void 0?{envelope_schema:i}:{}})}),onSuccess:()=>{e.invalidateQueries({queryKey:["workflowConfigs"],refetchType:"all"}),e.invalidateQueries({queryKey:["cronStatus"],refetchType:"all"})}})}function C(){const e=s();return u({mutationFn:({workflowType:o,data:t,metadata:i,execute_as:a})=>r(`/workflows/${o}/invoke`,{method:"POST",body:JSON.stringify({data:t,metadata:i,...a?{execute_as:a}:{}})}),onSuccess:()=>{e.invalidateQueries({queryKey:["tasks"],refetchType:"all"}),e.invalidateQueries({queryKey:["jobs"],refetchType:"all"})}})}export{k as a,m as b,C as c,g as d,w as e,d as f,q as g,f as h,p as i,h as j,l as u};
|
|
2
|
+
//# sourceMappingURL=workflows-C093TSq9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows-
|
|
1
|
+
{"version":3,"file":"workflows-C093TSq9.js","sources":["../../src/api/workflows.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\nimport type { ActiveWorker, CronScheduleEntry, DiscoveredWorkflow, LTJob, LTWorkflowConfig, WorkflowExecution } from './types';\n\nexport function useActiveWorkers() {\n return useQuery<ActiveWorker[]>({\n queryKey: ['activeWorkers'],\n queryFn: async () => {\n const res = await apiFetch<{ workers: ActiveWorker[] }>('/workflows/workers');\n return res.workers;\n },\n });\n}\n\nexport function useDiscoveredWorkflows() {\n return useQuery<DiscoveredWorkflow[]>({\n queryKey: ['discoveredWorkflows'],\n queryFn: async () => {\n const res = await apiFetch<{ workflows: DiscoveredWorkflow[] }>('/workflows/discovered');\n return res.workflows;\n },\n });\n}\n\nexport function useWorkflowConfigs() {\n return useQuery<LTWorkflowConfig[]>({\n queryKey: ['workflowConfigs'],\n queryFn: async () => {\n const res = await apiFetch<{ workflows: LTWorkflowConfig[] }>('/workflows/config');\n return res.workflows;\n },\n });\n}\n\nexport function useCronStatus() {\n return useQuery<CronScheduleEntry[]>({\n queryKey: ['cronStatus'],\n queryFn: async () => {\n const res = await apiFetch<{ schedules: CronScheduleEntry[] }>('/workflows/cron/status');\n return res.schedules;\n },\n });\n}\n\nexport function useWorkflowExecution(workflowId: string) {\n return useQuery<WorkflowExecution>({\n queryKey: ['workflowExecution', workflowId],\n queryFn: () =>\n apiFetch(`/workflow-states/${workflowId}/execution`),\n enabled: !!workflowId,\n });\n}\n\nexport function useWorkflowState(workflowId: string) {\n return useQuery<{ workflow_id: string; state: Record<string, unknown> }>({\n queryKey: ['workflowState', workflowId],\n queryFn: () => apiFetch(`/workflow-states/${workflowId}/state`),\n enabled: !!workflowId,\n });\n}\n\nexport function useJobs(filters: {\n limit?: number;\n offset?: number;\n entity?: string;\n search?: string;\n status?: string;\n sort_by?: string;\n order?: string;\n registered?: string;\n namespace?: string;\n}) {\n const params = new URLSearchParams();\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n if (filters.entity) params.set('entity', filters.entity);\n if (filters.search) params.set('search', filters.search);\n if (filters.status) params.set('status', filters.status);\n if (filters.sort_by) params.set('sort_by', filters.sort_by);\n if (filters.order) params.set('order', filters.order);\n if (filters.registered) params.set('registered', filters.registered);\n if (filters.namespace) params.set('namespace', filters.namespace);\n\n return useQuery<{ jobs: LTJob[]; total: number }>({\n queryKey: ['jobs', filters],\n queryFn: () => apiFetch(`/workflow-states/jobs?${params}`),\n });\n}\n\nexport function useTerminateWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (workflowId: string) =>\n apiFetch(`/workflows/${workflowId}/terminate`, { method: 'POST' }),\n onSuccess: (_data, workflowId) => {\n queryClient.invalidateQueries({ queryKey: ['workflowExecution', workflowId], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['jobs'], refetchType: 'all' });\n },\n });\n}\n\nexport function useUpsertWorkflowConfig() {\n const queryClient = useQueryClient();\n return useMutation<\n LTWorkflowConfig,\n Error,\n {\n workflow_type: string;\n description?: string | null;\n\n invocable?: boolean;\n task_queue?: string | null;\n default_role?: string;\n roles?: string[];\n invocation_roles?: string[];\n consumes?: string[];\n envelope_schema?: Record<string, unknown> | null;\n resolver_schema?: Record<string, unknown> | null;\n cron_schedule?: string | null;\n execute_as?: string | null;\n }\n >({\n mutationFn: ({ workflow_type, ...body }) =>\n apiFetch(`/workflows/${encodeURIComponent(workflow_type)}/config`, {\n method: 'PUT',\n body: JSON.stringify(body),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflowConfigs'], refetchType: 'all' });\n },\n });\n}\n\nexport function useDeleteWorkflowConfig() {\n const queryClient = useQueryClient();\n return useMutation<{ deleted: boolean; workflow_type: string }, Error, string>({\n mutationFn: (workflowType) =>\n apiFetch(`/workflows/${encodeURIComponent(workflowType)}/config`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflowConfigs'], refetchType: 'all' });\n },\n });\n}\n\nexport function useSetCronSchedule() {\n const queryClient = useQueryClient();\n return useMutation<\n LTWorkflowConfig,\n Error,\n { config: LTWorkflowConfig; cron_schedule: string | null; envelope_schema?: Record<string, unknown> | null }\n >({\n mutationFn: ({ config, cron_schedule, envelope_schema }) =>\n apiFetch(`/workflows/${encodeURIComponent(config.workflow_type)}/config`, {\n method: 'PUT',\n body: JSON.stringify({\n ...config,\n cron_schedule,\n ...(envelope_schema !== undefined ? { envelope_schema } : {}),\n }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflowConfigs'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['cronStatus'], refetchType: 'all' });\n },\n });\n}\n\nexport function useInvokeWorkflow() {\n const queryClient = useQueryClient();\n return useMutation<\n { workflowId: string; message: string },\n Error,\n { workflowType: string; data: Record<string, unknown>; metadata?: Record<string, unknown>; execute_as?: string }\n >({\n mutationFn: ({ workflowType, data, metadata, execute_as }) =>\n apiFetch(`/workflows/${workflowType}/invoke`, {\n method: 'POST',\n body: JSON.stringify({ data, metadata, ...(execute_as ? { execute_as } : {}) }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['tasks'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['jobs'], refetchType: 'all' });\n },\n });\n}\n"],"names":["useActiveWorkers","useQuery","apiFetch","useDiscoveredWorkflows","useWorkflowConfigs","useCronStatus","useWorkflowExecution","workflowId","useJobs","filters","params","useTerminateWorkflow","queryClient","useQueryClient","useMutation","_data","useUpsertWorkflowConfig","workflow_type","body","useDeleteWorkflowConfig","workflowType","useSetCronSchedule","config","cron_schedule","envelope_schema","useInvokeWorkflow","data","metadata","execute_as"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as l,b as a,c as n}from"./vendor-query-B2UbickB.js";import{b as r}from"./index-
|
|
2
|
-
//# sourceMappingURL=yaml-workflows-
|
|
1
|
+
import{u as l,b as a,c as n}from"./vendor-query-B2UbickB.js";import{b as r}from"./index-B_e2uIz9.js";function f(e={}){const o=new URLSearchParams;return e.status&&o.set("status",e.status),e.graph_topic&&o.set("graph_topic",e.graph_topic),e.app_id&&o.set("app_id",e.app_id),e.search&&o.set("search",e.search),e.set_id&&o.set("set_id",e.set_id),e.limit&&o.set("limit",String(e.limit)),e.offset!==void 0&&o.set("offset",String(e.offset)),l({queryKey:["yamlWorkflows",e],queryFn:()=>r(`/yaml-workflows?${o}`)})}function m(){return l({queryKey:["yamlWorkflowAppIds"],queryFn:()=>r("/yaml-workflows/app-ids")})}function c(e){return l({queryKey:["yamlWorkflows",e],queryFn:()=>r(`/yaml-workflows/${e}`),enabled:!!e})}function w(){const e=a();return n({mutationFn:o=>r("/yaml-workflows",{method:"POST",body:JSON.stringify(o)}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function k(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}/deploy`,{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function d(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}/activate`,{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function p(){const e=a();return n({mutationFn:({id:o,data:t,sync:s,execute_as:u})=>r(`/yaml-workflows/${o}/invoke`,{method:"POST",body:JSON.stringify({data:t,sync:s,...u?{execute_as:u}:{}})}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function h(){const e=a();return n({mutationFn:({id:o,task_queue:t,compilation_feedback:s})=>r(`/yaml-workflows/${o}/regenerate`,{method:"POST",body:JSON.stringify({task_queue:t,compilation_feedback:s})}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function q(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}/archive`,{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function W(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}/restore`,{method:"POST"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"}),e.invalidateQueries({queryKey:["yamlWorkflow"],refetchType:"all"})}})}function S(){const e=a();return n({mutationFn:({id:o,...t})=>r(`/yaml-workflows/${o}`,{method:"PUT",body:JSON.stringify(t)}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function T(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function v(){const e=a();return n({mutationFn:({id:o,cron_schedule:t,cron_envelope:s,execute_as:u})=>r(`/yaml-workflows/${o}/cron`,{method:"PUT",body:JSON.stringify({cron_schedule:t,cron_envelope:s,execute_as:u})}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function F(){const e=a();return n({mutationFn:o=>r(`/yaml-workflows/${o}/cron`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["yamlWorkflows"],refetchType:"all"})}})}function K(e){return l({queryKey:["yamlWorkflows",e,"versions"],queryFn:()=>r(`/yaml-workflows/${e}/versions`),enabled:!!e})}function C(e,o){return l({queryKey:["yamlWorkflows",e,"versions",o],queryFn:()=>r(`/yaml-workflows/${e}/versions/${o}`),enabled:!!e&&o!==null})}export{m as a,S as b,c,K as d,k as e,d as f,q as g,W as h,T as i,h as j,C as k,p as l,w as m,v as n,F as o,f as u};
|
|
2
|
+
//# sourceMappingURL=yaml-workflows-Du9N-ZOj.js.map
|
package/dashboard/dist/assets/{yaml-workflows-DqbGpE2x.js.map → yaml-workflows-Du9N-ZOj.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-workflows-DqbGpE2x.js","sources":["../../src/api/yaml-workflows.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\nimport type { LTYamlWorkflowRecord, LTYamlWorkflowStatus, LTYamlWorkflowVersion } from './types';\n\ninterface YamlWorkflowListResponse {\n workflows: LTYamlWorkflowRecord[];\n total: number;\n}\n\ninterface YamlWorkflowFilters {\n status?: LTYamlWorkflowStatus;\n graph_topic?: string;\n app_id?: string;\n search?: string;\n set_id?: string;\n limit?: number;\n offset?: number;\n}\n\nexport function useYamlWorkflows(filters: YamlWorkflowFilters = {}) {\n const params = new URLSearchParams();\n if (filters.status) params.set('status', filters.status);\n if (filters.graph_topic) params.set('graph_topic', filters.graph_topic);\n if (filters.app_id) params.set('app_id', filters.app_id);\n if (filters.search) params.set('search', filters.search);\n if (filters.set_id) params.set('set_id', filters.set_id);\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n\n return useQuery<YamlWorkflowListResponse>({\n queryKey: ['yamlWorkflows', filters],\n queryFn: () => apiFetch(`/yaml-workflows?${params}`),\n });\n}\n\nexport function useYamlWorkflowAppIds() {\n return useQuery<{ app_ids: string[] }>({\n queryKey: ['yamlWorkflowAppIds'],\n queryFn: () => apiFetch('/yaml-workflows/app-ids'),\n });\n}\n\nexport function useYamlWorkflowByTopic(graphTopic: string | undefined, appId?: string) {\n return useQuery<YamlWorkflowListResponse>({\n queryKey: ['yamlWorkflows', 'byTopic', graphTopic, appId],\n queryFn: () => {\n const params = new URLSearchParams({ graph_topic: graphTopic!, limit: '1' });\n if (appId) params.set('app_id', appId);\n return apiFetch(`/yaml-workflows?${params}`);\n },\n enabled: !!graphTopic,\n });\n}\n\nexport function useYamlWorkflow(id: string) {\n return useQuery<LTYamlWorkflowRecord>({\n queryKey: ['yamlWorkflows', id],\n queryFn: () => apiFetch(`/yaml-workflows/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useCreateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (input: {\n workflow_id: string;\n task_queue: string;\n workflow_name: string;\n name: string;\n description?: string;\n app_id?: string;\n subscribes?: string;\n tags?: string[];\n compilation_feedback?: string;\n }) =>\n apiFetch<LTYamlWorkflowRecord>('/yaml-workflows', {\n method: 'POST',\n body: JSON.stringify(input),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useDeployYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/deploy`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useActivateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/activate`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useInvokeYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, data, sync, execute_as }: { id: string; data: Record<string, unknown>; sync?: boolean; execute_as?: string }) =>\n apiFetch<{ result?: unknown; job_id?: string }>(`/yaml-workflows/${id}/invoke`, {\n method: 'POST',\n body: JSON.stringify({ data, sync, ...(execute_as ? { execute_as } : {}) }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useRegenerateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, task_queue, compilation_feedback }: { id: string; task_queue?: string; compilation_feedback?: string }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/regenerate`, {\n method: 'POST',\n body: JSON.stringify({ task_queue, compilation_feedback }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useArchiveYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/archive`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useRestoreYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/restore`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflow'], refetchType: 'all' });\n },\n });\n}\n\nexport function useUpdateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, ...updates }: { id: string; yaml_content?: string; name?: string; description?: string; input_schema?: Record<string, unknown>; output_schema?: Record<string, unknown>; tags?: string[]; app_id?: string; graph_topic?: string }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}`, {\n method: 'PUT',\n body: JSON.stringify(updates),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useDeleteYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<{ deleted: boolean }>(`/yaml-workflows/${id}`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\n// ── Cron scheduling ─────────────────────────────────────────────\n\nexport function useSetYamlCron() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, cron_schedule, cron_envelope, execute_as }: {\n id: string;\n cron_schedule: string;\n cron_envelope?: Record<string, unknown> | null;\n execute_as?: string | null;\n }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/cron`, {\n method: 'PUT',\n body: JSON.stringify({ cron_schedule, cron_envelope, execute_as }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useClearYamlCron() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/cron`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\n// ── Version history ─────────────────────────────────────────────\n\nexport function useYamlWorkflowVersions(id: string) {\n return useQuery<{ versions: LTYamlWorkflowVersion[]; total: number }>({\n queryKey: ['yamlWorkflows', id, 'versions'],\n queryFn: () => apiFetch(`/yaml-workflows/${id}/versions`),\n enabled: !!id,\n });\n}\n\nexport function useYamlWorkflowVersion(id: string, version: number | null) {\n return useQuery<LTYamlWorkflowVersion>({\n queryKey: ['yamlWorkflows', id, 'versions', version],\n queryFn: () => apiFetch(`/yaml-workflows/${id}/versions/${version}`),\n enabled: !!id && version !== null,\n });\n}\n"],"names":["useYamlWorkflows","filters","params","useQuery","apiFetch","useYamlWorkflowAppIds","useYamlWorkflow","id","useCreateYamlWorkflow","queryClient","useQueryClient","useMutation","input","useDeployYamlWorkflow","useActivateYamlWorkflow","useInvokeYamlWorkflow","data","sync","execute_as","useRegenerateYamlWorkflow","task_queue","compilation_feedback","useArchiveYamlWorkflow","useRestoreYamlWorkflow","useUpdateYamlWorkflow","updates","useDeleteYamlWorkflow","useSetYamlCron","cron_schedule","cron_envelope","useClearYamlCron","useYamlWorkflowVersions","useYamlWorkflowVersion","version"],"mappings":"qGAmBO,SAASA,EAAiBC,EAA+B,GAAI,CAClE,MAAMC,EAAS,IAAI,gBACnB,OAAID,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,aAAaC,EAAO,IAAI,cAAeD,EAAQ,WAAW,EAClEA,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,OAAOC,EAAO,IAAI,QAAS,OAAOD,EAAQ,KAAK,CAAC,EACxDA,EAAQ,SAAW,QAAWC,EAAO,IAAI,SAAU,OAAOD,EAAQ,MAAM,CAAC,EAEtEE,EAAmC,CACxC,SAAU,CAAC,gBAAiBF,CAAO,EACnC,QAAS,IAAMG,EAAS,mBAAmBF,CAAM,EAAE,CAAA,CACpD,CACH,CAEO,SAASG,GAAwB,CACtC,OAAOF,EAAgC,CACrC,SAAU,CAAC,oBAAoB,EAC/B,QAAS,IAAMC,EAAS,yBAAyB,CAAA,CAClD,CACH,CAcO,SAASE,EAAgBC,EAAY,CAC1C,OAAOJ,EAA+B,CACpC,SAAU,CAAC,gBAAiBI,CAAE,EAC9B,QAAS,IAAMH,EAAS,mBAAmBG,CAAE,EAAE,EAC/C,QAAS,CAAC,CAACA,CAAA,CACZ,CACH,CAEO,SAASC,GAAwB,CACtC,MAAMC,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaC,GAWXR,EAA+B,kBAAmB,CAChD,OAAQ,OACR,KAAM,KAAK,UAAUQ,CAAK,CAAA,CAC3B,EACH,UAAW,IAAM,CACfH,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASI,GAAwB,CACtC,MAAMJ,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,UAAW,CAC7D,OAAQ,MAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASK,GAA0B,CACxC,MAAML,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,YAAa,CAC/D,OAAQ,MAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASM,GAAwB,CACtC,MAAMN,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,GAAAJ,EAAI,KAAAS,EAAM,KAAAC,EAAM,WAAAC,KAC7Bd,EAAgD,mBAAmBG,CAAE,UAAW,CAC9E,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,KAAAS,EAAM,KAAAC,EAAM,GAAIC,EAAa,CAAE,WAAAA,CAAA,EAAe,GAAK,CAAA,CAC3E,EACH,UAAW,IAAM,CACfT,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASU,GAA4B,CAC1C,MAAMV,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,GAAAJ,EAAI,WAAAa,EAAY,qBAAAC,KAC7BjB,EAA+B,mBAAmBG,CAAE,cAAe,CACjE,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,WAAAa,EAAY,qBAAAC,EAAsB,CAAA,CAC1D,EACH,UAAW,IAAM,CACfZ,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASa,GAAyB,CACvC,MAAMb,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,WAAY,CAC9D,OAAQ,MAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASc,GAAyB,CACvC,MAAMd,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,WAAY,CAC9D,OAAQ,MAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,EACjFA,EAAY,kBAAkB,CAAE,SAAU,CAAC,cAAc,EAAG,YAAa,MAAO,CAClF,CAAA,CACD,CACH,CAEO,SAASe,GAAwB,CACtC,MAAMf,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,GAAAJ,EAAI,GAAGkB,KACpBrB,EAA+B,mBAAmBG,CAAE,GAAI,CACtD,OAAQ,MACR,KAAM,KAAK,UAAUkB,CAAO,CAAA,CAC7B,EACH,UAAW,IAAM,CACfhB,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASiB,GAAwB,CACtC,MAAMjB,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,GAAI,CACtD,OAAQ,QAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAIO,SAASkB,GAAiB,CAC/B,MAAMlB,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,GAAAJ,EAAI,cAAAqB,EAAe,cAAAC,EAAe,WAAAX,KAM/Cd,EAA+B,mBAAmBG,CAAE,QAAS,CAC3D,OAAQ,MACR,KAAM,KAAK,UAAU,CAAE,cAAAqB,EAAe,cAAAC,EAAe,WAAAX,EAAY,CAAA,CAClE,EACH,UAAW,IAAM,CACfT,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAEO,SAASqB,GAAmB,CACjC,MAAMrB,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaJ,GACXH,EAA+B,mBAAmBG,CAAE,QAAS,CAC3D,OAAQ,QAAA,CACT,EACH,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,eAAe,EAAG,YAAa,MAAO,CACnF,CAAA,CACD,CACH,CAIO,SAASsB,EAAwBxB,EAAY,CAClD,OAAOJ,EAA+D,CACpE,SAAU,CAAC,gBAAiBI,EAAI,UAAU,EAC1C,QAAS,IAAMH,EAAS,mBAAmBG,CAAE,WAAW,EACxD,QAAS,CAAC,CAACA,CAAA,CACZ,CACH,CAEO,SAASyB,EAAuBzB,EAAY0B,EAAwB,CACzE,OAAO9B,EAAgC,CACrC,SAAU,CAAC,gBAAiBI,EAAI,WAAY0B,CAAO,EACnD,QAAS,IAAM7B,EAAS,mBAAmBG,CAAE,aAAa0B,CAAO,EAAE,EACnE,QAAS,CAAC,CAAC1B,GAAM0B,IAAY,IAAA,CAC9B,CACH"}
|
|
1
|
+
{"version":3,"file":"yaml-workflows-Du9N-ZOj.js","sources":["../../src/api/yaml-workflows.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\nimport type { LTYamlWorkflowRecord, LTYamlWorkflowStatus, LTYamlWorkflowVersion } from './types';\n\ninterface YamlWorkflowListResponse {\n workflows: LTYamlWorkflowRecord[];\n total: number;\n}\n\ninterface YamlWorkflowFilters {\n status?: LTYamlWorkflowStatus;\n graph_topic?: string;\n app_id?: string;\n search?: string;\n set_id?: string;\n limit?: number;\n offset?: number;\n}\n\nexport function useYamlWorkflows(filters: YamlWorkflowFilters = {}) {\n const params = new URLSearchParams();\n if (filters.status) params.set('status', filters.status);\n if (filters.graph_topic) params.set('graph_topic', filters.graph_topic);\n if (filters.app_id) params.set('app_id', filters.app_id);\n if (filters.search) params.set('search', filters.search);\n if (filters.set_id) params.set('set_id', filters.set_id);\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n\n return useQuery<YamlWorkflowListResponse>({\n queryKey: ['yamlWorkflows', filters],\n queryFn: () => apiFetch(`/yaml-workflows?${params}`),\n });\n}\n\nexport function useYamlWorkflowAppIds() {\n return useQuery<{ app_ids: string[] }>({\n queryKey: ['yamlWorkflowAppIds'],\n queryFn: () => apiFetch('/yaml-workflows/app-ids'),\n });\n}\n\nexport function useYamlWorkflowByTopic(graphTopic: string | undefined, appId?: string) {\n return useQuery<YamlWorkflowListResponse>({\n queryKey: ['yamlWorkflows', 'byTopic', graphTopic, appId],\n queryFn: () => {\n const params = new URLSearchParams({ graph_topic: graphTopic!, limit: '1' });\n if (appId) params.set('app_id', appId);\n return apiFetch(`/yaml-workflows?${params}`);\n },\n enabled: !!graphTopic,\n });\n}\n\nexport function useYamlWorkflow(id: string) {\n return useQuery<LTYamlWorkflowRecord>({\n queryKey: ['yamlWorkflows', id],\n queryFn: () => apiFetch(`/yaml-workflows/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useCreateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (input: {\n workflow_id: string;\n task_queue: string;\n workflow_name: string;\n name: string;\n description?: string;\n app_id?: string;\n subscribes?: string;\n tags?: string[];\n compilation_feedback?: string;\n }) =>\n apiFetch<LTYamlWorkflowRecord>('/yaml-workflows', {\n method: 'POST',\n body: JSON.stringify(input),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useDeployYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/deploy`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useActivateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/activate`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useInvokeYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, data, sync, execute_as }: { id: string; data: Record<string, unknown>; sync?: boolean; execute_as?: string }) =>\n apiFetch<{ result?: unknown; job_id?: string }>(`/yaml-workflows/${id}/invoke`, {\n method: 'POST',\n body: JSON.stringify({ data, sync, ...(execute_as ? { execute_as } : {}) }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useRegenerateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, task_queue, compilation_feedback }: { id: string; task_queue?: string; compilation_feedback?: string }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/regenerate`, {\n method: 'POST',\n body: JSON.stringify({ task_queue, compilation_feedback }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useArchiveYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/archive`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useRestoreYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/restore`, {\n method: 'POST',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflow'], refetchType: 'all' });\n },\n });\n}\n\nexport function useUpdateYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, ...updates }: { id: string; yaml_content?: string; name?: string; description?: string; input_schema?: Record<string, unknown>; output_schema?: Record<string, unknown>; tags?: string[]; app_id?: string; graph_topic?: string }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}`, {\n method: 'PUT',\n body: JSON.stringify(updates),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useDeleteYamlWorkflow() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<{ deleted: boolean }>(`/yaml-workflows/${id}`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\n// ── Cron scheduling ─────────────────────────────────────────────\n\nexport function useSetYamlCron() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, cron_schedule, cron_envelope, execute_as }: {\n id: string;\n cron_schedule: string;\n cron_envelope?: Record<string, unknown> | null;\n execute_as?: string | null;\n }) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/cron`, {\n method: 'PUT',\n body: JSON.stringify({ cron_schedule, cron_envelope, execute_as }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\nexport function useClearYamlCron() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch<LTYamlWorkflowRecord>(`/yaml-workflows/${id}/cron`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['yamlWorkflows'], refetchType: 'all' });\n },\n });\n}\n\n// ── Version history ─────────────────────────────────────────────\n\nexport function useYamlWorkflowVersions(id: string) {\n return useQuery<{ versions: LTYamlWorkflowVersion[]; total: number }>({\n queryKey: ['yamlWorkflows', id, 'versions'],\n queryFn: () => apiFetch(`/yaml-workflows/${id}/versions`),\n enabled: !!id,\n });\n}\n\nexport function useYamlWorkflowVersion(id: string, version: number | null) {\n return useQuery<LTYamlWorkflowVersion>({\n queryKey: ['yamlWorkflows', id, 'versions', version],\n queryFn: () => apiFetch(`/yaml-workflows/${id}/versions/${version}`),\n enabled: !!id && version !== null,\n });\n}\n"],"names":["useYamlWorkflows","filters","params","useQuery","apiFetch","useYamlWorkflowAppIds","useYamlWorkflow","id","useCreateYamlWorkflow","queryClient","useQueryClient","useMutation","input","useDeployYamlWorkflow","useActivateYamlWorkflow","useInvokeYamlWorkflow","data","sync","execute_as","useRegenerateYamlWorkflow","task_queue","compilation_feedback","useArchiveYamlWorkflow","useRestoreYamlWorkflow","useUpdateYamlWorkflow","updates","useDeleteYamlWorkflow","useSetYamlCron","cron_schedule","cron_envelope","useClearYamlCron","useYamlWorkflowVersions","useYamlWorkflowVersion","version"],"mappings":"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"}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="./logo512.png" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>LongTail</title>
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
11
|
-
<script type="module" crossorigin src="
|
|
12
|
-
<link rel="modulepreload" crossorigin href="
|
|
13
|
-
<link rel="modulepreload" crossorigin href="
|
|
14
|
-
<link rel="modulepreload" crossorigin href="
|
|
15
|
-
<link rel="stylesheet" crossorigin href="
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-B_e2uIz9.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="./assets/vendor-query-B2UbickB.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="./assets/vendor-react-CX88sFS5.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="./assets/vendor-icons-5gSix3t2.js">
|
|
15
|
+
<link rel="stylesheet" crossorigin href="./assets/index-DZI2L4ag.css">
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as i,j as e}from"./vendor-query-B2UbickB.js";import{A as y,B as N,O as p,E as f}from"./index-B7Vxutyl.js";import{P as C}from"./PageHeader-B4w-LDUF.js";import{T as k}from"./TimeAgo-8aYUlXT9.js";import{C as A}from"./ConfirmDeleteModal-dOxidrSR.js";import{l as w,i as P,ai as O,p as T}from"./vendor-icons-5gSix3t2.js";import"./vendor-react-CX88sFS5.js";import"./Modal-DEODGeqx.js";const o={anthropic:{name:"Anthropic",helpText:'Run "claude setup-token" for an OAuth token, or use an API key from console.anthropic.com.',placeholder:"sk-ant-oat01-... or sk-ant-api03-..."},openai:{name:"OpenAI",helpText:"Create an API key at platform.openai.com/api-keys.",placeholder:"sk-..."},google:{name:"Google",helpText:"Connect your Google account for Gmail, Calendar, and Drive access.",placeholder:"",oauth:!0}};function U(){var d,x;const{data:r,isLoading:m}=y(),n=N(),[a,l]=i.useState(null),[h,u]=i.useState(!1),[s,j]=i.useState("anthropic"),c=(r==null?void 0:r.connections)??[],b=()=>{a&&n.mutate({provider:a.provider,label:a.label},{onSuccess:()=>l(null)})},v=t=>`/api/auth/oauth/connect/${t}?token=${encodeURIComponent(f()||"")}&returnTo=/credentials`;return e.jsxs("div",{children:[e.jsx(C,{title:"Credentials",docsHash:"#docs:dashboard.md:credentials",actions:e.jsxs("button",{onClick:()=>u(t=>!t),className:"btn-primary text-xs inline-flex items-center gap-1.5",children:[e.jsx(w,{className:"w-3.5 h-3.5"}),"Add Credential"]})}),e.jsx("p",{className:"text-sm text-text-secondary mb-6",children:"Manage credentials used by tools when invoked on your behalf. Each credential is encrypted at rest and resolved automatically during tool execution."}),h&&e.jsxs("div",{className:"mb-6 p-4 bg-surface-raised border border-surface-border rounded-md space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("label",{className:"text-xs text-text-secondary font-medium",children:"Provider"}),e.jsxs("div",{className:"relative",children:[e.jsx("select",{value:s,onChange:t=>j(t.target.value),className:"input text-xs pr-7 appearance-none",children:Object.entries(o).map(([t,g])=>e.jsx("option",{value:t,children:g.name},t))}),e.jsx(P,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-text-tertiary pointer-events-none"})]})]}),e.jsx("p",{className:"text-xs text-text-tertiary",children:(d=o[s])==null?void 0:d.helpText}),e.jsxs("a",{href:v(s),className:"btn-primary text-xs inline-flex items-center gap-1.5",children:[e.jsx(p,{provider:s,className:"w-3.5 h-3.5"}),"Connect ",(x=o[s])==null?void 0:x.name]})]}),m?e.jsx("div",{className:"animate-pulse space-y-3",children:[1,2].map(t=>e.jsx("div",{className:"h-16 bg-surface-sunken rounded"},t))}):c.length===0?e.jsxs("div",{className:"text-center py-16 text-text-tertiary",children:[e.jsx(O,{className:"w-10 h-10 mx-auto mb-3 opacity-40"}),e.jsx("p",{className:"text-sm",children:"No credentials registered."}),e.jsx("p",{className:"text-xs mt-1",children:"Add a credential to enable tool authentication."})]}):e.jsx("div",{className:"space-y-2",children:c.map(t=>e.jsxs("div",{className:"group/row flex items-center gap-4 px-4 py-3 bg-surface-raised border border-surface-border rounded-md",children:[e.jsx(p,{provider:t.provider,className:"w-6 h-6 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-text-primary font-medium capitalize",children:t.provider}),t.label!=="default"&&e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-surface-sunken rounded text-text-tertiary",children:t.label}),t.credential_type&&e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-accent-faint rounded text-accent",children:t.credential_type})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-0.5",children:[t.email&&e.jsx("span",{className:"text-xs text-text-tertiary",children:t.email}),t.expires_at&&e.jsxs("span",{className:"text-xs text-text-tertiary",children:["Expires ",e.jsx(k,{date:t.expires_at})]})]})]}),e.jsx("button",{onClick:()=>l({provider:t.provider,label:t.label}),className:"opacity-0 group-hover/row:opacity-100 transition-opacity text-text-tertiary hover:text-status-error",title:"Revoke credential",children:e.jsx(T,{className:"w-4 h-4"})})]},`${t.provider}-${t.label}`))}),e.jsx(A,{open:!!a,onClose:()=>l(null),onConfirm:b,title:"Revoke Credential",description:e.jsxs(e.Fragment,{children:["Revoke the"," ",e.jsx("span",{className:"font-medium text-text-primary capitalize",children:a==null?void 0:a.provider}),(a==null?void 0:a.label)!=="default"&&e.jsxs(e.Fragment,{children:[" (",a==null?void 0:a.label,")"]})," ","credential? Tools will no longer be able to use this credential."]}),isPending:n.isPending,error:n.error})]})}export{U as CredentialsPage};
|
|
2
|
-
//# sourceMappingURL=CredentialsPage-Dl15oW3U.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialsPage-Dl15oW3U.js","sources":["../../src/pages/settings/CredentialsPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { Unplug, Trash2, Plus, ChevronDown } from 'lucide-react';\nimport { useOAuthConnections, useDisconnectOAuth } from '../../api/oauth';\nimport { getToken } from '../../api/client';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { OAuthIcon } from '../../components/common/OAuthIcon';\nimport { TimeAgo } from '../../components/common/display/TimeAgo';\nimport { ConfirmDeleteModal } from '../../components/common/modal/ConfirmDeleteModal';\n\ninterface ConnectionToRevoke {\n provider: string;\n label: string;\n}\n\nconst PROVIDERS: Record<string, { name: string; helpText: string; placeholder: string; oauth?: boolean }> = {\n anthropic: {\n name: 'Anthropic',\n helpText: 'Run \"claude setup-token\" for an OAuth token, or use an API key from console.anthropic.com.',\n placeholder: 'sk-ant-oat01-... or sk-ant-api03-...',\n },\n openai: {\n name: 'OpenAI',\n helpText: 'Create an API key at platform.openai.com/api-keys.',\n placeholder: 'sk-...',\n },\n google: {\n name: 'Google',\n helpText: 'Connect your Google account for Gmail, Calendar, and Drive access.',\n placeholder: '',\n oauth: true,\n },\n};\n\nexport function CredentialsPage() {\n const { data, isLoading } = useOAuthConnections();\n const disconnect = useDisconnectOAuth();\n const [confirmRevoke, setConfirmRevoke] = useState<ConnectionToRevoke | null>(null);\n const [addOpen, setAddOpen] = useState(false);\n const [selectedProvider, setSelectedProvider] = useState('anthropic');\n\n const connections = data?.connections ?? [];\n\n const handleRevoke = () => {\n if (!confirmRevoke) return;\n disconnect.mutate(\n { provider: confirmRevoke.provider, label: confirmRevoke.label },\n { onSuccess: () => setConfirmRevoke(null) },\n );\n };\n\n const connectUrl = (provider: string) =>\n `/api/auth/oauth/connect/${provider}?token=${encodeURIComponent(getToken() || '')}&returnTo=/credentials`;\n\n return (\n <div>\n <PageHeader\n title=\"Credentials\"\n docsHash=\"#docs:dashboard.md:credentials\"\n actions={\n <button\n onClick={() => setAddOpen((o) => !o)}\n className=\"btn-primary text-xs inline-flex items-center gap-1.5\"\n >\n <Plus className=\"w-3.5 h-3.5\" />\n Add Credential\n </button>\n }\n />\n\n <p className=\"text-sm text-text-secondary mb-6\">\n Manage credentials used by tools when invoked on your behalf.\n Each credential is encrypted at rest and resolved automatically during tool execution.\n </p>\n\n {/* Add credential dropdown */}\n {addOpen && (\n <div className=\"mb-6 p-4 bg-surface-raised border border-surface-border rounded-md space-y-3\">\n <div className=\"flex items-center gap-3\">\n <label className=\"text-xs text-text-secondary font-medium\">Provider</label>\n <div className=\"relative\">\n <select\n value={selectedProvider}\n onChange={(e) => setSelectedProvider(e.target.value)}\n className=\"input text-xs pr-7 appearance-none\"\n >\n {Object.entries(PROVIDERS).map(([key, p]) => (\n <option key={key} value={key}>{p.name}</option>\n ))}\n </select>\n <ChevronDown className=\"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-text-tertiary pointer-events-none\" />\n </div>\n </div>\n <p className=\"text-xs text-text-tertiary\">\n {PROVIDERS[selectedProvider]?.helpText}\n </p>\n <a\n href={connectUrl(selectedProvider)}\n className=\"btn-primary text-xs inline-flex items-center gap-1.5\"\n >\n <OAuthIcon provider={selectedProvider} className=\"w-3.5 h-3.5\" />\n Connect {PROVIDERS[selectedProvider]?.name}\n </a>\n </div>\n )}\n\n {/* Credentials table */}\n {isLoading ? (\n <div className=\"animate-pulse space-y-3\">\n {[1, 2].map((i) => (\n <div key={i} className=\"h-16 bg-surface-sunken rounded\" />\n ))}\n </div>\n ) : connections.length === 0 ? (\n <div className=\"text-center py-16 text-text-tertiary\">\n <Unplug className=\"w-10 h-10 mx-auto mb-3 opacity-40\" />\n <p className=\"text-sm\">No credentials registered.</p>\n <p className=\"text-xs mt-1\">Add a credential to enable tool authentication.</p>\n </div>\n ) : (\n <div className=\"space-y-2\">\n {connections.map((conn) => (\n <div\n key={`${conn.provider}-${conn.label}`}\n className=\"group/row flex items-center gap-4 px-4 py-3 bg-surface-raised border border-surface-border rounded-md\"\n >\n <OAuthIcon provider={conn.provider} className=\"w-6 h-6 shrink-0\" />\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-text-primary font-medium capitalize\">\n {conn.provider}\n </span>\n {conn.label !== 'default' && (\n <span className=\"text-[10px] px-1.5 py-0.5 bg-surface-sunken rounded text-text-tertiary\">\n {conn.label}\n </span>\n )}\n {conn.credential_type && (\n <span className=\"text-[10px] px-1.5 py-0.5 bg-accent-faint rounded text-accent\">\n {conn.credential_type}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-3 mt-0.5\">\n {conn.email && (\n <span className=\"text-xs text-text-tertiary\">{conn.email}</span>\n )}\n {conn.expires_at && (\n <span className=\"text-xs text-text-tertiary\">\n Expires <TimeAgo date={conn.expires_at} />\n </span>\n )}\n </div>\n </div>\n\n <button\n onClick={() => setConfirmRevoke({ provider: conn.provider, label: conn.label })}\n className=\"opacity-0 group-hover/row:opacity-100 transition-opacity text-text-tertiary hover:text-status-error\"\n title=\"Revoke credential\"\n >\n <Trash2 className=\"w-4 h-4\" />\n </button>\n </div>\n ))}\n </div>\n )}\n\n <ConfirmDeleteModal\n open={!!confirmRevoke}\n onClose={() => setConfirmRevoke(null)}\n onConfirm={handleRevoke}\n title=\"Revoke Credential\"\n description={\n <>\n Revoke the{' '}\n <span className=\"font-medium text-text-primary capitalize\">\n {confirmRevoke?.provider}\n </span>\n {confirmRevoke?.label !== 'default' && (\n <> ({confirmRevoke?.label})</>\n )}{' '}\n credential? Tools will no longer be able to use this credential.\n </>\n }\n isPending={disconnect.isPending}\n error={disconnect.error as Error | null}\n />\n </div>\n );\n}\n"],"names":["PROVIDERS","CredentialsPage","data","isLoading","useOAuthConnections","disconnect","useDisconnectOAuth","confirmRevoke","setConfirmRevoke","useState","addOpen","setAddOpen","selectedProvider","setSelectedProvider","connections","handleRevoke","connectUrl","provider","getToken","jsx","PageHeader","jsxs","o","Plus","e","key","p","ChevronDown","_a","OAuthIcon","_b","i","Unplug","conn","TimeAgo","Trash2","ConfirmDeleteModal","Fragment"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as C,j as s}from"./vendor-query-B2UbickB.js";import{E as j}from"./index-B7Vxutyl.js";import{Q as u,aD as $,aE as N,as as f}from"./vendor-icons-5gSix3t2.js";function w({onRefresh:d,isFetching:r=!1,apiPath:e}){const[c,l]=C.useState(null),i=(t,n)=>{navigator.clipboard.writeText(t).then(()=>{l(n),setTimeout(()=>l(null),2e3)})},m=()=>{if(!e)return;const t=`${window.location.origin}/api${e}`;i(t,"url")},x=()=>{if(!e)return;const t=`${window.location.origin}/api${e}`,n=j(),p=n?`curl -H "Authorization: Bearer ${n}" "${t}"`:`curl "${t}"`;i(p,"curl")},a="p-1 text-text-quaternary hover:text-accent transition-colors rounded",o="w-2.5 h-2.5";return s.jsxs("div",{className:"flex items-center gap-0.5",children:[e&&s.jsxs(s.Fragment,{children:[s.jsx("button",{onClick:m,className:a,title:"Copy API URL",children:c==="url"?s.jsx(u,{className:`${o} text-status-success`}):s.jsx($,{className:o})}),s.jsx("button",{onClick:x,className:a,title:"Copy curl (includes auth token)",children:c==="curl"?s.jsx(u,{className:`${o} text-status-success`}):s.jsx(N,{className:o})})]}),s.jsx("button",{onClick:d,disabled:r,className:`${a} disabled:opacity-50`,title:"Refresh",children:s.jsx(f,{className:`${o} ${r?"animate-spin":""}`})})]})}export{w as L};
|
|
2
|
-
//# sourceMappingURL=ListToolbar-YHesiWwN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListToolbar-YHesiWwN.js","sources":["../../src/components/common/data/ListToolbar.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { RefreshCw, Link2, Terminal, Check } from 'lucide-react';\nimport { getToken } from '../../../api/client';\n\ninterface ListToolbarProps {\n onRefresh: () => void;\n isFetching?: boolean;\n /** API path (e.g. \"/workflow-states/jobs?limit=50\") for URL/curl copy. */\n apiPath?: string;\n}\n\ntype CopiedState = 'url' | 'curl' | null;\n\n/**\n * Toolbar for list pages: refresh, copy API URL, copy curl command.\n * Designed to sit in FilterBar `actions` slot.\n */\nexport function ListToolbar({ onRefresh, isFetching = false, apiPath }: ListToolbarProps) {\n const [copied, setCopied] = useState<CopiedState>(null);\n\n const copyToClipboard = (text: string, type: CopiedState) => {\n navigator.clipboard.writeText(text).then(() => {\n setCopied(type);\n setTimeout(() => setCopied(null), 2000);\n });\n };\n\n const handleCopyUrl = () => {\n if (!apiPath) return;\n const url = `${window.location.origin}/api${apiPath}`;\n copyToClipboard(url, 'url');\n };\n\n const handleCopyCurl = () => {\n if (!apiPath) return;\n const url = `${window.location.origin}/api${apiPath}`;\n const token = getToken();\n const cmd = token\n ? `curl -H \"Authorization: Bearer ${token}\" \"${url}\"`\n : `curl \"${url}\"`;\n copyToClipboard(cmd, 'curl');\n };\n\n const BTN = 'p-1 text-text-quaternary hover:text-accent transition-colors rounded';\n const ICON = 'w-2.5 h-2.5';\n\n return (\n <div className=\"flex items-center gap-0.5\">\n {apiPath && (\n <>\n <button onClick={handleCopyUrl} className={BTN} title=\"Copy API URL\">\n {copied === 'url' ? <Check className={`${ICON} text-status-success`} /> : <Link2 className={ICON} />}\n </button>\n <button onClick={handleCopyCurl} className={BTN} title=\"Copy curl (includes auth token)\">\n {copied === 'curl' ? <Check className={`${ICON} text-status-success`} /> : <Terminal className={ICON} />}\n </button>\n </>\n )}\n <button onClick={onRefresh} disabled={isFetching} className={`${BTN} disabled:opacity-50`} title=\"Refresh\">\n <RefreshCw className={`${ICON} ${isFetching ? 'animate-spin' : ''}`} />\n </button>\n </div>\n );\n}\n"],"names":["ListToolbar","onRefresh","isFetching","apiPath","copied","setCopied","useState","copyToClipboard","text","type","handleCopyUrl","url","handleCopyCurl","token","getToken","cmd","BTN","ICON","jsxs","Fragment","jsx","Check","Link2","Terminal","RefreshCw"],"mappings":"qKAiBO,SAASA,EAAY,CAAE,UAAAC,EAAW,WAAAC,EAAa,GAAO,QAAAC,GAA6B,CACxF,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAsB,IAAI,EAEhDC,EAAkB,CAACC,EAAcC,IAAsB,CAC3D,UAAU,UAAU,UAAUD,CAAI,EAAE,KAAK,IAAM,CAC7CH,EAAUI,CAAI,EACd,WAAW,IAAMJ,EAAU,IAAI,EAAG,GAAI,CACxC,CAAC,CACH,EAEMK,EAAgB,IAAM,CAC1B,GAAI,CAACP,EAAS,OACd,MAAMQ,EAAM,GAAG,OAAO,SAAS,MAAM,OAAOR,CAAO,GACnDI,EAAgBI,EAAK,KAAK,CAC5B,EAEMC,EAAiB,IAAM,CAC3B,GAAI,CAACT,EAAS,OACd,MAAMQ,EAAM,GAAG,OAAO,SAAS,MAAM,OAAOR,CAAO,GAC7CU,EAAQC,EAAA,EACRC,EAAMF,EACR,kCAAkCA,CAAK,MAAMF,CAAG,IAChD,SAASA,CAAG,IAChBJ,EAAgBQ,EAAK,MAAM,CAC7B,EAEMC,EAAM,uEACNC,EAAO,cAEb,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,4BACZ,SAAA,CAAAf,GACCe,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,SAAA,CAAO,QAASV,EAAe,UAAWM,EAAK,MAAM,eACnD,aAAW,MAAQI,EAAAA,IAACC,GAAM,UAAW,GAAGJ,CAAI,sBAAA,CAAwB,QAAMK,EAAA,CAAM,UAAWL,EAAM,CAAA,CACpG,EACAG,EAAAA,IAAC,UAAO,QAASR,EAAgB,UAAWI,EAAK,MAAM,kCACpD,SAAAZ,IAAW,aAAUiB,EAAA,CAAM,UAAW,GAAGJ,CAAI,sBAAA,CAAwB,EAAKG,EAAAA,IAACG,EAAA,CAAS,UAAWN,CAAA,CAAM,CAAA,CACxG,CAAA,EACF,EAEFG,EAAAA,IAAC,UAAO,QAASnB,EAAW,SAAUC,EAAY,UAAW,GAAGc,CAAG,uBAAwB,MAAM,UAC/F,SAAAI,MAACI,EAAA,CAAU,UAAW,GAAGP,CAAI,IAAIf,EAAa,eAAiB,EAAE,EAAA,CAAI,CAAA,CACvE,CAAA,EACF,CAEJ"}
|