universal-agent-memory 0.1.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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +321 -0
  3. package/dist/analyzers/index.d.ts +3 -0
  4. package/dist/analyzers/index.d.ts.map +1 -0
  5. package/dist/analyzers/index.js +373 -0
  6. package/dist/analyzers/index.js.map +1 -0
  7. package/dist/bin/cli.d.ts +3 -0
  8. package/dist/bin/cli.d.ts.map +1 -0
  9. package/dist/bin/cli.js +119 -0
  10. package/dist/bin/cli.js.map +1 -0
  11. package/dist/cli/analyze.d.ts +7 -0
  12. package/dist/cli/analyze.d.ts.map +1 -0
  13. package/dist/cli/analyze.js +103 -0
  14. package/dist/cli/analyze.js.map +1 -0
  15. package/dist/cli/droids.d.ts +9 -0
  16. package/dist/cli/droids.d.ts.map +1 -0
  17. package/dist/cli/droids.js +227 -0
  18. package/dist/cli/droids.js.map +1 -0
  19. package/dist/cli/generate.d.ts +9 -0
  20. package/dist/cli/generate.d.ts.map +1 -0
  21. package/dist/cli/generate.js +203 -0
  22. package/dist/cli/generate.js.map +1 -0
  23. package/dist/cli/init.d.ts +12 -0
  24. package/dist/cli/init.d.ts.map +1 -0
  25. package/dist/cli/init.js +260 -0
  26. package/dist/cli/init.js.map +1 -0
  27. package/dist/cli/memory.d.ts +15 -0
  28. package/dist/cli/memory.d.ts.map +1 -0
  29. package/dist/cli/memory.js +274 -0
  30. package/dist/cli/memory.js.map +1 -0
  31. package/dist/cli/sync.d.ts +7 -0
  32. package/dist/cli/sync.d.ts.map +1 -0
  33. package/dist/cli/sync.js +26 -0
  34. package/dist/cli/sync.js.map +1 -0
  35. package/dist/cli/worktree.d.ts +9 -0
  36. package/dist/cli/worktree.d.ts.map +1 -0
  37. package/dist/cli/worktree.js +175 -0
  38. package/dist/cli/worktree.js.map +1 -0
  39. package/dist/generators/claude-md.d.ts +3 -0
  40. package/dist/generators/claude-md.d.ts.map +1 -0
  41. package/dist/generators/claude-md.js +643 -0
  42. package/dist/generators/claude-md.js.map +1 -0
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +4 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/memory/backends/base.d.ts +18 -0
  48. package/dist/memory/backends/base.d.ts.map +1 -0
  49. package/dist/memory/backends/base.js +2 -0
  50. package/dist/memory/backends/base.js.map +1 -0
  51. package/dist/memory/backends/factory.d.ts +4 -0
  52. package/dist/memory/backends/factory.d.ts.map +1 -0
  53. package/dist/memory/backends/factory.js +52 -0
  54. package/dist/memory/backends/factory.js.map +1 -0
  55. package/dist/memory/backends/github.d.ts +22 -0
  56. package/dist/memory/backends/github.d.ts.map +1 -0
  57. package/dist/memory/backends/github.js +118 -0
  58. package/dist/memory/backends/github.js.map +1 -0
  59. package/dist/memory/backends/qdrant-cloud.d.ts +19 -0
  60. package/dist/memory/backends/qdrant-cloud.d.ts.map +1 -0
  61. package/dist/memory/backends/qdrant-cloud.js +111 -0
  62. package/dist/memory/backends/qdrant-cloud.js.map +1 -0
  63. package/dist/memory/prepopulate.d.ts +76 -0
  64. package/dist/memory/prepopulate.d.ts.map +1 -0
  65. package/dist/memory/prepopulate.js +815 -0
  66. package/dist/memory/prepopulate.js.map +1 -0
  67. package/dist/memory/short-term/factory.d.ts +23 -0
  68. package/dist/memory/short-term/factory.d.ts.map +1 -0
  69. package/dist/memory/short-term/factory.js +28 -0
  70. package/dist/memory/short-term/factory.js.map +1 -0
  71. package/dist/memory/short-term/indexeddb.d.ts +25 -0
  72. package/dist/memory/short-term/indexeddb.d.ts.map +1 -0
  73. package/dist/memory/short-term/indexeddb.js +64 -0
  74. package/dist/memory/short-term/indexeddb.js.map +1 -0
  75. package/dist/memory/short-term/sqlite.d.ts +40 -0
  76. package/dist/memory/short-term/sqlite.d.ts.map +1 -0
  77. package/dist/memory/short-term/sqlite.js +136 -0
  78. package/dist/memory/short-term/sqlite.js.map +1 -0
  79. package/dist/types/analysis.d.ts +82 -0
  80. package/dist/types/analysis.d.ts.map +1 -0
  81. package/dist/types/analysis.js +2 -0
  82. package/dist/types/analysis.js.map +1 -0
  83. package/dist/types/config.d.ts +923 -0
  84. package/dist/types/config.d.ts.map +1 -0
  85. package/dist/types/config.js +97 -0
  86. package/dist/types/config.js.map +1 -0
  87. package/dist/types/index.d.ts +3 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +3 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/utils/merge-claude-md.d.ts +15 -0
  92. package/dist/utils/merge-claude-md.d.ts.map +1 -0
  93. package/dist/utils/merge-claude-md.js +149 -0
  94. package/dist/utils/merge-claude-md.js.map +1 -0
  95. package/package.json +90 -0
  96. package/templates/CLAUDE.template.md +632 -0
