@agenthippo-ai/agenthippo 0.1.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 (480) hide show
  1. package/LICENSE +21 -0
  2. package/bin/agenthippo.js +2 -0
  3. package/out/agentpack/github.js +547 -0
  4. package/out/agentpack/index.js +66 -0
  5. package/out/agentpack/install.js +297 -0
  6. package/out/agentpack/manager.js +441 -0
  7. package/out/agentpack/manifest.js +135 -0
  8. package/out/agentpack/paths.js +475 -0
  9. package/out/agentpack/publish.js +248 -0
  10. package/out/agentpack/stores.js +554 -0
  11. package/out/agentpack/types.js +5 -0
  12. package/out/analytics/dashboard/artifactManager.js +439 -0
  13. package/out/analytics/dashboard/fleetDisplayUtils.js +159 -0
  14. package/out/analytics/dashboard/fleetOrchestrator.js +142 -0
  15. package/out/analytics/dashboard/fleetRegistry.js +79 -0
  16. package/out/analytics/dashboard/fleetRowDefaults.js +87 -0
  17. package/out/analytics/dashboard/fleetScriptAdapter.js +146 -0
  18. package/out/analytics/dashboard/fleetStatusUtils.js +30 -0
  19. package/out/analytics/dashboard/fleetTitleUtils.js +68 -0
  20. package/out/analytics/dashboard/fleetTypes.js +29 -0
  21. package/out/analytics/dashboard/index.js +17 -0
  22. package/out/analytics/dashboard/indexingService.js +422 -0
  23. package/out/analytics/dashboard/localFleetAdapter.js +222 -0
  24. package/out/analytics/dashboard/performanceMonitor.js +76 -0
  25. package/out/analytics/dashboard/processManager.js +209 -0
  26. package/out/analytics/dashboard/provider.js +3885 -0
  27. package/out/analytics/dashboard/queryRunner.js +994 -0
  28. package/out/analytics/dashboard/refreshPolicy.js +16 -0
  29. package/out/analytics/dashboard/scheduledFleetFingerprint.js +22 -0
  30. package/out/analytics/dashboard/scheduledFleetStorage.js +241 -0
  31. package/out/analytics/dashboard/scheduledFleetUtils.js +22 -0
  32. package/out/analytics/dashboard/sessionEventFleetStats.js +118 -0
  33. package/out/analytics/dashboard/sessionJsonlFleet.js +204 -0
  34. package/out/analytics/dashboard/teamViewDiscovery.js +106 -0
  35. package/out/analytics/dashboard/viewsConfigMerge.js +221 -0
  36. package/out/analytics/dashboard/webview/analytics-panel.html +155 -0
  37. package/out/analytics/dashboard/webview/codicon.ttf +0 -0
  38. package/out/analytics/dashboard/webview/index.html +78 -0
  39. package/out/analytics/dashboard/webview/panel.js +2295 -0
  40. package/out/analytics/dashboard/webview/runtime-bridge.js +82 -0
  41. package/out/analytics/dashboard/webview/styles.css +1009 -0
  42. package/out/analytics/lifecycle.js +43 -0
  43. package/out/analytics/service.js +1279 -0
  44. package/out/analytics/sessionEvents.js +231 -0
  45. package/out/auth/bootstrapApply.js +72 -0
  46. package/out/auth/brokerClient.js +126 -0
  47. package/out/auth/callbackUri.js +59 -0
  48. package/out/auth/callbackUriParse.js +59 -0
  49. package/out/auth/githubStoreGate.js +70 -0
  50. package/out/auth/loopbackAuthServer.js +165 -0
  51. package/out/auth/pkce.js +9 -0
  52. package/out/auth/provider.js +239 -0
  53. package/out/auth/sessionStore.js +193 -0
  54. package/out/auth/signInFlow.js +182 -0
  55. package/out/auth/types.js +12 -0
  56. package/out/auth-broker/config.js +62 -0
  57. package/out/auth-broker/jwt.js +105 -0
  58. package/out/auth-broker/pkce.js +57 -0
  59. package/out/auth-broker/server.js +539 -0
  60. package/out/auth-broker/store.js +273 -0
  61. package/out/base-prompts/gateway/openclaw-starter.json5 +144 -0
  62. package/out/base-prompts/gateway/slack-socket-mode-minimal.manifest.json +44 -0
  63. package/out/base-prompts/mcp-servers/.mcp.json +13 -0
  64. package/out/base-prompts/mcp-servers/langfuse-analytics/README.md +142 -0
  65. package/out/base-prompts/mcp-servers/langfuse-analytics/mcp.json +13 -0
  66. package/out/base-prompts/mcp-servers/langfuse-analytics/package-lock.json +1192 -0
  67. package/out/base-prompts/mcp-servers/langfuse-analytics/package.json +23 -0
  68. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/run-with-env.sh +12 -0
  69. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/sdk-test.js +102 -0
  70. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/simple-test.js +137 -0
  71. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-client.js +118 -0
  72. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-server.js +209 -0
  73. package/out/base-prompts/mcp-servers/langfuse-analytics/src/client.ts +431 -0
  74. package/out/base-prompts/mcp-servers/langfuse-analytics/src/index.ts +270 -0
  75. package/out/base-prompts/mcp-servers/langfuse-analytics/tsconfig.json +18 -0
  76. package/out/base-prompts/rules/AGENTS.md +204 -0
  77. package/out/base-prompts/skills/agent-browser/SKILL.md +102 -0
  78. package/out/base-prompts/skills/agent-builder/SKILL.md +73 -0
  79. package/out/base-prompts/skills/agent-builder/references/agent-pack.md +63 -0
  80. package/out/base-prompts/skills/agent-builder/references/crewai.md +66 -0
  81. package/out/base-prompts/skills/agent-builder/references/langchain.md +60 -0
  82. package/out/base-prompts/skills/agent-builder/references/raw-sdk.md +73 -0
  83. package/out/base-prompts/skills/agent-engine-creator/SKILL.md +586 -0
  84. package/out/base-prompts/skills/agent-engine-installer/SKILL.md +106 -0
  85. package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.mjs +259 -0
  86. package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.ps1 +189 -0
  87. package/out/base-prompts/skills/agenthippo-cli/SKILL.md +69 -0
  88. package/out/base-prompts/skills/agenthippo-cli/scripts/install.sh +63 -0
  89. package/out/base-prompts/skills/agentpack-creator/SKILL.md +375 -0
  90. package/out/base-prompts/skills/agentpack-creator/references/agent-templates.md +261 -0
  91. package/out/base-prompts/skills/agentpack-creator/references/agents-md-guide.md +195 -0
  92. package/out/base-prompts/skills/agentpack-creator/scripts/init_pack.py +391 -0
  93. package/out/base-prompts/skills/agentpack-creator/scripts/init_pack_test.py +294 -0
  94. package/out/base-prompts/skills/agentpack-testbench/SKILL.md +135 -0
  95. package/out/base-prompts/skills/algorithmic-art/LICENSE.txt +202 -0
  96. package/out/base-prompts/skills/algorithmic-art/SKILL.md +405 -0
  97. package/out/base-prompts/skills/algorithmic-art/templates/generator_template.js +223 -0
  98. package/out/base-prompts/skills/algorithmic-art/templates/viewer.html +599 -0
  99. package/out/base-prompts/skills/debug-agent/SKILL.md +83 -0
  100. package/out/base-prompts/skills/desktop-automation/SKILL.md +166 -0
  101. package/out/base-prompts/skills/desktop-automation/references/agenthippo-ui-recipes.md +441 -0
  102. package/out/base-prompts/skills/desktop-automation/scripts/windows-desktop-uia.psm1 +280 -0
  103. package/out/base-prompts/skills/docx/LICENSE.txt +30 -0
  104. package/out/base-prompts/skills/docx/SKILL.md +197 -0
  105. package/out/base-prompts/skills/docx/docx-js.md +350 -0
  106. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  107. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  108. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  109. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  110. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  111. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  112. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  113. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  114. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  115. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  116. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  117. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  118. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  119. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  120. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  121. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  122. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  123. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  124. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  125. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  126. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  127. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  128. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  129. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  130. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  131. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  132. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  133. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  134. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  135. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  136. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  137. package/out/base-prompts/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  138. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  139. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  140. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  141. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  142. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  143. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  144. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  145. package/out/base-prompts/skills/docx/ooxml/scripts/pack.py +159 -0
  146. package/out/base-prompts/skills/docx/ooxml/scripts/unpack.py +29 -0
  147. package/out/base-prompts/skills/docx/ooxml/scripts/validate.py +69 -0
  148. package/out/base-prompts/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  149. package/out/base-prompts/skills/docx/ooxml/scripts/validation/base.py +951 -0
  150. package/out/base-prompts/skills/docx/ooxml/scripts/validation/docx.py +274 -0
  151. package/out/base-prompts/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  152. package/out/base-prompts/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  153. package/out/base-prompts/skills/docx/ooxml.md +610 -0
  154. package/out/base-prompts/skills/docx/scripts/__init__.py +1 -0
  155. package/out/base-prompts/skills/docx/scripts/document.py +1276 -0
  156. package/out/base-prompts/skills/docx/scripts/templates/comments.xml +3 -0
  157. package/out/base-prompts/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  158. package/out/base-prompts/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  159. package/out/base-prompts/skills/docx/scripts/templates/commentsIds.xml +3 -0
  160. package/out/base-prompts/skills/docx/scripts/templates/people.xml +3 -0
  161. package/out/base-prompts/skills/docx/scripts/utilities.py +374 -0
  162. package/out/base-prompts/skills/gateway-outbound/SKILL.md +136 -0
  163. package/out/base-prompts/skills/mcp-builder/LICENSE.txt +202 -0
  164. package/out/base-prompts/skills/mcp-builder/SKILL.md +328 -0
  165. package/out/base-prompts/skills/mcp-builder/reference/evaluation.md +602 -0
  166. package/out/base-prompts/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  167. package/out/base-prompts/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  168. package/out/base-prompts/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  169. package/out/base-prompts/skills/mcp-builder/scripts/connections.py +151 -0
  170. package/out/base-prompts/skills/mcp-builder/scripts/evaluation.py +373 -0
  171. package/out/base-prompts/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  172. package/out/base-prompts/skills/mcp-builder/scripts/requirements.txt +2 -0
  173. package/out/base-prompts/skills/openclaw/SKILL.md +406 -0
  174. package/out/base-prompts/skills/openclaw/scripts/run-smoke.sh +61 -0
  175. package/out/base-prompts/skills/pdf/LICENSE.txt +30 -0
  176. package/out/base-prompts/skills/pdf/SKILL.md +294 -0
  177. package/out/base-prompts/skills/pdf/forms.md +205 -0
  178. package/out/base-prompts/skills/pdf/reference.md +612 -0
  179. package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  180. package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  181. package/out/base-prompts/skills/pdf/scripts/check_fillable_fields.py +12 -0
  182. package/out/base-prompts/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  183. package/out/base-prompts/skills/pdf/scripts/create_validation_image.py +41 -0
  184. package/out/base-prompts/skills/pdf/scripts/extract_form_field_info.py +152 -0
  185. package/out/base-prompts/skills/pdf/scripts/fill_fillable_fields.py +114 -0
  186. package/out/base-prompts/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  187. package/out/base-prompts/skills/pptx/LICENSE.txt +30 -0
  188. package/out/base-prompts/skills/pptx/SKILL.md +484 -0
  189. package/out/base-prompts/skills/pptx/html2pptx.md +625 -0
  190. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  191. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  192. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  193. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  194. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  195. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  196. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  197. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  198. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  199. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  200. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  201. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  202. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  203. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  204. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  205. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  206. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  207. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  208. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  209. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  210. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  211. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  212. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  213. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  214. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  215. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  216. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  217. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  218. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  219. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  220. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  221. package/out/base-prompts/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  222. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  223. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  224. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  225. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  226. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  227. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  228. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  229. package/out/base-prompts/skills/pptx/ooxml/scripts/pack.py +159 -0
  230. package/out/base-prompts/skills/pptx/ooxml/scripts/unpack.py +29 -0
  231. package/out/base-prompts/skills/pptx/ooxml/scripts/validate.py +69 -0
  232. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  233. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/base.py +951 -0
  234. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  235. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  236. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  237. package/out/base-prompts/skills/pptx/ooxml.md +427 -0
  238. package/out/base-prompts/skills/pptx/scripts/html2pptx.js +984 -0
  239. package/out/base-prompts/skills/pptx/scripts/inventory.py +1020 -0
  240. package/out/base-prompts/skills/pptx/scripts/rearrange.py +231 -0
  241. package/out/base-prompts/skills/pptx/scripts/replace.py +385 -0
  242. package/out/base-prompts/skills/pptx/scripts/thumbnail.py +450 -0
  243. package/out/base-prompts/skills/prompt-lab/SKILL.md +149 -0
  244. package/out/base-prompts/skills/prompt-lab/scripts/query-analytics.sh +2551 -0
  245. package/out/base-prompts/skills/skill-creator/LICENSE.txt +202 -0
  246. package/out/base-prompts/skills/skill-creator/SKILL.md +371 -0
  247. package/out/base-prompts/skills/skill-creator/references/output-patterns.md +82 -0
  248. package/out/base-prompts/skills/skill-creator/references/workflows.md +28 -0
  249. package/out/base-prompts/skills/skill-creator/scripts/init_skill.py +303 -0
  250. package/out/base-prompts/skills/skill-creator/scripts/package_skill.py +110 -0
  251. package/out/base-prompts/skills/skill-creator/scripts/quick_validate.py +95 -0
  252. package/out/base-prompts/skills/skill-installer/SKILL.md +251 -0
  253. package/out/base-prompts/skills/skill-installer/references/store-api.md +219 -0
  254. package/out/base-prompts/skills/spotlight-dashboard/SKILL.md +83 -0
  255. package/out/base-prompts/skills/spotlight-insights/SKILL.md +101 -0
  256. package/out/base-prompts/skills/spotlight-optimize/SKILL.md +93 -0
  257. package/out/base-prompts/skills/spotlight-optimize/scripts/query-analytics.sh +2551 -0
  258. package/out/base-prompts/skills/spotlight-query/SKILL.md +314 -0
  259. package/out/base-prompts/skills/spotlight-query/references/otel-schema.md +163 -0
  260. package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.sh +2551 -0
  261. package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.test.sh +744 -0
  262. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/sessions/sess-test-1.jsonl +14 -0
  263. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/.duckdb-index.json +7 -0
  264. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/sample.jsonl +5 -0
  265. package/out/base-prompts/skills/spotlight-report/SKILL.md +86 -0
  266. package/out/base-prompts/skills/spotlight-visualize/SKILL.md +92 -0
  267. package/out/base-prompts/skills/spotlight-visualize/scripts/query-analytics.sh +2551 -0
  268. package/out/base-prompts/skills/xlsx/LICENSE.txt +30 -0
  269. package/out/base-prompts/skills/xlsx/SKILL.md +289 -0
  270. package/out/base-prompts/skills/xlsx/recalc.py +178 -0
  271. package/out/branding.js +23 -0
  272. package/out/cli/commands/anywhere.js +66 -0
  273. package/out/cli/commands/ask.js +243 -0
  274. package/out/cli/commands/auth-broker.js +24 -0
  275. package/out/cli/commands/auth.js +219 -0
  276. package/out/cli/commands/chat.js +354 -0
  277. package/out/cli/commands/deploy.js +223 -0
  278. package/out/cli/commands/gateway.js +160 -0
  279. package/out/cli/commands/pack.js +220 -0
  280. package/out/cli/commands/probe-custom-engine.js +82 -0
  281. package/out/cli/commands/serve.js +583 -0
  282. package/out/cli/commands/store.js +919 -0
  283. package/out/cli/credential-context.js +113 -0
  284. package/out/cli/deploy-init.js +2087 -0
  285. package/out/cli/deps.js +238 -0
  286. package/out/cli/index.js +390 -0
  287. package/out/cli/pack-loader.js +376 -0
  288. package/out/cli/run-custom-engine-runner.js +318 -0
  289. package/out/cli/runtime.js +409 -0
  290. package/out/cli/serve-hardening.js +325 -0
  291. package/out/cli/state-sync.js +135 -0
  292. package/out/cli/utils.js +220 -0
  293. package/out/cli/vscode-shim.js +86 -0
  294. package/out/engines/base.js +159 -0
  295. package/out/engines/claude.js +1215 -0
  296. package/out/engines/codex.js +759 -0
  297. package/out/engines/custom.js +632 -0
  298. package/out/engines/customEngineIpc.js +95 -0
  299. package/out/engines/customEngineRunnerEmbed.js +107 -0
  300. package/out/engines/customRegistry.js +274 -0
  301. package/out/engines/embeddedCustomEngineRunner.generated.js +9 -0
  302. package/out/engines/engineApiKey.js +138 -0
  303. package/out/engines/factory.js +45 -0
  304. package/out/engines/install.js +372 -0
  305. package/out/engines/persistentEngineWorker.js +320 -0
  306. package/out/engines/publish.js +341 -0
  307. package/out/engines/types.js +17 -0
  308. package/out/examples/run-headless-repl.js +291 -0
  309. package/out/examples/run-headless.js +187 -0
  310. package/out/extension.js +4472 -0
  311. package/out/gateway/bridge.js +805 -0
  312. package/out/gateway/cli-agent-id.js +36 -0
  313. package/out/gateway/client.js +303 -0
  314. package/out/gateway/client.test.js +395 -0
  315. package/out/gateway/gateway-scope-errors.js +14 -0
  316. package/out/gateway/gatewayBackup.js +76 -0
  317. package/out/gateway/gatewayRouteIndex.js +371 -0
  318. package/out/gateway/gatewaySessionStore.js +243 -0
  319. package/out/gateway/index.js +31 -0
  320. package/out/gateway/lifecycle.js +3056 -0
  321. package/out/gateway/openclaw-channel-routing.js +317 -0
  322. package/out/gateway/outboundHandles.js +373 -0
  323. package/out/gateway/outboundPaths.js +72 -0
  324. package/out/gateway/outboundSend.js +254 -0
  325. package/out/gateway/protocol.js +48 -0
  326. package/out/gateway/resetMappings.js +52 -0
  327. package/out/gateway/service.js +1244 -0
  328. package/out/gateway/sessionRouting.js +77 -0
  329. package/out/headless/index.js +505 -0
  330. package/out/headless/sync.js +473 -0
  331. package/out/mcp/publish.js +143 -0
  332. package/out/mcp.js +597 -0
  333. package/out/permissions.js +108 -0
  334. package/out/permissions.mapping.yaml +68 -0
  335. package/out/registry/index.js +332 -0
  336. package/out/remote/handleRemoteChat.js +122 -0
  337. package/out/remote/remotePackStatusBar.js +103 -0
  338. package/out/remote/serveClient.js +216 -0
  339. package/out/remoteSkills.js +191 -0
  340. package/out/runtime/index.js +32 -0
  341. package/out/runtime/interfaces/config-provider.js +32 -0
  342. package/out/runtime/interfaces/edit-tracker.js +22 -0
  343. package/out/runtime/interfaces/index.js +29 -0
  344. package/out/runtime/interfaces/logger.js +40 -0
  345. package/out/runtime/interfaces/permission-handler.js +66 -0
  346. package/out/runtime/interfaces/session-store.js +342 -0
  347. package/out/runtime/vscode/index.js +20 -0
  348. package/out/runtime/vscode/vscode-config-provider.js +77 -0
  349. package/out/runtime/vscode/vscode-edit-tracker.js +120 -0
  350. package/out/runtime/vscode/vscode-logger.js +30 -0
  351. package/out/runtime/vscode/vscode-permission-handler.js +72 -0
  352. package/out/runtime/vscode/vscode-session-store.js +22 -0
  353. package/out/scripts/agentide-litellm.ps1 +501 -0
  354. package/out/scripts/agentide-litellm.sh +700 -0
  355. package/out/scripts/agentide_litellm_hooks_v1.py +604 -0
  356. package/out/scripts/analytics/agent-fleet-widget.js +954 -0
  357. package/out/scripts/analytics/agentide-litellm-otel.config.yaml +160 -0
  358. package/out/scripts/analytics/default-seed-scripts.json +12 -0
  359. package/out/scripts/analytics/duckdbLocator.js +29 -0
  360. package/out/scripts/analytics/fleet-local-adapter.js +246 -0
  361. package/out/scripts/analytics/fleet-workflow.sh +263 -0
  362. package/out/scripts/analytics/generate-default-charts.py +685 -0
  363. package/out/scripts/analytics/hotspot-analysis-widget.js +909 -0
  364. package/out/scripts/analytics/index-traces.py +1394 -0
  365. package/out/scripts/analytics/install-analytics.sh +286 -0
  366. package/out/scripts/analytics/live-fleet-4-collector.cjs +315 -0
  367. package/out/scripts/analytics/live-fleet-4-daemon.mjs +134 -0
  368. package/out/scripts/analytics/live-fleet-4-widget.cjs +433 -0
  369. package/out/scripts/analytics/otel-collector.yaml +55 -0
  370. package/out/scripts/analytics/query-analytics.ps1 +396 -0
  371. package/out/scripts/analytics/query-analytics.sh +2551 -0
  372. package/out/scripts/analytics/session-comparison-widget.js +1468 -0
  373. package/out/scripts/analytics/session-timeline-widget.js +2137 -0
  374. package/out/scripts/analytics/setup-analytics.ps1 +432 -0
  375. package/out/scripts/analytics/setup-analytics.sh +854 -0
  376. package/out/scripts/analytics/start-analytics.ps1 +169 -0
  377. package/out/scripts/analytics/start-analytics.sh +323 -0
  378. package/out/scripts/analytics/token-cost-flamegraph-widget.js +954 -0
  379. package/out/scripts/analytics/token-cost-trend-widget.js +1062 -0
  380. package/out/scripts/analytics/workflows-collector.cjs +315 -0
  381. package/out/scripts/analytics/workflows-daemon.mjs +186 -0
  382. package/out/scripts/analytics/workflows-widget.cjs +433 -0
  383. package/out/scripts/analytics/wow-model-widget.js +191 -0
  384. package/out/scripts/gateway/Dockerfile.serve +45 -0
  385. package/out/scripts/gateway/docker-serve.sh +248 -0
  386. package/out/scripts/gateway/setup-gateway-server.ps1 +953 -0
  387. package/out/scripts/gateway/setup-gateway-server.sh +935 -0
  388. package/out/scripts/gateway/setup-gateway.ps1 +1813 -0
  389. package/out/scripts/gateway/setup-gateway.sh +1541 -0
  390. package/out/scripts/setup-cli.ps1 +86 -0
  391. package/out/scripts/setup-cli.sh +117 -0
  392. package/out/scripts/tools-manifest.json +83 -0
  393. package/out/scripts/vendor-tools.mjs +234 -0
  394. package/out/session.js +272 -0
  395. package/out/shared/agentEngines.js +170 -0
  396. package/out/shared/index.js +109 -0
  397. package/out/shared/models.js +235 -0
  398. package/out/shared/providers.js +202 -0
  399. package/out/skills/publish.js +178 -0
  400. package/out/spotlight/install.js +339 -0
  401. package/out/spotlight/publish.js +544 -0
  402. package/out/spotlight/yaml.js +31 -0
  403. package/out/store/github/setup.js +235 -0
  404. package/out/store/github/templates/build-index.ts +339 -0
  405. package/out/store/github/templates/build-index.yml +97 -0
  406. package/out/store/github/templates/package.json +11 -0
  407. package/out/store/index.js +755 -0
  408. package/out/store/oramaIndex.js +884 -0
  409. package/out/store/shared.js +241 -0
  410. package/out/sync.js +1827 -0
  411. package/out/terminalLogger.js +358 -0
  412. package/out/test/agentEnvFile.test.js +97 -0
  413. package/out/test/agentYaml.test.js +373 -0
  414. package/out/test/agentpack.test.js +639 -0
  415. package/out/test/analytics-lifecycle.test.js +174 -0
  416. package/out/test/analytics.test.js +524 -0
  417. package/out/test/auth-bootstrapApply.test.js +102 -0
  418. package/out/test/auth-broker.test.js +434 -0
  419. package/out/test/auth-callback.test.js +62 -0
  420. package/out/test/branding.test.js +229 -0
  421. package/out/test/cli-agent-id.test.js +55 -0
  422. package/out/test/credential-context.test.js +105 -0
  423. package/out/test/customEngineInstall.test.js +100 -0
  424. package/out/test/customRegistry.test.js +122 -0
  425. package/out/test/deploy-init.test.js +532 -0
  426. package/out/test/deps-auto-install.test.js +81 -0
  427. package/out/test/engine-integration.test.js +297 -0
  428. package/out/test/enginePaths.test.js +195 -0
  429. package/out/test/enginePublish.test.js +82 -0
  430. package/out/test/fleetDisplayUtils.test.js +96 -0
  431. package/out/test/gateway-client.test.js +381 -0
  432. package/out/test/gateway-lifecycle.test.js +608 -0
  433. package/out/test/gateway-outbound.test.js +531 -0
  434. package/out/test/gateway-reset-mappings.test.js +221 -0
  435. package/out/test/gateway-route-index.test.js +235 -0
  436. package/out/test/gateway-session-routing.test.js +47 -0
  437. package/out/test/gateway-session-store.test.js +216 -0
  438. package/out/test/github.test.js +232 -0
  439. package/out/test/headless-sync.test.js +279 -0
  440. package/out/test/helpers/manifest-fixtures.js +27 -0
  441. package/out/test/mcp-obo.test.js +82 -0
  442. package/out/test/mcp.test.js +307 -0
  443. package/out/test/openclaw-channel-routing.test.js +191 -0
  444. package/out/test/pathSafety.test.js +63 -0
  445. package/out/test/permissions.test.js +175 -0
  446. package/out/test/persistent-engine-worker.test.js +220 -0
  447. package/out/test/refreshPolicy.test.js +60 -0
  448. package/out/test/registry.test.js +351 -0
  449. package/out/test/runtime.test.js +349 -0
  450. package/out/test/scheduledFleetStorage.test.js +72 -0
  451. package/out/test/serve-hardening.test.js +192 -0
  452. package/out/test/serveClient.test.js +173 -0
  453. package/out/test/sessionJsonlFleet.test.js +78 -0
  454. package/out/test/shared.test.js +173 -0
  455. package/out/test/skills-mcp.test.js +299 -0
  456. package/out/test/spotlightPublish.test.js +299 -0
  457. package/out/test/spotlightYaml.test.js +58 -0
  458. package/out/test/state-sync-peer.test.js +74 -0
  459. package/out/test/store.test.js +331 -0
  460. package/out/test/stores.test.js +504 -0
  461. package/out/test/sync-switch.test.js +251 -0
  462. package/out/test/teamViewDiscovery.test.js +90 -0
  463. package/out/test/toolPath.test.js +120 -0
  464. package/out/test/utils.test.js +308 -0
  465. package/out/test/viewsConfigMerge.test.js +180 -0
  466. package/out/test/windows-command-line.test.js +75 -0
  467. package/out/utils/agentEnvFile.js +131 -0
  468. package/out/utils/binary.js +175 -0
  469. package/out/utils/index.js +37 -0
  470. package/out/utils/network.js +74 -0
  471. package/out/utils/pathSafety.js +60 -0
  472. package/out/utils/paths.js +116 -0
  473. package/out/utils/pid.js +180 -0
  474. package/out/utils/pythonRunner.js +258 -0
  475. package/out/utils/resolveNodeBinary.js +168 -0
  476. package/out/utils/toolPath.js +83 -0
  477. package/out/utils/windowsCommandLine.js +29 -0
  478. package/out/utils.js +915 -0
  479. package/out/workspaceFolders.js +59 -0
  480. package/package.json +41 -0
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: desktop-automation
3
+ description: Drive desktop applications on Windows and macOS using accessibility APIs, keyboard input, screenshots, and coordinate fallback. Use when you need to control an already-open app window, collect visual evidence, debug UI state, or automate UI that browser-native tools cannot attach to.
4
+ ---
5
+
6
+ # Desktop Automation
7
+
8
+ Use this skill when the task is about a real desktop window rather than a browser-native or code-only workflow.
9
+
10
+ Prefer browser-native tools such as `agent-browser` for websites in a managed or CDP-enabled browser. Use this skill when the user cares about the active desktop app/window, when browser tools cannot attach, or when visual evidence from the actual desktop matters.
11
+
12
+ ## Control Ladder
13
+
14
+ 1. Use the platform accessibility tree first.
15
+ 2. Use keyboard shortcuts and text input for common app flows.
16
+ 3. Capture screenshots before and after important actions, defaulting to window-targeted capture by window ID/handle when available.
17
+ 4. Use coordinate clicks only after accessibility lookup fails or the app exposes poor metadata.
18
+ 5. Verify the outcome with screenshots plus an independent signal when possible.
19
+
20
+ Independent signals can be a window title, URL, file existence, process state, port state, app log, clipboard value, or exported data.
21
+
22
+ ## Browser Defaults (When Using Desktop Automation)
23
+
24
+ When automating an already-open desktop browser window:
25
+
26
+ 1. Open a **new tab by default** (`Ctrl+T` on Windows/Linux, `Cmd+T` on macOS) unless the user explicitly asks to reuse the current tab.
27
+ 2. Navigate to the requested site in the new tab.
28
+ 3. After the site loads, interact with **in-page controls** (search fields, buttons, menus) via accessibility first.
29
+ 4. If the user says to type in a site search/input box, entering text in the browser address bar does **not** satisfy the request.
30
+ 5. Capture before/after screenshots that show the page state at each key milestone.
31
+
32
+ ## Windows
33
+
34
+ Use Windows UI Automation through PowerShell.
35
+
36
+ Helper module:
37
+
38
+ ```powershell
39
+ Set-ExecutionPolicy -Scope Process Bypass -Force
40
+ Import-Module '<skill_dir>\scripts\windows-desktop-uia.psm1' -Force
41
+ ```
42
+
43
+ General workflow:
44
+
45
+ 1. Find the top-level window by title or process.
46
+ 2. Bring it to the foreground.
47
+ 3. Enumerate descendants and inspect `Name`, `ControlType`, bounds, and supported patterns.
48
+ 4. Invoke controls by accessibility pattern when possible.
49
+ 5. Use `SendKeys` for standard shortcuts and text entry.
50
+ 6. Capture screenshots for proof and debugging, defaulting to window-targeted capture by window handle; use full-screen capture only when window-targeted capture is unavailable.
51
+
52
+ Useful primitives:
53
+ - `Get-WindowAutomationElementByName`
54
+ - `Get-WindowDescendants`
55
+ - `Find-WindowElementByName`
56
+ - `Invoke-UIElement`
57
+ - `Focus-ProcessWindow`
58
+ - `Save-FullScreen`
59
+ - `Click-ScreenPoint`
60
+
61
+ ## macOS
62
+
63
+ Use Accessibility plus AppleScript/JXA and screenshots.
64
+
65
+ Preflight:
66
+
67
+ ```bash
68
+ osascript -e 'tell application "System Events" to get name of first process whose frontmost is true'
69
+ ```
70
+
71
+ If this fails with an accessibility/privacy error, the terminal or IDE running the command needs permission in:
72
+
73
+ ```text
74
+ System Settings > Privacy & Security > Accessibility
75
+ ```
76
+
77
+ General workflow:
78
+
79
+ 1. Bring the app forward with AppleScript.
80
+ 2. Inspect visible windows and UI elements through `System Events`.
81
+ 3. Prefer menu items, buttons, text fields, and keyboard shortcuts over coordinates.
82
+ 4. Use `screencapture` before and after actions, defaulting to window-targeted capture by window id (`-l <windowid>`); use full-screen capture only when a reliable window id is unavailable.
83
+ 5. Use coordinate clicks only as a fallback, usually through AppleScript, `cliclick`, or another available local tool.
84
+
85
+ Bring an app forward:
86
+
87
+ ```bash
88
+ osascript -e 'tell application "Safari" to activate'
89
+ ```
90
+
91
+ List windows:
92
+
93
+ ```bash
94
+ osascript -e 'tell application "System Events" to tell process "Safari" to get name of windows'
95
+ ```
96
+
97
+ Type text into the focused control:
98
+
99
+ ```bash
100
+ osascript -e 'tell application "System Events" to keystroke "hello world"'
101
+ ```
102
+
103
+ Press a shortcut:
104
+
105
+ ```bash
106
+ osascript -e 'tell application "System Events" to keystroke "l" using command down'
107
+ ```
108
+
109
+ Take a screenshot:
110
+
111
+ ```bash
112
+ screencapture -x /tmp/desktop-before.png
113
+ ```
114
+
115
+ ## Screenshot Debugging
116
+
117
+ When the accessibility tree and the visible screen disagree, pause and gather evidence:
118
+
119
+ 1. Capture a screenshot.
120
+ 2. Dump visible controls with names, types, bounds, and offscreen state.
121
+ 3. Compare the screenshot against the accessibility dump.
122
+ 4. Decide whether the problem is stale state, wrong focus, offscreen UI, a transient overlay, or missing accessibility metadata.
123
+
124
+ Common interpretations:
125
+ - Screenshot shows target, accessibility dump does not: use coordinate fallback, but keep looking for a nearby stable control.
126
+ - Accessibility dump shows target, screenshot does not: refocus or wait; the tree may be stale or the element may be offscreen.
127
+ - Both show target but action fails: try supported patterns first, then keyboard, then center-point click.
128
+ - Text typed into the wrong place: restore focus, select the intended field, and paste literal text from the clipboard instead of sending special characters directly.
129
+
130
+ ## Coordinate Fallback
131
+
132
+ Coordinates are temporary scaffolding. Derive them from a screenshot plus window/control bounds, then verify immediately.
133
+
134
+ Rules:
135
+ - click near the visual center of the target
136
+ - avoid borders, splitters, scrollbars, and label edges
137
+ - recompute coordinates after window movement, zoom changes, scrolling, or layout changes
138
+ - save a before and after screenshot
139
+ - replace the coordinate with an accessibility selector once you find a stable one
140
+
141
+ ## Recording
142
+
143
+ Use recording for longer flows or when the user will review the interaction.
144
+
145
+ Windows:
146
+
147
+ ```powershell
148
+ ffmpeg -f gdigrab -framerate 15 -i desktop -c:v mpeg4 .\desktop-run.avi
149
+ ```
150
+
151
+ macOS:
152
+
153
+ ```bash
154
+ screencapture -v /tmp/desktop-run.mov
155
+ ```
156
+
157
+ If OBS is already configured, it is fine to use OBS instead. Always keep screenshots for key states even when recording video.
158
+
159
+ ## App-Specific Recipes
160
+
161
+ Keep the core skill general. Put product-specific tricks in references.
162
+
163
+ Current reference:
164
+ - `references/agenthippo-ui-recipes.md` documents AgentHippo IDE workflows, status menus, command palette behavior, and lessons from real Windows testing.
165
+
166
+ Read that reference only when the task is specifically about AgentHippo IDE or when you need an example of a complete desktop automation workflow.
@@ -0,0 +1,441 @@
1
+ # AgentHippo Windows UI Recipes
2
+
3
+ This reference captures the concrete tools, scripts, commands, and reliability tricks that were used during real Agent Anywhere and Spotlight validation on Windows.
4
+
5
+ Use it with `windows-desktop-uia.psm1`.
6
+
7
+ ## Real IDE launch
8
+
9
+ Launch the real IDE, not just the test host:
10
+
11
+ ```powershell
12
+ D:\dev\agenthippo-vscode\scripts\code.bat
13
+ ```
14
+
15
+ Compile before UI testing:
16
+
17
+ ```powershell
18
+ npm run compile
19
+ ```
20
+
21
+ Extension-only compile:
22
+
23
+ ```powershell
24
+ C:\Users\trung\AppData\Roaming\nodejs\node.exe D:\dev\agenthippo-vscode\node_modules\typescript\lib\tsc.js -p D:\dev\agenthippo-vscode\extensions\agentide
25
+ ```
26
+
27
+ ## Import pattern
28
+
29
+ Unsigned module imports need a per-process execution policy bypass:
30
+
31
+ ```powershell
32
+ Set-ExecutionPolicy -Scope Process Bypass -Force
33
+ Import-Module 'D:\dev\agenthippo-vscode\extensions\agentide\base-prompts\skills\desktop-automation\scripts\windows-desktop-uia.psm1' -Force
34
+ ```
35
+
36
+ Without that bypass, local module import may fail before any UI interaction starts.
37
+
38
+ ## Core helper functions
39
+
40
+ The helper module exposes these tested functions:
41
+
42
+ - `Get-AgentHippoProcess`
43
+ - `Get-AgentHippoWindow`
44
+ - `Get-AgentHippoRect`
45
+ - `Focus-AgentHippo`
46
+ - `Save-FullScreen`
47
+ - `Minimize-InterferingBrowsers`
48
+ - `Get-AgentDescendants`
49
+ - `Find-AgentElementByName`
50
+ - `Invoke-AgentElement`
51
+ - `Invoke-AgentButtonByName`
52
+ - `Invoke-AgentStatusButton`
53
+ - `Invoke-AgentCommand`
54
+ - `Get-AgentAnywhereNotificationWindow`
55
+ - `Invoke-AgentAnywhereNotificationButton`
56
+ - `Click-ScreenPoint`
57
+
58
+ ## Proven command-palette flow
59
+
60
+ This is the most reliable command pattern that worked in the live IDE:
61
+
62
+ ```powershell
63
+ Invoke-AgentCommand -Query 'Agent Anywhere Status' -TargetName 'Agent Hippo: Agent Anywhere Status'
64
+ ```
65
+
66
+ Other real command labels that appeared in the live IDE:
67
+
68
+ - `Agent Hippo: Install Agent Anywhere (Gateway), recently used`
69
+ - `Agent Hippo: Agent Anywhere Status`
70
+ - `Agent Hippo: Connect Agent Anywhere`
71
+ - `Agent Hippo: Uninstall Agent Anywhere (OpenClaw CLI)`
72
+ - `Agent Hippo: Detect Agent Anywhere Gateway`
73
+ - `Agent Hippo: Disconnect Agent Anywhere`
74
+
75
+ ## Robust manual command fallback
76
+
77
+ When `Invoke-AgentCommand` misses, use this sequence instead of guessing:
78
+
79
+ 1. `Focus-AgentHippo`
80
+ 2. Send `{ESC}{ESC}`
81
+ 3. Send `^+p`
82
+ 4. Send `^a`
83
+ 5. Type `>query`
84
+ 6. Wait about `700-900ms`
85
+ 7. Enumerate `Get-AgentDescendants`
86
+ 8. Find a `ControlType.ListItem` whose name starts with the desired command label
87
+ 9. Invoke it with `Invoke-AgentElement`
88
+
89
+ This worked better than blind Enter presses because the visible selection can lag behind the typed query.
90
+
91
+ ## Button and notification recipes
92
+
93
+ ### Agent Anywhere status
94
+
95
+ Preferred pattern:
96
+
97
+ 1. Open status
98
+ 2. Inspect the notification window
99
+ 3. Click the exact named button
100
+
101
+ Example:
102
+
103
+ ```powershell
104
+ Invoke-AgentCommand -Query 'Agent Anywhere Status' -TargetName 'Agent Hippo: Agent Anywhere Status'
105
+ Invoke-AgentAnywhereNotificationButton -Name 'Restart'
106
+ ```
107
+
108
+ Buttons observed in live runs:
109
+
110
+ When running:
111
+ - `Web UI`
112
+ - `Config`
113
+ - `Restart`
114
+ - `Reset auth`
115
+ - `Uninstall`
116
+
117
+ When stopped:
118
+ - `Connect`
119
+ - `Config`
120
+ - `Uninstall`
121
+
122
+ ### Important safety note
123
+
124
+ Do not click `Reset auth` on a live profile unless the user wants the gateway auth token rotated in `C:\Users\trung\.openclaw\openclaw.json`.
125
+
126
+ ## Typing into the AgentHippo UI
127
+
128
+ Chat typing was successfully done with focused coordinate click plus `SendKeys`.
129
+
130
+ Real example that worked:
131
+
132
+ ```powershell
133
+ Focus-AgentHippo
134
+ Click-ScreenPoint -X 1960 -Y 1190 -DelayMs 500
135
+ [System.Windows.Forms.SendKeys]::SendWait('hello test')
136
+ Start-Sleep -Milliseconds 700
137
+ Save-FullScreen -Path 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\214-after-typing-local-chat.png'
138
+ ```
139
+
140
+ Takeaways:
141
+ - first get the app to the foreground
142
+ - click only after the input area is visibly ready
143
+ - capture a screenshot immediately after typing
144
+ - prefer UIA focus if the input control is easy to identify; use coordinate clicks only when the input is visually obvious but UIA names are not stable
145
+
146
+ New chat button examples:
147
+
148
+ UIA route:
149
+
150
+ ```powershell
151
+ Invoke-AgentButtonByName -Name 'New Chat (Ctrl+N)'
152
+ ```
153
+
154
+ Coordinate fallback:
155
+
156
+ ```powershell
157
+ Focus-AgentHippo
158
+ Click-ScreenPoint -X 2009 -Y 125 -DelayMs 1500
159
+ ```
160
+
161
+ ## Screenshot practice
162
+
163
+ Use full-screen captures at each important milestone:
164
+
165
+ ```powershell
166
+ Save-FullScreen -Path 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\before.png'
167
+ ```
168
+
169
+ Recommended sequence:
170
+ - before action
171
+ - immediately after action
172
+ - after settle if state changes asynchronously
173
+
174
+ Artifacts from the real runs live under:
175
+
176
+ - Screens: `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens`
177
+ - Alternate captures: `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screenshots`
178
+
179
+ ## Debugging UI state mismatches
180
+
181
+ Use this when UIA says one thing but the live screen suggests something else.
182
+
183
+ Examples from real work:
184
+ - stale status card content after connect or restart
185
+ - a visible notification that disappears between two scripts
186
+ - focus landing in the wrong app after a browser steals foreground
187
+ - a control that is clearly visible but has no usable UIA name
188
+
189
+ Recommended workflow:
190
+
191
+ 1. Save a screenshot immediately.
192
+ 2. Dump the AgentHippo window bounds.
193
+ 3. Dump on-screen UIA elements with names and rectangles.
194
+ 4. Compare screenshot versus bounds.
195
+ 5. Only then choose the next action.
196
+
197
+ ### Window bounds probe
198
+
199
+ This tells you where the live app window sits on the desktop:
200
+
201
+ ```powershell
202
+ Focus-AgentHippo
203
+ Get-AgentHippoRect | Format-List
204
+ ```
205
+
206
+ The earlier ad hoc artifact script for this was:
207
+
208
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\rects.ps1`
209
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\uia-window.ps1`
210
+
211
+ ### On-screen UIA dump
212
+
213
+ This is the most useful dump when you need to compare visible controls against the screenshot:
214
+
215
+ ```powershell
216
+ Focus-AgentHippo
217
+ $rect = Get-AgentHippoRect
218
+ $all = Get-AgentDescendants
219
+ $items = @()
220
+ for ($i = 0; $i -lt $all.Count; $i++) {
221
+ $el = $all.Item($i)
222
+ $x = $el.Current.BoundingRectangle.Left
223
+ $y = $el.Current.BoundingRectangle.Top
224
+ if ($el.Current.Name -and $x -ge $rect.Left -and $x -le $rect.Right -and $y -ge $rect.Top -and $y -le $rect.Bottom) {
225
+ $items += [pscustomobject]@{
226
+ Name = $el.Current.Name
227
+ Type = $el.Current.ControlType.ProgrammaticName
228
+ X = $x
229
+ Y = $y
230
+ W = $el.Current.BoundingRectangle.Width
231
+ H = $el.Current.BoundingRectangle.Height
232
+ Offscreen = $el.Current.IsOffscreen
233
+ }
234
+ }
235
+ }
236
+ $items | Where-Object { $_.Type -in @('ControlType.Button','ControlType.ListItem','ControlType.Edit','ControlType.Text') } |
237
+ Sort-Object Y, X |
238
+ ConvertTo-Json -Depth 3 |
239
+ Set-Content 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\uia-elements-onscreen.json'
240
+ ```
241
+
242
+ This was based on the real artifact script:
243
+
244
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-onscreen.ps1`
245
+
246
+ ### How to interpret a mismatch
247
+
248
+ Use this decision table:
249
+
250
+ - Screenshot shows the target, dump does not:
251
+ - likely custom-drawn control or poor accessibility metadata
252
+ - use coordinate fallback, but keep looking for a nearby accessible anchor
253
+
254
+ - Dump shows the control, screenshot does not:
255
+ - likely stale window, wrong focus, or offscreen element
256
+ - refocus and recapture before clicking anything
257
+
258
+ - Both show the control but the action fails:
259
+ - likely timing issue, transient overlay, or wrong click point
260
+ - slow down and click the center of the visible target
261
+
262
+ - Screenshot and dump disagree on window location:
263
+ - likely multiple monitors or wrong foreground window
264
+ - re-run `Focus-AgentHippo`, then recapture
265
+
266
+ ## Deriving fallback click coordinates from screenshots
267
+
268
+ Coordinate clicks were a last resort, but they were sometimes necessary. The key is to derive them deliberately.
269
+
270
+ ### Step-by-step method
271
+
272
+ 1. Bring AgentHippo to the foreground:
273
+
274
+ ```powershell
275
+ Focus-AgentHippo
276
+ ```
277
+
278
+ 2. Capture a before screenshot:
279
+
280
+ ```powershell
281
+ Save-FullScreen -Path 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\before-target.png'
282
+ ```
283
+
284
+ 3. Record the app bounds:
285
+
286
+ ```powershell
287
+ $rect = Get-AgentHippoRect
288
+ $rect | Format-List
289
+ ```
290
+
291
+ 4. Inspect the screenshot and note the target's approximate center relative to the app window.
292
+
293
+ 5. If useful, dump nearby accessible controls to get neighboring bounds:
294
+
295
+ ```powershell
296
+ $all = Get-AgentDescendants
297
+ $all | ForEach-Object {
298
+ if ($_.Current.Name) {
299
+ [pscustomobject]@{
300
+ Name = $_.Current.Name
301
+ Type = $_.Current.ControlType.ProgrammaticName
302
+ X = $_.Current.BoundingRectangle.Left
303
+ Y = $_.Current.BoundingRectangle.Top
304
+ W = $_.Current.BoundingRectangle.Width
305
+ H = $_.Current.BoundingRectangle.Height
306
+ }
307
+ }
308
+ } | Sort-Object Y, X
309
+ ```
310
+
311
+ 6. Choose a click point near the visual center of the target.
312
+
313
+ 7. Click and capture immediately:
314
+
315
+ ```powershell
316
+ Click-ScreenPoint -X 2009 -Y 125 -DelayMs 1500
317
+ Save-FullScreen -Path 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\after-target-click.png'
318
+ ```
319
+
320
+ ### Specific lessons from real AgentHippo runs
321
+
322
+ - For chat input, clicking low and centered in the input area worked better than clicking near placeholder text.
323
+ - For title-bar or toolbar actions like `New Chat`, using the center of the icon/button area was more reliable than clicking on adjacent whitespace.
324
+ - For ephemeral menus, the coordinate often had to be used in the same script that opened the menu.
325
+ - If Chrome or Edge was visible, focus theft caused false coordinate failures; minimizing browsers first improved consistency.
326
+
327
+ ### Valuable artifact scripts
328
+
329
+ These are worth reading when adapting the method:
330
+
331
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\new-chat-click.ps1`
332
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\type-local-chat.ps1`
333
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\rects.ps1`
334
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-onscreen.ps1`
335
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-interesting.ps1`
336
+
337
+ ### Coordinates are disposable
338
+
339
+ Treat coordinates as:
340
+ - useful for immediate progress
341
+ - valid only for the current window size/layout/state
342
+ - something to replace later with a better UIA target if possible
343
+
344
+ Do not promote a coordinate click to the primary strategy unless repeated UIA inspection shows there is no reliable accessible target.
345
+
346
+ ## Screen recording
347
+
348
+ Long UI flows were captured to:
349
+
350
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\video\agent-anywhere-e2e.avi`
351
+
352
+ The existing recording logs show a working `ffmpeg` desktop capture using `gdigrab` at `15 fps` over the whole desktop. A good reusable command shape is:
353
+
354
+ ```powershell
355
+ ffmpeg -f gdigrab -framerate 15 -i desktop -c:v mpeg4 D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\video\agent-anywhere-e2e.avi
356
+ ```
357
+
358
+ Evidence for this comes from:
359
+
360
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\ffmpeg-stderr.log`
361
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\ffmpeg-stdout.log`
362
+
363
+ If OBS is already configured and scriptable on the machine, it is fine to use OBS instead, but `ffmpeg + gdigrab` is the simpler fallback.
364
+
365
+ ## UIA inspection and discovery
366
+
367
+ When a dialog is unfamiliar, dump the interesting descendants instead of guessing. This pattern was useful repeatedly:
368
+
369
+ ```powershell
370
+ Focus-AgentHippo
371
+ $all = Get-AgentDescendants
372
+ $items = @()
373
+ for ($i = 0; $i -lt $all.Count; $i++) {
374
+ $el = $all.Item($i)
375
+ if ($el.Current.Name) {
376
+ $items += [pscustomobject]@{
377
+ Name = $el.Current.Name
378
+ Type = $el.Current.ControlType.ProgrammaticName
379
+ X = $el.Current.BoundingRectangle.Left
380
+ Y = $el.Current.BoundingRectangle.Top
381
+ W = $el.Current.BoundingRectangle.Width
382
+ H = $el.Current.BoundingRectangle.Height
383
+ Offscreen = $el.Current.IsOffscreen
384
+ }
385
+ }
386
+ }
387
+ $items | Sort-Object Y, X | ConvertTo-Json -Depth 3 | Set-Content 'D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\uia-elements.json'
388
+ ```
389
+
390
+ Real discovery scripts in the artifact folder:
391
+
392
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia.ps1`
393
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-interesting.ps1`
394
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-interesting-2.ps1`
395
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\logs\dump-uia-onscreen.ps1`
396
+
397
+ ## Focus and timing tricks that mattered
398
+
399
+ - Minimize browsers before fine-grained UI work:
400
+
401
+ ```powershell
402
+ Minimize-InterferingBrowsers
403
+ ```
404
+
405
+ - Many actions need a short settle delay:
406
+ - `150-300ms` after focus changes
407
+ - `700-900ms` after typing palette queries
408
+ - `1200-1800ms` after command invocation
409
+
410
+ - If a notification vanishes quickly, open-and-click in one script instead of opening status in one step and clicking later.
411
+
412
+ - If the command palette or dialog seems stale, send `{ESC}{ESC}` first.
413
+
414
+ ## Validation habits from the real Agent Anywhere work
415
+
416
+ A script succeeding is not enough. Pair UI interaction with at least one independent check:
417
+
418
+ - screenshot
419
+ - port check
420
+ - log tail
421
+ - JSON status snapshot
422
+ - browser window title
423
+
424
+ Examples from the real runs:
425
+
426
+ - Browser title check after `Web UI`:
427
+ - `OpenClaw Control - Google Chrome`
428
+ - Agent Anywhere screenshots:
429
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\649-install-manualinvoke-final.png`
430
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\683-after-connect-hidden-launcher.png`
431
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\695-after-restart-combined.png`
432
+ - `D:\dev\agenthippo-vscode\.artifacts\agent-anywhere-e2e\screens\703-after-webui-combined.png`
433
+
434
+ ## Known live-workflow lessons
435
+
436
+ 1. Prefer UIA by label over coordinates.
437
+ 2. Use coordinates only as a bridge to discover a better target.
438
+ 3. Keep visual evidence for each important step.
439
+ 4. Refresh state before diagnosing a bug if the UI looks self-contradictory.
440
+ 5. Be careful with live-profile actions that rewrite auth or config.
441
+ 6. Build small temporary scripts in `.artifacts` during exploration, then fold the stable lessons back into the reusable skill.