@stigmer/react 3.5.3 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/AgentPicker.d.ts +10 -1
- package/agent/AgentPicker.d.ts.map +1 -1
- package/agent/AgentPicker.js +2 -2
- package/agent/AgentPicker.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +22 -5
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts +53 -0
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -0
- package/channel/ChannelTemplatesDialog.js +150 -0
- package/channel/ChannelTemplatesDialog.js.map +1 -0
- package/channel/index.d.ts +8 -0
- package/channel/index.d.ts.map +1 -1
- package/channel/index.js +4 -0
- package/channel/index.js.map +1 -1
- package/channel/providers.d.ts +12 -0
- package/channel/providers.d.ts.map +1 -1
- package/channel/providers.js +14 -2
- package/channel/providers.js.map +1 -1
- package/channel/templatePresentation.d.ts +37 -0
- package/channel/templatePresentation.d.ts.map +1 -0
- package/channel/templatePresentation.js +69 -0
- package/channel/templatePresentation.js.map +1 -0
- package/channel/useChannelTemplateList.d.ts +64 -0
- package/channel/useChannelTemplateList.d.ts.map +1 -0
- package/channel/useChannelTemplateList.js +69 -0
- package/channel/useChannelTemplateList.js.map +1 -0
- package/channel/useChannelTemplateReadiness.d.ts +53 -0
- package/channel/useChannelTemplateReadiness.d.ts.map +1 -0
- package/channel/useChannelTemplateReadiness.js +42 -0
- package/channel/useChannelTemplateReadiness.js.map +1 -0
- package/dashboard/useDashboardFailedRuns.d.ts.map +1 -1
- package/dashboard/useDashboardFailedRuns.js +2 -0
- package/dashboard/useDashboardFailedRuns.js.map +1 -1
- package/index.d.ts +4 -2
- package/index.d.ts.map +1 -1
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/library/useExportResource.d.ts +4 -3
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +1 -1
- package/library/useExportResource.js.map +1 -1
- package/organization/OrgProvider.d.ts +11 -4
- package/organization/OrgProvider.d.ts.map +1 -1
- package/organization/OrgProvider.js +28 -4
- package/organization/OrgProvider.js.map +1 -1
- package/package.json +4 -4
- package/resource-detail/useDeleteResource.d.ts +1 -1
- package/resource-detail/useDeleteResource.d.ts.map +1 -1
- package/resource-detail/useDeleteResource.js +5 -0
- package/resource-detail/useDeleteResource.js.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.d.ts +10 -1
- package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.js +6 -2
- package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
- package/resource-workbench/hooks/useResourceCollection.d.ts +8 -0
- package/resource-workbench/hooks/useResourceCollection.d.ts.map +1 -1
- package/resource-workbench/hooks/useResourceCollection.js +2 -2
- package/resource-workbench/hooks/useResourceCollection.js.map +1 -1
- package/schedule/CadenceField.d.ts +31 -0
- package/schedule/CadenceField.d.ts.map +1 -0
- package/schedule/CadenceField.js +116 -0
- package/schedule/CadenceField.js.map +1 -0
- package/schedule/ScheduleDetailView.d.ts +58 -0
- package/schedule/ScheduleDetailView.d.ts.map +1 -0
- package/schedule/ScheduleDetailView.js +236 -0
- package/schedule/ScheduleDetailView.js.map +1 -0
- package/schedule/ScheduleForm.d.ts +43 -0
- package/schedule/ScheduleForm.d.ts.map +1 -0
- package/schedule/ScheduleForm.js +129 -0
- package/schedule/ScheduleForm.js.map +1 -0
- package/schedule/ScheduleRowActions.d.ts +20 -0
- package/schedule/ScheduleRowActions.d.ts.map +1 -0
- package/schedule/ScheduleRowActions.js +54 -0
- package/schedule/ScheduleRowActions.js.map +1 -0
- package/schedule/TimeZoneField.d.ts +32 -0
- package/schedule/TimeZoneField.d.ts.map +1 -0
- package/schedule/TimeZoneField.js +104 -0
- package/schedule/TimeZoneField.js.map +1 -0
- package/schedule/cadence.d.ts +95 -0
- package/schedule/cadence.d.ts.map +1 -0
- package/schedule/cadence.js +242 -0
- package/schedule/cadence.js.map +1 -0
- package/schedule/index.d.ts +31 -0
- package/schedule/index.d.ts.map +1 -0
- package/schedule/index.js +16 -0
- package/schedule/index.js.map +1 -0
- package/schedule/scheduleColumns.d.ts +26 -0
- package/schedule/scheduleColumns.d.ts.map +1 -0
- package/schedule/scheduleColumns.js +77 -0
- package/schedule/scheduleColumns.js.map +1 -0
- package/schedule/scheduleListFn.d.ts +50 -0
- package/schedule/scheduleListFn.d.ts.map +1 -0
- package/schedule/scheduleListFn.js +65 -0
- package/schedule/scheduleListFn.js.map +1 -0
- package/schedule/scheduleState.d.ts +43 -0
- package/schedule/scheduleState.d.ts.map +1 -0
- package/schedule/scheduleState.js +67 -0
- package/schedule/scheduleState.js.map +1 -0
- package/schedule/useCreateSchedule.d.ts +57 -0
- package/schedule/useCreateSchedule.d.ts.map +1 -0
- package/schedule/useCreateSchedule.js +61 -0
- package/schedule/useCreateSchedule.js.map +1 -0
- package/schedule/useResumeSchedule.d.ts +30 -0
- package/schedule/useResumeSchedule.d.ts.map +1 -0
- package/schedule/useResumeSchedule.js +45 -0
- package/schedule/useResumeSchedule.js.map +1 -0
- package/schedule/useSchedule.d.ts +39 -0
- package/schedule/useSchedule.d.ts.map +1 -0
- package/schedule/useSchedule.js +44 -0
- package/schedule/useSchedule.js.map +1 -0
- package/schedule/useScheduleCount.d.ts +38 -0
- package/schedule/useScheduleCount.d.ts.map +1 -0
- package/schedule/useScheduleCount.js +30 -0
- package/schedule/useScheduleCount.js.map +1 -0
- package/schedule/useScheduleList.d.ts +48 -0
- package/schedule/useScheduleList.d.ts.map +1 -0
- package/schedule/useScheduleList.js +43 -0
- package/schedule/useScheduleList.js.map +1 -0
- package/schedule/useSetScheduleEnabled.d.ts +31 -0
- package/schedule/useSetScheduleEnabled.d.ts.map +1 -0
- package/schedule/useSetScheduleEnabled.js +53 -0
- package/schedule/useSetScheduleEnabled.js.map +1 -0
- package/schedule/useTriggerSchedule.d.ts +28 -0
- package/schedule/useTriggerSchedule.d.ts.map +1 -0
- package/schedule/useTriggerSchedule.js +43 -0
- package/schedule/useTriggerSchedule.js.map +1 -0
- package/search/useResourceCount.d.ts +2 -1
- package/search/useResourceCount.d.ts.map +1 -1
- package/search/useResourceCount.js +6 -1
- package/search/useResourceCount.js.map +1 -1
- package/src/agent/AgentPicker.tsx +13 -1
- package/src/channel/AgentChannelsPanel.tsx +43 -1
- package/src/channel/ChannelTemplatesDialog.tsx +433 -0
- package/src/channel/__tests__/AgentChannelsPanel.test.tsx +73 -0
- package/src/channel/__tests__/ChannelTemplatesDialog.test.tsx +292 -0
- package/src/channel/__tests__/providers.test.ts +9 -0
- package/src/channel/__tests__/templatePresentation.test.ts +96 -0
- package/src/channel/__tests__/useChannelTemplateList.test.tsx +216 -0
- package/src/channel/__tests__/useChannelTemplateReadiness.test.tsx +124 -0
- package/src/channel/index.ts +15 -0
- package/src/channel/providers.ts +26 -2
- package/src/channel/templatePresentation.ts +82 -0
- package/src/channel/useChannelTemplateList.ts +123 -0
- package/src/channel/useChannelTemplateReadiness.ts +69 -0
- package/src/dashboard/__tests__/useDashboardFailedRuns.test.tsx +106 -0
- package/src/dashboard/useDashboardFailedRuns.ts +2 -0
- package/src/index.ts +65 -0
- package/src/library/useExportResource.ts +4 -3
- package/src/organization/OrgProvider.tsx +29 -4
- package/src/organization/__tests__/OrgProvider.orgSwitch.test.tsx +89 -0
- package/src/resource-detail/useDeleteResource.ts +11 -1
- package/src/resource-workbench/__tests__/ResourceWorkbench.test.tsx +112 -0
- package/src/resource-workbench/components/ResourceWorkbench.tsx +32 -15
- package/src/resource-workbench/hooks/useResourceCollection.ts +11 -1
- package/src/schedule/CadenceField.tsx +365 -0
- package/src/schedule/ScheduleDetailView.tsx +583 -0
- package/src/schedule/ScheduleForm.tsx +405 -0
- package/src/schedule/ScheduleRowActions.tsx +124 -0
- package/src/schedule/TimeZoneField.tsx +199 -0
- package/src/schedule/__tests__/ScheduleDetailView.test.tsx +260 -0
- package/src/schedule/__tests__/cadence.test.ts +278 -0
- package/src/schedule/__tests__/scheduleColumnsRowActions.test.tsx +176 -0
- package/src/schedule/__tests__/scheduleCreation.test.tsx +340 -0
- package/src/schedule/__tests__/scheduleHooks.test.tsx +312 -0
- package/src/schedule/__tests__/scheduleListFn.test.ts +128 -0
- package/src/schedule/__tests__/scheduleState.test.ts +133 -0
- package/src/schedule/cadence.ts +298 -0
- package/src/schedule/index.ts +57 -0
- package/src/schedule/scheduleColumns.tsx +118 -0
- package/src/schedule/scheduleListFn.ts +108 -0
- package/src/schedule/scheduleState.ts +96 -0
- package/src/schedule/useCreateSchedule.ts +88 -0
- package/src/schedule/useResumeSchedule.ts +67 -0
- package/src/schedule/useSchedule.ts +67 -0
- package/src/schedule/useScheduleCount.ts +57 -0
- package/src/schedule/useScheduleList.ts +83 -0
- package/src/schedule/useSetScheduleEnabled.ts +84 -0
- package/src/schedule/useTriggerSchedule.ts +65 -0
- package/src/search/__tests__/useResourceCount.test.tsx +89 -0
- package/src/search/useResourceCount.ts +8 -2
- package/src/workflow/WorkflowDashboard.tsx +1 -0
- package/src/workflow/useWorkflowExecutionList.ts +13 -2
- package/styles.css +1 -1
- package/workflow/CanvasTransitionEdge.d.ts +1 -1
- package/workflow/WorkflowDashboard.d.ts.map +1 -1
- package/workflow/WorkflowDashboard.js +1 -0
- package/workflow/WorkflowDashboard.js.map +1 -1
- package/workflow/useWorkflowExecutionList.d.ts +10 -0
- package/workflow/useWorkflowExecutionList.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionList.js +3 -2
- package/workflow/useWorkflowExecutionList.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSetScheduleEnabled.js","sourceRoot":"","sources":["../../src/schedule/useSetScheduleEnabled.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAiBjD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,QAAkB,EAAE,OAAgB,EAAqB,EAAE;QAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,+DAA+D;gBAC7D,iDAAiD,CACpD,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAChD,OAAO,CAAC,IAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAEhC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAC1C,2BAA2B,CAAC,OAAO,CAAC,CACrC,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,OAAmB,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EACxC,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Schedule } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
2
|
+
/** Return value of {@link useTriggerSchedule}. */
|
|
3
|
+
export interface UseTriggerScheduleReturn {
|
|
4
|
+
/**
|
|
5
|
+
* Fire the schedule once, now — a real agent execution, outside the
|
|
6
|
+
* cron cadence. Resolves with the post-trigger schedule; refetch to
|
|
7
|
+
* pick up the new `status.last_execution_id`.
|
|
8
|
+
*/
|
|
9
|
+
readonly triggerSchedule: (scheduleId: string) => Promise<Schedule>;
|
|
10
|
+
/** `true` while the trigger request is in flight. */
|
|
11
|
+
readonly isTriggering: boolean;
|
|
12
|
+
/** Error from the last failed or refused trigger, or `null` when healthy. */
|
|
13
|
+
readonly error: Error | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Behavior hook that fires a schedule once, immediately.
|
|
17
|
+
*
|
|
18
|
+
* The server enforces a refusal matrix — a disabled schedule refuses
|
|
19
|
+
* first, then a paused one — both as `FAILED_PRECONDITION` with copy
|
|
20
|
+
* that names the remedy ("enable it before triggering" / "resume it
|
|
21
|
+
* before triggering"). Error toasts relay that copy verbatim; the copy
|
|
22
|
+
* is byte-identical across editions.
|
|
23
|
+
*
|
|
24
|
+
* Triggering starts a real, billable execution — gate the call behind a
|
|
25
|
+
* confirmation (the detail view uses `ConfirmDialog`).
|
|
26
|
+
*/
|
|
27
|
+
export declare function useTriggerSchedule(): UseTriggerScheduleReturn;
|
|
28
|
+
//# sourceMappingURL=useTriggerSchedule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTriggerSchedule.d.ts","sourceRoot":"","sources":["../../src/schedule/useTriggerSchedule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uDAAuD,CAAC;AAMtF,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CA6B7D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useMemo, useState } from "react";
|
|
3
|
+
import { getUserMessage } from "@stigmer/sdk";
|
|
4
|
+
import { useStigmer } from "../hooks.js";
|
|
5
|
+
import { toast } from "../feedback/toast.js";
|
|
6
|
+
import { toError } from "../internal/toError.js";
|
|
7
|
+
/**
|
|
8
|
+
* Behavior hook that fires a schedule once, immediately.
|
|
9
|
+
*
|
|
10
|
+
* The server enforces a refusal matrix — a disabled schedule refuses
|
|
11
|
+
* first, then a paused one — both as `FAILED_PRECONDITION` with copy
|
|
12
|
+
* that names the remedy ("enable it before triggering" / "resume it
|
|
13
|
+
* before triggering"). Error toasts relay that copy verbatim; the copy
|
|
14
|
+
* is byte-identical across editions.
|
|
15
|
+
*
|
|
16
|
+
* Triggering starts a real, billable execution — gate the call behind a
|
|
17
|
+
* confirmation (the detail view uses `ConfirmDialog`).
|
|
18
|
+
*/
|
|
19
|
+
export function useTriggerSchedule() {
|
|
20
|
+
const stigmer = useStigmer();
|
|
21
|
+
const [isTriggering, setIsTriggering] = useState(false);
|
|
22
|
+
const [error, setError] = useState(null);
|
|
23
|
+
const triggerSchedule = useCallback(async (scheduleId) => {
|
|
24
|
+
setIsTriggering(true);
|
|
25
|
+
setError(null);
|
|
26
|
+
try {
|
|
27
|
+
const triggered = await stigmer.schedule.trigger(scheduleId);
|
|
28
|
+
toast.success("Run started");
|
|
29
|
+
return triggered;
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const wrapped = toError(err);
|
|
33
|
+
setError(wrapped);
|
|
34
|
+
toast.error(getUserMessage(err));
|
|
35
|
+
throw wrapped;
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
setIsTriggering(false);
|
|
39
|
+
}
|
|
40
|
+
}, [stigmer]);
|
|
41
|
+
return useMemo(() => ({ triggerSchedule, isTriggering, error }), [triggerSchedule, isTriggering, error]);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=useTriggerSchedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTriggerSchedule.js","sourceRoot":"","sources":["../../src/schedule/useTriggerSchedule.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAgBjD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,UAAkB,EAAqB,EAAE;QAC9C,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7D,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAChD,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,CACvC,CAAC;AACJ,CAAC"}
|
|
@@ -7,7 +7,8 @@ export interface UseResourceCountOptions {
|
|
|
7
7
|
* Controls resource visibility scope.
|
|
8
8
|
*
|
|
9
9
|
* - `"org"` — all resources owned by the given organization, regardless of visibility.
|
|
10
|
-
* - `"all"` — all resources
|
|
10
|
+
* - `"all"` — all resources owned by the given organization plus public resources
|
|
11
|
+
* from other organizations.
|
|
11
12
|
*
|
|
12
13
|
* @default "org"
|
|
13
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceCount.d.ts","sourceRoot":"","sources":["../../src/search/useResourceCount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB
|
|
1
|
+
{"version":3,"file":"useResourceCount.d.ts","sourceRoot":"","sources":["../../src/search/useResourceCount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,EACnD,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CA4BxB"}
|
|
@@ -20,10 +20,15 @@ export function useResourceCount(listFn, org, options) {
|
|
|
20
20
|
const refetchToken = options?.refetchToken;
|
|
21
21
|
const { data: count, isLoading, isRefetching, error, refetch } = useFetch(org
|
|
22
22
|
? async () => {
|
|
23
|
+
// Identical params to useResourceList so a card's count always matches
|
|
24
|
+
// the list page it links to. `org` is ALWAYS sent: an empty org means
|
|
25
|
+
// "every org the caller can access" to the search backend (a global FGA
|
|
26
|
+
// dump), and `crossOrgPublic` with an empty org matches zero rows.
|
|
23
27
|
const params = {
|
|
24
|
-
org
|
|
28
|
+
org,
|
|
25
29
|
query: query || undefined,
|
|
26
30
|
excludePublic: false,
|
|
31
|
+
crossOrgPublic: scope === "all",
|
|
27
32
|
page: { num: 1, size: 1 },
|
|
28
33
|
};
|
|
29
34
|
const result = await listFn(params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResourceCount.js","sourceRoot":"","sources":["../../src/search/useResourceCount.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useResourceCount.js","sourceRoot":"","sources":["../../src/search/useResourceCount.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAqCnD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAmD,EACnD,GAAkB,EAClB,OAAiC;IAEjC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAE3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CACvE,GAAG;QACD,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,uEAAuE;YACvE,sEAAsE;YACtE,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,MAAM,GAAe;gBACzB,GAAG;gBACH,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,KAAK,KAAK,KAAK;gBAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;aAC1B,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B,CAAC;QACH,CAAC,CAAC,IAAI,EACR,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EACzC,SAAS,CACV,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -38,6 +38,15 @@ export interface AgentPickerProps {
|
|
|
38
38
|
* @default "org"
|
|
39
39
|
*/
|
|
40
40
|
readonly scope?: "org" | "all";
|
|
41
|
+
/**
|
|
42
|
+
* Renders the Org/All scope toggle. Pass `false` to lock the picker
|
|
43
|
+
* to the `scope` prop — for flows where only one scope can produce a
|
|
44
|
+
* valid selection (e.g. schedule creation, where the server requires
|
|
45
|
+
* the target agent to live in the schedule's own org).
|
|
46
|
+
*
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
49
|
+
readonly showScopeToggle?: boolean;
|
|
41
50
|
/** Prevents interaction with the picker when `true`. */
|
|
42
51
|
readonly disabled?: boolean;
|
|
43
52
|
/** Additional CSS class names for the root container. */
|
|
@@ -85,6 +94,7 @@ export function AgentPicker({
|
|
|
85
94
|
onChange,
|
|
86
95
|
onDisplayNameResolved,
|
|
87
96
|
scope,
|
|
97
|
+
showScopeToggle = true,
|
|
88
98
|
disabled,
|
|
89
99
|
className,
|
|
90
100
|
}: AgentPickerProps) {
|
|
@@ -206,7 +216,9 @@ export function AgentPicker({
|
|
|
206
216
|
autoFocus
|
|
207
217
|
/>
|
|
208
218
|
|
|
209
|
-
|
|
219
|
+
{showScopeToggle && (
|
|
220
|
+
<ScopeToggle value={activeScope} onChange={setActiveScope} disabled={disabled} />
|
|
221
|
+
)}
|
|
210
222
|
|
|
211
223
|
{error && <p className="text-xs text-destructive">{error.message}</p>}
|
|
212
224
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
|
-
import { FileCode2, KeyRound, MessageSquare, MoreHorizontal, Trash2 } from "lucide-react";
|
|
4
|
+
import { FileCode2, KeyRound, LayoutTemplate, MessageSquare, MoreHorizontal, Trash2 } from "lucide-react";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
7
7
|
import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
|
|
@@ -22,6 +22,7 @@ import { useDeploymentMode } from "../deployment-mode.js";
|
|
|
22
22
|
import { CloudFeatureNotice } from "../internal/CloudFeatureNotice.js";
|
|
23
23
|
import { ChannelConversationsDialog } from "./ChannelConversationsDialog.js";
|
|
24
24
|
import { ChannelCredentialsDialog } from "./ChannelCredentialsDialog.js";
|
|
25
|
+
import { ChannelTemplatesDialog } from "./ChannelTemplatesDialog.js";
|
|
25
26
|
import { ConnectSlackDialog } from "./ConnectSlackDialog.js";
|
|
26
27
|
import { ConnectWhatsAppDialog } from "./ConnectWhatsAppDialog.js";
|
|
27
28
|
import {
|
|
@@ -148,6 +149,12 @@ export function AgentChannelsPanel({
|
|
|
148
149
|
const [viewingConversations, setViewingConversations] =
|
|
149
150
|
useState<AgentChannel | null>(null);
|
|
150
151
|
|
|
152
|
+
// The channel whose provider message templates are being viewed
|
|
153
|
+
// (proactive-messaging DD-007: the business-messaging diagnosis
|
|
154
|
+
// surface).
|
|
155
|
+
const [viewingTemplates, setViewingTemplates] =
|
|
156
|
+
useState<AgentChannel | null>(null);
|
|
157
|
+
|
|
151
158
|
// The channel being edited as YAML (the kind-agnostic manifest flow).
|
|
152
159
|
const [editingYaml, setEditingYaml] = useState<AgentChannel | null>(null);
|
|
153
160
|
|
|
@@ -293,6 +300,7 @@ export function AgentChannelsPanel({
|
|
|
293
300
|
onDeleteClick={() => void handleDelete(channel)}
|
|
294
301
|
onEditCredentials={() => setEditingCredentials(channel)}
|
|
295
302
|
onViewConversations={() => setViewingConversations(channel)}
|
|
303
|
+
onViewTemplates={() => setViewingTemplates(channel)}
|
|
296
304
|
onEditYaml={() => setEditingYaml(channel)}
|
|
297
305
|
refetch={refetch}
|
|
298
306
|
/>
|
|
@@ -349,6 +357,25 @@ export function AgentChannelsPanel({
|
|
|
349
357
|
/>
|
|
350
358
|
)}
|
|
351
359
|
|
|
360
|
+
{viewingTemplates && (
|
|
361
|
+
<ChannelTemplatesDialog
|
|
362
|
+
open
|
|
363
|
+
onOpenChange={(open) => {
|
|
364
|
+
if (!open) setViewingTemplates(null);
|
|
365
|
+
}}
|
|
366
|
+
channel={viewingTemplates}
|
|
367
|
+
// The dialog's not-proactive teaching state routes to the
|
|
368
|
+
// panel's own YAML editor — the one place the grant can be
|
|
369
|
+
// set today (proactive-messaging DD-007's named follow-up is
|
|
370
|
+
// a first-class card affordance).
|
|
371
|
+
onEditYaml={() => {
|
|
372
|
+
const channel = viewingTemplates;
|
|
373
|
+
setViewingTemplates(null);
|
|
374
|
+
setEditingYaml(channel);
|
|
375
|
+
}}
|
|
376
|
+
/>
|
|
377
|
+
)}
|
|
378
|
+
|
|
352
379
|
{editingYaml && (
|
|
353
380
|
<EditResourceYamlDialog
|
|
354
381
|
open
|
|
@@ -383,6 +410,7 @@ interface ChannelCardProps {
|
|
|
383
410
|
readonly onDeleteClick: () => void;
|
|
384
411
|
readonly onEditCredentials: () => void;
|
|
385
412
|
readonly onViewConversations: () => void;
|
|
413
|
+
readonly onViewTemplates: () => void;
|
|
386
414
|
readonly onEditYaml: () => void;
|
|
387
415
|
readonly refetch: () => void;
|
|
388
416
|
}
|
|
@@ -396,6 +424,7 @@ function ChannelCard({
|
|
|
396
424
|
onDeleteClick,
|
|
397
425
|
onEditCredentials,
|
|
398
426
|
onViewConversations,
|
|
427
|
+
onViewTemplates,
|
|
399
428
|
onEditYaml,
|
|
400
429
|
refetch,
|
|
401
430
|
}: ChannelCardProps) {
|
|
@@ -513,6 +542,19 @@ function ChannelCard({
|
|
|
513
542
|
>
|
|
514
543
|
Conversations
|
|
515
544
|
</ActionMenu.Item>
|
|
545
|
+
{/* Gated on the bar the server enforces for listTemplates
|
|
546
|
+
(ChannelMessagingReach: can_edit), and on the provider
|
|
547
|
+
declaring a template registry at all — hidden, not
|
|
548
|
+
disabled, for providers with no template concept. */}
|
|
549
|
+
{canEdit && provider.supportsMessageTemplates && (
|
|
550
|
+
<ActionMenu.Item
|
|
551
|
+
icon={<LayoutTemplate />}
|
|
552
|
+
onSelect={onViewTemplates}
|
|
553
|
+
data-cursor-target="channel-templates"
|
|
554
|
+
>
|
|
555
|
+
Templates
|
|
556
|
+
</ActionMenu.Item>
|
|
557
|
+
)}
|
|
516
558
|
{canEdit && (
|
|
517
559
|
<ActionMenu.Item
|
|
518
560
|
icon={<KeyRound />}
|