@stigmer/react 0.0.100 → 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.
- package/agent/AgentPicker.js +1 -1
- package/agent/AgentPicker.js.map +1 -1
- package/agent/__tests__/useDefaultAgent.test.d.ts +2 -0
- package/agent/__tests__/useDefaultAgent.test.d.ts.map +1 -0
- package/agent/__tests__/useDefaultAgent.test.js +252 -0
- package/agent/__tests__/useDefaultAgent.test.js.map +1 -0
- package/agent/useAgent.d.ts +2 -0
- package/agent/useAgent.d.ts.map +1 -1
- package/agent/useAgent.js +14 -37
- package/agent/useAgent.js.map +1 -1
- package/agent/useAgentCount.d.ts +1 -1
- package/agent/useAgentCount.d.ts.map +1 -1
- package/agent/useAgentList.d.ts +2 -2
- package/agent/useAgentList.d.ts.map +1 -1
- package/agent/useDefaultAgent.d.ts +6 -2
- package/agent/useDefaultAgent.d.ts.map +1 -1
- package/agent/useDefaultAgent.js +51 -31
- package/agent/useDefaultAgent.js.map +1 -1
- package/agent-instance/useAgentInstance.d.ts +2 -0
- package/agent-instance/useAgentInstance.d.ts.map +1 -1
- package/agent-instance/useAgentInstance.js +6 -33
- package/agent-instance/useAgentInstance.js.map +1 -1
- package/agent-instance/useAgentInstanceList.d.ts +2 -0
- package/agent-instance/useAgentInstanceList.d.ts.map +1 -1
- package/agent-instance/useAgentInstanceList.js +22 -40
- package/agent-instance/useAgentInstanceList.js.map +1 -1
- package/api-key/useApiKeyList.d.ts +2 -0
- package/api-key/useApiKeyList.d.ts.map +1 -1
- package/api-key/useApiKeyList.js +3 -27
- package/api-key/useApiKeyList.js.map +1 -1
- package/composer/ComposerToolbar.d.ts +1 -5
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +3 -4
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/ContextChip.d.ts +1 -1
- package/composer/ContextChip.d.ts.map +1 -1
- package/composer/ContextChip.js +1 -0
- package/composer/ContextChip.js.map +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +77 -4
- package/composer/SessionComposer.js.map +1 -1
- package/composer/icons.d.ts +1 -0
- package/composer/icons.d.ts.map +1 -1
- package/composer/icons.js +3 -0
- package/composer/icons.js.map +1 -1
- package/environment/useEnvironment.d.ts +2 -0
- package/environment/useEnvironment.d.ts.map +1 -1
- package/environment/useEnvironment.js +6 -33
- package/environment/useEnvironment.js.map +1 -1
- package/environment/useEnvironmentList.d.ts +2 -0
- package/environment/useEnvironmentList.d.ts.map +1 -1
- package/environment/useEnvironmentList.js +23 -53
- package/environment/useEnvironmentList.js.map +1 -1
- package/execution/ArtifactPreviewModal.js +1 -1
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/useArtifactContent.d.ts +4 -2
- package/execution/useArtifactContent.d.ts.map +1 -1
- package/execution/useArtifactContent.js +23 -45
- package/execution/useArtifactContent.js.map +1 -1
- package/iam-policy/usePrincipalsCount.d.ts +2 -0
- package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
- package/iam-policy/usePrincipalsCount.js +7 -46
- package/iam-policy/usePrincipalsCount.js.map +1 -1
- package/iam-policy/useResourceAccess.d.ts +2 -0
- package/iam-policy/useResourceAccess.d.ts.map +1 -1
- package/iam-policy/useResourceAccess.js +12 -47
- package/iam-policy/useResourceAccess.js.map +1 -1
- package/identity-provider/useIdentityProvider.d.ts +2 -0
- package/identity-provider/useIdentityProvider.d.ts.map +1 -1
- package/identity-provider/useIdentityProvider.js +3 -33
- package/identity-provider/useIdentityProvider.js.map +1 -1
- package/identity-provider/useIdentityProviderList.d.ts +2 -0
- package/identity-provider/useIdentityProviderList.d.ts.map +1 -1
- package/identity-provider/useIdentityProviderList.js +7 -33
- package/identity-provider/useIdentityProviderList.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/internal/__tests__/useFetch.test.d.ts +2 -0
- package/internal/__tests__/useFetch.test.d.ts.map +1 -0
- package/internal/__tests__/useFetch.test.js +95 -0
- package/internal/__tests__/useFetch.test.js.map +1 -0
- package/internal/useFetch.d.ts +51 -0
- package/internal/useFetch.d.ts.map +1 -0
- package/internal/useFetch.js +75 -0
- package/internal/useFetch.js.map +1 -0
- package/invitation/useInvitationPreview.d.ts +2 -0
- package/invitation/useInvitationPreview.d.ts.map +1 -1
- package/invitation/useInvitationPreview.js +5 -35
- package/invitation/useInvitationPreview.js.map +1 -1
- package/invitation/useOrgInvitations.d.ts +2 -0
- package/invitation/useOrgInvitations.d.ts.map +1 -1
- package/invitation/useOrgInvitations.js +6 -34
- package/invitation/useOrgInvitations.js.map +1 -1
- package/library/ResourceListView.d.ts +2 -2
- package/library/ResourceListView.d.ts.map +1 -1
- package/library/ResourceListView.js +1 -1
- package/library/ResourceListView.js.map +1 -1
- package/library/useDetectSkillPackage.d.ts +1 -1
- package/library/useDetectSkillPackage.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +1 -1
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/useMcpServer.d.ts +2 -0
- package/mcp-server/useMcpServer.d.ts.map +1 -1
- package/mcp-server/useMcpServer.js +13 -37
- package/mcp-server/useMcpServer.js.map +1 -1
- package/mcp-server/useMcpServerCount.d.ts +1 -1
- package/mcp-server/useMcpServerCount.d.ts.map +1 -1
- package/mcp-server/useMcpServerList.d.ts +2 -2
- package/mcp-server/useMcpServerList.d.ts.map +1 -1
- package/mcp-server/useOAuthGrantStatus.d.ts +2 -0
- package/mcp-server/useOAuthGrantStatus.d.ts.map +1 -1
- package/mcp-server/useOAuthGrantStatus.js +14 -61
- package/mcp-server/useOAuthGrantStatus.js.map +1 -1
- package/mcp-server/useOrgOAuthApp.d.ts +2 -0
- package/mcp-server/useOrgOAuthApp.d.ts.map +1 -1
- package/mcp-server/useOrgOAuthApp.js +19 -43
- package/mcp-server/useOrgOAuthApp.js.map +1 -1
- package/oauth-app/useOAuthAppList.d.ts +2 -0
- package/oauth-app/useOAuthAppList.d.ts.map +1 -1
- package/oauth-app/useOAuthAppList.js +6 -34
- package/oauth-app/useOAuthAppList.js.map +1 -1
- package/organization/useOrganization.d.ts +2 -0
- package/organization/useOrganization.d.ts.map +1 -1
- package/organization/useOrganization.js +3 -33
- package/organization/useOrganization.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/usePlatformClient.d.ts +2 -0
- package/platform-client/usePlatformClient.d.ts.map +1 -1
- package/platform-client/usePlatformClient.js +3 -33
- package/platform-client/usePlatformClient.js.map +1 -1
- package/platform-client/usePlatformClientList.d.ts +2 -0
- package/platform-client/usePlatformClientList.d.ts.map +1 -1
- package/platform-client/usePlatformClientList.js +6 -34
- package/platform-client/usePlatformClientList.js.map +1 -1
- package/runner/RunnerListPanel.d.ts.map +1 -1
- package/runner/RunnerListPanel.js +21 -5
- package/runner/RunnerListPanel.js.map +1 -1
- package/runner/__tests__/phase.test.d.ts +2 -0
- package/runner/__tests__/phase.test.d.ts.map +1 -0
- package/runner/__tests__/phase.test.js +33 -0
- package/runner/__tests__/phase.test.js.map +1 -0
- package/runner/__tests__/useRunnerList.test.d.ts +2 -0
- package/runner/__tests__/useRunnerList.test.d.ts.map +1 -0
- package/runner/__tests__/useRunnerList.test.js +68 -0
- package/runner/__tests__/useRunnerList.test.js.map +1 -0
- package/runner/index.d.ts +3 -1
- package/runner/index.d.ts.map +1 -1
- package/runner/index.js +2 -1
- package/runner/index.js.map +1 -1
- package/runner/phase.d.ts +13 -0
- package/runner/phase.d.ts.map +1 -1
- package/runner/phase.js +15 -0
- package/runner/phase.js.map +1 -1
- package/runner/useRunnerCredential.d.ts +66 -0
- package/runner/useRunnerCredential.d.ts.map +1 -0
- package/runner/useRunnerCredential.js +50 -0
- package/runner/useRunnerCredential.js.map +1 -0
- package/runner/useRunnerList.d.ts +21 -0
- package/runner/useRunnerList.d.ts.map +1 -1
- package/runner/useRunnerList.js +9 -36
- package/runner/useRunnerList.js.map +1 -1
- package/search/useResourceCount.d.ts +2 -1
- package/search/useResourceCount.d.ts.map +1 -1
- package/search/useResourceCount.js +13 -37
- package/search/useResourceCount.js.map +1 -1
- package/search/useResourceList.d.ts +2 -1
- package/search/useResourceList.d.ts.map +1 -1
- package/search/useResourceList.js +26 -46
- package/search/useResourceList.js.map +1 -1
- package/search/useResourceSearch.d.ts +4 -2
- package/search/useResourceSearch.d.ts.map +1 -1
- package/search/useResourceSearch.js +7 -27
- package/search/useResourceSearch.js.map +1 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +26 -1
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSession.d.ts +3 -1
- package/session/useSession.d.ts.map +1 -1
- package/session/useSession.js +3 -33
- package/session/useSession.js.map +1 -1
- package/session/useSessionExecutions.d.ts +3 -1
- package/session/useSessionExecutions.d.ts.map +1 -1
- package/session/useSessionExecutions.js +6 -34
- package/session/useSessionExecutions.js.map +1 -1
- package/session/useSessionList.d.ts +5 -3
- package/session/useSessionList.d.ts.map +1 -1
- package/session/useSessionList.js +9 -31
- package/session/useSessionList.js.map +1 -1
- package/skill/SkillPicker.js +1 -1
- package/skill/SkillPicker.js.map +1 -1
- package/skill/useSkill.d.ts +2 -0
- package/skill/useSkill.d.ts.map +1 -1
- package/skill/useSkill.js +13 -37
- package/skill/useSkill.js.map +1 -1
- package/skill/useSkillCount.d.ts +1 -1
- package/skill/useSkillCount.d.ts.map +1 -1
- package/skill/useSkillList.d.ts +2 -2
- package/skill/useSkillList.d.ts.map +1 -1
- package/src/agent/AgentPicker.tsx +1 -1
- package/src/agent/__tests__/useDefaultAgent.test.tsx +308 -0
- package/src/agent/useAgent.ts +19 -41
- package/src/agent/useAgentCount.ts +1 -1
- package/src/agent/useAgentList.ts +2 -2
- package/src/agent/useDefaultAgent.ts +67 -35
- package/src/agent-instance/useAgentInstance.ts +13 -37
- package/src/agent-instance/useAgentInstanceList.ts +31 -47
- package/src/api-key/useApiKeyList.ts +9 -32
- package/src/composer/ComposerToolbar.tsx +1 -22
- package/src/composer/ContextChip.tsx +2 -1
- package/src/composer/SessionComposer.tsx +206 -5
- package/src/composer/icons.tsx +27 -0
- package/src/environment/useEnvironment.ts +13 -37
- package/src/environment/useEnvironmentList.ts +31 -58
- package/src/execution/ArtifactPreviewModal.tsx +2 -2
- package/src/execution/useArtifactContent.ts +48 -65
- package/src/iam-policy/usePrincipalsCount.ts +17 -53
- package/src/iam-policy/useResourceAccess.ts +18 -55
- package/src/identity-provider/useIdentityProvider.ts +9 -39
- package/src/identity-provider/useIdentityProviderList.ts +14 -40
- package/src/index.ts +4 -0
- package/src/internal/__tests__/useFetch.test.ts +133 -0
- package/src/internal/useFetch.ts +121 -0
- package/src/invitation/useInvitationPreview.ts +14 -40
- package/src/invitation/useOrgInvitations.ts +15 -41
- package/src/library/ResourceListView.tsx +3 -3
- package/src/library/useDetectSkillPackage.ts +1 -1
- package/src/mcp-server/McpServerPicker.tsx +1 -1
- package/src/mcp-server/useMcpServer.ts +17 -42
- package/src/mcp-server/useMcpServerCount.ts +1 -1
- package/src/mcp-server/useMcpServerList.ts +2 -2
- package/src/mcp-server/useOAuthGrantStatus.ts +31 -69
- package/src/mcp-server/useOrgOAuthApp.ts +34 -51
- package/src/oauth-app/useOAuthAppList.ts +15 -41
- package/src/organization/useOrganization.ts +9 -38
- package/src/platform-client/usePlatformClient.ts +9 -39
- package/src/platform-client/usePlatformClientList.ts +14 -42
- package/src/runner/RunnerListPanel.tsx +49 -41
- package/src/runner/__tests__/phase.test.ts +35 -0
- package/src/runner/__tests__/useRunnerList.test.tsx +96 -0
- package/src/runner/index.ts +7 -0
- package/src/runner/phase.ts +16 -0
- package/src/runner/useRunnerCredential.ts +89 -0
- package/src/runner/useRunnerList.ts +36 -44
- package/src/search/useResourceCount.ts +20 -48
- package/src/search/useResourceList.ts +40 -57
- package/src/search/useResourceSearch.ts +22 -43
- package/src/session/useNewSessionFlow.ts +35 -1
- package/src/session/useSession.ts +10 -39
- package/src/session/useSessionExecutions.ts +20 -46
- package/src/session/useSessionList.ts +21 -42
- package/src/skill/SkillPicker.tsx +1 -1
- package/src/skill/useSkill.ts +17 -42
- package/src/skill/useSkillCount.ts +1 -1
- package/src/skill/useSkillList.ts +2 -2
- package/src/usage/useOrgUsageReport.ts +18 -46
- package/styles.css +1 -1
- package/usage/useOrgUsageReport.d.ts +2 -0
- package/usage/useOrgUsageReport.d.ts.map +1 -1
- package/usage/useOrgUsageReport.js +5 -35
- 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 {
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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;
|
|
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,
|
|
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 {
|
|
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 {
|
|
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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,
|
|
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":"
|
|
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"}
|
package/api-key/useApiKeyList.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useCallback, useEffect, useState } from "react";
|
|
3
2
|
import { useStigmer } from "../hooks";
|
|
4
|
-
import {
|
|
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
|
|
27
|
-
|
|
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;
|
|
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,
|
|
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;
|
|
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,
|
|
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 =
|
|
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" })),
|
|
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":"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,
|
|
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;
|
|
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"}
|
package/composer/ContextChip.js
CHANGED
|
@@ -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":"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;
|
|
1
|
+
{"version":3,"file":"SessionComposer.d.ts","sourceRoot":"","sources":["../../src/composer/SessionComposer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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 {
|
|
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,
|
|
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
|