agent-device 0.12.4 → 0.12.6

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 (31) hide show
  1. package/dist/src/152.js +1 -1
  2. package/dist/src/57.js +1 -1
  3. package/dist/src/641.js +38 -0
  4. package/dist/src/818.js +1 -1
  5. package/dist/src/backend.d.ts +527 -0
  6. package/dist/src/backend.js +1 -0
  7. package/dist/src/bin.js +62 -62
  8. package/dist/src/commands/index.d.ts +1880 -0
  9. package/dist/src/commands/index.js +1 -0
  10. package/dist/src/contracts.d.ts +1 -1
  11. package/dist/src/daemon.js +15 -15
  12. package/dist/src/index.d.ts +2029 -167
  13. package/dist/src/index.js +3 -3
  14. package/dist/src/io.d.ts +85 -0
  15. package/dist/src/io.js +1 -0
  16. package/dist/src/selectors.js +1 -1
  17. package/dist/src/testing/conformance.d.ts +753 -0
  18. package/dist/src/testing/conformance.js +1 -0
  19. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandExecution.swift +12 -3
  20. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift +1 -0
  21. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+ScreenRecorder.swift +24 -5
  22. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests.swift +2 -0
  23. package/ios-runner/AgentDeviceRunner/RecordingScripts/recording-resize.swift +182 -0
  24. package/ios-runner/RUNNER_PROTOCOL.md +1 -1
  25. package/package.json +17 -1
  26. package/skills/agent-device/references/bootstrap-install.md +13 -0
  27. package/skills/agent-device/references/macos-desktop.md +1 -1
  28. package/skills/agent-device/references/remote-tenancy.md +28 -5
  29. package/skills/agent-device/references/verification.md +1 -0
  30. package/dist/src/155.js +0 -38
  31. package/dist/src/940.js +0 -1
