@agenthippo-ai/agenthippo 1.110.11 → 1.110.20

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 (534) hide show
  1. package/out/agentpack/types.js +2 -5
  2. package/out/analytics/dashboard/artifactManager.js +2 -439
  3. package/out/analytics/dashboard/fleetDisplayUtils.js +2 -162
  4. package/out/analytics/dashboard/fleetOrchestrator.js +3 -142
  5. package/out/analytics/dashboard/fleetRegistry.js +2 -79
  6. package/out/analytics/dashboard/fleetRowDefaults.js +2 -87
  7. package/out/analytics/dashboard/fleetScriptAdapter.js +2 -146
  8. package/out/analytics/dashboard/fleetTypes.js +2 -29
  9. package/out/analytics/dashboard/index.js +2 -17
  10. package/out/analytics/dashboard/indexingService.js +2 -422
  11. package/out/analytics/dashboard/localFleetAdapter.js +2 -302
  12. package/out/analytics/dashboard/performanceMonitor.js +5 -76
  13. package/out/analytics/dashboard/processManager.js +2 -209
  14. package/out/analytics/dashboard/provider.js +38 -3817
  15. package/out/analytics/dashboard/queryRunner.js +62 -750
  16. package/out/analytics/dashboard/scheduledFleetStorage.js +2 -241
  17. package/out/analytics/dashboard/sessionJsonlFleet.js +3 -204
  18. package/out/analytics/dashboard/teamViewDiscovery.js +2 -106
  19. package/out/analytics/dashboard/webview/panel.js +34 -2318
  20. package/out/analytics/dashboard/webview/runtime-bridge.js +2 -82
  21. package/out/analytics/lifecycle.js +2 -43
  22. package/out/analytics/service.js +8 -1283
  23. package/out/auth/authBaseUrl.js +2 -59
  24. package/out/auth/bootstrapApply.js +2 -71
  25. package/out/auth/brokerClient.js +2 -160
  26. package/out/auth/callbackUri.js +2 -59
  27. package/out/auth/githubStoreGate.js +2 -70
  28. package/out/auth/loopbackAuthServer.js +4 -159
  29. package/out/auth/onboardingPrompt.js +2 -112
  30. package/out/auth/pkce.js +2 -9
  31. package/out/auth/provider.js +2 -226
  32. package/out/auth/sessionStore.js +2 -156
  33. package/out/auth/signInFlow.js +2 -183
  34. package/out/cli/index.js +618 -564
  35. package/out/cli/run-custom-engine-runner.js +3 -318
  36. package/out/cli/vscode-shim.js +2 -86
  37. package/out/engines/factory.js +2 -45
  38. package/out/engines/types.js +2 -17
  39. package/out/examples/run-headless-repl.js +6 -286
  40. package/out/examples/run-headless.js +2 -187
  41. package/out/extension.js +32 -4473
  42. package/out/gateway/gatewayRouteIndex.js +6 -371
  43. package/out/gateway/gatewaySessionStore.js +3 -243
  44. package/out/gateway/index.js +2 -31
  45. package/out/gateway/resetMappings.js +2 -52
  46. package/out/gateway/service.js +5 -1249
  47. package/out/mcp/publish.js +2 -143
  48. package/out/remote/handleRemoteChat.js +2 -169
  49. package/out/remote/remotePackStatusBar.js +3 -103
  50. package/out/remote/remoteTrust.js +6 -277
  51. package/out/remote/serveClient.js +4 -277
  52. package/out/remoteSkills.js +3 -191
  53. package/out/runtime/index.js +2 -32
  54. package/out/runtime/vscode/index.js +2 -20
  55. package/out/runtime/vscode/vscode-config-provider.js +2 -77
  56. package/out/runtime/vscode/vscode-edit-tracker.js +2 -122
  57. package/out/runtime/vscode/vscode-logger.js +2 -30
  58. package/out/runtime/vscode/vscode-permission-handler.js +2 -72
  59. package/out/scripts/agentide-litellm.sh +0 -1
  60. package/out/scripts/agentide_litellm_hooks_v1.py +127 -459
  61. package/out/scripts/analytics/agent-fleet-widget.js +18 -257
  62. package/out/scripts/analytics/agentide-litellm-otel.config.yaml +0 -4
  63. package/out/scripts/analytics/duckdbLocator.js +2 -28
  64. package/out/scripts/analytics/generate-default-charts.py +43 -323
  65. package/out/scripts/analytics/hotspot-analysis-widget.js +4 -430
  66. package/out/scripts/analytics/index-traces.py +78 -1036
  67. package/out/scripts/analytics/session-comparison-widget.js +26 -472
  68. package/out/scripts/analytics/session-timeline-widget.js +25 -846
  69. package/out/scripts/analytics/token-cost-flamegraph-widget.js +4 -461
  70. package/out/scripts/analytics/token-cost-trend-widget.js +4 -534
  71. package/out/scripts/analytics/workflows-collector.cjs +4 -314
  72. package/out/scripts/analytics/workflows-daemon.mjs +9 -185
  73. package/out/scripts/analytics/workflows-widget.cjs +15 -159
  74. package/out/scripts/analytics/wow-model-widget.js +10 -120
  75. package/out/scripts/vendor-tools.mjs +2 -233
  76. package/out/skills/publish.js +3 -178
  77. package/out/store/github/setup.js +7 -212
  78. package/out/store/oramaIndex.js +2 -884
  79. package/out/sync.js +26 -1829
  80. package/out/terminalLogger.js +5 -358
  81. package/out/utils/pathSafety.js +2 -60
  82. package/out/utils/pythonRunner.js +4 -258
  83. package/out/utils/toolPath.js +2 -83
  84. package/out/workspaceFolders.js +2 -59
  85. package/package.json +10 -6
  86. package/out/agentpack/github.js +0 -547
  87. package/out/agentpack/index.js +0 -69
  88. package/out/agentpack/install.js +0 -297
  89. package/out/agentpack/manager.js +0 -441
  90. package/out/agentpack/manifest.js +0 -135
  91. package/out/agentpack/paths.js +0 -521
  92. package/out/agentpack/publish.js +0 -248
  93. package/out/agentpack/stores.js +0 -554
  94. package/out/analytics/dashboard/fleetStatusUtils.js +0 -30
  95. package/out/analytics/dashboard/fleetTitleUtils.js +0 -68
  96. package/out/analytics/dashboard/refreshPolicy.js +0 -16
  97. package/out/analytics/dashboard/scheduledFleetFingerprint.js +0 -22
  98. package/out/analytics/dashboard/scheduledFleetUtils.js +0 -22
  99. package/out/analytics/dashboard/sessionEventFleetStats.js +0 -118
  100. package/out/analytics/dashboard/viewsConfigMerge.js +0 -221
  101. package/out/analytics/dashboard/webview/codicon.ttf +0 -0
  102. package/out/analytics/identity.js +0 -0
  103. package/out/analytics/sessionEvents.js +0 -324
  104. package/out/auth/callbackUriParse.js +0 -59
  105. package/out/auth/types.js +0 -12
  106. package/out/auth-broker/config.js +0 -112
  107. package/out/auth-broker/jwt.js +0 -105
  108. package/out/auth-broker/pkce.js +0 -59
  109. package/out/auth-broker/server.js +0 -681
  110. package/out/auth-broker/store.js +0 -275
  111. package/out/authority/warrant.js +0 -206
  112. package/out/base-prompts/mcp-servers/.mcp.json +0 -13
  113. package/out/base-prompts/mcp-servers/langfuse-analytics/README.md +0 -142
  114. package/out/base-prompts/mcp-servers/langfuse-analytics/mcp.json +0 -13
  115. package/out/base-prompts/mcp-servers/langfuse-analytics/package-lock.json +0 -1192
  116. package/out/base-prompts/mcp-servers/langfuse-analytics/package.json +0 -23
  117. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/run-with-env.sh +0 -12
  118. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/sdk-test.js +0 -102
  119. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/simple-test.js +0 -137
  120. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-client.js +0 -118
  121. package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-server.js +0 -209
  122. package/out/base-prompts/mcp-servers/langfuse-analytics/src/client.ts +0 -431
  123. package/out/base-prompts/mcp-servers/langfuse-analytics/src/index.ts +0 -270
  124. package/out/base-prompts/mcp-servers/langfuse-analytics/tsconfig.json +0 -18
  125. package/out/base-prompts/rules/AGENTS.md +0 -204
  126. package/out/base-prompts/skills/agent-browser/SKILL.md +0 -102
  127. package/out/base-prompts/skills/agent-builder/SKILL.md +0 -73
  128. package/out/base-prompts/skills/agent-builder/references/agent-pack.md +0 -63
  129. package/out/base-prompts/skills/agent-builder/references/crewai.md +0 -66
  130. package/out/base-prompts/skills/agent-builder/references/langchain.md +0 -60
  131. package/out/base-prompts/skills/agent-builder/references/raw-sdk.md +0 -73
  132. package/out/base-prompts/skills/agent-engine-creator/SKILL.md +0 -586
  133. package/out/base-prompts/skills/agent-engine-installer/SKILL.md +0 -106
  134. package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.mjs +0 -259
  135. package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.ps1 +0 -189
  136. package/out/base-prompts/skills/agenthippo-cli/SKILL.md +0 -69
  137. package/out/base-prompts/skills/agenthippo-cli/scripts/install.sh +0 -63
  138. package/out/base-prompts/skills/agentpack-creator/SKILL.md +0 -375
  139. package/out/base-prompts/skills/agentpack-creator/references/agent-templates.md +0 -261
  140. package/out/base-prompts/skills/agentpack-creator/references/agents-md-guide.md +0 -195
  141. package/out/base-prompts/skills/agentpack-creator/scripts/init_pack.py +0 -391
  142. package/out/base-prompts/skills/agentpack-creator/scripts/init_pack_test.py +0 -294
  143. package/out/base-prompts/skills/agentpack-testbench/SKILL.md +0 -135
  144. package/out/base-prompts/skills/algorithmic-art/LICENSE.txt +0 -202
  145. package/out/base-prompts/skills/algorithmic-art/SKILL.md +0 -405
  146. package/out/base-prompts/skills/algorithmic-art/templates/generator_template.js +0 -223
  147. package/out/base-prompts/skills/algorithmic-art/templates/viewer.html +0 -599
  148. package/out/base-prompts/skills/debug-agent/SKILL.md +0 -83
  149. package/out/base-prompts/skills/desktop-automation/SKILL.md +0 -166
  150. package/out/base-prompts/skills/desktop-automation/references/agenthippo-ui-recipes.md +0 -441
  151. package/out/base-prompts/skills/desktop-automation/scripts/windows-desktop-uia.psm1 +0 -280
  152. package/out/base-prompts/skills/docx/LICENSE.txt +0 -30
  153. package/out/base-prompts/skills/docx/SKILL.md +0 -197
  154. package/out/base-prompts/skills/docx/docx-js.md +0 -350
  155. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  156. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  157. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  158. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  159. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  160. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  161. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  162. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  163. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  164. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  165. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  166. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  167. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  168. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  169. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  170. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  171. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  172. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  173. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  174. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  175. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  176. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  177. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  178. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  179. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  180. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  181. package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  182. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  183. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  184. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  185. package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  186. package/out/base-prompts/skills/docx/ooxml/schemas/mce/mc.xsd +0 -75
  187. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  188. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  189. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  190. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  191. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  192. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  193. package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  194. package/out/base-prompts/skills/docx/ooxml/scripts/pack.py +0 -159
  195. package/out/base-prompts/skills/docx/ooxml/scripts/unpack.py +0 -29
  196. package/out/base-prompts/skills/docx/ooxml/scripts/validate.py +0 -69
  197. package/out/base-prompts/skills/docx/ooxml/scripts/validation/__init__.py +0 -15
  198. package/out/base-prompts/skills/docx/ooxml/scripts/validation/base.py +0 -951
  199. package/out/base-prompts/skills/docx/ooxml/scripts/validation/docx.py +0 -274
  200. package/out/base-prompts/skills/docx/ooxml/scripts/validation/pptx.py +0 -315
  201. package/out/base-prompts/skills/docx/ooxml/scripts/validation/redlining.py +0 -279
  202. package/out/base-prompts/skills/docx/ooxml.md +0 -610
  203. package/out/base-prompts/skills/docx/scripts/__init__.py +0 -1
  204. package/out/base-prompts/skills/docx/scripts/document.py +0 -1276
  205. package/out/base-prompts/skills/docx/scripts/templates/comments.xml +0 -3
  206. package/out/base-prompts/skills/docx/scripts/templates/commentsExtended.xml +0 -3
  207. package/out/base-prompts/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
  208. package/out/base-prompts/skills/docx/scripts/templates/commentsIds.xml +0 -3
  209. package/out/base-prompts/skills/docx/scripts/templates/people.xml +0 -3
  210. package/out/base-prompts/skills/docx/scripts/utilities.py +0 -374
  211. package/out/base-prompts/skills/gateway-outbound/SKILL.md +0 -136
  212. package/out/base-prompts/skills/mcp-builder/LICENSE.txt +0 -202
  213. package/out/base-prompts/skills/mcp-builder/SKILL.md +0 -328
  214. package/out/base-prompts/skills/mcp-builder/reference/evaluation.md +0 -602
  215. package/out/base-prompts/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
  216. package/out/base-prompts/skills/mcp-builder/reference/node_mcp_server.md +0 -970
  217. package/out/base-prompts/skills/mcp-builder/reference/python_mcp_server.md +0 -719
  218. package/out/base-prompts/skills/mcp-builder/scripts/connections.py +0 -151
  219. package/out/base-prompts/skills/mcp-builder/scripts/evaluation.py +0 -373
  220. package/out/base-prompts/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  221. package/out/base-prompts/skills/mcp-builder/scripts/requirements.txt +0 -2
  222. package/out/base-prompts/skills/openclaw/SKILL.md +0 -406
  223. package/out/base-prompts/skills/openclaw/scripts/run-smoke.sh +0 -61
  224. package/out/base-prompts/skills/pdf/LICENSE.txt +0 -30
  225. package/out/base-prompts/skills/pdf/SKILL.md +0 -294
  226. package/out/base-prompts/skills/pdf/forms.md +0 -205
  227. package/out/base-prompts/skills/pdf/reference.md +0 -612
  228. package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes.py +0 -70
  229. package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes_test.py +0 -226
  230. package/out/base-prompts/skills/pdf/scripts/check_fillable_fields.py +0 -12
  231. package/out/base-prompts/skills/pdf/scripts/convert_pdf_to_images.py +0 -35
  232. package/out/base-prompts/skills/pdf/scripts/create_validation_image.py +0 -41
  233. package/out/base-prompts/skills/pdf/scripts/extract_form_field_info.py +0 -152
  234. package/out/base-prompts/skills/pdf/scripts/fill_fillable_fields.py +0 -114
  235. package/out/base-prompts/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
  236. package/out/base-prompts/skills/pptx/LICENSE.txt +0 -30
  237. package/out/base-prompts/skills/pptx/SKILL.md +0 -484
  238. package/out/base-prompts/skills/pptx/html2pptx.md +0 -625
  239. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  240. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  241. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  242. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  243. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  244. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  245. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  246. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  247. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  248. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  249. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  250. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  251. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  252. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  253. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  254. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  255. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  256. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  257. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  258. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  259. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  260. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  261. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  262. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  263. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  264. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  265. package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  266. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  267. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  268. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  269. package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  270. package/out/base-prompts/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  271. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  272. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  273. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  274. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  275. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  276. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  277. package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  278. package/out/base-prompts/skills/pptx/ooxml/scripts/pack.py +0 -159
  279. package/out/base-prompts/skills/pptx/ooxml/scripts/unpack.py +0 -29
  280. package/out/base-prompts/skills/pptx/ooxml/scripts/validate.py +0 -69
  281. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
  282. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/base.py +0 -951
  283. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
  284. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
  285. package/out/base-prompts/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
  286. package/out/base-prompts/skills/pptx/ooxml.md +0 -427
  287. package/out/base-prompts/skills/pptx/scripts/html2pptx.js +0 -984
  288. package/out/base-prompts/skills/pptx/scripts/inventory.py +0 -1020
  289. package/out/base-prompts/skills/pptx/scripts/rearrange.py +0 -231
  290. package/out/base-prompts/skills/pptx/scripts/replace.py +0 -385
  291. package/out/base-prompts/skills/pptx/scripts/thumbnail.py +0 -450
  292. package/out/base-prompts/skills/prompt-lab/SKILL.md +0 -149
  293. package/out/base-prompts/skills/prompt-lab/scripts/query-analytics.sh +0 -2551
  294. package/out/base-prompts/skills/skill-creator/LICENSE.txt +0 -202
  295. package/out/base-prompts/skills/skill-creator/SKILL.md +0 -371
  296. package/out/base-prompts/skills/skill-creator/references/output-patterns.md +0 -82
  297. package/out/base-prompts/skills/skill-creator/references/workflows.md +0 -28
  298. package/out/base-prompts/skills/skill-creator/scripts/init_skill.py +0 -303
  299. package/out/base-prompts/skills/skill-creator/scripts/package_skill.py +0 -110
  300. package/out/base-prompts/skills/skill-creator/scripts/quick_validate.py +0 -95
  301. package/out/base-prompts/skills/skill-installer/SKILL.md +0 -251
  302. package/out/base-prompts/skills/skill-installer/references/store-api.md +0 -219
  303. package/out/base-prompts/skills/spotlight-dashboard/SKILL.md +0 -83
  304. package/out/base-prompts/skills/spotlight-insights/SKILL.md +0 -101
  305. package/out/base-prompts/skills/spotlight-optimize/SKILL.md +0 -93
  306. package/out/base-prompts/skills/spotlight-optimize/scripts/query-analytics.sh +0 -2551
  307. package/out/base-prompts/skills/spotlight-query/SKILL.md +0 -314
  308. package/out/base-prompts/skills/spotlight-query/references/otel-schema.md +0 -163
  309. package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.sh +0 -2551
  310. package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.test.sh +0 -744
  311. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/sessions/sess-test-1.jsonl +0 -14
  312. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/.duckdb-index.json +0 -7
  313. package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/sample.jsonl +0 -5
  314. package/out/base-prompts/skills/spotlight-report/SKILL.md +0 -86
  315. package/out/base-prompts/skills/spotlight-visualize/SKILL.md +0 -92
  316. package/out/base-prompts/skills/spotlight-visualize/scripts/query-analytics.sh +0 -2551
  317. package/out/base-prompts/skills/xlsx/LICENSE.txt +0 -30
  318. package/out/base-prompts/skills/xlsx/SKILL.md +0 -289
  319. package/out/base-prompts/skills/xlsx/recalc.py +0 -178
  320. package/out/branding.js +0 -49
  321. package/out/cli/commands/anywhere.js +0 -66
  322. package/out/cli/commands/ask.js +0 -246
  323. package/out/cli/commands/auth-broker.js +0 -24
  324. package/out/cli/commands/auth.js +0 -219
  325. package/out/cli/commands/chat.js +0 -357
  326. package/out/cli/commands/conformance.js +0 -249
  327. package/out/cli/commands/data-plane.js +0 -151
  328. package/out/cli/commands/deploy.js +0 -263
  329. package/out/cli/commands/gateway.js +0 -218
  330. package/out/cli/commands/idp.js +0 -85
  331. package/out/cli/commands/pack.js +0 -399
  332. package/out/cli/commands/probe-custom-engine.js +0 -82
  333. package/out/cli/commands/sandbox.js +0 -351
  334. package/out/cli/commands/serve.js +0 -1950
  335. package/out/cli/commands/store.js +0 -927
  336. package/out/cli/credential-context.js +0 -108
  337. package/out/cli/data-plane/broker.js +0 -78
  338. package/out/cli/data-plane/connector-host.js +0 -121
  339. package/out/cli/data-plane/egress.js +0 -189
  340. package/out/cli/data-plane/gateway.js +0 -218
  341. package/out/cli/data-plane/index.js +0 -153
  342. package/out/cli/data-plane/registry.js +0 -89
  343. package/out/cli/data-plane/remote.js +0 -106
  344. package/out/cli/data-plane/sidecar.js +0 -225
  345. package/out/cli/deploy/blueprints/registry.js +0 -84
  346. package/out/cli/deploy/layers/identity.js +0 -175
  347. package/out/cli/deploy-init.js +0 -3023
  348. package/out/cli/deps.js +0 -342
  349. package/out/cli/idp-init.js +0 -338
  350. package/out/cli/pack-install-ref.js +0 -15
  351. package/out/cli/pack-loader.js +0 -418
  352. package/out/cli/pack-runtime.js +0 -61
  353. package/out/cli/runtime.js +0 -450
  354. package/out/cli/serve-hardening.js +0 -776
  355. package/out/cli/state-sync.js +0 -424
  356. package/out/cli/utils.js +0 -231
  357. package/out/engines/base.js +0 -188
  358. package/out/engines/claude.js +0 -1254
  359. package/out/engines/codex.js +0 -862
  360. package/out/engines/custom.js +0 -680
  361. package/out/engines/customEngineIpc.js +0 -95
  362. package/out/engines/customEngineRunnerEmbed.js +0 -107
  363. package/out/engines/customRegistry.js +0 -274
  364. package/out/engines/embeddedCustomEngineRunner.generated.js +0 -9
  365. package/out/engines/engineApiKey.js +0 -138
  366. package/out/engines/install.js +0 -372
  367. package/out/engines/persistentEngineWorker.js +0 -320
  368. package/out/engines/publish.js +0 -341
  369. package/out/evidence/sessionShip.js +0 -643
  370. package/out/gateway/bridge.js +0 -843
  371. package/out/gateway/cli-agent-id.js +0 -36
  372. package/out/gateway/client.js +0 -336
  373. package/out/gateway/client.test.js +0 -395
  374. package/out/gateway/gateway-scope-errors.js +0 -14
  375. package/out/gateway/gatewayBackup.js +0 -76
  376. package/out/gateway/installSource.js +0 -68
  377. package/out/gateway/lifecycle.js +0 -3190
  378. package/out/gateway/openclaw-channel-routing.js +0 -317
  379. package/out/gateway/outboundHandles.js +0 -373
  380. package/out/gateway/outboundPaths.js +0 -75
  381. package/out/gateway/outboundSend.js +0 -254
  382. package/out/gateway/protocol.js +0 -48
  383. package/out/gateway/secretsPreflight.js +0 -90
  384. package/out/gateway/sessionRouting.js +0 -77
  385. package/out/headless/index.js +0 -546
  386. package/out/headless/sync.js +0 -473
  387. package/out/live-e2e/mcp-demo/server.mjs +0 -32
  388. package/out/live-probe/connector.mjs +0 -8
  389. package/out/live-probe/env-report.mjs +0 -8
  390. package/out/mcp.js +0 -654
  391. package/out/pack/caps.js +0 -271
  392. package/out/pack/governor.js +0 -326
  393. package/out/pack/lease-schema.js +0 -273
  394. package/out/pack/lease.js +0 -682
  395. package/out/pack/reconcile.js +0 -217
  396. package/out/pack/signature.js +0 -839
  397. package/out/permissions.js +0 -108
  398. package/out/permissions.mapping.yaml +0 -68
  399. package/out/registry/index.js +0 -332
  400. package/out/runner/host.js +0 -141
  401. package/out/runner/protocol.js +0 -128
  402. package/out/runner/remoteEngine.js +0 -166
  403. package/out/runtime/interfaces/config-provider.js +0 -32
  404. package/out/runtime/interfaces/edit-tracker.js +0 -24
  405. package/out/runtime/interfaces/index.js +0 -29
  406. package/out/runtime/interfaces/logger.js +0 -40
  407. package/out/runtime/interfaces/permission-handler.js +0 -66
  408. package/out/runtime/interfaces/session-store.js +0 -342
  409. package/out/runtime/vscode/vscode-session-store.js +0 -22
  410. package/out/sandbox/containerDriver.js +0 -572
  411. package/out/sandbox/processDriver.js +0 -318
  412. package/out/sandbox/sandboxRunner.js +0 -303
  413. package/out/sandbox/support.js +0 -301
  414. package/out/sandbox/types.js +0 -55
  415. package/out/scripts/analytics/fleet-local-adapter.js +0 -246
  416. package/out/scripts/analytics/live-fleet-4-collector.cjs +0 -315
  417. package/out/scripts/analytics/live-fleet-4-daemon.mjs +0 -134
  418. package/out/scripts/analytics/live-fleet-4-widget.cjs +0 -433
  419. package/out/scripts/gateway/Dockerfile.serve +0 -45
  420. package/out/scripts/gateway/docker-serve.sh +0 -248
  421. package/out/scripts/gateway/setup-gateway-server.ps1 +0 -953
  422. package/out/scripts/gateway/setup-gateway-server.sh +0 -935
  423. package/out/session.js +0 -272
  424. package/out/shared/agentEngines.js +0 -170
  425. package/out/shared/index.js +0 -109
  426. package/out/shared/models.js +0 -136
  427. package/out/shared/providers.js +0 -205
  428. package/out/spotlight/install.js +0 -345
  429. package/out/spotlight/publish.js +0 -544
  430. package/out/spotlight/yaml.js +0 -31
  431. package/out/store/index.js +0 -786
  432. package/out/store/shared.js +0 -241
  433. package/out/test/agentEnvFile.test.js +0 -97
  434. package/out/test/agentYaml.test.js +0 -373
  435. package/out/test/agentpack.test.js +0 -639
  436. package/out/test/analytics-lifecycle.test.js +0 -174
  437. package/out/test/analytics.test.js +0 -756
  438. package/out/test/auth-baseurl.test.js +0 -132
  439. package/out/test/auth-bootstrapApply.test.js +0 -123
  440. package/out/test/auth-broker-hardening.test.js +0 -227
  441. package/out/test/auth-broker.test.js +0 -541
  442. package/out/test/auth-callback.test.js +0 -62
  443. package/out/test/blueprint-registry.test.js +0 -105
  444. package/out/test/branding.test.js +0 -242
  445. package/out/test/caps-governor.test.js +0 -460
  446. package/out/test/cli-agent-id.test.js +0 -55
  447. package/out/test/codex-new-file-survival.test.js +0 -119
  448. package/out/test/configuration-scopes.test.js +0 -131
  449. package/out/test/credential-context.test.js +0 -160
  450. package/out/test/custom-env-layering.test.js +0 -151
  451. package/out/test/customEngineInstall.test.js +0 -100
  452. package/out/test/customRegistry.test.js +0 -122
  453. package/out/test/data-plane-engine-wiring.test.js +0 -282
  454. package/out/test/data-plane.test.js +0 -624
  455. package/out/test/deploy-init.test.js +0 -860
  456. package/out/test/deps-auto-install.test.js +0 -81
  457. package/out/test/egress-broker.test.js +0 -172
  458. package/out/test/engine-integration.test.js +0 -297
  459. package/out/test/enginePaths.test.js +0 -195
  460. package/out/test/enginePublish.test.js +0 -82
  461. package/out/test/fleetDisplayUtils.test.js +0 -100
  462. package/out/test/gateway-client.test.js +0 -409
  463. package/out/test/gateway-install-source.test.js +0 -111
  464. package/out/test/gateway-lifecycle.test.js +0 -608
  465. package/out/test/gateway-outbound.test.js +0 -538
  466. package/out/test/gateway-reset-mappings.test.js +0 -221
  467. package/out/test/gateway-route-index.test.js +0 -235
  468. package/out/test/gateway-secrets-preflight.test.js +0 -127
  469. package/out/test/gateway-session-routing.test.js +0 -65
  470. package/out/test/gateway-session-store.test.js +0 -216
  471. package/out/test/github.test.js +0 -232
  472. package/out/test/governor-hardening.test.js +0 -222
  473. package/out/test/headless-sync.test.js +0 -301
  474. package/out/test/helpers/manifest-fixtures.js +0 -27
  475. package/out/test/idp-init.test.js +0 -151
  476. package/out/test/lease-signature.test.js +0 -357
  477. package/out/test/lease-trust-root.test.js +0 -273
  478. package/out/test/lease-validation.test.js +0 -224
  479. package/out/test/lease.test.js +0 -114
  480. package/out/test/localFleetAdapter.test.js +0 -91
  481. package/out/test/mcp-obo.test.js +0 -107
  482. package/out/test/mcp.test.js +0 -389
  483. package/out/test/model-routing.test.js +0 -133
  484. package/out/test/openclaw-channel-routing.test.js +0 -191
  485. package/out/test/pack-admission.test.js +0 -216
  486. package/out/test/pack-digest-parity.test.js +0 -140
  487. package/out/test/pack-reconcile.test.js +0 -183
  488. package/out/test/pack-signature-artifact.test.js +0 -103
  489. package/out/test/pack-signature.test.js +0 -176
  490. package/out/test/pack-trust-root.test.js +0 -202
  491. package/out/test/pathSafety.test.js +0 -63
  492. package/out/test/permissions.test.js +0 -175
  493. package/out/test/persistent-engine-worker.test.js +0 -220
  494. package/out/test/refreshPolicy.test.js +0 -60
  495. package/out/test/registry.test.js +0 -351
  496. package/out/test/remote-trust.test.js +0 -242
  497. package/out/test/runner-protocol.test.js +0 -249
  498. package/out/test/runtime.test.js +0 -349
  499. package/out/test/sandbox-driver.test.js +0 -553
  500. package/out/test/sandbox-hardening.test.js +0 -406
  501. package/out/test/sandbox-runner.test.js +0 -343
  502. package/out/test/sandbox-scope.test.js +0 -449
  503. package/out/test/scheduledFleetStorage.test.js +0 -72
  504. package/out/test/serve-cron-acceptance.test.js +0 -370
  505. package/out/test/serve-gateway-turn.test.js +0 -389
  506. package/out/test/serve-hardening.test.js +0 -591
  507. package/out/test/serveClient.test.js +0 -209
  508. package/out/test/sessionJsonlFleet.test.js +0 -78
  509. package/out/test/sessionShip.test.js +0 -618
  510. package/out/test/shared.test.js +0 -173
  511. package/out/test/skills-mcp.test.js +0 -299
  512. package/out/test/spotlightPublish.test.js +0 -327
  513. package/out/test/spotlightYaml.test.js +0 -58
  514. package/out/test/state-sync-peer.test.js +0 -156
  515. package/out/test/store-install-safe.test.js +0 -69
  516. package/out/test/store.test.js +0 -331
  517. package/out/test/stores.test.js +0 -504
  518. package/out/test/sync-switch.test.js +0 -251
  519. package/out/test/teamViewDiscovery.test.js +0 -90
  520. package/out/test/tls-bypass.test.js +0 -90
  521. package/out/test/toolPath.test.js +0 -120
  522. package/out/test/utils.test.js +0 -308
  523. package/out/test/viewsConfigMerge.test.js +0 -180
  524. package/out/test/warrant.test.js +0 -138
  525. package/out/test/windows-command-line.test.js +0 -75
  526. package/out/utils/agentEnvFile.js +0 -131
  527. package/out/utils/binary.js +0 -175
  528. package/out/utils/index.js +0 -37
  529. package/out/utils/network.js +0 -74
  530. package/out/utils/paths.js +0 -116
  531. package/out/utils/pid.js +0 -180
  532. package/out/utils/resolveNodeBinary.js +0 -168
  533. package/out/utils/windowsCommandLine.js +0 -29
  534. package/out/utils.js +0 -968
