@miller-tech/uap 1.10.1 → 1.11.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.
Files changed (133) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/benchmarks/benchmark.d.ts +14 -14
  3. package/dist/bin/cli.js +5 -0
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/bin/llama-server-optimize.js +0 -0
  6. package/dist/bin/policy.js +0 -0
  7. package/dist/cli/task.d.ts +1 -1
  8. package/dist/cli/task.d.ts.map +1 -1
  9. package/dist/cli/task.js +65 -0
  10. package/dist/cli/task.js.map +1 -1
  11. package/dist/dashboard/data-service.d.ts +10 -0
  12. package/dist/dashboard/data-service.d.ts.map +1 -1
  13. package/dist/dashboard/data-service.js +22 -1
  14. package/dist/dashboard/data-service.js.map +1 -1
  15. package/dist/models/profile-loader.d.ts +1 -1
  16. package/dist/models/types.d.ts +45 -45
  17. package/dist/policies/schemas/policy.d.ts +5 -5
  18. package/dist/tasks/types.d.ts +22 -22
  19. package/dist/types/config.d.ts +170 -170
  20. package/dist/types/coordination.d.ts +22 -22
  21. package/dist/uap-droids-strict.d.ts +4 -4
  22. package/package.json +1 -1
  23. package/scripts/maintenance/verify-compliance.sh +12 -12
  24. package/templates/hooks/session-start.sh +1 -1
  25. package/dist/bin/tool-calls.d.ts +0 -3
  26. package/dist/bin/tool-calls.d.ts.map +0 -1
  27. package/dist/bin/tool-calls.js +0 -4
  28. package/dist/bin/tool-calls.js.map +0 -1
  29. package/dist/cli/completion-gates.d.ts +0 -51
  30. package/dist/cli/completion-gates.d.ts.map +0 -1
  31. package/dist/cli/completion-gates.js +0 -201
  32. package/dist/cli/completion-gates.js.map +0 -1
  33. package/dist/cli/rtk-validation.d.ts +0 -24
  34. package/dist/cli/rtk-validation.d.ts.map +0 -1
  35. package/dist/cli/rtk-validation.js +0 -138
  36. package/dist/cli/rtk-validation.js.map +0 -1
  37. package/dist/cli/uap.d.ts +0 -10
  38. package/dist/cli/uap.d.ts.map +0 -1
  39. package/dist/cli/uap.js +0 -457
  40. package/dist/cli/uap.js.map +0 -1
  41. package/dist/coordination/droid-validator.d.ts +0 -59
  42. package/dist/coordination/droid-validator.d.ts.map +0 -1
  43. package/dist/coordination/droid-validator.js +0 -142
  44. package/dist/coordination/droid-validator.js.map +0 -1
  45. package/dist/coordination/worktree-enforcer.d.ts +0 -22
  46. package/dist/coordination/worktree-enforcer.d.ts.map +0 -1
  47. package/dist/coordination/worktree-enforcer.js +0 -71
  48. package/dist/coordination/worktree-enforcer.js.map +0 -1
  49. package/dist/generators/template-loader.d.ts +0 -105
  50. package/dist/generators/template-loader.d.ts.map +0 -1
  51. package/dist/generators/template-loader.js +0 -291
  52. package/dist/generators/template-loader.js.map +0 -1
  53. package/dist/memory/active-context.d.ts +0 -65
  54. package/dist/memory/active-context.d.ts.map +0 -1
  55. package/dist/memory/active-context.js +0 -126
  56. package/dist/memory/active-context.js.map +0 -1
  57. package/dist/memory/agent-scoped-memory.d.ts +0 -67
  58. package/dist/memory/agent-scoped-memory.d.ts.map +0 -1
  59. package/dist/memory/agent-scoped-memory.js +0 -126
  60. package/dist/memory/agent-scoped-memory.js.map +0 -1
  61. package/dist/memory/dedup-detector.d.ts +0 -57
  62. package/dist/memory/dedup-detector.d.ts.map +0 -1
  63. package/dist/memory/dedup-detector.js +0 -107
  64. package/dist/memory/dedup-detector.js.map +0 -1
  65. package/dist/memory/dedup-memory.d.ts +0 -89
  66. package/dist/memory/dedup-memory.d.ts.map +0 -1
  67. package/dist/memory/dedup-memory.js +0 -173
  68. package/dist/memory/dedup-memory.js.map +0 -1
  69. package/dist/memory/generic-uap-patterns.d.ts +0 -7
  70. package/dist/memory/generic-uap-patterns.d.ts.map +0 -1
  71. package/dist/memory/generic-uap-patterns.js +0 -43
  72. package/dist/memory/generic-uap-patterns.js.map +0 -1
  73. package/dist/memory/merge-claude-md.d.ts +0 -45
  74. package/dist/memory/merge-claude-md.d.ts.map +0 -1
  75. package/dist/memory/merge-claude-md.js +0 -118
  76. package/dist/memory/merge-claude-md.js.map +0 -1
  77. package/dist/memory/multi-view-memory.d.ts +0 -134
  78. package/dist/memory/multi-view-memory.d.ts.map +0 -1
  79. package/dist/memory/multi-view-memory.js +0 -430
  80. package/dist/memory/multi-view-memory.js.map +0 -1
  81. package/dist/memory/patterns.d.ts +0 -37
  82. package/dist/memory/patterns.d.ts.map +0 -1
  83. package/dist/memory/patterns.js +0 -81
  84. package/dist/memory/patterns.js.map +0 -1
  85. package/dist/memory/semantic-edge-graph.d.ts +0 -86
  86. package/dist/memory/semantic-edge-graph.d.ts.map +0 -1
  87. package/dist/memory/semantic-edge-graph.js +0 -168
  88. package/dist/memory/semantic-edge-graph.js.map +0 -1
  89. package/dist/memory/semantic-retrieval.d.ts +0 -70
  90. package/dist/memory/semantic-retrieval.d.ts.map +0 -1
  91. package/dist/memory/semantic-retrieval.js +0 -112
  92. package/dist/memory/semantic-retrieval.js.map +0 -1
  93. package/dist/memory/short-term/factory.d.ts +0 -26
  94. package/dist/memory/short-term/factory.d.ts.map +0 -1
  95. package/dist/memory/short-term/factory.js +0 -28
  96. package/dist/memory/short-term/factory.js.map +0 -1
  97. package/dist/memory/short-term/indexeddb.d.ts +0 -25
  98. package/dist/memory/short-term/indexeddb.d.ts.map +0 -1
  99. package/dist/memory/short-term/indexeddb.js +0 -64
  100. package/dist/memory/short-term/indexeddb.js.map +0 -1
  101. package/dist/memory/smart-consolidator.d.ts +0 -53
  102. package/dist/memory/smart-consolidator.d.ts.map +0 -1
  103. package/dist/memory/smart-consolidator.js +0 -144
  104. package/dist/memory/smart-consolidator.js.map +0 -1
  105. package/dist/memory/view-memory.d.ts +0 -80
  106. package/dist/memory/view-memory.d.ts.map +0 -1
  107. package/dist/memory/view-memory.js +0 -130
  108. package/dist/memory/view-memory.js.map +0 -1
  109. package/dist/memory/wrapped-memory.d.ts +0 -77
  110. package/dist/memory/wrapped-memory.d.ts.map +0 -1
  111. package/dist/memory/wrapped-memory.js +0 -127
  112. package/dist/memory/wrapped-memory.js.map +0 -1
  113. package/dist/models/api-client.d.ts +0 -46
  114. package/dist/models/api-client.d.ts.map +0 -1
  115. package/dist/models/api-client.js +0 -182
  116. package/dist/models/api-client.js.map +0 -1
  117. package/dist/utils/config-manager.d.ts +0 -30
  118. package/dist/utils/config-manager.d.ts.map +0 -1
  119. package/dist/utils/config-manager.js +0 -41
  120. package/dist/utils/config-manager.js.map +0 -1
  121. package/dist/utils/fetch-with-retry.d.ts +0 -5
  122. package/dist/utils/fetch-with-retry.d.ts.map +0 -1
  123. package/dist/utils/fetch-with-retry.js +0 -61
  124. package/dist/utils/fetch-with-retry.js.map +0 -1
  125. package/dist/utils/file-discovery.d.ts +0 -38
  126. package/dist/utils/file-discovery.d.ts.map +0 -1
  127. package/dist/utils/file-discovery.js +0 -100
  128. package/dist/utils/file-discovery.js.map +0 -1
  129. package/dist/utils/validate-json.d.ts +0 -51
  130. package/dist/utils/validate-json.d.ts.map +0 -1
  131. package/dist/utils/validate-json.js +0 -94
  132. package/dist/utils/validate-json.js.map +0 -1
  133. package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
