agent-device 0.15.1 → 0.16.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.
Files changed (45) hide show
  1. package/README.md +51 -155
  2. package/android-multitouch-helper/README.md +41 -0
  3. package/android-multitouch-helper/dist/agent-device-android-multitouch-helper-0.16.0.apk +0 -0
  4. package/android-multitouch-helper/dist/agent-device-android-multitouch-helper-0.16.0.apk.sha256 +1 -0
  5. package/android-multitouch-helper/dist/agent-device-android-multitouch-helper-0.16.0.manifest.json +10 -0
  6. package/android-snapshot-helper/README.md +2 -0
  7. package/android-snapshot-helper/dist/agent-device-android-snapshot-helper-0.16.0.apk +0 -0
  8. package/android-snapshot-helper/dist/agent-device-android-snapshot-helper-0.16.0.apk.sha256 +1 -0
  9. package/android-snapshot-helper/dist/{agent-device-android-snapshot-helper-0.15.1.manifest.json → agent-device-android-snapshot-helper-0.16.0.manifest.json} +6 -6
  10. package/dist/src/1231.js +1 -1
  11. package/dist/src/1769.js +7 -7
  12. package/dist/src/2099.js +1 -0
  13. package/dist/src/221.js +4 -4
  14. package/dist/src/3622.js +3 -0
  15. package/dist/src/7519.js +1 -0
  16. package/dist/src/7556.js +1 -1
  17. package/dist/src/89.js +1 -0
  18. package/dist/src/940.js +1 -1
  19. package/dist/src/9542.js +2 -2
  20. package/dist/src/9639.js +2 -2
  21. package/dist/src/989.js +1 -1
  22. package/dist/src/android-adb.d.ts +26 -0
  23. package/dist/src/android-adb.js +1 -1
  24. package/dist/src/android-snapshot-helper.d.ts +30 -0
  25. package/dist/src/batch.d.ts +9 -9
  26. package/dist/src/cli.js +494 -76
  27. package/dist/src/index.d.ts +48 -5
  28. package/dist/src/internal/daemon.js +69 -44
  29. package/dist/src/server.js +2 -2
  30. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/AgentDeviceRunnerUITests-Bridging-Header.h +1 -0
  31. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerSynthesizedGesture.h +19 -0
  32. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerSynthesizedGesture.m +297 -0
  33. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandExecution.swift +144 -5
  34. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Interaction.swift +333 -23
  35. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Lifecycle.swift +3 -1
  36. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift +8 -0
  37. package/package.json +9 -3
  38. package/server.json +2 -2
  39. package/android-snapshot-helper/dist/agent-device-android-snapshot-helper-0.15.1.apk +0 -0
  40. package/android-snapshot-helper/dist/agent-device-android-snapshot-helper-0.15.1.apk.sha256 +0 -1
  41. package/dist/src/1393.js +0 -1
  42. package/dist/src/2151.js +0 -434
  43. package/dist/src/3572.js +0 -1
  44. package/dist/src/7599.js +0 -3
  45. package/dist/src/9671.js +0 -1