@@ -0,0 +1,260 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import inquirer from 'inquirer';
4
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
5
+ import { join } from 'path';
6
+ import { analyzeProject } from '../analyzers/index.js';
7
+ import { generateClaudeMd } from '../generators/claude-md.js';
8
+ import { mergeClaudeMd } from '../utils/merge-claude-md.js';
9
+ const PLATFORM_MAP = {
10
+ claude: 'claudeCode',
11
+ factory: 'factory',
12
+ vscode: 'vscode',
13
+ opencode: 'opencode',
14
+ };
15
+ export async function initCommand(options) {
16
+ const cwd = process.cwd();
17
+ const configPath = join(cwd, '.uam.json');
18
+ console.log(chalk.bold('\nšŸš€ Universal Agent Memory Initialization\n'));
19
+ // Check for existing config
20
+ if (existsSync(configPath) && !options.force) {
21
+ const { overwrite } = await inquirer.prompt([
22
+ {
23
+ type: 'confirm',
24
+ name: 'overwrite',
25
+ message: 'Configuration already exists. Overwrite?',
26
+ default: false,
27
+ },
28
+ ]);
29
+ if (!overwrite) {
30
+ console.log(chalk.yellow('Initialization cancelled.'));
31
+ return;
32
+ }
33
+ }
34
+ // Determine platforms
35
+ const platforms = options.platform.includes('all')
36
+ ? ['claudeCode', 'factory', 'vscode', 'opencode']
37
+ : options.platform.map((p) => PLATFORM_MAP[p] || p);
38
+ // Analyze project
39
+ const spinner = ora('Analyzing project structure...').start();
40
+ let analysis;
41
+ try {
42
+ analysis = await analyzeProject(cwd);
43
+ spinner.succeed(`Analyzed: ${analysis.projectName}`);
44
+ }
45
+ catch (error) {
46
+ spinner.fail('Failed to analyze project');
47
+ console.error(chalk.red(error));
48
+ return;
49
+ }
50
+ // Display analysis summary
51
+ console.log(chalk.dim('\nDetected:'));
52
+ console.log(chalk.dim(` Languages: ${analysis.languages.join(', ') || 'none detected'}`));
53
+ console.log(chalk.dim(` Frameworks: ${analysis.frameworks.join(', ') || 'none detected'}`));
54
+ console.log(chalk.dim(` Databases: ${analysis.databases.map((d) => d.type).join(', ') || 'none detected'}`));
55
+ // Prompt for additional options if not specified
56
+ const answers = await inquirer.prompt([
57
+ {
58
+ type: 'confirm',
59
+ name: 'withMemory',
60
+ message: 'Set up memory system (SQLite + Qdrant)?',
61
+ default: true,
62
+ when: () => options.withMemory === undefined,
63
+ },
64
+ {
65
+ type: 'confirm',
66
+ name: 'withWorktrees',
67
+ message: 'Set up git worktree workflow?',
68
+ default: true,
69
+ when: () => options.withWorktrees === undefined,
70
+ },
71
+ ]);
72
+ const withMemory = options.withMemory ?? answers.withMemory ?? true;
73
+ const withWorktrees = options.withWorktrees ?? answers.withWorktrees ?? true;
74
+ // Build configuration
75
+ const config = {
76
+ $schema: 'https://raw.githubusercontent.com/DammianMiller/universal-agent-memory/main/schema.json',
77
+ version: '1.0.0',
78
+ project: {
79
+ name: analysis.projectName,
80
+ description: analysis.description,
81
+ defaultBranch: analysis.defaultBranch,
82
+ },
83
+ platforms: {
84
+ claudeCode: { enabled: platforms.includes('claudeCode') },
85
+ factory: { enabled: platforms.includes('factory') },
86
+ vscode: { enabled: platforms.includes('vscode') },
87
+ opencode: { enabled: platforms.includes('opencode') },
88
+ },
89
+ memory: withMemory
90
+ ? {
91
+ shortTerm: {
92
+ enabled: true,
93
+ path: './agents/data/memory/short_term.db',
94
+ webDatabase: 'agent_context_memory',
95
+ maxEntries: 50,
96
+ forceDesktop: false,
97
+ },
98
+ longTerm: {
99
+ enabled: true,
100
+ provider: 'qdrant',
101
+ endpoint: 'localhost:6333',
102
+ collection: 'agent_memory',
103
+ embeddingModel: 'all-MiniLM-L6-v2',
104
+ },
105
+ }
106
+ : undefined,
107
+ worktrees: withWorktrees
108
+ ? {
109
+ enabled: true,
110
+ directory: '.worktrees',
111
+ branchPrefix: 'feature/',
112
+ autoCleanup: true,
113
+ }
114
+ : undefined,
115
+ droids: [],
116
+ commands: [],
117
+ template: {
118
+ extends: 'default',
119
+ sections: {
120
+ memorySystem: withMemory,
121
+ browserUsage: true,
122
+ decisionLoop: true,
123
+ worktreeWorkflow: withWorktrees,
124
+ troubleshooting: true,
125
+ augmentedCapabilities: true,
126
+ },
127
+ },
128
+ };
129
+ // Write configuration
130
+ const configSpinner = ora('Writing configuration...').start();
131
+ try {
132
+ writeFileSync(configPath, JSON.stringify(config, null, 2));
133
+ configSpinner.succeed('Created .uam.json');
134
+ }
135
+ catch (error) {
136
+ configSpinner.fail('Failed to write configuration');
137
+ console.error(chalk.red(error));
138
+ return;
139
+ }
140
+ // Create directory structure
141
+ const dirsSpinner = ora('Creating directory structure...').start();
142
+ try {
143
+ const dirs = [
144
+ 'agents/data/memory',
145
+ 'agents/data/screenshots',
146
+ 'agents/scripts',
147
+ ];
148
+ if (withWorktrees) {
149
+ dirs.push('.worktrees');
150
+ }
151
+ for (const dir of dirs) {
152
+ const fullPath = join(cwd, dir);
153
+ if (!existsSync(fullPath)) {
154
+ mkdirSync(fullPath, { recursive: true });
155
+ }
156
+ }
157
+ dirsSpinner.succeed('Created directory structure');
158
+ }
159
+ catch (error) {
160
+ dirsSpinner.fail('Failed to create directories');
161
+ console.error(chalk.red(error));
162
+ }
163
+ // Generate CLAUDE.md
164
+ const claudeMdPath = join(cwd, 'CLAUDE.md');
165
+ const agentMdPath = join(cwd, 'AGENT.md');
166
+ const claudeMdExists = existsSync(claudeMdPath);
167
+ const agentMdExists = existsSync(agentMdPath);
168
+ let existingContent;
169
+ let targetPath = claudeMdPath;
170
+ let shouldGenerateClaude = true;
171
+ if ((claudeMdExists || agentMdExists) && !options.force) {
172
+ // Read existing content
173
+ if (claudeMdExists) {
174
+ existingContent = readFileSync(claudeMdPath, 'utf-8');
175
+ targetPath = claudeMdPath;
176
+ }
177
+ else if (agentMdExists) {
178
+ existingContent = readFileSync(agentMdPath, 'utf-8');
179
+ targetPath = agentMdPath;
180
+ }
181
+ const { action } = await inquirer.prompt([
182
+ {
183
+ type: 'list',
184
+ name: 'action',
185
+ message: `${claudeMdExists ? 'CLAUDE.md' : 'AGENT.md'} already exists. What would you like to do?`,
186
+ choices: [
187
+ { name: 'Merge with existing content (recommended)', value: 'merge' },
188
+ { name: 'Overwrite completely', value: 'overwrite' },
189
+ { name: 'Skip generation', value: 'skip' },
190
+ ],
191
+ default: 'merge',
192
+ },
193
+ ]);
194
+ if (action === 'skip') {
195
+ shouldGenerateClaude = false;
196
+ console.log(chalk.dim('Skipping CLAUDE.md generation'));
197
+ }
198
+ else if (action === 'overwrite') {
199
+ existingContent = undefined;
200
+ }
201
+ }
202
+ if (shouldGenerateClaude) {
203
+ const claudeSpinner = ora(`${existingContent ? 'Merging' : 'Generating'} CLAUDE.md...`).start();
204
+ try {
205
+ const newClaudeMd = await generateClaudeMd(analysis, config);
206
+ const claudeMd = existingContent ? mergeClaudeMd(existingContent, newClaudeMd) : newClaudeMd;
207
+ writeFileSync(targetPath, claudeMd);
208
+ claudeSpinner.succeed(`${existingContent ? 'Merged and updated' : 'Generated'} ${targetPath.endsWith('CLAUDE.md') ? 'CLAUDE.md' : 'AGENT.md'}`);
209
+ if (existingContent) {
210
+ console.log(chalk.dim(' Preserved custom sections from existing file'));
211
+ }
212
+ }
213
+ catch (error) {
214
+ claudeSpinner.fail(`Failed to ${existingContent ? 'merge' : 'generate'} CLAUDE.md`);
215
+ console.error(chalk.red(error));
216
+ }
217
+ }
218
+ // Platform-specific setup
219
+ for (const platform of platforms) {
220
+ const platformSpinner = ora(`Setting up ${platform}...`).start();
221
+ try {
222
+ await setupPlatform(cwd, platform, config);
223
+ platformSpinner.succeed(`Set up ${platform}`);
224
+ }
225
+ catch (error) {
226
+ platformSpinner.fail(`Failed to set up ${platform}`);
227
+ console.error(chalk.red(error));
228
+ }
229
+ }
230
+ // Final summary
231
+ console.log(chalk.green('\nāœ… Initialization complete!\n'));
232
+ console.log(chalk.bold('Next steps:'));
233
+ console.log(' 1. Review and customize CLAUDE.md');
234
+ console.log(' 2. Review .uam.json configuration');
235
+ if (withMemory) {
236
+ console.log(' 3. Start memory services: uam memory start');
237
+ }
238
+ if (withWorktrees) {
239
+ console.log(' 4. Create your first worktree: uam worktree create <slug>');
240
+ }
241
+ console.log('');
242
+ }
243
+ async function setupPlatform(cwd, platform, _config) {
244
+ const platformDirs = {
245
+ claudeCode: ['.claude/agents', '.claude/commands'],
246
+ factory: ['.factory/droids', '.factory/commands', '.factory/skills', '.factory/scripts', '.factory/templates'],
247
+ vscode: ['.vscode'],
248
+ opencode: ['.opencode/agent', '.opencode/command'],
249
+ claudeWeb: [], // Web platforms don't need local directories
250
+ factoryWeb: [],
251
+ };
252
+ const dirs = platformDirs[platform] || [];
253
+ for (const dir of dirs) {
254
+ const fullPath = join(cwd, dir);
255
+ if (!existsSync(fullPath)) {
256
+ mkdirSync(fullPath, { recursive: true });
257
+ }
258
+ }
259
+ }
260
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ type MemoryAction = 'status' | 'start' | 'stop' | 'query' | 'store' | 'prepopulate';
2
+ interface MemoryOptions {
3
+ search?: string;
4
+ limit?: string;
5
+ content?: string;
6
+ tags?: string;
7
+ importance?: string;
8
+ docs?: boolean;
9
+ git?: boolean;
10
+ since?: string;
11
+ verbose?: boolean;
12
+ }
13
+ export declare function memoryCommand(action: MemoryAction, options?: MemoryOptions): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/cli/memory.ts"],"names":[],"mappings":"AAUA,KAAK,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC;AAEpF,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpG"}
@@ -0,0 +1,274 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { execSync } from 'child_process';
6
+ import { prepopulateMemory } from '../memory/prepopulate.js';
7
+ import { SQLiteShortTermMemory } from '../memory/short-term/sqlite.js';
8
+ import { AgentContextConfigSchema } from '../types/index.js';
9
+ export async function memoryCommand(action, options = {}) {
10
+ const cwd = process.cwd();
11
+ switch (action) {
12
+ case 'status':
13
+ await showStatus(cwd);
14
+ break;
15
+ case 'start':
16
+ await startServices(cwd);
17
+ break;
18
+ case 'stop':
19
+ await stopServices(cwd);
20
+ break;
21
+ case 'query':
22
+ await queryMemory(cwd, options.search, parseInt(options.limit || '10'));
23
+ break;
24
+ case 'store':
25
+ await storeMemory(cwd, options.content, options.tags, parseInt(options.importance || '5'));
26
+ break;
27
+ case 'prepopulate':
28
+ await prepopulateFromSources(cwd, options);
29
+ break;
30
+ }
31
+ }
32
+ async function showStatus(cwd) {
33
+ console.log(chalk.bold('\nšŸ“Š Memory System Status\n'));
34
+ // Check short-term memory
35
+ const shortTermPath = join(cwd, 'agents/data/memory/short_term.db');
36
+ if (existsSync(shortTermPath)) {
37
+ console.log(chalk.green('āœ“ Short-term memory: Active'));
38
+ console.log(chalk.dim(` Path: ${shortTermPath}`));
39
+ // TODO: Query for entry count
40
+ }
41
+ else {
42
+ console.log(chalk.yellow('ā—‹ Short-term memory: Not initialized'));
43
+ }
44
+ // Check Qdrant
45
+ console.log('');
46
+ try {
47
+ execSync('docker ps --filter name=qdrant --format "{{.Status}}"', { encoding: 'utf-8' });
48
+ const status = execSync('docker ps --filter name=qdrant --format "{{.Status}}"', { encoding: 'utf-8' }).trim();
49
+ if (status) {
50
+ console.log(chalk.green('āœ“ Long-term memory (Qdrant): Running'));
51
+ console.log(chalk.dim(` Status: ${status}`));
52
+ }
53
+ else {
54
+ console.log(chalk.yellow('ā—‹ Long-term memory (Qdrant): Not running'));
55
+ }
56
+ }
57
+ catch {
58
+ console.log(chalk.yellow('ā—‹ Long-term memory (Qdrant): Not available'));
59
+ console.log(chalk.dim(' Run `uam memory start` to initialize'));
60
+ }
61
+ // Check docker-compose
62
+ const composePath = join(cwd, 'agents/docker-compose.yml');
63
+ if (!existsSync(composePath)) {
64
+ const dockerPath = join(cwd, 'docker/docker-compose.yml');
65
+ if (!existsSync(dockerPath)) {
66
+ console.log(chalk.dim('\n No docker-compose.yml found. Memory services need manual setup.'));
67
+ }
68
+ }
69
+ console.log('');
70
+ }
71
+ async function startServices(cwd) {
72
+ const spinner = ora('Starting memory services...').start();
73
+ // Check for docker-compose file
74
+ const composePaths = [
75
+ join(cwd, 'agents/docker-compose.yml'),
76
+ join(cwd, 'docker/docker-compose.yml'),
77
+ ];
78
+ let composePath = null;
79
+ for (const path of composePaths) {
80
+ if (existsSync(path)) {
81
+ composePath = path;
82
+ break;
83
+ }
84
+ }
85
+ if (!composePath) {
86
+ // Create default docker-compose
87
+ spinner.text = 'Creating docker-compose.yml...';
88
+ const defaultCompose = `version: '3.8'
89
+
90
+ services:
91
+ qdrant:
92
+ image: qdrant/qdrant:latest
93
+ container_name: uam-qdrant
94
+ ports:
95
+ - "6333:6333"
96
+ - "6334:6334"
97
+ volumes:
98
+ - ./qdrant_data:/qdrant/storage
99
+ environment:
100
+ - QDRANT__SERVICE__GRPC_PORT=6334
101
+ restart: unless-stopped
102
+ `;
103
+ const agentsDir = join(cwd, 'agents');
104
+ if (!existsSync(agentsDir)) {
105
+ mkdirSync(agentsDir, { recursive: true });
106
+ }
107
+ composePath = join(agentsDir, 'docker-compose.yml');
108
+ writeFileSync(composePath, defaultCompose);
109
+ }
110
+ try {
111
+ execSync(`docker-compose -f "${composePath}" up -d`, { encoding: 'utf-8', stdio: 'pipe' });
112
+ spinner.succeed('Memory services started');
113
+ console.log(chalk.dim(' Qdrant available at http://localhost:6333'));
114
+ }
115
+ catch (error) {
116
+ spinner.fail('Failed to start memory services');
117
+ console.error(chalk.red('Make sure Docker is installed and running'));
118
+ console.error(error);
119
+ }
120
+ }
121
+ async function stopServices(cwd) {
122
+ const spinner = ora('Stopping memory services...').start();
123
+ const composePaths = [
124
+ join(cwd, 'agents/docker-compose.yml'),
125
+ join(cwd, 'docker/docker-compose.yml'),
126
+ ];
127
+ let composePath = null;
128
+ for (const path of composePaths) {
129
+ if (existsSync(path)) {
130
+ composePath = path;
131
+ break;
132
+ }
133
+ }
134
+ if (!composePath) {
135
+ spinner.fail('No docker-compose.yml found');
136
+ return;
137
+ }
138
+ try {
139
+ execSync(`docker-compose -f "${composePath}" down`, { encoding: 'utf-8', stdio: 'pipe' });
140
+ spinner.succeed('Memory services stopped');
141
+ }
142
+ catch (error) {
143
+ spinner.fail('Failed to stop memory services');
144
+ console.error(error);
145
+ }
146
+ }
147
+ async function queryMemory(_cwd, search, limit) {
148
+ console.log(chalk.bold(`\nšŸ” Searching for: "${search}" (limit: ${limit})\n`));
149
+ // TODO: Implement actual Qdrant query
150
+ console.log(chalk.yellow('Memory query not yet implemented'));
151
+ console.log(chalk.dim('This will search the Qdrant vector database for semantically similar memories'));
152
+ }
153
+ async function storeMemory(_cwd, content, tags, importance = 5) {
154
+ console.log(chalk.bold('\nšŸ’¾ Storing memory...\n'));
155
+ console.log(chalk.dim(`Content: ${content}`));
156
+ console.log(chalk.dim(`Tags: ${tags || 'none'}`));
157
+ console.log(chalk.dim(`Importance: ${importance}/10`));
158
+ // TODO: Implement actual Qdrant store
159
+ console.log(chalk.yellow('\nMemory storage not yet implemented'));
160
+ console.log(chalk.dim('This will embed the content and store in Qdrant'));
161
+ }
162
+ async function prepopulateFromSources(cwd, options) {
163
+ console.log(chalk.bold('\n🧠 Prepopulating Memory from Project Sources\n'));
164
+ // Load config
165
+ const configPath = join(cwd, '.uam.json');
166
+ let config;
167
+ if (existsSync(configPath)) {
168
+ try {
169
+ const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
170
+ config = AgentContextConfigSchema.parse(raw);
171
+ }
172
+ catch {
173
+ config = {
174
+ version: '1.0.0',
175
+ project: { name: 'project', defaultBranch: 'main' },
176
+ };
177
+ }
178
+ }
179
+ else {
180
+ config = {
181
+ version: '1.0.0',
182
+ project: { name: 'project', defaultBranch: 'main' },
183
+ };
184
+ }
185
+ const sources = [];
186
+ if (options.docs)
187
+ sources.push('documentation');
188
+ if (options.git)
189
+ sources.push('git history');
190
+ if (sources.length === 0)
191
+ sources.push('documentation', 'git history');
192
+ console.log(chalk.dim(`Sources: ${sources.join(', ')}`));
193
+ if (options.limit)
194
+ console.log(chalk.dim(`Git commit limit: ${options.limit}`));
195
+ if (options.since)
196
+ console.log(chalk.dim(`Git commits since: ${options.since}`));
197
+ console.log('');
198
+ const spinner = ora('Extracting knowledge from project...').start();
199
+ try {
200
+ const { shortTerm, longTerm, skills } = await prepopulateMemory(cwd, {
201
+ docs: options.docs || (!options.docs && !options.git),
202
+ git: options.git || (!options.docs && !options.git),
203
+ skills: true, // Always discover skills
204
+ limit: options.limit ? parseInt(options.limit) : 500,
205
+ since: options.since,
206
+ verbose: options.verbose,
207
+ });
208
+ spinner.succeed(`Extracted ${shortTerm.length} short-term, ${longTerm.length} long-term memories, ${skills.length} skills/artifacts`);
209
+ // Store short-term memories to SQLite
210
+ if (shortTerm.length > 0) {
211
+ const stSpinner = ora('Storing short-term memories...').start();
212
+ try {
213
+ const dbPath = config.memory?.shortTerm?.path || join(cwd, 'agents/data/memory/short_term.db');
214
+ const shortTermDb = new SQLiteShortTermMemory({
215
+ dbPath,
216
+ projectId: config.project.name,
217
+ maxEntries: config.memory?.shortTerm?.maxEntries || 50,
218
+ });
219
+ // Store memories in batch
220
+ const entries = shortTerm.map(m => ({
221
+ type: m.type,
222
+ content: m.content,
223
+ timestamp: m.timestamp,
224
+ }));
225
+ await shortTermDb.storeBatch(entries);
226
+ await shortTermDb.close();
227
+ stSpinner.succeed(`Stored ${shortTerm.length} short-term memories to SQLite`);
228
+ console.log(chalk.dim(` Database: ${dbPath}`));
229
+ }
230
+ catch (error) {
231
+ stSpinner.fail('Failed to store short-term memories');
232
+ console.error(chalk.red(error));
233
+ }
234
+ }
235
+ // Store long-term memories (summary for now)
236
+ if (longTerm.length > 0) {
237
+ console.log(chalk.dim(`\n Long-term memories ready: ${longTerm.length} entries`));
238
+ console.log(chalk.dim(' To store in Qdrant, run: uam memory start'));
239
+ // Save long-term memories as JSON for manual import or Qdrant storage
240
+ const ltPath = join(cwd, 'agents/data/memory/long_term_prepopulated.json');
241
+ const ltDir = join(cwd, 'agents/data/memory');
242
+ if (!existsSync(ltDir)) {
243
+ mkdirSync(ltDir, { recursive: true });
244
+ }
245
+ writeFileSync(ltPath, JSON.stringify(longTerm, null, 2));
246
+ console.log(chalk.dim(` Exported to: ${ltPath}`));
247
+ }
248
+ // Summary by type
249
+ console.log(chalk.bold('\nšŸ“Š Memory Summary:\n'));
250
+ const byType = {
251
+ observations: longTerm.filter(m => m.type === 'observation').length,
252
+ thoughts: longTerm.filter(m => m.type === 'thought').length,
253
+ actions: longTerm.filter(m => m.type === 'action').length,
254
+ goals: longTerm.filter(m => m.type === 'goal').length,
255
+ };
256
+ console.log(chalk.dim(` Observations: ${byType.observations}`));
257
+ console.log(chalk.dim(` Thoughts: ${byType.thoughts}`));
258
+ console.log(chalk.dim(` Actions: ${byType.actions}`));
259
+ console.log(chalk.dim(` Goals: ${byType.goals}`));
260
+ // Show sample memories
261
+ if (options.verbose && shortTerm.length > 0) {
262
+ console.log(chalk.bold('\nšŸ“ Sample Memories:\n'));
263
+ for (const mem of shortTerm.slice(0, 3)) {
264
+ console.log(chalk.cyan(` [${mem.type}] `) + chalk.dim(mem.content.substring(0, 100) + '...'));
265
+ }
266
+ }
267
+ console.log(chalk.green('\nāœ… Memory prepopulation complete!\n'));
268
+ }
269
+ catch (error) {
270
+ spinner.fail('Failed to prepopulate memory');
271
+ console.error(chalk.red(error));
272
+ }
273
+ }
274
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/cli/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface SyncOptions {
2
+ from?: string;
3
+ to?: string;
4
+ }
5
+ export declare function syncCommand(options: SyncOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrE"}
@@ -0,0 +1,26 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ export async function syncCommand(options) {
4
+ console.log(chalk.bold('\nšŸ”„ Platform Sync\n'));
5
+ if (!options.from && !options.to) {
6
+ console.log(chalk.yellow('Specify --from and/or --to platforms'));
7
+ console.log(chalk.dim('\nExample:'));
8
+ console.log(chalk.dim(' uam sync --from claude --to factory'));
9
+ console.log(chalk.dim(' uam sync --from factory --to opencode'));
10
+ return;
11
+ }
12
+ const spinner = ora('Syncing platforms...').start();
13
+ // TODO: Implement platform sync logic
14
+ // This would:
15
+ // 1. Read droids/agents from source platform
16
+ // 2. Convert to target platform format
17
+ // 3. Write to target platform directories
18
+ spinner.warn('Platform sync not yet implemented');
19
+ console.log(chalk.dim('\nThis will convert and sync:'));
20
+ console.log(chalk.dim(' - Droids/Agents'));
21
+ console.log(chalk.dim(' - Commands'));
22
+ console.log(chalk.dim(' - Configuration'));
23
+ console.log(chalk.dim(`\nFrom: ${options.from || 'auto-detect'}`));
24
+ console.log(chalk.dim(`To: ${options.to || 'all enabled platforms'}`));
25
+ }
26
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpD,sCAAsC;IACtC,cAAc;IACd,6CAA6C;IAC7C,uCAAuC;IACvC,0CAA0C;IAE1C,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,9 @@
1
+ type WorktreeAction = 'create' | 'list' | 'pr' | 'cleanup';
2
+ interface WorktreeOptions {
3
+ slug?: string;
4
+ id?: string;
5
+ draft?: boolean;
6
+ }
7
+ export declare function worktreeCommand(action: WorktreeAction, options?: WorktreeOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/cli/worktree.ts"],"names":[],"mappings":"AAMA,KAAK,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3D,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G"}