monty-autonomous-fullstack-dev-multillm 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.
Files changed (186) hide show
  1. package/LICENSE +81 -0
  2. package/README.md +608 -0
  3. package/bin/cli.js +448 -0
  4. package/dist/agents/coding.d.ts +15 -0
  5. package/dist/agents/coding.d.ts.map +1 -0
  6. package/dist/agents/coding.js +189 -0
  7. package/dist/agents/coding.js.map +1 -0
  8. package/dist/agents/initializer.d.ts +15 -0
  9. package/dist/agents/initializer.d.ts.map +1 -0
  10. package/dist/agents/initializer.js +87 -0
  11. package/dist/agents/initializer.js.map +1 -0
  12. package/dist/agents/prompts/arbitrator.md +143 -0
  13. package/dist/agents/prompts/coding.md +247 -0
  14. package/dist/agents/prompts/initializer.md +98 -0
  15. package/dist/config/agent-config.d.ts +103 -0
  16. package/dist/config/agent-config.d.ts.map +1 -0
  17. package/dist/config/agent-config.js +138 -0
  18. package/dist/config/agent-config.js.map +1 -0
  19. package/dist/config/auth-config.d.ts +152 -0
  20. package/dist/config/auth-config.d.ts.map +1 -0
  21. package/dist/config/auth-config.js +139 -0
  22. package/dist/config/auth-config.js.map +1 -0
  23. package/dist/config/mcp-config.d.ts +109 -0
  24. package/dist/config/mcp-config.d.ts.map +1 -0
  25. package/dist/config/mcp-config.js +234 -0
  26. package/dist/config/mcp-config.js.map +1 -0
  27. package/dist/config/provider-config.d.ts +139 -0
  28. package/dist/config/provider-config.d.ts.map +1 -0
  29. package/dist/config/provider-config.js +344 -0
  30. package/dist/config/provider-config.js.map +1 -0
  31. package/dist/config/subagents-config.d.ts +85 -0
  32. package/dist/config/subagents-config.d.ts.map +1 -0
  33. package/dist/config/subagents-config.js +430 -0
  34. package/dist/config/subagents-config.js.map +1 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +385 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/orchestrator/arbitrator.d.ts +93 -0
  40. package/dist/orchestrator/arbitrator.d.ts.map +1 -0
  41. package/dist/orchestrator/arbitrator.js +330 -0
  42. package/dist/orchestrator/arbitrator.js.map +1 -0
  43. package/dist/orchestrator/index.d.ts +113 -0
  44. package/dist/orchestrator/index.d.ts.map +1 -0
  45. package/dist/orchestrator/index.js +217 -0
  46. package/dist/orchestrator/index.js.map +1 -0
  47. package/dist/orchestrator/review-coordinator.d.ts +143 -0
  48. package/dist/orchestrator/review-coordinator.d.ts.map +1 -0
  49. package/dist/orchestrator/review-coordinator.js +401 -0
  50. package/dist/orchestrator/review-coordinator.js.map +1 -0
  51. package/dist/orchestrator/task-classifier.d.ts +87 -0
  52. package/dist/orchestrator/task-classifier.d.ts.map +1 -0
  53. package/dist/orchestrator/task-classifier.js +250 -0
  54. package/dist/orchestrator/task-classifier.js.map +1 -0
  55. package/dist/providers/anthropic-provider.d.ts +64 -0
  56. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  57. package/dist/providers/anthropic-provider.js +264 -0
  58. package/dist/providers/anthropic-provider.js.map +1 -0
  59. package/dist/providers/base-provider.d.ts +219 -0
  60. package/dist/providers/base-provider.d.ts.map +1 -0
  61. package/dist/providers/base-provider.js +143 -0
  62. package/dist/providers/base-provider.js.map +1 -0
  63. package/dist/providers/cursor-provider.d.ts +82 -0
  64. package/dist/providers/cursor-provider.d.ts.map +1 -0
  65. package/dist/providers/cursor-provider.js +321 -0
  66. package/dist/providers/cursor-provider.js.map +1 -0
  67. package/dist/providers/google-provider.d.ts +75 -0
  68. package/dist/providers/google-provider.d.ts.map +1 -0
  69. package/dist/providers/google-provider.js +274 -0
  70. package/dist/providers/google-provider.js.map +1 -0
  71. package/dist/providers/index.d.ts +92 -0
  72. package/dist/providers/index.d.ts.map +1 -0
  73. package/dist/providers/index.js +233 -0
  74. package/dist/providers/index.js.map +1 -0
  75. package/dist/providers/openai-provider.d.ts +83 -0
  76. package/dist/providers/openai-provider.d.ts.map +1 -0
  77. package/dist/providers/openai-provider.js +295 -0
  78. package/dist/providers/openai-provider.js.map +1 -0
  79. package/dist/templates/feature_list.template.json +66 -0
  80. package/dist/templates/progress.template.txt +51 -0
  81. package/dist/utils/auth-manager.d.ts +121 -0
  82. package/dist/utils/auth-manager.d.ts.map +1 -0
  83. package/dist/utils/auth-manager.js +560 -0
  84. package/dist/utils/auth-manager.js.map +1 -0
  85. package/dist/utils/budget-enforcer.d.ts +181 -0
  86. package/dist/utils/budget-enforcer.d.ts.map +1 -0
  87. package/dist/utils/budget-enforcer.js +386 -0
  88. package/dist/utils/budget-enforcer.js.map +1 -0
  89. package/dist/utils/chatgpt-detector.d.ts +51 -0
  90. package/dist/utils/chatgpt-detector.d.ts.map +1 -0
  91. package/dist/utils/chatgpt-detector.js +274 -0
  92. package/dist/utils/chatgpt-detector.js.map +1 -0
  93. package/dist/utils/claude-code-detector.d.ts +39 -0
  94. package/dist/utils/claude-code-detector.d.ts.map +1 -0
  95. package/dist/utils/claude-code-detector.js +153 -0
  96. package/dist/utils/claude-code-detector.js.map +1 -0
  97. package/dist/utils/code-quality.d.ts +58 -0
  98. package/dist/utils/code-quality.d.ts.map +1 -0
  99. package/dist/utils/code-quality.js +258 -0
  100. package/dist/utils/code-quality.js.map +1 -0
  101. package/dist/utils/context-primer.d.ts +50 -0
  102. package/dist/utils/context-primer.d.ts.map +1 -0
  103. package/dist/utils/context-primer.js +429 -0
  104. package/dist/utils/context-primer.js.map +1 -0
  105. package/dist/utils/dependency-management.d.ts +40 -0
  106. package/dist/utils/dependency-management.d.ts.map +1 -0
  107. package/dist/utils/dependency-management.js +123 -0
  108. package/dist/utils/dependency-management.js.map +1 -0
  109. package/dist/utils/environment-validation.d.ts +33 -0
  110. package/dist/utils/environment-validation.d.ts.map +1 -0
  111. package/dist/utils/environment-validation.js +136 -0
  112. package/dist/utils/environment-validation.js.map +1 -0
  113. package/dist/utils/error-recovery.d.ts +60 -0
  114. package/dist/utils/error-recovery.d.ts.map +1 -0
  115. package/dist/utils/error-recovery.js +183 -0
  116. package/dist/utils/error-recovery.js.map +1 -0
  117. package/dist/utils/feature-list.d.ts +102 -0
  118. package/dist/utils/feature-list.d.ts.map +1 -0
  119. package/dist/utils/feature-list.js +191 -0
  120. package/dist/utils/feature-list.js.map +1 -0
  121. package/dist/utils/gemini-detector.d.ts +65 -0
  122. package/dist/utils/gemini-detector.d.ts.map +1 -0
  123. package/dist/utils/gemini-detector.js +340 -0
  124. package/dist/utils/gemini-detector.js.map +1 -0
  125. package/dist/utils/git-utils.d.ts +48 -0
  126. package/dist/utils/git-utils.d.ts.map +1 -0
  127. package/dist/utils/git-utils.js +110 -0
  128. package/dist/utils/git-utils.js.map +1 -0
  129. package/dist/utils/health-check.d.ts +32 -0
  130. package/dist/utils/health-check.d.ts.map +1 -0
  131. package/dist/utils/health-check.js +152 -0
  132. package/dist/utils/health-check.js.map +1 -0
  133. package/dist/utils/hooks-manager.d.ts +154 -0
  134. package/dist/utils/hooks-manager.d.ts.map +1 -0
  135. package/dist/utils/hooks-manager.js +359 -0
  136. package/dist/utils/hooks-manager.js.map +1 -0
  137. package/dist/utils/multi-auth-manager.d.ts +144 -0
  138. package/dist/utils/multi-auth-manager.d.ts.map +1 -0
  139. package/dist/utils/multi-auth-manager.js +588 -0
  140. package/dist/utils/multi-auth-manager.js.map +1 -0
  141. package/dist/utils/progress.d.ts +49 -0
  142. package/dist/utils/progress.d.ts.map +1 -0
  143. package/dist/utils/progress.js +209 -0
  144. package/dist/utils/progress.js.map +1 -0
  145. package/dist/utils/project-detection.d.ts +40 -0
  146. package/dist/utils/project-detection.d.ts.map +1 -0
  147. package/dist/utils/project-detection.js +230 -0
  148. package/dist/utils/project-detection.js.map +1 -0
  149. package/dist/utils/session-manager.d.ts +119 -0
  150. package/dist/utils/session-manager.d.ts.map +1 -0
  151. package/dist/utils/session-manager.js +389 -0
  152. package/dist/utils/session-manager.js.map +1 -0
  153. package/dist/utils/skills-manager.d.ts +113 -0
  154. package/dist/utils/skills-manager.d.ts.map +1 -0
  155. package/dist/utils/skills-manager.js +332 -0
  156. package/dist/utils/skills-manager.js.map +1 -0
  157. package/dist/utils/structured-output.d.ts +117 -0
  158. package/dist/utils/structured-output.d.ts.map +1 -0
  159. package/dist/utils/structured-output.js +191 -0
  160. package/dist/utils/structured-output.js.map +1 -0
  161. package/dist/utils/subagent-manager.d.ts +143 -0
  162. package/dist/utils/subagent-manager.d.ts.map +1 -0
  163. package/dist/utils/subagent-manager.js +326 -0
  164. package/dist/utils/subagent-manager.js.map +1 -0
  165. package/dist/utils/supabase-setup.d.ts +50 -0
  166. package/dist/utils/supabase-setup.d.ts.map +1 -0
  167. package/dist/utils/supabase-setup.js +151 -0
  168. package/dist/utils/supabase-setup.js.map +1 -0
  169. package/dist/utils/token-refresh.d.ts +21 -0
  170. package/dist/utils/token-refresh.d.ts.map +1 -0
  171. package/dist/utils/token-refresh.js +77 -0
  172. package/dist/utils/token-refresh.js.map +1 -0
  173. package/dist/utils/tos-warning.d.ts +115 -0
  174. package/dist/utils/tos-warning.d.ts.map +1 -0
  175. package/dist/utils/tos-warning.js +304 -0
  176. package/dist/utils/tos-warning.js.map +1 -0
  177. package/dist/utils/usage-monitor.d.ts +156 -0
  178. package/dist/utils/usage-monitor.d.ts.map +1 -0
  179. package/dist/utils/usage-monitor.js +296 -0
  180. package/dist/utils/usage-monitor.js.map +1 -0
  181. package/package.json +105 -0
  182. package/scripts/init.ps1 +73 -0
  183. package/scripts/init.sh +86 -0
  184. package/scripts/test-auth.sh +90 -0
  185. package/templates/feature_list.template.json +66 -0
  186. package/templates/progress.template.txt +51 -0
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Session Manager (Features A1, A6)
3
+ * Handles session persistence, resumption, and file checkpointing
4
+ *
5
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
6
+ * Licensed under CC BY-NC 4.0
7
+ */
8
+ import { writeFileSync, readFileSync, existsSync, mkdirSync, copyFileSync, readdirSync, statSync, unlinkSync } from 'fs';
9
+ import { join, dirname, relative } from 'path';
10
+ import { createHash } from 'crypto';
11
+ /**
12
+ * Generate unique session ID
13
+ */
14
+ export function generateSessionId() {
15
+ const timestamp = Date.now().toString(36);
16
+ const random = Math.random().toString(36).substring(2, 8);
17
+ return `session-${timestamp}-${random}`;
18
+ }
19
+ /**
20
+ * Generate checkpoint ID
21
+ */
22
+ export function generateCheckpointId() {
23
+ const timestamp = Date.now().toString(36);
24
+ const random = Math.random().toString(36).substring(2, 6);
25
+ return `ckpt-${timestamp}-${random}`;
26
+ }
27
+ /**
28
+ * Create new session state
29
+ */
30
+ export function createSessionState(parentSessionId = null) {
31
+ return {
32
+ session_id: generateSessionId(),
33
+ parent_session_id: parentSessionId,
34
+ created_at: new Date().toISOString(),
35
+ last_active: new Date().toISOString(),
36
+ status: 'active',
37
+ current_feature: null,
38
+ completed_features: [],
39
+ failed_features: [],
40
+ context_summary: '',
41
+ important_decisions: [],
42
+ tools_initialized: [],
43
+ mcp_servers_active: [],
44
+ checkpoints: [],
45
+ current_checkpoint: null,
46
+ };
47
+ }
48
+ /**
49
+ * Save session state
50
+ */
51
+ export function saveSessionState(agentDir, state) {
52
+ const sessionPath = join(agentDir, 'session_state.json');
53
+ const sessionsDir = join(agentDir, 'sessions');
54
+ // Ensure sessions directory exists
55
+ if (!existsSync(sessionsDir)) {
56
+ mkdirSync(sessionsDir, { recursive: true });
57
+ }
58
+ // Update last active
59
+ state.last_active = new Date().toISOString();
60
+ // Save current state
61
+ writeFileSync(sessionPath, JSON.stringify(state, null, 2));
62
+ // Also save to sessions history
63
+ const historyPath = join(sessionsDir, `${state.session_id}.json`);
64
+ writeFileSync(historyPath, JSON.stringify(state, null, 2));
65
+ }
66
+ /**
67
+ * Load session state
68
+ */
69
+ export function loadSessionState(agentDir) {
70
+ const sessionPath = join(agentDir, 'session_state.json');
71
+ if (!existsSync(sessionPath))
72
+ return null;
73
+ try {
74
+ return JSON.parse(readFileSync(sessionPath, 'utf-8'));
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ /**
81
+ * Load specific session by ID
82
+ */
83
+ export function loadSessionById(agentDir, sessionId) {
84
+ const sessionsDir = join(agentDir, 'sessions');
85
+ const sessionPath = join(sessionsDir, `${sessionId}.json`);
86
+ if (!existsSync(sessionPath))
87
+ return null;
88
+ try {
89
+ return JSON.parse(readFileSync(sessionPath, 'utf-8'));
90
+ }
91
+ catch {
92
+ return null;
93
+ }
94
+ }
95
+ /**
96
+ * Fork session for A/B testing
97
+ */
98
+ export function forkSession(agentDir, parentState) {
99
+ const newState = createSessionState(parentState.session_id);
100
+ // Copy relevant state from parent
101
+ newState.completed_features = [...parentState.completed_features];
102
+ newState.context_summary = parentState.context_summary;
103
+ newState.important_decisions = [...parentState.important_decisions];
104
+ newState.checkpoints = [...parentState.checkpoints];
105
+ newState.current_checkpoint = parentState.current_checkpoint;
106
+ // Mark parent as forked
107
+ parentState.status = 'forked';
108
+ saveSessionState(agentDir, parentState);
109
+ // Save new session
110
+ saveSessionState(agentDir, newState);
111
+ return newState;
112
+ }
113
+ /**
114
+ * List all sessions
115
+ */
116
+ export function listSessions(agentDir) {
117
+ const sessionsDir = join(agentDir, 'sessions');
118
+ if (!existsSync(sessionsDir))
119
+ return [];
120
+ const sessions = [];
121
+ const files = readdirSync(sessionsDir).filter(f => f.endsWith('.json'));
122
+ for (const file of files) {
123
+ try {
124
+ const state = JSON.parse(readFileSync(join(sessionsDir, file), 'utf-8'));
125
+ sessions.push(state);
126
+ }
127
+ catch {
128
+ // Skip invalid files
129
+ }
130
+ }
131
+ // Sort by last active (newest first)
132
+ return sessions.sort((a, b) => new Date(b.last_active).getTime() - new Date(a.last_active).getTime());
133
+ }
134
+ /**
135
+ * Calculate file hash
136
+ */
137
+ function calculateFileHash(filePath) {
138
+ if (!existsSync(filePath))
139
+ return '';
140
+ const content = readFileSync(filePath);
141
+ return createHash('sha256').update(content).digest('hex').substring(0, 16);
142
+ }
143
+ /**
144
+ * Create checkpoint
145
+ */
146
+ export function createCheckpoint(agentDir, projectRoot, description, featureId = null) {
147
+ const checkpointsDir = join(agentDir, 'checkpoints');
148
+ const checkpointId = generateCheckpointId();
149
+ const checkpointDir = join(checkpointsDir, checkpointId);
150
+ // Create checkpoint directory
151
+ mkdirSync(checkpointDir, { recursive: true });
152
+ // Find tracked files (src, config files, etc.)
153
+ const trackedPatterns = [
154
+ 'src/**/*.ts',
155
+ 'src/**/*.tsx',
156
+ 'src/**/*.js',
157
+ 'src/**/*.jsx',
158
+ 'package.json',
159
+ 'tsconfig.json',
160
+ '.env',
161
+ '.env.local',
162
+ ];
163
+ const files = [];
164
+ // Simple file discovery (would use glob in production)
165
+ const srcDir = join(projectRoot, 'src');
166
+ if (existsSync(srcDir)) {
167
+ const srcFiles = findFilesRecursive(srcDir, ['.ts', '.tsx', '.js', '.jsx']);
168
+ for (const file of srcFiles) {
169
+ const relativePath = relative(projectRoot, file);
170
+ const hash = calculateFileHash(file);
171
+ const stats = statSync(file);
172
+ // Backup file
173
+ const backupPath = join(checkpointDir, relativePath);
174
+ const backupDir = dirname(backupPath);
175
+ if (!existsSync(backupDir)) {
176
+ mkdirSync(backupDir, { recursive: true });
177
+ }
178
+ copyFileSync(file, backupPath);
179
+ files.push({
180
+ path: relativePath,
181
+ hash,
182
+ size: stats.size,
183
+ backed_up: true,
184
+ });
185
+ }
186
+ }
187
+ // Backup config files
188
+ const configFiles = ['package.json', 'tsconfig.json'];
189
+ for (const configFile of configFiles) {
190
+ const filePath = join(projectRoot, configFile);
191
+ if (existsSync(filePath)) {
192
+ const hash = calculateFileHash(filePath);
193
+ const stats = statSync(filePath);
194
+ copyFileSync(filePath, join(checkpointDir, configFile));
195
+ files.push({
196
+ path: configFile,
197
+ hash,
198
+ size: stats.size,
199
+ backed_up: true,
200
+ });
201
+ }
202
+ }
203
+ const checkpoint = {
204
+ id: checkpointId,
205
+ created_at: new Date().toISOString(),
206
+ description,
207
+ feature_id: featureId,
208
+ files_snapshot: files,
209
+ can_restore: true,
210
+ };
211
+ // Save checkpoint metadata
212
+ writeFileSync(join(checkpointDir, 'checkpoint.json'), JSON.stringify(checkpoint, null, 2));
213
+ return checkpoint;
214
+ }
215
+ /**
216
+ * Restore checkpoint
217
+ */
218
+ export function restoreCheckpoint(agentDir, projectRoot, checkpointId) {
219
+ const checkpointDir = join(agentDir, 'checkpoints', checkpointId);
220
+ const metadataPath = join(checkpointDir, 'checkpoint.json');
221
+ if (!existsSync(metadataPath)) {
222
+ console.error(`Checkpoint ${checkpointId} not found`);
223
+ return false;
224
+ }
225
+ try {
226
+ const checkpoint = JSON.parse(readFileSync(metadataPath, 'utf-8'));
227
+ if (!checkpoint.can_restore) {
228
+ console.error(`Checkpoint ${checkpointId} cannot be restored`);
229
+ return false;
230
+ }
231
+ // Restore each file
232
+ for (const file of checkpoint.files_snapshot) {
233
+ if (file.backed_up) {
234
+ const backupPath = join(checkpointDir, file.path);
235
+ const targetPath = join(projectRoot, file.path);
236
+ if (existsSync(backupPath)) {
237
+ const targetDir = dirname(targetPath);
238
+ if (!existsSync(targetDir)) {
239
+ mkdirSync(targetDir, { recursive: true });
240
+ }
241
+ copyFileSync(backupPath, targetPath);
242
+ }
243
+ }
244
+ }
245
+ console.log(`Restored checkpoint: ${checkpoint.description}`);
246
+ return true;
247
+ }
248
+ catch (error) {
249
+ console.error(`Failed to restore checkpoint: ${error}`);
250
+ return false;
251
+ }
252
+ }
253
+ /**
254
+ * List checkpoints
255
+ */
256
+ export function listCheckpoints(agentDir) {
257
+ const checkpointsDir = join(agentDir, 'checkpoints');
258
+ if (!existsSync(checkpointsDir))
259
+ return [];
260
+ const checkpoints = [];
261
+ const dirs = readdirSync(checkpointsDir);
262
+ for (const dir of dirs) {
263
+ const metadataPath = join(checkpointsDir, dir, 'checkpoint.json');
264
+ if (existsSync(metadataPath)) {
265
+ try {
266
+ checkpoints.push(JSON.parse(readFileSync(metadataPath, 'utf-8')));
267
+ }
268
+ catch {
269
+ // Skip invalid checkpoints
270
+ }
271
+ }
272
+ }
273
+ // Sort by creation time (newest first)
274
+ return checkpoints.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime());
275
+ }
276
+ /**
277
+ * Clean old checkpoints (keep last N)
278
+ */
279
+ export function cleanOldCheckpoints(agentDir, keepCount = 10) {
280
+ const checkpoints = listCheckpoints(agentDir);
281
+ if (checkpoints.length <= keepCount)
282
+ return;
283
+ const toDelete = checkpoints.slice(keepCount);
284
+ const checkpointsDir = join(agentDir, 'checkpoints');
285
+ for (const checkpoint of toDelete) {
286
+ const checkpointDir = join(checkpointsDir, checkpoint.id);
287
+ if (existsSync(checkpointDir)) {
288
+ // Remove directory recursively
289
+ removeDirectoryRecursive(checkpointDir);
290
+ }
291
+ }
292
+ }
293
+ /**
294
+ * Helper: Find files recursively
295
+ */
296
+ function findFilesRecursive(dir, extensions) {
297
+ const files = [];
298
+ if (!existsSync(dir))
299
+ return files;
300
+ const entries = readdirSync(dir);
301
+ for (const entry of entries) {
302
+ const fullPath = join(dir, entry);
303
+ const stat = statSync(fullPath);
304
+ if (stat.isDirectory()) {
305
+ // Skip node_modules and hidden directories
306
+ if (!entry.startsWith('.') && entry !== 'node_modules' && entry !== 'dist') {
307
+ files.push(...findFilesRecursive(fullPath, extensions));
308
+ }
309
+ }
310
+ else if (extensions.some(ext => entry.endsWith(ext))) {
311
+ files.push(fullPath);
312
+ }
313
+ }
314
+ return files;
315
+ }
316
+ /**
317
+ * Helper: Remove directory recursively
318
+ */
319
+ function removeDirectoryRecursive(dir) {
320
+ if (!existsSync(dir))
321
+ return;
322
+ const entries = readdirSync(dir);
323
+ for (const entry of entries) {
324
+ const fullPath = join(dir, entry);
325
+ const stat = statSync(fullPath);
326
+ if (stat.isDirectory()) {
327
+ removeDirectoryRecursive(fullPath);
328
+ }
329
+ else {
330
+ unlinkSync(fullPath);
331
+ }
332
+ }
333
+ // Remove empty directory
334
+ try {
335
+ readdirSync(dir).length === 0 && unlinkSync(dir);
336
+ }
337
+ catch {
338
+ // Ignore errors
339
+ }
340
+ }
341
+ /**
342
+ * Get session resume options for SDK
343
+ */
344
+ export function getResumeOptions(sessionState) {
345
+ return {
346
+ resume: sessionState.session_id,
347
+ context_summary: sessionState.context_summary,
348
+ completed_features: sessionState.completed_features,
349
+ };
350
+ }
351
+ /**
352
+ * Generate session summary for context preservation
353
+ */
354
+ export function generateSessionSummary(state) {
355
+ const completedCount = state.completed_features.length;
356
+ const failedCount = state.failed_features.length;
357
+ let summary = `Session ${state.session_id}\n`;
358
+ summary += `Started: ${state.created_at}\n`;
359
+ summary += `Features completed: ${completedCount}\n`;
360
+ if (failedCount > 0) {
361
+ summary += `Features failed: ${failedCount}\n`;
362
+ }
363
+ if (state.current_feature) {
364
+ summary += `Currently working on: ${state.current_feature}\n`;
365
+ }
366
+ if (state.important_decisions.length > 0) {
367
+ summary += `\nKey decisions:\n`;
368
+ for (const decision of state.important_decisions) {
369
+ summary += `- ${decision}\n`;
370
+ }
371
+ }
372
+ return summary;
373
+ }
374
+ export default {
375
+ generateSessionId,
376
+ createSessionState,
377
+ saveSessionState,
378
+ loadSessionState,
379
+ loadSessionById,
380
+ forkSession,
381
+ listSessions,
382
+ createCheckpoint,
383
+ restoreCheckpoint,
384
+ listCheckpoints,
385
+ cleanOldCheckpoints,
386
+ getResumeOptions,
387
+ generateSessionSummary,
388
+ };
389
+ //# sourceMappingURL=session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/utils/session-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Skills Manager
3
+ * Implements skill loading and management for the Claude Agent SDK.
4
+ * Skills are specialized SKILL.md files that extend agent capabilities.
5
+ *
6
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
7
+ * Licensed under CC BY-NC 4.0
8
+ */
9
+ /**
10
+ * Skill metadata parsed from SKILL.md frontmatter
11
+ */
12
+ export interface SkillMetadata {
13
+ name: string;
14
+ description: string;
15
+ triggers?: string[];
16
+ category?: string;
17
+ version?: string;
18
+ author?: string;
19
+ priority?: number;
20
+ }
21
+ /**
22
+ * Loaded skill with content and metadata
23
+ */
24
+ export interface LoadedSkill {
25
+ path: string;
26
+ relativePath: string;
27
+ name: string;
28
+ content: string;
29
+ metadata: SkillMetadata;
30
+ source: 'workspace' | 'user' | 'system' | 'marketplace';
31
+ }
32
+ /**
33
+ * Skill search paths
34
+ */
35
+ export declare const SKILL_SEARCH_PATHS: string[];
36
+ /**
37
+ * Parse YAML frontmatter from SKILL.md content
38
+ */
39
+ export declare function parseSkillFrontmatter(content: string): SkillMetadata;
40
+ /**
41
+ * Get skill content without frontmatter
42
+ */
43
+ export declare function getSkillContent(content: string): string;
44
+ /**
45
+ * Load a single skill from a path
46
+ */
47
+ export declare function loadSkill(skillPath: string, baseDir: string, source: LoadedSkill['source']): LoadedSkill | null;
48
+ /**
49
+ * Recursively find SKILL.md files in a directory
50
+ */
51
+ export declare function findSkillFiles(directory: string): string[];
52
+ /**
53
+ * Load all skills from search paths
54
+ */
55
+ export declare function loadAllSkills(projectRoot?: string): LoadedSkill[];
56
+ /**
57
+ * Find skills that match a query or context
58
+ */
59
+ export declare function findMatchingSkills(skills: LoadedSkill[], query: string): LoadedSkill[];
60
+ /**
61
+ * Format skills for inclusion in agent prompt
62
+ */
63
+ export declare function formatSkillsForPrompt(skills: LoadedSkill[]): string;
64
+ /**
65
+ * Get skills summary for status display
66
+ */
67
+ export declare function getSkillsSummary(skills: LoadedSkill[]): string;
68
+ /**
69
+ * Skills Manager class for stateful skill management
70
+ */
71
+ export declare class SkillsManager {
72
+ private skills;
73
+ private projectRoot;
74
+ constructor(projectRoot?: string);
75
+ /**
76
+ * Load all available skills
77
+ */
78
+ load(): LoadedSkill[];
79
+ /**
80
+ * Get all loaded skills
81
+ */
82
+ getAll(): LoadedSkill[];
83
+ /**
84
+ * Find skills matching a query
85
+ */
86
+ find(query: string): LoadedSkill[];
87
+ /**
88
+ * Get skills formatted for prompt inclusion
89
+ */
90
+ formatForPrompt(): string;
91
+ /**
92
+ * Get summary for status display
93
+ */
94
+ getSummary(): string;
95
+ /**
96
+ * Get skill by name
97
+ */
98
+ getByName(name: string): LoadedSkill | undefined;
99
+ /**
100
+ * Get skills by category
101
+ */
102
+ getByCategory(category: string): LoadedSkill[];
103
+ /**
104
+ * Get skills by source
105
+ */
106
+ getBySource(source: LoadedSkill['source']): LoadedSkill[];
107
+ }
108
+ /**
109
+ * Create a skills manager instance
110
+ */
111
+ export declare function createSkillsManager(projectRoot?: string): SkillsManager;
112
+ export default SkillsManager;
113
+ //# sourceMappingURL=skills-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-manager.d.ts","sourceRoot":"","sources":["../../src/utils/skills-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;CACzD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAU9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA6DpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC5B,WAAW,GAAG,IAAI,CAsBpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA+B1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,WAAW,EAAE,CAuChF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CA8Bf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CA4BnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAe9D;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACH,IAAI,IAAI,WAAW,EAAE;IAKrB;;OAEG;IACH,MAAM,IAAI,WAAW,EAAE;IAIvB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAIlC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAMhD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAM9C;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE;CAG1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,CAEvE;AAED,eAAe,aAAa,CAAC"}