@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
package/out/session.js ADDED
@@ -0,0 +1,272 @@
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.DEFAULT_CONVERSATION_LOCK_TIMEOUT_MS = void 0;
40
+ exports.initSessionStore = initSessionStore;
41
+ exports.initSessionStoreWithStore = initSessionStoreWithStore;
42
+ exports._getSessionStore = _getSessionStore;
43
+ exports._resetSessionStore = _resetSessionStore;
44
+ exports.upsertPersistedSession = upsertPersistedSession;
45
+ exports.touchPersistedSession = touchPersistedSession;
46
+ exports.getPersistedSession = getPersistedSession;
47
+ exports.runSessionMaintenance = runSessionMaintenance;
48
+ exports.buildConversationKey = buildConversationKey;
49
+ exports.withConversationLock = withConversationLock;
50
+ const crypto = __importStar(require("crypto"));
51
+ const utils_1 = require("./utils");
52
+ const vscode_session_store_1 = require("./runtime/vscode/vscode-session-store");
53
+ // -----------------------------------------------------------------------------
54
+ // Constants
55
+ // -----------------------------------------------------------------------------
56
+ const PERSISTED_SESSIONS_KEY = 'agentide.providerSessions.v1';
57
+ const PERSISTED_MAX_ENTRIES = 200;
58
+ const PERSISTED_TTL_MS = 1000 * 60 * 60 * 24 * 14; // 14 days
59
+ let _persistedSessions = {};
60
+ let _sessionStore;
61
+ /**
62
+ * Initialize session store with a VS Code extension context.
63
+ * This is the standard initialization for the VS Code extension.
64
+ */
65
+ function initSessionStore(context) {
66
+ initSessionStoreWithStore(new vscode_session_store_1.VSCodeSessionStore(context.globalState));
67
+ }
68
+ /**
69
+ * Initialize session store with a custom SessionStore implementation.
70
+ * Useful for testing or alternative runtime environments.
71
+ */
72
+ function initSessionStoreWithStore(store) {
73
+ _sessionStore = store;
74
+ const value = store.get(PERSISTED_SESSIONS_KEY);
75
+ _persistedSessions = value ?? {};
76
+ prunePersistedSessions(Date.now());
77
+ void flushPersistedSessionsToStore();
78
+ }
79
+ /**
80
+ * Get the current session store for testing or advanced use cases.
81
+ * @internal
82
+ */
83
+ function _getSessionStore() {
84
+ return _sessionStore;
85
+ }
86
+ /**
87
+ * Reset the session store (for testing).
88
+ * @internal
89
+ */
90
+ function _resetSessionStore() {
91
+ _sessionStore = undefined;
92
+ _persistedSessions = {};
93
+ }
94
+ function prunePersistedSessions(nowMs) {
95
+ // TTL prune first
96
+ for (const [key, entry] of Object.entries(_persistedSessions)) {
97
+ if (nowMs - entry.lastUsedAt > PERSISTED_TTL_MS) {
98
+ delete _persistedSessions[key];
99
+ }
100
+ }
101
+ // Size prune (oldest lastUsedAt first)
102
+ const keys = Object.keys(_persistedSessions);
103
+ if (keys.length <= PERSISTED_MAX_ENTRIES) {
104
+ return;
105
+ }
106
+ keys.sort((a, b) => _persistedSessions[a].lastUsedAt - _persistedSessions[b].lastUsedAt);
107
+ for (let i = 0; i < keys.length - PERSISTED_MAX_ENTRIES; i++) {
108
+ delete _persistedSessions[keys[i]];
109
+ }
110
+ }
111
+ async function flushPersistedSessionsToStore() {
112
+ if (!_sessionStore) {
113
+ return;
114
+ }
115
+ try {
116
+ await _sessionStore.set(PERSISTED_SESSIONS_KEY, _persistedSessions);
117
+ }
118
+ catch {
119
+ // Best-effort persistence only; don't fail requests if storage can't persist state.
120
+ }
121
+ }
122
+ async function upsertPersistedSession(conversationKey, entry) {
123
+ _persistedSessions[conversationKey] = entry;
124
+ prunePersistedSessions(Date.now());
125
+ await flushPersistedSessionsToStore();
126
+ }
127
+ async function touchPersistedSession(conversationKey) {
128
+ const existing = _persistedSessions[conversationKey];
129
+ if (!existing) {
130
+ return;
131
+ }
132
+ existing.lastUsedAt = Date.now();
133
+ prunePersistedSessions(existing.lastUsedAt);
134
+ await flushPersistedSessionsToStore();
135
+ }
136
+ function getPersistedSession(conversationKey) {
137
+ return _persistedSessions[conversationKey];
138
+ }
139
+ function runSessionMaintenance() {
140
+ prunePersistedSessions(Date.now());
141
+ void flushPersistedSessionsToStore();
142
+ }
143
+ // -----------------------------------------------------------------------------
144
+ // Conversation Key Building
145
+ // -----------------------------------------------------------------------------
146
+ /**
147
+ * Build a signature that captures the "environment" of a session.
148
+ *
149
+ * **Intentionally EXCLUDED from signature:**
150
+ * - `modelId` -- conversation history can be replayed to any compatible model
151
+ * - `useLiteLLM` / `baseUrl` -- these are routing details, not session identity.
152
+ * Both Codex and Claude store their session/thread data locally (in CODEX_HOME
153
+ * and CLAUDE_CONFIG_DIR respectively), so the API endpoint doesn't affect persistence.
154
+ *
155
+ * **Included in signature:**
156
+ * - `workspaceRoot` -- defines what files the agent can access
157
+ * - `additionalDirectories` -- multi-root workspace context
158
+ * - `agentPackId` -- agent pack isolation (different packs = different sessions)
159
+ *
160
+ * This means:
161
+ * - Switching models mid-conversation: [OK] session resumes
162
+ * - Switching LiteLLM ↔ direct API: [OK] session resumes (same local storage)
163
+ * - Changing workspace/folders: [X] new session (different file context)
164
+ * - Changing agent pack: [X] new session (different pack = different agent)
165
+ */
166
+ function buildSessionSignatureRaw(options) {
167
+ return JSON.stringify({
168
+ // NOTE: modelId, useLiteLLM, baseUrl are NOT included -- sessions persist across these changes
169
+ workspaceRoot: options.workspaceRoot,
170
+ additionalDirectories: (0, utils_1.stableAdditionalDirs)(options.additionalDirectories),
171
+ // AgentPack isolation: different packs get different sessions
172
+ agentPackId: options.agentPackId ?? 'default',
173
+ });
174
+ }
175
+ function buildConversationKey(engineId, options) {
176
+ const rawChatSessionId = options.sessionId?.trim();
177
+ // Prefer the context session id when provided so the UI can rotate backend memory
178
+ // without forcing a new VS Code chat UI session.
179
+ const conversationSessionId = options.contextSessionId?.trim() || rawChatSessionId;
180
+ const isEphemeral = !conversationSessionId;
181
+ const effectiveConversationSessionId = conversationSessionId || `ephemeral-${Date.now()}-${Math.random().toString(36).slice(2)}`;
182
+ const chatSessionId = rawChatSessionId || effectiveConversationSessionId;
183
+ // Include agentPackId in session key for logical isolation
184
+ const agentPackId = options.agentPackId ?? 'default';
185
+ const signatureRaw = buildSessionSignatureRaw(options);
186
+ const signatureHash = crypto.createHash('sha256').update(signatureRaw).digest('hex').slice(0, 16);
187
+ // Key format: engine:chatSession:pack:signature
188
+ // This ensures different packs get different session keys even with same chatSessionId
189
+ return {
190
+ key: `${engineId}:${effectiveConversationSessionId}:${agentPackId}:${signatureHash}`,
191
+ chatSessionId,
192
+ isEphemeral,
193
+ signatureHash,
194
+ signatureRaw,
195
+ agentPackId,
196
+ };
197
+ }
198
+ // -----------------------------------------------------------------------------
199
+ // Conversation Lock
200
+ // -----------------------------------------------------------------------------
201
+ /**
202
+ * Safety net timeout for a single conversation turn. Agent turns may run for hours, so keep this high.
203
+ * This is not meant to enforce an SLA only to prevent a permanently stuck lock from blocking forever.
204
+ */
205
+ exports.DEFAULT_CONVERSATION_LOCK_TIMEOUT_MS = 1000 * 60 * 60 * 48; // 24 hours
206
+ const _conversationLocks = new Map();
207
+ function withConversationLock(key, fn, options) {
208
+ const prev = _conversationLocks.get(key) ?? Promise.resolve();
209
+ let release;
210
+ const gate = new Promise(resolve => {
211
+ release = resolve;
212
+ });
213
+ const current = prev.then(() => gate);
214
+ _conversationLocks.set(key, current);
215
+ const label = options?.label ? ` (${options.label})` : '';
216
+ const timeoutMs = typeof options?.timeoutMs === 'number' ? options.timeoutMs : undefined;
217
+ const signal = options?.signal;
218
+ let abortListener;
219
+ let timeoutHandle;
220
+ let timedOut = false;
221
+ const cancelPromise = signal
222
+ ? new Promise((_, reject) => {
223
+ if (signal.aborted) {
224
+ reject(new Error(`[AgentIDE] Cancelled while waiting for conversation lock${label}`));
225
+ return;
226
+ }
227
+ abortListener = () => reject(new Error(`[AgentIDE] Cancelled while waiting for conversation lock${label}`));
228
+ signal.addEventListener('abort', abortListener, { once: true });
229
+ })
230
+ : undefined;
231
+ const timeoutPromise = timeoutMs && timeoutMs > 0
232
+ ? new Promise((_, reject) => {
233
+ timeoutHandle = setTimeout(() => {
234
+ timedOut = true;
235
+ options?.onTimeout?.();
236
+ reject(new Error(`[AgentIDE] Conversation lock timed out after ${timeoutMs}ms${label}`));
237
+ }, timeoutMs);
238
+ })
239
+ : undefined;
240
+ const waiters = [prev, cancelPromise, timeoutPromise].filter(Boolean);
241
+ // Acquire lock (or fail fast on cancel/timeout), then run.
242
+ // Note: if cancel/timeout happens while `fn` is running, we also reject to unblock the lock.
243
+ const run = Promise.race(waiters).then(async () => {
244
+ if (signal?.aborted) {
245
+ throw new Error(`[AgentIDE] Cancelled before running conversation work${label}`);
246
+ }
247
+ if (timedOut) {
248
+ throw new Error(`[AgentIDE] Conversation lock timed out after ${timeoutMs}ms${label}`);
249
+ }
250
+ const work = fn();
251
+ // Important: do not race execution with cancellation here. Callers should pass the AbortSignal into the
252
+ // underlying SDK operations and let `fn` exit normally, so we don't release the lock while the SDK is still running.
253
+ const runners = [work, timeoutPromise].filter(Boolean);
254
+ return await Promise.race(runners);
255
+ });
256
+ return run.finally(() => {
257
+ try {
258
+ if (timeoutHandle) {
259
+ clearTimeout(timeoutHandle);
260
+ }
261
+ if (signal && abortListener) {
262
+ signal.removeEventListener('abort', abortListener);
263
+ }
264
+ }
265
+ finally {
266
+ release();
267
+ if (_conversationLocks.get(key) === current) {
268
+ _conversationLocks.delete(key);
269
+ }
270
+ }
271
+ });
272
+ }
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) AgentHippo.ai. All rights reserved.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AGENT_ENGINES = void 0;
7
+ exports.getAgentEngine = getAgentEngine;
8
+ exports.getAllAgentEngines = getAllAgentEngines;
9
+ exports.getAllAgentEngineIds = getAllAgentEngineIds;
10
+ exports.getCompatibleProviders = getCompatibleProviders;
11
+ exports.getEnginesCompatibleWithProvider = getEnginesCompatibleWithProvider;
12
+ exports.isEngineCompatibleWithProvider = isEngineCompatibleWithProvider;
13
+ exports.getEngineRulesFile = getEngineRulesFile;
14
+ exports.getEngineWorkspaceDir = getEngineWorkspaceDir;
15
+ const providers_1 = require("./providers");
16
+ /**
17
+ * Agent Engine registry - single source of truth for all agent engine configurations.
18
+ */
19
+ exports.AGENT_ENGINES = {
20
+ codex: {
21
+ id: 'codex',
22
+ displayName: 'Codex',
23
+ description: 'OpenAI Codex - code generation agent',
24
+ icon: 'sparkle',
25
+ nativeProvider: 'openai',
26
+ workspaceDir: '.codex',
27
+ rulesFile: 'AGENTS.md',
28
+ configEnvVar: 'CODEX_HOME',
29
+ managedPaths: ['skills', 'config.toml', 'agentide.runtime.md'],
30
+ },
31
+ claude: {
32
+ id: 'claude',
33
+ displayName: 'Claude',
34
+ description: 'Anthropic Claude - agentic coding assistant',
35
+ icon: 'beaker',
36
+ nativeProvider: 'anthropic',
37
+ workspaceDir: '.claude',
38
+ rulesFile: 'CLAUDE.md',
39
+ configEnvVar: 'CLAUDE_CONFIG_DIR',
40
+ // Claude config dir is managed as a whole, no specific files listed
41
+ },
42
+ };
43
+ // -----------------------------------------------------------------------------
44
+ // Utility Functions
45
+ // -----------------------------------------------------------------------------
46
+ /**
47
+ * Get an agent engine by ID
48
+ */
49
+ function getAgentEngine(id) {
50
+ return exports.AGENT_ENGINES[id];
51
+ }
52
+ /**
53
+ * Get all agent engines as an array
54
+ */
55
+ function getAllAgentEngines() {
56
+ return Object.values(exports.AGENT_ENGINES);
57
+ }
58
+ /**
59
+ * Get all agent engine IDs
60
+ */
61
+ function getAllAgentEngineIds() {
62
+ return Object.keys(exports.AGENT_ENGINES);
63
+ }
64
+ /**
65
+ * Get compatible providers for an engine.
66
+ * Compatibility is determined by:
67
+ * 1. The native provider (always compatible)
68
+ * 2. Gateway providers (OpenRouter, LiteLLM - they can route to any backend)
69
+ * 3. Provider type: Codex works with all non-Anthropic, Claude works only with Anthropic
70
+ */
71
+ function getCompatibleProviders(engineId) {
72
+ const engine = exports.AGENT_ENGINES[engineId];
73
+ if (!engine) {
74
+ return [];
75
+ }
76
+ const compatible = [engine.nativeProvider];
77
+ for (const [providerId, provider] of Object.entries(providers_1.PROVIDERS)) {
78
+ if (compatible.includes(providerId)) {
79
+ continue;
80
+ }
81
+ // Gateway providers work with all engines
82
+ if (provider.isGateway) {
83
+ compatible.push(providerId);
84
+ continue;
85
+ }
86
+ // Codex (OpenAI-based) works with all non-Anthropic-family providers.
87
+ if (engine.nativeProvider === 'openai' && !(0, providers_1.isAnthropicProviderFamily)(providerId)) {
88
+ compatible.push(providerId);
89
+ }
90
+ // Claude works with Anthropic-family providers.
91
+ if (engine.nativeProvider === 'anthropic' && (0, providers_1.isAnthropicProviderFamily)(providerId)) {
92
+ compatible.push(providerId);
93
+ }
94
+ }
95
+ return compatible;
96
+ }
97
+ /**
98
+ * Get agent engines compatible with a provider.
99
+ * An engine is compatible if:
100
+ * 1. The provider is the engine's native provider
101
+ * 2. The provider is a gateway (can route to any backend)
102
+ * 3. Provider type: non-Anthropic providers work with Codex
103
+ */
104
+ function getEnginesCompatibleWithProvider(providerId) {
105
+ const provider = providers_1.PROVIDERS[providerId];
106
+ if (!provider) {
107
+ return [];
108
+ }
109
+ // Gateway providers are compatible with all engines
110
+ if (provider.isGateway) {
111
+ return Object.values(exports.AGENT_ENGINES);
112
+ }
113
+ return Object.values(exports.AGENT_ENGINES).filter(engine => {
114
+ // Native provider
115
+ if (engine.nativeProvider === providerId) {
116
+ return true;
117
+ }
118
+ // Non-Anthropic-family providers work with Codex
119
+ if (engine.nativeProvider === 'openai' && !(0, providers_1.isAnthropicProviderFamily)(providerId)) {
120
+ return true;
121
+ }
122
+ // Anthropic-family providers work with Claude
123
+ if (engine.nativeProvider === 'anthropic' && (0, providers_1.isAnthropicProviderFamily)(providerId)) {
124
+ return true;
125
+ }
126
+ return false;
127
+ });
128
+ }
129
+ /**
130
+ * Check if an engine is compatible with a provider.
131
+ * Compatibility is determined by:
132
+ * 1. Native provider (always compatible)
133
+ * 2. Gateway providers (compatible with all engines)
134
+ * 3. Provider type: non-Anthropic providers work with Codex
135
+ */
136
+ function isEngineCompatibleWithProvider(engineId, providerId) {
137
+ const engine = exports.AGENT_ENGINES[engineId];
138
+ if (!engine) {
139
+ return false;
140
+ }
141
+ // Native provider is always compatible
142
+ if (engine.nativeProvider === providerId) {
143
+ return true;
144
+ }
145
+ // Gateway providers are compatible with all engines
146
+ if ((0, providers_1.isGatewayProvider)(providerId)) {
147
+ return true;
148
+ }
149
+ // Non-Anthropic-family providers work with Codex (OpenAI-based engines)
150
+ if (engine.nativeProvider === 'openai' && !(0, providers_1.isAnthropicProviderFamily)(providerId)) {
151
+ return true;
152
+ }
153
+ // Anthropic-family providers work with Claude.
154
+ if (engine.nativeProvider === 'anthropic' && (0, providers_1.isAnthropicProviderFamily)(providerId)) {
155
+ return true;
156
+ }
157
+ return false;
158
+ }
159
+ /**
160
+ * Get the rules file for an engine
161
+ */
162
+ function getEngineRulesFile(engineId) {
163
+ return exports.AGENT_ENGINES[engineId]?.rulesFile;
164
+ }
165
+ /**
166
+ * Get the workspace directory for an engine
167
+ */
168
+ function getEngineWorkspaceDir(engineId) {
169
+ return exports.AGENT_ENGINES[engineId]?.workspaceDir;
170
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) AgentHippo.ai. All rights reserved.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getEngineWorkspaceDir = exports.getEngineRulesFile = exports.isEngineCompatibleWithProvider = exports.getEnginesCompatibleWithProvider = exports.getCompatibleProviders = exports.getAllAgentEngineIds = exports.getAllAgentEngines = exports.getAgentEngine = exports.AGENT_ENGINES = exports.getActiveModels = exports.getModelsWithCapability = exports.getRecommendedModels = exports.getModelsForProvider = exports.getModel = exports.getModelByRegistryKey = exports.isCompositeKey = exports.parseRegistryKey = exports.getRegistryKey = exports.REGISTRY_KEY_SEPARATOR = exports.BUILTIN_MODELS = exports.providerNotSupportAnthropicApi = exports.isAnthropicSetupToken = exports.normalizeAnthropicSetupToken = exports.ANTHROPIC_SETUP_TOKEN_PREFIX = exports.isAnthropicProviderFamily = exports.requiresBaseUrl = exports.getApiKeyProviders = exports.getLocalProviders = exports.getCloudProviders = exports.getAllProviderIds = exports.isLocalProvider = exports.requiresApiKey = exports.getProvider = exports.PROVIDERS = void 0;
7
+ exports.getProviderForModel = getProviderForModel;
8
+ exports.getEngineForModel = getEngineForModel;
9
+ exports.getModelsForEngine = getModelsForEngine;
10
+ exports.isModelFromProvider = isModelFromProvider;
11
+ /**
12
+ * Shared types for AgentIDE Extension
13
+ *
14
+ * ⚠️ KEEP IN SYNC with: src/vs/workbench/contrib/agentide/common/shared/index.ts
15
+ *
16
+ * These types are duplicated because VS Code's extension host cannot
17
+ * import from the workbench. When modifying, update BOTH files.
18
+ *
19
+ * This module exports all shared type definitions for providers, models, and agent engines.
20
+ * These types are runtime-agnostic and can be used in:
21
+ * - VS Code workbench (main process)
22
+ * - VS Code extension host (Node.js)
23
+ * - Headless runtime (Node.js, no Electron)
24
+ * - Customer SDK (browser or Node.js)
25
+ */
26
+ // Provider types and registry
27
+ var providers_1 = require("./providers");
28
+ Object.defineProperty(exports, "PROVIDERS", { enumerable: true, get: function () { return providers_1.PROVIDERS; } });
29
+ Object.defineProperty(exports, "getProvider", { enumerable: true, get: function () { return providers_1.getProvider; } });
30
+ Object.defineProperty(exports, "requiresApiKey", { enumerable: true, get: function () { return providers_1.requiresApiKey; } });
31
+ Object.defineProperty(exports, "isLocalProvider", { enumerable: true, get: function () { return providers_1.isLocalProvider; } });
32
+ Object.defineProperty(exports, "getAllProviderIds", { enumerable: true, get: function () { return providers_1.getAllProviderIds; } });
33
+ Object.defineProperty(exports, "getCloudProviders", { enumerable: true, get: function () { return providers_1.getCloudProviders; } });
34
+ Object.defineProperty(exports, "getLocalProviders", { enumerable: true, get: function () { return providers_1.getLocalProviders; } });
35
+ Object.defineProperty(exports, "getApiKeyProviders", { enumerable: true, get: function () { return providers_1.getApiKeyProviders; } });
36
+ Object.defineProperty(exports, "requiresBaseUrl", { enumerable: true, get: function () { return providers_1.requiresBaseUrl; } });
37
+ Object.defineProperty(exports, "isAnthropicProviderFamily", { enumerable: true, get: function () { return providers_1.isAnthropicProviderFamily; } });
38
+ Object.defineProperty(exports, "ANTHROPIC_SETUP_TOKEN_PREFIX", { enumerable: true, get: function () { return providers_1.ANTHROPIC_SETUP_TOKEN_PREFIX; } });
39
+ Object.defineProperty(exports, "normalizeAnthropicSetupToken", { enumerable: true, get: function () { return providers_1.normalizeAnthropicSetupToken; } });
40
+ Object.defineProperty(exports, "isAnthropicSetupToken", { enumerable: true, get: function () { return providers_1.isAnthropicSetupToken; } });
41
+ Object.defineProperty(exports, "providerNotSupportAnthropicApi", { enumerable: true, get: function () { return providers_1.providerNotSupportAnthropicApi; } });
42
+ // Model types and registry
43
+ var models_1 = require("./models");
44
+ Object.defineProperty(exports, "BUILTIN_MODELS", { enumerable: true, get: function () { return models_1.BUILTIN_MODELS; } });
45
+ // Registry key utilities
46
+ Object.defineProperty(exports, "REGISTRY_KEY_SEPARATOR", { enumerable: true, get: function () { return models_1.REGISTRY_KEY_SEPARATOR; } });
47
+ Object.defineProperty(exports, "getRegistryKey", { enumerable: true, get: function () { return models_1.getRegistryKey; } });
48
+ Object.defineProperty(exports, "parseRegistryKey", { enumerable: true, get: function () { return models_1.parseRegistryKey; } });
49
+ Object.defineProperty(exports, "isCompositeKey", { enumerable: true, get: function () { return models_1.isCompositeKey; } });
50
+ Object.defineProperty(exports, "getModelByRegistryKey", { enumerable: true, get: function () { return models_1.getModelByRegistryKey; } });
51
+ // Legacy utilities (deprecated, prefer registry key variants)
52
+ Object.defineProperty(exports, "getModel", { enumerable: true, get: function () { return models_1.getModel; } });
53
+ Object.defineProperty(exports, "getModelsForProvider", { enumerable: true, get: function () { return models_1.getModelsForProvider; } });
54
+ Object.defineProperty(exports, "getRecommendedModels", { enumerable: true, get: function () { return models_1.getRecommendedModels; } });
55
+ Object.defineProperty(exports, "getModelsWithCapability", { enumerable: true, get: function () { return models_1.getModelsWithCapability; } });
56
+ Object.defineProperty(exports, "getActiveModels", { enumerable: true, get: function () { return models_1.getActiveModels; } });
57
+ // Agent Engine types and registry
58
+ var agentEngines_1 = require("./agentEngines");
59
+ Object.defineProperty(exports, "AGENT_ENGINES", { enumerable: true, get: function () { return agentEngines_1.AGENT_ENGINES; } });
60
+ Object.defineProperty(exports, "getAgentEngine", { enumerable: true, get: function () { return agentEngines_1.getAgentEngine; } });
61
+ Object.defineProperty(exports, "getAllAgentEngines", { enumerable: true, get: function () { return agentEngines_1.getAllAgentEngines; } });
62
+ Object.defineProperty(exports, "getAllAgentEngineIds", { enumerable: true, get: function () { return agentEngines_1.getAllAgentEngineIds; } });
63
+ Object.defineProperty(exports, "getCompatibleProviders", { enumerable: true, get: function () { return agentEngines_1.getCompatibleProviders; } });
64
+ Object.defineProperty(exports, "getEnginesCompatibleWithProvider", { enumerable: true, get: function () { return agentEngines_1.getEnginesCompatibleWithProvider; } });
65
+ Object.defineProperty(exports, "isEngineCompatibleWithProvider", { enumerable: true, get: function () { return agentEngines_1.isEngineCompatibleWithProvider; } });
66
+ Object.defineProperty(exports, "getEngineRulesFile", { enumerable: true, get: function () { return agentEngines_1.getEngineRulesFile; } });
67
+ Object.defineProperty(exports, "getEngineWorkspaceDir", { enumerable: true, get: function () { return agentEngines_1.getEngineWorkspaceDir; } });
68
+ // -----------------------------------------------------------------------------
69
+ // Cross-Registry Utility Functions
70
+ // -----------------------------------------------------------------------------
71
+ const providers_2 = require("./providers");
72
+ const models_2 = require("./models");
73
+ const agentEngines_2 = require("./agentEngines");
74
+ /**
75
+ * Get the provider for a model
76
+ */
77
+ function getProviderForModel(modelId) {
78
+ const model = models_2.BUILTIN_MODELS.find(m => m.id === modelId);
79
+ return model ? providers_2.PROVIDERS[model.provider] : undefined;
80
+ }
81
+ /**
82
+ * Get the compatible engine for a model.
83
+ * Uses the model's provider to determine compatibility.
84
+ */
85
+ function getEngineForModel(modelId) {
86
+ const model = models_2.BUILTIN_MODELS.find(m => m.id === modelId);
87
+ if (!model) {
88
+ return undefined;
89
+ }
90
+ return Object.values(agentEngines_2.AGENT_ENGINES).find(engine => (0, agentEngines_2.isEngineCompatibleWithProvider)(engine.id, model.provider));
91
+ }
92
+ /**
93
+ * Get all models that can be used with a specific engine.
94
+ * Uses the engine's compatibility logic to filter models.
95
+ */
96
+ function getModelsForEngine(engineId) {
97
+ const engine = agentEngines_2.AGENT_ENGINES[engineId];
98
+ if (!engine) {
99
+ return [];
100
+ }
101
+ return models_2.BUILTIN_MODELS.filter(model => (0, agentEngines_2.isEngineCompatibleWithProvider)(engine.id, model.provider));
102
+ }
103
+ /**
104
+ * Check if a model is available through a specific provider
105
+ */
106
+ function isModelFromProvider(modelId, providerId) {
107
+ const model = models_2.BUILTIN_MODELS.find(m => m.id === modelId);
108
+ return model?.provider === providerId;
109
+ }