@agentikos/omega-os 0.19.15 → 0.19.16
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/omega/Agentik_Engine/omega_engine/__init__.py +1 -1
- package/omega/Agentik_Engine/omega_engine/__pycache__/__init__.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/sync.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/__pycache__/tools.cpython-313.pyc +0 -0
- package/omega/Agentik_Engine/omega_engine/sync.py +23 -4
- package/omega/Agentik_Engine/omega_engine/tools.py +39 -0
- package/omega/Agentik_Engine/pyproject.toml +1 -1
- package/omega/Agentik_SSOT/VERSION +1 -1
- package/omega/Agentik_SSOT/mcp/mcp-catalog.yaml +17 -7
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -194,13 +194,32 @@ class ClaudeCodeAdapter:
|
|
|
194
194
|
cat = catalog_by_id.get(sid, {})
|
|
195
195
|
install = cat.get("install") or {}
|
|
196
196
|
|
|
197
|
-
#
|
|
198
|
-
|
|
197
|
+
# Resolve the launch command. Three shapes:
|
|
198
|
+
# 1. uvx:<package> — Python MCP via Astral uvx (no
|
|
199
|
+
# local binary; Claude calls `uvx <package>` at runtime)
|
|
200
|
+
# 2. tool.invoke = relative path → resolved binary on disk
|
|
201
|
+
# 3. catalog install method → `npx -y <package>` or
|
|
202
|
+
# `uvx <package>` synthesized from the catalog alone
|
|
203
|
+
catalog_args = list(install.get("args") or [])
|
|
204
|
+
server_args = list(server.get("args") or [])
|
|
205
|
+
if tool and tool.invoke and tool.invoke.startswith("uvx:"):
|
|
206
|
+
# uvx-managed Python MCP server.
|
|
207
|
+
pkg = tool.invoke[len("uvx:"):]
|
|
208
|
+
entry["command"] = "uvx"
|
|
209
|
+
entry["args"] = [pkg, *catalog_args, *server_args]
|
|
210
|
+
elif tool and tool.invoke:
|
|
199
211
|
entry["command"] = str(omega_home / tool.invoke)
|
|
200
|
-
entry["args"] =
|
|
212
|
+
entry["args"] = [*catalog_args, *server_args]
|
|
201
213
|
elif install.get("method") == "npx" and install.get("package"):
|
|
202
214
|
entry["command"] = "npx"
|
|
203
|
-
entry["args"] = ["-y", str(install["package"]),
|
|
215
|
+
entry["args"] = ["-y", str(install["package"]),
|
|
216
|
+
*catalog_args, *server_args]
|
|
217
|
+
elif install.get("method") == "uvx" and install.get("package"):
|
|
218
|
+
# No local install (cold uvx call at runtime — slow first time
|
|
219
|
+
# but works without ever running `omega tool install`).
|
|
220
|
+
entry["command"] = "uvx"
|
|
221
|
+
entry["args"] = [str(install["package"]),
|
|
222
|
+
*catalog_args, *server_args]
|
|
204
223
|
else:
|
|
205
224
|
# nothing to invoke — skip rather than write a half-broken entry
|
|
206
225
|
continue
|
|
@@ -215,6 +215,45 @@ def install_from_catalog(
|
|
|
215
215
|
except (OSError, json.JSONDecodeError):
|
|
216
216
|
version = ""
|
|
217
217
|
|
|
218
|
+
elif method == "uvx" and package:
|
|
219
|
+
# Python MCP servers (mcp-server-git, mcp-server-fetch, etc.) run
|
|
220
|
+
# via `uvx <package>` — Astral fetches + caches the package on
|
|
221
|
+
# first call. We don't install it locally; we just verify `uv`
|
|
222
|
+
# is on PATH and pre-warm the cache so the first `claude` call
|
|
223
|
+
# doesn't pay the cold-fetch latency.
|
|
224
|
+
uv = shutil.which("uv") or str(Path.home() / ".local" / "bin" / "uv")
|
|
225
|
+
if not Path(uv).exists():
|
|
226
|
+
raise RuntimeError(
|
|
227
|
+
"uv not found on PATH — install with "
|
|
228
|
+
"`curl -LsSf https://astral.sh/uv/install.sh | sh` to use uvx MCP servers"
|
|
229
|
+
)
|
|
230
|
+
# Pre-warm: `uv tool install` makes the package globally available
|
|
231
|
+
# as a uv tool (resolves once, ~5s) so subsequent `uvx <package>`
|
|
232
|
+
# invocations are instant. Failure here is non-fatal — `uvx` will
|
|
233
|
+
# still resolve at call time, just slower.
|
|
234
|
+
try:
|
|
235
|
+
res = subprocess.run(
|
|
236
|
+
[uv, "tool", "install", "--quiet", package],
|
|
237
|
+
check=False, capture_output=True, text=True, timeout=300,
|
|
238
|
+
)
|
|
239
|
+
# Best-effort version detect via `uv tool list`.
|
|
240
|
+
ls = subprocess.run(
|
|
241
|
+
[uv, "tool", "list"], capture_output=True, text=True, timeout=15,
|
|
242
|
+
)
|
|
243
|
+
for line in (ls.stdout or "").splitlines():
|
|
244
|
+
line = line.strip()
|
|
245
|
+
if line.startswith(package + " "):
|
|
246
|
+
# Format: "<package> v<version>"
|
|
247
|
+
parts = line.split()
|
|
248
|
+
if len(parts) >= 2:
|
|
249
|
+
version = parts[1].lstrip("v")
|
|
250
|
+
break
|
|
251
|
+
except subprocess.SubprocessError:
|
|
252
|
+
pass
|
|
253
|
+
# invoke is `uvx <package>` — sync.py renders it directly to the
|
|
254
|
+
# Claude .mcp.json (no local binary needed).
|
|
255
|
+
invoke = f"uvx:{package}"
|
|
256
|
+
|
|
218
257
|
tool = Tool(
|
|
219
258
|
name=mcp_id,
|
|
220
259
|
version=version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.19.
|
|
1
|
+
0.19.16
|
|
@@ -18,7 +18,10 @@ catalog:
|
|
|
18
18
|
name: Git
|
|
19
19
|
description: Read/inspect git repositories
|
|
20
20
|
category: core
|
|
21
|
-
|
|
21
|
+
# Official MCP git server is Python — runs via uvx (Astral). The old
|
|
22
|
+
# npm package `@modelcontextprotocol/server-git` returns 404 — it was
|
|
23
|
+
# never published; only the Python `mcp-server-git` on PyPI exists.
|
|
24
|
+
install: { method: uvx, package: "mcp-server-git" }
|
|
22
25
|
recommended: true
|
|
23
26
|
|
|
24
27
|
- id: github
|
|
@@ -41,8 +44,10 @@ catalog:
|
|
|
41
44
|
name: Higgsfield
|
|
42
45
|
description: Image and video generation
|
|
43
46
|
category: media
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
# Correct npm package name is `higgsfield-mcp` (no @ scope). The
|
|
48
|
+
# scoped `@higgsfield/mcp` returns 404 — was never published.
|
|
49
|
+
install: { method: npx, package: "higgsfield-mcp" }
|
|
50
|
+
secrets: [HF_API_KEY, HF_SECRET]
|
|
46
51
|
recommended: false
|
|
47
52
|
|
|
48
53
|
- id: playwright
|
|
@@ -63,7 +68,10 @@ catalog:
|
|
|
63
68
|
name: Fetch
|
|
64
69
|
description: Fetch and convert web content
|
|
65
70
|
category: core
|
|
66
|
-
|
|
71
|
+
# Official MCP fetch server is Python — runs via uvx. The npm
|
|
72
|
+
# package `@modelcontextprotocol/server-fetch` returns 404 — was
|
|
73
|
+
# never published. PyPI ships `mcp-server-fetch`.
|
|
74
|
+
install: { method: uvx, package: "mcp-server-fetch" }
|
|
67
75
|
recommended: true
|
|
68
76
|
|
|
69
77
|
- id: memory
|
|
@@ -98,10 +106,12 @@ catalog:
|
|
|
98
106
|
|
|
99
107
|
- id: linear
|
|
100
108
|
name: Linear
|
|
101
|
-
description: Issues and project management
|
|
109
|
+
description: Issues and project management (Linear-hosted remote MCP)
|
|
102
110
|
category: project
|
|
103
|
-
|
|
104
|
-
|
|
111
|
+
# Linear ships an OFFICIAL remote MCP at https://mcp.linear.app/mcp,
|
|
112
|
+
# accessed via the `mcp-remote` npm proxy. No API key in env —
|
|
113
|
+
# OAuth happens in-browser the first time Claude connects.
|
|
114
|
+
install: { method: npx, package: "mcp-remote", args: ["https://mcp.linear.app/mcp"] }
|
|
105
115
|
recommended: false
|
|
106
116
|
|
|
107
117
|
- id: sentry
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentikos/omega-os",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.16",
|
|
4
4
|
"description": "Omega OS — installable agentic operating system with verified-completion orchestration. Event-sourced engine, 8-block rack, autonomous agents, MCP.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"omega-os": "bin/omega-os.js"
|