@meridiona/meridian-darwin-arm64 1.11.0 → 1.13.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/VERSION CHANGED
@@ -1 +1 @@
1
- 1.11.0
1
+ 1.13.0
package/bin/meridian CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meridiona/meridian-darwin-arm64",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "description": "Prebuilt Meridian app for macOS arm64 (daemon binary + dashboard + Python services). Installed via @meridiona/meridian.",
5
5
  "homepage": "https://github.com/Meridiona/meridian",
6
6
  "repository": {
@@ -197,7 +197,17 @@ command -v node >/dev/null 2>&1 || { info "Installing Node.js…"; brew install
197
197
  PYTHON_BIN=""
198
198
  for p in python3.11 python3; do command -v "$p" >/dev/null 2>&1 && { PYTHON_BIN="$(command -v "$p")"; break; }; done
199
199
  [[ -n "${PYTHON_BIN}" ]] || { info "Installing Python 3.11…"; brew install python@3.11; PYTHON_BIN="$(command -v python3.11)"; }
200
- ok "node + python ($(${PYTHON_BIN} --version 2>&1))"
200
+ # uv is the package/venv manager for Python services. Install via Homebrew (already
201
+ # required by this installer) rather than the astral curl|sh installer.
202
+ UV_BIN=""
203
+ if command -v uv >/dev/null 2>&1; then
204
+ UV_BIN="$(command -v uv)"
205
+ else
206
+ info "Installing uv (Python package manager)…"
207
+ brew install uv
208
+ UV_BIN="$(command -v uv)"
209
+ fi
210
+ ok "node + python ($(${PYTHON_BIN} --version 2>&1)) + uv ($(${UV_BIN} --version 2>&1))"
201
211
 
202
212
  if ! command -v screenpipe >/dev/null 2>&1; then
203
213
  info "Installing screenpipe ${SCREENPIPE_VERSION} via npm…"
@@ -258,38 +268,23 @@ else
258
268
  fi
259
269
 
260
270
  # ── 4. Python venv + MLX deps ────────────────────────────────────────────────
261
- # meridian-npm-setup.sh preserves an existing venv across updates, so on a normal
262
- # update the venv is already here. The pip install (mlx-lm/outlines/fastapi) costs
263
- # minutes, so we skip it when the dependency spec is unchanged: hash the parts of
264
- # pyproject.toml that define the deps and stamp it in the venv. Re-pip only when a
265
- # fresh venv was created or the hash differs (a release that bumped Python deps).
271
+ # uv reads services/uv.lock (hashed, cross-platform, committed) and installs the
272
+ # exact pinned set with no PyPI resolution at install time. On subsequent runs
273
+ # `uv sync --frozen` is a no-op when the venv is already up-to-date faster than
274
+ # the old DEPS_STAMP approach and handles cross-version upgrades correctly.
275
+ # PYTHON_BIN is the brew-installed Python we know runs MLX/Metal; --python pins
276
+ # the interpreter used when uv creates a fresh venv (existing venvs are unchanged).
266
277
  VENV="${APP_ROOT}/services/.venv"
267
- DEPS_STAMP="${VENV}/.meridian-deps-hash"
268
- deps_hash() { shasum -a 256 "${APP_ROOT}/services/pyproject.toml" 2>/dev/null | cut -d' ' -f1; }
269
- want_hash="$(deps_hash)"
270
-
271
- fresh_venv=0
272
- if [[ ! -x "${VENV}/bin/python" ]]; then
273
- info "Creating Python venv…"
274
- rm -rf "${VENV}"
275
- "${PYTHON_BIN}" -m venv "${VENV}"
276
- fresh_venv=1
277
- fi
278
278
 
279
- have_hash=""
280
- [[ -f "${DEPS_STAMP}" ]] && have_hash="$(cat "${DEPS_STAMP}" 2>/dev/null)"
281
-
282
- if [[ "${fresh_venv}" -eq 1 || "${want_hash}" != "${have_hash}" || -z "${want_hash}" ]]; then
283
- info "Installing Python + MLX deps (mlx-lm/outlines/fastapi; downloads ~ a few hundred MB on first run)…"
284
- "${VENV}/bin/pip" install --quiet --upgrade pip
285
- if "${VENV}/bin/pip" install --quiet -e "${APP_ROOT}/services[mlx]"; then
286
- [[ -n "${want_hash}" ]] && printf '%s\n' "${want_hash}" > "${DEPS_STAMP}"
287
- ok "Python services ready"
288
- else
289
- warn "pip install failed — leaving venv as-is; re-run 'meridian setup' to retry"
290
- fi
279
+ info "Installing Python + MLX deps (mlx-lm/outlines/fastapi; first run may download a few hundred MB)…"
280
+ if "${UV_BIN}" sync \
281
+ --project "${APP_ROOT}/services" \
282
+ --extra mlx \
283
+ --frozen \
284
+ --python "${PYTHON_BIN}"; then
285
+ ok "Python services ready ($(${VENV}/bin/python --version 2>&1))"
291
286
  else
292
- ok "Python deps unchangedreusing existing venv (skipped pip install)"
287
+ warn "uv sync failedleaving venv as-is; re-run 'meridian setup' to retry"
293
288
  fi
294
289
 
295
290
  # ── 5. macOS permissions for screenpipe (manual — can't be automated) ────────
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meridian-agents"
7
- version = "1.11.0"
7
+ version = "1.13.0"
8
8
  description = "Meridian agents — hermes task linking and Jira progress updates for meridian.db"
9
9
  requires-python = ">=3.11"
10
10
  authors = [{ name = "Meridiona" }]
@@ -51,6 +51,11 @@ pm_worklog_update = [
51
51
  [project.scripts]
52
52
  meridian-server = "agents.server:main"
53
53
 
54
+ [tool.uv]
55
+ # Lock all extras so `uv lock` produces a complete, reproducible uv.lock.
56
+ # install-from-bundle.sh installs the mlx extra via `uv sync --extra mlx --frozen`.
57
+ constraint-dependencies = []
58
+
54
59
  [tool.setuptools.packages.find]
55
60
  where = ["."]
56
61
  include = ["agents", "agents.*"]