@mastra/react 1.13.0-alpha.3 → 1.13.0-alpha.5

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 (149) hide show
  1. package/dist/{accumulator-BmD8-x9I.cjs → accumulator-Bjfckb5t.cjs} +5 -9
  2. package/dist/{accumulator-BmD8-x9I.cjs.map → accumulator-Bjfckb5t.cjs.map} +1 -1
  3. package/dist/{accumulator-D9jAph99.js → accumulator-DysrPe6U.js} +5 -9
  4. package/dist/{accumulator-D9jAph99.js.map → accumulator-DysrPe6U.js.map} +1 -1
  5. package/dist/chat/index.cjs +1 -1
  6. package/dist/chat/index.js +1 -1
  7. package/dist/{combine-by-ids-CcaZKGT9.js → combine-by-ids-C-0oe4eH.js} +2 -3
  8. package/dist/{combine-by-ids-CcaZKGT9.js.map → combine-by-ids-C-0oe4eH.js.map} +1 -1
  9. package/dist/{combine-by-ids-D_lp6Dvq.cjs → combine-by-ids-ERVPXXBi.cjs} +2 -3
  10. package/dist/{combine-by-ids-D_lp6Dvq.cjs.map → combine-by-ids-ERVPXXBi.cjs.map} +1 -1
  11. package/dist/{experiments-CJw1N3FB.cjs → experiments-Duv0RgkM.cjs} +12 -19
  12. package/dist/{experiments-CJw1N3FB.cjs.map → experiments-Duv0RgkM.cjs.map} +1 -1
  13. package/dist/{experiments-B7vRMK5T.js → experiments-DyecjEut.js} +12 -19
  14. package/dist/{experiments-B7vRMK5T.js.map → experiments-DyecjEut.js.map} +1 -1
  15. package/dist/{feedback-refetch-interval-XD5FVc2k.cjs → feedback-refetch-interval-BBcT9r8s.cjs} +3 -4
  16. package/dist/{feedback-refetch-interval-XD5FVc2k.cjs.map → feedback-refetch-interval-BBcT9r8s.cjs.map} +1 -1
  17. package/dist/{feedback-refetch-interval-DLHzQoVV.js → feedback-refetch-interval-C12Nzb2r.js} +3 -4
  18. package/dist/{feedback-refetch-interval-DLHzQoVV.js.map → feedback-refetch-interval-C12Nzb2r.js.map} +1 -1
  19. package/dist/hooks/agents/index.cjs +19 -37
  20. package/dist/hooks/agents/index.cjs.map +1 -1
  21. package/dist/hooks/agents/index.js +19 -37
  22. package/dist/hooks/agents/index.js.map +1 -1
  23. package/dist/hooks/auth/index.cjs +11 -21
  24. package/dist/hooks/auth/index.cjs.map +1 -1
  25. package/dist/hooks/auth/index.js +11 -21
  26. package/dist/hooks/auth/index.js.map +1 -1
  27. package/dist/hooks/capabilities/index.cjs +11 -21
  28. package/dist/hooks/capabilities/index.cjs.map +1 -1
  29. package/dist/hooks/capabilities/index.js +11 -21
  30. package/dist/hooks/capabilities/index.js.map +1 -1
  31. package/dist/hooks/configuration/index.cjs +2 -3
  32. package/dist/hooks/configuration/index.js +2 -3
  33. package/dist/hooks/datasets/index.cjs +12 -21
  34. package/dist/hooks/datasets/index.cjs.map +1 -1
  35. package/dist/hooks/datasets/index.js +12 -21
  36. package/dist/hooks/datasets/index.js.map +1 -1
  37. package/dist/hooks/embedders/index.cjs +2 -3
  38. package/dist/hooks/embedders/index.js +2 -3
  39. package/dist/hooks/experiments/index.cjs +1 -1
  40. package/dist/hooks/experiments/index.js +1 -1
  41. package/dist/hooks/feedback/index.cjs +3 -4
  42. package/dist/hooks/feedback/index.js +3 -4
  43. package/dist/hooks/llm/index.cjs +2 -3
  44. package/dist/hooks/llm/index.js +2 -3
  45. package/dist/hooks/logs/index.cjs +4 -5
  46. package/dist/hooks/logs/index.js +4 -5
  47. package/dist/hooks/mcps/index.cjs +8 -15
  48. package/dist/hooks/mcps/index.cjs.map +1 -1
  49. package/dist/hooks/mcps/index.js +8 -15
  50. package/dist/hooks/mcps/index.js.map +1 -1
  51. package/dist/hooks/memory/index.cjs +5 -9
  52. package/dist/hooks/memory/index.cjs.map +1 -1
  53. package/dist/hooks/memory/index.js +5 -9
  54. package/dist/hooks/memory/index.js.map +1 -1
  55. package/dist/hooks/metrics/index.cjs +19 -36
  56. package/dist/hooks/metrics/index.cjs.map +1 -1
  57. package/dist/hooks/metrics/index.js +19 -36
  58. package/dist/hooks/metrics/index.js.map +1 -1
  59. package/dist/hooks/processors/index.cjs +2 -3
  60. package/dist/hooks/processors/index.js +2 -3
  61. package/dist/hooks/prompt-blocks/index.cjs +3 -5
  62. package/dist/hooks/prompt-blocks/index.cjs.map +1 -1
  63. package/dist/hooks/prompt-blocks/index.js +3 -5
  64. package/dist/hooks/prompt-blocks/index.js.map +1 -1
  65. package/dist/hooks/query/index.cjs +2 -3
  66. package/dist/hooks/query/index.js +2 -3
  67. package/dist/hooks/review/index.cjs +4 -6
  68. package/dist/hooks/review/index.cjs.map +1 -1
  69. package/dist/hooks/review/index.js +4 -6
  70. package/dist/hooks/review/index.js.map +1 -1
  71. package/dist/hooks/schedules/index.cjs +6 -10
  72. package/dist/hooks/schedules/index.cjs.map +1 -1
  73. package/dist/hooks/schedules/index.js +6 -10
  74. package/dist/hooks/schedules/index.js.map +1 -1
  75. package/dist/hooks/scores/index.cjs +8 -13
  76. package/dist/hooks/scores/index.cjs.map +1 -1
  77. package/dist/hooks/scores/index.js +8 -13
  78. package/dist/hooks/scores/index.js.map +1 -1
  79. package/dist/hooks/templates/index.cjs +2 -3
  80. package/dist/hooks/templates/index.js +2 -3
  81. package/dist/hooks/tool-providers/index.cjs +10 -19
  82. package/dist/hooks/tool-providers/index.cjs.map +1 -1
  83. package/dist/hooks/tool-providers/index.js +10 -19
  84. package/dist/hooks/tool-providers/index.js.map +1 -1
  85. package/dist/hooks/tools/index.cjs +3 -5
  86. package/dist/hooks/tools/index.cjs.map +1 -1
  87. package/dist/hooks/tools/index.js +3 -5
  88. package/dist/hooks/tools/index.js.map +1 -1
  89. package/dist/hooks/traces/index.cjs +71 -54
  90. package/dist/hooks/traces/index.cjs.map +1 -1
  91. package/dist/hooks/traces/index.d.ts +2 -0
  92. package/dist/hooks/traces/index.d.ts.map +1 -1
  93. package/dist/hooks/traces/index.js +70 -55
  94. package/dist/hooks/traces/index.js.map +1 -1
  95. package/dist/hooks/traces/use-span-aggregate.d.ts +16 -0
  96. package/dist/hooks/traces/use-span-aggregate.d.ts.map +1 -0
  97. package/dist/hooks/traces/use-trace-aggregate.d.ts +17 -0
  98. package/dist/hooks/traces/use-trace-aggregate.d.ts.map +1 -0
  99. package/dist/hooks/traces/use-trace-column-preferences-storage-key.d.ts +4 -2
  100. package/dist/hooks/traces/use-trace-column-preferences-storage-key.d.ts.map +1 -1
  101. package/dist/hooks/vectors/index.cjs +2 -3
  102. package/dist/hooks/vectors/index.js +2 -3
  103. package/dist/hooks/voice/index.cjs +3 -4
  104. package/dist/hooks/voice/index.js +3 -4
  105. package/dist/hooks/workflows/index.cjs +7 -11
  106. package/dist/hooks/workflows/index.cjs.map +1 -1
  107. package/dist/hooks/workflows/index.js +7 -11
  108. package/dist/hooks/workflows/index.js.map +1 -1
  109. package/dist/hooks/workspace/index.cjs +12 -22
  110. package/dist/hooks/workspace/index.cjs.map +1 -1
  111. package/dist/hooks/workspace/index.js +12 -22
  112. package/dist/hooks/workspace/index.js.map +1 -1
  113. package/dist/{hooks-XYsmqFCz.cjs → hooks-Bt15IwzP.cjs} +6 -9
  114. package/dist/{hooks-XYsmqFCz.cjs.map → hooks-Bt15IwzP.cjs.map} +1 -1
  115. package/dist/{hooks-DG-Y1KFe.js → hooks-Btt7PyI-.js} +6 -9
  116. package/dist/{hooks-DG-Y1KFe.js.map → hooks-Btt7PyI-.js.map} +1 -1
  117. package/dist/{hooks-BfysjY_K.js → hooks-CEikbhrN.js} +9 -15
  118. package/dist/{hooks-BfysjY_K.js.map → hooks-CEikbhrN.js.map} +1 -1
  119. package/dist/{hooks-BbUMSab8.cjs → hooks-D6LDSEcm.cjs} +9 -15
  120. package/dist/{hooks-BbUMSab8.cjs.map → hooks-D6LDSEcm.cjs.map} +1 -1
  121. package/dist/index.cjs +7 -9
  122. package/dist/index.cjs.map +1 -1
  123. package/dist/index.js +7 -9
  124. package/dist/index.js.map +1 -1
  125. package/dist/{map-CDv4fbu4.js → map-5-4U5rwA.js} +2 -3
  126. package/dist/{map-CDv4fbu4.js.map → map-5-4U5rwA.js.map} +1 -1
  127. package/dist/{map-wjmL1y5O.cjs → map-BGoWBTGy.cjs} +2 -3
  128. package/dist/{map-wjmL1y5O.cjs.map → map-BGoWBTGy.cjs.map} +1 -1
  129. package/dist/{mastra-client-context-Bx_g84YB.js → mastra-client-context-DQ5z_ze9.js} +2 -3
  130. package/dist/{mastra-client-context-Bx_g84YB.js.map → mastra-client-context-DQ5z_ze9.js.map} +1 -1
  131. package/dist/{mastra-client-context-DzX3f0RF.cjs → mastra-client-context-DX8wJM9p.cjs} +2 -3
  132. package/dist/{mastra-client-context-DzX3f0RF.cjs.map → mastra-client-context-DX8wJM9p.cjs.map} +1 -1
  133. package/dist/{query-utils-CcrChYgz.cjs → query-utils-BVgE_xxj.cjs} +2 -3
  134. package/dist/{query-utils-CcrChYgz.cjs.map → query-utils-BVgE_xxj.cjs.map} +1 -1
  135. package/dist/{query-utils-D1NgFnWU.js → query-utils-DvMERIwf.js} +2 -3
  136. package/dist/{query-utils-D1NgFnWU.js.map → query-utils-DvMERIwf.js.map} +1 -1
  137. package/dist/ui/index.cjs +15 -30
  138. package/dist/ui/index.cjs.map +1 -1
  139. package/dist/ui/index.js +14 -28
  140. package/dist/ui/index.js.map +1 -1
  141. package/dist/{use-in-view-B6eJO9Zi.cjs → use-in-view-BxdrrnCw.cjs} +2 -3
  142. package/dist/{use-in-view-B6eJO9Zi.cjs.map → use-in-view-BxdrrnCw.cjs.map} +1 -1
  143. package/dist/{use-in-view-C9sYPGRm.js → use-in-view-CyjKdplM.js} +2 -3
  144. package/dist/{use-in-view-C9sYPGRm.js.map → use-in-view-CyjKdplM.js.map} +1 -1
  145. package/dist/{voice-BOtUdMi8.cjs → voice-Didej2E1.cjs} +5 -8
  146. package/dist/{voice-BOtUdMi8.cjs.map → voice-Didej2E1.cjs.map} +1 -1
  147. package/dist/{voice-DgirjEyH.js → voice-ugGu7VyA.js} +5 -8
  148. package/dist/{voice-DgirjEyH.js.map → voice-ugGu7VyA.js.map} +1 -1
  149. package/package.json +19 -19
