sandboxy 0.0.5__tar.gz → 0.0.6__tar.gz
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.
- {sandboxy-0.0.5 → sandboxy-0.0.6}/PKG-INFO +1 -1
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/App.tsx +2 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/DashboardPage.tsx +14 -7
- sandboxy-0.0.6/local-ui/src/pages/ScenarioDetailPage.tsx +664 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/pyproject.toml +1 -1
- sandboxy-0.0.6/sandboxy/ui/dist/assets/index-BZFjoK-_.js +377 -0
- sandboxy-0.0.6/sandboxy/ui/dist/assets/index-Qf7gGJk_.css +1 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/ui/dist/index.html +2 -2
- sandboxy-0.0.5/sandboxy/ui/dist/assets/index-CLxxjJuD.js +0 -367
- sandboxy-0.0.5/sandboxy/ui/dist/assets/index-DBB7ehs6.css +0 -1
- {sandboxy-0.0.5 → sandboxy-0.0.6}/.env.example +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/.github/workflows/ci.yml +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/.github/workflows/publish.yml +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/.gitignore +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/CONTRIBUTING.md +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/LICENSE +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/Makefile +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/README.md +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/docs/yaml-tools.md +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/index.html +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/package-lock.json +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/package.json +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/postcss.config.js +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/components/Layout.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/components/ModelSelector.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/components/ResultDisplay.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/hooks/useScenarioBuilder.ts +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/hooks/useScenarioRun.ts +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/hooks/useToolBuilder.ts +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/index.css +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/lib/api.ts +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/main.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/BuilderPage.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/DatasetPage.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/ResultsPage.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/RunPage.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/src/pages/ToolBuilderPage.tsx +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/tailwind.config.js +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/tsconfig.json +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/tsconfig.node.json +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/local-ui/vite.config.ts +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/agents/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/agents/base.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/agents/llm_prompt.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/agents/loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/app.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/routes/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/routes/agents.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/routes/local.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/routes/providers.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/api/routes/tools.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/cli/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/cli/main.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/cli/type_detector.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/config.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/async_runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/mdl_parser.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/safe_eval.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/core/state.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/datasets/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/datasets/loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/datasets/runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/errors.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/local/context.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/local/results.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/logging.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mcp/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mcp/client.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mcp/wrapper.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/artifacts.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/config.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/exporter.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/metrics.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/tags.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/mlflow/tracing.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/anthropic_provider.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/base.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/config.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/http_client.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/local.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/openai_provider.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/openrouter.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/providers/registry.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/scenarios/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/scenarios/comparison.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/scenarios/loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/scenarios/runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/scenarios/unified.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/session/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/session/manager.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/tools/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/tools/base.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/tools/loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/tools/yaml_tools.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/ui/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/utils/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/sandboxy/utils/time.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/scenarios/customer_service.yml +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/conftest.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/factories.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/integration/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/integration/api/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/integration/test_mlflow_integration.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/mocks/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/mocks/providers.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/agents/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/agents/test_base.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/agents/test_llm_prompt.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/agents/test_loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/test_async_runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/test_mdl_parser.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/test_runner.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/test_safe_eval.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/core/test_state.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/mlflow/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/mlflow/test_artifacts.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/mlflow/test_config.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/mlflow/test_metrics.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/mlflow/test_tags.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/providers/test_openrouter.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/tools/__init__.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/tools/test_base.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/tests/unit/tools/test_loader.py +0 -0
- {sandboxy-0.0.5 → sandboxy-0.0.6}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sandboxy
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.6
|
|
4
4
|
Summary: Open-source agent simulation and benchmarking platform
|
|
5
5
|
Project-URL: Homepage, https://github.com/sandboxy-ai/sandboxy
|
|
6
6
|
Project-URL: Repository, https://github.com/sandboxy-ai/sandboxy
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Routes, Route } from 'react-router-dom'
|
|
2
2
|
import Layout from './components/Layout'
|
|
3
3
|
import DashboardPage from './pages/DashboardPage'
|
|
4
|
+
import ScenarioDetailPage from './pages/ScenarioDetailPage'
|
|
4
5
|
import RunPage from './pages/RunPage'
|
|
5
6
|
import ResultsPage from './pages/ResultsPage'
|
|
6
7
|
import BuilderPage from './pages/BuilderPage'
|
|
@@ -12,6 +13,7 @@ function App() {
|
|
|
12
13
|
<Routes>
|
|
13
14
|
<Route path="/" element={<Layout />}>
|
|
14
15
|
<Route index element={<DashboardPage />} />
|
|
16
|
+
<Route path="scenario/:scenarioId" element={<ScenarioDetailPage />} />
|
|
15
17
|
<Route path="run/:scenarioId" element={<RunPage />} />
|
|
16
18
|
<Route path="run" element={<RunPage />} />
|
|
17
19
|
<Route path="results" element={<ResultsPage />} />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react'
|
|
2
2
|
import { Link } from 'react-router-dom'
|
|
3
|
-
import { Play, FileCode, Wrench, Server, Plus, RefreshCw, Trash2, CheckCircle, XCircle, AlertCircle } from 'lucide-react'
|
|
3
|
+
import { Play, FileCode, Wrench, Server, Plus, RefreshCw, Trash2, CheckCircle, XCircle, AlertCircle, ChevronRight } from 'lucide-react'
|
|
4
4
|
import { api, ProviderSummary, AddProviderRequest } from '../lib/api'
|
|
5
5
|
|
|
6
6
|
interface LocalFile {
|
|
@@ -183,13 +183,20 @@ export default function DashboardPage() {
|
|
|
183
183
|
{status.scenarios.map((scenario) => (
|
|
184
184
|
<div
|
|
185
185
|
key={scenario.id}
|
|
186
|
-
className="panel-card p-4"
|
|
186
|
+
className="panel-card p-4 hover:border-slate-600 transition-colors"
|
|
187
187
|
>
|
|
188
|
-
<
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
<Link to={`/scenario/${scenario.id}`} className="block mb-3">
|
|
189
|
+
<div className="flex items-start justify-between">
|
|
190
|
+
<h3 className="font-medium text-slate-100 mb-1 hover:text-orange-400 transition-colors">
|
|
191
|
+
{scenario.name}
|
|
192
|
+
</h3>
|
|
193
|
+
<ChevronRight size={16} className="text-slate-600 mt-1 flex-shrink-0" />
|
|
194
|
+
</div>
|
|
195
|
+
<p className="text-sm text-slate-400 line-clamp-2">
|
|
196
|
+
{scenario.description || 'No description'}
|
|
197
|
+
</p>
|
|
198
|
+
</Link>
|
|
199
|
+
<div className="flex justify-between items-center pt-2 border-t border-slate-700/40">
|
|
193
200
|
<span className="text-xs text-slate-500">{scenario.relative_path}</span>
|
|
194
201
|
<Link
|
|
195
202
|
to={`/run/${scenario.id}`}
|