@stigmer/react 0.0.101 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/agent/AgentPicker.js +1 -1
  2. package/agent/AgentPicker.js.map +1 -1
  3. package/agent/__tests__/useDefaultAgent.test.d.ts +2 -0
  4. package/agent/__tests__/useDefaultAgent.test.d.ts.map +1 -0
  5. package/agent/__tests__/useDefaultAgent.test.js +252 -0
  6. package/agent/__tests__/useDefaultAgent.test.js.map +1 -0
  7. package/agent/useAgent.d.ts +2 -0
  8. package/agent/useAgent.d.ts.map +1 -1
  9. package/agent/useAgent.js +14 -37
  10. package/agent/useAgent.js.map +1 -1
  11. package/agent/useAgentCount.d.ts +1 -1
  12. package/agent/useAgentCount.d.ts.map +1 -1
  13. package/agent/useAgentList.d.ts +2 -2
  14. package/agent/useAgentList.d.ts.map +1 -1
  15. package/agent/useDefaultAgent.d.ts +6 -2
  16. package/agent/useDefaultAgent.d.ts.map +1 -1
  17. package/agent/useDefaultAgent.js +51 -31
  18. package/agent/useDefaultAgent.js.map +1 -1
  19. package/agent-instance/useAgentInstance.d.ts +2 -0
  20. package/agent-instance/useAgentInstance.d.ts.map +1 -1
  21. package/agent-instance/useAgentInstance.js +6 -33
  22. package/agent-instance/useAgentInstance.js.map +1 -1
  23. package/agent-instance/useAgentInstanceList.d.ts +2 -0
  24. package/agent-instance/useAgentInstanceList.d.ts.map +1 -1
  25. package/agent-instance/useAgentInstanceList.js +22 -40
  26. package/agent-instance/useAgentInstanceList.js.map +1 -1
  27. package/api-key/useApiKeyList.d.ts +2 -0
  28. package/api-key/useApiKeyList.d.ts.map +1 -1
  29. package/api-key/useApiKeyList.js +3 -27
  30. package/api-key/useApiKeyList.js.map +1 -1
  31. package/composer/ComposerToolbar.d.ts +1 -5
  32. package/composer/ComposerToolbar.d.ts.map +1 -1
  33. package/composer/ComposerToolbar.js +3 -4
  34. package/composer/ComposerToolbar.js.map +1 -1
  35. package/composer/ContextChip.d.ts +1 -1
  36. package/composer/ContextChip.d.ts.map +1 -1
  37. package/composer/ContextChip.js +1 -0
  38. package/composer/ContextChip.js.map +1 -1
  39. package/composer/SessionComposer.d.ts.map +1 -1
  40. package/composer/SessionComposer.js +77 -4
  41. package/composer/SessionComposer.js.map +1 -1
  42. package/composer/icons.d.ts +1 -0
  43. package/composer/icons.d.ts.map +1 -1
  44. package/composer/icons.js +3 -0
  45. package/composer/icons.js.map +1 -1
  46. package/environment/useEnvironment.d.ts +2 -0
  47. package/environment/useEnvironment.d.ts.map +1 -1
  48. package/environment/useEnvironment.js +6 -33
  49. package/environment/useEnvironment.js.map +1 -1
  50. package/environment/useEnvironmentList.d.ts +2 -0
  51. package/environment/useEnvironmentList.d.ts.map +1 -1
  52. package/environment/useEnvironmentList.js +23 -53
  53. package/environment/useEnvironmentList.js.map +1 -1
  54. package/execution/ArtifactPreviewModal.js +1 -1
  55. package/execution/ArtifactPreviewModal.js.map +1 -1
  56. package/execution/useArtifactContent.d.ts +4 -2
  57. package/execution/useArtifactContent.d.ts.map +1 -1
  58. package/execution/useArtifactContent.js +23 -45
  59. package/execution/useArtifactContent.js.map +1 -1
  60. package/iam-policy/usePrincipalsCount.d.ts +2 -0
  61. package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
  62. package/iam-policy/usePrincipalsCount.js +7 -46
  63. package/iam-policy/usePrincipalsCount.js.map +1 -1
  64. package/iam-policy/useResourceAccess.d.ts +2 -0
  65. package/iam-policy/useResourceAccess.d.ts.map +1 -1
  66. package/iam-policy/useResourceAccess.js +12 -47
  67. package/iam-policy/useResourceAccess.js.map +1 -1
  68. package/identity-provider/useIdentityProvider.d.ts +2 -0
  69. package/identity-provider/useIdentityProvider.d.ts.map +1 -1
  70. package/identity-provider/useIdentityProvider.js +3 -33
  71. package/identity-provider/useIdentityProvider.js.map +1 -1
  72. package/identity-provider/useIdentityProviderList.d.ts +2 -0
  73. package/identity-provider/useIdentityProviderList.d.ts.map +1 -1
  74. package/identity-provider/useIdentityProviderList.js +7 -33
  75. package/identity-provider/useIdentityProviderList.js.map +1 -1
  76. package/index.d.ts +2 -2
  77. package/index.d.ts.map +1 -1
  78. package/index.js +1 -1
  79. package/index.js.map +1 -1
  80. package/internal/__tests__/useFetch.test.d.ts +2 -0
  81. package/internal/__tests__/useFetch.test.d.ts.map +1 -0
  82. package/internal/__tests__/useFetch.test.js +95 -0
  83. package/internal/__tests__/useFetch.test.js.map +1 -0
  84. package/internal/useFetch.d.ts +51 -0
  85. package/internal/useFetch.d.ts.map +1 -0
  86. package/internal/useFetch.js +75 -0
  87. package/internal/useFetch.js.map +1 -0
  88. package/invitation/useInvitationPreview.d.ts +2 -0
  89. package/invitation/useInvitationPreview.d.ts.map +1 -1
  90. package/invitation/useInvitationPreview.js +5 -35
  91. package/invitation/useInvitationPreview.js.map +1 -1
  92. package/invitation/useOrgInvitations.d.ts +2 -0
  93. package/invitation/useOrgInvitations.d.ts.map +1 -1
  94. package/invitation/useOrgInvitations.js +6 -34
  95. package/invitation/useOrgInvitations.js.map +1 -1
  96. package/library/ResourceListView.d.ts +2 -2
  97. package/library/ResourceListView.d.ts.map +1 -1
  98. package/library/ResourceListView.js +1 -1
  99. package/library/ResourceListView.js.map +1 -1
  100. package/library/useDetectSkillPackage.d.ts +1 -1
  101. package/library/useDetectSkillPackage.d.ts.map +1 -1
  102. package/mcp-server/McpServerPicker.js +1 -1
  103. package/mcp-server/McpServerPicker.js.map +1 -1
  104. package/mcp-server/useMcpServer.d.ts +2 -0
  105. package/mcp-server/useMcpServer.d.ts.map +1 -1
  106. package/mcp-server/useMcpServer.js +13 -37
  107. package/mcp-server/useMcpServer.js.map +1 -1
  108. package/mcp-server/useMcpServerCount.d.ts +1 -1
  109. package/mcp-server/useMcpServerCount.d.ts.map +1 -1
  110. package/mcp-server/useMcpServerList.d.ts +2 -2
  111. package/mcp-server/useMcpServerList.d.ts.map +1 -1
  112. package/mcp-server/useOAuthGrantStatus.d.ts +2 -0
  113. package/mcp-server/useOAuthGrantStatus.d.ts.map +1 -1
  114. package/mcp-server/useOAuthGrantStatus.js +14 -61
  115. package/mcp-server/useOAuthGrantStatus.js.map +1 -1
  116. package/mcp-server/useOrgOAuthApp.d.ts +2 -0
  117. package/mcp-server/useOrgOAuthApp.d.ts.map +1 -1
  118. package/mcp-server/useOrgOAuthApp.js +19 -43
  119. package/mcp-server/useOrgOAuthApp.js.map +1 -1
  120. package/oauth-app/useOAuthAppList.d.ts +2 -0
  121. package/oauth-app/useOAuthAppList.d.ts.map +1 -1
  122. package/oauth-app/useOAuthAppList.js +6 -34
  123. package/oauth-app/useOAuthAppList.js.map +1 -1
  124. package/organization/useOrganization.d.ts +2 -0
  125. package/organization/useOrganization.d.ts.map +1 -1
  126. package/organization/useOrganization.js +3 -33
  127. package/organization/useOrganization.js.map +1 -1
  128. package/package.json +4 -4
  129. package/platform-client/usePlatformClient.d.ts +2 -0
  130. package/platform-client/usePlatformClient.d.ts.map +1 -1
  131. package/platform-client/usePlatformClient.js +3 -33
  132. package/platform-client/usePlatformClient.js.map +1 -1
  133. package/platform-client/usePlatformClientList.d.ts +2 -0
  134. package/platform-client/usePlatformClientList.d.ts.map +1 -1
  135. package/platform-client/usePlatformClientList.js +6 -34
  136. package/platform-client/usePlatformClientList.js.map +1 -1
  137. package/runner/RunnerListPanel.d.ts.map +1 -1
  138. package/runner/RunnerListPanel.js +21 -5
  139. package/runner/RunnerListPanel.js.map +1 -1
  140. package/runner/__tests__/phase.test.d.ts +2 -0
  141. package/runner/__tests__/phase.test.d.ts.map +1 -0
  142. package/runner/__tests__/phase.test.js +33 -0
  143. package/runner/__tests__/phase.test.js.map +1 -0
  144. package/runner/__tests__/useRunnerList.test.d.ts +2 -0
  145. package/runner/__tests__/useRunnerList.test.d.ts.map +1 -0
  146. package/runner/__tests__/useRunnerList.test.js +68 -0
  147. package/runner/__tests__/useRunnerList.test.js.map +1 -0
  148. package/runner/index.d.ts +3 -1
  149. package/runner/index.d.ts.map +1 -1
  150. package/runner/index.js +2 -1
  151. package/runner/index.js.map +1 -1
  152. package/runner/phase.d.ts +13 -0
  153. package/runner/phase.d.ts.map +1 -1
  154. package/runner/phase.js +15 -0
  155. package/runner/phase.js.map +1 -1
  156. package/runner/useRunnerCredential.d.ts +66 -0
  157. package/runner/useRunnerCredential.d.ts.map +1 -0
  158. package/runner/useRunnerCredential.js +50 -0
  159. package/runner/useRunnerCredential.js.map +1 -0
  160. package/runner/useRunnerList.d.ts +21 -0
  161. package/runner/useRunnerList.d.ts.map +1 -1
  162. package/runner/useRunnerList.js +9 -36
  163. package/runner/useRunnerList.js.map +1 -1
  164. package/search/useResourceCount.d.ts +2 -1
  165. package/search/useResourceCount.d.ts.map +1 -1
  166. package/search/useResourceCount.js +13 -37
  167. package/search/useResourceCount.js.map +1 -1
  168. package/search/useResourceList.d.ts +2 -1
  169. package/search/useResourceList.d.ts.map +1 -1
  170. package/search/useResourceList.js +26 -46
  171. package/search/useResourceList.js.map +1 -1
  172. package/search/useResourceSearch.d.ts +4 -2
  173. package/search/useResourceSearch.d.ts.map +1 -1
  174. package/search/useResourceSearch.js +7 -27
  175. package/search/useResourceSearch.js.map +1 -1
  176. package/session/useNewSessionFlow.d.ts.map +1 -1
  177. package/session/useNewSessionFlow.js +26 -1
  178. package/session/useNewSessionFlow.js.map +1 -1
  179. package/session/useSession.d.ts +3 -1
  180. package/session/useSession.d.ts.map +1 -1
  181. package/session/useSession.js +3 -33
  182. package/session/useSession.js.map +1 -1
  183. package/session/useSessionExecutions.d.ts +3 -1
  184. package/session/useSessionExecutions.d.ts.map +1 -1
  185. package/session/useSessionExecutions.js +6 -34
  186. package/session/useSessionExecutions.js.map +1 -1
  187. package/session/useSessionList.d.ts +5 -3
  188. package/session/useSessionList.d.ts.map +1 -1
  189. package/session/useSessionList.js +9 -31
  190. package/session/useSessionList.js.map +1 -1
  191. package/skill/SkillPicker.js +1 -1
  192. package/skill/SkillPicker.js.map +1 -1
  193. package/skill/useSkill.d.ts +2 -0
  194. package/skill/useSkill.d.ts.map +1 -1
  195. package/skill/useSkill.js +13 -37
  196. package/skill/useSkill.js.map +1 -1
  197. package/skill/useSkillCount.d.ts +1 -1
  198. package/skill/useSkillCount.d.ts.map +1 -1
  199. package/skill/useSkillList.d.ts +2 -2
  200. package/skill/useSkillList.d.ts.map +1 -1
  201. package/src/agent/AgentPicker.tsx +1 -1
  202. package/src/agent/__tests__/useDefaultAgent.test.tsx +308 -0
  203. package/src/agent/useAgent.ts +19 -41
  204. package/src/agent/useAgentCount.ts +1 -1
  205. package/src/agent/useAgentList.ts +2 -2
  206. package/src/agent/useDefaultAgent.ts +67 -35
  207. package/src/agent-instance/useAgentInstance.ts +13 -37
  208. package/src/agent-instance/useAgentInstanceList.ts +31 -47
  209. package/src/api-key/useApiKeyList.ts +9 -32
  210. package/src/composer/ComposerToolbar.tsx +1 -22
  211. package/src/composer/ContextChip.tsx +2 -1
  212. package/src/composer/SessionComposer.tsx +206 -5
  213. package/src/composer/icons.tsx +27 -0
  214. package/src/environment/useEnvironment.ts +13 -37
  215. package/src/environment/useEnvironmentList.ts +31 -58
  216. package/src/execution/ArtifactPreviewModal.tsx +2 -2
  217. package/src/execution/useArtifactContent.ts +48 -65
  218. package/src/iam-policy/usePrincipalsCount.ts +17 -53
  219. package/src/iam-policy/useResourceAccess.ts +18 -55
  220. package/src/identity-provider/useIdentityProvider.ts +9 -39
  221. package/src/identity-provider/useIdentityProviderList.ts +14 -40
  222. package/src/index.ts +4 -0
  223. package/src/internal/__tests__/useFetch.test.ts +133 -0
  224. package/src/internal/useFetch.ts +121 -0
  225. package/src/invitation/useInvitationPreview.ts +14 -40
  226. package/src/invitation/useOrgInvitations.ts +15 -41
  227. package/src/library/ResourceListView.tsx +3 -3
  228. package/src/library/useDetectSkillPackage.ts +1 -1
  229. package/src/mcp-server/McpServerPicker.tsx +1 -1
  230. package/src/mcp-server/useMcpServer.ts +17 -42
  231. package/src/mcp-server/useMcpServerCount.ts +1 -1
  232. package/src/mcp-server/useMcpServerList.ts +2 -2
  233. package/src/mcp-server/useOAuthGrantStatus.ts +31 -69
  234. package/src/mcp-server/useOrgOAuthApp.ts +34 -51
  235. package/src/oauth-app/useOAuthAppList.ts +15 -41
  236. package/src/organization/useOrganization.ts +9 -38
  237. package/src/platform-client/usePlatformClient.ts +9 -39
  238. package/src/platform-client/usePlatformClientList.ts +14 -42
  239. package/src/runner/RunnerListPanel.tsx +49 -41
  240. package/src/runner/__tests__/phase.test.ts +35 -0
  241. package/src/runner/__tests__/useRunnerList.test.tsx +96 -0
  242. package/src/runner/index.ts +7 -0
  243. package/src/runner/phase.ts +16 -0
  244. package/src/runner/useRunnerCredential.ts +89 -0
  245. package/src/runner/useRunnerList.ts +36 -44
  246. package/src/search/useResourceCount.ts +20 -48
  247. package/src/search/useResourceList.ts +40 -57
  248. package/src/search/useResourceSearch.ts +22 -43
  249. package/src/session/useNewSessionFlow.ts +35 -1
  250. package/src/session/useSession.ts +10 -39
  251. package/src/session/useSessionExecutions.ts +20 -46
  252. package/src/session/useSessionList.ts +21 -42
  253. package/src/skill/SkillPicker.tsx +1 -1
  254. package/src/skill/useSkill.ts +17 -42
  255. package/src/skill/useSkillCount.ts +1 -1
  256. package/src/skill/useSkillList.ts +2 -2
  257. package/src/usage/useOrgUsageReport.ts +18 -46
  258. package/styles.css +1 -1
  259. package/usage/useOrgUsageReport.d.ts +2 -0
  260. package/usage/useOrgUsageReport.d.ts.map +1 -1
  261. package/usage/useOrgUsageReport.js +5 -35
  262. package/usage/useOrgUsageReport.js.map +1 -1
