cmdop 0.1.18__tar.gz → 0.1.20__tar.gz

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 (200) hide show
  1. {cmdop-0.1.18 → cmdop-0.1.20}/.gitignore +3 -0
  2. {cmdop-0.1.18 → cmdop-0.1.20}/PKG-INFO +17 -11
  3. {cmdop-0.1.18 → cmdop-0.1.20}/README.md +16 -10
  4. {cmdop-0.1.18 → cmdop-0.1.20}/pyproject.toml +1 -1
  5. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/__init__.py +1 -1
  6. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/browser_pb2.py +41 -25
  7. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/browser_pb2.pyi +132 -0
  8. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages_pb2.pyi +8 -0
  9. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/service_pb2.py +2 -2
  10. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/service_pb2_grpc.py +130 -0
  11. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/__init__.py +3 -1
  12. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/aio/service.py +93 -1
  13. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/aio/session.py +99 -26
  14. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/base/session.py +5 -0
  15. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/js/__init__.py +2 -0
  16. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/js/interaction.py +43 -0
  17. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/js/scroll.py +3 -1
  18. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/models.py +36 -1
  19. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/sync/service.py +119 -1
  20. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/sync/session.py +147 -34
  21. {cmdop-0.1.18 → cmdop-0.1.20}/LICENSE +0 -0
  22. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/__init__.py +0 -0
  23. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/agent_messages_pb2.py +0 -0
  24. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/agent_messages_pb2.pyi +0 -0
  25. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/agent_messages_pb2_grpc.py +0 -0
  26. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/common_types_pb2.py +0 -0
  27. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/common_types_pb2.pyi +0 -0
  28. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/common_types_pb2_grpc.py +0 -0
  29. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/control_messages_pb2.py +0 -0
  30. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/control_messages_pb2.pyi +0 -0
  31. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/control_messages_pb2_grpc.py +0 -0
  32. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/__init__.py +0 -0
  33. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/archive_pb2.py +0 -0
  34. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/archive_pb2.pyi +0 -0
  35. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/archive_pb2_grpc.py +0 -0
  36. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/changes_pb2.py +0 -0
  37. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/changes_pb2.pyi +0 -0
  38. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/changes_pb2_grpc.py +0 -0
  39. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/common_pb2.py +0 -0
  40. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/common_pb2.pyi +0 -0
  41. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/common_pb2_grpc.py +0 -0
  42. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/directory_pb2.py +0 -0
  43. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/directory_pb2.pyi +0 -0
  44. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/directory_pb2_grpc.py +0 -0
  45. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/file_crud_pb2.py +0 -0
  46. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/file_crud_pb2.pyi +0 -0
  47. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/file_crud_pb2_grpc.py +0 -0
  48. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/hls_pb2.py +0 -0
  49. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/hls_pb2.pyi +0 -0
  50. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/hls_pb2_grpc.py +0 -0
  51. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/requests_pb2.py +0 -0
  52. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/requests_pb2.pyi +0 -0
  53. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/requests_pb2_grpc.py +0 -0
  54. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/search_pb2.py +0 -0
  55. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/search_pb2.pyi +0 -0
  56. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/search_pb2_grpc.py +0 -0
  57. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/transfer_pb2.py +0 -0
  58. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/transfer_pb2.pyi +0 -0
  59. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations/transfer_pb2_grpc.py +0 -0
  60. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations_pb2.py +0 -0
  61. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations_pb2.pyi +0 -0
  62. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_operations_pb2_grpc.py +0 -0
  63. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/__init__.py +0 -0
  64. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/archive_pb2.py +0 -0
  65. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/archive_pb2.pyi +0 -0
  66. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/archive_pb2_grpc.py +0 -0
  67. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/directory_pb2.py +0 -0
  68. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/directory_pb2.pyi +0 -0
  69. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/directory_pb2_grpc.py +0 -0
  70. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/file_crud_pb2.py +0 -0
  71. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/file_crud_pb2.pyi +0 -0
  72. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/file_crud_pb2_grpc.py +0 -0
  73. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/hls_pb2.py +0 -0
  74. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/hls_pb2.pyi +0 -0
  75. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/hls_pb2_grpc.py +0 -0
  76. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/search_pb2.py +0 -0
  77. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/search_pb2.pyi +0 -0
  78. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc/search_pb2_grpc.py +0 -0
  79. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc_pb2.py +0 -0
  80. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc_pb2.pyi +0 -0
  81. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/file_rpc_pb2_grpc.py +0 -0
  82. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/message_pool.py +0 -0
  83. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/py.typed +0 -0
  84. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/__init__.py +0 -0
  85. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/agent_pb2.py +0 -0
  86. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/agent_pb2.pyi +0 -0
  87. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/agent_pb2_grpc.py +0 -0
  88. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/browser_pb2_grpc.py +0 -0
  89. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/device_pb2.py +0 -0
  90. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/device_pb2.pyi +0 -0
  91. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/device_pb2_grpc.py +0 -0
  92. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/extract_pb2.py +0 -0
  93. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/extract_pb2.pyi +0 -0
  94. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/extract_pb2_grpc.py +0 -0
  95. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/health_pb2.py +0 -0
  96. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/health_pb2.pyi +0 -0
  97. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/health_pb2_grpc.py +0 -0
  98. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/history_pb2.py +0 -0
  99. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/history_pb2.pyi +0 -0
  100. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/history_pb2_grpc.py +0 -0
  101. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/lifecycle_pb2.py +0 -0
  102. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/lifecycle_pb2.pyi +0 -0
  103. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/lifecycle_pb2_grpc.py +0 -0
  104. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/push_pb2.py +0 -0
  105. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/push_pb2.pyi +0 -0
  106. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/push_pb2_grpc.py +0 -0
  107. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/session_pb2.py +0 -0
  108. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/session_pb2.pyi +0 -0
  109. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/session_pb2_grpc.py +0 -0
  110. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/terminal_pb2.py +0 -0
  111. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/terminal_pb2.pyi +0 -0
  112. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages/terminal_pb2_grpc.py +0 -0
  113. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages_pb2.py +0 -0
  114. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/rpc_messages_pb2_grpc.py +0 -0
  115. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/service_pb2.pyi +0 -0
  116. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/tunnel_pb2.py +0 -0
  117. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/tunnel_pb2.pyi +0 -0
  118. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/_generated/tunnel_pb2_grpc.py +0 -0
  119. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/__init__.py +0 -0
  120. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/__init__.py +0 -0
  121. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/__init__.py +0 -0
  122. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/client.py +0 -0
  123. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/enums.py +0 -0
  124. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/logger.py +0 -0
  125. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machine_sharing/__init__.py +0 -0
  126. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machine_sharing/client.py +0 -0
  127. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machine_sharing/models.py +0 -0
  128. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machine_sharing/sync_client.py +0 -0
  129. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machines/__init__.py +0 -0
  130. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machines/client.py +0 -0
  131. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machines/models.py +0 -0
  132. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/machines__api__machines/sync_client.py +0 -0
  133. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/retry.py +0 -0
  134. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/schema.json +0 -0
  135. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/machines/sync_client.py +0 -0
  136. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/__init__.py +0 -0
  137. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/client.py +0 -0
  138. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/enums.py +0 -0
  139. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/logger.py +0 -0
  140. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/retry.py +0 -0
  141. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/schema.json +0 -0
  142. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/sync_client.py +0 -0
  143. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__oauth/__init__.py +0 -0
  144. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__oauth/client.py +0 -0
  145. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__oauth/models.py +0 -0
  146. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__oauth/sync_client.py +0 -0
  147. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__system/__init__.py +0 -0
  148. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__system/client.py +0 -0
  149. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__system/models.py +0 -0
  150. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/system/system__api__system/sync_client.py +0 -0
  151. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/__init__.py +0 -0
  152. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/client.py +0 -0
  153. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/enums.py +0 -0
  154. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/logger.py +0 -0
  155. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/retry.py +0 -0
  156. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/schema.json +0 -0
  157. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/sync_client.py +0 -0
  158. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/workspaces__api__workspaces/__init__.py +0 -0
  159. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/workspaces__api__workspaces/client.py +0 -0
  160. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/workspaces__api__workspaces/models.py +0 -0
  161. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/api/generated/workspaces/workspaces__api__workspaces/sync_client.py +0 -0
  162. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/client.py +0 -0
  163. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/config.py +0 -0
  164. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/discovery.py +0 -0
  165. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/exceptions.py +0 -0
  166. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/helpers/__init__.py +0 -0
  167. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/helpers/cleaner.py +0 -0
  168. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/helpers/formatting.py +0 -0
  169. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/logging.py +0 -0
  170. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/__init__.py +0 -0
  171. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/agent.py +0 -0
  172. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/base.py +0 -0
  173. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/config.py +0 -0
  174. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/extract.py +0 -0
  175. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/files.py +0 -0
  176. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/models/terminal.py +0 -0
  177. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/py.typed +0 -0
  178. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/__init__.py +0 -0
  179. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/agent.py +0 -0
  180. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/base.py +0 -0
  181. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/aio/__init__.py +0 -0
  182. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/base/__init__.py +0 -0
  183. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/base/service.py +0 -0
  184. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/js/core.py +0 -0
  185. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/js/fetch.py +0 -0
  186. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/parsing.py +0 -0
  187. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/browser/sync/__init__.py +0 -0
  188. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/extract.py +0 -0
  189. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/files.py +0 -0
  190. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/services/terminal.py +0 -0
  191. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/streaming/__init__.py +0 -0
  192. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/streaming/base.py +0 -0
  193. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/streaming/handlers.py +0 -0
  194. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/streaming/terminal.py +0 -0
  195. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/__init__.py +0 -0
  196. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/auth.py +0 -0
  197. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/base.py +0 -0
  198. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/discovery.py +0 -0
  199. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/local.py +0 -0
  200. {cmdop-0.1.18 → cmdop-0.1.20}/src/cmdop/transport/remote.py +0 -0
