fix(team): resolve TypeScript errors in team collaboration module
- Remove unused imports and variables in Team components - Fix CollaborationEvent type import in useTeamEvents - Add proper type guards for Hand status in gatewayStore - Fix Session status type compatibility in gateway-client - Remove unused getGatewayClient import from teamStore - Handle unknown payload types in TeamCollaborationView Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1039,17 +1039,23 @@ export const useGatewayStore = create<GatewayStore>((set, get) => {
|
||||
try {
|
||||
const result = await get().client.listHands();
|
||||
// Map API response to Hand interface
|
||||
const hands: Hand[] = (result?.hands || []).map(h => ({
|
||||
id: h.id || h.name,
|
||||
name: h.name,
|
||||
description: h.description || '',
|
||||
status: h.status || (h.requirements_met ? 'idle' : 'setup_needed'),
|
||||
requirements_met: h.requirements_met,
|
||||
category: h.category,
|
||||
icon: h.icon,
|
||||
toolCount: h.tool_count || h.tools?.length,
|
||||
metricCount: h.metric_count || h.metrics?.length,
|
||||
}));
|
||||
const validStatuses = ['idle', 'running', 'needs_approval', 'error', 'unavailable', 'setup_needed'] as const;
|
||||
const hands: Hand[] = (result?.hands || []).map(h => {
|
||||
const status = validStatuses.includes(h.status as any)
|
||||
? h.status as Hand['status']
|
||||
: (h.requirements_met ? 'idle' : 'setup_needed');
|
||||
return {
|
||||
id: h.id || h.name,
|
||||
name: h.name,
|
||||
description: h.description || '',
|
||||
status,
|
||||
requirements_met: h.requirements_met,
|
||||
category: h.category,
|
||||
icon: h.icon,
|
||||
toolCount: h.tool_count || h.tools?.length,
|
||||
metricCount: h.metric_count || h.metrics?.length,
|
||||
};
|
||||
});
|
||||
set({ hands, isLoading: false });
|
||||
} catch {
|
||||
set({ isLoading: false });
|
||||
@@ -1062,24 +1068,39 @@ export const useGatewayStore = create<GatewayStore>((set, get) => {
|
||||
const result = await get().client.getHand(name);
|
||||
if (!result) return undefined;
|
||||
|
||||
// Helper to extract string from unknown config
|
||||
const getStringFromConfig = (key: string): string | undefined => {
|
||||
const val = result.config?.[key];
|
||||
return typeof val === 'string' ? val : undefined;
|
||||
};
|
||||
const getArrayFromConfig = (key: string): string[] | undefined => {
|
||||
const val = result.config?.[key];
|
||||
return Array.isArray(val) ? val : undefined;
|
||||
};
|
||||
|
||||
const validStatuses = ['idle', 'running', 'needs_approval', 'error', 'unavailable', 'setup_needed'] as const;
|
||||
const status = validStatuses.includes(result.status as any)
|
||||
? result.status as Hand['status']
|
||||
: (result.requirements_met ? 'idle' : 'setup_needed');
|
||||
|
||||
// Map API response to extended Hand interface
|
||||
const hand: Hand = {
|
||||
id: result.id || result.name || name,
|
||||
name: result.name || name,
|
||||
description: result.description || '',
|
||||
status: result.status || (result.requirements_met ? 'idle' : 'setup_needed'),
|
||||
status,
|
||||
requirements_met: result.requirements_met,
|
||||
category: result.category,
|
||||
icon: result.icon,
|
||||
provider: result.provider || result.config?.provider,
|
||||
model: result.model || result.config?.model,
|
||||
provider: result.provider || getStringFromConfig('provider'),
|
||||
model: result.model || getStringFromConfig('model'),
|
||||
requirements: result.requirements?.map((r: any) => ({
|
||||
description: r.description || r.name || String(r),
|
||||
met: r.met ?? r.satisfied ?? true,
|
||||
details: r.details || r.hint,
|
||||
})),
|
||||
tools: result.tools || result.config?.tools,
|
||||
metrics: result.metrics || result.config?.metrics,
|
||||
tools: result.tools || getArrayFromConfig('tools'),
|
||||
metrics: result.metrics || getArrayFromConfig('metrics'),
|
||||
toolCount: result.tool_count || result.tools?.length || 0,
|
||||
metricCount: result.metric_count || result.metrics?.length || 0,
|
||||
};
|
||||
@@ -1119,7 +1140,7 @@ export const useGatewayStore = create<GatewayStore>((set, get) => {
|
||||
triggerHand: async (name: string, params?: Record<string, unknown>) => {
|
||||
try {
|
||||
const result = await get().client.triggerHand(name, params);
|
||||
return result ? { runId: result.runId, status: result.status } : undefined;
|
||||
return result ? { runId: result.runId, status: result.status, startedAt: new Date().toISOString() } : undefined;
|
||||
} catch (err: any) {
|
||||
set({ error: err.message });
|
||||
return undefined;
|
||||
@@ -1446,7 +1467,7 @@ export const useGatewayStore = create<GatewayStore>((set, get) => {
|
||||
agentId: result.agent_id,
|
||||
createdAt: result.created_at,
|
||||
status: 'active',
|
||||
metadata: result.metadata,
|
||||
metadata: metadata,
|
||||
};
|
||||
set(state => ({ sessions: [...state.sessions, session] }));
|
||||
return session;
|
||||
|
||||
Reference in New Issue
Block a user