wuhp commited on
Commit
e6aea16
·
verified ·
1 Parent(s): 4f07011

Update src/App.tsx

Browse files
Files changed (1) hide show
  1. src/App.tsx +29 -20
src/App.tsx CHANGED
@@ -630,7 +630,6 @@ function PayloadsTab() {
630
  function BuilderTab() {
631
  const [prompt, setPrompt] = useState('');
632
  const [mode, setMode] = useState<'payload' | 'packets' | 'manual' | 'dragdrop'>('dragdrop');
633
- const [aiModel, setAiModel] = useState<'2.5' | '3.0'>('2.5');
634
  const [loading, setLoading] = useState(false);
635
  const [result, setResult] = useState('');
636
  const [errorMsg, setErrorMsg] = useState('');
@@ -687,7 +686,7 @@ function BuilderTab() {
687
  setErrorMsg('');
688
  try {
689
  let endpoint = '/api/ai/generate-payload';
690
- let body: any = { prompt, model: aiModel };
691
 
692
  if (mode === 'packets') endpoint = '/api/ai/generate-packets';
693
 
@@ -712,7 +711,7 @@ function BuilderTab() {
712
  const res = await fetch('/api/ai/analyze-reports', {
713
  method: 'POST',
714
  headers: { 'Content-Type': 'application/json' },
715
- body: JSON.stringify({ model: aiModel })
716
  });
717
  const data = await res.json();
718
  if (data.error) setErrorMsg(data.error);
@@ -791,20 +790,6 @@ function BuilderTab() {
791
  <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
792
  <Card title="AI Input / Configuration" icon={<Cpu size={18} />}>
793
  <div className="flex flex-col gap-4">
794
- <div className="flex bg-black/20 rounded-lg p-1">
795
- <button
796
- onClick={() => setAiModel('2.5')}
797
- className={cn("flex-1 py-1.5 text-sm rounded-md transition-all font-medium", aiModel === '2.5' ? "bg-slate-700 text-white" : "text-slate-400 hover:text-slate-200")}
798
- >
799
- Gemini 2.5
800
- </button>
801
- <button
802
- onClick={() => setAiModel('3.0')}
803
- className={cn("flex-1 py-1.5 text-sm rounded-md transition-all font-medium", aiModel === '3.0' ? "bg-slate-700 text-white" : "text-slate-400 hover:text-slate-200")}
804
- >
805
- Gemini 3.0
806
- </button>
807
- </div>
808
  <div className="flex bg-black/20 rounded-lg p-1 mt-2">
809
  <button
810
  onClick={() => setMode('payload')}
@@ -1063,14 +1048,21 @@ function SettingsTab() {
1063
  const [hfToken, setHfToken] = useState('');
1064
  const [ghToken, setGhToken] = useState('');
1065
  const [geminiToken, setGeminiToken] = useState('');
 
1066
  const [status, setStatus] = useState('');
1067
 
 
 
 
 
 
 
1068
  const handleSave = async () => {
1069
  try {
1070
  const res = await fetch('/api/tokens', {
1071
  method: 'POST',
1072
  headers: { 'Content-Type': 'application/json' },
1073
- body: JSON.stringify({ hf_token: hfToken, github_token: ghToken, gemini_token: geminiToken })
1074
  });
1075
  const data = await res.json();
1076
  setStatus(data.message || 'Saved securely to in-memory state.');
@@ -1092,6 +1084,23 @@ function SettingsTab() {
1092
 
1093
  <Card title="API Tokens" icon={<ShieldCheck size={18} />}>
1094
  <div className="flex flex-col gap-4">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1095
  <div>
1096
  <label className="block text-sm font-medium text-slate-400 mb-1.5 px-1">Hugging Face Token</label>
1097
  <input
@@ -1187,8 +1196,8 @@ function DeployTab() {
1187
  onClick={() => setProvider('github')}
1188
  className={cn("p-4 rounded-2xl border transition-all text-left", provider === 'github' ? "glass border-indigo-500/50" : "bg-black/20 border-white/5 hover:border-white/10")}
1189
  >
1190
- <h3 className="font-semibold text-white">GitHub Pages</h3>
1191
- <p className="text-xs text-slate-400 mt-1">Deploy JS background clients to GH Repos.</p>
1192
  </button>
1193
  </div>
1194
 
 
630
  function BuilderTab() {
631
  const [prompt, setPrompt] = useState('');
632
  const [mode, setMode] = useState<'payload' | 'packets' | 'manual' | 'dragdrop'>('dragdrop');
 
633
  const [loading, setLoading] = useState(false);
634
  const [result, setResult] = useState('');
635
  const [errorMsg, setErrorMsg] = useState('');
 
686
  setErrorMsg('');
687
  try {
688
  let endpoint = '/api/ai/generate-payload';
689
+ let body: any = { prompt };
690
 
691
  if (mode === 'packets') endpoint = '/api/ai/generate-packets';
692
 
 
711
  const res = await fetch('/api/ai/analyze-reports', {
712
  method: 'POST',
713
  headers: { 'Content-Type': 'application/json' },
714
+ body: JSON.stringify({})
715
  });
716
  const data = await res.json();
717
  if (data.error) setErrorMsg(data.error);
 
790
  <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
791
  <Card title="AI Input / Configuration" icon={<Cpu size={18} />}>
792
  <div className="flex flex-col gap-4">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
  <div className="flex bg-black/20 rounded-lg p-1 mt-2">
794
  <button
795
  onClick={() => setMode('payload')}
 
1048
  const [hfToken, setHfToken] = useState('');
1049
  const [ghToken, setGhToken] = useState('');
1050
  const [geminiToken, setGeminiToken] = useState('');
1051
+ const [geminiModel, setGeminiModel] = useState<'2.5' | '3.0'>('2.5');
1052
  const [status, setStatus] = useState('');
1053
 
1054
+ useEffect(() => {
1055
+ fetch('/api/tokens/status').then(res => res.json()).then(data => {
1056
+ if (data.gemini_model) setGeminiModel(data.gemini_model);
1057
+ }).catch(()=>{});
1058
+ }, []);
1059
+
1060
  const handleSave = async () => {
1061
  try {
1062
  const res = await fetch('/api/tokens', {
1063
  method: 'POST',
1064
  headers: { 'Content-Type': 'application/json' },
1065
+ body: JSON.stringify({ hf_token: hfToken, github_token: ghToken, gemini_token: geminiToken, gemini_model: geminiModel })
1066
  });
1067
  const data = await res.json();
1068
  setStatus(data.message || 'Saved securely to in-memory state.');
 
1084
 
1085
  <Card title="API Tokens" icon={<ShieldCheck size={18} />}>
1086
  <div className="flex flex-col gap-4">
1087
+ <div>
1088
+ <label className="block text-sm font-medium text-slate-400 mb-1.5 px-1">Gemini AI Model Generation Version</label>
1089
+ <div className="flex bg-black/20 border border-white/10 rounded-xl p-1 w-full gap-1">
1090
+ <button
1091
+ onClick={() => setGeminiModel('2.5')}
1092
+ className={cn("flex-1 py-2 text-sm rounded-lg transition-all font-medium", geminiModel === '2.5' ? "bg-indigo-500 text-white shadow-md shadow-indigo-500/20" : "text-slate-400 hover:text-slate-200")}
1093
+ >
1094
+ Gemini 2.5 Pro
1095
+ </button>
1096
+ <button
1097
+ onClick={() => setGeminiModel('3.0')}
1098
+ className={cn("flex-1 py-2 text-sm rounded-lg transition-all font-medium", geminiModel === '3.0' ? "bg-indigo-500 text-white shadow-md shadow-indigo-500/20" : "text-slate-400 hover:text-slate-200")}
1099
+ >
1100
+ Gemini 3.0 Pro
1101
+ </button>
1102
+ </div>
1103
+ </div>
1104
  <div>
1105
  <label className="block text-sm font-medium text-slate-400 mb-1.5 px-1">Hugging Face Token</label>
1106
  <input
 
1196
  onClick={() => setProvider('github')}
1197
  className={cn("p-4 rounded-2xl border transition-all text-left", provider === 'github' ? "glass border-indigo-500/50" : "bg-black/20 border-white/5 hover:border-white/10")}
1198
  >
1199
+ <h3 className="font-semibold text-white">GitHub Actions</h3>
1200
+ <p className="text-xs text-slate-400 mt-1">Deploy Python background clients to GH Repos.</p>
1201
  </button>
1202
  </div>
1203