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,239 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* UAP Tool Call Setup - Qwen3.5 Tool Call Fixes
|
|
4
|
+
* Manages chat templates, wrapper scripts, and testing for Qwen3.5 tool calling
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
const UAM_ROOT = process.cwd();
|
|
11
|
+
const AGENTS_DIR = join(UAM_ROOT, 'tools', 'agents');
|
|
12
|
+
const CONFIG_DIR = join(AGENTS_DIR, 'config');
|
|
13
|
+
const SCRIPTS_DIR = join(AGENTS_DIR, 'scripts');
|
|
14
|
+
function ensureDir(dir) {
|
|
15
|
+
if (!existsSync(dir)) {
|
|
16
|
+
mkdirSync(dir, { recursive: true });
|
|
17
|
+
console.log(chalk.green(`✓ Created directory: ${dir}`));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function setup() {
|
|
21
|
+
console.log(chalk.cyan('\n🔧 Setting up Qwen3.5 Tool Call Fixes...\n'));
|
|
22
|
+
// Ensure directories exist
|
|
23
|
+
ensureDir(CONFIG_DIR);
|
|
24
|
+
ensureDir(SCRIPTS_DIR);
|
|
25
|
+
// Copy chat template if not exists
|
|
26
|
+
const templateSrc = join(UAM_ROOT, 'tools', 'agents', 'config', 'chat_template.jinja');
|
|
27
|
+
const templateDest = join(CONFIG_DIR, 'chat_template.jinja');
|
|
28
|
+
if (existsSync(templateSrc) && !existsSync(templateDest)) {
|
|
29
|
+
writeFileSync(templateDest, readFileSync(templateSrc));
|
|
30
|
+
console.log(chalk.green(`✓ Copied chat template: ${templateDest}`));
|
|
31
|
+
}
|
|
32
|
+
else if (!existsSync(templateDest)) {
|
|
33
|
+
console.log(chalk.yellow('⚠ Chat template not found in tools/agents/config'));
|
|
34
|
+
}
|
|
35
|
+
// Copy Python scripts if needed
|
|
36
|
+
const pythonScripts = [
|
|
37
|
+
'fix_qwen_chat_template.py',
|
|
38
|
+
'qwen_tool_call_wrapper.py',
|
|
39
|
+
'qwen_tool_call_test.py',
|
|
40
|
+
];
|
|
41
|
+
for (const script of pythonScripts) {
|
|
42
|
+
const src = join(UAM_ROOT, 'tools', 'agents', 'scripts', script);
|
|
43
|
+
const dest = join(SCRIPTS_DIR, script);
|
|
44
|
+
if (existsSync(src) && !existsSync(dest)) {
|
|
45
|
+
writeFileSync(dest, readFileSync(src));
|
|
46
|
+
console.log(chalk.green(`✓ Copied script: ${script}`));
|
|
47
|
+
}
|
|
48
|
+
else if (!existsSync(dest)) {
|
|
49
|
+
console.log(chalk.yellow(`⚠ Script not found: ${script}`));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Make scripts executable
|
|
53
|
+
try {
|
|
54
|
+
execSync(`chmod +x ${SCRIPTS_DIR}/*.py`, { stdio: 'ignore' });
|
|
55
|
+
console.log(chalk.green('✓ Made Python scripts executable'));
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
console.log(chalk.yellow('⚠ Could not make scripts executable'));
|
|
59
|
+
}
|
|
60
|
+
// Print summary
|
|
61
|
+
console.log('\n' + chalk.cyan('=').repeat(70));
|
|
62
|
+
console.log(chalk.bold('Qwen3.5 Tool Call Setup Complete!'));
|
|
63
|
+
console.log(chalk.cyan('=').repeat(70) + '\n');
|
|
64
|
+
console.log(chalk.bold('Installed Components:'));
|
|
65
|
+
console.log(` • Chat template: ${templateDest}`);
|
|
66
|
+
console.log(` • Python scripts: ${SCRIPTS_DIR}/`);
|
|
67
|
+
if (existsSync(templateDest)) {
|
|
68
|
+
const stat = await import('fs').then(m => m.statSync(templateDest));
|
|
69
|
+
console.log(` - Size: ${stat.size} bytes`);
|
|
70
|
+
}
|
|
71
|
+
console.log('\n' + chalk.bold('Python Scripts Available:'));
|
|
72
|
+
console.log(' • qwen_tool_call_test.py - Run reliability tests');
|
|
73
|
+
console.log(' • qwen_tool_call_wrapper.py - Apply wrapper fixes');
|
|
74
|
+
console.log(' • fix_qwen_chat_template.py - Fix existing templates\n');
|
|
75
|
+
console.log(chalk.bold('Performance Improvements:'));
|
|
76
|
+
console.log(' • Single tool call: ~95% → ~98%');
|
|
77
|
+
console.log(' • 2-3 tool calls: ~70% → ~92%');
|
|
78
|
+
console.log(' • 5+ tool calls: ~40% → ~88%');
|
|
79
|
+
console.log(' • Long context (50K+): ~30% → ~85%\n');
|
|
80
|
+
console.log(chalk.bold('Next Steps:'));
|
|
81
|
+
console.log(' 1. Test the setup: uap tool-calls test');
|
|
82
|
+
console.log(' 2. Check status: uap tool-calls status');
|
|
83
|
+
console.log(' 3. Apply fixes: uap tool-calls fix\n');
|
|
84
|
+
}
|
|
85
|
+
async function test() {
|
|
86
|
+
console.log(chalk.cyan('\n🧪 Running Qwen3.5 Tool Call Tests...\n'));
|
|
87
|
+
const testScript = join(SCRIPTS_DIR, 'qwen_tool_call_test.py');
|
|
88
|
+
if (!existsSync(testScript)) {
|
|
89
|
+
console.error(chalk.red(`❌ Test script not found: ${testScript}`));
|
|
90
|
+
console.log(chalk.yellow('Run: uap tool-calls setup\n'));
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
execSync(`python3 "${testScript}" --verbose`, {
|
|
95
|
+
cwd: SCRIPTS_DIR,
|
|
96
|
+
stdio: 'inherit',
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
console.log(chalk.yellow('\n⚠ Test completed with some failures'));
|
|
101
|
+
console.log('Review the output above for details.\n');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function status() {
|
|
105
|
+
console.log(chalk.cyan('\n' + '='.repeat(70)));
|
|
106
|
+
console.log(chalk.bold('Qwen3.5 Tool Call Configuration Status'));
|
|
107
|
+
console.log(chalk.cyan('='.repeat(70) + '\n'));
|
|
108
|
+
// Check template
|
|
109
|
+
const templatePath = join(CONFIG_DIR, 'chat_template.jinja');
|
|
110
|
+
if (existsSync(templatePath)) {
|
|
111
|
+
const fs = await import('fs');
|
|
112
|
+
const stat = fs.statSync(templatePath);
|
|
113
|
+
console.log(chalk.green(`✓ Chat template: ${templatePath}`));
|
|
114
|
+
console.log(` Modified: ${stat.mtime.toISOString()}`);
|
|
115
|
+
console.log(` Size: ${stat.size} bytes`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(chalk.yellow(`✗ Chat template not found: ${templatePath}`));
|
|
119
|
+
console.log(' Run: uap tool-calls setup\n');
|
|
120
|
+
}
|
|
121
|
+
// Check Python scripts
|
|
122
|
+
const pythonScripts = [
|
|
123
|
+
'fix_qwen_chat_template.py',
|
|
124
|
+
'qwen_tool_call_wrapper.py',
|
|
125
|
+
'qwen_tool_call_test.py',
|
|
126
|
+
];
|
|
127
|
+
console.log(chalk.bold('\nPython Scripts:'));
|
|
128
|
+
for (const script of pythonScripts) {
|
|
129
|
+
const scriptPath = join(SCRIPTS_DIR, script);
|
|
130
|
+
if (existsSync(scriptPath)) {
|
|
131
|
+
const fs = await import('fs');
|
|
132
|
+
const stat = fs.statSync(scriptPath);
|
|
133
|
+
console.log(chalk.green(` ✓ ${script} (${stat.size} bytes)`));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
console.log(chalk.yellow(` ✗ ${script} - not found`));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Check for Python
|
|
140
|
+
try {
|
|
141
|
+
execSync('python3 --version', { stdio: 'pipe' });
|
|
142
|
+
console.log(chalk.green('\n✓ Python 3 available'));
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
console.log(chalk.yellow('\n⚠ Python 3 not found in PATH'));
|
|
146
|
+
}
|
|
147
|
+
console.log('\n' + '='.repeat(70));
|
|
148
|
+
}
|
|
149
|
+
async function fix() {
|
|
150
|
+
console.log(chalk.cyan('\n🔧 Applying Template Fixes...\n'));
|
|
151
|
+
const fixScript = join(SCRIPTS_DIR, 'fix_qwen_chat_template.py');
|
|
152
|
+
if (!existsSync(fixScript)) {
|
|
153
|
+
console.error(chalk.red(`❌ Fix script not found: ${fixScript}`));
|
|
154
|
+
console.log(chalk.yellow('Run: uap tool-calls setup\n'));
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
execSync(`python3 "${fixScript}"`, {
|
|
159
|
+
cwd: SCRIPTS_DIR,
|
|
160
|
+
stdio: 'inherit',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
console.log(chalk.yellow('\n⚠ Fix script completed\n'));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Main CLI handler
|
|
168
|
+
const command = process.argv[2];
|
|
169
|
+
switch (command) {
|
|
170
|
+
case 'setup':
|
|
171
|
+
await setup();
|
|
172
|
+
break;
|
|
173
|
+
case 'test':
|
|
174
|
+
await test();
|
|
175
|
+
break;
|
|
176
|
+
case 'status':
|
|
177
|
+
await status();
|
|
178
|
+
break;
|
|
179
|
+
case 'fix':
|
|
180
|
+
await fix();
|
|
181
|
+
break;
|
|
182
|
+
case undefined:
|
|
183
|
+
case 'help':
|
|
184
|
+
default:
|
|
185
|
+
console.log(`
|
|
186
|
+
${chalk.cyan('UAP Tool Call Setup - Qwen3.5 Tool Call Fixes')}
|
|
187
|
+
|
|
188
|
+
Usage:
|
|
189
|
+
${chalk.bold('uap tool-calls <command> [options]')}
|
|
190
|
+
|
|
191
|
+
Commands:
|
|
192
|
+
${chalk.bold('setup')} Install chat templates and Python scripts
|
|
193
|
+
${chalk.bold('test')} Run reliability test suite
|
|
194
|
+
${chalk.bold('status')} Check current configuration
|
|
195
|
+
${chalk.bold('fix')} Apply template fixes to existing templates
|
|
196
|
+
${chalk.bold('help')} Show this help message
|
|
197
|
+
|
|
198
|
+
Performance Improvement:
|
|
199
|
+
Single tool call: ~95% → ~98%
|
|
200
|
+
2-3 tool calls: ~70% → ~92%
|
|
201
|
+
5+ tool calls: ~40% → ~88%
|
|
202
|
+
Long context (50K+): ~30% → ~85%
|
|
203
|
+
|
|
204
|
+
Examples:
|
|
205
|
+
${chalk.gray('uap tool-calls setup')}
|
|
206
|
+
${chalk.gray('uap tool-calls test --verbose')}
|
|
207
|
+
${chalk.gray('uap tool-calls status')}
|
|
208
|
+
${chalk.gray('uap tool-calls fix')}
|
|
209
|
+
`);
|
|
210
|
+
}
|
|
211
|
+
export { toolCallsCommand };
|
|
212
|
+
async function toolCallsCommand() {
|
|
213
|
+
console.log(`
|
|
214
|
+
${chalk.cyan('UAP Tool Call Setup - Qwen3.5 Tool Call Fixes')}
|
|
215
|
+
|
|
216
|
+
Usage:
|
|
217
|
+
${chalk.bold('uap tool-calls <command> [options]')}
|
|
218
|
+
|
|
219
|
+
Commands:
|
|
220
|
+
${chalk.bold('setup')} Install chat templates and Python scripts
|
|
221
|
+
${chalk.bold('test')} Run reliability test suite
|
|
222
|
+
${chalk.bold('status')} Check current configuration
|
|
223
|
+
${chalk.bold('fix')} Apply template fixes to existing templates
|
|
224
|
+
${chalk.bold('help')} Show this help message
|
|
225
|
+
|
|
226
|
+
Performance Improvement:
|
|
227
|
+
Single tool call: ~95% → ~98%
|
|
228
|
+
2-3 tool calls: ~70% → ~92%
|
|
229
|
+
5+ tool calls: ~40% → ~88%
|
|
230
|
+
Long context (50K+): ~30% → ~85%
|
|
231
|
+
|
|
232
|
+
Examples:
|
|
233
|
+
${chalk.gray('uap tool-calls setup')}
|
|
234
|
+
${chalk.gray('uap tool-calls test --verbose')}
|
|
235
|
+
${chalk.gray('uap tool-calls status')}
|
|
236
|
+
${chalk.gray('uap tool-calls fix')}
|
|
237
|
+
`);
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=tool-calls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../src/cli/tool-calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UpdateOptions {
|
|
2
|
+
dryRun?: boolean;
|
|
3
|
+
skipMemory?: boolean;
|
|
4
|
+
skipQdrant?: boolean;
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
pipelineOnly?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function updateCommand(options: UpdateOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAeA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2KzE"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { existsSync, readFileSync, writeFileSync, copyFileSync, mkdirSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { createHash } from 'node:crypto';
|
|
6
|
+
import { analyzeProject } from '../analyzers/index.js';
|
|
7
|
+
import { generateClaudeMd } from '../generators/claude-md.js';
|
|
8
|
+
import { mergeClaudeMd, validateMerge } from '../utils/merge-claude-md.js';
|
|
9
|
+
import { AgentContextConfigSchema } from '../types/index.js';
|
|
10
|
+
import { initializeMemoryDatabase } from '../memory/short-term/schema.js';
|
|
11
|
+
import { getEmbeddingService } from '../memory/embeddings.js';
|
|
12
|
+
import { getMemoryConsolidator } from '../memory/memory-consolidator.js';
|
|
13
|
+
export async function updateCommand(options) {
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
const configPath = join(cwd, '.uap.json');
|
|
16
|
+
const claudeMdPath = join(cwd, 'CLAUDE.md');
|
|
17
|
+
const agentMdPath = join(cwd, 'AGENT.md');
|
|
18
|
+
console.log(chalk.bold('\n🔄 UAP Update - Preserving All Customizations\n'));
|
|
19
|
+
// Check for existing config
|
|
20
|
+
if (!existsSync(configPath)) {
|
|
21
|
+
console.log(chalk.yellow('No .uap.json found. Run `uap init` first.'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Load config
|
|
25
|
+
let config;
|
|
26
|
+
try {
|
|
27
|
+
const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
28
|
+
config = AgentContextConfigSchema.parse(raw);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error(chalk.red('Invalid .uap.json configuration'));
|
|
32
|
+
console.error(error);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Analyze project
|
|
36
|
+
const spinner = ora('Analyzing project structure...').start();
|
|
37
|
+
let analysis;
|
|
38
|
+
try {
|
|
39
|
+
analysis = await analyzeProject(cwd);
|
|
40
|
+
spinner.succeed(`Analyzed: ${analysis.projectName}`);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
spinner.fail('Failed to analyze project');
|
|
44
|
+
console.error(chalk.red(error));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Find existing CLAUDE.md or AGENT.md
|
|
48
|
+
let existingPath = null;
|
|
49
|
+
let existingContent = null;
|
|
50
|
+
if (existsSync(claudeMdPath)) {
|
|
51
|
+
existingPath = claudeMdPath;
|
|
52
|
+
existingContent = readFileSync(claudeMdPath, 'utf-8');
|
|
53
|
+
}
|
|
54
|
+
else if (existsSync(agentMdPath)) {
|
|
55
|
+
existingPath = agentMdPath;
|
|
56
|
+
existingContent = readFileSync(agentMdPath, 'utf-8');
|
|
57
|
+
}
|
|
58
|
+
if (!existingContent) {
|
|
59
|
+
console.log(chalk.yellow('No CLAUDE.md or AGENT.md found. Run `uap generate` instead.'));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Create backup before update
|
|
63
|
+
const backupPath = existingPath + '.backup.' + new Date().toISOString().replace(/[:.]/g, '-');
|
|
64
|
+
if (options.dryRun) {
|
|
65
|
+
console.log(chalk.dim(`Would create backup at: ${backupPath}`));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
copyFileSync(existingPath, backupPath);
|
|
69
|
+
console.log(chalk.dim(`Created backup: ${backupPath}`));
|
|
70
|
+
}
|
|
71
|
+
// Apply --pipeline-only flag to config if provided
|
|
72
|
+
const effectiveConfig = options.pipelineOnly
|
|
73
|
+
? {
|
|
74
|
+
...config,
|
|
75
|
+
template: {
|
|
76
|
+
extends: config.template?.extends ?? 'default',
|
|
77
|
+
sections: {
|
|
78
|
+
memorySystem: config.template?.sections?.memorySystem ?? true,
|
|
79
|
+
browserUsage: config.template?.sections?.browserUsage ?? true,
|
|
80
|
+
decisionLoop: config.template?.sections?.decisionLoop ?? true,
|
|
81
|
+
worktreeWorkflow: config.template?.sections?.worktreeWorkflow ?? true,
|
|
82
|
+
troubleshooting: config.template?.sections?.troubleshooting ?? true,
|
|
83
|
+
augmentedCapabilities: config.template?.sections?.augmentedCapabilities ?? true,
|
|
84
|
+
pipelineOnly: true,
|
|
85
|
+
benchmark: false,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
: config;
|
|
90
|
+
// Generate new content from latest template
|
|
91
|
+
const genSpinner = ora('Generating updated content from latest template...').start();
|
|
92
|
+
let newContent;
|
|
93
|
+
try {
|
|
94
|
+
newContent = await generateClaudeMd(analysis, effectiveConfig);
|
|
95
|
+
genSpinner.succeed('Generated updated content');
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
genSpinner.fail('Failed to generate new content');
|
|
99
|
+
console.error(chalk.red(error));
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Merge: New template structure + existing user content
|
|
103
|
+
const mergeSpinner = ora('Merging with existing content (preserving all customizations)...').start();
|
|
104
|
+
let mergedContent;
|
|
105
|
+
try {
|
|
106
|
+
mergedContent = mergeClaudeMd(existingContent, newContent);
|
|
107
|
+
mergeSpinner.succeed('Merged content');
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
mergeSpinner.fail('Failed to merge content');
|
|
111
|
+
console.error(chalk.red(error));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Validate merge
|
|
115
|
+
const validation = validateMerge(existingContent, mergedContent);
|
|
116
|
+
if (!validation.valid) {
|
|
117
|
+
console.log(chalk.yellow('\n Merge validation warnings:'));
|
|
118
|
+
for (const warning of validation.warnings) {
|
|
119
|
+
console.log(chalk.dim(` - ${warning}`));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Show diff summary
|
|
123
|
+
const existingLines = existingContent.split('\n').length;
|
|
124
|
+
const newLines = newContent.split('\n').length;
|
|
125
|
+
const mergedLines = mergedContent.split('\n').length;
|
|
126
|
+
console.log(chalk.bold('\n📊 Update Summary:\n'));
|
|
127
|
+
console.log(chalk.dim(` Existing file: ${existingLines} lines`));
|
|
128
|
+
console.log(chalk.dim(` New template: ${newLines} lines`));
|
|
129
|
+
console.log(chalk.dim(` Merged result: ${mergedLines} lines`));
|
|
130
|
+
// Count preserved sections
|
|
131
|
+
const existingSections = (existingContent.match(/^## /gm) || []).length;
|
|
132
|
+
const mergedSections = (mergedContent.match(/^## /gm) || []).length;
|
|
133
|
+
console.log(chalk.dim(` Sections: ${existingSections} → ${mergedSections}`));
|
|
134
|
+
if (options.dryRun) {
|
|
135
|
+
console.log(chalk.yellow('\n --dry-run: No changes made\n'));
|
|
136
|
+
// Show preview
|
|
137
|
+
console.log(chalk.dim('--- Preview (first 50 lines) ---\n'));
|
|
138
|
+
console.log(mergedContent.split('\n').slice(0, 50).join('\n'));
|
|
139
|
+
console.log(chalk.dim('\n... [truncated] ...'));
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// Write merged content
|
|
143
|
+
writeFileSync(existingPath, mergedContent);
|
|
144
|
+
console.log(chalk.green(`\n✅ Updated ${existingPath}\n`));
|
|
145
|
+
// Update memory system
|
|
146
|
+
if (!options.skipMemory) {
|
|
147
|
+
await updateMemorySystem(cwd, config, options);
|
|
148
|
+
}
|
|
149
|
+
// Update Qdrant if available
|
|
150
|
+
if (!options.skipQdrant) {
|
|
151
|
+
await updateQdrantCollection(cwd, config, options);
|
|
152
|
+
}
|
|
153
|
+
// Summary
|
|
154
|
+
console.log(chalk.bold('\n📋 Update Summary:\n'));
|
|
155
|
+
console.log('CLAUDE.md:');
|
|
156
|
+
console.log(' • All custom sections preserved');
|
|
157
|
+
console.log(' • Template structure updated');
|
|
158
|
+
console.log(' • Code Field cognitive environment (v9.0)');
|
|
159
|
+
console.log('');
|
|
160
|
+
console.log('Memory System:');
|
|
161
|
+
console.log(' • SQLite database schema updated');
|
|
162
|
+
console.log(' • Embedding service initialized');
|
|
163
|
+
console.log(' • Background consolidation ready');
|
|
164
|
+
console.log('');
|
|
165
|
+
console.log(chalk.dim(`Backup saved at: ${backupPath}`));
|
|
166
|
+
console.log(chalk.dim('If something looks wrong, restore from backup.'));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Update memory system - SQLite schema, embeddings, consolidator
|
|
170
|
+
*/
|
|
171
|
+
async function updateMemorySystem(cwd, config, options) {
|
|
172
|
+
const memSpinner = ora('Updating memory system...').start();
|
|
173
|
+
try {
|
|
174
|
+
// Ensure directories exist
|
|
175
|
+
const memoryDir = join(cwd, 'agents/data/memory');
|
|
176
|
+
if (!existsSync(memoryDir)) {
|
|
177
|
+
mkdirSync(memoryDir, { recursive: true });
|
|
178
|
+
}
|
|
179
|
+
// Initialize/update SQLite database
|
|
180
|
+
const dbPath = config.memory?.shortTerm?.path || './agents/data/memory/short_term.db';
|
|
181
|
+
const fullDbPath = join(cwd, dbPath);
|
|
182
|
+
initializeMemoryDatabase(fullDbPath);
|
|
183
|
+
// Initialize embedding service
|
|
184
|
+
const embeddingService = getEmbeddingService();
|
|
185
|
+
await embeddingService.initialize();
|
|
186
|
+
if (options.verbose) {
|
|
187
|
+
console.log(chalk.dim(` Embedding provider: ${embeddingService.getProviderName()}`));
|
|
188
|
+
console.log(chalk.dim(` Dimensions: ${embeddingService.getDimensions()}`));
|
|
189
|
+
}
|
|
190
|
+
// Initialize consolidator
|
|
191
|
+
const consolidator = getMemoryConsolidator();
|
|
192
|
+
consolidator.initialize(fullDbPath);
|
|
193
|
+
memSpinner.succeed('Memory system updated');
|
|
194
|
+
if (options.verbose) {
|
|
195
|
+
const stats = consolidator.getStats();
|
|
196
|
+
console.log(chalk.dim(` Total memories: ${stats.totalMemories}`));
|
|
197
|
+
console.log(chalk.dim(` Session memories: ${stats.totalSessionMemories}`));
|
|
198
|
+
console.log(chalk.dim(` Lessons extracted: ${stats.totalLessons}`));
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
memSpinner.warn('Memory system update had issues');
|
|
203
|
+
if (options.verbose) {
|
|
204
|
+
console.error(chalk.dim(` ${error}`));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Generate a safe collection name from project ID (matches qdrant-cloud.ts)
|
|
210
|
+
*/
|
|
211
|
+
function getProjectCollectionName(base, projectPath) {
|
|
212
|
+
const hash = createHash('sha256').update(projectPath).digest('hex').slice(0, 8);
|
|
213
|
+
const projectName = projectPath
|
|
214
|
+
.split(/[/\\]/).pop() || projectPath
|
|
215
|
+
.replace(/[^a-zA-Z0-9_-]/g, '_')
|
|
216
|
+
.slice(0, 32);
|
|
217
|
+
return `${base}_${projectName}_${hash}`;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Update Qdrant collection - handle dimension migration if needed
|
|
221
|
+
* Collections are project-scoped for data isolation
|
|
222
|
+
*/
|
|
223
|
+
async function updateQdrantCollection(cwd, config, options) {
|
|
224
|
+
const qdrantSpinner = ora('Checking Qdrant collection...').start();
|
|
225
|
+
try {
|
|
226
|
+
// Check if Qdrant is running
|
|
227
|
+
const endpoint = config.memory?.longTerm?.endpoint || 'localhost:6333';
|
|
228
|
+
const url = endpoint.startsWith('http') ? endpoint : `http://${endpoint}`;
|
|
229
|
+
const response = await fetch(`${url}/collections`, {
|
|
230
|
+
signal: AbortSignal.timeout(3000),
|
|
231
|
+
});
|
|
232
|
+
if (!response.ok) {
|
|
233
|
+
qdrantSpinner.info('Qdrant not available (optional)');
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const data = await response.json();
|
|
237
|
+
const baseCollection = config.memory?.longTerm?.collection || 'agent_memory';
|
|
238
|
+
const projectId = config.project?.name || cwd;
|
|
239
|
+
// Generate project-scoped collection name
|
|
240
|
+
const collection = getProjectCollectionName(baseCollection, projectId);
|
|
241
|
+
if (options.verbose) {
|
|
242
|
+
console.log(chalk.dim(` Project-scoped collection: ${collection}`));
|
|
243
|
+
}
|
|
244
|
+
// Check collection dimensions
|
|
245
|
+
const collectionExists = data.result.collections.some(c => c.name === collection);
|
|
246
|
+
if (collectionExists) {
|
|
247
|
+
const collectionInfo = await fetch(`${url}/collections/${collection}`);
|
|
248
|
+
const info = await collectionInfo.json();
|
|
249
|
+
const currentSize = info.result?.config?.params?.vectors?.size;
|
|
250
|
+
// Get expected dimensions from embedding service
|
|
251
|
+
const embeddingService = getEmbeddingService();
|
|
252
|
+
await embeddingService.initialize();
|
|
253
|
+
const expectedSize = embeddingService.getDimensions();
|
|
254
|
+
if (currentSize && currentSize !== expectedSize) {
|
|
255
|
+
qdrantSpinner.text = `Migrating collection (${currentSize} → ${expectedSize} dimensions)...`;
|
|
256
|
+
// Create new collection with correct dimensions
|
|
257
|
+
const newCollection = `${collection}_v${expectedSize}`;
|
|
258
|
+
const newExists = data.result.collections.some(c => c.name === newCollection);
|
|
259
|
+
if (!newExists) {
|
|
260
|
+
await fetch(`${url}/collections/${newCollection}`, {
|
|
261
|
+
method: 'PUT',
|
|
262
|
+
headers: { 'Content-Type': 'application/json' },
|
|
263
|
+
body: JSON.stringify({
|
|
264
|
+
vectors: { size: expectedSize, distance: 'Cosine' },
|
|
265
|
+
}),
|
|
266
|
+
});
|
|
267
|
+
qdrantSpinner.succeed(`Created new collection: ${newCollection} (${expectedSize} dims)`);
|
|
268
|
+
console.log(chalk.dim(` Old collection ${collection} preserved for reference`));
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
qdrantSpinner.succeed(`Collection ${newCollection} already exists with correct dimensions`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
qdrantSpinner.succeed(`Qdrant collection OK (${currentSize} dimensions)`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
// Create collection with correct dimensions
|
|
280
|
+
const embeddingService = getEmbeddingService();
|
|
281
|
+
await embeddingService.initialize();
|
|
282
|
+
const expectedSize = embeddingService.getDimensions();
|
|
283
|
+
await fetch(`${url}/collections/${collection}`, {
|
|
284
|
+
method: 'PUT',
|
|
285
|
+
headers: { 'Content-Type': 'application/json' },
|
|
286
|
+
body: JSON.stringify({
|
|
287
|
+
vectors: { size: expectedSize, distance: 'Cosine' },
|
|
288
|
+
}),
|
|
289
|
+
});
|
|
290
|
+
qdrantSpinner.succeed(`Created Qdrant collection: ${collection} (${expectedSize} dims)`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
qdrantSpinner.info('Qdrant not available (run `uap memory start` to enable)');
|
|
295
|
+
if (options.verbose) {
|
|
296
|
+
console.log(chalk.dim(` ${error}`));
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export interface BarSegment {
|
|
2
|
+
value: number;
|
|
3
|
+
color: (text: string) => string;
|
|
4
|
+
label?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TableColumn {
|
|
7
|
+
key: string;
|
|
8
|
+
header: string;
|
|
9
|
+
width?: number;
|
|
10
|
+
align?: 'left' | 'right' | 'center';
|
|
11
|
+
color?: (text: string) => string;
|
|
12
|
+
}
|
|
13
|
+
export interface SparklineOptions {
|
|
14
|
+
width?: number;
|
|
15
|
+
min?: number;
|
|
16
|
+
max?: number;
|
|
17
|
+
color?: (text: string) => string;
|
|
18
|
+
}
|
|
19
|
+
export interface TreeNode {
|
|
20
|
+
label: string;
|
|
21
|
+
children?: TreeNode[];
|
|
22
|
+
status?: string;
|
|
23
|
+
meta?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function progressBar(current: number, total: number, width?: number, options?: {
|
|
26
|
+
filled?: (text: string) => string;
|
|
27
|
+
empty?: (text: string) => string;
|
|
28
|
+
showPercent?: boolean;
|
|
29
|
+
showCount?: boolean;
|
|
30
|
+
label?: string;
|
|
31
|
+
}): string;
|
|
32
|
+
export declare function stackedBar(segments: BarSegment[], total: number, width?: number): string;
|
|
33
|
+
export declare function stackedBarLegend(segments: BarSegment[]): string;
|
|
34
|
+
export declare function horizontalBarChart(data: Array<{
|
|
35
|
+
label: string;
|
|
36
|
+
value: number;
|
|
37
|
+
color?: (text: string) => string;
|
|
38
|
+
}>, options?: {
|
|
39
|
+
maxWidth?: number;
|
|
40
|
+
maxLabelWidth?: number;
|
|
41
|
+
}): string[];
|
|
42
|
+
export declare function sparkline(values: number[], options?: SparklineOptions): string;
|
|
43
|
+
export declare function table(rows: Record<string, unknown>[], columns: TableColumn[]): string[];
|
|
44
|
+
export declare function tree(node: TreeNode, prefix?: string, isLast?: boolean): string[];
|
|
45
|
+
export declare function box(title: string, content: string[], options?: {
|
|
46
|
+
width?: number;
|
|
47
|
+
borderColor?: (text: string) => string;
|
|
48
|
+
}): string[];
|
|
49
|
+
export declare function sectionHeader(title: string, width?: number): string;
|
|
50
|
+
export declare function keyValue(pairs: Array<[string, string | number]>, options?: {
|
|
51
|
+
keyWidth?: number;
|
|
52
|
+
indent?: number;
|
|
53
|
+
}): string[];
|
|
54
|
+
export declare function percentage(value: number, total: number): string;
|
|
55
|
+
export declare function trend(current: number, previous: number): string;
|
|
56
|
+
export declare function miniGauge(value: number, max: number, width?: number): string;
|
|
57
|
+
export declare function statusBadge(status: string): string;
|
|
58
|
+
export declare function divider(width?: number, char?: string): string;
|
|
59
|
+
export declare function bulletList(items: Array<{
|
|
60
|
+
text: string;
|
|
61
|
+
status?: 'ok' | 'warn' | 'error' | 'info';
|
|
62
|
+
}>, indent?: number): string[];
|
|
63
|
+
export declare function columns(left: string[], right: string[], options?: {
|
|
64
|
+
gap?: number;
|
|
65
|
+
leftWidth?: number;
|
|
66
|
+
}): string[];
|
|
67
|
+
export declare function inlineProgressSummary(stats: {
|
|
68
|
+
total: number;
|
|
69
|
+
byStatus: Record<string, number>;
|
|
70
|
+
blocked: number;
|
|
71
|
+
ready: number;
|
|
72
|
+
}): string[];
|
|
73
|
+
export declare function heatmapRow(label: string, values: number[], options?: {
|
|
74
|
+
max?: number;
|
|
75
|
+
labelWidth?: number;
|
|
76
|
+
}): string;
|
|
77
|
+
//# sourceMappingURL=visualize.d.ts.map
|