@meridiona/meridian-darwin-arm64 1.10.0 → 1.11.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 +1 -1
- package/bin/meridian +0 -0
- package/package.json +1 -1
- package/scripts/install-from-bundle.sh +33 -6
- package/scripts/install-screenpipe-daemon.sh +20 -1
- package/scripts/meridian-npm-setup.sh +17 -1
- package/services/pyproject.toml +1 -1
- package/ui.tar.gz +0 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.11.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.
|
|
3
|
+
"version": "1.11.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": {
|
|
@@ -257,13 +257,40 @@ else
|
|
|
257
257
|
ok "meridian-daemon + meridian → ~/.local/bin"
|
|
258
258
|
fi
|
|
259
259
|
|
|
260
|
-
# ── 4. Python venv + MLX deps
|
|
261
|
-
|
|
260
|
+
# ── 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).
|
|
262
266
|
VENV="${APP_ROOT}/services/.venv"
|
|
263
|
-
|
|
264
|
-
"${
|
|
265
|
-
"$
|
|
266
|
-
|
|
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
|
+
|
|
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
|
|
291
|
+
else
|
|
292
|
+
ok "Python deps unchanged — reusing existing venv (skipped pip install)"
|
|
293
|
+
fi
|
|
267
294
|
|
|
268
295
|
# ── 5. macOS permissions for screenpipe (manual — can't be automated) ────────
|
|
269
296
|
if [[ "${SKIP_PERMISSIONS}" -eq 0 ]]; then
|
|
@@ -31,12 +31,31 @@ if [[ ! -f "${TEMPLATE}" ]]; then
|
|
|
31
31
|
exit 1
|
|
32
32
|
fi
|
|
33
33
|
|
|
34
|
-
# Locate the screenpipe binary.
|
|
34
|
+
# Locate the screenpipe binary. The npm package ships a Node *wrapper* at
|
|
35
|
+
# `command -v screenpipe` (a cli.js shim) that spawns the real arm64 Mach-O. If
|
|
36
|
+
# the launchd agent launches that wrapper, macOS attributes Screen Recording /
|
|
37
|
+
# Accessibility to `node` (the responsible process) — a broad, fragile grant
|
|
38
|
+
# (breaks on node upgrades) that also shows a scary "node wants to record your
|
|
39
|
+
# screen" prompt. Resolve the real Mach-O and launch it directly so the grant
|
|
40
|
+
# attaches to a stable binary named `screenpipe` (and survives reinstalls of the
|
|
41
|
+
# same version, since its path is fixed). Falls back to whatever `command -v`
|
|
42
|
+
# found when screenpipe is a native binary (Homebrew) rather than the npm shim.
|
|
35
43
|
SCREENPIPE_BIN="$(command -v screenpipe)" || true
|
|
36
44
|
if [[ -z "${SCREENPIPE_BIN}" ]]; then
|
|
37
45
|
echo "✗ screenpipe binary not found in PATH — install with: npm install -g screenpipe" >&2
|
|
38
46
|
exit 1
|
|
39
47
|
fi
|
|
48
|
+
_npm_root="$(npm root -g 2>/dev/null || true)"
|
|
49
|
+
if [[ -n "${_npm_root}" && -d "${_npm_root}/screenpipe" ]]; then
|
|
50
|
+
_real=""
|
|
51
|
+
while IFS= read -r _cand; do
|
|
52
|
+
if file "${_cand}" 2>/dev/null | grep -q "Mach-O"; then _real="${_cand}"; break; fi
|
|
53
|
+
done < <(find "${_npm_root}/screenpipe" -type f -name screenpipe -perm +0111 2>/dev/null)
|
|
54
|
+
if [[ -n "${_real}" ]]; then
|
|
55
|
+
SCREENPIPE_BIN="${_real}"
|
|
56
|
+
echo "→ using the real screenpipe binary (not the node wrapper): ${SCREENPIPE_BIN}"
|
|
57
|
+
fi
|
|
58
|
+
fi
|
|
40
59
|
|
|
41
60
|
mkdir -p "${HOME}/.meridian/logs"
|
|
42
61
|
mkdir -p "${LAUNCH_AGENTS}"
|
|
@@ -20,13 +20,29 @@ mkdir -p "$(dirname "${APP}")"
|
|
|
20
20
|
keep=""
|
|
21
21
|
if [[ -f "${APP}/.env" ]]; then keep="$(mktemp)"; cp "${APP}/.env" "${keep}"; fi
|
|
22
22
|
|
|
23
|
+
# Preserve the Python venv across updates. Rebuilding it (python -m venv + pip
|
|
24
|
+
# install mlx-lm/outlines/…) costs minutes; most releases don't change Python
|
|
25
|
+
# deps, so move it aside and restore it to the SAME absolute path (its baked-in
|
|
26
|
+
# shebangs stay valid). install-from-bundle.sh then only re-pips when the deps
|
|
27
|
+
# hash actually changes. Kept in a sibling dir under ~/.meridian so the move is
|
|
28
|
+
# an instant rename (same filesystem), never a cross-volume copy.
|
|
29
|
+
venv_keep="${HOME}/.meridian/.venv-update-keep"
|
|
30
|
+
rm -rf "${venv_keep}"
|
|
31
|
+
if [[ -d "${APP}/services/.venv" ]]; then mv "${APP}/services/.venv" "${venv_keep}"; fi
|
|
32
|
+
|
|
23
33
|
rm -rf "${APP}"
|
|
24
34
|
mkdir -p "${APP}"
|
|
25
|
-
# Copy the prebuilt payload (bin/ ui
|
|
35
|
+
# Copy the prebuilt payload (bin/ ui.tar.gz services/ scripts/ .env.example VERSION).
|
|
26
36
|
cp -R "${BUNDLE}/." "${APP}/"
|
|
27
37
|
# Drop npm-package metadata that isn't part of the app.
|
|
28
38
|
rm -f "${APP}/package.json" "${APP}/README.md" "${APP}/.gitignore" "${APP}/.npmignore"
|
|
29
39
|
|
|
30
40
|
[[ -n "${keep}" ]] && { cp "${keep}" "${APP}/.env"; rm -f "${keep}"; }
|
|
41
|
+
# Restore the preserved venv (the bundle ships services/ source but no venv).
|
|
42
|
+
if [[ -d "${venv_keep}" ]]; then
|
|
43
|
+
mkdir -p "${APP}/services"
|
|
44
|
+
rm -rf "${APP}/services/.venv"
|
|
45
|
+
mv "${venv_keep}" "${APP}/services/.venv"
|
|
46
|
+
fi
|
|
31
47
|
|
|
32
48
|
exec bash "${APP}/scripts/install-from-bundle.sh" "$@"
|
package/services/pyproject.toml
CHANGED
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "meridian-agents"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.11.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" }]
|
package/ui.tar.gz
CHANGED
|
Binary file
|