@agenthippo-ai/agenthippo 1.110.9 → 1.110.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/agentpack/types.js +2 -5
- package/out/analytics/dashboard/artifactManager.js +2 -439
- package/out/analytics/dashboard/fleetDisplayUtils.js +2 -162
- package/out/analytics/dashboard/fleetOrchestrator.js +3 -142
- package/out/analytics/dashboard/fleetRegistry.js +2 -79
- package/out/analytics/dashboard/fleetRowDefaults.js +2 -87
- package/out/analytics/dashboard/fleetScriptAdapter.js +2 -146
- package/out/analytics/dashboard/fleetTypes.js +2 -29
- package/out/analytics/dashboard/index.js +2 -17
- package/out/analytics/dashboard/indexingService.js +2 -422
- package/out/analytics/dashboard/localFleetAdapter.js +2 -222
- package/out/analytics/dashboard/performanceMonitor.js +5 -76
- package/out/analytics/dashboard/processManager.js +2 -209
- package/out/analytics/dashboard/provider.js +38 -3817
- package/out/analytics/dashboard/queryRunner.js +62 -750
- package/out/analytics/dashboard/scheduledFleetStorage.js +2 -241
- package/out/analytics/dashboard/sessionJsonlFleet.js +3 -204
- package/out/analytics/dashboard/teamViewDiscovery.js +2 -106
- package/out/analytics/dashboard/webview/panel.js +34 -2318
- package/out/analytics/dashboard/webview/runtime-bridge.js +2 -82
- package/out/analytics/lifecycle.js +2 -43
- package/out/analytics/service.js +8 -1277
- package/out/auth/authBaseUrl.js +2 -59
- package/out/auth/bootstrapApply.js +2 -71
- package/out/auth/brokerClient.js +2 -160
- package/out/auth/callbackUri.js +2 -59
- package/out/auth/githubStoreGate.js +2 -70
- package/out/auth/loopbackAuthServer.js +4 -159
- package/out/auth/onboardingPrompt.js +2 -112
- package/out/auth/pkce.js +2 -9
- package/out/auth/provider.js +2 -226
- package/out/auth/sessionStore.js +2 -156
- package/out/auth/signInFlow.js +2 -183
- package/out/cli/index.js +619 -551
- package/out/cli/run-custom-engine-runner.js +3 -318
- package/out/cli/vscode-shim.js +2 -86
- package/out/engines/factory.js +2 -45
- package/out/engines/types.js +2 -17
- package/out/examples/run-headless-repl.js +6 -286
- package/out/examples/run-headless.js +2 -187
- package/out/extension.js +32 -4473
- package/out/gateway/gatewayRouteIndex.js +6 -371
- package/out/gateway/gatewaySessionStore.js +3 -243
- package/out/gateway/index.js +2 -31
- package/out/gateway/resetMappings.js +2 -52
- package/out/gateway/service.js +5 -1249
- package/out/mcp/publish.js +2 -143
- package/out/remote/handleRemoteChat.js +2 -169
- package/out/remote/remotePackStatusBar.js +3 -103
- package/out/remote/remoteTrust.js +6 -277
- package/out/remote/serveClient.js +4 -277
- package/out/remoteSkills.js +3 -191
- package/out/runtime/index.js +2 -32
- package/out/runtime/vscode/index.js +2 -20
- package/out/runtime/vscode/vscode-config-provider.js +2 -77
- package/out/runtime/vscode/vscode-edit-tracker.js +2 -122
- package/out/runtime/vscode/vscode-logger.js +2 -30
- package/out/runtime/vscode/vscode-permission-handler.js +2 -72
- package/out/scripts/agentide-litellm.sh +0 -1
- package/out/scripts/agentide_litellm_hooks_v1.py +170 -418
- package/out/scripts/analytics/agent-fleet-widget.js +18 -257
- package/out/scripts/analytics/agentide-litellm-otel.config.yaml +4 -4
- package/out/scripts/analytics/duckdbLocator.js +2 -28
- package/out/scripts/analytics/generate-default-charts.py +43 -323
- package/out/scripts/analytics/hotspot-analysis-widget.js +4 -430
- package/out/scripts/analytics/index-traces.py +78 -1036
- package/out/scripts/analytics/session-comparison-widget.js +26 -472
- package/out/scripts/analytics/session-timeline-widget.js +25 -846
- package/out/scripts/analytics/setup-analytics.ps1 +8 -1
- package/out/scripts/analytics/setup-analytics.sh +13 -2
- package/out/scripts/analytics/token-cost-flamegraph-widget.js +4 -461
- package/out/scripts/analytics/token-cost-trend-widget.js +4 -534
- package/out/scripts/analytics/workflows-collector.cjs +4 -314
- package/out/scripts/analytics/workflows-daemon.mjs +9 -185
- package/out/scripts/analytics/workflows-widget.cjs +15 -159
- package/out/scripts/analytics/wow-model-widget.js +10 -120
- package/out/scripts/vendor-tools.mjs +2 -233
- package/out/skills/publish.js +3 -178
- package/out/store/github/setup.js +7 -212
- package/out/store/oramaIndex.js +2 -884
- package/out/sync.js +26 -1829
- package/out/terminalLogger.js +5 -358
- package/out/utils/pathSafety.js +2 -60
- package/out/utils/pythonRunner.js +4 -258
- package/out/utils/toolPath.js +2 -83
- package/out/workspaceFolders.js +2 -59
- package/package.json +1 -1
- package/out/agentpack/github.js +0 -547
- package/out/agentpack/index.js +0 -67
- package/out/agentpack/install.js +0 -297
- package/out/agentpack/manager.js +0 -441
- package/out/agentpack/manifest.js +0 -135
- package/out/agentpack/paths.js +0 -498
- package/out/agentpack/publish.js +0 -248
- package/out/agentpack/stores.js +0 -554
- package/out/analytics/dashboard/fleetStatusUtils.js +0 -30
- package/out/analytics/dashboard/fleetTitleUtils.js +0 -68
- package/out/analytics/dashboard/refreshPolicy.js +0 -16
- package/out/analytics/dashboard/scheduledFleetFingerprint.js +0 -22
- package/out/analytics/dashboard/scheduledFleetUtils.js +0 -22
- package/out/analytics/dashboard/sessionEventFleetStats.js +0 -118
- package/out/analytics/dashboard/viewsConfigMerge.js +0 -221
- package/out/analytics/dashboard/webview/codicon.ttf +0 -0
- package/out/analytics/identity.js +0 -0
- package/out/analytics/sessionEvents.js +0 -323
- package/out/auth/callbackUriParse.js +0 -59
- package/out/auth/types.js +0 -12
- package/out/auth-broker/config.js +0 -112
- package/out/auth-broker/jwt.js +0 -105
- package/out/auth-broker/pkce.js +0 -59
- package/out/auth-broker/server.js +0 -677
- package/out/auth-broker/store.js +0 -275
- package/out/authority/warrant.js +0 -206
- package/out/base-prompts/mcp-servers/.mcp.json +0 -13
- package/out/base-prompts/mcp-servers/langfuse-analytics/README.md +0 -142
- package/out/base-prompts/mcp-servers/langfuse-analytics/mcp.json +0 -13
- package/out/base-prompts/mcp-servers/langfuse-analytics/package-lock.json +0 -1192
- package/out/base-prompts/mcp-servers/langfuse-analytics/package.json +0 -23
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/run-with-env.sh +0 -12
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/sdk-test.js +0 -102
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/simple-test.js +0 -137
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-client.js +0 -118
- package/out/base-prompts/mcp-servers/langfuse-analytics/scripts/test-server.js +0 -209
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/client.ts +0 -431
- package/out/base-prompts/mcp-servers/langfuse-analytics/src/index.ts +0 -270
- package/out/base-prompts/mcp-servers/langfuse-analytics/tsconfig.json +0 -18
- package/out/base-prompts/rules/AGENTS.md +0 -204
- package/out/base-prompts/skills/agent-browser/SKILL.md +0 -102
- package/out/base-prompts/skills/agent-builder/SKILL.md +0 -73
- package/out/base-prompts/skills/agent-builder/references/agent-pack.md +0 -63
- package/out/base-prompts/skills/agent-builder/references/crewai.md +0 -66
- package/out/base-prompts/skills/agent-builder/references/langchain.md +0 -60
- package/out/base-prompts/skills/agent-builder/references/raw-sdk.md +0 -73
- package/out/base-prompts/skills/agent-engine-creator/SKILL.md +0 -586
- package/out/base-prompts/skills/agent-engine-installer/SKILL.md +0 -106
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.mjs +0 -259
- package/out/base-prompts/skills/agent-engine-installer/scripts/install-engine.ps1 +0 -189
- package/out/base-prompts/skills/agenthippo-cli/SKILL.md +0 -69
- package/out/base-prompts/skills/agenthippo-cli/scripts/install.sh +0 -63
- package/out/base-prompts/skills/agentpack-creator/SKILL.md +0 -375
- package/out/base-prompts/skills/agentpack-creator/references/agent-templates.md +0 -261
- package/out/base-prompts/skills/agentpack-creator/references/agents-md-guide.md +0 -195
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack.py +0 -391
- package/out/base-prompts/skills/agentpack-creator/scripts/init_pack_test.py +0 -294
- package/out/base-prompts/skills/agentpack-testbench/SKILL.md +0 -135
- package/out/base-prompts/skills/algorithmic-art/LICENSE.txt +0 -202
- package/out/base-prompts/skills/algorithmic-art/SKILL.md +0 -405
- package/out/base-prompts/skills/algorithmic-art/templates/generator_template.js +0 -223
- package/out/base-prompts/skills/algorithmic-art/templates/viewer.html +0 -599
- package/out/base-prompts/skills/debug-agent/SKILL.md +0 -83
- package/out/base-prompts/skills/desktop-automation/SKILL.md +0 -166
- package/out/base-prompts/skills/desktop-automation/references/agenthippo-ui-recipes.md +0 -441
- package/out/base-prompts/skills/desktop-automation/scripts/windows-desktop-uia.psm1 +0 -280
- package/out/base-prompts/skills/docx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/docx/SKILL.md +0 -197
- package/out/base-prompts/skills/docx/docx-js.md +0 -350
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/out/base-prompts/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/out/base-prompts/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/out/base-prompts/skills/docx/ooxml/schemas/mce/mc.xsd +0 -75
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/out/base-prompts/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/out/base-prompts/skills/docx/ooxml/scripts/pack.py +0 -159
- package/out/base-prompts/skills/docx/ooxml/scripts/unpack.py +0 -29
- package/out/base-prompts/skills/docx/ooxml/scripts/validate.py +0 -69
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/__init__.py +0 -15
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/base.py +0 -951
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/docx.py +0 -274
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/pptx.py +0 -315
- package/out/base-prompts/skills/docx/ooxml/scripts/validation/redlining.py +0 -279
- package/out/base-prompts/skills/docx/ooxml.md +0 -610
- package/out/base-prompts/skills/docx/scripts/__init__.py +0 -1
- package/out/base-prompts/skills/docx/scripts/document.py +0 -1276
- package/out/base-prompts/skills/docx/scripts/templates/comments.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtended.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/commentsIds.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/templates/people.xml +0 -3
- package/out/base-prompts/skills/docx/scripts/utilities.py +0 -374
- package/out/base-prompts/skills/gateway-outbound/SKILL.md +0 -136
- package/out/base-prompts/skills/mcp-builder/LICENSE.txt +0 -202
- package/out/base-prompts/skills/mcp-builder/SKILL.md +0 -328
- package/out/base-prompts/skills/mcp-builder/reference/evaluation.md +0 -602
- package/out/base-prompts/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
- package/out/base-prompts/skills/mcp-builder/reference/node_mcp_server.md +0 -970
- package/out/base-prompts/skills/mcp-builder/reference/python_mcp_server.md +0 -719
- package/out/base-prompts/skills/mcp-builder/scripts/connections.py +0 -151
- package/out/base-prompts/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/out/base-prompts/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/out/base-prompts/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/out/base-prompts/skills/openclaw/SKILL.md +0 -406
- package/out/base-prompts/skills/openclaw/scripts/run-smoke.sh +0 -61
- package/out/base-prompts/skills/pdf/LICENSE.txt +0 -30
- package/out/base-prompts/skills/pdf/SKILL.md +0 -294
- package/out/base-prompts/skills/pdf/forms.md +0 -205
- package/out/base-prompts/skills/pdf/reference.md +0 -612
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes.py +0 -70
- package/out/base-prompts/skills/pdf/scripts/check_bounding_boxes_test.py +0 -226
- package/out/base-prompts/skills/pdf/scripts/check_fillable_fields.py +0 -12
- package/out/base-prompts/skills/pdf/scripts/convert_pdf_to_images.py +0 -35
- package/out/base-prompts/skills/pdf/scripts/create_validation_image.py +0 -41
- package/out/base-prompts/skills/pdf/scripts/extract_form_field_info.py +0 -152
- package/out/base-prompts/skills/pdf/scripts/fill_fillable_fields.py +0 -114
- package/out/base-prompts/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
- package/out/base-prompts/skills/pptx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/pptx/SKILL.md +0 -484
- package/out/base-prompts/skills/pptx/html2pptx.md +0 -625
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/out/base-prompts/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/out/base-prompts/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/out/base-prompts/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/out/base-prompts/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/out/base-prompts/skills/pptx/ooxml/scripts/pack.py +0 -159
- package/out/base-prompts/skills/pptx/ooxml/scripts/unpack.py +0 -29
- package/out/base-prompts/skills/pptx/ooxml/scripts/validate.py +0 -69
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/base.py +0 -951
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
- package/out/base-prompts/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
- package/out/base-prompts/skills/pptx/ooxml.md +0 -427
- package/out/base-prompts/skills/pptx/scripts/html2pptx.js +0 -984
- package/out/base-prompts/skills/pptx/scripts/inventory.py +0 -1020
- package/out/base-prompts/skills/pptx/scripts/rearrange.py +0 -231
- package/out/base-prompts/skills/pptx/scripts/replace.py +0 -385
- package/out/base-prompts/skills/pptx/scripts/thumbnail.py +0 -450
- package/out/base-prompts/skills/prompt-lab/SKILL.md +0 -149
- package/out/base-prompts/skills/prompt-lab/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/skill-creator/LICENSE.txt +0 -202
- package/out/base-prompts/skills/skill-creator/SKILL.md +0 -371
- package/out/base-prompts/skills/skill-creator/references/output-patterns.md +0 -82
- package/out/base-prompts/skills/skill-creator/references/workflows.md +0 -28
- package/out/base-prompts/skills/skill-creator/scripts/init_skill.py +0 -303
- package/out/base-prompts/skills/skill-creator/scripts/package_skill.py +0 -110
- package/out/base-prompts/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/out/base-prompts/skills/skill-installer/SKILL.md +0 -251
- package/out/base-prompts/skills/skill-installer/references/store-api.md +0 -219
- package/out/base-prompts/skills/spotlight-dashboard/SKILL.md +0 -83
- package/out/base-prompts/skills/spotlight-insights/SKILL.md +0 -101
- package/out/base-prompts/skills/spotlight-optimize/SKILL.md +0 -93
- package/out/base-prompts/skills/spotlight-optimize/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/spotlight-query/SKILL.md +0 -314
- package/out/base-prompts/skills/spotlight-query/references/otel-schema.md +0 -163
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/spotlight-query/scripts/query-analytics.test.sh +0 -744
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/sessions/sess-test-1.jsonl +0 -14
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/.duckdb-index.json +0 -7
- package/out/base-prompts/skills/spotlight-query/scripts/test-fixtures/analytics/traces/sample.jsonl +0 -5
- package/out/base-prompts/skills/spotlight-report/SKILL.md +0 -86
- package/out/base-prompts/skills/spotlight-visualize/SKILL.md +0 -92
- package/out/base-prompts/skills/spotlight-visualize/scripts/query-analytics.sh +0 -2551
- package/out/base-prompts/skills/xlsx/LICENSE.txt +0 -30
- package/out/base-prompts/skills/xlsx/SKILL.md +0 -289
- package/out/base-prompts/skills/xlsx/recalc.py +0 -178
- package/out/branding.js +0 -49
- package/out/cli/commands/anywhere.js +0 -66
- package/out/cli/commands/ask.js +0 -246
- package/out/cli/commands/auth-broker.js +0 -24
- package/out/cli/commands/auth.js +0 -219
- package/out/cli/commands/chat.js +0 -357
- package/out/cli/commands/conformance.js +0 -249
- package/out/cli/commands/data-plane.js +0 -67
- package/out/cli/commands/deploy.js +0 -263
- package/out/cli/commands/gateway.js +0 -218
- package/out/cli/commands/idp.js +0 -85
- package/out/cli/commands/pack.js +0 -399
- package/out/cli/commands/probe-custom-engine.js +0 -82
- package/out/cli/commands/sandbox.js +0 -332
- package/out/cli/commands/serve.js +0 -1758
- package/out/cli/commands/store.js +0 -927
- package/out/cli/credential-context.js +0 -91
- package/out/cli/data-plane/broker.js +0 -78
- package/out/cli/data-plane/connector-host.js +0 -121
- package/out/cli/data-plane/egress.js +0 -189
- package/out/cli/data-plane/gateway.js +0 -218
- package/out/cli/data-plane/index.js +0 -152
- package/out/cli/data-plane/registry.js +0 -89
- package/out/cli/data-plane/remote.js +0 -106
- package/out/cli/data-plane/sidecar.js +0 -161
- package/out/cli/deploy/blueprints/registry.js +0 -84
- package/out/cli/deploy/layers/identity.js +0 -172
- package/out/cli/deploy-init.js +0 -3023
- package/out/cli/deps.js +0 -342
- package/out/cli/idp-init.js +0 -338
- package/out/cli/pack-install-ref.js +0 -15
- package/out/cli/pack-loader.js +0 -418
- package/out/cli/pack-runtime.js +0 -61
- package/out/cli/runtime.js +0 -450
- package/out/cli/serve-hardening.js +0 -607
- package/out/cli/state-sync.js +0 -424
- package/out/cli/utils.js +0 -231
- package/out/engines/base.js +0 -188
- package/out/engines/claude.js +0 -1254
- package/out/engines/codex.js +0 -862
- package/out/engines/custom.js +0 -674
- package/out/engines/customEngineIpc.js +0 -95
- package/out/engines/customEngineRunnerEmbed.js +0 -107
- package/out/engines/customRegistry.js +0 -274
- package/out/engines/embeddedCustomEngineRunner.generated.js +0 -9
- package/out/engines/engineApiKey.js +0 -138
- package/out/engines/install.js +0 -372
- package/out/engines/persistentEngineWorker.js +0 -320
- package/out/engines/publish.js +0 -341
- package/out/evidence/sessionShip.js +0 -610
- package/out/gateway/bridge.js +0 -843
- package/out/gateway/cli-agent-id.js +0 -36
- package/out/gateway/client.js +0 -336
- package/out/gateway/client.test.js +0 -395
- package/out/gateway/gateway-scope-errors.js +0 -14
- package/out/gateway/gatewayBackup.js +0 -76
- package/out/gateway/installSource.js +0 -68
- package/out/gateway/lifecycle.js +0 -3190
- package/out/gateway/openclaw-channel-routing.js +0 -317
- package/out/gateway/outboundHandles.js +0 -373
- package/out/gateway/outboundPaths.js +0 -75
- package/out/gateway/outboundSend.js +0 -254
- package/out/gateway/protocol.js +0 -48
- package/out/gateway/secretsPreflight.js +0 -90
- package/out/gateway/sessionRouting.js +0 -77
- package/out/headless/index.js +0 -539
- package/out/headless/sync.js +0 -473
- package/out/live-e2e/mcp-demo/server.mjs +0 -32
- package/out/live-probe/connector.mjs +0 -8
- package/out/live-probe/env-report.mjs +0 -8
- package/out/mcp.js +0 -654
- package/out/pack/caps.js +0 -271
- package/out/pack/governor.js +0 -309
- package/out/pack/lease-schema.js +0 -270
- package/out/pack/lease.js +0 -640
- package/out/pack/reconcile.js +0 -217
- package/out/pack/signature.js +0 -839
- package/out/permissions.js +0 -108
- package/out/permissions.mapping.yaml +0 -68
- package/out/registry/index.js +0 -332
- package/out/runner/host.js +0 -131
- package/out/runner/protocol.js +0 -108
- package/out/runner/remoteEngine.js +0 -130
- package/out/runtime/interfaces/config-provider.js +0 -32
- package/out/runtime/interfaces/edit-tracker.js +0 -24
- package/out/runtime/interfaces/index.js +0 -29
- package/out/runtime/interfaces/logger.js +0 -40
- package/out/runtime/interfaces/permission-handler.js +0 -66
- package/out/runtime/interfaces/session-store.js +0 -342
- package/out/runtime/vscode/vscode-session-store.js +0 -22
- package/out/sandbox/containerDriver.js +0 -570
- package/out/sandbox/processDriver.js +0 -315
- package/out/sandbox/sandboxRunner.js +0 -191
- package/out/sandbox/support.js +0 -301
- package/out/sandbox/types.js +0 -55
- package/out/scripts/analytics/fleet-local-adapter.js +0 -246
- package/out/scripts/analytics/live-fleet-4-collector.cjs +0 -315
- package/out/scripts/analytics/live-fleet-4-daemon.mjs +0 -134
- package/out/scripts/analytics/live-fleet-4-widget.cjs +0 -433
- package/out/scripts/gateway/Dockerfile.serve +0 -45
- package/out/scripts/gateway/docker-serve.sh +0 -248
- package/out/scripts/gateway/setup-gateway-server.ps1 +0 -953
- package/out/scripts/gateway/setup-gateway-server.sh +0 -935
- package/out/session.js +0 -272
- package/out/shared/agentEngines.js +0 -170
- package/out/shared/index.js +0 -109
- package/out/shared/models.js +0 -136
- package/out/shared/providers.js +0 -205
- package/out/spotlight/install.js +0 -345
- package/out/spotlight/publish.js +0 -544
- package/out/spotlight/yaml.js +0 -31
- package/out/store/index.js +0 -786
- package/out/store/shared.js +0 -241
- package/out/test/agentEnvFile.test.js +0 -97
- package/out/test/agentYaml.test.js +0 -373
- package/out/test/agentpack.test.js +0 -639
- package/out/test/analytics-lifecycle.test.js +0 -174
- package/out/test/analytics.test.js +0 -756
- package/out/test/auth-baseurl.test.js +0 -132
- package/out/test/auth-bootstrapApply.test.js +0 -123
- package/out/test/auth-broker-hardening.test.js +0 -227
- package/out/test/auth-broker.test.js +0 -541
- package/out/test/auth-callback.test.js +0 -62
- package/out/test/blueprint-registry.test.js +0 -105
- package/out/test/branding.test.js +0 -242
- package/out/test/caps-governor.test.js +0 -455
- package/out/test/cli-agent-id.test.js +0 -55
- package/out/test/codex-new-file-survival.test.js +0 -119
- package/out/test/configuration-scopes.test.js +0 -131
- package/out/test/credential-context.test.js +0 -160
- package/out/test/custom-env-layering.test.js +0 -151
- package/out/test/customEngineInstall.test.js +0 -100
- package/out/test/customRegistry.test.js +0 -122
- package/out/test/data-plane-engine-wiring.test.js +0 -250
- package/out/test/data-plane.test.js +0 -311
- package/out/test/deploy-init.test.js +0 -854
- package/out/test/deps-auto-install.test.js +0 -81
- package/out/test/egress-broker.test.js +0 -172
- package/out/test/engine-integration.test.js +0 -297
- package/out/test/enginePaths.test.js +0 -195
- package/out/test/enginePublish.test.js +0 -82
- package/out/test/fleetDisplayUtils.test.js +0 -100
- package/out/test/gateway-client.test.js +0 -409
- package/out/test/gateway-install-source.test.js +0 -111
- package/out/test/gateway-lifecycle.test.js +0 -608
- package/out/test/gateway-outbound.test.js +0 -538
- package/out/test/gateway-reset-mappings.test.js +0 -221
- package/out/test/gateway-route-index.test.js +0 -235
- package/out/test/gateway-secrets-preflight.test.js +0 -127
- package/out/test/gateway-session-routing.test.js +0 -65
- package/out/test/gateway-session-store.test.js +0 -216
- package/out/test/github.test.js +0 -232
- package/out/test/governor-hardening.test.js +0 -217
- package/out/test/headless-sync.test.js +0 -301
- package/out/test/helpers/manifest-fixtures.js +0 -27
- package/out/test/idp-init.test.js +0 -151
- package/out/test/lease-signature.test.js +0 -357
- package/out/test/lease-trust-root.test.js +0 -273
- package/out/test/lease-validation.test.js +0 -169
- package/out/test/lease.test.js +0 -114
- package/out/test/mcp-obo.test.js +0 -107
- package/out/test/mcp.test.js +0 -389
- package/out/test/model-routing.test.js +0 -133
- package/out/test/openclaw-channel-routing.test.js +0 -191
- package/out/test/pack-admission.test.js +0 -216
- package/out/test/pack-digest-parity.test.js +0 -140
- package/out/test/pack-reconcile.test.js +0 -183
- package/out/test/pack-signature-artifact.test.js +0 -103
- package/out/test/pack-signature.test.js +0 -176
- package/out/test/pack-trust-root.test.js +0 -202
- package/out/test/pathSafety.test.js +0 -63
- package/out/test/permissions.test.js +0 -175
- package/out/test/persistent-engine-worker.test.js +0 -220
- package/out/test/refreshPolicy.test.js +0 -60
- package/out/test/registry.test.js +0 -351
- package/out/test/remote-trust.test.js +0 -242
- package/out/test/runner-protocol.test.js +0 -249
- package/out/test/runtime.test.js +0 -349
- package/out/test/sandbox-driver.test.js +0 -553
- package/out/test/sandbox-hardening.test.js +0 -395
- package/out/test/sandbox-runner.test.js +0 -343
- package/out/test/scheduledFleetStorage.test.js +0 -72
- package/out/test/serve-gateway-turn.test.js +0 -267
- package/out/test/serve-hardening.test.js +0 -418
- package/out/test/serveClient.test.js +0 -209
- package/out/test/sessionJsonlFleet.test.js +0 -78
- package/out/test/sessionShip.test.js +0 -560
- package/out/test/shared.test.js +0 -173
- package/out/test/skills-mcp.test.js +0 -299
- package/out/test/spotlightPublish.test.js +0 -327
- package/out/test/spotlightYaml.test.js +0 -58
- package/out/test/state-sync-peer.test.js +0 -156
- package/out/test/store-install-safe.test.js +0 -69
- package/out/test/store.test.js +0 -331
- package/out/test/stores.test.js +0 -504
- package/out/test/sync-switch.test.js +0 -251
- package/out/test/teamViewDiscovery.test.js +0 -90
- package/out/test/tls-bypass.test.js +0 -90
- package/out/test/toolPath.test.js +0 -120
- package/out/test/utils.test.js +0 -308
- package/out/test/viewsConfigMerge.test.js +0 -180
- package/out/test/warrant.test.js +0 -138
- package/out/test/windows-command-line.test.js +0 -75
- package/out/utils/agentEnvFile.js +0 -131
- package/out/utils/binary.js +0 -175
- package/out/utils/index.js +0 -37
- package/out/utils/network.js +0 -74
- package/out/utils/paths.js +0 -116
- package/out/utils/pid.js +0 -180
- package/out/utils/resolveNodeBinary.js +0 -168
- package/out/utils/windowsCommandLine.js +0 -29
- package/out/utils.js +0 -968
package/out/cli/state-sync.js
DELETED
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.isAwsCliAvailable = isAwsCliAvailable;
|
|
40
|
-
exports.resolveS3StateConfig = resolveS3StateConfig;
|
|
41
|
-
exports.resolveRestoreBootMode = resolveRestoreBootMode;
|
|
42
|
-
exports.safeSessionId = safeSessionId;
|
|
43
|
-
exports.sessionRemoteUri = sessionRemoteUri;
|
|
44
|
-
exports.shardBelongsToSession = shardBelongsToSession;
|
|
45
|
-
exports.hasLocalSessionState = hasLocalSessionState;
|
|
46
|
-
exports.listSessionShardFiles = listSessionShardFiles;
|
|
47
|
-
exports.stageSessionPushDir = stageSessionPushDir;
|
|
48
|
-
exports.mergeSessionStagingIntoState = mergeSessionStagingIntoState;
|
|
49
|
-
exports.restoreState = restoreState;
|
|
50
|
-
exports.pushState = pushState;
|
|
51
|
-
exports.pushSessionState = pushSessionState;
|
|
52
|
-
exports.ensureSessionLocal = ensureSessionLocal;
|
|
53
|
-
exports.clearRestoreAttemptCache = clearRestoreAttemptCache;
|
|
54
|
-
exports.makeStatePusher = makeStatePusher;
|
|
55
|
-
exports.providerSessionShardName = providerSessionShardName;
|
|
56
|
-
/**
|
|
57
|
-
* Object-store state sync (serve-v3 Q1 + serve-v4 P1.2).
|
|
58
|
-
*
|
|
59
|
-
* Persists the durable state root to an S3-compatible object store so sessions
|
|
60
|
-
* survive scale-to-zero / a fresh instance (Cloudflare R2, MinIO, GCS, AWS S3)
|
|
61
|
-
* and so a sticky-routed fleet can restore-on-miss after resharding.
|
|
62
|
-
*
|
|
63
|
-
* Strategy:
|
|
64
|
-
* - Per-session async-delta push (debounced, off the response path) →
|
|
65
|
-
* s3://…/sessions/<sessionId>/
|
|
66
|
-
* - Restore-on-miss before a turn when the session is not local
|
|
67
|
-
* - Optional boot restore of the whole prefix (`AGENTHIPPO_STATE_RESTORE_BOOT=all`)
|
|
68
|
-
* - SIGTERM flush of pending session pushes
|
|
69
|
-
*
|
|
70
|
-
* Uses `aws s3 sync` (S3-compatible via --endpoint-url). No SDK in the binary.
|
|
71
|
-
* Last-write-wins per session prefix — no CAS. Mid-reshard may lose one turn of
|
|
72
|
-
* context; sticky routing makes that rare.
|
|
73
|
-
*
|
|
74
|
-
* Config (no-op unless AGENTHIPPO_STATE_S3_URI is set):
|
|
75
|
-
* AGENTHIPPO_STATE_S3_URI s3://bucket/prefix
|
|
76
|
-
* AGENTHIPPO_STATE_S3_ENDPOINT http://minio:9000 (non-AWS S3)
|
|
77
|
-
* AGENTHIPPO_STATE_RESTORE_BOOT all|none (default all for single-instance compat;
|
|
78
|
-
* multi-replica templates set none)
|
|
79
|
-
* AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_REGION
|
|
80
|
-
*/
|
|
81
|
-
const crypto_1 = require("crypto");
|
|
82
|
-
const child_process_1 = require("child_process");
|
|
83
|
-
const fsp = __importStar(require("fs/promises"));
|
|
84
|
-
const path = __importStar(require("path"));
|
|
85
|
-
const util_1 = require("util");
|
|
86
|
-
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
87
|
-
/** In-process cache: skip repeat S3 pulls for the same session on this replica. */
|
|
88
|
-
const restoreAttempted = new Set();
|
|
89
|
-
/**
|
|
90
|
-
* Verify the `aws` CLI is callable. State sync shells out to it, so when S3 is
|
|
91
|
-
* configured a missing binary means silent data loss — callers should fail fast.
|
|
92
|
-
*/
|
|
93
|
-
async function isAwsCliAvailable() {
|
|
94
|
-
try {
|
|
95
|
-
await execFileAsync('aws', ['--version']);
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/** Returns the config when AGENTHIPPO_STATE_S3_URI is set, else null (sync disabled). */
|
|
103
|
-
function resolveS3StateConfig(env = process.env) {
|
|
104
|
-
const uri = env.AGENTHIPPO_STATE_S3_URI?.trim();
|
|
105
|
-
if (!uri) {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
uri: uri.replace(/\/+$/, ''),
|
|
110
|
-
endpoint: env.AGENTHIPPO_STATE_S3_ENDPOINT?.trim() || undefined,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Boot restore mode. Default `all` preserves single-instance behavior.
|
|
115
|
-
* Multi-replica templates set `none` and rely on restore-on-miss (P1.2).
|
|
116
|
-
*/
|
|
117
|
-
function resolveRestoreBootMode(env = process.env) {
|
|
118
|
-
const raw = env.AGENTHIPPO_STATE_RESTORE_BOOT?.trim().toLowerCase();
|
|
119
|
-
if (raw === 'none') {
|
|
120
|
-
return 'none';
|
|
121
|
-
}
|
|
122
|
-
return 'all';
|
|
123
|
-
}
|
|
124
|
-
/** Sanitize a client session id for use as an S3 path segment / local dir name. */
|
|
125
|
-
function safeSessionId(sessionId) {
|
|
126
|
-
const trimmed = sessionId.trim();
|
|
127
|
-
const safe = trimmed.replace(/[<>:"/\\|?*\x00-\x1F]+/g, '_').replace(/\.\./g, '_').slice(0, 160);
|
|
128
|
-
return safe || 'session';
|
|
129
|
-
}
|
|
130
|
-
/** Remote prefix for one session: s3://bucket/prefix/sessions/<id> */
|
|
131
|
-
function sessionRemoteUri(cfg, sessionId) {
|
|
132
|
-
return `${cfg.uri}/sessions/${safeSessionId(sessionId)}`;
|
|
133
|
-
}
|
|
134
|
-
function syncArgs(cfg, from, to) {
|
|
135
|
-
const args = ['s3', 'sync', from, to, '--no-progress'];
|
|
136
|
-
if (cfg.endpoint) {
|
|
137
|
-
args.push('--endpoint-url', cfg.endpoint);
|
|
138
|
-
}
|
|
139
|
-
return args;
|
|
140
|
-
}
|
|
141
|
-
function attemptKey(stateDir, sessionId) {
|
|
142
|
-
return `${path.resolve(stateDir)}\0${sessionId}`;
|
|
143
|
-
}
|
|
144
|
-
/** Conversation key format: engine:chatSessionId:pack:signature */
|
|
145
|
-
function shardBelongsToSession(shardKey, chatSessionId, value) {
|
|
146
|
-
if (value?.chatSessionId && value.chatSessionId === chatSessionId) {
|
|
147
|
-
return true;
|
|
148
|
-
}
|
|
149
|
-
const parts = shardKey.split(':');
|
|
150
|
-
return parts.length >= 2 && parts[1] === chatSessionId;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* True when this replica already has provider-session state for the chat session.
|
|
154
|
-
* Used to skip restore-on-miss on the hot path.
|
|
155
|
-
*/
|
|
156
|
-
async function hasLocalSessionState(stateDir, sessionId) {
|
|
157
|
-
const dir = path.join(stateDir, 'provider-sessions');
|
|
158
|
-
let names;
|
|
159
|
-
try {
|
|
160
|
-
names = await fsp.readdir(dir);
|
|
161
|
-
}
|
|
162
|
-
catch {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
for (const name of names) {
|
|
166
|
-
if (!name.endsWith('.json')) {
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
try {
|
|
170
|
-
const raw = await fsp.readFile(path.join(dir, name), 'utf8');
|
|
171
|
-
const parsed = JSON.parse(raw);
|
|
172
|
-
if (typeof parsed.key === 'string' && shardBelongsToSession(parsed.key, sessionId, parsed.value)) {
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
catch {
|
|
177
|
-
// skip unreadable
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
/** Collect provider-session shard filenames that belong to this chat session. */
|
|
183
|
-
async function listSessionShardFiles(stateDir, sessionId) {
|
|
184
|
-
const dir = path.join(stateDir, 'provider-sessions');
|
|
185
|
-
let names;
|
|
186
|
-
try {
|
|
187
|
-
names = await fsp.readdir(dir);
|
|
188
|
-
}
|
|
189
|
-
catch {
|
|
190
|
-
return [];
|
|
191
|
-
}
|
|
192
|
-
const out = [];
|
|
193
|
-
for (const name of names) {
|
|
194
|
-
if (!name.endsWith('.json')) {
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
const raw = await fsp.readFile(path.join(dir, name), 'utf8');
|
|
199
|
-
const parsed = JSON.parse(raw);
|
|
200
|
-
if (typeof parsed.key === 'string' && shardBelongsToSession(parsed.key, sessionId, parsed.value)) {
|
|
201
|
-
out.push(name);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
catch {
|
|
205
|
-
// skip
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return out;
|
|
209
|
-
}
|
|
210
|
-
async function pathExists(p) {
|
|
211
|
-
try {
|
|
212
|
-
await fsp.access(p);
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
return false;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Build a local staging tree for session S: provider-sessions/<shards for S> only.
|
|
221
|
-
*
|
|
222
|
-
* `<stateDir>/agents/<agentId>/{claude,codex}` (the SDK's own on-disk session/config
|
|
223
|
-
* cache — see agentpack/paths.ts) is deliberately NOT included here. That directory is
|
|
224
|
-
* shared by every session/user of the same pack on this replica, keyed only by agentId —
|
|
225
|
-
* never session-scoped. Treating it as part of one session's push/restore let one
|
|
226
|
-
* session's stale snapshot force-overwrite the live SDK cache for every other
|
|
227
|
-
* concurrently active session on the replica (fs.cp force:true in the old
|
|
228
|
-
* mergeSessionStagingIntoState). It's local-disk-only now, same as before object-store
|
|
229
|
-
* sync existed: it lives and dies with its replica. A resume target missing after a
|
|
230
|
-
* replica change already falls back to a fresh SDK session — the same path every
|
|
231
|
-
* session's true first turn on any replica already takes — so this doesn't introduce a
|
|
232
|
-
* new failure mode, it just stops the wrong-session-data clobber.
|
|
233
|
-
*/
|
|
234
|
-
async function stageSessionPushDir(stateDir, sessionId, stagingDir) {
|
|
235
|
-
await fsp.rm(stagingDir, { recursive: true, force: true });
|
|
236
|
-
await fsp.mkdir(stagingDir, { recursive: true });
|
|
237
|
-
const shards = await listSessionShardFiles(stateDir, sessionId);
|
|
238
|
-
const psDest = path.join(stagingDir, 'provider-sessions');
|
|
239
|
-
if (shards.length > 0) {
|
|
240
|
-
await fsp.mkdir(psDest, { recursive: true });
|
|
241
|
-
for (const name of shards) {
|
|
242
|
-
await fsp.copyFile(path.join(stateDir, 'provider-sessions', name), path.join(psDest, name));
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return shards.length > 0;
|
|
246
|
-
}
|
|
247
|
-
/** Merge a restored staging tree back into stateDir (provider-session shards only — see
|
|
248
|
-
* stageSessionPushDir for why the SDK config cache is intentionally excluded). */
|
|
249
|
-
async function mergeSessionStagingIntoState(stagingDir, stateDir) {
|
|
250
|
-
const psSrc = path.join(stagingDir, 'provider-sessions');
|
|
251
|
-
if (await pathExists(psSrc)) {
|
|
252
|
-
const psDest = path.join(stateDir, 'provider-sessions');
|
|
253
|
-
await fsp.mkdir(psDest, { recursive: true });
|
|
254
|
-
for (const name of await fsp.readdir(psSrc)) {
|
|
255
|
-
if (!name.endsWith('.json')) {
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
await fsp.copyFile(path.join(psSrc, name), path.join(psDest, name));
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
/** Download state from the bucket into stateDir on boot. An empty bucket is a no-op. */
|
|
263
|
-
async function restoreState(cfg, stateDir, log) {
|
|
264
|
-
try {
|
|
265
|
-
await execFileAsync('aws', syncArgs(cfg, cfg.uri, stateDir));
|
|
266
|
-
log?.(`State restored from ${cfg.uri}`);
|
|
267
|
-
}
|
|
268
|
-
catch (err) {
|
|
269
|
-
log?.(`State restore skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
/** Upload changed files from stateDir to the bucket (full-tree delta — legacy / flush fallback). */
|
|
273
|
-
async function pushState(cfg, stateDir, log) {
|
|
274
|
-
try {
|
|
275
|
-
await execFileAsync('aws', syncArgs(cfg, stateDir, cfg.uri));
|
|
276
|
-
}
|
|
277
|
-
catch (err) {
|
|
278
|
-
console.error(`[state-sync] push to ${cfg.uri} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
279
|
-
log?.(`State push failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
/** Push one session's scoped tree to s3://…/sessions/<id>/. */
|
|
283
|
-
async function pushSessionState(cfg, stateDir, sessionId, log) {
|
|
284
|
-
const safe = safeSessionId(sessionId);
|
|
285
|
-
const staging = path.join(stateDir, '.push-staging', safe);
|
|
286
|
-
try {
|
|
287
|
-
const hasContent = await stageSessionPushDir(stateDir, sessionId, staging);
|
|
288
|
-
if (!hasContent) {
|
|
289
|
-
log?.(`State push skipped for session ${safe}: nothing local`);
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
const remote = sessionRemoteUri(cfg, sessionId);
|
|
293
|
-
await execFileAsync('aws', syncArgs(cfg, staging, remote));
|
|
294
|
-
log?.(`State pushed session ${safe} → ${remote}`);
|
|
295
|
-
}
|
|
296
|
-
catch (err) {
|
|
297
|
-
console.error(`[state-sync] push session ${safe} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
298
|
-
log?.(`State push failed for ${safe}: ${err instanceof Error ? err.message : String(err)}`);
|
|
299
|
-
}
|
|
300
|
-
finally {
|
|
301
|
-
await fsp.rm(staging, { recursive: true, force: true }).catch(() => undefined);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* On a request whose session_id has no local provider-session state, pull
|
|
306
|
-
* s3://…/sessions/<id>/ before runner.run(). No-ops if already local or already
|
|
307
|
-
* attempted this process (avoids re-pulling brand-new sessions every turn).
|
|
308
|
-
*/
|
|
309
|
-
async function ensureSessionLocal(cfg, stateDir, sessionId, log) {
|
|
310
|
-
const key = attemptKey(stateDir, sessionId);
|
|
311
|
-
if (restoreAttempted.has(key)) {
|
|
312
|
-
return;
|
|
313
|
-
}
|
|
314
|
-
if (await hasLocalSessionState(stateDir, sessionId)) {
|
|
315
|
-
restoreAttempted.add(key);
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
const safe = safeSessionId(sessionId);
|
|
319
|
-
const staging = path.join(stateDir, '.restore-staging', safe);
|
|
320
|
-
try {
|
|
321
|
-
await fsp.rm(staging, { recursive: true, force: true });
|
|
322
|
-
await fsp.mkdir(staging, { recursive: true });
|
|
323
|
-
const remote = sessionRemoteUri(cfg, sessionId);
|
|
324
|
-
await execFileAsync('aws', syncArgs(cfg, remote, staging));
|
|
325
|
-
await mergeSessionStagingIntoState(staging, stateDir);
|
|
326
|
-
log?.(`State restored session ${safe} from ${remote}`);
|
|
327
|
-
}
|
|
328
|
-
catch (err) {
|
|
329
|
-
// Empty prefix / first turn / transient — continue; runner creates fresh state.
|
|
330
|
-
log?.(`State restore-on-miss skipped for ${safe}: ${err instanceof Error ? err.message : String(err)}`);
|
|
331
|
-
}
|
|
332
|
-
finally {
|
|
333
|
-
restoreAttempted.add(key);
|
|
334
|
-
await fsp.rm(staging, { recursive: true, force: true }).catch(() => undefined);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
/** Test helper — clear the restore-attempted cache. */
|
|
338
|
-
function clearRestoreAttemptCache() {
|
|
339
|
-
restoreAttempted.clear();
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Debounced, non-overlapping per-session pusher.
|
|
343
|
-
* `schedule(sessionId)` after each turn; `flush()` awaits pending pushes (SIGTERM).
|
|
344
|
-
*/
|
|
345
|
-
function makeStatePusher(cfg, stateDir, log, waitMs = 1000) {
|
|
346
|
-
let timer = null;
|
|
347
|
-
let running = false;
|
|
348
|
-
let inflightPromise = null;
|
|
349
|
-
const pendingSessions = new Set();
|
|
350
|
-
let pendingFull = false;
|
|
351
|
-
const runNow = () => {
|
|
352
|
-
running = true;
|
|
353
|
-
const sessions = [...pendingSessions];
|
|
354
|
-
const doFull = pendingFull;
|
|
355
|
-
pendingSessions.clear();
|
|
356
|
-
pendingFull = false;
|
|
357
|
-
inflightPromise = (async () => {
|
|
358
|
-
if (doFull) {
|
|
359
|
-
await pushState(cfg, stateDir, log);
|
|
360
|
-
}
|
|
361
|
-
for (const id of sessions) {
|
|
362
|
-
await pushSessionState(cfg, stateDir, id, log);
|
|
363
|
-
}
|
|
364
|
-
})()
|
|
365
|
-
.catch((err) => {
|
|
366
|
-
console.error(`[state-sync] push batch failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
367
|
-
})
|
|
368
|
-
.finally(() => {
|
|
369
|
-
running = false;
|
|
370
|
-
inflightPromise = null;
|
|
371
|
-
if (pendingSessions.size > 0 || pendingFull) {
|
|
372
|
-
// Re-arm debounce without treating this as a legacy full-push schedule().
|
|
373
|
-
if (!timer) {
|
|
374
|
-
timer = setTimeout(() => {
|
|
375
|
-
timer = null;
|
|
376
|
-
void runNow();
|
|
377
|
-
}, waitMs);
|
|
378
|
-
timer.unref?.();
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
return inflightPromise;
|
|
383
|
-
};
|
|
384
|
-
const schedule = (sessionId) => {
|
|
385
|
-
if (sessionId?.trim()) {
|
|
386
|
-
pendingSessions.add(sessionId.trim());
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
// Legacy no-arg call → full-tree push (boot-compat / callers that omit id).
|
|
390
|
-
pendingFull = true;
|
|
391
|
-
}
|
|
392
|
-
if (running) {
|
|
393
|
-
return;
|
|
394
|
-
}
|
|
395
|
-
if (timer) {
|
|
396
|
-
return;
|
|
397
|
-
}
|
|
398
|
-
timer = setTimeout(() => {
|
|
399
|
-
timer = null;
|
|
400
|
-
void runNow();
|
|
401
|
-
}, waitMs);
|
|
402
|
-
timer.unref?.();
|
|
403
|
-
};
|
|
404
|
-
const flush = async () => {
|
|
405
|
-
if (timer) {
|
|
406
|
-
clearTimeout(timer);
|
|
407
|
-
timer = null;
|
|
408
|
-
}
|
|
409
|
-
if (inflightPromise) {
|
|
410
|
-
await inflightPromise;
|
|
411
|
-
}
|
|
412
|
-
if (pendingSessions.size > 0 || pendingFull) {
|
|
413
|
-
await runNow();
|
|
414
|
-
if (inflightPromise) {
|
|
415
|
-
await inflightPromise;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
};
|
|
419
|
-
return { schedule, flush };
|
|
420
|
-
}
|
|
421
|
-
/** Stable hash helper exposed for tests (matches DirectorySessionStore naming). */
|
|
422
|
-
function providerSessionShardName(conversationKey) {
|
|
423
|
-
return `${(0, crypto_1.createHash)('sha256').update(conversationKey).digest('hex').slice(0, 40)}.json`;
|
|
424
|
-
}
|
package/out/cli/utils.js
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) AgentHippo.ai. All rights reserved.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.SUGGESTED_LITELLM_SMOKE_TEST_COMMAND = exports.COLORS = void 0;
|
|
40
|
-
exports.getBinaryDir = getBinaryDir;
|
|
41
|
-
exports.findClaudeCodePath = findClaudeCodePath;
|
|
42
|
-
exports.findCodexPath = findCodexPath;
|
|
43
|
-
exports.findBundledBasePromptsDir = findBundledBasePromptsDir;
|
|
44
|
-
exports.getLiteLLMQuickstartHintLines = getLiteLLMQuickstartHintLines;
|
|
45
|
-
/**
|
|
46
|
-
* CLI Utilities
|
|
47
|
-
*/
|
|
48
|
-
const os = __importStar(require("os"));
|
|
49
|
-
const path = __importStar(require("path"));
|
|
50
|
-
const fs = __importStar(require("fs"));
|
|
51
|
-
const child_process_1 = require("child_process");
|
|
52
|
-
const deps_1 = require("./deps");
|
|
53
|
-
/**
|
|
54
|
-
* Get the directory where the CLI binary is located.
|
|
55
|
-
* This is used to find bundled SDK assets.
|
|
56
|
-
*/
|
|
57
|
-
function getBinaryDir() {
|
|
58
|
-
// process.execPath is the path to the running binary
|
|
59
|
-
return path.dirname(process.execPath);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Find the Claude Code CLI executable path.
|
|
63
|
-
* Priority:
|
|
64
|
-
* 1. CLAUDE_CODE_PATH env
|
|
65
|
-
* 2. Installed via deps.ts (npm install on first run)
|
|
66
|
-
* 3. Bundled with binary (dist/claude-sdk/cli.js) - legacy
|
|
67
|
-
* 4. System 'claude' command
|
|
68
|
-
* 5. Common install locations
|
|
69
|
-
*/
|
|
70
|
-
function findClaudeCodePath() {
|
|
71
|
-
// 1. Check environment variable
|
|
72
|
-
if (process.env.CLAUDE_CODE_PATH) {
|
|
73
|
-
return process.env.CLAUDE_CODE_PATH;
|
|
74
|
-
}
|
|
75
|
-
// 2. Check npm-installed location (.agenthippo-deps/node_modules)
|
|
76
|
-
const depsPath = (0, deps_1.getClaudeSdkCliPath)();
|
|
77
|
-
if (depsPath) {
|
|
78
|
-
return depsPath;
|
|
79
|
-
}
|
|
80
|
-
// 2b. Our OWN dependency tree — the case where the runtime ships as a node app with the
|
|
81
|
-
// SDK already in node_modules. Without this, such a deployment fails with "Claude Code CLI
|
|
82
|
-
// not found" while the SDK sits right there (hit on the Hanoi VM, 2026-07-27).
|
|
83
|
-
const ownCli = (0, deps_1.resolveFromOwnDeps)('@anthropic-ai/claude-agent-sdk', 'cli.js');
|
|
84
|
-
if (ownCli) {
|
|
85
|
-
return ownCli;
|
|
86
|
-
}
|
|
87
|
-
// 3. Check bundled location (next to binary) - legacy fallback
|
|
88
|
-
const binaryDir = getBinaryDir();
|
|
89
|
-
const bundledPath = path.join(binaryDir, 'claude-sdk', 'cli.js');
|
|
90
|
-
try {
|
|
91
|
-
fs.accessSync(bundledPath, fs.constants.R_OK);
|
|
92
|
-
return bundledPath;
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// Not bundled
|
|
96
|
-
}
|
|
97
|
-
// 4. Try 'which claude' (Unix) or 'where claude' (Windows)
|
|
98
|
-
try {
|
|
99
|
-
const cmd = process.platform === 'win32' ? 'where claude' : 'which claude';
|
|
100
|
-
const result = (0, child_process_1.execSync)(cmd, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
|
|
101
|
-
if (result) {
|
|
102
|
-
return result.split('\n')[0]; // First match
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// Not found
|
|
107
|
-
}
|
|
108
|
-
// 5. Check common locations
|
|
109
|
-
const homeDir = os.homedir();
|
|
110
|
-
const commonPaths = [
|
|
111
|
-
path.join(homeDir, '.npm-global', 'bin', 'claude'),
|
|
112
|
-
path.join(homeDir, '.local', 'bin', 'claude'),
|
|
113
|
-
'/usr/local/bin/claude',
|
|
114
|
-
'/opt/homebrew/bin/claude',
|
|
115
|
-
];
|
|
116
|
-
for (const p of commonPaths) {
|
|
117
|
-
try {
|
|
118
|
-
fs.accessSync(p, fs.constants.X_OK);
|
|
119
|
-
return p;
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
// Not found or not executable
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return undefined;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Find the Codex CLI executable path.
|
|
129
|
-
* Priority:
|
|
130
|
-
* 1. CODEX_PATH env
|
|
131
|
-
* 2. Installed via deps.ts (@openai/codex/bin/codex.js on first run)
|
|
132
|
-
* 3. Bundled with binary (dist/codex-sdk/codex) - legacy native bundle
|
|
133
|
-
* 4. System 'codex' command
|
|
134
|
-
*/
|
|
135
|
-
function findCodexPath() {
|
|
136
|
-
// 1. Check environment variable
|
|
137
|
-
if (process.env.CODEX_PATH) {
|
|
138
|
-
return process.env.CODEX_PATH;
|
|
139
|
-
}
|
|
140
|
-
// 2. Check npm-installed location (.agenthippo-deps/node_modules)
|
|
141
|
-
const ownCodex = (0, deps_1.resolveFromOwnDeps)('@openai/codex', 'bin/codex.js');
|
|
142
|
-
if (ownCodex) {
|
|
143
|
-
return ownCodex;
|
|
144
|
-
}
|
|
145
|
-
const depsPath = (0, deps_1.getCodexSdkBinaryPath)();
|
|
146
|
-
if (depsPath) {
|
|
147
|
-
return depsPath;
|
|
148
|
-
}
|
|
149
|
-
// 3. Check bundled location (next to binary) - legacy fallback
|
|
150
|
-
const binaryDir = getBinaryDir();
|
|
151
|
-
const binaryName = process.platform === 'win32' ? 'codex.exe' : 'codex';
|
|
152
|
-
const bundledPath = path.join(binaryDir, 'codex-sdk', binaryName);
|
|
153
|
-
try {
|
|
154
|
-
fs.accessSync(bundledPath, fs.constants.X_OK);
|
|
155
|
-
return bundledPath;
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
// Not bundled
|
|
159
|
-
}
|
|
160
|
-
// 4. Try 'which codex' (Unix) or 'where codex' (Windows)
|
|
161
|
-
try {
|
|
162
|
-
const cmd = process.platform === 'win32' ? 'where codex' : 'which codex';
|
|
163
|
-
const result = (0, child_process_1.execSync)(cmd, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
|
|
164
|
-
if (result) {
|
|
165
|
-
return result.split('\n')[0];
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
// Not found
|
|
170
|
-
}
|
|
171
|
-
return undefined;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Find the bundled base-prompts directory.
|
|
175
|
-
* Priority:
|
|
176
|
-
* 1. AGENTHIPPO_BASE_PROMPTS_DIR env
|
|
177
|
-
* 2. Next to binary (dist/base-prompts)
|
|
178
|
-
* 3. Development location (relative to compiled out/)
|
|
179
|
-
*/
|
|
180
|
-
function findBundledBasePromptsDir() {
|
|
181
|
-
// 1. Check environment variable
|
|
182
|
-
const envPath = process.env.AGENTHIPPO_BASE_PROMPTS_DIR || process.env.AGENTIDE_BASE_PROMPTS_DIR;
|
|
183
|
-
if (envPath) {
|
|
184
|
-
try {
|
|
185
|
-
fs.accessSync(envPath, fs.constants.R_OK);
|
|
186
|
-
return envPath;
|
|
187
|
-
}
|
|
188
|
-
catch {
|
|
189
|
-
// Not found
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// 2. Check bundled location (next to binary)
|
|
193
|
-
const binaryDir = getBinaryDir();
|
|
194
|
-
const bundledPath = path.join(binaryDir, 'base-prompts');
|
|
195
|
-
try {
|
|
196
|
-
fs.accessSync(bundledPath, fs.constants.R_OK);
|
|
197
|
-
return bundledPath;
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
// Not bundled
|
|
201
|
-
}
|
|
202
|
-
// 3. Development location - check relative to this file's compiled location
|
|
203
|
-
// When compiled, this is out/cli/utils.js, so base-prompts is at ../base-prompts
|
|
204
|
-
const devPath = path.resolve(__dirname, '..', 'base-prompts');
|
|
205
|
-
try {
|
|
206
|
-
fs.accessSync(devPath, fs.constants.R_OK);
|
|
207
|
-
return devPath;
|
|
208
|
-
}
|
|
209
|
-
catch {
|
|
210
|
-
// Not found
|
|
211
|
-
}
|
|
212
|
-
return undefined;
|
|
213
|
-
}
|
|
214
|
-
// ANSI color codes
|
|
215
|
-
exports.COLORS = {
|
|
216
|
-
reset: '\x1b[0m',
|
|
217
|
-
cyan: '\x1b[36m',
|
|
218
|
-
gray: '\x1b[90m',
|
|
219
|
-
dim: '\x1b[2m',
|
|
220
|
-
blue: '\x1b[34m',
|
|
221
|
-
green: '\x1b[32m',
|
|
222
|
-
red: '\x1b[31m',
|
|
223
|
-
yellow: '\x1b[33m',
|
|
224
|
-
};
|
|
225
|
-
exports.SUGGESTED_LITELLM_SMOKE_TEST_COMMAND = 'AGENTHIPPO_LITELLM_BASE_URL="http://localhost:4000" AGENTHIPPO_LITELLM_API_KEY="dummy" AGENTHIPPO_DEFAULT_MODEL="litellm/gpt-5.5" AGENTHIPPO_DEFAULT_ENGINE="codex" agenthippo ask "Reply with exactly: CLI_TEST_OK"';
|
|
226
|
-
function getLiteLLMQuickstartHintLines() {
|
|
227
|
-
return [
|
|
228
|
-
'Try local LiteLLM quickstart:',
|
|
229
|
-
` ${exports.SUGGESTED_LITELLM_SMOKE_TEST_COMMAND}`,
|
|
230
|
-
];
|
|
231
|
-
}
|