mirror of
https://github.com/Sea-Haven-Industries/open-swe.git
synced 2026-10-07 16:19:09 +00:00
Compare commits
5 commits
ea14291954
...
e70be8b39b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e70be8b39b | ||
|
|
43887af6fd | ||
|
|
5caaf885a4 | ||
|
|
c75e76c05e | ||
|
|
076e20d7e6 |
4 changed files with 47 additions and 26 deletions
|
|
@ -19,11 +19,11 @@ dependencies = [
|
|||
"langchain-anthropic>=1.4.6",
|
||||
"langchain-aws>=0.2.0",
|
||||
"langgraph-cli[inmem]>=0.4.30",
|
||||
"langsmith==0.9.3",
|
||||
"langsmith==0.9.4",
|
||||
"langchain-openai>=1.3.3",
|
||||
"langchain-fireworks>=1.4.3",
|
||||
# langchain-fireworks 1.4.2 pins a pre-release fireworks-ai; opt in explicitly so uv resolves it.
|
||||
"fireworks-ai>=1.2.0a71",
|
||||
"fireworks-ai>=1.2.0a85",
|
||||
"langchain-daytona>=0.0.7",
|
||||
"langchain-modal>=0.0.5",
|
||||
"langchain-runloop>=0.0.6",
|
||||
|
|
|
|||
|
|
@ -1,15 +1,5 @@
|
|||
{
|
||||
"$schema": "https://openapi.vercel.sh/vercel.json",
|
||||
"framework": null,
|
||||
"buildCommand": "bun run build",
|
||||
"outputDirectory": ".output/public",
|
||||
"rewrites": [
|
||||
{
|
||||
"source": "/dashboard/api/:path*",
|
||||
"destination": "https://open-swe-v3-f2834ffc0df05a46a10262a9690e8490.us.langgraph.app/dashboard/api/:path*"
|
||||
},
|
||||
{
|
||||
"source": "/(.*)",
|
||||
"destination": "/_shell.html"
|
||||
}
|
||||
]
|
||||
"buildCommand": "bun run build"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,13 +74,44 @@ function mockHarnessProxy(): Plugin | null {
|
|||
}
|
||||
}
|
||||
|
||||
// Same-origin proxy for the dashboard API. Vercel reads vercel.json BEFORE the build
|
||||
// and never interpolates env into it, and prod promotes by fast-forward (so `dev` and
|
||||
// `main` ship a byte-identical vercel.json that cannot encode a per-project backend).
|
||||
// So the per-project backend is driven through Nitro instead: this `routeRules` proxy
|
||||
// is compiled by Nitro's Vercel preset into a CDN-level rewrite in
|
||||
// `.vercel/output/config.json` at build time, reading LANGGRAPH_BACKEND_URL from the
|
||||
// per-project Vercel env var. Proxy (not redirect) keeps the osw_session cookie
|
||||
// first-party on the Vercel origin. The `**` wildcard maps 1:1 to the destination.
|
||||
function backendProxyRouteRules():
|
||||
| Record<string, { proxy: string }>
|
||||
| undefined {
|
||||
const backend = process.env.LANGGRAPH_BACKEND_URL?.replace(/\/$/, "")
|
||||
// Nitro's Vercel preset auto-activates from the VERCEL env var; NITRO_PRESET=vercel
|
||||
// forces it locally. On Vercel the backend is mandatory — fail loudly rather than
|
||||
// ship a build whose API calls 404, which is exactly how the previous approach broke.
|
||||
const onVercel =
|
||||
!!process.env.VERCEL || process.env.NITRO_PRESET === "vercel"
|
||||
if (!backend) {
|
||||
if (onVercel) {
|
||||
throw new Error(
|
||||
"LANGGRAPH_BACKEND_URL is required for Vercel builds (set it per Vercel " +
|
||||
"project: dev project -> dev langgraph URL, prod project -> prod langgraph URL).",
|
||||
)
|
||||
}
|
||||
// Off Vercel with no backend configured (plain local `vite build`, tests): omit the
|
||||
// proxy. Local dev gets its API via the E2E_HARNESS mock proxy above instead.
|
||||
return undefined
|
||||
}
|
||||
return { "/dashboard/api/**": { proxy: `${backend}/dashboard/api/**` } }
|
||||
}
|
||||
|
||||
const config = defineConfig({
|
||||
optimizeDeps: { include: ["workbox-window"] },
|
||||
worker: { format: "es" },
|
||||
plugins: [
|
||||
mockHarnessProxy(),
|
||||
devtools(),
|
||||
nitro(),
|
||||
nitro({ routeRules: backendProxyRouteRules() }),
|
||||
viteTsConfigPaths({
|
||||
projects: ["./tsconfig.json"],
|
||||
}),
|
||||
|
|
|
|||
22
uv.lock
generated
22
uv.lock
generated
|
|
@ -784,7 +784,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "fireworks-ai"
|
||||
version = "1.2.0a75"
|
||||
version = "1.2.0a85"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "aiohttp" },
|
||||
|
|
@ -796,9 +796,9 @@ dependencies = [
|
|||
{ name = "sniffio" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f9/e8/3ce01c9802810f476a7d4273ff937584ba5941da9f06a0f3a4c10d0335c5/fireworks_ai-1.2.0a75.tar.gz", hash = "sha256:b7ccb914f2a64037fd8ab93b219565e94cd3a072fe60d0349707ab67210ba9aa", size = 416496, upload-time = "2026-06-03T18:45:34.846Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/65/94/fb75cf9c769a09de31e550ba99a279e5f83a05cfcf49cd0cbb8ad586ab35/fireworks_ai-1.2.0a85.tar.gz", hash = "sha256:33abbeddd9a6bd9993bca6cb9e16afe9799b2cd674d6b7c04a601cd4e412f2a7", size = 448217, upload-time = "2026-06-26T08:06:57.286Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/53/49/d799dcabfb65b50423dae7d2d4715058b848be7d4d9bb8248850b8aa1d18/fireworks_ai-1.2.0a75-py3-none-any.whl", hash = "sha256:6f2dfe15ceee2a700e21f775cad5776b2726ff475095e33a10ab8cd3c3d5b5aa", size = 495789, upload-time = "2026-06-03T18:45:33.328Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3f/5b/0b10d0afb633b45f234f6728cc680851f136b9f75903b4387049537a6cd6/fireworks_ai-1.2.0a85-py3-none-any.whl", hash = "sha256:80a4b13bda8e28ca9064c8339d0afe47cbbdb7c61a88eeebc173ccb58129f19a", size = 528844, upload-time = "2026-06-26T08:06:55.927Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1608,7 +1608,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "langgraph"
|
||||
version = "1.2.6"
|
||||
version = "1.2.7"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
|
|
@ -1618,9 +1618,9 @@ dependencies = [
|
|||
{ name = "pydantic" },
|
||||
{ name = "xxhash" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/02/7a/ea09b05bb0cbddfa43bd34fc581357e87fc3f21a751cc0d419688c3106da/langgraph-1.2.6.tar.gz", hash = "sha256:f9b45a34f13930c94d96cdb76277447ad2cc70ec2d18cd2764d7fdadb36cdc1b", size = 714400, upload-time = "2026-06-18T20:58:21.514Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/bf/11/c3961537ac7577125aabba68effc33ecc3dc0962e2d287d734dbd61caad7/langgraph-1.2.7.tar.gz", hash = "sha256:dcdf5b441bf8c7c7c154e603b302c9dbfbfd2d11e1b7ae7d93a5aba979dc87bd", size = 721385, upload-time = "2026-06-30T01:24:12.528Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/89/32/772db1b00a9fe42f50320d1aa20caefb76e621eff1f7218b9918093d631d/langgraph-1.2.6-py3-none-any.whl", hash = "sha256:1cf94d3ca124f84f77ce408fa1b06c3dee680a8aafffe364a8fd5d7d03eb8695", size = 246132, upload-time = "2026-06-18T20:58:20.335Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/16/5d/19de0c674cf2d8bc95b25cdb4c13ba3f4fbe0f35bf2224ef19cc46bbb4cd/langgraph-1.2.7-py3-none-any.whl", hash = "sha256:249349a5d6a32cb0aa2304a8fb6529bd0cf56db8780d21db9e086e5383668f89", size = 246930, upload-time = "2026-06-30T01:24:11.15Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1750,7 +1750,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "langsmith"
|
||||
version = "0.9.3"
|
||||
version = "0.9.4"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "anyio" },
|
||||
|
|
@ -1768,9 +1768,9 @@ dependencies = [
|
|||
{ name = "xxhash" },
|
||||
{ name = "zstandard" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/7e/b7/43f80940a758ceb48714ccc10c7acb9564be4f0d4786e8ed5d46deb0be39/langsmith-0.9.3.tar.gz", hash = "sha256:868a007b3ecda002914b21212a953c77fcb1d71a8a09a94562c3b57941d3df3a", size = 4577380, upload-time = "2026-06-26T15:56:30.45Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/fe/a7/a78b4105d1c01ee8d404d122d9acc047b8b9f628f3733cb837a321b2f6c6/langsmith-0.9.4.tar.gz", hash = "sha256:36c15e5a692e7812ee927e43d777c6166c839eb02b1d482ba9a805b438b1d91c", size = 4576594, upload-time = "2026-06-30T10:20:43.373Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9e/fb/dc9f70b5581371fba7b01ba0704fe859bfcd12c4dad82b42ec12bd4160b1/langsmith-0.9.3-py3-none-any.whl", hash = "sha256:aac85686868a7e61d77858b880230e510583c61ea48ac0a197e6ceff64ffb22b", size = 619927, upload-time = "2026-06-26T15:56:28.301Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/c3/15/79367a3d159141fe4fc138f41db4ef21eb4759cd64cf8f635f41d55ded67/langsmith-0.9.4-py3-none-any.whl", hash = "sha256:f10f07438c7c6f9f907e8c810d8f338268fe863a74c37ded3d8a90830bb25451", size = 603804, upload-time = "2026-06-30T10:20:41.052Z" },
|
||||
]
|
||||
|
||||
[package.optional-dependencies]
|
||||
|
|
@ -2224,7 +2224,7 @@ requires-dist = [
|
|||
{ name = "deepagents", specifier = "==0.6.12" },
|
||||
{ name = "exa-py", specifier = ">=2.15.0" },
|
||||
{ name = "fastapi", specifier = ">=0.138.2" },
|
||||
{ name = "fireworks-ai", specifier = ">=1.2.0a71" },
|
||||
{ name = "fireworks-ai", specifier = ">=1.2.0a85" },
|
||||
{ name = "httpx", specifier = ">=0.28.1" },
|
||||
{ name = "langchain", specifier = ">=1.3.9" },
|
||||
{ name = "langchain-anthropic", specifier = ">=1.4.6" },
|
||||
|
|
@ -2239,7 +2239,7 @@ requires-dist = [
|
|||
{ name = "langgraph", specifier = ">=1.1.10" },
|
||||
{ name = "langgraph-cli", extras = ["inmem"], specifier = ">=0.4.30" },
|
||||
{ name = "langgraph-sdk", specifier = ">=0.4.2" },
|
||||
{ name = "langsmith", specifier = "==0.9.3" },
|
||||
{ name = "langsmith", specifier = "==0.9.4" },
|
||||
{ name = "markdownify", specifier = ">=1.2.2" },
|
||||
{ name = "pygments", marker = "extra == 'dev'", specifier = ">=2.20.0" },
|
||||
{ name = "pyjwt", specifier = ">=2.13.0" },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue