@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
|
@@ -1,234 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
|
|
6
|
-
import fs from 'node:fs/promises';
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import os from 'node:os';
|
|
9
|
-
import { execFileSync } from 'node:child_process';
|
|
10
|
-
|
|
11
|
-
const scriptDir = import.meta.dirname;
|
|
12
|
-
const projectDir = path.resolve(scriptDir, '..');
|
|
13
|
-
const manifestPath = path.join(scriptDir, 'tools-manifest.json');
|
|
14
|
-
const defaultToolsRoot = path.join(projectDir, 'tools');
|
|
15
|
-
|
|
16
|
-
const BUNDLED_TOOL_NAMES = ['rg', 'sg', 'tree-sitter'];
|
|
17
|
-
|
|
18
|
-
function parseArgs(argv) {
|
|
19
|
-
let platform;
|
|
20
|
-
let clean = false;
|
|
21
|
-
let outDir;
|
|
22
|
-
let skipIfPresent = false;
|
|
23
|
-
|
|
24
|
-
for (let i = 0; i < argv.length; i++) {
|
|
25
|
-
const arg = argv[i];
|
|
26
|
-
if (arg === '--platform' && i + 1 < argv.length) {
|
|
27
|
-
platform = argv[++i];
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
if (arg.startsWith('--platform=')) {
|
|
31
|
-
platform = arg.slice('--platform='.length);
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
if (arg === '--out-dir' && i + 1 < argv.length) {
|
|
35
|
-
outDir = path.resolve(argv[++i]);
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (arg.startsWith('--out-dir=')) {
|
|
39
|
-
outDir = path.resolve(arg.slice('--out-dir='.length));
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
if (arg === '--clean') {
|
|
43
|
-
clean = true;
|
|
44
|
-
}
|
|
45
|
-
if (arg === '--skip-if-present') {
|
|
46
|
-
skipIfPresent = true;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return { platform, clean, outDir, skipIfPresent };
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function getToolExecutableName(name, platformKey) {
|
|
54
|
-
if (platformKey.startsWith('win32')) {
|
|
55
|
-
return name === 'rg' ? 'rg.exe' : name === 'sg' ? 'sg.exe' : 'tree-sitter.exe';
|
|
56
|
-
}
|
|
57
|
-
return name;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async function hasAllTools(platformDir, platformKey) {
|
|
61
|
-
try {
|
|
62
|
-
for (const name of BUNDLED_TOOL_NAMES) {
|
|
63
|
-
const bin = getToolExecutableName(name, platformKey);
|
|
64
|
-
const p = path.join(platformDir, bin);
|
|
65
|
-
await fs.access(p, process.platform === 'win32' ? fs.constants.F_OK : (fs.constants.F_OK | fs.constants.X_OK));
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
} catch {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function detectPlatformKey() {
|
|
74
|
-
const platform = process.platform;
|
|
75
|
-
const arch = process.arch;
|
|
76
|
-
if (platform === 'darwin' && arch === 'arm64') return 'darwin-arm64';
|
|
77
|
-
if (platform === 'darwin' && arch === 'x64') return 'darwin-x64';
|
|
78
|
-
if (platform === 'linux' && arch === 'x64') return 'linux-x64';
|
|
79
|
-
if (platform === 'linux' && arch === 'arm64') return 'linux-arm64';
|
|
80
|
-
if (platform === 'win32' && arch === 'x64') return 'win32-x64';
|
|
81
|
-
if (platform === 'win32' && arch === 'arm64') return 'win32-arm64';
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
async function readManifest() {
|
|
86
|
-
const raw = await fs.readFile(manifestPath, 'utf8');
|
|
87
|
-
return JSON.parse(raw);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
async function downloadFile(url, destination) {
|
|
91
|
-
const curlArgs = ['-fsSL', url, '-o', destination];
|
|
92
|
-
execFileSync('curl', curlArgs, { stdio: 'inherit' });
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
async function extractZip(archivePath, outputDir) {
|
|
97
|
-
await fs.mkdir(outputDir, { recursive: true });
|
|
98
|
-
execFileSync('unzip', ['-o', archivePath, '-d', outputDir], { stdio: 'inherit' });
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
async function extractTarGz(archivePath, outputDir) {
|
|
102
|
-
await fs.mkdir(outputDir, { recursive: true });
|
|
103
|
-
execFileSync('tar', ['-xzf', archivePath, '-C', outputDir], { stdio: 'inherit' });
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async function extractGzip(archivePath, outputFile) {
|
|
107
|
-
const content = await fs.readFile(archivePath);
|
|
108
|
-
const zlib = await import('node:zlib');
|
|
109
|
-
const unzipped = zlib.gunzipSync(content);
|
|
110
|
-
await fs.writeFile(outputFile, unzipped);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
async function findFileRecursive(rootDir, wantedName) {
|
|
114
|
-
const entries = await fs.readdir(rootDir, { withFileTypes: true });
|
|
115
|
-
for (const entry of entries) {
|
|
116
|
-
const entryPath = path.join(rootDir, entry.name);
|
|
117
|
-
if (entry.isDirectory()) {
|
|
118
|
-
const nested = await findFileRecursive(entryPath, wantedName);
|
|
119
|
-
if (nested) return nested;
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if (entry.name === wantedName) {
|
|
123
|
-
return entryPath;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return undefined;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async function copyExecutable(sourcePath, destinationPath) {
|
|
130
|
-
await fs.copyFile(sourcePath, destinationPath);
|
|
131
|
-
if (process.platform !== 'win32') {
|
|
132
|
-
await fs.chmod(destinationPath, 0o755);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
async function vendorForPlatform(platformKey, manifest, clean, toolsRoot) {
|
|
137
|
-
const platformDir = path.join(toolsRoot, platformKey);
|
|
138
|
-
const tempDir = path.join(toolsRoot, '.tmp', `tools-${platformKey}`);
|
|
139
|
-
|
|
140
|
-
if (clean) {
|
|
141
|
-
await fs.rm(platformDir, { recursive: true, force: true });
|
|
142
|
-
}
|
|
143
|
-
await fs.mkdir(platformDir, { recursive: true });
|
|
144
|
-
await fs.rm(tempDir, { recursive: true, force: true });
|
|
145
|
-
await fs.mkdir(tempDir, { recursive: true });
|
|
146
|
-
|
|
147
|
-
for (const [toolId, toolMeta] of Object.entries(manifest.tools)) {
|
|
148
|
-
const asset = toolMeta.assets?.[platformKey];
|
|
149
|
-
if (!asset) {
|
|
150
|
-
throw new Error(`No asset configured for ${toolId} on ${platformKey}`);
|
|
151
|
-
}
|
|
152
|
-
const archiveName = asset.file;
|
|
153
|
-
const releaseTag = String(toolMeta.tag || toolMeta.version);
|
|
154
|
-
const url = `https://github.com/${toolMeta.repo}/releases/download/${releaseTag}/${archiveName}`;
|
|
155
|
-
const archivePath = path.join(tempDir, archiveName);
|
|
156
|
-
console.log(`→ Downloading ${toolId} ${toolMeta.version} for ${platformKey}`);
|
|
157
|
-
await downloadFile(url, archivePath);
|
|
158
|
-
|
|
159
|
-
if (toolId === 'rg') {
|
|
160
|
-
const unpackDir = path.join(tempDir, 'rg-unpack');
|
|
161
|
-
await fs.rm(unpackDir, { recursive: true, force: true });
|
|
162
|
-
if (archiveName.endsWith('.zip')) {
|
|
163
|
-
await extractZip(archivePath, unpackDir);
|
|
164
|
-
} else {
|
|
165
|
-
await extractTarGz(archivePath, unpackDir);
|
|
166
|
-
}
|
|
167
|
-
const binaryName = platformKey.startsWith('win32') ? 'rg.exe' : 'rg';
|
|
168
|
-
const found = await findFileRecursive(unpackDir, binaryName);
|
|
169
|
-
if (!found) {
|
|
170
|
-
throw new Error(`Unable to locate ${binaryName} in ${archiveName}`);
|
|
171
|
-
}
|
|
172
|
-
await copyExecutable(found, path.join(platformDir, binaryName));
|
|
173
|
-
continue;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (toolId === 'sg') {
|
|
177
|
-
const unpackDir = path.join(tempDir, 'sg-unpack');
|
|
178
|
-
await fs.rm(unpackDir, { recursive: true, force: true });
|
|
179
|
-
await extractZip(archivePath, unpackDir);
|
|
180
|
-
const binaryName = platformKey.startsWith('win32') ? 'sg.exe' : 'sg';
|
|
181
|
-
const found = await findFileRecursive(unpackDir, binaryName);
|
|
182
|
-
if (!found) {
|
|
183
|
-
throw new Error(`Unable to locate ${binaryName} in ${archiveName}`);
|
|
184
|
-
}
|
|
185
|
-
await copyExecutable(found, path.join(platformDir, binaryName));
|
|
186
|
-
continue;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (toolId === 'tree-sitter') {
|
|
190
|
-
const binaryName = platformKey.startsWith('win32') ? 'tree-sitter.exe' : 'tree-sitter';
|
|
191
|
-
const outputPath = path.join(platformDir, binaryName);
|
|
192
|
-
if (archiveName.endsWith('.gz')) {
|
|
193
|
-
await extractGzip(archivePath, outputPath);
|
|
194
|
-
} else {
|
|
195
|
-
await fs.copyFile(archivePath, outputPath);
|
|
196
|
-
}
|
|
197
|
-
if (!platformKey.startsWith('win32')) {
|
|
198
|
-
await fs.chmod(outputPath, 0o755);
|
|
199
|
-
}
|
|
200
|
-
continue;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
throw new Error(`Unsupported tool id in manifest: ${toolId}`);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
await fs.rm(tempDir, { recursive: true, force: true });
|
|
207
|
-
console.log(`✓ Vendored tools into ${platformDir}`);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
async function main() {
|
|
211
|
-
const args = parseArgs(process.argv.slice(2));
|
|
212
|
-
const platformKey = args.platform || detectPlatformKey();
|
|
213
|
-
if (!platformKey) {
|
|
214
|
-
throw new Error(`Unsupported platform ${process.platform}-${process.arch}`);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const toolsRoot = args.outDir ?? defaultToolsRoot;
|
|
218
|
-
const platformDir = path.join(toolsRoot, platformKey);
|
|
219
|
-
|
|
220
|
-
if (args.skipIfPresent && !args.clean) {
|
|
221
|
-
if (await hasAllTools(platformDir, platformKey)) {
|
|
222
|
-
console.log(`✓ Bundled tools already present at ${platformDir}, skipping download.`);
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
const manifest = await readManifest();
|
|
228
|
-
await vendorForPlatform(platformKey, manifest, args.clean, toolsRoot);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
main().catch((error) => {
|
|
232
|
-
console.error(`✗ ${error instanceof Error ? error.message : String(error)}`);
|
|
233
|
-
process.exit(1);
|
|
234
|
-
});
|
|
2
|
+
/*! Copyright (c) 2026 AgentHippo.ai. All rights reserved. Proprietary; see LICENSE. */
|
|
3
|
+
"use strict";import r from"node:fs/promises";import s from"node:path";import"node:os";import{execFileSync as m}from"node:child_process";const x=import.meta.dirname,b=s.resolve(x,".."),k=s.join(x,"tools-manifest.json"),F=s.join(b,"tools"),z=["rg","sg","tree-sitter"];function D(t){let e,c=!1,o,n=!1;for(let i=0;i<t.length;i++){const a=t[i];if(a==="--platform"&&i+1<t.length){e=t[++i];continue}if(a.startsWith("--platform=")){e=a.slice(11);continue}if(a==="--out-dir"&&i+1<t.length){o=s.resolve(t[++i]);continue}if(a.startsWith("--out-dir=")){o=s.resolve(a.slice(10));continue}a==="--clean"&&(c=!0),a==="--skip-if-present"&&(n=!0)}return{platform:e,clean:c,outDir:o,skipIfPresent:n}}function E(t,e){return e.startsWith("win32")?t==="rg"?"rg.exe":t==="sg"?"sg.exe":"tree-sitter.exe":t}async function W(t,e){try{for(const c of z){const o=E(c,e),n=s.join(t,o);await r.access(n,process.platform==="win32"?r.constants.F_OK:r.constants.F_OK|r.constants.X_OK)}return!0}catch{return!1}}function N(){const t=process.platform,e=process.arch;if(t==="darwin"&&e==="arm64")return"darwin-arm64";if(t==="darwin"&&e==="x64")return"darwin-x64";if(t==="linux"&&e==="x64")return"linux-x64";if(t==="linux"&&e==="arm64")return"linux-arm64";if(t==="win32"&&e==="x64")return"win32-x64";if(t==="win32"&&e==="arm64")return"win32-arm64"}async function O(){const t=await r.readFile(k,"utf8");return JSON.parse(t)}async function P(t,e){m("curl",["-fsSL",t,"-o",e],{stdio:"inherit"})}async function $(t,e){await r.mkdir(e,{recursive:!0}),m("unzip",["-o",t,"-d",e],{stdio:"inherit"})}async function S(t,e){await r.mkdir(e,{recursive:!0}),m("tar",["-xzf",t,"-C",e],{stdio:"inherit"})}async function T(t,e){const c=await r.readFile(t),n=(await import("node:zlib")).gunzipSync(c);await r.writeFile(e,n)}async function h(t,e){const c=await r.readdir(t,{withFileTypes:!0});for(const o of c){const n=s.join(t,o.name);if(o.isDirectory()){const i=await h(n,e);if(i)return i;continue}if(o.name===e)return n}}async function y(t,e){await r.copyFile(t,e),process.platform!=="win32"&&await r.chmod(e,493)}async function A(t,e,c,o){const n=s.join(o,t),i=s.join(o,".tmp",`tools-${t}`);c&&await r.rm(n,{recursive:!0,force:!0}),await r.mkdir(n,{recursive:!0}),await r.rm(i,{recursive:!0,force:!0}),await r.mkdir(i,{recursive:!0});for(const[a,p]of Object.entries(e.tools)){const g=p.assets?.[t];if(!g)throw new Error(`No asset configured for ${a} on ${t}`);const l=g.file,j=String(p.tag||p.version),v=`https://github.com/${p.repo}/releases/download/${j}/${l}`,w=s.join(i,l);if(console.log(`\u2192 Downloading ${a} ${p.version} for ${t}`),await P(v,w),a==="rg"){const f=s.join(i,"rg-unpack");await r.rm(f,{recursive:!0,force:!0}),l.endsWith(".zip")?await $(w,f):await S(w,f);const u=t.startsWith("win32")?"rg.exe":"rg",d=await h(f,u);if(!d)throw new Error(`Unable to locate ${u} in ${l}`);await y(d,s.join(n,u));continue}if(a==="sg"){const f=s.join(i,"sg-unpack");await r.rm(f,{recursive:!0,force:!0}),await $(w,f);const u=t.startsWith("win32")?"sg.exe":"sg",d=await h(f,u);if(!d)throw new Error(`Unable to locate ${u} in ${l}`);await y(d,s.join(n,u));continue}if(a==="tree-sitter"){const f=t.startsWith("win32")?"tree-sitter.exe":"tree-sitter",u=s.join(n,f);l.endsWith(".gz")?await T(w,u):await r.copyFile(w,u),t.startsWith("win32")||await r.chmod(u,493);continue}throw new Error(`Unsupported tool id in manifest: ${a}`)}await r.rm(i,{recursive:!0,force:!0}),console.log(`\u2713 Vendored tools into ${n}`)}async function U(){const t=D(process.argv.slice(2)),e=t.platform||N();if(!e)throw new Error(`Unsupported platform ${process.platform}-${process.arch}`);const c=t.outDir??F,o=s.join(c,e);if(t.skipIfPresent&&!t.clean&&await W(o,e)){console.log(`\u2713 Bundled tools already present at ${o}, skipping download.`);return}const n=await O();await A(e,n,t.clean,c)}U().catch(t=>{console.error(`\u2717 ${t instanceof Error?t.message:String(t)}`),process.exit(1)});
|
package/out/skills/publish.js
CHANGED
|
@@ -1,178 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/*---------------------------------------------------------------------------------------------
|
|
6
|
-
* Skill validation and file collection for publishing.
|
|
7
|
-
* Publishing uses the central store via publishToStore() in store/index.ts.
|
|
8
|
-
*--------------------------------------------------------------------------------------------*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
-
var ownKeys = function(o) {
|
|
27
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
-
var ar = [];
|
|
29
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
-
return ar;
|
|
31
|
-
};
|
|
32
|
-
return ownKeys(o);
|
|
33
|
-
};
|
|
34
|
-
return function (mod) {
|
|
35
|
-
if (mod && mod.__esModule) return mod;
|
|
36
|
-
var result = {};
|
|
37
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
-
__setModuleDefault(result, mod);
|
|
39
|
-
return result;
|
|
40
|
-
};
|
|
41
|
-
})();
|
|
42
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.parseSkillFrontmatter = parseSkillFrontmatter;
|
|
44
|
-
exports.validateSkillForPublish = validateSkillForPublish;
|
|
45
|
-
exports.collectSkillFiles = collectSkillFiles;
|
|
46
|
-
const fs_1 = require("fs");
|
|
47
|
-
const path = __importStar(require("path"));
|
|
48
|
-
const utils_1 = require("../utils");
|
|
49
|
-
// -----------------------------------------------------------------------------
|
|
50
|
-
// Validation
|
|
51
|
-
// -----------------------------------------------------------------------------
|
|
52
|
-
/**
|
|
53
|
-
* Parse SKILL.md frontmatter to extract metadata.
|
|
54
|
-
*/
|
|
55
|
-
function parseSkillFrontmatter(content) {
|
|
56
|
-
// Match YAML frontmatter between --- markers
|
|
57
|
-
const match = content.match(/^---\s*\n([\s\S]*?)\n---/);
|
|
58
|
-
if (!match) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
const frontmatter = match[1];
|
|
62
|
-
const metadata = { name: '' };
|
|
63
|
-
// Simple YAML parsing (name: value)
|
|
64
|
-
const lines = frontmatter.split('\n');
|
|
65
|
-
for (const line of lines) {
|
|
66
|
-
const colonIdx = line.indexOf(':');
|
|
67
|
-
if (colonIdx === -1) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const key = line.slice(0, colonIdx).trim();
|
|
71
|
-
let value = line.slice(colonIdx + 1).trim();
|
|
72
|
-
// Remove quotes
|
|
73
|
-
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
74
|
-
(value.startsWith('\'') && value.endsWith('\''))) {
|
|
75
|
-
value = value.slice(1, -1);
|
|
76
|
-
}
|
|
77
|
-
switch (key) {
|
|
78
|
-
case 'name':
|
|
79
|
-
metadata.name = value;
|
|
80
|
-
break;
|
|
81
|
-
case 'version':
|
|
82
|
-
metadata.version = value;
|
|
83
|
-
break;
|
|
84
|
-
case 'description':
|
|
85
|
-
metadata.description = value;
|
|
86
|
-
break;
|
|
87
|
-
case 'author':
|
|
88
|
-
metadata.author = value;
|
|
89
|
-
break;
|
|
90
|
-
case 'tags':
|
|
91
|
-
// Parse array: [tag1, tag2] or - tag1 format
|
|
92
|
-
if (value.startsWith('[')) {
|
|
93
|
-
metadata.tags = value.slice(1, -1).split(',').map(t => t.trim());
|
|
94
|
-
}
|
|
95
|
-
break;
|
|
96
|
-
case 'requires':
|
|
97
|
-
if (value.startsWith('[')) {
|
|
98
|
-
metadata.requires = value.slice(1, -1).split(',').map(t => t.trim());
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Only name is required, version is optional
|
|
104
|
-
return metadata.name ? metadata : null;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Validate a skill before publishing.
|
|
108
|
-
*/
|
|
109
|
-
async function validateSkillForPublish(skillDir) {
|
|
110
|
-
const errors = [];
|
|
111
|
-
const warnings = [];
|
|
112
|
-
// Check skill directory exists
|
|
113
|
-
if (!(await (0, utils_1.pathExists)(skillDir))) {
|
|
114
|
-
return { valid: false, errors: [`Skill directory not found: ${skillDir}`], warnings };
|
|
115
|
-
}
|
|
116
|
-
// Check SKILL.md exists
|
|
117
|
-
const skillMdPath = path.join(skillDir, 'SKILL.md');
|
|
118
|
-
if (!(await (0, utils_1.pathExists)(skillMdPath))) {
|
|
119
|
-
errors.push('Missing required file: SKILL.md');
|
|
120
|
-
return { valid: false, errors, warnings };
|
|
121
|
-
}
|
|
122
|
-
// Parse and validate frontmatter
|
|
123
|
-
const content = await fs_1.promises.readFile(skillMdPath, 'utf-8');
|
|
124
|
-
const metadata = parseSkillFrontmatter(content);
|
|
125
|
-
if (!metadata) {
|
|
126
|
-
errors.push('SKILL.md must have YAML frontmatter with name and version');
|
|
127
|
-
return { valid: false, errors, warnings };
|
|
128
|
-
}
|
|
129
|
-
if (!metadata.name) {
|
|
130
|
-
errors.push('SKILL.md frontmatter missing: name');
|
|
131
|
-
}
|
|
132
|
-
if (!metadata.description) {
|
|
133
|
-
errors.push('SKILL.md frontmatter missing: description');
|
|
134
|
-
}
|
|
135
|
-
// Version is optional, but if provided must be valid semver
|
|
136
|
-
if (metadata.version && !/^\d+\.\d+\.\d+/.test(metadata.version)) {
|
|
137
|
-
errors.push(`Invalid version format: ${metadata.version}. Use semver (e.g., 1.0.0)`);
|
|
138
|
-
}
|
|
139
|
-
if (!metadata.tags || metadata.tags.length === 0) {
|
|
140
|
-
warnings.push('Consider adding tags to SKILL.md frontmatter for discoverability');
|
|
141
|
-
}
|
|
142
|
-
return {
|
|
143
|
-
valid: errors.length === 0,
|
|
144
|
-
errors,
|
|
145
|
-
warnings,
|
|
146
|
-
metadata: errors.length === 0 ? metadata : undefined,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
// -----------------------------------------------------------------------------
|
|
150
|
-
// Publishing
|
|
151
|
-
// -----------------------------------------------------------------------------
|
|
152
|
-
/**
|
|
153
|
-
* Collect all files from a skill directory.
|
|
154
|
-
*/
|
|
155
|
-
async function collectSkillFiles(skillDir) {
|
|
156
|
-
const files = [];
|
|
157
|
-
async function walk(dir, prefix) {
|
|
158
|
-
const entries = await fs_1.promises.readdir(dir);
|
|
159
|
-
for (const entry of entries) {
|
|
160
|
-
// Skip hidden files
|
|
161
|
-
if (entry.startsWith('.')) {
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
const fullPath = path.join(dir, entry);
|
|
165
|
-
const relativePath = prefix ? `${prefix}/${entry}` : entry;
|
|
166
|
-
const stat = await fs_1.promises.stat(fullPath);
|
|
167
|
-
if (stat.isDirectory()) {
|
|
168
|
-
await walk(fullPath, relativePath);
|
|
169
|
-
}
|
|
170
|
-
else if (stat.isFile()) {
|
|
171
|
-
const content = await fs_1.promises.readFile(fullPath, 'utf-8');
|
|
172
|
-
files.push({ path: relativePath, content });
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
await walk(skillDir, '');
|
|
177
|
-
return files;
|
|
178
|
-
}
|
|
1
|
+
/*! Copyright (c) 2026 AgentHippo.ai. All rights reserved. Proprietary; see LICENSE. */
|
|
2
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,t,i,e){e===void 0&&(e=i);var r=Object.getOwnPropertyDescriptor(t,i);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(n,e,r)}):(function(n,t,i,e){e===void 0&&(e=i),n[e]=t[i]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}):function(n,t){n.default=t}),__importStar=this&&this.__importStar||(function(){var n=function(t){return n=Object.getOwnPropertyNames||function(i){var e=[];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[e.length]=r);return e},n(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var e=n(t),r=0;r<e.length;r++)e[r]!=="default"&&__createBinding(i,t,e[r]);return __setModuleDefault(i,t),i}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseSkillFrontmatter=parseSkillFrontmatter,exports.validateSkillForPublish=validateSkillForPublish,exports.collectSkillFiles=collectSkillFiles;const fs_1=require("fs"),path=__importStar(require("path")),utils_1=require("../utils");function parseSkillFrontmatter(n){const t=n.match(/^---\s*\n([\s\S]*?)\n---/);if(!t)return null;const i=t[1],e={name:""},r=i.split(`
|
|
3
|
+
`);for(const a of r){const o=a.indexOf(":");if(o===-1)continue;const c=a.slice(0,o).trim();let s=a.slice(o+1).trim();switch((s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),c){case"name":e.name=s;break;case"version":e.version=s;break;case"description":e.description=s;break;case"author":e.author=s;break;case"tags":s.startsWith("[")&&(e.tags=s.slice(1,-1).split(",").map(l=>l.trim()));break;case"requires":s.startsWith("[")&&(e.requires=s.slice(1,-1).split(",").map(l=>l.trim()));break}}return e.name?e:null}async function validateSkillForPublish(n){const t=[],i=[];if(!await(0,utils_1.pathExists)(n))return{valid:!1,errors:[`Skill directory not found: ${n}`],warnings:i};const e=path.join(n,"SKILL.md");if(!await(0,utils_1.pathExists)(e))return t.push("Missing required file: SKILL.md"),{valid:!1,errors:t,warnings:i};const r=await fs_1.promises.readFile(e,"utf-8"),a=parseSkillFrontmatter(r);return a?(a.name||t.push("SKILL.md frontmatter missing: name"),a.description||t.push("SKILL.md frontmatter missing: description"),a.version&&!/^\d+\.\d+\.\d+/.test(a.version)&&t.push(`Invalid version format: ${a.version}. Use semver (e.g., 1.0.0)`),(!a.tags||a.tags.length===0)&&i.push("Consider adding tags to SKILL.md frontmatter for discoverability"),{valid:t.length===0,errors:t,warnings:i,metadata:t.length===0?a:void 0}):(t.push("SKILL.md must have YAML frontmatter with name and version"),{valid:!1,errors:t,warnings:i})}async function collectSkillFiles(n){const t=[];async function i(e,r){const a=await fs_1.promises.readdir(e);for(const o of a){if(o.startsWith("."))continue;const c=path.join(e,o),s=r?`${r}/${o}`:o,l=await fs_1.promises.stat(c);if(l.isDirectory())await i(c,s);else if(l.isFile()){const u=await fs_1.promises.readFile(c,"utf-8");t.push({path:s,content:u})}}}return await i(n,""),t}
|
|
@@ -1,169 +1,16 @@
|
|
|
1
|
-
|
|
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.setupStoreAutomation = setupStoreAutomation;
|
|
40
|
-
exports.triggerStoreWorkflow = triggerStoreWorkflow;
|
|
41
|
-
/**
|
|
42
|
-
* Store Setup
|
|
43
|
-
*
|
|
44
|
-
* Automates the setup of AgentHippo store index automation in a GitHub repository.
|
|
45
|
-
* Creates the necessary GitHub Action workflow and build scripts via a pull request.
|
|
46
|
-
*/
|
|
47
|
-
const fs_1 = require("fs");
|
|
48
|
-
const path = __importStar(require("path"));
|
|
49
|
-
const github_1 = require("../../agentpack/github");
|
|
50
|
-
const utils_1 = require("../../utils");
|
|
51
|
-
// Helper to conditionally log
|
|
52
|
-
function log(logger, msg) {
|
|
53
|
-
if (logger) {
|
|
54
|
-
(0, utils_1.logInfo)(logger, msg);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// -----------------------------------------------------------------------------
|
|
58
|
-
// Template Loading
|
|
59
|
-
// -----------------------------------------------------------------------------
|
|
60
|
-
/**
|
|
61
|
-
* Get the path to the templates folder.
|
|
62
|
-
* Templates are in the same directory as this file (src/store/github/templates or out/store/github/templates).
|
|
63
|
-
*/
|
|
64
|
-
function getTemplatesDir() {
|
|
65
|
-
return path.join(__dirname, 'templates');
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Load a template file from the templates folder.
|
|
69
|
-
*/
|
|
70
|
-
async function loadTemplate(filename) {
|
|
71
|
-
const templatePath = path.join(getTemplatesDir(), filename);
|
|
72
|
-
return await fs_1.promises.readFile(templatePath, 'utf8');
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Set up store index automation in a GitHub repository.
|
|
76
|
-
* Creates a pull request with the workflow file, build script, and package.json.
|
|
77
|
-
*/
|
|
78
|
-
async function setupStoreAutomation(owner, repo, outputChannel) {
|
|
79
|
-
const filesCreated = [];
|
|
80
|
-
try {
|
|
81
|
-
// Verify we have access to the repo (needs workflow scope to write .github/workflows)
|
|
82
|
-
await (0, github_1.getGitHubToken)(true, ['repo', 'user', 'workflow']);
|
|
83
|
-
const [repoInfo, currentUser] = await Promise.all([
|
|
84
|
-
(0, github_1.getRepo)(owner, repo),
|
|
85
|
-
(0, github_1.getGitHubUser)(),
|
|
86
|
-
]);
|
|
87
|
-
if (!repoInfo) {
|
|
88
|
-
return {
|
|
89
|
-
success: false,
|
|
90
|
-
message: `Repository ${owner}/${repo} not found or not accessible`,
|
|
91
|
-
filesCreated: [],
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Check if user has write access (must be owner or collaborator)
|
|
95
|
-
const isOwner = repoInfo.owner.login.toLowerCase() === currentUser.login.toLowerCase();
|
|
96
|
-
if (!isOwner) {
|
|
97
|
-
return {
|
|
98
|
-
success: false,
|
|
99
|
-
message: `You don't have write access to ${owner}/${repo}. You must be the repository owner to set up store automation.`,
|
|
100
|
-
filesCreated: [],
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
log(outputChannel, `[AgentHippo] Setting up store automation for ${owner}/${repo}...`);
|
|
104
|
-
// Get the default branch and check if repo has commits
|
|
105
|
-
let defaultBranch;
|
|
106
|
-
try {
|
|
107
|
-
defaultBranch = await (0, github_1.getDefaultBranch)(owner, repo);
|
|
108
|
-
log(outputChannel, `[AgentHippo] Default branch: ${defaultBranch}`);
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
return {
|
|
112
|
-
success: false,
|
|
113
|
-
message: `Repository ${owner}/${repo} appears to be empty (no commits). Please create an initial commit first (e.g., add a README).`,
|
|
114
|
-
filesCreated: [],
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
// Create a unique branch name (no slashes to avoid API issues)
|
|
118
|
-
const timestamp = Date.now();
|
|
119
|
-
const branchName = `agenthippo-store-setup-${timestamp}`;
|
|
120
|
-
// Create branch from default
|
|
121
|
-
log(outputChannel, `[AgentHippo] Creating branch: ${branchName}`);
|
|
122
|
-
await (0, github_1.createBranch)(owner, repo, branchName, defaultBranch);
|
|
123
|
-
// Load templates
|
|
124
|
-
const [workflowContent, scriptContent, packageContent] = await Promise.all([
|
|
125
|
-
loadTemplate('build-index.yml'),
|
|
126
|
-
loadTemplate('build-index.ts'),
|
|
127
|
-
loadTemplate('package.json'),
|
|
128
|
-
]);
|
|
129
|
-
// Prepare files to commit
|
|
130
|
-
const filesToCommit = [
|
|
131
|
-
{ path: '.github/workflows/build-index.yml', content: workflowContent },
|
|
132
|
-
{ path: 'scripts/build-index.ts', content: scriptContent },
|
|
133
|
-
];
|
|
134
|
-
filesCreated.push('.github/workflows/build-index.yml', 'scripts/build-index.ts');
|
|
135
|
-
// Only add package.json if it doesn't exist
|
|
136
|
-
const existingPackage = await (0, github_1.getFileContent)(owner, repo, 'package.json').catch(() => null);
|
|
137
|
-
if (!existingPackage) {
|
|
138
|
-
filesToCommit.push({ path: 'package.json', content: packageContent });
|
|
139
|
-
filesCreated.push('package.json');
|
|
140
|
-
}
|
|
141
|
-
// Commit all files in a single commit
|
|
142
|
-
log(outputChannel, `[AgentHippo] Committing ${filesToCommit.length} files...`);
|
|
143
|
-
await (0, github_1.commitMultipleFiles)(owner, repo, branchName, filesToCommit, 'chore: add AgentHippo store index automation', { scopes: ['repo', 'user', 'workflow'] });
|
|
144
|
-
for (const file of filesToCommit) {
|
|
145
|
-
// allow-any-unicode-next-line
|
|
146
|
-
log(outputChannel, `[AgentHippo] ✓ ${file.path}`);
|
|
147
|
-
}
|
|
148
|
-
if (existingPackage) {
|
|
149
|
-
log(outputChannel, `[AgentHippo] - package.json (already exists)`);
|
|
150
|
-
}
|
|
151
|
-
// Create pull request
|
|
152
|
-
log(outputChannel, `[AgentHippo] Creating pull request...`);
|
|
153
|
-
const pr = await (0, github_1.createPullRequest)(owner, repo, {
|
|
154
|
-
// allow-any-unicode-next-line
|
|
155
|
-
title: '🦛 Add AgentHippo Store Index Automation',
|
|
156
|
-
body: `## What's this?
|
|
1
|
+
/*! Copyright (c) 2026 AgentHippo.ai. All rights reserved. Proprietary; see LICENSE. */
|
|
2
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,i,r){r===void 0&&(r=i);var s=Object.getOwnPropertyDescriptor(e,i);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(t,r,s)}):(function(t,e,i,r){r===void 0&&(r=i),t[r]=e[i]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),__importStar=this&&this.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(i){var r=[];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[r.length]=s);return r},t(e)};return function(e){if(e&&e.__esModule)return e;var i={};if(e!=null)for(var r=t(e),s=0;s<r.length;s++)r[s]!=="default"&&__createBinding(i,e,r[s]);return __setModuleDefault(i,e),i}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupStoreAutomation=setupStoreAutomation,exports.triggerStoreWorkflow=triggerStoreWorkflow;const fs_1=require("fs"),path=__importStar(require("path")),github_1=require("../../agentpack/github"),utils_1=require("../../utils");function log(t,e){t&&(0,utils_1.logInfo)(t,e)}function getTemplatesDir(){return path.join(__dirname,"templates")}async function loadTemplate(t){const e=path.join(getTemplatesDir(),t);return await fs_1.promises.readFile(e,"utf8")}async function setupStoreAutomation(t,e,i){const r=[];try{await(0,github_1.getGitHubToken)(!0,["repo","user","workflow"]);const[s,a]=await Promise.all([(0,github_1.getRepo)(t,e),(0,github_1.getGitHubUser)()]);if(!s)return{success:!1,message:`Repository ${t}/${e} not found or not accessible`,filesCreated:[]};if(!(s.owner.login.toLowerCase()===a.login.toLowerCase()))return{success:!1,message:`You don't have write access to ${t}/${e}. You must be the repository owner to set up store automation.`,filesCreated:[]};log(i,`[AgentHippo] Setting up store automation for ${t}/${e}...`);let o;try{o=await(0,github_1.getDefaultBranch)(t,e),log(i,`[AgentHippo] Default branch: ${o}`)}catch{return{success:!1,message:`Repository ${t}/${e} appears to be empty (no commits). Please create an initial commit first (e.g., add a README).`,filesCreated:[]}}const n=`agenthippo-store-setup-${Date.now()}`;log(i,`[AgentHippo] Creating branch: ${n}`),await(0,github_1.createBranch)(t,e,n,o);const[f,g,d]=await Promise.all([loadTemplate("build-index.yml"),loadTemplate("build-index.ts"),loadTemplate("package.json")]),u=[{path:".github/workflows/build-index.yml",content:f},{path:"scripts/build-index.ts",content:g}];r.push(".github/workflows/build-index.yml","scripts/build-index.ts");const p=await(0,github_1.getFileContent)(t,e,"package.json").catch(()=>null);p||(u.push({path:"package.json",content:d}),r.push("package.json")),log(i,`[AgentHippo] Committing ${u.length} files...`),await(0,github_1.commitMultipleFiles)(t,e,n,u,"chore: add AgentHippo store index automation",{scopes:["repo","user","workflow"]});for(const l of u)log(i,`[AgentHippo] \u2713 ${l.path}`);p&&log(i,"[AgentHippo] - package.json (already exists)"),log(i,"[AgentHippo] Creating pull request...");const c=await(0,github_1.createPullRequest)(t,e,{title:"\u{1F99B} Add AgentHippo Store Index Automation",body:`## What's this?
|
|
157
3
|
|
|
158
4
|
This PR adds automated store index building for AgentHippo.
|
|
159
5
|
|
|
160
6
|
### Files added:
|
|
161
|
-
${
|
|
7
|
+
${r.map(l=>`- \`${l}\``).join(`
|
|
8
|
+
`)}
|
|
162
9
|
|
|
163
10
|
### What happens next?
|
|
164
11
|
|
|
165
12
|
1. **Merge this PR** to enable the automation
|
|
166
|
-
2. The GitHub Action will build the Orama search index on every push to \`${
|
|
13
|
+
2. The GitHub Action will build the Orama search index on every push to \`${o}\`
|
|
167
14
|
3. The index is committed to \`dist/\` and deployed to GitHub Pages (if enabled)
|
|
168
15
|
|
|
169
16
|
### How it works
|
|
@@ -176,60 +23,8 @@ ${filesCreated.map(f => `- \`${f}\``).join('\n')}
|
|
|
176
23
|
### Optional: Enable GitHub Pages (public repos)
|
|
177
24
|
|
|
178
25
|
For faster index loading on public repos:
|
|
179
|
-
1. Go to Settings
|
|
26
|
+
1. Go to Settings \u2192 Pages
|
|
180
27
|
2. Set Source to "GitHub Actions"
|
|
181
28
|
|
|
182
29
|
---
|
|
183
|
-
*Generated by [AgentHippo](https://github.com/agenthippoai/agentide)*`,
|
|
184
|
-
head: branchName,
|
|
185
|
-
base: defaultBranch,
|
|
186
|
-
});
|
|
187
|
-
// allow-any-unicode-next-line
|
|
188
|
-
log(outputChannel, `[AgentHippo] ✅ Pull request created: ${pr.html_url}`);
|
|
189
|
-
return {
|
|
190
|
-
success: true,
|
|
191
|
-
message: `Pull request #${pr.number} created successfully!`,
|
|
192
|
-
filesCreated,
|
|
193
|
-
pullRequestUrl: pr.html_url,
|
|
194
|
-
pullRequestNumber: pr.number,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
catch (e) {
|
|
198
|
-
const errorMsg = e instanceof Error ? e.message : String(e);
|
|
199
|
-
// allow-any-unicode-next-line
|
|
200
|
-
log(outputChannel, `[AgentHippo] ❌ Error: ${errorMsg}`);
|
|
201
|
-
return {
|
|
202
|
-
success: false,
|
|
203
|
-
message: errorMsg,
|
|
204
|
-
filesCreated,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Trigger the store index workflow manually.
|
|
210
|
-
*/
|
|
211
|
-
async function triggerStoreWorkflow(owner, repo, outputChannel) {
|
|
212
|
-
try {
|
|
213
|
-
const token = await (0, github_1.getGitHubToken)();
|
|
214
|
-
const defaultBranch = await (0, github_1.getDefaultBranch)(owner, repo);
|
|
215
|
-
const response = await fetch(`https://api.github.com/repos/${owner}/${repo}/actions/workflows/build-index.yml/dispatches`, {
|
|
216
|
-
method: 'POST',
|
|
217
|
-
headers: {
|
|
218
|
-
'Authorization': `Bearer ${token}`,
|
|
219
|
-
'Accept': 'application/vnd.github.v3+json',
|
|
220
|
-
'Content-Type': 'application/json',
|
|
221
|
-
},
|
|
222
|
-
body: JSON.stringify({ ref: defaultBranch }),
|
|
223
|
-
});
|
|
224
|
-
if (response.ok || response.status === 204) {
|
|
225
|
-
log(outputChannel, `[AgentHippo] Workflow triggered successfully`);
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
log(outputChannel, `[AgentHippo] Failed to trigger workflow: ${response.status}`);
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
catch (e) {
|
|
232
|
-
log(outputChannel, `[AgentHippo] Error triggering workflow: ${e}`);
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
30
|
+
*Generated by [AgentHippo](https://github.com/agenthippoai/agentide)*`,head:n,base:o});return log(i,`[AgentHippo] \u2705 Pull request created: ${c.html_url}`),{success:!0,message:`Pull request #${c.number} created successfully!`,filesCreated:r,pullRequestUrl:c.html_url,pullRequestNumber:c.number}}catch(s){const a=s instanceof Error?s.message:String(s);return log(i,`[AgentHippo] \u274C Error: ${a}`),{success:!1,message:a,filesCreated:r}}}async function triggerStoreWorkflow(t,e,i){try{const r=await(0,github_1.getGitHubToken)(),s=await(0,github_1.getDefaultBranch)(t,e),a=await fetch(`https://api.github.com/repos/${t}/${e}/actions/workflows/build-index.yml/dispatches`,{method:"POST",headers:{Authorization:`Bearer ${r}`,Accept:"application/vnd.github.v3+json","Content-Type":"application/json"},body:JSON.stringify({ref:s})});return a.ok||a.status===204?(log(i,"[AgentHippo] Workflow triggered successfully"),!0):(log(i,`[AgentHippo] Failed to trigger workflow: ${a.status}`),!1)}catch(r){return log(i,`[AgentHippo] Error triggering workflow: ${r}`),!1}}
|