@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.
- package/LICENSE +21 -0
- package/bin/agenthippo.js +2 -0
- package/out/agentpack/github.js +547 -0
- package/out/agentpack/index.js +66 -0
- package/out/agentpack/install.js +297 -0
- package/out/agentpack/manager.js +441 -0
- package/out/agentpack/manifest.js +135 -0
- package/out/agentpack/paths.js +475 -0
- package/out/agentpack/publish.js +248 -0
- package/out/agentpack/stores.js +554 -0
- package/out/agentpack/types.js +5 -0
- package/out/analytics/dashboard/artifactManager.js +439 -0
- package/out/analytics/dashboard/fleetDisplayUtils.js +159 -0
- package/out/analytics/dashboard/fleetOrchestrator.js +142 -0
- package/out/analytics/dashboard/fleetRegistry.js +79 -0
- package/out/analytics/dashboard/fleetRowDefaults.js +87 -0
- package/out/analytics/dashboard/fleetScriptAdapter.js +146 -0
- package/out/analytics/dashboard/fleetStatusUtils.js +30 -0
- package/out/analytics/dashboard/fleetTitleUtils.js +68 -0
- package/out/analytics/dashboard/fleetTypes.js +29 -0
- package/out/analytics/dashboard/index.js +17 -0
- package/out/analytics/dashboard/indexingService.js +422 -0
- package/out/analytics/dashboard/localFleetAdapter.js +222 -0
- package/out/analytics/dashboard/performanceMonitor.js +76 -0
- package/out/analytics/dashboard/processManager.js +209 -0
- package/out/analytics/dashboard/provider.js +3885 -0
- package/out/analytics/dashboard/queryRunner.js +994 -0
- package/out/analytics/dashboard/refreshPolicy.js +16 -0
- package/out/analytics/dashboard/scheduledFleetFingerprint.js +22 -0
- package/out/analytics/dashboard/scheduledFleetStorage.js +241 -0
- package/out/analytics/dashboard/scheduledFleetUtils.js +22 -0
- package/out/analytics/dashboard/sessionEventFleetStats.js +118 -0
- package/out/analytics/dashboard/sessionJsonlFleet.js +204 -0
- package/out/analytics/dashboard/teamViewDiscovery.js +106 -0
- package/out/analytics/dashboard/viewsConfigMerge.js +221 -0
- package/out/analytics/dashboard/webview/analytics-panel.html +155 -0
- package/out/analytics/dashboard/webview/codicon.ttf +0 -0
- package/out/analytics/dashboard/webview/index.html +78 -0
- package/out/analytics/dashboard/webview/panel.js +2295 -0
- package/out/analytics/dashboard/webview/runtime-bridge.js +82 -0
- package/out/analytics/dashboard/webview/styles.css +1009 -0
- package/out/analytics/lifecycle.js +43 -0
- package/out/analytics/service.js +1279 -0
- package/out/analytics/sessionEvents.js +231 -0
- package/out/auth/bootstrapApply.js +72 -0
- package/out/auth/brokerClient.js +126 -0
- package/out/auth/callbackUri.js +59 -0
- package/out/auth/callbackUriParse.js +59 -0
- package/out/auth/githubStoreGate.js +70 -0
- package/out/auth/loopbackAuthServer.js +165 -0
- package/out/auth/pkce.js +9 -0
- package/out/auth/provider.js +239 -0
- package/out/auth/sessionStore.js +193 -0
- package/out/auth/signInFlow.js +182 -0
- package/out/auth/types.js +12 -0
- package/out/auth-broker/config.js +62 -0
- package/out/auth-broker/jwt.js +105 -0
- package/out/auth-broker/pkce.js +57 -0
- package/out/auth-broker/server.js +539 -0
- package/out/auth-broker/store.js +273 -0
- package/out/base-prompts/gateway/openclaw-starter.json5 +144 -0
- package/out/base-prompts/gateway/slack-socket-mode-minimal.manifest.json +44 -0
- package/out/base-prompts/mcp-servers/.mcp.json +13 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/README.md +142 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/mcp.json +13 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/package-lock.json +1192 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/package.json +23 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/run-with-env.sh +12 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/sdk-test.js +102 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/simple-test.js +137 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-client.js +118 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-server.js +209 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/client.ts +431 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/index.ts +270 -0
- package/out/base-prompts/mcp-servers/langfuse-analytics/tsconfig.json +18 -0
- package/out/base-prompts/rules/AGENTS.md +204 -0
- package/out/base-prompts/skills/agent-browser/SKILL.md +102 -0
- package/out/base-prompts/skills/agent-builder/SKILL.md +73 -0
- package/out/base-prompts/skills/agent-builder/references/agent-pack.md +63 -0
- package/out/base-prompts/skills/agent-builder/references/crewai.md +66 -0
- package/out/base-prompts/skills/agent-builder/references/langchain.md +60 -0
- package/out/base-prompts/skills/agent-builder/references/raw-sdk.md +73 -0
- package/out/base-prompts/skills/agent-engine-creator/SKILL.md +586 -0
- package/out/base-prompts/skills/agent-engine-installer/SKILL.md +106 -0
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.mjs +259 -0
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.ps1 +189 -0
- package/out/base-prompts/skills/agenthippo-cli/SKILL.md +69 -0
- package/out/base-prompts/skills/agenthippo-cli/scripts/install.sh +63 -0
- package/out/base-prompts/skills/agentpack-creator/SKILL.md +375 -0
- package/out/base-prompts/skills/agentpack-creator/references/agent-templates.md +261 -0
- package/out/base-prompts/skills/agentpack-creator/references/agents-md-guide.md +195 -0
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack.py +391 -0
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack_test.py +294 -0
- package/out/base-prompts/skills/agentpack-testbench/SKILL.md +135 -0
- package/out/base-prompts/skills/algorithmic-art/LICENSE.txt +202 -0
- package/out/base-prompts/skills/algorithmic-art/SKILL.md +405 -0
- package/out/base-prompts/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/out/base-prompts/skills/algorithmic-art/templates/viewer.html +599 -0
- package/out/base-prompts/skills/debug-agent/SKILL.md +83 -0
- package/out/base-prompts/skills/desktop-automation/SKILL.md +166 -0
- package/out/base-prompts/skills/desktop-automation/references/agenthippo-ui-recipes.md +441 -0
- package/out/base-prompts/skills/desktop-automation/scripts/windows-desktop-uia.psm1 +280 -0
- package/out/base-prompts/skills/docx/LICENSE.txt +30 -0
- package/out/base-prompts/skills/docx/SKILL.md +197 -0
- package/out/base-prompts/skills/docx/docx-js.md +350 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/pack.py +159 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validate.py +69 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/out/base-prompts/skills/docx/ooxml.md +610 -0
- package/out/base-prompts/skills/docx/scripts/__init__.py +1 -0
- package/out/base-prompts/skills/docx/scripts/document.py +1276 -0
- package/out/base-prompts/skills/docx/scripts/templates/comments.xml +3 -0
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/out/base-prompts/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/out/base-prompts/skills/docx/scripts/templates/people.xml +3 -0
- package/out/base-prompts/skills/docx/scripts/utilities.py +374 -0
- package/out/base-prompts/skills/gateway-outbound/SKILL.md +136 -0
- package/out/base-prompts/skills/mcp-builder/LICENSE.txt +202 -0
- package/out/base-prompts/skills/mcp-builder/SKILL.md +328 -0
- package/out/base-prompts/skills/mcp-builder/reference/evaluation.md +602 -0
- package/out/base-prompts/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/out/base-prompts/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/out/base-prompts/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/out/base-prompts/skills/mcp-builder/scripts/connections.py +151 -0
- package/out/base-prompts/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/out/base-prompts/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/out/base-prompts/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/out/base-prompts/skills/openclaw/SKILL.md +406 -0
- package/out/base-prompts/skills/openclaw/scripts/run-smoke.sh +61 -0
- package/out/base-prompts/skills/pdf/LICENSE.txt +30 -0
- package/out/base-prompts/skills/pdf/SKILL.md +294 -0
- package/out/base-prompts/skills/pdf/forms.md +205 -0
- package/out/base-prompts/skills/pdf/reference.md +612 -0
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/out/base-prompts/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/out/base-prompts/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/out/base-prompts/skills/pdf/scripts/create_validation_image.py +41 -0
- package/out/base-prompts/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/out/base-prompts/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/out/base-prompts/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/out/base-prompts/skills/pptx/LICENSE.txt +30 -0
- package/out/base-prompts/skills/pptx/SKILL.md +484 -0
- package/out/base-prompts/skills/pptx/html2pptx.md +625 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/out/base-prompts/skills/pptx/ooxml.md +427 -0
- package/out/base-prompts/skills/pptx/scripts/html2pptx.js +984 -0
- package/out/base-prompts/skills/pptx/scripts/inventory.py +1020 -0
- package/out/base-prompts/skills/pptx/scripts/rearrange.py +231 -0
- package/out/base-prompts/skills/pptx/scripts/replace.py +385 -0
- package/out/base-prompts/skills/pptx/scripts/thumbnail.py +450 -0
- package/out/base-prompts/skills/prompt-lab/SKILL.md +149 -0
- package/out/base-prompts/skills/prompt-lab/scripts/query-analytics.sh +2551 -0
- package/out/base-prompts/skills/skill-creator/LICENSE.txt +202 -0
- package/out/base-prompts/skills/skill-creator/SKILL.md +371 -0
- package/out/base-prompts/skills/skill-creator/references/output-patterns.md +82 -0
- package/out/base-prompts/skills/skill-creator/references/workflows.md +28 -0
- package/out/base-prompts/skills/skill-creator/scripts/init_skill.py +303 -0
- package/out/base-prompts/skills/skill-creator/scripts/package_skill.py +110 -0
- package/out/base-prompts/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/out/base-prompts/skills/skill-installer/SKILL.md +251 -0
- package/out/base-prompts/skills/skill-installer/references/store-api.md +219 -0
- package/out/base-prompts/skills/spotlight-dashboard/SKILL.md +83 -0
- package/out/base-prompts/skills/spotlight-insights/SKILL.md +101 -0
- package/out/base-prompts/skills/spotlight-optimize/SKILL.md +93 -0
- package/out/base-prompts/skills/spotlight-optimize/scripts/query-analytics.sh +2551 -0
- package/out/base-prompts/skills/spotlight-query/SKILL.md +314 -0
- package/out/base-prompts/skills/spotlight-query/references/otel-schema.md +163 -0
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.sh +2551 -0
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.test.sh +744 -0
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/sessions/sess-test-1.jsonl +14 -0
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/.duckdb-index.json +7 -0
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/sample.jsonl +5 -0
- package/out/base-prompts/skills/spotlight-report/SKILL.md +86 -0
- package/out/base-prompts/skills/spotlight-visualize/SKILL.md +92 -0
- package/out/base-prompts/skills/spotlight-visualize/scripts/query-analytics.sh +2551 -0
- package/out/base-prompts/skills/xlsx/LICENSE.txt +30 -0
- package/out/base-prompts/skills/xlsx/SKILL.md +289 -0
- package/out/base-prompts/skills/xlsx/recalc.py +178 -0
- package/out/branding.js +23 -0
- package/out/cli/commands/anywhere.js +66 -0
- package/out/cli/commands/ask.js +243 -0
- package/out/cli/commands/auth-broker.js +24 -0
- package/out/cli/commands/auth.js +219 -0
- package/out/cli/commands/chat.js +354 -0
- package/out/cli/commands/deploy.js +223 -0
- package/out/cli/commands/gateway.js +160 -0
- package/out/cli/commands/pack.js +220 -0
- package/out/cli/commands/probe-custom-engine.js +82 -0
- package/out/cli/commands/serve.js +583 -0
- package/out/cli/commands/store.js +919 -0
- package/out/cli/credential-context.js +113 -0
- package/out/cli/deploy-init.js +2087 -0
- package/out/cli/deps.js +238 -0
- package/out/cli/index.js +390 -0
- package/out/cli/pack-loader.js +376 -0
- package/out/cli/run-custom-engine-runner.js +318 -0
- package/out/cli/runtime.js +409 -0
- package/out/cli/serve-hardening.js +325 -0
- package/out/cli/state-sync.js +135 -0
- package/out/cli/utils.js +220 -0
- package/out/cli/vscode-shim.js +86 -0
- package/out/engines/base.js +159 -0
- package/out/engines/claude.js +1215 -0
- package/out/engines/codex.js +759 -0
- package/out/engines/custom.js +632 -0
- package/out/engines/customEngineIpc.js +95 -0
- package/out/engines/customEngineRunnerEmbed.js +107 -0
- package/out/engines/customRegistry.js +274 -0
- package/out/engines/embeddedCustomEngineRunner.generated.js +9 -0
- package/out/engines/engineApiKey.js +138 -0
- package/out/engines/factory.js +45 -0
- package/out/engines/install.js +372 -0
- package/out/engines/persistentEngineWorker.js +320 -0
- package/out/engines/publish.js +341 -0
- package/out/engines/types.js +17 -0
- package/out/examples/run-headless-repl.js +291 -0
- package/out/examples/run-headless.js +187 -0
- package/out/extension.js +4472 -0
- package/out/gateway/bridge.js +805 -0
- package/out/gateway/cli-agent-id.js +36 -0
- package/out/gateway/client.js +303 -0
- package/out/gateway/client.test.js +395 -0
- package/out/gateway/gateway-scope-errors.js +14 -0
- package/out/gateway/gatewayBackup.js +76 -0
- package/out/gateway/gatewayRouteIndex.js +371 -0
- package/out/gateway/gatewaySessionStore.js +243 -0
- package/out/gateway/index.js +31 -0
- package/out/gateway/lifecycle.js +3056 -0
- package/out/gateway/openclaw-channel-routing.js +317 -0
- package/out/gateway/outboundHandles.js +373 -0
- package/out/gateway/outboundPaths.js +72 -0
- package/out/gateway/outboundSend.js +254 -0
- package/out/gateway/protocol.js +48 -0
- package/out/gateway/resetMappings.js +52 -0
- package/out/gateway/service.js +1244 -0
- package/out/gateway/sessionRouting.js +77 -0
- package/out/headless/index.js +505 -0
- package/out/headless/sync.js +473 -0
- package/out/mcp/publish.js +143 -0
- package/out/mcp.js +597 -0
- package/out/permissions.js +108 -0
- package/out/permissions.mapping.yaml +68 -0
- package/out/registry/index.js +332 -0
- package/out/remote/handleRemoteChat.js +122 -0
- package/out/remote/remotePackStatusBar.js +103 -0
- package/out/remote/serveClient.js +216 -0
- package/out/remoteSkills.js +191 -0
- package/out/runtime/index.js +32 -0
- package/out/runtime/interfaces/config-provider.js +32 -0
- package/out/runtime/interfaces/edit-tracker.js +22 -0
- package/out/runtime/interfaces/index.js +29 -0
- package/out/runtime/interfaces/logger.js +40 -0
- package/out/runtime/interfaces/permission-handler.js +66 -0
- package/out/runtime/interfaces/session-store.js +342 -0
- package/out/runtime/vscode/index.js +20 -0
- package/out/runtime/vscode/vscode-config-provider.js +77 -0
- package/out/runtime/vscode/vscode-edit-tracker.js +120 -0
- package/out/runtime/vscode/vscode-logger.js +30 -0
- package/out/runtime/vscode/vscode-permission-handler.js +72 -0
- package/out/runtime/vscode/vscode-session-store.js +22 -0
- package/out/scripts/agentide-litellm.ps1 +501 -0
- package/out/scripts/agentide-litellm.sh +700 -0
- package/out/scripts/agentide_litellm_hooks_v1.py +604 -0
- package/out/scripts/analytics/agent-fleet-widget.js +954 -0
- package/out/scripts/analytics/agentide-litellm-otel.config.yaml +160 -0
- package/out/scripts/analytics/default-seed-scripts.json +12 -0
- package/out/scripts/analytics/duckdbLocator.js +29 -0
- package/out/scripts/analytics/fleet-local-adapter.js +246 -0
- package/out/scripts/analytics/fleet-workflow.sh +263 -0
- package/out/scripts/analytics/generate-default-charts.py +685 -0
- package/out/scripts/analytics/hotspot-analysis-widget.js +909 -0
- package/out/scripts/analytics/index-traces.py +1394 -0
- package/out/scripts/analytics/install-analytics.sh +286 -0
- package/out/scripts/analytics/live-fleet-4-collector.cjs +315 -0
- package/out/scripts/analytics/live-fleet-4-daemon.mjs +134 -0
- package/out/scripts/analytics/live-fleet-4-widget.cjs +433 -0
- package/out/scripts/analytics/otel-collector.yaml +55 -0
- package/out/scripts/analytics/query-analytics.ps1 +396 -0
- package/out/scripts/analytics/query-analytics.sh +2551 -0
- package/out/scripts/analytics/session-comparison-widget.js +1468 -0
- package/out/scripts/analytics/session-timeline-widget.js +2137 -0
- package/out/scripts/analytics/setup-analytics.ps1 +432 -0
- package/out/scripts/analytics/setup-analytics.sh +854 -0
- package/out/scripts/analytics/start-analytics.ps1 +169 -0
- package/out/scripts/analytics/start-analytics.sh +323 -0
- package/out/scripts/analytics/token-cost-flamegraph-widget.js +954 -0
- package/out/scripts/analytics/token-cost-trend-widget.js +1062 -0
- package/out/scripts/analytics/workflows-collector.cjs +315 -0
- package/out/scripts/analytics/workflows-daemon.mjs +186 -0
- package/out/scripts/analytics/workflows-widget.cjs +433 -0
- package/out/scripts/analytics/wow-model-widget.js +191 -0
- package/out/scripts/gateway/Dockerfile.serve +45 -0
- package/out/scripts/gateway/docker-serve.sh +248 -0
- package/out/scripts/gateway/setup-gateway-server.ps1 +953 -0
- package/out/scripts/gateway/setup-gateway-server.sh +935 -0
- package/out/scripts/gateway/setup-gateway.ps1 +1813 -0
- package/out/scripts/gateway/setup-gateway.sh +1541 -0
- package/out/scripts/setup-cli.ps1 +86 -0
- package/out/scripts/setup-cli.sh +117 -0
- package/out/scripts/tools-manifest.json +83 -0
- package/out/scripts/vendor-tools.mjs +234 -0
- package/out/session.js +272 -0
- package/out/shared/agentEngines.js +170 -0
- package/out/shared/index.js +109 -0
- package/out/shared/models.js +235 -0
- package/out/shared/providers.js +202 -0
- package/out/skills/publish.js +178 -0
- package/out/spotlight/install.js +339 -0
- package/out/spotlight/publish.js +544 -0
- package/out/spotlight/yaml.js +31 -0
- package/out/store/github/setup.js +235 -0
- package/out/store/github/templates/build-index.ts +339 -0
- package/out/store/github/templates/build-index.yml +97 -0
- package/out/store/github/templates/package.json +11 -0
- package/out/store/index.js +755 -0
- package/out/store/oramaIndex.js +884 -0
- package/out/store/shared.js +241 -0
- package/out/sync.js +1827 -0
- package/out/terminalLogger.js +358 -0
- package/out/test/agentEnvFile.test.js +97 -0
- package/out/test/agentYaml.test.js +373 -0
- package/out/test/agentpack.test.js +639 -0
- package/out/test/analytics-lifecycle.test.js +174 -0
- package/out/test/analytics.test.js +524 -0
- package/out/test/auth-bootstrapApply.test.js +102 -0
- package/out/test/auth-broker.test.js +434 -0
- package/out/test/auth-callback.test.js +62 -0
- package/out/test/branding.test.js +229 -0
- package/out/test/cli-agent-id.test.js +55 -0
- package/out/test/credential-context.test.js +105 -0
- package/out/test/customEngineInstall.test.js +100 -0
- package/out/test/customRegistry.test.js +122 -0
- package/out/test/deploy-init.test.js +532 -0
- package/out/test/deps-auto-install.test.js +81 -0
- package/out/test/engine-integration.test.js +297 -0
- package/out/test/enginePaths.test.js +195 -0
- package/out/test/enginePublish.test.js +82 -0
- package/out/test/fleetDisplayUtils.test.js +96 -0
- package/out/test/gateway-client.test.js +381 -0
- package/out/test/gateway-lifecycle.test.js +608 -0
- package/out/test/gateway-outbound.test.js +531 -0
- package/out/test/gateway-reset-mappings.test.js +221 -0
- package/out/test/gateway-route-index.test.js +235 -0
- package/out/test/gateway-session-routing.test.js +47 -0
- package/out/test/gateway-session-store.test.js +216 -0
- package/out/test/github.test.js +232 -0
- package/out/test/headless-sync.test.js +279 -0
- package/out/test/helpers/manifest-fixtures.js +27 -0
- package/out/test/mcp-obo.test.js +82 -0
- package/out/test/mcp.test.js +307 -0
- package/out/test/openclaw-channel-routing.test.js +191 -0
- package/out/test/pathSafety.test.js +63 -0
- package/out/test/permissions.test.js +175 -0
- package/out/test/persistent-engine-worker.test.js +220 -0
- package/out/test/refreshPolicy.test.js +60 -0
- package/out/test/registry.test.js +351 -0
- package/out/test/runtime.test.js +349 -0
- package/out/test/scheduledFleetStorage.test.js +72 -0
- package/out/test/serve-hardening.test.js +192 -0
- package/out/test/serveClient.test.js +173 -0
- package/out/test/sessionJsonlFleet.test.js +78 -0
- package/out/test/shared.test.js +173 -0
- package/out/test/skills-mcp.test.js +299 -0
- package/out/test/spotlightPublish.test.js +299 -0
- package/out/test/spotlightYaml.test.js +58 -0
- package/out/test/state-sync-peer.test.js +74 -0
- package/out/test/store.test.js +331 -0
- package/out/test/stores.test.js +504 -0
- package/out/test/sync-switch.test.js +251 -0
- package/out/test/teamViewDiscovery.test.js +90 -0
- package/out/test/toolPath.test.js +120 -0
- package/out/test/utils.test.js +308 -0
- package/out/test/viewsConfigMerge.test.js +180 -0
- package/out/test/windows-command-line.test.js +75 -0
- package/out/utils/agentEnvFile.js +131 -0
- package/out/utils/binary.js +175 -0
- package/out/utils/index.js +37 -0
- package/out/utils/network.js +74 -0
- package/out/utils/pathSafety.js +60 -0
- package/out/utils/paths.js +116 -0
- package/out/utils/pid.js +180 -0
- package/out/utils/pythonRunner.js +258 -0
- package/out/utils/resolveNodeBinary.js +168 -0
- package/out/utils/toolPath.js +83 -0
- package/out/utils/windowsCommandLine.js +29 -0
- package/out/utils.js +915 -0
- package/out/workspaceFolders.js +59 -0
- package/package.json +41 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GATEWAY_SECRET_ENV_KEYS = void 0;
|
|
7
|
+
exports.getAgentHomeEnvFilePath = getAgentHomeEnvFilePath;
|
|
8
|
+
exports.parseEnvContent = parseEnvContent;
|
|
9
|
+
exports.readAgentHomeEnvFile = readAgentHomeEnvFile;
|
|
10
|
+
exports.mergeEnvIntoProcessEnv = mergeEnvIntoProcessEnv;
|
|
11
|
+
exports.mergeAgentHomeEnvIntoProcessEnv = mergeAgentHomeEnvIntoProcessEnv;
|
|
12
|
+
exports.buildGatewayChildProcessEnv = buildGatewayChildProcessEnv;
|
|
13
|
+
exports.readGatewayChildProcessEnv = readGatewayChildProcessEnv;
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const paths_1 = require("./paths");
|
|
16
|
+
/**
|
|
17
|
+
* Default path for user-level secrets and engine env vars (~/.agent-hippo/.env).
|
|
18
|
+
*/
|
|
19
|
+
function getAgentHomeEnvFilePath() {
|
|
20
|
+
return (0, paths_1.getAgentidePath)('.env');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse .env file content into key-value pairs.
|
|
24
|
+
*
|
|
25
|
+
* Supports KEY=value, quoted values, # comments, and empty lines.
|
|
26
|
+
*/
|
|
27
|
+
/* eslint-disable local/code-no-unexternalized-strings -- .env parsing tokens are not user-facing. */
|
|
28
|
+
function parseEnvContent(content) {
|
|
29
|
+
const result = {};
|
|
30
|
+
const lines = content.split(/\r?\n/);
|
|
31
|
+
for (const line of lines) {
|
|
32
|
+
const trimmed = line.trim();
|
|
33
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const eqIndex = trimmed.indexOf('=');
|
|
37
|
+
if (eqIndex === -1) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const key = trimmed.slice(0, eqIndex).trim();
|
|
41
|
+
let value = trimmed.slice(eqIndex + 1).trim();
|
|
42
|
+
const isDoubleQuoted = value.length >= 2 && value.startsWith('"') && value.endsWith('"');
|
|
43
|
+
const isSingleQuoted = value.length >= 2 && value.startsWith("'") && value.endsWith("'");
|
|
44
|
+
if (isDoubleQuoted || isSingleQuoted) {
|
|
45
|
+
value = value.slice(1, -1);
|
|
46
|
+
}
|
|
47
|
+
if (isDoubleQuoted) {
|
|
48
|
+
value = value
|
|
49
|
+
.replace(/\\n/g, '\n')
|
|
50
|
+
.replace(/\\r/g, '\r')
|
|
51
|
+
.replace(/\\t/g, '\t')
|
|
52
|
+
.replace(/\\\\/g, '\\');
|
|
53
|
+
}
|
|
54
|
+
if (key) {
|
|
55
|
+
result[key] = value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/* eslint-enable local/code-no-unexternalized-strings */
|
|
61
|
+
/**
|
|
62
|
+
* Read and parse the AgentHippo home .env file. Missing file returns {}.
|
|
63
|
+
*/
|
|
64
|
+
async function readAgentHomeEnvFile(envFilePath = getAgentHomeEnvFilePath()) {
|
|
65
|
+
try {
|
|
66
|
+
const content = await fs_1.promises.readFile(envFilePath, 'utf-8');
|
|
67
|
+
return parseEnvContent(content);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Merge env vars into process.env without overwriting keys already set in the shell.
|
|
75
|
+
*/
|
|
76
|
+
function mergeEnvIntoProcessEnv(fromFile, target = process.env) {
|
|
77
|
+
const applied = [];
|
|
78
|
+
const skipped = [];
|
|
79
|
+
for (const [key, value] of Object.entries(fromFile)) {
|
|
80
|
+
if (!key) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
84
|
+
skipped.push(key);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
target[key] = value;
|
|
88
|
+
applied.push(key);
|
|
89
|
+
}
|
|
90
|
+
return { applied, skipped };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Load ~/.agent-hippo/.env into the extension host process.env (merge only).
|
|
94
|
+
* Lets custom engines read apiKeyEnvVar values without per-engine IDE allowlists.
|
|
95
|
+
*/
|
|
96
|
+
async function mergeAgentHomeEnvIntoProcessEnv(envFilePath = getAgentHomeEnvFilePath()) {
|
|
97
|
+
const parsed = await readAgentHomeEnvFile(envFilePath);
|
|
98
|
+
const result = mergeEnvIntoProcessEnv(parsed);
|
|
99
|
+
return { ...result, envFilePath };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Managed gateway secret keys. The IDE owns these in ~/.agent-hippo/.env, so the file is the
|
|
103
|
+
* source of truth: a fresh file value must win over the stale snapshot cached in process.env at
|
|
104
|
+
* activation (otherwise rotating Slack apps keeps the gateway authenticating as the old app).
|
|
105
|
+
*/
|
|
106
|
+
exports.GATEWAY_SECRET_ENV_KEYS = ['SLACK_BOT_TOKEN', 'SLACK_APP_TOKEN', 'OPENCLAW_GATEWAY_TOKEN'];
|
|
107
|
+
/**
|
|
108
|
+
* Build env for gateway child processes. Fills keys from ~/.agent-hippo/.env when the
|
|
109
|
+
* extension host has them unset or empty (GUI apps often lack shell-exported secrets).
|
|
110
|
+
*
|
|
111
|
+
* For `overlayKeys` (managed gateway secrets), a non-empty file value always wins over the
|
|
112
|
+
* cached process.env value so token rotations take effect on the next gateway (re)start.
|
|
113
|
+
*/
|
|
114
|
+
function buildGatewayChildProcessEnv(base, fromFile, overlayKeys = exports.GATEWAY_SECRET_ENV_KEYS) {
|
|
115
|
+
const env = { ...base };
|
|
116
|
+
const overlay = new Set(overlayKeys);
|
|
117
|
+
for (const [key, value] of Object.entries(fromFile)) {
|
|
118
|
+
if (!key || !value.trim()) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const existing = env[key];
|
|
122
|
+
if (overlay.has(key) || existing === undefined || existing === '') {
|
|
123
|
+
env[key] = value;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return env;
|
|
127
|
+
}
|
|
128
|
+
async function readGatewayChildProcessEnv(envFilePath = getAgentHomeEnvFilePath()) {
|
|
129
|
+
const fromFile = await readAgentHomeEnvFile(envFilePath);
|
|
130
|
+
return buildGatewayChildProcessEnv(process.env, fromFile);
|
|
131
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Binary Finder Utilities
|
|
4
|
+
*
|
|
5
|
+
* Shared utilities for finding binaries on PATH with caching.
|
|
6
|
+
* Cost: ~50-100ms for shell commands, cached for 60 seconds.
|
|
7
|
+
*
|
|
8
|
+
* Used by:
|
|
9
|
+
* - Gateway lifecycle manager (Agent Anywhere)
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.findBinary = findBinary;
|
|
46
|
+
exports.findBinaryCached = findBinaryCached;
|
|
47
|
+
exports.getCommonBinaryPaths = getCommonBinaryPaths;
|
|
48
|
+
exports.clearBinaryCache = clearBinaryCache;
|
|
49
|
+
const child_process_1 = require("child_process");
|
|
50
|
+
const util_1 = require("util");
|
|
51
|
+
const fs_1 = require("fs");
|
|
52
|
+
const fsSync = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const os = __importStar(require("os"));
|
|
55
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
56
|
+
const IS_WINDOWS = process.platform === 'win32';
|
|
57
|
+
/** Default cache TTL for binary paths (avoid repeated `which` calls) */
|
|
58
|
+
const DEFAULT_CACHE_TTL_MS = 60_000;
|
|
59
|
+
/** Binary path cache */
|
|
60
|
+
const binaryCache = new Map();
|
|
61
|
+
/**
|
|
62
|
+
* Find a binary on PATH (cross-platform).
|
|
63
|
+
* Uses `which` on Unix and `where` on Windows.
|
|
64
|
+
*
|
|
65
|
+
* @param name - Binary name to find
|
|
66
|
+
* @param timeout - Execution timeout in ms (default: 5000)
|
|
67
|
+
* @returns Path to the binary or undefined if not found
|
|
68
|
+
*/
|
|
69
|
+
async function findBinary(name, timeout = 5_000) {
|
|
70
|
+
try {
|
|
71
|
+
const cmd = IS_WINDOWS ? `where ${name}` : `which ${name}`;
|
|
72
|
+
const { stdout } = await execAsync(cmd, { timeout });
|
|
73
|
+
const result = stdout.trim().split('\n')[0];
|
|
74
|
+
return result || undefined;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Find a binary with caching to avoid repeated `which`/`where` calls.
|
|
82
|
+
*
|
|
83
|
+
* @param name - Binary name to find
|
|
84
|
+
* @param commonPaths - Additional paths to check if not found on PATH
|
|
85
|
+
* @param cacheTtlMs - Cache TTL in milliseconds (default: 60000)
|
|
86
|
+
* @returns Path to the binary or undefined if not found
|
|
87
|
+
*/
|
|
88
|
+
async function findBinaryCached(name, commonPaths = [], cacheTtlMs = DEFAULT_CACHE_TTL_MS) {
|
|
89
|
+
const now = Date.now();
|
|
90
|
+
const cached = binaryCache.get(name);
|
|
91
|
+
// Return cached value if still valid
|
|
92
|
+
if (cached && now - cached.timestamp < cacheTtlMs) {
|
|
93
|
+
return cached.path;
|
|
94
|
+
}
|
|
95
|
+
// Try to find on PATH first
|
|
96
|
+
let binaryPath = await findBinary(name);
|
|
97
|
+
// If not on PATH, check common install locations
|
|
98
|
+
if (!binaryPath) {
|
|
99
|
+
for (const candidate of commonPaths) {
|
|
100
|
+
try {
|
|
101
|
+
await fs_1.promises.access(candidate, IS_WINDOWS ? fsSync.constants.F_OK : fsSync.constants.X_OK);
|
|
102
|
+
binaryPath = candidate;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Not found at this path
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Update cache (even if undefined, to avoid repeated failed lookups)
|
|
111
|
+
binaryCache.set(name, { path: binaryPath, timestamp: now });
|
|
112
|
+
return binaryPath;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get common install paths for a binary based on platform.
|
|
116
|
+
*
|
|
117
|
+
* @param name - Binary name
|
|
118
|
+
* @returns Array of common paths to check
|
|
119
|
+
*/
|
|
120
|
+
function getCommonBinaryPaths(name) {
|
|
121
|
+
const home = os.homedir();
|
|
122
|
+
const bin = IS_WINDOWS ? `${name}.cmd` : name;
|
|
123
|
+
if (IS_WINDOWS) {
|
|
124
|
+
const localAppData = process.env.LOCALAPPDATA || path.join(home, 'AppData', 'Local');
|
|
125
|
+
return [
|
|
126
|
+
path.join(localAppData, 'AgentHippo', 'bin', bin), // Agent Anywhere managed wrapper
|
|
127
|
+
path.join(home, 'AppData', 'Local', 'Programs', name, `${name}.exe`), // zip bundle installer default
|
|
128
|
+
path.join(home, 'AppData', 'Roaming', 'npm', bin), // npm global (Windows)
|
|
129
|
+
path.join(home, 'AppData', 'Local', 'pnpm', bin), // pnpm global (Windows)
|
|
130
|
+
path.join(home, '.npm-global', bin), // npm global custom prefix
|
|
131
|
+
];
|
|
132
|
+
}
|
|
133
|
+
const paths = [
|
|
134
|
+
path.join(home, '.local', 'bin', name), // Agent Anywhere managed wrapper
|
|
135
|
+
path.join(home, 'Library', 'pnpm', name), // pnpm global (macOS)
|
|
136
|
+
path.join(home, '.local', 'share', 'pnpm', name), // pnpm global (Linux)
|
|
137
|
+
path.join(home, '.npm-global', 'bin', name), // npm global custom
|
|
138
|
+
'/opt/homebrew/bin/' + name, // Homebrew (Apple Silicon)
|
|
139
|
+
'/usr/local/bin/' + name, // Homebrew (Intel) / manual
|
|
140
|
+
'/usr/bin/' + name, // System install
|
|
141
|
+
];
|
|
142
|
+
// VS Code's extension host often lacks nvm/fnm on PATH; scan common Node version managers.
|
|
143
|
+
const nvmDir = process.env.NVM_DIR || path.join(home, '.nvm');
|
|
144
|
+
const nvmVersionsDir = path.join(nvmDir, 'versions', 'node');
|
|
145
|
+
if (fsSync.existsSync(nvmVersionsDir)) {
|
|
146
|
+
try {
|
|
147
|
+
const versions = fsSync
|
|
148
|
+
.readdirSync(nvmVersionsDir, { withFileTypes: true })
|
|
149
|
+
.filter((d) => d.isDirectory())
|
|
150
|
+
.map((d) => d.name)
|
|
151
|
+
.sort()
|
|
152
|
+
.reverse();
|
|
153
|
+
for (const version of versions) {
|
|
154
|
+
paths.push(path.join(nvmVersionsDir, version, 'bin', name));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// ignore nvm directory read errors
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return paths;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Clear the binary cache (useful for testing or after install).
|
|
165
|
+
*
|
|
166
|
+
* @param name - Optional binary name to clear; if omitted, clears all
|
|
167
|
+
*/
|
|
168
|
+
function clearBinaryCache(name) {
|
|
169
|
+
if (name) {
|
|
170
|
+
binaryCache.delete(name);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
binaryCache.clear();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Shared Utilities Index
|
|
4
|
+
*
|
|
5
|
+
* Re-exports all shared utilities for convenient imports.
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.prependPathDir = exports.getNodeBinaryCandidates = exports.resolveNodeBinary = exports.clearBinaryCache = exports.getCommonBinaryPaths = exports.findBinaryCached = exports.findBinary = exports.probePort = exports.DIRS = exports.PID_FILES = exports.getAnalyticsScriptsDir = exports.getAgentidePath = exports.getAgentideHome = exports.checkPidFileWithCleanup = exports.removePidFile = exports.writePidFile = exports.readPidFile = exports.isPidFileProcessRunning = exports.isProcessRunningAsync = exports.isProcessRunning = void 0;
|
|
9
|
+
// PID file utilities (fast process status checks)
|
|
10
|
+
var pid_1 = require("./pid");
|
|
11
|
+
Object.defineProperty(exports, "isProcessRunning", { enumerable: true, get: function () { return pid_1.isProcessRunning; } });
|
|
12
|
+
Object.defineProperty(exports, "isProcessRunningAsync", { enumerable: true, get: function () { return pid_1.isProcessRunningAsync; } });
|
|
13
|
+
Object.defineProperty(exports, "isPidFileProcessRunning", { enumerable: true, get: function () { return pid_1.isPidFileProcessRunning; } });
|
|
14
|
+
Object.defineProperty(exports, "readPidFile", { enumerable: true, get: function () { return pid_1.readPidFile; } });
|
|
15
|
+
Object.defineProperty(exports, "writePidFile", { enumerable: true, get: function () { return pid_1.writePidFile; } });
|
|
16
|
+
Object.defineProperty(exports, "removePidFile", { enumerable: true, get: function () { return pid_1.removePidFile; } });
|
|
17
|
+
Object.defineProperty(exports, "checkPidFileWithCleanup", { enumerable: true, get: function () { return pid_1.checkPidFileWithCleanup; } });
|
|
18
|
+
// Path utilities (consistent directory structure)
|
|
19
|
+
var paths_1 = require("./paths");
|
|
20
|
+
Object.defineProperty(exports, "getAgentideHome", { enumerable: true, get: function () { return paths_1.getAgentideHome; } });
|
|
21
|
+
Object.defineProperty(exports, "getAgentidePath", { enumerable: true, get: function () { return paths_1.getAgentidePath; } });
|
|
22
|
+
Object.defineProperty(exports, "getAnalyticsScriptsDir", { enumerable: true, get: function () { return paths_1.getAnalyticsScriptsDir; } });
|
|
23
|
+
Object.defineProperty(exports, "PID_FILES", { enumerable: true, get: function () { return paths_1.PID_FILES; } });
|
|
24
|
+
Object.defineProperty(exports, "DIRS", { enumerable: true, get: function () { return paths_1.DIRS; } });
|
|
25
|
+
// Network utilities (port probing)
|
|
26
|
+
var network_1 = require("./network");
|
|
27
|
+
Object.defineProperty(exports, "probePort", { enumerable: true, get: function () { return network_1.probePort; } });
|
|
28
|
+
// Binary utilities (finding binaries with caching)
|
|
29
|
+
var binary_1 = require("./binary");
|
|
30
|
+
Object.defineProperty(exports, "findBinary", { enumerable: true, get: function () { return binary_1.findBinary; } });
|
|
31
|
+
Object.defineProperty(exports, "findBinaryCached", { enumerable: true, get: function () { return binary_1.findBinaryCached; } });
|
|
32
|
+
Object.defineProperty(exports, "getCommonBinaryPaths", { enumerable: true, get: function () { return binary_1.getCommonBinaryPaths; } });
|
|
33
|
+
Object.defineProperty(exports, "clearBinaryCache", { enumerable: true, get: function () { return binary_1.clearBinaryCache; } });
|
|
34
|
+
var resolveNodeBinary_1 = require("./resolveNodeBinary");
|
|
35
|
+
Object.defineProperty(exports, "resolveNodeBinary", { enumerable: true, get: function () { return resolveNodeBinary_1.resolveNodeBinary; } });
|
|
36
|
+
Object.defineProperty(exports, "getNodeBinaryCandidates", { enumerable: true, get: function () { return resolveNodeBinary_1.getNodeBinaryCandidates; } });
|
|
37
|
+
Object.defineProperty(exports, "prependPathDir", { enumerable: true, get: function () { return resolveNodeBinary_1.prependPathDir; } });
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Network Utilities
|
|
4
|
+
*
|
|
5
|
+
* Shared utilities for network operations like port probing.
|
|
6
|
+
* Cost: ~50-100ms for connection attempts vs shell commands.
|
|
7
|
+
*
|
|
8
|
+
* Used by:
|
|
9
|
+
* - Gateway lifecycle manager (Agent Anywhere)
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.probePort = probePort;
|
|
46
|
+
const net = __importStar(require("net"));
|
|
47
|
+
/**
|
|
48
|
+
* Check if a port is in use (service is likely running there).
|
|
49
|
+
* Uses a TCP socket connection attempt with timeout.
|
|
50
|
+
*
|
|
51
|
+
* @param port - Port number to check
|
|
52
|
+
* @param host - Host to check (default: 127.0.0.1)
|
|
53
|
+
* @param timeout - Connection timeout in ms (default: 2000)
|
|
54
|
+
* @returns true if port is open (service is listening)
|
|
55
|
+
*/
|
|
56
|
+
function probePort(port, host = '127.0.0.1', timeout = 2_000) {
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
const socket = new net.Socket();
|
|
59
|
+
socket.setTimeout(timeout);
|
|
60
|
+
socket.once('connect', () => {
|
|
61
|
+
socket.destroy();
|
|
62
|
+
resolve(true);
|
|
63
|
+
});
|
|
64
|
+
socket.once('timeout', () => {
|
|
65
|
+
socket.destroy();
|
|
66
|
+
resolve(false);
|
|
67
|
+
});
|
|
68
|
+
socket.once('error', () => {
|
|
69
|
+
socket.destroy();
|
|
70
|
+
resolve(false);
|
|
71
|
+
});
|
|
72
|
+
socket.connect(port, host);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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.isPathUnderRoot = isPathUnderRoot;
|
|
40
|
+
exports.isPathUnderAnyRoot = isPathUnderAnyRoot;
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
/**
|
|
43
|
+
* True when {@link candidate} resolves to {@link root} or a path under it (no `..` escape).
|
|
44
|
+
*/
|
|
45
|
+
function isPathUnderRoot(root, candidate) {
|
|
46
|
+
try {
|
|
47
|
+
const parentNorm = path.resolve(root);
|
|
48
|
+
const candidateNorm = path.resolve(candidate);
|
|
49
|
+
const rel = path.relative(parentNorm, candidateNorm);
|
|
50
|
+
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** True when {@link candidate} is under at least one of {@link roots}. */
|
|
57
|
+
function isPathUnderAnyRoot(roots, candidate) {
|
|
58
|
+
const normalized = path.resolve(candidate);
|
|
59
|
+
return roots.some(root => isPathUnderRoot(root, normalized));
|
|
60
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Shared Path Utilities
|
|
4
|
+
*
|
|
5
|
+
* Common path resolution for AgentIDE services.
|
|
6
|
+
* All services should use these helpers to ensure consistent directory structure.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.DIRS = exports.PID_FILES = void 0;
|
|
43
|
+
exports.getAgentideHome = getAgentideHome;
|
|
44
|
+
exports.getAgentidePath = getAgentidePath;
|
|
45
|
+
exports.getAnalyticsScriptsDir = getAnalyticsScriptsDir;
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const os = __importStar(require("os"));
|
|
48
|
+
const branding_1 = require("../branding");
|
|
49
|
+
/**
|
|
50
|
+
* Get the AgentIDE home directory (~/.agent-hippo or similar based on branding).
|
|
51
|
+
*/
|
|
52
|
+
function getAgentideHome() {
|
|
53
|
+
const envOverride = process.env.AGENT_HOME_DIR
|
|
54
|
+
|| process.env.AGENTHIPPO_HOME;
|
|
55
|
+
if (envOverride?.trim()) {
|
|
56
|
+
return envOverride.trim();
|
|
57
|
+
}
|
|
58
|
+
return path.join(os.homedir(), branding_1.AGENTIDE_DIR_NAME);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get a path within the AgentIDE home directory.
|
|
62
|
+
* @param segments - Path segments relative to the home directory
|
|
63
|
+
*/
|
|
64
|
+
function getAgentidePath(...segments) {
|
|
65
|
+
return path.join(getAgentideHome(), ...segments);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Common PID file paths for AgentIDE services.
|
|
69
|
+
*/
|
|
70
|
+
exports.PID_FILES = {
|
|
71
|
+
/** Gateway PID file */
|
|
72
|
+
gateway: () => getAgentidePath('gateway.pid'),
|
|
73
|
+
/** LiteLLM PID file */
|
|
74
|
+
litellm: () => getAgentidePath('litellm.pid'),
|
|
75
|
+
/** OTEL Collector PID file */
|
|
76
|
+
otelcol: () => getAgentidePath('analytics', 'otelcol.pid'),
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Common directory paths for AgentIDE services.
|
|
80
|
+
*/
|
|
81
|
+
exports.DIRS = {
|
|
82
|
+
/** Analytics directory */
|
|
83
|
+
analytics: () => getAgentidePath('analytics'),
|
|
84
|
+
/** Credentials directory */
|
|
85
|
+
credentials: () => getAgentidePath('credentials'),
|
|
86
|
+
/** Sessions directory */
|
|
87
|
+
sessions: () => getAgentidePath('sessions'),
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Get the analytics scripts directory from the extension path.
|
|
91
|
+
* Tries bundled location (out/scripts/analytics) first, then dev location (scripts/analytics).
|
|
92
|
+
* Returns the bundled path by default (callers should verify existence).
|
|
93
|
+
*/
|
|
94
|
+
function getAnalyticsScriptsDir(extensionPath) {
|
|
95
|
+
const fs = require('fs');
|
|
96
|
+
const bundledPath = path.join(extensionPath, 'out', 'scripts', 'analytics');
|
|
97
|
+
const devPath = path.join(extensionPath, 'scripts', 'analytics');
|
|
98
|
+
// Check bundled location first (production)
|
|
99
|
+
try {
|
|
100
|
+
fs.accessSync(bundledPath);
|
|
101
|
+
return bundledPath;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// Not in bundled location
|
|
105
|
+
}
|
|
106
|
+
// Check dev location
|
|
107
|
+
try {
|
|
108
|
+
fs.accessSync(devPath);
|
|
109
|
+
return devPath;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Not in dev location
|
|
113
|
+
}
|
|
114
|
+
// Default to bundled path (scripts may not be installed yet)
|
|
115
|
+
return bundledPath;
|
|
116
|
+
}
|