lemma-sdk 0.2.38 → 0.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +15 -4
  2. package/dist/browser/lemma-client.js +339 -106
  3. package/dist/client.d.ts +2 -0
  4. package/dist/client.js +3 -0
  5. package/dist/index.d.ts +2 -1
  6. package/dist/namespaces/pod-members.d.ts +5 -3
  7. package/dist/namespaces/pod-members.js +12 -6
  8. package/dist/namespaces/resources.d.ts +21 -5
  9. package/dist/namespaces/schedules.d.ts +22 -0
  10. package/dist/namespaces/schedules.js +24 -0
  11. package/dist/namespaces/workflows.d.ts +4 -5
  12. package/dist/namespaces/workflows.js +1 -4
  13. package/dist/openapi_client/index.d.ts +31 -26
  14. package/dist/openapi_client/index.js +8 -7
  15. package/dist/openapi_client/models/AgentResponse.d.ts +3 -2
  16. package/dist/openapi_client/models/BillingHistoryResponse.d.ts +8 -0
  17. package/dist/openapi_client/models/BillingInvoiceResponse.d.ts +29 -0
  18. package/dist/openapi_client/models/BillingInvoiceStatus.d.ts +10 -0
  19. package/dist/openapi_client/models/BillingInvoiceStatus.js +15 -0
  20. package/dist/openapi_client/models/BillingScope.d.ts +7 -0
  21. package/dist/openapi_client/models/BillingScope.js +12 -0
  22. package/dist/openapi_client/models/ConversationResponse.d.ts +1 -0
  23. package/dist/openapi_client/models/CreateAgentRequest.d.ts +3 -2
  24. package/dist/openapi_client/models/CreateConversationRequest.d.ts +1 -0
  25. package/dist/openapi_client/models/CreateDeskRequest.d.ts +1 -0
  26. package/dist/openapi_client/models/CreateFolderRequest.d.ts +2 -0
  27. package/dist/openapi_client/models/CreateFunctionRequest.d.ts +9 -4
  28. package/dist/openapi_client/models/CreateInvoicePaymentUrlRequest.d.ts +7 -0
  29. package/dist/openapi_client/models/CreateInvoicePaymentUrlResponse.d.ts +8 -0
  30. package/dist/openapi_client/models/CreateScheduleRequest.d.ts +15 -0
  31. package/dist/openapi_client/models/CreateTableRequest.d.ts +1 -0
  32. package/dist/openapi_client/models/DatastoreFileUploadRequest.d.ts +1 -0
  33. package/dist/openapi_client/models/DeskResponse.d.ts +2 -0
  34. package/dist/openapi_client/models/FileResponse.d.ts +2 -0
  35. package/dist/openapi_client/models/FlowResponse.d.ts +4 -2
  36. package/dist/openapi_client/models/FlowRunEntity.d.ts +5 -4
  37. package/dist/openapi_client/models/FormNodeConfig.d.ts +8 -0
  38. package/dist/openapi_client/models/FunctionResponse.d.ts +13 -2
  39. package/dist/openapi_client/models/{app__modules__function__api__schemas__function_schemas__TableAccessEntry.d.ts → FunctionTableAccessEntry.d.ts} +1 -1
  40. package/dist/openapi_client/models/PodConfigResponse.d.ts +0 -2
  41. package/dist/openapi_client/models/PodMemberAddRequest.d.ts +1 -0
  42. package/dist/openapi_client/models/PodMemberDetailResponse.d.ts +3 -0
  43. package/dist/openapi_client/models/PodMemberResponse.d.ts +3 -0
  44. package/dist/openapi_client/models/PodMemberUpdateRoleRequest.d.ts +2 -1
  45. package/dist/openapi_client/models/PodRoleCreateRequest.d.ts +6 -0
  46. package/dist/openapi_client/models/PodRoleListResponse.d.ts +7 -0
  47. package/dist/openapi_client/models/PodRoleResponse.d.ts +11 -0
  48. package/dist/openapi_client/models/ScheduleListResponse.d.ts +9 -0
  49. package/dist/openapi_client/models/{TriggerResponse.d.ts → ScheduleResponse.d.ts} +10 -4
  50. package/dist/openapi_client/models/{TriggerType.d.ts → ScheduleType.d.ts} +2 -2
  51. package/dist/openapi_client/models/ScheduleType.js +13 -0
  52. package/dist/openapi_client/models/ScheduledFlowStartInput.d.ts +1 -1
  53. package/dist/openapi_client/models/ScheduledFlowStartOutput.d.ts +1 -1
  54. package/dist/openapi_client/models/SendMessageRequest.d.ts +1 -2
  55. package/dist/openapi_client/models/StartSubscriptionResponse.d.ts +3 -1
  56. package/dist/openapi_client/models/StartTeamBillingRequest.d.ts +6 -0
  57. package/dist/openapi_client/models/SubscriptionResponse.d.ts +22 -0
  58. package/dist/openapi_client/models/SubscriptionWithPlanResponse.d.ts +4 -1
  59. package/dist/openapi_client/models/{app__modules__agent__domain__value_objects__TableAccessEntry.d.ts → TableAccessEntry.d.ts} +1 -1
  60. package/dist/openapi_client/models/TableResponse.d.ts +2 -0
  61. package/dist/openapi_client/models/UpdateAgentRequest.d.ts +3 -2
  62. package/dist/openapi_client/models/UpdateConversationRequest.d.ts +1 -0
  63. package/dist/openapi_client/models/UpdateDeskRequest.d.ts +2 -0
  64. package/dist/openapi_client/models/UpdateFunctionRequest.d.ts +6 -2
  65. package/dist/openapi_client/models/UpdateScheduleRequest.d.ts +12 -0
  66. package/dist/openapi_client/models/UpdateTableRequest.d.ts +2 -1
  67. package/dist/openapi_client/models/UsageLimitScopeResponse.d.ts +10 -0
  68. package/dist/openapi_client/models/UsageLimitsResponse.d.ts +11 -0
  69. package/dist/openapi_client/models/UsageListResponse.d.ts +10 -0
  70. package/dist/openapi_client/models/UsageRecordResponse.d.ts +12 -4
  71. package/dist/openapi_client/models/UsageStatsBucketResponse.d.ts +12 -0
  72. package/dist/openapi_client/models/UsageStatsResponse.d.ts +12 -0
  73. package/dist/openapi_client/models/UsageStatsResponse.js +1 -0
  74. package/dist/openapi_client/models/UsageSummaryResponse.d.ts +3 -0
  75. package/dist/openapi_client/models/WorkflowCreateRequest.d.ts +4 -3
  76. package/dist/openapi_client/models/WorkflowMode.d.ts +7 -0
  77. package/dist/openapi_client/models/WorkflowMode.js +12 -0
  78. package/dist/openapi_client/models/WorkflowRunWaitAssignment.d.ts +6 -0
  79. package/dist/openapi_client/models/WorkflowRunWaitAssignment.js +1 -0
  80. package/dist/openapi_client/models/WorkflowRunWaitAssignmentListResponse.d.ts +6 -0
  81. package/dist/openapi_client/models/WorkflowRunWaitAssignmentListResponse.js +1 -0
  82. package/dist/openapi_client/models/WorkflowRunWaitEntity.d.ts +20 -0
  83. package/dist/openapi_client/models/WorkflowRunWaitEntity.js +1 -0
  84. package/dist/openapi_client/models/WorkflowRunWaitStatus.d.ts +6 -0
  85. package/dist/openapi_client/models/WorkflowRunWaitStatus.js +11 -0
  86. package/dist/openapi_client/models/WorkflowRunWaitType.d.ts +7 -0
  87. package/dist/openapi_client/models/WorkflowRunWaitType.js +12 -0
  88. package/dist/openapi_client/models/WorkflowUpdateRequest.d.ts +4 -3
  89. package/dist/openapi_client/models/update.d.ts +2 -0
  90. package/dist/openapi_client/services/BillingSubscriptionsService.d.ts +80 -20
  91. package/dist/openapi_client/services/BillingSubscriptionsService.js +164 -27
  92. package/dist/openapi_client/services/BillingUsageService.d.ts +89 -5
  93. package/dist/openapi_client/services/BillingUsageService.js +186 -6
  94. package/dist/openapi_client/services/DesksService.d.ts +21 -4
  95. package/dist/openapi_client/services/DesksService.js +44 -2
  96. package/dist/openapi_client/services/FilesService.d.ts +10 -10
  97. package/dist/openapi_client/services/FilesService.js +10 -10
  98. package/dist/openapi_client/services/FunctionsService.d.ts +2 -2
  99. package/dist/openapi_client/services/FunctionsService.js +2 -2
  100. package/dist/openapi_client/services/PodMembersService.d.ts +35 -7
  101. package/dist/openapi_client/services/PodMembersService.js +81 -13
  102. package/dist/openapi_client/services/PodRolesService.d.ts +29 -0
  103. package/dist/openapi_client/services/PodRolesService.js +63 -0
  104. package/dist/openapi_client/services/SchedulesService.d.ts +59 -0
  105. package/dist/openapi_client/services/SchedulesService.js +125 -0
  106. package/dist/openapi_client/services/WebhooksService.d.ts +4 -4
  107. package/dist/openapi_client/services/WebhooksService.js +6 -6
  108. package/dist/openapi_client/services/WorkflowsService.d.ts +12 -33
  109. package/dist/openapi_client/services/WorkflowsService.js +26 -69
  110. package/dist/react/AuthGuard.js +1 -1
  111. package/dist/react/index.d.ts +11 -1
  112. package/dist/react/index.js +5 -0
  113. package/dist/react/useAssistantController.d.ts +8 -4
  114. package/dist/react/useAssistantController.js +9 -6
  115. package/dist/react/useAssistantSession.d.ts +3 -0
  116. package/dist/react/useAssistantSession.js +6 -2
  117. package/dist/react/useConversationMessages.d.ts +2 -1
  118. package/dist/react/useConversationMessages.js +2 -1
  119. package/dist/react/useCreateSchedule.d.ts +17 -0
  120. package/dist/react/useCreateSchedule.js +45 -0
  121. package/dist/react/useDeleteSchedule.d.ts +19 -0
  122. package/dist/react/useDeleteSchedule.js +49 -0
  123. package/dist/react/usePodAccess.js +1 -1
  124. package/dist/react/useSchedules.d.ts +30 -0
  125. package/dist/react/useSchedules.js +123 -0
  126. package/dist/react/useUpdateSchedule.d.ts +20 -0
  127. package/dist/react/useUpdateSchedule.js +49 -0
  128. package/dist/react/useWorkflowRun.js +1 -1
  129. package/dist/react/useWorkflowRunWaitAssignments.d.ts +26 -0
  130. package/dist/react/useWorkflowRunWaitAssignments.js +102 -0
  131. package/dist/react/useWorkflowStart.js +1 -1
  132. package/dist/types.d.ts +3 -1
  133. package/package.json +1 -1
  134. package/dist/openapi_client/models/Body_upload_file_files__resource_type___resource_id__upload_post.d.ts +0 -3
  135. package/dist/openapi_client/models/CreateTriggerRequest.d.ts +0 -13
  136. package/dist/openapi_client/models/FileInfo.d.ts +0 -14
  137. package/dist/openapi_client/models/FileInfo.js +0 -8
  138. package/dist/openapi_client/models/FileUploadResponse.d.ts +0 -6
  139. package/dist/openapi_client/models/FlowInstallResponse.d.ts +0 -15
  140. package/dist/openapi_client/models/GrantPermissionRequest.d.ts +0 -6
  141. package/dist/openapi_client/models/PodFlowConfigItem.d.ts +0 -7
  142. package/dist/openapi_client/models/PodPermissionsResponse.d.ts +0 -4
  143. package/dist/openapi_client/models/ResourceFileListResponse.d.ts +0 -6
  144. package/dist/openapi_client/models/ResourcePermissionListResponse.d.ts +0 -4
  145. package/dist/openapi_client/models/ResourcePermissionResponse.d.ts +0 -12
  146. package/dist/openapi_client/models/ResourceType.d.ts +0 -4
  147. package/dist/openapi_client/models/ResourceType.js +0 -9
  148. package/dist/openapi_client/models/SetVisibilityRequest.d.ts +0 -3
  149. package/dist/openapi_client/models/TriggerListResponse.d.ts +0 -9
  150. package/dist/openapi_client/models/TriggerType.js +0 -13
  151. package/dist/openapi_client/models/UpdateTriggerRequest.d.ts +0 -9
  152. package/dist/openapi_client/models/WorkflowInstallListResponse.d.ts +0 -4
  153. package/dist/openapi_client/models/WorkflowInstallMode.d.ts +0 -7
  154. package/dist/openapi_client/models/WorkflowInstallMode.js +0 -12
  155. package/dist/openapi_client/models/WorkflowInstallRequest.d.ts +0 -11
  156. package/dist/openapi_client/models/WorkflowTimeInstallConfig.d.ts +0 -19
  157. package/dist/openapi_client/services/AgentFilesService.d.ts +0 -46
  158. package/dist/openapi_client/services/AgentFilesService.js +0 -103
  159. package/dist/openapi_client/services/AuthorizationService.d.ts +0 -58
  160. package/dist/openapi_client/services/AuthorizationService.js +0 -122
  161. package/dist/openapi_client/services/TriggersService.d.ts +0 -53
  162. package/dist/openapi_client/services/TriggersService.js +0 -109
  163. /package/dist/openapi_client/models/{Body_upload_file_files__resource_type___resource_id__upload_post.js → BillingHistoryResponse.js} +0 -0
  164. /package/dist/openapi_client/models/{CreateTriggerRequest.js → BillingInvoiceResponse.js} +0 -0
  165. /package/dist/openapi_client/models/{FileUploadResponse.js → CreateInvoicePaymentUrlRequest.js} +0 -0
  166. /package/dist/openapi_client/models/{FlowInstallResponse.js → CreateInvoicePaymentUrlResponse.js} +0 -0
  167. /package/dist/openapi_client/models/{GrantPermissionRequest.js → CreateScheduleRequest.js} +0 -0
  168. /package/dist/openapi_client/models/{PodFlowConfigItem.js → FunctionTableAccessEntry.js} +0 -0
  169. /package/dist/openapi_client/models/{PodPermissionsResponse.js → PodRoleCreateRequest.js} +0 -0
  170. /package/dist/openapi_client/models/{ResourceFileListResponse.js → PodRoleListResponse.js} +0 -0
  171. /package/dist/openapi_client/models/{ResourcePermissionListResponse.js → PodRoleResponse.js} +0 -0
  172. /package/dist/openapi_client/models/{ResourcePermissionResponse.js → ScheduleListResponse.js} +0 -0
  173. /package/dist/openapi_client/models/{SetVisibilityRequest.js → ScheduleResponse.js} +0 -0
  174. /package/dist/openapi_client/models/{TriggerListResponse.js → StartTeamBillingRequest.js} +0 -0
  175. /package/dist/openapi_client/models/{TriggerResponse.js → SubscriptionResponse.js} +0 -0
  176. /package/dist/openapi_client/models/{UpdateTriggerRequest.js → TableAccessEntry.js} +0 -0
  177. /package/dist/openapi_client/models/{WorkflowInstallListResponse.js → UpdateScheduleRequest.js} +0 -0
  178. /package/dist/openapi_client/models/{WorkflowInstallRequest.js → UsageLimitScopeResponse.js} +0 -0
  179. /package/dist/openapi_client/models/{WorkflowTimeInstallConfig.js → UsageLimitsResponse.js} +0 -0
  180. /package/dist/openapi_client/models/{app__modules__agent__domain__value_objects__TableAccessEntry.js → UsageListResponse.js} +0 -0
  181. /package/dist/openapi_client/models/{app__modules__function__api__schemas__function_schemas__TableAccessEntry.js → UsageStatsBucketResponse.js} +0 -0
