@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,77 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) AgentHippo.ai. All rights reserved.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.normalizeInboundBindLabel = normalizeInboundBindLabel;
7
+ exports.inboundBindLabelsMatch = inboundBindLabelsMatch;
8
+ exports.extractCliBindLabelFromGatewaySessionKey = extractCliBindLabelFromGatewaySessionKey;
9
+ exports.gatewayBaseRouteKey = gatewayBaseRouteKey;
10
+ exports.looksLikeGatewayChannelRouteKey = looksLikeGatewayChannelRouteKey;
11
+ exports.hasCliRouteLabel = hasCliRouteLabel;
12
+ exports.shouldUsePublishedInboundFallback = shouldUsePublishedInboundFallback;
13
+ const bridge_js_1 = require("./bridge.js");
14
+ /**
15
+ * Map chat title / CLI `--session-id` to one comparable token: trim, lowercase, whitespace → `-`,
16
+ * collapse repeated hyphens, strip leading/trailing hyphens.
17
+ */
18
+ function normalizeInboundBindLabel(raw) {
19
+ let s = raw.trim().toLowerCase().replace(/\s+/g, "-");
20
+ s = s.replace(/-+/g, "-");
21
+ s = s.replace(/^-+|-+$/g, "");
22
+ return s;
23
+ }
24
+ function inboundBindLabelsMatch(a, b) {
25
+ return normalizeInboundBindLabel(a) === normalizeInboundBindLabel(b);
26
+ }
27
+ /**
28
+ * CLI `openclaw agent --session-id <label>` becomes gateway key `agent:<agentId>:<label>`.
29
+ * The `::sid:` suffix is the Pi transcript id, not the CLI label — match the middle segment.
30
+ */
31
+ function extractCliBindLabelFromGatewaySessionKey(gatewaySessionKey) {
32
+ const trimmed = gatewaySessionKey.trim();
33
+ const prefix = "agent:";
34
+ if (!trimmed.toLowerCase().startsWith(prefix)) {
35
+ return undefined;
36
+ }
37
+ const without = trimmed.slice(prefix.length);
38
+ const firstColon = without.indexOf(":");
39
+ if (firstColon < 0) {
40
+ return undefined;
41
+ }
42
+ const rest = without.slice(firstColon + 1).trim();
43
+ return rest.length > 0 ? rest : undefined;
44
+ }
45
+ function gatewayBaseRouteKey(routeKey) {
46
+ if (!routeKey) {
47
+ return undefined;
48
+ }
49
+ return routeKey.includes("::sid:")
50
+ ? routeKey.slice(0, routeKey.lastIndexOf("::sid:"))
51
+ : routeKey;
52
+ }
53
+ function looksLikeGatewayChannelRouteKey(routeKey) {
54
+ const baseKey = gatewayBaseRouteKey(routeKey);
55
+ const label = baseKey ? (extractCliBindLabelFromGatewaySessionKey(baseKey) ?? baseKey) : undefined;
56
+ const parts = label?.split(":").filter(Boolean) ?? [];
57
+ if (parts.length < 1) {
58
+ return false;
59
+ }
60
+ return ["channel", "chat", "dm", "group", "thread", "user"].includes(parts[0].trim().toLowerCase());
61
+ }
62
+ function hasCliRouteLabel(routeKey) {
63
+ const baseKey = gatewayBaseRouteKey(routeKey);
64
+ return Boolean(baseKey && extractCliBindLabelFromGatewaySessionKey(baseKey));
65
+ }
66
+ /**
67
+ * Whether an all-inbound published IDE chat should receive this inbound route key as fallback.
68
+ */
69
+ function shouldUsePublishedInboundFallback(sessionKey, publishedForPeer) {
70
+ if (publishedForPeer) {
71
+ return false;
72
+ }
73
+ if ((0, bridge_js_1.isIdeThreadCompositeRouteKey)(sessionKey)) {
74
+ return false;
75
+ }
76
+ return !hasCliRouteLabel(sessionKey) || looksLikeGatewayChannelRouteKey(sessionKey);
77
+ }
@@ -0,0 +1,505 @@
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.resolveModelAlias = exports.getSessionDir = exports.createSessionDir = exports.computeSkillsSignature = exports.syncPackToWorkspace = exports.initSessionStoreWithStore = exports.CLIPermissionHandler = exports.AutoApprovePermissionHandler = exports.DirectorySessionStore = exports.FileSessionStore = exports.MemorySessionStore = exports.StaticConfigProvider = exports.NoOpEditTracker = exports.NoOpLogger = exports.ConsoleLogger = void 0;
40
+ exports.createHeadlessRunner = createHeadlessRunner;
41
+ exports.createEvalRunner = createEvalRunner;
42
+ exports.createCLIRunner = createCLIRunner;
43
+ /**
44
+ * AgentIDE Headless Mode
45
+ *
46
+ * This module provides a production-ready entry point for running AgentIDE
47
+ * engines without VS Code. Suitable for:
48
+ * - Eval mode (fresh state per example, auto-approve all tools)
49
+ * - CLI applications
50
+ * - Production servers (API endpoints, WebSocket handlers)
51
+ * - CI/CD pipelines
52
+ *
53
+ * @example Basic Usage
54
+ * ```typescript
55
+ * import { createHeadlessRunner } from './headless';
56
+ *
57
+ * const runner = createHeadlessRunner({
58
+ * storagePath: '/tmp/agentide-storage',
59
+ * apiKey: process.env.ANTHROPIC_API_KEY,
60
+ * });
61
+ *
62
+ * const result = await runner.run({
63
+ * engineId: 'claude',
64
+ * modelId: 'claude-sonnet-4-5-20250929',
65
+ * message: 'Hello, agent!',
66
+ * workspaceRoot: process.cwd(),
67
+ * });
68
+ *
69
+ * console.log(result.text);
70
+ * runner.dispose();
71
+ * ```
72
+ *
73
+ * @example Custom StreamEmitter for Real-Time Output
74
+ * ```typescript
75
+ * import { createHeadlessRunner, StreamEmitter } from './headless';
76
+ *
77
+ * const runner = createHeadlessRunner({ storagePath: '/tmp/agent' });
78
+ *
79
+ * // Custom emitter for real-time streaming to console
80
+ * const customEmitter: StreamEmitter = {
81
+ * async thinking(delta) {
82
+ * process.stdout.write('\x1b[90m' + delta + '\x1b[0m'); // gray
83
+ * },
84
+ * async text(delta) {
85
+ * process.stdout.write(delta);
86
+ * },
87
+ * async toolStart(name, input, toolCallId) {
88
+ * // allow-any-unicode-next-line
89
+ * console.log(`\n\x1b[34m🔧 ${name}\x1b[0m`); // blue
90
+ * if (input) console.log(` ${input}`);
91
+ * },
92
+ * async toolEnd(name, toolCallId, result, isError) {
93
+ * // allow-any-unicode-next-line
94
+ * console.log(isError ? '\x1b[31m✗\x1b[0m' : '\x1b[32m✓\x1b[0m');
95
+ * },
96
+ * async progress(msg) {
97
+ * // allow-any-unicode-next-line
98
+ * console.log(`\x1b[33m⏳ ${msg}\x1b[0m`); // yellow
99
+ * },
100
+ * async error(msg) {
101
+ * // allow-any-unicode-next-line
102
+ * console.error(`\x1b[31m❌ ${msg}\x1b[0m`); // red
103
+ * },
104
+ * async done() {
105
+ * console.log('\n');
106
+ * },
107
+ * };
108
+ *
109
+ * await runner.run({
110
+ * engineId: 'claude',
111
+ * modelId: 'claude-sonnet-4-5-20250929',
112
+ * message: 'Refactor this file',
113
+ * workspaceRoot: process.cwd(),
114
+ * emitter: customEmitter,
115
+ * });
116
+ * ```
117
+ *
118
+ * @example Production Server with Express
119
+ * ```typescript
120
+ * import express from 'express';
121
+ * import { createHeadlessRunner, ConsoleLogger, AutoApprovePermissionHandler } from './headless';
122
+ *
123
+ * const runner = createHeadlessRunner({
124
+ * storagePath: '/var/lib/agentide',
125
+ * apiKey: process.env.API_KEY,
126
+ * baseUrl: process.env.LLM_BASE_URL,
127
+ * useLiteLLM: true,
128
+ * logger: new ConsoleLogger('[API]'),
129
+ * permissionHandler: new AutoApprovePermissionHandler(),
130
+ * freshState: false, // Persist sessions across requests
131
+ * });
132
+ *
133
+ * const app = express();
134
+ * app.use(express.json());
135
+ *
136
+ * app.post('/api/chat', async (req, res) => {
137
+ * const { message, sessionId, workspaceRoot } = req.body;
138
+ *
139
+ * const result = await runner.run({
140
+ * engineId: 'claude',
141
+ * modelId: 'claude-sonnet-4-5-20250929',
142
+ * message,
143
+ * workspaceRoot,
144
+ * sessionId,
145
+ * });
146
+ *
147
+ * res.json({
148
+ * success: result.success,
149
+ * text: result.text,
150
+ * toolCalls: result.toolCalls,
151
+ * error: result.error,
152
+ * });
153
+ * });
154
+ *
155
+ * app.listen(3000);
156
+ * ```
157
+ *
158
+ * @module headless
159
+ */
160
+ const path = __importStar(require("path"));
161
+ const codex_1 = require("../engines/codex");
162
+ const claude_1 = require("../engines/claude");
163
+ const base_1 = require("../engines/base");
164
+ const interfaces_1 = require("../runtime/interfaces");
165
+ Object.defineProperty(exports, "ConsoleLogger", { enumerable: true, get: function () { return interfaces_1.ConsoleLogger; } });
166
+ Object.defineProperty(exports, "NoOpLogger", { enumerable: true, get: function () { return interfaces_1.NoOpLogger; } });
167
+ Object.defineProperty(exports, "NoOpEditTracker", { enumerable: true, get: function () { return interfaces_1.NoOpEditTracker; } });
168
+ Object.defineProperty(exports, "StaticConfigProvider", { enumerable: true, get: function () { return interfaces_1.StaticConfigProvider; } });
169
+ Object.defineProperty(exports, "MemorySessionStore", { enumerable: true, get: function () { return interfaces_1.MemorySessionStore; } });
170
+ Object.defineProperty(exports, "FileSessionStore", { enumerable: true, get: function () { return interfaces_1.FileSessionStore; } });
171
+ Object.defineProperty(exports, "DirectorySessionStore", { enumerable: true, get: function () { return interfaces_1.DirectorySessionStore; } });
172
+ Object.defineProperty(exports, "AutoApprovePermissionHandler", { enumerable: true, get: function () { return interfaces_1.AutoApprovePermissionHandler; } });
173
+ Object.defineProperty(exports, "CLIPermissionHandler", { enumerable: true, get: function () { return interfaces_1.CLIPermissionHandler; } });
174
+ const session_1 = require("../session");
175
+ const sync_1 = require("./sync");
176
+ const sessionEvents_1 = require("../analytics/sessionEvents");
177
+ const runtime_1 = require("../cli/runtime");
178
+ function resolveHeadlessAnalyticsUserId(runOverride, configOverride) {
179
+ const fromRun = runOverride?.trim();
180
+ if (fromRun) {
181
+ return fromRun;
182
+ }
183
+ const fromConfig = configOverride?.trim();
184
+ if (fromConfig) {
185
+ return fromConfig;
186
+ }
187
+ // Headless/CLI parity with IDE:
188
+ // - explicit override first
189
+ // - system username next
190
+ // In non-VSCode contexts there is no telemetry machineId fallback.
191
+ const fromEnvOverride = process.env.AGENTHIPPO_ANALYTICS_USER_ID?.trim() ||
192
+ process.env.AGENTIDE_ANALYTICS_USER_ID?.trim();
193
+ if (fromEnvOverride) {
194
+ return fromEnvOverride;
195
+ }
196
+ const fromSystemUser = process.env.LOGNAME?.trim() ||
197
+ process.env.USER?.trim() ||
198
+ process.env.LNAME?.trim() ||
199
+ process.env.USERNAME?.trim();
200
+ if (fromSystemUser) {
201
+ return fromSystemUser;
202
+ }
203
+ return 'anonymous';
204
+ }
205
+ // -----------------------------------------------------------------------------
206
+ // Implementation
207
+ // -----------------------------------------------------------------------------
208
+ /**
209
+ * Create a headless runner for production use.
210
+ *
211
+ * @param config - Headless configuration
212
+ * @returns Headless runner instance
213
+ */
214
+ function createHeadlessRunner(config) {
215
+ // Initialize session store for the headless runtime.
216
+ if (config.freshState) {
217
+ const memoryStore = new interfaces_1.MemorySessionStore();
218
+ (0, session_1.initSessionStoreWithStore)(memoryStore);
219
+ }
220
+ else {
221
+ // Per-session files (not one shared provider-sessions.json) so object-store
222
+ // sync across a sticky-routed fleet doesn't clobber a shared map. Migrates
223
+ // the legacy single file at provider-sessions.json on first load.
224
+ (0, session_1.initSessionStoreWithStore)(new interfaces_1.DirectorySessionStore(path.join(config.storagePath, 'provider-sessions')));
225
+ }
226
+ // Build engine config
227
+ const engineConfig = {
228
+ storagePath: config.storagePath,
229
+ codexHome: undefined,
230
+ claudeConfigDir: undefined,
231
+ litellmApiKey: config.apiKey,
232
+ litellmBaseUrl: config.baseUrl,
233
+ claudeCodeExecutablePath: config.claudeCodeExecutablePath,
234
+ codexExecutablePath: config.codexExecutablePath,
235
+ };
236
+ // Build runtime context
237
+ const logger = config.logger ?? new interfaces_1.ConsoleLogger('[AgentIDE]');
238
+ const editTracker = config.editTracker ?? new interfaces_1.NoOpEditTracker();
239
+ const configProvider = new interfaces_1.StaticConfigProvider({}, config.customProviders ?? {}, config.engineSettings ?? {});
240
+ const permissionHandler = config.permissionHandler ?? new interfaces_1.AutoApprovePermissionHandler();
241
+ const runtimeContext = {
242
+ logger,
243
+ editTracker,
244
+ configProvider,
245
+ permissionHandler,
246
+ cliEnvPatch: config.cliEnvPatch,
247
+ };
248
+ // Pack ID for skills signature (defaults to 'default')
249
+ const packId = config.packId ?? 'default';
250
+ // Skills signature getter (matches what SyncService provides)
251
+ const getSkillsSignature = (workspaceRoot) => {
252
+ return (0, sync_1.computeSkillsSignature)(workspaceRoot, packId);
253
+ };
254
+ // Bundled prompts directory getter
255
+ const getBundledBasePromptsDir = () => {
256
+ return config.bundledPromptsDir;
257
+ };
258
+ // Create engines lazily
259
+ let claudeEngine;
260
+ let codexEngine;
261
+ let customEngine;
262
+ const getClaudeEngine = () => {
263
+ if (!claudeEngine) {
264
+ claudeEngine = new claude_1.ClaudeEngine(engineConfig,
265
+ // Claude uses workspace signature for session management
266
+ async (workspaceRoot, _dirs) => {
267
+ const sig = getSkillsSignature(workspaceRoot);
268
+ return sig ?? `headless-${packId}`;
269
+ }, getBundledBasePromptsDir);
270
+ }
271
+ return claudeEngine;
272
+ };
273
+ const getCodexEngine = () => {
274
+ if (!codexEngine) {
275
+ codexEngine = new codex_1.CodexEngine(engineConfig, getSkillsSignature, getBundledBasePromptsDir);
276
+ }
277
+ return codexEngine;
278
+ };
279
+ const getCustomEngine = async () => {
280
+ if (!customEngine) {
281
+ const { CustomEngine: CustomEngineCtor } = await import('../engines/custom.js');
282
+ customEngine = new CustomEngineCtor(engineConfig, getBundledBasePromptsDir);
283
+ }
284
+ return customEngine;
285
+ };
286
+ // Shared session event writer for Layer 2 analytics
287
+ const sessionEventWriter = new sessionEvents_1.SessionEventWriter();
288
+ return {
289
+ async run(options) {
290
+ const result = {
291
+ success: false,
292
+ text: '',
293
+ thinking: '',
294
+ toolCalls: [],
295
+ };
296
+ // Create collector emitter if not provided
297
+ const baseEmitter = options.emitter ?? {
298
+ async thinking(delta) {
299
+ result.thinking += delta;
300
+ },
301
+ async text(delta) {
302
+ result.text += delta;
303
+ },
304
+ async toolStart(toolName, input, _toolCallId) {
305
+ result.toolCalls.push({ name: toolName, input });
306
+ },
307
+ async toolEnd(toolName, _toolCallId, toolResult, isError) {
308
+ const call = result.toolCalls.find(c => c.name === toolName && !c.result);
309
+ if (call) {
310
+ call.result = toolResult;
311
+ call.isError = isError;
312
+ }
313
+ },
314
+ async progress(_message) {
315
+ // Progress messages are logged but not stored
316
+ logger.debug(`[Progress] ${_message}`);
317
+ },
318
+ async question(payload) {
319
+ logger.debug(`[Question] ${payload.prompt}`);
320
+ return {
321
+ selected: [],
322
+ freeText: null,
323
+ declined: true,
324
+ };
325
+ },
326
+ async error(message) {
327
+ result.error = message;
328
+ },
329
+ async done() {
330
+ if (!result.error) {
331
+ result.success = true;
332
+ }
333
+ },
334
+ };
335
+ // Generate a request ID for this user message → agent response cycle
336
+ const requestId = (0, base_1.generateRequestId)();
337
+ // Wrap emitter with observability (Layer 2 session events)
338
+ // Session events are written to ~/.agent-hippo/analytics/sessions/<session_id>.jsonl
339
+ const sessionId = options.sessionId ?? `headless-${Date.now()}`;
340
+ const observableEmitter = (0, sessionEvents_1.wrapEmitterWithObservability)(baseEmitter, sessionEventWriter, sessionId, requestId);
341
+ const requestOptions = {
342
+ modelId: options.modelId,
343
+ engineId: options.engineId,
344
+ workspaceRoot: options.workspaceRoot,
345
+ additionalDirectories: options.additionalDirectories,
346
+ sessionId,
347
+ analyticsUserId: resolveHeadlessAnalyticsUserId(options.analyticsUserId, config.analyticsUserId),
348
+ apiKey: config.apiKey,
349
+ baseUrl: config.baseUrl,
350
+ useLiteLLM: config.useLiteLLM,
351
+ agentPackId: packId,
352
+ agentPackVersion: config.packVersion,
353
+ permissions: options.permissions,
354
+ requestId, // Same requestId used by ObservableStreamEmitter for Layer 1/2 correlation
355
+ };
356
+ // Emit turn_start event
357
+ await observableEmitter.emitTurnStart();
358
+ const perRunRuntime = {
359
+ ...runtimeContext,
360
+ cliEnvPatch: {
361
+ ...(runtimeContext.cliEnvPatch ?? {}),
362
+ ...(0, runtime_1.buildSessionEnvPatch)({
363
+ workspaceRoot: options.workspaceRoot,
364
+ chatSessionId: sessionId,
365
+ gatewaySessionKey: options.gatewaySessionKey,
366
+ }),
367
+ },
368
+ };
369
+ try {
370
+ const requestedEngine = options.engineId.trim().toLowerCase();
371
+ if (requestedEngine === 'claude') {
372
+ const engine = getClaudeEngine();
373
+ await engine.stream(options.message, requestOptions, observableEmitter, perRunRuntime, options.signal);
374
+ }
375
+ else if (requestedEngine === 'codex') {
376
+ const engine = getCodexEngine();
377
+ await engine.stream(options.message, requestOptions, observableEmitter, perRunRuntime, options.signal);
378
+ }
379
+ else {
380
+ const engine = await getCustomEngine();
381
+ await engine.stream(options.message, requestOptions, observableEmitter, perRunRuntime, options.signal);
382
+ }
383
+ }
384
+ catch (e) {
385
+ result.error = e instanceof Error ? e.message : String(e);
386
+ result.success = false;
387
+ // Record error in Layer 2 session events.
388
+ await observableEmitter.error(result.error);
389
+ }
390
+ // Emit turn_end event
391
+ await observableEmitter.emitTurnEnd(result.success);
392
+ return result;
393
+ },
394
+ dispose() {
395
+ claudeEngine?.dispose();
396
+ codexEngine?.dispose();
397
+ customEngine?.dispose();
398
+ },
399
+ };
400
+ }
401
+ // Re-export session initialization for FileSessionStore usage
402
+ var session_2 = require("../session");
403
+ Object.defineProperty(exports, "initSessionStoreWithStore", { enumerable: true, get: function () { return session_2.initSessionStoreWithStore; } });
404
+ // Re-export sync utilities for CLI
405
+ var sync_2 = require("./sync");
406
+ Object.defineProperty(exports, "syncPackToWorkspace", { enumerable: true, get: function () { return sync_2.syncPackToWorkspace; } });
407
+ Object.defineProperty(exports, "computeSkillsSignature", { enumerable: true, get: function () { return sync_2.computeSkillsSignature; } });
408
+ Object.defineProperty(exports, "createSessionDir", { enumerable: true, get: function () { return sync_2.createSessionDir; } });
409
+ Object.defineProperty(exports, "getSessionDir", { enumerable: true, get: function () { return sync_2.getSessionDir; } });
410
+ // Re-export model resolution for CLI
411
+ var models_1 = require("../shared/models");
412
+ Object.defineProperty(exports, "resolveModelAlias", { enumerable: true, get: function () { return models_1.resolveModelAlias; } });
413
+ /**
414
+ * Create a simple eval runner with auto-approve and fresh state.
415
+ * Optimized for running eval examples in isolation.
416
+ *
417
+ * Features:
418
+ * - Fresh session state per instance (no cross-contamination between examples)
419
+ * - Silent logging (NoOpLogger)
420
+ * - Auto-approve all tool executions
421
+ *
422
+ * @param storagePath - Directory for agent state storage
423
+ * @param apiKey - API key for the provider
424
+ * @param baseUrl - Optional custom base URL
425
+ * @returns Headless runner configured for eval mode
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * import { createEvalRunner } from './headless';
430
+ *
431
+ * const runner = createEvalRunner('/tmp/eval', process.env.ANTHROPIC_API_KEY!);
432
+ *
433
+ * // Run eval examples in isolation
434
+ * for (const example of evalExamples) {
435
+ * const result = await runner.run({
436
+ * engineId: 'claude',
437
+ * modelId: 'claude-sonnet-4-5-20250929',
438
+ * message: example.prompt,
439
+ * workspaceRoot: example.workspaceDir,
440
+ * });
441
+ *
442
+ * console.log(`Example ${example.id}: ${result.success ? 'PASS' : 'FAIL'}`);
443
+ * }
444
+ *
445
+ * runner.dispose();
446
+ * ```
447
+ */
448
+ function createEvalRunner(storagePath, apiKey, baseUrl) {
449
+ return createHeadlessRunner({
450
+ storagePath,
451
+ apiKey,
452
+ baseUrl,
453
+ freshState: true,
454
+ logger: new interfaces_1.NoOpLogger(), // Silent for eval
455
+ });
456
+ }
457
+ /**
458
+ * Create a CLI runner with console output.
459
+ *
460
+ * Features:
461
+ * - Console logging with [Agent] prefix
462
+ * - Session persistence (conversations resume across runs)
463
+ * - Auto-approve all tool executions
464
+ *
465
+ * @param storagePath - Directory for agent state storage
466
+ * @param apiKey - API key for the provider
467
+ * @param baseUrl - Optional custom base URL
468
+ * @returns Headless runner configured for CLI use
469
+ *
470
+ * @example
471
+ * ```typescript
472
+ * import * as readline from 'readline/promises';
473
+ * import { createCLIRunner } from './headless';
474
+ *
475
+ * const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
476
+ * const runner = createCLIRunner(`${process.env.HOME}/.agentide`, process.env.ANTHROPIC_API_KEY!);
477
+ *
478
+ * console.log('AgentIDE CLI (type "exit" to quit)\n');
479
+ *
480
+ * while (true) {
481
+ * const message = await rl.question('> ');
482
+ * if (message === 'exit') break;
483
+ *
484
+ * const result = await runner.run({
485
+ * engineId: 'claude',
486
+ * modelId: 'claude-sonnet-4-5-20250929',
487
+ * message,
488
+ * workspaceRoot: process.cwd(),
489
+ * });
490
+ *
491
+ * console.log('\n' + result.text + '\n');
492
+ * }
493
+ *
494
+ * runner.dispose();
495
+ * rl.close();
496
+ * ```
497
+ */
498
+ function createCLIRunner(storagePath, apiKey, baseUrl) {
499
+ return createHeadlessRunner({
500
+ storagePath,
501
+ apiKey,
502
+ baseUrl,
503
+ logger: new interfaces_1.ConsoleLogger('[Agent]'),
504
+ });
505
+ }