@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,301 +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
|
-
/**
|
|
40
|
-
* Headless Sync Tests
|
|
41
|
-
*
|
|
42
|
-
* Tests for the syncPackToWorkspace function that syncs agent pack content
|
|
43
|
-
* to workspace derived directories (.claude/, .codex/).
|
|
44
|
-
*/
|
|
45
|
-
require("mocha");
|
|
46
|
-
const assert = __importStar(require("assert"));
|
|
47
|
-
const fs = __importStar(require("fs"));
|
|
48
|
-
const fs_1 = require("fs");
|
|
49
|
-
const path = __importStar(require("path"));
|
|
50
|
-
const os = __importStar(require("os"));
|
|
51
|
-
const sync_1 = require("../headless/sync");
|
|
52
|
-
const shared_1 = require("../shared");
|
|
53
|
-
const paths_1 = require("../agentpack/paths");
|
|
54
|
-
const branding_1 = require("../branding");
|
|
55
|
-
const utils_1 = require("../utils");
|
|
56
|
-
// -------------------------------------------------------------------------
|
|
57
|
-
// Test Helpers
|
|
58
|
-
// -------------------------------------------------------------------------
|
|
59
|
-
function makeTempDir(prefix) {
|
|
60
|
-
return fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
61
|
-
}
|
|
62
|
-
function createTestLogger() {
|
|
63
|
-
const messages = [];
|
|
64
|
-
return {
|
|
65
|
-
messages,
|
|
66
|
-
info: (msg) => messages.push(msg),
|
|
67
|
-
appendLine: (msg) => messages.push(msg),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
async function cleanupDir(dir) {
|
|
71
|
-
try {
|
|
72
|
-
await fs_1.promises.rm(dir, { recursive: true, force: true });
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// ignore
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// -------------------------------------------------------------------------
|
|
79
|
-
// Tests
|
|
80
|
-
// -------------------------------------------------------------------------
|
|
81
|
-
suite('Headless Sync - syncPackToWorkspace', () => {
|
|
82
|
-
let workspaceRoot;
|
|
83
|
-
let packPath;
|
|
84
|
-
let logger;
|
|
85
|
-
setup(async () => {
|
|
86
|
-
workspaceRoot = makeTempDir('headless-sync-workspace-');
|
|
87
|
-
packPath = makeTempDir('headless-sync-pack-');
|
|
88
|
-
logger = createTestLogger();
|
|
89
|
-
});
|
|
90
|
-
teardown(async () => {
|
|
91
|
-
await cleanupDir(workspaceRoot);
|
|
92
|
-
await cleanupDir(packPath);
|
|
93
|
-
});
|
|
94
|
-
test('creates derived directory for claude engine', async () => {
|
|
95
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test Agent');
|
|
96
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
97
|
-
const derivedDir = path.join(workspaceRoot, shared_1.AGENT_ENGINES.claude.workspaceDir);
|
|
98
|
-
assert.ok(fs.existsSync(derivedDir), 'Claude derived directory should exist');
|
|
99
|
-
});
|
|
100
|
-
test('creates derived directory for codex engine', async () => {
|
|
101
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test Agent');
|
|
102
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'codex', logger);
|
|
103
|
-
const derivedDir = path.join(workspaceRoot, shared_1.AGENT_ENGINES.codex.workspaceDir);
|
|
104
|
-
assert.ok(fs.existsSync(derivedDir), 'Codex derived directory should exist');
|
|
105
|
-
});
|
|
106
|
-
test('syncs AGENTS.md to claude rules file (CLAUDE.md)', async () => {
|
|
107
|
-
const content = '# My Agent\n\nThis is a test agent.';
|
|
108
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), content);
|
|
109
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
110
|
-
const rulesFile = path.join(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
111
|
-
assert.ok(fs.existsSync(rulesFile), 'CLAUDE.md should exist');
|
|
112
|
-
const actual = await fs_1.promises.readFile(rulesFile, 'utf8');
|
|
113
|
-
assert.strictEqual(actual, content);
|
|
114
|
-
});
|
|
115
|
-
test('syncs AGENTS.md to codex rules file (AGENTS.md)', async () => {
|
|
116
|
-
const content = '# My Codex Agent\n\nThis is a test agent.';
|
|
117
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), content);
|
|
118
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'codex', logger);
|
|
119
|
-
const rulesFile = path.join(workspaceRoot, '.codex', 'AGENTS.md');
|
|
120
|
-
assert.ok(fs.existsSync(rulesFile), 'AGENTS.md should exist in .codex/');
|
|
121
|
-
const actual = await fs_1.promises.readFile(rulesFile, 'utf8');
|
|
122
|
-
assert.strictEqual(actual, content);
|
|
123
|
-
});
|
|
124
|
-
test('combines AGENTS.md with context.md', async () => {
|
|
125
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Agent Rules');
|
|
126
|
-
await fs_1.promises.writeFile(path.join(packPath, 'context.md'), '## Context Section');
|
|
127
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
128
|
-
const rulesFile = path.join(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
129
|
-
const content = await fs_1.promises.readFile(rulesFile, 'utf8');
|
|
130
|
-
assert.ok(content.includes('# Agent Rules'), 'Should include AGENTS.md content');
|
|
131
|
-
assert.ok(content.includes('---'), 'Should have separator');
|
|
132
|
-
assert.ok(content.includes('## Context Section'), 'Should include context.md content');
|
|
133
|
-
});
|
|
134
|
-
test('syncs skills directory via symlinks', async () => {
|
|
135
|
-
// Create pack with skills
|
|
136
|
-
const skillsDir = path.join(packPath, 'skills');
|
|
137
|
-
await fs_1.promises.mkdir(skillsDir, { recursive: true });
|
|
138
|
-
await fs_1.promises.writeFile(path.join(skillsDir, 'test-skill.md'), '# Test Skill');
|
|
139
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
140
|
-
const derivedSkillsDir = path.join(workspaceRoot, '.claude', 'skills');
|
|
141
|
-
assert.ok(fs.existsSync(derivedSkillsDir), 'skills directory should exist');
|
|
142
|
-
const skillFile = path.join(derivedSkillsDir, 'test-skill.md');
|
|
143
|
-
assert.ok(fs.existsSync(skillFile), 'skill file should exist');
|
|
144
|
-
const content = await fs_1.promises.readFile(skillFile, 'utf8');
|
|
145
|
-
assert.strictEqual(content, '# Test Skill');
|
|
146
|
-
});
|
|
147
|
-
test('syncs rules fragments directory', async () => {
|
|
148
|
-
// Create pack with rule fragments
|
|
149
|
-
const rulesDir = path.join(packPath, 'rules');
|
|
150
|
-
await fs_1.promises.mkdir(rulesDir, { recursive: true });
|
|
151
|
-
await fs_1.promises.writeFile(path.join(rulesDir, 'coding-style.md'), '# Coding Style\n\nUse TypeScript.');
|
|
152
|
-
await fs_1.promises.writeFile(path.join(rulesDir, 'testing.md'), '# Testing\n\nWrite tests.');
|
|
153
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
154
|
-
const derivedRulesDir = path.join(workspaceRoot, '.claude', 'rules');
|
|
155
|
-
assert.ok(fs.existsSync(derivedRulesDir), 'rules directory should exist');
|
|
156
|
-
assert.ok(fs.existsSync(path.join(derivedRulesDir, 'coding-style.md')));
|
|
157
|
-
assert.ok(fs.existsSync(path.join(derivedRulesDir, 'testing.md')));
|
|
158
|
-
});
|
|
159
|
-
test('ignores non-.md files in rules directory', async () => {
|
|
160
|
-
const rulesDir = path.join(packPath, 'rules');
|
|
161
|
-
await fs_1.promises.mkdir(rulesDir, { recursive: true });
|
|
162
|
-
await fs_1.promises.writeFile(path.join(rulesDir, 'valid.md'), '# Valid');
|
|
163
|
-
await fs_1.promises.writeFile(path.join(rulesDir, 'ignore.txt'), 'Should be ignored');
|
|
164
|
-
await fs_1.promises.writeFile(path.join(rulesDir, 'ignore.json'), '{}');
|
|
165
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
166
|
-
const derivedRulesDir = path.join(workspaceRoot, '.claude', 'rules');
|
|
167
|
-
assert.ok(fs.existsSync(path.join(derivedRulesDir, 'valid.md')));
|
|
168
|
-
assert.ok(!fs.existsSync(path.join(derivedRulesDir, 'ignore.txt')), '.txt files should not be synced');
|
|
169
|
-
assert.ok(!fs.existsSync(path.join(derivedRulesDir, 'ignore.json')), '.json files should not be synced');
|
|
170
|
-
});
|
|
171
|
-
test('creates .gitignore with derived directories', async () => {
|
|
172
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test');
|
|
173
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
174
|
-
const gitignorePath = path.join(workspaceRoot, '.gitignore');
|
|
175
|
-
assert.ok(fs.existsSync(gitignorePath), '.gitignore should exist');
|
|
176
|
-
const content = await fs_1.promises.readFile(gitignorePath, 'utf8');
|
|
177
|
-
assert.ok(content.includes('.claude'), '.gitignore should include .claude');
|
|
178
|
-
assert.ok(content.includes('.codex'), '.gitignore should include .codex');
|
|
179
|
-
});
|
|
180
|
-
test('creates .gitignore with custom engine workspace dirs', async () => {
|
|
181
|
-
const cursorEngineDir = path.join(workspaceRoot, branding_1.AGENTIDE_DIR_NAME, 'engines', 'cursor');
|
|
182
|
-
await fs_1.promises.mkdir(cursorEngineDir, { recursive: true });
|
|
183
|
-
await fs_1.promises.writeFile(path.join(cursorEngineDir, 'engine.manifest.json'), JSON.stringify({
|
|
184
|
-
version: 2,
|
|
185
|
-
id: 'cursor',
|
|
186
|
-
entry: './engine.mjs',
|
|
187
|
-
workspaceSync: {
|
|
188
|
-
enabled: true,
|
|
189
|
-
dir: '.cursor',
|
|
190
|
-
rulesFile: 'CURSOR.md',
|
|
191
|
-
includeSkills: true,
|
|
192
|
-
includeRules: true,
|
|
193
|
-
},
|
|
194
|
-
promptInjection: { mode: 'none' },
|
|
195
|
-
}));
|
|
196
|
-
await (0, utils_1.ensureWorkspaceGitAndGitignore)(workspaceRoot, logger);
|
|
197
|
-
const content = await fs_1.promises.readFile(path.join(workspaceRoot, '.gitignore'), 'utf8');
|
|
198
|
-
assert.ok(content.includes('.cursor'), '.gitignore should include custom engine workspace dir');
|
|
199
|
-
});
|
|
200
|
-
test('handles empty pack (no AGENTS.md)', async () => {
|
|
201
|
-
// Pack with no files should not throw
|
|
202
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
203
|
-
// Derived directory should still be created
|
|
204
|
-
const derivedDir = path.join(workspaceRoot, shared_1.AGENT_ENGINES.claude.workspaceDir);
|
|
205
|
-
assert.ok(fs.existsSync(derivedDir), 'Derived directory should still be created');
|
|
206
|
-
});
|
|
207
|
-
test('throws for unknown engine', async () => {
|
|
208
|
-
await assert.rejects(async () => (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'unknown', logger), /Unknown engine/);
|
|
209
|
-
});
|
|
210
|
-
test('logs sync operations', async () => {
|
|
211
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test');
|
|
212
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
213
|
-
assert.ok(logger.messages.length > 0, 'Should have logged messages');
|
|
214
|
-
assert.ok(logger.messages.some(m => m.includes('Synced rules')), 'Should log rules sync');
|
|
215
|
-
assert.ok(logger.messages.some(m => m.includes('synced to workspace')), 'Should log completion');
|
|
216
|
-
});
|
|
217
|
-
test('re-syncing updates content', async () => {
|
|
218
|
-
// Initial sync
|
|
219
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Version 1');
|
|
220
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
221
|
-
const rulesFile = path.join(workspaceRoot, '.claude', 'CLAUDE.md');
|
|
222
|
-
let content = await fs_1.promises.readFile(rulesFile, 'utf8');
|
|
223
|
-
assert.ok(content.includes('Version 1'));
|
|
224
|
-
// Update and re-sync
|
|
225
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Version 2');
|
|
226
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', logger);
|
|
227
|
-
content = await fs_1.promises.readFile(rulesFile, 'utf8');
|
|
228
|
-
assert.ok(content.includes('Version 2'), 'Content should be updated');
|
|
229
|
-
});
|
|
230
|
-
test('syncs pack MCP from agent.yaml spec.mcp to workspace .mcp.json', async () => {
|
|
231
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# MCP pack');
|
|
232
|
-
await fs_1.promises.mkdir(path.join(packPath, 'mcp'), { recursive: true });
|
|
233
|
-
await fs_1.promises.writeFile(path.join(packPath, 'mcp', 'db.json'), JSON.stringify({ mcpServers: { db: { command: 'echo', args: ['db'] } } }, null, 2));
|
|
234
|
-
await fs_1.promises.writeFile(path.join(packPath, 'agent.yaml'), [
|
|
235
|
-
'apiVersion: agenthippo.ai/v1',
|
|
236
|
-
'kind: Agent',
|
|
237
|
-
'metadata:',
|
|
238
|
-
' name: test-pack',
|
|
239
|
-
' version: 0.1.0',
|
|
240
|
-
'spec:',
|
|
241
|
-
' engine: cursor',
|
|
242
|
-
' mcp:',
|
|
243
|
-
' - name: db',
|
|
244
|
-
' config: ./mcp/db.json',
|
|
245
|
-
].join('\n'));
|
|
246
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'cursor', logger);
|
|
247
|
-
const mcpPath = path.join(workspaceRoot, paths_1.AGENT_CONSTANTS.AGENTIDE_DIR_NAME, paths_1.AGENT_CONSTANTS.AGENTS_DIR, 'test-pack', paths_1.AGENT_CONSTANTS.MCP_DIR, '.mcp.json');
|
|
248
|
-
assert.ok(fs.existsSync(mcpPath), '.mcp.json should exist');
|
|
249
|
-
const cfg = JSON.parse(await fs_1.promises.readFile(mcpPath, 'utf8'));
|
|
250
|
-
assert.ok(cfg.mcpServers?.db, 'should merge db server');
|
|
251
|
-
});
|
|
252
|
-
test('does not create self-referential skill symlinks when pack lives under agentide agents dir', async () => {
|
|
253
|
-
const inWorkspacePackPath = path.join(workspaceRoot, paths_1.AGENT_CONSTANTS.AGENTIDE_DIR_NAME, paths_1.AGENT_CONSTANTS.AGENTS_DIR, 'test-pack');
|
|
254
|
-
const skillDir = path.join(inWorkspacePackPath, paths_1.AGENT_CONSTANTS.SKILLS_DIR, 'demo-skill');
|
|
255
|
-
await fs_1.promises.mkdir(skillDir, { recursive: true });
|
|
256
|
-
await fs_1.promises.writeFile(path.join(inWorkspacePackPath, 'AGENTS.md'), '# In-workspace pack');
|
|
257
|
-
await fs_1.promises.writeFile(path.join(skillDir, 'SKILL.md'), '# Demo skill');
|
|
258
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, inWorkspacePackPath, 'test-pack', 'codex', logger);
|
|
259
|
-
const skillMd = path.join(skillDir, 'SKILL.md');
|
|
260
|
-
const stat = await fs_1.promises.lstat(skillMd);
|
|
261
|
-
assert.ok(stat.isFile(), 'SKILL.md should remain a real file, not a symlink loop');
|
|
262
|
-
const content = await fs_1.promises.readFile(skillMd, 'utf8');
|
|
263
|
-
assert.strictEqual(content, '# Demo skill');
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
suite('Headless Sync - LoggerLike interface', () => {
|
|
267
|
-
test('works with appendLine (vscode.OutputChannel style)', async () => {
|
|
268
|
-
const workspaceRoot = makeTempDir('headless-sync-logger-');
|
|
269
|
-
const packPath = makeTempDir('headless-sync-logger-pack-');
|
|
270
|
-
try {
|
|
271
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test');
|
|
272
|
-
const messages = [];
|
|
273
|
-
const outputChannelStyle = {
|
|
274
|
-
appendLine: (msg) => messages.push(msg),
|
|
275
|
-
};
|
|
276
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', outputChannelStyle);
|
|
277
|
-
assert.ok(messages.length > 0, 'Should have logged via appendLine');
|
|
278
|
-
}
|
|
279
|
-
finally {
|
|
280
|
-
await cleanupDir(workspaceRoot);
|
|
281
|
-
await cleanupDir(packPath);
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
test('works with info (Logger interface style)', async () => {
|
|
285
|
-
const workspaceRoot = makeTempDir('headless-sync-logger-');
|
|
286
|
-
const packPath = makeTempDir('headless-sync-logger-pack-');
|
|
287
|
-
try {
|
|
288
|
-
await fs_1.promises.writeFile(path.join(packPath, 'AGENTS.md'), '# Test');
|
|
289
|
-
const messages = [];
|
|
290
|
-
const loggerStyle = {
|
|
291
|
-
info: (msg) => messages.push(msg),
|
|
292
|
-
};
|
|
293
|
-
await (0, sync_1.syncPackToWorkspace)(workspaceRoot, packPath, 'test-pack', 'claude', loggerStyle);
|
|
294
|
-
assert.ok(messages.length > 0, 'Should have logged via info');
|
|
295
|
-
}
|
|
296
|
-
finally {
|
|
297
|
-
await cleanupDir(workspaceRoot);
|
|
298
|
-
await cleanupDir(packPath);
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createTestAgentYaml = createTestAgentYaml;
|
|
7
|
-
/**
|
|
8
|
-
* Build a test-friendly Agent manifest YAML string.
|
|
9
|
-
* Keeps repetitive manifest snippets centralized for tests.
|
|
10
|
-
*/
|
|
11
|
-
function createTestAgentYaml({ name, version, engine, quoteVersion = false, description, model, includeSkills = false, fileAccess, visibility, }) {
|
|
12
|
-
const lines = [
|
|
13
|
-
'apiVersion: agenthippo.ai/v1',
|
|
14
|
-
'kind: Agent',
|
|
15
|
-
'metadata:',
|
|
16
|
-
` name: ${name}`,
|
|
17
|
-
` version: ${quoteVersion ? `"${version}"` : version}`,
|
|
18
|
-
...(description ? [` description: ${description}`] : []),
|
|
19
|
-
'spec:',
|
|
20
|
-
` engine: ${engine}`,
|
|
21
|
-
...(model ? [` model: ${model}`] : []),
|
|
22
|
-
...(includeSkills ? [' skills: []'] : []),
|
|
23
|
-
...(fileAccess ? [' permissions:', ` fileAccess: ${fileAccess}`] : []),
|
|
24
|
-
...(visibility ? [` visibility: ${visibility}`] : []),
|
|
25
|
-
];
|
|
26
|
-
return `${lines.join('\n')}\n`;
|
|
27
|
-
}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* IdP Init Test Suite (PLAN/deploy.md — "customer 0")
|
|
4
|
-
*
|
|
5
|
-
* Verifies `agenthippo idp init` generates a self-contained stack: no repo dependency in the
|
|
6
|
-
* auth-broker image, identity routes reused verbatim from renderIdentityLayer (no drift risk),
|
|
7
|
-
* and valid YAML/bash throughout.
|
|
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
|
-
require("mocha");
|
|
44
|
-
const assert = __importStar(require("assert"));
|
|
45
|
-
const fs = __importStar(require("fs"));
|
|
46
|
-
const os = __importStar(require("os"));
|
|
47
|
-
const path = __importStar(require("path"));
|
|
48
|
-
const child_process_1 = require("child_process");
|
|
49
|
-
const yaml = __importStar(require("js-yaml"));
|
|
50
|
-
const idp_init_1 = require("../cli/idp-init");
|
|
51
|
-
const idp_1 = require("../cli/commands/idp");
|
|
52
|
-
suite('idp-init: renderIdpArtifacts', () => {
|
|
53
|
-
test('generates a self-contained stack — no monorepo build context', () => {
|
|
54
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
55
|
-
assert.ok(files['Dockerfile.auth-broker'].includes('FROM ghcr.io/agenthippoai/runtime'), 'auth-broker image must come from the published runtime image, not repo build artifacts');
|
|
56
|
-
assert.ok(!files['Dockerfile.auth-broker'].includes('extensions/agentide/dist'), 'must not reference this repo\'s local build output — a customer never has it');
|
|
57
|
-
assert.ok(files['docker-compose.yml'].includes('dockerfile: Dockerfile.auth-broker')
|
|
58
|
-
&& files['docker-compose.yml'].includes('context: .'), 'auth-broker builds from the generated dir itself, not a monorepo path');
|
|
59
|
-
});
|
|
60
|
-
test('docker-compose.yml is valid YAML with the expected services and networks', () => {
|
|
61
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
62
|
-
const compose = yaml.load(files['docker-compose.yml']);
|
|
63
|
-
assert.deepStrictEqual(Object.keys(compose.services), ['oauth2-proxy', 'auth-broker', 'caddy', 'cloudflared']);
|
|
64
|
-
assert.ok(!('agent' in compose.services), 'the IdP runs no agent');
|
|
65
|
-
assert.deepStrictEqual(Object.keys(compose.networks), ['default', 'colocate']);
|
|
66
|
-
assert.ok(files['docker-compose.yml'].includes('name: agenthippo-idp-colocate'));
|
|
67
|
-
});
|
|
68
|
-
test('Caddyfile reuses renderIdentityLayer verbatim — self-issued, no agent backend', () => {
|
|
69
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
70
|
-
const caddy = files['Caddyfile'];
|
|
71
|
-
assert.ok(caddy.includes('import agents/*.caddy'), 'colocated agents import in');
|
|
72
|
-
assert.ok(caddy.includes('handle /oauth/authorize {') && caddy.includes('handle /oauth/browser-login {'));
|
|
73
|
-
assert.ok(caddy.includes('forward_auth oauth2-proxy:4180'), 'self-issued: gates via oauth2-proxy');
|
|
74
|
-
assert.ok(caddy.includes('reverse_proxy auth-broker:9780'), 'health checks the broker, not an agent');
|
|
75
|
-
assert.ok(caddy.includes('respond "not_found" 404'), 'no /v1/* API here — Bearer requests 404, not silently passed through');
|
|
76
|
-
assert.ok(caddy.includes('respond "AgentHippo IdP" 200'), 'browser catch-all, past the SSO gate');
|
|
77
|
-
assert.ok(caddy.includes('http://{$AGENTHIPPO_PUBLIC_HOSTNAME} {') && !caddy.includes('https://{$AGENTHIPPO_PUBLIC_HOSTNAME}'), 'plain HTTP — auto_https is off, TLS terminates in front');
|
|
78
|
-
});
|
|
79
|
-
test('.env.auth.example carries the shared JWT secret + Google OAuth client, no fed vars', () => {
|
|
80
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
81
|
-
const auth = files['.env.auth.example'];
|
|
82
|
-
assert.ok(auth.includes('AGENTHIPPO_AUTH_JWT_SECRET') && auth.includes('OAUTH2_PROXY_CLIENT_ID'));
|
|
83
|
-
assert.ok(!auth.includes('AGENTHIPPO_AUTH_IDP_URL'), 'the IdP is not itself federated against anything');
|
|
84
|
-
});
|
|
85
|
-
test('cookie domain defaults to the hostname\'s own parent domain when not given explicitly', () => {
|
|
86
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
87
|
-
assert.ok(files['.env.auth.example'].includes('AGENTHIPPO_AUTH_COOKIE_DOMAIN=.corp.example'));
|
|
88
|
-
});
|
|
89
|
-
test('explicit cookieDomain overrides the derived default', () => {
|
|
90
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.eu.corp.example', cookieDomain: '.corp.example' });
|
|
91
|
-
assert.ok(files['.env.auth.example'].includes('AGENTHIPPO_AUTH_COOKIE_DOMAIN=.corp.example'));
|
|
92
|
-
});
|
|
93
|
-
test('run.sh is valid bash and reflects the hostname', () => {
|
|
94
|
-
const files = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' });
|
|
95
|
-
assert.doesNotThrow(() => (0, child_process_1.execFileSync)('bash', ['-n', '-c', files['run.sh']]));
|
|
96
|
-
assert.ok(files['run.sh'].includes('auth.corp.example'));
|
|
97
|
-
});
|
|
98
|
-
// Bare metal / BYO nginx or ALB (e.g. Hetzner): run.sh must not hard-require a Cloudflare
|
|
99
|
-
// Tunnel, and Caddy's host port must be reconfigurable when 80/443 are already taken by the
|
|
100
|
-
// operator's own reverse proxy.
|
|
101
|
-
test('run.sh branches on an explicit tunnel-credentials path argument, not a fixed file location', () => {
|
|
102
|
-
const sh = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' })['run.sh'];
|
|
103
|
-
assert.ok(sh.includes('if [[ $# -ge 1 ]]; then'), 'branches on whether an argument was passed');
|
|
104
|
-
assert.ok(!sh.includes('-f "$HOME/.agent-hippo/tunnel-credentials.json"'), 'must not infer tunnel mode from a fixed default file path');
|
|
105
|
-
assert.ok(sh.includes('AGENTHIPPO_TUNNEL_CREDENTIALS="$1"'), 'the argument becomes the credentials path');
|
|
106
|
-
assert.ok(sh.includes('docker compose --profile edge --profile tunnel up -d --build'));
|
|
107
|
-
assert.ok(sh.includes('docker compose --profile edge up -d --build'), 'no-argument branch: --profile edge only, no --profile tunnel');
|
|
108
|
-
});
|
|
109
|
-
test('run.sh fails loudly if a given tunnel-credentials path doesn\'t exist', () => {
|
|
110
|
-
const sh = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' })['run.sh'];
|
|
111
|
-
assert.ok(sh.includes('[[ -f "$AGENTHIPPO_TUNNEL_CREDENTIALS" ]] || {'));
|
|
112
|
-
assert.ok(sh.includes('exit 1'));
|
|
113
|
-
});
|
|
114
|
-
test('docker-compose.yml wires the cloudflared credentials mount to AGENTHIPPO_TUNNEL_CREDENTIALS', () => {
|
|
115
|
-
const compose = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' })['docker-compose.yml'];
|
|
116
|
-
assert.ok(compose.includes('${AGENTHIPPO_TUNNEL_CREDENTIALS:-${HOME}/.agent-hippo/tunnel-credentials.json}'));
|
|
117
|
-
});
|
|
118
|
-
test('Caddy host ports are configurable via AGENTHIPPO_CADDY_HTTP_PORT/_HTTPS_PORT (Hetzner: 80/443 may already be taken)', () => {
|
|
119
|
-
const compose = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' })['docker-compose.yml'];
|
|
120
|
-
assert.ok(compose.includes('${AGENTHIPPO_CADDY_HTTP_PORT:-80}:80'));
|
|
121
|
-
assert.ok(compose.includes('${AGENTHIPPO_CADDY_HTTPS_PORT:-443}:443'));
|
|
122
|
-
});
|
|
123
|
-
test('README documents both the Cloudflare Tunnel path and the bare-metal/BYO-nginx path', () => {
|
|
124
|
-
const readme = (0, idp_init_1.renderIdpArtifacts)({ hostname: 'auth.corp.example' })['README.md'];
|
|
125
|
-
assert.ok(readme.includes('Cloudflare Tunnel'));
|
|
126
|
-
assert.ok(readme.includes('Bare metal') || readme.includes('BYO nginx'));
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
suite('idp-init: idpCommand writes files to disk', () => {
|
|
130
|
-
let outDir;
|
|
131
|
-
setup(() => {
|
|
132
|
-
outDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ah-idp-'));
|
|
133
|
-
});
|
|
134
|
-
teardown(() => {
|
|
135
|
-
fs.rmSync(outDir, { recursive: true, force: true });
|
|
136
|
-
});
|
|
137
|
-
test('writes every generated file under --out', async () => {
|
|
138
|
-
await (0, idp_1.idpCommand)('init', { hostname: 'auth.corp.example', out: outDir });
|
|
139
|
-
for (const rel of ['docker-compose.yml', 'Dockerfile.auth-broker', 'Caddyfile', '.env.example', '.env.auth.example', 'run.sh', 'agents/README.md', 'README.md']) {
|
|
140
|
-
assert.ok(fs.existsSync(path.join(outDir, rel)), `${rel} should be written`);
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
test('refuses to overwrite existing files without --force', async () => {
|
|
144
|
-
await (0, idp_1.idpCommand)('init', { hostname: 'auth.corp.example', out: outDir });
|
|
145
|
-
fs.writeFileSync(path.join(outDir, 'README.md'), 'hand-edited\n');
|
|
146
|
-
await (0, idp_1.idpCommand)('init', { hostname: 'auth.corp.example', out: outDir });
|
|
147
|
-
assert.strictEqual(fs.readFileSync(path.join(outDir, 'README.md'), 'utf8'), 'hand-edited\n');
|
|
148
|
-
await (0, idp_1.idpCommand)('init', { hostname: 'auth.corp.example', out: outDir, force: true });
|
|
149
|
-
assert.notStrictEqual(fs.readFileSync(path.join(outDir, 'README.md'), 'utf8'), 'hand-edited\n');
|
|
150
|
-
});
|
|
151
|
-
});
|