universal-agent-protocol 0.5.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/LICENSE +21 -0
- package/README.md +462 -0
- package/dist/analyzers/index.d.ts +3 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +656 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +506 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/tool-calls.d.ts +3 -0
- package/dist/bin/tool-calls.d.ts.map +1 -0
- package/dist/bin/tool-calls.js +4 -0
- package/dist/bin/tool-calls.js.map +1 -0
- package/dist/cli/agent.d.ts +20 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +434 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/analyze.d.ts +7 -0
- package/dist/cli/analyze.d.ts.map +1 -0
- package/dist/cli/analyze.js +103 -0
- package/dist/cli/analyze.js.map +1 -0
- package/dist/cli/coord.d.ts +7 -0
- package/dist/cli/coord.d.ts.map +1 -0
- package/dist/cli/coord.js +138 -0
- package/dist/cli/coord.js.map +1 -0
- package/dist/cli/dashboard.d.ts +8 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +704 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/deploy.d.ts +19 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +267 -0
- package/dist/cli/deploy.js.map +1 -0
- package/dist/cli/droids.d.ts +9 -0
- package/dist/cli/droids.d.ts.map +1 -0
- package/dist/cli/droids.js +227 -0
- package/dist/cli/droids.js.map +1 -0
- package/dist/cli/generate.d.ts +17 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +432 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/hooks.d.ts +9 -0
- package/dist/cli/hooks.d.ts.map +1 -0
- package/dist/cli/hooks.js +374 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/init.d.ts +11 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +316 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/mcp-router.d.ts +16 -0
- package/dist/cli/mcp-router.d.ts.map +1 -0
- package/dist/cli/mcp-router.js +143 -0
- package/dist/cli/mcp-router.js.map +1 -0
- package/dist/cli/memory.d.ts +24 -0
- package/dist/cli/memory.d.ts.map +1 -0
- package/dist/cli/memory.js +877 -0
- package/dist/cli/memory.js.map +1 -0
- package/dist/cli/model.d.ts +15 -0
- package/dist/cli/model.d.ts.map +1 -0
- package/dist/cli/model.js +270 -0
- package/dist/cli/model.js.map +1 -0
- package/dist/cli/patterns.d.ts +26 -0
- package/dist/cli/patterns.d.ts.map +1 -0
- package/dist/cli/patterns.js +587 -0
- package/dist/cli/patterns.js.map +1 -0
- package/dist/cli/setup-mcp-router.d.ts +8 -0
- package/dist/cli/setup-mcp-router.d.ts.map +1 -0
- package/dist/cli/setup-mcp-router.js +163 -0
- package/dist/cli/setup-mcp-router.js.map +1 -0
- package/dist/cli/setup.d.ts +13 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +146 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/sync.d.ts +7 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +26 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/cli/task.d.ts +33 -0
- package/dist/cli/task.d.ts.map +1 -0
- package/dist/cli/task.js +616 -0
- package/dist/cli/task.js.map +1 -0
- package/dist/cli/tool-calls.d.ts +8 -0
- package/dist/cli/tool-calls.d.ts.map +1 -0
- package/dist/cli/tool-calls.js +239 -0
- package/dist/cli/tool-calls.js.map +1 -0
- package/dist/cli/update.d.ts +10 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +300 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/cli/visualize.d.ts +77 -0
- package/dist/cli/visualize.d.ts.map +1 -0
- package/dist/cli/visualize.js +287 -0
- package/dist/cli/visualize.js.map +1 -0
- package/dist/cli/worktree.d.ts +9 -0
- package/dist/cli/worktree.d.ts.map +1 -0
- package/dist/cli/worktree.js +175 -0
- package/dist/cli/worktree.js.map +1 -0
- package/dist/coordination/capability-router.d.ts +79 -0
- package/dist/coordination/capability-router.d.ts.map +1 -0
- package/dist/coordination/capability-router.js +324 -0
- package/dist/coordination/capability-router.js.map +1 -0
- package/dist/coordination/database.d.ts +13 -0
- package/dist/coordination/database.d.ts.map +1 -0
- package/dist/coordination/database.js +131 -0
- package/dist/coordination/database.js.map +1 -0
- package/dist/coordination/deploy-batcher.d.ts +101 -0
- package/dist/coordination/deploy-batcher.d.ts.map +1 -0
- package/dist/coordination/deploy-batcher.js +565 -0
- package/dist/coordination/deploy-batcher.js.map +1 -0
- package/dist/coordination/index.d.ts +5 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +5 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/service.d.ts +81 -0
- package/dist/coordination/service.d.ts.map +1 -0
- package/dist/coordination/service.js +603 -0
- package/dist/coordination/service.js.map +1 -0
- package/dist/generators/claude-md.d.ts +3 -0
- package/dist/generators/claude-md.d.ts.map +1 -0
- package/dist/generators/claude-md.js +977 -0
- package/dist/generators/claude-md.js.map +1 -0
- package/dist/generators/template-loader.d.ts +105 -0
- package/dist/generators/template-loader.d.ts.map +1 -0
- package/dist/generators/template-loader.js +291 -0
- package/dist/generators/template-loader.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-router/config/parser.d.ts +9 -0
- package/dist/mcp-router/config/parser.d.ts.map +1 -0
- package/dist/mcp-router/config/parser.js +174 -0
- package/dist/mcp-router/config/parser.js.map +1 -0
- package/dist/mcp-router/executor/client.d.ts +31 -0
- package/dist/mcp-router/executor/client.d.ts.map +1 -0
- package/dist/mcp-router/executor/client.js +187 -0
- package/dist/mcp-router/executor/client.js.map +1 -0
- package/dist/mcp-router/index.d.ts +22 -0
- package/dist/mcp-router/index.d.ts.map +1 -0
- package/dist/mcp-router/index.js +18 -0
- package/dist/mcp-router/index.js.map +1 -0
- package/dist/mcp-router/output-compressor.d.ts +26 -0
- package/dist/mcp-router/output-compressor.d.ts.map +1 -0
- package/dist/mcp-router/output-compressor.js +236 -0
- package/dist/mcp-router/output-compressor.js.map +1 -0
- package/dist/mcp-router/search/fuzzy.d.ts +26 -0
- package/dist/mcp-router/search/fuzzy.d.ts.map +1 -0
- package/dist/mcp-router/search/fuzzy.js +94 -0
- package/dist/mcp-router/search/fuzzy.js.map +1 -0
- package/dist/mcp-router/server.d.ts +50 -0
- package/dist/mcp-router/server.d.ts.map +1 -0
- package/dist/mcp-router/server.js +229 -0
- package/dist/mcp-router/server.js.map +1 -0
- package/dist/mcp-router/session-stats.d.ts +37 -0
- package/dist/mcp-router/session-stats.d.ts.map +1 -0
- package/dist/mcp-router/session-stats.js +56 -0
- package/dist/mcp-router/session-stats.js.map +1 -0
- package/dist/mcp-router/tools/discover.d.ts +37 -0
- package/dist/mcp-router/tools/discover.d.ts.map +1 -0
- package/dist/mcp-router/tools/discover.js +65 -0
- package/dist/mcp-router/tools/discover.js.map +1 -0
- package/dist/mcp-router/tools/execute.d.ts +43 -0
- package/dist/mcp-router/tools/execute.d.ts.map +1 -0
- package/dist/mcp-router/tools/execute.js +103 -0
- package/dist/mcp-router/tools/execute.js.map +1 -0
- package/dist/mcp-router/types.d.ts +62 -0
- package/dist/mcp-router/types.d.ts.map +1 -0
- package/dist/mcp-router/types.js +6 -0
- package/dist/mcp-router/types.js.map +1 -0
- package/dist/memory/adaptive-context.d.ts +146 -0
- package/dist/memory/adaptive-context.d.ts.map +1 -0
- package/dist/memory/adaptive-context.js +1022 -0
- package/dist/memory/adaptive-context.js.map +1 -0
- package/dist/memory/agent-scoped-memory.d.ts +67 -0
- package/dist/memory/agent-scoped-memory.d.ts.map +1 -0
- package/dist/memory/agent-scoped-memory.js +126 -0
- package/dist/memory/agent-scoped-memory.js.map +1 -0
- package/dist/memory/backends/base.d.ts +18 -0
- package/dist/memory/backends/base.d.ts.map +1 -0
- package/dist/memory/backends/base.js +2 -0
- package/dist/memory/backends/base.js.map +1 -0
- package/dist/memory/backends/factory.d.ts +4 -0
- package/dist/memory/backends/factory.d.ts.map +1 -0
- package/dist/memory/backends/factory.js +53 -0
- package/dist/memory/backends/factory.js.map +1 -0
- package/dist/memory/backends/github.d.ts +22 -0
- package/dist/memory/backends/github.d.ts.map +1 -0
- package/dist/memory/backends/github.js +118 -0
- package/dist/memory/backends/github.js.map +1 -0
- package/dist/memory/backends/qdrant-cloud.d.ts +32 -0
- package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
- package/dist/memory/backends/qdrant-cloud.js +168 -0
- package/dist/memory/backends/qdrant-cloud.js.map +1 -0
- package/dist/memory/context-compressor.d.ts +74 -0
- package/dist/memory/context-compressor.d.ts.map +1 -0
- package/dist/memory/context-compressor.js +289 -0
- package/dist/memory/context-compressor.js.map +1 -0
- package/dist/memory/correction-propagator.d.ts +44 -0
- package/dist/memory/correction-propagator.d.ts.map +1 -0
- package/dist/memory/correction-propagator.js +156 -0
- package/dist/memory/correction-propagator.js.map +1 -0
- package/dist/memory/daily-log.d.ts +67 -0
- package/dist/memory/daily-log.d.ts.map +1 -0
- package/dist/memory/daily-log.js +143 -0
- package/dist/memory/daily-log.js.map +1 -0
- package/dist/memory/dynamic-retrieval.d.ts +110 -0
- package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
- package/dist/memory/dynamic-retrieval.js +688 -0
- package/dist/memory/dynamic-retrieval.js.map +1 -0
- package/dist/memory/embeddings.d.ts +116 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +461 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/hierarchical-memory.d.ts +141 -0
- package/dist/memory/hierarchical-memory.d.ts.map +1 -0
- package/dist/memory/hierarchical-memory.js +477 -0
- package/dist/memory/hierarchical-memory.js.map +1 -0
- package/dist/memory/memory-consolidator.d.ts +124 -0
- package/dist/memory/memory-consolidator.d.ts.map +1 -0
- package/dist/memory/memory-consolidator.js +514 -0
- package/dist/memory/memory-consolidator.js.map +1 -0
- package/dist/memory/memory-maintenance.d.ts +39 -0
- package/dist/memory/memory-maintenance.d.ts.map +1 -0
- package/dist/memory/memory-maintenance.js +305 -0
- package/dist/memory/memory-maintenance.js.map +1 -0
- package/dist/memory/model-router.d.ts +102 -0
- package/dist/memory/model-router.d.ts.map +1 -0
- package/dist/memory/model-router.js +448 -0
- package/dist/memory/model-router.js.map +1 -0
- package/dist/memory/multi-view-memory.d.ts +134 -0
- package/dist/memory/multi-view-memory.d.ts.map +1 -0
- package/dist/memory/multi-view-memory.js +420 -0
- package/dist/memory/multi-view-memory.js.map +1 -0
- package/dist/memory/prepopulate.d.ts +76 -0
- package/dist/memory/prepopulate.d.ts.map +1 -0
- package/dist/memory/prepopulate.js +815 -0
- package/dist/memory/prepopulate.js.map +1 -0
- package/dist/memory/semantic-compression.d.ts +77 -0
- package/dist/memory/semantic-compression.d.ts.map +1 -0
- package/dist/memory/semantic-compression.js +348 -0
- package/dist/memory/semantic-compression.js.map +1 -0
- package/dist/memory/serverless-qdrant.d.ts +102 -0
- package/dist/memory/serverless-qdrant.d.ts.map +1 -0
- package/dist/memory/serverless-qdrant.js +369 -0
- package/dist/memory/serverless-qdrant.js.map +1 -0
- package/dist/memory/short-term/factory.d.ts +26 -0
- package/dist/memory/short-term/factory.d.ts.map +1 -0
- package/dist/memory/short-term/factory.js +28 -0
- package/dist/memory/short-term/factory.js.map +1 -0
- package/dist/memory/short-term/indexeddb.d.ts +25 -0
- package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
- package/dist/memory/short-term/indexeddb.js +64 -0
- package/dist/memory/short-term/indexeddb.js.map +1 -0
- package/dist/memory/short-term/schema.d.ts +6 -0
- package/dist/memory/short-term/schema.d.ts.map +1 -0
- package/dist/memory/short-term/schema.js +119 -0
- package/dist/memory/short-term/schema.js.map +1 -0
- package/dist/memory/short-term/sqlite.d.ts +50 -0
- package/dist/memory/short-term/sqlite.d.ts.map +1 -0
- package/dist/memory/short-term/sqlite.js +221 -0
- package/dist/memory/short-term/sqlite.js.map +1 -0
- package/dist/memory/speculative-cache.d.ts +111 -0
- package/dist/memory/speculative-cache.d.ts.map +1 -0
- package/dist/memory/speculative-cache.js +409 -0
- package/dist/memory/speculative-cache.js.map +1 -0
- package/dist/memory/task-classifier.d.ts +34 -0
- package/dist/memory/task-classifier.d.ts.map +1 -0
- package/dist/memory/task-classifier.js +300 -0
- package/dist/memory/task-classifier.js.map +1 -0
- package/dist/memory/terminal-bench-knowledge.d.ts +48 -0
- package/dist/memory/terminal-bench-knowledge.d.ts.map +1 -0
- package/dist/memory/terminal-bench-knowledge.js +399 -0
- package/dist/memory/terminal-bench-knowledge.js.map +1 -0
- package/dist/memory/write-gate.d.ts +39 -0
- package/dist/memory/write-gate.d.ts.map +1 -0
- package/dist/memory/write-gate.js +190 -0
- package/dist/memory/write-gate.js.map +1 -0
- package/dist/models/executor.d.ts +130 -0
- package/dist/models/executor.d.ts.map +1 -0
- package/dist/models/executor.js +383 -0
- package/dist/models/executor.js.map +1 -0
- package/dist/models/index.d.ts +15 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +17 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/planner.d.ts +71 -0
- package/dist/models/planner.d.ts.map +1 -0
- package/dist/models/planner.js +344 -0
- package/dist/models/planner.js.map +1 -0
- package/dist/models/router.d.ts +75 -0
- package/dist/models/router.d.ts.map +1 -0
- package/dist/models/router.js +344 -0
- package/dist/models/router.js.map +1 -0
- package/dist/models/types.d.ts +370 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +181 -0
- package/dist/models/types.js.map +1 -0
- package/dist/tasks/coordination.d.ts +74 -0
- package/dist/tasks/coordination.d.ts.map +1 -0
- package/dist/tasks/coordination.js +237 -0
- package/dist/tasks/coordination.js.map +1 -0
- package/dist/tasks/database.d.ts +14 -0
- package/dist/tasks/database.d.ts.map +1 -0
- package/dist/tasks/database.js +128 -0
- package/dist/tasks/database.js.map +1 -0
- package/dist/tasks/index.d.ts +5 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +5 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/service.d.ts +39 -0
- package/dist/tasks/service.d.ts.map +1 -0
- package/dist/tasks/service.js +582 -0
- package/dist/tasks/service.js.map +1 -0
- package/dist/tasks/types.d.ts +224 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +64 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/types/analysis.d.ts +82 -0
- package/dist/types/analysis.d.ts.map +1 -0
- package/dist/types/analysis.js +2 -0
- package/dist/types/analysis.js.map +1 -0
- package/dist/types/config.d.ts +3023 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +292 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/coordination.d.ts +240 -0
- package/dist/types/coordination.d.ts.map +1 -0
- package/dist/types/coordination.js +43 -0
- package/dist/types/coordination.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/calculate-average.d.ts +15 -0
- package/dist/utils/calculate-average.d.ts.map +1 -0
- package/dist/utils/calculate-average.js +21 -0
- package/dist/utils/calculate-average.js.map +1 -0
- package/dist/utils/config-manager.d.ts +30 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +41 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/dijkstra.d.ts +17 -0
- package/dist/utils/dijkstra.d.ts.map +1 -0
- package/dist/utils/dijkstra.js +91 -0
- package/dist/utils/dijkstra.js.map +1 -0
- package/dist/utils/fetch-with-retry.d.ts +5 -0
- package/dist/utils/fetch-with-retry.d.ts.map +1 -0
- package/dist/utils/fetch-with-retry.js +61 -0
- package/dist/utils/fetch-with-retry.js.map +1 -0
- package/dist/utils/merge-claude-md.d.ts +28 -0
- package/dist/utils/merge-claude-md.d.ts.map +1 -0
- package/dist/utils/merge-claude-md.js +342 -0
- package/dist/utils/merge-claude-md.js.map +1 -0
- package/dist/utils/order-processor-refactored.d.ts +126 -0
- package/dist/utils/order-processor-refactored.d.ts.map +1 -0
- package/dist/utils/order-processor-refactored.js +165 -0
- package/dist/utils/order-processor-refactored.js.map +1 -0
- package/dist/utils/order-processor-strategy.d.ts +72 -0
- package/dist/utils/order-processor-strategy.d.ts.map +1 -0
- package/dist/utils/order-processor-strategy.js +158 -0
- package/dist/utils/order-processor-strategy.js.map +1 -0
- package/dist/utils/order-processor.d.ts +242 -0
- package/dist/utils/order-processor.d.ts.map +1 -0
- package/dist/utils/order-processor.js +370 -0
- package/dist/utils/order-processor.js.map +1 -0
- package/dist/utils/rate-limiter-simple.d.ts +58 -0
- package/dist/utils/rate-limiter-simple.d.ts.map +1 -0
- package/dist/utils/rate-limiter-simple.js +100 -0
- package/dist/utils/rate-limiter-simple.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +62 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +150 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/string-similarity.d.ts +37 -0
- package/dist/utils/string-similarity.d.ts.map +1 -0
- package/dist/utils/string-similarity.js +114 -0
- package/dist/utils/string-similarity.js.map +1 -0
- package/dist/utils/validate-json.d.ts +51 -0
- package/dist/utils/validate-json.d.ts.map +1 -0
- package/dist/utils/validate-json.js +99 -0
- package/dist/utils/validate-json.js.map +1 -0
- package/package.json +96 -0
- package/templates/CLAUDE.template.md +11 -0
- package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
- package/templates/CLAUDE_CODING.template.md +125 -0
- package/templates/CLAUDE_DROIDS.template.md +109 -0
- package/templates/CLAUDE_MEMORY.template.md +130 -0
- package/templates/CLAUDE_WORKFLOWS.template.md +136 -0
- package/templates/PROJECT.template.md +209 -0
- package/templates/SCHEMA.md +57 -0
- package/templates/archive/CLAUDE.template.root-v6.md +762 -0
- package/templates/archive/CLAUDE.template.v6.md +762 -0
- package/templates/hooks/pre-compact.sh +68 -0
- package/templates/hooks/session-start.sh +106 -0
- package/tools/agents/README.md +224 -0
- package/tools/agents/UAP/README.md +351 -0
- package/tools/agents/UAP/__init__.py +9 -0
- package/tools/agents/UAP/cli.py +675 -0
- package/tools/agents/UAP/version.py +2 -0
- package/tools/agents/benchmarks/benchmark_memory_systems.py +637 -0
- package/tools/agents/benchmarks/results/benchmark_20260106_064817.json +170 -0
- package/tools/agents/benchmarks/results/benchmark_20260106_064817.md +51 -0
- package/tools/agents/config/chat_template.jinja +172 -0
- package/tools/agents/docker-compose.qdrant.yml +24 -0
- package/tools/agents/migrations/apply.py +256 -0
- package/tools/agents/scripts/fix_qwen_chat_template.py +314 -0
- package/tools/agents/scripts/init_qdrant.py +151 -0
- package/tools/agents/scripts/memory_migration.py +518 -0
- package/tools/agents/scripts/migrate_memory_to_qdrant.py +113 -0
- package/tools/agents/scripts/query_memory.py +189 -0
- package/tools/agents/scripts/qwen_tool_call_test.py +419 -0
- package/tools/agents/scripts/qwen_tool_call_wrapper.py +517 -0
- package/tools/agents/scripts/start-services.sh +96 -0
- package/tools/agents/tests/test_uap_compliance.py +257 -0
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Speculative Cache for UAP Memory System
|
|
3
|
+
*
|
|
4
|
+
* Pre-computes likely next queries based on task patterns.
|
|
5
|
+
* Reduces latency by predicting and caching memory retrievals.
|
|
6
|
+
*
|
|
7
|
+
* Enhanced with task classifier integration for smarter prefetching
|
|
8
|
+
*/
|
|
9
|
+
const DEFAULT_CONFIG = {
|
|
10
|
+
maxEntries: 100,
|
|
11
|
+
ttlMs: 300000, // 5 minutes
|
|
12
|
+
preWarmEnabled: true,
|
|
13
|
+
predictionDepth: 3,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Query patterns for speculative prefetching
|
|
17
|
+
* Enhanced with Terminal-Bench proven keyword chains for better cache warming
|
|
18
|
+
*/
|
|
19
|
+
const QUERY_PATTERNS = {
|
|
20
|
+
'sysadmin': [
|
|
21
|
+
'linux commands', 'systemd services', 'network configuration',
|
|
22
|
+
'docker containers', 'kernel modules', 'filesystem mounts',
|
|
23
|
+
'kernel compilation', 'qemu virtual machine', 'grub configuration',
|
|
24
|
+
],
|
|
25
|
+
'security': [
|
|
26
|
+
'authentication patterns', 'secret management', 'vulnerability fixes',
|
|
27
|
+
'input validation', 'encryption methods', 'access control',
|
|
28
|
+
'hashcat password', '7z archive crack', 'xss filter bypass',
|
|
29
|
+
'sanitize html injection', 'binary secret extraction',
|
|
30
|
+
],
|
|
31
|
+
'coding': [
|
|
32
|
+
'design patterns', 'error handling', 'async patterns',
|
|
33
|
+
'type definitions', 'refactoring', 'code review',
|
|
34
|
+
'cobol modernization', 'regex chess notation', 'pgn parser',
|
|
35
|
+
],
|
|
36
|
+
'testing': [
|
|
37
|
+
'test patterns', 'mocking', 'assertions',
|
|
38
|
+
'coverage', 'integration tests', 'edge cases',
|
|
39
|
+
],
|
|
40
|
+
'debugging': [
|
|
41
|
+
'error messages', 'stack traces', 'dependency conflicts',
|
|
42
|
+
'environment issues', 'git problems', 'build failures',
|
|
43
|
+
'git reflog recovery', 'pip dependency conflict', 'conda environment',
|
|
44
|
+
],
|
|
45
|
+
'ml-training': [
|
|
46
|
+
'model training', 'dataset processing', 'hyperparameters',
|
|
47
|
+
'embeddings', 'evaluation metrics', 'GPU optimization',
|
|
48
|
+
'gpt2 implementation', 'transformer inference',
|
|
49
|
+
],
|
|
50
|
+
'file-ops': [
|
|
51
|
+
'elf binary parsing', 'sqlite wal recovery', 'archive extraction',
|
|
52
|
+
'readelf objdump', 'struct unpack', 'program headers',
|
|
53
|
+
'sqlite truncate recover',
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Pre-seeded query transition chains derived from Terminal-Bench task patterns.
|
|
58
|
+
* These encode proven productive query sequences that accelerate cache warming.
|
|
59
|
+
* OPTIMIZATION 10: Expanded with library-first and output verification chains
|
|
60
|
+
*/
|
|
61
|
+
const SEEDED_TRANSITIONS = {
|
|
62
|
+
'password': ['hashcat', '7z crack', 'john wordlist', 'hash type', 'output file create'],
|
|
63
|
+
'hashcat': ['7z password', 'wordlist attack', 'brute force', 'hash mode'],
|
|
64
|
+
'elf': ['readelf', 'program headers', 'struct unpack', 'binary extract', 'output file'],
|
|
65
|
+
'sqlite': ['wal recovery', 'truncate recover', 'pragma checkpoint', 'dump sql', 'output file'],
|
|
66
|
+
'xss': ['filter bypass', 'sanitize html', 'bleach clean', 'dompurify', 'filter.py create'],
|
|
67
|
+
'cobol': ['modernize python', 'working storage', 'picture clause', 'fixed format'],
|
|
68
|
+
'kernel': ['make defconfig', 'modules install', 'grub config', 'qemu kvm'],
|
|
69
|
+
'git': ['reflog', 'cherry-pick', 'recover branch', 'fsck', 'backup .git'],
|
|
70
|
+
// OPTIMIZATION 10: New chains for library-first and output verification
|
|
71
|
+
'chess': ['python-chess', 'stockfish', 'chessimg2pos', 'fen validation', 'best move'],
|
|
72
|
+
'compress': ['zlib', 'round-trip verify', 'decode first', 'format match', 'lz4 brotli'],
|
|
73
|
+
'sampler': ['scipy.stats', 'cran ars', 'numerical stability', 'random seeds', 'tolerance'],
|
|
74
|
+
'script': ['shebang', 'chmod executable', 'cli test', 'output verify', 'ls -la'],
|
|
75
|
+
'implement': ['library search', 'pip install', 'existing solution', 'test first'],
|
|
76
|
+
'file': ['touch output', 'create first', 'verify exists', 'ls -la check'],
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Speculative Memory Cache
|
|
80
|
+
*/
|
|
81
|
+
export class SpeculativeCache {
|
|
82
|
+
config;
|
|
83
|
+
cache = new Map();
|
|
84
|
+
queryHistory = [];
|
|
85
|
+
taskPatterns = new Map();
|
|
86
|
+
constructor(config = {}) {
|
|
87
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get from cache with automatic staleness check
|
|
91
|
+
*/
|
|
92
|
+
get(query) {
|
|
93
|
+
const normalizedQuery = this.normalizeQuery(query);
|
|
94
|
+
const entry = this.cache.get(normalizedQuery);
|
|
95
|
+
if (!entry)
|
|
96
|
+
return null;
|
|
97
|
+
// Check TTL
|
|
98
|
+
const age = Date.now() - entry.lastUsed.getTime();
|
|
99
|
+
if (age > this.config.ttlMs) {
|
|
100
|
+
this.cache.delete(normalizedQuery);
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
// Update usage stats
|
|
104
|
+
entry.usageCount++;
|
|
105
|
+
entry.lastUsed = new Date();
|
|
106
|
+
return entry;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Set cache entry
|
|
110
|
+
*/
|
|
111
|
+
set(query, result, predictedBy) {
|
|
112
|
+
const normalizedQuery = this.normalizeQuery(query);
|
|
113
|
+
// Evict if at capacity
|
|
114
|
+
if (this.cache.size >= this.config.maxEntries) {
|
|
115
|
+
this.evictLRU();
|
|
116
|
+
}
|
|
117
|
+
this.cache.set(normalizedQuery, {
|
|
118
|
+
query: normalizedQuery,
|
|
119
|
+
result,
|
|
120
|
+
usageCount: 1,
|
|
121
|
+
lastUsed: new Date(),
|
|
122
|
+
createdAt: new Date(),
|
|
123
|
+
predictedBy,
|
|
124
|
+
});
|
|
125
|
+
// Track query pattern
|
|
126
|
+
this.recordQuery(query);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Record query for pattern analysis
|
|
130
|
+
*/
|
|
131
|
+
recordQuery(query) {
|
|
132
|
+
this.queryHistory.push(query);
|
|
133
|
+
// Keep last 100 queries
|
|
134
|
+
if (this.queryHistory.length > 100) {
|
|
135
|
+
this.queryHistory.shift();
|
|
136
|
+
}
|
|
137
|
+
// Update task patterns
|
|
138
|
+
const category = this.detectCategory(query);
|
|
139
|
+
if (category) {
|
|
140
|
+
const count = this.taskPatterns.get(category) || 0;
|
|
141
|
+
this.taskPatterns.set(category, count + 1);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Detect task category from query
|
|
146
|
+
*/
|
|
147
|
+
detectCategory(query) {
|
|
148
|
+
const queryLower = query.toLowerCase();
|
|
149
|
+
for (const [category, keywords] of Object.entries(QUERY_PATTERNS)) {
|
|
150
|
+
for (const keyword of keywords) {
|
|
151
|
+
if (queryLower.includes(keyword.toLowerCase())) {
|
|
152
|
+
return category;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get predicted queries based on current context
|
|
160
|
+
* Enhanced with seeded transition chains for faster cache warming
|
|
161
|
+
*/
|
|
162
|
+
getPredictedQueries(currentQuery) {
|
|
163
|
+
const predictions = [];
|
|
164
|
+
const category = this.detectCategory(currentQuery);
|
|
165
|
+
const queryLower = currentQuery.toLowerCase();
|
|
166
|
+
// Add seeded transition predictions first (highest confidence)
|
|
167
|
+
for (const [trigger, followups] of Object.entries(SEEDED_TRANSITIONS)) {
|
|
168
|
+
if (queryLower.includes(trigger)) {
|
|
169
|
+
predictions.push(...followups.slice(0, this.config.predictionDepth));
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Add category-specific predictions
|
|
174
|
+
if (category && QUERY_PATTERNS[category]) {
|
|
175
|
+
const categoryQueries = QUERY_PATTERNS[category];
|
|
176
|
+
predictions.push(...categoryQueries.slice(0, this.config.predictionDepth));
|
|
177
|
+
}
|
|
178
|
+
// Add patterns from history
|
|
179
|
+
const recentPatterns = this.analyzeQuerySequences();
|
|
180
|
+
predictions.push(...recentPatterns);
|
|
181
|
+
// Deduplicate and limit
|
|
182
|
+
return [...new Set(predictions)].slice(0, this.config.predictionDepth * 3);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Analyze query sequences for patterns
|
|
186
|
+
*/
|
|
187
|
+
analyzeQuerySequences() {
|
|
188
|
+
const patterns = [];
|
|
189
|
+
if (this.queryHistory.length < 2)
|
|
190
|
+
return patterns;
|
|
191
|
+
// Look for common follow-up queries
|
|
192
|
+
const transitions = new Map();
|
|
193
|
+
for (let i = 0; i < this.queryHistory.length - 1; i++) {
|
|
194
|
+
const from = this.normalizeQuery(this.queryHistory[i]);
|
|
195
|
+
const to = this.normalizeQuery(this.queryHistory[i + 1]);
|
|
196
|
+
if (!transitions.has(from)) {
|
|
197
|
+
transitions.set(from, new Map());
|
|
198
|
+
}
|
|
199
|
+
const toCount = transitions.get(from).get(to) || 0;
|
|
200
|
+
transitions.get(from).set(to, toCount + 1);
|
|
201
|
+
}
|
|
202
|
+
// Find most common transitions
|
|
203
|
+
if (this.queryHistory.length > 0) {
|
|
204
|
+
const lastQuery = this.normalizeQuery(this.queryHistory[this.queryHistory.length - 1]);
|
|
205
|
+
const nextQueries = transitions.get(lastQuery);
|
|
206
|
+
if (nextQueries) {
|
|
207
|
+
const sorted = [...nextQueries.entries()].sort((a, b) => b[1] - a[1]);
|
|
208
|
+
patterns.push(...sorted.slice(0, 3).map(([query]) => query));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return patterns;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Pre-warm cache with predicted queries
|
|
215
|
+
*/
|
|
216
|
+
async preWarm(currentQuery, fetcher) {
|
|
217
|
+
if (!this.config.preWarmEnabled)
|
|
218
|
+
return;
|
|
219
|
+
const predictions = this.getPredictedQueries(currentQuery);
|
|
220
|
+
// Fetch in parallel
|
|
221
|
+
await Promise.all(predictions.map(async (query) => {
|
|
222
|
+
if (!this.cache.has(this.normalizeQuery(query))) {
|
|
223
|
+
try {
|
|
224
|
+
const result = await fetcher(query);
|
|
225
|
+
this.set(query, result, currentQuery);
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// Ignore prefetch failures
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}));
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Evict least recently used entry
|
|
235
|
+
*/
|
|
236
|
+
evictLRU() {
|
|
237
|
+
let oldest = null;
|
|
238
|
+
for (const [key, entry] of this.cache) {
|
|
239
|
+
const time = entry.lastUsed.getTime();
|
|
240
|
+
if (!oldest || time < oldest.time) {
|
|
241
|
+
oldest = { key, time };
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (oldest) {
|
|
245
|
+
this.cache.delete(oldest.key);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Normalize query for cache key
|
|
250
|
+
*/
|
|
251
|
+
normalizeQuery(query) {
|
|
252
|
+
return query.toLowerCase().trim().replace(/\s+/g, ' ');
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get cache statistics
|
|
256
|
+
*/
|
|
257
|
+
getStats() {
|
|
258
|
+
const entries = [...this.cache.values()];
|
|
259
|
+
const totalUsage = entries.reduce((sum, e) => sum + e.usageCount, 0);
|
|
260
|
+
const hits = entries.filter(e => e.usageCount > 1).length;
|
|
261
|
+
const topPatterns = [...this.taskPatterns.entries()]
|
|
262
|
+
.sort((a, b) => b[1] - a[1])
|
|
263
|
+
.slice(0, 5)
|
|
264
|
+
.map(([category, count]) => ({ category, count }));
|
|
265
|
+
return {
|
|
266
|
+
size: this.cache.size,
|
|
267
|
+
hitRate: entries.length > 0 ? hits / entries.length : 0,
|
|
268
|
+
avgUsage: entries.length > 0 ? totalUsage / entries.length : 0,
|
|
269
|
+
topPatterns,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Clear expired entries
|
|
274
|
+
*/
|
|
275
|
+
cleanup() {
|
|
276
|
+
const now = Date.now();
|
|
277
|
+
let removed = 0;
|
|
278
|
+
for (const [key, entry] of this.cache) {
|
|
279
|
+
const age = now - entry.lastUsed.getTime();
|
|
280
|
+
if (age > this.config.ttlMs) {
|
|
281
|
+
this.cache.delete(key);
|
|
282
|
+
removed++;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return removed;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Clear all cache
|
|
289
|
+
*/
|
|
290
|
+
clear() {
|
|
291
|
+
this.cache.clear();
|
|
292
|
+
this.queryHistory = [];
|
|
293
|
+
this.taskPatterns.clear();
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* OPTIMIZATION 6: Load historical query patterns from SQLite database
|
|
297
|
+
* Pre-warms queryHistory and taskPatterns from persisted memory data
|
|
298
|
+
*/
|
|
299
|
+
async loadFromDb(dbPath) {
|
|
300
|
+
let loaded = 0;
|
|
301
|
+
try {
|
|
302
|
+
const fs = await import('fs');
|
|
303
|
+
if (!fs.existsSync(dbPath))
|
|
304
|
+
return 0;
|
|
305
|
+
const BetterSqlite3 = await import('better-sqlite3');
|
|
306
|
+
const db = new BetterSqlite3.default(dbPath, { readonly: true });
|
|
307
|
+
try {
|
|
308
|
+
// Load top-20 most common content patterns as query history seeds
|
|
309
|
+
const rows = db.prepare(`
|
|
310
|
+
SELECT content, type FROM memories
|
|
311
|
+
ORDER BY id DESC
|
|
312
|
+
LIMIT 20
|
|
313
|
+
`).all();
|
|
314
|
+
for (const row of rows) {
|
|
315
|
+
if (row.content) {
|
|
316
|
+
const phrase = row.content.split(/[.!?\n]/)[0]?.trim().slice(0, 100) || '';
|
|
317
|
+
if (phrase.length > 5) {
|
|
318
|
+
this.queryHistory.push(phrase);
|
|
319
|
+
loaded++;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// Load high-importance session memories for pattern seeding
|
|
324
|
+
const sessionRows = db.prepare(`
|
|
325
|
+
SELECT content, type FROM session_memories
|
|
326
|
+
WHERE importance >= 7
|
|
327
|
+
ORDER BY id DESC
|
|
328
|
+
LIMIT 10
|
|
329
|
+
`).all();
|
|
330
|
+
for (const row of sessionRows) {
|
|
331
|
+
if (row.content) {
|
|
332
|
+
const phrase = row.content.split(/[.!?\n]/)[0]?.trim().slice(0, 100) || '';
|
|
333
|
+
if (phrase.length > 5) {
|
|
334
|
+
this.queryHistory.push(phrase);
|
|
335
|
+
loaded++;
|
|
336
|
+
// Also detect and seed task patterns
|
|
337
|
+
const category = this.detectCategory(phrase);
|
|
338
|
+
if (category) {
|
|
339
|
+
const count = this.taskPatterns.get(category) || 0;
|
|
340
|
+
this.taskPatterns.set(category, count + 1);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
finally {
|
|
347
|
+
db.close();
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
// Silently fail - warm-start is optional
|
|
352
|
+
}
|
|
353
|
+
return loaded;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// Singleton instance
|
|
357
|
+
let globalCache = null;
|
|
358
|
+
export function getSpeculativeCache(config) {
|
|
359
|
+
if (!globalCache) {
|
|
360
|
+
globalCache = new SpeculativeCache(config);
|
|
361
|
+
}
|
|
362
|
+
return globalCache;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* OPTIMIZATION 6: Initialize cache with historical data from database
|
|
366
|
+
* Call this at startup to warm the cache from persisted memories
|
|
367
|
+
*/
|
|
368
|
+
export async function initializeCacheFromDb(dbPath, config) {
|
|
369
|
+
const cache = getSpeculativeCache(config);
|
|
370
|
+
const entriesLoaded = await cache.loadFromDb(dbPath);
|
|
371
|
+
return { cache, entriesLoaded };
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* OPTIMIZATION 10: Auto-warm cache with high-value Terminal-Bench patterns
|
|
375
|
+
* Call this at startup to pre-populate cache with proven knowledge chains
|
|
376
|
+
*/
|
|
377
|
+
export function autoWarmCache(cache) {
|
|
378
|
+
const c = cache || getSpeculativeCache();
|
|
379
|
+
let warmed = 0;
|
|
380
|
+
// Pre-seed with high-value Terminal-Bench patterns
|
|
381
|
+
const highValueQueries = [
|
|
382
|
+
// Password cracking chain
|
|
383
|
+
'hashcat 7z password mode',
|
|
384
|
+
'john wordlist attack',
|
|
385
|
+
'7z2john extract hash',
|
|
386
|
+
// File operations
|
|
387
|
+
'elf binary program headers',
|
|
388
|
+
'sqlite wal recovery dump',
|
|
389
|
+
'readelf objdump strings',
|
|
390
|
+
// Security
|
|
391
|
+
'xss filter sanitize bleach',
|
|
392
|
+
'injection bypass techniques',
|
|
393
|
+
// Library-first patterns (OPTIMIZATION 8)
|
|
394
|
+
'python-chess stockfish integration',
|
|
395
|
+
'scipy.stats ars sampler',
|
|
396
|
+
'zlib compression round-trip',
|
|
397
|
+
// Output verification (OPTIMIZATION 6)
|
|
398
|
+
'shebang chmod executable cli',
|
|
399
|
+
'touch output file create',
|
|
400
|
+
'ls -la verify exists',
|
|
401
|
+
];
|
|
402
|
+
for (const query of highValueQueries) {
|
|
403
|
+
// Store with high usage count to prevent early eviction
|
|
404
|
+
c.set(query, [{ preWarmed: true, query }], 'auto-warm');
|
|
405
|
+
warmed++;
|
|
406
|
+
}
|
|
407
|
+
return warmed;
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=speculative-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speculative-cache.js","sourceRoot":"","sources":["../../src/memory/speculative-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Classification System for UAP
|
|
3
|
+
*
|
|
4
|
+
* Classifies tasks into categories and routes to appropriate droids/memory.
|
|
5
|
+
* Based on Terminal-Bench 2.0 task categories and Droid's routing strategies.
|
|
6
|
+
*/
|
|
7
|
+
export type TaskCategory = 'sysadmin' | 'security' | 'ml-training' | 'debugging' | 'coding' | 'file-ops' | 'testing' | 'constraint-satisfaction' | 'unknown';
|
|
8
|
+
export interface TaskClassification {
|
|
9
|
+
category: TaskCategory;
|
|
10
|
+
confidence: number;
|
|
11
|
+
keywords: string[];
|
|
12
|
+
suggestedDroid: string;
|
|
13
|
+
memoryQueryHints: string[];
|
|
14
|
+
requiredCapabilities: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Classify a task based on its instruction/prompt
|
|
18
|
+
* OPTIMIZATION 3: Fixed scoring to use actual max possible scores per category
|
|
19
|
+
*/
|
|
20
|
+
export declare function classifyTask(instruction: string): TaskClassification;
|
|
21
|
+
/**
|
|
22
|
+
* Extract entities from task instruction for memory queries
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractTaskEntities(instruction: string): {
|
|
25
|
+
technologies: string[];
|
|
26
|
+
operations: string[];
|
|
27
|
+
files: string[];
|
|
28
|
+
concepts: string[];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Get suggested memory queries based on task classification
|
|
32
|
+
*/
|
|
33
|
+
export declare function getSuggestedMemoryQueries(classification: TaskClassification): string[];
|
|
34
|
+
//# sourceMappingURL=task-classifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-classifier.d.ts","sourceRoot":"","sources":["../../src/memory/task-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,aAAa,GACb,WAAW,GACX,QAAQ,GACR,UAAU,GACV,SAAS,GACT,yBAAyB,GACzB,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAgID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CA6DpE;AA0CD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IACxD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAoEA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAoBtF"}
|