@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,265 @@
|
|
|
1
|
+
# Qwen3.5 llama.cpp Deployment Guide
|
|
2
|
+
|
|
3
|
+
How to run Qwen3.5 35B A3B with the official Qwen3 chat template, LoRA adapters, and structured tool call output via llama.cpp.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- [llama.cpp](https://github.com/ggml-org/llama.cpp) built with CUDA/Metal support
|
|
8
|
+
- Qwen3.5 35B A3B GGUF model (e.g. `qwen3.5-a3b-iq4xs.gguf`)
|
|
9
|
+
- (Optional) Draft model for speculative decoding: `Qwen3.5-0.8B-Q8_0.gguf`
|
|
10
|
+
- (Optional) LoRA adapter GGUF for improved tool call reliability
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
llama-server \
|
|
16
|
+
--model /path/to/qwen3.5-a3b-iq4xs.gguf \
|
|
17
|
+
--chat-template-file chat_template.jinja \
|
|
18
|
+
--n-predict 4096 \
|
|
19
|
+
--temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
|
|
20
|
+
--repeat-penalty 1.05 \
|
|
21
|
+
--threads 8 --ctx-size 131072 --batch-size 8 \
|
|
22
|
+
--gpu-layers 35 --mlock --flash-attn
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Configuration Files
|
|
26
|
+
|
|
27
|
+
| File | Purpose |
|
|
28
|
+
| ------------------------------------------- | ------------------------------------------------------------------- |
|
|
29
|
+
| `chat_template.jinja` | Official Qwen3 chat template with native tool descriptions |
|
|
30
|
+
| `tools/agents/config/tool-call.gbnf` | GBNF grammar for per-request use (do NOT use with `--grammar-file`) |
|
|
31
|
+
| `tools/agents/config/tool-call-schema.json` | JSON Schema for the tool call payload |
|
|
32
|
+
| `config/qwen35-settings.json` | Full model settings, optimization config |
|
|
33
|
+
| `config/lora-finetune.yaml` | LoRA training configuration (axolotl/unsloth compatible) |
|
|
34
|
+
|
|
35
|
+
## Important: Do NOT Use `--grammar-file`
|
|
36
|
+
|
|
37
|
+
The `--grammar-file` flag applies a GBNF grammar **globally to every completion**. This breaks normal chat because the grammar forces `<tool_call>` output even when no tools are provided.
|
|
38
|
+
|
|
39
|
+
llama.cpp's **differential autoparser** handles tool calls automatically:
|
|
40
|
+
|
|
41
|
+
1. It analyzes the Jinja template to discover `<tool_call>`/`</tool_call>` markers
|
|
42
|
+
2. It generates PEG grammar rules with **lazy activation** (`grammar_lazy = true`)
|
|
43
|
+
3. When `tool_choice == "auto"`, the model generates freely until it emits `<tool_call>`, at which point the grammar activates to constrain the JSON payload
|
|
44
|
+
4. After `</tool_call>`, the grammar allows another `<tool_call>` for parallel calls
|
|
45
|
+
5. Plain chat (no tools) is unconstrained
|
|
46
|
+
|
|
47
|
+
The GBNF file is kept in the repo for per-request use via the `grammar` field in API payloads, but should never be a server startup flag.
|
|
48
|
+
|
|
49
|
+
## Server Configurations
|
|
50
|
+
|
|
51
|
+
### Basic (no LoRA, no speculative decoding)
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
llama-server \
|
|
55
|
+
--model /path/to/qwen3.5-a3b-iq4xs.gguf \
|
|
56
|
+
--chat-template-file chat_template.jinja \
|
|
57
|
+
--n-predict 4096 \
|
|
58
|
+
--temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
|
|
59
|
+
--repeat-penalty 1.05 \
|
|
60
|
+
--threads 8 --ctx-size 131072 --batch-size 8 \
|
|
61
|
+
--gpu-layers 35 --mlock --flash-attn
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### With LoRA Adapter
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
llama-server \
|
|
68
|
+
--model /path/to/qwen3.5-a3b-iq4xs.gguf \
|
|
69
|
+
--lora /path/to/qwen35-tool-call-lora/adapter.gguf \
|
|
70
|
+
--lora-scale 1.0 \
|
|
71
|
+
--chat-template-file chat_template.jinja \
|
|
72
|
+
--n-predict 4096 \
|
|
73
|
+
--temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
|
|
74
|
+
--repeat-penalty 1.05 \
|
|
75
|
+
--threads 8 --ctx-size 131072 --batch-size 8 \
|
|
76
|
+
--gpu-layers 35 --mlock --flash-attn
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Full Setup (LoRA + Speculative Decoding)
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
llama-server \
|
|
83
|
+
--model /path/to/qwen3.5-a3b-iq4xs.gguf \
|
|
84
|
+
--lora /path/to/qwen35-tool-call-lora/adapter.gguf \
|
|
85
|
+
--lora-scale 1.0 \
|
|
86
|
+
--chat-template-file chat_template.jinja \
|
|
87
|
+
--draft-model /path/to/Qwen3.5-0.8B-Q8_0.gguf \
|
|
88
|
+
--draft-max 16 --draft-p-min 0.75 \
|
|
89
|
+
--n-predict 4096 \
|
|
90
|
+
--temp 0.6 --top-p 0.9 --top-k 20 --min-p 0.05 \
|
|
91
|
+
--repeat-penalty 1.05 \
|
|
92
|
+
--threads 8 --ctx-size 131072 --batch-size 8 \
|
|
93
|
+
--gpu-layers 35 --mlock --flash-attn
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Key Parameters
|
|
97
|
+
|
|
98
|
+
### Chat Template & Tool Calls
|
|
99
|
+
|
|
100
|
+
| Flag | Value | Purpose |
|
|
101
|
+
| ---------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
102
|
+
| `--chat-template-file` | `chat_template.jinja` | Official Qwen3 template with native `tools` block. llama.cpp's autoparser discovers `<tool_call>` markers and generates lazy grammar + triggers automatically. |
|
|
103
|
+
|
|
104
|
+
### LoRA
|
|
105
|
+
|
|
106
|
+
| Flag | Value | Purpose |
|
|
107
|
+
| -------------- | ---------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
108
|
+
| `--lora` | Path to `adapter.gguf` | Loads LoRA adapter at runtime (no model merge needed). Improves tool call format adherence by ~15-20%. |
|
|
109
|
+
| `--lora-scale` | `0.0` - `1.0` | Adapter strength. Use `1.0` for full effect, `0.5`-`0.8` to blend with base model behavior. |
|
|
110
|
+
|
|
111
|
+
### Speculative Decoding
|
|
112
|
+
|
|
113
|
+
| Flag | Value | Purpose |
|
|
114
|
+
| --------------- | -------------------------------- | ----------------------------------------------------------------------- |
|
|
115
|
+
| `--draft-model` | Path to `Qwen3.5-0.8B-Q8_0.gguf` | Small draft model proposes tokens verified by the main model. |
|
|
116
|
+
| `--draft-max` | `16` | Max tokens to draft per iteration. Higher = more throughput, more VRAM. |
|
|
117
|
+
| `--draft-p-min` | `0.75` | Minimum acceptance probability. Lower = more aggressive drafting. |
|
|
118
|
+
|
|
119
|
+
### Sampling
|
|
120
|
+
|
|
121
|
+
| Flag | Value | Purpose |
|
|
122
|
+
| ------------------ | ------ | ------------------------------------------------- |
|
|
123
|
+
| `--temp` | `0.6` | Low temperature for deterministic tool calls. |
|
|
124
|
+
| `--top-p` | `0.9` | Nucleus sampling threshold. |
|
|
125
|
+
| `--top-k` | `20` | Limits token candidates per step. |
|
|
126
|
+
| `--min-p` | `0.05` | Filters tokens below 5% of top token probability. |
|
|
127
|
+
| `--repeat-penalty` | `1.05` | Mild repetition penalty. |
|
|
128
|
+
|
|
129
|
+
### Performance
|
|
130
|
+
|
|
131
|
+
| Flag | Value | Purpose |
|
|
132
|
+
| -------------- | -------- | ------------------------------------------------- |
|
|
133
|
+
| `--flash-attn` | (flag) | 1.5-2x speed on long context. |
|
|
134
|
+
| `--gpu-layers` | `35` | Layers offloaded to GPU. Increase if VRAM allows. |
|
|
135
|
+
| `--ctx-size` | `131072` | Full 128K context window. |
|
|
136
|
+
| `--mlock` | (flag) | Prevents OS from swapping model to disk. |
|
|
137
|
+
|
|
138
|
+
## VRAM Estimates
|
|
139
|
+
|
|
140
|
+
| Component | VRAM |
|
|
141
|
+
| ------------------- | ---------- |
|
|
142
|
+
| Main model (IQ4_XS) | ~17 GB |
|
|
143
|
+
| Draft model (Q8_0) | ~0.8 GB |
|
|
144
|
+
| KV cache (128K ctx) | ~2-3 GB |
|
|
145
|
+
| LoRA adapter | ~50 MB |
|
|
146
|
+
| **Total** | **~20 GB** |
|
|
147
|
+
|
|
148
|
+
## Tool Call Format
|
|
149
|
+
|
|
150
|
+
The model emits tool calls in the official Qwen3 format:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
<tool_call>
|
|
154
|
+
{"name": "read_file", "arguments": {"path": "/etc/hosts"}}
|
|
155
|
+
</tool_call>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Multiple tool calls in a single turn:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
<tool_call>
|
|
162
|
+
{"name": "read_file", "arguments": {"path": "/etc/hosts"}}
|
|
163
|
+
</tool_call>
|
|
164
|
+
<tool_call>
|
|
165
|
+
{"name": "list_dir", "arguments": {"path": "/tmp"}}
|
|
166
|
+
</tool_call>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
llama.cpp's autoparser handles stop behavior structurally via PEG grammar rules, not stop sequences. No explicit `</tool_call>` stop sequence is needed at the server level.
|
|
170
|
+
|
|
171
|
+
## LoRA Training Pipeline
|
|
172
|
+
|
|
173
|
+
### 1. Generate Training Data
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
python3 tools/agents/scripts/generate_lora_training_data.py -n 500
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Produces `tool_call_training_data.jsonl` with ChatML-formatted examples using the official `<tool_call>` format.
|
|
180
|
+
|
|
181
|
+
### 2. Fine-Tune
|
|
182
|
+
|
|
183
|
+
Using axolotl:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
accelerate launch -m axolotl.cli.train config/lora-finetune.yaml
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Using unsloth (faster, less VRAM):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
unsloth train --config config/lora-finetune.yaml
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Training config highlights (`config/lora-finetune.yaml`):
|
|
196
|
+
|
|
197
|
+
- LoRA rank 16, alpha 32
|
|
198
|
+
- Targets all linear layers (q/k/v/o/gate/up/down projections)
|
|
199
|
+
- 3 epochs, cosine LR schedule, 2e-4 learning rate
|
|
200
|
+
- BF16 + gradient checkpointing + flash attention
|
|
201
|
+
|
|
202
|
+
### 3. Convert to GGUF
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
python3 convert_lora_to_gguf.py \
|
|
206
|
+
--base Qwen/Qwen3.5-35B-A3B \
|
|
207
|
+
--lora output/qwen35-tool-call-lora \
|
|
208
|
+
--output adapter.gguf
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 4. Load at Runtime
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
llama-server --model base.gguf --lora adapter.gguf --lora-scale 1.0
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Quantization Options
|
|
218
|
+
|
|
219
|
+
| Quant | VRAM | Accuracy | Tool Call Reliability |
|
|
220
|
+
| ------ | ----- | -------- | --------------------- |
|
|
221
|
+
| IQ4_XS | 17 GB | 96% | 94% |
|
|
222
|
+
| Q4_K_M | 20 GB | 95% | 95% |
|
|
223
|
+
| Q5_K_M | 24 GB | 97% | 97% |
|
|
224
|
+
| Q6_K | 28 GB | 98% | 98% |
|
|
225
|
+
|
|
226
|
+
## Troubleshooting
|
|
227
|
+
|
|
228
|
+
### "Template supports tool calls but does not natively describe tools"
|
|
229
|
+
|
|
230
|
+
This warning means llama.cpp detected `tool_calls` handling but no `tools` variable access in the template. The `chat_template.jinja` in this repo resolves this by including a `{%- if tools %}` block that renders tool descriptions in `<tools></tools>` XML tags.
|
|
231
|
+
|
|
232
|
+
Verify the template is loaded:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
llama-server --chat-template-file chat_template.jinja --verbose
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### LoRA not taking effect
|
|
239
|
+
|
|
240
|
+
- Ensure the adapter was converted to GGUF format (not safetensors/PyTorch)
|
|
241
|
+
- Check `--lora-scale` is not `0.0`
|
|
242
|
+
- Verify the adapter was trained against the same base model architecture
|
|
243
|
+
|
|
244
|
+
### Grammar rejecting valid output
|
|
245
|
+
|
|
246
|
+
If using the GBNF grammar via per-request `grammar` field and it's too restrictive, the model may produce truncated output. Check `tools/agents/config/tool-call.gbnf` allows the argument types your tools use (strings, numbers, objects, arrays, booleans, null are all supported).
|
|
247
|
+
|
|
248
|
+
### Model only outputs tool calls, never plain text
|
|
249
|
+
|
|
250
|
+
You are likely using `--grammar-file` on the server command line. This forces ALL output into `<tool_call>` format. Remove `--grammar-file` from the startup command and let the autoparser handle tool call detection lazily.
|
|
251
|
+
|
|
252
|
+
### Multi-tool calls truncated to single call
|
|
253
|
+
|
|
254
|
+
Two possible causes:
|
|
255
|
+
|
|
256
|
+
1. `--grammar-file` is set globally and the stop sequence `</tool_call>` terminates after the first call. Remove `--grammar-file`.
|
|
257
|
+
2. The client is not passing `parallel_tool_calls: true` in the request. Add it to enable multiple tool calls per turn.
|
|
258
|
+
|
|
259
|
+
## Related Files
|
|
260
|
+
|
|
261
|
+
- `tools/agents/scripts/qwen_tool_call_wrapper.py` - Python wrapper with retry logic and format validation
|
|
262
|
+
- `tools/agents/scripts/fix_qwen_chat_template.py` - Template verifier/fixer (detects format, validates Jinja2)
|
|
263
|
+
- `tools/agents/scripts/qwen_tool_call_test.py` - Test suite using OpenAI-compatible API
|
|
264
|
+
- `src/cli/tool-calls.ts` - CLI command for template management
|
|
265
|
+
- `src/bin/llama-server-optimize.ts` - llama-server startup optimizer
|
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
# UAP Integration Guide
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0.0
|
|
4
|
+
**Last Updated:** 2026-03-13
|
|
5
|
+
**Status:** ✅ Production Ready
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
This guide provides integration instructions for all supported platforms, including opencode, ForgeCode, Claude Code, and VSCode.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. opencode Integration
|
|
16
|
+
|
|
17
|
+
### 1.1 Overview
|
|
18
|
+
|
|
19
|
+
**opencode** is the recommended platform for UAP, providing:
|
|
20
|
+
|
|
21
|
+
- Persistent sessions across restarts
|
|
22
|
+
- Plugin architecture for Pattern RAG
|
|
23
|
+
- Local LLM support (llama.cpp)
|
|
24
|
+
- Built-in tooling (file operations, bash, search)
|
|
25
|
+
|
|
26
|
+
### 1.2 Setup
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Install opencode
|
|
30
|
+
npm install -g opencode
|
|
31
|
+
|
|
32
|
+
# Configure local LLM (optional)
|
|
33
|
+
cat > ~/.opencode/config.json << 'EOF'
|
|
34
|
+
{
|
|
35
|
+
"provider": {
|
|
36
|
+
"llama.cpp": {
|
|
37
|
+
"name": "llama-server (local)",
|
|
38
|
+
"options": {
|
|
39
|
+
"baseURL": "http://localhost:8080/v1",
|
|
40
|
+
"apiKey": "sk-qwen35b"
|
|
41
|
+
},
|
|
42
|
+
"models": {
|
|
43
|
+
"qwen35-a3b-iq4xs": {
|
|
44
|
+
"name": "Qwen3.5 35B A3B (IQ4_XS)",
|
|
45
|
+
"limit": {
|
|
46
|
+
"context": 262144,
|
|
47
|
+
"output": 16384
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"model": "llama.cpp/qwen35-a3b-iq4xs"
|
|
54
|
+
}
|
|
55
|
+
EOF
|
|
56
|
+
|
|
57
|
+
# Initialize UAP in your project
|
|
58
|
+
cd your-project
|
|
59
|
+
uap init
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 1.3 Plugin Configuration
|
|
63
|
+
|
|
64
|
+
UAP plugins automatically load in opencode for:
|
|
65
|
+
|
|
66
|
+
- **Pattern RAG** - Context-aware pattern injection (~12K tokens saved)
|
|
67
|
+
- **Session hooks** - Pre-execution setup, memory preservation
|
|
68
|
+
- **Agent coordination** - Multi-agent workflows without conflicts
|
|
69
|
+
|
|
70
|
+
### 1.4 Usage
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Start opencode with UAP
|
|
74
|
+
opencode
|
|
75
|
+
|
|
76
|
+
# UAP features available:
|
|
77
|
+
# - Pattern RAG auto-injection
|
|
78
|
+
# - Memory persistence
|
|
79
|
+
# - Worktree isolation
|
|
80
|
+
# - Compliance enforcement
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 2. ForgeCode Integration
|
|
86
|
+
|
|
87
|
+
### 2.1 Overview
|
|
88
|
+
|
|
89
|
+
**ForgeCode** is the world's #1 coding agent (TermBench 2.0, 78.4% accuracy), providing:
|
|
90
|
+
|
|
91
|
+
- ZSH-native invocation (type `:` to invoke)
|
|
92
|
+
- Multi-agent modes (FORGE, MUSE, SAGE)
|
|
93
|
+
- Model flexibility (mix models mid-session)
|
|
94
|
+
- Context engine with RAG-powered memory
|
|
95
|
+
|
|
96
|
+
### 2.2 Setup
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Install UAP in your project
|
|
100
|
+
cd your-project
|
|
101
|
+
uap init
|
|
102
|
+
|
|
103
|
+
# Install hooks for ForgeCode integration
|
|
104
|
+
uap hooks install forgecode
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
This creates:
|
|
108
|
+
|
|
109
|
+
- `.forge/hooks/session-start.sh` - Injects recent memory before `:` command
|
|
110
|
+
- `.forge/forgecode.plugin.sh` - ZSH plugin with environment injection
|
|
111
|
+
- `.forge/settings.local.json` - UAP integration configuration
|
|
112
|
+
- Updates `~/.zshrc` to source the plugin automatically
|
|
113
|
+
|
|
114
|
+
### 2.3 Usage
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# In your ZSH session, type : to invoke ForgeCode
|
|
118
|
+
cd ~/projects/my-app && :
|
|
119
|
+
: fix login bug in auth middleware
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
UAP will:
|
|
123
|
+
|
|
124
|
+
1. Load recent memory context from `agents/data/memory/short_term.db`
|
|
125
|
+
2. Check for stale worktrees and open loops
|
|
126
|
+
3. Inject as environment variables (`UAP_CONTEXT`, `UAP_OPEN_LOOPS`)
|
|
127
|
+
4. ForgeCode reads these for enhanced context-aware responses
|
|
128
|
+
5. On completion, saves lessons back to UAP memory
|
|
129
|
+
|
|
130
|
+
### 2.4 Verification
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Check hook status for all platforms including forgecode
|
|
134
|
+
uap hooks status -t forgecode
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 3. Claude Code Integration
|
|
140
|
+
|
|
141
|
+
### 3.1 Overview
|
|
142
|
+
|
|
143
|
+
**Claude Code** is Anthropic's desktop app with full UAP support:
|
|
144
|
+
|
|
145
|
+
- Full UAP integration
|
|
146
|
+
- CLAUDE.md for context
|
|
147
|
+
- Persistent memory across sessions
|
|
148
|
+
- Built-in tooling
|
|
149
|
+
|
|
150
|
+
### 3.2 Setup
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Install UAP in your project
|
|
154
|
+
cd your-project
|
|
155
|
+
uap init
|
|
156
|
+
|
|
157
|
+
# CLAUDE.md automatically generated with:
|
|
158
|
+
# - Project structure
|
|
159
|
+
# - UAP commands
|
|
160
|
+
# - Pattern references
|
|
161
|
+
# - Memory system docs
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 3.3 Usage
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Open project in Claude Code
|
|
168
|
+
claude-code
|
|
169
|
+
|
|
170
|
+
# UAP features available:
|
|
171
|
+
# - CLAUDE.md context injection
|
|
172
|
+
# - Pattern Router auto-selection
|
|
173
|
+
# - Memory persistence
|
|
174
|
+
# - Worktree isolation
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 4. VSCode Integration
|
|
180
|
+
|
|
181
|
+
### 4.1 Overview
|
|
182
|
+
|
|
183
|
+
**VSCode** with Claude Code extension provides:
|
|
184
|
+
|
|
185
|
+
- IDE integration
|
|
186
|
+
- Full UAP support
|
|
187
|
+
- File system access
|
|
188
|
+
- Terminal integration
|
|
189
|
+
|
|
190
|
+
### 4.2 Setup
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Install UAP in your project
|
|
194
|
+
cd your-project
|
|
195
|
+
uap init
|
|
196
|
+
|
|
197
|
+
# Install VSCode extensions:
|
|
198
|
+
# - Claude Code extension
|
|
199
|
+
# - UAP syntax highlighting (optional)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 4.3 Usage
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# Open project in VSCode
|
|
206
|
+
code your-project
|
|
207
|
+
|
|
208
|
+
# Use Claude Code extension:
|
|
209
|
+
# - UAP features available
|
|
210
|
+
# - File operations
|
|
211
|
+
# - Terminal commands
|
|
212
|
+
# - Memory queries
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 5. claude.ai Integration
|
|
218
|
+
|
|
219
|
+
### 5.1 Overview
|
|
220
|
+
|
|
221
|
+
**claude.ai** is Anthropic's web version with limited UAP support:
|
|
222
|
+
|
|
223
|
+
- Web-based interface
|
|
224
|
+
- Limited tooling
|
|
225
|
+
- No persistent memory
|
|
226
|
+
- Reduced functionality
|
|
227
|
+
|
|
228
|
+
### 5.2 Setup
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# Initialize UAP (for reference)
|
|
232
|
+
cd your-project
|
|
233
|
+
uap init
|
|
234
|
+
|
|
235
|
+
# Note: Web version has limited UAP support
|
|
236
|
+
# Consider using Claude Code or opencode for full features
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 5.3 Limitations
|
|
240
|
+
|
|
241
|
+
- ❌ No persistent memory
|
|
242
|
+
- ❌ No worktree isolation
|
|
243
|
+
- ❌ No hook enforcement
|
|
244
|
+
- ⚠️ Limited tooling
|
|
245
|
+
- ⚠️ No Pattern RAG
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 6. Integration Comparison
|
|
250
|
+
|
|
251
|
+
Every platform listed above ships as a stateless code editor. UAP closes the gap. Here is what it adds and why:
|
|
252
|
+
|
|
253
|
+
- **4-layer persistent memory** -- agents retain lessons across sessions instead of starting from zero
|
|
254
|
+
- **Write gate** -- 5-criteria quality filter prevents memory pollution
|
|
255
|
+
- **22 battle-tested patterns** -- Terminal-Bench 2.0 workflows eliminate 37% of common agent failures
|
|
256
|
+
- **Pattern RAG** -- on-demand retrieval saves ~12K tokens per session
|
|
257
|
+
- **Worktree isolation** -- parallel agents never corrupt each other's git state
|
|
258
|
+
- **Multi-agent coordination** -- heartbeats, overlap detection, and conflict risk let multiple agents share a repo safely
|
|
259
|
+
- **Deploy batching** -- squashed commits and serialized pushes prevent deploy storms
|
|
260
|
+
- **Policy enforcement** -- audit-trailed rules ensure agents follow project standards
|
|
261
|
+
- **Task DAG** -- dependency-aware tracking with cycle detection and JSONL sync
|
|
262
|
+
- **MCP Router** -- 98% system prompt token reduction (from ~12K to ~200)
|
|
263
|
+
- **RTK** -- 60-90% output token savings via Rust-based compression
|
|
264
|
+
- **12-gate compliance** -- automated protocol verification catches drift before it ships
|
|
265
|
+
|
|
266
|
+
> Full 15-harness matrix with per-harness integration details: **[HARNESS-MATRIX.md](../reference/HARNESS-MATRIX.md)**
|
|
267
|
+
|
|
268
|
+
### Baseline: What Platforms Provide Natively
|
|
269
|
+
|
|
270
|
+
| Feature | opencode | ForgeCode | Claude Code | VSCode | Cursor | claude.ai |
|
|
271
|
+
| ---------------------------- | :--------: | :-------: | :---------: | :-----: | :----------: | :-------: |
|
|
272
|
+
| File system + terminal | Yes | Yes | Yes | Yes | Yes | -- |
|
|
273
|
+
| Context file | -- | -- | CLAUDE.md | -- | .cursorrules | -- |
|
|
274
|
+
| Native hooks | Plugin API | ZSH hooks | Yes | -- | hooks.json | -- |
|
|
275
|
+
| MCP support | Config | -- | Native | Via ext | Native | -- |
|
|
276
|
+
| Persistent sessions | Yes | ZSH env | Yes | Limited | Limited | -- |
|
|
277
|
+
| Local LLM support | Native | Yes | -- | Via ext | Yes | -- |
|
|
278
|
+
| **Persistent memory** | -- | -- | -- | -- | -- | -- |
|
|
279
|
+
| **Pattern library** | -- | -- | -- | -- | -- | -- |
|
|
280
|
+
| **Multi-agent coordination** | -- | -- | -- | -- | -- | -- |
|
|
281
|
+
| **Policy enforcement** | -- | -- | -- | -- | -- | -- |
|
|
282
|
+
|
|
283
|
+
The bottom four rows are empty across every column. No platform provides them. This is the gap UAP fills.
|
|
284
|
+
|
|
285
|
+
### With UAP: What Every Platform Gains
|
|
286
|
+
|
|
287
|
+
| Capability | Why It Matters | opencode | ForgeCode | Claude Code | VSCode | Cursor | claude.ai |
|
|
288
|
+
| ------------------------ | ------------------------------------- | :------: | :-------: | :---------: | :-----: | :-----: | :-------: |
|
|
289
|
+
| 4-layer memory (L1-L4) | Agents remember across sessions | Yes | Yes | Yes | Yes | Yes | -- |
|
|
290
|
+
| Write gate + tiering | Only high-value knowledge stored | Yes | Yes | Yes | Yes | Yes | -- |
|
|
291
|
+
| 22 patterns + RAG | Proven workflows, ~12K token savings | Yes | Yes | Yes | Yes | Yes | -- |
|
|
292
|
+
| Worktree isolation | Parallel agents, zero conflicts | Yes | Yes | Yes | Yes | Yes | -- |
|
|
293
|
+
| Multi-agent coordination | Heartbeats, overlap detection, claims | Yes | Yes | Yes | Yes | Yes | -- |
|
|
294
|
+
| Deploy batching | No push races, squashed commits | Yes | Yes | Yes | Yes | Yes | -- |
|
|
295
|
+
| Policy engine | Audit-trailed rule enforcement | Yes | Yes | Yes | Yes | Yes | -- |
|
|
296
|
+
| Task DAG | Dependency-aware work tracking | Yes | Yes | Yes | Yes | Yes | -- |
|
|
297
|
+
| MCP Router | 98% system prompt token reduction | Yes | Yes | Yes | Yes | Yes | -- |
|
|
298
|
+
| RTK compression | 60-90% output token savings | Yes | Yes | Yes | Yes | Yes | -- |
|
|
299
|
+
| 12-gate compliance | Automated protocol verification | Yes | Yes | Yes | Yes | Yes | -- |
|
|
300
|
+
| 20+ CLI commands | Full management + dashboard | Yes | Yes | Yes | Yes | Yes | -- |
|
|
301
|
+
| **Recommended** | | Yes | Yes | Yes | Partial | Partial | -- |
|
|
302
|
+
|
|
303
|
+
### Integration Tiers
|
|
304
|
+
|
|
305
|
+
| Tier | Harnesses | What You Get |
|
|
306
|
+
| ---------------------- | -------------------------------------------- | ----------------------------------------------------------------------- |
|
|
307
|
+
| **T1 -- First-Class** | Claude Code, Factory.AI, OpenCode, ForgeCode | Native hooks, dedicated config dir, `uap sync`, context file generation |
|
|
308
|
+
| **T2 -- IDE-Based** | Cursor, VSCode, Cline | Platform-specific hooks, MCP config paths |
|
|
309
|
+
| **T3 -- CLI/Terminal** | Windsurf, Codex CLI, Aider, Zed AI, Continue | Mapped to T1/T2 via CLAUDE.md or .cursorrules |
|
|
310
|
+
| **T4 -- Additional** | GitHub Copilot, JetBrains AI, SWE-agent | Piggybacks on T2 infrastructure |
|
|
311
|
+
|
|
312
|
+
All tiers receive identical UAP features. The difference is integration depth, not capability.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 7. Platform-Specific Features
|
|
317
|
+
|
|
318
|
+
### 7.1 opencode
|
|
319
|
+
|
|
320
|
+
**Unique Features:**
|
|
321
|
+
|
|
322
|
+
- Plugin architecture
|
|
323
|
+
- Persistent sessions
|
|
324
|
+
- Local LLM optimization
|
|
325
|
+
- Built-in tooling
|
|
326
|
+
|
|
327
|
+
**Configuration:**
|
|
328
|
+
|
|
329
|
+
```json
|
|
330
|
+
{
|
|
331
|
+
"provider": {
|
|
332
|
+
"llama.cpp": {
|
|
333
|
+
"name": "llama-server (local)",
|
|
334
|
+
"options": {
|
|
335
|
+
"baseURL": "http://localhost:8080/v1"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### 7.2 ForgeCode
|
|
343
|
+
|
|
344
|
+
**Unique Features:**
|
|
345
|
+
|
|
346
|
+
- ZSH-native (`:` command)
|
|
347
|
+
- Multi-agent modes
|
|
348
|
+
- Environment variable injection
|
|
349
|
+
- Oh My Zsh integration
|
|
350
|
+
|
|
351
|
+
**Configuration:**
|
|
352
|
+
|
|
353
|
+
```json
|
|
354
|
+
{
|
|
355
|
+
"forge": {
|
|
356
|
+
"enabled": true,
|
|
357
|
+
"uamIntegration": true,
|
|
358
|
+
"memoryInjection": true
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### 7.3 Claude Code
|
|
364
|
+
|
|
365
|
+
**Unique Features:**
|
|
366
|
+
|
|
367
|
+
- Desktop app
|
|
368
|
+
- CLAUDE.md context
|
|
369
|
+
- Full tooling
|
|
370
|
+
- Persistent sessions
|
|
371
|
+
|
|
372
|
+
**Configuration:**
|
|
373
|
+
|
|
374
|
+
```json
|
|
375
|
+
{
|
|
376
|
+
"claudeCode": {
|
|
377
|
+
"enabled": true,
|
|
378
|
+
"claudeMd": true,
|
|
379
|
+
"fullUAP": true
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 8. Quick Start Examples
|
|
387
|
+
|
|
388
|
+
### 8.1 opencode (Recommended)
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Install and configure
|
|
392
|
+
npm install -g opencode
|
|
393
|
+
uap init
|
|
394
|
+
opencode
|
|
395
|
+
|
|
396
|
+
# UAP features available immediately
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### 8.2 ForgeCode
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# Install and configure
|
|
403
|
+
uap init
|
|
404
|
+
uap hooks install forgecode
|
|
405
|
+
|
|
406
|
+
# Use in ZSH
|
|
407
|
+
cd project && :
|
|
408
|
+
: fix bug
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### 8.3 Claude Code
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
# Install and configure
|
|
415
|
+
uap init
|
|
416
|
+
|
|
417
|
+
# Open in Claude Code
|
|
418
|
+
claude-code
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 9. Troubleshooting
|
|
424
|
+
|
|
425
|
+
### 9.1 Common Issues
|
|
426
|
+
|
|
427
|
+
**Issue:** "Memory not persisting"
|
|
428
|
+
**Solution:** Check `agents/data/memory/short_term.db` exists
|
|
429
|
+
|
|
430
|
+
**Issue:** "Pattern RAG not working"
|
|
431
|
+
**Solution:** Run `python agents/scripts/index_patterns_to_qdrant.py`
|
|
432
|
+
|
|
433
|
+
**Issue:** "ForgeCode : command not found"
|
|
434
|
+
**Solution:** Restart ZSH or source `~/.zshrc`
|
|
435
|
+
|
|
436
|
+
**Issue:** "opencode plugin not loading"
|
|
437
|
+
**Solution:** Check `opencode.json` configuration
|
|
438
|
+
|
|
439
|
+
### 9.2 Getting Help
|
|
440
|
+
|
|
441
|
+
- Documentation: `docs/` directory
|
|
442
|
+
- Issues: GitHub repository issues
|
|
443
|
+
- Community: Join UAP Discord
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
**Last Updated:** 2026-03-13
|
|
448
|
+
**Version:** 1.0.0
|
|
449
|
+
**Status:** ✅ Production Ready
|