package/dist/src/940.js DELETED
@@ -1 +0,0 @@
1
- import{AppError as e}from"./152.js";import{normalizeText as t}from"./556.js";let r=new Set(["id","role","text","label","value","appname","windowtitle"]),n=new Set(["visible","hidden","editable","selected","enabled","hittable"]),l=new Set([...r,...n]);function i(t){let r=t.trim();if(!r)throw new e("INVALID_ARGS","Selector expression cannot be empty");let n=function(t){let r=[],n="",l=null;for(let i=0;i<t.length;i+=1){let u=t[i];if(('"'===u||"'"===u)&&!f(t,i)){l=c(l,u),n+=u;continue}if(!l&&"|"===u&&"|"===t[i+1]){let l=n.trim();if(!l)throw new e("INVALID_ARGS",`Invalid selector fallback expression: ${t}`);r.push(l),n="",i+=1;continue}n+=u}let i=n.trim();if(!i)throw new e("INVALID_ARGS",`Invalid selector fallback expression: ${t}`);return r.push(i),r}(r);if(0===n.length)throw new e("INVALID_ARGS","Selector expression cannot be empty");return{raw:r,selectors:n.map(t=>(function(t){let r=t.trim();if(!r)throw new e("INVALID_ARGS","Selector segment cannot be empty");let n=function(t){let r=[],n="",l=null;for(let e=0;e<t.length;e+=1){let i=t[e];if(('"'===i||"'"===i)&&!f(t,e)){l=c(l,i),n+=i;continue}if(!l&&/\s/.test(i)){n.trim()&&r.push(n.trim()),n="";continue}n+=i}if(l)throw new e("INVALID_ARGS",`Unclosed quote in selector: ${t}`);return n.trim()&&r.push(n.trim()),r}(r);if(0===n.length)throw new e("INVALID_ARGS",`Invalid selector segment: ${t}`);return{raw:r,terms:n.map(a)}})(t))}}function u(e){try{return i(e)}catch{return null}}function o(e){let t=e.trim();if(!t)return!1;if("||"===t)return!0;let r=t.indexOf("=");if(-1!==r){let e=t.slice(0,r).trim().toLowerCase();return l.has(e)}return l.has(t.toLowerCase())}function a(t){let r=t.trim();if(!r)throw new e("INVALID_ARGS","Empty selector term");let i=r.indexOf("=");if(-1===i){let l=r.toLowerCase();if(!n.has(l))throw new e("INVALID_ARGS",`Invalid selector term "${t}", expected key=value`);return{key:l,value:!0}}let u=r.slice(0,i).trim().toLowerCase(),o=r.slice(i+1).trim();if(!l.has(u))throw new e("INVALID_ARGS",`Unknown selector key: ${u}`);if(!o)throw new e("INVALID_ARGS",`Missing selector value for key: ${u}`);if(n.has(u)){let t,r="true"===(t=s(o).toLowerCase())||"false"!==t&&null;if(null===r)throw new e("INVALID_ARGS",`Invalid boolean value for ${u}: ${o}`);return{key:u,value:r}}return{key:u,value:s(o)}}function c(e,t){return e?e===t?null:e:t}function s(e){let t=e.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1).replace(/\\(["'])/g,"$1"):t}function f(e,t){let r=0;for(let n=t-1;n>=0&&"\\"===e[n];n-=1)r+=1;return r%2==1}function d(e){let t=e.trim().replace(/XCUIElementType/gi,"");t.startsWith("AX")&&(t=t.slice(2));let r=Math.max((t=t.toLowerCase()).lastIndexOf("."),t.lastIndexOf("/"));return -1!==r&&(t=t.slice(r+1)),t}function h(e,t,r){return t.terms.every(t=>(function(e,t,r){switch(t.key){case"id":return p(e.identifier,String(t.value));case"role":return p(d(e.type??""),String(t.value));case"label":return p(e.label,String(t.value));case"value":return p(e.value,String(t.value));case"text":return p([e.label,e.value,e.identifier].map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)[0]??"",String(t.value));case"appname":return p(e.appName,String(t.value));case"windowtitle":return p(e.windowTitle,String(t.value));case"visible":return m(e)===!!t.value;case"hidden":return!m(e)==!!t.value;case"editable":return w(e,r)===!!t.value;case"selected":return!0===e.selected==!!t.value;case"enabled":return!1!==e.enabled==!!t.value;case"hittable":return!0===e.hittable==!!t.value;default:return!1}})(e,t,r))}function m(e){return!0===e.hittable||!!e.rect&&e.rect.width>0&&e.rect.height>0}function w(e,t){var r;let n;return r=e.type??"",(!(n=d(r))||("android"===t?n.includes("edittext")||n.includes("autocompletetextview"):n.includes("textfield")||n.includes("securetextfield")||n.includes("searchfield")||n.includes("textview")||n.includes("textarea")||"search"===n))&&!1!==e.enabled}function p(e,r){return t(e??"")===t(r)}function S(e,t,r){let n=r.requireRect??!1,l=r.requireUnique??!0,i=[];for(let u=0;u<t.selectors.length;u+=1){let o=t.selectors[u],a=function(e,t,r,n){let l=0,i=null,u=null,o=!1;for(let a of e){if(n&&!a.rect||!h(a,t,r))continue;if(l+=1,i??=a,!u){u=a;continue}let e=function(e,t){let r=e.depth??0,n=t.depth??0;if(r!==n)return r>n?1:-1;let l=b(e),i=b(t);return l!==i?l<i?1:-1:0}(a,u);e>0?(u=a,o=!1):0===e&&(o=!0)}return{count:l,firstNode:i,disambiguated:o?null:u}}(e,o,r.platform,n);if(i.push({selector:o.raw,matches:a.count}),0!==a.count&&a.firstNode){if(l&&1!==a.count){if(!r.disambiguateAmbiguous||!a.disambiguated)continue;return{node:a.disambiguated,selector:o,selectorIndex:u,matches:a.count,diagnostics:i}}return{node:a.firstNode,selector:o,selectorIndex:u,matches:a.count,diagnostics:i}}}return null}function v(e,t,r){let n=r.requireRect??!1,l=[];for(let i=0;i<t.selectors.length;i+=1){let u=t.selectors[i],o=function(e,t,r,n){let l=0;for(let i of e)(!n||i.rect)&&h(i,t,r)&&(l+=1);return l}(e,u,r.platform,n);if(l.push({selector:u.raw,matches:o}),o>0)return{selectorIndex:i,selector:u,matches:o,diagnostics:l}}return null}function I(e,t,r){if(0===t.length)return`Selector did not match: ${e.raw}`;let n=t.map(e=>`${e.selector} -> ${e.matches}`).join(", ");return r.unique??!0?`Selector did not resolve uniquely (${n})`:`Selector did not match (${n})`}function b(e){return e.rect?e.rect.width*e.rect.height:1/0}export{v as findSelectorChainMatch,I as formatSelectorFailure,w as isNodeEditable,o as isSelectorToken,i as parseSelectorChain,S as resolveSelectorChain,m as isNodeVisible,u as tryParseSelectorChain};