@m13v/s4l 1.7.10-rc.2 → 1.7.10-rc.4
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/mcp/dist/version.json +2 -2
- package/mcp/manifest.json +5 -3
- package/mcp/package.json +1 -1
- package/package.json +1 -1
- package/scripts/release-mcpb.sh +12 -15
package/mcp/dist/version.json
CHANGED
package/mcp/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"dxt_version": "0.1",
|
|
3
3
|
"name": "social-autoposter",
|
|
4
4
|
"display_name": "S4L",
|
|
5
|
-
"version": "1.7.10-rc.
|
|
5
|
+
"version": "1.7.10-rc.4",
|
|
6
6
|
"description": "Draft, review, approve, and autopilot X/Twitter posts.",
|
|
7
7
|
"long_description": "## **⚠️ The disclaimer above is generic Claude boilerplate.** Anthropic shows the same warning on every plugin regardless of what it does; any plugin has the same level of access as any app you download from the internet.\n\nS4L is an open source product developed by Mediar.ai Incorporated, a VC-backed San Francisco-based startup.\n\nTo get started:\n\n1\\. Copy this prompt: **Set me up on S4L plugin end to end**\n\n2\\. Quit with CMD+Q, reopen Claude, paste into a new chat.\n\nWhat happens next:\n\n* About every 5 minutes S4L scans X for posts that match your topics and drafts replies in your voice.\n* Drafts show up as review cards, usually the first within a few minutes. Nothing is posted automatically; you approve each one.\n* Posting autopilot stays off until you explicitly turn it on.",
|
|
8
8
|
"author": {
|
|
@@ -19,8 +19,10 @@
|
|
|
19
19
|
"type": "node",
|
|
20
20
|
"entry_point": "dist/index.js",
|
|
21
21
|
"mcp_config": {
|
|
22
|
-
"command": "${__dirname}/
|
|
23
|
-
"args": [
|
|
22
|
+
"command": "${__dirname}/vendor/node-darwin-arm64/bin/node",
|
|
23
|
+
"args": [
|
|
24
|
+
"${__dirname}/dist/index.js"
|
|
25
|
+
],
|
|
24
26
|
"env": {
|
|
25
27
|
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
|
26
28
|
}
|
package/mcp/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m13v/s4l-mcp",
|
|
3
|
-
"version": "1.7.10-rc.
|
|
3
|
+
"version": "1.7.10-rc.4",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Desktop MCP client for social-autoposter (X/Twitter rail): manual draft/review/approve loop, autopilot control, and stats. Thin wrapper over the existing pipeline scripts.",
|
|
6
6
|
"license": "MIT",
|
package/package.json
CHANGED
package/scripts/release-mcpb.sh
CHANGED
|
@@ -387,7 +387,9 @@ console.log(' manifest tools ('+tools.length+'): '+tools.map(t=>t.name).join(',
|
|
|
387
387
|
# points at this vendored binary's absolute path, so every session type — main
|
|
388
388
|
# chat, agent-mode, any future session type — spawns the SAME real binary.
|
|
389
389
|
# Both macOS arches since 1.7.9: arm64 (every deployed box) AND x64 (Intel Macs
|
|
390
|
-
# still on Tahoe).
|
|
390
|
+
# still on Tahoe). Since the 2026-08-12 launch.js removal the manifest points
|
|
391
|
+
# straight at the arm64 binary, so x64 rides along in the bundle but is NOT
|
|
392
|
+
# spawnable via the manifest (no deployed Intel boxes today).
|
|
391
393
|
NODE_RUNTIME_VERSION="v24.18.0"
|
|
392
394
|
NODE_RUNTIME_PLATFORMS="darwin-arm64 darwin-x64"
|
|
393
395
|
NODE_CACHE_DIR="$REPO_ROOT/.cache/node-runtime"
|
|
@@ -491,7 +493,7 @@ for sub in mcp/dist/version.json mcp/package.json; do
|
|
|
491
493
|
echo " pipeline.tgz $sub: $SUBV ok"
|
|
492
494
|
done
|
|
493
495
|
|
|
494
|
-
REQUIRED_FILES="dist/index.js dist/runtime.js manifest.json
|
|
496
|
+
REQUIRED_FILES="dist/index.js dist/runtime.js manifest.json"
|
|
495
497
|
for p in $NODE_RUNTIME_PLATFORMS; do
|
|
496
498
|
REQUIRED_FILES="$REQUIRED_FILES vendor/node-$p/bin/node"
|
|
497
499
|
done
|
|
@@ -501,25 +503,26 @@ for f in $REQUIRED_FILES; do
|
|
|
501
503
|
n=$(printf '%s\n' "$LISTING" | grep -c "[0-9:] $f\$" || true)
|
|
502
504
|
[[ "$n" -ge 1 ]] || die "bundle missing $f"
|
|
503
505
|
done
|
|
504
|
-
echo " runtime + server + manifest +
|
|
506
|
+
echo " runtime + server + manifest + vendored node (both arches): ok"
|
|
505
507
|
|
|
506
508
|
# The compat gate inside Claude Desktop only recognizes a node-type extension
|
|
507
509
|
# when mcp_config.command is the bare string "node" or a path ending in .js
|
|
508
510
|
# (its fo() command-recognizer). Pointing at the vendored node BINARY shipped
|
|
509
511
|
# "this extension is incompatible" to every Mac without a system Node.js
|
|
510
|
-
# (first hit: new-user install, 2026-08-10).
|
|
511
|
-
#
|
|
512
|
+
# (first hit: new-user install, 2026-08-10). The launch.js shim that satisfied
|
|
513
|
+
# the gate was itself broken by Desktop 1.28929.0 (stdio-inherit re-exec lost
|
|
514
|
+
# the MCP transport), so per user decision 2026-08-12 the binary-path command
|
|
515
|
+
# is shipped again and this check is a WARNING, not a blocker.
|
|
512
516
|
MANIFEST_CMD=$(unzip -p "$BUNDLE" manifest.json 2>/dev/null | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).server.mcp_config.command" 2>/dev/null || echo "?")
|
|
513
517
|
case "$MANIFEST_CMD" in
|
|
514
518
|
node|node.exe|*.js) echo " manifest command Desktop-recognizable ($MANIFEST_CMD): ok" ;;
|
|
515
|
-
*)
|
|
519
|
+
*) echo " WARNING: manifest mcp_config.command '$MANIFEST_CMD' is not recognizable by Claude Desktop's node compat gate (must be 'node' or end in .js); Macs without system Node.js may see 'incompatible' at install" >&2 ;;
|
|
516
520
|
esac
|
|
517
521
|
|
|
518
|
-
# The vendored binaries
|
|
522
|
+
# The vendored binaries must survive the zip round-trip with
|
|
519
523
|
# their executable bits intact (extract to a temp dir and run --version where
|
|
520
524
|
# the host arch allows; a permissions regression here would silently produce a
|
|
521
|
-
# Node that Desktop can spawn but that refuses to execute
|
|
522
|
-
# agent-mode cannot exec).
|
|
525
|
+
# Node that Desktop can spawn but that refuses to execute).
|
|
523
526
|
VENDOR_CHECK_DIR="$(mktemp -d)"
|
|
524
527
|
for p in $NODE_RUNTIME_PLATFORMS; do
|
|
525
528
|
unzip -q -o "$BUNDLE" "vendor/node-$p/bin/node" -d "$VENDOR_CHECK_DIR"
|
|
@@ -533,13 +536,7 @@ for p in $NODE_RUNTIME_PLATFORMS; do
|
|
|
533
536
|
echo " vendored node ($p) survives bundle round-trip with exec bit intact; --version run skipped (host $HOST_OS-$HOST_ARCH cannot exec $p)"
|
|
534
537
|
fi
|
|
535
538
|
done
|
|
536
|
-
unzip -q -o "$BUNDLE" "launch.js" -d "$VENDOR_CHECK_DIR"
|
|
537
|
-
LAUNCH_CHECK="$VENDOR_CHECK_DIR/launch.js"
|
|
538
|
-
[[ -x "$LAUNCH_CHECK" ]] || die "launch.js in bundle lost its executable bit (agent-mode literal spawn would fail)"
|
|
539
|
-
head -c 9 "$LAUNCH_CHECK" | grep -q '^#!/bin/sh' || die "launch.js in bundle is missing its #!/bin/sh shebang"
|
|
540
|
-
node --check "$LAUNCH_CHECK" || die "launch.js in bundle is not valid JavaScript (Desktop built-in-node spawn would fail)"
|
|
541
539
|
rm -rf "$VENDOR_CHECK_DIR"
|
|
542
|
-
echo " launch.js: exec bit + shebang + JS syntax ok"
|
|
543
540
|
|
|
544
541
|
if [[ "$DO_RELEASE" == "0" ]]; then
|
|
545
542
|
say "Done (--no-release). Bundle ready at: $BUNDLE"
|