@vruum/skills 0.6.16 → 0.6.17

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vruum",
3
- "version": "0.6.16",
3
+ "version": "0.6.17",
4
4
  "description": "Vruum AI skills + remote MCP server for B2B GTM teams. Slash commands for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis, paired with the full Vruum MCP tool surface over OAuth 2.1.",
5
5
  "author": {
6
6
  "name": "Vruum AI",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vruum",
3
- "version": "0.6.16",
3
+ "version": "0.6.17",
4
4
  "description": "Vruum AI skills + remote MCP server for B2B GTM teams. Skills for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis, paired with the full Vruum MCP tool surface over OAuth 2.1.",
5
5
  "author": {
6
6
  "name": "Vruum AI",
@@ -21,7 +21,9 @@ CONFIG_FILE="$STATE_DIR/config.yaml"
21
21
  REMOTE_URL="${VRUUM_REMOTE_URL:-https://registry.npmjs.org/@vruum/skills/latest}"
22
22
 
23
23
  # Force flag busts cache + snooze (used by /vruum-skills-upgrade directly)
24
+ FORCE=0
24
25
  if [ "${1:-}" = "--force" ]; then
26
+ FORCE=1
25
27
  rm -f "$CACHE_FILE" "$SNOOZE_FILE"
26
28
  fi
27
29
 
@@ -75,6 +77,7 @@ if [ -f "$CACHE_FILE" ]; then
75
77
  case "$CACHED" in
76
78
  UP_TO_DATE*) TTL=60 ;;
77
79
  UPGRADE_AVAILABLE*) TTL=720 ;;
80
+ CHECK_FAILED*) TTL=30 ;;
78
81
  *) TTL=0 ;;
79
82
  esac
80
83
  STALE=$(find "$CACHE_FILE" -mmin +"$TTL" 2>/dev/null || true)
@@ -93,6 +96,12 @@ if [ -f "$CACHE_FILE" ]; then
93
96
  exit 0
94
97
  fi
95
98
  ;;
99
+ CHECK_FAILED*)
100
+ # Recent fetch failure cached — stay quiet and do NOT imply "up to
101
+ # date". Retry once the short TTL expires. A --force run never reaches
102
+ # here (it cleared the cache above), so it always re-fetches.
103
+ exit 0
104
+ ;;
96
105
  esac
97
106
  fi
98
107
  fi
@@ -100,13 +109,24 @@ fi
100
109
  # Step 5: slow path — fetch latest from npm registry.
101
110
  mkdir -p "$STATE_DIR"
102
111
  RESP="$(curl -fsSL --max-time 5 "$REMOTE_URL" 2>/dev/null || true)"
103
- # Extract "version":"X.Y.Z" without jq.
104
- REMOTE="$(echo "$RESP" | grep -oE '"version"[[:space:]]*:[[:space:]]*"[^"]+"' | head -1 | sed -E 's/.*"([^"]+)"$/\1/')"
112
+ # Extract "version":"X.Y.Z" without jq. The trailing `|| true` is load-bearing
113
+ # under `set -euo pipefail`: on a failed/empty fetch the grep matches nothing
114
+ # and (with pipefail) the pipeline exits non-zero, which would errexit the whole
115
+ # script mid-way — the original silent-failure path. Swallow it so REMOTE ends
116
+ # up empty and the unreachable-registry branch below handles it deliberately.
117
+ REMOTE="$(echo "$RESP" | grep -oE '"version"[[:space:]]*:[[:space:]]*"[^"]+"' | head -1 | sed -E 's/.*"([^"]+)"$/\1/' || true)"
105
118
  REMOTE="$(echo "$REMOTE" | tr -d '[:space:]')"
106
119
 
107
- # Reject anything that doesn't look like a semver number.
120
+ # Registry unreachable or unparseable response. A failed fetch is NOT evidence
121
+ # the local version is current — caching UP_TO_DATE here is the false-positive
122
+ # that pinned a sandboxed client to a stale bundle: its forced check returned
123
+ # nothing, which /vruum-skills-upgrade reads as "already on latest". Cache a
124
+ # short-lived CHECK_FAILED marker so passive checks don't hammer the registry,
125
+ # but never claim current. A forced check surfaces the failure so the user
126
+ # knows it couldn't run (vs. a real up-to-date).
108
127
  if ! echo "$REMOTE" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+'; then
109
- echo "UP_TO_DATE $LOCAL" > "$CACHE_FILE"
128
+ echo "CHECK_FAILED $LOCAL $(date +%s)" > "$CACHE_FILE"
129
+ if [ "$FORCE" = 1 ]; then echo "CHECK_FAILED $LOCAL"; fi
110
130
  exit 0
111
131
  fi
112
132
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vruum/skills",
3
- "version": "0.6.16",
3
+ "version": "0.6.17",
4
4
  "description": "Vruum AI skills for Claude Code, Claude Desktop, Codex CLI, and any AI assistant with a skill directory. Slash commands for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis. Pairs with the Vruum MCP server at https://api.vruum.ai/mcp.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,5 +42,5 @@
42
42
  "outreach",
43
43
  "gtm"
44
44
  ],
45
- "contentHash": "b8c87fc8fa92db1b14f993e7797fe6d7bd69ec24fec5fafa3256d346f7d0a0f9"
45
+ "contentHash": "ea6ebae97d7fd0f6f8ffe802a6634b495697627372def939359629ba6a0a0bee"
46
46
  }
@@ -67,10 +67,13 @@ Force a fresh check first, then run the flow above starting from Step 2:
67
67
  ~/.vruum/bin/vruum-skills-update-check --force
68
68
  ```
69
69
 
70
- If the forced check returns nothing, report `already on latest (v$(cat ~/.vruum/VERSION))` and exit.
70
+ Interpret the forced check's output:
71
+ - Returns nothing → genuinely up to date. Report `already on latest (v$(cat ~/.vruum/VERSION))` and exit.
72
+ - `CHECK_FAILED <local>` → the registry could NOT be reached (network/sandbox), so we do **not** know if you're current. Report `upgrade check failed — couldn't reach the npm registry (network/sandbox); not necessarily on latest. Try again later or from an unsandboxed shell.` Do NOT claim "already on latest." (A forced check emits this whenever the fetch fails; a sandbox that blocks the registry is the common cause.)
73
+ - `UPGRADE_AVAILABLE <old> <new>` → run the upgrade flow from Step 2.
71
74
 
72
75
  ## When something goes wrong
73
76
 
74
77
  - `npm install` fails with permissions → tell the user to re-run with `sudo` or fix their npm prefix. Don't auto-sudo.
75
78
  - `vruum-skills install` reports skipped skills → surface the conflict message verbatim; user needs to remove conflicting files.
76
- - Network failure on registry lookup → report `upgrade check failed, try again later` and continue with the original skill (don't block work on a transient fetch error).
79
+ - Network failure on registry lookup → the forced check now emits `CHECK_FAILED <local>` (it no longer silently looks up to date). Report `upgrade check failed, try again later` and continue with the original skill (don't block work on a transient fetch error).