@skroyc/librarian 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 (72) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/LICENSE +210 -0
  3. package/README.md +614 -0
  4. package/biome.jsonc +9 -0
  5. package/dist/agents/context-schema.d.ts +17 -0
  6. package/dist/agents/context-schema.d.ts.map +1 -0
  7. package/dist/agents/context-schema.js +16 -0
  8. package/dist/agents/context-schema.js.map +1 -0
  9. package/dist/agents/react-agent.d.ts +38 -0
  10. package/dist/agents/react-agent.d.ts.map +1 -0
  11. package/dist/agents/react-agent.js +719 -0
  12. package/dist/agents/react-agent.js.map +1 -0
  13. package/dist/agents/tool-runtime.d.ts +7 -0
  14. package/dist/agents/tool-runtime.d.ts.map +1 -0
  15. package/dist/agents/tool-runtime.js +2 -0
  16. package/dist/agents/tool-runtime.js.map +1 -0
  17. package/dist/cli.d.ts +4 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +172 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/config.d.ts +4 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/config.js +243 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/index.d.ts +41 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +470 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/tools/file-finding.tool.d.ts +24 -0
  30. package/dist/tools/file-finding.tool.d.ts.map +1 -0
  31. package/dist/tools/file-finding.tool.js +198 -0
  32. package/dist/tools/file-finding.tool.js.map +1 -0
  33. package/dist/tools/file-listing.tool.d.ts +12 -0
  34. package/dist/tools/file-listing.tool.d.ts.map +1 -0
  35. package/dist/tools/file-listing.tool.js +132 -0
  36. package/dist/tools/file-listing.tool.js.map +1 -0
  37. package/dist/tools/file-reading.tool.d.ts +9 -0
  38. package/dist/tools/file-reading.tool.d.ts.map +1 -0
  39. package/dist/tools/file-reading.tool.js +112 -0
  40. package/dist/tools/file-reading.tool.js.map +1 -0
  41. package/dist/tools/grep-content.tool.d.ts +27 -0
  42. package/dist/tools/grep-content.tool.d.ts.map +1 -0
  43. package/dist/tools/grep-content.tool.js +229 -0
  44. package/dist/tools/grep-content.tool.js.map +1 -0
  45. package/dist/utils/file-utils.d.ts +2 -0
  46. package/dist/utils/file-utils.d.ts.map +1 -0
  47. package/dist/utils/file-utils.js +28 -0
  48. package/dist/utils/file-utils.js.map +1 -0
  49. package/dist/utils/logger.d.ts +32 -0
  50. package/dist/utils/logger.d.ts.map +1 -0
  51. package/dist/utils/logger.js +177 -0
  52. package/dist/utils/logger.js.map +1 -0
  53. package/dist/utils/path-utils.d.ts +2 -0
  54. package/dist/utils/path-utils.d.ts.map +1 -0
  55. package/dist/utils/path-utils.js +9 -0
  56. package/dist/utils/path-utils.js.map +1 -0
  57. package/package.json +84 -0
  58. package/src/agents/context-schema.ts +61 -0
  59. package/src/agents/react-agent.ts +928 -0
  60. package/src/agents/tool-runtime.ts +21 -0
  61. package/src/cli.ts +206 -0
  62. package/src/config.ts +309 -0
  63. package/src/index.ts +628 -0
  64. package/src/tools/file-finding.tool.ts +324 -0
  65. package/src/tools/file-listing.tool.ts +212 -0
  66. package/src/tools/file-reading.tool.ts +154 -0
  67. package/src/tools/grep-content.tool.ts +325 -0
  68. package/src/utils/file-utils.ts +39 -0
  69. package/src/utils/logger.ts +295 -0
  70. package/src/utils/path-utils.ts +17 -0
  71. package/tsconfig.json +37 -0
  72. package/tsconfig.test.json +17 -0
