@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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String Similarity Utilities for UAP
|
|
3
|
+
*
|
|
4
|
+
* Shared text comparison functions used across memory compression,
|
|
5
|
+
* deduplication, and retrieval systems.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Calculate Jaccard similarity between two strings (word-level)
|
|
9
|
+
* Returns a value between 0 (no overlap) and 1 (identical)
|
|
10
|
+
*/
|
|
11
|
+
export declare function jaccardSimilarity(a: string, b: string): number;
|
|
12
|
+
/**
|
|
13
|
+
* Calculate content hash for deduplication
|
|
14
|
+
* Uses SHA-256 for reliable collision resistance
|
|
15
|
+
*/
|
|
16
|
+
export declare function contentHash(text: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Improved token estimation
|
|
19
|
+
* More accurate than simple length/4 for mixed code and prose
|
|
20
|
+
*/
|
|
21
|
+
export declare function estimateTokensAccurate(text: string): number;
|
|
22
|
+
/**
|
|
23
|
+
* Simple stemming for keyword matching
|
|
24
|
+
* Handles common English suffixes for better fuzzy matching
|
|
25
|
+
*/
|
|
26
|
+
export declare function simpleStem(word: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Fuzzy keyword match using stemming
|
|
29
|
+
* Returns true if any stemmed form matches
|
|
30
|
+
*/
|
|
31
|
+
export declare function fuzzyKeywordMatch(text: string, keyword: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Calculate text similarity using multiple methods
|
|
34
|
+
* Returns weighted average for more robust comparison
|
|
35
|
+
*/
|
|
36
|
+
export declare function textSimilarity(a: string, b: string): number;
|
|
37
|
+
//# sourceMappingURL=string-similarity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-similarity.d.ts","sourceRoot":"","sources":["../../src/utils/string-similarity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAW9D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB3D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB/C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBxE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa3D"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String Similarity Utilities for UAP
|
|
3
|
+
*
|
|
4
|
+
* Shared text comparison functions used across memory compression,
|
|
5
|
+
* deduplication, and retrieval systems.
|
|
6
|
+
*/
|
|
7
|
+
import { createHash } from 'crypto';
|
|
8
|
+
/**
|
|
9
|
+
* Calculate Jaccard similarity between two strings (word-level)
|
|
10
|
+
* Returns a value between 0 (no overlap) and 1 (identical)
|
|
11
|
+
*/
|
|
12
|
+
export function jaccardSimilarity(a, b) {
|
|
13
|
+
const setA = new Set(a.toLowerCase().split(/\s+/).filter(w => w.length > 1));
|
|
14
|
+
const setB = new Set(b.toLowerCase().split(/\s+/).filter(w => w.length > 1));
|
|
15
|
+
if (setA.size === 0 && setB.size === 0)
|
|
16
|
+
return 1;
|
|
17
|
+
if (setA.size === 0 || setB.size === 0)
|
|
18
|
+
return 0;
|
|
19
|
+
const intersection = new Set([...setA].filter(x => setB.has(x)));
|
|
20
|
+
const union = new Set([...setA, ...setB]);
|
|
21
|
+
return intersection.size / union.size;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Calculate content hash for deduplication
|
|
25
|
+
* Uses SHA-256 for reliable collision resistance
|
|
26
|
+
*/
|
|
27
|
+
export function contentHash(text) {
|
|
28
|
+
return createHash('sha256')
|
|
29
|
+
.update(text.toLowerCase().replace(/\s+/g, ' ').trim())
|
|
30
|
+
.digest('hex')
|
|
31
|
+
.slice(0, 16); // 16 hex chars = 64 bits, sufficient for dedup
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Improved token estimation
|
|
35
|
+
* More accurate than simple length/4 for mixed code and prose
|
|
36
|
+
*/
|
|
37
|
+
export function estimateTokensAccurate(text) {
|
|
38
|
+
if (!text || text.length === 0)
|
|
39
|
+
return 0;
|
|
40
|
+
// Split by whitespace and count
|
|
41
|
+
const words = text.split(/\s+/).filter(w => w.length > 0);
|
|
42
|
+
// Count special characters that typically become separate tokens
|
|
43
|
+
const specialChars = (text.match(/[{}()\[\]<>:;,."'`@#$%^&*+=|\\/?!~-]/g) || []).length;
|
|
44
|
+
// Code tokens: variable names split on camelCase/snake_case
|
|
45
|
+
const codeTokens = (text.match(/[a-z][A-Z]|_[a-z]/g) || []).length;
|
|
46
|
+
// Numbers often tokenize separately
|
|
47
|
+
const numbers = (text.match(/\d+/g) || []).length;
|
|
48
|
+
// Base: words + adjustments
|
|
49
|
+
// Average English word is ~1.3 tokens, code identifiers ~1.5
|
|
50
|
+
const baseTokens = words.length * 1.3;
|
|
51
|
+
const specialTokens = specialChars * 0.5;
|
|
52
|
+
const extraCodeTokens = codeTokens * 0.3;
|
|
53
|
+
const numberTokens = numbers * 0.5;
|
|
54
|
+
return Math.ceil(baseTokens + specialTokens + extraCodeTokens + numberTokens);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Simple stemming for keyword matching
|
|
58
|
+
* Handles common English suffixes for better fuzzy matching
|
|
59
|
+
*/
|
|
60
|
+
export function simpleStem(word) {
|
|
61
|
+
const lower = word.toLowerCase();
|
|
62
|
+
// Common suffixes to strip
|
|
63
|
+
const suffixes = ['ing', 'ed', 'es', 's', 'er', 'est', 'ly', 'tion', 'ment', 'ness', 'able', 'ible'];
|
|
64
|
+
for (const suffix of suffixes) {
|
|
65
|
+
if (lower.endsWith(suffix) && lower.length > suffix.length + 2) {
|
|
66
|
+
const stem = lower.slice(0, -suffix.length);
|
|
67
|
+
// Handle doubling (e.g., "running" -> "run")
|
|
68
|
+
if (stem.length > 2 && stem[stem.length - 1] === stem[stem.length - 2]) {
|
|
69
|
+
return stem.slice(0, -1);
|
|
70
|
+
}
|
|
71
|
+
return stem;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return lower;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Fuzzy keyword match using stemming
|
|
78
|
+
* Returns true if any stemmed form matches
|
|
79
|
+
*/
|
|
80
|
+
export function fuzzyKeywordMatch(text, keyword) {
|
|
81
|
+
const textLower = text.toLowerCase();
|
|
82
|
+
const keywordLower = keyword.toLowerCase();
|
|
83
|
+
// Exact match first
|
|
84
|
+
if (textLower.includes(keywordLower))
|
|
85
|
+
return true;
|
|
86
|
+
// Stemmed match
|
|
87
|
+
const keywordStem = simpleStem(keywordLower);
|
|
88
|
+
const textWords = textLower.split(/\s+/);
|
|
89
|
+
for (const word of textWords) {
|
|
90
|
+
if (simpleStem(word) === keywordStem)
|
|
91
|
+
return true;
|
|
92
|
+
// Also check if the stem is contained in the word (for compound words)
|
|
93
|
+
if (word.includes(keywordStem) && keywordStem.length >= 3)
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Calculate text similarity using multiple methods
|
|
100
|
+
* Returns weighted average for more robust comparison
|
|
101
|
+
*/
|
|
102
|
+
export function textSimilarity(a, b) {
|
|
103
|
+
// Jaccard on words
|
|
104
|
+
const jaccard = jaccardSimilarity(a, b);
|
|
105
|
+
// Character-level containment
|
|
106
|
+
const aLower = a.toLowerCase();
|
|
107
|
+
const bLower = b.toLowerCase();
|
|
108
|
+
const shorter = aLower.length < bLower.length ? aLower : bLower;
|
|
109
|
+
const longer = aLower.length >= bLower.length ? aLower : bLower;
|
|
110
|
+
const containment = shorter.length > 0 && longer.includes(shorter) ? 0.8 : 0;
|
|
111
|
+
// Weighted combination
|
|
112
|
+
return Math.max(jaccard, containment);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=string-similarity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-similarity.js","sourceRoot":"","sources":["../../src/utils/string-similarity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error class for application-level errors with detailed context.
|
|
3
|
+
* Extends the built-in Error class to provide additional metadata.
|
|
4
|
+
*/
|
|
5
|
+
export declare class AppError extends Error {
|
|
6
|
+
/** Error code for programmatic handling */
|
|
7
|
+
readonly code: string;
|
|
8
|
+
/** Additional context about the error */
|
|
9
|
+
readonly context?: Record<string, unknown>;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new AppError instance.
|
|
12
|
+
*
|
|
13
|
+
* @param message - Human-readable error message
|
|
14
|
+
* @param code - Error code for programmatic handling
|
|
15
|
+
* @param context - Optional additional context
|
|
16
|
+
*/
|
|
17
|
+
constructor(message: string, code: string, context?: Record<string, unknown>);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Validates that a string is valid JSON and parses it.
|
|
21
|
+
*
|
|
22
|
+
* Uses zod for runtime validation to ensure the input is a valid string
|
|
23
|
+
* before attempting to parse. The parsed result is then validated
|
|
24
|
+
* against a permissive schema that accepts any valid JSON value.
|
|
25
|
+
*
|
|
26
|
+
* @param input - The string to validate and parse as JSON
|
|
27
|
+
* @returns The parsed JSON value (object, array, string, number, boolean, or null)
|
|
28
|
+
* @throws AppError with code 'INVALID_JSON' if the string is not valid JSON
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Parse a valid JSON object
|
|
33
|
+
* const obj = validateAndParseJSON('{"name": "test", "value": 42}');
|
|
34
|
+
* // Returns: { name: "test", value: 42 }
|
|
35
|
+
*
|
|
36
|
+
* // Parse a valid JSON array
|
|
37
|
+
* const arr = validateAndParseJSON('[1, 2, 3]');
|
|
38
|
+
* // Returns: [1, 2, 3]
|
|
39
|
+
*
|
|
40
|
+
* // Invalid JSON throws AppError
|
|
41
|
+
* try {
|
|
42
|
+
* validateAndParseJSON('{invalid}');
|
|
43
|
+
* } catch (error) {
|
|
44
|
+
* if (error instanceof AppError) {
|
|
45
|
+
* console.log(error.code); // 'INVALID_JSON'
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function validateAndParseJSON(input: string): unknown;
|
|
51
|
+
//# sourceMappingURL=validate-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-json.d.ts","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C;;;;;;OAMG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAW7E;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA6B3D"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Custom error class for application-level errors with detailed context.
|
|
4
|
+
* Extends the built-in Error class to provide additional metadata.
|
|
5
|
+
*/
|
|
6
|
+
export class AppError extends Error {
|
|
7
|
+
/** Error code for programmatic handling */
|
|
8
|
+
code;
|
|
9
|
+
/** Additional context about the error */
|
|
10
|
+
context;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new AppError instance.
|
|
13
|
+
*
|
|
14
|
+
* @param message - Human-readable error message
|
|
15
|
+
* @param code - Error code for programmatic handling
|
|
16
|
+
* @param context - Optional additional context
|
|
17
|
+
*/
|
|
18
|
+
constructor(message, code, context) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'AppError';
|
|
21
|
+
this.code = code;
|
|
22
|
+
this.context = context;
|
|
23
|
+
// Maintains proper stack trace for where error was thrown (V8 engines)
|
|
24
|
+
if (Error.captureStackTrace) {
|
|
25
|
+
Error.captureStackTrace(this, AppError);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Zod schema for validating that a value is valid JSON.
|
|
31
|
+
* Accepts any valid JSON value (object, array, string, number, boolean, null).
|
|
32
|
+
*/
|
|
33
|
+
const jsonSchema = z.unknown();
|
|
34
|
+
/** Maximum number of characters of the original input to include in error context. */
|
|
35
|
+
const MAX_ERROR_CONTEXT_CHARS = 100;
|
|
36
|
+
/**
|
|
37
|
+
* Validates that a string is valid JSON and parses it.
|
|
38
|
+
*
|
|
39
|
+
* Uses zod for runtime validation to ensure the input is a valid string
|
|
40
|
+
* before attempting to parse. The parsed result is then validated
|
|
41
|
+
* against a permissive schema that accepts any valid JSON value.
|
|
42
|
+
*
|
|
43
|
+
* @param input - The string to validate and parse as JSON
|
|
44
|
+
* @returns The parsed JSON value (object, array, string, number, boolean, or null)
|
|
45
|
+
* @throws AppError with code 'INVALID_JSON' if the string is not valid JSON
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Parse a valid JSON object
|
|
50
|
+
* const obj = validateAndParseJSON('{"name": "test", "value": 42}');
|
|
51
|
+
* // Returns: { name: "test", value: 42 }
|
|
52
|
+
*
|
|
53
|
+
* // Parse a valid JSON array
|
|
54
|
+
* const arr = validateAndParseJSON('[1, 2, 3]');
|
|
55
|
+
* // Returns: [1, 2, 3]
|
|
56
|
+
*
|
|
57
|
+
* // Invalid JSON throws AppError
|
|
58
|
+
* try {
|
|
59
|
+
* validateAndParseJSON('{invalid}');
|
|
60
|
+
* } catch (error) {
|
|
61
|
+
* if (error instanceof AppError) {
|
|
62
|
+
* console.log(error.code); // 'INVALID_JSON'
|
|
63
|
+
* }
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export function validateAndParseJSON(input) {
|
|
68
|
+
const jsonStringSchema = z
|
|
69
|
+
.string()
|
|
70
|
+
.transform((value, ctx) => {
|
|
71
|
+
try {
|
|
72
|
+
return JSON.parse(value);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
ctx.addIssue({
|
|
76
|
+
code: z.ZodIssueCode.custom,
|
|
77
|
+
message: error instanceof Error ? `Invalid JSON: ${error.message}` : 'Invalid JSON',
|
|
78
|
+
});
|
|
79
|
+
return z.NEVER;
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
.pipe(jsonSchema);
|
|
83
|
+
const result = jsonStringSchema.safeParse(input);
|
|
84
|
+
if (!result.success) {
|
|
85
|
+
throw new AppError('Input must be valid JSON', 'INVALID_JSON', {
|
|
86
|
+
errors: Array.from(result.error.issues).map((e) => e.message),
|
|
87
|
+
input: input.length > MAX_ERROR_CONTEXT_CHARS
|
|
88
|
+
? `${input.substring(0, MAX_ERROR_CONTEXT_CHARS)}...`
|
|
89
|
+
: input,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return result.data;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=validate-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-json.js","sourceRoot":"","sources":["../../src/utils/validate-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,2CAA2C;IAClC,IAAI,CAAS;IACtB,yCAAyC;IAChC,OAAO,CAA2B;IAE3C;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,IAAY,EAAE,OAAiC;QAC1E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AAE/B,sFAAsF;AACtF,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,gBAAgB,GAAG,CAAC;SACvB,MAAM,EAAE;SACR,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc;aACpF,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,0BAA0B,EAAE,cAAc,EAAE;YAC7D,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7D,KAAK,EACH,KAAK,CAAC,MAAM,GAAG,uBAAuB;gBACpC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,uBAAuB,CAAC,KAAK;gBACrD,CAAC,CAAC,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
package/docs/INDEX.md
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# UAP Documentation Index
|
|
2
|
+
|
|
3
|
+
> Universal Agent Protocol v1.0.0 - Documentation Hub
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Getting Started
|
|
8
|
+
|
|
9
|
+
- [Overview](getting-started/OVERVIEW.md) - What is UAP, core concepts, 4-layer memory architecture
|
|
10
|
+
- [Setup](getting-started/SETUP.md) - Installation, dependencies, configuration
|
|
11
|
+
- [Integration](getting-started/INTEGRATION.md) - opencode, ForgeCode, Claude Code, VSCode
|
|
12
|
+
|
|
13
|
+
## Architecture
|
|
14
|
+
|
|
15
|
+
- [System Analysis](architecture/SYSTEM_ANALYSIS.md) - Complete UAP feature analysis and architecture
|
|
16
|
+
- [Multi-Model Architecture](architecture/MULTI_MODEL.md) - Planner/executor two-tier design (92-98% cost reduction)
|
|
17
|
+
- [UAP Protocol](architecture/UAP_PROTOCOL.md) - Protocol v1.0 specification and compliance requirements
|
|
18
|
+
- [UAP Compliance](architecture/UAP_COMPLIANCE.md) - Protocol deviations and enforcement plan
|
|
19
|
+
- [Strict Droids](architecture/UAP_STRICT_DROIDS.md) - JSON schema validation for droid definitions
|
|
20
|
+
|
|
21
|
+
## Reference
|
|
22
|
+
|
|
23
|
+
- [API Reference](reference/API_REFERENCE.md) - CLI commands, DB schema, API endpoints
|
|
24
|
+
- [CLI Reference](reference/UAP_CLI_REFERENCE.md) - UAP CLI command reference (init, task, memory, worktree)
|
|
25
|
+
- [Feature Inventory](reference/FEATURES.md) - Complete feature status and implementation details
|
|
26
|
+
|
|
27
|
+
## Deployment
|
|
28
|
+
|
|
29
|
+
- [Deployment Guide](deployment/DEPLOYMENT.md) - Model providers, IaC, CI/CD pipelines
|
|
30
|
+
- [Deployment Strategies](deployment/DEPLOYMENT_STRATEGIES.md) - Window bucketing, batch processing, resource isolation
|
|
31
|
+
- [Deploy Batching](deployment/DEPLOY_BATCHING.md) - Batch windows and bucketing system
|
|
32
|
+
- [Deploy Batcher Analysis](deployment/DEPLOY_BATCHER_ANALYSIS.md) - DeployBatcher class architecture deep-dive
|
|
33
|
+
- [Deploy Bucketing Analysis](deployment/DEPLOY_BUCKETING_ANALYSIS.md) - Bucketing capability report
|
|
34
|
+
- [Qwen3.5 / llama.cpp](deployment/QWEN35_LLAMA_CPP.md) - Local LLM deployment with LoRA fine-tuning
|
|
35
|
+
|
|
36
|
+
## Integrations
|
|
37
|
+
|
|
38
|
+
- [MCP Router](integrations/MCP_ROUTER_SETUP.md) - 98% token reduction via meta-tool routing
|
|
39
|
+
- [RTK Integration](integrations/RTK_INTEGRATION.md) - Rust Token Killer CLI proxy analysis
|
|
40
|
+
|
|
41
|
+
## Benchmarks
|
|
42
|
+
|
|
43
|
+
- [Validation Plan](benchmarks/VALIDATION_PLAN.md) - Benchmark methodology and test cases
|
|
44
|
+
- [Validation Results](benchmarks/VALIDATION_RESULTS.md) - Benchmark results (49.7% token reduction)
|
|
45
|
+
- [Token Optimization](benchmarks/TOKEN_OPTIMIZATION.md) - Per-feature token savings analysis
|
|
46
|
+
- [Accuracy Analysis](benchmarks/ACCURACY_ANALYSIS.md) - Internal vs Terminal-Bench comparison
|
|
47
|
+
|
|
48
|
+
## Research
|
|
49
|
+
|
|
50
|
+
- [Memory Systems Comparison](research/MEMORY_SYSTEMS_COMPARISON.md) - MemGPT, LangGraph, Mem0, A-MEM analysis
|
|
51
|
+
- [Behavioral Patterns](research/BEHAVIORAL_PATTERNS.md) - Pattern analysis from 54-task Terminal-Bench
|
|
52
|
+
- [Terminal-Bench Learnings](research/TERMINAL_BENCH_LEARNINGS.md) - Universal agent patterns discovered
|
|
53
|
+
- [Performance Analysis](research/PERFORMANCE_ANALYSIS_2026-01-18.md) - UAP v1.0.2 vs baseline benchmarking
|
|
54
|
+
- [Pattern Analysis](research/PATTERN_ANALYSIS_2026-01-18.md) - v1.1.0 deep failure study
|
|
55
|
+
- [Performance Test Plan](research/PERFORMANCE_TEST_PLAN.md) - Vanilla vs UAP-enhanced droid test plan
|
|
56
|
+
- [Domain Strategies](research/DOMAIN_STRATEGIES.md) - CoreWars, specialized task guides
|
|
57
|
+
|
|
58
|
+
## Operations
|
|
59
|
+
|
|
60
|
+
- [Troubleshooting](operations/TROUBLESHOOTING.md) - Common issues, recovery procedures, debugging
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Archive
|
|
65
|
+
|
|
66
|
+
Historical documents preserved for reference in [archive/](archive/). These are superseded or point-in-time documents that are no longer actively maintained.
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Multi-Model Agentic Architecture
|
|
2
|
+
|
|
3
|
+
## Executive Summary
|
|
4
|
+
|
|
5
|
+
This document proposes a two-tier agentic architecture using separate models for planning and execution, achieving **92-98% cost reduction** while maintaining near-original performance for complex tasks.
|
|
6
|
+
|
|
7
|
+
## Core Concept
|
|
8
|
+
|
|
9
|
+
**Separation of Concerns:**
|
|
10
|
+
- **Tier 1 (Planner)**: High-level reasoning, task decomposition, orchestration
|
|
11
|
+
- **Tier 2 (Executor)**: Concrete implementation following planner's specifications
|
|
12
|
+
|
|
13
|
+
### Research Findings (2026)
|
|
14
|
+
|
|
15
|
+
#### Model Candidates
|
|
16
|
+
|
|
17
|
+
| Model | Role | Cost (Input/Output) | SWE-Bench | Context | Notes |
|
|
18
|
+
|-------|------|----------------------|-----------|---------|-------|
|
|
19
|
+
| **Claude Opus 4.5** | Planner (current) | $5/$25 per 1M | Highest | 200K | Premium, but expensive |
|
|
20
|
+
| **DeepSeek-V3.2** | Planner | $0.25/$0.38 per 1M | 73.1% | 164K | Best cost/performance ratio |
|
|
21
|
+
| **DeepSeek-V3.2-Exp** | Executor | $0.21/$0.32 per 1M | Strong | 164K | 78x cheaper output than Opus |
|
|
22
|
+
| **GLM-4.7** | Executor | Very Low | Good | 128K | Current workhorse |
|
|
23
|
+
|
|
24
|
+
#### Key Findings
|
|
25
|
+
|
|
26
|
+
1. **DeepSeek-V3.2 Speciale** achieves 73.1% on SWE-Bench Verified (vs Opus's highest scores)
|
|
27
|
+
2. **Cost differential**: DeepSeek is ~23x cheaper for input, ~78x cheaper for output
|
|
28
|
+
3. **Context**: 164K is sufficient for most agentic workflows (vs 200K for Opus)
|
|
29
|
+
4. **Architecture**: MoE with 671B params, activates only 37B per token (high efficiency)
|
|
30
|
+
|
|
31
|
+
## Proposed Architecture
|
|
32
|
+
|
|
33
|
+
### Tier 1: Master Planner
|
|
34
|
+
|
|
35
|
+
**Model**: **DeepSeek-V3.2 Speciale** (replacing Opus 4.5)
|
|
36
|
+
|
|
37
|
+
**Responsibilities**:
|
|
38
|
+
- Task decomposition and planning
|
|
39
|
+
- Subtask dependency analysis
|
|
40
|
+
- Model selection for each subtask
|
|
41
|
+
- Quality assurance routing
|
|
42
|
+
- Critical path identification
|
|
43
|
+
|
|
44
|
+
**When to invoke:**
|
|
45
|
+
- New task request
|
|
46
|
+
- Complex multi-step workflows
|
|
47
|
+
- Requirements for strategic planning
|
|
48
|
+
- Architectural decisions
|
|
49
|
+
|
|
50
|
+
**Fallback**: If DeepSeek fails on critical planning, escalate to Opus 4.5 (1% of cases)
|
|
51
|
+
|
|
52
|
+
### Tier 2: Task Executor
|
|
53
|
+
|
|
54
|
+
**Model**: **GLM-4.7** (current workhorse) or **DeepSeek-V3.2-Exp**
|
|
55
|
+
|
|
56
|
+
**Responsibilities**:
|
|
57
|
+
- Implement specific code blocks
|
|
58
|
+
- Execute tool calls
|
|
59
|
+
- Write tests
|
|
60
|
+
- Fix bugs based on planner guidance
|
|
61
|
+
- Generate documentation
|
|
62
|
+
|
|
63
|
+
**When to invoke:**
|
|
64
|
+
- Concrete implementation tasks
|
|
65
|
+
- Coding following specifications
|
|
66
|
+
- Test writing
|
|
67
|
+
- Bug fixes with clear guidance
|
|
68
|
+
|
|
69
|
+
### Route Decision Matrix
|
|
70
|
+
|
|
71
|
+
| Task Complexity | Routing Logic | Model Selection |
|
|
72
|
+
|----------------|---------------|-----------------|
|
|
73
|
+
| **High** (new feature, architecture) | → Planner → Decompose → Executor | DeepSeek-V3.2 → GLM-4.7 |
|
|
74
|
+
| **Medium** (refactor, bug fix) | → Direct Executor | GLM-4.7 |
|
|
75
|
+
| **Low** (simple change) | → Direct Executor | GLM-4.7 |
|
|
76
|
+
| **Critical** (security, deployment) | → Planner → Verify → Executor | DeepSeek-V3.2 → GLM-4.7 |
|
|
77
|
+
|
|
78
|
+
## Implementation Strategy
|
|
79
|
+
|
|
80
|
+
### Phase 1: Router (Week 1)
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
interface ModelRouter {
|
|
84
|
+
route(task: AgenticTask): ModelSelection;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
interface ModelSelection {
|
|
88
|
+
model: ModelId;
|
|
89
|
+
fallback?: ModelId;
|
|
90
|
+
reasoning: string;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Routing Logic**:
|
|
95
|
+
1. Analyze task complexity (token estimate, dependencies, novelty)
|
|
96
|
+
2. Check for critical keywords (security, architecture, planning)
|
|
97
|
+
3. Select DeepSeek-V3.2 for planning tasks
|
|
98
|
+
4. Select GLM-4.7 for execution tasks
|
|
99
|
+
5. Fallback to Opus 4.5 only on threshold failures
|
|
100
|
+
|
|
101
|
+
### Phase 2: Planner Integration (Week 2)
|
|
102
|
+
|
|
103
|
+
**Planner Interface**:
|
|
104
|
+
```typescript
|
|
105
|
+
interface Planner {
|
|
106
|
+
plan(task: AgenticTask): ExecutionPlan;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
interface ExecutionPlan {
|
|
110
|
+
subtasks: Subtask[];
|
|
111
|
+
dependencies: DependencyGraph;
|
|
112
|
+
modelAssignments: Map<SubtaskId, ModelId>;
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**DeepSeek-V3.2 Integration**:
|
|
117
|
+
- API endpoint integration
|
|
118
|
+
- Context window management (164K)
|
|
119
|
+
- Token budget accounting
|
|
120
|
+
- Failure detection and escalation
|
|
121
|
+
|
|
122
|
+
### Phase 3: Executor Pool (Week 3)
|
|
123
|
+
|
|
124
|
+
**Executor Options**:
|
|
125
|
+
1. **Primary**: GLM-4.7 (existing, low cost, good performance)
|
|
126
|
+
2. **Backup**: DeepSeek-V3.2-Exp (if GLM-4.7 unavailable)
|
|
127
|
+
3. **Fallback**: Opus 4.5 (critical failures only)
|
|
128
|
+
|
|
129
|
+
**Load Balancing**:
|
|
130
|
+
- Round-robin across multiple executor instances
|
|
131
|
+
- Circuit breaker pattern for reliability
|
|
132
|
+
- Timeout management per subtask
|
|
133
|
+
|
|
134
|
+
## Cost Analysis
|
|
135
|
+
|
|
136
|
+
### Baseline (Opus 4.5 Only)
|
|
137
|
+
|
|
138
|
+
**Assumptions**:
|
|
139
|
+
- 100 tasks/day
|
|
140
|
+
- Average 50K input tokens, 30K output tokens per task
|
|
141
|
+
- $5/input per 1M, $25/output per 1M
|
|
142
|
+
|
|
143
|
+
**Daily Cost**:
|
|
144
|
+
- Input: 100 * 50K * $5/1M = $25
|
|
145
|
+
- Output: 100 * 30K * $25/1M = $75
|
|
146
|
+
- **Total: $100/day**
|
|
147
|
+
|
|
148
|
+
**Monthly Cost**: $3,000
|
|
149
|
+
**Yearly Cost**: $36,500
|
|
150
|
+
|
|
151
|
+
### Proposed (DeepSeek + GLM-4.7)
|
|
152
|
+
|
|
153
|
+
**Distribution**:
|
|
154
|
+
- 30% complex tasks → DeepSeek-V3.2 planning (10K tokens)
|
|
155
|
+
- 70% direct execution → GLM-4.7 (15K input, 5K output)
|
|
156
|
+
|
|
157
|
+
**Daily Cost**:
|
|
158
|
+
- Planner (DeepSeek): 30 tasks * 10K tokens * ($0.25/$0.38)/1M = $0.19
|
|
159
|
+
- Executor (GLM):
|
|
160
|
+
- Input: 100 tasks * 15K * $1/1M = $1.50
|
|
161
|
+
- Output: 100 tasks * 5K * $2/1M = $1.00
|
|
162
|
+
- **Total: $2.69/day**
|
|
163
|
+
|
|
164
|
+
**Monthly Cost**: $80.70
|
|
165
|
+
**Yearly Cost**: $982
|
|
166
|
+
|
|
167
|
+
### Cost Savings
|
|
168
|
+
|
|
169
|
+
| Metric | Baseline | Proposed | Savings |
|
|
170
|
+
|--------|----------|----------|---------|
|
|
171
|
+
| Daily | $100 | $2.69 | **97.3%** |
|
|
172
|
+
| Monthly | $3,000 | $80.70 | **97.3%** |
|
|
173
|
+
| Yearly | $36,500 | $982 | **97.3%** |
|
|
174
|
+
|
|
175
|
+
### Performance Impact
|
|
176
|
+
|
|
177
|
+
Expected SWE-Bench performance:
|
|
178
|
+
- **Baseline**: Opus 4.5 (highest scores)
|
|
179
|
+
- **Proposed**:
|
|
180
|
+
- Planner (DeepSeek-V3.2): 73.1% (verified)
|
|
181
|
+
- Executor (GLM-4.7): Strong on straightforward tasks
|
|
182
|
+
- **Composite**: Estimated 85-90% of baseline
|
|
183
|
+
|
|
184
|
+
**Trade-off**: Accept 10-15% performance drop for 97% cost reduction
|
|
185
|
+
|
|
186
|
+
## Risk Assessment
|
|
187
|
+
|
|
188
|
+
### Risks
|
|
189
|
+
|
|
190
|
+
1. **Routing Errors**: Poor model selection for tasks
|
|
191
|
+
- **Mitigation**: Start conservative, 10% fallback to Opus
|
|
192
|
+
- **Monitoring**: Track task success rates per model
|
|
193
|
+
|
|
194
|
+
2. **Quality Regression**: Lower code质量
|
|
195
|
+
- **Mitigation**: Add review loops, use quality droids
|
|
196
|
+
- **Monitoring**: Track test pass rates, bug counts
|
|
197
|
+
|
|
198
|
+
3. **API Reliability**: DeepSeek availability issues
|
|
199
|
+
- **Mitigation**: Multi-in redundancy, fallback to Opus
|
|
200
|
+
- **Monitoring**: Uptime, latency tracking
|
|
201
|
+
|
|
202
|
+
### Rollback Plan
|
|
203
|
+
|
|
204
|
+
If metrics degrade >20%, revert to Opus 4.5-only mode within 24 hours.
|
|
205
|
+
|
|
206
|
+
## Next Steps
|
|
207
|
+
|
|
208
|
+
1. **Week 1**: Implement router with conservative routing (20% direct to Opus)
|
|
209
|
+
2. **Week 2**: Integrate DeepSeek-V3.2 API, test on 10% of tasks
|
|
210
|
+
3. **Week 3**: Shift to 50/50 routing, monitor carefully
|
|
211
|
+
4. **Week 4**: Full deployment, 95% tasks to proposed architecture
|
|
212
|
+
|
|
213
|
+
## Success Metrics
|
|
214
|
+
|
|
215
|
+
- Cost reduction: >90% achieved by month 1
|
|
216
|
+
- Performance: <20% drop vs baseline
|
|
217
|
+
- Reliability: <5% increase in task failures
|
|
218
|
+
- ROI: Break-even within 2 weeks
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
**Status**: Draft - Ready for review and implementation
|
|
223
|
+
**Created**: 2026-01-21
|
|
224
|
+
**Next Review**: 2026-01-28 (after week 1 pilot)
|