@@ -39,3 +39,6 @@ Thumbs.db
39
39
  # Build artifacts
40
40
  *.whl
41
41
  MANIFEST
42
+
43
+ # Logs
44
+ logs/*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmdop
3
- Version: 0.1.18
3
+ Version: 0.1.20
4
4
  Summary: Python SDK for CMDOP agent interaction
5
5
  Project-URL: Homepage, https://cmdop.com
6
6
  Project-URL: Documentation, https://cmdop.com
@@ -156,19 +156,23 @@ with client.browser.create_session() as b:
156
156
  title = item.select_one("h2").text()
157
157
  price = item.attr("data-price")
158
158
 
159
- # Human-like scrolling with random delays
159
+ # Scrolling with random delays
160
160
  for _ in range(10):
161
161
  soup = b.soup(".listings")
162
162
  # ... parse ...
163
- b.scroll("down", 700, human_like=True) # Natural micro-scrolls
163
+ b.scroll("down", 700)
164
164
  b.wait_random(0.8, 1.5) # Random delay
165
165
 
166
- # Scroll inside container (Facebook, Twitter feeds)
167
- b.scroll("down", 800, container="[role='feed']")
166
+ # Click with cursor movement (human-like)
167
+ b.click("button.buy", move_cursor=True) # Moves cursor before clicking
168
168
 
169
169
  # Click all "See more" buttons
170
170
  b.click_all_by_text("See more")
171
171
 
172
+ # Native mouse operations
173
+ b.mouse_move(500, 300) # Smooth cursor movement
174
+ b.hover(".tooltip-trigger") # Hover to reveal tooltip
175
+
172
176
  # JS fetch (bypass CORS, inherit cookies)
173
177
  data = b.fetch_json("https://api.site.com/v1/items")
174
178
  ```
@@ -176,7 +180,7 @@ with client.browser.create_session() as b:
176
180
  | Method | Description |
177
181
  |--------|-------------|
178
182
  | `navigate(url)` | Go to URL |
179
- | `click(selector)` | Click element |
183
+ | `click(selector, move_cursor)` | Click element (optionally move cursor first) |
180
184
  | `click_all_by_text(text, role)` | Click all matching elements |
181
185
  | `type(selector, text)` | Type text |
182
186
  | `wait_for(selector, ms)` | Wait for element |
@@ -190,20 +194,22 @@ with client.browser.create_session() as b:
190
194
  | `fetch_all(urls)` | Parallel fetch |
191
195
  | `execute_js(code)` | Run async JS |
192
196
  | `screenshot()` | PNG bytes |
193
- | `scroll(dir, amount, ...)` | Scroll page/container |
194
- | `scroll_to(selector)` | Scroll to element |
197
+ | `scroll(dir, amount, ...)` | Native scroll page |
198
+ | `scroll_to(selector)` | Scroll element into view |
195
199
  | `get_scroll_info()` | Position + page size |
196
- | `hover(selector)` | Hover |
200
+ | `get_page_info()` | Comprehensive page info |
201
+ | `mouse_move(x, y, steps)` | Move cursor to coordinates |
202
+ | `hover(selector)` | Hover over element |
197
203
  | `select(selector, value)` | Dropdown select |
198
204
  | `close_modal()` | Close dialogs |
205
+ | `press_key(key, selector)` | Press keyboard key |
199
206
  | `get/set_cookies()` | Cookie management |
200
207
 
201
208
  **scroll() parameters:**
202
209
  - `direction`: "up", "down", "left", "right"
203
210
  - `amount`: pixels to scroll
204
211
  - `smooth`: animate scroll (default True)
205
- - `human_like`: random micro-scrolls + variation
206
- - `container`: CSS selector for scroll container
212
+ - `selector`: scroll element into view (alternative to direction/amount)
207
213
 
208
214
  ## SDKBaseModel
209
215
 
@@ -115,19 +115,23 @@ with client.browser.create_session() as b:
115
115
  title = item.select_one("h2").text()
116
116
  price = item.attr("data-price")
117
117
 
118
- # Human-like scrolling with random delays
118
+ # Scrolling with random delays
119
119
  for _ in range(10):
120
120
  soup = b.soup(".listings")
121
121
  # ... parse ...
122
- b.scroll("down", 700, human_like=True) # Natural micro-scrolls
122
+ b.scroll("down", 700)
123
123
  b.wait_random(0.8, 1.5) # Random delay
124
124
 
125
- # Scroll inside container (Facebook, Twitter feeds)
126
- b.scroll("down", 800, container="[role='feed']")
125
+ # Click with cursor movement (human-like)
126
+ b.click("button.buy", move_cursor=True) # Moves cursor before clicking
127
127
 
128
128
  # Click all "See more" buttons
129
129
  b.click_all_by_text("See more")
130
130
 
131
+ # Native mouse operations
132
+ b.mouse_move(500, 300) # Smooth cursor movement
133
+ b.hover(".tooltip-trigger") # Hover to reveal tooltip
134
+
131
135
  # JS fetch (bypass CORS, inherit cookies)
132
136
  data = b.fetch_json("https://api.site.com/v1/items")
133
137
  ```
@@ -135,7 +139,7 @@ with client.browser.create_session() as b:
135
139
  | Method | Description |
136
140
  |--------|-------------|
137
141
  | `navigate(url)` | Go to URL |
138
- | `click(selector)` | Click element |
142
+ | `click(selector, move_cursor)` | Click element (optionally move cursor first) |
139
143
  | `click_all_by_text(text, role)` | Click all matching elements |
140
144
  | `type(selector, text)` | Type text |
141
145
  | `wait_for(selector, ms)` | Wait for element |
@@ -149,20 +153,22 @@ with client.browser.create_session() as b:
149
153
  | `fetch_all(urls)` | Parallel fetch |
150
154
  | `execute_js(code)` | Run async JS |
151
155
  | `screenshot()` | PNG bytes |
152
- | `scroll(dir, amount, ...)` | Scroll page/container |
153
- | `scroll_to(selector)` | Scroll to element |
156
+ | `scroll(dir, amount, ...)` | Native scroll page |
157
+ | `scroll_to(selector)` | Scroll element into view |
154
158
  | `get_scroll_info()` | Position + page size |
155
- | `hover(selector)` | Hover |
159
+ | `get_page_info()` | Comprehensive page info |
160
+ | `mouse_move(x, y, steps)` | Move cursor to coordinates |
161
+ | `hover(selector)` | Hover over element |
156
162
  | `select(selector, value)` | Dropdown select |
157
163
  | `close_modal()` | Close dialogs |
164
+ | `press_key(key, selector)` | Press keyboard key |
158
165
  | `get/set_cookies()` | Cookie management |
159
166
 
160
167
  **scroll() parameters:**
161
168
  - `direction`: "up", "down", "left", "right"
162
169
  - `amount`: pixels to scroll
163
170
  - `smooth`: animate scroll (default True)
164
- - `human_like`: random micro-scrolls + variation
165
- - `container`: CSS selector for scroll container
171
+ - `selector`: scroll element into view (alternative to direction/amount)
166
172
 
167
173
  ## SDKBaseModel
168
174
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cmdop"
3
- version = "0.1.18"
3
+ version = "0.1.20"
4
4
  description = "Python SDK for CMDOP agent interaction"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -124,7 +124,7 @@ from cmdop.logging import (
124
124
  get_log_dir,
125
125
  )
126
126
 
127
- __version__ = "0.1.18"
127
+ __version__ = "0.1.20"
128
128
 
129
129
  __all__ = [
130
130
  # Version
@@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default()
24
24
 
25
25
 
26
26
 
27
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1arpc_messages/browser.proto\x12\x08terminal\"\x9b\x01\n\x1b\x42rowserCreateSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x10\n\x08provider\x18\x02 \x01(\t\x12\x12\n\nprofile_id\x18\x03 \x01(\t\x12\x11\n\tstart_url\x18\x04 \x01(\t\x12\x10\n\x08headless\x18\x05 \x01(\x08\x12\r\n\x05width\x18\x06 \x01(\x05\x12\x0e\n\x06height\x18\x07 \x01(\x05\"Z\n\x1c\x42rowserCreateSessionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"L\n\x1a\x42rowserCloseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\"=\n\x1b\x42rowserCloseSessionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"i\n\x16\x42rowserNavigateRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"L\n\x17\x42rowserNavigateResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x11\n\tfinal_url\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"k\n\x13\x42rowserClickRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"6\n\x14\x42rowserClickResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x8d\x01\n\x12\x42rowserTypeRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x12\n\nhuman_like\x18\x05 \x01(\x08\x12\x13\n\x0b\x63lear_first\x18\x06 \x01(\x08\"5\n\x13\x42rowserTypeResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"j\n\x12\x42rowserWaitRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"D\n\x13\x42rowserWaitResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x66ound\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"{\n\x15\x42rowserExtractRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x11\n\tattribute\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\x05\"W\n\x16\x42rowserExtractResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06values\x18\x02 \x03(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"\x7f\n\x1a\x42rowserExtractRegexRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0f\n\x07pattern\x18\x03 \x01(\t\x12\x11\n\tfrom_html\x18\x04 \x01(\x08\x12\r\n\x05limit\x18\x05 \x01(\x05\"]\n\x1b\x42rowserExtractRegexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07matches\x18\x02 \x03(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"Y\n\x15\x42rowserGetHTMLRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\"F\n\x16\x42rowserGetHTMLResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04html\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"Y\n\x15\x42rowserGetTextRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\"F\n\x16\x42rowserGetTextResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"]\n\x1b\x42rowserExecuteScriptRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0e\n\x06script\x18\x03 \x01(\t\"N\n\x1c\x42rowserExecuteScriptResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06result\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"~\n\x18\x42rowserScreenshotRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x11\n\tfull_page\x18\x03 \x01(\x08\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12\x0f\n\x07quality\x18\x05 \x01(\x05\"I\n\x19\x42rowserScreenshotResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"H\n\x16\x42rowserGetStateRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\"U\n\x17\x42rowserGetStateResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"\x91\x01\n\rBrowserCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0e\n\x06secure\x18\x05 \x01(\x08\x12\x11\n\thttp_only\x18\x06 \x01(\x08\x12\x11\n\tsame_site\x18\x07 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x08 \x01(\x03\"t\n\x18\x42rowserSetCookiesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12(\n\x07\x63ookies\x18\x03 \x03(\x0b\x32\x17.terminal.BrowserCookie\";\n\x19\x42rowserSetCookiesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"Z\n\x18\x42rowserGetCookiesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\"e\n\x19\x42rowserGetCookiesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12(\n\x07\x63ookies\x18\x02 \x03(\x0b\x32\x17.terminal.BrowserCookie\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"\xd5\x01\n\x1f\x42rowserValidateSelectorsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0c\n\x04item\x18\x03 \x01(\t\x12\x45\n\x06\x66ields\x18\x04 \x03(\x0b\x32\x35.terminal.BrowserValidateSelectorsRequest.FieldsEntry\x1a-\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd2\x02\n BrowserValidateSelectorsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x46\n\x06\x63ounts\x18\x03 \x03(\x0b\x32\x36.terminal.BrowserValidateSelectorsResponse.CountsEntry\x12H\n\x07samples\x18\x04 \x03(\x0b\x32\x37.terminal.BrowserValidateSelectorsResponse.SamplesEntry\x12\x0e\n\x06\x65rrors\x18\x05 \x03(\t\x12\r\n\x05\x65rror\x18\x06 \x01(\t\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a.\n\x0cSamplesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"}\n\x19\x42rowserExtractDataRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0c\n\x04item\x18\x03 \x01(\t\x12\x13\n\x0b\x66ields_json\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\x05\"_\n\x1a\x42rowserExtractDataResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x12\n\nitems_json\x18\x02 \x01(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\tB\x10Z\x0eterminal/protob\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1arpc_messages/browser.proto\x12\x08terminal\"\x9b\x01\n\x1b\x42rowserCreateSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x10\n\x08provider\x18\x02 \x01(\t\x12\x12\n\nprofile_id\x18\x03 \x01(\t\x12\x11\n\tstart_url\x18\x04 \x01(\t\x12\x10\n\x08headless\x18\x05 \x01(\x08\x12\r\n\x05width\x18\x06 \x01(\x05\x12\x0e\n\x06height\x18\x07 \x01(\x05\"Z\n\x1c\x42rowserCreateSessionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"L\n\x1a\x42rowserCloseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\"=\n\x1b\x42rowserCloseSessionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"i\n\x16\x42rowserNavigateRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"L\n\x17\x42rowserNavigateResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x11\n\tfinal_url\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"k\n\x13\x42rowserClickRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"6\n\x14\x42rowserClickResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x8d\x01\n\x12\x42rowserTypeRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x12\n\nhuman_like\x18\x05 \x01(\x08\x12\x13\n\x0b\x63lear_first\x18\x06 \x01(\x08\"5\n\x13\x42rowserTypeResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"j\n\x12\x42rowserWaitRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"D\n\x13\x42rowserWaitResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x66ound\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"{\n\x15\x42rowserExtractRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x11\n\tattribute\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\x05\"W\n\x16\x42rowserExtractResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06values\x18\x02 \x03(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"\x7f\n\x1a\x42rowserExtractRegexRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0f\n\x07pattern\x18\x03 \x01(\t\x12\x11\n\tfrom_html\x18\x04 \x01(\x08\x12\r\n\x05limit\x18\x05 \x01(\x05\"]\n\x1b\x42rowserExtractRegexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07matches\x18\x02 \x03(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"Y\n\x15\x42rowserGetHTMLRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\"F\n\x16\x42rowserGetHTMLResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04html\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"Y\n\x15\x42rowserGetTextRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\"F\n\x16\x42rowserGetTextResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"]\n\x1b\x42rowserExecuteScriptRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0e\n\x06script\x18\x03 \x01(\t\"N\n\x1c\x42rowserExecuteScriptResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06result\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"~\n\x18\x42rowserScreenshotRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x11\n\tfull_page\x18\x03 \x01(\x08\x12\x0e\n\x06\x66ormat\x18\x04 \x01(\t\x12\x0f\n\x07quality\x18\x05 \x01(\x05\"I\n\x19\x42rowserScreenshotResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"H\n\x16\x42rowserGetStateRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\"U\n\x17\x42rowserGetStateResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\"K\n\x19\x42rowserGetPageInfoRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\"\xbb\x03\n\x1a\x42rowserGetPageInfoResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\r\n\x05title\x18\x04 \x01(\t\x12\x13\n\x0bpage_height\x18\x05 \x01(\x05\x12\x17\n\x0fviewport_height\x18\x06 \x01(\x05\x12\x16\n\x0eviewport_width\x18\x07 \x01(\x05\x12\x10\n\x08scroll_x\x18\x08 \x01(\x05\x12\x10\n\x08scroll_y\x18\t \x01(\x05\x12\x0e\n\x06\x61t_top\x18\n \x01(\x08\x12\x11\n\tat_bottom\x18\x0b \x01(\x08\x12\x14\n\x0cload_time_ms\x18\x0c \x01(\x05\x12\x15\n\rcookies_count\x18\r \x01(\x05\x12\x10\n\x08is_https\x18\x0e \x01(\x08\x12\x13\n\x0bhas_iframes\x18\x0f \x01(\x08\x12\x15\n\rdom_nodes_raw\x18\x10 \x01(\x05\x12\x19\n\x11\x64om_nodes_cleaned\x18\x11 \x01(\x05\x12\x17\n\x0ftokens_estimate\x18\x12 \x01(\x05\x12\x1b\n\x13\x63loudflare_detected\x18\x13 \x01(\x08\x12\x18\n\x10\x63\x61ptcha_detected\x18\x14 \x01(\x08\"\x91\x01\n\rBrowserCookie\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0e\n\x06secure\x18\x05 \x01(\x08\x12\x11\n\thttp_only\x18\x06 \x01(\x08\x12\x11\n\tsame_site\x18\x07 \x01(\t\x12\x0f\n\x07\x65xpires\x18\x08 \x01(\x03\"t\n\x18\x42rowserSetCookiesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12(\n\x07\x63ookies\x18\x03 \x03(\x0b\x32\x17.terminal.BrowserCookie\";\n\x19\x42rowserSetCookiesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"Z\n\x18\x42rowserGetCookiesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0e\n\x06\x64omain\x18\x03 \x01(\t\"e\n\x19\x42rowserGetCookiesResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12(\n\x07\x63ookies\x18\x02 \x03(\x0b\x32\x17.terminal.BrowserCookie\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"n\n\x17\x42rowserMouseMoveRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\t\n\x01x\x18\x03 \x01(\x05\x12\t\n\x01y\x18\x04 \x01(\x05\x12\r\n\x05steps\x18\x05 \x01(\x05\":\n\x18\x42rowserMouseMoveResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"k\n\x13\x42rowserHoverRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x10\n\x08selector\x18\x03 \x01(\t\x12\x12\n\ntimeout_ms\x18\x04 \x01(\x05\"6\n\x14\x42rowserHoverResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x9e\x01\n\x14\x42rowserScrollRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x11\n\tdirection\x18\x03 \x01(\t\x12\x0e\n\x06\x61mount\x18\x04 \x01(\x05\x12\x10\n\x08selector\x18\x05 \x01(\t\x12\x11\n\tcontainer\x18\x06 \x01(\t\x12\x0e\n\x06smooth\x18\x07 \x01(\x08\"\xb1\x01\n\x15\x42rowserScrollResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x10\n\x08scroll_x\x18\x02 \x01(\x05\x12\x10\n\x08scroll_y\x18\x03 \x01(\x05\x12\x13\n\x0bscrolled_by\x18\x04 \x01(\x05\x12\x13\n\x0bpage_height\x18\x05 \x01(\x05\x12\x17\n\x0fviewport_height\x18\x06 \x01(\x05\x12\x11\n\tat_bottom\x18\x07 \x01(\x08\x12\r\n\x05\x65rror\x18\x08 \x01(\t\"\xd5\x01\n\x1f\x42rowserValidateSelectorsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0c\n\x04item\x18\x03 \x01(\t\x12\x45\n\x06\x66ields\x18\x04 \x03(\x0b\x32\x35.terminal.BrowserValidateSelectorsRequest.FieldsEntry\x1a-\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd2\x02\n BrowserValidateSelectorsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x46\n\x06\x63ounts\x18\x03 \x03(\x0b\x32\x36.terminal.BrowserValidateSelectorsResponse.CountsEntry\x12H\n\x07samples\x18\x04 \x03(\x0b\x32\x37.terminal.BrowserValidateSelectorsResponse.SamplesEntry\x12\x0e\n\x06\x65rrors\x18\x05 \x03(\t\x12\r\n\x05\x65rror\x18\x06 \x01(\t\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a.\n\x0cSamplesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"}\n\x19\x42rowserExtractDataRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x1a\n\x12\x62rowser_session_id\x18\x02 \x01(\t\x12\x0c\n\x04item\x18\x03 \x01(\t\x12\x13\n\x0b\x66ields_json\x18\x04 \x01(\t\x12\r\n\x05limit\x18\x05 \x01(\x05\"_\n\x1a\x42rowserExtractDataResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x12\n\nitems_json\x18\x02 \x01(\t\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\r\n\x05\x65rror\x18\x04 \x01(\tB\x10Z\x0eterminal/protob\x06proto3')
28
28
 
29
29
  _globals = globals()
30
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -90,28 +90,44 @@ if not _descriptor._USE_C_DESCRIPTORS:
90
90
  _globals['_BROWSERGETSTATEREQUEST']._serialized_end=2372
91
91
  _globals['_BROWSERGETSTATERESPONSE']._serialized_start=2374
92
92
  _globals['_BROWSERGETSTATERESPONSE']._serialized_end=2459
93
- _globals['_BROWSERCOOKIE']._serialized_start=2462
94
- _globals['_BROWSERCOOKIE']._serialized_end=2607
95
- _globals['_BROWSERSETCOOKIESREQUEST']._serialized_start=2609
96
- _globals['_BROWSERSETCOOKIESREQUEST']._serialized_end=2725
97
- _globals['_BROWSERSETCOOKIESRESPONSE']._serialized_start=2727
98
- _globals['_BROWSERSETCOOKIESRESPONSE']._serialized_end=2786
99
- _globals['_BROWSERGETCOOKIESREQUEST']._serialized_start=2788
100
- _globals['_BROWSERGETCOOKIESREQUEST']._serialized_end=2878
101
- _globals['_BROWSERGETCOOKIESRESPONSE']._serialized_start=2880
102
- _globals['_BROWSERGETCOOKIESRESPONSE']._serialized_end=2981
103
- _globals['_BROWSERVALIDATESELECTORSREQUEST']._serialized_start=2984
104
- _globals['_BROWSERVALIDATESELECTORSREQUEST']._serialized_end=3197
105
- _globals['_BROWSERVALIDATESELECTORSREQUEST_FIELDSENTRY']._serialized_start=3152
106
- _globals['_BROWSERVALIDATESELECTORSREQUEST_FIELDSENTRY']._serialized_end=3197
107
- _globals['_BROWSERVALIDATESELECTORSRESPONSE']._serialized_start=3200
108
- _globals['_BROWSERVALIDATESELECTORSRESPONSE']._serialized_end=3538
109
- _globals['_BROWSERVALIDATESELECTORSRESPONSE_COUNTSENTRY']._serialized_start=3445
110
- _globals['_BROWSERVALIDATESELECTORSRESPONSE_COUNTSENTRY']._serialized_end=3490
111
- _globals['_BROWSERVALIDATESELECTORSRESPONSE_SAMPLESENTRY']._serialized_start=3492
112
- _globals['_BROWSERVALIDATESELECTORSRESPONSE_SAMPLESENTRY']._serialized_end=3538
113
- _globals['_BROWSEREXTRACTDATAREQUEST']._serialized_start=3540
114
- _globals['_BROWSEREXTRACTDATAREQUEST']._serialized_end=3665
115
- _globals['_BROWSEREXTRACTDATARESPONSE']._serialized_start=3667
116
- _globals['_BROWSEREXTRACTDATARESPONSE']._serialized_end=3762
93
+ _globals['_BROWSERGETPAGEINFOREQUEST']._serialized_start=2461
94
+ _globals['_BROWSERGETPAGEINFOREQUEST']._serialized_end=2536
95
+ _globals['_BROWSERGETPAGEINFORESPONSE']._serialized_start=2539
96
+ _globals['_BROWSERGETPAGEINFORESPONSE']._serialized_end=2982
97
+ _globals['_BROWSERCOOKIE']._serialized_start=2985
98
+ _globals['_BROWSERCOOKIE']._serialized_end=3130
99
+ _globals['_BROWSERSETCOOKIESREQUEST']._serialized_start=3132
100
+ _globals['_BROWSERSETCOOKIESREQUEST']._serialized_end=3248
101
+ _globals['_BROWSERSETCOOKIESRESPONSE']._serialized_start=3250
102
+ _globals['_BROWSERSETCOOKIESRESPONSE']._serialized_end=3309
103
+ _globals['_BROWSERGETCOOKIESREQUEST']._serialized_start=3311
104
+ _globals['_BROWSERGETCOOKIESREQUEST']._serialized_end=3401
105
+ _globals['_BROWSERGETCOOKIESRESPONSE']._serialized_start=3403
106
+ _globals['_BROWSERGETCOOKIESRESPONSE']._serialized_end=3504
107
+ _globals['_BROWSERMOUSEMOVEREQUEST']._serialized_start=3506
108
+ _globals['_BROWSERMOUSEMOVEREQUEST']._serialized_end=3616
109
+ _globals['_BROWSERMOUSEMOVERESPONSE']._serialized_start=3618
110
+ _globals['_BROWSERMOUSEMOVERESPONSE']._serialized_end=3676
111
+ _globals['_BROWSERHOVERREQUEST']._serialized_start=3678
112
+ _globals['_BROWSERHOVERREQUEST']._serialized_end=3785
113
+ _globals['_BROWSERHOVERRESPONSE']._serialized_start=3787
114
+ _globals['_BROWSERHOVERRESPONSE']._serialized_end=3841
115
+ _globals['_BROWSERSCROLLREQUEST']._serialized_start=3844
116
+ _globals['_BROWSERSCROLLREQUEST']._serialized_end=4002
117
+ _globals['_BROWSERSCROLLRESPONSE']._serialized_start=4005
118
+ _globals['_BROWSERSCROLLRESPONSE']._serialized_end=4182
119
+ _globals['_BROWSERVALIDATESELECTORSREQUEST']._serialized_start=4185
120
+ _globals['_BROWSERVALIDATESELECTORSREQUEST']._serialized_end=4398
121
+ _globals['_BROWSERVALIDATESELECTORSREQUEST_FIELDSENTRY']._serialized_start=4353
122
+ _globals['_BROWSERVALIDATESELECTORSREQUEST_FIELDSENTRY']._serialized_end=4398
123
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE']._serialized_start=4401
124
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE']._serialized_end=4739
125
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE_COUNTSENTRY']._serialized_start=4646
126
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE_COUNTSENTRY']._serialized_end=4691
127
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE_SAMPLESENTRY']._serialized_start=4693
128
+ _globals['_BROWSERVALIDATESELECTORSRESPONSE_SAMPLESENTRY']._serialized_end=4739
129
+ _globals['_BROWSEREXTRACTDATAREQUEST']._serialized_start=4741
130
+ _globals['_BROWSEREXTRACTDATAREQUEST']._serialized_end=4866
131
+ _globals['_BROWSEREXTRACTDATARESPONSE']._serialized_start=4868
132
+ _globals['_BROWSEREXTRACTDATARESPONSE']._serialized_end=4963
117
133
  # @@protoc_insertion_point(module_scope)
@@ -294,6 +294,58 @@ class BrowserGetStateResponse(_message.Message):
294
294
  error: str
295
295
  def __init__(self, success: bool = ..., url: _Optional[str] = ..., title: _Optional[str] = ..., error: _Optional[str] = ...) -> None: ...
296
296
 
297
+ class BrowserGetPageInfoRequest(_message.Message):
298
+ __slots__ = ("session_id", "browser_session_id")
299
+ SESSION_ID_FIELD_NUMBER: _ClassVar[int]
300
+ BROWSER_SESSION_ID_FIELD_NUMBER: _ClassVar[int]
301
+ session_id: str
302
+ browser_session_id: str
303
+ def __init__(self, session_id: _Optional[str] = ..., browser_session_id: _Optional[str] = ...) -> None: ...
304
+
305
+ class BrowserGetPageInfoResponse(_message.Message):
306
+ __slots__ = ("success", "error", "url", "title", "page_height", "viewport_height", "viewport_width", "scroll_x", "scroll_y", "at_top", "at_bottom", "load_time_ms", "cookies_count", "is_https", "has_iframes", "dom_nodes_raw", "dom_nodes_cleaned", "tokens_estimate", "cloudflare_detected", "captcha_detected")
307
+ SUCCESS_FIELD_NUMBER: _ClassVar[int]
308
+ ERROR_FIELD_NUMBER: _ClassVar[int]
309
+ URL_FIELD_NUMBER: _ClassVar[int]
310
+ TITLE_FIELD_NUMBER: _ClassVar[int]
311
+ PAGE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
312
+ VIEWPORT_HEIGHT_FIELD_NUMBER: _ClassVar[int]
313
+ VIEWPORT_WIDTH_FIELD_NUMBER: _ClassVar[int]
314
+ SCROLL_X_FIELD_NUMBER: _ClassVar[int]
315
+ SCROLL_Y_FIELD_NUMBER: _ClassVar[int]
316
+ AT_TOP_FIELD_NUMBER: _ClassVar[int]
317
+ AT_BOTTOM_FIELD_NUMBER: _ClassVar[int]
318
+ LOAD_TIME_MS_FIELD_NUMBER: _ClassVar[int]
319
+ COOKIES_COUNT_FIELD_NUMBER: _ClassVar[int]
320
+ IS_HTTPS_FIELD_NUMBER: _ClassVar[int]
321
+ HAS_IFRAMES_FIELD_NUMBER: _ClassVar[int]
322
+ DOM_NODES_RAW_FIELD_NUMBER: _ClassVar[int]
323
+ DOM_NODES_CLEANED_FIELD_NUMBER: _ClassVar[int]
324
+ TOKENS_ESTIMATE_FIELD_NUMBER: _ClassVar[int]
325
+ CLOUDFLARE_DETECTED_FIELD_NUMBER: _ClassVar[int]
326
+ CAPTCHA_DETECTED_FIELD_NUMBER: _ClassVar[int]
327
+ success: bool
328
+ error: str
329
+ url: str
330
+ title: str
331
+ page_height: int
332
+ viewport_height: int
333
+ viewport_width: int
334
+ scroll_x: int
335
+ scroll_y: int
336
+ at_top: bool
337
+ at_bottom: bool
338
+ load_time_ms: int
339
+ cookies_count: int
340
+ is_https: bool
341
+ has_iframes: bool
342
+ dom_nodes_raw: int
343
+ dom_nodes_cleaned: int
344
+ tokens_estimate: int
345
+ cloudflare_detected: bool
346
+ captcha_detected: bool
347
+ def __init__(self, success: bool = ..., error: _Optional[str] = ..., url: _Optional[str] = ..., title: _Optional[str] = ..., page_height: _Optional[int] = ..., viewport_height: _Optional[int] = ..., viewport_width: _Optional[int] = ..., scroll_x: _Optional[int] = ..., scroll_y: _Optional[int] = ..., at_top: bool = ..., at_bottom: bool = ..., load_time_ms: _Optional[int] = ..., cookies_count: _Optional[int] = ..., is_https: bool = ..., has_iframes: bool = ..., dom_nodes_raw: _Optional[int] = ..., dom_nodes_cleaned: _Optional[int] = ..., tokens_estimate: _Optional[int] = ..., cloudflare_detected: bool = ..., captcha_detected: bool = ...) -> None: ...
348
+
297
349
  class BrowserCookie(_message.Message):
298
350
  __slots__ = ("name", "value", "domain", "path", "secure", "http_only", "same_site", "expires")
299
351
  NAME_FIELD_NUMBER: _ClassVar[int]
@@ -352,6 +404,86 @@ class BrowserGetCookiesResponse(_message.Message):
352
404
  error: str
353
405
  def __init__(self, success: bool = ..., cookies: _Optional[_Iterable[_Union[BrowserCookie, _Mapping]]] = ..., error: _Optional[str] = ...) -> None: ...
354
406
 
407
+ class BrowserMouseMoveRequest(_message.Message):
408
+ __slots__ = ("session_id", "browser_session_id", "x", "y", "steps")
409
+ SESSION_ID_FIELD_NUMBER: _ClassVar[int]
410
+ BROWSER_SESSION_ID_FIELD_NUMBER: _ClassVar[int]
411
+ X_FIELD_NUMBER: _ClassVar[int]
412
+ Y_FIELD_NUMBER: _ClassVar[int]
413
+ STEPS_FIELD_NUMBER: _ClassVar[int]
414
+ session_id: str
415
+ browser_session_id: str
416
+ x: int
417
+ y: int
418
+ steps: int
419
+ def __init__(self, session_id: _Optional[str] = ..., browser_session_id: _Optional[str] = ..., x: _Optional[int] = ..., y: _Optional[int] = ..., steps: _Optional[int] = ...) -> None: ...
420
+
421
+ class BrowserMouseMoveResponse(_message.Message):
422
+ __slots__ = ("success", "error")
423
+ SUCCESS_FIELD_NUMBER: _ClassVar[int]
424
+ ERROR_FIELD_NUMBER: _ClassVar[int]
425
+ success: bool
426
+ error: str
427
+ def __init__(self, success: bool = ..., error: _Optional[str] = ...) -> None: ...
428
+
429
+ class BrowserHoverRequest(_message.Message):
430
+ __slots__ = ("session_id", "browser_session_id", "selector", "timeout_ms")
431
+ SESSION_ID_FIELD_NUMBER: _ClassVar[int]
432
+ BROWSER_SESSION_ID_FIELD_NUMBER: _ClassVar[int]
433
+ SELECTOR_FIELD_NUMBER: _ClassVar[int]
434
+ TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
435
+ session_id: str
436
+ browser_session_id: str
437
+ selector: str
438
+ timeout_ms: int
439
+ def __init__(self, session_id: _Optional[str] = ..., browser_session_id: _Optional[str] = ..., selector: _Optional[str] = ..., timeout_ms: _Optional[int] = ...) -> None: ...
440
+
441
+ class BrowserHoverResponse(_message.Message):
442
+ __slots__ = ("success", "error")
443
+ SUCCESS_FIELD_NUMBER: _ClassVar[int]
444
+ ERROR_FIELD_NUMBER: _ClassVar[int]
445
+ success: bool
446
+ error: str
447
+ def __init__(self, success: bool = ..., error: _Optional[str] = ...) -> None: ...
448
+
449
+ class BrowserScrollRequest(_message.Message):
450
+ __slots__ = ("session_id", "browser_session_id", "direction", "amount", "selector", "container", "smooth")
451
+ SESSION_ID_FIELD_NUMBER: _ClassVar[int]
452
+ BROWSER_SESSION_ID_FIELD_NUMBER: _ClassVar[int]
453
+ DIRECTION_FIELD_NUMBER: _ClassVar[int]
454
+ AMOUNT_FIELD_NUMBER: _ClassVar[int]
455
+ SELECTOR_FIELD_NUMBER: _ClassVar[int]
456
+ CONTAINER_FIELD_NUMBER: _ClassVar[int]
457
+ SMOOTH_FIELD_NUMBER: _ClassVar[int]
458
+ session_id: str
459
+ browser_session_id: str
460
+ direction: str
461
+ amount: int
462
+ selector: str
463
+ container: str
464
+ smooth: bool
465
+ def __init__(self, session_id: _Optional[str] = ..., browser_session_id: _Optional[str] = ..., direction: _Optional[str] = ..., amount: _Optional[int] = ..., selector: _Optional[str] = ..., container: _Optional[str] = ..., smooth: bool = ...) -> None: ...
466
+
467
+ class BrowserScrollResponse(_message.Message):
468
+ __slots__ = ("success", "scroll_x", "scroll_y", "scrolled_by", "page_height", "viewport_height", "at_bottom", "error")
469
+ SUCCESS_FIELD_NUMBER: _ClassVar[int]
470
+ SCROLL_X_FIELD_NUMBER: _ClassVar[int]
471
+ SCROLL_Y_FIELD_NUMBER: _ClassVar[int]
472
+ SCROLLED_BY_FIELD_NUMBER: _ClassVar[int]
473
+ PAGE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
474
+ VIEWPORT_HEIGHT_FIELD_NUMBER: _ClassVar[int]
475
+ AT_BOTTOM_FIELD_NUMBER: _ClassVar[int]
476
+ ERROR_FIELD_NUMBER: _ClassVar[int]
477
+ success: bool
478
+ scroll_x: int
479
+ scroll_y: int
480
+ scrolled_by: int
481
+ page_height: int
482
+ viewport_height: int
483
+ at_bottom: bool
484
+ error: str
485
+ def __init__(self, success: bool = ..., scroll_x: _Optional[int] = ..., scroll_y: _Optional[int] = ..., scrolled_by: _Optional[int] = ..., page_height: _Optional[int] = ..., viewport_height: _Optional[int] = ..., at_bottom: bool = ..., error: _Optional[str] = ...) -> None: ...
486
+
355
487
  class BrowserValidateSelectorsRequest(_message.Message):
356
488
  __slots__ = ("session_id", "browser_session_id", "item", "fields")
357
489
  class FieldsEntry(_message.Message):
@@ -78,11 +78,19 @@ from rpc_messages.browser_pb2 import BrowserScreenshotRequest as BrowserScreensh
78
78
  from rpc_messages.browser_pb2 import BrowserScreenshotResponse as BrowserScreenshotResponse
79
79
  from rpc_messages.browser_pb2 import BrowserGetStateRequest as BrowserGetStateRequest
80
80
  from rpc_messages.browser_pb2 import BrowserGetStateResponse as BrowserGetStateResponse
81
+ from rpc_messages.browser_pb2 import BrowserGetPageInfoRequest as BrowserGetPageInfoRequest
82
+ from rpc_messages.browser_pb2 import BrowserGetPageInfoResponse as BrowserGetPageInfoResponse
81
83
  from rpc_messages.browser_pb2 import BrowserCookie as BrowserCookie
82
84
  from rpc_messages.browser_pb2 import BrowserSetCookiesRequest as BrowserSetCookiesRequest
83
85
  from rpc_messages.browser_pb2 import BrowserSetCookiesResponse as BrowserSetCookiesResponse
84
86
  from rpc_messages.browser_pb2 import BrowserGetCookiesRequest as BrowserGetCookiesRequest
85
87
  from rpc_messages.browser_pb2 import BrowserGetCookiesResponse as BrowserGetCookiesResponse
88
+ from rpc_messages.browser_pb2 import BrowserMouseMoveRequest as BrowserMouseMoveRequest
89
+ from rpc_messages.browser_pb2 import BrowserMouseMoveResponse as BrowserMouseMoveResponse
90
+ from rpc_messages.browser_pb2 import BrowserHoverRequest as BrowserHoverRequest
91
+ from rpc_messages.browser_pb2 import BrowserHoverResponse as BrowserHoverResponse
92
+ from rpc_messages.browser_pb2 import BrowserScrollRequest as BrowserScrollRequest
93
+ from rpc_messages.browser_pb2 import BrowserScrollResponse as BrowserScrollResponse
86
94
  from rpc_messages.browser_pb2 import BrowserValidateSelectorsRequest as BrowserValidateSelectorsRequest
87
95
  from rpc_messages.browser_pb2 import BrowserValidateSelectorsResponse as BrowserValidateSelectorsResponse
88
96
  from rpc_messages.browser_pb2 import BrowserExtractDataRequest as BrowserExtractDataRequest
@@ -125,7 +125,7 @@ except AttributeError:
125
125
  file__operations_dot_requests__pb2 = file__operations__pb2.file_operations.requests_pb2
126
126
 
127
127
 
128
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x12\x08terminal\x1a\x14\x61gent_messages.proto\x1a\x16\x63ontrol_messages.proto\x1a\x12rpc_messages.proto\x1a\x0e\x66ile_rpc.proto\x1a\x15\x66ile_operations.proto2\x88$\n\x18TerminalStreamingService\x12G\n\x0f\x43onnectTerminal\x12\x16.terminal.AgentMessage\x1a\x18.terminal.ControlMessage(\x01\x30\x01\x12P\n\rCreateSession\x12\x1e.terminal.CreateSessionRequest\x1a\x1f.terminal.CreateSessionResponse\x12M\n\x0c\x43loseSession\x12\x1d.terminal.CloseSessionRequest\x1a\x1e.terminal.CloseSessionResponse\x12Y\n\x10GetSessionStatus\x12!.terminal.GetSessionStatusRequest\x1a\".terminal.GetSessionStatusResponse\x12M\n\x0cListSessions\x12\x1d.terminal.ListSessionsRequest\x1a\x1e.terminal.ListSessionsResponse\x12\x44\n\tSendInput\x12\x1a.terminal.SendInputRequest\x1a\x1b.terminal.SendInputResponse\x12G\n\nSendResize\x12\x1b.terminal.SendResizeRequest\x1a\x1c.terminal.SendResizeResponse\x12G\n\nSendSignal\x12\x1b.terminal.SendSignalRequest\x1a\x1c.terminal.SendSignalResponse\x12G\n\nGetHistory\x12\x1b.terminal.GetHistoryRequest\x1a\x1c.terminal.GetHistoryResponse\x12J\n\x0bHealthCheck\x12\x1c.terminal.HealthCheckRequest\x1a\x1d.terminal.HealthCheckResponse\x12\x62\n\x13RegisterDeviceToken\x12$.terminal.RegisterDeviceTokenRequest\x1a%.terminal.RegisterDeviceTokenResponse\x12h\n\x15UnregisterDeviceToken\x12&.terminal.UnregisterDeviceTokenRequest\x1a\'.terminal.UnregisterDeviceTokenResponse\x12V\n\x0f\x45nterBackground\x12 .terminal.EnterBackgroundRequest\x1a!.terminal.EnterBackgroundResponse\x12_\n\x12WakeFromBackground\x12#.terminal.WakeFromBackgroundRequest\x1a$.terminal.WakeFromBackgroundResponse\x12M\n\x0cQueueCommand\x12\x1d.terminal.QueueCommandRequest\x1a\x1e.terminal.QueueCommandResponse\x12\x62\n\x11\x46ileListDirectory\x12%.terminal.FileListDirectoryRpcRequest\x1a&.terminal.FileListDirectoryRpcResponse\x12G\n\x08\x46ileRead\x12\x1c.terminal.FileReadRpcRequest\x1a\x1d.terminal.FileReadRpcResponse\x12J\n\tFileWrite\x12\x1d.terminal.FileWriteRpcRequest\x1a\x1e.terminal.FileWriteRpcResponse\x12h\n\x13\x46ileCreateDirectory\x12\'.terminal.FileCreateDirectoryRpcRequest\x1a(.terminal.FileCreateDirectoryRpcResponse\x12M\n\nFileDelete\x12\x1e.terminal.FileDeleteRpcRequest\x1a\x1f.terminal.FileDeleteRpcResponse\x12G\n\x08\x46ileMove\x12\x1c.terminal.FileMoveRpcRequest\x1a\x1d.terminal.FileMoveRpcResponse\x12G\n\x08\x46ileCopy\x12\x1c.terminal.FileCopyRpcRequest\x1a\x1d.terminal.FileCopyRpcResponse\x12P\n\x0b\x46ileGetInfo\x12\x1f.terminal.FileGetInfoRpcRequest\x1a .terminal.FileGetInfoRpcResponse\x12\x62\n\x11\x46ileCreateArchive\x12%.terminal.FileCreateArchiveRpcRequest\x1a&.terminal.FileCreateArchiveRpcResponse\x12M\n\nFileSearch\x12\x1e.terminal.FileSearchRpcRequest\x1a\x1f.terminal.FileSearchRpcResponse\x12Y\n\x0eHlsGetPlaylist\x12\".terminal.HlsGetPlaylistRpcRequest\x1a#.terminal.HlsGetPlaylistRpcResponse\x12V\n\rHlsGetSegment\x12!.terminal.HlsGetSegmentRpcRequest\x1a\".terminal.HlsGetSegmentRpcResponse\x12Y\n\x0eHlsStopSession\x12\".terminal.HlsStopSessionRpcRequest\x1a#.terminal.HlsStopSessionRpcResponse\x12[\n\x16InitiateStreamingRelay\x12\x1f.terminal.StreamingRelayRequest\x1a .terminal.StreamingRelayResponse\x12H\n\nRelayChunk\x12\x1d.terminal.StreamingRelayChunk\x1a\x1b.terminal.StreamingRelayAck\x12`\n\x17GetStreamingRelayStatus\x12%.terminal.StreamingRelayStatusRequest\x1a\x1e.terminal.StreamingRelayStatus\x12\x65\n\x14\x43\x61ncelStreamingRelay\x12%.terminal.StreamingRelayCancelRequest\x1a&.terminal.StreamingRelayCancelResponse\x12\x65\n\x14SendPushNotification\x12%.terminal.SendPushNotificationRequest\x1a&.terminal.SendPushNotificationResponse\x12>\n\x07\x45xtract\x12\x18.terminal.ExtractRequest\x1a\x19.terminal.ExtractResponse\x12\x41\n\x08RunAgent\x12\x19.terminal.RunAgentRequest\x1a\x1a.terminal.RunAgentResponse\x12J\n\x0b\x43\x61ncelAgent\x12\x1c.terminal.CancelAgentRequest\x1a\x1d.terminal.CancelAgentResponse\x12\x65\n\x14\x42rowserCreateSession\x12%.terminal.BrowserCreateSessionRequest\x1a&.terminal.BrowserCreateSessionResponse\x12\x62\n\x13\x42rowserCloseSession\x12$.terminal.BrowserCloseSessionRequest\x1a%.terminal.BrowserCloseSessionResponse\x12V\n\x0f\x42rowserNavigate\x12 .terminal.BrowserNavigateRequest\x1a!.terminal.BrowserNavigateResponse\x12M\n\x0c\x42rowserClick\x12\x1d.terminal.BrowserClickRequest\x1a\x1e.terminal.BrowserClickResponse\x12J\n\x0b\x42rowserType\x12\x1c.terminal.BrowserTypeRequest\x1a\x1d.terminal.BrowserTypeResponse\x12J\n\x0b\x42rowserWait\x12\x1c.terminal.BrowserWaitRequest\x1a\x1d.terminal.BrowserWaitResponse\x12S\n\x0e\x42rowserExtract\x12\x1f.terminal.BrowserExtractRequest\x1a .terminal.BrowserExtractResponse\x12\x62\n\x13\x42rowserExtractRegex\x12$.terminal.BrowserExtractRegexRequest\x1a%.terminal.BrowserExtractRegexResponse\x12S\n\x0e\x42rowserGetHTML\x12\x1f.terminal.BrowserGetHTMLRequest\x1a .terminal.BrowserGetHTMLResponse\x12S\n\x0e\x42rowserGetText\x12\x1f.terminal.BrowserGetTextRequest\x1a .terminal.BrowserGetTextResponse\x12\x65\n\x14\x42rowserExecuteScript\x12%.terminal.BrowserExecuteScriptRequest\x1a&.terminal.BrowserExecuteScriptResponse\x12\\\n\x11\x42rowserScreenshot\x12\".terminal.BrowserScreenshotRequest\x1a#.terminal.BrowserScreenshotResponse\x12V\n\x0f\x42rowserGetState\x12 .terminal.BrowserGetStateRequest\x1a!.terminal.BrowserGetStateResponse\x12\\\n\x11\x42rowserSetCookies\x12\".terminal.BrowserSetCookiesRequest\x1a#.terminal.BrowserSetCookiesResponse\x12\\\n\x11\x42rowserGetCookies\x12\".terminal.BrowserGetCookiesRequest\x1a#.terminal.BrowserGetCookiesResponse\x12q\n\x18\x42rowserValidateSelectors\x12).terminal.BrowserValidateSelectorsRequest\x1a*.terminal.BrowserValidateSelectorsResponse\x12_\n\x12\x42rowserExtractData\x12#.terminal.BrowserExtractDataRequest\x1a$.terminal.BrowserExtractDataResponseB\x10Z\x0eterminal/protob\x06proto3')
128
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x12\x08terminal\x1a\x14\x61gent_messages.proto\x1a\x16\x63ontrol_messages.proto\x1a\x12rpc_messages.proto\x1a\x0e\x66ile_rpc.proto\x1a\x15\x66ile_operations.proto2\x84&\n\x18TerminalStreamingService\x12G\n\x0f\x43onnectTerminal\x12\x16.terminal.AgentMessage\x1a\x18.terminal.ControlMessage(\x01\x30\x01\x12P\n\rCreateSession\x12\x1e.terminal.CreateSessionRequest\x1a\x1f.terminal.CreateSessionResponse\x12M\n\x0c\x43loseSession\x12\x1d.terminal.CloseSessionRequest\x1a\x1e.terminal.CloseSessionResponse\x12Y\n\x10GetSessionStatus\x12!.terminal.GetSessionStatusRequest\x1a\".terminal.GetSessionStatusResponse\x12M\n\x0cListSessions\x12\x1d.terminal.ListSessionsRequest\x1a\x1e.terminal.ListSessionsResponse\x12\x44\n\tSendInput\x12\x1a.terminal.SendInputRequest\x1a\x1b.terminal.SendInputResponse\x12G\n\nSendResize\x12\x1b.terminal.SendResizeRequest\x1a\x1c.terminal.SendResizeResponse\x12G\n\nSendSignal\x12\x1b.terminal.SendSignalRequest\x1a\x1c.terminal.SendSignalResponse\x12G\n\nGetHistory\x12\x1b.terminal.GetHistoryRequest\x1a\x1c.terminal.GetHistoryResponse\x12J\n\x0bHealthCheck\x12\x1c.terminal.HealthCheckRequest\x1a\x1d.terminal.HealthCheckResponse\x12\x62\n\x13RegisterDeviceToken\x12$.terminal.RegisterDeviceTokenRequest\x1a%.terminal.RegisterDeviceTokenResponse\x12h\n\x15UnregisterDeviceToken\x12&.terminal.UnregisterDeviceTokenRequest\x1a\'.terminal.UnregisterDeviceTokenResponse\x12V\n\x0f\x45nterBackground\x12 .terminal.EnterBackgroundRequest\x1a!.terminal.EnterBackgroundResponse\x12_\n\x12WakeFromBackground\x12#.terminal.WakeFromBackgroundRequest\x1a$.terminal.WakeFromBackgroundResponse\x12M\n\x0cQueueCommand\x12\x1d.terminal.QueueCommandRequest\x1a\x1e.terminal.QueueCommandResponse\x12\x62\n\x11\x46ileListDirectory\x12%.terminal.FileListDirectoryRpcRequest\x1a&.terminal.FileListDirectoryRpcResponse\x12G\n\x08\x46ileRead\x12\x1c.terminal.FileReadRpcRequest\x1a\x1d.terminal.FileReadRpcResponse\x12J\n\tFileWrite\x12\x1d.terminal.FileWriteRpcRequest\x1a\x1e.terminal.FileWriteRpcResponse\x12h\n\x13\x46ileCreateDirectory\x12\'.terminal.FileCreateDirectoryRpcRequest\x1a(.terminal.FileCreateDirectoryRpcResponse\x12M\n\nFileDelete\x12\x1e.terminal.FileDeleteRpcRequest\x1a\x1f.terminal.FileDeleteRpcResponse\x12G\n\x08\x46ileMove\x12\x1c.terminal.FileMoveRpcRequest\x1a\x1d.terminal.FileMoveRpcResponse\x12G\n\x08\x46ileCopy\x12\x1c.terminal.FileCopyRpcRequest\x1a\x1d.terminal.FileCopyRpcResponse\x12P\n\x0b\x46ileGetInfo\x12\x1f.terminal.FileGetInfoRpcRequest\x1a .terminal.FileGetInfoRpcResponse\x12\x62\n\x11\x46ileCreateArchive\x12%.terminal.FileCreateArchiveRpcRequest\x1a&.terminal.FileCreateArchiveRpcResponse\x12M\n\nFileSearch\x12\x1e.terminal.FileSearchRpcRequest\x1a\x1f.terminal.FileSearchRpcResponse\x12Y\n\x0eHlsGetPlaylist\x12\".terminal.HlsGetPlaylistRpcRequest\x1a#.terminal.HlsGetPlaylistRpcResponse\x12V\n\rHlsGetSegment\x12!.terminal.HlsGetSegmentRpcRequest\x1a\".terminal.HlsGetSegmentRpcResponse\x12Y\n\x0eHlsStopSession\x12\".terminal.HlsStopSessionRpcRequest\x1a#.terminal.HlsStopSessionRpcResponse\x12[\n\x16InitiateStreamingRelay\x12\x1f.terminal.StreamingRelayRequest\x1a .terminal.StreamingRelayResponse\x12H\n\nRelayChunk\x12\x1d.terminal.StreamingRelayChunk\x1a\x1b.terminal.StreamingRelayAck\x12`\n\x17GetStreamingRelayStatus\x12%.terminal.StreamingRelayStatusRequest\x1a\x1e.terminal.StreamingRelayStatus\x12\x65\n\x14\x43\x61ncelStreamingRelay\x12%.terminal.StreamingRelayCancelRequest\x1a&.terminal.StreamingRelayCancelResponse\x12\x65\n\x14SendPushNotification\x12%.terminal.SendPushNotificationRequest\x1a&.terminal.SendPushNotificationResponse\x12>\n\x07\x45xtract\x12\x18.terminal.ExtractRequest\x1a\x19.terminal.ExtractResponse\x12\x41\n\x08RunAgent\x12\x19.terminal.RunAgentRequest\x1a\x1a.terminal.RunAgentResponse\x12J\n\x0b\x43\x61ncelAgent\x12\x1c.terminal.CancelAgentRequest\x1a\x1d.terminal.CancelAgentResponse\x12\x65\n\x14\x42rowserCreateSession\x12%.terminal.BrowserCreateSessionRequest\x1a&.terminal.BrowserCreateSessionResponse\x12\x62\n\x13\x42rowserCloseSession\x12$.terminal.BrowserCloseSessionRequest\x1a%.terminal.BrowserCloseSessionResponse\x12V\n\x0f\x42rowserNavigate\x12 .terminal.BrowserNavigateRequest\x1a!.terminal.BrowserNavigateResponse\x12M\n\x0c\x42rowserClick\x12\x1d.terminal.BrowserClickRequest\x1a\x1e.terminal.BrowserClickResponse\x12J\n\x0b\x42rowserType\x12\x1c.terminal.BrowserTypeRequest\x1a\x1d.terminal.BrowserTypeResponse\x12J\n\x0b\x42rowserWait\x12\x1c.terminal.BrowserWaitRequest\x1a\x1d.terminal.BrowserWaitResponse\x12S\n\x0e\x42rowserExtract\x12\x1f.terminal.BrowserExtractRequest\x1a .terminal.BrowserExtractResponse\x12\x62\n\x13\x42rowserExtractRegex\x12$.terminal.BrowserExtractRegexRequest\x1a%.terminal.BrowserExtractRegexResponse\x12S\n\x0e\x42rowserGetHTML\x12\x1f.terminal.BrowserGetHTMLRequest\x1a .terminal.BrowserGetHTMLResponse\x12S\n\x0e\x42rowserGetText\x12\x1f.terminal.BrowserGetTextRequest\x1a .terminal.BrowserGetTextResponse\x12\x65\n\x14\x42rowserExecuteScript\x12%.terminal.BrowserExecuteScriptRequest\x1a&.terminal.BrowserExecuteScriptResponse\x12\\\n\x11\x42rowserScreenshot\x12\".terminal.BrowserScreenshotRequest\x1a#.terminal.BrowserScreenshotResponse\x12V\n\x0f\x42rowserGetState\x12 .terminal.BrowserGetStateRequest\x1a!.terminal.BrowserGetStateResponse\x12\\\n\x11\x42rowserSetCookies\x12\".terminal.BrowserSetCookiesRequest\x1a#.terminal.BrowserSetCookiesResponse\x12\\\n\x11\x42rowserGetCookies\x12\".terminal.BrowserGetCookiesRequest\x1a#.terminal.BrowserGetCookiesResponse\x12q\n\x18\x42rowserValidateSelectors\x12).terminal.BrowserValidateSelectorsRequest\x1a*.terminal.BrowserValidateSelectorsResponse\x12_\n\x12\x42rowserExtractData\x12#.terminal.BrowserExtractDataRequest\x1a$.terminal.BrowserExtractDataResponse\x12Y\n\x10\x42rowserMouseMove\x12!.terminal.BrowserMouseMoveRequest\x1a\".terminal.BrowserMouseMoveResponse\x12M\n\x0c\x42rowserHover\x12\x1d.terminal.BrowserHoverRequest\x1a\x1e.terminal.BrowserHoverResponse\x12P\n\rBrowserScroll\x12\x1e.terminal.BrowserScrollRequest\x1a\x1f.terminal.BrowserScrollResponseB\x10Z\x0eterminal/protob\x06proto3')
129
129
 
130
130
  _globals = globals()
131
131
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -134,5 +134,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
134
134
  _globals['DESCRIPTOR']._loaded_options = None
135
135
  _globals['DESCRIPTOR']._serialized_options = b'Z\016terminal/proto'
136
136
  _globals['_TERMINALSTREAMINGSERVICE']._serialized_start=133
137
- _globals['_TERMINALSTREAMINGSERVICE']._serialized_end=4749
137
+ _globals['_TERMINALSTREAMINGSERVICE']._serialized_end=5001
138
138
  # @@protoc_insertion_point(module_scope)
@@ -320,6 +320,21 @@ class TerminalStreamingServiceStub(object):
320
320
  request_serializer=rpc__messages_dot_browser__pb2.BrowserExtractDataRequest.SerializeToString,
321
321
  response_deserializer=rpc__messages_dot_browser__pb2.BrowserExtractDataResponse.FromString,
322
322
  _registered_method=True)
323
+ self.BrowserMouseMove = channel.unary_unary(
324
+ '/terminal.TerminalStreamingService/BrowserMouseMove',
325
+ request_serializer=rpc__messages_dot_browser__pb2.BrowserMouseMoveRequest.SerializeToString,
326
+ response_deserializer=rpc__messages_dot_browser__pb2.BrowserMouseMoveResponse.FromString,
327
+ _registered_method=True)
328
+ self.BrowserHover = channel.unary_unary(
329
+ '/terminal.TerminalStreamingService/BrowserHover',
330
+ request_serializer=rpc__messages_dot_browser__pb2.BrowserHoverRequest.SerializeToString,
331
+ response_deserializer=rpc__messages_dot_browser__pb2.BrowserHoverResponse.FromString,
332
+ _registered_method=True)
333
+ self.BrowserScroll = channel.unary_unary(
334
+ '/terminal.TerminalStreamingService/BrowserScroll',
335
+ request_serializer=rpc__messages_dot_browser__pb2.BrowserScrollRequest.SerializeToString,
336
+ response_deserializer=rpc__messages_dot_browser__pb2.BrowserScrollResponse.FromString,
337
+ _registered_method=True)
323
338
 
324
339
 
325
340
  class TerminalStreamingServiceServicer(object):
@@ -679,6 +694,25 @@ class TerminalStreamingServiceServicer(object):
679
694
  context.set_details('Method not implemented!')
680
695
  raise NotImplementedError('Method not implemented!')
681
696
 
697
+ def BrowserMouseMove(self, request, context):
698
+ """Mouse & Input (v2.18.0)
699
+ """
700
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
701
+ context.set_details('Method not implemented!')
702
+ raise NotImplementedError('Method not implemented!')
703
+
704
+ def BrowserHover(self, request, context):
705
+ """Missing associated documentation comment in .proto file."""
706
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
707
+ context.set_details('Method not implemented!')
708
+ raise NotImplementedError('Method not implemented!')
709
+
710
+ def BrowserScroll(self, request, context):
711
+ """Missing associated documentation comment in .proto file."""
712
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
713
+ context.set_details('Method not implemented!')
714
+ raise NotImplementedError('Method not implemented!')
715
+
682
716
 
683
717
  def add_TerminalStreamingServiceServicer_to_server(servicer, server):
684
718
  rpc_method_handlers = {
@@ -947,6 +981,21 @@ def add_TerminalStreamingServiceServicer_to_server(servicer, server):
947
981
  request_deserializer=rpc__messages_dot_browser__pb2.BrowserExtractDataRequest.FromString,
948
982
  response_serializer=rpc__messages_dot_browser__pb2.BrowserExtractDataResponse.SerializeToString,
949
983
  ),
984
+ 'BrowserMouseMove': grpc.unary_unary_rpc_method_handler(
985
+ servicer.BrowserMouseMove,
986
+ request_deserializer=rpc__messages_dot_browser__pb2.BrowserMouseMoveRequest.FromString,
987
+ response_serializer=rpc__messages_dot_browser__pb2.BrowserMouseMoveResponse.SerializeToString,
988
+ ),
989
+ 'BrowserHover': grpc.unary_unary_rpc_method_handler(
990
+ servicer.BrowserHover,
991
+ request_deserializer=rpc__messages_dot_browser__pb2.BrowserHoverRequest.FromString,
992
+ response_serializer=rpc__messages_dot_browser__pb2.BrowserHoverResponse.SerializeToString,
993
+ ),
994
+ 'BrowserScroll': grpc.unary_unary_rpc_method_handler(
995
+ servicer.BrowserScroll,
996
+ request_deserializer=rpc__messages_dot_browser__pb2.BrowserScrollRequest.FromString,
997
+ response_serializer=rpc__messages_dot_browser__pb2.BrowserScrollResponse.SerializeToString,
998
+ ),
950
999
  }
951
1000
  generic_handler = grpc.method_handlers_generic_handler(
952
1001
  'terminal.TerminalStreamingService', rpc_method_handlers)
@@ -2392,3 +2441,84 @@ class TerminalStreamingService(object):
2392
2441
  timeout,
2393
2442
  metadata,
2394
2443
  _registered_method=True)
2444
+
2445
+ @staticmethod
2446
+ def BrowserMouseMove(request,
2447
+ target,
2448
+ options=(),
2449
+ channel_credentials=None,
2450
+ call_credentials=None,
2451
+ insecure=False,
2452
+ compression=None,
2453
+ wait_for_ready=None,
2454
+ timeout=None,
2455
+ metadata=None):
2456
+ return grpc.experimental.unary_unary(
2457
+ request,
2458
+ target,
2459
+ '/terminal.TerminalStreamingService/BrowserMouseMove',
2460
+ rpc__messages_dot_browser__pb2.BrowserMouseMoveRequest.SerializeToString,
2461
+ rpc__messages_dot_browser__pb2.BrowserMouseMoveResponse.FromString,
2462
+ options,
2463
+ channel_credentials,
2464
+ insecure,
2465
+ call_credentials,
2466
+ compression,
2467
+ wait_for_ready,
2468
+ timeout,
2469
+ metadata,
2470
+ _registered_method=True)
2471
+
2472
+ @staticmethod
2473
+ def BrowserHover(request,
2474
+ target,
2475
+ options=(),
2476
+ channel_credentials=None,
2477
+ call_credentials=None,
2478
+ insecure=False,
2479
+ compression=None,
2480
+ wait_for_ready=None,
2481
+ timeout=None,
2482
+ metadata=None):
2483
+ return grpc.experimental.unary_unary(
2484
+ request,
2485
+ target,
2486
+ '/terminal.TerminalStreamingService/BrowserHover',
2487
+ rpc__messages_dot_browser__pb2.BrowserHoverRequest.SerializeToString,
2488
+ rpc__messages_dot_browser__pb2.BrowserHoverResponse.FromString,
2489
+ options,
2490
+ channel_credentials,
2491
+ insecure,
2492
+ call_credentials,
2493
+ compression,
2494
+ wait_for_ready,
2495
+ timeout,
2496
+ metadata,
2497
+ _registered_method=True)
2498
+
2499
+ @staticmethod
2500
+ def BrowserScroll(request,
2501
+ target,
2502
+ options=(),
2503
+ channel_credentials=None,
2504
+ call_credentials=None,
2505
+ insecure=False,
2506
+ compression=None,
2507
+ wait_for_ready=None,
2508
+ timeout=None,
2509
+ metadata=None):
2510
+ return grpc.experimental.unary_unary(
2511
+ request,
2512
+ target,
2513
+ '/terminal.TerminalStreamingService/BrowserScroll',
2514
+ rpc__messages_dot_browser__pb2.BrowserScrollRequest.SerializeToString,
2515
+ rpc__messages_dot_browser__pb2.BrowserScrollResponse.FromString,
2516
+ options,
2517
+ channel_credentials,
2518
+ insecure,
2519
+ call_credentials,
2520
+ compression,
2521
+ wait_for_ready,
2522
+ timeout,
2523
+ metadata,
2524
+ _registered_method=True)