-
Notifications
You must be signed in to change notification settings - Fork 1k
Expand file tree
/
Copy pathstore.tsx
More file actions
96 lines (91 loc) · 2.78 KB
/
Copy pathstore.tsx
File metadata and controls
96 lines (91 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import { create } from "zustand";
import { DEFAULT_OPENAI } from "./settings/tabs/agentSettings/modelSelector/modelConfigForms/OpenAIModelConfigForm";
import { PROVIDER_FORM_MAP } from "./settings/tabs/agentSettings/modelSelector/ModelSelector";
export interface GeneralConfig {
cooperative_planning: boolean;
autonomous_execution: boolean;
allowed_websites?: string[];
max_actions_per_step: number;
multiple_tools_per_call: boolean;
max_turns: number;
plan?: {
task: string;
steps: any[];
plan_summary: string;
};
approval_policy: "always" | "never" | "auto-conservative" | "auto-permissive";
allow_for_replans: boolean;
do_bing_search: boolean;
websurfer_loop: boolean;
run_without_docker: boolean;
browser_headless: boolean;
model_client_configs: {orchestrator: any, web_surfer: any, coder: any, file_surfer: any, action_guard: any};
mcp_agent_configs: any[];
retrieve_relevant_plans: "never" | "hint" | "reuse"; // this is for using task centric memory to retrieve relevant plans
server_url: string; // Optional server URL for VNC/live view
}
const defaultConfig: GeneralConfig = {
cooperative_planning: true,
autonomous_execution: false,
max_actions_per_step: 5,
multiple_tools_per_call: false,
max_turns: 20,
approval_policy: "auto-conservative",
allow_for_replans: true,
do_bing_search: false,
websurfer_loop: false,
retrieve_relevant_plans: "never",
server_url: "localhost",
mcp_agent_configs: [],
run_without_docker: false,
browser_headless: true,
model_client_configs: {
"orchestrator": DEFAULT_OPENAI,
"web_surfer": DEFAULT_OPENAI,
"coder": DEFAULT_OPENAI,
"file_surfer": DEFAULT_OPENAI,
"action_guard": PROVIDER_FORM_MAP[DEFAULT_OPENAI.provider].presets["gpt-4.1-nano-2025-04-14"],
},
};
interface SettingsState {
config: GeneralConfig;
updateConfig: (update: Partial<GeneralConfig>) => void;
resetToDefaults: () => void;
}
export const useSettingsStore = create<SettingsState>()((set) => ({
config: defaultConfig,
updateConfig: (update) =>
set((state) => ({
config: { ...state.config, ...update },
})),
resetToDefaults: () => set({ config: defaultConfig }),
}));
export function generateOpenAIModelConfig(model: string) {
return `model_client_configs:
orchestrator:
provider: OpenAIChatCompletionClient
config:
model: ${model}
max_retries: 5
coder:
provider: OpenAIChatCompletionClient
config:
model: ${model}
max_retries: 5
web_surfer:
provider: OpenAIChatCompletionClient
config:
model: ${model}
max_retries: 5
file_surfer:
provider: OpenAIChatCompletionClient
config:
model: ${model}
max_retries: 5
action_guard:
provider: OpenAIChatCompletionClient
config:
model: ${model}
max_retries: 5
`;
}