@meridiona/meridian-darwin-arm64 1.10.1 → 1.12.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 +51 -6
- package/scripts/meridian-npm-setup.sh +17 -1
- package/services/pyproject.toml +1 -1
- package/services/requirements-mlx.lock +112 -0
- package/ui.tar.gz +0 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.12.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.12.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,58 @@ 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
|
+
# Reproducible runtime: install the exact pinned set from requirements-mlx.lock,
|
|
269
|
+
# not the [mlx] extra resolved fresh from PyPI within version ranges (where a new
|
|
270
|
+
# upstream release could break a fresh install). Hash the lock (its source of
|
|
271
|
+
# truth) so a changed lock re-pips; fall back to pyproject when no lock shipped.
|
|
272
|
+
MLX_LOCK="${APP_ROOT}/services/requirements-mlx.lock"
|
|
273
|
+
deps_hash() {
|
|
274
|
+
local f="${MLX_LOCK}"; [[ -f "$f" ]] || f="${APP_ROOT}/services/pyproject.toml"
|
|
275
|
+
shasum -a 256 "$f" 2>/dev/null | cut -d' ' -f1
|
|
276
|
+
}
|
|
277
|
+
want_hash="$(deps_hash)"
|
|
278
|
+
|
|
279
|
+
fresh_venv=0
|
|
280
|
+
if [[ ! -x "${VENV}/bin/python" ]]; then
|
|
281
|
+
info "Creating Python venv…"
|
|
282
|
+
rm -rf "${VENV}"
|
|
283
|
+
"${PYTHON_BIN}" -m venv "${VENV}"
|
|
284
|
+
fresh_venv=1
|
|
285
|
+
fi
|
|
286
|
+
|
|
287
|
+
have_hash=""
|
|
288
|
+
[[ -f "${DEPS_STAMP}" ]] && have_hash="$(cat "${DEPS_STAMP}" 2>/dev/null)"
|
|
289
|
+
|
|
290
|
+
if [[ "${fresh_venv}" -eq 1 || "${want_hash}" != "${have_hash}" || -z "${want_hash}" ]]; then
|
|
291
|
+
info "Installing Python + MLX deps (mlx-lm/outlines/fastapi; downloads ~ a few hundred MB on first run)…"
|
|
292
|
+
"${VENV}/bin/pip" install --quiet --upgrade pip
|
|
293
|
+
_deps_ok=0
|
|
294
|
+
if [[ -f "${MLX_LOCK}" ]]; then
|
|
295
|
+
# Pinned lock + the local package WITHOUT re-resolving its deps.
|
|
296
|
+
"${VENV}/bin/pip" install --quiet -r "${MLX_LOCK}" \
|
|
297
|
+
&& "${VENV}/bin/pip" install --quiet --no-deps -e "${APP_ROOT}/services" \
|
|
298
|
+
&& _deps_ok=1
|
|
299
|
+
else
|
|
300
|
+
warn "no requirements-mlx.lock in bundle — resolving [mlx] from version ranges (not pinned)"
|
|
301
|
+
"${VENV}/bin/pip" install --quiet -e "${APP_ROOT}/services[mlx]" && _deps_ok=1
|
|
302
|
+
fi
|
|
303
|
+
if [[ "${_deps_ok}" -eq 1 ]]; then
|
|
304
|
+
[[ -n "${want_hash}" ]] && printf '%s\n' "${want_hash}" > "${DEPS_STAMP}"
|
|
305
|
+
ok "Python services ready"
|
|
306
|
+
else
|
|
307
|
+
warn "pip install failed — leaving venv as-is; re-run 'meridian setup' to retry"
|
|
308
|
+
fi
|
|
309
|
+
else
|
|
310
|
+
ok "Python deps unchanged — reusing existing venv (skipped pip install)"
|
|
311
|
+
fi
|
|
267
312
|
|
|
268
313
|
# ── 5. macOS permissions for screenpipe (manual — can't be automated) ────────
|
|
269
314
|
if [[ "${SKIP_PERMISSIONS}" -eq 0 ]]; then
|
|
@@ -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.12.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" }]
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# meridian — pinned dependency lock for the MLX inference server (services[mlx]).
|
|
2
|
+
#
|
|
3
|
+
# The exact, verified runtime set for the FastAPI MLX classifier/summariser.
|
|
4
|
+
# The installer installs from THIS file so every install is identical, instead
|
|
5
|
+
# of re-resolving mlx-lm/outlines/fastapi from PyPI within version ranges (which
|
|
6
|
+
# could pull an untested/broken upstream release into a fresh install).
|
|
7
|
+
#
|
|
8
|
+
# Regenerate after an intentional dep bump, from a known-good venv:
|
|
9
|
+
# uv pip compile services/pyproject.toml --extra mlx -o services/requirements-mlx.lock
|
|
10
|
+
# (or: python3.11 -m venv /tmp/le && /tmp/le/bin/pip install -e 'services[mlx]' \
|
|
11
|
+
# && /tmp/le/bin/pip freeze --exclude-editable > services/requirements-mlx.lock)
|
|
12
|
+
#
|
|
13
|
+
# Pinned from the verified arm64 venv on 2026-06-02 (mlx 0.31.2 / mlx-lm 0.31.3 /
|
|
14
|
+
# outlines 1.3.0 / fastapi 0.136.3). Not hashed yet — version pins first.
|
|
15
|
+
|
|
16
|
+
aiohappyeyeballs==2.6.2
|
|
17
|
+
aiohttp==3.14.0
|
|
18
|
+
aiosignal==1.4.0
|
|
19
|
+
annotated-doc==0.0.4
|
|
20
|
+
annotated-types==0.7.0
|
|
21
|
+
anyio==4.13.0
|
|
22
|
+
attrs==26.1.0
|
|
23
|
+
certifi==2026.5.20
|
|
24
|
+
cffi==2.0.0
|
|
25
|
+
charset-normalizer==3.4.7
|
|
26
|
+
click==8.4.1
|
|
27
|
+
cloudpickle==3.1.2
|
|
28
|
+
cryptography==48.0.0
|
|
29
|
+
datasets==4.8.5
|
|
30
|
+
dill==0.4.1
|
|
31
|
+
diskcache==5.6.3
|
|
32
|
+
distro==1.9.0
|
|
33
|
+
fastapi==0.136.3
|
|
34
|
+
filelock==3.29.0
|
|
35
|
+
frozenlist==1.8.0
|
|
36
|
+
fsspec==2026.2.0
|
|
37
|
+
genson==1.3.0
|
|
38
|
+
googleapis-common-protos==1.75.0
|
|
39
|
+
h11==0.16.0
|
|
40
|
+
hf-xet==1.5.0
|
|
41
|
+
httpcore==1.0.9
|
|
42
|
+
httpx==0.28.1
|
|
43
|
+
httpx-sse==0.4.3
|
|
44
|
+
huggingface_hub==1.17.0
|
|
45
|
+
idna==3.17
|
|
46
|
+
Jinja2==3.1.6
|
|
47
|
+
jiter==0.15.0
|
|
48
|
+
jsonpath-ng==1.8.0
|
|
49
|
+
jsonschema==4.26.0
|
|
50
|
+
jsonschema-specifications==2025.9.1
|
|
51
|
+
markdown-it-py==4.2.0
|
|
52
|
+
MarkupSafe==3.0.3
|
|
53
|
+
mcp==1.27.2
|
|
54
|
+
mdurl==0.1.2
|
|
55
|
+
mlx==0.31.2
|
|
56
|
+
mlx-lm==0.31.3
|
|
57
|
+
mlx-metal==0.31.2
|
|
58
|
+
multidict==6.7.1
|
|
59
|
+
multiprocess==0.70.19
|
|
60
|
+
numpy==2.4.6
|
|
61
|
+
openai==2.40.0
|
|
62
|
+
opentelemetry-api==1.42.1
|
|
63
|
+
opentelemetry-exporter-otlp-proto-common==1.42.1
|
|
64
|
+
opentelemetry-exporter-otlp-proto-http==1.42.1
|
|
65
|
+
opentelemetry-instrumentation==0.63b1
|
|
66
|
+
opentelemetry-instrumentation-logging==0.63b1
|
|
67
|
+
opentelemetry-proto==1.42.1
|
|
68
|
+
opentelemetry-sdk==1.42.1
|
|
69
|
+
opentelemetry-semantic-conventions==0.63b1
|
|
70
|
+
outlines==1.3.0
|
|
71
|
+
outlines_core==0.2.14
|
|
72
|
+
packaging==26.2
|
|
73
|
+
pandas==3.0.3
|
|
74
|
+
pillow==12.2.0
|
|
75
|
+
propcache==0.5.2
|
|
76
|
+
protobuf==6.33.6
|
|
77
|
+
psutil==6.1.1
|
|
78
|
+
pyarrow==24.0.0
|
|
79
|
+
pycparser==3.0
|
|
80
|
+
pydantic==2.13.4
|
|
81
|
+
pydantic-settings==2.14.1
|
|
82
|
+
pydantic_core==2.46.4
|
|
83
|
+
Pygments==2.20.0
|
|
84
|
+
PyJWT==2.13.0
|
|
85
|
+
python-dateutil==2.9.0.post0
|
|
86
|
+
python-dotenv==1.2.2
|
|
87
|
+
python-json-logger==2.0.7
|
|
88
|
+
python-multipart==0.0.30
|
|
89
|
+
PyYAML==6.0.3
|
|
90
|
+
referencing==0.37.0
|
|
91
|
+
regex==2026.5.9
|
|
92
|
+
requests==2.34.2
|
|
93
|
+
rich==15.0.0
|
|
94
|
+
rpds-py==2026.5.1
|
|
95
|
+
safetensors==0.7.0
|
|
96
|
+
sentencepiece==0.2.1
|
|
97
|
+
shellingham==1.5.4
|
|
98
|
+
six==1.17.0
|
|
99
|
+
sniffio==1.3.1
|
|
100
|
+
sse-starlette==3.4.4
|
|
101
|
+
starlette==1.2.1
|
|
102
|
+
tokenizers==0.22.2
|
|
103
|
+
tqdm==4.67.3
|
|
104
|
+
transformers==5.9.0
|
|
105
|
+
typer==0.25.1
|
|
106
|
+
typing-inspection==0.4.2
|
|
107
|
+
typing_extensions==4.15.0
|
|
108
|
+
urllib3==2.7.0
|
|
109
|
+
uvicorn==0.48.0
|
|
110
|
+
wrapt==2.2.1
|
|
111
|
+
xxhash==3.7.0
|
|
112
|
+
yarl==1.24.2
|
package/ui.tar.gz
CHANGED
|
Binary file
|