package/dist/src/3572.js DELETED
@@ -1 +0,0 @@
1
- import e from"node:path";import t from"node:crypto";import n from"node:fs";import{resolveUserPath as i,expandUserHomePath as r}from"./3267.js";import{findProjectRoot as o}from"./9671.js";import{splitSelectorFromArgs as s,tryParseSelectorChain as a}from"./940.js";import{AppError as l}from"./9152.js";function u(t){let n,o=(n=(t??"").trim())?i(n):e.join(r("~"),".agent-device");return{baseDir:o,infoPath:e.join(o,"daemon.json"),lockPath:e.join(o,"daemon.lock"),logPath:e.join(o,"daemon.log"),sessionsDir:e.join(o,"sessions")}}function c(e){let t=(e??"").trim().toLowerCase();return"http"===t?"http":"dual"===t?"dual":"socket"}function d(e){let t=(e??"").trim().toLowerCase();return"auto"===t?"auto":"socket"===t?"socket":"http"===t?"http":"auto"}function p(e){return"tenant"===(e??"").trim().toLowerCase()?"tenant":"none"}function f(e){if(!e)return;let t=e.trim();if(t&&/^[a-zA-Z0-9._-]{1,128}$/.test(t))return t}let m=/(?:^|[^\w$.])(?:import|export)\s+(?:type\s+)?(?:[^'"`]*?\s+from\s+)?['"]([^'"]+)['"]/gm,h=/import\(\s*['"]([^'"]+)['"]\s*\)/gm,g=[".ts",".tsx",".js",".jsx",".mjs",".cjs"];function v(){let e=process.argv[1];return e?S(e):"unknown"}function S(i,r=o()){try{let o=e.resolve(r),s=[e.resolve(i)],a=new Set,l=[];for(;s.length>0;){let t=s.pop();if(!t||a.has(t))continue;a.add(t);let i=n.statSync(t);if(!i.isFile())continue;let r=e.relative(o,t)||t;l.push(`${r}:${i.size}:${Math.trunc(i.mtimeMs)}`);let u=n.readFileSync(t,"utf8");for(let n of function(e){let t=new Set;return b(e,m,t),b(e,h,t),[...t]}(u)){let i=function(t,n){let i=e.resolve(e.dirname(t),n),r=x(i);if(r)return r;for(let e of g){let t=x(`${i}${e}`);if(t)return t}for(let t of g){let n=x(e.join(i,`index${t}`));if(n)return n}return null}(t,n);i&&s.push(i)}}let u=l.sort().join("|"),c=t.createHash("sha1").update(u).digest("hex");return`graph:${l.length}:${c}`}catch{return"unknown"}}function b(e,t,n){t.lastIndex=0;let i=null;for(;null!==(i=t.exec(e));){let e=i[1]?.trim();e?.startsWith(".")&&n.add(e)}}function x(e){try{return n.statSync(e).isFile()?e:null}catch{return null}}let I={alert:"alert",appState:"appstate",appSwitcher:"app-switcher",apps:"apps",back:"back",batch:"batch",boot:"boot",click:"click",close:"close",clipboard:"clipboard",devices:"devices",diff:"diff",fill:"fill",find:"find",focus:"focus",get:"get",home:"home",install:"install",installFromSource:"install-from-source",is:"is",keyboard:"keyboard",logs:"logs",longPress:"longpress",network:"network",open:"open",perf:"perf",pinch:"pinch",press:"press",push:"push",record:"record",reactNative:"react-native",reinstall:"reinstall",replay:"replay",rotate:"rotate",scroll:"scroll",screenshot:"screenshot",settings:"settings",snapshot:"snapshot",swipe:"swipe",test:"test",trace:"trace",triggerAppEvent:"trigger-app-event",type:"type",wait:"wait"},w={installSource:"install_source",leaseAllocate:"lease_allocate",leaseHeartbeat:"lease_heartbeat",leaseRelease:"lease_release",releaseMaterializedPaths:"release_materialized_paths",sessionList:"session_list"},N={inventory:y(w.sessionList,I.devices,I.apps),state:y(I.boot,I.appState),observability:y(I.perf,I.logs,I.network),replay:y(I.replay,I.test),snapshot:y(I.snapshot,I.diff,I.wait,I.alert,I.settings),replayScopedAction:y(I.alert,I.back,I.click,I.clipboard,I.diff,I.fill,I.find,I.get,I.home,I.is,I.keyboard,I.longPress,I.pinch,I.press,I.record,I.reactNative,I.rotate,I.screenshot,I.scroll,I.settings,I.snapshot,I.swipe,I.type,I.wait),selectorValidationExempt:y(w.sessionList,I.devices,w.releaseMaterializedPaths),leaseAdmissionExempt:y(w.sessionList,I.devices,w.releaseMaterializedPaths,w.leaseAllocate,w.leaseHeartbeat,w.leaseRelease)};function y(...e){return new Set(e)}function A(e){if(e[0]?.startsWith("@")){let t=C(e.slice(1));return{ref:e[0],...void 0===t?{}:{label:t}}}let t=s(e);return t?{selector:t.selectorExpression}:{x:Number(e[0]),y:Number(e[1])}}function _(e){return void 0!==e.ref?[e.ref,...M(e.label)]:void 0!==e.selector?[e.selector]:[String(e.x),String(e.y)]}function M(e){return void 0===e?[]:[e]}function C(e){return e.join(" ").trim()||void 0}function D(e){return void 0!==e&&""!==e.trim()&&Number.isFinite(Number(e))}function k(e){if(!e)return null;let t=Number(e);return Number.isFinite(t)?t:null}function R(e){return{platform:e.platform,target:e.target,device:e.device,udid:e.udid,serial:e.serial,iosSimulatorDeviceSet:e.iosSimulatorDeviceSet,androidDeviceAllowlist:e.androidDeviceAllowlist}}function z(e){return{depth:e.snapshotDepth,scope:e.snapshotScope,raw:e.snapshotRaw}}function E(e){if(0===e.length)return null;let t=k(e[0]);if(null!==t)return{kind:"sleep",durationMs:t};if("text"===e[0]){let t=k(e[e.length-1]);return{kind:"text",text:(null!==t?e.slice(1,-1).join(" "):e.slice(1).join(" ")).trim(),timeoutMs:t}}if(e[0].startsWith("@")){let t=k(e[e.length-1]);return{kind:"ref",rawRef:e[0],timeoutMs:t}}let n=k(e[e.length-1]),i=s(null!==n?e.slice(0,-1):e.slice());return i&&0===i.rest.length&&a(i.selectorExpression)?{kind:"selector",selectorExpression:i.selectorExpression,timeoutMs:n}:{kind:"text",text:(null!==n?e.slice(0,-1).join(" "):e.join(" ")).trim(),timeoutMs:n}}function L(e){return null===e?{}:{timeoutMs:e}}function F(e){if(void 0===e||""===e)throw new l("INVALID_ARGS","find requires query");return e}function P(e,t){if(void 0===e||""===e.trim())throw new l("INVALID_ARGS",`settings location set requires ${t}`);return O(Number(e),t)}function j(e){return{latitude:O(e?.latitude,"latitude"),longitude:O(e?.longitude,"longitude")}}function O(e,t){let n="latitude"===t?-90:-180,i="latitude"===t?90:180;if("number"!=typeof e||!Number.isFinite(e)||e<n||e>i)throw new l("INVALID_ARGS",`${t} must be a number from ${n} to ${i}`);return e}let T=U("wifi","airplane","location","animations"),q=U("on","off"),$=U("light","dark","toggle"),G=U("faceid","touchid"),V=U("match","nonmatch","enroll","unenroll"),B=U("match","nonmatch"),H=U("grant","deny","reset"),K=U("camera","microphone","photos","contacts","contacts-limited","notifications","calendar","location","location-always","media-library","motion","reminders","siri","accessibility","screen-recording","input-monitoring");function U(...e){return new Set(e)}function W(e,t){return void 0!==e&&t.has(e)}let Y={decode:A,encode:_},Z={decode:function(e){if(e[0]?.startsWith("@"))return{ref:e[0],label:C(e.slice(1))};let t=e.join(" ").trim();if(!t)throw new l("INVALID_ARGS","get requires @ref or selector expression");return{selector:t}},encode:function(e){return void 0!==e.ref?[e.ref,...M(e.label)]:[e.selector]}},J={decode:function(e){if(e[0]?.startsWith("@")){let t=e.length>=3?e.slice(2).join(" "):e.slice(1).join(" ");return{kind:"ref",target:{ref:e[0],label:e.length>=3?C([e[1]]):void 0},text:t}}let t=s(e,{preferTrailingValue:!0});return t?{kind:"selector",target:{selector:t.selectorExpression},text:t.rest.join(" ")}:{kind:"point",target:{x:Number(e[0]),y:Number(e[1])},text:e.slice(2).join(" ")}},encode:function(e){return[..._(e),e.text]}},Q={decode:function(e){let t=function(e){if(D(e[0])&&D(e[1]))return{target:e.slice(0,2),...void 0!==e[2]?{durationMs:Number(e[2])}:{}};let t=e.at(-1);return e.length>1&&D(t)?{target:e.slice(0,-1),durationMs:Number(t)}:{target:e}}(e);return{...A(t.target),...void 0!==t.durationMs?{durationMs:t.durationMs}:{}}},encode:function(e){return[..._(e),...void 0===e.durationMs?[]:[String(e.durationMs)]]}},X={decode:function(e,t){let n=E(e);if(!n)throw new l("INVALID_ARGS","wait requires <ms>, text <text>, @ref, or <selector> [timeoutMs].");let i={...R(t),...z(t)};if("sleep"===n.kind)return{...i,durationMs:n.durationMs};if("text"===n.kind){if(!n.text)throw new l("INVALID_ARGS","wait requires text.");return{...i,text:n.text,...L(n.timeoutMs)}}return"ref"===n.kind?{...i,ref:n.rawRef,...L(n.timeoutMs)}:{...i,selector:n.selectorExpression,...L(n.timeoutMs)}},encode:function(e){if(1!==[void 0!==e.durationMs?"durationMs":void 0,void 0!==e.text?"text":void 0,void 0!==e.ref?"ref":void 0,void 0!==e.selector?"selector":void 0].filter(Boolean).length)throw new l("INVALID_ARGS","wait command requires exactly one of durationMs, text, ref, or selector.");if(void 0!==e.durationMs)return[String(e.durationMs)];let t=void 0!==e.timeoutMs?[String(e.timeoutMs)]:[];if(void 0!==e.text)return["text",e.text,...t];if(void 0!==e.ref)return[e.ref,...t];let n=e.selector;return function(e){if(!a(e))throw new l("INVALID_ARGS",`Invalid wait selector: ${e}`)}(n),[n,...t]}},ee={decode:function(e,t){var n,i;let r={...{depth:(n=t).snapshotDepth,raw:n.snapshotRaw},...R(t),first:t.findFirst,last:t.findLast},o=function(e){if("text"===e||"label"===e||"value"===e||"role"===e||"id"===e)return e}(e[0]),s=void 0!==o,a=s?e[1]:e[0],u=s?2:1,c=e[u];if(void 0===c)return{...r,locator:o,query:F(a)};if("get"===c){let t=e[u+1];if("text"===t)return{...r,locator:o,query:F(a),action:"getText"};if("attrs"===t)return{...r,locator:o,query:F(a),action:"getAttrs"};throw new l("INVALID_ARGS","find get only supports text or attrs")}if("wait"===c){return{...r,locator:o,query:F(a),action:"wait",timeoutMs:void 0===(i=e[u+1])?void 0:Number(i)}}if("fill"===c||"type"===c)return{...r,locator:o,query:F(a),action:c,value:e.slice(u+1).join(" ")};if("click"===c||"focus"===c||"exists"===c)return{...r,locator:o,query:F(a),action:c};throw new l("INVALID_ARGS",`Unsupported find action: ${c}`)},encode:function(e){let t=e.locator&&"any"!==e.locator?[e.locator,e.query]:[e.query];switch(e.action){case void 0:case"click":case"focus":case"exists":return e.action?[...t,e.action]:t;case"getText":return[...t,"get","text"];case"getAttrs":return[...t,"get","attrs"];case"wait":var n;return[...t,"wait",...void 0===(n=e.timeoutMs)?[]:[String(n)]];case"fill":case"type":return[...t,e.action,e.value]}}},et={decode:function(e,t){let n={...z(t),...R(t)},i=e[0],r=s(e.slice(1),{preferTrailingValue:"text"===i});if(!r)throw new l("INVALID_ARGS","is requires a selector expression");if("text"===i)return{...n,predicate:i,selector:r.selectorExpression,value:r.rest.join(" ")};if("visible"===i||"hidden"===i||"exists"===i||"editable"===i||"selected"===i)return{...n,predicate:i,selector:r.selectorExpression};throw new l("INVALID_ARGS","is requires predicate: visible|hidden|exists|editable|selected|text")},encode:function(e){return[e.predicate,e.selector,..."text"===e.predicate?[e.value]:[]]}},en={decode:function(e,t){let n=R(t),i=e[0],r=e[1];if(W(i,T)&&W(r,q))return{...n,setting:i,state:r};if("location"===i&&"set"===r)return{...n,setting:i,state:r,latitude:P(e[2],"latitude"),longitude:P(e[3],"longitude")};if("appearance"===i&&W(r,$)||W(i,G)&&W(r,V)||"fingerprint"===i&&W(r,B))return{...n,setting:i,state:r};if("permission"===i&&W(r,H))return{...n,setting:i,state:r,permission:function(e){if(W(e,K))return e;throw new l("INVALID_ARGS","settings permission requires a permission target.")}(e[2]),mode:function(e){if(void 0===e||"full"===e||"limited"===e)return e;throw new l("INVALID_ARGS","settings permission mode must be full or limited.")}(e[3])};throw new l("INVALID_ARGS","Invalid settings arguments.")},encode:function(e){var t;return"location"===e.setting&&"set"===e.state?[e.setting,e.state,String(e.latitude),String(e.longitude)]:"permission"===e.setting?[e.setting,e.state,e.permission,...void 0===(t=e.mode)?[]:[t]]:[e.setting,e.state]}},ei=["out","overlayRefs","screenshotFullscreen","screenshotMaxSize","screenshotNoStabilize"],er=["screenshotFullscreen","screenshotMaxSize","screenshotNoStabilize"],eo=[{key:"screenshotFullscreen",names:["--fullscreen"],type:"boolean",usageLabel:"--fullscreen",usageDescription:"Screenshot: capture the full screen instead of the app window"},{key:"screenshotMaxSize",names:["--max-size"],type:"int",min:1,usageLabel:"--max-size <px>",usageDescription:"Screenshot: downscale so the longest edge is at most <px>"},{key:"screenshotNoStabilize",names:["--no-stabilize"],type:"boolean",usageLabel:"--no-stabilize",usageDescription:"Screenshot: skip Android demo-mode/status-bar stabilization and settle delay for low-latency capture loops"}];function es(e){return ec({overlayRefs:e?.overlayRefs,fullscreen:e?.screenshotFullscreen,maxSize:e?.screenshotMaxSize,stabilize:!e?.screenshotNoStabilize&&void 0})}function ea(e={}){return ec({overlayRefs:e.overlayRefs,screenshotFullscreen:e.screenshotFullscreen??e.fullscreen,screenshotMaxSize:e.screenshotMaxSize??e.maxSize,screenshotNoStabilize:e.screenshotNoStabilize??(!1===e.stabilize||void 0)})}function el(e,t){t?.screenshotFullscreen&&e.push("--fullscreen"),"number"==typeof t?.screenshotMaxSize&&e.push("--max-size",String(t.screenshotMaxSize)),t?.screenshotNoStabilize&&e.push("--no-stabilize")}function eu(e){let{args:t,flags:n,index:i}=e,r=t[i];if("--fullscreen"===r)return n.screenshotFullscreen=!0,{handled:!0,nextIndex:i};if("--no-stabilize"===r)return n.screenshotNoStabilize=!0,{handled:!0,nextIndex:i};if("--max-size"===r){let e=t[i+1],r=void 0===e?NaN:Number(e);if(!Number.isInteger(r)||r<1)throw new l("INVALID_ARGS","screenshot --max-size requires a positive integer");return n.screenshotMaxSize=r,{handled:!0,nextIndex:i+1}}return{handled:!1}}function ec(e){return Object.fromEntries(Object.entries(e).filter(e=>void 0!==e[1]))}let ed={apple:{simulator:!0,device:!0},android:{emulator:!0,device:!0,unknown:!0},linux:{device:!0}};function ep(e){return e}function ef(e){return Object.fromEntries(e.map(e=>[e.name,e.schema]))}function em(e){return Object.fromEntries(e.map(e=>[e.name,e.capability]))}let eh={decode:(e,t)=>({text:e.join(" "),delayMs:t?.delayMs}),encode:e=>[e.text]},eg=ep({name:I.type,schema:{helpDescription:"Type text in focused field",positionalArgs:["text"],allowsExtraPositionals:!0,allowedFlags:["delayMs"]},capability:ed,codec:eh}),ev=[eg],eS=ef(ev),eb=em(ev);function ex(e){return e?{message:e}:{}}function eI(e,t){return t?{...e,message:t}:e}function ew(e){return"string"==typeof e?.message&&e.message.length>0?e.message:null}function eN(e){let t=e.appId??e.bundleId??e.packageName;return{session:e.session,appId:t,appBundleId:e.bundleId,package:e.packageName}}function ey(e,t,n){return{deviceId:t,deviceName:n,..."android"===e?{serial:t}:"ios"===e?{udid:t}:{}}}function eA(e,t={}){let n=t.includeAndroidSerial??!0;return{platform:e.platform,target:e.target,device:e.name,id:e.id,..."ios"===e.platform?{device_udid:e.ios?.udid??e.id,ios_simulator_device_set:e.ios?.simulatorSetPath??null}:{},..."android"===e.platform&&n?{serial:e.android?.serial??e.id}:{}}}function e_(e){return{name:e.name,...eA(e.device,{includeAndroidSerial:!1}),createdAt:e.createdAt}}function eM(e){return{platform:e.platform,id:e.id,name:e.name,kind:e.kind,target:e.target,..."boolean"==typeof e.booted?{booted:e.booted}:{}}}function eC(e){return e.bundleId??e.package??e.app}function eD(e){return eI({app:e.app,appPath:e.appPath,platform:e.platform,...e.appId?{appId:e.appId}:{},...e.bundleId?{bundleId:e.bundleId}:{},...e.package?{package:e.package}:{}},`Installed: ${eC(e)}`)}function ek(e){return e.appName??e.bundleId??e.packageName??e.launchTarget}function eR(e){return eI({launchTarget:e.launchTarget,...e.appName?{appName:e.appName}:{},...e.appId?{appId:e.appId}:{},...e.bundleId?{bundleId:e.bundleId}:{},...e.packageName?{package:e.packageName}:{},...e.installablePath?{installablePath:e.installablePath}:{},...e.archivePath?{archivePath:e.archivePath}:{},...e.materializationId?{materializationId:e.materializationId}:{},...e.materializationExpiresAt?{materializationExpiresAt:e.materializationExpiresAt}:{}},`Installed: ${ek(e)}`)}function ez(e){let t=e.appName??e.appBundleId??e.session;return eI({session:e.session,...e.appName?{appName:e.appName}:{},...e.appBundleId?{appBundleId:e.appBundleId}:{},...e.startup?{startup:e.startup}:{},...e.runtime?{runtime:e.runtime}:{},...e.device?eA(e.device):{}},t?`Opened: ${t}`:"Opened")}function eE(e){return{session:e.session,...e.shutdown?{shutdown:e.shutdown}:{},...ex(e.session?`Closed: ${e.session}`:"Closed")}}function eL(e){return{nodes:e.nodes,truncated:e.truncated,...e.appName?{appName:e.appName}:{},...e.appBundleId?{appBundleId:e.appBundleId}:{},...e.visibility?{visibility:e.visibility}:{},...e.androidSnapshot?{androidSnapshot:e.androidSnapshot}:{},...e.warnings&&e.warnings.length>0?{warnings:e.warnings}:{},...e.unchanged?{unchanged:e.unchanged}:{}}}function eF(e,t,n,i){let r=n(e[t]);if(void 0===r)throw new l("COMMAND_FAILED",i,{response:e});return r}function eP(e,t){return eF(e,t,eK,`Daemon response is missing "${t}".`)}function ej(e,t){return eK(e[t])}function eO(e,t){var n;let i;return n=eK,null===(i=e[t])?null:n(i)}function eT(e,t){return eF(e,t,eU,`Daemon response is missing numeric "${t}".`)}function eq(e,t){return eF(e,t,eW,`Daemon response has invalid "${t}".`)}function e$(e,t){return eF(e,t,eY,`Daemon response has invalid "${t}".`)}function eG(e,t){return function(e){return"tv"===e||"mobile"===e||"desktop"===e?e:void 0}(e[t])??"mobile"}function eV(e,t){let n=e[t];if(!eJ(n))return;let i=eH(n,"x"),r=eH(n,"y"),o=eH(n,"width"),s=eH(n,"height");if(void 0!==i&&void 0!==r&&void 0!==o&&void 0!==s)return{x:i,y:r,width:o,height:s}}function eB(e,t){let n=e[t];if(!eJ(n))return;let i=eH(n,"x"),r=eH(n,"y");if(void 0!==i&&void 0!==r)return{x:i,y:r}}function eH(e,t){let n=e[t];return"number"==typeof n?n:void 0}function eK(e){return"string"==typeof e&&e.length>0?e:void 0}function eU(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function eW(e){return"ios"===e||"macos"===e||"android"===e||"linux"===e?e:void 0}function eY(e){return"simulator"===e||"emulator"===e||"device"===e?e:void 0}function eZ(e){if(!eJ(e))throw new l("COMMAND_FAILED","Daemon returned an unexpected response shape.",{value:e});return e}function eJ(e){return"object"==typeof e&&null!==e}function eQ(e){let t={};for(let[n,i]of Object.entries(e))void 0!==i&&(t[n]=i);return t}function eX(e){return e.split("\n").map(e=>e.trim()).filter(e=>e.length>0)}export{ed as ALL_DEVICE_COMMAND_CAPABILITY,N as DAEMON_COMMAND_GROUPS,eb as INTERACTION_COMMAND_CAPABILITIES,eS as INTERACTION_COMMAND_SCHEMAS,w as INTERNAL_COMMANDS,I as PUBLIC_COMMANDS,er as SCREENSHOT_ACTION_FLAG_KEYS,ei as SCREENSHOT_COMMAND_FLAG_KEYS,eo as SCREENSHOT_SPECIFIC_FLAG_DEFINITIONS,el as appendScreenshotScriptFlags,eZ as asRecord,eN as buildAppIdentifiers,ey as buildDeviceIdentifiers,em as commandCapabilityMap,ef as commandSchemaMap,S as computeDaemonCodeSignature,ep as defineCommand,Z as elementTargetCodec,J as fillCommandCodec,ee as findCommandCodec,Y as interactionTargetCodec,et as isCommandCodec,eJ as isRecord,Q as longPressCommandCodec,f as normalizeTenantId,k as parseTimeout,E as parseWaitPositionals,eQ as parsing_stripUndefined,ew as readCommandMessage,eG as readDeviceTarget,P as readLocationCoordinate,eO as readNullableString,ej as readOptionalString,eB as readPoint,eV as readRect,e$ as readRequiredDeviceKind,eT as readRequiredNumber,eq as readRequiredPlatform,eP as readRequiredString,eu as readScreenshotScriptFlag,j as requireLocationCoordinates,v as resolveDaemonCodeSignature,u as resolveDaemonPaths,c as resolveDaemonServerMode,d as resolveDaemonTransportPreference,eC as resolveDeployResultTarget,ek as resolveInstallFromSourceResultTarget,p as resolveSessionIsolationMode,ea as screenshotFlagsFromOptions,es as screenshotOptionsFromFlags,R as selectionOptionsFromFlags,z as selectorSnapshotOptionsFromFlags,eE as serializeCloseResult,eD as serializeDeployResult,eM as serializeDevice,eR as serializeInstallFromSourceResult,ez as serializeOpenResult,e_ as serializeSessionListEntry,eL as serializeSnapshotResult,en as settingsCommandCodec,eX as splitNonEmptyTrimmedLines,ex as successText,eh as typeCommandCodec,eg as typeCommandDefinition,X as waitCommandCodec,eI as withSuccessText};
package/dist/src/7599.js DELETED
@@ -1,3 +0,0 @@
1
- import{AsyncLocalStorage as e}from"node:async_hooks";import t from"node:crypto";import n from"node:fs";import o from"node:os";import r from"node:path";import{redactDiagnosticData as i}from"./9152.js";let a=new e;function s(){return t.randomBytes(8).toString("hex")}async function d(e,n){let o={...e,diagnosticId:`${Date.now().toString(36)}-${t.randomBytes(4).toString("hex")}`,events:[]};return await a.run(o,n)}function c(){let e=a.getStore();return e?{diagnosticId:e.diagnosticId,requestId:e.requestId,session:e.session,command:e.command,debug:e.debug}:{}}function g(e){let t=a.getStore();if(!t)return;let o={ts:new Date().toISOString(),level:e.level??"info",phase:e.phase,session:t.session,requestId:t.requestId,command:t.command,durationMs:e.durationMs,data:e.data?i(e.data):void 0};if(t.events.push(o),!t.debug)return;let r=`[agent-device][diag] ${JSON.stringify(o)}
2
- `;try{t.logPath&&n.appendFile(t.logPath,r,()=>{}),t.traceLogPath&&n.appendFile(t.traceLogPath,r,()=>{}),t.logPath||t.traceLogPath||process.stderr.write(r)}catch{}}async function l(e,t,n){let o=Date.now();try{let r=await t();return g({level:"info",phase:e,durationMs:Date.now()-o,data:n}),r}catch(t){throw g({level:"error",phase:e,durationMs:Date.now()-o,data:{...n??{},error:t instanceof Error?t.message:String(t)}}),t}}function u(e={}){let t=a.getStore();if(!t||!e.force&&!t.debug||0===t.events.length)return null;try{let e=(t.session??"default").replace(/[^a-zA-Z0-9._-]/g,"_"),a=new Date().toISOString().slice(0,10),s=r.join(o.homedir(),".agent-device","logs",e,a);n.mkdirSync(s,{recursive:!0});let d=new Date().toISOString().replace(/[:.]/g,"-"),c=r.join(s,`${d}-${t.diagnosticId}.ndjson`),g=t.events.map(e=>JSON.stringify(i(e)));return n.writeFileSync(c,`${g.join("\n")}
3
- `),t.events=[],c}catch{return null}}export{s as createRequestId,g as emitDiagnostic,u as flushDiagnosticsToSessionFile,c as getDiagnosticsMeta,l as withDiagnosticTimer,d as withDiagnosticsScope};
package/dist/src/9671.js DELETED
@@ -1 +0,0 @@
1
- import r from"node:fs";import e from"node:path";import{fileURLToPath as o}from"node:url";function t(){try{let o=n();return JSON.parse(r.readFileSync(e.join(o,"package.json"),"utf8")).version??"0.0.0"}catch{return"0.0.0"}}function n(){let t=e.dirname(o(import.meta.url)),n=t;for(let o=0;o<6;o+=1){let o=e.join(n,"package.json");if(r.existsSync(o))return n;n=e.dirname(n)}return t}export{n as findProjectRoot,t as readVersion};