@@ -1,372 +0,0 @@
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.getDefaultCustomEnginesInstallRoot = getDefaultCustomEnginesInstallRoot;
40
- exports.installCustomEngineFromFiles = installCustomEngineFromFiles;
41
- exports.listInstalledCustomEngines = listInstalledCustomEngines;
42
- exports.uninstallCustomEngine = uninstallCustomEngine;
43
- const child_process_1 = require("child_process");
44
- const fs_1 = require("fs");
45
- const os = __importStar(require("os"));
46
- const path = __importStar(require("path"));
47
- const util_1 = require("util");
48
- const branding_1 = require("../branding");
49
- const utils_1 = require("../utils");
50
- const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
51
- const ENGINE_MANIFEST_NAME = 'engine.manifest.json';
52
- function getDefaultCustomEnginesInstallRoot() {
53
- return path.join(process.env.AGENT_HOME_DIR || process.env.AGENTHIPPO_HOME || path.join(os.homedir(), branding_1.AGENTIDE_DIR_NAME), 'engines');
54
- }
55
- function normalizeArchivePath(rawPath) {
56
- const normalized = rawPath.replace(/\\/g, '/').trim().replace(/^\.\//, '');
57
- if (!normalized || normalized.includes('\0')) {
58
- throw new Error(`Invalid engine package path: ${rawPath}`);
59
- }
60
- if (normalized.startsWith('/') || /^[A-Za-z]:/.test(normalized)) {
61
- throw new Error(`Engine package path must be relative: ${rawPath}`);
62
- }
63
- const parts = normalized.split('/').filter(Boolean);
64
- if (parts.length === 0 || parts.some(part => part === '.' || part === '..')) {
65
- throw new Error(`Engine package path must not contain "." or "..": ${rawPath}`);
66
- }
67
- return parts.join('/');
68
- }
69
- function normalizeSafeRelativePath(rawPath, label) {
70
- try {
71
- return normalizeArchivePath(rawPath).replace(/\//g, path.sep);
72
- }
73
- catch (error) {
74
- const message = error instanceof Error ? error.message : String(error);
75
- throw new Error(`${label}: ${message}`);
76
- }
77
- }
78
- function assertPathInside(parentDir, candidatePath, label) {
79
- const parent = path.resolve(parentDir);
80
- const candidate = path.resolve(candidatePath);
81
- const rel = path.relative(parent, candidate);
82
- if (rel && (rel.startsWith('..') || path.isAbsolute(rel))) {
83
- throw new Error(`${label} must stay inside ${parentDir}: ${candidatePath}`);
84
- }
85
- }
86
- async function pathExists(targetPath) {
87
- try {
88
- await fs_1.promises.access(targetPath);
89
- return true;
90
- }
91
- catch {
92
- return false;
93
- }
94
- }
95
- function readJsonObject(content, label) {
96
- const parsed = JSON.parse(content);
97
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
98
- throw new Error(`${label} must be a JSON object`);
99
- }
100
- return parsed;
101
- }
102
- function getStringField(obj, key, label) {
103
- const value = obj[key];
104
- if (typeof value !== 'string' || value.trim().length === 0) {
105
- throw new Error(`${label} missing required string field "${key}"`);
106
- }
107
- return value.trim();
108
- }
109
- function normalizeEngineId(rawId) {
110
- const id = rawId.trim().toLowerCase();
111
- if (!/^[a-z0-9][a-z0-9._-]*$/.test(id)) {
112
- throw new Error(`Custom engine id must contain only lowercase letters, numbers, ".", "_", or "-": ${rawId}`);
113
- }
114
- return id;
115
- }
116
- function validateWorkspaceSyncConfig(raw, label) {
117
- if (!raw) {
118
- return;
119
- }
120
- if (typeof raw !== 'object' || Array.isArray(raw)) {
121
- throw new Error(`${label} workspaceSync must be an object`);
122
- }
123
- const config = raw;
124
- if (config.enabled !== true) {
125
- return;
126
- }
127
- const dir = getStringField(config, 'dir', `${label} workspaceSync`);
128
- const rulesFile = getStringField(config, 'rulesFile', `${label} workspaceSync`);
129
- normalizeSafeRelativePath(dir, 'workspaceSync.dir');
130
- normalizeSafeRelativePath(rulesFile, 'workspaceSync.rulesFile');
131
- }
132
- async function readAndValidateManifest(stageDir) {
133
- const manifestPath = path.join(stageDir, ENGINE_MANIFEST_NAME);
134
- let raw;
135
- try {
136
- raw = await fs_1.promises.readFile(manifestPath, 'utf8');
137
- }
138
- catch {
139
- throw new Error(`Custom engine package is missing ${ENGINE_MANIFEST_NAME}`);
140
- }
141
- const parsed = readJsonObject(raw, ENGINE_MANIFEST_NAME);
142
- const id = getStringField(parsed, 'id', ENGINE_MANIFEST_NAME);
143
- const manifest = {
144
- version: parsed.version,
145
- id,
146
- displayName: typeof parsed.displayName === 'string' && parsed.displayName.trim()
147
- ? parsed.displayName.trim()
148
- : undefined,
149
- description: typeof parsed.description === 'string' && parsed.description.trim()
150
- ? parsed.description.trim()
151
- : undefined,
152
- entry: getStringField(parsed, 'entry', ENGINE_MANIFEST_NAME),
153
- workspaceSync: parsed.workspaceSync,
154
- };
155
- if (manifest.version !== 2) {
156
- throw new Error(`${ENGINE_MANIFEST_NAME} must declare version 2`);
157
- }
158
- if (manifest.id !== manifest.id.toLowerCase() || !/^[a-z0-9][a-z0-9._-]*$/.test(manifest.id)) {
159
- throw new Error(`${ENGINE_MANIFEST_NAME} id must contain only lowercase letters, numbers, ".", "_", or "-"`);
160
- }
161
- validateWorkspaceSyncConfig(manifest.workspaceSync, ENGINE_MANIFEST_NAME);
162
- const entryRel = normalizeSafeRelativePath(manifest.entry, 'entry');
163
- const entryPath = path.join(stageDir, entryRel);
164
- assertPathInside(stageDir, entryPath, 'Engine entry');
165
- if (!await pathExists(entryPath)) {
166
- throw new Error(`${ENGINE_MANIFEST_NAME} entry not found: ${manifest.entry}`);
167
- }
168
- return manifest;
169
- }
170
- async function writePackageFiles(stageDir, files) {
171
- const seen = new Set();
172
- for (const file of files) {
173
- const rel = normalizeArchivePath(file.path);
174
- if (seen.has(rel)) {
175
- throw new Error(`Duplicate engine package path: ${file.path}`);
176
- }
177
- seen.add(rel);
178
- const filePath = path.join(stageDir, ...rel.split('/'));
179
- assertPathInside(stageDir, filePath, 'Engine package file');
180
- await fs_1.promises.mkdir(path.dirname(filePath), { recursive: true });
181
- await fs_1.promises.writeFile(filePath, file.content);
182
- }
183
- }
184
- async function runCommand(command, args, cwd) {
185
- try {
186
- await execFileAsync(command, args, {
187
- cwd,
188
- maxBuffer: 10 * 1024 * 1024,
189
- windowsHide: true,
190
- shell: process.platform === 'win32' && /\.(?:cmd|bat)$/i.test(command),
191
- });
192
- }
193
- catch (error) {
194
- const stderr = typeof error.stderr === 'string'
195
- ? error.stderr.trim()
196
- : '';
197
- const stdout = typeof error.stdout === 'string'
198
- ? error.stdout.trim()
199
- : '';
200
- const detail = stderr || stdout || (error instanceof Error ? error.message : String(error));
201
- throw new Error(`${command} ${args.join(' ')} failed: ${detail}`);
202
- }
203
- }
204
- async function maybeInstallDependencies(stageDir, runNpmCi, logger) {
205
- const packageJsonPath = path.join(stageDir, 'package.json');
206
- if (!await pathExists(packageJsonPath)) {
207
- return false;
208
- }
209
- const lockfilePath = path.join(stageDir, 'package-lock.json');
210
- if (!await pathExists(lockfilePath)) {
211
- throw new Error('Custom engine packages with package.json must include package-lock.json');
212
- }
213
- if (!runNpmCi) {
214
- return false;
215
- }
216
- const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
217
- if (logger) {
218
- (0, utils_1.logInfo)(logger, `[Store] Running npm ci --omit=dev for custom engine`);
219
- }
220
- await runCommand(npmCommand, ['ci', '--omit=dev'], stageDir);
221
- return true;
222
- }
223
- async function validateEntrySyntax(stageDir, manifest, logger) {
224
- const entryRel = normalizeSafeRelativePath(manifest.entry, 'entry');
225
- const entryPath = path.join(stageDir, entryRel);
226
- if (logger) {
227
- (0, utils_1.logInfo)(logger, `[Store] Validating custom engine entry: ${manifest.entry}`);
228
- }
229
- await runCommand('node', ['--check', entryPath], stageDir);
230
- return entryPath;
231
- }
232
- async function replaceInstalledEngine(stageDir, installRoot, engineId, overwrite) {
233
- await fs_1.promises.mkdir(installRoot, { recursive: true });
234
- const targetDir = path.join(installRoot, engineId);
235
- assertPathInside(installRoot, targetDir, 'Custom engine install target');
236
- const targetExists = await pathExists(targetDir);
237
- if (targetExists && !overwrite) {
238
- throw new Error(`Custom engine "${engineId}" already exists at ${targetDir}`);
239
- }
240
- if (!targetExists) {
241
- await fs_1.promises.rename(stageDir, targetDir);
242
- return targetDir;
243
- }
244
- const backupRoot = path.join(installRoot, '.tmp');
245
- await fs_1.promises.mkdir(backupRoot, { recursive: true });
246
- const backupDir = path.join(backupRoot, `${engineId}.previous-${Date.now()}`);
247
- assertPathInside(installRoot, backupDir, 'Custom engine backup target');
248
- await fs_1.promises.rm(backupDir, { recursive: true, force: true });
249
- await fs_1.promises.rename(targetDir, backupDir);
250
- try {
251
- await fs_1.promises.rename(stageDir, targetDir);
252
- await fs_1.promises.rm(backupDir, { recursive: true, force: true });
253
- return targetDir;
254
- }
255
- catch (error) {
256
- await fs_1.promises.rm(targetDir, { recursive: true, force: true }).catch(() => undefined);
257
- await fs_1.promises.rename(backupDir, targetDir).catch(() => undefined);
258
- throw error;
259
- }
260
- }
261
- async function installCustomEngineFromFiles(files, options = {}) {
262
- if (files.length === 0) {
263
- throw new Error('Custom engine package is empty');
264
- }
265
- const installRoot = path.resolve(options.installRoot ?? getDefaultCustomEnginesInstallRoot());
266
- const runNpmCi = options.runNpmCi !== false;
267
- const overwrite = options.overwrite !== false;
268
- const tempRoot = path.join(installRoot, '.tmp');
269
- await fs_1.promises.mkdir(tempRoot, { recursive: true });
270
- const stageDir = await fs_1.promises.mkdtemp(path.join(tempRoot, `${options.slug || 'engine'}-`));
271
- assertPathInside(tempRoot, stageDir, 'Custom engine staging directory');
272
- let stageOwned = true;
273
- try {
274
- await writePackageFiles(stageDir, files);
275
- const manifest = await readAndValidateManifest(stageDir);
276
- const npmInstalled = await maybeInstallDependencies(stageDir, runNpmCi, options.logger);
277
- const stagedEntryPath = await validateEntrySyntax(stageDir, manifest, options.logger);
278
- const installDir = await replaceInstalledEngine(stageDir, installRoot, manifest.id, overwrite);
279
- stageOwned = false;
280
- const entryPath = path.join(installDir, path.relative(stageDir, stagedEntryPath));
281
- const result = {
282
- id: manifest.id,
283
- displayName: manifest.displayName || manifest.id,
284
- version: manifest.version,
285
- manifestPath: path.join(installDir, ENGINE_MANIFEST_NAME),
286
- installDir,
287
- entryPath,
288
- npmInstalled,
289
- };
290
- if (options.logger) {
291
- const source = options.sourceUrl ? ` from ${options.sourceUrl}` : '';
292
- (0, utils_1.logInfo)(options.logger, `[Store] Installed custom engine ${result.id}${source} to ${installDir}`);
293
- }
294
- return result;
295
- }
296
- finally {
297
- if (stageOwned) {
298
- await fs_1.promises.rm(stageDir, { recursive: true, force: true }).catch(() => undefined);
299
- }
300
- }
301
- }
302
- async function listInstalledCustomEngines(options = {}) {
303
- const installRoot = path.resolve(options.installRoot ?? getDefaultCustomEnginesInstallRoot());
304
- let entries;
305
- try {
306
- entries = await fs_1.promises.readdir(installRoot, { withFileTypes: true });
307
- }
308
- catch {
309
- return [];
310
- }
311
- const engines = [];
312
- for (const entry of entries) {
313
- if (!entry.isDirectory() || entry.name.startsWith('.')) {
314
- continue;
315
- }
316
- const installDir = path.join(installRoot, entry.name);
317
- assertPathInside(installRoot, installDir, 'Custom engine install target');
318
- const manifestPath = path.join(installDir, ENGINE_MANIFEST_NAME);
319
- let id = entry.name;
320
- let displayName = entry.name;
321
- try {
322
- const manifest = readJsonObject(await fs_1.promises.readFile(manifestPath, 'utf8'), manifestPath);
323
- if (typeof manifest.id === 'string' && manifest.id.trim()) {
324
- id = normalizeEngineId(manifest.id);
325
- }
326
- if (typeof manifest.displayName === 'string' && manifest.displayName.trim()) {
327
- displayName = manifest.displayName.trim();
328
- }
329
- else {
330
- displayName = id;
331
- }
332
- }
333
- catch {
334
- // Keep broken/manual installs visible by directory name so they can be removed.
335
- }
336
- engines.push({ id, displayName, manifestPath, installDir });
337
- }
338
- return engines.sort((a, b) => a.id.localeCompare(b.id));
339
- }
340
- async function uninstallCustomEngine(id, options = {}) {
341
- const engineId = normalizeEngineId(id);
342
- const installRoot = path.resolve(options.installRoot ?? getDefaultCustomEnginesInstallRoot());
343
- const installDir = path.join(installRoot, engineId);
344
- assertPathInside(installRoot, installDir, 'Custom engine uninstall target');
345
- let displayName;
346
- try {
347
- const stat = await fs_1.promises.lstat(installDir);
348
- if (!stat.isDirectory() || stat.isSymbolicLink()) {
349
- throw new Error(`Custom engine install target is not a normal directory: ${installDir}`);
350
- }
351
- try {
352
- const manifest = readJsonObject(await fs_1.promises.readFile(path.join(installDir, ENGINE_MANIFEST_NAME), 'utf8'), ENGINE_MANIFEST_NAME);
353
- displayName = typeof manifest.displayName === 'string' && manifest.displayName.trim()
354
- ? manifest.displayName.trim()
355
- : undefined;
356
- }
357
- catch {
358
- // Missing or invalid manifests should not block removing the install directory.
359
- }
360
- }
361
- catch (error) {
362
- if (error?.code === 'ENOENT') {
363
- return { id: engineId, installDir, removed: false };
364
- }
365
- throw error;
366
- }
367
- await fs_1.promises.rm(installDir, { recursive: true, force: true });
368
- if (options.logger) {
369
- (0, utils_1.logInfo)(options.logger, `[Store] Uninstalled custom engine ${engineId} from ${installDir}`);
370
- }
371
- return { id: engineId, displayName, installDir, removed: true };
372
- }
@@ -1,320 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) AgentHippo.ai. All rights reserved.
4
- *--------------------------------------------------------------------------------------------*/
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PersistentEngineWorkerPool = void 0;
7
- const node_child_process_1 = require("node:child_process");
8
- const node_readline_1 = require("node:readline");
9
- const customEngineIpc_1 = require("./customEngineIpc");
10
- /** Idle worker is shut down after this long with no turns (matches custom session TTL). */
11
- const WORKER_IDLE_TTL_MS = 1000 * 60 * 30;
12
- /** Safety cap: force-kill a retired worker that never drains its in-flight turns. */
13
- const RETIRE_DRAIN_TIMEOUT_MS = 1000 * 60;
14
- /**
15
- * A worker must emit `ready` (engine module imported) within this long after spawn. A hung import
16
- * (network I/O at module load, an unresolved top-level await, a wedged native dep) would otherwise
17
- * leave every turn for that engine awaiting `ensureStarted()` forever, so we time it out, kill the
18
- * child, and let the next turn spawn fresh.
19
- */
20
- const WORKER_STARTUP_TIMEOUT_MS = 1000 * 30;
21
- /**
22
- * After a turn is aborted we ask the child to stop and wait for it to settle, but an engine that
23
- * ignores its AbortSignal would never send `result`/`failed`, leaking the pending run forever. Give
24
- * the child this long to acknowledge, then settle the host-side promise ourselves.
25
- */
26
- const ABORT_SETTLE_TIMEOUT_MS = 1000 * 10;
27
- /**
28
- * One long-lived runner child per engine. The SDK stays warm across turns, so there is no
29
- * per-turn process spawn or session-resume cost. On a turn failure the worker is "retired":
30
- * no new turns are routed to it and it is killed once its in-flight turns drain, so the next
31
- * turn gets a fresh child (the targeted equivalent of an extension-host reload).
32
- */
33
- class EngineWorker {
34
- opts;
35
- child;
36
- readyPromise;
37
- readyResolve;
38
- readyReject;
39
- pending = new Map();
40
- /**
41
- * Per-run line chains. Each turn's stdout messages are serialized (so streamed events stay in
42
- * order and the terminal result/failed lands after them), but turns are independent — a slow or
43
- * stalled emitter on one chat session no longer blocks streaming for every other session sharing
44
- * this worker.
45
- */
46
- lineChains = new Map();
47
- seq = 0;
48
- stderr = '';
49
- retired = false;
50
- retireTimer;
51
- readyTimer;
52
- lastUsedAt = Date.now();
53
- constructor(opts) {
54
- this.opts = opts;
55
- }
56
- /** A worker is reusable only while it has a live child and has not been retired. */
57
- isUsable() {
58
- return !this.retired && this.child !== undefined && this.child.exitCode === null && !this.child.killed;
59
- }
60
- ensureStarted() {
61
- if (this.readyPromise) {
62
- return this.readyPromise;
63
- }
64
- this.readyPromise = new Promise((resolve, reject) => {
65
- this.readyResolve = resolve;
66
- this.readyReject = reject;
67
- });
68
- const child = (0, node_child_process_1.spawn)(this.opts.nodeBin, [this.opts.runnerPath], {
69
- cwd: this.opts.cwd,
70
- env: this.opts.spawnEnv,
71
- stdio: ['pipe', 'pipe', 'pipe'],
72
- });
73
- this.child = child;
74
- this.opts.logger.info(`[AgentIDE] Persistent engine worker started (${this.opts.label}, pid=${child.pid})`);
75
- const startupTimeoutMs = this.opts.startupTimeoutMs ?? WORKER_STARTUP_TIMEOUT_MS;
76
- this.readyTimer = setTimeout(() => {
77
- this.opts.logger.warn(`[AgentIDE] Persistent engine worker (${this.opts.label}) did not signal ready within ${startupTimeoutMs}ms; terminating`);
78
- this.handleExit(`worker did not become ready within ${startupTimeoutMs}ms`);
79
- }, startupTimeoutMs);
80
- this.readyTimer.unref?.();
81
- const stdoutRl = (0, node_readline_1.createInterface)({ input: child.stdout });
82
- stdoutRl.on('line', line => this.routeLine(line));
83
- child.stderr?.on('data', chunk => {
84
- this.stderr += String(chunk);
85
- if (this.stderr.length > 16_384) {
86
- this.stderr = this.stderr.slice(-16_384);
87
- }
88
- });
89
- child.on('error', err => this.handleExit(err.message));
90
- child.on('close', code => {
91
- stdoutRl.close();
92
- this.handleExit(this.stderr.trim() || `worker exited with code ${code}`);
93
- });
94
- return this.readyPromise;
95
- }
96
- /** Parse a stdout line and dispatch it: `ready` is handled inline; everything else is a
97
- * per-run message routed onto that run's own ordering chain. */
98
- routeLine(line) {
99
- const msg = (0, customEngineIpc_1.parseWorkerOutbound)(line);
100
- if (!msg) {
101
- return;
102
- }
103
- if ('type' in msg && msg.type === 'ready') {
104
- // Startup signal — the engine module loaded successfully.
105
- this.markReady();
106
- return;
107
- }
108
- // Every non-ready message carries an id (control result/failed, or a streamed event).
109
- const id = 'id' in msg ? msg.id : undefined;
110
- if (id === undefined) {
111
- return;
112
- }
113
- const prev = this.lineChains.get(id) ?? Promise.resolve();
114
- const next = prev.then(() => this.handleMessage(msg)).catch(() => undefined);
115
- this.lineChains.set(id, next);
116
- void next.then(() => {
117
- if (this.lineChains.get(id) === next) {
118
- this.lineChains.delete(id);
119
- }
120
- });
121
- }
122
- async handleMessage(msg) {
123
- if ('type' in msg) {
124
- if (msg.type === 'ready') {
125
- return;
126
- }
127
- const run = this.pending.get(msg.id);
128
- if (!run) {
129
- return;
130
- }
131
- if (msg.type === 'result') {
132
- this.finishRun(msg.id, run);
133
- run.resolve({ nativeSessionId: msg.nativeSessionId });
134
- }
135
- else {
136
- this.finishRun(msg.id, run);
137
- run.reject(new Error(msg.message));
138
- // A thrown turn means the warm SDK may be poisoned — retire unless the user aborted.
139
- if (!run.aborted) {
140
- this.retire('turn error');
141
- }
142
- }
143
- return;
144
- }
145
- // Streamed RunnerEvent for an in-flight turn.
146
- const run = this.pending.get(msg.id);
147
- if (run) {
148
- await (0, customEngineIpc_1.applyParsedRunnerEvent)(run.emitter, msg.event);
149
- }
150
- }
151
- markReady() {
152
- if (this.readyTimer) {
153
- clearTimeout(this.readyTimer);
154
- this.readyTimer = undefined;
155
- }
156
- this.readyResolve?.();
157
- }
158
- /** Clear a run's abort timer and signal listener (called when the run settles or the worker dies). */
159
- cleanupRun(run) {
160
- if (run.abortTimer) {
161
- clearTimeout(run.abortTimer);
162
- run.abortTimer = undefined;
163
- }
164
- if (run.signal && run.onAbort) {
165
- run.signal.removeEventListener('abort', run.onAbort);
166
- run.onAbort = undefined;
167
- }
168
- }
169
- finishRun(id, run) {
170
- this.cleanupRun(run);
171
- this.pending.delete(id);
172
- if (this.retired && this.pending.size === 0) {
173
- this.kill();
174
- }
175
- }
176
- handleExit(reason) {
177
- if (this.retireTimer) {
178
- clearTimeout(this.retireTimer);
179
- this.retireTimer = undefined;
180
- }
181
- if (this.readyTimer) {
182
- clearTimeout(this.readyTimer);
183
- this.readyTimer = undefined;
184
- }
185
- const child = this.child;
186
- this.child = undefined;
187
- this.retired = true;
188
- // If the child is still alive (e.g. startup timeout fired on a hung import), terminate it.
189
- if (child && child.exitCode === null && !child.killed) {
190
- try {
191
- child.kill('SIGKILL');
192
- }
193
- catch { /* already gone */ }
194
- }
195
- this.readyReject?.(new Error(`Persistent engine worker failed to start (${this.opts.label}): ${reason}`));
196
- const pendingRuns = [...this.pending.entries()];
197
- this.pending.clear();
198
- for (const [, run] of pendingRuns) {
199
- this.cleanupRun(run);
200
- run.reject(new Error(`Custom engine worker exited (${this.opts.label}): ${reason}`));
201
- }
202
- }
203
- /** Stop reusing this worker; kill once in-flight turns drain (or after a safety timeout). */
204
- retire(reason) {
205
- if (this.retired) {
206
- return;
207
- }
208
- this.retired = true;
209
- this.opts.logger.info(`[AgentIDE] Retiring persistent engine worker (${this.opts.label}): ${reason}`);
210
- if (this.pending.size === 0) {
211
- this.kill();
212
- }
213
- else {
214
- this.retireTimer = setTimeout(() => this.kill(), RETIRE_DRAIN_TIMEOUT_MS);
215
- this.retireTimer.unref?.();
216
- }
217
- }
218
- kill() {
219
- if (this.retireTimer) {
220
- clearTimeout(this.retireTimer);
221
- this.retireTimer = undefined;
222
- }
223
- if (this.readyTimer) {
224
- clearTimeout(this.readyTimer);
225
- this.readyTimer = undefined;
226
- }
227
- const child = this.child;
228
- this.child = undefined;
229
- this.retired = true;
230
- if (!child || child.exitCode !== null || child.killed) {
231
- return;
232
- }
233
- // SIGTERM closes the child's stdin readline, whose `close` handler aborts in-flight turns and
234
- // exits(0). The child installs no SIGTERM handler, so signalling directly is enough — no
235
- // separate `shutdown` line is needed (it would race the signal and never be read).
236
- child.kill('SIGTERM');
237
- }
238
- send(req) {
239
- this.child?.stdin?.write((0, customEngineIpc_1.encodeWorkerRequest)(req));
240
- }
241
- async run(runEnv, emitter, signal) {
242
- await this.ensureStarted();
243
- this.lastUsedAt = Date.now();
244
- const id = String(++this.seq);
245
- return new Promise((resolve, reject) => {
246
- const run = { emitter, resolve, reject, aborted: false, signal };
247
- const onAbort = () => {
248
- run.aborted = true;
249
- this.send({ type: 'abort', id });
250
- // Don't wait on the child indefinitely: if the engine ignores its AbortSignal and never
251
- // sends result/failed, settle the host promise ourselves so the turn doesn't leak.
252
- run.abortTimer = setTimeout(() => {
253
- const pendingRun = this.pending.get(id);
254
- if (!pendingRun) {
255
- return;
256
- }
257
- this.finishRun(id, pendingRun);
258
- pendingRun.reject(new Error('Custom engine turn aborted'));
259
- }, this.opts.abortSettleTimeoutMs ?? ABORT_SETTLE_TIMEOUT_MS);
260
- run.abortTimer.unref?.();
261
- };
262
- if (signal) {
263
- run.onAbort = onAbort;
264
- if (signal.aborted) {
265
- onAbort();
266
- }
267
- else {
268
- signal.addEventListener('abort', onAbort, { once: true });
269
- }
270
- }
271
- this.pending.set(id, run);
272
- this.send({ type: 'run', id, env: runEnv });
273
- });
274
- }
275
- isIdle(now) {
276
- return this.pending.size === 0 && now - this.lastUsedAt > (this.opts.idleTtlMs ?? WORKER_IDLE_TTL_MS);
277
- }
278
- }
279
- /** Pool of persistent engine workers, keyed by engine cacheKey (id + entry mtimes). */
280
- class PersistentEngineWorkerPool {
281
- workers = new Map();
282
- async run(opts, runEnv, emitter, signal) {
283
- let worker = this.workers.get(opts.cacheKey);
284
- if (!worker || !worker.isUsable()) {
285
- worker?.retire('stale or dead');
286
- worker = new EngineWorker(opts);
287
- this.workers.set(opts.cacheKey, worker);
288
- }
289
- try {
290
- return await worker.run(runEnv, emitter, signal);
291
- }
292
- catch (err) {
293
- // A failed/exited worker must not be reused for the next turn.
294
- if (this.workers.get(opts.cacheKey) === worker && !worker.isUsable()) {
295
- this.workers.delete(opts.cacheKey);
296
- }
297
- throw err;
298
- }
299
- }
300
- onMaintenance() {
301
- const now = Date.now();
302
- for (const [key, worker] of this.workers.entries()) {
303
- if (worker.isIdle(now)) {
304
- worker.kill();
305
- this.workers.delete(key);
306
- }
307
- }
308
- }
309
- disposeAll() {
310
- for (const worker of this.workers.values()) {
311
- worker.kill();
312
- }
313
- this.workers.clear();
314
- }
315
- /** Test-only: number of live workers currently tracked by the pool. */
316
- _workerCountForTest() {
317
- return this.workers.size;
318
- }
319
- }
320
- exports.PersistentEngineWorkerPool = PersistentEngineWorkerPool;