package/dist/index.js ADDED
@@ -0,0 +1,470 @@
1
+ import { clone, fetch, checkout } from 'isomorphic-git';
2
+ import http from 'isomorphic-git/http/node';
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { ReactAgent } from './agents/react-agent.js';
6
+ import { logger } from './utils/logger.js';
7
+ import os from 'node:os';
8
+ export class Librarian {
9
+ config;
10
+ constructor(config) {
11
+ const validProviderTypes = [
12
+ 'openai',
13
+ 'anthropic',
14
+ 'google',
15
+ 'openai-compatible',
16
+ 'anthropic-compatible',
17
+ 'claude-code',
18
+ 'gemini-cli',
19
+ ];
20
+ if (!validProviderTypes.includes(config.aiProvider.type)) {
21
+ throw new Error(`Unsupported AI provider type: ${config.aiProvider.type}`);
22
+ }
23
+ this.config = config;
24
+ logger.info('LIBRARIAN', 'Initializing librarian', {
25
+ aiProviderType: config.aiProvider.type,
26
+ model: config.aiProvider.model,
27
+ workingDir: config.workingDir.replace(os.homedir(), '~'),
28
+ reposPath: config.repos_path ? config.repos_path.replace(os.homedir(), '~') : 'workingDir'
29
+ });
30
+ }
31
+ async initialize() {
32
+ if (this.config.aiProvider.type === 'claude-code') {
33
+ try {
34
+ const { execSync } = await import('node:child_process');
35
+ execSync('claude --version', { stdio: 'ignore' });
36
+ logger.info('LIBRARIAN', 'Claude CLI verified');
37
+ }
38
+ catch {
39
+ logger.error('LIBRARIAN', 'Claude CLI not found in PATH', undefined, { type: 'claude-code' });
40
+ console.error('Error: "claude" CLI not found. Please install it to use the "claude-code" provider.');
41
+ process.exit(1);
42
+ }
43
+ }
44
+ if (this.config.aiProvider.type === 'gemini-cli') {
45
+ try {
46
+ const { execSync } = await import('node:child_process');
47
+ execSync('gemini --version', { stdio: 'ignore' });
48
+ logger.info('LIBRARIAN', 'Gemini CLI verified');
49
+ }
50
+ catch {
51
+ logger.error('LIBRARIAN', 'Gemini CLI not found in PATH', undefined, { type: 'gemini-cli' });
52
+ console.error('Error: "gemini" CLI not found. Please install it to use the "gemini-cli" provider.');
53
+ process.exit(1);
54
+ }
55
+ }
56
+ const workDir = this.config.repos_path || this.config.workingDir;
57
+ if (fs.existsSync(workDir)) {
58
+ logger.debug('LIBRARIAN', 'Working directory already exists', { path: workDir.replace(os.homedir(), '~') });
59
+ }
60
+ else {
61
+ logger.info('LIBRARIAN', 'Creating working directory', { path: workDir.replace(os.homedir(), '~') });
62
+ fs.mkdirSync(workDir, { recursive: true });
63
+ }
64
+ logger.info('LIBRARIAN', 'Initialization complete');
65
+ }
66
+ resolveTechnology(qualifiedName) {
67
+ logger.debug('LIBRARIAN', 'Resolving technology', { qualifiedName });
68
+ let group;
69
+ let name;
70
+ if (qualifiedName.includes(':')) {
71
+ const parts = qualifiedName.split(':');
72
+ group = parts[0];
73
+ name = parts[1] || '';
74
+ }
75
+ else {
76
+ name = qualifiedName;
77
+ }
78
+ if (group) {
79
+ const groupTechs = this.config.technologies[group];
80
+ const tech = groupTechs ? groupTechs[name] : undefined;
81
+ if (tech) {
82
+ const result = { name, group, repo: tech.repo, branch: tech.branch || 'main' };
83
+ logger.debug('LIBRARIAN', 'Technology resolved with explicit group', { name, group, repoHost: tech.repo.split('/')[2] || 'unknown' });
84
+ return result;
85
+ }
86
+ }
87
+ else {
88
+ for (const [groupName, techs] of Object.entries(this.config.technologies)) {
89
+ const tech = techs[name];
90
+ if (tech) {
91
+ const result = { name, group: groupName, repo: tech.repo, branch: tech.branch || 'main' };
92
+ logger.debug('LIBRARIAN', 'Technology resolved by search', { name, group: groupName, repoHost: tech.repo.split('/')[2] || 'unknown' });
93
+ return result;
94
+ }
95
+ }
96
+ }
97
+ logger.debug('LIBRARIAN', 'Technology not found in configuration', { qualifiedName });
98
+ return undefined;
99
+ }
100
+ getSecureGroupPath(groupName) {
101
+ logger.debug('PATH', 'Validating group path', { groupName });
102
+ if (groupName.includes('../') || groupName.includes('..\\') || groupName.startsWith('..')) {
103
+ logger.error('PATH', 'Group name contains path traversal characters', undefined, { groupName });
104
+ throw new Error(`Group name "${groupName}" contains invalid path characters`);
105
+ }
106
+ const sanitizedGroupName = path.basename(groupName);
107
+ const workDir = this.config.repos_path || this.config.workingDir;
108
+ const groupPath = path.join(workDir, sanitizedGroupName);
109
+ const resolvedWorkingDir = path.resolve(workDir);
110
+ const resolvedGroupPath = path.resolve(groupPath);
111
+ if (!resolvedGroupPath.startsWith(resolvedWorkingDir)) {
112
+ logger.error('PATH', 'Group path escapes working directory sandbox', undefined, { groupName });
113
+ throw new Error(`Group name "${groupName}" attempts to escape the working directory sandbox`);
114
+ }
115
+ logger.debug('PATH', 'Group path validated', { groupName, path: groupPath.replace(os.homedir(), '~') });
116
+ return groupPath;
117
+ }
118
+ getSecureRepoPath(repoName, groupName = 'default') {
119
+ logger.debug('PATH', 'Validating repo path', { repoName, groupName });
120
+ if (repoName.includes('../') || repoName.includes('..\\') || repoName.startsWith('..')) {
121
+ logger.error('PATH', 'Repo name contains path traversal characters', undefined, { repoName, groupName });
122
+ throw new Error(`Repository name "${repoName}" contains invalid path characters`);
123
+ }
124
+ const sanitizedRepoName = path.basename(repoName);
125
+ const groupPath = this.getSecureGroupPath(groupName);
126
+ const repoPath = path.join(groupPath, sanitizedRepoName);
127
+ const resolvedGroupDir = path.resolve(groupPath);
128
+ const resolvedRepoPath = path.resolve(repoPath);
129
+ if (!resolvedRepoPath.startsWith(resolvedGroupDir)) {
130
+ logger.error('PATH', 'Repo path escapes group sandbox', undefined, { repoName, groupName });
131
+ throw new Error(`Repository name "${repoName}" attempts to escape the group sandbox`);
132
+ }
133
+ logger.debug('PATH', 'Repo path validated', { repoName, groupName, path: repoPath.replace(os.homedir(), '~') });
134
+ return repoPath;
135
+ }
136
+ async updateRepository(repoName, groupName = 'default') {
137
+ logger.info('GIT', 'Updating repository', { repoName, groupName });
138
+ const timingId = logger.timingStart('updateRepository');
139
+ const repoPath = this.getSecureRepoPath(repoName, groupName);
140
+ const gitPath = path.join(repoPath, '.git');
141
+ if (!fs.existsSync(repoPath)) {
142
+ logger.error('GIT', 'Repository path does not exist', undefined, { repoName, repoPath: repoPath.replace(os.homedir(), '~') });
143
+ throw new Error(`Repository ${repoName} does not exist at ${repoPath}. Cannot update.`);
144
+ }
145
+ if (!fs.existsSync(gitPath)) {
146
+ logger.error('GIT', 'Directory is not a git repository', undefined, { repoName, repoPath: repoPath.replace(os.homedir(), '~') });
147
+ throw new Error(`Directory ${repoName} exists at ${repoPath} but is not a git repository. Cannot update.`);
148
+ }
149
+ logger.debug('GIT', 'Fetching updates from remote');
150
+ await fetch({
151
+ fs,
152
+ http,
153
+ dir: repoPath,
154
+ singleBranch: true,
155
+ });
156
+ const tech = this.resolveTechnology(`${groupName}:${repoName}`) || this.resolveTechnology(repoName);
157
+ const branch = tech?.branch || 'main';
158
+ logger.debug('GIT', 'Checking out branch', { branch });
159
+ await checkout({
160
+ fs,
161
+ dir: repoPath,
162
+ ref: `origin/${branch}`,
163
+ });
164
+ logger.timingEnd(timingId, 'GIT', `Repository updated: ${repoName}`);
165
+ }
166
+ async syncRepository(repoName) {
167
+ logger.info('GIT', 'Syncing repository', { repoName });
168
+ const tech = this.resolveTechnology(repoName);
169
+ if (!tech) {
170
+ logger.error('GIT', 'Technology not found in configuration', undefined, { repoName });
171
+ throw new Error(`Repository ${repoName} not found in configuration`);
172
+ }
173
+ const repoPath = this.getSecureRepoPath(tech.name, tech.group);
174
+ const isLocalRepo = !(tech.repo.startsWith('http://') || tech.repo.startsWith('https://'));
175
+ if (fs.existsSync(repoPath)) {
176
+ if (isLocalRepo) {
177
+ logger.debug('GIT', 'Local repository exists, skipping git operations');
178
+ return repoPath;
179
+ }
180
+ if (!isLocalRepo) {
181
+ logger.debug('GIT', 'Repository exists, performing update');
182
+ await this.updateRepository(tech.name, tech.group);
183
+ }
184
+ }
185
+ else {
186
+ if (isLocalRepo) {
187
+ logger.error('GIT', 'Local repository path does not exist', undefined, { repoName, repoPath });
188
+ throw new Error(`Local repository ${repoName} does not exist at ${repoPath}`);
189
+ }
190
+ logger.debug('GIT', 'Repository does not exist, performing clone');
191
+ return await this.cloneRepository(tech.name, tech.repo, tech.group, tech.branch);
192
+ }
193
+ return repoPath;
194
+ }
195
+ async cloneRepository(repoName, repoUrl, groupName = 'default', branch = 'main') {
196
+ logger.info('GIT', 'Cloning repository', { repoName, repoHost: repoUrl.split('/')[2] || 'unknown', branch, groupName });
197
+ const timingId = logger.timingStart('cloneRepository');
198
+ const repoPath = this.getSecureRepoPath(repoName, groupName);
199
+ if (fs.existsSync(repoPath)) {
200
+ const gitPath = path.join(repoPath, '.git');
201
+ if (fs.existsSync(gitPath)) {
202
+ logger.debug('GIT', 'Repository already exists as git repo, updating instead');
203
+ await this.updateRepository(repoName, groupName);
204
+ return repoPath;
205
+ }
206
+ }
207
+ const groupPath = this.getSecureGroupPath(groupName);
208
+ if (!fs.existsSync(groupPath)) {
209
+ logger.debug('GIT', 'Creating group directory', { groupName, path: groupPath.replace(os.homedir(), '~') });
210
+ fs.mkdirSync(groupPath, { recursive: true });
211
+ }
212
+ logger.debug('GIT', 'Starting shallow clone', { depth: 1 });
213
+ await clone({
214
+ fs,
215
+ http,
216
+ dir: repoPath,
217
+ url: repoUrl,
218
+ ref: branch,
219
+ singleBranch: true,
220
+ depth: 1,
221
+ });
222
+ let fileCount = 0;
223
+ const countFiles = (dir) => {
224
+ try {
225
+ const files = fs.readdirSync(dir, { withFileTypes: true });
226
+ for (const file of files) {
227
+ if (file.name === '.git') {
228
+ continue;
229
+ }
230
+ if (file.isDirectory()) {
231
+ countFiles(path.join(dir, file.name));
232
+ }
233
+ else {
234
+ fileCount++;
235
+ }
236
+ }
237
+ }
238
+ catch {
239
+ }
240
+ };
241
+ countFiles(repoPath);
242
+ logger.debug('GIT', 'Clone completed', { fileCount });
243
+ logger.timingEnd(timingId, 'GIT', `Repository cloned: ${repoName}`);
244
+ return repoPath;
245
+ }
246
+ async queryRepository(repoName, query) {
247
+ logger.info('LIBRARIAN', 'Querying repository', { repoName, queryLength: query.length });
248
+ const timingId = logger.timingStart('queryRepository');
249
+ const tech = this.resolveTechnology(repoName);
250
+ if (!tech) {
251
+ logger.error('LIBRARIAN', 'Technology not found in configuration', undefined, { repoName });
252
+ throw new Error(`Repository ${repoName} not found in configuration`);
253
+ }
254
+ const repoPath = await this.syncRepository(repoName);
255
+ const context = {
256
+ workingDir: repoPath,
257
+ group: tech.group,
258
+ technology: tech.name,
259
+ };
260
+ logger.debug('LIBRARIAN', 'Initializing agent for query with context', {
261
+ workingDir: context.workingDir.replace(os.homedir(), '~'),
262
+ group: context.group,
263
+ technology: context.technology
264
+ });
265
+ const agent = new ReactAgent({
266
+ aiProvider: this.config.aiProvider,
267
+ workingDir: repoPath,
268
+ technology: {
269
+ name: tech.name,
270
+ repository: tech.repo,
271
+ branch: tech.branch
272
+ }
273
+ });
274
+ await agent.initialize();
275
+ const result = await agent.queryRepository(repoPath, query, context);
276
+ logger.timingEnd(timingId, 'LIBRARIAN', `Query completed: ${repoName}`);
277
+ logger.info('LIBRARIAN', 'Query result received', { repoName, responseLength: result.length });
278
+ return result;
279
+ }
280
+ async *streamRepository(repoName, query) {
281
+ logger.info('LIBRARIAN', 'Streaming repository query', { repoName, queryLength: query.length });
282
+ const timingId = logger.timingStart('streamRepository');
283
+ const tech = this.resolveTechnology(repoName);
284
+ if (!tech) {
285
+ logger.error('LIBRARIAN', 'Technology not found in configuration', undefined, { repoName });
286
+ throw new Error(`Repository ${repoName} not found in configuration`);
287
+ }
288
+ let isInterrupted = false;
289
+ const cleanup = () => {
290
+ isInterrupted = true;
291
+ };
292
+ logger.debug('LIBRARIAN', 'Setting up interruption handlers');
293
+ process.on('SIGINT', cleanup);
294
+ process.on('SIGTERM', cleanup);
295
+ try {
296
+ const repoPath = await this.syncRepository(repoName);
297
+ if (isInterrupted) {
298
+ logger.warn('LIBRARIAN', 'Repository sync interrupted by user', { repoName });
299
+ yield '[Repository sync interrupted by user]';
300
+ return;
301
+ }
302
+ const context = {
303
+ workingDir: repoPath,
304
+ group: tech.group,
305
+ technology: tech.name,
306
+ };
307
+ logger.debug('LIBRARIAN', 'Initializing agent for streaming query with context', {
308
+ workingDir: context.workingDir.replace(os.homedir(), '~'),
309
+ group: context.group,
310
+ technology: context.technology
311
+ });
312
+ const agent = new ReactAgent({
313
+ aiProvider: this.config.aiProvider,
314
+ workingDir: repoPath,
315
+ technology: {
316
+ name: tech.name,
317
+ repository: tech.repo,
318
+ branch: tech.branch
319
+ }
320
+ });
321
+ await agent.initialize();
322
+ if (isInterrupted) {
323
+ logger.warn('LIBRARIAN', 'Agent initialization interrupted by user', { repoName });
324
+ yield '[Agent initialization interrupted by user]';
325
+ return;
326
+ }
327
+ logger.debug('LIBRARIAN', 'Starting stream from agent');
328
+ yield* agent.streamRepository(repoPath, query, context);
329
+ }
330
+ catch (error) {
331
+ let errorMessage = 'Unknown error';
332
+ if (error instanceof Error) {
333
+ if (error.message.includes('not found in configuration')) {
334
+ errorMessage = error.message;
335
+ }
336
+ else if (error.message.includes('git') || error.message.includes('clone')) {
337
+ errorMessage = `Repository operation failed: ${error.message}`;
338
+ }
339
+ else if (error.message.includes('timeout')) {
340
+ errorMessage = 'Repository operation timed out';
341
+ }
342
+ else {
343
+ errorMessage = `Repository error: ${error.message}`;
344
+ }
345
+ }
346
+ logger.error('LIBRARIAN', 'Stream error', error instanceof Error ? error : new Error(errorMessage), { repoName });
347
+ yield `\n[Error: ${errorMessage}]`;
348
+ throw error;
349
+ }
350
+ finally {
351
+ process.removeListener('SIGINT', cleanup);
352
+ process.removeListener('SIGTERM', cleanup);
353
+ logger.timingEnd(timingId, 'LIBRARIAN', `Stream completed: ${repoName}`);
354
+ }
355
+ }
356
+ async queryGroup(groupName, query) {
357
+ logger.info('LIBRARIAN', 'Querying group', { groupName, queryLength: query.length });
358
+ const timingId = logger.timingStart('queryGroup');
359
+ if (!this.config.technologies[groupName]) {
360
+ logger.error('LIBRARIAN', 'Group not found in configuration', undefined, { groupName });
361
+ throw new Error(`Group ${groupName} not found in configuration`);
362
+ }
363
+ const groupPath = this.getSecureGroupPath(groupName);
364
+ const technologies = this.config.technologies[groupName];
365
+ if (technologies) {
366
+ const techNames = Object.keys(technologies);
367
+ logger.info('LIBRARIAN', 'Syncing all technologies in group', { groupName, techCount: techNames.length });
368
+ for (const techName of techNames) {
369
+ await this.syncRepository(techName);
370
+ }
371
+ }
372
+ const context = {
373
+ workingDir: groupPath,
374
+ group: groupName,
375
+ technology: '',
376
+ };
377
+ logger.debug('LIBRARIAN', 'Initializing agent for group query with context', {
378
+ workingDir: context.workingDir.replace(os.homedir(), '~'),
379
+ group: context.group
380
+ });
381
+ const agent = new ReactAgent({
382
+ aiProvider: this.config.aiProvider,
383
+ workingDir: groupPath
384
+ });
385
+ await agent.initialize();
386
+ const result = await agent.queryRepository(groupPath, query, context);
387
+ logger.timingEnd(timingId, 'LIBRARIAN', `Group query completed: ${groupName}`);
388
+ logger.info('LIBRARIAN', 'Group query result received', { groupName, responseLength: result.length });
389
+ return result;
390
+ }
391
+ async *streamGroup(groupName, query) {
392
+ logger.info('LIBRARIAN', 'Streaming group query', { groupName, queryLength: query.length });
393
+ const timingId = logger.timingStart('streamGroup');
394
+ if (!this.config.technologies[groupName]) {
395
+ logger.error('LIBRARIAN', 'Group not found in configuration', undefined, { groupName });
396
+ throw new Error(`Group ${groupName} not found in configuration`);
397
+ }
398
+ const groupPath = this.getSecureGroupPath(groupName);
399
+ let isInterrupted = false;
400
+ const cleanup = () => {
401
+ isInterrupted = true;
402
+ };
403
+ logger.debug('LIBRARIAN', 'Setting up interruption handlers for group');
404
+ process.on('SIGINT', cleanup);
405
+ process.on('SIGTERM', cleanup);
406
+ try {
407
+ const technologies = this.config.technologies[groupName];
408
+ if (technologies) {
409
+ const techNames = Object.keys(technologies);
410
+ logger.info('LIBRARIAN', 'Syncing all technologies in group for streaming', { groupName, techCount: techNames.length });
411
+ for (const techName of techNames) {
412
+ await this.syncRepository(techName);
413
+ }
414
+ }
415
+ if (isInterrupted) {
416
+ logger.warn('LIBRARIAN', 'Group sync interrupted by user', { groupName });
417
+ yield '[Repository sync interrupted by user]';
418
+ return;
419
+ }
420
+ const context = {
421
+ workingDir: groupPath,
422
+ group: groupName,
423
+ technology: '',
424
+ };
425
+ logger.debug('LIBRARIAN', 'Initializing agent for group streaming with context', {
426
+ workingDir: context.workingDir.replace(os.homedir(), '~'),
427
+ group: context.group
428
+ });
429
+ const agent = new ReactAgent({
430
+ aiProvider: this.config.aiProvider,
431
+ workingDir: groupPath
432
+ });
433
+ await agent.initialize();
434
+ if (isInterrupted) {
435
+ logger.warn('LIBRARIAN', 'Agent initialization interrupted by user for group', { groupName });
436
+ yield '[Agent initialization interrupted by user]';
437
+ return;
438
+ }
439
+ logger.debug('LIBRARIAN', 'Starting stream from agent for group');
440
+ yield* agent.streamRepository(groupPath, query, context);
441
+ }
442
+ catch (error) {
443
+ const errorMessage = this.getGroupStreamErrorMessage(error);
444
+ logger.error('LIBRARIAN', 'Group stream error', error instanceof Error ? error : new Error(errorMessage), { groupName });
445
+ yield `\n[Error: ${errorMessage}]`;
446
+ throw error;
447
+ }
448
+ finally {
449
+ process.removeListener('SIGINT', cleanup);
450
+ process.removeListener('SIGTERM', cleanup);
451
+ logger.timingEnd(timingId, 'LIBRARIAN', `Group stream completed: ${groupName}`);
452
+ }
453
+ }
454
+ getGroupStreamErrorMessage(error) {
455
+ if (!(error instanceof Error)) {
456
+ return 'Unknown error';
457
+ }
458
+ if (error.message.includes('not found in configuration')) {
459
+ return error.message;
460
+ }
461
+ if (error.message.includes('git') || error.message.includes('clone')) {
462
+ return `Repository operation failed: ${error.message}`;
463
+ }
464
+ if (error.message.includes('timeout')) {
465
+ return 'Repository operation timed out';
466
+ }
467
+ return `Group error: ${error.message}`;
468
+ }
469
+ }
470
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const fileFindTool: import("langchain").DynamicStructuredTool<z.ZodObject<{
3
+ searchPath: z.ZodString;
4
+ patterns: z.ZodArray<z.ZodString>;
5
+ exclude: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
6
+ recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ maxResults: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
+ includeHidden: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
9
+ }, z.core.$strip>, {
10
+ searchPath: string;
11
+ patterns: string[];
12
+ exclude: string[];
13
+ recursive: boolean;
14
+ maxResults: number;
15
+ includeHidden: boolean;
16
+ }, {
17
+ searchPath: string;
18
+ patterns: string[];
19
+ exclude?: string[] | undefined;
20
+ recursive?: boolean | undefined;
21
+ maxResults?: number | undefined;
22
+ includeHidden?: boolean | undefined;
23
+ }, string>;
24
+ //# sourceMappingURL=file-finding.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-finding.tool.d.ts","sourceRoot":"","sources":["../../src/tools/file-finding.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoKxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;UA8JxB,CAAC"}