@@ -0,0 +1,17 @@
1
+ import type { AggregateTracesArgs, AggregateTracesResponse } from '@mastra/client-js';
2
+ import type { UseQueryResult } from '@tanstack/react-query';
3
+ import type { MastraQueryOptions } from '../shared/query-options.js';
4
+ export interface UseTraceAggregateArgs<TData = AggregateTracesResponse> {
5
+ request: AggregateTracesArgs;
6
+ enabled?: boolean;
7
+ queryOptions?: MastraQueryOptions<AggregateTracesResponse, TData>;
8
+ }
9
+ /**
10
+ * Runs `aggregateTraces()` for `request`. Check `useTraceAggregateAvailable()` before enabling it.
11
+ *
12
+ * It doesn't poll: grouped requests over large tenants take seconds, so it refetches only when the
13
+ * request changes or the caller calls `refetch()`. The client already retries server errors, so
14
+ * React Query doesn't retry on top of it, and a rejected request (4xx) fails once.
15
+ */
16
+ export declare function useTraceAggregate<TData = AggregateTracesResponse>({ request, enabled, queryOptions, }: UseTraceAggregateArgs<TData>): UseQueryResult<TData, Error>;
17
+ //# sourceMappingURL=use-trace-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-trace-aggregate.d.ts","sourceRoot":"","sources":["../../../src/hooks/traces/use-trace-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,uBAAuB;IACpE,OAAO,EAAE,mBAAmB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAG,uBAAuB,EAAE,EACjE,OAAO,EACP,OAAc,EACd,YAAY,GACb,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAU7D"}
@@ -1,6 +1,8 @@
1
+ export type TraceColumnPreferencesScope = 'traces' | 'spans';
1
2
  /**
2
3
  * Storage key for the trace list column preferences, scoped to the Mastra server the client
3
- * talks to so each project keeps its own column layout.
4
+ * talks to so each project keeps its own column layout, and to the list (traces or spans)
5
+ * so each list keeps its own selection.
4
6
  */
5
- export declare function useTraceColumnPreferencesStorageKey(): string;
7
+ export declare function useTraceColumnPreferencesStorageKey(scope?: TraceColumnPreferencesScope): string;
6
8
  //# sourceMappingURL=use-trace-column-preferences-storage-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-column-preferences-storage-key.d.ts","sourceRoot":"","sources":["../../../src/hooks/traces/use-trace-column-preferences-storage-key.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAM5D"}
