@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,235 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) AgentHippo.ai. All rights reserved.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.setupStoreAutomation = setupStoreAutomation;
40
+ exports.triggerStoreWorkflow = triggerStoreWorkflow;
41
+ /**
42
+ * Store Setup
43
+ *
44
+ * Automates the setup of AgentHippo store index automation in a GitHub repository.
45
+ * Creates the necessary GitHub Action workflow and build scripts via a pull request.
46
+ */
47
+ const fs_1 = require("fs");
48
+ const path = __importStar(require("path"));
49
+ const github_1 = require("../../agentpack/github");
50
+ const utils_1 = require("../../utils");
51
+ // Helper to conditionally log
52
+ function log(logger, msg) {
53
+ if (logger) {
54
+ (0, utils_1.logInfo)(logger, msg);
55
+ }
56
+ }
57
+ // -----------------------------------------------------------------------------
58
+ // Template Loading
59
+ // -----------------------------------------------------------------------------
60
+ /**
61
+ * Get the path to the templates folder.
62
+ * Templates are in the same directory as this file (src/store/github/templates or out/store/github/templates).
63
+ */
64
+ function getTemplatesDir() {
65
+ return path.join(__dirname, 'templates');
66
+ }
67
+ /**
68
+ * Load a template file from the templates folder.
69
+ */
70
+ async function loadTemplate(filename) {
71
+ const templatePath = path.join(getTemplatesDir(), filename);
72
+ return await fs_1.promises.readFile(templatePath, 'utf8');
73
+ }
74
+ /**
75
+ * Set up store index automation in a GitHub repository.
76
+ * Creates a pull request with the workflow file, build script, and package.json.
77
+ */
78
+ async function setupStoreAutomation(owner, repo, outputChannel) {
79
+ const filesCreated = [];
80
+ try {
81
+ // Verify we have access to the repo (needs workflow scope to write .github/workflows)
82
+ await (0, github_1.getGitHubToken)(true, ['repo', 'user', 'workflow']);
83
+ const [repoInfo, currentUser] = await Promise.all([
84
+ (0, github_1.getRepo)(owner, repo),
85
+ (0, github_1.getGitHubUser)(),
86
+ ]);
87
+ if (!repoInfo) {
88
+ return {
89
+ success: false,
90
+ message: `Repository ${owner}/${repo} not found or not accessible`,
91
+ filesCreated: [],
92
+ };
93
+ }
94
+ // Check if user has write access (must be owner or collaborator)
95
+ const isOwner = repoInfo.owner.login.toLowerCase() === currentUser.login.toLowerCase();
96
+ if (!isOwner) {
97
+ return {
98
+ success: false,
99
+ message: `You don't have write access to ${owner}/${repo}. You must be the repository owner to set up store automation.`,
100
+ filesCreated: [],
101
+ };
102
+ }
103
+ log(outputChannel, `[AgentHippo] Setting up store automation for ${owner}/${repo}...`);
104
+ // Get the default branch and check if repo has commits
105
+ let defaultBranch;
106
+ try {
107
+ defaultBranch = await (0, github_1.getDefaultBranch)(owner, repo);
108
+ log(outputChannel, `[AgentHippo] Default branch: ${defaultBranch}`);
109
+ }
110
+ catch (e) {
111
+ return {
112
+ success: false,
113
+ message: `Repository ${owner}/${repo} appears to be empty (no commits). Please create an initial commit first (e.g., add a README).`,
114
+ filesCreated: [],
115
+ };
116
+ }
117
+ // Create a unique branch name (no slashes to avoid API issues)
118
+ const timestamp = Date.now();
119
+ const branchName = `agenthippo-store-setup-${timestamp}`;
120
+ // Create branch from default
121
+ log(outputChannel, `[AgentHippo] Creating branch: ${branchName}`);
122
+ await (0, github_1.createBranch)(owner, repo, branchName, defaultBranch);
123
+ // Load templates
124
+ const [workflowContent, scriptContent, packageContent] = await Promise.all([
125
+ loadTemplate('build-index.yml'),
126
+ loadTemplate('build-index.ts'),
127
+ loadTemplate('package.json'),
128
+ ]);
129
+ // Prepare files to commit
130
+ const filesToCommit = [
131
+ { path: '.github/workflows/build-index.yml', content: workflowContent },
132
+ { path: 'scripts/build-index.ts', content: scriptContent },
133
+ ];
134
+ filesCreated.push('.github/workflows/build-index.yml', 'scripts/build-index.ts');
135
+ // Only add package.json if it doesn't exist
136
+ const existingPackage = await (0, github_1.getFileContent)(owner, repo, 'package.json').catch(() => null);
137
+ if (!existingPackage) {
138
+ filesToCommit.push({ path: 'package.json', content: packageContent });
139
+ filesCreated.push('package.json');
140
+ }
141
+ // Commit all files in a single commit
142
+ log(outputChannel, `[AgentHippo] Committing ${filesToCommit.length} files...`);
143
+ await (0, github_1.commitMultipleFiles)(owner, repo, branchName, filesToCommit, 'chore: add AgentHippo store index automation', { scopes: ['repo', 'user', 'workflow'] });
144
+ for (const file of filesToCommit) {
145
+ // allow-any-unicode-next-line
146
+ log(outputChannel, `[AgentHippo] ✓ ${file.path}`);
147
+ }
148
+ if (existingPackage) {
149
+ log(outputChannel, `[AgentHippo] - package.json (already exists)`);
150
+ }
151
+ // Create pull request
152
+ log(outputChannel, `[AgentHippo] Creating pull request...`);
153
+ const pr = await (0, github_1.createPullRequest)(owner, repo, {
154
+ // allow-any-unicode-next-line
155
+ title: '🦛 Add AgentHippo Store Index Automation',
156
+ body: `## What's this?
157
+
158
+ This PR adds automated store index building for AgentHippo.
159
+
160
+ ### Files added:
161
+ ${filesCreated.map(f => `- \`${f}\``).join('\n')}
162
+
163
+ ### What happens next?
164
+
165
+ 1. **Merge this PR** to enable the automation
166
+ 2. The GitHub Action will build the Orama search index on every push to \`${defaultBranch}\`
167
+ 3. The index is committed to \`dist/\` and deployed to GitHub Pages (if enabled)
168
+
169
+ ### How it works
170
+
171
+ | Repo Type | Primary Source | Fallback |
172
+ |-----------|----------------|----------|
173
+ | **Public** | GitHub Pages (CDN) | GitHub API |
174
+ | **Private** | GitHub API | - |
175
+
176
+ ### Optional: Enable GitHub Pages (public repos)
177
+
178
+ For faster index loading on public repos:
179
+ 1. Go to Settings → Pages
180
+ 2. Set Source to "GitHub Actions"
181
+
182
+ ---
183
+ *Generated by [AgentHippo](https://github.com/agenthippoai/agentide)*`,
184
+ head: branchName,
185
+ base: defaultBranch,
186
+ });
187
+ // allow-any-unicode-next-line
188
+ log(outputChannel, `[AgentHippo] ✅ Pull request created: ${pr.html_url}`);
189
+ return {
190
+ success: true,
191
+ message: `Pull request #${pr.number} created successfully!`,
192
+ filesCreated,
193
+ pullRequestUrl: pr.html_url,
194
+ pullRequestNumber: pr.number,
195
+ };
196
+ }
197
+ catch (e) {
198
+ const errorMsg = e instanceof Error ? e.message : String(e);
199
+ // allow-any-unicode-next-line
200
+ log(outputChannel, `[AgentHippo] ❌ Error: ${errorMsg}`);
201
+ return {
202
+ success: false,
203
+ message: errorMsg,
204
+ filesCreated,
205
+ };
206
+ }
207
+ }
208
+ /**
209
+ * Trigger the store index workflow manually.
210
+ */
211
+ async function triggerStoreWorkflow(owner, repo, outputChannel) {
212
+ try {
213
+ const token = await (0, github_1.getGitHubToken)();
214
+ const defaultBranch = await (0, github_1.getDefaultBranch)(owner, repo);
215
+ const response = await fetch(`https://api.github.com/repos/${owner}/${repo}/actions/workflows/build-index.yml/dispatches`, {
216
+ method: 'POST',
217
+ headers: {
218
+ 'Authorization': `Bearer ${token}`,
219
+ 'Accept': 'application/vnd.github.v3+json',
220
+ 'Content-Type': 'application/json',
221
+ },
222
+ body: JSON.stringify({ ref: defaultBranch }),
223
+ });
224
+ if (response.ok || response.status === 204) {
225
+ log(outputChannel, `[AgentHippo] Workflow triggered successfully`);
226
+ return true;
227
+ }
228
+ log(outputChannel, `[AgentHippo] Failed to trigger workflow: ${response.status}`);
229
+ return false;
230
+ }
231
+ catch (e) {
232
+ log(outputChannel, `[AgentHippo] Error triggering workflow: ${e}`);
233
+ return false;
234
+ }
235
+ }
@@ -0,0 +1,339 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) AgentHippo.ai. All rights reserved.
3
+ *--------------------------------------------------------------------------------------------*/
4
+
5
+ // @ts-nocheck - This is a template file, not compiled by the extension
6
+ // To make this file executable, add: #!/usr/bin/env bun
7
+ /**
8
+ * Store Index Builder - Auto-generated by AgentHippo
9
+ *
10
+ * Scans agent-packs/, skills/, mcp/, engines/, and spotlight/ and builds an Orama search index.
11
+ * Run with: bun run scripts/build-index.ts
12
+ */
13
+
14
+ import { readdir, readFile, writeFile, mkdir, stat } from 'fs/promises';
15
+ import { join, basename } from 'path';
16
+ import { parse as parseYaml } from 'yaml';
17
+
18
+ // -----------------------------------------------------------------------------
19
+ // Configuration
20
+ // -----------------------------------------------------------------------------
21
+
22
+ const ARTIFACT_DIRS = {
23
+ pack: 'agent-packs',
24
+ skill: 'skills',
25
+ mcp: 'mcp',
26
+ engine: 'engines',
27
+ view: 'spotlight',
28
+ } as const;
29
+
30
+ const OUTPUT_DIR = 'dist';
31
+
32
+ // -----------------------------------------------------------------------------
33
+ // Types
34
+ // -----------------------------------------------------------------------------
35
+
36
+ interface StoreArtifact {
37
+ id: string;
38
+ type: 'pack' | 'skill' | 'mcp' | 'engine' | 'view';
39
+ slug: string;
40
+ displayName: string;
41
+ description: string;
42
+ tags: string[];
43
+ author?: string;
44
+ latestVersion: string;
45
+ updatedAt: string;
46
+ }
47
+
48
+ // -----------------------------------------------------------------------------
49
+ // Parsers
50
+ // -----------------------------------------------------------------------------
51
+
52
+ function parseFrontmatter(content: string): Record<string, unknown> {
53
+ if (!content.startsWith('---')) {
54
+ return {};
55
+ }
56
+ const lines = content.split('\n');
57
+ let endIndex = -1;
58
+ for (let i = 1; i < lines.length; i++) {
59
+ if (lines[i].trim() === '---') {
60
+ endIndex = i;
61
+ break;
62
+ }
63
+ }
64
+ if (endIndex === -1) {
65
+ return {};
66
+ }
67
+ try {
68
+ return parseYaml(lines.slice(1, endIndex).join('\n')) as Record<string, unknown>;
69
+ } catch {
70
+ return {};
71
+ }
72
+ }
73
+
74
+ async function parseSkill(dir: string): Promise<StoreArtifact | null> {
75
+ const slug = basename(dir);
76
+ try {
77
+ const content = await readFile(join(dir, 'SKILL.md'), 'utf8');
78
+ const fm = parseFrontmatter(content);
79
+ const stats = await stat(join(dir, 'SKILL.md'));
80
+ return {
81
+ id: `skill/${slug}`,
82
+ type: 'skill',
83
+ slug,
84
+ displayName: (fm.name as string) || slug,
85
+ description: (fm.description as string) || '',
86
+ tags: (fm.tags as string[]) || [],
87
+ author: fm.author as string | undefined,
88
+ latestVersion: (fm.version as string) || '0.0.0',
89
+ updatedAt: stats.mtime.toISOString(),
90
+ };
91
+ } catch {
92
+ return null;
93
+ }
94
+ }
95
+
96
+ async function parsePack(dir: string): Promise<StoreArtifact | null> {
97
+ const slug = basename(dir);
98
+ try {
99
+ const content = await readFile(join(dir, 'agent.yaml'), 'utf8');
100
+ const manifest = parseYaml(content) as Record<string, unknown>;
101
+ const meta = (manifest.metadata as Record<string, unknown>) || {};
102
+ const stats = await stat(join(dir, 'agent.yaml'));
103
+ return {
104
+ id: `pack/${slug}`,
105
+ type: 'pack',
106
+ slug,
107
+ displayName: (meta.name as string) || slug,
108
+ description: (meta.description as string) || '',
109
+ tags: (meta.tags as string[]) || [],
110
+ author: meta.author as string | undefined,
111
+ latestVersion: (meta.version as string) || '0.0.0',
112
+ updatedAt: stats.mtime.toISOString(),
113
+ };
114
+ } catch {
115
+ return null;
116
+ }
117
+ }
118
+
119
+ async function parseMcp(dir: string): Promise<StoreArtifact | null> {
120
+ const slug = basename(dir);
121
+ try {
122
+ const content = await readFile(join(dir, 'mcp.json'), 'utf8');
123
+ const manifest = JSON.parse(content) as Record<string, unknown>;
124
+ const stats = await stat(join(dir, 'mcp.json'));
125
+ return {
126
+ id: `mcp/${slug}`,
127
+ type: 'mcp',
128
+ slug,
129
+ displayName: (manifest.name as string) || slug,
130
+ description: (manifest.description as string) || '',
131
+ tags: (manifest.tags as string[]) || [],
132
+ author: manifest.author as string | undefined,
133
+ latestVersion: (manifest.version as string) || '0.0.0',
134
+ updatedAt: stats.mtime.toISOString(),
135
+ };
136
+ } catch {
137
+ return null;
138
+ }
139
+ }
140
+
141
+ function resolveViewPublishVersion(manifest: Record<string, unknown>): string | undefined {
142
+ if (typeof manifest.version === 'string' && manifest.version.trim()) {
143
+ return manifest.version.trim().replace(/^v/, '');
144
+ }
145
+ if (typeof manifest.semver === 'string' && manifest.semver.trim()) {
146
+ return manifest.semver.trim().replace(/^v/, '');
147
+ }
148
+ return undefined;
149
+ }
150
+
151
+ async function parseView(dir: string): Promise<StoreArtifact | null> {
152
+ const slug = basename(dir);
153
+ try {
154
+ const content = await readFile(join(dir, 'view.yaml'), 'utf8');
155
+ const manifest = parseYaml(content) as Record<string, unknown>;
156
+ const stats = await stat(join(dir, 'view.yaml'));
157
+ const tags = Array.isArray(manifest.tags)
158
+ ? (manifest.tags as string[])
159
+ : [];
160
+ return {
161
+ id: `view/${slug}`,
162
+ type: 'view',
163
+ slug,
164
+ displayName: (manifest.name as string) || slug,
165
+ description: (manifest.description as string) || '',
166
+ tags: ['spotlight', ...tags],
167
+ author: manifest.author as string | undefined,
168
+ latestVersion: resolveViewPublishVersion(manifest) || '0.0.0',
169
+ updatedAt: stats.mtime.toISOString(),
170
+ };
171
+ } catch {
172
+ return null;
173
+ }
174
+ }
175
+
176
+ async function parseEngine(dir: string): Promise<StoreArtifact | null> {
177
+ const slug = basename(dir);
178
+ try {
179
+ const content = await readFile(join(dir, 'engine.manifest.json'), 'utf8');
180
+ const manifest = JSON.parse(content) as Record<string, unknown>;
181
+ const stats = await stat(join(dir, 'engine.manifest.json'));
182
+ const packageJson = await readFile(join(dir, 'package.json'), 'utf8')
183
+ .then(raw => JSON.parse(raw) as Record<string, unknown>)
184
+ .catch(() => undefined);
185
+ const model = manifest.model as Record<string, unknown> | undefined;
186
+ const defaultModel = typeof model?.defaultModel === 'string'
187
+ ? model.defaultModel
188
+ : typeof model?.default === 'string'
189
+ ? model.default
190
+ : undefined;
191
+ return {
192
+ id: `engine/${slug}`,
193
+ type: 'engine',
194
+ slug,
195
+ displayName: (manifest.displayName as string) || (manifest.id as string) || slug,
196
+ description: (manifest.description as string) || '',
197
+ tags: ['engine', defaultModel].filter(Boolean) as string[],
198
+ author: manifest.author as string | undefined,
199
+ latestVersion: (packageJson?.version as string) || '0.0.0',
200
+ updatedAt: stats.mtime.toISOString(),
201
+ };
202
+ } catch {
203
+ return null;
204
+ }
205
+ }
206
+
207
+ // -----------------------------------------------------------------------------
208
+ // Main
209
+ // -----------------------------------------------------------------------------
210
+
211
+ async function buildIndex() {
212
+ // allow-any-unicode-next-line
213
+ console.log('🦛 AgentHippo Store Index Builder');
214
+ // allow-any-unicode-next-line
215
+ console.log('──────────────────────────────────');
216
+ console.log('');
217
+
218
+ const artifacts: StoreArtifact[] = [];
219
+
220
+ for (const [type, dir] of Object.entries(ARTIFACT_DIRS)) {
221
+ let entries: string[] = [];
222
+ try {
223
+ entries = await readdir(dir);
224
+ } catch {
225
+ // allow-any-unicode-next-line
226
+ console.log(`📁 ${dir}/ not found, skipping...`);
227
+ continue;
228
+ }
229
+
230
+ // allow-any-unicode-next-line
231
+ console.log(`📁 Scanning ${dir}/`);
232
+ for (const entry of entries) {
233
+ if (entry.startsWith('.')) {
234
+ continue;
235
+ }
236
+ const path = join(dir, entry);
237
+ const s = await stat(path).catch(() => null);
238
+ if (!s?.isDirectory()) {
239
+ continue;
240
+ }
241
+
242
+ let artifact: StoreArtifact | null = null;
243
+ if (type === 'skill') {
244
+ artifact = await parseSkill(path);
245
+ } else if (type === 'pack') {
246
+ artifact = await parsePack(path);
247
+ } else if (type === 'mcp') {
248
+ artifact = await parseMcp(path);
249
+ } else if (type === 'engine') {
250
+ artifact = await parseEngine(path);
251
+ } else if (type === 'view') {
252
+ artifact = await parseView(path);
253
+ }
254
+
255
+ if (artifact) {
256
+ artifacts.push(artifact);
257
+ // allow-any-unicode-next-line
258
+ console.log(` ✓ ${artifact.displayName} (${artifact.slug})`);
259
+ }
260
+ }
261
+ }
262
+
263
+ console.log('');
264
+ // allow-any-unicode-next-line
265
+ console.log(`📦 Building index with ${artifacts.length} artifacts...`);
266
+
267
+ await mkdir(OUTPUT_DIR, { recursive: true });
268
+
269
+ // Main index for Orama
270
+ const index = {
271
+ version: 1,
272
+ generatedAt: new Date().toISOString(),
273
+ generator: 'AgentHippo Store Index Builder',
274
+ artifacts,
275
+ };
276
+
277
+ await writeFile(join(OUTPUT_DIR, 'store-index.json'), JSON.stringify(index, null, 2));
278
+ await writeFile(join(OUTPUT_DIR, 'store-orama.json'), JSON.stringify({ artifacts }));
279
+ await writeFile(
280
+ join(OUTPUT_DIR, 'store-meta.json'),
281
+ JSON.stringify(
282
+ {
283
+ version: 1,
284
+ generatedAt: new Date().toISOString(),
285
+ artifactCount: artifacts.length,
286
+ },
287
+ null,
288
+ 2,
289
+ ),
290
+ );
291
+
292
+ // Create a simple index.html for GitHub Pages landing
293
+ await writeFile(
294
+ join(OUTPUT_DIR, 'index.html'),
295
+ `<!DOCTYPE html>
296
+ <html>
297
+ <head>
298
+ <title>AgentHippo Store Index</title>
299
+ <meta charset="utf-8">
300
+ <style>
301
+ body { font-family: system-ui; max-width: 600px; margin: 2rem auto; padding: 1rem; }
302
+ h1 { display: flex; align-items: center; gap: 0.5rem; }
303
+ a { color: #0969da; }
304
+ code { background: #f6f8fa; padding: 0.2em 0.4em; border-radius: 3px; }
305
+ </style>
306
+ </head>
307
+ <body>
308
+ ` + /* allow-any-unicode-next-line */ `
309
+ <h1>🦛 AgentHippo Store Index</h1>
310
+ <p>This is the search index for the AgentHippo extension store.</p>
311
+ <ul>
312
+ <li><a href="store-index.json">store-index.json</a> - Full artifact metadata</li>
313
+ <li><a href="store-orama.json">store-orama.json</a> - Orama search index</li>
314
+ <li><a href="store-meta.json">store-meta.json</a> - Index metadata</li>
315
+ </ul>
316
+ <p>Generated: ${new Date().toISOString()}</p>
317
+ <p>Artifacts: ${artifacts.length}</p>
318
+ </body>
319
+ </html>`,
320
+ );
321
+
322
+ console.log('');
323
+ // allow-any-unicode-next-line
324
+ console.log('✅ Index built successfully!');
325
+ // allow-any-unicode-next-line
326
+ console.log(` 📄 ${OUTPUT_DIR}/store-index.json`);
327
+ // allow-any-unicode-next-line
328
+ console.log(` 📄 ${OUTPUT_DIR}/store-orama.json`);
329
+ // allow-any-unicode-next-line
330
+ console.log(` 📄 ${OUTPUT_DIR}/store-meta.json`);
331
+ // allow-any-unicode-next-line
332
+ console.log(` 📄 ${OUTPUT_DIR}/index.html`);
333
+ }
334
+
335
+ buildIndex().catch((e) => {
336
+ // allow-any-unicode-next-line
337
+ console.error('❌ Build failed:', e);
338
+ process.exit(1);
339
+ });
@@ -0,0 +1,97 @@
1
+ # AgentHippo Store Index Builder
2
+ # Auto-generated by AgentHippo extension
3
+ #
4
+ # This workflow builds the Orama search index.
5
+ # - Public repos: Deploys to GitHub Pages (fast CDN)
6
+ # - All repos: Commits index to dist/ (fallback for private repos)
7
+
8
+ name: Build Store Index
9
+
10
+ on:
11
+ push:
12
+ branches: [main]
13
+ paths:
14
+ - 'agent-packs/**'
15
+ - 'skills/**'
16
+ - 'mcp/**'
17
+ - 'engines/**'
18
+ - 'spotlight/**'
19
+ - 'scripts/build-index.ts'
20
+ - 'package.json'
21
+ - '.github/workflows/build-index.yml'
22
+ workflow_dispatch:
23
+
24
+ permissions:
25
+ contents: write
26
+ pages: write
27
+ id-token: write
28
+
29
+ concurrency:
30
+ group: "store-index"
31
+ cancel-in-progress: false
32
+
33
+ jobs:
34
+ build:
35
+ runs-on: ubuntu-latest
36
+ outputs:
37
+ has_artifacts: ${{ steps.build.outputs.has_artifacts }}
38
+ steps:
39
+ - name: Checkout
40
+ uses: actions/checkout@v4
41
+
42
+ - name: Setup Bun
43
+ uses: oven-sh/setup-bun@v1
44
+ with:
45
+ bun-version: latest
46
+
47
+ - name: Install dependencies
48
+ run: bun install
49
+
50
+ - name: Build index
51
+ id: build
52
+ run: |
53
+ bun run scripts/build-index.ts
54
+ if [ -f "dist/store-index.json" ]; then
55
+ echo "has_artifacts=true" >> $GITHUB_OUTPUT
56
+ else
57
+ echo "has_artifacts=false" >> $GITHUB_OUTPUT
58
+ fi
59
+
60
+ - name: Commit index to repository
61
+ if: steps.build.outputs.has_artifacts == 'true'
62
+ continue-on-error: true
63
+ run: |
64
+ git config user.name "github-actions[bot]"
65
+ git config user.email "github-actions[bot]@users.noreply.github.com"
66
+ git add dist/
67
+ if git diff --staged --quiet; then
68
+ echo "No dist changes staged (e.g. dist/ is gitignored); skipping commit."
69
+ else
70
+ git commit -m "chore: update store index [skip ci]"
71
+ git push
72
+ fi
73
+
74
+ - name: Setup Pages
75
+ if: steps.build.outputs.has_artifacts == 'true'
76
+ uses: actions/configure-pages@v4
77
+ continue-on-error: true
78
+
79
+ - name: Upload Pages artifact
80
+ if: steps.build.outputs.has_artifacts == 'true'
81
+ uses: actions/upload-pages-artifact@v3
82
+ with:
83
+ path: './dist'
84
+ continue-on-error: true
85
+
86
+ deploy-pages:
87
+ runs-on: ubuntu-latest
88
+ needs: build
89
+ if: needs.build.outputs.has_artifacts == 'true'
90
+ continue-on-error: true # Don't fail if Pages not available (private repos)
91
+ environment:
92
+ name: github-pages
93
+ url: ${{ steps.deployment.outputs.page_url }}
94
+ steps:
95
+ - name: Deploy to GitHub Pages
96
+ id: deployment
97
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "agenthippo-store",
3
+ "private": true,
4
+ "scripts": {
5
+ "build": "bun run scripts/build-index.ts"
6
+ },
7
+ "dependencies": {
8
+ "yaml": "^2.7.1"
9
+ }
10
+ }
11
+