@@ -1,7 +1,6 @@
1
1
  "use client";
2
- import { useCallback, useEffect, useState } from "react";
3
2
  import { useStigmer } from "../hooks";
4
- import { toError } from "../internal/toError";
3
+ import { useFetch } from "../internal/useFetch";
5
4
  /**
6
5
  * Data hook that fetches a single AgentInstance by resource reference.
7
6
  *
@@ -29,39 +28,13 @@ import { toError } from "../internal/toError";
29
28
  */
30
29
  export function useAgentInstance(ref) {
31
30
  const stigmer = useStigmer();
32
- const [agentInstance, setAgentInstance] = useState(null);
33
- const [isLoading, setIsLoading] = useState(false);
34
- const [error, setError] = useState(null);
35
- const [fetchKey, setFetchKey] = useState(0);
36
- const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
37
31
  const org = ref?.org;
38
32
  const slug = ref?.slug;
39
33
  const version = ref?.version;
40
- useEffect(() => {
41
- if (!org || !slug) {
42
- setAgentInstance(null);
43
- setIsLoading(false);
44
- setError(null);
45
- return;
46
- }
47
- const cancelled = { current: false };
48
- setIsLoading(true);
49
- setError(null);
50
- stigmer.agentInstance.getByReference({ org, slug, version }).then((result) => {
51
- if (cancelled.current)
52
- return;
53
- setAgentInstance(result);
54
- setIsLoading(false);
55
- }, (err) => {
56
- if (cancelled.current)
57
- return;
58
- setError(toError(err));
59
- setIsLoading(false);
60
- });
61
- return () => {
62
- cancelled.current = true;
63
- };
64
- }, [org, slug, version, stigmer, fetchKey]);
65
- return { agentInstance, isLoading, error, refetch };
34
+ const fetchFn = org && slug
35
+ ? () => stigmer.agentInstance.getByReference({ org, slug, version })
36
+ : null;
37
+ const { data: agentInstance, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [org, slug, version, stigmer], null);
38
+ return { agentInstance, isLoading, isRefetching, error, refetch };
66
39
  }
