@game_ryo/lsji 1.0.0 → 1.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/LICENSE +21 -185
- package/README.md +3 -3
- package/package.json +2 -2
- package/src/cli.js +3 -3
- package/src/core/qlearning.js +5 -1
- package/src/execution/budget/circuit-breaker.js +4 -1
- package/src/execution/budget/cost-tracker.js +40 -5
- package/src/execution/engine.js +4 -2
- package/src/execution/idempotency.js +49 -28
- package/src/index.js +1 -0
- package/src/llm/index.js +2 -1
- package/src/llm/providers/base.js +4 -0
- package/src/llm/providers/gemini.js +323 -0
- package/src/llm/tools/registry.js +5 -2
- package/src/server/ui/dist/assets/{main-DDUT9zbA.js → main-Dfki4A3Q.js} +8 -8
- package/src/server/ui/dist/index.html +1 -1
- package/src/server/ui/src/components/NewRunModal.jsx +59 -9
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
9
9
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0d1117; color: #e6edf3; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="/assets/main-
|
|
11
|
+
<script type="module" crossorigin src="/assets/main-Dfki4A3Q.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/main-DNMVBaZA.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
@@ -1,15 +1,61 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
// Model definitions per provider (as of 2024)
|
|
4
|
+
const MODELS_BY_PROVIDER = {
|
|
5
|
+
openai: [
|
|
6
|
+
{ value: 'gpt-4o', label: 'GPT-4o (Latest)' },
|
|
7
|
+
{ value: 'gpt-4o-mini', label: 'GPT-4o Mini' },
|
|
8
|
+
{ value: 'gpt-4-turbo', label: 'GPT-4 Turbo' },
|
|
9
|
+
{ value: 'gpt-4', label: 'GPT-4' },
|
|
10
|
+
{ value: 'gpt-3.5-turbo', label: 'GPT-3.5 Turbo' },
|
|
11
|
+
],
|
|
12
|
+
anthropic: [
|
|
13
|
+
{ value: 'claude-3-5-sonnet-20241022', label: 'Claude 3.5 Sonnet (Latest)' },
|
|
14
|
+
{ value: 'claude-3-5-haiku-20241022', label: 'Claude 3.5 Haiku' },
|
|
15
|
+
{ value: 'claude-3-opus-20240229', label: 'Claude 3 Opus' },
|
|
16
|
+
{ value: 'claude-3-sonnet-20240229', label: 'Claude 3 Sonnet' },
|
|
17
|
+
{ value: 'claude-3-haiku-20240307', label: 'Claude 3 Haiku' },
|
|
18
|
+
],
|
|
19
|
+
gemini: [
|
|
20
|
+
{ value: 'gemini-1.5-pro', label: 'Gemini 1.5 Pro' },
|
|
21
|
+
{ value: 'gemini-1.5-flash', label: 'Gemini 1.5 Flash (Default)' },
|
|
22
|
+
{ value: 'gemini-1.5-flash-8b', label: 'Gemini 1.5 Flash-8B' },
|
|
23
|
+
{ value: 'gemini-2.0-flash-exp', label: 'Gemini 2.0 Flash (Experimental)' },
|
|
24
|
+
{ value: 'gemini-2.0-flash-thinking-exp', label: 'Gemini 2.0 Flash Thinking (Experimental)' },
|
|
25
|
+
],
|
|
26
|
+
local: [
|
|
27
|
+
{ value: 'llama3.2', label: 'Llama 3.2' },
|
|
28
|
+
{ value: 'llama3.1', label: 'Llama 3.1' },
|
|
29
|
+
{ value: 'mistral', label: 'Mistral' },
|
|
30
|
+
{ value: 'codellama', label: 'Code Llama' },
|
|
31
|
+
{ value: 'qwen2.5', label: 'Qwen 2.5' },
|
|
32
|
+
{ value: 'phi3.5', label: 'Phi 3.5' },
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Default models per provider
|
|
37
|
+
const DEFAULT_MODELS = {
|
|
38
|
+
openai: 'gpt-4o-mini',
|
|
39
|
+
anthropic: 'claude-3-5-sonnet-20241022',
|
|
40
|
+
gemini: 'gemini-1.5-flash',
|
|
41
|
+
local: 'llama3.2',
|
|
42
|
+
};
|
|
2
43
|
|
|
3
44
|
function NewRunModal({ onClose, onStart }) {
|
|
4
45
|
const [task, setTask] = useState('');
|
|
5
46
|
const [workflowId, setWorkflowId] = useState('');
|
|
6
|
-
const [provider, setProvider] = useState('
|
|
7
|
-
const [model, setModel] = useState(
|
|
47
|
+
const [provider, setProvider] = useState('gemini'); // Default to Gemini
|
|
48
|
+
const [model, setModel] = useState(DEFAULT_MODELS.gemini);
|
|
8
49
|
const [maxCost, setMaxCost] = useState(10);
|
|
9
50
|
const [maxTokens, setMaxTokens] = useState(100000);
|
|
10
51
|
const [hitlEnabled, setHitlEnabled] = useState(true);
|
|
11
52
|
const [submitting, setSubmitting] = useState(false);
|
|
12
53
|
|
|
54
|
+
// Update model when provider changes
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
setModel(DEFAULT_MODELS[provider] || DEFAULT_MODELS.gemini);
|
|
57
|
+
}, [provider]);
|
|
58
|
+
|
|
13
59
|
const handleSubmit = async (e) => {
|
|
14
60
|
e.preventDefault();
|
|
15
61
|
if (!task.trim()) return;
|
|
@@ -28,6 +74,8 @@ function NewRunModal({ onClose, onStart }) {
|
|
|
28
74
|
}
|
|
29
75
|
};
|
|
30
76
|
|
|
77
|
+
const currentModels = MODELS_BY_PROVIDER[provider] || MODELS_BY_PROVIDER.gemini;
|
|
78
|
+
|
|
31
79
|
return (
|
|
32
80
|
<div className="modal-overlay" onClick={onClose}>
|
|
33
81
|
<div className="modal" onClick={e => e.stopPropagation()}>
|
|
@@ -59,6 +107,7 @@ function NewRunModal({ onClose, onStart }) {
|
|
|
59
107
|
<div className="form-group">
|
|
60
108
|
<label className="form-label">LLM Provider</label>
|
|
61
109
|
<select className="form-select" value={provider} onChange={(e) => setProvider(e.target.value)}>
|
|
110
|
+
<option value="gemini">Google Gemini</option>
|
|
62
111
|
<option value="openai">OpenAI</option>
|
|
63
112
|
<option value="anthropic">Anthropic</option>
|
|
64
113
|
<option value="local">Local (Ollama)</option>
|
|
@@ -66,12 +115,13 @@ function NewRunModal({ onClose, onStart }) {
|
|
|
66
115
|
</div>
|
|
67
116
|
<div className="form-group">
|
|
68
117
|
<label className="form-label">Model</label>
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
118
|
+
<select className="form-select" value={model} onChange={(e) => setModel(e.target.value)}>
|
|
119
|
+
{currentModels.map(m => (
|
|
120
|
+
<option key={m.value} value={m.value}>
|
|
121
|
+
{m.label}
|
|
122
|
+
</option>
|
|
123
|
+
))}
|
|
124
|
+
</select>
|
|
75
125
|
</div>
|
|
76
126
|
</div>
|
|
77
127
|
|