diff --git a/README.md b/README.md
index b2435cba..2cd5a345 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@ npx @vrsen/openswarm
That's it! The setup wizard handles everything: authentication, dependencies, and configuration.
-**Requirements:** Node.js 20+ (Python 3.10+ auto-installed)
+**Requirements:** Node.js 20+ and Python 3.12+. OpenSwarm creates or repairs an isolated project `.venv`.
Telemetry opt-out: set `ENABLE_TELEMETRY=0`, `OPEN_SWARM_TELEMETRY=0`, `AGENTSWARM_TELEMETRY=0`, or pass `--no-telemetry`.
diff --git a/RELEASE.md b/RELEASE.md
index 8d9fa630..a4ebafda 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -10,8 +10,16 @@ OpenSwarm releases use one normal path: `Build TUI Binaries` builds the required
- GitHub release assets:
- `agentswarm-darwin-arm64`
- `agentswarm-darwin-x64`
+ - `agentswarm-darwin-x64-baseline`
+ - `agentswarm-linux-arm64`
+ - `agentswarm-linux-arm64-musl`
- `agentswarm-linux-x64`
+ - `agentswarm-linux-x64-baseline`
+ - `agentswarm-linux-x64-baseline-musl`
+ - `agentswarm-linux-x64-musl`
+ - `agentswarm-windows-arm64.exe`
- `agentswarm-windows-x64.exe`
+ - `agentswarm-windows-x64-baseline.exe`
## Release Steps
diff --git a/docs_agent/tools/utils/html_docx_images.py b/docs_agent/tools/utils/html_docx_images.py
index 744d41d3..c4e444d2 100644
--- a/docs_agent/tools/utils/html_docx_images.py
+++ b/docs_agent/tools/utils/html_docx_images.py
@@ -40,6 +40,8 @@ def embed_local_images(html: str, base_dir: Path) -> str:
unreachable resources are left unchanged (no crash).
"""
+ resolved_base_dir = base_dir.resolve()
+
def _encode(src: str) -> str | None:
if src.startswith("data:") or src.startswith("file://"):
return None
@@ -58,8 +60,8 @@ def _encode(src: str) -> str | None:
if not _is_image_path(src):
return None
- img_path = (base_dir / src).resolve()
- if not img_path.exists():
+ img_path = (resolved_base_dir / src).resolve()
+ if not img_path.is_relative_to(resolved_base_dir) or not img_path.exists():
return None
mime, _ = mimetypes.guess_type(str(img_path))
mime = mime or "image/png"
diff --git a/openswarm.config.mjs b/openswarm.config.mjs
index bec1521c..785f5523 100644
--- a/openswarm.config.mjs
+++ b/openswarm.config.mjs
@@ -162,6 +162,7 @@ export function getProductEnv(opts = {}) {
AGENTSWARM_PRODUCT_STARTER_FOLDER: product.starterFolder,
AGENTSWARM_PRODUCT_ENTRY_FILES: product.entryFiles,
AGENTSWARM_PRODUCT_SKIP_POST_AUTH_MODEL_SELECTION: "true",
+ AGENTSWARM_PRODUCT_HIDE_CONNECT: "true",
AGENTSWARM_PRODUCT_TUI_LOGO_LEFT: JSON.stringify(productTuiLogoLeft),
AGENTSWARM_PRODUCT_TUI_LOGO_RIGHT: JSON.stringify(productTuiLogoRight),
AGENTSWARM_PRODUCT_WORDMARK_LINES: JSON.stringify(productWordmarkLines),
diff --git a/openswarm.product-env.json b/openswarm.product-env.json
index 32c3fbee..55a4f396 100644
--- a/openswarm.product-env.json
+++ b/openswarm.product-env.json
@@ -11,6 +11,7 @@
"AGENTSWARM_PRODUCT_STARTER_FOLDER": "openswarm",
"AGENTSWARM_PRODUCT_ENTRY_FILES": "swarm.py,agency.py",
"AGENTSWARM_PRODUCT_SKIP_POST_AUTH_MODEL_SELECTION": "true",
+ "AGENTSWARM_PRODUCT_HIDE_CONNECT": "true",
"AGENTSWARM_PRODUCT_TUI_LOGO_LEFT": "[\" \",\" ██████╗ ██████╗ ███████╗███╗ ██╗\",\"██╔═══██╗██╔══██╗██╔════╝████╗ ██║\",\"██║ ██║██████╔╝█████╗ ██╔██╗ ██║\",\"██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║\",\"╚██████╔╝██║ ███████╗██║ ╚████║\",\" ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝\"]",
"AGENTSWARM_PRODUCT_TUI_LOGO_RIGHT": "[\"\",\"███████╗██╗ ██╗ █████╗ ██████╗ ███╗ ███╗\",\"██╔════╝██║ ██║██╔══██╗██╔══██╗████╗ ████║\",\"███████╗██║ █╗ ██║███████║██████╔╝██╔████╔██║\",\"╚════██║██║███╗██║██╔══██╗██╔══██╗██║╚██╔╝██║\",\"███████║╚███╔███╔╝██║ ██║██║ ██║██║ ╚═╝ ██║\",\"╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝\"]",
"AGENTSWARM_PRODUCT_WORDMARK_LINES": "[\"\",\" ██████╗ ██████╗ ███████╗███╗ ██╗ ███████╗██╗ ██╗ █████╗ ██████╗ ███╗ ███╗\",\"██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██╔════╝██║ ██║██╔══██╗██╔══██╗████╗ ████║\",\"██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ███████╗██║ █╗ ██║███████║██████╔╝██╔████╔██║\",\"██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ╚════██║██║███╗██║██╔══██╗██╔══██╗██║╚██╔╝██║\",\"╚██████╔╝██║ ███████╗██║ ╚████║ ███████║╚███╔███╔╝██║ ██║██║ ██║██║ ╚═╝ ██║\",\" ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝\"]",
diff --git a/package-lock.json b/package-lock.json
index 8e9dd146..6ece422c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "@vrsen/openswarm",
- "version": "1.0.1-rc.10",
+ "version": "1.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@vrsen/openswarm",
- "version": "1.0.1-rc.10",
+ "version": "1.1.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "@vrsen/agentswarm": "1.4.40",
+ "@vrsen/agentswarm": "1.4.41",
"dom-to-pptx": "1.1.5",
"patch-package": "^8.0.1",
"playwright": "^1.59.1",
@@ -27,22 +27,22 @@
"turbo": "^2.9.6"
},
"engines": {
- "node": ">=18.0.0",
- "python": ">=3.10"
+ "node": ">=20.0.0",
+ "python": ">=3.12"
},
"optionalDependencies": {
- "@vrsen/openswarm-cli-darwin-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-darwin-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-darwin-x64-baseline": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-arm64-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-baseline": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-baseline-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-x64-baseline": "1.0.1-rc.10"
+ "@vrsen/openswarm-cli-darwin-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-darwin-x64": "1.1.0",
+ "@vrsen/openswarm-cli-darwin-x64-baseline": "1.1.0",
+ "@vrsen/openswarm-cli-linux-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-linux-arm64-musl": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-baseline": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-baseline-musl": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-musl": "1.1.0",
+ "@vrsen/openswarm-cli-windows-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-windows-x64": "1.1.0",
+ "@vrsen/openswarm-cli-windows-x64-baseline": "1.1.0"
}
},
"node_modules/@emnapi/runtime": {
@@ -510,21 +510,21 @@
}
},
"node_modules/@vrsen/agentswarm": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm/-/agentswarm-1.4.40.tgz",
- "integrity": "sha512-KkR94VaYvNSnSQnGz/UTOW4cim5Cxz4xE/3Q3hCdefe96L5QtF/TM0Uydv9GPUzWhMyhUdwcHiwrT1QmaJTmig==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm/-/agentswarm-1.4.41.tgz",
+ "integrity": "sha512-X0RYSA7FfOgS98krlXlYeli1au/C7g2XyxZcXmUMlIabp6xuoSxbieVKWu90551sPH/NxlzGd1xMNRpoeDP9KA==",
"license": "MIT",
"dependencies": {
- "agentswarm-cli": "1.4.40"
+ "agentswarm-cli": "1.4.41"
},
"bin": {
"agentswarm": "bin/agentswarm"
}
},
"node_modules/@vrsen/agentswarm-cli-darwin-arm64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-arm64/-/agentswarm-cli-darwin-arm64-1.4.40.tgz",
- "integrity": "sha512-QJHwW2BtbnR8u9m/1Ez3O7qtB1CkQgFg5TxtEQFTQ7xiBXk6gaM1EpTeCPo9Oh/KW4fcC9No6FPTeKlQ+3Opzg==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-arm64/-/agentswarm-cli-darwin-arm64-1.4.41.tgz",
+ "integrity": "sha512-+VYXcpT5EE+/z8UipOqCjx1/3zOtBkfYQBym+LSjDE5L9f8UluXrFWHYtUeep3mOrbAtCE6G4USdcxDm4FSnEQ==",
"cpu": [
"arm64"
],
@@ -534,9 +534,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-darwin-x64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-x64/-/agentswarm-cli-darwin-x64-1.4.40.tgz",
- "integrity": "sha512-lriB1s7t3nRqHC+Ka2Mq3YEZc2mDhyJAi+P0JbFEHL9tD0rCtKhkzIs/4X+RNRyJHdt+7SBqOipzLfoSni+PNw==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-x64/-/agentswarm-cli-darwin-x64-1.4.41.tgz",
+ "integrity": "sha512-1lBL0KaLAxM3dHYSjtKtT78qJtQyAuskVTFJxXF80ojFglETfZ6UDsUABkdgbUR/Xk61XXda009xKMIP1cAqMw==",
"cpu": [
"x64"
],
@@ -546,9 +546,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-darwin-x64-baseline": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-x64-baseline/-/agentswarm-cli-darwin-x64-baseline-1.4.40.tgz",
- "integrity": "sha512-CzbqzES9xxWPSl5OVZrSuJ4NOnq9pG5SWlQPK69Qr5Qz/FYkspWmnoOWdJpyuEQL+vnCA/2I8w3Rl8GeNd5IVA==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-darwin-x64-baseline/-/agentswarm-cli-darwin-x64-baseline-1.4.41.tgz",
+ "integrity": "sha512-ovln/JBdSbxqdXSS6IVbtlb/MHkt5oGdsb61aI8aMX+oXZSB/7654NcAeQZNSUQyw1okDGTO1jghnR10AgEFOQ==",
"cpu": [
"x64"
],
@@ -558,9 +558,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-arm64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-arm64/-/agentswarm-cli-linux-arm64-1.4.40.tgz",
- "integrity": "sha512-BJCThI4xG8RuQKWZzF8oh8TTSQJZOjTd3dfuFKYS2VXgVQfVG/OrKnuN/Fz4ticjnkwOMwTtPFyqLM3g8a0VJg==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-arm64/-/agentswarm-cli-linux-arm64-1.4.41.tgz",
+ "integrity": "sha512-kxuA4sPm75RFGKoQPxaoE08Pwepq82TU7cWLcBVNJJsjzbSkN7pUs3BpO8t1A9RRdJUwA1Qel75UL7Xz4mpUsw==",
"cpu": [
"arm64"
],
@@ -570,9 +570,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-arm64-musl": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-arm64-musl/-/agentswarm-cli-linux-arm64-musl-1.4.40.tgz",
- "integrity": "sha512-ColcPWvVu9jeQ5EzsrNXWm9Lm1w0DfaBgARiCoKcAbolV8ZjYr9JHLJJ47XX+tLfgLG7rZJZ4oPJeh1Sk2ZPcQ==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-arm64-musl/-/agentswarm-cli-linux-arm64-musl-1.4.41.tgz",
+ "integrity": "sha512-XXkdE17wVSSGgbZqfUle0OSwuftIk4kvrBmfKs8VmHAO+uW3arK/VkvG47Ht8is63XgSs1iLiT66YulleEFodQ==",
"cpu": [
"arm64"
],
@@ -582,9 +582,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-x64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64/-/agentswarm-cli-linux-x64-1.4.40.tgz",
- "integrity": "sha512-OPfEPab3bHnju8DCVVeAp+d+x8z6HrVpfk7GdqoH1I2Eij0M1XvrvocwML2ocXCMt11kaAdU1lx6C4TYLtzLTw==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64/-/agentswarm-cli-linux-x64-1.4.41.tgz",
+ "integrity": "sha512-llA1BfdgFoYcM9VBCxrwv1wvvPEhDDEX8LrcBmmO7QbfiuLw2HFFjsKwIkCJfqleledjIdKxa+7BDYaHaSeRCA==",
"cpu": [
"x64"
],
@@ -594,9 +594,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-x64-baseline": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-baseline/-/agentswarm-cli-linux-x64-baseline-1.4.40.tgz",
- "integrity": "sha512-mHJLtjCs9+bxrMJp5AXF2gHvhCFdd8v9AzxbE//38SQ4xwadOAAKMPnWnuf5EIv9qhNNha57QvobDWItCLtVmg==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-baseline/-/agentswarm-cli-linux-x64-baseline-1.4.41.tgz",
+ "integrity": "sha512-Q1bLTqOeHkhF2VU7B6bwXzVIDI6rtmOnj7nEoElw0vnNxxmcigoFsrNOitGFdiD6tMUCQkmUWDlAjpU2tA4rkw==",
"cpu": [
"x64"
],
@@ -606,9 +606,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-x64-baseline-musl": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-baseline-musl/-/agentswarm-cli-linux-x64-baseline-musl-1.4.40.tgz",
- "integrity": "sha512-WWtRONB3Y4TTh2B/Su7rhwuUYfXhSQmGIgG2ZmAkGbxuq4UlKOIhSe903nGKpkAMtvSNvmfDQZInVDYhh8i+3g==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-baseline-musl/-/agentswarm-cli-linux-x64-baseline-musl-1.4.41.tgz",
+ "integrity": "sha512-kLWxYlvurXssacmVldjq705GjVxmqWsOHaPL90Fo8a5W9bLCUiSCCpPcnqK2a+lKEhFvLmkUbilYvf8iZxnXfw==",
"cpu": [
"x64"
],
@@ -618,9 +618,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-linux-x64-musl": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-musl/-/agentswarm-cli-linux-x64-musl-1.4.40.tgz",
- "integrity": "sha512-xFYHtVwdWfWSuAs6Y66424P/cSnSmwaPF2eFHih5irOhtp27QmfKyVivRSxf0n48NwO8LwbGu+5hfTwvnvbngg==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-linux-x64-musl/-/agentswarm-cli-linux-x64-musl-1.4.41.tgz",
+ "integrity": "sha512-/ExyNL4CkohKvon3ANA7QZb9OK4CgfsC5ApxlJY0NDtbNwmdHu41oBMTFbADbD1AWpybPJhi3gD/e3Tv1xpBEA==",
"cpu": [
"x64"
],
@@ -630,9 +630,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-windows-arm64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-arm64/-/agentswarm-cli-windows-arm64-1.4.40.tgz",
- "integrity": "sha512-x4CXp10xHNsMIQQv+2bHK/bAAYKPvW+cgSTCaZEUTFhAbSnAyxqyN2u49LvfY06dDvlXNKvA5qD4+dCWa45ahQ==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-arm64/-/agentswarm-cli-windows-arm64-1.4.41.tgz",
+ "integrity": "sha512-FpJkp3mGv2jJ5ZmDSU2pGs4zbDbPB81j6ILDcTiX43Uq7vp/0aqZOMzG+xHv/obnM7T72VTE8KrAYFWvm31wPQ==",
"cpu": [
"arm64"
],
@@ -642,9 +642,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-windows-x64": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-x64/-/agentswarm-cli-windows-x64-1.4.40.tgz",
- "integrity": "sha512-rohsLgxcBVVYc9F4C00D8JZd8nH5BIk3EVe/YGw6O19gfv8/2gzydLeQAhmrAFs03EEMsalZAfyFlyscxFYpAw==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-x64/-/agentswarm-cli-windows-x64-1.4.41.tgz",
+ "integrity": "sha512-XzJJIqm1KU+c2FDtQ9XJUIMHc0eAI6159pFYEEXufiWJ3wpLGSYhLT/16CF82tvWV1iZvr8EYE/NJxRWpGIc/Q==",
"cpu": [
"x64"
],
@@ -654,9 +654,9 @@
]
},
"node_modules/@vrsen/agentswarm-cli-windows-x64-baseline": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-x64-baseline/-/agentswarm-cli-windows-x64-baseline-1.4.40.tgz",
- "integrity": "sha512-l+ymfnd7u8o9A4kfoFqNbkitHhzYFJGCiBvkxRiNVLLAsTFVrUk5TwcwaS3SIIQec5v8zMG3fwLz24DhtdBb2A==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/@vrsen/agentswarm-cli-windows-x64-baseline/-/agentswarm-cli-windows-x64-baseline-1.4.41.tgz",
+ "integrity": "sha512-zqdEIzWS2qtSxqmTCSGw7K+jXVoi4WumKMAhqtdJoyUunQ3IoSBIQp2zS6Pzwmn3vnvBltrvAzyzVUn9VsUmVg==",
"cpu": [
"x64"
],
@@ -666,144 +666,144 @@
]
},
"node_modules/@vrsen/openswarm-cli-darwin-arm64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-arm64/-/openswarm-cli-darwin-arm64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-arm64/-/openswarm-cli-darwin-arm64-1.1.0.tgz",
"cpu": [
"arm64"
],
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@vrsen/openswarm-cli-darwin-x64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-x64/-/openswarm-cli-darwin-x64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-x64/-/openswarm-cli-darwin-x64-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@vrsen/openswarm-cli-darwin-x64-baseline": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-x64-baseline/-/openswarm-cli-darwin-x64-baseline-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-darwin-x64-baseline/-/openswarm-cli-darwin-x64-baseline-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@vrsen/openswarm-cli-linux-arm64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-arm64/-/openswarm-cli-linux-arm64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-arm64/-/openswarm-cli-linux-arm64-1.1.0.tgz",
"cpu": [
"arm64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-linux-arm64-musl": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-arm64-musl/-/openswarm-cli-linux-arm64-musl-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-arm64-musl/-/openswarm-cli-linux-arm64-musl-1.1.0.tgz",
"cpu": [
"arm64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-linux-x64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64/-/openswarm-cli-linux-x64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64/-/openswarm-cli-linux-x64-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-linux-x64-baseline": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-baseline/-/openswarm-cli-linux-x64-baseline-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-baseline/-/openswarm-cli-linux-x64-baseline-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-linux-x64-baseline-musl": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-baseline-musl/-/openswarm-cli-linux-x64-baseline-musl-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-baseline-musl/-/openswarm-cli-linux-x64-baseline-musl-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-linux-x64-musl": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-musl/-/openswarm-cli-linux-x64-musl-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-linux-x64-musl/-/openswarm-cli-linux-x64-musl-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@vrsen/openswarm-cli-windows-arm64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-arm64/-/openswarm-cli-windows-arm64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-arm64/-/openswarm-cli-windows-arm64-1.1.0.tgz",
"cpu": [
"arm64"
],
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@vrsen/openswarm-cli-windows-x64": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-x64/-/openswarm-cli-windows-x64-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-x64/-/openswarm-cli-windows-x64-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@vrsen/openswarm-cli-windows-x64-baseline": {
- "version": "1.0.1-rc.10",
- "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-x64-baseline/-/openswarm-cli-windows-x64-baseline-1.0.1-rc.10.tgz",
- "license": "MIT",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vrsen/openswarm-cli-windows-x64-baseline/-/openswarm-cli-windows-x64-baseline-1.1.0.tgz",
"cpu": [
"x64"
],
+ "license": "MIT",
"optional": true,
"os": [
"win32"
@@ -825,27 +825,27 @@
"license": "BSD-2-Clause"
},
"node_modules/agentswarm-cli": {
- "version": "1.4.40",
- "resolved": "https://registry.npmjs.org/agentswarm-cli/-/agentswarm-cli-1.4.40.tgz",
- "integrity": "sha512-rBSFPIcR/dtc03ukm3zvzIaTlpwTY91bfhk5DQdZKrsX2LAgwTRAC4pVaoGiBxQiihXdy2op7LYFw4nSkH2otg==",
+ "version": "1.4.41",
+ "resolved": "https://registry.npmjs.org/agentswarm-cli/-/agentswarm-cli-1.4.41.tgz",
+ "integrity": "sha512-ulgXkhAUyI43T9IFrXaPKJ/gpMk77Lo8ZHC32Zh53AM6C9EfdRlpmkSKR2FDtgUhQCmpD9HqlMeL3SBhfAelSw==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
"agentswarm": "bin/agentswarm"
},
"optionalDependencies": {
- "@vrsen/agentswarm-cli-darwin-arm64": "1.4.40",
- "@vrsen/agentswarm-cli-darwin-x64": "1.4.40",
- "@vrsen/agentswarm-cli-darwin-x64-baseline": "1.4.40",
- "@vrsen/agentswarm-cli-linux-arm64": "1.4.40",
- "@vrsen/agentswarm-cli-linux-arm64-musl": "1.4.40",
- "@vrsen/agentswarm-cli-linux-x64": "1.4.40",
- "@vrsen/agentswarm-cli-linux-x64-baseline": "1.4.40",
- "@vrsen/agentswarm-cli-linux-x64-baseline-musl": "1.4.40",
- "@vrsen/agentswarm-cli-linux-x64-musl": "1.4.40",
- "@vrsen/agentswarm-cli-windows-arm64": "1.4.40",
- "@vrsen/agentswarm-cli-windows-x64": "1.4.40",
- "@vrsen/agentswarm-cli-windows-x64-baseline": "1.4.40"
+ "@vrsen/agentswarm-cli-darwin-arm64": "1.4.41",
+ "@vrsen/agentswarm-cli-darwin-x64": "1.4.41",
+ "@vrsen/agentswarm-cli-darwin-x64-baseline": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-arm64": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-arm64-musl": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-x64": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-x64-baseline": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-x64-baseline-musl": "1.4.41",
+ "@vrsen/agentswarm-cli-linux-x64-musl": "1.4.41",
+ "@vrsen/agentswarm-cli-windows-arm64": "1.4.41",
+ "@vrsen/agentswarm-cli-windows-x64": "1.4.41",
+ "@vrsen/agentswarm-cli-windows-x64-baseline": "1.4.41"
}
},
"node_modules/ansi-styles": {
diff --git a/package.json b/package.json
index 1a4d9422..741ac6a8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@vrsen/openswarm",
- "version": "1.0.1-rc.10",
+ "version": "1.1.0",
"description": "An open-source multi-agent AI team built on Agency Swarm",
"license": "MIT",
"publishConfig": {
@@ -41,7 +41,7 @@
"postinstall": "node -e \"const fs=require('fs');const path=require('path');const cp=require('child_process');const pkg=__dirname;const patchTarget=path.join(pkg,'node_modules','dom-to-pptx');const patchCli=path.join(pkg,'node_modules','patch-package','index.js');if(fs.existsSync(patchTarget)&&fs.existsSync(patchCli)){cp.execFileSync(process.execPath,[patchCli],{cwd:pkg,stdio:'inherit'});}try{fs.chmodSync(path.join(pkg,'bin','openswarm'),0o755)}catch(e){}\""
},
"dependencies": {
- "@vrsen/agentswarm": "1.4.40",
+ "@vrsen/agentswarm": "1.4.41",
"dom-to-pptx": "1.1.5",
"patch-package": "^8.0.1",
"playwright": "^1.59.1",
@@ -52,22 +52,22 @@
"sharp": "^0.33.0"
},
"optionalDependencies": {
- "@vrsen/openswarm-cli-darwin-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-darwin-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-darwin-x64-baseline": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-arm64-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-baseline": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-baseline-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-linux-x64-musl": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-arm64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-x64": "1.0.1-rc.10",
- "@vrsen/openswarm-cli-windows-x64-baseline": "1.0.1-rc.10"
+ "@vrsen/openswarm-cli-darwin-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-darwin-x64": "1.1.0",
+ "@vrsen/openswarm-cli-darwin-x64-baseline": "1.1.0",
+ "@vrsen/openswarm-cli-linux-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-linux-arm64-musl": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-baseline": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-baseline-musl": "1.1.0",
+ "@vrsen/openswarm-cli-linux-x64-musl": "1.1.0",
+ "@vrsen/openswarm-cli-windows-arm64": "1.1.0",
+ "@vrsen/openswarm-cli-windows-x64": "1.1.0",
+ "@vrsen/openswarm-cli-windows-x64-baseline": "1.1.0"
},
"engines": {
- "node": ">=18.0.0",
- "python": ">=3.10"
+ "node": ">=20.0.0",
+ "python": ">=3.12"
},
"devDependencies": {
"turbo": "^2.9.6"
diff --git a/pyproject.toml b/pyproject.toml
index 0a1e4c01..a7091397 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,12 +1,12 @@
[project]
name = "open-swarm"
description = "An open-source multi-agent AI team built on Agency Swarm and the OpenAI Agents SDK"
-version = "1.0.1-rc.10"
+version = "1.1.0"
license = { text = "MIT" }
keywords = ["agency-swarm", "openai", "multi-agent", "open-source", "openswarm"]
requires-python = ">=3.12"
dependencies = [
- "agency-swarm[fastapi,jupyter,litellm]>=1.10.2",
+ "agency-swarm[fastapi,jupyter,litellm]==1.10.4",
"questionary>=2.0.0",
"python-dotenv",
"rich",
diff --git a/requirements.txt b/requirements.txt
index e0693fab..27b89bed 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-agency-swarm[fastapi,jupyter,litellm]>=1.10.2
+agency-swarm[fastapi,jupyter,litellm]==1.10.4
questionary>=2.0.0
fastapi
uvicorn
diff --git a/scripts/smoke-openswarm-launcher.js b/scripts/smoke-openswarm-launcher.js
index f5d9e028..2e01113c 100644
--- a/scripts/smoke-openswarm-launcher.js
+++ b/scripts/smoke-openswarm-launcher.js
@@ -200,6 +200,7 @@ async function assertStateRoot() {
assert.equal(env.AGENTSWARM_PRODUCT_DISPLAY_NAME, 'OpenSwarm')
assert.equal(env.AGENTSWARM_PRODUCT_STATE_ROOT, path.join('/home/tester', '.openswarm'))
assert.equal(env.AGENTSWARM_PRODUCT_VERSION, pkg.version)
+ assert.equal(env.AGENTSWARM_PRODUCT_HIDE_CONNECT, 'true')
assert.equal(env.AGENTSWARM_MARKETPLACE_SWARM_ID, 'VRSEN/OpenSwarm')
assert.equal(env.AGENTSWARM_MARKETPLACE_PARENT_SWARM_ID, undefined)
assert.equal(env.AGENTSWARM_MARKETPLACE_SWARM_ORIGIN, 'original')
@@ -369,6 +370,7 @@ function assertLauncherDelegatesToDependency() {
assert.equal(env.AGENTSWARM_PRODUCT_DISPLAY_NAME, 'OpenSwarm')
assert.equal(env.AGENTSWARM_PRODUCT_COMMAND, 'openswarm')
assert.equal(env.AGENTSWARM_PRODUCT_VERSION, '7.8.9-smoke')
+ assert.equal(env.AGENTSWARM_PRODUCT_HIDE_CONNECT, 'true')
assert.equal(env.AGENTSWARM_MARKETPLACE_SWARM_ID, 'VRSEN/OpenSwarm')
assert.equal(env.AGENTSWARM_MARKETPLACE_PARENT_SWARM_ID, undefined)
assert.equal(env.AGENTSWARM_MARKETPLACE_SWARM_ORIGIN, 'original')
diff --git a/tests/test_html_docx_images.py b/tests/test_html_docx_images.py
new file mode 100644
index 00000000..b12739df
--- /dev/null
+++ b/tests/test_html_docx_images.py
@@ -0,0 +1,45 @@
+import base64
+import sys
+from pathlib import Path
+from types import ModuleType
+
+
+ROOT = Path(__file__).resolve().parents[1]
+
+
+def _stub_svg2png(**_):
+ return b""
+
+
+cairosvg = ModuleType("cairosvg")
+cairosvg.svg2png = _stub_svg2png
+sys.modules["cairosvg"] = cairosvg
+for package_name, package_path in (
+ ("docs_agent", ROOT / "docs_agent"),
+ ("docs_agent.tools", ROOT / "docs_agent" / "tools"),
+ ("docs_agent.tools.utils", ROOT / "docs_agent" / "tools" / "utils"),
+):
+ package = ModuleType(package_name)
+ package.__path__ = [str(package_path)]
+ sys.modules[package_name] = package
+
+from docs_agent.tools.utils.html_docx_images import embed_local_images # noqa: E402
+
+
+def test_embed_local_images_stays_within_base_dir(tmp_path):
+ base_dir = tmp_path / "workspace" / "documents"
+ base_dir.mkdir(parents=True)
+ inside_bytes = b"inside image"
+ secret_bytes = b"secret image"
+ (base_dir / "inside.png").write_bytes(inside_bytes)
+ (tmp_path / "secret.png").write_bytes(secret_bytes)
+
+ html = '
'
+
+ result = embed_local_images(html, base_dir)
+
+ inside_data = base64.b64encode(inside_bytes).decode("ascii")
+ secret_data = base64.b64encode(secret_bytes).decode("ascii")
+ assert f'src="data:image/png;base64,{inside_data}"' in result
+ assert 'src="../../secret.png"' in result
+ assert secret_data not in result