@buoy-gg/mcp 7.0.56 → 7.0.58

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/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{ALL_DEVICES as e,BROKER_PORT as o,BROKER_URL as r,DASHBOARD_NAME as t,DEFAULT_ACTION_TIMEOUT_MS as s,DEFAULT_SNAPSHOT_TIMEOUT_MS as i,PACKAGE_NAME as T,SyncClient as n,VERSION as a,buildAutomationConfig as g,compareReportStats as l,createMcpServer as E,estimateBatchMs as R,formatRankingMarkdown as A,getUpdateNotice as S,rankBatchFromIndex as _,registerConsoleTools as c,registerEventsTools as M,registerGenericTools as m,registerJotaiTools as O,registerPerfMonitorTools as p,registerReactQueryTools as u,registerReduxTools as I,registerRoutesTools as d,registerScreenshotTools as C,registerStorageTools as N,registerZustandTools as U,runInit as B}from"./chunk-YX73KHIH.mjs";import"./chunk-RYFN5J56.mjs";import"./chunk-ALXRBSW6.mjs";export{e as ALL_DEVICES,o as BROKER_PORT,r as BROKER_URL,t as DASHBOARD_NAME,s as DEFAULT_ACTION_TIMEOUT_MS,i as DEFAULT_SNAPSHOT_TIMEOUT_MS,T as PACKAGE_NAME,n as SyncClient,a as VERSION,g as buildAutomationConfig,l as compareReportStats,E as createMcpServer,R as estimateBatchMs,A as formatRankingMarkdown,S as getUpdateNotice,_ as rankBatchFromIndex,c as registerConsoleTools,M as registerEventsTools,m as registerGenericTools,O as registerJotaiTools,p as registerPerfMonitorTools,u as registerReactQueryTools,I as registerReduxTools,d as registerRoutesTools,C as registerScreenshotTools,N as registerStorageTools,U as registerZustandTools,B as runInit};
1
+ import{createRequire as e}from"module";const L=e(import.meta.url);import{runInit as r}from"./chunk-XDBVI5HB.mjs";import{ALL_DEVICES as o,BROKER_PORT as t,BROKER_URL as i,DASHBOARD_NAME as s,DEFAULT_ACTION_TIMEOUT_MS as a,DEFAULT_SNAPSHOT_TIMEOUT_MS as T,PACKAGE_NAME as n,SyncClient as m,VERSION as g,buildAutomationConfig as l,compareReportStats as R,createMcpServer as E,estimateBatchMs as _,formatRankingMarkdown as c,getUpdateNotice as p,rankBatchFromIndex as u,registerConsoleTools as A,registerEventsTools as S,registerGenericTools as M,registerJotaiTools as O,registerPerfMonitorTools as C,registerReactQueryTools as I,registerReduxTools as d,registerRoutesTools as f,registerScreenshotTools as N,registerStorageTools as U,registerZustandTools as B}from"./chunk-XUPR22SJ.mjs";import"./chunk-6EOB4FHJ.mjs";import"./chunk-OPHPYPJD.mjs";import"./chunk-MTTWR4T7.mjs";export{o as ALL_DEVICES,t as BROKER_PORT,i as BROKER_URL,s as DASHBOARD_NAME,a as DEFAULT_ACTION_TIMEOUT_MS,T as DEFAULT_SNAPSHOT_TIMEOUT_MS,n as PACKAGE_NAME,m as SyncClient,g as VERSION,l as buildAutomationConfig,R as compareReportStats,E as createMcpServer,_ as estimateBatchMs,c as formatRankingMarkdown,p as getUpdateNotice,u as rankBatchFromIndex,A as registerConsoleTools,S as registerEventsTools,M as registerGenericTools,O as registerJotaiTools,C as registerPerfMonitorTools,I as registerReactQueryTools,d as registerReduxTools,f as registerRoutesTools,N as registerScreenshotTools,U as registerStorageTools,B as registerZustandTools,r as runInit};
@@ -0,0 +1 @@
1
+ import{createRequire as e}from"module";const q=e(import.meta.url);import{GPU_RENDERER_JS as r,PLAYWRIGHT_MISSING as t,aggregateCase as a,caseUrl as o,cdpDeltas as i,checkBudgets as s,closeCall as c,closeWithin as m,expectFailureFrom as n,formatWebBenchMarkdown as l,isSoftwareGpu as u,keyMatches as p,loadChromium as h,locateStepTargets as d,mergeInteractions as R,missedInput as f,oneLine as g,percentile as b,runWebBench as k,shuffled as w,snapRefreshRate as B,summarizeFrameTrace as F,summarizeProbe as I,takeHostLock as S,tiedPairs as W,validateWebBenchOptions as _,waitForHostLock as C,webBenchFlags as G,withDeadline as L}from"./chunk-OPHPYPJD.mjs";import"./chunk-MTTWR4T7.mjs";export{r as GPU_RENDERER_JS,t as PLAYWRIGHT_MISSING,a as aggregateCase,o as caseUrl,i as cdpDeltas,s as checkBudgets,c as closeCall,m as closeWithin,n as expectFailureFrom,l as formatWebBenchMarkdown,u as isSoftwareGpu,p as keyMatches,h as loadChromium,d as locateStepTargets,R as mergeInteractions,f as missedInput,g as oneLine,b as percentile,k as runWebBench,w as shuffled,B as snapRefreshRate,F as summarizeFrameTrace,I as summarizeProbe,S as takeHostLock,W as tiedPairs,_ as validateWebBenchOptions,C as waitForHostLock,G as webBenchFlags,L as withDeadline};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@buoy-gg/mcp",
3
3
  "mcpName": "io.github.Buoy-gg/mcp",
