@miller-tech/uap 1.0.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 +888 -0
- package/dist/analyzers/index.d.ts +3 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +684 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/benchmarks/agents/naive-agent.d.ts +60 -0
- package/dist/benchmarks/agents/naive-agent.d.ts.map +1 -0
- package/dist/benchmarks/agents/naive-agent.js +144 -0
- package/dist/benchmarks/agents/naive-agent.js.map +1 -0
- package/dist/benchmarks/agents/uap-agent.d.ts +167 -0
- package/dist/benchmarks/agents/uap-agent.d.ts.map +1 -0
- package/dist/benchmarks/agents/uap-agent.js +437 -0
- package/dist/benchmarks/agents/uap-agent.js.map +1 -0
- package/dist/benchmarks/benchmark.d.ts +328 -0
- package/dist/benchmarks/benchmark.d.ts.map +1 -0
- package/dist/benchmarks/benchmark.js +112 -0
- package/dist/benchmarks/benchmark.js.map +1 -0
- package/dist/benchmarks/execution-verifier.d.ts +41 -0
- package/dist/benchmarks/execution-verifier.d.ts.map +1 -0
- package/dist/benchmarks/execution-verifier.js +340 -0
- package/dist/benchmarks/execution-verifier.js.map +1 -0
- package/dist/benchmarks/hierarchical-prompting.d.ts +37 -0
- package/dist/benchmarks/hierarchical-prompting.d.ts.map +1 -0
- package/dist/benchmarks/hierarchical-prompting.js +246 -0
- package/dist/benchmarks/hierarchical-prompting.js.map +1 -0
- package/dist/benchmarks/improved-benchmark.d.ts +89 -0
- package/dist/benchmarks/improved-benchmark.d.ts.map +1 -0
- package/dist/benchmarks/improved-benchmark.js +585 -0
- package/dist/benchmarks/improved-benchmark.js.map +1 -0
- package/dist/benchmarks/index.d.ts +11 -0
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +11 -0
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/benchmarks/model-integration.d.ts +111 -0
- package/dist/benchmarks/model-integration.d.ts.map +1 -0
- package/dist/benchmarks/model-integration.js +904 -0
- package/dist/benchmarks/model-integration.js.map +1 -0
- package/dist/benchmarks/multi-turn-agent.d.ts +44 -0
- package/dist/benchmarks/multi-turn-agent.d.ts.map +1 -0
- package/dist/benchmarks/multi-turn-agent.js +254 -0
- package/dist/benchmarks/multi-turn-agent.js.map +1 -0
- package/dist/benchmarks/multi-turn-loop.d.ts +57 -0
- package/dist/benchmarks/multi-turn-loop.d.ts.map +1 -0
- package/dist/benchmarks/multi-turn-loop.js +167 -0
- package/dist/benchmarks/multi-turn-loop.js.map +1 -0
- package/dist/benchmarks/tasks.d.ts +19 -0
- package/dist/benchmarks/tasks.d.ts.map +1 -0
- package/dist/benchmarks/tasks.js +435 -0
- package/dist/benchmarks/tasks.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 +546 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/llama-server-optimize.d.ts +18 -0
- package/dist/bin/llama-server-optimize.d.ts.map +1 -0
- package/dist/bin/llama-server-optimize.js +708 -0
- package/dist/bin/llama-server-optimize.js.map +1 -0
- package/dist/bin/policy.d.ts +3 -0
- package/dist/bin/policy.d.ts.map +1 -0
- package/dist/bin/policy.js +143 -0
- package/dist/bin/policy.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/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +2 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/web-browser.d.ts +30 -0
- package/dist/browser/web-browser.d.ts.map +1 -0
- package/dist/browser/web-browser.js +93 -0
- package/dist/browser/web-browser.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 +474 -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/completion-gates.d.ts +51 -0
- package/dist/cli/completion-gates.d.ts.map +1 -0
- package/dist/cli/completion-gates.js +201 -0
- package/dist/cli/completion-gates.js.map +1 -0
- package/dist/cli/compliance.d.ts +8 -0
- package/dist/cli/compliance.d.ts.map +1 -0
- package/dist/cli/compliance.js +509 -0
- package/dist/cli/compliance.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 +21 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +1508 -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 +387 -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 +464 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/init.d.ts +12 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +364 -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 +885 -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 +290 -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 +862 -0
- package/dist/cli/patterns.js.map +1 -0
- package/dist/cli/rtk-validation.d.ts +9 -0
- package/dist/cli/rtk-validation.d.ts.map +1 -0
- package/dist/cli/rtk-validation.js +9 -0
- package/dist/cli/rtk-validation.js.map +1 -0
- package/dist/cli/rtk.d.ts +34 -0
- package/dist/cli/rtk.d.ts.map +1 -0
- package/dist/cli/rtk.js +401 -0
- package/dist/cli/rtk.js.map +1 -0
- package/dist/cli/schema-diff.d.ts +7 -0
- package/dist/cli/schema-diff.d.ts.map +1 -0
- package/dist/cli/schema-diff.js +11 -0
- package/dist/cli/schema-diff.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-wizard.d.ts +2 -0
- package/dist/cli/setup-wizard.d.ts.map +1 -0
- package/dist/cli/setup-wizard.js +806 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/setup.d.ts +15 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +154 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/sync.d.ts +8 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +395 -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 +672 -0
- package/dist/cli/task.js.map +1 -0
- package/dist/cli/tool-calls.d.ts +20 -0
- package/dist/cli/tool-calls.d.ts.map +1 -0
- package/dist/cli/tool-calls.js +605 -0
- package/dist/cli/tool-calls.js.map +1 -0
- package/dist/cli/uap.d.ts +10 -0
- package/dist/cli/uap.d.ts.map +1 -0
- package/dist/cli/uap.js +398 -0
- package/dist/cli/uap.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 +213 -0
- package/dist/cli/worktree.js.map +1 -0
- package/dist/coordination/adaptive-patterns.d.ts +65 -0
- package/dist/coordination/adaptive-patterns.d.ts.map +1 -0
- package/dist/coordination/adaptive-patterns.js +108 -0
- package/dist/coordination/adaptive-patterns.js.map +1 -0
- package/dist/coordination/auto-agent.d.ts +82 -0
- package/dist/coordination/auto-agent.d.ts.map +1 -0
- package/dist/coordination/auto-agent.js +145 -0
- package/dist/coordination/auto-agent.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 +334 -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 +136 -0
- package/dist/coordination/database.js.map +1 -0
- package/dist/coordination/deploy-batcher.d.ts +122 -0
- package/dist/coordination/deploy-batcher.d.ts.map +1 -0
- package/dist/coordination/deploy-batcher.js +718 -0
- package/dist/coordination/deploy-batcher.js.map +1 -0
- package/dist/coordination/droid-validator.d.ts +59 -0
- package/dist/coordination/droid-validator.d.ts.map +1 -0
- package/dist/coordination/droid-validator.js +142 -0
- package/dist/coordination/droid-validator.js.map +1 -0
- package/dist/coordination/index.d.ts +10 -0
- package/dist/coordination/index.d.ts.map +1 -0
- package/dist/coordination/index.js +10 -0
- package/dist/coordination/index.js.map +1 -0
- package/dist/coordination/pattern-router.d.ts +50 -0
- package/dist/coordination/pattern-router.d.ts.map +1 -0
- package/dist/coordination/pattern-router.js +118 -0
- package/dist/coordination/pattern-router.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 +619 -0
- package/dist/coordination/service.js.map +1 -0
- package/dist/coordination/worktree-enforcer.d.ts +22 -0
- package/dist/coordination/worktree-enforcer.d.ts.map +1 -0
- package/dist/coordination/worktree-enforcer.js +71 -0
- package/dist/coordination/worktree-enforcer.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 +1020 -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 +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -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 +189 -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 +144 -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 +149 -0
- package/dist/memory/adaptive-context.d.ts.map +1 -0
- package/dist/memory/adaptive-context.js +1095 -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/ambiguity-detector.d.ts +54 -0
- package/dist/memory/ambiguity-detector.d.ts.map +1 -0
- package/dist/memory/ambiguity-detector.js +401 -0
- package/dist/memory/ambiguity-detector.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 +27 -0
- package/dist/memory/backends/github.d.ts.map +1 -0
- package/dist/memory/backends/github.js +134 -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 +167 -0
- package/dist/memory/backends/qdrant-cloud.js.map +1 -0
- package/dist/memory/context-compressor.d.ts +116 -0
- package/dist/memory/context-compressor.d.ts.map +1 -0
- package/dist/memory/context-compressor.js +430 -0
- package/dist/memory/context-compressor.js.map +1 -0
- package/dist/memory/context-pruner.d.ts +55 -0
- package/dist/memory/context-pruner.d.ts.map +1 -0
- package/dist/memory/context-pruner.js +85 -0
- package/dist/memory/context-pruner.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 +112 -0
- package/dist/memory/dynamic-retrieval.d.ts.map +1 -0
- package/dist/memory/dynamic-retrieval.js +908 -0
- package/dist/memory/dynamic-retrieval.js.map +1 -0
- package/dist/memory/embeddings.d.ts +172 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +780 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/generic-uap-patterns.d.ts +7 -0
- package/dist/memory/generic-uap-patterns.d.ts.map +1 -0
- package/dist/memory/generic-uap-patterns.js +43 -0
- package/dist/memory/generic-uap-patterns.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 +485 -0
- package/dist/memory/hierarchical-memory.js.map +1 -0
- package/dist/memory/knowledge-graph.d.ts +98 -0
- package/dist/memory/knowledge-graph.d.ts.map +1 -0
- package/dist/memory/knowledge-graph.js +275 -0
- package/dist/memory/knowledge-graph.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 +336 -0
- package/dist/memory/memory-maintenance.js.map +1 -0
- package/dist/memory/model-router.d.ts +105 -0
- package/dist/memory/model-router.d.ts.map +1 -0
- package/dist/memory/model-router.js +474 -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 +430 -0
- package/dist/memory/multi-view-memory.js.map +1 -0
- package/dist/memory/predictive-memory.d.ts +79 -0
- package/dist/memory/predictive-memory.d.ts.map +1 -0
- package/dist/memory/predictive-memory.js +294 -0
- package/dist/memory/predictive-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 +832 -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 +359 -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 +141 -0
- package/dist/memory/short-term/schema.js.map +1 -0
- package/dist/memory/short-term/sqlite.d.ts +64 -0
- package/dist/memory/short-term/sqlite.d.ts.map +1 -0
- package/dist/memory/short-term/sqlite.js +274 -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 +457 -0
- package/dist/memory/speculative-cache.js.map +1 -0
- package/dist/memory/task-classifier.d.ts +40 -0
- package/dist/memory/task-classifier.d.ts.map +1 -0
- package/dist/memory/task-classifier.js +342 -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 +622 -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/api-client.d.ts +46 -0
- package/dist/models/api-client.d.ts.map +1 -0
- package/dist/models/api-client.js +182 -0
- package/dist/models/api-client.js.map +1 -0
- package/dist/models/execution-profiles.d.ts +64 -0
- package/dist/models/execution-profiles.d.ts.map +1 -0
- package/dist/models/execution-profiles.js +403 -0
- package/dist/models/execution-profiles.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 +382 -0
- package/dist/models/executor.js.map +1 -0
- package/dist/models/index.d.ts +19 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +23 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/plan-validator.d.ts +37 -0
- package/dist/models/plan-validator.d.ts.map +1 -0
- package/dist/models/plan-validator.js +179 -0
- package/dist/models/plan-validator.js.map +1 -0
- package/dist/models/planner.d.ts +73 -0
- package/dist/models/planner.d.ts.map +1 -0
- package/dist/models/planner.js +375 -0
- package/dist/models/planner.js.map +1 -0
- package/dist/models/router.d.ts +96 -0
- package/dist/models/router.d.ts.map +1 -0
- package/dist/models/router.js +523 -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 +232 -0
- package/dist/models/types.js.map +1 -0
- package/dist/models/unified-router.d.ts +152 -0
- package/dist/models/unified-router.d.ts.map +1 -0
- package/dist/models/unified-router.js +313 -0
- package/dist/models/unified-router.js.map +1 -0
- package/dist/policies/convert-policy-to-claude.d.ts +3 -0
- package/dist/policies/convert-policy-to-claude.d.ts.map +1 -0
- package/dist/policies/convert-policy-to-claude.js +87 -0
- package/dist/policies/convert-policy-to-claude.js.map +1 -0
- package/dist/policies/database-manager.d.ts +27 -0
- package/dist/policies/database-manager.d.ts.map +1 -0
- package/dist/policies/database-manager.js +198 -0
- package/dist/policies/database-manager.js.map +1 -0
- package/dist/policies/enforced-tool-router.d.ts +53 -0
- package/dist/policies/enforced-tool-router.d.ts.map +1 -0
- package/dist/policies/enforced-tool-router.js +80 -0
- package/dist/policies/enforced-tool-router.js.map +1 -0
- package/dist/policies/index.d.ts +10 -0
- package/dist/policies/index.d.ts.map +1 -0
- package/dist/policies/index.js +8 -0
- package/dist/policies/index.js.map +1 -0
- package/dist/policies/policy-gate.d.ts +59 -0
- package/dist/policies/policy-gate.d.ts.map +1 -0
- package/dist/policies/policy-gate.js +171 -0
- package/dist/policies/policy-gate.js.map +1 -0
- package/dist/policies/policy-memory.d.ts +18 -0
- package/dist/policies/policy-memory.d.ts.map +1 -0
- package/dist/policies/policy-memory.js +126 -0
- package/dist/policies/policy-memory.js.map +1 -0
- package/dist/policies/policy-tools.d.ts +11 -0
- package/dist/policies/policy-tools.d.ts.map +1 -0
- package/dist/policies/policy-tools.js +66 -0
- package/dist/policies/policy-tools.js.map +1 -0
- package/dist/policies/schemas/policy.d.ts +69 -0
- package/dist/policies/schemas/policy.d.ts.map +1 -0
- package/dist/policies/schemas/policy.js +31 -0
- package/dist/policies/schemas/policy.js.map +1 -0
- package/dist/tasks/coordination.d.ts +83 -0
- package/dist/tasks/coordination.d.ts.map +1 -0
- package/dist/tasks/coordination.js +291 -0
- package/dist/tasks/coordination.js.map +1 -0
- package/dist/tasks/database.d.ts +19 -0
- package/dist/tasks/database.d.ts.map +1 -0
- package/dist/tasks/database.js +149 -0
- package/dist/tasks/database.js.map +1 -0
- package/dist/tasks/decoder-gate.d.ts +64 -0
- package/dist/tasks/decoder-gate.d.ts.map +1 -0
- package/dist/tasks/decoder-gate.js +268 -0
- package/dist/tasks/decoder-gate.js.map +1 -0
- package/dist/tasks/index.d.ts +6 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +6 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/service.d.ts +40 -0
- package/dist/tasks/service.d.ts.map +1 -0
- package/dist/tasks/service.js +671 -0
- package/dist/tasks/service.js.map +1 -0
- package/dist/tasks/types.d.ts +238 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +74 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +2 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/session-telemetry.d.ts +56 -0
- package/dist/telemetry/session-telemetry.d.ts.map +1 -0
- package/dist/telemetry/session-telemetry.js +807 -0
- package/dist/telemetry/session-telemetry.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 +3324 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +418 -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/uap-droids-strict.d.ts +59 -0
- package/dist/uap-droids-strict.d.ts.map +1 -0
- package/dist/uap-droids-strict.js +200 -0
- package/dist/uap-droids-strict.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/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/rate-limiter.d.ts +58 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +100 -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 +94 -0
- package/dist/utils/validate-json.js.map +1 -0
- package/docs/INDEX.md +66 -0
- package/docs/architecture/MULTI_MODEL.md +224 -0
- package/docs/architecture/SYSTEM_ANALYSIS.md +1117 -0
- package/docs/architecture/UAP_COMPLIANCE.md +217 -0
- package/docs/architecture/UAP_PROTOCOL.md +339 -0
- package/docs/architecture/UAP_STRICT_DROIDS.md +172 -0
- package/docs/archive/BALLS_MODE_SELF_ANALYSIS.md +260 -0
- package/docs/archive/FAILING_TASKS_SOLUTION_PLAN.md +668 -0
- package/docs/archive/JINJA2-SYSTEM-MESSAGE-FIX.md +209 -0
- package/docs/archive/NPM-PUBLISH-V0.9.1.md +240 -0
- package/docs/archive/OPTIMIZATION_OPTIONS.md +334 -0
- package/docs/archive/SETUP_IMPROVEMENTS.md +213 -0
- package/docs/archive/UAP_GENERIC_OPTIMIZATION_PLAN.md +270 -0
- package/docs/archive/UAP_V103_PATTERN_DESIGN.md +315 -0
- package/docs/archive/UAP_V104_COMPLIANCE_DESIGN.md +223 -0
- package/docs/archive/changelog/2026-03-10_uap-100-compliance.md +77 -0
- package/docs/archive/changelog/2026-03-10_uap-full-system-verification.md +109 -0
- package/docs/benchmarks/ACCURACY_ANALYSIS.md +471 -0
- package/docs/benchmarks/TOKEN_OPTIMIZATION.md +572 -0
- package/docs/benchmarks/VALIDATION_PLAN.md +568 -0
- package/docs/benchmarks/VALIDATION_RESULTS.md +161 -0
- package/docs/deployment/DEPLOYMENT.md +895 -0
- package/docs/deployment/DEPLOYMENT_STRATEGIES.md +518 -0
- package/docs/deployment/DEPLOY_BATCHER_ANALYSIS.md +856 -0
- package/docs/deployment/DEPLOY_BATCHING.md +273 -0
- package/docs/deployment/DEPLOY_BUCKETING_ANALYSIS.md +420 -0
- package/docs/deployment/QWEN35_LLAMA_CPP.md +265 -0
- package/docs/getting-started/INTEGRATION.md +449 -0
- package/docs/getting-started/OVERVIEW.md +344 -0
- package/docs/getting-started/SETUP.md +203 -0
- package/docs/integrations/MCP_ROUTER_SETUP.md +445 -0
- package/docs/integrations/RTK_INTEGRATION.md +468 -0
- package/docs/operations/TROUBLESHOOTING.md +660 -0
- package/docs/reference/API_REFERENCE.md +903 -0
- package/docs/reference/FEATURES.md +472 -0
- package/docs/reference/HARNESS-MATRIX.md +318 -0
- package/docs/reference/UAP_CLI_REFERENCE.md +600 -0
- package/docs/research/BEHAVIORAL_PATTERNS.md +228 -0
- package/docs/research/DOMAIN_STRATEGIES.md +316 -0
- package/docs/research/MEMORY_SYSTEMS_COMPARISON.md +812 -0
- package/docs/research/PATTERN_ANALYSIS_2026-01-18.md +436 -0
- package/docs/research/PERFORMANCE_ANALYSIS_2026-01-18.md +209 -0
- package/docs/research/PERFORMANCE_TEST_PLAN.md +383 -0
- package/docs/research/TERMINAL_BENCH_LEARNINGS.md +217 -0
- package/package.json +113 -0
- package/scripts/README.md +161 -0
- package/templates/CLAUDE.template.md +10 -0
- package/templates/CLAUDE_ARCHITECTURE.template.md +103 -0
- package/templates/CLAUDE_CODING.template.md +127 -0
- package/templates/CLAUDE_DROIDS.template.md +109 -0
- package/templates/CLAUDE_MEMORY.template.md +131 -0
- package/templates/CLAUDE_WORKFLOWS.template.md +139 -0
- package/templates/PROJECT.template.md +209 -0
- package/templates/SCHEMA.md +57 -0
- package/templates/archive/CLAUDE.template.root-v6.md +534 -0
- package/templates/archive/CLAUDE.template.v6.md +534 -0
- package/templates/hooks/forgecode/pre-compact.sh +68 -0
- package/templates/hooks/forgecode/session-start.sh +169 -0
- package/templates/hooks/forgecode.plugin.sh +128 -0
- package/templates/hooks/pre-compact.sh +74 -0
- package/templates/hooks/session-start.sh +366 -0
- package/tools/agents/README.md +224 -0
- package/tools/agents/UAP/README.md +386 -0
- package/tools/agents/UAP/__init__.py +9 -0
- package/tools/agents/UAP/cli.py +901 -0
- package/tools/agents/UAP/compliance_verify.sh +108 -0
- package/tools/agents/UAP/full_verification.sh +126 -0
- package/tools/agents/UAP/version.py +32 -0
- package/tools/agents/benchmarks/benchmark_memory_systems.py +730 -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 +77 -0
- package/tools/agents/config/tool-call-schema.json +19 -0
- package/tools/agents/config/tool-call.gbnf +58 -0
- package/tools/agents/docker/Dockerfile.python +52 -0
- package/tools/agents/docker/Dockerfile.ubuntu +55 -0
- package/tools/agents/docker-compose.qdrant.yml +24 -0
- package/tools/agents/install-opencode-local.sh.j2 +135 -0
- package/tools/agents/migrations/apply.py +256 -0
- package/tools/agents/opencode_uap_agent.py +1505 -0
- package/tools/agents/plugin/README.md +91 -0
- package/tools/agents/plugin/index.ts +46 -0
- package/tools/agents/plugin/pre-compact.sh +68 -0
- package/tools/agents/plugin/session-start.sh +175 -0
- package/tools/agents/plugin/uap-commands.ts +45 -0
- package/tools/agents/plugin/uap-droids.ts +54 -0
- package/tools/agents/plugin/uap-patterns.ts +54 -0
- package/tools/agents/plugin/uap-skills.ts +52 -0
- package/tools/agents/plugins/uap-enforce.ts +314 -0
- package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
- package/tools/agents/scripts/chat_template_verifier.py +343 -0
- package/tools/agents/scripts/fix-qwen-template.js +38 -0
- package/tools/agents/scripts/fix_qwen_chat_template.py +316 -0
- package/tools/agents/scripts/generate_lora_training_data.py +412 -0
- package/tools/agents/scripts/init_qdrant.py +151 -0
- package/tools/agents/scripts/memory_migration.py +560 -0
- package/tools/agents/scripts/migrate_memory_to_qdrant.py +110 -0
- package/tools/agents/scripts/prepare_lora.sh +512 -0
- package/tools/agents/scripts/query_memory.py +200 -0
- package/tools/agents/scripts/qwen-tool-call-test.js +38 -0
- package/tools/agents/scripts/qwen-tool-call-wrapper.js +38 -0
- package/tools/agents/scripts/qwen_tool_call_test.py +464 -0
- package/tools/agents/scripts/qwen_tool_call_wrapper.py +686 -0
- package/tools/agents/scripts/start-services.sh +96 -0
- package/tools/agents/scripts/tool-choice-proxy.cjs +296 -0
- package/tools/agents/scripts/tool_call_test.py +656 -0
- package/tools/agents/scripts/tool_call_wrapper.py +799 -0
- package/tools/agents/tests/test_uap_compliance.py +257 -0
- package/tools/agents/uap_agent.py +122 -0
- package/tools/agents/uap_agent_install.sh +12 -0
|
@@ -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":"AAOA,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;AAgDD,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { existsSync, readdirSync, mkdirSync } from 'fs';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { simpleGit } from 'simple-git';
|
|
6
|
+
import Database from 'better-sqlite3';
|
|
7
|
+
let worktreeDb = null;
|
|
8
|
+
function getWorktreeDb(cwd) {
|
|
9
|
+
if (worktreeDb)
|
|
10
|
+
return worktreeDb;
|
|
11
|
+
const dbDir = join(cwd, '.uap');
|
|
12
|
+
if (!existsSync(dbDir)) {
|
|
13
|
+
mkdirSync(dbDir, { recursive: true });
|
|
14
|
+
}
|
|
15
|
+
// Migrate from legacy .uam/ location if it exists
|
|
16
|
+
const legacyDbPath = join(cwd, '.uam', 'worktree_registry.db');
|
|
17
|
+
const dbPath = join(dbDir, 'worktree_registry.db');
|
|
18
|
+
if (!existsSync(dbPath) && existsSync(legacyDbPath)) {
|
|
19
|
+
const { cpSync } = require('fs');
|
|
20
|
+
cpSync(legacyDbPath, dbPath);
|
|
21
|
+
}
|
|
22
|
+
worktreeDb = new Database(dbPath);
|
|
23
|
+
worktreeDb.pragma('journal_mode = WAL');
|
|
24
|
+
worktreeDb.pragma('busy_timeout = 10000');
|
|
25
|
+
worktreeDb.exec(`
|
|
26
|
+
CREATE TABLE IF NOT EXISTS worktrees (
|
|
27
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
28
|
+
slug TEXT NOT NULL,
|
|
29
|
+
branch_name TEXT NOT NULL,
|
|
30
|
+
worktree_path TEXT NOT NULL,
|
|
31
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
32
|
+
status TEXT DEFAULT 'active',
|
|
33
|
+
UNIQUE(slug)
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_worktrees_status ON worktrees(status);
|
|
37
|
+
`);
|
|
38
|
+
return worktreeDb;
|
|
39
|
+
}
|
|
40
|
+
async function getNextId(cwd) {
|
|
41
|
+
const db = getWorktreeDb(cwd);
|
|
42
|
+
const row = db.prepare('SELECT COALESCE(MAX(id), 0) as max_id FROM worktrees').get();
|
|
43
|
+
return row.max_id + 1;
|
|
44
|
+
}
|
|
45
|
+
export async function worktreeCommand(action, options = {}) {
|
|
46
|
+
const cwd = process.cwd();
|
|
47
|
+
const git = simpleGit(cwd);
|
|
48
|
+
// Check if we're in a git repo
|
|
49
|
+
const isRepo = await git.checkIsRepo();
|
|
50
|
+
if (!isRepo) {
|
|
51
|
+
console.error(chalk.red('Not a git repository'));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
switch (action) {
|
|
55
|
+
case 'create':
|
|
56
|
+
await createWorktree(cwd, git, options.slug);
|
|
57
|
+
break;
|
|
58
|
+
case 'list':
|
|
59
|
+
await listWorktrees(cwd, git);
|
|
60
|
+
break;
|
|
61
|
+
case 'pr':
|
|
62
|
+
await createPR(cwd, git, options.id, options.draft);
|
|
63
|
+
break;
|
|
64
|
+
case 'cleanup':
|
|
65
|
+
await cleanupWorktree(cwd, git, options.id);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function createWorktree(cwd, git, slug) {
|
|
70
|
+
const spinner = ora('Creating worktree...').start();
|
|
71
|
+
try {
|
|
72
|
+
// Get next ID atomically from DB
|
|
73
|
+
const id = await getNextId(cwd);
|
|
74
|
+
const paddedId = String(id).padStart(3, '0');
|
|
75
|
+
const worktreeName = `${paddedId}-${slug}`;
|
|
76
|
+
const branchName = `feature/${worktreeName}`;
|
|
77
|
+
const worktreePath = join(cwd, '.worktrees', worktreeName);
|
|
78
|
+
// Get current branch (base)
|
|
79
|
+
spinner.text = 'Resolving current branch...';
|
|
80
|
+
const currentBranch = await git.revparse(['--abbrev-ref', 'HEAD']);
|
|
81
|
+
// Create worktree with new branch
|
|
82
|
+
spinner.text = `Creating branch ${branchName}...`;
|
|
83
|
+
await git.raw(['worktree', 'add', '-b', branchName, worktreePath, currentBranch.trim()]);
|
|
84
|
+
// Register in DB to prevent race conditions
|
|
85
|
+
const db = getWorktreeDb(cwd);
|
|
86
|
+
db.prepare(`
|
|
87
|
+
INSERT INTO worktrees (slug, branch_name, worktree_path, status)
|
|
88
|
+
VALUES (?, ?, ?, 'active')
|
|
89
|
+
`).run(slug, branchName, worktreePath);
|
|
90
|
+
spinner.succeed(`Created worktree: ${worktreeName}`);
|
|
91
|
+
console.log(chalk.dim(` Branch: ${branchName}`));
|
|
92
|
+
console.log(chalk.dim(` Path: ${worktreePath}`));
|
|
93
|
+
console.log('');
|
|
94
|
+
console.log(chalk.bold('Next steps:'));
|
|
95
|
+
console.log(` cd .worktrees/${worktreeName}`);
|
|
96
|
+
console.log(' # Make your changes');
|
|
97
|
+
console.log(` uam worktree pr ${id}`);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
spinner.fail('Failed to create worktree');
|
|
101
|
+
console.error(chalk.red(error));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function listWorktrees(_cwd, git) {
|
|
105
|
+
console.log(chalk.bold('\n📁 Git Worktrees\n'));
|
|
106
|
+
try {
|
|
107
|
+
const worktrees = await git.raw(['worktree', 'list', '--porcelain']);
|
|
108
|
+
const entries = worktrees.split('\n\n').filter(Boolean);
|
|
109
|
+
if (entries.length <= 1) {
|
|
110
|
+
console.log(chalk.yellow('No additional worktrees found.'));
|
|
111
|
+
console.log(chalk.dim('Create one with: uam worktree create <slug>'));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log('| ID | Name | Branch | Path |');
|
|
115
|
+
console.log('|-----|------|--------|------|');
|
|
116
|
+
for (const entry of entries) {
|
|
117
|
+
const lines = entry.split('\n');
|
|
118
|
+
const path = lines.find((l) => l.startsWith('worktree '))?.replace('worktree ', '');
|
|
119
|
+
const branch = lines.find((l) => l.startsWith('branch '))?.replace('branch refs/heads/', '');
|
|
120
|
+
if (path && path.includes('.worktrees')) {
|
|
121
|
+
const name = path.split('.worktrees/')[1];
|
|
122
|
+
const id = name?.split('-')[0] || '-';
|
|
123
|
+
console.log(`| ${id} | ${name} | ${branch || 'detached'} | ${path} |`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
console.log('');
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error(chalk.red('Failed to list worktrees'));
|
|
130
|
+
console.error(error);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async function createPR(cwd, _git, id, draft) {
|
|
134
|
+
const spinner = ora('Creating pull request...').start();
|
|
135
|
+
try {
|
|
136
|
+
// Find worktree by ID
|
|
137
|
+
const worktreesDir = join(cwd, '.worktrees');
|
|
138
|
+
const entries = readdirSync(worktreesDir);
|
|
139
|
+
const worktree = entries.find((e) => e.startsWith(`${id.padStart(3, '0')}-`));
|
|
140
|
+
if (!worktree) {
|
|
141
|
+
spinner.fail(`Worktree with ID ${id} not found`);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const worktreePath = join(worktreesDir, worktree);
|
|
145
|
+
const worktreeGit = simpleGit(worktreePath);
|
|
146
|
+
// Get branch name
|
|
147
|
+
const branch = await worktreeGit.revparse(['--abbrev-ref', 'HEAD']);
|
|
148
|
+
// Push branch
|
|
149
|
+
spinner.text = 'Pushing branch...';
|
|
150
|
+
await worktreeGit.push(['-u', 'origin', branch.trim()]);
|
|
151
|
+
// Create PR using gh CLI
|
|
152
|
+
spinner.text = 'Creating PR...';
|
|
153
|
+
const { execSync } = await import('child_process');
|
|
154
|
+
const draftFlag = draft ? '--draft' : '';
|
|
155
|
+
const prCommand = `gh pr create --fill ${draftFlag}`;
|
|
156
|
+
try {
|
|
157
|
+
const result = execSync(prCommand, { cwd: worktreePath, encoding: 'utf-8' });
|
|
158
|
+
spinner.succeed('Pull request created');
|
|
159
|
+
console.log(chalk.dim(result.trim()));
|
|
160
|
+
}
|
|
161
|
+
catch (ghError) {
|
|
162
|
+
spinner.warn('Branch pushed, but PR creation failed');
|
|
163
|
+
console.log(chalk.yellow('Create PR manually or ensure `gh` CLI is installed and authenticated'));
|
|
164
|
+
console.log(chalk.dim(`Branch: ${branch.trim()}`));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
spinner.fail('Failed to create PR');
|
|
169
|
+
console.error(chalk.red(error));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async function cleanupWorktree(cwd, git, id) {
|
|
173
|
+
const spinner = ora('Cleaning up worktree...').start();
|
|
174
|
+
try {
|
|
175
|
+
// Find worktree by ID
|
|
176
|
+
const worktreesDir = join(cwd, '.worktrees');
|
|
177
|
+
const entries = readdirSync(worktreesDir);
|
|
178
|
+
const worktree = entries.find((e) => e.startsWith(`${id.padStart(3, '0')}-`));
|
|
179
|
+
if (!worktree) {
|
|
180
|
+
spinner.fail(`Worktree with ID ${id} not found`);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const worktreePath = join(worktreesDir, worktree);
|
|
184
|
+
const branchName = `feature/${worktree}`;
|
|
185
|
+
// Remove worktree
|
|
186
|
+
spinner.text = 'Removing worktree...';
|
|
187
|
+
await git.raw(['worktree', 'remove', worktreePath, '--force']);
|
|
188
|
+
// Delete branch
|
|
189
|
+
spinner.text = 'Deleting branch...';
|
|
190
|
+
try {
|
|
191
|
+
await git.deleteLocalBranch(branchName, true);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Branch may already be deleted
|
|
195
|
+
}
|
|
196
|
+
// Try to delete remote branch
|
|
197
|
+
try {
|
|
198
|
+
await git.push(['origin', '--delete', branchName]);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// Remote branch may not exist
|
|
202
|
+
}
|
|
203
|
+
// Remove from registry
|
|
204
|
+
const db = getWorktreeDb(cwd);
|
|
205
|
+
db.prepare('UPDATE worktrees SET status = ? WHERE id = ?').run('cleaned', id);
|
|
206
|
+
spinner.succeed(`Cleaned up: ${worktree}`);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
spinner.fail('Failed to cleanup worktree');
|
|
210
|
+
console.error(chalk.red(error));
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# 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,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Pattern Engine for UAP
|
|
3
|
+
*
|
|
4
|
+
* Tracks pattern outcomes per task category and returns patterns sorted
|
|
5
|
+
* by historical success rate. Enables the system to learn which patterns
|
|
6
|
+
* work best for different types of tasks over time.
|
|
7
|
+
*/
|
|
8
|
+
export interface PatternOutcome {
|
|
9
|
+
uses: number;
|
|
10
|
+
successes: number;
|
|
11
|
+
}
|
|
12
|
+
export interface AdaptedPattern {
|
|
13
|
+
id: string;
|
|
14
|
+
content: string;
|
|
15
|
+
successRate: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PatternStats {
|
|
18
|
+
uses: number;
|
|
19
|
+
successes: number;
|
|
20
|
+
rate: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* AdaptivePatternEngine learns which patterns work best for different
|
|
24
|
+
* task categories by tracking success/failure outcomes.
|
|
25
|
+
*/
|
|
26
|
+
export declare class AdaptivePatternEngine {
|
|
27
|
+
/**
|
|
28
|
+
* Map<patternId, Map<taskCategory, PatternOutcome>>
|
|
29
|
+
* Tracks per-pattern, per-category success rates.
|
|
30
|
+
*/
|
|
31
|
+
private outcomes;
|
|
32
|
+
/**
|
|
33
|
+
* Optional content store: Map<patternId, content>
|
|
34
|
+
* Populated when outcomes are recorded so getAdaptedPatterns can return content.
|
|
35
|
+
*/
|
|
36
|
+
private patternContent;
|
|
37
|
+
/**
|
|
38
|
+
* Record the outcome of applying a pattern to a task.
|
|
39
|
+
*
|
|
40
|
+
* @param patternId - Identifier of the pattern (e.g. "P12")
|
|
41
|
+
* @param success - Whether the task completed successfully
|
|
42
|
+
* @param taskCategory - Category of the task (e.g. "security", "refactor")
|
|
43
|
+
*/
|
|
44
|
+
recordPatternOutcome(patternId: string, success: boolean, taskCategory: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Set content for a pattern (optional, for richer results).
|
|
47
|
+
*/
|
|
48
|
+
setPatternContent(patternId: string, content: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get patterns sorted by success rate for a given task category.
|
|
51
|
+
*
|
|
52
|
+
* @param taskCategory - Category to filter by
|
|
53
|
+
* @param limit - Maximum number of patterns to return (default: 10)
|
|
54
|
+
* @returns Patterns sorted by success rate descending
|
|
55
|
+
*/
|
|
56
|
+
getAdaptedPatterns(taskCategory: string, limit?: number): AdaptedPattern[];
|
|
57
|
+
/**
|
|
58
|
+
* Get aggregated stats for all tracked patterns across all categories.
|
|
59
|
+
*
|
|
60
|
+
* @returns Map of patternId to aggregate stats
|
|
61
|
+
*/
|
|
62
|
+
getPatternStats(): Record<string, PatternStats>;
|
|
63
|
+
}
|
|
64
|
+
export declare function getAdaptivePatternEngine(): AdaptivePatternEngine;
|
|
65
|
+
//# sourceMappingURL=adaptive-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-patterns.d.ts","sourceRoot":"","sources":["../../src/coordination/adaptive-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAuD;IAEvE;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAkC;IAExD;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAsBrF;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3D;;;;;;OAMG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,cAAc,EAAE;IAmB9E;;;;OAIG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;CAqBhD;AAKD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAKhE"}
|