@agenthippo-ai/agenthippo 1.110.9 → 1.110.19
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/out/agentpack/types.js +2 -5
- package/out/analytics/dashboard/artifactManager.js +2 -439
- package/out/analytics/dashboard/fleetDisplayUtils.js +2 -162
- package/out/analytics/dashboard/fleetOrchestrator.js +3 -142
- package/out/analytics/dashboard/fleetRegistry.js +2 -79
- package/out/analytics/dashboard/fleetRowDefaults.js +2 -87
- package/out/analytics/dashboard/fleetScriptAdapter.js +2 -146
- package/out/analytics/dashboard/fleetTypes.js +2 -29
- package/out/analytics/dashboard/index.js +2 -17
- package/out/analytics/dashboard/indexingService.js +2 -422
- package/out/analytics/dashboard/localFleetAdapter.js +2 -222
- package/out/analytics/dashboard/performanceMonitor.js +5 -76
- package/out/analytics/dashboard/processManager.js +2 -209
- package/out/analytics/dashboard/provider.js +38 -3817
- package/out/analytics/dashboard/queryRunner.js +62 -750
- package/out/analytics/dashboard/scheduledFleetStorage.js +2 -241
- package/out/analytics/dashboard/sessionJsonlFleet.js +3 -204
- package/out/analytics/dashboard/teamViewDiscovery.js +2 -106
- package/out/analytics/dashboard/webview/panel.js +34 -2318
- package/out/analytics/dashboard/webview/runtime-bridge.js +2 -82
- package/out/analytics/lifecycle.js +2 -43
- package/out/analytics/service.js +8 -1277
- package/out/auth/authBaseUrl.js +2 -59
- package/out/auth/bootstrapApply.js +2 -71
- package/out/auth/brokerClient.js +2 -160
- package/out/auth/callbackUri.js +2 -59
- package/out/auth/githubStoreGate.js +2 -70
- package/out/auth/loopbackAuthServer.js +4 -159
- package/out/auth/onboardingPrompt.js +2 -112
- package/out/auth/pkce.js +2 -9
- package/out/auth/provider.js +2 -226
- package/out/auth/sessionStore.js +2 -156
- package/out/auth/signInFlow.js +2 -183
- package/out/cli/index.js +619 -551
- package/out/cli/run-custom-engine-runner.js +3 -318
- package/out/cli/vscode-shim.js +2 -86
- package/out/engines/factory.js +2 -45
- package/out/engines/types.js +2 -17
- package/out/examples/run-headless-repl.js +6 -286
- package/out/examples/run-headless.js +2 -187
- package/out/extension.js +32 -4473
- package/out/gateway/gatewayRouteIndex.js +6 -371
- package/out/gateway/gatewaySessionStore.js +3 -243
- package/out/gateway/index.js +2 -31
- package/out/gateway/resetMappings.js +2 -52
- package/out/gateway/service.js +5 -1249
- package/out/mcp/publish.js +2 -143
- package/out/remote/handleRemoteChat.js +2 -169
- package/out/remote/remotePackStatusBar.js +3 -103
- package/out/remote/remoteTrust.js +6 -277
- package/out/remote/serveClient.js +4 -277
- package/out/remoteSkills.js +3 -191
- package/out/runtime/index.js +2 -32
- package/out/runtime/vscode/index.js +2 -20
- package/out/runtime/vscode/vscode-config-provider.js +2 -77
- package/out/runtime/vscode/vscode-edit-tracker.js +2 -122
- package/out/runtime/vscode/vscode-logger.js +2 -30
- package/out/runtime/vscode/vscode-permission-handler.js +2 -72
- package/out/scripts/agentide-litellm.sh +0 -1
- package/out/scripts/agentide_litellm_hooks_v1.py +170 -418
- package/out/scripts/analytics/agent-fleet-widget.js +18 -257
- package/out/scripts/analytics/agentide-litellm-otel.config.yaml +4 -4
- package/out/scripts/analytics/duckdbLocator.js +2 -28
- package/out/scripts/analytics/generate-default-charts.py +43 -323
- package/out/scripts/analytics/hotspot-analysis-widget.js +4 -430
- package/out/scripts/analytics/index-traces.py +78 -1036
- package/out/scripts/analytics/session-comparison-widget.js +26 -472
- package/out/scripts/analytics/session-timeline-widget.js +25 -846
- package/out/scripts/analytics/setup-analytics.ps1 +8 -1
- package/out/scripts/analytics/setup-analytics.sh +13 -2
- package/out/scripts/analytics/token-cost-flamegraph-widget.js +4 -461
- package/out/scripts/analytics/token-cost-trend-widget.js +4 -534
- package/out/scripts/analytics/workflows-collector.cjs +4 -314
- package/out/scripts/analytics/workflows-daemon.mjs +9 -185
- package/out/scripts/analytics/workflows-widget.cjs +15 -159
- package/out/scripts/analytics/wow-model-widget.js +10 -120
- package/out/scripts/vendor-tools.mjs +2 -233
- package/out/skills/publish.js +3 -178
- package/out/store/github/setup.js +7 -212
- package/out/store/oramaIndex.js +2 -884
- package/out/sync.js +26 -1829
- package/out/terminalLogger.js +5 -358
- package/out/utils/pathSafety.js +2 -60
- package/out/utils/pythonRunner.js +4 -258
- package/out/utils/toolPath.js +2 -83
- package/out/workspaceFolders.js +2 -59
- package/package.json +1 -1
- package/out/agentpack/github.js +0 -547
- package/out/agentpack/index.js +0 -67
- package/out/agentpack/install.js +0 -297
- package/out/agentpack/manager.js +0 -441
- package/out/agentpack/manifest.js +0 -135
- package/out/agentpack/paths.js +0 -498
- package/out/agentpack/publish.js +0 -248
- package/out/agentpack/stores.js +0 -554
- package/out/analytics/dashboard/fleetStatusUtils.js +0 -30
- package/out/analytics/dashboard/fleetTitleUtils.js +0 -68
- package/out/analytics/dashboard/refreshPolicy.js +0 -16
- package/out/analytics/dashboard/scheduledFleetFingerprint.js +0 -22
- package/out/analytics/dashboard/scheduledFleetUtils.js +0 -22
- package/out/analytics/dashboard/sessionEventFleetStats.js +0 -118
- package/out/analytics/dashboard/viewsConfigMerge.js +0 -221
- package/out/analytics/dashboard/webview/codicon.ttf +0 -0
- package/out/analytics/identity.js +0 -0
- package/out/analytics/sessionEvents.js +0 -323
- package/out/auth/callbackUriParse.js +0 -59
- package/out/auth/types.js +0 -12
- package/out/auth-broker/config.js +0 -112
- package/out/auth-broker/jwt.js +0 -105
- package/out/auth-broker/pkce.js +0 -59
- package/out/auth-broker/server.js +0 -677
- package/out/auth-broker/store.js +0 -275
- package/out/authority/warrant.js +0 -206
- package/out/base-prompts/mcp-servers/.mcp.json +0 -13
- package/out/base-prompts/mcp-servers/langfuse-analytics/README.md +0 -142
- package/out/base-prompts/mcp-servers/langfuse-analytics/mcp.json +0 -13
- package/out/base-prompts/mcp-servers/langfuse-analytics/package-lock.json +0 -1192
- package/out/base-prompts/mcp-servers/langfuse-analytics/package.json +0 -23
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/run-with-env.sh +0 -12
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/sdk-test.js +0 -102
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/simple-test.js +0 -137
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-client.js +0 -118
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-server.js +0 -209
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/client.ts +0 -431
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/index.ts +0 -270
- package/out/base-prompts/mcp-servers/langfuse-analytics/tsconfig.json +0 -18
- package/out/base-prompts/rules/AGENTS.md +0 -204
- package/out/base-prompts/skills/agent-browser/SKILL.md +0 -102
- package/out/base-prompts/skills/agent-builder/SKILL.md +0 -73
- package/out/base-prompts/skills/agent-builder/references/agent-pack.md +0 -63
- package/out/base-prompts/skills/agent-builder/references/crewai.md +0 -66
- package/out/base-prompts/skills/agent-builder/references/langchain.md +0 -60
- package/out/base-prompts/skills/agent-builder/references/raw-sdk.md +0 -73
- package/out/base-prompts/skills/agent-engine-creator/SKILL.md +0 -586
- package/out/base-prompts/skills/agent-engine-installer/SKILL.md +0 -106
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.mjs +0 -259
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.ps1 +0 -189
- package/out/base-prompts/skills/agenthippo-cli/SKILL.md +0 -69
- package/out/base-prompts/skills/agenthippo-cli/scripts/install.sh +0 -63
- package/out/base-prompts/skills/agentpack-creator/SKILL.md +0 -375
- package/out/base-prompts/skills/agentpack-creator/references/agent-templates.md +0 -261
- package/out/base-prompts/skills/agentpack-creator/references/agents-md-guide.md +0 -195
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack.py +0 -391
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack_test.py +0 -294
- package/out/base-prompts/skills/agentpack-testbench/SKILL.md +0 -135
- package/out/base-prompts/skills/algorithmic-art/LICENSE.txt +0 -202
- package/out/base-prompts/skills/algorithmic-art/SKILL.md +0 -405
- package/out/base-prompts/skills/algorithmic-art/templates/generator_template.js +0 -223
- package/out/base-prompts/skills/algorithmic-art/templates/viewer.html +0 -599
- package/out/base-prompts/skills/debug-agent/SKILL.md +0 -83
- package/out/base-prompts/skills/desktop-automation/SKILL.md +0 -166
- package/out/base-prompts/skills/desktop-automation/references/agenthippo-ui-recipes.md +0 -441
- package/out/base-prompts/skills/desktop-automation/scripts/windows-desktop-uia.psm1 +0 -280
- package/out/base-prompts/skills/docx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/docx/SKILL.md +0 -197
- package/out/base-prompts/skills/docx/docx-js.md +0 -350
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/out/base-prompts/skills/docx/ooxml/schemas/mce/mc.xsd +0 -75
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/out/base-prompts/skills/docx/ooxml/scripts/pack.py +0 -159
- package/out/base-prompts/skills/docx/ooxml/scripts/unpack.py +0 -29
- package/out/base-prompts/skills/docx/ooxml/scripts/validate.py +0 -69
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/__init__.py +0 -15
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/base.py +0 -951
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/docx.py +0 -274
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/pptx.py +0 -315
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/redlining.py +0 -279
- package/out/base-prompts/skills/docx/ooxml.md +0 -610
- package/out/base-prompts/skills/docx/scripts/__init__.py +0 -1
- package/out/base-prompts/skills/docx/scripts/document.py +0 -1276
- package/out/base-prompts/skills/docx/scripts/templates/comments.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/people.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/utilities.py +0 -374
- package/out/base-prompts/skills/gateway-outbound/SKILL.md +0 -136
- package/out/base-prompts/skills/mcp-builder/LICENSE.txt +0 -202
- package/out/base-prompts/skills/mcp-builder/SKILL.md +0 -328
- package/out/base-prompts/skills/mcp-builder/reference/evaluation.md +0 -602
- package/out/base-prompts/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
- package/out/base-prompts/skills/mcp-builder/reference/node_mcp_server.md +0 -970
- package/out/base-prompts/skills/mcp-builder/reference/python_mcp_server.md +0 -719
- package/out/base-prompts/skills/mcp-builder/scripts/connections.py +0 -151
- package/out/base-prompts/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/out/base-prompts/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/out/base-prompts/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/out/base-prompts/skills/openclaw/SKILL.md +0 -406
- package/out/base-prompts/skills/openclaw/scripts/run-smoke.sh +0 -61
- package/out/base-prompts/skills/pdf/LICENSE.txt +0 -30
- package/out/base-prompts/skills/pdf/SKILL.md +0 -294
- package/out/base-prompts/skills/pdf/forms.md +0 -205
- package/out/base-prompts/skills/pdf/reference.md +0 -612
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes.py +0 -70
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes_test.py +0 -226
- package/out/base-prompts/skills/pdf/scripts/check_fillable_fields.py +0 -12
- package/out/base-prompts/skills/pdf/scripts/convert_pdf_to_images.py +0 -35
- package/out/base-prompts/skills/pdf/scripts/create_validation_image.py +0 -41
- package/out/base-prompts/skills/pdf/scripts/extract_form_field_info.py +0 -152
- package/out/base-prompts/skills/pdf/scripts/fill_fillable_fields.py +0 -114
- package/out/base-prompts/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
- package/out/base-prompts/skills/pptx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/pptx/SKILL.md +0 -484
- package/out/base-prompts/skills/pptx/html2pptx.md +0 -625
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/out/base-prompts/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/out/base-prompts/skills/pptx/ooxml/scripts/pack.py +0 -159
- package/out/base-prompts/skills/pptx/ooxml/scripts/unpack.py +0 -29
- package/out/base-prompts/skills/pptx/ooxml/scripts/validate.py +0 -69
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/base.py +0 -951
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
- package/out/base-prompts/skills/pptx/ooxml.md +0 -427
- package/out/base-prompts/skills/pptx/scripts/html2pptx.js +0 -984
- package/out/base-prompts/skills/pptx/scripts/inventory.py +0 -1020
- package/out/base-prompts/skills/pptx/scripts/rearrange.py +0 -231
- package/out/base-prompts/skills/pptx/scripts/replace.py +0 -385
- package/out/base-prompts/skills/pptx/scripts/thumbnail.py +0 -450
- package/out/base-prompts/skills/prompt-lab/SKILL.md +0 -149
- package/out/base-prompts/skills/prompt-lab/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/skill-creator/LICENSE.txt +0 -202
- package/out/base-prompts/skills/skill-creator/SKILL.md +0 -371
- package/out/base-prompts/skills/skill-creator/references/output-patterns.md +0 -82
- package/out/base-prompts/skills/skill-creator/references/workflows.md +0 -28
- package/out/base-prompts/skills/skill-creator/scripts/init_skill.py +0 -303
- package/out/base-prompts/skills/skill-creator/scripts/package_skill.py +0 -110
- package/out/base-prompts/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/out/base-prompts/skills/skill-installer/SKILL.md +0 -251
- package/out/base-prompts/skills/skill-installer/references/store-api.md +0 -219
- package/out/base-prompts/skills/spotlight-dashboard/SKILL.md +0 -83
- package/out/base-prompts/skills/spotlight-insights/SKILL.md +0 -101
- package/out/base-prompts/skills/spotlight-optimize/SKILL.md +0 -93
- package/out/base-prompts/skills/spotlight-optimize/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/spotlight-query/SKILL.md +0 -314
- package/out/base-prompts/skills/spotlight-query/references/otel-schema.md +0 -163
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.test.sh +0 -744
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/sessions/sess-test-1.jsonl +0 -14
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/.duckdb-index.json +0 -7
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/sample.jsonl +0 -5
- package/out/base-prompts/skills/spotlight-report/SKILL.md +0 -86
- package/out/base-prompts/skills/spotlight-visualize/SKILL.md +0 -92
- package/out/base-prompts/skills/spotlight-visualize/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/xlsx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/xlsx/SKILL.md +0 -289
- package/out/base-prompts/skills/xlsx/recalc.py +0 -178
- package/out/branding.js +0 -49
- package/out/cli/commands/anywhere.js +0 -66
- package/out/cli/commands/ask.js +0 -246
- package/out/cli/commands/auth-broker.js +0 -24
- package/out/cli/commands/auth.js +0 -219
- package/out/cli/commands/chat.js +0 -357
- package/out/cli/commands/conformance.js +0 -249
- package/out/cli/commands/data-plane.js +0 -67
- package/out/cli/commands/deploy.js +0 -263
- package/out/cli/commands/gateway.js +0 -218
- package/out/cli/commands/idp.js +0 -85
- package/out/cli/commands/pack.js +0 -399
- package/out/cli/commands/probe-custom-engine.js +0 -82
- package/out/cli/commands/sandbox.js +0 -332
- package/out/cli/commands/serve.js +0 -1758
- package/out/cli/commands/store.js +0 -927
- package/out/cli/credential-context.js +0 -91
- package/out/cli/data-plane/broker.js +0 -78
- package/out/cli/data-plane/connector-host.js +0 -121
- package/out/cli/data-plane/egress.js +0 -189
- package/out/cli/data-plane/gateway.js +0 -218
- package/out/cli/data-plane/index.js +0 -152
- package/out/cli/data-plane/registry.js +0 -89
- package/out/cli/data-plane/remote.js +0 -106
- package/out/cli/data-plane/sidecar.js +0 -161
- package/out/cli/deploy/blueprints/registry.js +0 -84
- package/out/cli/deploy/layers/identity.js +0 -172
- package/out/cli/deploy-init.js +0 -3023
- package/out/cli/deps.js +0 -342
- package/out/cli/idp-init.js +0 -338
- package/out/cli/pack-install-ref.js +0 -15
- package/out/cli/pack-loader.js +0 -418
- package/out/cli/pack-runtime.js +0 -61
- package/out/cli/runtime.js +0 -450
- package/out/cli/serve-hardening.js +0 -607
- package/out/cli/state-sync.js +0 -424
- package/out/cli/utils.js +0 -231
- package/out/engines/base.js +0 -188
- package/out/engines/claude.js +0 -1254
- package/out/engines/codex.js +0 -862
- package/out/engines/custom.js +0 -674
- package/out/engines/customEngineIpc.js +0 -95
- package/out/engines/customEngineRunnerEmbed.js +0 -107
- package/out/engines/customRegistry.js +0 -274
- package/out/engines/embeddedCustomEngineRunner.generated.js +0 -9
- package/out/engines/engineApiKey.js +0 -138
- package/out/engines/install.js +0 -372
- package/out/engines/persistentEngineWorker.js +0 -320
- package/out/engines/publish.js +0 -341
- package/out/evidence/sessionShip.js +0 -610
- package/out/gateway/bridge.js +0 -843
- package/out/gateway/cli-agent-id.js +0 -36
- package/out/gateway/client.js +0 -336
- package/out/gateway/client.test.js +0 -395
- package/out/gateway/gateway-scope-errors.js +0 -14
- package/out/gateway/gatewayBackup.js +0 -76
- package/out/gateway/installSource.js +0 -68
- package/out/gateway/lifecycle.js +0 -3190
- package/out/gateway/openclaw-channel-routing.js +0 -317
- package/out/gateway/outboundHandles.js +0 -373
- package/out/gateway/outboundPaths.js +0 -75
- package/out/gateway/outboundSend.js +0 -254
- package/out/gateway/protocol.js +0 -48
- package/out/gateway/secretsPreflight.js +0 -90
- package/out/gateway/sessionRouting.js +0 -77
- package/out/headless/index.js +0 -539
- package/out/headless/sync.js +0 -473
- package/out/live-e2e/mcp-demo/server.mjs +0 -32
- package/out/live-probe/connector.mjs +0 -8
- package/out/live-probe/env-report.mjs +0 -8
- package/out/mcp.js +0 -654
- package/out/pack/caps.js +0 -271
- package/out/pack/governor.js +0 -309
- package/out/pack/lease-schema.js +0 -270
- package/out/pack/lease.js +0 -640
- package/out/pack/reconcile.js +0 -217
- package/out/pack/signature.js +0 -839
- package/out/permissions.js +0 -108
- package/out/permissions.mapping.yaml +0 -68
- package/out/registry/index.js +0 -332
- package/out/runner/host.js +0 -131
- package/out/runner/protocol.js +0 -108
- package/out/runner/remoteEngine.js +0 -130
- package/out/runtime/interfaces/config-provider.js +0 -32
- package/out/runtime/interfaces/edit-tracker.js +0 -24
- package/out/runtime/interfaces/index.js +0 -29
- package/out/runtime/interfaces/logger.js +0 -40
- package/out/runtime/interfaces/permission-handler.js +0 -66
- package/out/runtime/interfaces/session-store.js +0 -342
- package/out/runtime/vscode/vscode-session-store.js +0 -22
- package/out/sandbox/containerDriver.js +0 -570
- package/out/sandbox/processDriver.js +0 -315
- package/out/sandbox/sandboxRunner.js +0 -191
- package/out/sandbox/support.js +0 -301
- package/out/sandbox/types.js +0 -55
- package/out/scripts/analytics/fleet-local-adapter.js +0 -246
- package/out/scripts/analytics/live-fleet-4-collector.cjs +0 -315
- package/out/scripts/analytics/live-fleet-4-daemon.mjs +0 -134
- package/out/scripts/analytics/live-fleet-4-widget.cjs +0 -433
- package/out/scripts/gateway/Dockerfile.serve +0 -45
- package/out/scripts/gateway/docker-serve.sh +0 -248
- package/out/scripts/gateway/setup-gateway-server.ps1 +0 -953
- package/out/scripts/gateway/setup-gateway-server.sh +0 -935
- package/out/session.js +0 -272
- package/out/shared/agentEngines.js +0 -170
- package/out/shared/index.js +0 -109
- package/out/shared/models.js +0 -136
- package/out/shared/providers.js +0 -205
- package/out/spotlight/install.js +0 -345
- package/out/spotlight/publish.js +0 -544
- package/out/spotlight/yaml.js +0 -31
- package/out/store/index.js +0 -786
- package/out/store/shared.js +0 -241
- package/out/test/agentEnvFile.test.js +0 -97
- package/out/test/agentYaml.test.js +0 -373
- package/out/test/agentpack.test.js +0 -639
- package/out/test/analytics-lifecycle.test.js +0 -174
- package/out/test/analytics.test.js +0 -756
- package/out/test/auth-baseurl.test.js +0 -132
- package/out/test/auth-bootstrapApply.test.js +0 -123
- package/out/test/auth-broker-hardening.test.js +0 -227
- package/out/test/auth-broker.test.js +0 -541
- package/out/test/auth-callback.test.js +0 -62
- package/out/test/blueprint-registry.test.js +0 -105
- package/out/test/branding.test.js +0 -242
- package/out/test/caps-governor.test.js +0 -455
- package/out/test/cli-agent-id.test.js +0 -55
- package/out/test/codex-new-file-survival.test.js +0 -119
- package/out/test/configuration-scopes.test.js +0 -131
- package/out/test/credential-context.test.js +0 -160
- package/out/test/custom-env-layering.test.js +0 -151
- package/out/test/customEngineInstall.test.js +0 -100
- package/out/test/customRegistry.test.js +0 -122
- package/out/test/data-plane-engine-wiring.test.js +0 -250
- package/out/test/data-plane.test.js +0 -311
- package/out/test/deploy-init.test.js +0 -854
- package/out/test/deps-auto-install.test.js +0 -81
- package/out/test/egress-broker.test.js +0 -172
- package/out/test/engine-integration.test.js +0 -297
- package/out/test/enginePaths.test.js +0 -195
- package/out/test/enginePublish.test.js +0 -82
- package/out/test/fleetDisplayUtils.test.js +0 -100
- package/out/test/gateway-client.test.js +0 -409
- package/out/test/gateway-install-source.test.js +0 -111
- package/out/test/gateway-lifecycle.test.js +0 -608
- package/out/test/gateway-outbound.test.js +0 -538
- package/out/test/gateway-reset-mappings.test.js +0 -221
- package/out/test/gateway-route-index.test.js +0 -235
- package/out/test/gateway-secrets-preflight.test.js +0 -127
- package/out/test/gateway-session-routing.test.js +0 -65
- package/out/test/gateway-session-store.test.js +0 -216
- package/out/test/github.test.js +0 -232
- package/out/test/governor-hardening.test.js +0 -217
- package/out/test/headless-sync.test.js +0 -301
- package/out/test/helpers/manifest-fixtures.js +0 -27
- package/out/test/idp-init.test.js +0 -151
- package/out/test/lease-signature.test.js +0 -357
- package/out/test/lease-trust-root.test.js +0 -273
- package/out/test/lease-validation.test.js +0 -169
- package/out/test/lease.test.js +0 -114
- package/out/test/mcp-obo.test.js +0 -107
- package/out/test/mcp.test.js +0 -389
- package/out/test/model-routing.test.js +0 -133
- package/out/test/openclaw-channel-routing.test.js +0 -191
- package/out/test/pack-admission.test.js +0 -216
- package/out/test/pack-digest-parity.test.js +0 -140
- package/out/test/pack-reconcile.test.js +0 -183
- package/out/test/pack-signature-artifact.test.js +0 -103
- package/out/test/pack-signature.test.js +0 -176
- package/out/test/pack-trust-root.test.js +0 -202
- package/out/test/pathSafety.test.js +0 -63
- package/out/test/permissions.test.js +0 -175
- package/out/test/persistent-engine-worker.test.js +0 -220
- package/out/test/refreshPolicy.test.js +0 -60
- package/out/test/registry.test.js +0 -351
- package/out/test/remote-trust.test.js +0 -242
- package/out/test/runner-protocol.test.js +0 -249
- package/out/test/runtime.test.js +0 -349
- package/out/test/sandbox-driver.test.js +0 -553
- package/out/test/sandbox-hardening.test.js +0 -395
- package/out/test/sandbox-runner.test.js +0 -343
- package/out/test/scheduledFleetStorage.test.js +0 -72
- package/out/test/serve-gateway-turn.test.js +0 -267
- package/out/test/serve-hardening.test.js +0 -418
- package/out/test/serveClient.test.js +0 -209
- package/out/test/sessionJsonlFleet.test.js +0 -78
- package/out/test/sessionShip.test.js +0 -560
- package/out/test/shared.test.js +0 -173
- package/out/test/skills-mcp.test.js +0 -299
- package/out/test/spotlightPublish.test.js +0 -327
- package/out/test/spotlightYaml.test.js +0 -58
- package/out/test/state-sync-peer.test.js +0 -156
- package/out/test/store-install-safe.test.js +0 -69
- package/out/test/store.test.js +0 -331
- package/out/test/stores.test.js +0 -504
- package/out/test/sync-switch.test.js +0 -251
- package/out/test/teamViewDiscovery.test.js +0 -90
- package/out/test/tls-bypass.test.js +0 -90
- package/out/test/toolPath.test.js +0 -120
- package/out/test/utils.test.js +0 -308
- package/out/test/viewsConfigMerge.test.js +0 -180
- package/out/test/warrant.test.js +0 -138
- package/out/test/windows-command-line.test.js +0 -75
- package/out/utils/agentEnvFile.js +0 -131
- package/out/utils/binary.js +0 -175
- package/out/utils/index.js +0 -37
- package/out/utils/network.js +0 -74
- package/out/utils/paths.js +0 -116
- package/out/utils/pid.js +0 -180
- package/out/utils/resolveNodeBinary.js +0 -168
- package/out/utils/windowsCommandLine.js +0 -29
- package/out/utils.js +0 -968
package/out/shared/models.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.REGISTRY_KEY_SEPARATOR = exports.BUILTIN_MODELS = void 0;
|
|
7
|
-
exports.getRegistryKey = getRegistryKey;
|
|
8
|
-
exports.parseRegistryKey = parseRegistryKey;
|
|
9
|
-
exports.isCompositeKey = isCompositeKey;
|
|
10
|
-
exports.getModel = getModel;
|
|
11
|
-
exports.getModelByRegistryKey = getModelByRegistryKey;
|
|
12
|
-
exports.getModelsForProvider = getModelsForProvider;
|
|
13
|
-
exports.getRecommendedModels = getRecommendedModels;
|
|
14
|
-
exports.getModelsWithCapability = getModelsWithCapability;
|
|
15
|
-
exports.getActiveModels = getActiveModels;
|
|
16
|
-
exports.resolveModelAlias = resolveModelAlias;
|
|
17
|
-
/**
|
|
18
|
-
* Built-in model definitions
|
|
19
|
-
* These models are available when users configure their API keys
|
|
20
|
-
*/
|
|
21
|
-
exports.BUILTIN_MODELS = [
|
|
22
|
-
// ===========================================
|
|
23
|
-
// AgentHippo Managed Gateway
|
|
24
|
-
// Shown when signed in to AgentHippo account
|
|
25
|
-
// ===========================================
|
|
26
|
-
{
|
|
27
|
-
id: 'ah-auto',
|
|
28
|
-
name: 'Auto',
|
|
29
|
-
provider: 'agenthippo',
|
|
30
|
-
contextWindow: 200000,
|
|
31
|
-
maxOutputTokens: 8192,
|
|
32
|
-
capabilities: ['chat', 'vision', 'function-calling', 'code'],
|
|
33
|
-
// The picker must say where the prompt goes: this route leaves the machine through
|
|
34
|
-
// AgentHippo's servers on the account JWT, NOT through any API key the user configured.
|
|
35
|
-
description: 'Managed gateway — routed through AgentHippo using your account, not your own API keys',
|
|
36
|
-
recommended: true,
|
|
37
|
-
},
|
|
38
|
-
// LiteLLM models are NOT hardcoded here.
|
|
39
|
-
// They come from two dynamic sources:
|
|
40
|
-
// 1. Auto-discovery via LiteLLM's /model/info endpoint (require explicit enablement)
|
|
41
|
-
// 2. User-defined custom models in agentide.models.custom
|
|
42
|
-
];
|
|
43
|
-
// -----------------------------------------------------------------------------
|
|
44
|
-
// Registry Key Functions
|
|
45
|
-
// -----------------------------------------------------------------------------
|
|
46
|
-
/**
|
|
47
|
-
* Separator used in composite registry keys.
|
|
48
|
-
* Format: "provider::modelId"
|
|
49
|
-
*/
|
|
50
|
-
exports.REGISTRY_KEY_SEPARATOR = '::';
|
|
51
|
-
/**
|
|
52
|
-
* Generate a unique registry key for a model.
|
|
53
|
-
* Format: "provider::modelId" (e.g., "openai::gpt-4o", "litellm::gpt-4o")
|
|
54
|
-
*
|
|
55
|
-
* This ensures the same model served by different providers has distinct keys.
|
|
56
|
-
*/
|
|
57
|
-
function getRegistryKey(providerId, modelId) {
|
|
58
|
-
return `${providerId}${exports.REGISTRY_KEY_SEPARATOR}${modelId}`;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Parse a registry key into provider and model ID components.
|
|
62
|
-
* Returns undefined if the key doesn't contain the separator (legacy format).
|
|
63
|
-
*/
|
|
64
|
-
function parseRegistryKey(key) {
|
|
65
|
-
const separatorIndex = key.indexOf(exports.REGISTRY_KEY_SEPARATOR);
|
|
66
|
-
if (separatorIndex === -1) {
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
providerId: key.substring(0, separatorIndex),
|
|
71
|
-
modelId: key.substring(separatorIndex + exports.REGISTRY_KEY_SEPARATOR.length)
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Check if a key is in composite format (contains separator).
|
|
76
|
-
*/
|
|
77
|
-
function isCompositeKey(key) {
|
|
78
|
-
return key.includes(exports.REGISTRY_KEY_SEPARATOR);
|
|
79
|
-
}
|
|
80
|
-
// -----------------------------------------------------------------------------
|
|
81
|
-
// Utility Functions
|
|
82
|
-
// -----------------------------------------------------------------------------
|
|
83
|
-
/**
|
|
84
|
-
* Get a model by ID (legacy - searches by model.id only)
|
|
85
|
-
* @deprecated Use getModelByRegistryKey for unambiguous lookup
|
|
86
|
-
*/
|
|
87
|
-
function getModel(id) {
|
|
88
|
-
return exports.BUILTIN_MODELS.find(model => model.id === id);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get a model by registry key (provider::modelId format)
|
|
92
|
-
*/
|
|
93
|
-
function getModelByRegistryKey(key) {
|
|
94
|
-
return exports.BUILTIN_MODELS.find(model => getRegistryKey(model.provider, model.id) === key);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get all models for a specific provider
|
|
98
|
-
*/
|
|
99
|
-
function getModelsForProvider(providerId) {
|
|
100
|
-
return exports.BUILTIN_MODELS.filter(model => model.provider === providerId);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Get recommended models
|
|
104
|
-
*/
|
|
105
|
-
function getRecommendedModels() {
|
|
106
|
-
return exports.BUILTIN_MODELS.filter(model => model.recommended === true);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get models that support a specific capability
|
|
110
|
-
*/
|
|
111
|
-
function getModelsWithCapability(capability) {
|
|
112
|
-
return exports.BUILTIN_MODELS.filter(model => model.capabilities.includes(capability));
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Get all non-deprecated models
|
|
116
|
-
*/
|
|
117
|
-
function getActiveModels() {
|
|
118
|
-
return exports.BUILTIN_MODELS.filter(model => !model.deprecated);
|
|
119
|
-
}
|
|
120
|
-
// -----------------------------------------------------------------------------
|
|
121
|
-
// Model Resolution (for CLI)
|
|
122
|
-
// -----------------------------------------------------------------------------
|
|
123
|
-
/**
|
|
124
|
-
* Normalize a model id for CLI/headless use.
|
|
125
|
-
*
|
|
126
|
-
* Only canonicalizes ids that match a built-in catalog entry (currently `ah-auto`).
|
|
127
|
-
* All other ids are passed through unchanged for LiteLLM, pack specs, or provider SDKs.
|
|
128
|
-
*/
|
|
129
|
-
function resolveModelAlias(input) {
|
|
130
|
-
if (!input) {
|
|
131
|
-
return input;
|
|
132
|
-
}
|
|
133
|
-
const normalized = input.toLowerCase().trim();
|
|
134
|
-
const exactMatch = exports.BUILTIN_MODELS.find(m => m.id.toLowerCase() === normalized);
|
|
135
|
-
return exactMatch?.id ?? input;
|
|
136
|
-
}
|
package/out/shared/providers.js
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ANTHROPIC_SETUP_TOKEN_PREFIX = exports.PROVIDERS = void 0;
|
|
7
|
-
exports.getProvider = getProvider;
|
|
8
|
-
exports.requiresApiKey = requiresApiKey;
|
|
9
|
-
exports.isLocalProvider = isLocalProvider;
|
|
10
|
-
exports.getAllProviderIds = getAllProviderIds;
|
|
11
|
-
exports.getCloudProviders = getCloudProviders;
|
|
12
|
-
exports.getLocalProviders = getLocalProviders;
|
|
13
|
-
exports.getApiKeyProviders = getApiKeyProviders;
|
|
14
|
-
exports.requiresBaseUrl = requiresBaseUrl;
|
|
15
|
-
exports.getGatewayProviders = getGatewayProviders;
|
|
16
|
-
exports.isGatewayProvider = isGatewayProvider;
|
|
17
|
-
exports.isAnthropicProviderFamily = isAnthropicProviderFamily;
|
|
18
|
-
exports.normalizeAnthropicSetupToken = normalizeAnthropicSetupToken;
|
|
19
|
-
exports.isAnthropicSetupToken = isAnthropicSetupToken;
|
|
20
|
-
exports.providerNotSupportAnthropicApi = providerNotSupportAnthropicApi;
|
|
21
|
-
/**
|
|
22
|
-
* Provider registry - single source of truth for all provider configurations
|
|
23
|
-
*/
|
|
24
|
-
exports.PROVIDERS = {
|
|
25
|
-
openai: {
|
|
26
|
-
id: 'openai',
|
|
27
|
-
displayName: 'OpenAI',
|
|
28
|
-
defaultEndpoint: 'https://api.openai.com/v1',
|
|
29
|
-
requiresApiKey: true,
|
|
30
|
-
showInAddApiKeyUI: true,
|
|
31
|
-
notSupportAnthropicApi: true, // OpenAI API doesn't support Anthropic models
|
|
32
|
-
},
|
|
33
|
-
'openai-codex': {
|
|
34
|
-
id: 'openai-codex',
|
|
35
|
-
displayName: 'OpenAI Codex (ChatGPT OAuth)',
|
|
36
|
-
defaultEndpoint: 'https://chatgpt.com/backend-api/codex',
|
|
37
|
-
requiresApiKey: true,
|
|
38
|
-
description: 'Use your ChatGPT/Codex subscription via native OAuth',
|
|
39
|
-
showInAddApiKeyUI: true,
|
|
40
|
-
notSupportAnthropicApi: true,
|
|
41
|
-
},
|
|
42
|
-
anthropic: {
|
|
43
|
-
id: 'anthropic',
|
|
44
|
-
displayName: 'Anthropic',
|
|
45
|
-
defaultEndpoint: 'https://api.anthropic.com/v1',
|
|
46
|
-
endpointSettingKey: 'agentide.providers.anthropic.baseUrl',
|
|
47
|
-
requiresApiKey: true,
|
|
48
|
-
apiKeyHeader: 'x-api-key',
|
|
49
|
-
staticHeaders: { 'anthropic-version': '2023-06-01' },
|
|
50
|
-
headerSettingKeys: { 'anthropic-version': 'agentide.providers.anthropic.version' },
|
|
51
|
-
showInAddApiKeyUI: true,
|
|
52
|
-
},
|
|
53
|
-
'anthropic-setup-token': {
|
|
54
|
-
id: 'anthropic-setup-token',
|
|
55
|
-
displayName: 'Anthropic (Claude Subscription)',
|
|
56
|
-
defaultEndpoint: 'https://api.anthropic.com/v1',
|
|
57
|
-
endpointSettingKey: 'agentide.providers.anthropic.baseUrl',
|
|
58
|
-
requiresApiKey: true,
|
|
59
|
-
apiKeyHeader: 'x-api-key',
|
|
60
|
-
staticHeaders: { 'anthropic-version': '2023-06-01' },
|
|
61
|
-
headerSettingKeys: { 'anthropic-version': 'agentide.providers.anthropic.version' },
|
|
62
|
-
description: 'Use Claude subscription setup-token from "claude setup-token"',
|
|
63
|
-
showInAddApiKeyUI: true,
|
|
64
|
-
},
|
|
65
|
-
openrouter: {
|
|
66
|
-
id: 'openrouter',
|
|
67
|
-
displayName: 'OpenRouter',
|
|
68
|
-
defaultEndpoint: 'https://openrouter.ai/api/v1',
|
|
69
|
-
requiresApiKey: true,
|
|
70
|
-
description: 'Fast model proxy via openrouter.ai that works with all agents',
|
|
71
|
-
showInAddApiKeyUI: true,
|
|
72
|
-
isGateway: true, // Can route to OpenAI, Anthropic, and other backends
|
|
73
|
-
},
|
|
74
|
-
litellm: {
|
|
75
|
-
id: 'litellm',
|
|
76
|
-
displayName: 'LiteLLM',
|
|
77
|
-
endpointSettingKey: 'agentide.providers.litellm.baseUrl',
|
|
78
|
-
requiresApiKey: true,
|
|
79
|
-
description: 'local adapter for agents to work with Spotlight and all models from OpenAI, Anthropic, Ollama etc.',
|
|
80
|
-
showInAddApiKeyUI: true,
|
|
81
|
-
isGateway: true, // Can route to any backend
|
|
82
|
-
deferMissingApiKey: true, // base-url configured; key may be empty in dev
|
|
83
|
-
},
|
|
84
|
-
ollama: {
|
|
85
|
-
id: 'ollama',
|
|
86
|
-
displayName: 'Ollama',
|
|
87
|
-
defaultEndpoint: 'http://localhost:11434/v1',
|
|
88
|
-
requiresApiKey: false,
|
|
89
|
-
enabledSettingKey: 'agentide.local.ollama.enabled',
|
|
90
|
-
defaultEnabled: true,
|
|
91
|
-
placeholderApiKey: 'ollama',
|
|
92
|
-
description: 'Local LLM server',
|
|
93
|
-
showInAddApiKeyUI: false,
|
|
94
|
-
notSupportAnthropicApi: true, // Ollama only supports OpenAI-compatible format
|
|
95
|
-
},
|
|
96
|
-
agenthippo: {
|
|
97
|
-
id: 'agenthippo',
|
|
98
|
-
displayName: 'AgentHippo Gateway',
|
|
99
|
-
defaultEndpoint: 'https://gateway.agenthippo.ai/v1',
|
|
100
|
-
endpointSettingKey: 'agentide.AgentHippoModelGateway.url',
|
|
101
|
-
requiresApiKey: true,
|
|
102
|
-
description: 'AgentHippo managed gateway — uses account JWT, picks model automatically',
|
|
103
|
-
showInAddApiKeyUI: false,
|
|
104
|
-
isGateway: true,
|
|
105
|
-
staticHeaders: { 'x-agenthippo-source': 'chat-ui' },
|
|
106
|
-
credentialRefreshCommand: 'agentide.auth.refreshToken', // refresh stale sign-in JWT on 401
|
|
107
|
-
deferMissingApiKey: true, // key is the sign-in JWT; route branch prompts sign-in
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
// -----------------------------------------------------------------------------
|
|
111
|
-
// Utility Functions
|
|
112
|
-
// -----------------------------------------------------------------------------
|
|
113
|
-
/**
|
|
114
|
-
* Get a provider definition by ID
|
|
115
|
-
*/
|
|
116
|
-
function getProvider(id) {
|
|
117
|
-
return exports.PROVIDERS[id];
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Check if a provider requires an API key
|
|
121
|
-
*/
|
|
122
|
-
function requiresApiKey(providerId) {
|
|
123
|
-
return exports.PROVIDERS[providerId]?.requiresApiKey ?? true;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Check if a provider is a local provider (doesn't require API key)
|
|
127
|
-
*/
|
|
128
|
-
function isLocalProvider(providerId) {
|
|
129
|
-
const provider = exports.PROVIDERS[providerId];
|
|
130
|
-
return provider ? !provider.requiresApiKey : false;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get all provider IDs
|
|
134
|
-
*/
|
|
135
|
-
function getAllProviderIds() {
|
|
136
|
-
return Object.keys(exports.PROVIDERS);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get all cloud providers (those requiring API keys)
|
|
140
|
-
*/
|
|
141
|
-
function getCloudProviders() {
|
|
142
|
-
return Object.values(exports.PROVIDERS).filter(p => p.requiresApiKey);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Get all local providers (those not requiring API keys)
|
|
146
|
-
*/
|
|
147
|
-
function getLocalProviders() {
|
|
148
|
-
return Object.values(exports.PROVIDERS).filter(p => !p.requiresApiKey);
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Get providers that should be shown in the "Add API Key" UI
|
|
152
|
-
*/
|
|
153
|
-
function getApiKeyProviders() {
|
|
154
|
-
return Object.values(exports.PROVIDERS).filter(p => p.showInAddApiKeyUI === true);
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Check if a provider requires a base URL to be configured
|
|
158
|
-
* (i.e., has endpointSettingKey but no defaultEndpoint)
|
|
159
|
-
*/
|
|
160
|
-
function requiresBaseUrl(providerId) {
|
|
161
|
-
const provider = exports.PROVIDERS[providerId];
|
|
162
|
-
return provider ? (!!provider.endpointSettingKey && !provider.defaultEndpoint) : false;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Get all gateway providers (those that can route to multiple backends)
|
|
166
|
-
*/
|
|
167
|
-
function getGatewayProviders() {
|
|
168
|
-
return Object.values(exports.PROVIDERS).filter(p => p.isGateway);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Check if a provider is a gateway
|
|
172
|
-
*/
|
|
173
|
-
function isGatewayProvider(providerId) {
|
|
174
|
-
return exports.PROVIDERS[providerId]?.isGateway ?? false;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Check if a provider belongs to the Anthropic provider family.
|
|
178
|
-
*/
|
|
179
|
-
function isAnthropicProviderFamily(providerId) {
|
|
180
|
-
return providerId === 'anthropic' || providerId === 'anthropic-setup-token';
|
|
181
|
-
}
|
|
182
|
-
exports.ANTHROPIC_SETUP_TOKEN_PREFIX = 'sk-ant-oat01-';
|
|
183
|
-
function normalizeAnthropicSetupToken(token) {
|
|
184
|
-
return token.replace(/\s+/g, '').trim();
|
|
185
|
-
}
|
|
186
|
-
function isAnthropicSetupToken(apiKey) {
|
|
187
|
-
return typeof apiKey === 'string' && apiKey.trim().startsWith(exports.ANTHROPIC_SETUP_TOKEN_PREFIX);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Check if a provider does NOT support Anthropic API format.
|
|
191
|
-
* Returns true for providers like OpenAI, Ollama that only speak OpenAI format.
|
|
192
|
-
* Returns false for gateways and providers that can route to Anthropic.
|
|
193
|
-
*
|
|
194
|
-
* @param providerId - The provider ID to check
|
|
195
|
-
* @param customProviders - Optional custom provider config (for checking user-defined providers)
|
|
196
|
-
*/
|
|
197
|
-
function providerNotSupportAnthropicApi(providerId, customProviders) {
|
|
198
|
-
// Check built-in providers first
|
|
199
|
-
const builtIn = exports.PROVIDERS[providerId];
|
|
200
|
-
if (builtIn) {
|
|
201
|
-
return builtIn.notSupportAnthropicApi ?? false;
|
|
202
|
-
}
|
|
203
|
-
// Check custom providers (default to false - most custom providers are gateways)
|
|
204
|
-
return customProviders?.[providerId]?.notSupportAnthropicApi === true;
|
|
205
|
-
}
|
package/out/spotlight/install.js
DELETED
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.installSpotlightViewFromFiles = installSpotlightViewFromFiles;
|
|
40
|
-
exports.listInstalledSpotlightViews = listInstalledSpotlightViews;
|
|
41
|
-
exports.setActiveSpotlightView = setActiveSpotlightView;
|
|
42
|
-
exports.isSpotlightViewInstalled = isSpotlightViewInstalled;
|
|
43
|
-
const fs_1 = require("fs");
|
|
44
|
-
const path = __importStar(require("path"));
|
|
45
|
-
const branding_1 = require("../branding");
|
|
46
|
-
const utils_1 = require("../utils");
|
|
47
|
-
const index_1 = require("../utils/index");
|
|
48
|
-
const publish_1 = require("./publish");
|
|
49
|
-
const yaml_1 = require("./yaml");
|
|
50
|
-
// -----------------------------------------------------------------------------
|
|
51
|
-
// Helpers
|
|
52
|
-
// -----------------------------------------------------------------------------
|
|
53
|
-
function parseStringArray(value) {
|
|
54
|
-
if (!Array.isArray(value)) {
|
|
55
|
-
return [];
|
|
56
|
-
}
|
|
57
|
-
return value
|
|
58
|
-
.filter((entry) => typeof entry === 'string' && entry.trim().length > 0)
|
|
59
|
-
.map(entry => path.basename(entry.trim()));
|
|
60
|
-
}
|
|
61
|
-
function dedupeBasenames(values) {
|
|
62
|
-
const seen = new Set();
|
|
63
|
-
const result = [];
|
|
64
|
-
for (const value of values) {
|
|
65
|
-
const basename = path.basename(value.trim());
|
|
66
|
-
if (!basename || seen.has(basename)) {
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
seen.add(basename);
|
|
70
|
-
result.push(basename);
|
|
71
|
-
}
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
function resolveAnalyticsRoot(scope, workspaceRoot) {
|
|
75
|
-
if (scope === 'workspace') {
|
|
76
|
-
if (!workspaceRoot?.trim()) {
|
|
77
|
-
throw new Error('Workspace-scoped views require an open workspace folder');
|
|
78
|
-
}
|
|
79
|
-
return path.join(workspaceRoot.trim(), branding_1.AGENTIDE_DIR_NAME, 'analytics');
|
|
80
|
-
}
|
|
81
|
-
return path.join((0, index_1.getAgentideHome)(), 'analytics');
|
|
82
|
-
}
|
|
83
|
-
function getFileMap(files) {
|
|
84
|
-
const map = new Map();
|
|
85
|
-
for (const file of files) {
|
|
86
|
-
const content = Buffer.isBuffer(file.content)
|
|
87
|
-
? file.content
|
|
88
|
-
: Buffer.from(file.content, 'utf-8');
|
|
89
|
-
map.set(file.path.replace(/\\/g, '/'), content);
|
|
90
|
-
}
|
|
91
|
-
return map;
|
|
92
|
-
}
|
|
93
|
-
async function mergePanelEntry(viewsConfigPath, entry, overwrite) {
|
|
94
|
-
await fs_1.promises.mkdir(path.dirname(viewsConfigPath), { recursive: true });
|
|
95
|
-
let config;
|
|
96
|
-
try {
|
|
97
|
-
const raw = await fs_1.promises.readFile(viewsConfigPath, 'utf-8');
|
|
98
|
-
config = (0, yaml_1.parseSpotlightYamlRecord)(raw) ?? { version: 1, activeViewId: 'global', views: [] };
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
config = { version: 1, activeViewId: 'global', views: [] };
|
|
102
|
-
}
|
|
103
|
-
const views = Array.isArray(config.views) ? [...config.views] : [];
|
|
104
|
-
const normalizedId = (0, yaml_1.normalizeSpotlightViewId)(entry.id);
|
|
105
|
-
const existingIndex = views.findIndex(item => {
|
|
106
|
-
if (!item || typeof item !== 'object') {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
const candidate = item;
|
|
110
|
-
return (0, yaml_1.normalizeSpotlightViewId)(typeof candidate.id === 'string' ? candidate.id : undefined) === normalizedId;
|
|
111
|
-
});
|
|
112
|
-
const payload = {
|
|
113
|
-
id: normalizedId,
|
|
114
|
-
name: entry.name,
|
|
115
|
-
scope: entry.scope,
|
|
116
|
-
scripts: dedupeBasenames(entry.scripts),
|
|
117
|
-
};
|
|
118
|
-
if (existingIndex >= 0) {
|
|
119
|
-
if (!overwrite) {
|
|
120
|
-
throw new Error(`Spotlight view "${normalizedId}" is already registered in ${viewsConfigPath}`);
|
|
121
|
-
}
|
|
122
|
-
views[existingIndex] = payload;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
views.push(payload);
|
|
126
|
-
}
|
|
127
|
-
config.views = views;
|
|
128
|
-
if (typeof config.version !== 'number') {
|
|
129
|
-
config.version = 1;
|
|
130
|
-
}
|
|
131
|
-
if (typeof config.activeViewId !== 'string') {
|
|
132
|
-
config.activeViewId = 'global';
|
|
133
|
-
}
|
|
134
|
-
await fs_1.promises.writeFile(viewsConfigPath, (0, yaml_1.dumpSpotlightYaml)(config), 'utf-8');
|
|
135
|
-
}
|
|
136
|
-
// -----------------------------------------------------------------------------
|
|
137
|
-
// Install
|
|
138
|
-
// -----------------------------------------------------------------------------
|
|
139
|
-
/**
|
|
140
|
-
* Install a Spotlight view bundle downloaded from the store.
|
|
141
|
-
*/
|
|
142
|
-
async function installSpotlightViewFromFiles(files, options) {
|
|
143
|
-
const fileMap = getFileMap(files);
|
|
144
|
-
const manifestRaw = fileMap.get('view.yaml');
|
|
145
|
-
const panelEntryRaw = fileMap.get('panel-entry.yaml');
|
|
146
|
-
if (!manifestRaw || !panelEntryRaw) {
|
|
147
|
-
throw new Error('Store bundle is missing view.yaml or panel-entry.yaml');
|
|
148
|
-
}
|
|
149
|
-
const manifest = (0, yaml_1.parseSpotlightYamlRecord)(manifestRaw.toString('utf-8'));
|
|
150
|
-
const panelEntry = (0, yaml_1.parseSpotlightYamlRecord)(panelEntryRaw.toString('utf-8'));
|
|
151
|
-
if (!manifest || !panelEntry) {
|
|
152
|
-
throw new Error('Invalid view.yaml or panel-entry.yaml in store bundle');
|
|
153
|
-
}
|
|
154
|
-
const id = (0, yaml_1.normalizeSpotlightViewId)(typeof manifest.id === 'string' ? manifest.id : options.slug, options.slug);
|
|
155
|
-
if (id !== (0, yaml_1.normalizeSpotlightViewId)(options.slug, options.slug)) {
|
|
156
|
-
throw new Error(`Bundle id "${id}" does not match requested slug "${options.slug}"`);
|
|
157
|
-
}
|
|
158
|
-
const scope = manifest.scope === 'workspace' || panelEntry.scope === 'workspace'
|
|
159
|
-
? 'workspace'
|
|
160
|
-
: 'global';
|
|
161
|
-
const name = typeof manifest.name === 'string' && manifest.name.trim()
|
|
162
|
-
? manifest.name.trim()
|
|
163
|
-
: typeof panelEntry.name === 'string' && panelEntry.name.trim()
|
|
164
|
-
? panelEntry.name.trim()
|
|
165
|
-
: id;
|
|
166
|
-
const scripts = dedupeBasenames(parseStringArray(manifest.scripts).length
|
|
167
|
-
? parseStringArray(manifest.scripts)
|
|
168
|
-
: parseStringArray(panelEntry.scripts));
|
|
169
|
-
const analyticsRoot = resolveAnalyticsRoot(scope, options.workspaceRoot);
|
|
170
|
-
const installDir = path.join(analyticsRoot, 'views', id);
|
|
171
|
-
const viewsConfigPath = path.join(analyticsRoot, 'panel', 'views.yaml');
|
|
172
|
-
const scriptsDir = path.join(installDir, 'scripts');
|
|
173
|
-
if (!options.overwrite && await (0, utils_1.pathExists)(installDir)) {
|
|
174
|
-
throw new Error(`Spotlight view "${id}" already exists at ${installDir}`);
|
|
175
|
-
}
|
|
176
|
-
if (options.overwrite) {
|
|
177
|
-
await fs_1.promises.rm(installDir, { recursive: true, force: true });
|
|
178
|
-
}
|
|
179
|
-
await fs_1.promises.mkdir(scriptsDir, { recursive: true });
|
|
180
|
-
const INSTALLABLE_PREFIXES = [
|
|
181
|
-
'scripts/',
|
|
182
|
-
'assets/',
|
|
183
|
-
'images/',
|
|
184
|
-
'charts/',
|
|
185
|
-
'reports/',
|
|
186
|
-
'exports/',
|
|
187
|
-
];
|
|
188
|
-
const INSTALLABLE_ROOT_FILES = new Set(['manifest.json', 'README.md']);
|
|
189
|
-
const SKIP_PATHS = new Set(['view.yaml', 'panel-entry.yaml']);
|
|
190
|
-
for (const [relPath, content] of fileMap.entries()) {
|
|
191
|
-
if (SKIP_PATHS.has(relPath)) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
if (!INSTALLABLE_ROOT_FILES.has(relPath) && !INSTALLABLE_PREFIXES.some(prefix => relPath.startsWith(prefix))) {
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
// The prefix check above is on the raw string — "scripts/../../x" passes it. Resolve and
|
|
198
|
-
// require containment so a store bundle can never write outside its own install dir.
|
|
199
|
-
const resolvedInstallDir = path.resolve(installDir);
|
|
200
|
-
const destination = path.resolve(resolvedInstallDir, relPath);
|
|
201
|
-
if (!destination.startsWith(resolvedInstallDir + path.sep)) {
|
|
202
|
-
throw new Error(`Store bundle entry "${relPath}" escapes the install directory`);
|
|
203
|
-
}
|
|
204
|
-
await fs_1.promises.mkdir(path.dirname(destination), { recursive: true });
|
|
205
|
-
await fs_1.promises.writeFile(destination, content);
|
|
206
|
-
}
|
|
207
|
-
const now = new Date().toISOString();
|
|
208
|
-
const installedVersion = (0, publish_1.resolveViewPublishVersionFromParsed)(manifest) ?? options.version ?? '1.0.0';
|
|
209
|
-
const runtimeManifest = {
|
|
210
|
-
version: installedVersion,
|
|
211
|
-
id,
|
|
212
|
-
name,
|
|
213
|
-
description: typeof manifest.description === 'string' ? manifest.description : '',
|
|
214
|
-
author: typeof manifest.author === 'string' ? manifest.author : undefined,
|
|
215
|
-
scope,
|
|
216
|
-
projectId: '',
|
|
217
|
-
agentId: '',
|
|
218
|
-
createdAt: now,
|
|
219
|
-
updatedAt: now,
|
|
220
|
-
scripts,
|
|
221
|
-
storeVersion: installedVersion,
|
|
222
|
-
};
|
|
223
|
-
if (Array.isArray(manifest.tags)) {
|
|
224
|
-
runtimeManifest.tags = manifest.tags.filter((tag) => typeof tag === 'string');
|
|
225
|
-
}
|
|
226
|
-
await fs_1.promises.writeFile(path.join(installDir, 'view.yaml'), (0, yaml_1.dumpSpotlightYaml)(runtimeManifest), 'utf-8');
|
|
227
|
-
await mergePanelEntry(viewsConfigPath, {
|
|
228
|
-
id,
|
|
229
|
-
name,
|
|
230
|
-
scope,
|
|
231
|
-
scripts,
|
|
232
|
-
}, !!options.overwrite);
|
|
233
|
-
if (options.activate) {
|
|
234
|
-
let config;
|
|
235
|
-
try {
|
|
236
|
-
const raw = await fs_1.promises.readFile(viewsConfigPath, 'utf-8');
|
|
237
|
-
config = (0, yaml_1.parseSpotlightYamlRecord)(raw) ?? {};
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
config = { version: 1, views: [] };
|
|
241
|
-
}
|
|
242
|
-
config.activeViewId = id;
|
|
243
|
-
if (typeof config.version !== 'number') {
|
|
244
|
-
config.version = 1;
|
|
245
|
-
}
|
|
246
|
-
await fs_1.promises.writeFile(viewsConfigPath, (0, yaml_1.dumpSpotlightYaml)(config), 'utf-8');
|
|
247
|
-
}
|
|
248
|
-
if (options.logger) {
|
|
249
|
-
(0, utils_1.logInfo)(options.logger, `[Spotlight] Installed view "${id}" to ${installDir}`);
|
|
250
|
-
}
|
|
251
|
-
return {
|
|
252
|
-
id,
|
|
253
|
-
scope,
|
|
254
|
-
installDir,
|
|
255
|
-
viewsConfigPath,
|
|
256
|
-
version: (0, publish_1.resolveViewPublishVersionFromParsed)(manifest) ?? options.version ?? '1.0.0',
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* List Spotlight views installed under home and workspace analytics roots.
|
|
261
|
-
*/
|
|
262
|
-
async function listInstalledSpotlightViews(workspaceRoot) {
|
|
263
|
-
const results = [];
|
|
264
|
-
const seen = new Set();
|
|
265
|
-
async function scan(root) {
|
|
266
|
-
const viewsDir = path.join(root, 'views');
|
|
267
|
-
if (!(await (0, utils_1.pathExists)(viewsDir))) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
const entries = await fs_1.promises.readdir(viewsDir, { withFileTypes: true });
|
|
271
|
-
for (const entry of entries) {
|
|
272
|
-
if (!entry.isDirectory() || entry.name.startsWith('.')) {
|
|
273
|
-
continue;
|
|
274
|
-
}
|
|
275
|
-
const key = entry.name.toLowerCase();
|
|
276
|
-
if (seen.has(key)) {
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
const metadataPath = path.join(viewsDir, entry.name, 'view.yaml');
|
|
280
|
-
try {
|
|
281
|
-
const raw = await fs_1.promises.readFile(metadataPath, 'utf-8');
|
|
282
|
-
const parsed = (0, yaml_1.parseSpotlightYamlRecord)(raw);
|
|
283
|
-
if (!parsed) {
|
|
284
|
-
continue;
|
|
285
|
-
}
|
|
286
|
-
const id = (0, yaml_1.normalizeSpotlightViewId)(typeof parsed.id === 'string' ? parsed.id : entry.name, entry.name);
|
|
287
|
-
const scope = parsed.scope === 'workspace' ? 'workspace' : 'global';
|
|
288
|
-
seen.add(key);
|
|
289
|
-
results.push({
|
|
290
|
-
slug: id,
|
|
291
|
-
displayName: typeof parsed.name === 'string' && parsed.name.trim() ? parsed.name.trim() : id,
|
|
292
|
-
description: typeof parsed.description === 'string' ? parsed.description.trim() : undefined,
|
|
293
|
-
tags: Array.isArray(parsed.tags)
|
|
294
|
-
? parsed.tags.filter((tag) => typeof tag === 'string')
|
|
295
|
-
: ['spotlight'],
|
|
296
|
-
latestVersion: typeof parsed.storeVersion === 'string'
|
|
297
|
-
? parsed.storeVersion
|
|
298
|
-
: (0, publish_1.resolveViewPublishVersionFromParsed)(parsed) ?? 'local',
|
|
299
|
-
scope,
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
catch {
|
|
303
|
-
// Skip malformed view folders.
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
await scan(path.join((0, index_1.getAgentideHome)(), 'analytics'));
|
|
308
|
-
if (workspaceRoot?.trim()) {
|
|
309
|
-
await scan(path.join(workspaceRoot.trim(), branding_1.AGENTIDE_DIR_NAME, 'analytics'));
|
|
310
|
-
}
|
|
311
|
-
return results.sort((a, b) => a.slug.localeCompare(b.slug));
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Set the active Spotlight view in panel/views.yaml.
|
|
315
|
-
*/
|
|
316
|
-
async function setActiveSpotlightView(viewsConfigPath, viewId) {
|
|
317
|
-
const normalized = (0, yaml_1.normalizeSpotlightViewId)(viewId, viewId);
|
|
318
|
-
let config;
|
|
319
|
-
try {
|
|
320
|
-
const raw = await fs_1.promises.readFile(viewsConfigPath, 'utf-8');
|
|
321
|
-
config = (0, yaml_1.parseSpotlightYamlRecord)(raw) ?? { version: 1, views: [] };
|
|
322
|
-
}
|
|
323
|
-
catch {
|
|
324
|
-
config = { version: 1, views: [] };
|
|
325
|
-
}
|
|
326
|
-
config.activeViewId = normalized;
|
|
327
|
-
if (typeof config.version !== 'number') {
|
|
328
|
-
config.version = 1;
|
|
329
|
-
}
|
|
330
|
-
await fs_1.promises.writeFile(viewsConfigPath, (0, yaml_1.dumpSpotlightYaml)(config), 'utf-8');
|
|
331
|
-
}
|
|
332
|
-
async function isSpotlightViewInstalled(viewId, workspaceRoot) {
|
|
333
|
-
const normalized = (0, yaml_1.normalizeSpotlightViewId)(viewId, viewId);
|
|
334
|
-
for (const root of [
|
|
335
|
-
path.join((0, index_1.getAgentideHome)(), 'analytics', 'views', normalized, 'view.yaml'),
|
|
336
|
-
workspaceRoot?.trim()
|
|
337
|
-
? path.join(workspaceRoot.trim(), branding_1.AGENTIDE_DIR_NAME, 'analytics', 'views', normalized, 'view.yaml')
|
|
338
|
-
: '',
|
|
339
|
-
].filter(Boolean)) {
|
|
340
|
-
if (await (0, utils_1.pathExists)(root)) {
|
|
341
|
-
return true;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
return false;
|
|
345
|
-
}
|