@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,441 @@
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.AgentPackManager = void 0;
40
+ const fs_1 = require("fs");
41
+ const path = __importStar(require("path"));
42
+ // Lazy-load vscode to allow bundling for CLI/headless mode
43
+ // Use eval to prevent Bun from statically analyzing the require
44
+ let _vscode;
45
+ function getVscode() {
46
+ if (!_vscode) {
47
+ // eslint-disable-next-line no-eval
48
+ _vscode = eval('require')('vscode');
49
+ }
50
+ return _vscode;
51
+ }
52
+ const paths_1 = require("./paths");
53
+ const manifest_1 = require("./manifest");
54
+ const utils_1 = require("../utils");
55
+ const stores_1 = require("./stores");
56
+ /**
57
+ * Manages agent installation, listing, and lifecycle.
58
+ * All agents (including default) live in .agentide/agents/<agentId>/
59
+ */
60
+ class AgentPackManager {
61
+ syncService;
62
+ getWorkspaceRoot;
63
+ getStorageUri;
64
+ outputChannel;
65
+ constructor(syncService, getWorkspaceRoot, getStorageUri, outputChannel) {
66
+ this.syncService = syncService;
67
+ this.getWorkspaceRoot = getWorkspaceRoot;
68
+ this.getStorageUri = getStorageUri;
69
+ this.outputChannel = outputChannel;
70
+ }
71
+ // -------------------------------------------------------------------------
72
+ // Agent Installation
73
+ // -------------------------------------------------------------------------
74
+ /**
75
+ * Install an agent from a local directory.
76
+ * Copies the source directory to .agentide/agents/<agentId>/
77
+ */
78
+ async installFromLocal(sourcePath) {
79
+ const workspaceRoot = this.getWorkspaceRoot();
80
+ const storageUri = this.getStorageUri();
81
+ // 1. Validate source has agent.yaml
82
+ const sourceManifestPath = path.join(sourcePath, paths_1.AGENT_CONSTANTS.MANIFEST_FILE);
83
+ if (!(await (0, utils_1.pathExists)(sourceManifestPath))) {
84
+ throw new Error(`No agent.yaml found at ${sourcePath}`);
85
+ }
86
+ // 2. Load and validate manifest
87
+ const manifest = await (0, manifest_1.loadAgentManifest)(sourceManifestPath);
88
+ const agentId = manifest.metadata.name;
89
+ const agentVersion = manifest.metadata.version;
90
+ // 3. Prevent installing over the default agent
91
+ if ((0, paths_1.isDefaultAgent)(agentId)) {
92
+ throw new Error('Cannot install an agent with reserved ID "default"');
93
+ }
94
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Installing: ${agentId}@${agentVersion} from ${sourcePath}`);
95
+ // 4. Resolve target paths
96
+ const runtime = (0, paths_1.resolveAgentRuntimePaths)(workspaceRoot, storageUri, agentId, agentVersion);
97
+ // 5. Create agent directories
98
+ await this.createAgentDirectories(runtime);
99
+ // 6. Copy source to agent location (if different)
100
+ const targetPath = runtime.agentRoot;
101
+ if (path.resolve(sourcePath) !== path.resolve(targetPath)) {
102
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Copying ${sourcePath} to ${targetPath}`);
103
+ await (0, utils_1.copyDirRecursive)(sourcePath, targetPath);
104
+ }
105
+ // 7. Register the agent
106
+ const installedAgent = await this.registerAgent(agentId, { source: 'local' });
107
+ // 8. Seed pack data immediately after install (without requiring activation)
108
+ await this.syncService.seedAgentDataIfNeeded(workspaceRoot, agentId, this.outputChannel);
109
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Successfully installed: ${agentId}@${agentVersion}`);
110
+ return installedAgent;
111
+ }
112
+ /**
113
+ * Uninstall an agent.
114
+ */
115
+ async uninstall(agentId) {
116
+ const workspaceRoot = this.getWorkspaceRoot();
117
+ const storageUri = this.getStorageUri();
118
+ // Prevent uninstalling the default agent
119
+ if ((0, paths_1.isDefaultAgent)(agentId)) {
120
+ throw new Error('Cannot uninstall the default agent');
121
+ }
122
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Uninstalling: ${agentId}`);
123
+ // 1. Get runtime paths
124
+ const runtime = (0, paths_1.resolveAgentRuntimePaths)(workspaceRoot, storageUri, agentId);
125
+ // 2. Remove agent directory
126
+ if (await (0, utils_1.pathExists)(runtime.agentRoot)) {
127
+ await fs_1.promises.rm(runtime.agentRoot, { recursive: true, force: true });
128
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Removed directory: ${runtime.agentRoot}`);
129
+ }
130
+ // 3. Remove SDK config directories
131
+ if (await (0, utils_1.pathExists)(runtime.codexHome)) {
132
+ await fs_1.promises.rm(runtime.codexHome, { recursive: true, force: true });
133
+ }
134
+ if (await (0, utils_1.pathExists)(runtime.claudeConfigDir)) {
135
+ await fs_1.promises.rm(runtime.claudeConfigDir, { recursive: true, force: true });
136
+ }
137
+ // 4. Update manifest to remove agent
138
+ await this.syncService.removeInstalledAgent(workspaceRoot, agentId, this.outputChannel);
139
+ // Notify workbench that packs have changed
140
+ try {
141
+ await getVscode().commands.executeCommand('agentide.packsChanged');
142
+ }
143
+ catch {
144
+ // Ignore if workbench command not available
145
+ }
146
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Successfully uninstalled: ${agentId}`);
147
+ }
148
+ // -------------------------------------------------------------------------
149
+ // Agent Listing
150
+ // -------------------------------------------------------------------------
151
+ /**
152
+ * List all installed agents (including default).
153
+ */
154
+ async listInstalled() {
155
+ const workspaceRoot = this.getWorkspaceRoot();
156
+ return this.syncService.loadInstalledAgents(workspaceRoot);
157
+ }
158
+ /**
159
+ * Get a specific installed agent by ID.
160
+ */
161
+ async getInstalledAgent(agentId) {
162
+ const agents = await this.listInstalled();
163
+ return agents.find(a => a.id === agentId);
164
+ }
165
+ /**
166
+ * Check if an agent is installed.
167
+ */
168
+ async isInstalled(agentId) {
169
+ const agent = await this.getInstalledAgent(agentId);
170
+ return agent !== undefined;
171
+ }
172
+ /**
173
+ * Clean up stale agent entries from the manifest.
174
+ * Removes entries where the agent folder no longer exists on disk.
175
+ * @returns List of agent IDs that were removed
176
+ */
177
+ async cleanupStaleAgents() {
178
+ const workspaceRoot = this.getWorkspaceRoot();
179
+ const agents = await this.listInstalled();
180
+ const staleIds = [];
181
+ for (const agent of agents) {
182
+ const manifestPath = (0, paths_1.getAgentManifestPath)(workspaceRoot, agent.id);
183
+ if (!(await (0, utils_1.pathExists)(manifestPath))) {
184
+ staleIds.push(agent.id);
185
+ }
186
+ }
187
+ // Remove stale entries from manifest
188
+ for (const agentId of staleIds) {
189
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Removing stale entry: ${agentId} (folder missing)`);
190
+ await this.syncService.removeInstalledAgent(workspaceRoot, agentId, this.outputChannel);
191
+ }
192
+ if (staleIds.length > 0) {
193
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Cleaned up ${staleIds.length} stale agent(s)`);
194
+ // Notify workbench that packs have changed
195
+ try {
196
+ await getVscode().commands.executeCommand('agentide.packsChanged');
197
+ }
198
+ catch {
199
+ // Ignore if workbench command not available
200
+ }
201
+ }
202
+ return staleIds;
203
+ }
204
+ /**
205
+ * List all installed agents, optionally cleaning up stale entries first.
206
+ * @param cleanup If true, removes stale entries before returning
207
+ */
208
+ async listInstalledWithCleanup(cleanup = true) {
209
+ if (cleanup) {
210
+ await this.cleanupStaleAgents();
211
+ }
212
+ return this.listInstalled();
213
+ }
214
+ // -------------------------------------------------------------------------
215
+ // Runtime Paths
216
+ // -------------------------------------------------------------------------
217
+ /**
218
+ * Get runtime paths for an agent.
219
+ */
220
+ getAgentRuntimePaths(agentId, agentVersion) {
221
+ const workspaceRoot = this.getWorkspaceRoot();
222
+ const storageUri = this.getStorageUri();
223
+ return (0, paths_1.resolveAgentRuntimePaths)(workspaceRoot, storageUri, agentId, agentVersion);
224
+ }
225
+ // -------------------------------------------------------------------------
226
+ // Internal Helpers
227
+ // -------------------------------------------------------------------------
228
+ /**
229
+ * Create all necessary directories for an agent.
230
+ */
231
+ async createAgentDirectories(runtime) {
232
+ // Agent content directories
233
+ await fs_1.promises.mkdir(runtime.agentRoot, { recursive: true });
234
+ await fs_1.promises.mkdir(runtime.rulesDir, { recursive: true });
235
+ await fs_1.promises.mkdir(runtime.skillsDir, { recursive: true });
236
+ await fs_1.promises.mkdir(runtime.mcpDir, { recursive: true });
237
+ // SDK config directories (in storage)
238
+ await fs_1.promises.mkdir(runtime.codexHome, { recursive: true });
239
+ await fs_1.promises.mkdir(runtime.claudeConfigDir, { recursive: true });
240
+ }
241
+ /**
242
+ * Create an InstalledAgent entry from an agent on disk.
243
+ * Loads manifest, computes hashes, and builds the entry.
244
+ */
245
+ async buildInstalledAgent(workspaceRoot, agentId, options) {
246
+ const manifestPath = (0, paths_1.getAgentManifestPath)(workspaceRoot, agentId);
247
+ const manifest = await (0, manifest_1.loadAgentManifest)(manifestPath);
248
+ const manifestHashResult = await (0, utils_1.readFileSha256)(manifestPath);
249
+ // Determine source: builtin for default, otherwise use provided or 'local'
250
+ const source = options?.source ?? ((0, paths_1.isDefaultAgent)(agentId) ? 'builtin' : 'local');
251
+ const agentRoot = options?.agentRootOverride ?? `${paths_1.AGENT_CONSTANTS.AGENTS_DIR}/${agentId}`;
252
+ return {
253
+ id: agentId,
254
+ version: manifest.metadata.version,
255
+ source,
256
+ installedAt: new Date().toISOString(),
257
+ manifestHash: manifestHashResult.sha256,
258
+ featureSetHash: manifestHashResult.sha256,
259
+ skillsSignature: manifestHashResult.sha256,
260
+ promptsSignature: manifestHashResult.sha256,
261
+ agentRoot,
262
+ preferredEngine: manifest.spec.engine,
263
+ preferredModel: manifest.spec.model,
264
+ preferredCheapModel: manifest.spec.cheapModel,
265
+ status: 'active',
266
+ };
267
+ }
268
+ /**
269
+ * Register an agent in the manifest (creates InstalledAgent entry and saves).
270
+ */
271
+ async registerAgent(agentId, options) {
272
+ const workspaceRoot = this.getWorkspaceRoot();
273
+ const installedAgent = await this.buildInstalledAgent(workspaceRoot, agentId, options);
274
+ await this.syncService.updateInstalledAgent(workspaceRoot, installedAgent, this.outputChannel);
275
+ // Notify workbench that packs have changed
276
+ try {
277
+ await getVscode().commands.executeCommand('agentide.packsChanged');
278
+ }
279
+ catch {
280
+ // Ignore if workbench command not available (e.g., during tests)
281
+ }
282
+ return installedAgent;
283
+ }
284
+ /**
285
+ * Discover agents in the agents directory.
286
+ */
287
+ async discoverAgents() {
288
+ const workspaceRoot = this.getWorkspaceRoot();
289
+ const agentsDir = (0, paths_1.getAgentsDir)(workspaceRoot);
290
+ if (!(await (0, utils_1.pathExists)(agentsDir))) {
291
+ return [];
292
+ }
293
+ const entries = await fs_1.promises.readdir(agentsDir, { withFileTypes: true });
294
+ const agentIds = [];
295
+ for (const entry of entries) {
296
+ if (!entry.isDirectory() || entry.name.startsWith('.')) {
297
+ continue;
298
+ }
299
+ const manifestPath = (0, paths_1.getAgentManifestPath)(workspaceRoot, entry.name);
300
+ if (await (0, utils_1.pathExists)(manifestPath)) {
301
+ agentIds.push(entry.name);
302
+ }
303
+ }
304
+ return agentIds;
305
+ }
306
+ /**
307
+ * Repair unregistered agents by discovering agents on disk and registering any
308
+ * that are missing from the manifest.
309
+ */
310
+ async repairUnregisteredAgents() {
311
+ const workspaceRoot = this.getWorkspaceRoot();
312
+ const agentsDir = (0, paths_1.getAgentsDir)(workspaceRoot);
313
+ if (!(await (0, utils_1.pathExists)(agentsDir))) {
314
+ return { registered: [], alreadyRegistered: [] };
315
+ }
316
+ // Get currently registered agents
317
+ const registeredAgents = await this.listInstalled();
318
+ const registeredIds = new Set(registeredAgents.map(a => a.id));
319
+ // Discover all agents on disk
320
+ const discoveredIds = await this.discoverAgents();
321
+ const registered = [];
322
+ const alreadyRegistered = [];
323
+ for (const agentId of discoveredIds) {
324
+ if (registeredIds.has(agentId)) {
325
+ alreadyRegistered.push(agentId);
326
+ continue;
327
+ }
328
+ // Agent exists on disk but not in manifest - register it
329
+ try {
330
+ await this.registerAgent(agentId);
331
+ registered.push(agentId);
332
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Repaired: registered untracked agent "${agentId}"`);
333
+ }
334
+ catch (e) {
335
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Failed to repair agent "${agentId}": ${e instanceof Error ? e.message : String(e)}`);
336
+ }
337
+ }
338
+ if (registered.length > 0) {
339
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Repair complete: ${registered.length} agent(s) registered`);
340
+ }
341
+ return { registered, alreadyRegistered };
342
+ }
343
+ // -------------------------------------------------------------------------
344
+ // Agent Stores Operations (UAL + Hydration)
345
+ // -------------------------------------------------------------------------
346
+ /**
347
+ * Install an agent into the workspace, hydrating from the User Agent Library if needed.
348
+ *
349
+ * Notes:
350
+ * - This does NOT change the active pack (derived dirs). That is handled by `agentide.pack.setActive`.
351
+ * - This ensures the workspace has a valid `.agentide/agents/<agentId>/` directory and that the agent
352
+ * is registered in `agentide.manifest.json`.
353
+ *
354
+ * Flow:
355
+ * 1. If agent exists in workspace, ensure it's registered and use it
356
+ * 2. If agent is missing/empty, try to hydrate from UAL
357
+ * 3. Register the agent in the manifest
358
+ */
359
+ async installAgentToWorkspace(agentId) {
360
+ const workspaceRoot = this.getWorkspaceRoot();
361
+ // Check if agent is available in workspace
362
+ if (await (0, stores_1.isWorkspaceAgentAvailable)(workspaceRoot, agentId)) {
363
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Agent available in workspace: ${agentId}`);
364
+ // Ensure it's registered in manifest (fixes "exists on disk but not in installed list")
365
+ const existing = await this.getInstalledAgent(agentId);
366
+ if (!existing) {
367
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Registering untracked agent: ${agentId}`);
368
+ await this.registerAgent(agentId);
369
+ }
370
+ await this.syncService.seedAgentDataIfNeeded(workspaceRoot, agentId, this.outputChannel);
371
+ return { installed: true, hydrated: false };
372
+ }
373
+ // Try to hydrate from User Agent Library
374
+ if (await (0, stores_1.isAgentInUserLibrary)(agentId)) {
375
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Hydrating from User Library: ${agentId}`);
376
+ const version = await (0, stores_1.hydrateFromUserLibrary)(workspaceRoot, agentId, undefined, this.outputChannel);
377
+ if (version) {
378
+ await this.registerAgent(agentId, { source: 'local' });
379
+ return { installed: true, hydrated: true, version };
380
+ }
381
+ }
382
+ (0, utils_1.logInfo)(this.outputChannel, `[Agent] Agent not found: ${agentId}`);
383
+ return { installed: false, hydrated: false };
384
+ }
385
+ /**
386
+ * Share/promote an agent to the User Agent Library.
387
+ */
388
+ async shareToUserLibrary(agentId) {
389
+ const workspaceRoot = this.getWorkspaceRoot();
390
+ return (0, stores_1.promoteToUserLibrary)(workspaceRoot, agentId, this.outputChannel);
391
+ }
392
+ /**
393
+ * Update an agent from the User Agent Library.
394
+ */
395
+ async updateFromLibrary(agentId, version) {
396
+ const workspaceRoot = this.getWorkspaceRoot();
397
+ return (0, stores_1.updateFromUserLibrary)(workspaceRoot, agentId, version, this.outputChannel);
398
+ }
399
+ /**
400
+ * Duplicate an agent with a new ID.
401
+ */
402
+ async duplicate(agentId) {
403
+ const workspaceRoot = this.getWorkspaceRoot();
404
+ const newAgentId = await (0, stores_1.duplicateAgent)(workspaceRoot, agentId, this.outputChannel);
405
+ await this.registerAgent(newAgentId, { source: 'local' });
406
+ return newAgentId;
407
+ }
408
+ /**
409
+ * Reset the default agent from bundled templates.
410
+ */
411
+ async resetDefault(bundledDir) {
412
+ const workspaceRoot = this.getWorkspaceRoot();
413
+ await (0, stores_1.resetDefaultAgent)(workspaceRoot, bundledDir, this.outputChannel);
414
+ // Re-register the default agent
415
+ const manifestPath = (0, paths_1.getAgentManifestPath)(workspaceRoot, paths_1.AGENT_CONSTANTS.DEFAULT_AGENT_ID);
416
+ if (await (0, utils_1.pathExists)(manifestPath)) {
417
+ await this.registerAgent(paths_1.AGENT_CONSTANTS.DEFAULT_AGENT_ID, { source: 'builtin' });
418
+ }
419
+ }
420
+ /**
421
+ * List agents in the User Agent Library.
422
+ */
423
+ async listUserLibrary() {
424
+ return (0, stores_1.listUserLibraryAgents)();
425
+ }
426
+ /**
427
+ * Check if an update is available for an agent from the User Library.
428
+ */
429
+ async checkAgentUpdate(agentId) {
430
+ const workspaceRoot = this.getWorkspaceRoot();
431
+ return (0, stores_1.checkForUpdate)(workspaceRoot, agentId);
432
+ }
433
+ /**
434
+ * Get the provenance of a workspace agent.
435
+ */
436
+ async getAgentSource(agentId) {
437
+ const workspaceRoot = this.getWorkspaceRoot();
438
+ return (0, stores_1.readAgentSource)(workspaceRoot, agentId);
439
+ }
440
+ }
441
+ exports.AgentPackManager = AgentPackManager;
@@ -0,0 +1,135 @@
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.parseYaml = parseYaml;
40
+ exports.stringifyYaml = stringifyYaml;
41
+ exports.updateManifestName = updateManifestName;
42
+ exports.loadAgentManifest = loadAgentManifest;
43
+ exports.parseAgentManifest = parseAgentManifest;
44
+ /**
45
+ * Shared manifest loading and YAML parsing utilities for agent packs.
46
+ */
47
+ const fs_1 = require("fs");
48
+ const path = __importStar(require("path"));
49
+ const branding_1 = require("../branding");
50
+ /**
51
+ * Parse YAML content into an object.
52
+ */
53
+ function parseYaml(content) {
54
+ const yaml = require('js-yaml');
55
+ return yaml.load(content);
56
+ }
57
+ /**
58
+ * Stringify an object to YAML.
59
+ */
60
+ function stringifyYaml(obj) {
61
+ const yaml = require('js-yaml');
62
+ return yaml.dump(obj, {
63
+ indent: 2,
64
+ lineWidth: -1, // Don't wrap lines
65
+ quotingType: '"',
66
+ forceQuotes: false,
67
+ });
68
+ }
69
+ /**
70
+ * Update the metadata.name field in a YAML manifest file.
71
+ * Uses proper YAML parsing/serialization to avoid regex issues.
72
+ */
73
+ async function updateManifestName(manifestPath, newName) {
74
+ const content = await fs_1.promises.readFile(manifestPath, 'utf8');
75
+ const manifest = parseYaml(content);
76
+ if (manifest && typeof manifest === 'object' && manifest.metadata) {
77
+ manifest.metadata.name = newName;
78
+ }
79
+ const updated = stringifyYaml(manifest);
80
+ await fs_1.promises.writeFile(manifestPath, updated, 'utf8');
81
+ }
82
+ /**
83
+ * Load and parse an agent manifest from a file path.
84
+ * Validates required fields and throws if invalid.
85
+ */
86
+ async function loadAgentManifest(manifestPath) {
87
+ const content = await fs_1.promises.readFile(manifestPath, 'utf8');
88
+ return parseAgentManifest(content, manifestPath);
89
+ }
90
+ /**
91
+ * Parse agent manifest from YAML content.
92
+ * Validates required fields and throws if invalid.
93
+ */
94
+ function parseAgentManifest(content, sourcePath) {
95
+ const manifest = parseYaml(content);
96
+ const location = sourcePath ? ` (${sourcePath})` : '';
97
+ if (!manifest?.metadata?.name) {
98
+ throw new Error(`Manifest missing metadata.name${location}`);
99
+ }
100
+ if (!manifest.metadata.version) {
101
+ throw new Error(`Manifest missing metadata.version${location}`);
102
+ }
103
+ if (!manifest.spec?.engine) {
104
+ throw new Error(`Manifest missing spec.engine${location}`);
105
+ }
106
+ validateManifestDataConfig(manifest, location);
107
+ return manifest;
108
+ }
109
+ function validateManifestDataConfig(manifest, location) {
110
+ const data = manifest.spec?.data;
111
+ if (!data) {
112
+ return;
113
+ }
114
+ const validateRelativePath = (value, fieldName, defaultValue) => {
115
+ const raw = value ?? defaultValue;
116
+ const trimmed = raw.trim();
117
+ if (!trimmed) {
118
+ throw new Error(`Manifest spec.data.${fieldName} cannot be empty${location}`);
119
+ }
120
+ if (path.isAbsolute(trimmed)) {
121
+ throw new Error(`Manifest spec.data.${fieldName} must be relative (not absolute)${location}`);
122
+ }
123
+ if (/^(https?:\/\/|git@|ssh:\/\/)/i.test(trimmed)) {
124
+ throw new Error(`Manifest spec.data.${fieldName} must be a local relative path${location}`);
125
+ }
126
+ const normalized = path.posix.normalize(trimmed.replace(/\\/g, '/'));
127
+ if (normalized === '..' || normalized.startsWith('../')) {
128
+ throw new Error(`Manifest spec.data.${fieldName} cannot escape parent directories${location}`);
129
+ }
130
+ };
131
+ validateRelativePath(data.sourcePath, 'sourcePath', './data');
132
+ validateRelativePath(data.workspacePath, 'workspacePath',
133
+ // Default only when spec.data.workspacePath is omitted by the user.
134
+ `${branding_1.AGENTIDE_DIR_NAME}/data/${manifest.metadata.name}`);
135
+ }