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 @@
|
|
|
1
|
+
{"version":3,"file":"visualize.d.ts","sourceRoot":"","sources":["../../src/cli/visualize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
const BRAILLE_DOTS = [' ', '⠄', '⠤', '⠴', '⠶', '⠷', '⠿', '⡿', '⣿'];
|
|
3
|
+
export function progressBar(current, total, width = 30, options = {}) {
|
|
4
|
+
const { filled = chalk.green, empty = chalk.dim, showPercent = true, showCount = true, label, } = options;
|
|
5
|
+
const ratio = total > 0 ? Math.min(current / total, 1) : 0;
|
|
6
|
+
const filledWidth = Math.round(ratio * width);
|
|
7
|
+
const emptyWidth = width - filledWidth;
|
|
8
|
+
const filledPart = filled('█'.repeat(filledWidth));
|
|
9
|
+
const emptyPart = empty('░'.repeat(emptyWidth));
|
|
10
|
+
const parts = [];
|
|
11
|
+
if (label)
|
|
12
|
+
parts.push(chalk.bold(label));
|
|
13
|
+
parts.push(`${filledPart}${emptyPart}`);
|
|
14
|
+
if (showPercent)
|
|
15
|
+
parts.push(chalk.bold(`${Math.round(ratio * 100)}%`));
|
|
16
|
+
if (showCount)
|
|
17
|
+
parts.push(chalk.dim(`(${current}/${total})`));
|
|
18
|
+
return parts.join(' ');
|
|
19
|
+
}
|
|
20
|
+
export function stackedBar(segments, total, width = 40) {
|
|
21
|
+
if (total === 0)
|
|
22
|
+
return chalk.dim('░'.repeat(width));
|
|
23
|
+
let result = '';
|
|
24
|
+
let usedWidth = 0;
|
|
25
|
+
for (let i = 0; i < segments.length; i++) {
|
|
26
|
+
const seg = segments[i];
|
|
27
|
+
const segWidth = i === segments.length - 1
|
|
28
|
+
? width - usedWidth
|
|
29
|
+
: Math.round((seg.value / total) * width);
|
|
30
|
+
if (segWidth > 0) {
|
|
31
|
+
result += seg.color('█'.repeat(Math.min(segWidth, width - usedWidth)));
|
|
32
|
+
usedWidth += segWidth;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (usedWidth < width) {
|
|
36
|
+
result += chalk.dim('░'.repeat(width - usedWidth));
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
export function stackedBarLegend(segments) {
|
|
41
|
+
return segments
|
|
42
|
+
.filter(s => s.value > 0)
|
|
43
|
+
.map(s => `${s.color('██')} ${s.label || ''} ${chalk.bold(String(s.value))}`)
|
|
44
|
+
.join(' ');
|
|
45
|
+
}
|
|
46
|
+
export function horizontalBarChart(data, options = {}) {
|
|
47
|
+
const { maxWidth = 40, maxLabelWidth = 15 } = options;
|
|
48
|
+
const maxValue = Math.max(...data.map(d => d.value), 1);
|
|
49
|
+
const lines = [];
|
|
50
|
+
for (const item of data) {
|
|
51
|
+
const barWidth = Math.round((item.value / maxValue) * maxWidth);
|
|
52
|
+
const color = item.color || chalk.blue;
|
|
53
|
+
const label = item.label.padEnd(maxLabelWidth).slice(0, maxLabelWidth);
|
|
54
|
+
const bar = color('█'.repeat(Math.max(barWidth, 0)));
|
|
55
|
+
const value = chalk.bold(String(item.value));
|
|
56
|
+
lines.push(` ${chalk.dim(label)} ${bar} ${value}`);
|
|
57
|
+
}
|
|
58
|
+
return lines;
|
|
59
|
+
}
|
|
60
|
+
export function sparkline(values, options = {}) {
|
|
61
|
+
const { width, color = chalk.green } = options;
|
|
62
|
+
const data = width && values.length > width
|
|
63
|
+
? downsample(values, width)
|
|
64
|
+
: values;
|
|
65
|
+
if (data.length === 0)
|
|
66
|
+
return '';
|
|
67
|
+
const min = options.min ?? Math.min(...data);
|
|
68
|
+
const max = options.max ?? Math.max(...data);
|
|
69
|
+
const range = max - min || 1;
|
|
70
|
+
return color(data
|
|
71
|
+
.map(v => {
|
|
72
|
+
const idx = Math.round(((v - min) / range) * (BRAILLE_DOTS.length - 1));
|
|
73
|
+
return BRAILLE_DOTS[Math.max(0, Math.min(idx, BRAILLE_DOTS.length - 1))];
|
|
74
|
+
})
|
|
75
|
+
.join(''));
|
|
76
|
+
}
|
|
77
|
+
function downsample(values, targetLen) {
|
|
78
|
+
const result = [];
|
|
79
|
+
const step = values.length / targetLen;
|
|
80
|
+
for (let i = 0; i < targetLen; i++) {
|
|
81
|
+
const start = Math.floor(i * step);
|
|
82
|
+
const end = Math.floor((i + 1) * step);
|
|
83
|
+
const slice = values.slice(start, end);
|
|
84
|
+
result.push(slice.reduce((a, b) => a + b, 0) / slice.length);
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
export function table(rows, columns) {
|
|
89
|
+
const colWidths = columns.map(col => {
|
|
90
|
+
if (col.width)
|
|
91
|
+
return col.width;
|
|
92
|
+
const headerLen = col.header.length;
|
|
93
|
+
const maxDataLen = Math.max(...rows.map(r => String(r[col.key] ?? '').length), 0);
|
|
94
|
+
return Math.max(headerLen, maxDataLen) + 2;
|
|
95
|
+
});
|
|
96
|
+
const lines = [];
|
|
97
|
+
const headerLine = columns
|
|
98
|
+
.map((col, i) => padCell(col.header, colWidths[i], col.align || 'left'))
|
|
99
|
+
.join(chalk.dim(' │ '));
|
|
100
|
+
lines.push(` ${chalk.bold(headerLine)}`);
|
|
101
|
+
const separator = colWidths.map(w => '─'.repeat(w)).join(chalk.dim('─┼─'));
|
|
102
|
+
lines.push(` ${chalk.dim(separator)}`);
|
|
103
|
+
for (const row of rows) {
|
|
104
|
+
const rowLine = columns
|
|
105
|
+
.map((col, i) => {
|
|
106
|
+
const val = String(row[col.key] ?? '');
|
|
107
|
+
const padded = padCell(val, colWidths[i], col.align || 'left');
|
|
108
|
+
return col.color ? col.color(padded) : padded;
|
|
109
|
+
})
|
|
110
|
+
.join(chalk.dim(' │ '));
|
|
111
|
+
lines.push(` ${rowLine}`);
|
|
112
|
+
}
|
|
113
|
+
return lines;
|
|
114
|
+
}
|
|
115
|
+
function padCell(text, width, align) {
|
|
116
|
+
const stripped = stripAnsi(text);
|
|
117
|
+
const pad = Math.max(0, width - stripped.length);
|
|
118
|
+
switch (align) {
|
|
119
|
+
case 'right':
|
|
120
|
+
return ' '.repeat(pad) + text;
|
|
121
|
+
case 'center': {
|
|
122
|
+
const left = Math.floor(pad / 2);
|
|
123
|
+
const right = pad - left;
|
|
124
|
+
return ' '.repeat(left) + text + ' '.repeat(right);
|
|
125
|
+
}
|
|
126
|
+
default:
|
|
127
|
+
return text + ' '.repeat(pad);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function stripAnsi(str) {
|
|
131
|
+
// eslint-disable-next-line no-control-regex
|
|
132
|
+
return str.replace(/\x1b\[[0-9;]*m/g, '');
|
|
133
|
+
}
|
|
134
|
+
export function tree(node, prefix = '', isLast = true) {
|
|
135
|
+
const lines = [];
|
|
136
|
+
const connector = isLast ? '└── ' : '├── ';
|
|
137
|
+
const statusIcon = node.status ? `${node.status} ` : '';
|
|
138
|
+
const meta = node.meta ? chalk.dim(` (${node.meta})`) : '';
|
|
139
|
+
lines.push(`${prefix}${connector}${statusIcon}${node.label}${meta}`);
|
|
140
|
+
if (node.children) {
|
|
141
|
+
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
142
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
143
|
+
const childLines = tree(node.children[i], childPrefix, i === node.children.length - 1);
|
|
144
|
+
lines.push(...childLines);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return lines;
|
|
148
|
+
}
|
|
149
|
+
export function box(title, content, options = {}) {
|
|
150
|
+
const { borderColor = chalk.dim } = options;
|
|
151
|
+
const maxContentWidth = Math.max(title.length + 2, ...content.map(l => stripAnsi(l).length));
|
|
152
|
+
const width = options.width || maxContentWidth + 4;
|
|
153
|
+
const innerWidth = width - 2;
|
|
154
|
+
const lines = [];
|
|
155
|
+
lines.push(borderColor(`╭${'─'.repeat(innerWidth)}╮`));
|
|
156
|
+
lines.push(borderColor('│') + ` ${chalk.bold(title)}${' '.repeat(Math.max(0, innerWidth - title.length - 1))}` + borderColor('│'));
|
|
157
|
+
lines.push(borderColor(`├${'─'.repeat(innerWidth)}┤`));
|
|
158
|
+
for (const line of content) {
|
|
159
|
+
const stripped = stripAnsi(line);
|
|
160
|
+
const pad = Math.max(0, innerWidth - stripped.length - 1);
|
|
161
|
+
lines.push(borderColor('│') + ` ${line}${' '.repeat(pad)}` + borderColor('│'));
|
|
162
|
+
}
|
|
163
|
+
lines.push(borderColor(`╰${'─'.repeat(innerWidth)}╯`));
|
|
164
|
+
return lines;
|
|
165
|
+
}
|
|
166
|
+
export function sectionHeader(title, width = 60) {
|
|
167
|
+
const padLen = Math.max(0, width - title.length - 4);
|
|
168
|
+
return chalk.bold.cyan(`── ${title} ${'─'.repeat(padLen)}`);
|
|
169
|
+
}
|
|
170
|
+
export function keyValue(pairs, options = {}) {
|
|
171
|
+
const { keyWidth = 18, indent = 2 } = options;
|
|
172
|
+
const pad = ' '.repeat(indent);
|
|
173
|
+
return pairs.map(([key, value]) => {
|
|
174
|
+
const paddedKey = key.padEnd(keyWidth);
|
|
175
|
+
return `${pad}${chalk.dim(paddedKey)} ${chalk.bold(String(value))}`;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
export function percentage(value, total) {
|
|
179
|
+
if (total === 0)
|
|
180
|
+
return chalk.dim('N/A');
|
|
181
|
+
const pct = Math.round((value / total) * 100);
|
|
182
|
+
const color = pct >= 80 ? chalk.green : pct >= 50 ? chalk.yellow : chalk.red;
|
|
183
|
+
return color(`${pct}%`);
|
|
184
|
+
}
|
|
185
|
+
export function trend(current, previous) {
|
|
186
|
+
if (current > previous)
|
|
187
|
+
return chalk.green(`▲ +${current - previous}`);
|
|
188
|
+
if (current < previous)
|
|
189
|
+
return chalk.red(`▼ -${previous - current}`);
|
|
190
|
+
return chalk.dim('─ 0');
|
|
191
|
+
}
|
|
192
|
+
export function miniGauge(value, max, width = 10) {
|
|
193
|
+
const ratio = Math.min(value / Math.max(max, 1), 1);
|
|
194
|
+
const filled = Math.round(ratio * width);
|
|
195
|
+
const color = ratio >= 0.8 ? chalk.green : ratio >= 0.5 ? chalk.yellow : ratio >= 0.25 ? chalk.hex('#FF8800') : chalk.red;
|
|
196
|
+
return color('▓'.repeat(filled)) + chalk.dim('░'.repeat(width - filled));
|
|
197
|
+
}
|
|
198
|
+
export function statusBadge(status) {
|
|
199
|
+
const badges = {
|
|
200
|
+
active: chalk.bgGreen.black(' ACTIVE '),
|
|
201
|
+
idle: chalk.bgYellow.black(' IDLE '),
|
|
202
|
+
done: chalk.bgBlue.white(' DONE '),
|
|
203
|
+
failed: chalk.bgRed.white(' FAILED '),
|
|
204
|
+
blocked: chalk.bgRed.white(' BLOCKED '),
|
|
205
|
+
open: chalk.bgWhite.black(' OPEN '),
|
|
206
|
+
in_progress: chalk.bgCyan.black(' IN PROGRESS '),
|
|
207
|
+
wont_do: chalk.bgGray.white(' WONT DO '),
|
|
208
|
+
running: chalk.bgGreen.black(' RUNNING '),
|
|
209
|
+
stopped: chalk.bgRed.white(' STOPPED '),
|
|
210
|
+
not_available: chalk.bgGray.white(' N/A '),
|
|
211
|
+
};
|
|
212
|
+
return badges[status] || chalk.dim(`[${status}]`);
|
|
213
|
+
}
|
|
214
|
+
export function divider(width = 60, char = '─') {
|
|
215
|
+
return chalk.dim(char.repeat(width));
|
|
216
|
+
}
|
|
217
|
+
export function bulletList(items, indent = 2) {
|
|
218
|
+
const pad = ' '.repeat(indent);
|
|
219
|
+
const icons = {
|
|
220
|
+
ok: chalk.green('●'),
|
|
221
|
+
warn: chalk.yellow('●'),
|
|
222
|
+
error: chalk.red('●'),
|
|
223
|
+
info: chalk.blue('●'),
|
|
224
|
+
};
|
|
225
|
+
return items.map(item => {
|
|
226
|
+
const icon = icons[item.status || 'info'];
|
|
227
|
+
return `${pad}${icon} ${item.text}`;
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
export function columns(left, right, options = {}) {
|
|
231
|
+
const { gap = 4, leftWidth = 35 } = options;
|
|
232
|
+
const maxLen = Math.max(left.length, right.length);
|
|
233
|
+
const lines = [];
|
|
234
|
+
for (let i = 0; i < maxLen; i++) {
|
|
235
|
+
const l = left[i] || '';
|
|
236
|
+
const r = right[i] || '';
|
|
237
|
+
const strippedL = stripAnsi(l);
|
|
238
|
+
const pad = Math.max(0, leftWidth - strippedL.length) + gap;
|
|
239
|
+
lines.push(`${l}${' '.repeat(pad)}${r}`);
|
|
240
|
+
}
|
|
241
|
+
return lines;
|
|
242
|
+
}
|
|
243
|
+
export function inlineProgressSummary(stats) {
|
|
244
|
+
const done = (stats.byStatus['done'] || 0) + (stats.byStatus['wont_do'] || 0);
|
|
245
|
+
const inProg = stats.byStatus['in_progress'] || 0;
|
|
246
|
+
const open = stats.byStatus['open'] || 0;
|
|
247
|
+
const blocked = stats.byStatus['blocked'] || 0;
|
|
248
|
+
const total = stats.total;
|
|
249
|
+
const pct = total > 0 ? Math.round((done / total) * 100) : 0;
|
|
250
|
+
const pctColor = pct >= 80 ? chalk.green : pct >= 50 ? chalk.yellow : chalk.red;
|
|
251
|
+
const barWidth = 30;
|
|
252
|
+
const doneW = total > 0 ? Math.round((done / total) * barWidth) : 0;
|
|
253
|
+
const progW = total > 0 ? Math.round((inProg / total) * barWidth) : 0;
|
|
254
|
+
const blockW = total > 0 ? Math.round((blocked / total) * barWidth) : 0;
|
|
255
|
+
const openW = Math.max(0, barWidth - doneW - progW - blockW);
|
|
256
|
+
const bar = chalk.green('█'.repeat(doneW)) +
|
|
257
|
+
chalk.cyan('█'.repeat(progW)) +
|
|
258
|
+
chalk.red('█'.repeat(blockW)) +
|
|
259
|
+
chalk.white('█'.repeat(openW));
|
|
260
|
+
const lines = [];
|
|
261
|
+
lines.push(chalk.dim('─'.repeat(50)));
|
|
262
|
+
lines.push(`${bar} ${pctColor(chalk.bold(pct + '%'))} ` +
|
|
263
|
+
chalk.dim(`${done}`) + chalk.green('✓') + chalk.dim(' ') +
|
|
264
|
+
chalk.dim(`${inProg}`) + chalk.cyan('◐') + chalk.dim(' ') +
|
|
265
|
+
(blocked > 0 ? chalk.dim(`${blocked}`) + chalk.red('❄') + chalk.dim(' ') : '') +
|
|
266
|
+
chalk.dim(`${open}○`) +
|
|
267
|
+
chalk.dim(` / ${total}`));
|
|
268
|
+
return lines;
|
|
269
|
+
}
|
|
270
|
+
export function heatmapRow(label, values, options = {}) {
|
|
271
|
+
const { labelWidth = 12 } = options;
|
|
272
|
+
const max = options.max ?? Math.max(...values, 1);
|
|
273
|
+
const colors = [
|
|
274
|
+
chalk.bgGray.dim,
|
|
275
|
+
chalk.bgGreen.dim,
|
|
276
|
+
chalk.bgGreenBright.dim,
|
|
277
|
+
chalk.bgYellow.dim,
|
|
278
|
+
chalk.bgYellowBright.dim,
|
|
279
|
+
chalk.bgRedBright.dim,
|
|
280
|
+
];
|
|
281
|
+
const cells = values.map(v => {
|
|
282
|
+
const idx = Math.min(Math.floor((v / max) * (colors.length - 1)), colors.length - 1);
|
|
283
|
+
return colors[idx](' ');
|
|
284
|
+
}).join('');
|
|
285
|
+
return ` ${chalk.dim(label.padEnd(labelWidth))} ${cells}`;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=visualize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visualize.js","sourceRoot":"","sources":["../../src/cli/visualize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type WorktreeAction = 'create' | 'list' | 'pr' | 'cleanup';
|
|
2
|
+
interface WorktreeOptions {
|
|
3
|
+
slug?: string;
|
|
4
|
+
id?: string;
|
|
5
|
+
draft?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function worktreeCommand(action: WorktreeAction, options?: WorktreeOptions): Promise<void>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/cli/worktree.ts"],"names":[],"mappings":"AAMA,KAAK,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3D,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { existsSync, readdirSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { simpleGit } from 'simple-git';
|
|
6
|
+
export async function worktreeCommand(action, options = {}) {
|
|
7
|
+
const cwd = process.cwd();
|
|
8
|
+
const git = simpleGit(cwd);
|
|
9
|
+
// Check if we're in a git repo
|
|
10
|
+
const isRepo = await git.checkIsRepo();
|
|
11
|
+
if (!isRepo) {
|
|
12
|
+
console.error(chalk.red('Not a git repository'));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
switch (action) {
|
|
16
|
+
case 'create':
|
|
17
|
+
await createWorktree(cwd, git, options.slug);
|
|
18
|
+
break;
|
|
19
|
+
case 'list':
|
|
20
|
+
await listWorktrees(cwd, git);
|
|
21
|
+
break;
|
|
22
|
+
case 'pr':
|
|
23
|
+
await createPR(cwd, git, options.id, options.draft);
|
|
24
|
+
break;
|
|
25
|
+
case 'cleanup':
|
|
26
|
+
await cleanupWorktree(cwd, git, options.id);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function getNextId(cwd) {
|
|
31
|
+
const worktreesDir = join(cwd, '.worktrees');
|
|
32
|
+
if (!existsSync(worktreesDir)) {
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
35
|
+
const entries = readdirSync(worktreesDir);
|
|
36
|
+
const ids = entries
|
|
37
|
+
.map((e) => parseInt(e.split('-')[0]))
|
|
38
|
+
.filter((n) => !isNaN(n));
|
|
39
|
+
return ids.length > 0 ? Math.max(...ids) + 1 : 1;
|
|
40
|
+
}
|
|
41
|
+
async function createWorktree(cwd, git, slug) {
|
|
42
|
+
const spinner = ora('Creating worktree...').start();
|
|
43
|
+
try {
|
|
44
|
+
// Get next ID
|
|
45
|
+
const id = await getNextId(cwd);
|
|
46
|
+
const paddedId = String(id).padStart(3, '0');
|
|
47
|
+
const worktreeName = `${paddedId}-${slug}`;
|
|
48
|
+
const branchName = `feature/${worktreeName}`;
|
|
49
|
+
const worktreePath = join(cwd, '.worktrees', worktreeName);
|
|
50
|
+
// Get current branch (base)
|
|
51
|
+
const currentBranch = await git.revparse(['--abbrev-ref', 'HEAD']);
|
|
52
|
+
// Create worktree with new branch
|
|
53
|
+
spinner.text = `Creating branch ${branchName}...`;
|
|
54
|
+
await git.raw(['worktree', 'add', '-b', branchName, worktreePath, currentBranch.trim()]);
|
|
55
|
+
spinner.succeed(`Created worktree: ${worktreeName}`);
|
|
56
|
+
console.log(chalk.dim(` Branch: ${branchName}`));
|
|
57
|
+
console.log(chalk.dim(` Path: ${worktreePath}`));
|
|
58
|
+
console.log('');
|
|
59
|
+
console.log(chalk.bold('Next steps:'));
|
|
60
|
+
console.log(` cd .worktrees/${worktreeName}`);
|
|
61
|
+
console.log(' # Make your changes');
|
|
62
|
+
console.log(` uap worktree pr ${id}`);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
spinner.fail('Failed to create worktree');
|
|
66
|
+
console.error(chalk.red(error));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function listWorktrees(_cwd, git) {
|
|
70
|
+
console.log(chalk.bold('\n📁 Git Worktrees\n'));
|
|
71
|
+
try {
|
|
72
|
+
const worktrees = await git.raw(['worktree', 'list', '--porcelain']);
|
|
73
|
+
const entries = worktrees.split('\n\n').filter(Boolean);
|
|
74
|
+
if (entries.length <= 1) {
|
|
75
|
+
console.log(chalk.yellow('No additional worktrees found.'));
|
|
76
|
+
console.log(chalk.dim('Create one with: uap worktree create <slug>'));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
console.log('| ID | Name | Branch | Path |');
|
|
80
|
+
console.log('|-----|------|--------|------|');
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
const lines = entry.split('\n');
|
|
83
|
+
const path = lines.find((l) => l.startsWith('worktree '))?.replace('worktree ', '');
|
|
84
|
+
const branch = lines.find((l) => l.startsWith('branch '))?.replace('branch refs/heads/', '');
|
|
85
|
+
if (path && path.includes('.worktrees')) {
|
|
86
|
+
const name = path.split('.worktrees/')[1];
|
|
87
|
+
const id = name?.split('-')[0] || '-';
|
|
88
|
+
console.log(`| ${id} | ${name} | ${branch || 'detached'} | ${path} |`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
console.log('');
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error(chalk.red('Failed to list worktrees'));
|
|
95
|
+
console.error(error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function createPR(cwd, _git, id, draft) {
|
|
99
|
+
const spinner = ora('Creating pull request...').start();
|
|
100
|
+
try {
|
|
101
|
+
// Find worktree by ID
|
|
102
|
+
const worktreesDir = join(cwd, '.worktrees');
|
|
103
|
+
const entries = readdirSync(worktreesDir);
|
|
104
|
+
const worktree = entries.find((e) => e.startsWith(`${id.padStart(3, '0')}-`));
|
|
105
|
+
if (!worktree) {
|
|
106
|
+
spinner.fail(`Worktree with ID ${id} not found`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const worktreePath = join(worktreesDir, worktree);
|
|
110
|
+
const worktreeGit = simpleGit(worktreePath);
|
|
111
|
+
// Get branch name
|
|
112
|
+
const branch = await worktreeGit.revparse(['--abbrev-ref', 'HEAD']);
|
|
113
|
+
// Push branch
|
|
114
|
+
spinner.text = 'Pushing branch...';
|
|
115
|
+
await worktreeGit.push(['-u', 'origin', branch.trim()]);
|
|
116
|
+
// Create PR using gh CLI
|
|
117
|
+
spinner.text = 'Creating PR...';
|
|
118
|
+
const { execSync } = await import('child_process');
|
|
119
|
+
const draftFlag = draft ? '--draft' : '';
|
|
120
|
+
const prCommand = `gh pr create --fill ${draftFlag}`;
|
|
121
|
+
try {
|
|
122
|
+
const result = execSync(prCommand, { cwd: worktreePath, encoding: 'utf-8' });
|
|
123
|
+
spinner.succeed('Pull request created');
|
|
124
|
+
console.log(chalk.dim(result.trim()));
|
|
125
|
+
}
|
|
126
|
+
catch (ghError) {
|
|
127
|
+
spinner.warn('Branch pushed, but PR creation failed');
|
|
128
|
+
console.log(chalk.yellow('Create PR manually or ensure `gh` CLI is installed and authenticated'));
|
|
129
|
+
console.log(chalk.dim(`Branch: ${branch.trim()}`));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
spinner.fail('Failed to create PR');
|
|
134
|
+
console.error(chalk.red(error));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function cleanupWorktree(cwd, git, id) {
|
|
138
|
+
const spinner = ora('Cleaning up worktree...').start();
|
|
139
|
+
try {
|
|
140
|
+
// Find worktree by ID
|
|
141
|
+
const worktreesDir = join(cwd, '.worktrees');
|
|
142
|
+
const entries = readdirSync(worktreesDir);
|
|
143
|
+
const worktree = entries.find((e) => e.startsWith(`${id.padStart(3, '0')}-`));
|
|
144
|
+
if (!worktree) {
|
|
145
|
+
spinner.fail(`Worktree with ID ${id} not found`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const worktreePath = join(worktreesDir, worktree);
|
|
149
|
+
const branchName = `feature/${worktree}`;
|
|
150
|
+
// Remove worktree
|
|
151
|
+
spinner.text = 'Removing worktree...';
|
|
152
|
+
await git.raw(['worktree', 'remove', worktreePath, '--force']);
|
|
153
|
+
// Delete branch
|
|
154
|
+
spinner.text = 'Deleting branch...';
|
|
155
|
+
try {
|
|
156
|
+
await git.deleteLocalBranch(branchName, true);
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// Branch may already be deleted
|
|
160
|
+
}
|
|
161
|
+
// Try to delete remote branch
|
|
162
|
+
try {
|
|
163
|
+
await git.push(['origin', '--delete', branchName]);
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// Remote branch may not exist
|
|
167
|
+
}
|
|
168
|
+
spinner.succeed(`Cleaned up: ${worktree}`);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
spinner.fail('Failed to cleanup worktree');
|
|
172
|
+
console.error(chalk.red(error));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=worktree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/cli/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { AgentRegistryEntry } from '../types/coordination.js';
|
|
2
|
+
import type { Task, TaskType } from '../tasks/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Agent capability definitions for intelligent task routing.
|
|
5
|
+
*/
|
|
6
|
+
export type AgentCapability = 'typescript' | 'javascript' | 'python' | 'rust' | 'go' | 'cpp' | 'java' | 'cli' | 'frontend' | 'backend' | 'database' | 'security' | 'performance' | 'documentation' | 'testing' | 'devops' | 'infrastructure' | 'code-review' | 'refactoring';
|
|
7
|
+
/**
|
|
8
|
+
* Droid/skill mapping for capability routing.
|
|
9
|
+
*/
|
|
10
|
+
export interface CapabilityMapping {
|
|
11
|
+
capability: AgentCapability;
|
|
12
|
+
droids: string[];
|
|
13
|
+
skills: string[];
|
|
14
|
+
filePatterns: string[];
|
|
15
|
+
taskTypes: TaskType[];
|
|
16
|
+
priority: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Default capability mappings for UAP droids and skills.
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_CAPABILITY_MAPPINGS: CapabilityMapping[];
|
|
22
|
+
export interface RoutingResult {
|
|
23
|
+
recommendedDroids: string[];
|
|
24
|
+
recommendedSkills: string[];
|
|
25
|
+
matchedCapabilities: AgentCapability[];
|
|
26
|
+
confidence: number;
|
|
27
|
+
reasoning: string;
|
|
28
|
+
}
|
|
29
|
+
export interface AgentMatch {
|
|
30
|
+
agent: AgentRegistryEntry;
|
|
31
|
+
matchedCapabilities: AgentCapability[];
|
|
32
|
+
score: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Capability-based router for intelligent task and agent routing.
|
|
36
|
+
*/
|
|
37
|
+
export declare class CapabilityRouter {
|
|
38
|
+
private mappings;
|
|
39
|
+
constructor(customMappings?: CapabilityMapping[]);
|
|
40
|
+
/**
|
|
41
|
+
* Route a task to the best droids/skills based on task content and affected files.
|
|
42
|
+
*/
|
|
43
|
+
routeTask(task: Task, affectedFiles?: string[]): RoutingResult;
|
|
44
|
+
/**
|
|
45
|
+
* Find the best agent for a task based on capabilities.
|
|
46
|
+
*/
|
|
47
|
+
findBestAgent(task: Task, availableAgents: AgentRegistryEntry[], affectedFiles?: string[]): AgentMatch | null;
|
|
48
|
+
/**
|
|
49
|
+
* Route files to appropriate capabilities.
|
|
50
|
+
*/
|
|
51
|
+
routeFiles(files: string[]): Map<AgentCapability, string[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Get recommended parallel review droids for a set of files.
|
|
54
|
+
*/
|
|
55
|
+
getParallelReviewDroids(files: string[]): string[];
|
|
56
|
+
/**
|
|
57
|
+
* Match files against a glob-like pattern.
|
|
58
|
+
*/
|
|
59
|
+
private matchesPattern;
|
|
60
|
+
/**
|
|
61
|
+
* Convert glob pattern to regex.
|
|
62
|
+
*/
|
|
63
|
+
private patternToRegex;
|
|
64
|
+
/**
|
|
65
|
+
* Extract keywords from task for matching.
|
|
66
|
+
*/
|
|
67
|
+
private extractKeywords;
|
|
68
|
+
/**
|
|
69
|
+
* Add or update a capability mapping.
|
|
70
|
+
*/
|
|
71
|
+
addMapping(mapping: CapabilityMapping): void;
|
|
72
|
+
/**
|
|
73
|
+
* Get all registered mappings.
|
|
74
|
+
*/
|
|
75
|
+
getMappings(): CapabilityMapping[];
|
|
76
|
+
}
|
|
77
|
+
export declare function getCapabilityRouter(): CapabilityRouter;
|
|
78
|
+
export declare function setCapabilityRouter(router: CapabilityRouter): void;
|
|
79
|
+
//# sourceMappingURL=capability-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-router.d.ts","sourceRoot":"","sources":["../../src/coordination/capability-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,KAAK,GACL,MAAM,GACN,KAAK,GACL,UAAU,GACV,SAAS,GACT,UAAU,GACV,UAAU,GACV,aAAa,GACb,eAAe,GACf,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,aAAa,GACb,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,EAiG1D,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,mBAAmB,EAAE,eAAe,EAAE,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAsB;gBAE1B,cAAc,CAAC,EAAE,iBAAiB,EAAE;IAIhD;;OAEG;IACH,SAAS,CACP,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,aAAa;IAkFhB;;OAEG;IACH,aAAa,CACX,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,kBAAkB,EAAE,EACrC,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,UAAU,GAAG,IAAI;IA0CpB;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAgB3D;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IA+BlD;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAS5C;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;CAGnC;AAOD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElE"}
|