1
+ {"version":3,"file":"use-trace-column-preferences-storage-key.d.ts","sourceRoot":"","sources":["../../../src/hooks/traces/use-trace-column-preferences-storage-key.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,GAAE,2BAAsC,GAAG,MAAM,CAMzG"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mastra_client_context = require("../../mastra-client-context-DzX3f0RF.cjs");
2
+ const require_mastra_client_context = require("../../mastra-client-context-DX8wJM9p.cjs");
3
3
  let _tanstack_react_query = require("@tanstack/react-query");
4
- //#region src/hooks/vectors/use-vectors.ts
4
+ // src/hooks/vectors/use-vectors.ts
5
5
  function useVectors({ queryOptions } = {}) {
6
6
  const client = require_mastra_client_context.useMastraClient();
7
7
  return (0, _tanstack_react_query.useQuery)({
@@ -13,7 +13,6 @@ function useVectors({ queryOptions } = {}) {
13
13
  ...queryOptions
14
14
  });
15
15
  }
16
- //#endregion
17
16
  exports.useVectors = useVectors;
18
17
 
19
18
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
- import { n as useMastraClient } from "../../mastra-client-context-Bx_g84YB.js";
1
+ import { n as useMastraClient } from "../../mastra-client-context-DQ5z_ze9.js";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- //#region src/hooks/vectors/use-vectors.ts
3
+ // src/hooks/vectors/use-vectors.ts
4
4
  function useVectors({ queryOptions } = {}) {
5
5
  const client = useMastraClient();
6
6
  return useQuery({
@@ -12,7 +12,6 @@ function useVectors({ queryOptions } = {}) {
12
12
  ...queryOptions
13
13
  });
14
14
  }
15
- //#endregion
16
15
  export { useVectors };
17
16
 
18
17
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mastra_client_context = require("../../mastra-client-context-DzX3f0RF.cjs");
3
- const require_voice = require("../../voice-BOtUdMi8.cjs");
2
+ const require_mastra_client_context = require("../../mastra-client-context-DX8wJM9p.cjs");
3
+ const require_voice = require("../../voice-Didej2E1.cjs");
4
4
  let react = require("react");
5
- //#region src/hooks/voice/use-read-aloud.ts
5
+ // src/hooks/voice/use-read-aloud.ts
6
6
  /**
7
7
  * Read-aloud (text-to-speech) for assistant messages, replacing the assistant-ui
8
8
  * speech adapters (`VoiceAttachmentAdapter` / `WebSpeechSynthesisAdapter`).
@@ -81,7 +81,6 @@ const useReadAloud = (agentId, requestContext, options) => {
81
81
  stop
82
82
  };
83
83
  };
84
- //#endregion
85
84
  exports.useReadAloud = useReadAloud;
86
85
 
87
86
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
- import { n as useMastraClient } from "../../mastra-client-context-Bx_g84YB.js";
2
- import { n as playStreamWithWebAudio } from "../../voice-DgirjEyH.js";
1
+ import { n as useMastraClient } from "../../mastra-client-context-DQ5z_ze9.js";
2
+ import { n as playStreamWithWebAudio } from "../../voice-ugGu7VyA.js";
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
- //#region src/hooks/voice/use-read-aloud.ts
4
+ // src/hooks/voice/use-read-aloud.ts
5
5
  /**
6
6
  * Read-aloud (text-to-speech) for assistant messages, replacing the assistant-ui
7
7
  * speech adapters (`VoiceAttachmentAdapter` / `WebSpeechSynthesisAdapter`).
@@ -80,7 +80,6 @@ const useReadAloud = (agentId, requestContext, options) => {
80
80
  stop
81
81
  };
82
82
  };
83
- //#endregion
84
83
  export { useReadAloud };
85
84
 
86
85
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mastra_client_context = require("../../mastra-client-context-DzX3f0RF.cjs");
3
- const require_hooks = require("../../hooks-XYsmqFCz.cjs");
4
- const require_use_in_view = require("../../use-in-view-B6eJO9Zi.cjs");
2
+ const require_mastra_client_context = require("../../mastra-client-context-DX8wJM9p.cjs");
3
+ const require_hooks = require("../../hooks-Bt15IwzP.cjs");
4
+ const require_use_in_view = require("../../use-in-view-BxdrrnCw.cjs");
5
5
  let _mastra_client_js = require("@mastra/client-js");
6
6
  let react = require("react");
7
7
  let _tanstack_react_query = require("@tanstack/react-query");
8
- //#region src/hooks/workflows/use-workflows.ts
8
+ // src/hooks/workflows/use-workflows.ts
9
9
  const useWorkflows = ({ requestContext, queryOptions } = {}) => {
10
10
  const client = require_mastra_client_context.useMastraClient();
11
11
  return (0, _tanstack_react_query.useQuery)({
@@ -17,8 +17,7 @@ const useWorkflows = ({ requestContext, queryOptions } = {}) => {
17
17
  ...queryOptions
18
18
  });
19
19
  };
20
- //#endregion
21
- //#region src/hooks/workflows/use-workflow.ts
20
+ // src/hooks/workflows/use-workflow.ts
22
21
  /**
23
22
  * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.
24
23
  */
@@ -33,8 +32,7 @@ const useWorkflow = ({ workflowId, requestContext, queryOptions } = {}) => {
33
32
  ...queryOptions
34
33
  });
35
34
  };
36
- //#endregion
37
- //#region src/hooks/workflows/use-workflow-runs.ts
35
+ // src/hooks/workflows/use-workflow-runs.ts
38
36
  const PER_PAGE = 20;
39
37
  function getWorkflowRunsNextPageParam(lastPage, _allPages, lastPageParam) {
40
38
  if (lastPage.runs.length < 20) return;
@@ -116,8 +114,7 @@ const useDeleteWorkflowRun = ({ workflowId, queryOptions }) => {
116
114
  ...queryOptions
117
115
  });
118
116
  };
119
- //#endregion
120
- //#region src/hooks/workflows/use-workflows-run-counts.ts
117
+ // src/hooks/workflows/use-workflows-run-counts.ts
121
118
  const RUN_COUNTS_REFETCH_INTERVAL_MS = 5e3;
122
119
  const NO_COUNTS = {};
123
120
  /** Older servers don't ship the endpoint — that (and only that) ends polling. */
@@ -152,7 +149,6 @@ const useWorkflowsRunCounts = ({ requestContext, queryOptions } = {}) => {
152
149
  });
153
150
  return data ?? NO_COUNTS;
154
151
  };
155
- //#endregion
156
152
  exports.PER_PAGE = PER_PAGE;
157
153
  exports.RUN_COUNTS_REFETCH_INTERVAL_MS = RUN_COUNTS_REFETCH_INTERVAL_MS;
