@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,169 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# UAP Session Start Hook for ForgeCode (ZSH-native terminal agent)
|
|
3
|
+
COORD_DB="${PROJECT_DIR}/agents/data/coordination/coordination.db"
|
|
4
|
+
DB_PATH="${PROJECT_DIR}/agents/data/memory/short_term.db"
|
|
5
|
+
|
|
6
|
+
if [ ! -f "$DB_PATH" ]; then
|
|
7
|
+
exit 0
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# Auto-create coordination DB if missing (self-healing)
|
|
11
|
+
if [ ! -f "$COORD_DB" ]; then
|
|
12
|
+
mkdir -p "$(dirname "$COORD_DB")"
|
|
13
|
+
sqlite3 "$COORD_DB" "
|
|
14
|
+
PRAGMA journal_mode = WAL;
|
|
15
|
+
PRAGMA synchronous = NORMAL;
|
|
16
|
+
PRAGMA busy_timeout = 10000;
|
|
17
|
+
|
|
18
|
+
CREATE TABLE IF NOT EXISTS agent_registry (
|
|
19
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, session_id TEXT NOT NULL,
|
|
20
|
+
status TEXT NOT NULL CHECK(status IN ('active','idle','completed','failed')),
|
|
21
|
+
current_task TEXT, worktree_branch TEXT, started_at TEXT NOT NULL,
|
|
22
|
+
last_heartbeat TEXT NOT NULL, capabilities TEXT
|
|
23
|
+
);
|
|
24
|
+
CREATE INDEX IF NOT EXISTS idx_agent_registry_session ON agent_registry(session_id);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_agent_registry_status ON agent_registry(status);
|
|
26
|
+
|
|
27
|
+
CREATE TABLE IF NOT EXISTS agent_messages (
|
|
28
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, channel TEXT NOT NULL,
|
|
29
|
+
from_agent TEXT, to_agent TEXT,
|
|
30
|
+
type TEXT NOT NULL CHECK(type IN ('request','response','notification','claim','release')),
|
|
31
|
+
payload TEXT NOT NULL, priority INTEGER DEFAULT 5,
|
|
32
|
+
created_at TEXT NOT NULL, read_at TEXT, expires_at TEXT
|
|
33
|
+
);
|
|
34
|
+
CREATE INDEX IF NOT EXISTS idx_messages_channel ON agent_messages(channel);
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_messages_to_agent ON agent_messages(to_agent);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_messages_created ON agent_messages(created_at);
|
|
37
|
+
|
|
38
|
+
CREATE TABLE IF NOT EXISTS work_announcements (
|
|
39
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, agent_id TEXT NOT NULL,
|
|
40
|
+
agent_name TEXT, worktree_branch TEXT,
|
|
41
|
+
intent_type TEXT NOT NULL CHECK(intent_type IN ('editing','reviewing','refactoring','testing','documenting')),
|
|
42
|
+
resource TEXT NOT NULL, description TEXT, files_affected TEXT,
|
|
43
|
+
estimated_completion TEXT, announced_at TEXT NOT NULL, completed_at TEXT,
|
|
44
|
+
FOREIGN KEY (agent_id) REFERENCES agent_registry(id)
|
|
45
|
+
);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS idx_announcements_agent ON work_announcements(agent_id);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_announcements_resource ON work_announcements(resource);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS idx_announcements_active ON work_announcements(completed_at) WHERE completed_at IS NULL;
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS work_claims (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, resource TEXT NOT NULL,
|
|
52
|
+
agent_id TEXT NOT NULL, claim_type TEXT NOT NULL CHECK(claim_type IN ('exclusive','shared')),
|
|
53
|
+
claimed_at TEXT NOT NULL, expires_at TEXT,
|
|
54
|
+
FOREIGN KEY (agent_id) REFERENCES agent_registry(id)
|
|
55
|
+
);
|
|
56
|
+
CREATE INDEX IF NOT EXISTS idx_claims_agent ON work_claims(agent_id);
|
|
57
|
+
CREATE INDEX IF NOT EXISTS idx_claims_resource ON work_claims(resource);
|
|
58
|
+
|
|
59
|
+
CREATE TABLE IF NOT EXISTS deploy_queue (
|
|
60
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, agent_id TEXT NOT NULL,
|
|
61
|
+
action_type TEXT NOT NULL CHECK(action_type IN ('commit','push','merge','deploy','workflow')),
|
|
62
|
+
target TEXT NOT NULL, payload TEXT,
|
|
63
|
+
status TEXT NOT NULL CHECK(status IN ('pending','batched','executing','completed','failed')),
|
|
64
|
+
batch_id TEXT, queued_at TEXT NOT NULL, execute_after TEXT,
|
|
65
|
+
priority INTEGER DEFAULT 5, dependencies TEXT
|
|
66
|
+
);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_deploy_status ON deploy_queue(status);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_deploy_batch ON deploy_queue(batch_id);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_deploy_target ON deploy_queue(target);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS deploy_batches (
|
|
72
|
+
id TEXT PRIMARY KEY, created_at TEXT NOT NULL, executed_at TEXT,
|
|
73
|
+
status TEXT NOT NULL CHECK(status IN ('pending','executing','completed','failed')),
|
|
74
|
+
result TEXT
|
|
75
|
+
);
|
|
76
|
+
" 2>/dev/null || true
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
# Clean stale agents from coordination DB (heartbeat >24h old)
|
|
80
|
+
if [ -f "$COORD_DB" ]; then
|
|
81
|
+
sqlite3 "$COORD_DB" "
|
|
82
|
+
DELETE FROM work_claims WHERE agent_id IN (
|
|
83
|
+
SELECT id FROM agent_registry
|
|
84
|
+
WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours')
|
|
85
|
+
);
|
|
86
|
+
DELETE FROM work_announcements WHERE agent_id IN (
|
|
87
|
+
SELECT id FROM agent_registry
|
|
88
|
+
WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours')
|
|
89
|
+
) AND completed_at IS NULL;
|
|
90
|
+
UPDATE agent_registry SET status='failed'
|
|
91
|
+
WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours');
|
|
92
|
+
DELETE FROM agent_registry
|
|
93
|
+
WHERE status IN ('completed','failed') AND started_at < datetime('now','-7 days');
|
|
94
|
+
DELETE FROM agent_messages WHERE created_at < datetime('now','-24 hours');
|
|
95
|
+
" 2>/dev/null || true
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
output=""
|
|
99
|
+
|
|
100
|
+
# ============================================================
|
|
101
|
+
# COMPLIANCE ENFORCEMENT BLOCK
|
|
102
|
+
# This is injected as system context. The AI MUST follow these.
|
|
103
|
+
# ============================================================
|
|
104
|
+
output+="<system-reminder>"$'\n'
|
|
105
|
+
output+="## UAP COMPLIANCE - MANDATORY PROTOCOL"$'\n'
|
|
106
|
+
output+=""$'\n'
|
|
107
|
+
output+="You MUST complete these steps IN ORDER before doing ANY work."$'\n'
|
|
108
|
+
output+="Skipping ANY step is a critical protocol violation."$'\n'
|
|
109
|
+
output+=""$'\n'
|
|
110
|
+
output+="### BEFORE WORK (execute these commands NOW):"$'\n'
|
|
111
|
+
output+="1. Run: uap task ready"$'\n'
|
|
112
|
+
output+="2. Run: sqlite3 ./agents/data/memory/short_term.db \"SELECT type, substr(content,1,80) FROM memories ORDER BY id DESC LIMIT 5;\""$'\n'
|
|
113
|
+
output+="3. Run: uap memory query \"<relevant to user request>\""$'\n'
|
|
114
|
+
output+="4. On work request: Run: uap task create --type <task|bug|feature> --title \"<description>\""$'\n'
|
|
115
|
+
output+=""$'\n'
|
|
116
|
+
output+="### DURING WORK:"$'\n'
|
|
117
|
+
output+="5. ALL file changes MUST use worktree: uap worktree create <slug>"$'\n'
|
|
118
|
+
output+="6. Work in .worktrees/NNN-<slug>/ directory"$'\n'
|
|
119
|
+
output+=""$'\n'
|
|
120
|
+
output+="### BEFORE COMMIT:"$'\n'
|
|
121
|
+
output+="7. Self-review: git diff"$'\n'
|
|
122
|
+
output+="8. Run tests if applicable"$'\n'
|
|
123
|
+
output+=""$'\n'
|
|
124
|
+
output+="### AFTER WORK:"$'\n'
|
|
125
|
+
output+="9. Store lesson: sqlite3 ./agents/data/memory/short_term.db \"INSERT INTO session_memories (session_id,timestamp,type,content,importance) VALUES ('current',datetime('now'),'decision','<summary of work and lessons>',7);\""$'\n'
|
|
126
|
+
output+="10. Clean up worktree after PR merge: uap worktree cleanup <id>"$'\n'
|
|
127
|
+
output+=""$'\n'
|
|
128
|
+
output+="FAILURE TO COMPLY = CRITICAL VIOLATION. This is life or death."$'\n'
|
|
129
|
+
output+="</system-reminder>"$'\n\n'
|
|
130
|
+
|
|
131
|
+
# Recent memories (last 24h, high importance)
|
|
132
|
+
recent=$(sqlite3 "$DB_PATH" "
|
|
133
|
+
SELECT type, substr(content, 1, 120) FROM memories
|
|
134
|
+
WHERE timestamp >= datetime('now', '-1 day')
|
|
135
|
+
ORDER BY id DESC
|
|
136
|
+
LIMIT 10;
|
|
137
|
+
" 2>/dev/null || true)
|
|
138
|
+
|
|
139
|
+
if [ -n "$recent" ]; then
|
|
140
|
+
output+="## Recent Memory Context"$'\n'
|
|
141
|
+
output+="$recent"$'\n\n'
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Open loops from session memories
|
|
145
|
+
open_loops=$(sqlite3 "$DB_PATH" "
|
|
146
|
+
SELECT content FROM session_memories
|
|
147
|
+
WHERE type IN ('action','goal','decision')
|
|
148
|
+
AND importance >= 7
|
|
149
|
+
ORDER BY id DESC
|
|
150
|
+
LIMIT 5;
|
|
151
|
+
" 2>/dev/null || true)
|
|
152
|
+
|
|
153
|
+
if [ -n "$open_loops" ]; then
|
|
154
|
+
output+="## Open Loops"$'\n'
|
|
155
|
+
output+="$open_loops"$'\n'
|
|
156
|
+
fi
|
|
157
|
+
|
|
158
|
+
# Stale worktrees warning
|
|
159
|
+
if [ -d "${PROJECT_DIR}/.worktrees" ]; then
|
|
160
|
+
stale_count=$(find "${PROJECT_DIR}/.worktrees" -maxdepth 1 -mindepth 1 -type d 2>/dev/null | wc -l)
|
|
161
|
+
if [ "$stale_count" -gt 0 ]; then
|
|
162
|
+
output+=$'\n'"## Stale Worktrees Warning"$'\n'
|
|
163
|
+
output+="There are $stale_count worktrees. Run 'uap worktree list' and clean up merged ones."$'\n'
|
|
164
|
+
fi
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
if [ -n "$output" ]; then
|
|
168
|
+
echo "$output"
|
|
169
|
+
fi
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# UAP ForgeCode Integration Plugin
|
|
2
|
+
// Auto-generated by: uap hooks install forgecode
|
|
3
|
+
// Add this line to ~/.zshrc after installing UAP: source "$PWD/.forge/forgecode.plugin.sh"
|
|
4
|
+
|
|
5
|
+
_uap_forgecode_session_start() {
|
|
6
|
+
# Load recent memory context from UAP database before : command execution
|
|
7
|
+
|
|
8
|
+
local PROJECT_DIR="${FORGE_UAP_PROJECT:-.}"
|
|
9
|
+
|
|
10
|
+
if [ ! -f "\$PROJECT_DIR/./agents/data/memory/short_term.db" ]; then exit 0; fi
|
|
11
|
+
|
|
12
|
+
# Clean stale agents from coordination DB (heartbeat >24h old)
|
|
13
|
+
if [ -f "\$PROJECT_DIR/./agents/data/coordination/coordination.db" ] && command -v sqlite3 &> /dev/null; then
|
|
14
|
+
sqlite3 "\$PROJECT_DIR/./agents/data/coordination/coordination.db" "
|
|
15
|
+
DELETE FROM work_claims WHERE agent_id IN (
|
|
16
|
+
SELECT id FROM agent_registry
|
|
17
|
+
WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours');
|
|
18
|
+
);
|
|
19
|
+
UPDATE agent_registry SET status='failed'
|
|
20
|
+
WHERE status IN ('active','idle') AND last_heartbeat < datetime('now','-24 hours');
|
|
21
|
+
" 2>/dev/null || true
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Inject recent memory context via environment variable for ForgeCode to read
|
|
25
|
+
local MEMORIES=""
|
|
26
|
+
|
|
27
|
+
if command -v sqlite3 &> /dev/null; then
|
|
28
|
+
MEMORIES=\$(sqlite3 "\$PROJECT_DIR/./agents/data/memory/short_term.db" "
|
|
29
|
+
SELECT type, substr(content,1,80) FROM memories
|
|
30
|
+
WHERE timestamp >= datetime('now', '-1 day')
|
|
31
|
+
ORDER BY id DESC LIMIT 5;
|
|
32
|
+
" 2>/dev/null || true)
|
|
33
|
+
|
|
34
|
+
if [ -n "\$MEMORIES" ]; then
|
|
35
|
+
export UAP_CONTEXT="\$MEMORIES"
|
|
36
|
+
echo "[UAP-ForgCode] ✅ Memory context loaded for session (\$(echo \"\$MEMORIES\" | wc -l)) recent items)" >&2
|
|
37
|
+
fi
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Load open loops/high importance decisions from session memories
|
|
41
|
+
local OPEN_LOOPS=""
|
|
42
|
+
|
|
43
|
+
if command -v sqlite3 &> /dev/null; then
|
|
44
|
+
OPEN_LOOPS=\$(sqlite3 "\$PROJECT_DIR/./agents/data/memory/short_term.db" "
|
|
45
|
+
SELECT content FROM session_memories
|
|
46
|
+
WHERE type IN ('action','goal','decision') AND importance >= 7
|
|
47
|
+
ORDER BY id DESC LIMIT 5;
|
|
48
|
+
" 2>/dev/null || true)
|
|
49
|
+
|
|
50
|
+
if [ -n "\$OPEN_LOOPS" ]; then
|
|
51
|
+
export UAP_OPEN_LOOPS="\$OPEN_LOOPS"
|
|
52
|
+
echo "[UAP-ForgCode] ℹ️ Open loops detected (\$(echo \"\$OPEN_LOOPS\" | grep -c .)) high-priority items pending" >&2
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
# Warn about stale worktrees if any exist
|
|
57
|
+
local WORKTREES_DIR="\$PROJECT_DIR/.worktrees"
|
|
58
|
+
if [ -d "\$WORKTREES_DIR" ]; then
|
|
59
|
+
local STALE_COUNT=\$(find "\$WORKTREES_DIR" -maxdepth 1 -mindepth 1 -type d 2>/dev/null | wc -l)
|
|
60
|
+
if [ "\$STALE_COUNT" -gt 0 ] && command -v find &> /dev/null; then
|
|
61
|
+
echo "[UAP-ForgCode] ⚠️ Stale worktrees: \$STALE_COUNT (run 'uap worktree list' to cleanup)" >&2
|
|
62
|
+
fi
|
|
63
|
+
fi
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
_uap_forgecode_pre_compact() {
|
|
67
|
+
# Save compaction marker before model switches in ForgeCode session
|
|
68
|
+
|
|
69
|
+
local PROJECT_DIR="${FORGE_UAP_PROJECT:-.}"
|
|
70
|
+
|
|
71
|
+
if [ ! -f "\$PROJECT_DIR/./agents/data/memory/short_term.db" ]; then exit 0; fi
|
|
72
|
+
|
|
73
|
+
local TIMESTAMP=\$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
74
|
+
|
|
75
|
+
# Record compaction event in memory database for session tracking
|
|
76
|
+
sqlite3 "\$PROJECT_DIR/./agents/data/memory/short_term.db" "INSERT OR IGNORE INTO memories (timestamp, type, content) VALUES ('\${TIMESTAMP}', 'action', '[pre-compact] Context saved before model switch');" 2>/dev/null || true
|
|
77
|
+
|
|
78
|
+
echo "[UAP-ForgCode] ✅ Pre-compaction marker saved at \$TIMESTAMP" >&2
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# Auto-register hooks with ForgeCode's : command via environment variables
|
|
82
|
+
_uap_forgecode_register() {
|
|
83
|
+
# Add to ~/.zshrc if not already present (user confirmation required)
|
|
84
|
+
local ZSHRC="\$HOME/.zshrc"
|
|
85
|
+
|
|
86
|
+
if [ -f "\$ZSHRC" ] && ! grep -q "UAP_FORGE_CODE_PLUGIN" "\$ZSHRC"; then
|
|
87
|
+
echo '# UAP ForgeCode Integration' >> "\$ZSHRC"
|
|
88
|
+
echo 'source "$PWD/.forge/forgecode.plugin.sh"' >> "\$ZSHRC"
|
|
89
|
+
echo '[UAP-ForgCode] Added plugin source to ~/.zshrc - run "source \$HOME/.zshrc" or restart terminal to activate' >&2
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
# Create config file for ForgeCode settings
|
|
93
|
+
local CONFIG_PATH="\$PROJECT_DIR/.forge/settings.local.json"
|
|
94
|
+
|
|
95
|
+
if [ ! -f "\$CONFIG_PATH" ]; then
|
|
96
|
+
cat > "\$CONFIG_PATH" <<EOF
|
|
97
|
+
{
|
|
98
|
+
"uapIntegration": {
|
|
99
|
+
"enabled": true,
|
|
100
|
+
"memoryDbPath": "./agents/data/memory/short_term.db",
|
|
101
|
+
"coordinationDbPath": "./agents/data/coordination/coordination.db",
|
|
102
|
+
"hooksEnabled": ["sessionStart", "preCompact"]
|
|
103
|
+
},
|
|
104
|
+
"worktrees": {
|
|
105
|
+
"enabled": true,
|
|
106
|
+
"directory": ".worktrees"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
EOF
|
|
110
|
+
echo "[UAP-ForgCode] ✅ Created .forge/settings.local.json with UAP integration config" >&2
|
|
111
|
+
fi
|
|
112
|
+
|
|
113
|
+
# Add to gitignore if not present
|
|
114
|
+
local GITIGNORE="\$PROJECT_DIR/.gitignore"
|
|
115
|
+
if [ -f "\$GITIGNORE" ] && ! grep -q "settings.local.json" "\$GITIGNORE"; then
|
|
116
|
+
echo "# UAP ForgeCode settings (auto-generated)" >> "\$GITIGNORE"
|
|
117
|
+
echo ".forge/settings.local.json" >> "\$GITIGNORE"
|
|
118
|
+
echo "[UAP-ForgCode] ✅ Added .forge/ to gitignore for local config files" >&2
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
# Auto-activate hooks in current session if running interactively
|
|
122
|
+
_uap_forgecode_session_start &>/dev/null || true
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
# Export functions so they can be sourced by other scripts
|
|
126
|
+
export -f _uap_forgecode_session_start \
|
|
127
|
+
_uap_forgecode_pre_compact \
|
|
128
|
+
_uap_forgecode_register;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# UAP Pre-Compact Hook (universal - all coding harnesses)
|
|
3
|
+
# 1. Checks compliance state and warns on violations
|
|
4
|
+
# 2. Writes a timestamp marker to the daily log before context compaction
|
|
5
|
+
# 3. Shows compact session dashboard before compaction
|
|
6
|
+
# 4. Marks any agents registered by this session as completed
|
|
7
|
+
# Fails safely - never blocks the agent.
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-${FACTORY_PROJECT_DIR:-${CURSOR_PROJECT_DIR:-.}}}"
|
|
11
|
+
DB_PATH="${PROJECT_DIR}/agents/data/memory/short_term.db"
|
|
12
|
+
COORD_DB="${PROJECT_DIR}/agents/data/coordination/coordination.db"
|
|
13
|
+
|
|
14
|
+
if [ ! -f "$DB_PATH" ]; then
|
|
15
|
+
exit 0
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
19
|
+
|
|
20
|
+
# Record a compaction marker in memory so sessions can detect context resets
|
|
21
|
+
sqlite3 "$DB_PATH" "
|
|
22
|
+
INSERT OR IGNORE INTO memories (timestamp, type, content)
|
|
23
|
+
VALUES ('$TIMESTAMP', 'action', '[pre-compact] Context compaction at $TIMESTAMP');
|
|
24
|
+
" 2>/dev/null || true
|
|
25
|
+
|
|
26
|
+
# Check if any lessons were stored this session
|
|
27
|
+
recent_lessons=$(sqlite3 "$DB_PATH" "
|
|
28
|
+
SELECT COUNT(*) FROM session_memories
|
|
29
|
+
WHERE timestamp >= datetime('now', '-2 hours')
|
|
30
|
+
AND type = 'decision';
|
|
31
|
+
" 2>/dev/null || echo "0")
|
|
32
|
+
|
|
33
|
+
output=""
|
|
34
|
+
|
|
35
|
+
# Compliance reminder on compaction
|
|
36
|
+
output+="<system-reminder>"$'\n'
|
|
37
|
+
output+="## UAP COMPLIANCE REMINDER (Pre-Compact)"$'\n'
|
|
38
|
+
output+=""$'\n'
|
|
39
|
+
output+="Context is being compacted. Before continuing work after compaction:"$'\n'
|
|
40
|
+
output+="1. Re-run: uap task ready"$'\n'
|
|
41
|
+
output+="2. Re-query memory for current task context"$'\n'
|
|
42
|
+
output+="3. Check for stale worktrees: uap worktree list"$'\n'
|
|
43
|
+
output+=""$'\n'
|
|
44
|
+
|
|
45
|
+
if [ "$recent_lessons" = "0" ]; then
|
|
46
|
+
output+="WARNING: No lessons stored this session. Before compaction completes,"$'\n'
|
|
47
|
+
output+="store a summary: sqlite3 ./agents/data/memory/short_term.db \"INSERT INTO session_memories (session_id,timestamp,type,content,importance) VALUES ('current',datetime('now'),'decision','<summary>',7);\""$'\n'
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
output+="</system-reminder>"$'\n'
|
|
51
|
+
|
|
52
|
+
echo "$output"
|
|
53
|
+
|
|
54
|
+
# Session summary panel (rich UAP state snapshot before compaction)
|
|
55
|
+
if [ -f "${PROJECT_DIR}/dist/bin/cli.js" ]; then
|
|
56
|
+
node "${PROJECT_DIR}/dist/bin/cli.js" dash session --compact 2>/dev/null || true
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Clean up agents with recent heartbeats (likely from this session being compacted)
|
|
60
|
+
if [ -f "$COORD_DB" ]; then
|
|
61
|
+
sqlite3 "$COORD_DB" "
|
|
62
|
+
DELETE FROM work_claims WHERE agent_id IN (
|
|
63
|
+
SELECT id FROM agent_registry
|
|
64
|
+
WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes')
|
|
65
|
+
);
|
|
66
|
+
UPDATE work_announcements SET completed_at='$TIMESTAMP'
|
|
67
|
+
WHERE completed_at IS NULL AND agent_id IN (
|
|
68
|
+
SELECT id FROM agent_registry
|
|
69
|
+
WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes')
|
|
70
|
+
);
|
|
71
|
+
UPDATE agent_registry SET status='completed'
|
|
72
|
+
WHERE status='active' AND last_heartbeat >= datetime('now','-5 minutes');
|
|
73
|
+
" 2>/dev/null || true
|
|
74
|
+
fi
|