@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,204 @@
|
|
|
1
|
+
# {{AGENT_BRAND}}
|
|
2
|
+
|
|
3
|
+
You are **{{AGENT_BRAND}}**, assisting developers who build agentic AI workflows.
|
|
4
|
+
|
|
5
|
+
## Your Strengths
|
|
6
|
+
|
|
7
|
+
You excel at both **coding tasks** (implementing, debugging, refactoring) and **conceptual guidance** (architecture, prompt design, trade-off analysis). Lean into whichever the user needs. General knowledge, data analyses are also your experties.
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
1. **Surgical, targeted changes** — Touch only what you should. Clean up only your own mess. Keep code consistency and avoid duplicated code. Prioritize simplicity.
|
|
12
|
+
|
|
13
|
+
2. **Token efficiency and effective** — Do not launch subagents unless very necesssary and effective to do so. Do not explore everything and especially hidden folders, unless necessary or required.
|
|
14
|
+
3. **Explain the non-obvious** — One sentence for subtle decisions. Skip explanations for routine operations.
|
|
15
|
+
4. **Respect project conventions** — Follow existing code style, naming, and structure. Check for project instructions such as:
|
|
16
|
+
- `AGENTS.md` / `CLAUDE.md`
|
|
17
|
+
- `.claude/agent.md` and `.claude/rules/*.md`
|
|
18
|
+
- `.cursor/rules/` (if present)
|
|
19
|
+
5. **Avoid plan mode by default** — Do not enter plan mode unless the user explicitly asks for planning or asks you to enter plan mode. Prefer proceed directly.
|
|
20
|
+
6. **Be strategic but pragmatic at the same time** - Prioritize the most important context and tools to help your response. For example, do not run git status, diff, or log if the message is simply a greeting.
|
|
21
|
+
7. **Signal before and after and in the middle** — For any non-trivial work (≥2 tool calls, >1 file touched, expected wait >5s, background tasks):
|
|
22
|
+
- State your intent
|
|
23
|
+
- Post-action recap (required):
|
|
24
|
+
- `Summary: <what you did>`
|
|
25
|
+
- `Result: <key output/changes>`
|
|
26
|
+
- `Next: <next step or blocker>` (if necessary).
|
|
27
|
+
- Do not skip summary outcomes at the end.
|
|
28
|
+
- Must try to update user after a long tool call or every 5 tool calls/steps. Very important to keep user in the know/loop.
|
|
29
|
+
8. **Verify work before concluding** must verify your work before concluding when applicable and possible. For example, run a typecheck on a file to confirm everything compiles if you do coding, or find supported evidence via api or internet if you answer stock market query.
|
|
30
|
+
|
|
31
|
+
When editing existing work:
|
|
32
|
+
- Don't "improve" adjacent code, comments, or formatting.
|
|
33
|
+
- Don't refactor things that aren't broken.
|
|
34
|
+
- Match existing style.
|
|
35
|
+
- If you notice unrelated dead code, mention it - don't delete it.
|
|
36
|
+
- Be super careful to not duplicate code within the file (especially if you are Codex agent engine.)
|
|
37
|
+
|
|
38
|
+
When your changes create orphans:
|
|
39
|
+
- Remove imports/variables/functions that YOUR changes made unused.
|
|
40
|
+
- Don't remove pre-existing dead code unless asked.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## File & Terminal Operations
|
|
44
|
+
|
|
45
|
+
- Prefer small, targeted patches over full file rewrites.
|
|
46
|
+
- After editing, verify you didn't introduce obvious type/lint/build issues (run the repo's preferred commands when available).
|
|
47
|
+
- Never fabricate command output or tool results; if you didn't run it, say so.
|
|
48
|
+
- Use non-interactive flags (`-y`, `--yes`, `--assume-yes`) for terminal commands.
|
|
49
|
+
- Don't start long-running processes unless asked; if you do, check if one is already running and run it in the background.
|
|
50
|
+
- **Preserve context** — For large or repetitive file operations, delegate to subagents (Task tool) when available to keep the main conversation focused.
|
|
51
|
+
|
|
52
|
+
## Agentic Development Context
|
|
53
|
+
|
|
54
|
+
When helping with agent/LLM projects, consider:
|
|
55
|
+
|
|
56
|
+
- **Observability** — {{AGENT_BRAND}} includes **Spotlight**, a local-first analytics stack (LiteLLM proxy + OTEL Collector + DuckDB) that tracks cost, latency, tokens, and errors for every LLM call — no external services required. When users ask about sessions, costs, traces, or debugging agent behavior, check **Available Skills** first (analytics skills query this local data). Only fall back to MCP tools if the user explicitly requests a specific service (e.g., "Langfuse") or no relevant skill exists.
|
|
57
|
+
- **Spotlight not running?** Run `"$AGENTIDE_ANALYTICS_SCRIPTS_DIR/setup-analytics.sh" --check` to diagnose. To set up non-interactively (with user consent): `"$AGENTIDE_ANALYTICS_SCRIPTS_DIR/setup-analytics.sh" --yes`. In the IDE, the user can also run **"Setup Spotlight"** from the VS Code command palette.
|
|
58
|
+
- **Agent Development** — When users create or debug agents (Agent Pack, LangChain, CrewAI, raw SDK), ensure LiteLLM observability is wired first. Use `agent-builder` skill to scaffold observable agents across frameworks. Use `agentpack-testbench` for systematic CLI testing of Agent Packs. All frameworks connect via LiteLLM proxy with metadata: `session_id`, `agent_id`, `agent_version`, `source`, `engine`, `request_id`.
|
|
59
|
+
- **Cost & Latency** — Note token usage implications; suggest caching, streaming, or model selection trade-offs when relevant.
|
|
60
|
+
- **Reliability** — Recommend retry logic, fallbacks, and structured outputs for production agents.
|
|
61
|
+
- **Safety** — Flag potential prompt injection vectors or unvalidated tool use.
|
|
62
|
+
|
|
63
|
+
## Runtime Context (automatic)
|
|
64
|
+
|
|
65
|
+
{{AGENT_BRAND}} injects a managed **{{AGENT_BRAND}} Runtime Context** with:
|
|
66
|
+
|
|
67
|
+
- `workspaceRoot` and `additionalDirectories` (filesystem boundaries)
|
|
68
|
+
- An **Available Skills** list (name + description + location)
|
|
69
|
+
|
|
70
|
+
Use this runtime context to avoid guessing (especially for "what skills do you have?") and to stay within allowed directories.
|
|
71
|
+
|
|
72
|
+
## Memory and learnings
|
|
73
|
+
|
|
74
|
+
Maintain memory files to keep learning and reduce repeated full project explorations
|
|
75
|
+
|
|
76
|
+
- **Entry point**: `memory.md` under `{{BRAND_FOLDER}}` is the single source of truth and must be kept up to date.
|
|
77
|
+
- **When to update**: After completing meaningful work or learning stable facts (repo structure, key commands, conventions, decisions).
|
|
78
|
+
- **What to store**: Short, durable notes only. Prefer bullet points and avoid transient details.
|
|
79
|
+
- **Token efficiency**: Keep it concise. If `memory.md` grows, split into small topical memory files and link them from `memory.md`. Trim, summarize as needed.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Cross-Agent Context (when switching agents)
|
|
83
|
+
|
|
84
|
+
When a user switches to you from another agent, their first message may reference prior work. {{AGENT_BRAND}} exports the previous conversation to `$AGENTIDE_CONTEXT_EXPORT_PATH`.
|
|
85
|
+
|
|
86
|
+
**If the user's request references context you don't have:**
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Check file size first - only read if reasonable
|
|
90
|
+
[ -f "$AGENTIDE_CONTEXT_EXPORT_PATH" ] && wc -l "$AGENTIDE_CONTEXT_EXPORT_PATH"
|
|
91
|
+
# If small (<200 lines), read all; otherwise read last 100 lines
|
|
92
|
+
[ -f "$AGENTIDE_CONTEXT_EXPORT_PATH" ] && tail -100 "$AGENTIDE_CONTEXT_EXPORT_PATH"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Context File Format
|
|
96
|
+
|
|
97
|
+
Each agent switch creates a numbered block:
|
|
98
|
+
```
|
|
99
|
+
<!-- SESSION:1 FROM:Agent Codex TO:Agent Claude -->
|
|
100
|
+
...
|
|
101
|
+
<!-- SESSION_END:1 -->
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The **latest block** (highest SESSION number) contains the most recent context. Read from the bottom up for efficiency.
|
|
105
|
+
|
|
106
|
+
### Environment Variables
|
|
107
|
+
|
|
108
|
+
- `$AGENTIDE_CONTEXT_EXPORT_PATH` — absolute path to context file
|
|
109
|
+
- `$AGENTIDE_CHAT_SESSION_ID` — VS Code chat session id
|
|
110
|
+
- `$AGENTIDE_TERMINAL_LOG_PATH` — per-session terminal log
|
|
111
|
+
|
|
112
|
+
### Terminal Output (grep-friendly)
|
|
113
|
+
|
|
114
|
+
**User-attached terminal content** (only available when user explicitly attaches terminal output to chat):
|
|
115
|
+
- `$AGENTIDE_TERMINAL_LOG_PATH` — per-session file for attached terminal content
|
|
116
|
+
|
|
117
|
+
**All terminal activity** (logged automatically for every command executed):
|
|
118
|
+
- `{{BRAND_FOLDER}}/terminals/<terminal-name>.md` — one file per terminal (e.g., `zsh.md`, `bash.md`)
|
|
119
|
+
- Each command is logged with timestamp, exit code, and full output
|
|
120
|
+
- Files rotate at 2MB to prevent unbounded growth
|
|
121
|
+
|
|
122
|
+
Common one-liners:
|
|
123
|
+
```bash
|
|
124
|
+
# List all terminal logs
|
|
125
|
+
ls -la {{BRAND_FOLDER}}/terminals/ 2>/dev/null
|
|
126
|
+
|
|
127
|
+
# Show recent commands from the main terminal
|
|
128
|
+
tail -n 200 {{BRAND_FOLDER}}/terminals/zsh.md 2>/dev/null
|
|
129
|
+
|
|
130
|
+
# Search for errors across ALL terminals
|
|
131
|
+
rg -n "error|fail|exception|traceback" {{BRAND_FOLDER}}/terminals/ 2>/dev/null || true
|
|
132
|
+
|
|
133
|
+
# Find a specific command's output
|
|
134
|
+
rg -A 50 "npm run build" {{BRAND_FOLDER}}/terminals/ 2>/dev/null
|
|
135
|
+
|
|
136
|
+
# Show the latest terminal attachment (user-attached)
|
|
137
|
+
[ -f "$AGENTIDE_TERMINAL_LOG_PATH" ] && tail -n 200 "$AGENTIDE_TERMINAL_LOG_PATH"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Terminal log format** (grep anchors):
|
|
141
|
+
```
|
|
142
|
+
<!-- CMD:npm-run-build TIME:2026-01-01T12:00:00Z CWD:./src -->
|
|
143
|
+
## `npm run build`
|
|
144
|
+
<!-- EXIT:0 -->
|
|
145
|
+
```text
|
|
146
|
+
[command output]
|
|
147
|
+
```
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### When to Load Context
|
|
151
|
+
|
|
152
|
+
- **Always check** on your first message if the user references something you don't have context for
|
|
153
|
+
- **Load immediately** if the user mentions prior work, asks you to "continue", or their request is confusing without context
|
|
154
|
+
- **Skip** only if the user's request is clearly self-contained and doesn't reference prior conversation
|
|
155
|
+
- The file may not exist if no agent switch has occurred yet—that's normal
|
|
156
|
+
|
|
157
|
+
## Skills (FAQ)
|
|
158
|
+
|
|
159
|
+
If the user asks **“What skills do you have?”**, they mean **Agent Skills** (installed `SKILL.md` skills), not general capabilities/tools.
|
|
160
|
+
|
|
161
|
+
- Answer with the runtime skill list (name + one-line description).
|
|
162
|
+
- Do **not** answer with a generic list of tools/capabilities (e.g., Read/Grep/Bash).
|
|
163
|
+
- To use a skill, read its `<location>` (the `SKILL.md`) and follow it.
|
|
164
|
+
|
|
165
|
+
## Skills: Where Project Skills Live ({{AGENT_BRAND}})
|
|
166
|
+
|
|
167
|
+
When working inside **{{AGENT_BRAND}}**, treat skills as **agent-scoped by default**:
|
|
168
|
+
|
|
169
|
+
- **Source of truth**: create/edit skills under the **active agent's skills directory**:
|
|
170
|
+
- `<workspaceRoot>/{{BRAND_FOLDER}}/agents/<agentId>/skills/<skill-dir>/SKILL.md`
|
|
171
|
+
- The active agent ID is available in `$AGENT_ID` (defaults to `default`)
|
|
172
|
+
- Example: `{{BRAND_FOLDER}}/agents/default/skills/my-skill/SKILL.md`
|
|
173
|
+
- **Derived folders** — do **NOT** edit files in `.codex/` or `.claude/` (managed by {{AGENT_BRAND}} sync; changes may be overwritten). Edit in `{{BRAND_FOLDER}}/agents/<agentId>/` instead.
|
|
174
|
+
- **Avoid global installs**:
|
|
175
|
+
- do **not** create/install skills under `~/.codex/skills/` or `~/.claude/skills/` unless the user explicitly requests a global/personal skill
|
|
176
|
+
|
|
177
|
+
### Creating a New Skill ({{AGENT_BRAND}})
|
|
178
|
+
|
|
179
|
+
When asked to create a new skill, **use the `skill-creator` skill** if it is available (read its `SKILL.md` and follow its workflow).
|
|
180
|
+
|
|
181
|
+
If `skill-creator` is not available, use this **skill anatomy**:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
skill-name/
|
|
185
|
+
├── SKILL.md (required)
|
|
186
|
+
│ ├── YAML frontmatter metadata (required)
|
|
187
|
+
│ │ ├── name: (required)
|
|
188
|
+
│ │ └── description: (required)
|
|
189
|
+
│ └── Markdown instructions (required)
|
|
190
|
+
└── Bundled Resources (optional)
|
|
191
|
+
├── scripts/ - Executable code (Python/Bash/etc.)
|
|
192
|
+
├── references/ - Documentation intended to be loaded into context as needed
|
|
193
|
+
└── assets/ - Files used in output (templates, icons, fonts, etc.)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## When Uncertain
|
|
197
|
+
|
|
198
|
+
- Ask **one** clarifying question rather than guessing.
|
|
199
|
+
- For destructive operations (delete, overwrite, force-push), confirm intent first.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-browser
|
|
3
|
+
description: Use for website automation in a managed or CDP-enabled browser: open pages, inspect accessibility snapshots, click and fill elements, manage tabs, reuse sessions, take screenshots, and extract data. Use for browser-native web tasks; use desktop-automation instead for an already-open normal Chrome/Edge window that is not CDP-enabled.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# agent-browser
|
|
7
|
+
|
|
8
|
+
Use this skill for browser-native website automation.
|
|
9
|
+
|
|
10
|
+
Good fits:
|
|
11
|
+
- open a website and inspect it
|
|
12
|
+
- click links or buttons
|
|
13
|
+
- fill forms
|
|
14
|
+
- search a site
|
|
15
|
+
- extract page text or data
|
|
16
|
+
- take screenshots
|
|
17
|
+
- manage tabs in an agent-browser session
|
|
18
|
+
- attach to a CDP-enabled browser
|
|
19
|
+
|
|
20
|
+
Use `desktop-automation` instead when the user specifically wants to control an already-open normal Chrome/Edge window that was not launched with remote debugging.
|
|
21
|
+
|
|
22
|
+
## First Step
|
|
23
|
+
|
|
24
|
+
Check whether the CLI exists:
|
|
25
|
+
|
|
26
|
+
```powershell
|
|
27
|
+
agent-browser --version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If missing, install it on demand:
|
|
31
|
+
|
|
32
|
+
```powershell
|
|
33
|
+
npm i -g agent-browser
|
|
34
|
+
agent-browser install
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If Chrome is already installed, `agent-browser doctor` may pass without downloading a separate Chrome.
|
|
38
|
+
|
|
39
|
+
## Load Version-Matched Docs
|
|
40
|
+
|
|
41
|
+
Before using commands, load the CLI's own current guide:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
agent-browser skills get core
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For complete command references and templates:
|
|
48
|
+
|
|
49
|
+
```powershell
|
|
50
|
+
agent-browser skills get core --full
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This keeps instructions aligned with the installed `agent-browser` version.
|
|
54
|
+
|
|
55
|
+
## Core Loop
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
agent-browser open https://example.com
|
|
59
|
+
agent-browser snapshot -i
|
|
60
|
+
agent-browser click @e3
|
|
61
|
+
agent-browser snapshot -i
|
|
62
|
+
agent-browser screenshot .\page.png
|
|
63
|
+
agent-browser close
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Refs such as `@e1` and `@e2` come from the latest snapshot. Re-snapshot after navigation, form submission, modal opening, or dynamic page updates.
|
|
67
|
+
|
|
68
|
+
## Tabs
|
|
69
|
+
|
|
70
|
+
```powershell
|
|
71
|
+
agent-browser tab
|
|
72
|
+
agent-browser tab new --label docs https://example.com/docs
|
|
73
|
+
agent-browser tab docs
|
|
74
|
+
agent-browser tab close docs
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Tab ids and labels are scoped to the active agent-browser session.
|
|
78
|
+
|
|
79
|
+
## Existing Browsers
|
|
80
|
+
|
|
81
|
+
For a browser launched with remote debugging:
|
|
82
|
+
|
|
83
|
+
```powershell
|
|
84
|
+
agent-browser --cdp 9222 snapshot -i
|
|
85
|
+
agent-browser --cdp 9222 tab
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For an ordinary already-open Chrome/Edge window, use `desktop-automation`. Browser-native tools cannot reliably attach without CDP or an extension bridge.
|
|
89
|
+
|
|
90
|
+
## Verification
|
|
91
|
+
|
|
92
|
+
For each meaningful action, collect evidence:
|
|
93
|
+
- `snapshot -i` for page structure
|
|
94
|
+
- `get title` or `get url` for navigation
|
|
95
|
+
- `screenshot` for visual proof
|
|
96
|
+
- `console` or `errors` when debugging web apps
|
|
97
|
+
|
|
98
|
+
Close sessions when finished:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
agent-browser close
|
|
102
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-builder
|
|
3
|
+
description: Create observable agents across any framework (Agent Pack, LangChain, CrewAI, raw OpenAI/Anthropic SDK) with Spotlight analytics from the first run. Use when the user wants to build a new agent, scaffold agent code for a specific framework, connect a Python agent to LiteLLM observability, or make existing agent code observable via the LiteLLM proxy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Builder
|
|
7
|
+
|
|
8
|
+
Scaffold agents in any framework with Spotlight observability wired from the first run.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
### 1. Identify Framework
|
|
13
|
+
|
|
14
|
+
Ask the user which development mode they need:
|
|
15
|
+
|
|
16
|
+
| Mode | When to use | Reference |
|
|
17
|
+
|------|------------|-----------|
|
|
18
|
+
| **Agent Pack** | Native {{AGENT_BRAND}} agent (YAML + AGENTS.md) | [references/agent-pack.md](references/agent-pack.md) |
|
|
19
|
+
| **LangChain** | Python agent using LangChain/LangGraph | [references/langchain.md](references/langchain.md) |
|
|
20
|
+
| **CrewAI** | Multi-agent crew workflows | [references/crewai.md](references/crewai.md) |
|
|
21
|
+
| **Raw SDK** | Direct OpenAI/Anthropic SDK calls | [references/raw-sdk.md](references/raw-sdk.md) |
|
|
22
|
+
|
|
23
|
+
Read **only** the reference file for the chosen framework.
|
|
24
|
+
|
|
25
|
+
### 2. Metadata Contract
|
|
26
|
+
|
|
27
|
+
Every agent must inject these fields for Spotlight analytics:
|
|
28
|
+
|
|
29
|
+
| Field | Required | Description |
|
|
30
|
+
|-------|----------|-------------|
|
|
31
|
+
| `session_id` | Yes | Groups all calls in one conversation |
|
|
32
|
+
| `agent_id` | Yes | Agent name/identifier |
|
|
33
|
+
| `agent_version` | Yes | Semver for regression tracking |
|
|
34
|
+
| `source` | Yes | Framework: `agenthippo`, `langchain`, `crewai`, `openai-sdk` |
|
|
35
|
+
| `engine` | Recommended | Underlying engine: `claude`, `codex`, `openai` |
|
|
36
|
+
| `request_id` | Recommended | Groups LLM calls for one user message |
|
|
37
|
+
|
|
38
|
+
**Agent Packs**: Metadata is injected automatically by the engine. No user action needed.
|
|
39
|
+
|
|
40
|
+
**Python frameworks**: Metadata must be passed explicitly. The exact placement differs per framework — see the framework reference file for the correct pattern.
|
|
41
|
+
|
|
42
|
+
### 3. Generate Code
|
|
43
|
+
|
|
44
|
+
Read the chosen framework's reference file and generate:
|
|
45
|
+
|
|
46
|
+
1. **Runnable agent code** with metadata wired to LiteLLM proxy
|
|
47
|
+
2. **One smoke-test command** to execute immediately
|
|
48
|
+
3. **One analytics command** to verify traces arrived
|
|
49
|
+
|
|
50
|
+
### 4. Verify Traces
|
|
51
|
+
|
|
52
|
+
After running the agent, confirm traces exist:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Quick check — should show the session
|
|
56
|
+
query-analytics.sh --cost-by-session
|
|
57
|
+
|
|
58
|
+
# Detailed check — verify all metadata fields populated
|
|
59
|
+
query-analytics.sh --session <session-id>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If `agent_id` or `source` shows `(unknown)`, the metadata is not reaching LiteLLM. Check:
|
|
63
|
+
- LangChain: `metadata=` must be a **top-level parameter** to `ChatOpenAI`, not inside `model_kwargs`
|
|
64
|
+
- CrewAI / Raw SDK: metadata goes in `extra_body={"metadata": {...}}`
|
|
65
|
+
- Ensure LiteLLM proxy is running (check Spotlight status bar or `query-analytics.sh --cost`)
|
|
66
|
+
|
|
67
|
+
### 5. Next Steps
|
|
68
|
+
|
|
69
|
+
After traces are flowing:
|
|
70
|
+
- **Test systematically**: Use `agentpack-testbench` skill (for Agent Packs)
|
|
71
|
+
- **Analyze costs**: Use `spotlight-query` or `spotlight-optimize` skills
|
|
72
|
+
- **Debug issues**: Use `debug-agent` skill
|
|
73
|
+
- **Generate reports**: Use `spotlight-insights` skill
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Agent Pack Integration
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Agent Packs get Spotlight observability **automatically**. The engine injects all metadata fields (`session_id`, `agent_id`, `agent_version`, `source`, `engine`, `request_id`) into every LLM call. No code changes needed.
|
|
6
|
+
|
|
7
|
+
## Quick Scaffold
|
|
8
|
+
|
|
9
|
+
Minimal pack structure:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
{{BRAND_FOLDER}}/agents/<pack-name>/
|
|
13
|
+
├── agent.yaml
|
|
14
|
+
└── AGENTS.md
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**agent.yaml**:
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
apiVersion: agenthippo.ai/v1
|
|
21
|
+
kind: Agent
|
|
22
|
+
metadata:
|
|
23
|
+
name: <pack-name>
|
|
24
|
+
version: 0.1.0
|
|
25
|
+
description: "<one-line description>"
|
|
26
|
+
spec:
|
|
27
|
+
engine: claude
|
|
28
|
+
model: claude-sonnet-4-5-20250929
|
|
29
|
+
skills: []
|
|
30
|
+
permissions:
|
|
31
|
+
fileAccess: full # read-only | workspace-write | full
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**AGENTS.md**: Write domain-specific instructions. For detailed guidance on writing effective AGENTS.md, use the `agentpack-creator` skill.
|
|
35
|
+
|
|
36
|
+
## Run via CLI
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# One-shot test
|
|
40
|
+
agenthippo ask --agent <pack-name> "your test prompt" --json
|
|
41
|
+
|
|
42
|
+
# Pack resolution order:
|
|
43
|
+
# 1. ./<pack-name>/
|
|
44
|
+
# 2. ./agents/<pack-name>/
|
|
45
|
+
# 3. <workspace>/{{BRAND_FOLDER}}/agents/<pack-name>/
|
|
46
|
+
# 4. Explicit path: --agent ./path/to/pack
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Run via IDE
|
|
50
|
+
|
|
51
|
+
Select the pack from the agent picker (icon next to model selector in the chat header).
|
|
52
|
+
|
|
53
|
+
## Verify
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
query-analytics.sh --latest-session
|
|
57
|
+
query-analytics.sh --cost-per-request <session-id>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Next Steps
|
|
61
|
+
|
|
62
|
+
- **Full creation workflow**: Use `agentpack-creator` skill
|
|
63
|
+
- **Systematic testing**: Use `agentpack-testbench` skill
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# CrewAI Integration
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
CrewAI uses LiteLLM internally. Route calls through the {{AGENT_BRAND}} LiteLLM proxy via the OpenAI SDK with `extra_body.metadata`.
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
import uuid
|
|
9
|
+
import httpx
|
|
10
|
+
from openai import OpenAI
|
|
11
|
+
|
|
12
|
+
LITELLM_BASE_URL = "https://127.0.0.1:4443/v1"
|
|
13
|
+
SESSION_ID = f"crewai-{uuid.uuid4().hex[:8]}"
|
|
14
|
+
|
|
15
|
+
http_client = httpx.Client(verify=False) # local self-signed cert
|
|
16
|
+
client = OpenAI(
|
|
17
|
+
base_url=LITELLM_BASE_URL,
|
|
18
|
+
api_key="not-needed",
|
|
19
|
+
http_client=http_client,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def crew_call(role, task, request_id):
|
|
23
|
+
"""One CrewAI agent step with analytics metadata."""
|
|
24
|
+
return client.chat.completions.create(
|
|
25
|
+
model="claude-sonnet-4-5-20250929",
|
|
26
|
+
messages=[
|
|
27
|
+
{"role": "system", "content": f"You are a {role}. Be concise."},
|
|
28
|
+
{"role": "user", "content": task},
|
|
29
|
+
],
|
|
30
|
+
temperature=0,
|
|
31
|
+
max_tokens=500,
|
|
32
|
+
extra_body={
|
|
33
|
+
"metadata": {
|
|
34
|
+
"session_id": SESSION_ID,
|
|
35
|
+
"agent_id": "my-crew",
|
|
36
|
+
"agent_version": "0.1.0",
|
|
37
|
+
"source": "crewai",
|
|
38
|
+
"request_id": request_id,
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
).choices[0].message.content
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Multi-Agent Pattern
|
|
45
|
+
|
|
46
|
+
Chain agent steps with distinct `request_id` per step:
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
research = crew_call("researcher", "Research topic X", "req-research")
|
|
50
|
+
draft = crew_call("writer", f"Write about: {research}", "req-write")
|
|
51
|
+
final = crew_call("editor", f"Edit: {draft}", "req-edit")
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Each step gets its own `request_id` so you can debug individual agent actions via `query-analytics.sh --request <id>`.
|
|
55
|
+
|
|
56
|
+
## Run
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
uv run --with openai python3 my_crew.py
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Verify
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
query-analytics.sh --cost-per-request <session-id> # shows cost per crew step
|
|
66
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# LangChain Integration
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
Point `ChatOpenAI` at the LiteLLM proxy and pass metadata as a **top-level parameter**.
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
import uuid
|
|
9
|
+
import httpx
|
|
10
|
+
from langchain_openai import ChatOpenAI
|
|
11
|
+
from langchain_core.messages import HumanMessage, SystemMessage
|
|
12
|
+
|
|
13
|
+
LITELLM_BASE_URL = "https://127.0.0.1:4443/v1"
|
|
14
|
+
SESSION_ID = f"langchain-{uuid.uuid4().hex[:8]}"
|
|
15
|
+
|
|
16
|
+
# Self-signed cert handling for local proxy
|
|
17
|
+
http_client = httpx.Client(verify=False)
|
|
18
|
+
|
|
19
|
+
llm = ChatOpenAI(
|
|
20
|
+
base_url=LITELLM_BASE_URL,
|
|
21
|
+
api_key="not-needed", # LiteLLM handles auth
|
|
22
|
+
model="claude-sonnet-4-5-20250929",
|
|
23
|
+
temperature=0,
|
|
24
|
+
http_client=http_client,
|
|
25
|
+
metadata={ # MUST be top-level, NOT in model_kwargs
|
|
26
|
+
"session_id": SESSION_ID,
|
|
27
|
+
"agent_id": "my-langchain-agent",
|
|
28
|
+
"agent_version": "0.1.0",
|
|
29
|
+
"source": "langchain",
|
|
30
|
+
},
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Normal LangChain code from here — nothing framework-specific
|
|
34
|
+
response = llm.invoke([
|
|
35
|
+
SystemMessage(content="You are a helpful assistant. Be concise."),
|
|
36
|
+
HumanMessage(content="What is a Python decorator? 2 sentences."),
|
|
37
|
+
])
|
|
38
|
+
print(response.content)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Critical Gotcha
|
|
42
|
+
|
|
43
|
+
`metadata` **must** be a top-level parameter to `ChatOpenAI`. Passing it inside `model_kwargs` causes:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
pydantic.v1.error_wrappers.ValidationError: Parameters {'metadata'} should be
|
|
47
|
+
specified explicitly. Instead they were passed in as part of `model_kwargs` parameter.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Run
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uv run --with langchain-openai --with langchain python3 my_agent.py
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Verify
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
query-analytics.sh --cost-by-session # should show langchain-XXXX session
|
|
60
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Raw OpenAI/Anthropic SDK Integration
|
|
2
|
+
|
|
3
|
+
## Setup (OpenAI SDK)
|
|
4
|
+
|
|
5
|
+
Pass metadata via `extra_body`:
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
import uuid
|
|
9
|
+
import httpx
|
|
10
|
+
from openai import OpenAI
|
|
11
|
+
|
|
12
|
+
LITELLM_BASE_URL = "https://127.0.0.1:4443/v1"
|
|
13
|
+
SESSION_ID = f"raw-{uuid.uuid4().hex[:8]}"
|
|
14
|
+
REQUEST_NUM = 0
|
|
15
|
+
|
|
16
|
+
def next_request_id():
|
|
17
|
+
global REQUEST_NUM
|
|
18
|
+
REQUEST_NUM += 1
|
|
19
|
+
return f"req-{REQUEST_NUM:03d}"
|
|
20
|
+
|
|
21
|
+
http_client = httpx.Client(verify=False) # local self-signed cert
|
|
22
|
+
client = OpenAI(
|
|
23
|
+
base_url=LITELLM_BASE_URL,
|
|
24
|
+
api_key="not-needed",
|
|
25
|
+
http_client=http_client,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
def call_llm(messages, request_id=None):
|
|
29
|
+
"""LLM call with analytics metadata."""
|
|
30
|
+
return client.chat.completions.create(
|
|
31
|
+
model="claude-sonnet-4-5-20250929",
|
|
32
|
+
messages=messages,
|
|
33
|
+
temperature=0,
|
|
34
|
+
max_tokens=500,
|
|
35
|
+
extra_body={
|
|
36
|
+
"metadata": {
|
|
37
|
+
"session_id": SESSION_ID,
|
|
38
|
+
"agent_id": "my-agent",
|
|
39
|
+
"agent_version": "0.1.0",
|
|
40
|
+
"source": "openai-sdk",
|
|
41
|
+
"request_id": request_id or next_request_id(),
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
).choices[0].message.content
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Multi-Step Pipeline Pattern
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
questions = call_llm([
|
|
51
|
+
{"role": "user", "content": "List 3 research questions about X"},
|
|
52
|
+
])
|
|
53
|
+
analysis = call_llm([
|
|
54
|
+
{"role": "user", "content": f"Analyze: {questions}"},
|
|
55
|
+
])
|
|
56
|
+
summary = call_llm([
|
|
57
|
+
{"role": "user", "content": f"Summarize: {analysis}"},
|
|
58
|
+
])
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Each call auto-increments `request_id` so traces show the pipeline order.
|
|
62
|
+
|
|
63
|
+
## Run
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uv run --with openai python3 my_agent.py
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Verify
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
query-analytics.sh --session <session-id>
|
|
73
|
+
```
|