4
- "version": "7.0.56",
4
+ "version": "7.0.58",
5
5
  "buoy": {
6
6
  "dashboardAuthVersion": 1
7
7
  },
@@ -33,17 +33,20 @@
33
33
  "dependencies": {
34
34
  "@modelcontextprotocol/sdk": "^1.29.0",
35
35
  "socket.io-client": "^4.8.1",
36
- "zod": "^3.25.0",
37
36
  "ws": "^8.18.0",
38
- "@buoy-gg/sync-broker": "^7.0.56",
39
- "@buoy-gg/license": "^7.0.56"
37
+ "zod": "^3.25.0",
38
+ "@buoy-gg/sync-broker": "^7.0.58",
39
+ "@buoy-gg/license": "^7.0.58"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^22.0.0",
43
+ "@types/pngjs": "^6.0.5",
44
+ "@types/ws": "^8.5.12",
45
+ "pixelmatch": "7.2.0",
46
+ "pngjs": "7.0.0",
43
47
  "rimraf": "^5.0.0",
44
48
  "tsup": "^8.5.1",
45
- "typescript": "~5.8.3",
46
- "@types/ws": "^8.5.12"
49
+ "typescript": "~5.8.3"
47
50
  },
48
51
  "engines": {
49
52
  "node": ">=18"
@@ -71,7 +74,7 @@
71
74
  ],
72
75
  "homepage": "https://buoy.gg",