@@ -1,138 +0,0 @@
1
- /**
2
- * RTK (Required Template Keys) Validation
3
- *
4
- * Validates that CLAUDE.md contains all mandatory sections required by
5
- * the UAP protocol. Replaces the v3.0.0 stub that always returned valid.
6
- *
7
- * Required sections are defined by the ENFORCEMENT_CHECKS comment in CLAUDE.md:
8
- * SESSION_START, DECISION_LOOP, MANDATORY_WORKTREE, PARALLEL_REVIEW,
9
- * SCHEMA_DIFF, GATES, RTK_INCLUDES, PATTERN_ROUTER, VALIDATE_PLAN
10
- */
11
- import { existsSync, readFileSync } from 'fs';
12
- import { join } from 'path';
13
- /**
14
- * Mandatory sections that must appear in CLAUDE.md.
15
- * Each entry maps a check name to the heading/content pattern that satisfies it.
16
- */
17
- const REQUIRED_SECTIONS = {
18
- SESSION_START: {
19
- pattern: /## .*SESSION\s+START/i,
20
- description: 'Session initialization instructions',
21
- },
22
- DECISION_LOOP: {
23
- pattern: /## .*DECISION\s+LOOP/i,
24
- description: 'Six-step decision loop (READ/QUERY/THINK/ACT/RECORD)',
25
- },
26
- MANDATORY_WORKTREE: {
27
- pattern: /## .*WORKTREE\s+WORKFLOW|## .*Pre-Edit Worktree Gate/i,
28
- description: 'Worktree workflow enforcement',
29
- },
30
- PARALLEL_REVIEW: {
31
- pattern: /## .*PARALLEL\s+REVIEW/i,
32
- description: 'Parallel review protocol',
33
- },
34
- SCHEMA_DIFF: {
35
- pattern: /Schema\s+Diff\s+Gate|schema.diff/i,
36
- description: 'Schema diff gate for breaking changes',
37
- },
38
- GATES: {
39
- pattern: /## .*COMPLETION\s+GATES|## .*BLOCKING\s+PREREQUISITES/i,
40
- description: 'Completion gates (test, build, lint, deploy)',
41
- },
42
- PATTERN_ROUTER: {
43
- pattern: /## .*Pattern\s+Router/i,
44
- description: 'Pattern router configuration',
45
- },
46
- VERIFIER_FIRST: {
47
- pattern: /## .*VERIFIER.FIRST/i,
48
- description: 'Verifier-first protocol (baseline before changes)',
49
- },
50
- PRE_EDIT_BUILD: {
51
- pattern: /## .*Pre-Edit\s+Build\s+Gate/i,
52
- description: 'Pre-edit build gate enforcement',
53
- },
54
- };
55
- /**
56
- * Optional but recommended sections.
57
- */
58
- const RECOMMENDED_SECTIONS = {
59
- MEMORY_SYSTEM: {
60
- pattern: /## .*Memory|memory.*system/i,
61
- description: 'Memory system configuration',
62
- },
63
- BROWSER_USAGE: {
64
- pattern: /## .*Browser|browser.*usage/i,
65
- description: 'Browser automation guidelines',
66
- },
67
- TROUBLESHOOTING: {
68
- pattern: /## .*Troubleshoot/i,
69
- description: 'Troubleshooting section',
70
- },
71
- };
72
- /**
73
- * Validate that CLAUDE.md contains all required RTK sections.
74
- *
75
- * @param projectDir - Project root directory (defaults to cwd)
76
- * @returns Validation result with missing/found sections
77
- */
78
- export function validateRTKIncludes(projectDir) {
79
- const dir = projectDir || process.cwd();
80
- const claudeMdPath = join(dir, 'CLAUDE.md');
81
- if (!existsSync(claudeMdPath)) {
82
- return {
83
- valid: false,
84
- missing: Object.keys(REQUIRED_SECTIONS),
85
- found: [],
86
- warnings: ['CLAUDE.md not found in project root'],
87
- };
88
- }
89
- const content = readFileSync(claudeMdPath, 'utf-8');
90
- const missing = [];
91
- const found = [];
92
- const warnings = [];
93
- // Check required sections
94
- for (const [name, { pattern }] of Object.entries(REQUIRED_SECTIONS)) {
95
- if (pattern.test(content)) {
96
- found.push(name);
97
- }
98
- else {
99
- missing.push(name);
100
- }
101
- }
102
- // Check recommended sections (warnings only)
103
- for (const [name, { pattern, description: desc }] of Object.entries(RECOMMENDED_SECTIONS)) {
104
- if (!pattern.test(content)) {
105
- warnings.push(`Recommended section missing: ${name} (${desc})`);
106
- }
107
- }
108
- // Check for ENFORCEMENT_CHECKS comment
109
- const enforcementMatch = content.match(/ENFORCEMENT_CHECKS:\s*([A-Z_,\s]+)/);
110
- if (enforcementMatch) {
111
- const declaredChecks = enforcementMatch[1]
112
- .split(',')
113
- .map((s) => s.trim())
114
- .filter(Boolean);
115
- // Verify all declared checks have corresponding sections
116
- for (const check of declaredChecks) {
117
- if (!REQUIRED_SECTIONS[check] && !found.includes(check)) {
118
- warnings.push(`Declared enforcement check "${check}" has no matching section`);
119
- }
120
- }
121
- }
122
- else {
123
- warnings.push('No ENFORCEMENT_CHECKS comment found in CLAUDE.md');
124
- }
125
- // Check template version
126
- const versionMatch = content.match(/TEMPLATE_VERSION:\s*([\d.]+)/);
127
- if (!versionMatch) {
128
- warnings.push('No TEMPLATE_VERSION found in CLAUDE.md');
129
- }
130
- return {
131
- valid: missing.length === 0,
132
- missing,
133
- found,
134
- warnings,
135
- };
136
- }
137
- // printRTKValidation removed — was exported but never called from any consumer
138
- //# sourceMappingURL=rtk-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rtk-validation.js","sourceRoot":"","sources":["../../src/cli/rtk-validation.ts"],"names":[],"mappings":"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"}
package/dist/cli/uap.d.ts DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Universal Agent Protocol (UAP) CLI
4
- *
5
- * This is the main UAP command-line interface that works independently
6
- * from opencode. It provides project initialization, configuration,
7
- * and integration with various agent harnesses.
8
- */
9
- export {};
10
- //# sourceMappingURL=uap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uap.d.ts","sourceRoot":"","sources":["../../src/cli/uap.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/cli/uap.js DELETED
@@ -1,457 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Universal Agent Protocol (UAP) CLI
4
- *
5
- * This is the main UAP command-line interface that works independently
6
- * from opencode. It provides project initialization, configuration,
7
- * and integration with various agent harnesses.
8
- */
9
- import { execSync } from 'child_process';
10
- import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
11
- import path from 'path';
12
- import { fileURLToPath } from 'url';
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = path.dirname(__filename);
15
- const projectRoot = path.resolve(__dirname, '..', '..');
16
- const UAP_VERSION = '2.0.2';
17
- // Import RTK integration
18
- import { installRTK, checkRTKStatus, showRTKHelp } from './rtk.js';
19
- class UAPCli {
20
- async run(args) {
21
- const command = args[0];
22
- switch (command) {
23
- case 'init':
24
- await this.init();
25
- break;
26
- case 'setup':
27
- await this.setup(args.slice(1));
28
- break;
29
- case 'install': {
30
- // Check if user wants to install RTK
31
- const subCommand = args[1];
32
- if (subCommand === 'rtk') {
33
- await installRTK({
34
- force: args.includes('--force'),
35
- method: args.includes('--method')
36
- ? args[args.indexOf('--method') + 1]
37
- : undefined,
38
- });
39
- return;
40
- }
41
- await this.install(args.slice(1));
42
- break;
43
- }
44
- case 'rtk': {
45
- // RTK subcommand
46
- const rtkSubCommand = args[1];
47
- if (rtkSubCommand === 'install') {
48
- await installRTK({
49
- force: args.includes('--force'),
50
- method: args.includes('--method')
51
- ? args[args.indexOf('--method') + 1]
52
- : undefined,
53
- });
54
- }
55
- else if (rtkSubCommand === 'status') {
56
- await checkRTKStatus();
57
- }
58
- else if (rtkSubCommand === 'help' || !rtkSubCommand) {
59
- showRTKHelp();
60
- }
61
- else {
62
- console.log(`Unknown RTK command: ${rtkSubCommand}`);
63
- showRTKHelp();
64
- }
65
- return;
66
- }
67
- case 'uninstall':
68
- await this.uninstall();
69
- break;
70
- case 'hooks':
71
- await this.hooks(args.slice(1));
72
- break;
73
- case 'plugins':
74
- await this.plugins(args.slice(1));
75
- break;
76
- case 'version':
77
- case '-v':
78
- case '--version':
79
- console.log(`uap version ${UAP_VERSION}`);
80
- break;
81
- case '--help':
82
- case '-h':
83
- default:
84
- this.printHelp();
85
- break;
86
- }
87
- }
88
- printHelp() {
89
- console.log(`
90
- Universal Agent Protocol (UAP) v${UAP_VERSION}
91
- AI agents that learn and remember across sessions
92
-
93
- USAGE:
94
- uap <command> [options]
95
-
96
- COMMANDS:
97
- init Initialize UAP in current project
98
- setup [options] Run comprehensive UAP setup
99
- install Install UAP plugins for specific harness (opencode, etc.)
100
- or install RTK CLI proxy with "uap install rtk"
101
- rtk Manage RTK (Rust Token Killer) integration
102
- install Install RTK CLI proxy for 60-90% token savings
103
- status Check RTK installation and token savings
104
- help Show RTK usage information
105
- uninstall Remove UAP from current project
106
- hooks Manage UAP hooks
107
- plugins List and manage UAP plugins
108
-
109
- OPTIONS:
110
- -p, --project Target project directory
111
- -h, --harness Target agent harness (opencode, claude-code, etc.)
112
- -f, --force Force operations without confirmation
113
- -v, --verbose Enable verbose output
114
- --version Show version number
115
- --help Show this help message
116
-
117
- EXAMPLES:
118
- uap init # Initialize UAP in current directory
119
- uap setup -p all # Full setup with all components
120
- uap install opencode # Install UAP plugins for opencode harness
121
- uap install rtk # Install RTK CLI proxy (60-90% token savings)
122
- uap rtk status # Check RTK installation and savings
123
- uap hooks list # List available hooks
124
-
125
- INTEGRATION:
126
- RTK works alongside UAP's MCP Router for maximum token savings:
127
-
128
- - MCP Router (~98% savings): Hides 150+ tools behind 2 meta-tools
129
- - RTK (60-90% savings): Filters CLI command output before LLM sees it
130
-
131
- Combined: 95%+ total token reduction
132
- `);
133
- }
134
- async init() {
135
- console.log('🔧 Initializing Universal Agent Protocol...\n');
136
- const projectDir = process.cwd();
137
- const uapConfig = path.join(projectDir, '.uap.json');
138
- const claudeMd = path.join(projectDir, 'CLAUDE.md');
139
- // Create .uap.json config
140
- const config = {
141
- version: UAP_VERSION,
142
- project: projectDir,
143
- initialized: true,
144
- timestamp: new Date().toISOString(),
145
- features: {
146
- memory: true,
147
- hooks: true,
148
- plugins: true,
149
- droids: false,
150
- skills: false,
151
- },
152
- };
153
- writeFileSync(uapConfig, JSON.stringify(config, null, 2));
154
- console.log('✓ Created .uap.json configuration');
155
- // Check if CLAUDE.md exists
156
- if (!existsSync(claudeMd)) {
157
- console.log('ℹ No CLAUDE.md found. You can create one manually or with: uap setup -p claude-md');
158
- }
159
- else {
160
- console.log('✓ CLAUDE.md detected');
161
- }
162
- console.log('\n✅ UAP initialized successfully!');
163
- console.log(`\nNext steps:`);
164
- console.log(` uap setup -p all # Run full setup`);
165
- console.log(` uap install opencode # Install for opencode harness`);
166
- }
167
- async setup(args) {
168
- console.log('🔧 Running UAP setup...\n');
169
- const projectDir = process.cwd();
170
- // Check if initialized
171
- const uapConfigPath = path.join(projectDir, '.uap.json');
172
- if (!existsSync(uapConfigPath)) {
173
- console.log('❌ UAP not initialized. Run: uap init');
174
- return;
175
- }
176
- const config = JSON.parse(readFileSync(uapConfigPath, 'utf8'));
177
- // Install components based on options
178
- const hasAll = args.includes('-p') || args.includes('--project');
179
- const setupMemory = hasAll || args.includes('memory');
180
- const setupHooks = hasAll || args.includes('hooks');
181
- const setupMCP = hasAll || args.includes('mcp-router');
182
- if (setupMemory) {
183
- await this.installMemory(projectDir);
184
- }
185
- if (setupHooks) {
186
- await this.installHooks(projectDir);
187
- }
188
- if (setupMCP) {
189
- await this.installMCPRouter(projectDir);
190
- }
191
- // Update config
192
- config.lastSetup = new Date().toISOString();
193
- writeFileSync(uapConfigPath, JSON.stringify(config, null, 2));
194
- console.log('\n✅ UAP setup complete!');
195
- }
196
- async install(args) {
197
- if (args.length === 0) {
198
- console.log('❌ Please specify a harness: uap install <harness>');
199
- console.log('Available harnesses: opencode, claude-code, etc.');
200
- return;
201
- }
202
- const harness = args[0];
203
- console.log(`🔧 Installing UAP plugins for ${harness}...\n`);
204
- switch (harness) {
205
- case 'opencode':
206
- await this.installForOpencode();
207
- break;
208
- case 'claude-code':
209
- await this.installForClaudeCode();
210
- break;
211
- default:
212
- console.log(`ℹ Plugin installation for ${harness} not yet implemented.`);
213
- console.log('Available harnesses: opencode, claude-code');
214
- }
215
- }
216
- async installForOpencode() {
217
- const homeDir = process.env.HOME || '/tmp';
218
- const opencodeDir = path.join(homeDir, '.opencode');
219
- const pluginsDir = path.join(opencodeDir, 'plugin');
220
- if (!existsSync(opencodeDir)) {
221
- console.log(`ℹ Opencode not found at ${opencodeDir}`);
222
- console.log('Installing UAP to opencode...');
223
- mkdirSync(pluginsDir, { recursive: true });
224
- }
225
- else {
226
- mkdirSync(pluginsDir, { recursive: true });
227
- }
228
- await this.copyPluginsToDir(pluginsDir);
229
- // Create opencode config if needed
230
- const opencodeConfig = path.join(opencodeDir, 'config.json');
231
- if (!existsSync(opencodeConfig)) {
232
- const config = {
233
- uapEnabled: true,
234
- uapVersion: UAP_VERSION,
235
- installedAt: new Date().toISOString(),
236
- };
237
- writeFileSync(opencodeConfig, JSON.stringify(config, null, 2));
238
- console.log('✓ Created opencode config with UAP integration');
239
- }
240
- console.log('\n✅ UAP successfully integrated with opencode!');
241
- }
242
- async installForClaudeCode() {
243
- const homeDir = process.env.HOME || '/tmp';
244
- const claudeCodeDir = path.join(homeDir, '.claude', 'code');
245
- const hooksDir = path.join(claudeCodeDir, '.factory', 'hooks');
246
- if (!existsSync(claudeCodeDir)) {
247
- console.log(`ℹ Claude Code not found at ${claudeCodeDir}`);
248
- console.log('Installing UAP to claude-code...');
249
- mkdirSync(hooksDir, { recursive: true });
250
- }
251
- else {
252
- mkdirSync(hooksDir, { recursive: true });
253
- }
254
- // Copy hook scripts for claude-code from plugin directory
255
- const hooks = ['session-start.sh', 'pre-compact.sh'];
256
- for (const hook of hooks) {
257
- const src = path.join(projectRoot, 'tools', 'agents', 'plugin', hook);
258
- const dest = path.join(hooksDir, hook);
259
- if (existsSync(src)) {
260
- try {
261
- const content = readFileSync(src, 'utf8');
262
- writeFileSync(dest, content);
263
- console.log(`✓ Installed ${hook}`);
264
- }
265
- catch (e) {
266
- console.log(`✗ Failed to install ${hook}: ${e}`);
267
- }
268
- }
269
- else {
270
- console.log(`ℹ Hook not found: ${hook}`);
271
- }
272
- }
273
- // Create claude-code config if needed
274
- const claudeConfig = path.join(claudeCodeDir, 'config.json');
275
- if (!existsSync(claudeConfig)) {
276
- const config = {
277
- uapEnabled: true,
278
- uapVersion: UAP_VERSION,
279
- installedAt: new Date().toISOString(),
280
- };
281
- writeFileSync(claudeConfig, JSON.stringify(config, null, 2));
282
- console.log('✓ Created claude-code config with UAP integration');
283
- }
284
- console.log('\n✅ UAP successfully integrated with claude-code!');
285
- }
286
- async copyPluginsToDir(destDir) {
287
- const uapPlugins = [
288
- 'uap-commands.ts',
289
- 'uap-droids.ts',
290
- 'uap-skills.ts',
291
- 'uap-patterns.ts',
292
- 'session-start.sh',
293
- 'pre-compact.sh',
294
- ];
295
- for (const plugin of uapPlugins) {
296
- const src = path.join(projectRoot, 'tools', 'agents', 'plugin', plugin);
297
- const dest = path.join(destDir, plugin);
298
- if (existsSync(src)) {
299
- try {
300
- const content = readFileSync(src, 'utf8');
301
- writeFileSync(dest, content);
302
- console.log(`✓ Installed ${plugin}`);
303
- }
304
- catch (e) {
305
- console.log(`✗ Failed to install ${plugin}: ${e}`);
306
- }
307
- }
308
- else {
309
- console.log(`ℹ Plugin not found: ${plugin}`);
310
- }
311
- }
312
- }
313
- async installMemory(projectDir) {
314
- console.log('🔧 Setting up memory system...');
315
- const memoryDir = path.join(projectDir, 'agents', 'data', 'memory');
316
- mkdirSync(memoryDir, { recursive: true });
317
- const shortTermDB = path.join(memoryDir, 'short_term.db');
318
- const longTermDB = path.join(memoryDir, 'long_term.db');
319
- // Initialize SQLite databases
320
- try {
321
- execSync(`sqlite3 ${shortTermDB} "CREATE TABLE IF NOT EXISTS memories (id INTEGER PRIMARY KEY, content TEXT, metadata TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);"`);
322
- console.log('✓ Created short-term memory database');
323
- execSync(`sqlite3 ${longTermDB} "CREATE TABLE IF NOT EXISTS lessons (id INTEGER PRIMARY KEY, title TEXT, content TEXT, category TEXT, importance INTEGER, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);"`);
324
- console.log('✓ Created long-term memory database');
325
- }
326
- catch (e) {
327
- console.log('ℹ SQLite not available for in-memory setup');
328
- }
329
- console.log('✅ Memory system initialized!');
330
- }
331
- async installHooks(projectDir) {
332
- console.log('🔧 Installing UAP hooks...');
333
- const hooksDir = path.join(projectDir, '.factory', 'hooks');
334
- mkdirSync(hooksDir, { recursive: true });
335
- // Copy hook scripts
336
- const hooks = ['session-start.sh', 'pre-compact.sh'];
337
- for (const hook of hooks) {
338
- const src = path.join(projectRoot, '.factory', 'hooks', hook);
339
- const dest = path.join(hooksDir, hook);
340
- if (existsSync(src)) {
341
- try {
342
- const content = readFileSync(src, 'utf8');
343
- writeFileSync(dest, content);
344
- console.log(`✓ Installed ${hook}`);
345
- }
346
- catch (e) {
347
- console.log(`✗ Failed to install ${hook}: ${e}`);
348
- }
349
- }
350
- else {
351
- console.log(`ℹ Hook not found: ${hook}`);
352
- }
353
- }
354
- console.log('✅ Hooks installed!');
355
- }
356
- async installMCPRouter(projectDir) {
357
- console.log('Setting up MCP Router...');
358
- // Discover existing MCP server configurations
359
- const mcpConfigPaths = [
360
- path.join(projectDir, '.claude', 'settings.json'),
361
- path.join(projectDir, '.cursor', 'mcp.json'),
362
- path.join(projectDir, 'mcp.json'),
363
- path.join(projectDir, '.vscode', 'mcp.json'),
364
- ];
365
- const discoveredServers = {};
366
- for (const configPath of mcpConfigPaths) {
367
- if (existsSync(configPath)) {
368
- try {
369
- const config = JSON.parse(readFileSync(configPath, 'utf8'));
370
- const servers = config.mcpServers || config.servers || {};
371
- for (const [name, serverConfig] of Object.entries(servers)) {
372
- if (!discoveredServers[name]) {
373
- discoveredServers[name] = serverConfig;
374
- console.log(` Found MCP server: ${name} (from ${path.basename(configPath)})`);
375
- }
376
- }
377
- }
378
- catch {
379
- // Skip invalid configs
380
- }
381
- }
382
- }
383
- // Generate router configuration
384
- const routerConfig = {
385
- version: '1.0.0',
386
- router: {
387
- name: 'uap-mcp-router',
388
- description: 'UAP MCP Router - reduces tool context by 98%+',
389
- exposedTools: ['discover_tools', 'execute_tool'],
390
- },
391
- servers: {},
392
- };
393
- // Add discovered servers
394
- for (const [name, config] of Object.entries(discoveredServers)) {
395
- routerConfig.servers[name] = {
396
- ...config,
397
- enabled: true,
398
- };
399
- }
400
- // Add self-exclusion to prevent routing loops
401
- routerConfig.servers['uap-mcp-router'] = {
402
- enabled: false,
403
- comment: 'Self-exclusion to prevent routing loops',
404
- };
405
- // Write router config
406
- const routerConfigPath = path.join(projectDir, '.mcp-router.json');
407
- writeFileSync(routerConfigPath, JSON.stringify(routerConfig, null, 2));
408
- console.log(` Created router config: .mcp-router.json`);
409
- // Report results
410
- const serverCount = Object.keys(discoveredServers).length;
411
- if (serverCount > 0) {
412
- console.log(` Discovered ${serverCount} MCP server(s)`);
413
- console.log(` Router will expose 2 meta-tools instead of ${serverCount * 15}+ raw tools`);
414
- }
415
- else {
416
- console.log(' No existing MCP servers found. Add servers to .mcp-router.json manually.');
417
- }
418
- console.log('MCP Router setup complete!');
419
- console.log(' Start: npx uap mcp-router start');
420
- }
421
- async uninstall() {
422
- console.log('❌ UAP uninstall not yet implemented');
423
- console.log('To manually remove UAP:');
424
- console.log(' rm -rf .uap.json .factory/hooks agents/data/memory');
425
- }
426
- async hooks(args) {
427
- const command = args[0];
428
- switch (command) {
429
- case 'list':
430
- console.log('Available UAP hooks:');
431
- console.log(' - session-start: Run at session initialization');
432
- console.log(' - pre-compact: Run before context compression');
433
- console.log(' - post-complete: Run after task completion');
434
- break;
435
- case 'install':
436
- await this.installHooks(process.cwd());
437
- break;
438
- default:
439
- this.printHelp();
440
- }
441
- }
442
- async plugins(args) {
443
- console.log('UAP Plugins:');
444
- console.log(' - uap-session-hooks: Session management hooks');
445
- console.log(' - uap-commands: UAP command definitions');
446
- console.log(' - uap-droids: Specialized agent droids');
447
- console.log(' - uap-skills: Domain-specific skills');
448
- console.log(' - uap-patterns: Reusable coding patterns');
449
- if (args[0] === 'install') {
450
- await this.install(args.slice(1));
451
- }
452
- }
453
- }
454
- // Main entry point
455
- const cli = new UAPCli();
456
- cli.run(process.argv.slice(2)).catch(console.error);
457
- //# sourceMappingURL=uap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uap.js","sourceRoot":"","sources":["../../src/cli/uap.ts"],"names":[],"mappings":"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"}