Skip to content

Commit dc9f610

Browse files
Non-Strands frameworks dont have memory in flow (#34)
1 parent d351bf0 commit dc9f610

1 file changed

Lines changed: 41 additions & 20 deletions

File tree

src/cli/tui/screens/generate/useGenerateWizard.ts

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ export function useGenerateWizard(options?: UseGenerateWizardOptions) {
2929
}));
3030
const [error, setError] = useState<string | null>(null);
3131

32-
// Steps depend on model provider and whether we have an initial name
33-
// Filter out apiKey for Bedrock, and projectName if we have initialName
32+
// Steps depend on SDK, model provider, and whether we have an initial name
33+
// Filter out: projectName if initialName, apiKey for Bedrock, memory for non-Strands SDKs
3434
const steps = useMemo(() => {
3535
let filtered = BASE_GENERATE_STEPS;
3636
if (hasInitialName) {
@@ -39,8 +39,11 @@ export function useGenerateWizard(options?: UseGenerateWizardOptions) {
3939
if (config.modelProvider === 'Bedrock') {
4040
filtered = filtered.filter(s => s !== 'apiKey');
4141
}
42+
if (config.sdk !== 'Strands') {
43+
filtered = filtered.filter(s => s !== 'memory');
44+
}
4245
return filtered;
43-
}, [config.modelProvider, hasInitialName]);
46+
}, [config.modelProvider, config.sdk, hasInitialName]);
4447

4548
const currentIndex = steps.indexOf(step);
4649

@@ -67,29 +70,47 @@ export function useGenerateWizard(options?: UseGenerateWizardOptions) {
6770
const supportedProviders = getModelProviderOptionsForSdk(sdk);
6871
const isCurrentProviderSupported = supportedProviders.some(p => p.id === c.modelProvider);
6972
const newModelProvider = isCurrentProviderSupported ? c.modelProvider : (supportedProviders[0]?.id ?? 'Bedrock');
70-
return { ...c, sdk, modelProvider: newModelProvider };
73+
// Reset memory to 'none' for non-Strands SDKs
74+
const newMemory = sdk === 'Strands' ? c.memory : 'none';
75+
return { ...c, sdk, modelProvider: newModelProvider, memory: newMemory };
7176
});
7277
setStep('modelProvider');
7378
}, []);
7479

75-
const setModelProvider = useCallback((modelProvider: GenerateConfig['modelProvider']) => {
76-
setConfig(c => ({ ...c, modelProvider }));
77-
// Non-Bedrock providers need API key step
78-
if (modelProvider !== 'Bedrock') {
79-
setStep('apiKey');
80-
} else {
81-
setStep('memory');
82-
}
83-
}, []);
84-
85-
const setApiKey = useCallback((apiKey: string | undefined) => {
86-
setConfig(c => ({ ...c, apiKey }));
87-
setStep('memory');
88-
}, []);
80+
const setModelProvider = useCallback(
81+
(modelProvider: GenerateConfig['modelProvider']) => {
82+
setConfig(c => ({ ...c, modelProvider }));
83+
// Non-Bedrock providers need API key step
84+
if (modelProvider !== 'Bedrock') {
85+
setStep('apiKey');
86+
} else if (config.sdk === 'Strands') {
87+
setStep('memory');
88+
} else {
89+
setStep('confirm');
90+
}
91+
},
92+
[config.sdk]
93+
);
94+
95+
const setApiKey = useCallback(
96+
(apiKey: string | undefined) => {
97+
setConfig(c => ({ ...c, apiKey }));
98+
if (config.sdk === 'Strands') {
99+
setStep('memory');
100+
} else {
101+
setStep('confirm');
102+
}
103+
},
104+
[config.sdk]
105+
);
89106

90107
const skipApiKey = useCallback(() => {
91-
setStep('memory');
92-
}, []);
108+
if (config.sdk === 'Strands') {
109+
setStep('memory');
110+
} else {
111+
setStep('confirm');
112+
}
113+
}, [config.sdk]);
93114

94115
const setMemory = useCallback((memory: MemoryOption) => {
95116
setConfig(c => ({ ...c, memory }));

0 commit comments

Comments
 (0)