158
154
  exports.getWorkflowRunsNextPageParam = getWorkflowRunsNextPageParam;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["useMastraClient","useQuery","useMastraClient","useQuery","useMastraClient","useInView","useInfiniteQuery","useQuery","useQueryClient","useMutation","MastraClientError","useMastraClient","useQuery"],"sources":["../../../src/hooks/workflows/use-workflows.ts","../../../src/hooks/workflows/use-workflow.ts","../../../src/hooks/workflows/use-workflow-runs.ts","../../../src/hooks/workflows/use-workflows-run-counts.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowsResponse = Awaited<ReturnType<MastraClient['listWorkflows']>>;\n\nexport const useWorkflows = <TData = WorkflowsResponse>({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowsResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n\n return useQuery({\n queryKey: ['workflows', requestContext],\n queryFn: async (): Promise<WorkflowsResponse> => {\n const workflows = await client.listWorkflows(requestContext);\n // Filter out processor workflows - they're shown on the Processors tab instead\n return Object.fromEntries(Object.entries(workflows).filter(([_, workflow]) => !workflow.isProcessorWorkflow));\n },\n ...queryOptions,\n });\n};\n","import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowResponse = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['details']>> | null;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflow = <TData = WorkflowResponse>({\n workflowId,\n requestContext,\n queryOptions,\n}: {\n workflowId?: string;\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery({\n queryKey: ['workflow', workflowId],\n queryFn: () => (workflowId ? client.getWorkflow(workflowId).details(requestContext) : null),\n retry: false,\n refetchOnWindowFocus: false,\n throwOnError: false,\n ...queryOptions,\n });\n};\n","import type { GetWorkflowRunByIdResponse, MastraClient } from '@mastra/client-js';\nimport type { QueryKey, UseInfiniteQueryResult, UseMutationResult, UseQueryResult } from '@tanstack/react-query';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraInfiniteQueryOptions, MastraMutationOptions, MastraQueryOptions } from '../shared/query-options';\nimport { useInView } from '../shared/use-in-view';\n\ntype WorkflowRuns = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['runs']>>;\n\nexport const PER_PAGE = 20;\n\nexport function getWorkflowRunsNextPageParam(lastPage: WorkflowRuns, _allPages: unknown, lastPageParam: number) {\n if (lastPage.runs.length < PER_PAGE) {\n return undefined;\n }\n return lastPageParam + 1;\n}\n\nexport function selectUniqueRuns(data: { pages: WorkflowRuns[] }) {\n const seen = new Set<string>();\n return data.pages\n .flatMap(page => page.runs)\n .filter(run => {\n if (seen.has(run.runId)) return false;\n seen.add(run.runId);\n return true;\n });\n}\n\n/**\n * `summary: true` asks the server to reduce each run snapshot to `{ status, timestamp }`,\n * avoiding transfer of full snapshots when only list metadata is displayed.\n */\nexport const useWorkflowRuns = <TData = ReturnType<typeof selectUniqueRuns>>({\n workflowId,\n summary = false,\n queryOptions,\n}: {\n workflowId: string;\n summary?: boolean;\n queryOptions?: MastraInfiniteQueryOptions<WorkflowRuns, TData, QueryKey, number>;\n}): UseInfiniteQueryResult<TData, Error> & {\n setEndOfListElement: ReturnType<typeof useInView>['setRef'];\n} => {\n const client = useMastraClient();\n const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();\n const query = useInfiniteQuery({\n queryKey: ['workflow-runs', workflowId, { summary }],\n queryFn: ({ pageParam }) =>\n client\n .getWorkflow(workflowId)\n .runs({ limit: PER_PAGE, offset: pageParam * PER_PAGE, ...(summary ? { summary: true } : {}) }),\n initialPageParam: 0,\n getNextPageParam: getWorkflowRunsNextPageParam,\n select: data => selectUniqueRuns(data) as TData,\n retry: false,\n refetchInterval: 5000,\n ...queryOptions,\n });\n\n const { hasNextPage, isFetchingNextPage, fetchNextPage } = query;\n\n useEffect(() => {\n if (isEndOfListInView && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage();\n }\n }, [isEndOfListInView, hasNextPage, isFetchingNextPage, fetchNextPage]);\n\n return { ...query, setEndOfListElement };\n};\n\nexport const workflowRunQueryKey = (workflowId: string, runId: string) => ['workflow-run', workflowId, runId] as const;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflowRun = <TData = GetWorkflowRunByIdResponse>({\n workflowId,\n runId,\n queryOptions,\n}: {\n workflowId: string;\n runId: string;\n queryOptions?: MastraQueryOptions<GetWorkflowRunByIdResponse, TData>;\n}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery<GetWorkflowRunByIdResponse, Error, TData>({\n queryKey: workflowRunQueryKey(workflowId, runId),\n queryFn: () => client.getWorkflow(workflowId).runById(runId),\n gcTime: 0,\n staleTime: 0,\n ...queryOptions,\n });\n};\n\nexport const useDeleteWorkflowRun = ({\n workflowId,\n queryOptions,\n}: {\n workflowId: string;\n queryOptions?: MastraMutationOptions<unknown, { runId: string }>;\n}): UseMutationResult<unknown, Error, { runId: string }> => {\n const client = useMastraClient();\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ runId }: { runId: string }) => client.getWorkflow(workflowId).deleteRunById(runId),\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: ['workflow-runs', workflowId] });\n },\n ...queryOptions,\n });\n};\n","import type { ListWorkflowRunCountsResponse } from '@mastra/client-js';\nimport { MastraClientError } from '@mastra/client-js';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\nexport const RUN_COUNTS_REFETCH_INTERVAL_MS = 5000;\n\nconst NO_COUNTS: ListWorkflowRunCountsResponse = {};\n\n/** Older servers don't ship the endpoint — that (and only that) ends polling. */\nexport function isRunCountsUnsupported(error: unknown): boolean {\n return error instanceof MastraClientError && error.status === 404;\n}\n\n/**\n * Poll cadence: keep polling through transient failures (a blip must not\n * silence the counts forever), but stop entirely once the server has said the\n * endpoint does not exist.\n */\nexport function runCountsRefetchInterval(error: unknown): number | false {\n return isRunCountsUnsupported(error) ? false : RUN_COUNTS_REFETCH_INTERVAL_MS;\n}\n\n/**\n * Per-workflow counts of `running` (in-flight) and `suspended` (stopped at a\n * suspend() point awaiting resume — the human-in-the-loop state) runs, keyed\n * by the workflow registry key.\n *\n * One lightweight server request per poll — the server aggregates counts\n * across workflows (GET /workflows/run-counts). Older servers 404 the first\n * request; polling then stops and the list renders without count columns.\n */\nexport const useWorkflowsRunCounts = ({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<ListWorkflowRunCountsResponse>;\n} = {}): ListWorkflowRunCountsResponse => {\n const client = useMastraClient();\n\n const { data } = useQuery({\n queryKey: ['workflow-run-counts', requestContext],\n queryFn: () => client.listWorkflowRunCounts(requestContext),\n retry: false,\n refetchInterval: query => runCountsRefetchInterval(query.state.error),\n ...queryOptions,\n });\n\n return data ?? NO_COUNTS;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["useMastraClient","useQuery","useMastraClient","useQuery","useMastraClient","useInView","useInfiniteQuery","useQuery","useQueryClient","useMutation","MastraClientError","useMastraClient","useQuery"],"sources":["../../../src/hooks/workflows/use-workflows.ts","../../../src/hooks/workflows/use-workflow.ts","../../../src/hooks/workflows/use-workflow-runs.ts","../../../src/hooks/workflows/use-workflows-run-counts.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowsResponse = Awaited<ReturnType<MastraClient['listWorkflows']>>;\n\nexport const useWorkflows = <TData = WorkflowsResponse>({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowsResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n\n return useQuery({\n queryKey: ['workflows', requestContext],\n queryFn: async (): Promise<WorkflowsResponse> => {\n const workflows = await client.listWorkflows(requestContext);\n // Filter out processor workflows - they're shown on the Processors tab instead\n return Object.fromEntries(Object.entries(workflows).filter(([_, workflow]) => !workflow.isProcessorWorkflow));\n },\n ...queryOptions,\n });\n};\n","import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowResponse = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['details']>> | null;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflow = <TData = WorkflowResponse>({\n workflowId,\n requestContext,\n queryOptions,\n}: {\n workflowId?: string;\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery({\n queryKey: ['workflow', workflowId],\n queryFn: () => (workflowId ? client.getWorkflow(workflowId).details(requestContext) : null),\n retry: false,\n refetchOnWindowFocus: false,\n throwOnError: false,\n ...queryOptions,\n });\n};\n","import type { GetWorkflowRunByIdResponse, MastraClient } from '@mastra/client-js';\nimport type { QueryKey, UseInfiniteQueryResult, UseMutationResult, UseQueryResult } from '@tanstack/react-query';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraInfiniteQueryOptions, MastraMutationOptions, MastraQueryOptions } from '../shared/query-options';\nimport { useInView } from '../shared/use-in-view';\n\ntype WorkflowRuns = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['runs']>>;\n\nexport const PER_PAGE = 20;\n\nexport function getWorkflowRunsNextPageParam(lastPage: WorkflowRuns, _allPages: unknown, lastPageParam: number) {\n if (lastPage.runs.length < PER_PAGE) {\n return undefined;\n }\n return lastPageParam + 1;\n}\n\nexport function selectUniqueRuns(data: { pages: WorkflowRuns[] }) {\n const seen = new Set<string>();\n return data.pages\n .flatMap(page => page.runs)\n .filter(run => {\n if (seen.has(run.runId)) return false;\n seen.add(run.runId);\n return true;\n });\n}\n\n/**\n * `summary: true` asks the server to reduce each run snapshot to `{ status, timestamp }`,\n * avoiding transfer of full snapshots when only list metadata is displayed.\n */\nexport const useWorkflowRuns = <TData = ReturnType<typeof selectUniqueRuns>>({\n workflowId,\n summary = false,\n queryOptions,\n}: {\n workflowId: string;\n summary?: boolean;\n queryOptions?: MastraInfiniteQueryOptions<WorkflowRuns, TData, QueryKey, number>;\n}): UseInfiniteQueryResult<TData, Error> & {\n setEndOfListElement: ReturnType<typeof useInView>['setRef'];\n} => {\n const client = useMastraClient();\n const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();\n const query = useInfiniteQuery({\n queryKey: ['workflow-runs', workflowId, { summary }],\n queryFn: ({ pageParam }) =>\n client\n .getWorkflow(workflowId)\n .runs({ limit: PER_PAGE, offset: pageParam * PER_PAGE, ...(summary ? { summary: true } : {}) }),\n initialPageParam: 0,\n getNextPageParam: getWorkflowRunsNextPageParam,\n select: data => selectUniqueRuns(data) as TData,\n retry: false,\n refetchInterval: 5000,\n ...queryOptions,\n });\n\n const { hasNextPage, isFetchingNextPage, fetchNextPage } = query;\n\n useEffect(() => {\n if (isEndOfListInView && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage();\n }\n }, [isEndOfListInView, hasNextPage, isFetchingNextPage, fetchNextPage]);\n\n return { ...query, setEndOfListElement };\n};\n\nexport const workflowRunQueryKey = (workflowId: string, runId: string) => ['workflow-run', workflowId, runId] as const;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflowRun = <TData = GetWorkflowRunByIdResponse>({\n workflowId,\n runId,\n queryOptions,\n}: {\n workflowId: string;\n runId: string;\n queryOptions?: MastraQueryOptions<GetWorkflowRunByIdResponse, TData>;\n}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery<GetWorkflowRunByIdResponse, Error, TData>({\n queryKey: workflowRunQueryKey(workflowId, runId),\n queryFn: () => client.getWorkflow(workflowId).runById(runId),\n gcTime: 0,\n staleTime: 0,\n ...queryOptions,\n });\n};\n\nexport const useDeleteWorkflowRun = ({\n workflowId,\n queryOptions,\n}: {\n workflowId: string;\n queryOptions?: MastraMutationOptions<unknown, { runId: string }>;\n}): UseMutationResult<unknown, Error, { runId: string }> => {\n const client = useMastraClient();\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ runId }: { runId: string }) => client.getWorkflow(workflowId).deleteRunById(runId),\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: ['workflow-runs', workflowId] });\n },\n ...queryOptions,\n });\n};\n","import type { ListWorkflowRunCountsResponse } from '@mastra/client-js';\nimport { MastraClientError } from '@mastra/client-js';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\nexport const RUN_COUNTS_REFETCH_INTERVAL_MS = 5000;\n\nconst NO_COUNTS: ListWorkflowRunCountsResponse = {};\n\n/** Older servers don't ship the endpoint — that (and only that) ends polling. */\nexport function isRunCountsUnsupported(error: unknown): boolean {\n return error instanceof MastraClientError && error.status === 404;\n}\n\n/**\n * Poll cadence: keep polling through transient failures (a blip must not\n * silence the counts forever), but stop entirely once the server has said the\n * endpoint does not exist.\n */\nexport function runCountsRefetchInterval(error: unknown): number | false {\n return isRunCountsUnsupported(error) ? false : RUN_COUNTS_REFETCH_INTERVAL_MS;\n}\n\n/**\n * Per-workflow counts of `running` (in-flight) and `suspended` (stopped at a\n * suspend() point awaiting resume — the human-in-the-loop state) runs, keyed\n * by the workflow registry key.\n *\n * One lightweight server request per poll — the server aggregates counts\n * across workflows (GET /workflows/run-counts). Older servers 404 the first\n * request; polling then stops and the list renders without count columns.\n */\nexport const useWorkflowsRunCounts = ({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<ListWorkflowRunCountsResponse>;\n} = {}): ListWorkflowRunCountsResponse => {\n const client = useMastraClient();\n\n const { data } = useQuery({\n queryKey: ['workflow-run-counts', requestContext],\n queryFn: () => client.listWorkflowRunCounts(requestContext),\n retry: false,\n refetchInterval: query => runCountsRefetchInterval(query.state.error),\n ...queryOptions,\n });\n\n return data ?? NO_COUNTS;\n};\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { n as useMastraClient } from "../../mastra-client-context-Bx_g84YB.js";
2
- import { n as useCreateWorkflowRun, r as useStreamWorkflow, t as useCancelWorkflowRun } from "../../hooks-DG-Y1KFe.js";
3
- import { t as useInView } from "../../use-in-view-C9sYPGRm.js";
1
+ import { n as useMastraClient } from "../../mastra-client-context-DQ5z_ze9.js";
2
+ import { n as useCreateWorkflowRun, r as useStreamWorkflow, t as useCancelWorkflowRun } from "../../hooks-Btt7PyI-.js";
3
+ import { t as useInView } from "../../use-in-view-CyjKdplM.js";
4
4
  import { MastraClientError } from "@mastra/client-js";
5
5
  import { useEffect } from "react";
6
6
  import { useInfiniteQuery, useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
7
- //#region src/hooks/workflows/use-workflows.ts
7
+ // src/hooks/workflows/use-workflows.ts
8
8
  const useWorkflows = ({ requestContext, queryOptions } = {}) => {
9
9
  const client = useMastraClient();
10
10
  return useQuery({
@@ -16,8 +16,7 @@ const useWorkflows = ({ requestContext, queryOptions } = {}) => {
16
16
  ...queryOptions
17
17
  });
18
18
  };
19
- //#endregion
20
- //#region src/hooks/workflows/use-workflow.ts
19
+ // src/hooks/workflows/use-workflow.ts
21
20
  /**
22
21
  * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.
23
22
  */
@@ -32,8 +31,7 @@ const useWorkflow = ({ workflowId, requestContext, queryOptions } = {}) => {
32
31
  ...queryOptions
33
32
  });
34
33
  };
35
- //#endregion
36
- //#region src/hooks/workflows/use-workflow-runs.ts
34
+ // src/hooks/workflows/use-workflow-runs.ts
37
35
  const PER_PAGE = 20;
38
36
  function getWorkflowRunsNextPageParam(lastPage, _allPages, lastPageParam) {
39
37
  if (lastPage.runs.length < 20) return;
@@ -115,8 +113,7 @@ const useDeleteWorkflowRun = ({ workflowId, queryOptions }) => {
115
113
  ...queryOptions
116
114
  });
117
115
  };
118
- //#endregion
119
- //#region src/hooks/workflows/use-workflows-run-counts.ts
116
+ // src/hooks/workflows/use-workflows-run-counts.ts
120
117
  const RUN_COUNTS_REFETCH_INTERVAL_MS = 5e3;
121
118
  const NO_COUNTS = {};
122
119
  /** Older servers don't ship the endpoint — that (and only that) ends polling. */
@@ -151,7 +148,6 @@ const useWorkflowsRunCounts = ({ requestContext, queryOptions } = {}) => {
151
148
  });
152
149
  return data ?? NO_COUNTS;
153
150
  };
154
- //#endregion
155
151
  export { PER_PAGE, RUN_COUNTS_REFETCH_INTERVAL_MS, getWorkflowRunsNextPageParam, isRunCountsUnsupported, runCountsRefetchInterval, selectUniqueRuns, useCancelWorkflowRun, useCreateWorkflowRun, useDeleteWorkflowRun, useStreamWorkflow, useWorkflow, useWorkflowRun, useWorkflowRuns, useWorkflows, useWorkflowsRunCounts, workflowRunQueryKey };
156
152
 
157
153
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/hooks/workflows/use-workflows.ts","../../../src/hooks/workflows/use-workflow.ts","../../../src/hooks/workflows/use-workflow-runs.ts","../../../src/hooks/workflows/use-workflows-run-counts.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowsResponse = Awaited<ReturnType<MastraClient['listWorkflows']>>;\n\nexport const useWorkflows = <TData = WorkflowsResponse>({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowsResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n\n return useQuery({\n queryKey: ['workflows', requestContext],\n queryFn: async (): Promise<WorkflowsResponse> => {\n const workflows = await client.listWorkflows(requestContext);\n // Filter out processor workflows - they're shown on the Processors tab instead\n return Object.fromEntries(Object.entries(workflows).filter(([_, workflow]) => !workflow.isProcessorWorkflow));\n },\n ...queryOptions,\n });\n};\n","import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowResponse = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['details']>> | null;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflow = <TData = WorkflowResponse>({\n workflowId,\n requestContext,\n queryOptions,\n}: {\n workflowId?: string;\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery({\n queryKey: ['workflow', workflowId],\n queryFn: () => (workflowId ? client.getWorkflow(workflowId).details(requestContext) : null),\n retry: false,\n refetchOnWindowFocus: false,\n throwOnError: false,\n ...queryOptions,\n });\n};\n","import type { GetWorkflowRunByIdResponse, MastraClient } from '@mastra/client-js';\nimport type { QueryKey, UseInfiniteQueryResult, UseMutationResult, UseQueryResult } from '@tanstack/react-query';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraInfiniteQueryOptions, MastraMutationOptions, MastraQueryOptions } from '../shared/query-options';\nimport { useInView } from '../shared/use-in-view';\n\ntype WorkflowRuns = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['runs']>>;\n\nexport const PER_PAGE = 20;\n\nexport function getWorkflowRunsNextPageParam(lastPage: WorkflowRuns, _allPages: unknown, lastPageParam: number) {\n if (lastPage.runs.length < PER_PAGE) {\n return undefined;\n }\n return lastPageParam + 1;\n}\n\nexport function selectUniqueRuns(data: { pages: WorkflowRuns[] }) {\n const seen = new Set<string>();\n return data.pages\n .flatMap(page => page.runs)\n .filter(run => {\n if (seen.has(run.runId)) return false;\n seen.add(run.runId);\n return true;\n });\n}\n\n/**\n * `summary: true` asks the server to reduce each run snapshot to `{ status, timestamp }`,\n * avoiding transfer of full snapshots when only list metadata is displayed.\n */\nexport const useWorkflowRuns = <TData = ReturnType<typeof selectUniqueRuns>>({\n workflowId,\n summary = false,\n queryOptions,\n}: {\n workflowId: string;\n summary?: boolean;\n queryOptions?: MastraInfiniteQueryOptions<WorkflowRuns, TData, QueryKey, number>;\n}): UseInfiniteQueryResult<TData, Error> & {\n setEndOfListElement: ReturnType<typeof useInView>['setRef'];\n} => {\n const client = useMastraClient();\n const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();\n const query = useInfiniteQuery({\n queryKey: ['workflow-runs', workflowId, { summary }],\n queryFn: ({ pageParam }) =>\n client\n .getWorkflow(workflowId)\n .runs({ limit: PER_PAGE, offset: pageParam * PER_PAGE, ...(summary ? { summary: true } : {}) }),\n initialPageParam: 0,\n getNextPageParam: getWorkflowRunsNextPageParam,\n select: data => selectUniqueRuns(data) as TData,\n retry: false,\n refetchInterval: 5000,\n ...queryOptions,\n });\n\n const { hasNextPage, isFetchingNextPage, fetchNextPage } = query;\n\n useEffect(() => {\n if (isEndOfListInView && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage();\n }\n }, [isEndOfListInView, hasNextPage, isFetchingNextPage, fetchNextPage]);\n\n return { ...query, setEndOfListElement };\n};\n\nexport const workflowRunQueryKey = (workflowId: string, runId: string) => ['workflow-run', workflowId, runId] as const;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflowRun = <TData = GetWorkflowRunByIdResponse>({\n workflowId,\n runId,\n queryOptions,\n}: {\n workflowId: string;\n runId: string;\n queryOptions?: MastraQueryOptions<GetWorkflowRunByIdResponse, TData>;\n}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery<GetWorkflowRunByIdResponse, Error, TData>({\n queryKey: workflowRunQueryKey(workflowId, runId),\n queryFn: () => client.getWorkflow(workflowId).runById(runId),\n gcTime: 0,\n staleTime: 0,\n ...queryOptions,\n });\n};\n\nexport const useDeleteWorkflowRun = ({\n workflowId,\n queryOptions,\n}: {\n workflowId: string;\n queryOptions?: MastraMutationOptions<unknown, { runId: string }>;\n}): UseMutationResult<unknown, Error, { runId: string }> => {\n const client = useMastraClient();\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ runId }: { runId: string }) => client.getWorkflow(workflowId).deleteRunById(runId),\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: ['workflow-runs', workflowId] });\n },\n ...queryOptions,\n });\n};\n","import type { ListWorkflowRunCountsResponse } from '@mastra/client-js';\nimport { MastraClientError } from '@mastra/client-js';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\nexport const RUN_COUNTS_REFETCH_INTERVAL_MS = 5000;\n\nconst NO_COUNTS: ListWorkflowRunCountsResponse = {};\n\n/** Older servers don't ship the endpoint — that (and only that) ends polling. */\nexport function isRunCountsUnsupported(error: unknown): boolean {\n return error instanceof MastraClientError && error.status === 404;\n}\n\n/**\n * Poll cadence: keep polling through transient failures (a blip must not\n * silence the counts forever), but stop entirely once the server has said the\n * endpoint does not exist.\n */\nexport function runCountsRefetchInterval(error: unknown): number | false {\n return isRunCountsUnsupported(error) ? false : RUN_COUNTS_REFETCH_INTERVAL_MS;\n}\n\n/**\n * Per-workflow counts of `running` (in-flight) and `suspended` (stopped at a\n * suspend() point awaiting resume — the human-in-the-loop state) runs, keyed\n * by the workflow registry key.\n *\n * One lightweight server request per poll — the server aggregates counts\n * across workflows (GET /workflows/run-counts). Older servers 404 the first\n * request; polling then stops and the list renders without count columns.\n */\nexport const useWorkflowsRunCounts = ({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<ListWorkflowRunCountsResponse>;\n} = {}): ListWorkflowRunCountsResponse => {\n const client = useMastraClient();\n\n const { data } = useQuery({\n queryKey: ['workflow-run-counts', requestContext],\n queryFn: () => client.listWorkflowRunCounts(requestContext),\n retry: false,\n refetchInterval: query => runCountsRefetchInterval(query.state.error),\n ...queryOptions,\n });\n\n return data ?? NO_COUNTS;\n};\n"],"mappings":";;;;;;;AAQA,MAAa,gBAA2C,EACtD,gBACA,iBAIE,CAAC,MAAoC;CACvC,MAAM,SAAS,gBAAgB;CAE/B,OAAO,SAAS;EACd,UAAU,CAAC,aAAa,cAAc;EACtC,SAAS,YAAwC;GAC/C,MAAM,YAAY,MAAM,OAAO,cAAc,cAAc;GAE3D,OAAO,OAAO,YAAY,OAAO,QAAQ,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,SAAS,mBAAmB,CAAC;EAC9G;EACA,GAAG;CACL,CAAC;AACH;;;;;;ACfA,MAAa,eAAyC,EACpD,YACA,gBACA,iBAKE,CAAC,MAAoC;CACvC,MAAM,SAAS,gBAAgB;CAC/B,OAAO,SAAS;EACd,UAAU,CAAC,YAAY,UAAU;EACjC,eAAgB,aAAa,OAAO,YAAY,UAAU,CAAC,CAAC,QAAQ,cAAc,IAAI;EACtF,OAAO;EACP,sBAAsB;EACtB,cAAc;EACd,GAAG;CACL,CAAC;AACH;;;ACnBA,MAAa,WAAW;AAExB,SAAgB,6BAA6B,UAAwB,WAAoB,eAAuB;CAC9G,IAAI,SAAS,KAAK,SAAA,IAChB;CAEF,OAAO,gBAAgB;AACzB;AAEA,SAAgB,iBAAiB,MAAiC;CAChE,MAAM,uBAAO,IAAI,IAAY;CAC7B,OAAO,KAAK,MACT,SAAQ,SAAQ,KAAK,IAAI,CAAC,CAC1B,QAAO,QAAO;EACb,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,OAAO;EAChC,KAAK,IAAI,IAAI,KAAK;EAClB,OAAO;CACT,CAAC;AACL;;;;;AAMA,MAAa,mBAAgE,EAC3E,YACA,UAAU,OACV,mBAOG;CACH,MAAM,SAAS,gBAAgB;CAC/B,MAAM,EAAE,QAAQ,mBAAmB,QAAQ,wBAAwB,UAAU;CAC7E,MAAM,QAAQ,iBAAiB;EAC7B,UAAU;GAAC;GAAiB;GAAY,EAAE,QAAQ;EAAC;EACnD,UAAU,EAAE,gBACV,OACG,YAAY,UAAU,CAAC,CACvB,KAAK;GAAE,OAAA;GAAiB,QAAQ,YAAA;GAAsB,GAAI,UAAU,EAAE,SAAS,KAAK,IAAI,CAAC;EAAG,CAAC;EAClG,kBAAkB;EAClB,kBAAkB;EAClB,SAAQ,SAAQ,iBAAiB,IAAI;EACrC,OAAO;EACP,iBAAiB;EACjB,GAAG;CACL,CAAC;CAED,MAAM,EAAE,aAAa,oBAAoB,kBAAkB;CAE3D,gBAAgB;EACd,IAAI,qBAAqB,eAAe,CAAC,oBACvC,cAAmB;CAEvB,GAAG;EAAC;EAAmB;EAAa;EAAoB;CAAa,CAAC;CAEtE,OAAO;EAAE,GAAG;EAAO;CAAoB;AACzC;AAEA,MAAa,uBAAuB,YAAoB,UAAkB;CAAC;CAAgB;CAAY;AAAK;;;;AAK5G,MAAa,kBAAsD,EACjE,YACA,OACA,mBAKkC;CAClC,MAAM,SAAS,gBAAgB;CAC/B,OAAO,SAAmD;EACxD,UAAU,oBAAoB,YAAY,KAAK;EAC/C,eAAe,OAAO,YAAY,UAAU,CAAC,CAAC,QAAQ,KAAK;EAC3D,QAAQ;EACR,WAAW;EACX,GAAG;CACL,CAAC;AACH;AAEA,MAAa,wBAAwB,EACnC,YACA,mBAI0D;CAC1D,MAAM,SAAS,gBAAgB;CAC/B,MAAM,cAAc,eAAe;CACnC,OAAO,YAAY;EACjB,aAAa,EAAE,YAA+B,OAAO,YAAY,UAAU,CAAC,CAAC,cAAc,KAAK;EAChG,iBAAiB;GACf,YAAiB,kBAAkB,EAAE,UAAU,CAAC,iBAAiB,UAAU,EAAE,CAAC;EAChF;EACA,GAAG;CACL,CAAC;AACH;;;AC1GA,MAAa,iCAAiC;AAE9C,MAAM,YAA2C,CAAC;;AAGlD,SAAgB,uBAAuB,OAAyB;CAC9D,OAAO,iBAAiB,qBAAqB,MAAM,WAAW;AAChE;;;;;;AAOA,SAAgB,yBAAyB,OAAgC;CACvE,OAAO,uBAAuB,KAAK,IAAI,QAAQ;AACjD;;;;;;;;;;AAWA,MAAa,yBAAyB,EACpC,gBACA,iBAIE,CAAC,MAAqC;CACxC,MAAM,SAAS,gBAAgB;CAE/B,MAAM,EAAE,SAAS,SAAS;EACxB,UAAU,CAAC,uBAAuB,cAAc;EAChD,eAAe,OAAO,sBAAsB,cAAc;EAC1D,OAAO;EACP,kBAAiB,UAAS,yBAAyB,MAAM,MAAM,KAAK;EACpE,GAAG;CACL,CAAC;CAED,OAAO,QAAQ;AACjB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/hooks/workflows/use-workflows.ts","../../../src/hooks/workflows/use-workflow.ts","../../../src/hooks/workflows/use-workflow-runs.ts","../../../src/hooks/workflows/use-workflows-run-counts.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowsResponse = Awaited<ReturnType<MastraClient['listWorkflows']>>;\n\nexport const useWorkflows = <TData = WorkflowsResponse>({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowsResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n\n return useQuery({\n queryKey: ['workflows', requestContext],\n queryFn: async (): Promise<WorkflowsResponse> => {\n const workflows = await client.listWorkflows(requestContext);\n // Filter out processor workflows - they're shown on the Processors tab instead\n return Object.fromEntries(Object.entries(workflows).filter(([_, workflow]) => !workflow.isProcessorWorkflow));\n },\n ...queryOptions,\n });\n};\n","import type { MastraClient } from '@mastra/client-js';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\ntype WorkflowResponse = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['details']>> | null;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflow = <TData = WorkflowResponse>({\n workflowId,\n requestContext,\n queryOptions,\n}: {\n workflowId?: string;\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<WorkflowResponse, TData>;\n} = {}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery({\n queryKey: ['workflow', workflowId],\n queryFn: () => (workflowId ? client.getWorkflow(workflowId).details(requestContext) : null),\n retry: false,\n refetchOnWindowFocus: false,\n throwOnError: false,\n ...queryOptions,\n });\n};\n","import type { GetWorkflowRunByIdResponse, MastraClient } from '@mastra/client-js';\nimport type { QueryKey, UseInfiniteQueryResult, UseMutationResult, UseQueryResult } from '@tanstack/react-query';\nimport { useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraInfiniteQueryOptions, MastraMutationOptions, MastraQueryOptions } from '../shared/query-options';\nimport { useInView } from '../shared/use-in-view';\n\ntype WorkflowRuns = Awaited<ReturnType<ReturnType<MastraClient['getWorkflow']>['runs']>>;\n\nexport const PER_PAGE = 20;\n\nexport function getWorkflowRunsNextPageParam(lastPage: WorkflowRuns, _allPages: unknown, lastPageParam: number) {\n if (lastPage.runs.length < PER_PAGE) {\n return undefined;\n }\n return lastPageParam + 1;\n}\n\nexport function selectUniqueRuns(data: { pages: WorkflowRuns[] }) {\n const seen = new Set<string>();\n return data.pages\n .flatMap(page => page.runs)\n .filter(run => {\n if (seen.has(run.runId)) return false;\n seen.add(run.runId);\n return true;\n });\n}\n\n/**\n * `summary: true` asks the server to reduce each run snapshot to `{ status, timestamp }`,\n * avoiding transfer of full snapshots when only list metadata is displayed.\n */\nexport const useWorkflowRuns = <TData = ReturnType<typeof selectUniqueRuns>>({\n workflowId,\n summary = false,\n queryOptions,\n}: {\n workflowId: string;\n summary?: boolean;\n queryOptions?: MastraInfiniteQueryOptions<WorkflowRuns, TData, QueryKey, number>;\n}): UseInfiniteQueryResult<TData, Error> & {\n setEndOfListElement: ReturnType<typeof useInView>['setRef'];\n} => {\n const client = useMastraClient();\n const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();\n const query = useInfiniteQuery({\n queryKey: ['workflow-runs', workflowId, { summary }],\n queryFn: ({ pageParam }) =>\n client\n .getWorkflow(workflowId)\n .runs({ limit: PER_PAGE, offset: pageParam * PER_PAGE, ...(summary ? { summary: true } : {}) }),\n initialPageParam: 0,\n getNextPageParam: getWorkflowRunsNextPageParam,\n select: data => selectUniqueRuns(data) as TData,\n retry: false,\n refetchInterval: 5000,\n ...queryOptions,\n });\n\n const { hasNextPage, isFetchingNextPage, fetchNextPage } = query;\n\n useEffect(() => {\n if (isEndOfListInView && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage();\n }\n }, [isEndOfListInView, hasNextPage, isFetchingNextPage, fetchNextPage]);\n\n return { ...query, setEndOfListElement };\n};\n\nexport const workflowRunQueryKey = (workflowId: string, runId: string) => ['workflow-run', workflowId, runId] as const;\n\n/**\n * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.\n */\nexport const useWorkflowRun = <TData = GetWorkflowRunByIdResponse>({\n workflowId,\n runId,\n queryOptions,\n}: {\n workflowId: string;\n runId: string;\n queryOptions?: MastraQueryOptions<GetWorkflowRunByIdResponse, TData>;\n}): UseQueryResult<TData, Error> => {\n const client = useMastraClient();\n return useQuery<GetWorkflowRunByIdResponse, Error, TData>({\n queryKey: workflowRunQueryKey(workflowId, runId),\n queryFn: () => client.getWorkflow(workflowId).runById(runId),\n gcTime: 0,\n staleTime: 0,\n ...queryOptions,\n });\n};\n\nexport const useDeleteWorkflowRun = ({\n workflowId,\n queryOptions,\n}: {\n workflowId: string;\n queryOptions?: MastraMutationOptions<unknown, { runId: string }>;\n}): UseMutationResult<unknown, Error, { runId: string }> => {\n const client = useMastraClient();\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ runId }: { runId: string }) => client.getWorkflow(workflowId).deleteRunById(runId),\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: ['workflow-runs', workflowId] });\n },\n ...queryOptions,\n });\n};\n","import type { ListWorkflowRunCountsResponse } from '@mastra/client-js';\nimport { MastraClientError } from '@mastra/client-js';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMastraClient } from '../../mastra-client-context';\nimport type { MastraQueryOptions } from '../shared/query-options';\n\nexport const RUN_COUNTS_REFETCH_INTERVAL_MS = 5000;\n\nconst NO_COUNTS: ListWorkflowRunCountsResponse = {};\n\n/** Older servers don't ship the endpoint — that (and only that) ends polling. */\nexport function isRunCountsUnsupported(error: unknown): boolean {\n return error instanceof MastraClientError && error.status === 404;\n}\n\n/**\n * Poll cadence: keep polling through transient failures (a blip must not\n * silence the counts forever), but stop entirely once the server has said the\n * endpoint does not exist.\n */\nexport function runCountsRefetchInterval(error: unknown): number | false {\n return isRunCountsUnsupported(error) ? false : RUN_COUNTS_REFETCH_INTERVAL_MS;\n}\n\n/**\n * Per-workflow counts of `running` (in-flight) and `suspended` (stopped at a\n * suspend() point awaiting resume — the human-in-the-loop state) runs, keyed\n * by the workflow registry key.\n *\n * One lightweight server request per poll — the server aggregates counts\n * across workflows (GET /workflows/run-counts). Older servers 404 the first\n * request; polling then stops and the list renders without count columns.\n */\nexport const useWorkflowsRunCounts = ({\n requestContext,\n queryOptions,\n}: {\n requestContext?: Record<string, any>;\n queryOptions?: MastraQueryOptions<ListWorkflowRunCountsResponse>;\n} = {}): ListWorkflowRunCountsResponse => {\n const client = useMastraClient();\n\n const { data } = useQuery({\n queryKey: ['workflow-run-counts', requestContext],\n queryFn: () => client.listWorkflowRunCounts(requestContext),\n retry: false,\n refetchInterval: query => runCountsRefetchInterval(query.state.error),\n ...queryOptions,\n });\n\n return data ?? NO_COUNTS;\n};\n"],"mappings":";;;;;;;AAQA,MAAa,gBAA2C,EACtD,gBACA,iBAIE,CAAC,MAAoC;CACvC,MAAM,SAAS,gBAAgB;CAE/B,OAAO,SAAS;EACd,UAAU,CAAC,aAAa,cAAc;EACtC,SAAS,YAAwC;GAC/C,MAAM,YAAY,MAAM,OAAO,cAAc,cAAc;GAE3D,OAAO,OAAO,YAAY,OAAO,QAAQ,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,SAAS,mBAAmB,CAAC;EAC9G;EACA,GAAG;CACL,CAAC;AACH;;;;;ACfA,MAAa,eAAyC,EACpD,YACA,gBACA,iBAKE,CAAC,MAAoC;CACvC,MAAM,SAAS,gBAAgB;CAC/B,OAAO,SAAS;EACd,UAAU,CAAC,YAAY,UAAU;EACjC,eAAgB,aAAa,OAAO,YAAY,UAAU,CAAC,CAAC,QAAQ,cAAc,IAAI;EACtF,OAAO;EACP,sBAAsB;EACtB,cAAc;EACd,GAAG;CACL,CAAC;AACH;;ACnBA,MAAa,WAAW;AAExB,SAAgB,6BAA6B,UAAwB,WAAoB,eAAuB;CAC9G,IAAI,SAAS,KAAK,SAAA,IAChB;CAEF,OAAO,gBAAgB;AACzB;AAEA,SAAgB,iBAAiB,MAAiC;CAChE,MAAM,uBAAO,IAAI,IAAY;CAC7B,OAAO,KAAK,MACT,SAAQ,SAAQ,KAAK,IAAI,CAAC,CAC1B,QAAO,QAAO;EACb,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,OAAO;EAChC,KAAK,IAAI,IAAI,KAAK;EAClB,OAAO;CACT,CAAC;AACL;;;;;AAMA,MAAa,mBAAgE,EAC3E,YACA,UAAU,OACV,mBAOG;CACH,MAAM,SAAS,gBAAgB;CAC/B,MAAM,EAAE,QAAQ,mBAAmB,QAAQ,wBAAwB,UAAU;CAC7E,MAAM,QAAQ,iBAAiB;EAC7B,UAAU;GAAC;GAAiB;GAAY,EAAE,QAAQ;EAAC;EACnD,UAAU,EAAE,gBACV,OACG,YAAY,UAAU,CAAC,CACvB,KAAK;GAAE,OAAA;GAAiB,QAAQ,YAAA;GAAsB,GAAI,UAAU,EAAE,SAAS,KAAK,IAAI,CAAC;EAAG,CAAC;EAClG,kBAAkB;EAClB,kBAAkB;EAClB,SAAQ,SAAQ,iBAAiB,IAAI;EACrC,OAAO;EACP,iBAAiB;EACjB,GAAG;CACL,CAAC;CAED,MAAM,EAAE,aAAa,oBAAoB,kBAAkB;CAE3D,gBAAgB;EACd,IAAI,qBAAqB,eAAe,CAAC,oBACvC,cAAmB;CAEvB,GAAG;EAAC;EAAmB;EAAa;EAAoB;CAAa,CAAC;CAEtE,OAAO;EAAE,GAAG;EAAO;CAAoB;AACzC;AAEA,MAAa,uBAAuB,YAAoB,UAAkB;CAAC;CAAgB;CAAY;AAAK;;;;AAK5G,MAAa,kBAAsD,EACjE,YACA,OACA,mBAKkC;CAClC,MAAM,SAAS,gBAAgB;CAC/B,OAAO,SAAmD;EACxD,UAAU,oBAAoB,YAAY,KAAK;EAC/C,eAAe,OAAO,YAAY,UAAU,CAAC,CAAC,QAAQ,KAAK;EAC3D,QAAQ;EACR,WAAW;EACX,GAAG;CACL,CAAC;AACH;AAEA,MAAa,wBAAwB,EACnC,YACA,mBAI0D;CAC1D,MAAM,SAAS,gBAAgB;CAC/B,MAAM,cAAc,eAAe;CACnC,OAAO,YAAY;EACjB,aAAa,EAAE,YAA+B,OAAO,YAAY,UAAU,CAAC,CAAC,cAAc,KAAK;EAChG,iBAAiB;GACf,YAAiB,kBAAkB,EAAE,UAAU,CAAC,iBAAiB,UAAU,EAAE,CAAC;EAChF;EACA,GAAG;CACL,CAAC;AACH;;AC1GA,MAAa,iCAAiC;AAE9C,MAAM,YAA2C,CAAC;;AAGlD,SAAgB,uBAAuB,OAAyB;CAC9D,OAAO,iBAAiB,qBAAqB,MAAM,WAAW;AAChE;;;;;;AAOA,SAAgB,yBAAyB,OAAgC;CACvE,OAAO,uBAAuB,KAAK,IAAI,QAAQ;AACjD;;;;;;;;;;AAWA,MAAa,yBAAyB,EACpC,gBACA,iBAIE,CAAC,MAAqC;CACxC,MAAM,SAAS,gBAAgB;CAE/B,MAAM,EAAE,SAAS,SAAS;EACxB,UAAU,CAAC,uBAAuB,cAAc;EAChD,eAAe,OAAO,sBAAsB,cAAc;EAC1D,OAAO;EACP,kBAAiB,UAAS,yBAAyB,MAAM,MAAM,KAAK;EACpE,GAAG;CACL,CAAC;CAED,OAAO,QAAQ;AACjB"}
@@ -1,17 +1,16 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_mastra_client_context = require("../../mastra-client-context-DzX3f0RF.cjs");
3
- const require_query_utils = require("../../query-utils-CcrChYgz.cjs");
2
+ const require_mastra_client_context = require("../../mastra-client-context-DX8wJM9p.cjs");
3
+ const require_query_utils = require("../../query-utils-BVgE_xxj.cjs");
4
4
  let _tanstack_react_query = require("@tanstack/react-query");
5
5
  let _mastra_core_features = require("@mastra/core/features");
6
- //#region src/hooks/workspace/client-utils.ts
6
+ // src/hooks/workspace/client-utils.ts
7
7
  /**
8
8
  * Checks if a method exists on an object and is callable.
9
9
  */
10
10
  function hasMethod(obj, method) {
11
11
  return method in obj && typeof obj[method] === "function";
12
12
  }
13
- //#endregion
14
- //#region src/hooks/workspace/compatibility.ts
13
+ // src/hooks/workspace/compatibility.ts
15
14
  /**
16
15
  * Checks if workspace v1 features are supported by both core and client.
17
16
  * This guards against version mismatches between playground-ui, core, and client-js.
@@ -68,8 +67,7 @@ const shouldRetryWorkspaceQuery = (failureCount, error) => {
68
67
  if (require_query_utils.isNonRetryableError(error)) return false;
69
68
  return failureCount < 3;
70
69
  };
71
- //#endregion
72
- //#region src/hooks/workspace/file-type.ts
70
+ // src/hooks/workspace/file-type.ts
73
71
  const IMAGE_EXTENSIONS = [
74
72
  "png",
75
73
  "jpg",
@@ -96,8 +94,7 @@ const isVideoFile = (path, mimeType) => mimeType?.startsWith("video/") || extens
96
94
  const isMediaFile = (path) => isImageFile(path) || isVideoFile(path);
97
95
  const videoMimeType = (path, mimeType) => mimeType?.startsWith("video/") ? mimeType : VIDEO_MIME_TYPES[extension(path)] ?? "video/mp4";
98
96
  const isMarkdownFile = (path) => /\.mdx?$/i.test(path);
99
- //#endregion
100
- //#region src/hooks/workspace/use-skills-sh.ts
97
+ // src/hooks/workspace/use-skills-sh.ts
101
98
  /**
102
99
  * Search skills on skills.sh (via server proxy)
103
100
  */
@@ -257,8 +254,7 @@ const useRemoveSkill = ({ queryOptions } = {}) => {
257
254
  ...queryOptions
258
255
  });
259
256
  };
260
- //#endregion
261
- //#region src/hooks/workspace/use-stored-workspaces.ts
257
+ // src/hooks/workspace/use-stored-workspaces.ts
262
258
  /**
263
259
  * Hook to list stored workspaces from the database.
264
260
  * These are workspaces that have been persisted via the stored workspaces API,
@@ -274,8 +270,7 @@ const useStoredWorkspaces = ({ queryOptions, ...params } = {}) => {
274
270
  ...queryOptions
275
271
  });
276
272
  };
277
- //#endregion
278
- //#region src/hooks/workspace/use-workspace.ts
273
+ // src/hooks/workspace/use-workspace.ts
279
274
  function getParentPath(path) {
280
275
  return path.split("/").slice(0, -1).join("/") || (path.startsWith("/") ? "/" : ".");
281
276
  }
@@ -450,8 +445,7 @@ const useIndexWorkspaceContent = ({ queryOptions } = {}) => {
450
445
  ...queryOptions
451
446
  });
452
447
  };
453
- //#endregion
454
- //#region src/hooks/workspace/use-workspace-directory.ts
448
+ // src/hooks/workspace/use-workspace-directory.ts
455
449
  const WORKSPACE_REFETCH_INTERVAL = 1e4;
456
450
  function useWorkspaceDirectory({ workspaceId, path, queryOptions }) {
457
451
  const client = require_mastra_client_context.useMastraClient();
@@ -468,8 +462,7 @@ function useWorkspaceDirectory({ workspaceId, path, queryOptions }) {
468
462
  ...queryOptions
469
463
  });
470
464
  }
471
- //#endregion
472
- //#region src/hooks/workspace/use-workspace-file-content.ts
465
+ // src/hooks/workspace/use-workspace-file-content.ts
473
466
  /**
474
467
  * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.
475
468
  */
@@ -490,8 +483,7 @@ function useWorkspaceFileContent({ workspaceId, path, queryOptions }) {
490
483
  ...queryOptions
491
484
  });
492
485
  }
493
- //#endregion
494
- //#region src/hooks/workspace/use-workspace-search.ts
486
+ // src/hooks/workspace/use-workspace-search.ts
495
487
  const filePathFromId = (id) => id.replace(/#chunk-\d+$/, "");
496
488
  const basename = (path) => path.split("/").filter(Boolean).pop() ?? path;
497
489
  const skillFilePath = (result) => result.skillPath ? `${result.skillPath.replace(/\/$/, "")}/SKILL.md` : result.source;
@@ -540,8 +532,7 @@ function useWorkspaceSearch({ workspaceId, query, files: searchFiles = true, ski
540
532
  ...queryOptions
541
533
  });
542
534
  }
543
- //#endregion
544
- //#region src/hooks/workspace/use-workspace-skills.ts
535
+ // src/hooks/workspace/use-workspace-skills.ts
545
536
  /**
546
537
  * Does not guard on empty ids; pass `queryOptions: { enabled }` to skip the fetch.
547
538
  */
@@ -589,7 +580,6 @@ const useAgentSkill = ({ agentId, skillName, workspaceId, path, queryOptions })
589
580
  enabled: isWorkspaceV1Supported(client) && (queryOptions?.enabled ?? true)
590
581
  });
591
582
  };
592
- //#endregion
593
583
  exports.WORKSPACE_REFETCH_INTERVAL = WORKSPACE_REFETCH_INTERVAL;
594
584
  exports.isImageFile = isImageFile;
595
585
  exports.isMarkdownFile = isMarkdownFile;