distill-mcp 0.6.0-beta
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/bin/cli.js +133 -0
- package/dist/analytics/session-tracker.d.ts +74 -0
- package/dist/analytics/session-tracker.d.ts.map +1 -0
- package/dist/analytics/session-tracker.js +123 -0
- package/dist/ast/benchmark.test.d.ts +7 -0
- package/dist/ast/benchmark.test.d.ts.map +1 -0
- package/dist/ast/benchmark.test.js +175 -0
- package/dist/ast/go/index.d.ts +9 -0
- package/dist/ast/go/index.d.ts.map +1 -0
- package/dist/ast/go/index.js +8 -0
- package/dist/ast/go/parser.d.ts +31 -0
- package/dist/ast/go/parser.d.ts.map +1 -0
- package/dist/ast/go/parser.js +428 -0
- package/dist/ast/go/parser.test.d.ts +5 -0
- package/dist/ast/go/parser.test.d.ts.map +1 -0
- package/dist/ast/go/parser.test.js +241 -0
- package/dist/ast/go/queries.d.ts +51 -0
- package/dist/ast/go/queries.d.ts.map +1 -0
- package/dist/ast/go/queries.js +114 -0
- package/dist/ast/go/utils.d.ts +66 -0
- package/dist/ast/go/utils.d.ts.map +1 -0
- package/dist/ast/go/utils.js +140 -0
- package/dist/ast/index.d.ts +39 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +245 -0
- package/dist/ast/php/index.d.ts +9 -0
- package/dist/ast/php/index.d.ts.map +1 -0
- package/dist/ast/php/index.js +8 -0
- package/dist/ast/php/parser.d.ts +31 -0
- package/dist/ast/php/parser.d.ts.map +1 -0
- package/dist/ast/php/parser.js +388 -0
- package/dist/ast/php/parser.test.d.ts +5 -0
- package/dist/ast/php/parser.test.d.ts.map +1 -0
- package/dist/ast/php/parser.test.js +328 -0
- package/dist/ast/php/queries.d.ts +61 -0
- package/dist/ast/php/queries.d.ts.map +1 -0
- package/dist/ast/php/queries.js +117 -0
- package/dist/ast/php/utils.d.ts +83 -0
- package/dist/ast/php/utils.d.ts.map +1 -0
- package/dist/ast/php/utils.js +246 -0
- package/dist/ast/python/index.d.ts +9 -0
- package/dist/ast/python/index.d.ts.map +1 -0
- package/dist/ast/python/index.js +8 -0
- package/dist/ast/python/parser.d.ts +32 -0
- package/dist/ast/python/parser.d.ts.map +1 -0
- package/dist/ast/python/parser.js +422 -0
- package/dist/ast/python/parser.test.d.ts +5 -0
- package/dist/ast/python/parser.test.d.ts.map +1 -0
- package/dist/ast/python/parser.test.js +186 -0
- package/dist/ast/python/queries.d.ts +73 -0
- package/dist/ast/python/queries.d.ts.map +1 -0
- package/dist/ast/python/queries.js +137 -0
- package/dist/ast/python/utils.d.ts +63 -0
- package/dist/ast/python/utils.d.ts.map +1 -0
- package/dist/ast/python/utils.js +159 -0
- package/dist/ast/quick-scan.d.ts +40 -0
- package/dist/ast/quick-scan.d.ts.map +1 -0
- package/dist/ast/quick-scan.js +287 -0
- package/dist/ast/rust/index.d.ts +9 -0
- package/dist/ast/rust/index.d.ts.map +1 -0
- package/dist/ast/rust/index.js +8 -0
- package/dist/ast/rust/parser.d.ts +31 -0
- package/dist/ast/rust/parser.d.ts.map +1 -0
- package/dist/ast/rust/parser.js +416 -0
- package/dist/ast/rust/parser.test.d.ts +5 -0
- package/dist/ast/rust/parser.test.d.ts.map +1 -0
- package/dist/ast/rust/parser.test.js +329 -0
- package/dist/ast/rust/queries.d.ts +66 -0
- package/dist/ast/rust/queries.d.ts.map +1 -0
- package/dist/ast/rust/queries.js +132 -0
- package/dist/ast/rust/utils.d.ts +91 -0
- package/dist/ast/rust/utils.d.ts.map +1 -0
- package/dist/ast/rust/utils.js +254 -0
- package/dist/ast/swift/index.d.ts +10 -0
- package/dist/ast/swift/index.d.ts.map +1 -0
- package/dist/ast/swift/index.js +8 -0
- package/dist/ast/swift/parser.d.ts +31 -0
- package/dist/ast/swift/parser.d.ts.map +1 -0
- package/dist/ast/swift/parser.js +554 -0
- package/dist/ast/swift/parser.test.d.ts +5 -0
- package/dist/ast/swift/parser.test.d.ts.map +1 -0
- package/dist/ast/swift/parser.test.js +398 -0
- package/dist/ast/swift/queries.d.ts +71 -0
- package/dist/ast/swift/queries.d.ts.map +1 -0
- package/dist/ast/swift/queries.js +137 -0
- package/dist/ast/swift/utils.d.ts +94 -0
- package/dist/ast/swift/utils.d.ts.map +1 -0
- package/dist/ast/swift/utils.js +411 -0
- package/dist/ast/types.d.ts +96 -0
- package/dist/ast/types.d.ts.map +1 -0
- package/dist/ast/types.js +21 -0
- package/dist/ast/typescript.d.ts +24 -0
- package/dist/ast/typescript.d.ts.map +1 -0
- package/dist/ast/typescript.js +357 -0
- package/dist/cache/file-hash.d.ts +33 -0
- package/dist/cache/file-hash.d.ts.map +1 -0
- package/dist/cache/file-hash.js +59 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +8 -0
- package/dist/cache/smart-cache.d.ts +68 -0
- package/dist/cache/smart-cache.d.ts.map +1 -0
- package/dist/cache/smart-cache.js +266 -0
- package/dist/cache/types.d.ts +102 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +6 -0
- package/dist/cli/analyze.d.ts +43 -0
- package/dist/cli/analyze.d.ts.map +1 -0
- package/dist/cli/analyze.js +250 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +127 -0
- package/dist/cli/hooks.d.ts +14 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +229 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/setup.d.ts +10 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +117 -0
- package/dist/cli/utils.d.ts +30 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +116 -0
- package/dist/compressors/config.d.ts +9 -0
- package/dist/compressors/config.d.ts.map +1 -0
- package/dist/compressors/config.js +183 -0
- package/dist/compressors/conversation.d.ts +109 -0
- package/dist/compressors/conversation.d.ts.map +1 -0
- package/dist/compressors/conversation.js +404 -0
- package/dist/compressors/diff.d.ts +35 -0
- package/dist/compressors/diff.d.ts.map +1 -0
- package/dist/compressors/diff.js +389 -0
- package/dist/compressors/generic.d.ts +9 -0
- package/dist/compressors/generic.d.ts.map +1 -0
- package/dist/compressors/generic.js +188 -0
- package/dist/compressors/index.d.ts +31 -0
- package/dist/compressors/index.d.ts.map +1 -0
- package/dist/compressors/index.js +82 -0
- package/dist/compressors/logs.d.ts +9 -0
- package/dist/compressors/logs.d.ts.map +1 -0
- package/dist/compressors/logs.js +245 -0
- package/dist/compressors/multifile.d.ts +106 -0
- package/dist/compressors/multifile.d.ts.map +1 -0
- package/dist/compressors/multifile.js +498 -0
- package/dist/compressors/semantic.d.ts +33 -0
- package/dist/compressors/semantic.d.ts.map +1 -0
- package/dist/compressors/semantic.js +233 -0
- package/dist/compressors/stacktrace.d.ts +9 -0
- package/dist/compressors/stacktrace.d.ts.map +1 -0
- package/dist/compressors/stacktrace.js +259 -0
- package/dist/compressors/types.d.ts +146 -0
- package/dist/compressors/types.d.ts.map +1 -0
- package/dist/compressors/types.js +6 -0
- package/dist/config/output-config.d.ts +56 -0
- package/dist/config/output-config.d.ts.map +1 -0
- package/dist/config/output-config.js +78 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/middleware/chain.d.ts +49 -0
- package/dist/middleware/chain.d.ts.map +1 -0
- package/dist/middleware/chain.js +126 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +3 -0
- package/dist/middleware/logging.d.ts +8 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +71 -0
- package/dist/middleware/types.d.ts +58 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +7 -0
- package/dist/parsers/eslint.d.ts +8 -0
- package/dist/parsers/eslint.d.ts.map +1 -0
- package/dist/parsers/eslint.js +132 -0
- package/dist/parsers/generic.d.ts +8 -0
- package/dist/parsers/generic.d.ts.map +1 -0
- package/dist/parsers/generic.js +234 -0
- package/dist/parsers/index.d.ts +34 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +216 -0
- package/dist/parsers/types.d.ts +84 -0
- package/dist/parsers/types.d.ts.map +1 -0
- package/dist/parsers/types.js +6 -0
- package/dist/parsers/typescript.d.ts +8 -0
- package/dist/parsers/typescript.d.ts.map +1 -0
- package/dist/parsers/typescript.js +107 -0
- package/dist/pipelines/definitions.d.ts +50 -0
- package/dist/pipelines/definitions.d.ts.map +1 -0
- package/dist/pipelines/definitions.js +206 -0
- package/dist/sandbox/executor.d.ts +12 -0
- package/dist/sandbox/executor.d.ts.map +1 -0
- package/dist/sandbox/executor.js +191 -0
- package/dist/sandbox/index.d.ts +11 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +9 -0
- package/dist/sandbox/sandbox.test.d.ts +7 -0
- package/dist/sandbox/sandbox.test.d.ts.map +1 -0
- package/dist/sandbox/sandbox.test.js +202 -0
- package/dist/sandbox/sdk/analyze.d.ts +36 -0
- package/dist/sandbox/sdk/analyze.d.ts.map +1 -0
- package/dist/sandbox/sdk/analyze.js +413 -0
- package/dist/sandbox/sdk/analyze.test.d.ts +7 -0
- package/dist/sandbox/sdk/analyze.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/analyze.test.js +191 -0
- package/dist/sandbox/sdk/code.d.ts +20 -0
- package/dist/sandbox/sdk/code.d.ts.map +1 -0
- package/dist/sandbox/sdk/code.js +104 -0
- package/dist/sandbox/sdk/compress.d.ts +23 -0
- package/dist/sandbox/sdk/compress.d.ts.map +1 -0
- package/dist/sandbox/sdk/compress.js +107 -0
- package/dist/sandbox/sdk/conversation.d.ts +148 -0
- package/dist/sandbox/sdk/conversation.d.ts.map +1 -0
- package/dist/sandbox/sdk/conversation.js +177 -0
- package/dist/sandbox/sdk/files.d.ts +29 -0
- package/dist/sandbox/sdk/files.d.ts.map +1 -0
- package/dist/sandbox/sdk/files.js +41 -0
- package/dist/sandbox/sdk/git.d.ts +37 -0
- package/dist/sandbox/sdk/git.d.ts.map +1 -0
- package/dist/sandbox/sdk/git.js +313 -0
- package/dist/sandbox/sdk/git.test.d.ts +8 -0
- package/dist/sandbox/sdk/git.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/git.test.js +160 -0
- package/dist/sandbox/sdk/index.d.ts +16 -0
- package/dist/sandbox/sdk/index.d.ts.map +1 -0
- package/dist/sandbox/sdk/index.js +15 -0
- package/dist/sandbox/sdk/multifile.d.ts +63 -0
- package/dist/sandbox/sdk/multifile.d.ts.map +1 -0
- package/dist/sandbox/sdk/multifile.js +130 -0
- package/dist/sandbox/sdk/pipeline.d.ts +16 -0
- package/dist/sandbox/sdk/pipeline.d.ts.map +1 -0
- package/dist/sandbox/sdk/pipeline.js +454 -0
- package/dist/sandbox/sdk/pipeline.test.d.ts +7 -0
- package/dist/sandbox/sdk/pipeline.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/pipeline.test.js +197 -0
- package/dist/sandbox/sdk/search.d.ts +36 -0
- package/dist/sandbox/sdk/search.d.ts.map +1 -0
- package/dist/sandbox/sdk/search.js +338 -0
- package/dist/sandbox/sdk/search.test.d.ts +7 -0
- package/dist/sandbox/sdk/search.test.d.ts.map +1 -0
- package/dist/sandbox/sdk/search.test.js +183 -0
- package/dist/sandbox/sdk/utils.d.ts +18 -0
- package/dist/sandbox/sdk/utils.d.ts.map +1 -0
- package/dist/sandbox/sdk/utils.js +24 -0
- package/dist/sandbox/security/code-analyzer.d.ts +15 -0
- package/dist/sandbox/security/code-analyzer.d.ts.map +1 -0
- package/dist/sandbox/security/code-analyzer.js +87 -0
- package/dist/sandbox/security/index.d.ts +6 -0
- package/dist/sandbox/security/index.d.ts.map +1 -0
- package/dist/sandbox/security/index.js +5 -0
- package/dist/sandbox/security/path-validator.d.ts +23 -0
- package/dist/sandbox/security/path-validator.d.ts.map +1 -0
- package/dist/sandbox/security/path-validator.js +113 -0
- package/dist/sandbox/types.d.ts +577 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +14 -0
- package/dist/server.d.ts +36 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +133 -0
- package/dist/summarizers/build-logs.d.ts +11 -0
- package/dist/summarizers/build-logs.d.ts.map +1 -0
- package/dist/summarizers/build-logs.js +234 -0
- package/dist/summarizers/generic.d.ts +11 -0
- package/dist/summarizers/generic.d.ts.map +1 -0
- package/dist/summarizers/generic.js +93 -0
- package/dist/summarizers/index.d.ts +20 -0
- package/dist/summarizers/index.d.ts.map +1 -0
- package/dist/summarizers/index.js +43 -0
- package/dist/summarizers/server-logs.d.ts +11 -0
- package/dist/summarizers/server-logs.d.ts.map +1 -0
- package/dist/summarizers/server-logs.js +215 -0
- package/dist/summarizers/test-logs.d.ts +11 -0
- package/dist/summarizers/test-logs.d.ts.map +1 -0
- package/dist/summarizers/test-logs.js +258 -0
- package/dist/summarizers/types.d.ts +146 -0
- package/dist/summarizers/types.d.ts.map +1 -0
- package/dist/summarizers/types.js +21 -0
- package/dist/tools/analyze-build-output.d.ts +30 -0
- package/dist/tools/analyze-build-output.d.ts.map +1 -0
- package/dist/tools/analyze-build-output.js +45 -0
- package/dist/tools/analyze-context.d.ts +23 -0
- package/dist/tools/analyze-context.d.ts.map +1 -0
- package/dist/tools/analyze-context.js +78 -0
- package/dist/tools/auto-optimize.d.ts +9 -0
- package/dist/tools/auto-optimize.d.ts.map +1 -0
- package/dist/tools/auto-optimize.js +191 -0
- package/dist/tools/code-execute.d.ts +9 -0
- package/dist/tools/code-execute.d.ts.map +1 -0
- package/dist/tools/code-execute.js +84 -0
- package/dist/tools/code-skeleton.d.ts +33 -0
- package/dist/tools/code-skeleton.d.ts.map +1 -0
- package/dist/tools/code-skeleton.js +206 -0
- package/dist/tools/compress-context.d.ts +33 -0
- package/dist/tools/compress-context.d.ts.map +1 -0
- package/dist/tools/compress-context.js +64 -0
- package/dist/tools/context-budget.d.ts +43 -0
- package/dist/tools/context-budget.d.ts.map +1 -0
- package/dist/tools/context-budget.js +260 -0
- package/dist/tools/context-budget.test.d.ts +5 -0
- package/dist/tools/context-budget.test.d.ts.map +1 -0
- package/dist/tools/context-budget.test.js +219 -0
- package/dist/tools/conversation-compress.d.ts +46 -0
- package/dist/tools/conversation-compress.d.ts.map +1 -0
- package/dist/tools/conversation-compress.js +78 -0
- package/dist/tools/conversation-memory.d.ts +75 -0
- package/dist/tools/conversation-memory.d.ts.map +1 -0
- package/dist/tools/conversation-memory.js +289 -0
- package/dist/tools/deduplicate-errors.d.ts +30 -0
- package/dist/tools/deduplicate-errors.d.ts.map +1 -0
- package/dist/tools/deduplicate-errors.js +72 -0
- package/dist/tools/detect-retry-loop.d.ts +40 -0
- package/dist/tools/detect-retry-loop.d.ts.map +1 -0
- package/dist/tools/detect-retry-loop.js +212 -0
- package/dist/tools/diff-compress.d.ts +40 -0
- package/dist/tools/diff-compress.d.ts.map +1 -0
- package/dist/tools/diff-compress.js +94 -0
- package/dist/tools/discover-tools.d.ts +11 -0
- package/dist/tools/discover-tools.d.ts.map +1 -0
- package/dist/tools/discover-tools.js +163 -0
- package/dist/tools/dynamic-loader.d.ts +131 -0
- package/dist/tools/dynamic-loader.d.ts.map +1 -0
- package/dist/tools/dynamic-loader.js +378 -0
- package/dist/tools/dynamic-loader.test.d.ts +10 -0
- package/dist/tools/dynamic-loader.test.d.ts.map +1 -0
- package/dist/tools/dynamic-loader.test.js +164 -0
- package/dist/tools/lazy-mcp.d.ts +31 -0
- package/dist/tools/lazy-mcp.d.ts.map +1 -0
- package/dist/tools/lazy-mcp.js +151 -0
- package/dist/tools/lazy-mcp.test.d.ts +10 -0
- package/dist/tools/lazy-mcp.test.d.ts.map +1 -0
- package/dist/tools/lazy-mcp.test.js +172 -0
- package/dist/tools/multifile-compress.d.ts +36 -0
- package/dist/tools/multifile-compress.d.ts.map +1 -0
- package/dist/tools/multifile-compress.js +223 -0
- package/dist/tools/optimization-tips.d.ts +18 -0
- package/dist/tools/optimization-tips.d.ts.map +1 -0
- package/dist/tools/optimization-tips.js +133 -0
- package/dist/tools/registry.d.ts +70 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +169 -0
- package/dist/tools/semantic-compress.d.ts +39 -0
- package/dist/tools/semantic-compress.d.ts.map +1 -0
- package/dist/tools/semantic-compress.js +113 -0
- package/dist/tools/semantic-compress.test.d.ts +5 -0
- package/dist/tools/semantic-compress.test.d.ts.map +1 -0
- package/dist/tools/semantic-compress.test.js +182 -0
- package/dist/tools/session-stats.d.ts +34 -0
- package/dist/tools/session-stats.d.ts.map +1 -0
- package/dist/tools/session-stats.js +194 -0
- package/dist/tools/set-output-config.d.ts +38 -0
- package/dist/tools/set-output-config.d.ts.map +1 -0
- package/dist/tools/set-output-config.js +122 -0
- package/dist/tools/smart-cache-tool.d.ts +38 -0
- package/dist/tools/smart-cache-tool.d.ts.map +1 -0
- package/dist/tools/smart-cache-tool.js +224 -0
- package/dist/tools/smart-file-read.d.ts +52 -0
- package/dist/tools/smart-file-read.d.ts.map +1 -0
- package/dist/tools/smart-file-read.js +481 -0
- package/dist/tools/smart-pipeline.d.ts +40 -0
- package/dist/tools/smart-pipeline.d.ts.map +1 -0
- package/dist/tools/smart-pipeline.js +295 -0
- package/dist/tools/summarize-logs.d.ts +36 -0
- package/dist/tools/summarize-logs.d.ts.map +1 -0
- package/dist/tools/summarize-logs.js +184 -0
- package/dist/tools/token-budget.test.d.ts +11 -0
- package/dist/tools/token-budget.test.d.ts.map +1 -0
- package/dist/tools/token-budget.test.js +275 -0
- package/dist/utils/bm25.d.ts +86 -0
- package/dist/utils/bm25.d.ts.map +1 -0
- package/dist/utils/bm25.js +153 -0
- package/dist/utils/bm25.test.d.ts +5 -0
- package/dist/utils/bm25.test.d.ts.map +1 -0
- package/dist/utils/bm25.test.js +156 -0
- package/dist/utils/command-normalizer.d.ts +39 -0
- package/dist/utils/command-normalizer.d.ts.map +1 -0
- package/dist/utils/command-normalizer.js +90 -0
- package/dist/utils/content-detector.d.ts +27 -0
- package/dist/utils/content-detector.d.ts.map +1 -0
- package/dist/utils/content-detector.js +127 -0
- package/dist/utils/embeddings.d.ts +54 -0
- package/dist/utils/embeddings.d.ts.map +1 -0
- package/dist/utils/embeddings.js +97 -0
- package/dist/utils/embeddings.test.d.ts +8 -0
- package/dist/utils/embeddings.test.d.ts.map +1 -0
- package/dist/utils/embeddings.test.js +96 -0
- package/dist/utils/error-normalizer.d.ts +39 -0
- package/dist/utils/error-normalizer.d.ts.map +1 -0
- package/dist/utils/error-normalizer.js +233 -0
- package/dist/utils/hybrid-search.d.ts +79 -0
- package/dist/utils/hybrid-search.d.ts.map +1 -0
- package/dist/utils/hybrid-search.js +146 -0
- package/dist/utils/hybrid-search.test.d.ts +5 -0
- package/dist/utils/hybrid-search.test.d.ts.map +1 -0
- package/dist/utils/hybrid-search.test.js +172 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/language-detector.d.ts +27 -0
- package/dist/utils/language-detector.d.ts.map +1 -0
- package/dist/utils/language-detector.js +94 -0
- package/dist/utils/log-parser.d.ts +46 -0
- package/dist/utils/log-parser.d.ts.map +1 -0
- package/dist/utils/log-parser.js +287 -0
- package/dist/utils/output-estimator.d.ts +54 -0
- package/dist/utils/output-estimator.d.ts.map +1 -0
- package/dist/utils/output-estimator.js +119 -0
- package/dist/utils/output-estimator.test.d.ts +5 -0
- package/dist/utils/output-estimator.test.d.ts.map +1 -0
- package/dist/utils/output-estimator.test.js +115 -0
- package/dist/utils/output-similarity.d.ts +48 -0
- package/dist/utils/output-similarity.d.ts.map +1 -0
- package/dist/utils/output-similarity.js +140 -0
- package/dist/utils/project-detector.d.ts +16 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +119 -0
- package/dist/utils/segment-scorer.d.ts +99 -0
- package/dist/utils/segment-scorer.d.ts.map +1 -0
- package/dist/utils/segment-scorer.js +148 -0
- package/dist/utils/signature-grouper.d.ts +58 -0
- package/dist/utils/signature-grouper.d.ts.map +1 -0
- package/dist/utils/signature-grouper.js +185 -0
- package/dist/utils/tfidf.d.ts +45 -0
- package/dist/utils/tfidf.d.ts.map +1 -0
- package/dist/utils/tfidf.js +204 -0
- package/dist/utils/tfidf.test.d.ts +5 -0
- package/dist/utils/tfidf.test.d.ts.map +1 -0
- package/dist/utils/tfidf.test.js +115 -0
- package/dist/utils/token-counter.d.ts +35 -0
- package/dist/utils/token-counter.d.ts.map +1 -0
- package/dist/utils/token-counter.js +83 -0
- package/dist/utils/toon-serializer.d.ts +120 -0
- package/dist/utils/toon-serializer.d.ts.map +1 -0
- package/dist/utils/toon-serializer.js +472 -0
- package/dist/utils/toon-serializer.test.d.ts +7 -0
- package/dist/utils/toon-serializer.test.d.ts.map +1 -0
- package/dist/utils/toon-serializer.test.js +290 -0
- package/package.json +63 -0
- package/scripts/install.ps1 +133 -0
- package/scripts/install.sh +183 -0
- package/scripts/pre-commit-hook.sh +86 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TF-IDF Utilities Tests
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from "vitest";
|
|
5
|
+
import { calculateTFIDF, getSegmentTFIDFScore, getTopTerms } from "./tfidf.js";
|
|
6
|
+
describe("TF-IDF utilities", () => {
|
|
7
|
+
describe("calculateTFIDF", () => {
|
|
8
|
+
it("should return empty map for empty segments", () => {
|
|
9
|
+
const result = calculateTFIDF([]);
|
|
10
|
+
expect(result.size).toBe(0);
|
|
11
|
+
});
|
|
12
|
+
it("should calculate TF-IDF for single segment", () => {
|
|
13
|
+
const segments = ["hello world"];
|
|
14
|
+
const result = calculateTFIDF(segments);
|
|
15
|
+
expect(result.size).toBe(1);
|
|
16
|
+
expect(result.get(0)).toBeDefined();
|
|
17
|
+
});
|
|
18
|
+
it("should calculate higher IDF for rare terms", () => {
|
|
19
|
+
const segments = [
|
|
20
|
+
"the quick brown fox",
|
|
21
|
+
"the lazy dog",
|
|
22
|
+
"the unique unicorn", // "unicorn" only appears here
|
|
23
|
+
];
|
|
24
|
+
const result = calculateTFIDF(segments);
|
|
25
|
+
// Get scores for segment with "unicorn"
|
|
26
|
+
const unicornSegmentScores = result.get(2);
|
|
27
|
+
const unicornScore = unicornSegmentScores?.find((s) => s.term === "unicorn");
|
|
28
|
+
// Get scores for segment with "quick"
|
|
29
|
+
const quickSegmentScores = result.get(0);
|
|
30
|
+
const quickScore = quickSegmentScores?.find((s) => s.term === "quick");
|
|
31
|
+
expect(unicornScore).toBeDefined();
|
|
32
|
+
expect(quickScore).toBeDefined();
|
|
33
|
+
// Both are unique terms (appear in 1 segment), so IDF should be the same
|
|
34
|
+
// But TF might differ based on segment length
|
|
35
|
+
expect(unicornScore.idf).toBeGreaterThan(0);
|
|
36
|
+
expect(quickScore.idf).toBeGreaterThan(0);
|
|
37
|
+
});
|
|
38
|
+
it("should filter stopwords", () => {
|
|
39
|
+
const segments = ["the a an is are was"];
|
|
40
|
+
const result = calculateTFIDF(segments);
|
|
41
|
+
// All stopwords should be filtered, resulting in empty scores
|
|
42
|
+
const scores = result.get(0);
|
|
43
|
+
expect(scores).toEqual([]);
|
|
44
|
+
});
|
|
45
|
+
it("should handle segments with code terms", () => {
|
|
46
|
+
const segments = [
|
|
47
|
+
"function calculateSum returns number",
|
|
48
|
+
"const result equals function call",
|
|
49
|
+
];
|
|
50
|
+
const result = calculateTFIDF(segments);
|
|
51
|
+
expect(result.size).toBe(2);
|
|
52
|
+
// Check that code terms are captured
|
|
53
|
+
const scores0 = result.get(0);
|
|
54
|
+
expect(scores0?.some((s) => s.term === "calculatesum")).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe("getSegmentTFIDFScore", () => {
|
|
58
|
+
it("should return 0 for non-existent segment", () => {
|
|
59
|
+
const tfidfMap = calculateTFIDF(["hello world"]);
|
|
60
|
+
const score = getSegmentTFIDFScore(999, tfidfMap);
|
|
61
|
+
expect(score).toBe(0);
|
|
62
|
+
});
|
|
63
|
+
it("should return 0 for empty segment", () => {
|
|
64
|
+
const tfidfMap = calculateTFIDF([""]);
|
|
65
|
+
const score = getSegmentTFIDFScore(0, tfidfMap);
|
|
66
|
+
expect(score).toBe(0);
|
|
67
|
+
});
|
|
68
|
+
it("should return higher score for unique content", () => {
|
|
69
|
+
const segments = [
|
|
70
|
+
"common words common words common words",
|
|
71
|
+
"unique specialized terminology here",
|
|
72
|
+
"common words again common words",
|
|
73
|
+
];
|
|
74
|
+
const tfidfMap = calculateTFIDF(segments);
|
|
75
|
+
const score0 = getSegmentTFIDFScore(0, tfidfMap);
|
|
76
|
+
const score1 = getSegmentTFIDFScore(1, tfidfMap);
|
|
77
|
+
const score2 = getSegmentTFIDFScore(2, tfidfMap);
|
|
78
|
+
// Segment 1 has unique terms, should have higher score
|
|
79
|
+
expect(score1).toBeGreaterThan(score0);
|
|
80
|
+
expect(score1).toBeGreaterThan(score2);
|
|
81
|
+
});
|
|
82
|
+
it("should return normalized score between 0 and 1", () => {
|
|
83
|
+
const segments = ["hello world", "foo bar baz"];
|
|
84
|
+
const tfidfMap = calculateTFIDF(segments);
|
|
85
|
+
const score0 = getSegmentTFIDFScore(0, tfidfMap);
|
|
86
|
+
const score1 = getSegmentTFIDFScore(1, tfidfMap);
|
|
87
|
+
expect(score0).toBeGreaterThanOrEqual(0);
|
|
88
|
+
expect(score0).toBeLessThanOrEqual(1);
|
|
89
|
+
expect(score1).toBeGreaterThanOrEqual(0);
|
|
90
|
+
expect(score1).toBeLessThanOrEqual(1);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe("getTopTerms", () => {
|
|
94
|
+
it("should return empty array for non-existent segment", () => {
|
|
95
|
+
const tfidfMap = calculateTFIDF(["hello world"]);
|
|
96
|
+
const terms = getTopTerms(999, tfidfMap);
|
|
97
|
+
expect(terms).toEqual([]);
|
|
98
|
+
});
|
|
99
|
+
it("should return top N terms by TF-IDF score", () => {
|
|
100
|
+
const segments = ["alpha beta gamma delta epsilon zeta"];
|
|
101
|
+
const tfidfMap = calculateTFIDF(segments);
|
|
102
|
+
const top3 = getTopTerms(0, tfidfMap, 3);
|
|
103
|
+
expect(top3.length).toBeLessThanOrEqual(3);
|
|
104
|
+
});
|
|
105
|
+
it("should sort terms by TF-IDF descending", () => {
|
|
106
|
+
const segments = ["error critical failure warning info debug"];
|
|
107
|
+
const tfidfMap = calculateTFIDF(segments);
|
|
108
|
+
const terms = getTopTerms(0, tfidfMap);
|
|
109
|
+
// Verify sorting
|
|
110
|
+
for (let i = 1; i < terms.length; i++) {
|
|
111
|
+
expect(terms[i - 1].tfidf).toBeGreaterThanOrEqual(terms[i].tfidf);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Token Counter
|
|
3
|
+
*
|
|
4
|
+
* Provides accurate token counting using js-tiktoken with a fallback
|
|
5
|
+
* approximation when the encoder is unavailable.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Count tokens in a string using tiktoken
|
|
9
|
+
* Falls back to approximation if encoder unavailable
|
|
10
|
+
*
|
|
11
|
+
* @param text - The text to count tokens for
|
|
12
|
+
* @returns The number of tokens
|
|
13
|
+
*/
|
|
14
|
+
export declare function countTokens(text: string): number;
|
|
15
|
+
/**
|
|
16
|
+
* Count tokens with explicit fallback behavior
|
|
17
|
+
*
|
|
18
|
+
* @param text - The text to count tokens for
|
|
19
|
+
* @returns Object with token count and whether approximation was used
|
|
20
|
+
*/
|
|
21
|
+
export declare function countTokensWithInfo(text: string): {
|
|
22
|
+
tokens: number;
|
|
23
|
+
isApproximate: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Estimate cost in microdollars based on token count
|
|
27
|
+
* Uses Claude Sonnet pricing as default
|
|
28
|
+
*
|
|
29
|
+
* @param inputTokens - Number of input tokens
|
|
30
|
+
* @param outputTokens - Number of output tokens
|
|
31
|
+
* @param model - Model name for pricing lookup
|
|
32
|
+
* @returns Cost in microdollars (1 microdollar = $0.000001)
|
|
33
|
+
*/
|
|
34
|
+
export declare function estimateCostMicros(inputTokens: number, outputTokens: number, model?: string): number;
|
|
35
|
+
//# sourceMappingURL=token-counter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-counter.d.ts","sourceRoot":"","sources":["../../src/utils/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB,CAYA;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,MAA0B,GAChC,MAAM,CAUR"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Token Counter
|
|
3
|
+
*
|
|
4
|
+
* Provides accurate token counting using js-tiktoken with a fallback
|
|
5
|
+
* approximation when the encoder is unavailable.
|
|
6
|
+
*/
|
|
7
|
+
import { encodingForModel } from "js-tiktoken";
|
|
8
|
+
// Singleton encoder instance
|
|
9
|
+
let encoder = null;
|
|
10
|
+
/**
|
|
11
|
+
* Get or create the tiktoken encoder
|
|
12
|
+
*/
|
|
13
|
+
function getEncoder() {
|
|
14
|
+
if (encoder === null) {
|
|
15
|
+
try {
|
|
16
|
+
encoder = encodingForModel("gpt-4");
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error("[ctxopt] Failed to initialize tiktoken encoder:", error);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return encoder;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Approximate token count when encoder is unavailable
|
|
27
|
+
* Uses ~4 characters per token as a rough estimate
|
|
28
|
+
*/
|
|
29
|
+
function approximateTokens(text) {
|
|
30
|
+
return Math.ceil(text.length / 4);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Count tokens in a string using tiktoken
|
|
34
|
+
* Falls back to approximation if encoder unavailable
|
|
35
|
+
*
|
|
36
|
+
* @param text - The text to count tokens for
|
|
37
|
+
* @returns The number of tokens
|
|
38
|
+
*/
|
|
39
|
+
export function countTokens(text) {
|
|
40
|
+
const enc = getEncoder();
|
|
41
|
+
if (enc) {
|
|
42
|
+
return enc.encode(text).length;
|
|
43
|
+
}
|
|
44
|
+
return approximateTokens(text);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Count tokens with explicit fallback behavior
|
|
48
|
+
*
|
|
49
|
+
* @param text - The text to count tokens for
|
|
50
|
+
* @returns Object with token count and whether approximation was used
|
|
51
|
+
*/
|
|
52
|
+
export function countTokensWithInfo(text) {
|
|
53
|
+
const enc = getEncoder();
|
|
54
|
+
if (enc) {
|
|
55
|
+
return {
|
|
56
|
+
tokens: enc.encode(text).length,
|
|
57
|
+
isApproximate: false,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
tokens: approximateTokens(text),
|
|
62
|
+
isApproximate: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Estimate cost in microdollars based on token count
|
|
67
|
+
* Uses Claude Sonnet pricing as default
|
|
68
|
+
*
|
|
69
|
+
* @param inputTokens - Number of input tokens
|
|
70
|
+
* @param outputTokens - Number of output tokens
|
|
71
|
+
* @param model - Model name for pricing lookup
|
|
72
|
+
* @returns Cost in microdollars (1 microdollar = $0.000001)
|
|
73
|
+
*/
|
|
74
|
+
export function estimateCostMicros(inputTokens, outputTokens, model = "claude-sonnet-4") {
|
|
75
|
+
// Pricing in microdollars per token
|
|
76
|
+
const pricing = {
|
|
77
|
+
"claude-opus-4": { input: 15, output: 75 }, // $15/$75 per 1M tokens
|
|
78
|
+
"claude-sonnet-4": { input: 3, output: 15 }, // $3/$15 per 1M tokens
|
|
79
|
+
"claude-3-5-haiku": { input: 1, output: 5 }, // $1/$5 per 1M tokens
|
|
80
|
+
};
|
|
81
|
+
const modelPricing = pricing[model] ?? pricing["claude-sonnet-4"];
|
|
82
|
+
return inputTokens * modelPricing.input + outputTokens * modelPricing.output;
|
|
83
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOON Serializer for MCP Tools
|
|
3
|
+
*
|
|
4
|
+
* Converts MCP tool definitions to TOON (Token-Oriented Object Notation)
|
|
5
|
+
* format for ~40% token reduction when presenting tools to LLMs.
|
|
6
|
+
*
|
|
7
|
+
* TOON spec: https://toonformat.dev/
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolDefinition } from "../tools/registry.js";
|
|
10
|
+
import type { ToolCategory } from "../tools/dynamic-loader.js";
|
|
11
|
+
/**
|
|
12
|
+
* Lightweight tool metadata for lazy serialization
|
|
13
|
+
*/
|
|
14
|
+
export interface ToolMetadataLite {
|
|
15
|
+
name: string;
|
|
16
|
+
category: ToolCategory;
|
|
17
|
+
description: string;
|
|
18
|
+
keywords?: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface ToonSerializerOptions {
|
|
21
|
+
/** Include parameter details (default: true) */
|
|
22
|
+
includeParams?: boolean;
|
|
23
|
+
/** Include category grouping (default: true) */
|
|
24
|
+
groupByCategory?: boolean;
|
|
25
|
+
/** Category for each tool (optional) */
|
|
26
|
+
categories?: Map<string, string>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Serialize tools to TOON format
|
|
30
|
+
*
|
|
31
|
+
* Output format:
|
|
32
|
+
* ```
|
|
33
|
+
* tools[N]:
|
|
34
|
+
* tool_name(param1 param2?:type) → Description
|
|
35
|
+
* ...
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function serializeToolsToToon(tools: ToolDefinition[], options?: ToonSerializerOptions): string;
|
|
39
|
+
/**
|
|
40
|
+
* Serialize tools to tabular TOON format (most compact)
|
|
41
|
+
*
|
|
42
|
+
* Output format:
|
|
43
|
+
* ```
|
|
44
|
+
* tools[N]{name,params,desc}:
|
|
45
|
+
* auto_optimize,content hint?:enum agg?:bool,Auto-compress 80-95%
|
|
46
|
+
* ...
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function serializeToolsToToonTabular(tools: ToolDefinition[]): string;
|
|
50
|
+
/**
|
|
51
|
+
* Compare token counts between JSON and TOON
|
|
52
|
+
*/
|
|
53
|
+
export declare function compareTokens(tools: ToolDefinition[]): {
|
|
54
|
+
json: number;
|
|
55
|
+
toon: number;
|
|
56
|
+
toonTabular: number;
|
|
57
|
+
savings: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Serialize tool metadata to lightweight TOON format (no schema loading)
|
|
61
|
+
*
|
|
62
|
+
* Used for lazy loading - shows available tools without loading full definitions.
|
|
63
|
+
* Output format:
|
|
64
|
+
* ```
|
|
65
|
+
* tools[N]:
|
|
66
|
+
* tool_name → Description [keywords]
|
|
67
|
+
* ...
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function serializeMetadataToToon(metadata: ToolMetadataLite[], options?: {
|
|
71
|
+
groupByCategory?: boolean;
|
|
72
|
+
}): string;
|
|
73
|
+
/**
|
|
74
|
+
* Serialize tool metadata to lightweight tabular TOON format
|
|
75
|
+
*/
|
|
76
|
+
export declare function serializeMetadataToToonTabular(metadata: ToolMetadataLite[]): string;
|
|
77
|
+
/**
|
|
78
|
+
* Result schema for TOON serialization
|
|
79
|
+
*/
|
|
80
|
+
export interface ResultSchema {
|
|
81
|
+
/** Name of the result type */
|
|
82
|
+
name: string;
|
|
83
|
+
/** Fields to include in output */
|
|
84
|
+
fields?: string[];
|
|
85
|
+
/** Maximum depth for nested objects */
|
|
86
|
+
maxDepth?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Verbosity options for result serialization
|
|
90
|
+
*/
|
|
91
|
+
export interface ResultSerializerOptions {
|
|
92
|
+
/** Verbosity level */
|
|
93
|
+
verbosity?: "minimal" | "normal" | "detailed";
|
|
94
|
+
/** Include statistics */
|
|
95
|
+
includeStats?: boolean;
|
|
96
|
+
/** Maximum string length for values */
|
|
97
|
+
maxValueLength?: number;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Serialize any result to TOON format
|
|
101
|
+
*
|
|
102
|
+
* Converts objects, arrays, and primitives to compact TOON notation.
|
|
103
|
+
*
|
|
104
|
+
* Output formats:
|
|
105
|
+
* - Object: `name{field1,field2}: value1, value2`
|
|
106
|
+
* - Array: `items[N]: item1, item2, ...`
|
|
107
|
+
* - Stats: `stats: original→compressed (-X%)`
|
|
108
|
+
*/
|
|
109
|
+
export declare function serializeResultToToon(result: unknown, schema: ResultSchema, options?: ResultSerializerOptions): string;
|
|
110
|
+
/**
|
|
111
|
+
* Serialize result to tabular TOON format (most compact)
|
|
112
|
+
*/
|
|
113
|
+
export declare function serializeResultToToonTabular(result: unknown, schema: ResultSchema): string;
|
|
114
|
+
/**
|
|
115
|
+
* Format output based on global configuration
|
|
116
|
+
*
|
|
117
|
+
* Uses the output config singleton to determine format.
|
|
118
|
+
*/
|
|
119
|
+
export declare function formatOutputWithConfig(result: unknown, schema: ResultSchema): string;
|
|
120
|
+
//# sourceMappingURL=toon-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toon-serializer.d.ts","sourceRoot":"","sources":["../../src/utils/toon-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAsGD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAgCR;AAaD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EAAE,GACtB,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,EAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAyBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,MAAM,CAmCR;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,CAgBR;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB;IACtB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC9C,yBAAyB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,uBAA4B,GACpC,MAAM,CA6BR;AAmKD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAoCR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAsBR"}
|