67
40
  //# sourceMappingURL=useAgentInstance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentInstance.js","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstance.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAuB;IAEvB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IAC/E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAC/D,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CACF,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"useAgentInstance.js","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstance.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAgBhD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAuB;IAEvB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;IAE7B,MAAM,OAAO,GACX,GAAG,IAAI,IAAI;QACT,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACpE,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC/E,OAAO,EACP,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAC7B,IAAI,CACL,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpE,CAAC"}
@@ -7,6 +7,8 @@ export interface UseAgentInstanceListReturn {
7
7
  readonly totalCount: number;
8
8
  /** `true` while the initial fetch or a refetch is in flight. */
9
9
  readonly isLoading: boolean;
10
+ /** `true` while a background refetch is in flight and stale data is shown. */
11
+ readonly isRefetching: boolean;
10
12
  /** Error from the last failed request, or `null` when healthy. */
11
13
  readonly error: Error | null;
12
14
  /** Discard cached data and re-fetch the list from the server. */
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentInstanceList.d.ts","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstanceList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAKhG,oDAAoD;AACpD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,0BAA0B,CA2D5B"}
1
+ {"version":3,"file":"useAgentInstanceList.d.ts","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstanceList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAKhG,oDAAoD;AACpD,MAAM,WAAW,0BAA0B;IACzC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,0BAA0B,CAyC5B"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { useCallback, useEffect, useRef, useState } from "react";
2
+ import { useRef } from "react";
3
3
  import { create } from "@bufbuild/protobuf";
4
4
  import { ListAgentInstancesRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/io_pb";
5
5
  import { useStigmer } from "../hooks";
6
- import { toError } from "../internal/toError";
6
+ import { useFetch } from "../internal/useFetch";
7
7
  /**
8
8
  * Data hook that fetches a paginated list of {@link AgentInstance} entries
9
9
  * for a given organization, with optional label filtering.
@@ -25,50 +25,32 @@ import { toError } from "../internal/toError";
25
25
  */
26
26
  export function useAgentInstanceList(org, labels) {
27
27
  const stigmer = useStigmer();
28
- const [agentInstances, setAgentInstances] = useState([]);
29
- const [totalCount, setTotalCount] = useState(0);
30
- const [isLoading, setIsLoading] = useState(false);
31
- const [error, setError] = useState(null);
32
- const [fetchKey, setFetchKey] = useState(0);
33
28
  const labelsRef = useRef(labels);
34
29
  if (labels !== labelsRef.current &&
35
30
  JSON.stringify(labels) !== JSON.stringify(labelsRef.current)) {
36
31
  labelsRef.current = labels;
37
32
  }
38
33
  const stableLabels = labelsRef.current;
39
- const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
40
- useEffect(() => {
41
- if (!org) {
42
- setAgentInstances([]);
43
- setTotalCount(0);
44
- setIsLoading(false);
45
- setError(null);
46
- return;
34
+ const fetchFn = org
35
+ ? async () => {
36
+ const result = await stigmer.agentInstance.list(create(ListAgentInstancesRequestSchema, {
37
+ org,
38
+ labels: stableLabels ?? {},
39
+ }));
40
+ return {
41
+ agentInstances: result.items,
42
+ totalCount: result.totalCount,
43
+ };
47
44
  }
48
- const cancelled = { current: false };
49
- setIsLoading(true);
50
- setError(null);
51
- stigmer.agentInstance
52
- .list(create(ListAgentInstancesRequestSchema, {
53
- org,
54
- labels: stableLabels ?? {},
55
- }))
56
- .then((result) => {
57
- if (cancelled.current)
58
- return;
59
- setAgentInstances(result.items);
60
- setTotalCount(result.totalCount);
61
- setIsLoading(false);
62
- }, (err) => {
63
- if (cancelled.current)
64
- return;
65
- setError(toError(err));
66
- setIsLoading(false);
67
- });
68
- return () => {
69
- cancelled.current = true;
70
- };
71
- }, [org, stableLabels, stigmer, fetchKey]);
72
- return { agentInstances, totalCount, isLoading, error, refetch };
45
+ : null;
46
+ const { data, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [org, stableLabels, stigmer], { agentInstances: [], totalCount: 0 });
47
+ return {
48
+ agentInstances: data.agentInstances,
49
+ totalCount: data.totalCount,
50
+ isLoading,
51
+ isRefetching,
52
+ error,
53
+ refetch,
54
+ };
73
55
  }
74
56
  //# sourceMappingURL=useAgentInstanceList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentInstanceList.js","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstanceList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAgentInstanceList.js","sourceRoot":"","sources":["../../src/agent-instance/useAgentInstanceList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,2DAA2D,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAkBhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAkB,EAClB,MAA+B;IAE/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,IACE,MAAM,KAAK,SAAS,CAAC,OAAO;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAC5D,CAAC;QACD,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IAEvC,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAC7C,MAAM,CAAC,+BAA+B,EAAE;gBACtC,GAAG;gBACH,MAAM,EAAE,YAAY,IAAI,EAAE;aAC3B,CAAC,CACH,CAAC;YACF,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,KAAwB;gBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAChE,OAAO,EACP,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAC5B,EAAE,cAAc,EAAE,EAAqB,EAAE,UAAU,EAAE,CAAC,EAAE,CACzD,CAAC;IAEF,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS;QACT,YAAY;QACZ,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -5,6 +5,8 @@ export interface UseApiKeyListReturn {
5
5
  readonly apiKeys: readonly ApiKey[];
6
6
  /** `true` while the initial fetch or a refetch is in flight. */
7
7
  readonly isLoading: boolean;
8
+ /** `true` while a background refetch is in flight and stale data is shown. */
9
+ readonly isRefetching: boolean;
8
10
  /** Error from the last failed request, or `null` when healthy. */
9
11
  readonly error: Error | null;
10
12
  /** Discard cached data and re-fetch the key list from the server. */
@@ -1 +1 @@
1
- {"version":3,"file":"useApiKeyList.d.ts","sourceRoot":"","sources":["../../src/api-key/useApiKeyList.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iDAAiD,CAAC;AAI9E,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAkCnD"}
1
+ {"version":3,"file":"useApiKeyList.d.ts","sourceRoot":"","sources":["../../src/api-key/useApiKeyList.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iDAAiD,CAAC;AAI9E,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAUnD"}
@@ -1,7 +1,6 @@
1
1
  "use client";
2
- import { useCallback, useEffect, useState } from "react";
3
2
  import { useStigmer } from "../hooks";
4
- import { toError } from "../internal/toError";
3
+ import { useFetch } from "../internal/useFetch";
5
4
  /**
6
5
  * Data hook that fetches all {@link ApiKey} entries for the
7
6
  * authenticated identity.
@@ -23,30 +22,7 @@ import { toError } from "../internal/toError";
23
22
  */
24
23
  export function useApiKeyList() {
25
24
  const stigmer = useStigmer();
26
- const [apiKeys, setApiKeys] = useState([]);
27
- const [isLoading, setIsLoading] = useState(true);
28
- const [error, setError] = useState(null);
29
- const [fetchKey, setFetchKey] = useState(0);
30
- const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
31
- useEffect(() => {
32
- const cancelled = { current: false };
33
- setIsLoading(true);
34
- setError(null);
35
- stigmer.apiKey.findAll().then((result) => {
36
- if (cancelled.current)
37
- return;
38
- setApiKeys([...result.entries]);
39
- setIsLoading(false);
40
- }, (err) => {
41
- if (cancelled.current)
42
- return;
43
- setError(toError(err));
44
- setIsLoading(false);
45
- });
46
- return () => {
47
- cancelled.current = true;
48
- };
49
- }, [stigmer, fetchKey]);
50
- return { apiKeys, isLoading, error, refetch };
25
+ const { data: apiKeys, isLoading, isRefetching, error, refetch } = useFetch(() => stigmer.apiKey.findAll().then((r) => [...r.entries]), [stigmer], []);
26
+ return { apiKeys, isLoading, isRefetching, error, refetch };
51
27
  }
52
28
  //# sourceMappingURL=useApiKeyList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useApiKeyList.js","sourceRoot":"","sources":["../../src/api-key/useApiKeyList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAc9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAErC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAC3B,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAChC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CACF,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"useApiKeyList.js","sourceRoot":"","sources":["../../src/api-key/useApiKeyList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAgBhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CACzE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAC1D,CAAC,OAAO,CAAC,EACT,EAAc,CACf,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9D,CAAC"}
@@ -18,10 +18,6 @@ export interface ComposerToolbarProps {
18
18
  readonly onConfigActivePanelChange: (panel: string | null) => void;
19
19
  /** Render the picker content for a given configure panel id. */
20
20
  readonly renderConfigPanel: (itemId: string) => React.ReactNode;
21
- readonly showRunner: boolean;
22
- readonly runnerOrg: string;
23
- readonly runnerId: string | null;
24
- readonly onRunnerIdChange: (runnerId: string | null) => void;
25
21
  readonly showModelSelector: boolean;
26
22
  readonly modelId?: string;
27
23
  readonly onModelChange: (id: string) => void;
@@ -40,5 +36,5 @@ export interface ComposerToolbarProps {
40
36
  *
41
37
  * Separators are placed between conceptual groups using Gestalt proximity.
42
38
  */
43
- export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showRunner, runnerOrg, runnerId, onRunnerIdChange, showModelSelector, modelId, onModelChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showModelSelector, modelId, onModelChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
44
40
  //# sourceMappingURL=ComposerToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUxE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAI5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;IAI3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAInC,QAAQ,CAAC,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAIhE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAI7D,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,aAAa,GACd,EAAE,oBAAoB,2CAmGtB"}
1
+ {"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASxE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAI5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;IAI3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAInC,QAAQ,CAAC,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAIhE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,aAAa,GACd,EAAE,oBAAoB,2CA0FtB"}
@@ -4,7 +4,6 @@ import { cn } from "@stigmer/theme";
4
4
  import { ContextPopover } from "./ContextPopover";
5
5
  import { ConfigureMenu } from "./ConfigureMenu";
6
6
  import { ModelSelector } from "../models/ModelSelector";
7
- import { RunnerPicker } from "../runner/RunnerPicker";
8
7
  import { PaperclipIcon, WorkspaceIcon, ArrowUpIcon, SpinnerIcon, } from "./icons";
9
8
  /**
10
9
  * Composer toolbar — Zone 3 of the SessionComposer.
@@ -20,10 +19,10 @@ import { PaperclipIcon, WorkspaceIcon, ArrowUpIcon, SpinnerIcon, } from "./icons
20
19
  *
21
20
  * Separators are placed between conceptual groups using Gestalt proximity.
22
21
  */
23
- export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showRunner, runnerOrg, runnerId, onRunnerIdChange, showModelSelector, modelId, onModelChange, }) {
22
+ export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showModelSelector, modelId, onModelChange, }) {
24
23
  const hasTier1 = showAttach || showWorkspace;
25
24
  const hasTier2 = configureItems.length > 0;
26
- const hasExecParams = showRunner || showModelSelector;
27
- return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [showWorkspace && (_jsx(ContextPopover, { icon: _jsx(WorkspaceIcon, {}), label: "Workspace", count: workspaceCount, disabled: disabled, hideLabel: true, children: workspaceContent })), showAttach && (_jsxs("button", { type: "button", disabled: disabled, onClick: onAttachClick, className: cn("inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Attach files", children: [_jsx(PaperclipIcon, {}), _jsx("span", { className: "max-sm:hidden", children: "Attach" }), attachmentCount > 0 && (_jsx("span", { className: "rounded-full bg-primary-subtle px-1.5 text-[0.6rem] font-medium text-primary", children: attachmentCount }))] })), hasTier1 && hasTier2 && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), _jsx(ConfigureMenu, { open: configOpen, onOpenChange: onConfigOpenChange, activePanel: configActivePanel, onActivePanelChange: onConfigActivePanelChange, items: configureItems, renderPanel: renderConfigPanel, disabled: disabled }), (hasTier1 || hasTier2) && hasExecParams && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), showRunner && (_jsx(RunnerPicker, { org: runnerOrg, value: runnerId, onChange: onRunnerIdChange, disabled: disabled })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, disabled: disabled }))] }), _jsx("button", { type: "button", disabled: !canSend, onClick: onSend, className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-40", "aria-label": "Send message", children: isSubmitting ? _jsx(SpinnerIcon, {}) : _jsx(ArrowUpIcon, {}) })] }));
25
+ const hasExecParams = showModelSelector;
26
+ return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [showWorkspace && (_jsx(ContextPopover, { icon: _jsx(WorkspaceIcon, {}), label: "Workspace", count: workspaceCount, disabled: disabled, hideLabel: true, children: workspaceContent })), showAttach && (_jsxs("button", { type: "button", disabled: disabled, onClick: onAttachClick, className: cn("inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Attach files", children: [_jsx(PaperclipIcon, {}), _jsx("span", { className: "max-sm:hidden", children: "Attach" }), attachmentCount > 0 && (_jsx("span", { className: "rounded-full bg-primary-subtle px-1.5 text-[0.6rem] font-medium text-primary", children: attachmentCount }))] })), hasTier1 && hasTier2 && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), _jsx(ConfigureMenu, { open: configOpen, onOpenChange: onConfigOpenChange, activePanel: configActivePanel, onActivePanelChange: onConfigActivePanelChange, items: configureItems, renderPanel: renderConfigPanel, disabled: disabled }), (hasTier1 || hasTier2) && hasExecParams && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, disabled: disabled }))] }), _jsx("button", { type: "button", disabled: !canSend, onClick: onSend, className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-40", "aria-label": "Send message", children: isSubmitting ? _jsx(SpinnerIcon, {}) : _jsx(ArrowUpIcon, {}) })] }));
28
27
  }
29
28
  //# sourceMappingURL=ComposerToolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC;AAsCjB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,aAAa,GACQ;IACrB,MAAM,QAAQ,GAAG,UAAU,IAAI,aAAa,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,iBAAiB,CAAC;IAExC,OAAO,CACL,eAAK,SAAS,EAAC,gFAAgF,aAC7F,eAAK,SAAS,EAAC,2BAA2B,aAGvC,aAAa,IAAI,CAChB,KAAC,cAAc,IACb,IAAI,EAAE,KAAC,aAAa,KAAG,EACvB,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,QAAQ,EAClB,SAAS,kBAER,gBAAgB,GACF,CAClB,EAEA,UAAU,IAAI,CACb,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,EAAE,CACX,iFAAiF,EACjF,mEAAmE,EACnE,kDAAkD,CACnD,gBACU,cAAc,aAEzB,KAAC,aAAa,KAAG,EACjB,eAAM,SAAS,EAAC,eAAe,uBAAc,EAC5C,eAAe,GAAG,CAAC,IAAI,CACtB,eAAM,SAAS,EAAC,8EAA8E,YAC3F,eAAe,GACX,CACR,IACM,CACV,EAIA,QAAQ,IAAI,QAAQ,IAAI,CACvB,cAAK,SAAS,EAAC,8BAA8B,iBAAa,MAAM,GAAG,CACpE,EAID,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,yBAAyB,EAC9C,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,QAAQ,GAClB,EAID,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,aAAa,IAAI,CAC1C,cAAK,SAAS,EAAC,8BAA8B,iBAAa,MAAM,GAAG,CACpE,EAEA,iBAAiB,IAAI,CACpB,KAAC,aAAa,IACZ,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,GAClB,CACH,IACG,EAIN,iBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,2LAA2L,gBAC1L,cAAc,YAExB,YAAY,CAAC,CAAC,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC,CAAC,KAAC,WAAW,KAAG,GAC1C,IACL,CACP,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export interface ChipItem {
2
2
  key: string;
3
3
  label: string;
4
- type: "agent" | "workspace" | "mcp" | "skill" | "secret";
4
+ type: "agent" | "workspace" | "mcp" | "skill" | "secret" | "runner";
5
5
  onRemove: () => void;
6
6
  /** Drives visual variant: amber for `needsSetup`, muted+spinner for `loading`/`submitting`. */
7
7
  status?: "loading" | "needsSetup" | "submitting" | "ready";
@@ -1 +1 @@
1
- {"version":3,"file":"ContextChip.d.ts","sourceRoot":"","sources":["../../src/composer/ContextChip.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3D,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,2CA+DA"}
1
+ {"version":3,"file":"ContextChip.d.ts","sourceRoot":"","sources":["../../src/composer/ContextChip.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3D,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAWD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,2CA+DA"}
@@ -7,6 +7,7 @@ const CHIP_TYPE_LABELS = {
7
7
  mcp: "MCP",
8
8
  skill: "Skill",
9
9
  secret: "1-time",
10
+ runner: "Runner",
10
11
  };
11
12
  export function ContextChip({ label, type, onRemove, disabled, status, detail, onClick, }) {
12
13
  const isTransient = status === "loading" || status === "submitting";
@@ -1 +1 @@
1
- {"version":3,"file":"ContextChip.js","sourceRoot":"","sources":["../../src/composer/ContextChip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAe7C,MAAM,gBAAgB,GAAqC;IACzD,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,IAAI;IACf,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,GASR;IACC,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,KAAK,YAAY,CAAC;IAE1C,MAAM,YAAY,GAAG,CACnB,8BACG,WAAW,IAAI,KAAC,WAAW,KAAG,EAC9B,SAAS,IAAI,CACZ,eACE,SAAS,EAAC,2DAA2D,iBACzD,MAAM,GAClB,CACH,EACD,eAAM,SAAS,EAAC,2EAA2E,YACxF,gBAAgB,CAAC,IAAI,CAAC,GAClB,EACP,eAAM,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,KAAK,YAClD,KAAK,GACD,EACN,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,SAAS,EAAC,0DAA0D,YACvE,MAAM,GACF,CACR,IACA,CACJ,CAAC;IAEF,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CACX,+EAA+E,EAC/E,SAAS;YACP,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,iBAAiB,EACrB,WAAW,IAAI,YAAY,CAC5B,aAEA,OAAO,CAAC,CAAC,CAAC,CACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,8EAA8E,gBAC5E,aAAa,KAAK,EAAE,YAE/B,YAAY,GACN,CACV,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,gCAAgC,YAC7C,YAAY,GACR,CACR,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,2FAA2F,gBACzF,UAAU,KAAK,EAAE,YAE7B,KAAC,KAAK,KAAG,GACF,IACJ,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ContextChip.js","sourceRoot":"","sources":["../../src/composer/ContextChip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAe7C,MAAM,gBAAgB,GAAqC;IACzD,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,IAAI;IACf,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,GASR;IACC,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,KAAK,YAAY,CAAC;IAE1C,MAAM,YAAY,GAAG,CACnB,8BACG,WAAW,IAAI,KAAC,WAAW,KAAG,EAC9B,SAAS,IAAI,CACZ,eACE,SAAS,EAAC,2DAA2D,iBACzD,MAAM,GAClB,CACH,EACD,eAAM,SAAS,EAAC,2EAA2E,YACxF,gBAAgB,CAAC,IAAI,CAAC,GAClB,EACP,eAAM,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,KAAK,YAClD,KAAK,GACD,EACN,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,SAAS,EAAC,0DAA0D,YACvE,MAAM,GACF,CACR,IACA,CACJ,CAAC;IAEF,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CACX,+EAA+E,EAC/E,SAAS;YACP,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,iBAAiB,EACrB,WAAW,IAAI,YAAY,CAC5B,aAEA,OAAO,CAAC,CAAC,CAAC,CACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,8EAA8E,gBAC5E,aAAa,KAAK,EAAE,YAE/B,YAAY,GACN,CACV,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,gCAAgC,YAC7C,YAAY,GACR,CACR,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,2FAA2F,gBACzF,UAAU,KAAK,EAAE,YAE7B,KAAC,KAAK,KAAG,GACF,IACJ,CACR,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionComposer.d.ts","sourceRoot":"","sources":["../../src/composer/SessionComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionComposer.d.ts","sourceRoot":"","sources":["../../src/composer/SessionComposer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAQlI,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AA4B/E;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1C;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,4BAA4B,KACnC,IAAI,CAAC;IACV,kDAAkD;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,6CAA6C;IAC7C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IAC/C,mDAAmD;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IACtD,wDAAwD;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE5D;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjD,4FAA4F;IAC5F,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAE3E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IACnC,yFAAyF;IACzF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAE3D;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE9D;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAEtD;;;;;;;;;OASG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC;IAErC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAoB,EACpB,QAAgB,EAChB,cAAc,EACd,aAAa,EACb,iBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,YAAmB,EACnB,WAAmB,EACnB,mBAAmB,EACnB,GAAG,EACH,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,iBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,WAA2B,EAC3B,WAAe,EACf,SAAiB,EACjB,SAA0B,EAC1B,SAAS,GACV,EAAE,oBAAoB,2CAy9BtB"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { getUserMessage } from "@stigmer/sdk";
@@ -23,7 +23,9 @@ import { useSessionEnvPool } from "../environment/useSessionEnvPool";
23
23
  import { usePersonalEnvironment } from "../environment/usePersonalEnvironment";
24
24
  import { useStigmer } from "../hooks";
25
25
  import { SYSTEM_ENV_VAR_KEYS, resolveSystemEnvVarValues, } from "../environment/systemEnvVars";
26
- import { AgentIcon, McpServerIcon, SkillIcon, SecretsIcon, AlertTriangleIcon, ResolveSpinner, } from "./icons";
26
+ import { RunnerPhase } from "@stigmer/protos/ai/stigmer/agentic/runner/v1/enum_pb";
27
+ import { isActivePhase, phaseLabel, phaseDotColor, PHASE_SORT_ORDER, } from "../runner/phase";
28
+ import { AgentIcon, McpServerIcon, SkillIcon, SecretsIcon, RunnerIcon, AlertTriangleIcon, ResolveSpinner, } from "./icons";
27
29
  /**
28
30
  * Unified message composer for Stigmer sessions.
29
31
  *
@@ -485,6 +487,14 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
485
487
  });
486
488
  }
487
489
  }
490
+ if (showRunner && runnerId) {
491
+ items.push({
492
+ key: `runner:${runnerId}`,
493
+ label: selectedRunnerName ?? "Runner",
494
+ type: "runner",
495
+ onRemove: () => onRunnerIdChange?.(null),
496
+ });
497
+ }
488
498
  if (sessionVariables) {
489
499
  for (const entry of sessionVariables.entries) {
490
500
  const k = entry.key.trim();
@@ -509,6 +519,10 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
509
519
  mcpSetup.entries,
510
520
  mcpSetup.removeServer,
511
521
  skillRefs,
522
+ showRunner,
523
+ runnerId,
524
+ selectedRunnerName,
525
+ onRunnerIdChange,
512
526
  sessionVariables,
513
527
  displayNames,
514
528
  onSkillRefsChange,
@@ -575,6 +589,14 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
575
589
  count: skillCount,
576
590
  });
577
591
  }
592
+ if (showRunner) {
593
+ items.push({
594
+ id: "runner",
595
+ icon: _jsx(RunnerIcon, {}),
596
+ label: "Runner",
597
+ count: runnerId ? 1 : 0,
598
+ });
599
+ }
578
600
  if (showSessionVars) {
579
601
  items.push({
580
602
  id: "sessionVars",
@@ -584,7 +606,7 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
584
606
  });
585
607
  }
586
608
  return items;
587
- }, [showAgent, agentRef, agentSetup.state, showMcp, mcpCount, mcpSetup.needsSetupCount, showSkills, skillCount, showSessionVars, sessionVarCount]);
609
+ }, [showAgent, agentRef, agentSetup.state, showMcp, mcpCount, mcpSetup.needsSetupCount, showSkills, skillCount, showRunner, runnerId, showSessionVars, sessionVarCount]);
588
610
  const renderConfigPanel = useCallback((panelId) => {
589
611
  switch (panelId) {
590
612
  case "agent":
@@ -605,6 +627,8 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
605
627
  }, initialServerKey: configMcpInitialServerKeyRef.current, onDisplayNameResolved: handleDisplayNameResolved, disabled: isDisabled, poolValues: pool.getAvailableValue }));
606
628
  case "skills":
607
629
  return (_jsx(SkillPicker, { org: org, scope: "all", value: skillRefs ?? [], onChange: onSkillRefsChange, onDisplayNameResolved: handleDisplayNameResolved, disabled: isDisabled }));
630
+ case "runner":
631
+ return (_jsx(RunnerConfigPanel, { org: org, value: runnerId ?? null, onChange: (id) => onRunnerIdChange?.(id), disabled: isDisabled }));
608
632
  case "sessionVars":
609
633
  return (_jsx(SessionVariablesInput, { sessionVariables: sessionVariables, disabled: isDisabled, requiredByMap: requiredByMap }));
610
634
  default:
@@ -623,6 +647,8 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
623
647
  mcpSetup,
624
648
  skillRefs,
625
649
  onSkillRefsChange,
650
+ runnerId,
651
+ onRunnerIdChange,
626
652
  sessionVariables,
627
653
  pool,
628
654
  requiredByMap,
@@ -649,7 +675,7 @@ export function SessionComposer({ onSubmit, isSubmitting = false, disabled = fal
649
675
  setConfigActivePanel("mcp");
650
676
  }, disabled: isDisabled, className: "ml-auto shrink-0 rounded px-1.5 py-0.5 text-[0.6rem] font-medium hover:bg-warning/20 disabled:pointer-events-none disabled:opacity-50", children: "Configure" })] })), _jsx(ComposerToolbar, { disabled: isDisabled, isSubmitting: isSubmitting, canSend: canSend, onSend: composer.submit, showAttach: showAttach, attachmentCount: attachments.entries.length, onAttachClick: () => fileInputRef.current?.click(), showWorkspace: showWorkspace, workspaceCount: workspaceCount, workspaceContent: workspace
651
677
  ? _jsx(WorkspaceEditor, { workspace: workspace, disabled: isDisabled, gitHubConnection: gitHubConnection, enableGitHub: enableGitHub, enableLocal: enableLocal, onBrowseLocalFolder: onBrowseLocalFolder, runnerName: selectedRunnerName })
652
- : null, configureItems: configureItems, configOpen: configOpen, onConfigOpenChange: handleConfigOpenChange, configActivePanel: configActivePanel, onConfigActivePanelChange: handleConfigActivePanelChange, renderConfigPanel: renderConfigPanel, showRunner: showRunner, runnerOrg: org ?? "", runnerId: runnerId ?? null, onRunnerIdChange: onRunnerIdChange ?? (() => { }), showModelSelector: showModelSelector, modelId: modelId, onModelChange: handleModelChange })] }) }));
678
+ : null, configureItems: configureItems, configOpen: configOpen, onConfigOpenChange: handleConfigOpenChange, configActivePanel: configActivePanel, onConfigActivePanelChange: handleConfigActivePanelChange, renderConfigPanel: renderConfigPanel, showModelSelector: showModelSelector, modelId: modelId, onModelChange: handleModelChange })] }) }));
653
679
  }
654
680
  // ---------------------------------------------------------------------------
655
681
  // Agent setup error — secret-flow guidance or generic fallback
@@ -671,4 +697,51 @@ function mcpRefFromKey(key) {
671
697
  kind: ApiResourceKind.mcp_server,
672
698
  };
673
699
  }
700
+ // ---------------------------------------------------------------------------
701
+ // Runner config panel — inline list for the Configure menu
702
+ // ---------------------------------------------------------------------------
703
+ function RunnerConfigPanel({ org, value, onChange, disabled, }) {
704
+ const { runners, isLoading } = useRunnerList(org);
705
+ const { active, inactive } = useMemo(() => {
706
+ const act = [];
707
+ const inact = [];
708
+ for (const r of runners) {
709
+ if (isActivePhase(r.status?.phase ?? RunnerPhase.UNSPECIFIED)) {
710
+ act.push(r);
711
+ }
712
+ else {
713
+ inact.push(r);
714
+ }
715
+ }
716
+ const sorter = (a, b) => {
717
+ const pa = a.status?.phase ?? RunnerPhase.UNSPECIFIED;
718
+ const pb = b.status?.phase ?? RunnerPhase.UNSPECIFIED;
719
+ const po = PHASE_SORT_ORDER[pa] - PHASE_SORT_ORDER[pb];
720
+ if (po !== 0)
721
+ return po;
722
+ return (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? "");
723
+ };
724
+ act.sort(sorter);
725
+ inact.sort(sorter);
726
+ return { active: act, inactive: inact };
727
+ }, [runners]);
728
+ const isAutoSelected = value === null;
729
+ return (_jsxs("div", { className: "w-72 space-y-1", children: [_jsxs("button", { type: "button", onClick: () => onChange(null), disabled: disabled, className: cn("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors", "disabled:pointer-events-none disabled:opacity-50", isAutoSelected
730
+ ? "bg-accent font-medium text-foreground"
731
+ : "text-foreground hover:bg-accent-hover"), role: "option", "aria-selected": isAutoSelected, children: [_jsx("span", { className: "inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-primary", "aria-hidden": "true" }), _jsx("span", { className: "flex-1", children: "Default" }), _jsx("span", { className: "text-[0.6rem] text-muted-foreground", children: "auto" })] }), active.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "px-2 pt-1 text-[0.65rem] font-medium uppercase tracking-wider text-muted-foreground", children: "Available" }), active.map((r) => {
732
+ const id = r.metadata.id;
733
+ const name = r.metadata?.name ?? "Unnamed";
734
+ const phase = r.status?.phase ?? RunnerPhase.UNSPECIFIED;
735
+ const hostname = r.status?.connectionInfo?.hostname;
736
+ const isSelected = value === id;
737
+ return (_jsxs("button", { type: "button", onClick: () => onChange(id), disabled: disabled, className: cn("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors", "disabled:pointer-events-none disabled:opacity-50", isSelected
738
+ ? "bg-accent font-medium text-foreground"
739
+ : "text-foreground hover:bg-accent-hover"), role: "option", "aria-selected": isSelected, children: [_jsx("span", { className: `inline-block h-1.5 w-1.5 shrink-0 rounded-full ${phaseDotColor(phase)}`, "aria-hidden": "true" }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate", children: name }), hostname && (_jsx("span", { className: "truncate text-[0.6rem] leading-tight text-muted-foreground", children: hostname }))] }), _jsx("span", { className: "shrink-0 text-[0.6rem] lowercase text-muted-foreground", children: phaseLabel(phase) })] }, id));
740
+ })] })), inactive.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "px-2 pt-1 text-[0.65rem] font-medium uppercase tracking-wider text-muted-foreground", children: "Offline" }), inactive.map((r) => {
741
+ const id = r.metadata.id;
742
+ const name = r.metadata?.name ?? "Unnamed";
743
+ const phase = r.status?.phase ?? RunnerPhase.UNSPECIFIED;
744
+ return (_jsxs("div", { className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs text-muted-foreground opacity-50", children: [_jsx("span", { className: `inline-block h-1.5 w-1.5 shrink-0 rounded-full ${phaseDotColor(phase)}`, "aria-hidden": "true" }), _jsx("span", { className: "min-w-0 flex-1 truncate", children: name }), _jsx("span", { className: "shrink-0 text-[0.6rem] lowercase", children: phaseLabel(phase) })] }, id));
745
+ })] })), runners.length === 0 && !isLoading && (_jsx("p", { className: "py-3 text-center text-xs text-muted-foreground", children: "No runners registered. Use the CLI or desktop app to start one." })), isLoading && (_jsx("div", { className: "py-3 text-center text-xs text-muted-foreground", children: "Loading runners..." })), _jsx("p", { className: "px-2 pt-1 text-[0.6rem] leading-relaxed text-muted-foreground", children: "Default assigns a cloud runner automatically. Select a specific runner to execute on your own machine." })] }));
746
+ }
674
747
  //# sourceMappingURL=SessionComposer.js.map