@opensearch-project/agent-health 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -5
- package/cli/dist/index.js +8292 -2938
- package/deployment/cloudformation/agent-health-observability.yaml +223 -32
- package/dist/assets/index-BfxtxmKc.css +1 -0
- package/dist/assets/index-CrjAfDHu.js +243 -0
- package/dist/index.html +2 -2
- package/docs/ARCHITECTURE.md +450 -0
- package/docs/BACKEND_JOB_QUEUE.md +405 -0
- package/docs/CLAUDE_CODE_TELEMETRY.md +283 -0
- package/docs/CLI.md +474 -0
- package/docs/CODING_AGENT_ANALYTICS.md +298 -0
- package/docs/CONFIGURATION.md +388 -0
- package/docs/CONNECTORS.md +536 -0
- package/docs/INSTRUMENT_WITH_OTEL.md +397 -0
- package/docs/ML-COMMONS-SETUP.md +289 -0
- package/docs/NPX_PACKAGING.md +195 -0
- package/docs/PERFORMANCE-MONITORING.md +200 -0
- package/docs/PERFORMANCE.md +390 -0
- package/docs/PI_PROFILING.md +169 -0
- package/docs/PLAN-non-agui-agent-support.md +525 -0
- package/docs/SDK.md +626 -0
- package/docs/SKILLS.md +264 -0
- package/docs/STORAGE_INDEX_FIELD_LIMITS.md +216 -0
- package/docs/blogs/2026-02-28-opensearch-agent-health.md +200 -0
- package/docs/blogs/getting-started-blog.md +608 -0
- package/docs/diagrams/Agent-health.excalidraw +5656 -0
- package/docs/diagrams/architecture.png +0 -0
- package/docs/plans/field-redesign.md +468 -0
- package/docs/rfcs/001-coding-agent-analytics.md +374 -0
- package/docs/rfcs/002-enterprise-leaderboard.md +267 -0
- package/docs/rfcs/003-remote-aggregation.md +146 -0
- package/docs/rfcs/004-test-sdk-v2.md +599 -0
- package/docs/skills/AGENT_HEALTH.md +652 -0
- package/docs/skills/AGENT_PROFILE.md +191 -0
- package/docs/skills/add-connector/SKILL.md +68 -0
- package/docs/skills/agent-health-profile/SKILL.md +40 -0
- package/docs/skills/config-auth/SKILL.md +194 -0
- package/docs/skills/config-auth/evals/evals.json +35 -0
- package/docs/skills/create-pr/SKILL.md +73 -0
- package/docs/skills/instrument-otel/SKILL.md +84 -0
- package/docs/skills/write-test/SKILL.md +124 -0
- package/docs/ui prd.md +376 -0
- package/examples/README.md +53 -0
- package/examples/config/agent-health.config.example.ts +155 -0
- package/examples/connectors/echo-connector.ts +131 -0
- package/examples/eval-files/demo.eval.js +128 -0
- package/examples/eval-files/ops-rca-classification.eval.js +71 -0
- package/examples/eval-files/ops-rca-evaluator.json +15 -0
- package/examples/eval-files/sdk-demo.eval.js +72 -0
- package/examples/eval-files/sdk-describe-demo.eval.js +50 -0
- package/examples/eval-files/sdk-hooks-demo.eval.js +99 -0
- package/examples/pi-profiling/README.md +77 -0
- package/examples/pi-profiling/agent-health-profile.ts +417 -0
- package/lib/dist/lib/agentUtils.d.ts +29 -0
- package/lib/dist/lib/agentUtils.d.ts.map +1 -0
- package/lib/dist/lib/agentUtils.js +43 -0
- package/lib/dist/lib/agentUtils.js.map +1 -0
- package/lib/dist/lib/bedrockCompat.d.ts +27 -0
- package/lib/dist/lib/bedrockCompat.d.ts.map +1 -0
- package/lib/dist/lib/bedrockCompat.js +83 -0
- package/lib/dist/lib/bedrockCompat.js.map +1 -0
- package/lib/dist/lib/benchmarkExport.d.ts +14 -0
- package/lib/dist/lib/benchmarkExport.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkExport.js +41 -0
- package/lib/dist/lib/benchmarkExport.js.map +1 -0
- package/lib/dist/lib/benchmarkImage.d.ts +52 -0
- package/lib/dist/lib/benchmarkImage.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkImage.js +113 -0
- package/lib/dist/lib/benchmarkImage.js.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts +50 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.js +89 -0
- package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -0
- package/lib/dist/lib/chunkedFetch.d.ts +18 -0
- package/lib/dist/lib/chunkedFetch.d.ts.map +1 -0
- package/lib/dist/lib/chunkedFetch.js +40 -0
- package/lib/dist/lib/chunkedFetch.js.map +1 -0
- package/lib/dist/lib/comparisonInsights.d.ts +104 -0
- package/lib/dist/lib/comparisonInsights.d.ts.map +1 -0
- package/lib/dist/lib/comparisonInsights.js +212 -0
- package/lib/dist/lib/comparisonInsights.js.map +1 -0
- package/lib/dist/lib/config/defineConfig.d.ts +27 -0
- package/lib/dist/lib/config/defineConfig.d.ts.map +1 -0
- package/lib/dist/lib/config/defineConfig.js +28 -0
- package/lib/dist/lib/config/defineConfig.js.map +1 -0
- package/lib/dist/lib/config/index.d.ts +9 -0
- package/lib/dist/lib/config/index.d.ts.map +1 -0
- package/lib/dist/lib/config/index.js +8 -0
- package/lib/dist/lib/config/index.js.map +1 -0
- package/lib/dist/lib/config/loader.d.ts +39 -0
- package/lib/dist/lib/config/loader.d.ts.map +1 -0
- package/lib/dist/lib/config/loader.js +263 -0
- package/lib/dist/lib/config/loader.js.map +1 -0
- package/lib/dist/lib/config/statePaths.d.ts +61 -0
- package/lib/dist/lib/config/statePaths.d.ts.map +1 -0
- package/lib/dist/lib/config/statePaths.js +188 -0
- package/lib/dist/lib/config/statePaths.js.map +1 -0
- package/lib/dist/lib/config/types.d.ts +245 -0
- package/lib/dist/lib/config/types.d.ts.map +1 -0
- package/lib/dist/lib/config/types.js +6 -0
- package/lib/dist/lib/config/types.js.map +1 -0
- package/lib/dist/lib/config.d.ts +39 -0
- package/lib/dist/lib/config.d.ts.map +1 -0
- package/lib/dist/lib/config.js +118 -0
- package/lib/dist/lib/config.js.map +1 -0
- package/lib/dist/lib/constants.d.ts +81 -0
- package/lib/dist/lib/constants.d.ts.map +1 -0
- package/lib/dist/lib/constants.js +374 -0
- package/lib/dist/lib/constants.js.map +1 -0
- package/lib/dist/lib/contextFormat.d.ts +26 -0
- package/lib/dist/lib/contextFormat.d.ts.map +1 -0
- package/lib/dist/lib/contextFormat.js +28 -0
- package/lib/dist/lib/contextFormat.js.map +1 -0
- package/lib/dist/lib/contextUtilization.d.ts +23 -0
- package/lib/dist/lib/contextUtilization.d.ts.map +1 -0
- package/lib/dist/lib/contextUtilization.js +72 -0
- package/lib/dist/lib/contextUtilization.js.map +1 -0
- package/lib/dist/lib/dashboardMetrics.d.ts +87 -0
- package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -0
- package/lib/dist/lib/dashboardMetrics.js +242 -0
- package/lib/dist/lib/dashboardMetrics.js.map +1 -0
- package/lib/dist/lib/dataSourceConfig.d.ts +108 -0
- package/lib/dist/lib/dataSourceConfig.d.ts.map +1 -0
- package/lib/dist/lib/dataSourceConfig.js +166 -0
- package/lib/dist/lib/dataSourceConfig.js.map +1 -0
- package/lib/dist/lib/debug.d.ts +26 -0
- package/lib/dist/lib/debug.d.ts.map +1 -0
- package/lib/dist/lib/debug.js +132 -0
- package/lib/dist/lib/debug.js.map +1 -0
- package/lib/dist/lib/diagnostics.d.ts +28 -0
- package/lib/dist/lib/diagnostics.d.ts.map +1 -0
- package/lib/dist/lib/diagnostics.js +65 -0
- package/lib/dist/lib/diagnostics.js.map +1 -0
- package/lib/dist/lib/envCompat.d.ts +27 -0
- package/lib/dist/lib/envCompat.d.ts.map +1 -0
- package/lib/dist/lib/envCompat.js +82 -0
- package/lib/dist/lib/envCompat.js.map +1 -0
- package/lib/dist/lib/evaluationRerun.d.ts +63 -0
- package/lib/dist/lib/evaluationRerun.d.ts.map +1 -0
- package/lib/dist/lib/evaluationRerun.js +85 -0
- package/lib/dist/lib/evaluationRerun.js.map +1 -0
- package/lib/dist/lib/findPackageRoot.d.ts +7 -0
- package/lib/dist/lib/findPackageRoot.d.ts.map +1 -0
- package/lib/dist/lib/findPackageRoot.js +57 -0
- package/lib/dist/lib/findPackageRoot.js.map +1 -0
- package/lib/dist/lib/hooks.d.ts +36 -0
- package/lib/dist/lib/hooks.d.ts.map +1 -0
- package/lib/dist/lib/hooks.js +112 -0
- package/lib/dist/lib/hooks.js.map +1 -0
- package/lib/dist/lib/index.d.ts +47 -0
- package/lib/dist/lib/index.d.ts.map +1 -0
- package/lib/dist/lib/index.js +62 -0
- package/lib/dist/lib/index.js.map +1 -0
- package/lib/dist/lib/labels.d.ts +90 -0
- package/lib/dist/lib/labels.d.ts.map +1 -0
- package/lib/dist/lib/labels.js +158 -0
- package/lib/dist/lib/labels.js.map +1 -0
- package/lib/dist/lib/markdown.d.ts +16 -0
- package/lib/dist/lib/markdown.d.ts.map +1 -0
- package/lib/dist/lib/markdown.js +42 -0
- package/lib/dist/lib/markdown.js.map +1 -0
- package/lib/dist/lib/matchers/expect.d.ts +3 -0
- package/lib/dist/lib/matchers/expect.d.ts.map +1 -0
- package/lib/dist/lib/matchers/expect.js +225 -0
- package/lib/dist/lib/matchers/expect.js.map +1 -0
- package/lib/dist/lib/matchers/index.d.ts +8 -0
- package/lib/dist/lib/matchers/index.d.ts.map +1 -0
- package/lib/dist/lib/matchers/index.js +9 -0
- package/lib/dist/lib/matchers/index.js.map +1 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts +113 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -0
- package/lib/dist/lib/matchers/judgeAccessor.js +183 -0
- package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -0
- package/lib/dist/lib/matchers/session.d.ts +39 -0
- package/lib/dist/lib/matchers/session.d.ts.map +1 -0
- package/lib/dist/lib/matchers/session.js +116 -0
- package/lib/dist/lib/matchers/session.js.map +1 -0
- package/lib/dist/lib/matchers/traces.d.ts +70 -0
- package/lib/dist/lib/matchers/traces.d.ts.map +1 -0
- package/lib/dist/lib/matchers/traces.js +236 -0
- package/lib/dist/lib/matchers/traces.js.map +1 -0
- package/lib/dist/lib/matchers/tracesPricing.d.ts +38 -0
- package/lib/dist/lib/matchers/tracesPricing.d.ts.map +1 -0
- package/lib/dist/lib/matchers/tracesPricing.js +64 -0
- package/lib/dist/lib/matchers/tracesPricing.js.map +1 -0
- package/lib/dist/lib/matchers/types.d.ts +75 -0
- package/lib/dist/lib/matchers/types.d.ts.map +1 -0
- package/lib/dist/lib/matchers/types.js +6 -0
- package/lib/dist/lib/matchers/types.js.map +1 -0
- package/lib/dist/lib/packagePaths.d.ts +29 -0
- package/lib/dist/lib/packagePaths.d.ts.map +1 -0
- package/lib/dist/lib/packagePaths.js +63 -0
- package/lib/dist/lib/packagePaths.js.map +1 -0
- package/lib/dist/lib/performance.d.ts +51 -0
- package/lib/dist/lib/performance.d.ts.map +1 -0
- package/lib/dist/lib/performance.js +159 -0
- package/lib/dist/lib/performance.js.map +1 -0
- package/lib/dist/lib/portConfig.d.ts +29 -0
- package/lib/dist/lib/portConfig.d.ts.map +1 -0
- package/lib/dist/lib/portConfig.js +64 -0
- package/lib/dist/lib/portConfig.js.map +1 -0
- package/lib/dist/lib/preferences.d.ts +63 -0
- package/lib/dist/lib/preferences.d.ts.map +1 -0
- package/lib/dist/lib/preferences.js +117 -0
- package/lib/dist/lib/preferences.js.map +1 -0
- package/lib/dist/lib/resolveAgentModel.d.ts +22 -0
- package/lib/dist/lib/resolveAgentModel.d.ts.map +1 -0
- package/lib/dist/lib/resolveAgentModel.js +37 -0
- package/lib/dist/lib/resolveAgentModel.js.map +1 -0
- package/lib/dist/lib/runStats.d.ts +116 -0
- package/lib/dist/lib/runStats.d.ts.map +1 -0
- package/lib/dist/lib/runStats.js +192 -0
- package/lib/dist/lib/runStats.js.map +1 -0
- package/lib/dist/lib/telemetry/constants.d.ts +60 -0
- package/lib/dist/lib/telemetry/constants.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/constants.js +87 -0
- package/lib/dist/lib/telemetry/constants.js.map +1 -0
- package/lib/dist/lib/telemetry/evalSpans.d.ts +61 -0
- package/lib/dist/lib/telemetry/evalSpans.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/evalSpans.js +254 -0
- package/lib/dist/lib/telemetry/evalSpans.js.map +1 -0
- package/lib/dist/lib/telemetry/index.d.ts +11 -0
- package/lib/dist/lib/telemetry/index.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/index.js +15 -0
- package/lib/dist/lib/telemetry/index.js.map +1 -0
- package/lib/dist/lib/telemetry/opensearchExporter.d.ts +43 -0
- package/lib/dist/lib/telemetry/opensearchExporter.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/opensearchExporter.js +217 -0
- package/lib/dist/lib/telemetry/opensearchExporter.js.map +1 -0
- package/lib/dist/lib/telemetry/provider.d.ts +55 -0
- package/lib/dist/lib/telemetry/provider.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/provider.js +140 -0
- package/lib/dist/lib/telemetry/provider.js.map +1 -0
- package/lib/dist/lib/testCaseLabels.d.ts +34 -0
- package/lib/dist/lib/testCaseLabels.d.ts.map +1 -0
- package/lib/dist/lib/testCaseLabels.js +88 -0
- package/lib/dist/lib/testCaseLabels.js.map +1 -0
- package/lib/dist/lib/testCaseValidation.d.ts +140 -0
- package/lib/dist/lib/testCaseValidation.d.ts.map +1 -0
- package/lib/dist/lib/testCaseValidation.js +162 -0
- package/lib/dist/lib/testCaseValidation.js.map +1 -0
- package/lib/dist/lib/testCases/agentFixture.d.ts +80 -0
- package/lib/dist/lib/testCases/agentFixture.d.ts.map +1 -0
- package/lib/dist/lib/testCases/agentFixture.js +43 -0
- package/lib/dist/lib/testCases/agentFixture.js.map +1 -0
- package/lib/dist/lib/testCases/authoringSurface.d.ts +10 -0
- package/lib/dist/lib/testCases/authoringSurface.d.ts.map +1 -0
- package/lib/dist/lib/testCases/authoringSurface.js +54 -0
- package/lib/dist/lib/testCases/authoringSurface.js.map +1 -0
- package/lib/dist/lib/testCases/codemod.d.ts +13 -0
- package/lib/dist/lib/testCases/codemod.d.ts.map +1 -0
- package/lib/dist/lib/testCases/codemod.js +169 -0
- package/lib/dist/lib/testCases/codemod.js.map +1 -0
- package/lib/dist/lib/testCases/define.d.ts +114 -0
- package/lib/dist/lib/testCases/define.d.ts.map +1 -0
- package/lib/dist/lib/testCases/define.js +253 -0
- package/lib/dist/lib/testCases/define.js.map +1 -0
- package/lib/dist/lib/testCases/evaluators.d.ts +80 -0
- package/lib/dist/lib/testCases/evaluators.d.ts.map +1 -0
- package/lib/dist/lib/testCases/evaluators.js +105 -0
- package/lib/dist/lib/testCases/evaluators.js.map +1 -0
- package/lib/dist/lib/testCases/index.d.ts +14 -0
- package/lib/dist/lib/testCases/index.d.ts.map +1 -0
- package/lib/dist/lib/testCases/index.js +12 -0
- package/lib/dist/lib/testCases/index.js.map +1 -0
- package/lib/dist/lib/testCases/judge.d.ts +165 -0
- package/lib/dist/lib/testCases/judge.d.ts.map +1 -0
- package/lib/dist/lib/testCases/judge.js +359 -0
- package/lib/dist/lib/testCases/judge.js.map +1 -0
- package/lib/dist/lib/testCases/loader.d.ts +36 -0
- package/lib/dist/lib/testCases/loader.d.ts.map +1 -0
- package/lib/dist/lib/testCases/loader.js +179 -0
- package/lib/dist/lib/testCases/loader.js.map +1 -0
- package/lib/dist/lib/testCases/types.d.ts +242 -0
- package/lib/dist/lib/testCases/types.d.ts.map +1 -0
- package/lib/dist/lib/testCases/types.js +6 -0
- package/lib/dist/lib/testCases/types.js.map +1 -0
- package/lib/dist/lib/theme.d.ts +6 -0
- package/lib/dist/lib/theme.d.ts.map +1 -0
- package/lib/dist/lib/theme.js +36 -0
- package/lib/dist/lib/theme.js.map +1 -0
- package/lib/dist/lib/uiTelemetry.d.ts +7 -0
- package/lib/dist/lib/uiTelemetry.d.ts.map +1 -0
- package/lib/dist/lib/uiTelemetry.js +25 -0
- package/lib/dist/lib/uiTelemetry.js.map +1 -0
- package/lib/dist/lib/utils.d.ts +111 -0
- package/lib/dist/lib/utils.d.ts.map +1 -0
- package/lib/dist/lib/utils.js +254 -0
- package/lib/dist/lib/utils.js.map +1 -0
- package/lib/dist/lib/workflow/consolidate.d.ts +12 -0
- package/lib/dist/lib/workflow/consolidate.d.ts.map +1 -0
- package/lib/dist/lib/workflow/consolidate.js +33 -0
- package/lib/dist/lib/workflow/consolidate.js.map +1 -0
- package/lib/dist/lib/workflow/index.d.ts +13 -0
- package/lib/dist/lib/workflow/index.d.ts.map +1 -0
- package/lib/dist/lib/workflow/index.js +12 -0
- package/lib/dist/lib/workflow/index.js.map +1 -0
- package/lib/dist/lib/workflow/ledger.d.ts +30 -0
- package/lib/dist/lib/workflow/ledger.d.ts.map +1 -0
- package/lib/dist/lib/workflow/ledger.js +41 -0
- package/lib/dist/lib/workflow/ledger.js.map +1 -0
- package/lib/dist/lib/workflow/pool.d.ts +13 -0
- package/lib/dist/lib/workflow/pool.d.ts.map +1 -0
- package/lib/dist/lib/workflow/pool.js +44 -0
- package/lib/dist/lib/workflow/pool.js.map +1 -0
- package/lib/dist/lib/workflow/source.d.ts +22 -0
- package/lib/dist/lib/workflow/source.d.ts.map +1 -0
- package/lib/dist/lib/workflow/source.js +29 -0
- package/lib/dist/lib/workflow/source.js.map +1 -0
- package/lib/dist/lib/workflow/stepB.d.ts +71 -0
- package/lib/dist/lib/workflow/stepB.d.ts.map +1 -0
- package/lib/dist/lib/workflow/stepB.js +99 -0
- package/lib/dist/lib/workflow/stepB.js.map +1 -0
- package/lib/dist/lib/workflow/types.d.ts +86 -0
- package/lib/dist/lib/workflow/types.d.ts.map +1 -0
- package/lib/dist/lib/workflow/types.js +6 -0
- package/lib/dist/lib/workflow/types.js.map +1 -0
- package/lib/dist/lib/workflow/workflow.d.ts +119 -0
- package/lib/dist/lib/workflow/workflow.d.ts.map +1 -0
- package/lib/dist/lib/workflow/workflow.js +195 -0
- package/lib/dist/lib/workflow/workflow.js.map +1 -0
- package/lib/dist/services/agent/aguiConverter.d.ts +50 -0
- package/lib/dist/services/agent/aguiConverter.d.ts.map +1 -0
- package/lib/dist/services/agent/aguiConverter.js +449 -0
- package/lib/dist/services/agent/aguiConverter.js.map +1 -0
- package/lib/dist/services/agent/index.d.ts +10 -0
- package/lib/dist/services/agent/index.d.ts.map +1 -0
- package/lib/dist/services/agent/index.js +12 -0
- package/lib/dist/services/agent/index.js.map +1 -0
- package/lib/dist/services/agent/payloadBuilder.d.ts +33 -0
- package/lib/dist/services/agent/payloadBuilder.d.ts.map +1 -0
- package/lib/dist/services/agent/payloadBuilder.js +75 -0
- package/lib/dist/services/agent/payloadBuilder.js.map +1 -0
- package/lib/dist/services/agent/sseStream.d.ts +43 -0
- package/lib/dist/services/agent/sseStream.d.ts.map +1 -0
- package/lib/dist/services/agent/sseStream.js +223 -0
- package/lib/dist/services/agent/sseStream.js.map +1 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts +44 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js +95 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js.map +1 -0
- package/lib/dist/services/connectors/base/BaseConnector.d.ts +81 -0
- package/lib/dist/services/connectors/base/BaseConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/base/BaseConnector.js +170 -0
- package/lib/dist/services/connectors/base/BaseConnector.js.map +1 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +126 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +417 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -0
- package/lib/dist/services/connectors/index.d.ts +13 -0
- package/lib/dist/services/connectors/index.d.ts.map +1 -0
- package/lib/dist/services/connectors/index.js +32 -0
- package/lib/dist/services/connectors/index.js.map +1 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +48 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.js +158 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts +36 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.js +175 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.js.map +1 -0
- package/lib/dist/services/connectors/mock/MockConnector.d.ts +37 -0
- package/lib/dist/services/connectors/mock/MockConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/mock/MockConnector.js +120 -0
- package/lib/dist/services/connectors/mock/MockConnector.js.map +1 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts +42 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js +133 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js.map +1 -0
- package/lib/dist/services/connectors/pi/PiConnector.d.ts +87 -0
- package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/pi/PiConnector.js +274 -0
- package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -0
- package/lib/dist/services/connectors/registry.d.ts +57 -0
- package/lib/dist/services/connectors/registry.d.ts.map +1 -0
- package/lib/dist/services/connectors/registry.js +106 -0
- package/lib/dist/services/connectors/registry.js.map +1 -0
- package/lib/dist/services/connectors/rest/RESTConnector.d.ts +38 -0
- package/lib/dist/services/connectors/rest/RESTConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/rest/RESTConnector.js +117 -0
- package/lib/dist/services/connectors/rest/RESTConnector.js.map +1 -0
- package/lib/dist/services/connectors/server.d.ts +13 -0
- package/lib/dist/services/connectors/server.d.ts.map +1 -0
- package/lib/dist/services/connectors/server.js +34 -0
- package/lib/dist/services/connectors/server.js.map +1 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.d.ts +48 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.js +221 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.js.map +1 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +88 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +426 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -0
- package/lib/dist/services/connectors/types.d.ts +213 -0
- package/lib/dist/services/connectors/types.d.ts.map +1 -0
- package/lib/dist/services/connectors/types.js +6 -0
- package/lib/dist/services/connectors/types.js.map +1 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts +71 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -0
- package/lib/dist/services/evaluation/bedrockJudge.js +169 -0
- package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -0
- package/lib/dist/services/evaluation/evaluatorError.d.ts +56 -0
- package/lib/dist/services/evaluation/evaluatorError.d.ts.map +1 -0
- package/lib/dist/services/evaluation/evaluatorError.js +56 -0
- package/lib/dist/services/evaluation/evaluatorError.js.map +1 -0
- package/lib/dist/services/evaluation/index.d.ts +106 -0
- package/lib/dist/services/evaluation/index.d.ts.map +1 -0
- package/lib/dist/services/evaluation/index.js +684 -0
- package/lib/dist/services/evaluation/index.js.map +1 -0
- package/lib/dist/services/evaluation/mockTrajectory.d.ts +3 -0
- package/lib/dist/services/evaluation/mockTrajectory.d.ts.map +1 -0
- package/lib/dist/services/evaluation/mockTrajectory.js +72 -0
- package/lib/dist/services/evaluation/mockTrajectory.js.map +1 -0
- package/lib/dist/services/opensearch/client.d.ts +26 -0
- package/lib/dist/services/opensearch/client.d.ts.map +1 -0
- package/lib/dist/services/opensearch/client.js +131 -0
- package/lib/dist/services/opensearch/client.js.map +1 -0
- package/lib/dist/services/opensearch/index.d.ts +16 -0
- package/lib/dist/services/opensearch/index.d.ts.map +1 -0
- package/lib/dist/services/opensearch/index.js +25 -0
- package/lib/dist/services/opensearch/index.js.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +123 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.js +440 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -0
- package/lib/dist/services/storage/asyncRunStorage.d.ts +135 -0
- package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncRunStorage.js +524 -0
- package/lib/dist/services/storage/asyncRunStorage.js.map +1 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +170 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.js +301 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -0
- package/lib/dist/services/storage/index.d.ts +17 -0
- package/lib/dist/services/storage/index.d.ts.map +1 -0
- package/lib/dist/services/storage/index.js +20 -0
- package/lib/dist/services/storage/index.js.map +1 -0
- package/lib/dist/services/storage/migration.d.ts +54 -0
- package/lib/dist/services/storage/migration.d.ts.map +1 -0
- package/lib/dist/services/storage/migration.js +296 -0
- package/lib/dist/services/storage/migration.js.map +1 -0
- package/lib/dist/services/storage/opensearchClient.d.ts +947 -0
- package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -0
- package/lib/dist/services/storage/opensearchClient.js +442 -0
- package/lib/dist/services/storage/opensearchClient.js.map +1 -0
- package/lib/dist/services/traces/browserRecovery.d.ts +37 -0
- package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -0
- package/lib/dist/services/traces/browserRecovery.js +108 -0
- package/lib/dist/services/traces/browserRecovery.js.map +1 -0
- package/lib/dist/services/traces/categoryStyles.d.ts +21 -0
- package/lib/dist/services/traces/categoryStyles.d.ts.map +1 -0
- package/lib/dist/services/traces/categoryStyles.js +56 -0
- package/lib/dist/services/traces/categoryStyles.js.map +1 -0
- package/lib/dist/services/traces/executionOrderTransform.d.ts +35 -0
- package/lib/dist/services/traces/executionOrderTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/executionOrderTransform.js +313 -0
- package/lib/dist/services/traces/executionOrderTransform.js.map +1 -0
- package/lib/dist/services/traces/fetchSpansForRun.d.ts +86 -0
- package/lib/dist/services/traces/fetchSpansForRun.d.ts.map +1 -0
- package/lib/dist/services/traces/fetchSpansForRun.js +69 -0
- package/lib/dist/services/traces/fetchSpansForRun.js.map +1 -0
- package/lib/dist/services/traces/flowTransform.d.ts +24 -0
- package/lib/dist/services/traces/flowTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/flowTransform.js +228 -0
- package/lib/dist/services/traces/flowTransform.js.map +1 -0
- package/lib/dist/services/traces/index.d.ts +121 -0
- package/lib/dist/services/traces/index.d.ts.map +1 -0
- package/lib/dist/services/traces/index.js +255 -0
- package/lib/dist/services/traces/index.js.map +1 -0
- package/lib/dist/services/traces/intentTransform.d.ts +20 -0
- package/lib/dist/services/traces/intentTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/intentTransform.js +131 -0
- package/lib/dist/services/traces/intentTransform.js.map +1 -0
- package/lib/dist/services/traces/judgeAgentsHints.d.ts +63 -0
- package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -0
- package/lib/dist/services/traces/judgeAgentsHints.js +89 -0
- package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -0
- package/lib/dist/services/traces/messageExtraction.d.ts +15 -0
- package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -0
- package/lib/dist/services/traces/messageExtraction.js +313 -0
- package/lib/dist/services/traces/messageExtraction.js.map +1 -0
- package/lib/dist/services/traces/spanCategorization.d.ts +63 -0
- package/lib/dist/services/traces/spanCategorization.d.ts.map +1 -0
- package/lib/dist/services/traces/spanCategorization.js +276 -0
- package/lib/dist/services/traces/spanCategorization.js.map +1 -0
- package/lib/dist/services/traces/spanPreprocessing.d.ts +37 -0
- package/lib/dist/services/traces/spanPreprocessing.d.ts.map +1 -0
- package/lib/dist/services/traces/spanPreprocessing.js +102 -0
- package/lib/dist/services/traces/spanPreprocessing.js.map +1 -0
- package/lib/dist/services/traces/spansToTrajectory.d.ts +36 -0
- package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -0
- package/lib/dist/services/traces/spansToTrajectory.js +425 -0
- package/lib/dist/services/traces/spansToTrajectory.js.map +1 -0
- package/lib/dist/services/traces/toolSimilarity.d.ts +35 -0
- package/lib/dist/services/traces/toolSimilarity.d.ts.map +1 -0
- package/lib/dist/services/traces/toolSimilarity.js +203 -0
- package/lib/dist/services/traces/toolSimilarity.js.map +1 -0
- package/lib/dist/services/traces/traceComparison.d.ts +31 -0
- package/lib/dist/services/traces/traceComparison.d.ts.map +1 -0
- package/lib/dist/services/traces/traceComparison.js +318 -0
- package/lib/dist/services/traces/traceComparison.js.map +1 -0
- package/lib/dist/services/traces/traceGrouping.d.ts +19 -0
- package/lib/dist/services/traces/traceGrouping.d.ts.map +1 -0
- package/lib/dist/services/traces/traceGrouping.js +107 -0
- package/lib/dist/services/traces/traceGrouping.js.map +1 -0
- package/lib/dist/services/traces/tracePoller.d.ts +108 -0
- package/lib/dist/services/traces/tracePoller.d.ts.map +1 -0
- package/lib/dist/services/traces/tracePoller.js +475 -0
- package/lib/dist/services/traces/tracePoller.js.map +1 -0
- package/lib/dist/services/traces/traceStats.d.ts +45 -0
- package/lib/dist/services/traces/traceStats.d.ts.map +1 -0
- package/lib/dist/services/traces/traceStats.js +114 -0
- package/lib/dist/services/traces/traceStats.js.map +1 -0
- package/lib/dist/services/traces/traceSummary.d.ts +47 -0
- package/lib/dist/services/traces/traceSummary.d.ts.map +1 -0
- package/lib/dist/services/traces/traceSummary.js +68 -0
- package/lib/dist/services/traces/traceSummary.js.map +1 -0
- package/lib/dist/services/traces/utils.d.ts +33 -0
- package/lib/dist/services/traces/utils.d.ts.map +1 -0
- package/lib/dist/services/traces/utils.js +114 -0
- package/lib/dist/services/traces/utils.js.map +1 -0
- package/lib/dist/types/agui.d.ts +13 -0
- package/lib/dist/types/agui.d.ts.map +1 -0
- package/lib/dist/types/agui.js +16 -0
- package/lib/dist/types/agui.js.map +1 -0
- package/lib/dist/types/index.d.ts +1229 -0
- package/lib/dist/types/index.d.ts.map +1 -0
- package/lib/dist/types/index.js +12 -0
- package/lib/dist/types/index.js.map +1 -0
- package/lib/dist/types/skills.d.ts +146 -0
- package/lib/dist/types/skills.d.ts.map +1 -0
- package/lib/dist/types/skills.js +6 -0
- package/lib/dist/types/skills.js.map +1 -0
- package/observio-sample-agent/pi-package/README.md +112 -0
- package/observio-sample-agent/pi-package/extensions/agent-health.ts +373 -0
- package/observio-sample-agent/pi-package/package.json +17 -0
- package/observio-sample-agent/pi-package/prompts/agent-health.md +37 -0
- package/observio-sample-agent/pi-package/skills/create-pr/SKILL.md +88 -0
- package/observio-sample-agent/pi-package/skills/fix-bug/SKILL.md +71 -0
- package/observio-sample-agent/pi-package/skills/implement-feature/SKILL.md +156 -0
- package/observio-sample-agent/pi-package/skills/instrument-otel/SKILL.md +208 -0
- package/observio-sample-agent/pi-package/skills/setup-collector/SKILL.md +146 -0
- package/observio-sample-agent/pi-package/skills/write-test/SKILL.md +115 -0
- package/package.json +45 -9
- package/server/dist/app.js +34031 -18731
- package/server/dist/index.js +30737 -15338
- package/tsconfig.lib.json +71 -0
- package/dist/assets/index-BOIP5L7h.js +0 -246
- package/dist/assets/index-CU9YKpAL.css +0 -1
- package/lib/dist/config/index.js +0 -452
- package/lib/dist/index.js +0 -1725
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { TestCase, TestCaseVersion, AgentContextItem, AgentToolDefinition } from '../../types/index.js';
|
|
2
|
+
export interface CreateTestCaseInput {
|
|
3
|
+
/** Optional ID - if provided, will be used instead of generating a new one (useful for migration) */
|
|
4
|
+
id?: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
labels?: string[];
|
|
8
|
+
/** @deprecated Use labels instead */
|
|
9
|
+
category?: string;
|
|
10
|
+
/** @deprecated Use labels instead */
|
|
11
|
+
subcategory?: string;
|
|
12
|
+
/** @deprecated Use labels instead */
|
|
13
|
+
difficulty?: 'Easy' | 'Medium' | 'Hard';
|
|
14
|
+
initialPrompt: string;
|
|
15
|
+
context: AgentContextItem[];
|
|
16
|
+
tools?: AgentToolDefinition[];
|
|
17
|
+
expectedPPL?: string;
|
|
18
|
+
expectedOutcomes?: string[];
|
|
19
|
+
expectedTrajectory?: {
|
|
20
|
+
step: number;
|
|
21
|
+
description: string;
|
|
22
|
+
requiredTools: string[];
|
|
23
|
+
}[];
|
|
24
|
+
followUpQuestions?: {
|
|
25
|
+
trigger: 'results_available' | 'error' | 'always';
|
|
26
|
+
question: string;
|
|
27
|
+
businessValue: string;
|
|
28
|
+
}[];
|
|
29
|
+
tags?: string[];
|
|
30
|
+
author?: string;
|
|
31
|
+
isPromoted?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface UpdateTestCaseInput {
|
|
34
|
+
name?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
labels?: string[];
|
|
37
|
+
/** @deprecated Use labels instead */
|
|
38
|
+
category?: string;
|
|
39
|
+
/** @deprecated Use labels instead */
|
|
40
|
+
subcategory?: string;
|
|
41
|
+
/** @deprecated Use labels instead */
|
|
42
|
+
difficulty?: 'Easy' | 'Medium' | 'Hard';
|
|
43
|
+
initialPrompt?: string;
|
|
44
|
+
context?: AgentContextItem[];
|
|
45
|
+
tools?: AgentToolDefinition[];
|
|
46
|
+
expectedPPL?: string;
|
|
47
|
+
expectedOutcomes?: string[];
|
|
48
|
+
expectedTrajectory?: {
|
|
49
|
+
step: number;
|
|
50
|
+
description: string;
|
|
51
|
+
requiredTools: string[];
|
|
52
|
+
}[];
|
|
53
|
+
followUpQuestions?: {
|
|
54
|
+
trigger: 'results_available' | 'error' | 'always';
|
|
55
|
+
question: string;
|
|
56
|
+
businessValue: string;
|
|
57
|
+
}[];
|
|
58
|
+
tags?: string[];
|
|
59
|
+
isPromoted?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/** Paginated response from getAll with summary/pagination options */
|
|
62
|
+
export interface TestCasePage {
|
|
63
|
+
testCases: TestCase[];
|
|
64
|
+
total: number;
|
|
65
|
+
after?: string | null;
|
|
66
|
+
hasMore?: boolean;
|
|
67
|
+
}
|
|
68
|
+
declare class AsyncTestCaseStorage {
|
|
69
|
+
/**
|
|
70
|
+
* Get all test cases (latest versions), sorted by updatedAt descending
|
|
71
|
+
* @param options.summary - true to fetch lightweight summary (no context/expectedOutcomes)
|
|
72
|
+
* @param options.size - page size for pagination
|
|
73
|
+
* @param options.after - cursor token for next page
|
|
74
|
+
* @param options.includeSample - whether to include sample/demo data
|
|
75
|
+
*/
|
|
76
|
+
getAll(options: {
|
|
77
|
+
summary?: boolean;
|
|
78
|
+
size: number;
|
|
79
|
+
after?: string;
|
|
80
|
+
includeSample?: boolean;
|
|
81
|
+
}): Promise<TestCasePage>;
|
|
82
|
+
getAll(options?: {
|
|
83
|
+
summary?: boolean;
|
|
84
|
+
size?: number;
|
|
85
|
+
after?: string;
|
|
86
|
+
includeSample?: boolean;
|
|
87
|
+
}): Promise<TestCase[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Get only promoted test cases (for Experiments)
|
|
90
|
+
*/
|
|
91
|
+
getPromoted(): Promise<TestCase[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Get test cases by specific IDs (for efficient filtered fetching)
|
|
94
|
+
* Used when you only need test cases for a specific benchmark, or for a
|
|
95
|
+
* name/labels/category lookup scoped to a known id set — e.g. the
|
|
96
|
+
* comparison page's category-matrix breakdown, which used to call the
|
|
97
|
+
* unpaginated {@link getAll} for this (every test case in the whole
|
|
98
|
+
* storage backend, full body included) and could take many seconds or
|
|
99
|
+
* fail outright on a real deployment. Chunked the same way
|
|
100
|
+
* asyncRunStorage.getReportsByIds is — never one unbounded `?ids=<all>`
|
|
101
|
+
* request, never an unbounded burst of parallel ones either — so a
|
|
102
|
+
* lookup over many runs' worth of test cases stays bounded regardless of
|
|
103
|
+
* how large the id list is.
|
|
104
|
+
* @param options.summary - request the lightweight list-view payload
|
|
105
|
+
* (strips sourceCode/context/expectedOutcomes) instead of full records.
|
|
106
|
+
*/
|
|
107
|
+
getByIds(ids: string[], options?: {
|
|
108
|
+
summary?: boolean;
|
|
109
|
+
}): Promise<TestCase[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Get a test case by ID (latest version)
|
|
112
|
+
*/
|
|
113
|
+
getById(id: string): Promise<TestCase | null>;
|
|
114
|
+
/**
|
|
115
|
+
* Create a new test case
|
|
116
|
+
*/
|
|
117
|
+
create(input: CreateTestCaseInput): Promise<TestCase>;
|
|
118
|
+
/**
|
|
119
|
+
* Update a test case (creates new version automatically in OpenSearch)
|
|
120
|
+
*/
|
|
121
|
+
update(id: string, updates: UpdateTestCaseInput): Promise<TestCase | null>;
|
|
122
|
+
/**
|
|
123
|
+
* Delete a test case (all versions)
|
|
124
|
+
*/
|
|
125
|
+
delete(id: string): Promise<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* Set promoted status for a test case
|
|
128
|
+
*/
|
|
129
|
+
setPromoted(id: string, isPromoted: boolean): Promise<boolean>;
|
|
130
|
+
/**
|
|
131
|
+
* Get all versions of a test case
|
|
132
|
+
*/
|
|
133
|
+
getVersions(testCaseId: string): Promise<TestCaseVersion[]>;
|
|
134
|
+
/**
|
|
135
|
+
* Get a specific version of a test case
|
|
136
|
+
*/
|
|
137
|
+
getVersion(testCaseId: string, version: number): Promise<TestCaseVersion | null>;
|
|
138
|
+
/**
|
|
139
|
+
* Generate a unique ID
|
|
140
|
+
*/
|
|
141
|
+
generateId(): string;
|
|
142
|
+
/**
|
|
143
|
+
* Get unique categories from all test cases
|
|
144
|
+
* @deprecated Use getLabels() instead
|
|
145
|
+
*/
|
|
146
|
+
getCategories(): Promise<string[]>;
|
|
147
|
+
/**
|
|
148
|
+
* Get all unique labels from all test cases
|
|
149
|
+
*/
|
|
150
|
+
getLabels(): Promise<string[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Get test cases count
|
|
153
|
+
*/
|
|
154
|
+
getCount(): Promise<number>;
|
|
155
|
+
/**
|
|
156
|
+
* Get promoted count
|
|
157
|
+
*/
|
|
158
|
+
getPromotedCount(): Promise<number>;
|
|
159
|
+
/**
|
|
160
|
+
* Bulk create test cases (for migration)
|
|
161
|
+
*/
|
|
162
|
+
bulkCreate(testCases: CreateTestCaseInput[]): Promise<{
|
|
163
|
+
created: number;
|
|
164
|
+
errors: number;
|
|
165
|
+
testCases: TestCase[];
|
|
166
|
+
}>;
|
|
167
|
+
}
|
|
168
|
+
export declare const asyncTestCaseStorage: AsyncTestCaseStorage;
|
|
169
|
+
export {};
|
|
170
|
+
//# sourceMappingURL=asyncTestCaseStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncTestCaseStorage.d.ts","sourceRoot":"","sources":["../../../../services/storage/asyncTestCaseStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Async Test Case Storage
|
|
7
|
+
*
|
|
8
|
+
* Async wrapper around OpenSearch storage for test cases.
|
|
9
|
+
* Provides a similar API to the synchronous localStorage-based storage.
|
|
10
|
+
*/
|
|
11
|
+
import { testCaseStorage as opensearchTestCases } from './opensearchClient.js';
|
|
12
|
+
import { buildLabels, parseLabels } from '../../lib/labels.js';
|
|
13
|
+
import { fetchChunked, DEFAULT_CHUNK_SIZE } from '../../lib/chunkedFetch.js';
|
|
14
|
+
/**
|
|
15
|
+
* Convert OpenSearch storage format to app TestCase format
|
|
16
|
+
* Handles backward compatibility: if labels exist, use them; otherwise derive from legacy fields
|
|
17
|
+
*/
|
|
18
|
+
function toTestCase(stored) {
|
|
19
|
+
// Build labels from storage or derive from legacy fields
|
|
20
|
+
let labels = stored.labels || [];
|
|
21
|
+
if (labels.length === 0 && (stored.category || stored.difficulty)) {
|
|
22
|
+
labels = buildLabels({
|
|
23
|
+
category: stored.category,
|
|
24
|
+
subcategory: stored.subcategory,
|
|
25
|
+
difficulty: stored.difficulty,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// Parse labels for backward compat fields
|
|
29
|
+
const parsed = parseLabels(labels);
|
|
30
|
+
return {
|
|
31
|
+
id: stored.id,
|
|
32
|
+
name: stored.name,
|
|
33
|
+
description: stored.description,
|
|
34
|
+
labels,
|
|
35
|
+
// Backward compat - derived from labels or fallback to stored values
|
|
36
|
+
category: parsed.category || stored.category || 'General',
|
|
37
|
+
subcategory: parsed.subcategory || stored.subcategory,
|
|
38
|
+
difficulty: parsed.difficulty || stored.difficulty || 'Medium',
|
|
39
|
+
currentVersion: stored.version,
|
|
40
|
+
versions: [], // Versions fetched separately if needed
|
|
41
|
+
// Source provenance — preserve so the UI can distinguish SDK / code-imported
|
|
42
|
+
// test cases from JSON ones (CollapsibleTestCaseDefinition keys off these).
|
|
43
|
+
sourceFile: stored.sourceFile,
|
|
44
|
+
sourceHash: stored.sourceHash,
|
|
45
|
+
sourceCode: stored.sourceCode,
|
|
46
|
+
sourceFileName: stored.sourceFileName,
|
|
47
|
+
sourceLanguage: stored.sourceLanguage,
|
|
48
|
+
isPromoted: stored.tags?.includes('promoted') ?? false,
|
|
49
|
+
createdAt: stored.createdAt,
|
|
50
|
+
updatedAt: stored.updatedAt,
|
|
51
|
+
lastRunAt: stored.lastRunAt,
|
|
52
|
+
initialPrompt: stored.initialPrompt,
|
|
53
|
+
context: (stored.context || []),
|
|
54
|
+
tools: stored.tools,
|
|
55
|
+
expectedPPL: stored.expectedPPL,
|
|
56
|
+
expectedOutcomes: stored.expectedOutcomes,
|
|
57
|
+
expectedTrajectory: (stored.expectedTrajectory || []),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Convert app TestCase format to OpenSearch storage format
|
|
62
|
+
* Writes labels as primary, legacy fields for backward compatibility
|
|
63
|
+
*/
|
|
64
|
+
function toStorageFormat(testCase) {
|
|
65
|
+
const tags = testCase.tags || [];
|
|
66
|
+
if (testCase.isPromoted && !tags.includes('promoted')) {
|
|
67
|
+
tags.push('promoted');
|
|
68
|
+
}
|
|
69
|
+
// Use provided labels or build from legacy fields
|
|
70
|
+
let labels = testCase.labels;
|
|
71
|
+
if (!labels && (testCase.category || testCase.difficulty)) {
|
|
72
|
+
labels = buildLabels({
|
|
73
|
+
category: testCase.category,
|
|
74
|
+
subcategory: testCase.subcategory,
|
|
75
|
+
difficulty: testCase.difficulty,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
name: testCase.name,
|
|
80
|
+
description: testCase.description,
|
|
81
|
+
initialPrompt: testCase.initialPrompt,
|
|
82
|
+
tools: testCase.tools,
|
|
83
|
+
messages: [],
|
|
84
|
+
context: testCase.context,
|
|
85
|
+
forwardedProps: {},
|
|
86
|
+
expectedPPL: testCase.expectedPPL,
|
|
87
|
+
expectedOutcomes: testCase.expectedOutcomes,
|
|
88
|
+
expectedTrajectory: testCase.expectedTrajectory,
|
|
89
|
+
labels,
|
|
90
|
+
// Legacy fields - kept for backward compatibility
|
|
91
|
+
category: testCase.category,
|
|
92
|
+
subcategory: testCase.subcategory,
|
|
93
|
+
difficulty: testCase.difficulty,
|
|
94
|
+
tags,
|
|
95
|
+
author: testCase.author,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
class AsyncTestCaseStorage {
|
|
99
|
+
async getAll(options) {
|
|
100
|
+
const isPaginated = options?.size !== undefined;
|
|
101
|
+
const result = await opensearchTestCases.getAll({
|
|
102
|
+
fields: options?.summary ? 'summary' : undefined,
|
|
103
|
+
size: options?.size,
|
|
104
|
+
after: options?.after,
|
|
105
|
+
includeSample: options?.includeSample,
|
|
106
|
+
});
|
|
107
|
+
const testCases = result.testCases.map(toTestCase);
|
|
108
|
+
// Sort by lastActivity (max of lastRunAt, updatedAt, createdAt) descending
|
|
109
|
+
const lastActivity = (tc) => Math.max(tc.lastRunAt ? new Date(tc.lastRunAt).getTime() : 0, tc.updatedAt ? new Date(tc.updatedAt).getTime() : 0, tc.createdAt ? new Date(tc.createdAt).getTime() : 0);
|
|
110
|
+
const sorted = testCases.sort((a, b) => lastActivity(b) - lastActivity(a));
|
|
111
|
+
if (isPaginated) {
|
|
112
|
+
return {
|
|
113
|
+
testCases: sorted,
|
|
114
|
+
total: result.total,
|
|
115
|
+
after: result.after,
|
|
116
|
+
hasMore: result.hasMore,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
return sorted;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get only promoted test cases (for Experiments)
|
|
123
|
+
*/
|
|
124
|
+
async getPromoted() {
|
|
125
|
+
const all = await this.getAll();
|
|
126
|
+
return all.filter(tc => tc.isPromoted);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get test cases by specific IDs (for efficient filtered fetching)
|
|
130
|
+
* Used when you only need test cases for a specific benchmark, or for a
|
|
131
|
+
* name/labels/category lookup scoped to a known id set — e.g. the
|
|
132
|
+
* comparison page's category-matrix breakdown, which used to call the
|
|
133
|
+
* unpaginated {@link getAll} for this (every test case in the whole
|
|
134
|
+
* storage backend, full body included) and could take many seconds or
|
|
135
|
+
* fail outright on a real deployment. Chunked the same way
|
|
136
|
+
* asyncRunStorage.getReportsByIds is — never one unbounded `?ids=<all>`
|
|
137
|
+
* request, never an unbounded burst of parallel ones either — so a
|
|
138
|
+
* lookup over many runs' worth of test cases stays bounded regardless of
|
|
139
|
+
* how large the id list is.
|
|
140
|
+
* @param options.summary - request the lightweight list-view payload
|
|
141
|
+
* (strips sourceCode/context/expectedOutcomes) instead of full records.
|
|
142
|
+
*/
|
|
143
|
+
async getByIds(ids, options) {
|
|
144
|
+
if (ids.length === 0)
|
|
145
|
+
return [];
|
|
146
|
+
const stored = await fetchChunked(ids, DEFAULT_CHUNK_SIZE, chunk => opensearchTestCases.getByIds(chunk, options?.summary ? { summary: true } : undefined));
|
|
147
|
+
const testCases = stored.map(toTestCase);
|
|
148
|
+
// Maintain order of requested IDs
|
|
149
|
+
const idOrder = new Map(ids.map((id, index) => [id, index]));
|
|
150
|
+
return testCases.sort((a, b) => (idOrder.get(a.id) ?? Infinity) - (idOrder.get(b.id) ?? Infinity));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get a test case by ID (latest version)
|
|
154
|
+
*/
|
|
155
|
+
async getById(id) {
|
|
156
|
+
const stored = await opensearchTestCases.getById(id);
|
|
157
|
+
return stored ? toTestCase(stored) : null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Create a new test case
|
|
161
|
+
*/
|
|
162
|
+
async create(input) {
|
|
163
|
+
const storageData = toStorageFormat(input);
|
|
164
|
+
const created = await opensearchTestCases.create(storageData);
|
|
165
|
+
return toTestCase(created);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Update a test case (creates new version automatically in OpenSearch)
|
|
169
|
+
*/
|
|
170
|
+
async update(id, updates) {
|
|
171
|
+
// First get current to merge with updates
|
|
172
|
+
const current = await opensearchTestCases.getById(id);
|
|
173
|
+
if (!current) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
const merged = {
|
|
177
|
+
...current,
|
|
178
|
+
...toStorageFormat(updates),
|
|
179
|
+
};
|
|
180
|
+
// Remove fields that shouldn't be sent
|
|
181
|
+
delete merged.id;
|
|
182
|
+
delete merged.version;
|
|
183
|
+
delete merged.createdAt;
|
|
184
|
+
delete merged.updatedAt;
|
|
185
|
+
const updated = await opensearchTestCases.update(id, merged);
|
|
186
|
+
return toTestCase(updated);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Delete a test case (all versions)
|
|
190
|
+
*/
|
|
191
|
+
async delete(id) {
|
|
192
|
+
const result = await opensearchTestCases.delete(id);
|
|
193
|
+
return result.deleted > 0;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Set promoted status for a test case
|
|
197
|
+
*/
|
|
198
|
+
async setPromoted(id, isPromoted) {
|
|
199
|
+
const current = await opensearchTestCases.getById(id);
|
|
200
|
+
if (!current) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
const tags = current.tags || [];
|
|
204
|
+
if (isPromoted && !tags.includes('promoted')) {
|
|
205
|
+
tags.push('promoted');
|
|
206
|
+
}
|
|
207
|
+
else if (!isPromoted) {
|
|
208
|
+
const idx = tags.indexOf('promoted');
|
|
209
|
+
if (idx > -1)
|
|
210
|
+
tags.splice(idx, 1);
|
|
211
|
+
}
|
|
212
|
+
await opensearchTestCases.update(id, { ...current, tags });
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
// ==================== Version Operations ====================
|
|
216
|
+
/**
|
|
217
|
+
* Get all versions of a test case
|
|
218
|
+
*/
|
|
219
|
+
async getVersions(testCaseId) {
|
|
220
|
+
const stored = await opensearchTestCases.getVersions(testCaseId);
|
|
221
|
+
return stored.map(s => ({
|
|
222
|
+
version: s.version,
|
|
223
|
+
createdAt: s.createdAt,
|
|
224
|
+
initialPrompt: s.initialPrompt,
|
|
225
|
+
context: (s.context || []),
|
|
226
|
+
tools: s.tools,
|
|
227
|
+
expectedPPL: s.expectedPPL,
|
|
228
|
+
expectedOutcomes: s.expectedOutcomes, // NEW
|
|
229
|
+
expectedTrajectory: (s.expectedTrajectory || []),
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get a specific version of a test case
|
|
234
|
+
*/
|
|
235
|
+
async getVersion(testCaseId, version) {
|
|
236
|
+
const stored = await opensearchTestCases.getVersion(testCaseId, version);
|
|
237
|
+
if (!stored)
|
|
238
|
+
return null;
|
|
239
|
+
return {
|
|
240
|
+
version: stored.version,
|
|
241
|
+
createdAt: stored.createdAt,
|
|
242
|
+
initialPrompt: stored.initialPrompt,
|
|
243
|
+
context: (stored.context || []),
|
|
244
|
+
tools: stored.tools,
|
|
245
|
+
expectedPPL: stored.expectedPPL,
|
|
246
|
+
expectedOutcomes: stored.expectedOutcomes, // NEW
|
|
247
|
+
expectedTrajectory: (stored.expectedTrajectory || []),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// ==================== Utility Methods ====================
|
|
251
|
+
/**
|
|
252
|
+
* Generate a unique ID
|
|
253
|
+
*/
|
|
254
|
+
generateId() {
|
|
255
|
+
return `tc-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get unique categories from all test cases
|
|
259
|
+
* @deprecated Use getLabels() instead
|
|
260
|
+
*/
|
|
261
|
+
async getCategories() {
|
|
262
|
+
const testCases = await this.getAll();
|
|
263
|
+
const categories = new Set();
|
|
264
|
+
testCases.forEach(tc => categories.add(tc.category));
|
|
265
|
+
return Array.from(categories).sort();
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get all unique labels from all test cases
|
|
269
|
+
*/
|
|
270
|
+
async getLabels() {
|
|
271
|
+
const testCases = await this.getAll();
|
|
272
|
+
const labels = new Set();
|
|
273
|
+
testCases.forEach(tc => tc.labels?.forEach(l => labels.add(l)));
|
|
274
|
+
return Array.from(labels).sort();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get test cases count
|
|
278
|
+
*/
|
|
279
|
+
async getCount() {
|
|
280
|
+
const testCases = await this.getAll();
|
|
281
|
+
return testCases.length;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Get promoted count
|
|
285
|
+
*/
|
|
286
|
+
async getPromotedCount() {
|
|
287
|
+
const promoted = await this.getPromoted();
|
|
288
|
+
return promoted.length;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Bulk create test cases (for migration)
|
|
292
|
+
*/
|
|
293
|
+
async bulkCreate(testCases) {
|
|
294
|
+
const storageData = testCases.map(tc => toStorageFormat(tc));
|
|
295
|
+
const result = await opensearchTestCases.bulkCreate(storageData);
|
|
296
|
+
return { ...result, testCases: result.testCases.map(toTestCase) };
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// Export singleton instance
|
|
300
|
+
export const asyncTestCaseStorage = new AsyncTestCaseStorage();
|
|
301
|
+
//# sourceMappingURL=asyncTestCaseStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncTestCaseStorage.js","sourceRoot":"","sources":["../../../../services/storage/asyncTestCaseStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Services
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all storage-related functionality for clean imports.
|
|
5
|
+
*/
|
|
6
|
+
export { opensearchStorage, storageAdmin, testCaseStorage, benchmarkStorage, experimentStorage, // Backwards compatibility alias
|
|
7
|
+
runStorage, analyticsStorage, type StorageTestCase, type StorageBenchmark, type StorageBenchmarkRunConfig, type StorageExperiment, // Backwards compatibility alias
|
|
8
|
+
type StorageExperimentRunConfig, // Backwards compatibility alias
|
|
9
|
+
type StorageRun, type StorageRunAnnotation, type StorageAnalyticsRecord, } from './opensearchClient.js';
|
|
10
|
+
export { default } from './opensearchClient.js';
|
|
11
|
+
export { asyncTestCaseStorage } from './asyncTestCaseStorage.js';
|
|
12
|
+
export type { CreateTestCaseInput, UpdateTestCaseInput } from './asyncTestCaseStorage.js';
|
|
13
|
+
export { asyncBenchmarkStorage, asyncExperimentStorage } from './asyncBenchmarkStorage.js';
|
|
14
|
+
export { asyncRunStorage, asyncReportStorage } from './asyncRunStorage.js';
|
|
15
|
+
export type { SearchQuery, GetReportsOptions } from './asyncRunStorage.js';
|
|
16
|
+
export { migrateToOpenSearch, hasLocalStorageData, getLocalStorageCounts, clearLocalStorageData, exportLocalStorageData, type MigrationStats, type MigrationOptions, } from './migration.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../services/storage/index.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAGH,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAAE,gCAAgC;AACnD,UAAU,EACV,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EAAE,gCAAgC;AACxD,KAAK,0BAA0B,EAAE,gCAAgC;AACjE,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Storage Services
|
|
7
|
+
*
|
|
8
|
+
* Re-exports all storage-related functionality for clean imports.
|
|
9
|
+
*/
|
|
10
|
+
// OpenSearch client (low-level API)
|
|
11
|
+
export { opensearchStorage, storageAdmin, testCaseStorage, benchmarkStorage, experimentStorage, // Backwards compatibility alias
|
|
12
|
+
runStorage, analyticsStorage, } from './opensearchClient.js';
|
|
13
|
+
export { default } from './opensearchClient.js';
|
|
14
|
+
// Async storage wrappers (high-level API, matches app types)
|
|
15
|
+
export { asyncTestCaseStorage } from './asyncTestCaseStorage.js';
|
|
16
|
+
export { asyncBenchmarkStorage, asyncExperimentStorage } from './asyncBenchmarkStorage.js';
|
|
17
|
+
export { asyncRunStorage, asyncReportStorage } from './asyncRunStorage.js';
|
|
18
|
+
// Migration utilities (localStorage -> OpenSearch)
|
|
19
|
+
export { migrateToOpenSearch, hasLocalStorageData, getLocalStorageCounts, clearLocalStorageData, exportLocalStorageData, } from './migration.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/storage/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,oCAAoC;AACpC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAAE,gCAAgC;AACnD,UAAU,EACV,gBAAgB,GASjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,6DAA6D;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGxE,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface MigrationStats {
|
|
2
|
+
testCases: {
|
|
3
|
+
total: number;
|
|
4
|
+
migrated: number;
|
|
5
|
+
skipped: number;
|
|
6
|
+
errors: string[];
|
|
7
|
+
};
|
|
8
|
+
experiments: {
|
|
9
|
+
total: number;
|
|
10
|
+
migrated: number;
|
|
11
|
+
skipped: number;
|
|
12
|
+
errors: string[];
|
|
13
|
+
};
|
|
14
|
+
reports: {
|
|
15
|
+
total: number;
|
|
16
|
+
migrated: number;
|
|
17
|
+
skipped: number;
|
|
18
|
+
errors: string[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface MigrationOptions {
|
|
22
|
+
/** Skip items that already exist in OpenSearch */
|
|
23
|
+
skipExisting?: boolean;
|
|
24
|
+
/** Dry run - don't actually write to OpenSearch */
|
|
25
|
+
dryRun?: boolean;
|
|
26
|
+
/** Callback for progress updates */
|
|
27
|
+
onProgress?: (message: string, stats: MigrationStats) => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get counts of data in localStorage without reading full content
|
|
31
|
+
*/
|
|
32
|
+
export declare function getLocalStorageCounts(): {
|
|
33
|
+
testCases: number;
|
|
34
|
+
experiments: number;
|
|
35
|
+
reports: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Check if there's any data in localStorage to migrate
|
|
39
|
+
*/
|
|
40
|
+
export declare function hasLocalStorageData(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Migrate all data from localStorage to OpenSearch
|
|
43
|
+
*/
|
|
44
|
+
export declare function migrateToOpenSearch(options?: MigrationOptions): Promise<MigrationStats>;
|
|
45
|
+
/**
|
|
46
|
+
* Clear localStorage data after successful migration
|
|
47
|
+
* WARNING: This is destructive and should only be called after verifying migration success
|
|
48
|
+
*/
|
|
49
|
+
export declare function clearLocalStorageData(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Export localStorage data as JSON for backup
|
|
52
|
+
*/
|
|
53
|
+
export declare function exportLocalStorageData(): string;
|
|
54
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../../services/storage/migration.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpF,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC/D;AA4DD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAUnG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2LzB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAgB5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAU/C"}
|