@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,251 @@
|
|
|
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
|
+
/**
|
|
40
|
+
* Sync Switch Tests
|
|
41
|
+
*
|
|
42
|
+
* Tests for switching between agents and verifying derived directory content updates.
|
|
43
|
+
* These tests verify that switchToPack correctly syncs the target agent's content to
|
|
44
|
+
* the workspace-root .claude/ and .codex/ directories.
|
|
45
|
+
*/
|
|
46
|
+
require("mocha");
|
|
47
|
+
const assert = __importStar(require("assert"));
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const os = __importStar(require("os"));
|
|
51
|
+
const paths_1 = require("../agentpack/paths");
|
|
52
|
+
const manifest_fixtures_1 = require("./helpers/manifest-fixtures");
|
|
53
|
+
// Shim vscode module for SyncService
|
|
54
|
+
const Module = require('module');
|
|
55
|
+
const originalRequire = Module.prototype.require;
|
|
56
|
+
const fakeVscode = {
|
|
57
|
+
window: {
|
|
58
|
+
showInformationMessage: () => undefined,
|
|
59
|
+
showErrorMessage: () => undefined,
|
|
60
|
+
},
|
|
61
|
+
workspace: {
|
|
62
|
+
getConfiguration: () => ({
|
|
63
|
+
get: (_key, defaultValue) => defaultValue,
|
|
64
|
+
inspect: (_key) => undefined,
|
|
65
|
+
}),
|
|
66
|
+
fs: {
|
|
67
|
+
stat: async () => ({ type: 1 }), // FileType.File
|
|
68
|
+
readDirectory: async () => [],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
commands: {
|
|
72
|
+
executeCommand: async () => undefined,
|
|
73
|
+
},
|
|
74
|
+
Uri: {
|
|
75
|
+
file: (p) => ({ fsPath: p, scheme: 'file' }),
|
|
76
|
+
},
|
|
77
|
+
FileType: {
|
|
78
|
+
File: 1,
|
|
79
|
+
Directory: 2,
|
|
80
|
+
SymbolicLink: 64,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
Module.prototype.require = function (request) {
|
|
84
|
+
if (request === 'vscode') {
|
|
85
|
+
return fakeVscode;
|
|
86
|
+
}
|
|
87
|
+
return originalRequire.apply(this, arguments);
|
|
88
|
+
};
|
|
89
|
+
// Dynamic imports after stubbing vscode
|
|
90
|
+
const { SyncService } = require('../sync');
|
|
91
|
+
// -------------------------------------------------------------------------
|
|
92
|
+
// Helper Functions
|
|
93
|
+
// -------------------------------------------------------------------------
|
|
94
|
+
function makeTempWorkspace() {
|
|
95
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), 'agentide-sync-test-'));
|
|
96
|
+
}
|
|
97
|
+
function createOutputChannel() {
|
|
98
|
+
const lines = [];
|
|
99
|
+
return {
|
|
100
|
+
lines,
|
|
101
|
+
appendLine: (msg) => {
|
|
102
|
+
lines.push(msg);
|
|
103
|
+
if (process.env.DEBUG_SYNC_TEST) {
|
|
104
|
+
console.log(msg);
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
show: () => { },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function setupAgent(workspaceRoot, agentId, agentsContent) {
|
|
111
|
+
const agentRoot = path.join(workspaceRoot, paths_1.AGENT_CONSTANTS.AGENTIDE_DIR_NAME, 'agents', agentId);
|
|
112
|
+
fs.mkdirSync(agentRoot, { recursive: true });
|
|
113
|
+
// Write AGENTS.md with unique content for this agent
|
|
114
|
+
fs.writeFileSync(path.join(agentRoot, 'AGENTS.md'), agentsContent, 'utf8');
|
|
115
|
+
// Write minimal agent.yaml
|
|
116
|
+
const agentYaml = (0, manifest_fixtures_1.createTestAgentYaml)({
|
|
117
|
+
name: agentId,
|
|
118
|
+
version: '0.1.0',
|
|
119
|
+
engine: 'claude',
|
|
120
|
+
model: 'claude-sonnet-4-20250514',
|
|
121
|
+
});
|
|
122
|
+
fs.writeFileSync(path.join(agentRoot, 'agent.yaml'), agentYaml, 'utf8');
|
|
123
|
+
}
|
|
124
|
+
function readDerivedRulesContent(workspaceRoot, engineDir, rulesFile) {
|
|
125
|
+
const filePath = path.join(workspaceRoot, engineDir, rulesFile);
|
|
126
|
+
try {
|
|
127
|
+
return fs.readFileSync(filePath, 'utf8');
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function cleanupWorkspace(workspaceRoot) {
|
|
134
|
+
try {
|
|
135
|
+
fs.rmSync(workspaceRoot, { recursive: true, force: true });
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// ignore cleanup errors
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// -------------------------------------------------------------------------
|
|
142
|
+
// Tests
|
|
143
|
+
// -------------------------------------------------------------------------
|
|
144
|
+
suite('SyncService switchToPack', () => {
|
|
145
|
+
let workspaceRoot;
|
|
146
|
+
let syncService;
|
|
147
|
+
let outputChannel;
|
|
148
|
+
const PACK_ID = 'test-pack';
|
|
149
|
+
const PACK_CONTENT = '# Test Pack Agent\n\nThis is the TEST PACK content.\n';
|
|
150
|
+
const DEFAULT_CONTENT = '# Default Agent\n\nThis is the DEFAULT content.\n';
|
|
151
|
+
setup(() => {
|
|
152
|
+
workspaceRoot = makeTempWorkspace();
|
|
153
|
+
syncService = new SyncService();
|
|
154
|
+
outputChannel = createOutputChannel();
|
|
155
|
+
// Set up both the pack and default agent
|
|
156
|
+
setupAgent(workspaceRoot, PACK_ID, PACK_CONTENT);
|
|
157
|
+
setupAgent(workspaceRoot, 'default', DEFAULT_CONTENT);
|
|
158
|
+
});
|
|
159
|
+
teardown(() => {
|
|
160
|
+
cleanupWorkspace(workspaceRoot);
|
|
161
|
+
});
|
|
162
|
+
test('switching to pack syncs pack content to derived directories', async () => {
|
|
163
|
+
// Switch to the pack
|
|
164
|
+
const result = await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
165
|
+
// Verify return value
|
|
166
|
+
assert.strictEqual(result, PACK_ID, 'switchToPack should return the pack ID');
|
|
167
|
+
// Verify .claude/CLAUDE.md has pack content
|
|
168
|
+
const claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
169
|
+
assert.ok(claudeContent, '.claude/CLAUDE.md should exist');
|
|
170
|
+
assert.ok(claudeContent.includes('TEST PACK'), '.claude/CLAUDE.md should contain pack content');
|
|
171
|
+
assert.ok(!claudeContent.includes('DEFAULT'), '.claude/CLAUDE.md should NOT contain default content');
|
|
172
|
+
// Verify .codex/AGENTS.md has pack content
|
|
173
|
+
const codexContent = readDerivedRulesContent(workspaceRoot, '.codex', 'AGENTS.md');
|
|
174
|
+
assert.ok(codexContent, '.codex/AGENTS.md should exist');
|
|
175
|
+
assert.ok(codexContent.includes('TEST PACK'), '.codex/AGENTS.md should contain pack content');
|
|
176
|
+
});
|
|
177
|
+
test('switching to default syncs default content to derived directories', async () => {
|
|
178
|
+
// First switch to the pack
|
|
179
|
+
await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
180
|
+
// Verify pack content is there
|
|
181
|
+
let claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
182
|
+
assert.ok(claudeContent?.includes('TEST PACK'), 'Should have pack content before switching');
|
|
183
|
+
// Now switch to default
|
|
184
|
+
const result = await syncService.switchToPack(workspaceRoot, 'default', outputChannel);
|
|
185
|
+
// Verify return value
|
|
186
|
+
assert.strictEqual(result, undefined, 'switchToPack with default should return undefined');
|
|
187
|
+
// Verify .claude/CLAUDE.md now has DEFAULT content
|
|
188
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
189
|
+
assert.ok(claudeContent, '.claude/CLAUDE.md should exist after switch');
|
|
190
|
+
assert.ok(claudeContent.includes('DEFAULT'), '.claude/CLAUDE.md should contain default content');
|
|
191
|
+
assert.ok(!claudeContent.includes('TEST PACK'), '.claude/CLAUDE.md should NOT contain pack content anymore');
|
|
192
|
+
// Verify .codex/AGENTS.md has default content
|
|
193
|
+
const codexContent = readDerivedRulesContent(workspaceRoot, '.codex', 'AGENTS.md');
|
|
194
|
+
assert.ok(codexContent, '.codex/AGENTS.md should exist');
|
|
195
|
+
assert.ok(codexContent.includes('DEFAULT'), '.codex/AGENTS.md should contain default content');
|
|
196
|
+
assert.ok(!codexContent.includes('TEST PACK'), '.codex/AGENTS.md should NOT contain pack content');
|
|
197
|
+
});
|
|
198
|
+
test('switching to undefined syncs default content (same as "default")', async () => {
|
|
199
|
+
// First switch to the pack
|
|
200
|
+
await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
201
|
+
// Verify pack content is there
|
|
202
|
+
let claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
203
|
+
assert.ok(claudeContent?.includes('TEST PACK'), 'Should have pack content before switching');
|
|
204
|
+
// Switch to undefined (should behave like 'default')
|
|
205
|
+
const result = await syncService.switchToPack(workspaceRoot, undefined, outputChannel);
|
|
206
|
+
// Verify return value
|
|
207
|
+
assert.strictEqual(result, undefined, 'switchToPack with undefined should return undefined');
|
|
208
|
+
// Verify .claude/CLAUDE.md now has DEFAULT content
|
|
209
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
210
|
+
assert.ok(claudeContent, '.claude/CLAUDE.md should exist after switch');
|
|
211
|
+
assert.ok(claudeContent.includes('DEFAULT'), '.claude/CLAUDE.md should contain default content');
|
|
212
|
+
assert.ok(!claudeContent.includes('TEST PACK'), '.claude/CLAUDE.md should NOT contain pack content');
|
|
213
|
+
});
|
|
214
|
+
test('multiple switches correctly update derived directories each time', async () => {
|
|
215
|
+
// Switch to pack
|
|
216
|
+
await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
217
|
+
let claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
218
|
+
assert.ok(claudeContent?.includes('TEST PACK'), 'First switch: should have pack content');
|
|
219
|
+
// Switch to default
|
|
220
|
+
await syncService.switchToPack(workspaceRoot, 'default', outputChannel);
|
|
221
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
222
|
+
assert.ok(claudeContent?.includes('DEFAULT'), 'Second switch: should have default content');
|
|
223
|
+
assert.ok(!claudeContent?.includes('TEST PACK'), 'Second switch: should NOT have pack content');
|
|
224
|
+
// Switch back to pack
|
|
225
|
+
await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
226
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
227
|
+
assert.ok(claudeContent?.includes('TEST PACK'), 'Third switch: should have pack content again');
|
|
228
|
+
assert.ok(!claudeContent?.includes('DEFAULT'), 'Third switch: should NOT have default content');
|
|
229
|
+
// Switch back to default one more time
|
|
230
|
+
await syncService.switchToPack(workspaceRoot, 'default', outputChannel);
|
|
231
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
232
|
+
assert.ok(claudeContent?.includes('DEFAULT'), 'Fourth switch: should have default content again');
|
|
233
|
+
});
|
|
234
|
+
test('switching to non-existent pack falls back to default', async () => {
|
|
235
|
+
// First set up pack content
|
|
236
|
+
await syncService.switchToPack(workspaceRoot, PACK_ID, outputChannel);
|
|
237
|
+
let claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
238
|
+
assert.ok(claudeContent?.includes('TEST PACK'), 'Should have pack content initially');
|
|
239
|
+
// Try to switch to a non-existent pack
|
|
240
|
+
const result = await syncService.switchToPack(workspaceRoot, 'non-existent-pack', outputChannel);
|
|
241
|
+
// Should fall back to default
|
|
242
|
+
assert.strictEqual(result, undefined, 'Should return undefined when falling back to default');
|
|
243
|
+
// Should have default content
|
|
244
|
+
claudeContent = readDerivedRulesContent(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
245
|
+
assert.ok(claudeContent?.includes('DEFAULT'), 'Should fall back to default content');
|
|
246
|
+
assert.ok(!claudeContent?.includes('TEST PACK'), 'Should NOT have pack content after fallback');
|
|
247
|
+
// Verify warning was logged
|
|
248
|
+
const hasWarning = outputChannel.lines.some(line => line.includes('Warning') && line.includes('non-existent-pack'));
|
|
249
|
+
assert.ok(hasWarning, 'Should log warning about non-existent pack');
|
|
250
|
+
});
|
|
251
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
require("mocha");
|
|
40
|
+
const assert = __importStar(require("assert"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const teamViewDiscovery_1 = require("../analytics/dashboard/teamViewDiscovery");
|
|
45
|
+
suite('teamViewDiscovery', () => {
|
|
46
|
+
let tempDir;
|
|
47
|
+
suiteSetup(async () => {
|
|
48
|
+
tempDir = await fs_1.promises.mkdtemp(path.join(os.tmpdir(), 'agentide-team-discovery-'));
|
|
49
|
+
});
|
|
50
|
+
suiteTeardown(async () => {
|
|
51
|
+
await fs_1.promises.rm(tempDir, { recursive: true, force: true });
|
|
52
|
+
});
|
|
53
|
+
test('discovers views whose view.yaml includes the team or fleet tag', async () => {
|
|
54
|
+
const root = path.join(tempDir, 'analytics');
|
|
55
|
+
const viewsDir = path.join(root, 'views');
|
|
56
|
+
await fs_1.promises.mkdir(path.join(viewsDir, 'live-fleet-2', 'scripts'), { recursive: true });
|
|
57
|
+
await fs_1.promises.mkdir(path.join(viewsDir, 'other-view', 'scripts'), { recursive: true });
|
|
58
|
+
await fs_1.promises.writeFile(path.join(viewsDir, 'live-fleet-2', 'view.yaml'), `id: live-fleet-2\nname: Live Fleet 2\nscope: global\ntags: [fleet, ${teamViewDiscovery_1.TEAM_VIEW_TAG}]\nscripts: [live-fleet-2-widget.cjs]\n`, 'utf-8');
|
|
59
|
+
await fs_1.promises.writeFile(path.join(viewsDir, 'other-view', 'view.yaml'), `id: other-view\nname: Other\nscope: global\ntags: [spotlight]\nscripts: [other.js]\n`, 'utf-8');
|
|
60
|
+
const discovered = await (0, teamViewDiscovery_1.discoverTeamTaggedViews)([root]);
|
|
61
|
+
assert.strictEqual(discovered.length, 1);
|
|
62
|
+
assert.strictEqual(discovered[0]?.id, 'live-fleet-2');
|
|
63
|
+
assert.strictEqual(discovered[0]?.name, 'Live Fleet 2');
|
|
64
|
+
});
|
|
65
|
+
test('discovers views tagged fleet without team', async () => {
|
|
66
|
+
const root = path.join(tempDir, 'fleet-only');
|
|
67
|
+
const viewsDir = path.join(root, 'views', 'live-fleet-2');
|
|
68
|
+
await fs_1.promises.mkdir(viewsDir, { recursive: true });
|
|
69
|
+
await fs_1.promises.writeFile(path.join(viewsDir, 'view.yaml'), `id: live-fleet-2\nname: Live Fleet 2\nscope: global\ntags: [${teamViewDiscovery_1.FLEET_VIEW_TAG}, spotlight]\nscripts: [live-fleet-2-widget.cjs]\n`, 'utf-8');
|
|
70
|
+
const discovered = await (0, teamViewDiscovery_1.discoverTeamTaggedViews)([root]);
|
|
71
|
+
assert.strictEqual(discovered.length, 1);
|
|
72
|
+
assert.strictEqual(discovered[0]?.id, 'live-fleet-2');
|
|
73
|
+
});
|
|
74
|
+
test('workspace-scoped view overrides global entry with the same id', async () => {
|
|
75
|
+
const globalRoot = path.join(tempDir, 'global-analytics');
|
|
76
|
+
const workspaceRoot = path.join(tempDir, 'workspace-analytics');
|
|
77
|
+
for (const [root, scope, name] of [
|
|
78
|
+
[globalRoot, 'global', 'Global Name'],
|
|
79
|
+
[workspaceRoot, 'workspace', 'Workspace Name'],
|
|
80
|
+
]) {
|
|
81
|
+
const viewsDir = path.join(root, 'views', 'shared-fleet');
|
|
82
|
+
await fs_1.promises.mkdir(viewsDir, { recursive: true });
|
|
83
|
+
await fs_1.promises.writeFile(path.join(viewsDir, 'view.yaml'), `id: shared-fleet\nname: ${name}\nscope: ${scope}\ntags: [${teamViewDiscovery_1.TEAM_VIEW_TAG}]\nscripts: [${scope}-widget.js]\n`, 'utf-8');
|
|
84
|
+
}
|
|
85
|
+
const discovered = await (0, teamViewDiscovery_1.discoverTeamTaggedViews)([globalRoot, workspaceRoot]);
|
|
86
|
+
assert.strictEqual(discovered.length, 1);
|
|
87
|
+
assert.strictEqual(discovered[0]?.scope, 'workspace');
|
|
88
|
+
assert.strictEqual(discovered[0]?.name, 'Workspace Name');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Tool Path Test Suite
|
|
4
|
+
*
|
|
5
|
+
* Tests for augmentPathForTools() and the env-spread invariant in dashboard provider.
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
require("mocha");
|
|
42
|
+
const assert = __importStar(require("assert"));
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const toolPath_1 = require("../utils/toolPath");
|
|
47
|
+
suite('augmentPathForTools', () => {
|
|
48
|
+
const sep = path.delimiter;
|
|
49
|
+
const home = os.homedir();
|
|
50
|
+
test('prepends candidate dirs not already in PATH', () => {
|
|
51
|
+
const result = (0, toolPath_1.augmentPathForTools)('/usr/bin');
|
|
52
|
+
const parts = result.split(sep);
|
|
53
|
+
assert.strictEqual(parts[parts.length - 1], '/usr/bin', 'original PATH stays at the end');
|
|
54
|
+
assert.ok(parts.length > 1, 'at least one candidate dir was prepended');
|
|
55
|
+
});
|
|
56
|
+
test('does not duplicate dirs already present in PATH', () => {
|
|
57
|
+
const localBin = path.join(home, '.local', 'bin');
|
|
58
|
+
const input = `${localBin}${sep}/usr/bin`;
|
|
59
|
+
const result = (0, toolPath_1.augmentPathForTools)(input);
|
|
60
|
+
const occurrences = result.split(sep).filter(p => p === localBin).length;
|
|
61
|
+
assert.strictEqual(occurrences, 1, '~/.local/bin should appear exactly once');
|
|
62
|
+
});
|
|
63
|
+
test('handles empty PATH without leading delimiter', () => {
|
|
64
|
+
const result = (0, toolPath_1.augmentPathForTools)('');
|
|
65
|
+
assert.ok(!result.startsWith(sep), 'no leading delimiter when input is empty');
|
|
66
|
+
assert.ok(result.length > 0, 'returns at least one candidate dir');
|
|
67
|
+
});
|
|
68
|
+
test('returns input unchanged when all candidates already present', () => {
|
|
69
|
+
// Build a PATH that contains every candidate dir we'd add.
|
|
70
|
+
const augmented = (0, toolPath_1.augmentPathForTools)('');
|
|
71
|
+
const result = (0, toolPath_1.augmentPathForTools)(augmented);
|
|
72
|
+
assert.strictEqual(result, augmented, 'no-op when candidates are all already present');
|
|
73
|
+
});
|
|
74
|
+
test('uses platform-correct delimiter', () => {
|
|
75
|
+
const result = (0, toolPath_1.augmentPathForTools)(`a${sep}b`);
|
|
76
|
+
// Result must be parseable with the same separator.
|
|
77
|
+
const parts = result.split(sep);
|
|
78
|
+
assert.ok(parts.includes('a') && parts.includes('b'), 'original entries survive split');
|
|
79
|
+
});
|
|
80
|
+
test('candidate list matches platform', () => {
|
|
81
|
+
const result = (0, toolPath_1.augmentPathForTools)('');
|
|
82
|
+
const parts = result.split(sep);
|
|
83
|
+
if (process.platform === 'win32') {
|
|
84
|
+
assert.ok(parts.some(p => p.toLowerCase().includes('winget') || p.toLowerCase().includes('scoop') || p.endsWith('uv')), 'windows candidate list should include winget/scoop/uv-specific dirs');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
assert.ok(parts.includes('/opt/homebrew/bin') || parts.includes('/usr/local/bin'), 'unix candidate list should include Homebrew dirs');
|
|
88
|
+
assert.ok(parts.some(p => p === path.join(home, '.local', 'bin')), 'unix candidate list should include ~/.local/bin');
|
|
89
|
+
assert.ok(parts.some(p => p === path.join(home, '.uv', 'bin')), 'unix candidate list should include ~/.uv/bin (uv self-install)');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
// =============================================================================
|
|
94
|
+
// Regression guard: dashboard provider must spread process.env when building
|
|
95
|
+
// the script environment. If env is set without the spread, child Python
|
|
96
|
+
// processes lose HOME/USER/locale/etc. and break in subtle ways.
|
|
97
|
+
// =============================================================================
|
|
98
|
+
suite('dashboard provider env spread (regression guard)', () => {
|
|
99
|
+
// Tests run from out/test, so walk up to extension root then into src/.
|
|
100
|
+
const extensionRoot = path.resolve(__dirname, '..', '..');
|
|
101
|
+
const providerPath = path.join(extensionRoot, 'src', 'analytics', 'dashboard', 'provider.ts');
|
|
102
|
+
const indexingPath = path.join(extensionRoot, 'src', 'analytics', 'dashboard', 'indexingService.ts');
|
|
103
|
+
test('provider.ts buildScriptEnvironment spreads process.env', () => {
|
|
104
|
+
const src = fs.readFileSync(providerPath, 'utf8');
|
|
105
|
+
const builderIdx = src.indexOf('buildScriptEnvironment');
|
|
106
|
+
assert.ok(builderIdx >= 0, 'buildScriptEnvironment must exist in provider.ts');
|
|
107
|
+
// Look at the ~120 lines following the declaration for the env return.
|
|
108
|
+
const window = src.slice(builderIdx, builderIdx + 6000);
|
|
109
|
+
assert.ok(/\.\.\.process\.env/.test(window), 'buildScriptEnvironment must spread process.env so children inherit HOME/USER/locale');
|
|
110
|
+
assert.ok(/augmentPathForTools\(/.test(window), 'buildScriptEnvironment must augment PATH via augmentPathForTools');
|
|
111
|
+
});
|
|
112
|
+
test('indexingService.ts indexing subprocess spreads process.env', () => {
|
|
113
|
+
const src = fs.readFileSync(indexingPath, 'utf8');
|
|
114
|
+
// Find the env: { ... } block and confirm it spreads process.env + augments PATH.
|
|
115
|
+
const envBlock = /env:\s*\{[\s\S]{0,400}?\}/m.exec(src);
|
|
116
|
+
assert.ok(envBlock, 'indexingService should set env on the indexing subprocess');
|
|
117
|
+
assert.ok(/\.\.\.\(?\s*process\.env/.test(envBlock[0]), 'indexing subprocess env must spread process.env');
|
|
118
|
+
assert.ok(/augmentPathForTools\(/.test(envBlock[0]), 'indexing subprocess env must augment PATH via augmentPathForTools');
|
|
119
|
+
});
|
|
120
|
+
});
|