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