leapfrog-mcp 0.7.1 → 0.7.3

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.
@@ -126,7 +126,15 @@ export function humanTypeString(text, opts = {}) {
126
126
  }
127
127
  // ── Compute inter-key delay (flight time) ──────────────────────
128
128
  let delay;
129
- if (burstRemaining > 0) {
129
+ if (char === "\n") {
130
+ // Line break: cognitive pause (always, even during bursts)
131
+ delay = logNormalDelay(400, 0.5, 150);
132
+ if (burstRemaining > 0) {
133
+ burstRemaining = 0;
134
+ inBurst = false;
135
+ }
136
+ }
137
+ else if (burstRemaining > 0) {
130
138
  // Burst: 50% of base delay, still log-normal distributed
131
139
  delay = logNormalDelay(Math.round(baseDelay * 0.5), 0.35, 25);
132
140
  burstRemaining--;
@@ -141,10 +149,6 @@ export function humanTypeString(text, opts = {}) {
141
149
  // Punctuation: slightly longer pause
142
150
  delay = logNormalDelay(200, 0.4, 80);
143
151
  }
144
- else if (char === "\n") {
145
- // Line break: cognitive pause
146
- delay = logNormalDelay(400, 0.5, 150);
147
- }
148
152
  else {
149
153
  // Regular character: log-normal around baseDelay with bigram adjustment
150
154
  const multiplier = prevChar ? bigramMultiplier(prevChar, lower) : 1.0;
package/dist/index.js CHANGED
@@ -129,9 +129,9 @@ if (LEAP_TILE && LEAP_TILE !== "false") {
129
129
  const defaultW = LEAP_SCREEN_WIDTH > 0 ? LEAP_SCREEN_WIDTH : detectedScreen?.width ?? 1920;
130
130
  const defaultH = LEAP_SCREEN_HEIGHT > 0 ? LEAP_SCREEN_HEIGHT : detectedScreen?.height ?? 1080;
131
131
  tilesCoord = new TilesCoordinator(defaultW, defaultH);
132
- // Purge ALL slots not owned by this process handles zombie PIDs
133
- // from /mcp reconnects where old node process lingers alive.
134
- tilesCoord.purgeOtherPids().catch(() => { });
132
+ // Reap dead PIDs on startup clean up crashed/killed instances.
133
+ // Do NOT purge other live PIDs they're other terminals we want to tile with.
134
+ tilesCoord.reapDeadSlots().catch(() => { });
135
135
  // File watcher only needed for multi-terminal mode (multiple Leapfrog instances).
136
136
  // In single-instance mode, the watcher causes spurious reflows that fight
137
137
  // with external monitor positioning. Only enable when explicitly requested.
@@ -143,23 +143,20 @@ export function getAgentEyesInitScript() {
143
143
  style.textContent = \`
144
144
  #leapfrog-cursor {
145
145
  position: fixed;
146
- width: 20px;
147
- height: 20px;
148
- border-radius: 50%;
149
- background: rgba(34, 197, 94, 0.8);
150
- box-shadow: 0 0 12px rgba(34, 197, 94, 0.5), 0 0 4px rgba(34, 197, 94, 0.8);
146
+ width: 28px;
147
+ height: 28px;
151
148
  pointer-events: none;
152
149
  z-index: 2147483646;
153
- transform: translate(-50%, -50%);
154
150
  transition: left 0.04s linear, top 0.04s linear, opacity 0.3s ease;
155
151
  opacity: 0;
152
+ filter: drop-shadow(0 1px 3px rgba(0,0,0,0.4)) drop-shadow(0 0 8px rgba(34,197,94,0.3));
156
153
  }
157
154
  #leapfrog-cursor-ring {
158
155
  position: fixed;
159
156
  width: 36px;
160
157
  height: 36px;
161
158
  border-radius: 50%;
162
- border: 2px solid rgba(34, 197, 94, 0.4);
159
+ border: 2px solid rgba(34, 197, 94, 0.3);
163
160
  pointer-events: none;
164
161
  z-index: 2147483646;
165
162
  transform: translate(-50%, -50%);
@@ -191,6 +188,7 @@ export function getAgentEyesInitScript() {
191
188
  var cursor = document.createElement('div');
192
189
  cursor.id = 'leapfrog-cursor';
193
190
  cursor.setAttribute('data-leapfrog', 'true');
191
+ cursor.innerHTML = '<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L12 26L15 15L26 12L2 2Z" fill="#22c55e" stroke="#166534" stroke-width="1.5" stroke-linejoin="round"/></svg>';
194
192
  (document.body || document.documentElement).appendChild(cursor);
195
193
 
196
194
  var ring = document.createElement('div');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leapfrog-mcp",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "Multi-session browser MCP for AI agents — 36 tools, stealth, persistent auth, code-first scripts, API sniffer, agent intelligence",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",