@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,354 @@
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.chatCommand = chatCommand;
40
+ /**
41
+ * Chat Command - Interactive REPL
42
+ */
43
+ const readline = __importStar(require("readline"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const headless_1 = require("../../headless");
47
+ const pack_loader_1 = require("../pack-loader");
48
+ const utils_1 = require("../utils");
49
+ const branding_1 = require("../../branding");
50
+ const runtime_1 = require("../runtime");
51
+ const customRegistry_1 = require("../../engines/customRegistry");
52
+ const BANNER_LINE = '-'.repeat(62);
53
+ async function chatCommand(options) {
54
+ const apiConfig = (0, pack_loader_1.getApiConfig)();
55
+ // Load pack if specified
56
+ let pack;
57
+ let packId = 'default';
58
+ let engine;
59
+ let model;
60
+ let claudeCheapModel;
61
+ const syncLogger = options.verbose ? new headless_1.ConsoleLogger('[Sync]') : new headless_1.NoOpLogger();
62
+ if (options.agent) {
63
+ try {
64
+ pack = await (0, pack_loader_1.loadAgentPack)(options.agent, options.workspace);
65
+ packId = pack.manifest.metadata.name;
66
+ const resolvedEngine = options.engine || pack.manifest.spec.engine;
67
+ engine = resolvedEngine;
68
+ const customEngineDefaultModel = !['claude', 'codex'].includes(engine)
69
+ ? (0, customRegistry_1.tryResolveCustomEngineManifest)(options.workspace, engine)?.model?.defaultModel
70
+ : undefined;
71
+ // Custom engine manifest defaultModel beats the global AGENTHIPPO_DEFAULT_MODEL
72
+ // so --engine gemini without --model uses gemini's manifest default, not the
73
+ // user's global Claude/Codex fallback.
74
+ const rawModel = options.model || pack.manifest.spec.model || customEngineDefaultModel || (0, pack_loader_1.getEnvDefaultModel)() || (0, pack_loader_1.getDefaultConfig)().model;
75
+ model = (0, headless_1.resolveModelAlias)(rawModel);
76
+ const rawCheapModel = pack.manifest.spec.cheapModel?.trim();
77
+ claudeCheapModel = rawCheapModel ? (0, headless_1.resolveModelAlias)(rawCheapModel) : undefined;
78
+ // Sync pack content to workspace (now includes packId)
79
+ await (0, headless_1.syncPackToWorkspace)(options.workspace, pack.packPath, packId, engine, syncLogger, (0, utils_1.findBundledBasePromptsDir)());
80
+ console.log(`${utils_1.COLORS.green}OK:${utils_1.COLORS.reset} Loaded agent: ${pack.manifest.metadata.name} v${pack.manifest.metadata.version}`);
81
+ if (rawModel !== model) {
82
+ console.log(`${utils_1.COLORS.dim} Model: ${rawModel} -> ${model}${utils_1.COLORS.reset}`);
83
+ }
84
+ if (rawCheapModel && rawCheapModel !== claudeCheapModel) {
85
+ console.log(`${utils_1.COLORS.dim} Cheap model: ${rawCheapModel} -> ${claudeCheapModel}${utils_1.COLORS.reset}`);
86
+ }
87
+ }
88
+ catch (err) {
89
+ console.error(`${utils_1.COLORS.red}Error: ${err instanceof Error ? err.message : err}${utils_1.COLORS.reset}`);
90
+ process.exit(1);
91
+ }
92
+ }
93
+ else {
94
+ const defaults = (0, pack_loader_1.getDefaultConfig)();
95
+ engine = options.engine || defaults.engine;
96
+ const customEngineDefaultModel = !['claude', 'codex'].includes(engine)
97
+ ? (0, customRegistry_1.tryResolveCustomEngineManifest)(options.workspace, engine)?.model?.defaultModel
98
+ : undefined;
99
+ const rawModel = options.model || customEngineDefaultModel || (0, pack_loader_1.getEnvDefaultModel)() || defaults.model;
100
+ model = (0, headless_1.resolveModelAlias)(rawModel);
101
+ if (rawModel !== model) {
102
+ console.log(`${utils_1.COLORS.dim}Model: ${rawModel} -> ${model}${utils_1.COLORS.reset}`);
103
+ }
104
+ }
105
+ if (!apiConfig.apiKey && (engine === 'claude' || engine === 'codex')) {
106
+ const quickstartLines = (0, utils_1.getLiteLLMQuickstartHintLines)();
107
+ console.log([
108
+ 'To start a chat, set an API key and re-run the command. Example:',
109
+ ` ${quickstartLines[1]}`,
110
+ '',
111
+ 'Other options:',
112
+ ' AGENTHIPPO_LITELLM_API_KEY=your_key AGENTHIPPO_LITELLM_BASE_URL=https://... dist/agenthippo chat',
113
+ ' LITELLM_API_KEY=your_key LITELLM_BASE_URL=https://... dist/agenthippo chat',
114
+ ' ANTHROPIC_API_KEY=your_key dist/agenthippo chat',
115
+ ' OPENAI_API_KEY=your_key dist/agenthippo chat',
116
+ ].join('\n'));
117
+ process.exit(1);
118
+ }
119
+ // Create runner
120
+ const storagePath = path.join(os.tmpdir(), `${branding_1.AGENTIDE_CLI_NAME}-cli`);
121
+ const logger = options.verbose ? new headless_1.ConsoleLogger('[Agent]') : new headless_1.NoOpLogger();
122
+ // Find SDK CLI paths and bundled prompts
123
+ const claudeCodePath = (0, utils_1.findClaudeCodePath)();
124
+ const codexPath = (0, utils_1.findCodexPath)();
125
+ const bundledPromptsDir = (0, utils_1.findBundledBasePromptsDir)();
126
+ // Validate required CLI is available
127
+ if (engine === 'claude' && !claudeCodePath) {
128
+ console.error(`${utils_1.COLORS.red}Error: Claude Code CLI not found.${utils_1.COLORS.reset}`);
129
+ console.error(' Install it: npm install -g @anthropic-ai/claude-code');
130
+ console.error(' Or set CLAUDE_CODE_PATH environment variable');
131
+ console.error(' Or use --engine codex instead');
132
+ process.exit(1);
133
+ }
134
+ if (engine === 'codex' && !codexPath) {
135
+ console.error(`${utils_1.COLORS.red}Error: Codex CLI not found.${utils_1.COLORS.reset}`);
136
+ console.error(' Install it: npm install -g @openai/codex');
137
+ console.error(' Or set CODEX_PATH environment variable');
138
+ console.error(' Or use --engine claude instead');
139
+ process.exit(1);
140
+ }
141
+ // V1 permissions are non-interactive in CLI mode.
142
+ const permissionHandler = new headless_1.AutoApprovePermissionHandler();
143
+ const permissions = {
144
+ fileAccess: (0, pack_loader_1.getFileAccess)(pack),
145
+ };
146
+ const sessionId = `cli-${Date.now()}`;
147
+ const createRunner = () => (0, headless_1.createHeadlessRunner)({
148
+ storagePath,
149
+ packId,
150
+ packVersion: pack?.manifest.metadata.version,
151
+ bundledPromptsDir,
152
+ apiKey: apiConfig.apiKey,
153
+ baseUrl: apiConfig.baseUrl,
154
+ useLiteLLM: apiConfig.useLiteLLM,
155
+ logger,
156
+ freshState: false, // Persist session within REPL
157
+ claudeCodeExecutablePath: claudeCodePath,
158
+ codexExecutablePath: codexPath,
159
+ permissionHandler,
160
+ cliEnvPatch: (0, runtime_1.buildCliEnvPatch)({
161
+ cliPath: process.execPath,
162
+ workspaceRoot: options.workspace,
163
+ agentId: packId,
164
+ chatSessionId: sessionId,
165
+ baseEnv: process.env,
166
+ }),
167
+ ...(claudeCheapModel ? { engineSettings: { claudeCheapModel } } : {}),
168
+ });
169
+ const state = {
170
+ runner: createRunner(),
171
+ sessionId,
172
+ engine,
173
+ model,
174
+ };
175
+ // Streaming emitter
176
+ const createStreamingEmitter = () => ({
177
+ async thinking(delta) {
178
+ process.stdout.write(`${utils_1.COLORS.gray}${delta}${utils_1.COLORS.reset}`);
179
+ },
180
+ async text(delta) {
181
+ process.stdout.write(delta);
182
+ },
183
+ async toolStart(name, input) {
184
+ console.log(`\n${utils_1.COLORS.blue}Tool: ${name}${utils_1.COLORS.reset}`);
185
+ if (input && input.length < 200 && options.verbose) {
186
+ console.log(` ${utils_1.COLORS.gray}${input}${utils_1.COLORS.reset}`);
187
+ }
188
+ },
189
+ async toolEnd(_name, _toolCallId, result, isError) {
190
+ if (isError) {
191
+ console.log(` ${utils_1.COLORS.red}Error: ${result?.slice(0, 100)}${utils_1.COLORS.reset}`);
192
+ }
193
+ else {
194
+ console.log(` ${utils_1.COLORS.green}OK${utils_1.COLORS.reset}`);
195
+ }
196
+ },
197
+ async progress(msg) {
198
+ if (options.verbose) {
199
+ console.log(`${utils_1.COLORS.yellow}Progress: ${msg}${utils_1.COLORS.reset}`);
200
+ }
201
+ },
202
+ async error(msg) {
203
+ console.error(`${utils_1.COLORS.red}Error: ${msg}${utils_1.COLORS.reset}`);
204
+ },
205
+ async question(_payload) {
206
+ // CLI has no UI for questions; decline so engine can proceed with defaults or fail
207
+ return { selected: [], freeText: null, declined: true };
208
+ },
209
+ async done() {
210
+ console.log('\n');
211
+ },
212
+ });
213
+ // Print banner
214
+ console.log('');
215
+ console.log(BANNER_LINE);
216
+ console.log(`${branding_1.AGENTIDE_BRAND_NAME} Chat`);
217
+ console.log(BANNER_LINE);
218
+ console.log(`Engine: ${state.engine}`);
219
+ console.log(`Model: ${state.model}`);
220
+ if (claudeCheapModel) {
221
+ console.log(`Cheap: ${claudeCheapModel}`);
222
+ }
223
+ console.log(`Workspace: ${options.workspace}`);
224
+ if (pack) {
225
+ console.log(`Agent: ${pack.manifest.metadata.name}`);
226
+ }
227
+ console.log(BANNER_LINE);
228
+ console.log('Type a message to chat. Commands: /help');
229
+ console.log('');
230
+ // Create readline interface
231
+ const rl = readline.createInterface({
232
+ input: process.stdin,
233
+ output: process.stdout,
234
+ });
235
+ const prompt = () => {
236
+ rl.question(`${utils_1.COLORS.cyan}> ${utils_1.COLORS.reset}`, async (input) => {
237
+ const trimmed = input.trim();
238
+ if (!trimmed) {
239
+ prompt();
240
+ return;
241
+ }
242
+ // Handle commands
243
+ if (trimmed.startsWith('/')) {
244
+ const handled = await handleCommand(trimmed, state, rl, {
245
+ createRunner,
246
+ claudeCodePath,
247
+ codexPath,
248
+ });
249
+ if (!handled) {
250
+ return; // Exit
251
+ }
252
+ prompt();
253
+ return;
254
+ }
255
+ // Send message
256
+ try {
257
+ const result = await state.runner.run({
258
+ engineId: state.engine,
259
+ modelId: state.model,
260
+ message: trimmed,
261
+ workspaceRoot: options.workspace,
262
+ sessionId: state.sessionId,
263
+ emitter: createStreamingEmitter(),
264
+ permissions,
265
+ });
266
+ // Check for errors in result (may not have been streamed)
267
+ if (!result.success && result.error) {
268
+ console.error(`\n${utils_1.COLORS.red}Error: ${result.error}${utils_1.COLORS.reset}\n`);
269
+ }
270
+ }
271
+ catch (err) {
272
+ console.error(`\n${utils_1.COLORS.red}Error: ${err instanceof Error ? err.message : err}${utils_1.COLORS.reset}\n`);
273
+ }
274
+ prompt();
275
+ });
276
+ };
277
+ prompt();
278
+ }
279
+ async function handleCommand(input, state, rl, handlers) {
280
+ const [cmd, ...args] = input.split(/\s+/);
281
+ switch (cmd) {
282
+ case '/exit':
283
+ case '/quit':
284
+ console.log('Goodbye!');
285
+ state.runner.dispose();
286
+ rl.close();
287
+ return false;
288
+ case '/clear':
289
+ case '/reset':
290
+ case '/new':
291
+ state.runner.dispose();
292
+ state.runner = handlers.createRunner();
293
+ state.sessionId = `cli-${Date.now()}`;
294
+ console.log('Session cleared. Fresh state.');
295
+ return true;
296
+ case '/engine': {
297
+ const nextEngine = args[0]?.trim();
298
+ if (!nextEngine) {
299
+ console.log('Usage: /engine <id>');
300
+ return true;
301
+ }
302
+ if (nextEngine === 'claude' && !handlers.claudeCodePath) {
303
+ console.log('Cannot switch to claude: Claude Code CLI not found.');
304
+ return true;
305
+ }
306
+ if (nextEngine === 'codex' && !handlers.codexPath) {
307
+ console.log('Cannot switch to codex: Codex CLI not found.');
308
+ return true;
309
+ }
310
+ state.engine = nextEngine;
311
+ console.log(`Switched engine to ${state.engine}`);
312
+ return true;
313
+ }
314
+ case '/model': {
315
+ const nextModel = args[0];
316
+ if (!nextModel) {
317
+ console.log('Usage: /model <model-id>');
318
+ return true;
319
+ }
320
+ const resolvedModel = (0, headless_1.resolveModelAlias)(nextModel);
321
+ state.model = resolvedModel;
322
+ if (resolvedModel === nextModel) {
323
+ console.log(`Switched model to ${state.model}`);
324
+ }
325
+ else {
326
+ console.log(`Switched model to ${nextModel} -> ${state.model}`);
327
+ }
328
+ return true;
329
+ }
330
+ case '/status':
331
+ console.log([
332
+ 'Current session:',
333
+ ` Engine: ${state.engine}`,
334
+ ` Model: ${state.model}`,
335
+ ` Session: ${state.sessionId}`,
336
+ ].join('\n'));
337
+ return true;
338
+ case '/help':
339
+ console.log([
340
+ 'Commands:',
341
+ ' /exit, /quit Exit the chat',
342
+ ' /clear Clear session history',
343
+ ' /reset, /new Alias for /clear',
344
+ ' /engine <id> Switch engine (claude|codex or custom engine id)',
345
+ ' /model <id> Switch model for this session',
346
+ ' /status Show current engine/model/session',
347
+ ' /help Show this help',
348
+ ].join('\n'));
349
+ return true;
350
+ default:
351
+ console.log(`Unknown command: ${cmd}. Type /help for available commands.`);
352
+ return true;
353
+ }
354
+ }
@@ -0,0 +1,223 @@
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.copyPackToStaging = copyPackToStaging;
40
+ exports.deployCommand = deployCommand;
41
+ /**
42
+ * Deploy Command — `agenthippo deploy init <pack> --target <t>`
43
+ *
44
+ * Generates platform-native deploy artifacts into <pack>/deploy/<target>/.
45
+ * Generates only; never builds images or calls a cloud (serve-v3 §A4).
46
+ */
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const yaml = __importStar(require("js-yaml"));
50
+ const deploy_init_1 = require("../deploy-init");
51
+ const utils_1 = require("../utils");
52
+ const DEFAULT_PORT = 8080;
53
+ /** Read pack id + engine + model from agent.yaml without the full loader (no workspace/sync needed). */
54
+ function readManifest(packDir) {
55
+ const manifestPath = path.join(packDir, 'agent.yaml');
56
+ if (!fs.existsSync(manifestPath)) {
57
+ throw new Error(`No agent.yaml in ${packDir} — point deploy init at a pack directory.`);
58
+ }
59
+ const parsed = yaml.load(fs.readFileSync(manifestPath, 'utf8'));
60
+ const name = parsed?.metadata?.name?.trim();
61
+ if (!name) {
62
+ throw new Error(`agent.yaml is missing metadata.name in ${packDir}`);
63
+ }
64
+ const model = parsed?.spec?.model?.trim();
65
+ return {
66
+ name,
67
+ engine: parsed?.spec?.engine?.trim() || 'claude',
68
+ ...(model ? { model } : {}),
69
+ };
70
+ }
71
+ /** Basenames never copied into staging (mirrors the generated `.dockerignore`): VCS, dev
72
+ * caches, build output, IDE cruft. Keeping this in sync with `renderDockerignore()` means
73
+ * the staging dir on disk is a faithful preview of what the image will contain. */
74
+ const PACK_IGNORE_BASENAMES = new Set([
75
+ '.git', 'node_modules', '__pycache__', '.pytest_cache', '.mypy_cache', '.ruff_cache',
76
+ '.venv', 'venv', '.next', '.turbo', '.cache', 'dist', 'build', '.DS_Store', '.idea', '.vscode',
77
+ ]);
78
+ /** Copy the pack into the staging root, filtered to drop VCS/dev caches + secrets. The
79
+ * source pack's own `deploy/` and any nested `deploy-out/` are skipped (the generator
80
+ * owns `staging/deploy/`, and a staging tree under the pack would otherwise recurse).
81
+ *
82
+ * `dereference: true` resolves symlinks to their real content so the staging dir (and thus
83
+ * the Docker build context) is self-contained: an absolute symlink into a shared registry
84
+ * becomes a real file, and `COPY . /app/pack/` can never chase a link outside the context.
85
+ * Broken symlinks (e.g. a pack hydrated with self-referential dead links) are skipped and
86
+ * returned so the caller can warn — silently staging dead links would ship an image with
87
+ * empty skills. */
88
+ function copyPackToStaging(packDir, stagingDir) {
89
+ const broken = [];
90
+ const stagingResolved = path.resolve(stagingDir);
91
+ fs.cpSync(packDir, stagingDir, {
92
+ recursive: true,
93
+ force: true,
94
+ dereference: true,
95
+ preserveTimestamps: true,
96
+ filter: (src) => {
97
+ const rel = path.relative(packDir, src);
98
+ if (!rel)
99
+ return true; // the pack root itself
100
+ if (src === stagingResolved || src.startsWith(stagingResolved + path.sep))
101
+ return false;
102
+ const base = path.basename(src);
103
+ if (rel === 'deploy' || rel.startsWith('deploy' + path.sep))
104
+ return false;
105
+ if (rel === 'deploy-out' || rel.startsWith('deploy-out' + path.sep))
106
+ return false;
107
+ if (PACK_IGNORE_BASENAMES.has(base))
108
+ return false;
109
+ if (base.startsWith('.nfs'))
110
+ return false; // stale NFS handles on macOS
111
+ // Broken symlink → skip + record (don't stage a dead link that would empty the image).
112
+ try {
113
+ const st = fs.lstatSync(src);
114
+ if (st.isSymbolicLink() && !fs.existsSync(src)) {
115
+ broken.push(rel);
116
+ return false;
117
+ }
118
+ }
119
+ catch {
120
+ return false; // unreadable entry
121
+ }
122
+ if (base === '.env' || base === '.env.local' || base === '.env.production')
123
+ return false;
124
+ if (base.endsWith('.log'))
125
+ return false;
126
+ if (/credentials/i.test(base) && base.endsWith('.json'))
127
+ return false;
128
+ return true;
129
+ },
130
+ });
131
+ return broken;
132
+ }
133
+ async function deployCommand(action, packArg, options) {
134
+ if (action !== 'init') {
135
+ console.error(`Unknown deploy action "${action}". Supported: init`);
136
+ process.exit(1);
137
+ }
138
+ const packDir = path.resolve(options.packdir || packArg || process.cwd());
139
+ const targetsRequested = options.target === 'all' ? [...deploy_init_1.DEPLOY_TARGETS] : [options.target];
140
+ for (const t of targetsRequested) {
141
+ if (!(0, deploy_init_1.isDeployTarget)(t)) {
142
+ console.error(`Unknown --target "${t}". Supported: ${deploy_init_1.DEPLOY_TARGETS.join(', ')}, all`);
143
+ process.exit(1);
144
+ }
145
+ }
146
+ let manifest;
147
+ try {
148
+ manifest = readManifest(packDir);
149
+ }
150
+ catch (err) {
151
+ console.error(`Error: ${err instanceof Error ? err.message : err}`);
152
+ process.exit(1);
153
+ return;
154
+ }
155
+ const envVars = (0, deploy_init_1.scanEnvRefs)(packDir);
156
+ // Agent Anywhere adds its own secrets to the documented surface.
157
+ const gateway = options.gateway?.trim();
158
+ if (gateway) {
159
+ for (const v of ['OPENCLAW_GATEWAY_TOKEN', 'SLACK_BOT_TOKEN', 'SLACK_APP_TOKEN']) {
160
+ if (!envVars.includes(v)) {
161
+ envVars.push(v);
162
+ }
163
+ }
164
+ }
165
+ const ctx = {
166
+ packName: manifest.name,
167
+ image: options.image || (0, deploy_init_1.defaultRuntimeImage)(manifest.engine),
168
+ port: options.port || DEFAULT_PORT,
169
+ engine: manifest.engine,
170
+ model: manifest.model,
171
+ envVars,
172
+ gatewayChannels: gateway,
173
+ publicHostname: (0, deploy_init_1.resolveDeployPublicHostname)(options.hostname),
174
+ ingress: options.ingress,
175
+ idpUrl: options.idpUrl,
176
+ cookieDomain: options.cookieDomain,
177
+ };
178
+ for (const target of targetsRequested) {
179
+ // Staging dir = a self-contained pack (pack content + generated deploy/). Default
180
+ // ./deploy-out/<pack>-<target> (cwd-relative); --out overrides (per-target subdir if
181
+ // multiple targets). Build context = staging root, so COPY . /app/pack/ is correct
182
+ // regardless of where the script is invoked from.
183
+ const outDir = options.out
184
+ ? (targetsRequested.length > 1 ? path.join(path.resolve(options.out), target) : path.resolve(options.out))
185
+ : path.join(process.cwd(), 'deploy-out', `${manifest.name}-${target}`);
186
+ fs.mkdirSync(outDir, { recursive: true });
187
+ // Copy the pack into the staging root (filtered: no VCS/caches/secrets, no source deploy/).
188
+ const brokenLinks = copyPackToStaging(packDir, outDir);
189
+ if (brokenLinks.length > 0) {
190
+ const sample = brokenLinks.slice(0, 3).join(', ');
191
+ console.log(` ${utils_1.COLORS.yellow}⚠ ${brokenLinks.length} broken symlink(s) skipped (not staged — the image would have no content for these). Sample: ${sample}${brokenLinks.length > 3 ? ', …' : ''}${utils_1.COLORS.reset}`);
192
+ }
193
+ // Generated artifacts → <staging>/deploy/; .dockerignore → <staging>/ (build-context root,
194
+ // the only location Docker reads it from).
195
+ fs.mkdirSync(path.join(outDir, 'deploy'), { recursive: true });
196
+ const files = (0, deploy_init_1.renderTarget)(target, ctx);
197
+ const written = [];
198
+ const skipped = [];
199
+ for (const [rel, content] of Object.entries(files)) {
200
+ const dest = rel === '.dockerignore'
201
+ ? path.join(outDir, '.dockerignore')
202
+ : path.join(outDir, 'deploy', rel);
203
+ if (fs.existsSync(dest) && !options.force) {
204
+ skipped.push(rel);
205
+ continue;
206
+ }
207
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
208
+ fs.writeFileSync(dest, content);
209
+ written.push(rel);
210
+ }
211
+ console.log(`${utils_1.COLORS.green}✓${utils_1.COLORS.reset} ${target} → ${path.relative(process.cwd(), outDir) || '.'}`);
212
+ for (const f of written) {
213
+ console.log(` ${utils_1.COLORS.dim}+ ${f}${utils_1.COLORS.reset}`);
214
+ }
215
+ for (const f of skipped) {
216
+ console.log(` ${utils_1.COLORS.yellow}• ${f} (exists; --force to overwrite)${utils_1.COLORS.reset}`);
217
+ }
218
+ }
219
+ if (envVars.length > 0) {
220
+ console.log(`\n${utils_1.COLORS.dim}Scanned pack secrets into .env.example: ${envVars.join(', ')}${utils_1.COLORS.reset}`);
221
+ }
222
+ console.log(`\nNext: cd into the staging dir above, \`cp deploy/.env.example deploy/.env\`, then run the command in deploy/README.md (scripts anchor themselves to the staging root).`);
223
+ }