@@ -0,0 +1,123 @@
1
+ import { useCallback, useEffect, useMemo, useState } from "react";
2
+ import { normalizeError, resolvePodClient } from "./utils.js";
3
+ export function useSchedules({ client, podId, enabled = true, autoLoad = true, scheduleType = null, isActive = null, agentName = null, workflowName = null, limit = 100, pageToken = null, }) {
4
+ const [schedules, setSchedules] = useState([]);
5
+ const [total, setTotal] = useState(0);
6
+ const [nextPageToken, setNextPageToken] = useState(null);
7
+ const [isLoading, setIsLoading] = useState(false);
8
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
9
+ const [error, setError] = useState(null);
10
+ const refresh = useCallback(async (overrides = {}, signal) => {
11
+ if (!enabled) {
12
+ setSchedules([]);
13
+ setTotal(0);
14
+ setNextPageToken(null);
15
+ setError(null);
16
+ setIsLoading(false);
17
+ return [];
18
+ }
19
+ setIsLoading(true);
20
+ setError(null);
21
+ try {
22
+ const scopedClient = resolvePodClient(client, podId);
23
+ const response = await scopedClient.schedules.list({
24
+ scheduleType,
25
+ isActive,
26
+ agentName,
27
+ workflowName,
28
+ limit: overrides.limit ?? limit,
29
+ pageToken: overrides.pageToken ?? pageToken,
30
+ });
31
+ if (signal?.aborted)
32
+ return [];
33
+ const nextSchedules = response.items ?? [];
34
+ setSchedules(nextSchedules);
35
+ setTotal(response.total ?? nextSchedules.length);
36
+ setNextPageToken(response.next_page_token ?? null);
37
+ return nextSchedules;
38
+ }
39
+ catch (refreshError) {
40
+ if (signal?.aborted)
41
+ return [];
42
+ const normalized = normalizeError(refreshError, "Failed to load schedules.");
43
+ setError(normalized);
44
+ return [];
45
+ }
46
+ finally {
47
+ if (!signal?.aborted)
48
+ setIsLoading(false);
49
+ }
50
+ }, [agentName, client, enabled, isActive, limit, pageToken, podId, scheduleType, workflowName]);
51
+ const loadMore = useCallback(async (overrides = {}) => {
52
+ if (!enabled || !nextPageToken || isLoading || isLoadingMore) {
53
+ return [];
54
+ }
55
+ setIsLoadingMore(true);
56
+ setError(null);
57
+ try {
58
+ const scopedClient = resolvePodClient(client, podId);
59
+ const response = await scopedClient.schedules.list({
60
+ scheduleType,
61
+ isActive,
62
+ agentName,
63
+ workflowName,
64
+ limit: overrides.limit ?? limit,
65
+ pageToken: nextPageToken,
66
+ });
67
+ const moreSchedules = response.items ?? [];
68
+ setSchedules((previous) => [...previous, ...moreSchedules]);
69
+ setTotal(response.total ?? schedules.length + moreSchedules.length);
70
+ setNextPageToken(response.next_page_token ?? null);
71
+ return moreSchedules;
72
+ }
73
+ catch (loadError) {
74
+ const normalized = normalizeError(loadError, "Failed to load more schedules.");
75
+ setError(normalized);
76
+ return [];
77
+ }
78
+ finally {
79
+ setIsLoadingMore(false);
80
+ }
81
+ }, [
82
+ agentName,
83
+ client,
84
+ enabled,
85
+ isActive,
86
+ isLoading,
87
+ isLoadingMore,
88
+ limit,
89
+ nextPageToken,
90
+ podId,
91
+ scheduleType,
92
+ schedules.length,
93
+ workflowName,
94
+ ]);
95
+ useEffect(() => {
96
+ if (!enabled) {
97
+ setSchedules([]);
98
+ setTotal(0);
99
+ setNextPageToken(null);
100
+ setError(null);
101
+ setIsLoading(false);
102
+ setIsLoadingMore(false);
103
+ return;
104
+ }
105
+ if (!autoLoad)
106
+ return;
107
+ const controller = new AbortController();
108
+ void refresh({}, controller.signal);
109
+ return () => {
110
+ controller.abort();
111
+ };
112
+ }, [autoLoad, enabled, refresh]);
113
+ return useMemo(() => ({
114
+ schedules,
115
+ total,
116
+ nextPageToken,
117
+ isLoading,
118
+ isLoadingMore,
119
+ error,
120
+ refresh,
121
+ loadMore,
122
+ }), [error, isLoading, isLoadingMore, loadMore, nextPageToken, refresh, schedules, total]);
123
+ }
@@ -0,0 +1,20 @@
1
+ import type { LemmaClient } from "../client.js";
2
+ import type { Schedule, UpdateScheduleRequest } from "../types.js";
3
+ export interface UseUpdateScheduleOptions {
4
+ client: LemmaClient;
5
+ podId?: string;
6
+ scheduleId?: string | null;
7
+ enabled?: boolean;
8
+ onSuccess?: (schedule: Schedule) => void;
9
+ onError?: (error: unknown) => void;
10
+ }
11
+ export interface UseUpdateScheduleResult {
12
+ schedule: Schedule | null;
13
+ isSubmitting: boolean;
14
+ error: Error | null;
15
+ update: (payload: UpdateScheduleRequest, overrides?: {
16
+ scheduleId?: string | null;
17
+ }) => Promise<Schedule | null>;
18
+ reset: () => void;
19
+ }
20
+ export declare function useUpdateSchedule({ client, podId, scheduleId, enabled, onSuccess, onError, }: UseUpdateScheduleOptions): UseUpdateScheduleResult;
@@ -0,0 +1,49 @@
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { normalizeError, resolvePodClient } from "./utils.js";
3
+ export function useUpdateSchedule({ client, podId, scheduleId = null, enabled = true, onSuccess, onError, }) {
4
+ const [schedule, setSchedule] = useState(null);
5
+ const [isSubmitting, setIsSubmitting] = useState(false);
6
+ const [error, setError] = useState(null);
7
+ const onSuccessRef = useRef(onSuccess);
8
+ const onErrorRef = useRef(onError);
9
+ useEffect(() => { onSuccessRef.current = onSuccess; }, [onSuccess]);
10
+ useEffect(() => { onErrorRef.current = onError; }, [onError]);
11
+ const trimmedScheduleId = typeof scheduleId === "string" ? scheduleId.trim() : "";
12
+ const update = useCallback(async (payload, overrides = {}) => {
13
+ const nextScheduleId = typeof overrides.scheduleId === "string"
14
+ ? overrides.scheduleId.trim()
15
+ : trimmedScheduleId;
16
+ if (!enabled || nextScheduleId.length === 0)
17
+ return null;
18
+ setIsSubmitting(true);
19
+ setError(null);
20
+ try {
21
+ const scopedClient = resolvePodClient(client, podId);
22
+ const nextSchedule = await scopedClient.schedules.update(nextScheduleId, payload);
23
+ setSchedule(nextSchedule);
24
+ onSuccessRef.current?.(nextSchedule);
25
+ return nextSchedule;
26
+ }
27
+ catch (mutationError) {
28
+ const normalized = normalizeError(mutationError, "Failed to update schedule.");
29
+ setError(normalized);
30
+ onErrorRef.current?.(mutationError);
31
+ return null;
32
+ }
33
+ finally {
34
+ setIsSubmitting(false);
35
+ }
36
+ }, [client, enabled, podId, trimmedScheduleId]);
37
+ const reset = useCallback(() => {
38
+ setSchedule(null);
39
+ setError(null);
40
+ setIsSubmitting(false);
41
+ }, []);
42
+ return useMemo(() => ({
43
+ schedule,
44
+ isSubmitting,
45
+ error,
46
+ update,
47
+ reset,
48
+ }), [error, isSubmitting, reset, schedule, update]);
49
+ }
@@ -33,7 +33,7 @@ export function useWorkflowRun({ workflowName, ...options }) {
33
33
  const isWaitingForInput = normalizedStatus === "WAITING"
34
34
  || !!session.run?.waiting_agent_conversation_id
35
35
  || !!session.run?.waiting_function_run_id
36
- || !!session.run?.waiting_trigger_id;
36
+ || !!session.run?.waiting_timer_id;
37
37
  const output = session.run?.execution_context ?? null;
38
38
  const finalOutput = isFinished ? output : null;
39
39
  return {
@@ -0,0 +1,26 @@
1
+ import type { LemmaClient } from "../client.js";
2
+ import type { WorkflowRunWait } from "../types.js";
3
+ export interface UseWorkflowRunWaitAssignmentsOptions {
4
+ client: LemmaClient;
5
+ podId?: string;
6
+ enabled?: boolean;
7
+ autoLoad?: boolean;
8
+ limit?: number;
9
+ pageToken?: string | null;
10
+ }
11
+ export interface UseWorkflowRunWaitAssignmentsResult {
12
+ assignments: WorkflowRunWait[];
13
+ total: number;
14
+ nextPageToken: string | null;
15
+ isLoading: boolean;
16
+ isLoadingMore: boolean;
17
+ error: Error | null;
18
+ refresh: (overrides?: {
19
+ limit?: number;
20
+ pageToken?: string | null;
21
+ }) => Promise<WorkflowRunWait[]>;
22
+ loadMore: (overrides?: {
23
+ limit?: number;
24
+ }) => Promise<WorkflowRunWait[]>;
25
+ }
26
+ export declare function useWorkflowRunWaitAssignments({ client, podId, enabled, autoLoad, limit, pageToken, }: UseWorkflowRunWaitAssignmentsOptions): UseWorkflowRunWaitAssignmentsResult;
@@ -0,0 +1,102 @@
1
+ import { useCallback, useEffect, useMemo, useState } from "react";
2
+ import { normalizeError, resolvePodClient } from "./utils.js";
3
+ export function useWorkflowRunWaitAssignments({ client, podId, enabled = true, autoLoad = true, limit = 100, pageToken = null, }) {
4
+ const [assignments, setAssignments] = useState([]);
5
+ const [total, setTotal] = useState(0);
6
+ const [nextPageToken, setNextPageToken] = useState(null);
7
+ const [isLoading, setIsLoading] = useState(false);
8
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
9
+ const [error, setError] = useState(null);
10
+ const refresh = useCallback(async (overrides = {}, signal) => {
11
+ if (!enabled) {
12
+ setAssignments([]);
13
+ setTotal(0);
14
+ setNextPageToken(null);
15
+ setError(null);
16
+ setIsLoading(false);
17
+ return [];
18
+ }
19
+ setIsLoading(true);
20
+ setError(null);
21
+ try {
22
+ const scopedClient = resolvePodClient(client, podId);
23
+ const response = await scopedClient.workflows.runs.waitingAssignedToMe({
24
+ limit: overrides.limit ?? limit,
25
+ pageToken: overrides.pageToken ?? pageToken ?? undefined,
26
+ });
27
+ if (signal?.aborted)
28
+ return [];
29
+ const nextAssignments = response.items ?? [];
30
+ setAssignments(nextAssignments);
31
+ setTotal(response.total ?? nextAssignments.length);
32
+ setNextPageToken(response.next_page_token ?? null);
33
+ return nextAssignments;
34
+ }
35
+ catch (refreshError) {
36
+ if (signal?.aborted)
37
+ return [];
38
+ const normalized = normalizeError(refreshError, "Failed to load waiting workflow runs.");
39
+ setError(normalized);
40
+ return [];
41
+ }
42
+ finally {
43
+ if (!signal?.aborted)
44
+ setIsLoading(false);
45
+ }
46
+ }, [client, enabled, limit, pageToken, podId]);
47
+ const loadMore = useCallback(async (overrides = {}) => {
48
+ if (!enabled || !nextPageToken || isLoading || isLoadingMore) {
49
+ return [];
50
+ }
51
+ setIsLoadingMore(true);
52
+ setError(null);
53
+ try {
54
+ const scopedClient = resolvePodClient(client, podId);
55
+ const response = await scopedClient.workflows.runs.waitingAssignedToMe({
56
+ limit: overrides.limit ?? limit,
57
+ pageToken: nextPageToken,
58
+ });
59
+ const moreAssignments = response.items ?? [];
60
+ setAssignments((previous) => [...previous, ...moreAssignments]);
61
+ setTotal(response.total ?? assignments.length + moreAssignments.length);
62
+ setNextPageToken(response.next_page_token ?? null);
63
+ return moreAssignments;
64
+ }
65
+ catch (loadError) {
66
+ const normalized = normalizeError(loadError, "Failed to load more waiting workflow runs.");
67
+ setError(normalized);
68
+ return [];
69
+ }
70
+ finally {
71
+ setIsLoadingMore(false);
72
+ }
73
+ }, [assignments.length, client, enabled, isLoading, isLoadingMore, limit, nextPageToken, podId]);
74
+ useEffect(() => {
75
+ if (!enabled) {
76
+ setAssignments([]);
77
+ setTotal(0);
78
+ setNextPageToken(null);
79
+ setError(null);
80
+ setIsLoading(false);
81
+ setIsLoadingMore(false);
82
+ return;
83
+ }
84
+ if (!autoLoad)
85
+ return;
86
+ const controller = new AbortController();
87
+ void refresh({}, controller.signal);
88
+ return () => {
89
+ controller.abort();
90
+ };
91
+ }, [autoLoad, enabled, refresh]);
92
+ return useMemo(() => ({
93
+ assignments,
94
+ total,
95
+ nextPageToken,
96
+ isLoading,
97
+ isLoadingMore,
98
+ error,
99
+ refresh,
100
+ loadMore,
101
+ }), [assignments, error, isLoading, isLoadingMore, loadMore, nextPageToken, refresh, total]);
102
+ }
@@ -23,7 +23,7 @@ function isWaitingFlowRun(run) {
23
23
  return normalizedStatus === "WAITING"
24
24
  || !!run.waiting_function_run_id
25
25
  || !!run.waiting_agent_conversation_id
26
- || !!run.waiting_trigger_id;
26
+ || !!run.waiting_timer_id;
27
27
  }
28
28
  export function useWorkflowStart({ client, podId, workflowName, runId = null, enabled = true, autoLoad = true, autoPoll = true, pollIntervalMs = 2000, onRun, onError, }) {
29
29
  const [workflow, setWorkflow] = useState(null);
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AgentModelName, AgentResponse, ColumnSchema, ConversationResponse as GeneratedConversationResponse, CreateAgentRequest, DatastoreQueryResponse, DirectoryTreeNode, DirectoryTreeResponse, FileResponse, FileNamespace, FileSearchResponse, FileSearchResultSchema, FlowRunEntity, FlowResponse, FunctionRunResponse, IconUploadResponse, OrganizationInvitationResponse, OrganizationMemberResponse, OrganizationResponse, PodConfigResponse, PodJoinRequestCreateResponse, PodMemberResponse, PodResponse, TableResponse, UpdateAgentRequest, UserResponse } from "./openapi_client/index.js";
1
+ import type { AgentModelName, AgentResponse, ColumnSchema, ConversationResponse as GeneratedConversationResponse, CreateAgentRequest, DatastoreQueryResponse, DirectoryTreeNode, DirectoryTreeResponse, FileResponse, FileNamespace, FileSearchResponse, FileSearchResultSchema, FlowRunEntity, FlowResponse, FunctionRunResponse, IconUploadResponse, OrganizationInvitationResponse, OrganizationMemberResponse, OrganizationResponse, PodConfigResponse, PodJoinRequestCreateResponse, PodMemberResponse, PodResponse, ScheduleResponse, TableResponse, UpdateAgentRequest, UserResponse, WorkflowRunWaitAssignment } from "./openapi_client/index.js";
2
2
  /** Public ergonomic types. */
3
3
  export interface AvailableModelInfo {
4
4
  id: ConversationModel;
@@ -67,6 +67,8 @@ export type FlowRun = FlowRunEntity;
67
67
  export type Workflow = FlowResponse;
68
68
  export type WorkflowStart = Workflow["start"];
69
69
  export type WorkflowStartType = NonNullable<WorkflowStart>["type"];
70
+ export type Schedule = ScheduleResponse;
71
+ export type WorkflowRunWait = WorkflowRunWaitAssignment;
70
72
  export type Table = TableResponse;
71
73
  export type TableColumn = ColumnSchema;
72
74
  export type DatastoreQueryResult = DatastoreQueryResponse;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lemma-sdk",
3
- "version": "0.2.38",
3
+ "version": "0.2.41",
4
4
  "description": "Official TypeScript SDK for Lemma pod-scoped APIs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- export type Body_upload_file_files__resource_type___resource_id__upload_post = {
2
- file: string;
3
- };
@@ -1,13 +0,0 @@
1
- import type { TriggerType } from './TriggerType.js';
2
- /**
3
- * Request to create a trigger.
4
- */
5
- export type CreateTriggerRequest = {
6
- account_id?: (string | null);
7
- application_trigger_id?: (string | null);
8
- config?: Record<string, any>;
9
- filter_instruction?: (string | null);
10
- filter_output_schema?: (Record<string, any> | null);
11
- pod_id?: (string | null);
12
- trigger_type: TriggerType;
13
- };
@@ -1,14 +0,0 @@
1
- export type FileInfo = {
2
- created?: (string | null);
3
- last_modified?: (string | null);
4
- name: string;
5
- path: string;
6
- size?: (number | null);
7
- type: FileInfo.type;
8
- };
9
- export declare namespace FileInfo {
10
- enum type {
11
- FILE = "file",
12
- DIRECTORY = "directory"
13
- }
14
- }
@@ -1,8 +0,0 @@
1
- export var FileInfo;
2
- (function (FileInfo) {
3
- let type;
4
- (function (type) {
5
- type["FILE"] = "file";
6
- type["DIRECTORY"] = "directory";
7
- })(type = FileInfo.type || (FileInfo.type = {}));
8
- })(FileInfo || (FileInfo = {}));
@@ -1,6 +0,0 @@
1
- export type FileUploadResponse = {
2
- file_name: string;
3
- message: string;
4
- path: string;
5
- success: boolean;
6
- };
@@ -1,15 +0,0 @@
1
- import type { DataStoreWorkflowStartOutput } from './DataStoreWorkflowStartOutput.js';
2
- import type { EventWorkflowStartOutput } from './EventWorkflowStartOutput.js';
3
- import type { ManualWorkflowStartOutput } from './ManualWorkflowStartOutput.js';
4
- import type { ScheduledWorkflowStartOutput } from './ScheduledWorkflowStartOutput.js';
5
- export type FlowInstallResponse = {
6
- created_at: string;
7
- flow_id: string;
8
- flow_start: (ManualWorkflowStartOutput | ScheduledWorkflowStartOutput | EventWorkflowStartOutput | DataStoreWorkflowStartOutput);
9
- id: string;
10
- is_active?: boolean;
11
- pod_id: string;
12
- trigger_id?: (string | null);
13
- updated_at: string;
14
- user_id: string;
15
- };
@@ -1,6 +0,0 @@
1
- export type GrantPermissionRequest = {
2
- effective_role: string;
3
- grantee_min_role?: (string | null);
4
- grantee_type: string;
5
- grantee_user_id?: (string | null);
6
- };
@@ -1,7 +0,0 @@
1
- export type PodFlowConfigItem = {
2
- description?: (string | null);
3
- flow_id: string;
4
- install_id?: (string | null);
5
- is_installed: boolean;
6
- name: string;
7
- };
@@ -1,4 +0,0 @@
1
- export type PodPermissionsResponse = {
2
- actions: Array<string>;
3
- pod_id: string;
4
- };
@@ -1,6 +0,0 @@
1
- import type { FileInfo } from './FileInfo.js';
2
- export type ResourceFileListResponse = {
3
- items: Array<FileInfo>;
4
- limit: number;
5
- next_page_token?: (string | null);
6
- };
@@ -1,4 +0,0 @@
1
- import type { ResourcePermissionResponse } from './ResourcePermissionResponse.js';
2
- export type ResourcePermissionListResponse = {
3
- items: Array<ResourcePermissionResponse>;
4
- };
@@ -1,12 +0,0 @@
1
- export type ResourcePermissionResponse = {
2
- created_at: string;
3
- effective_role: string;
4
- granted_by_user_id: string;
5
- grantee_min_role: (string | null);
6
- grantee_type: string;
7
- grantee_user_id: (string | null);
8
- id: string;
9
- pod_id: string;
10
- resource_id: string;
11
- resource_type: string;
12
- };
@@ -1,4 +0,0 @@
1
- export declare enum ResourceType {
2
- POD = "pod",
3
- CONVERSATION = "conversation"
4
- }
@@ -1,9 +0,0 @@
1
- /* generated using openapi-typescript-codegen -- do not edit */
2
- /* istanbul ignore file */
3
- /* tslint:disable */
4
- /* eslint-disable */
5
- export var ResourceType;
6
- (function (ResourceType) {
7
- ResourceType["POD"] = "pod";
8
- ResourceType["CONVERSATION"] = "conversation";
9
- })(ResourceType || (ResourceType = {}));
@@ -1,3 +0,0 @@
1
- export type SetVisibilityRequest = {
2
- visibility: string;
3
- };
@@ -1,9 +0,0 @@
1
- import type { TriggerResponse } from './TriggerResponse.js';
2
- /**
3
- * Trigger list response.
4
- */
5
- export type TriggerListResponse = {
6
- items: Array<TriggerResponse>;
7
- limit: number;
8
- next_page_token?: (string | null);
9
- };
@@ -1,13 +0,0 @@
1
- /* generated using openapi-typescript-codegen -- do not edit */
2
- /* istanbul ignore file */
3
- /* tslint:disable */
4
- /* eslint-disable */
5
- /**
6
- * Type of trigger.
7
- */
8
- export var TriggerType;
9
- (function (TriggerType) {
10
- TriggerType["TIME"] = "TIME";
11
- TriggerType["WEBHOOK"] = "WEBHOOK";
12
- TriggerType["DATASTORE"] = "DATASTORE";
13
- })(TriggerType || (TriggerType = {}));
@@ -1,9 +0,0 @@
1
- /**
2
- * Request to update a trigger.
3
- */
4
- export type UpdateTriggerRequest = {
5
- config?: (Record<string, any> | null);
6
- filter_instruction?: (string | null);
7
- filter_output_schema?: (Record<string, any> | null);
8
- is_active?: (boolean | null);
9
- };
@@ -1,4 +0,0 @@
1
- import type { FlowInstallResponse } from './FlowInstallResponse.js';
2
- export type WorkflowInstallListResponse = {
3
- items: Array<FlowInstallResponse>;
4
- };
@@ -1,7 +0,0 @@
1
- /**
2
- * Workflow install scope for non-manual starts.
3
- */
4
- export declare enum WorkflowInstallMode {
5
- GLOBAL = "GLOBAL",
6
- USER = "USER"
7
- }
@@ -1,12 +0,0 @@
1
- /* generated using openapi-typescript-codegen -- do not edit */
2
- /* istanbul ignore file */
3
- /* tslint:disable */
4
- /* eslint-disable */
5
- /**
6
- * Workflow install scope for non-manual starts.
7
- */
8
- export var WorkflowInstallMode;
9
- (function (WorkflowInstallMode) {
10
- WorkflowInstallMode["GLOBAL"] = "GLOBAL";
11
- WorkflowInstallMode["USER"] = "USER";
12
- })(WorkflowInstallMode || (WorkflowInstallMode = {}));
@@ -1,11 +0,0 @@
1
- import type { WorkflowTimeInstallConfig } from './WorkflowTimeInstallConfig.js';
2
- export type WorkflowInstallRequest = {
3
- /**
4
- * Optional integration account to bind when installing an event-driven workflow. Scheduled and datastore-event workflows usually do not need this.
5
- */
6
- account_id?: (string | null);
7
- /**
8
- * Concrete time trigger settings for scheduled workflows. Provide either a one-time `time` or a recurring `cron_expression`.
9
- */
10
- schedule?: (WorkflowTimeInstallConfig | null);
11
- };
@@ -1,19 +0,0 @@
1
- import type { ScheduledFlowStartType } from './ScheduledFlowStartType.js';
2
- export type WorkflowTimeInstallConfig = {
3
- /**
4
- * Cron expression for `CRON` schedules.
5
- */
6
- cron_expression?: (string | null);
7
- /**
8
- * Concrete time trigger mode to install: `ONCE` or `CRON`.
9
- */
10
- schedule_type: ScheduledFlowStartType;
11
- /**
12
- * One-time execution timestamp for `ONCE` schedules.
13
- */
14
- time?: (string | null);
15
- /**
16
- * IANA timezone used for cron evaluation or naive one-time values.
17
- */
18
- timezone?: (string | null);
19
- };
@@ -1,46 +0,0 @@
1
- import type { Body_upload_file_files__resource_type___resource_id__upload_post } from '../models/Body_upload_file_files__resource_type___resource_id__upload_post.js';
2
- import type { FileUploadResponse } from '../models/FileUploadResponse.js';
3
- import type { ResourceFileListResponse } from '../models/ResourceFileListResponse.js';
4
- import type { ResourceType } from '../models/ResourceType.js';
5
- import type { CancelablePromise } from '../core/CancelablePromise.js';
6
- export declare class AgentFilesService {
7
- /**
8
- * Delete File
9
- * @param resourceType
10
- * @param resourceId
11
- * @param filePath
12
- * @returns any Successful Response
13
- * @throws ApiError
14
- */
15
- static deleteFileFilesResourceTypeResourceIdDeleteFilePathDelete(resourceType: ResourceType, resourceId: string, filePath: string): CancelablePromise<Record<string, any>>;
16
- /**
17
- * Download File
18
- * @param resourceType
19
- * @param resourceId
20
- * @param filePath
21
- * @returns any Successful Response
22
- * @throws ApiError
23
- */
24
- static downloadFileFilesResourceTypeResourceIdDownloadFilePathGet(resourceType: ResourceType, resourceId: string, filePath: string): CancelablePromise<any>;
25
- /**
26
- * List Files
27
- * @param resourceType
28
- * @param resourceId
29
- * @param path
30
- * @param limit
31
- * @param pageToken
32
- * @returns ResourceFileListResponse Successful Response
33
- * @throws ApiError
34
- */
35
- static listFilesFilesResourceTypeResourceIdListGet(resourceType: ResourceType, resourceId: string, path?: string, limit?: number, pageToken?: (string | null)): CancelablePromise<ResourceFileListResponse>;
36
- /**
37
- * Upload File
38
- * @param resourceType
39
- * @param resourceId
40
- * @param formData
41
- * @param path
42
- * @returns FileUploadResponse Successful Response
43
- * @throws ApiError
44
- */
45
- static uploadFileFilesResourceTypeResourceIdUploadPost(resourceType: ResourceType, resourceId: string, formData: Body_upload_file_files__resource_type___resource_id__upload_post, path?: (string | null)): CancelablePromise<FileUploadResponse>;
46
- }