73
76
  "scripts": {
74
- "build": "tsup",
77
+ "build": "node scripts/gen-hid.mjs && tsup",
75
78
  "typecheck": "tsc --noEmit",
76
79
  "clean": "rimraf dist",
77
80
  "test": "pnpm run typecheck && pnpm run smoke",
@@ -1 +0,0 @@
1
- import{cliPath as e,describeDevices as i,describeDiagnosis as r,describeInputs as s,proRequired as t,readEntitlement as c,run as d}from"./chunk-RYFN5J56.mjs";export{e as cliPath,i as describeDevices,r as describeDiagnosis,s as describeInputs,t as proRequired,c as readEntitlement,d as run};
@@ -1,5 +0,0 @@
1
- import{execFile as p}from"child_process";import{promisify as d}from"util";import{existsSync as l,readFileSync as h}from"fs";import u from"os";import i from"path";var m=d(p);function f(){const n=process.env.BUOY_SIMCAM_DIR;const e=[...n?[i.join(n,"buoycam")]:[],"/Applications/Buoy.app/Contents/Resources/simcam/buoycam",i.join(u.homedir(),"Applications/Buoy.app/Contents/Resources/simcam/buoycam")];let t=__dirname;for(let o=0;o<8;o++){e.push(i.join(t,"apps/desktop/resources/simcam/buoycam"));const a=i.dirname(t);if(a===t)break;t=a}return e}var s=null;function c(){if(s)return s;s=f().find(n=>l(n))??null;return s}async function y(n){const e=c();if(!e){return{ok:false,error:"The simulator camera components were not found. They ship with the Buoy desktop app \u2014 install it, or set BUOY_SIMCAM_DIR to the directory holding `buoycam`."}}try{const{stdout:t}=await m(e,[...n,"--json"],{timeout:3e4});return{ok:true,data:JSON.parse(t)}}catch(t){const o=t.stdout??"";try{return{ok:false,data:JSON.parse(o)}}catch{return{ok:false,error:t.message||"the simulator camera CLI failed"}}}}function g(n){const e=n.filter(r=>r.level==="fail");const t=n.filter(r=>r.level==="warn");if(e.length===0&&t.length===0){return"The simulator camera is healthy \u2014 every check passed."}const o=[];for(const r of[...e,...t]){o.push(`- **${r.name}** (${r.level}): ${r.detail}`);if(r.fix)o.push(` ${r.fix}`)}const a=e.length>0?`${e.length} problem${e.length===1?"":"s"} found.`:`No hard failures, but ${t.length} thing${t.length===1?"":"s"} worth knowing.`;return[a,"",...o].join("\n")}function b(n,e){if(n.length===0){return"No booted simulators.\n\n_Boot one first \u2014 `xcrun simctl boot <udid>`, or open Simulator.app. The camera attaches to a simulator, so nothing else here works until one is running._"}const t=[n.length===1?"1 booted simulator:":`${n.length} booted simulators:`,...n.map(o=>`- **${o.name}** (${o.runtime}) \u2014 \`${o.udid}\``)];if(n.length>1&&e===null){t.push("","_More than one is booted, so pass `udid` to list a specific one's apps \u2014 and to every other camera tool that takes one._");return t.join("\n")}if(e===null){t.push("","_Could not read the installed apps._");return t.join("\n")}if(e.length===0){t.push("","No apps installed on it.");return t.join("\n")}t.push("",`${e.length} installed app${e.length===1?"":"s"}:`,...e.map(o=>`- ${o.name} \u2014 \`${o.bundleId}\``),"","_Pass one of these bundle ids to `camera_launch` to relaunch it with the camera attached._");return t.join("\n")}function _(n,e){const t=[];t.push(n.length?'**Mac cameras** (for `kind: "camera"`):':"**Mac cameras**: none found.");if(n.length){t.push(...n.map(o=>`- ${o.name} \u2014 \`${o.uniqueId}\``))}else{t.push("_If this Mac has a webcam, Buoy has not been granted Camera permission (System Settings \u2192 Privacy & Security \u2192 Camera)._")}t.push("");t.push(e.length?'**Capturable windows** (for `kind: "screen"`, `value: "window:<id>"`):':"**Capturable windows**: none found.");if(e.length){t.push(...e.map(o=>`- ${o.app}${o.title?` \u2014 ${o.title}`:""} \u2014 \`window:${o.id}\``))}else{t.push("_Screen Recording permission is almost certainly missing (System Settings \u2192 Privacy & Security \u2192 Screen & System Audio Recording)._")}return t.join("\n")}function $(){const n=process.env.BUOY_ENTITLEMENT_FILE;if(n)return[n];return[i.join(u.homedir(),"Library/Application Support/Buoy/entitlement.json"),i.join(u.homedir(),"Library/Application Support/buoy-desktop/entitlement.json")]}function k(){for(const n of $()){try{if(!l(n))continue;const e=JSON.parse(h(n,"utf8"));return{tier:e.tier==="pro"||e.tier==="free"?e.tier:"locked",isPro:e.isPro===true&&e.hasDesktopAccess===true&&typeof e.validUntil==="number"&&Number.isFinite(e.validUntil)&&Date.now()<e.validUntil&&typeof e.proValidUntil==="number"&&Number.isFinite(e.proValidUntil)&&Date.now()<e.proValidUntil}}catch{}}return{tier:"locked",isPro:false}}function S(n){return`\`${n}\` is a Buoy Pro feature.
2
-
3
- The simulator camera itself is free \u2014 the Mac camera, image, video, test-pattern and QR sources all work in the Buoy desktop panel with a Free account. Pro adds the screen region, the non-QR symbologies (PDF417, Aztec, DataMatrix, Code 128), and driving any of it from an agent.
4
-
5
- _Tell the user to enter a licence in Buoy Desktop, or see https://buoy.gg/pricing. Don't try to work around it \u2014 use the desktop panel by hand instead._`}export{c as cliPath,y as run,g as describeDiagnosis,b as describeDevices,_ as describeInputs,k as readEntitlement,S as proRequired};