@ariso-ai/ivan 1.0.5 → 1.0.6

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 (91) hide show
  1. package/dist/config.d.ts +10 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +202 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/database/migrations/009_create_repository_table.d.ts +3 -0
  6. package/dist/database/migrations/009_create_repository_table.d.ts.map +1 -0
  7. package/dist/database/migrations/009_create_repository_table.js +15 -0
  8. package/dist/database/migrations/009_create_repository_table.js.map +1 -0
  9. package/dist/database/migrations/010_add_repository_id_to_jobs_and_tasks.d.ts +3 -0
  10. package/dist/database/migrations/010_add_repository_id_to_jobs_and_tasks.d.ts.map +1 -0
  11. package/dist/database/migrations/010_add_repository_id_to_jobs_and_tasks.js +13 -0
  12. package/dist/database/migrations/010_add_repository_id_to_jobs_and_tasks.js.map +1 -0
  13. package/dist/database/migrations/011_create_learnings_table.d.ts +3 -0
  14. package/dist/database/migrations/011_create_learnings_table.d.ts.map +1 -0
  15. package/dist/database/migrations/011_create_learnings_table.js +16 -0
  16. package/dist/database/migrations/011_create_learnings_table.js.map +1 -0
  17. package/dist/database/migrations/012_create_learning_embeddings_table.d.ts +3 -0
  18. package/dist/database/migrations/012_create_learning_embeddings_table.d.ts.map +1 -0
  19. package/dist/database/migrations/012_create_learning_embeddings_table.js +13 -0
  20. package/dist/database/migrations/012_create_learning_embeddings_table.js.map +1 -0
  21. package/dist/database/migrations/index.d.ts.map +1 -1
  22. package/dist/database/migrations/index.js +5 -1
  23. package/dist/database/migrations/index.js.map +1 -1
  24. package/dist/database/types.d.ts +11 -0
  25. package/dist/database/types.d.ts.map +1 -1
  26. package/dist/services/address-executor.d.ts.map +1 -1
  27. package/dist/services/address-executor.js +8 -21
  28. package/dist/services/address-executor.js.map +1 -1
  29. package/dist/services/address-task-executor.d.ts.map +1 -1
  30. package/dist/services/address-task-executor.js +5 -6
  31. package/dist/services/address-task-executor.js.map +1 -1
  32. package/dist/services/git-interfaces.d.ts +67 -0
  33. package/dist/services/git-interfaces.d.ts.map +1 -0
  34. package/dist/services/git-interfaces.js +2 -0
  35. package/dist/services/git-interfaces.js.map +1 -0
  36. package/dist/services/git-manager-cli.d.ts +33 -0
  37. package/dist/services/git-manager-cli.d.ts.map +1 -0
  38. package/dist/services/git-manager-cli.js +734 -0
  39. package/dist/services/git-manager-cli.js.map +1 -0
  40. package/dist/services/git-manager-pat.d.ts +36 -0
  41. package/dist/services/git-manager-pat.d.ts.map +1 -0
  42. package/dist/services/git-manager-pat.js +667 -0
  43. package/dist/services/git-manager-pat.js.map +1 -0
  44. package/dist/services/github-api-client.d.ts +115 -0
  45. package/dist/services/github-api-client.d.ts.map +1 -0
  46. package/dist/services/github-api-client.js +256 -0
  47. package/dist/services/github-api-client.js.map +1 -0
  48. package/dist/services/index.d.ts +9 -2
  49. package/dist/services/index.d.ts.map +1 -1
  50. package/dist/services/index.js +12 -2
  51. package/dist/services/index.js.map +1 -1
  52. package/dist/services/job-manager.d.ts +3 -3
  53. package/dist/services/job-manager.d.ts.map +1 -1
  54. package/dist/services/job-manager.js +14 -10
  55. package/dist/services/job-manager.js.map +1 -1
  56. package/dist/services/learn-executor.d.ts +13 -0
  57. package/dist/services/learn-executor.d.ts.map +1 -0
  58. package/dist/services/learn-executor.js +293 -0
  59. package/dist/services/learn-executor.js.map +1 -0
  60. package/dist/services/learning-service.d.ts +30 -0
  61. package/dist/services/learning-service.d.ts.map +1 -0
  62. package/dist/services/learning-service.js +88 -0
  63. package/dist/services/learning-service.js.map +1 -0
  64. package/dist/services/pr-service-cli.d.ts +12 -0
  65. package/dist/services/pr-service-cli.d.ts.map +1 -0
  66. package/dist/services/pr-service-cli.js +291 -0
  67. package/dist/services/pr-service-cli.js.map +1 -0
  68. package/dist/services/pr-service-pat.d.ts +15 -0
  69. package/dist/services/pr-service-pat.d.ts.map +1 -0
  70. package/dist/services/pr-service-pat.js +255 -0
  71. package/dist/services/pr-service-pat.js.map +1 -0
  72. package/dist/services/repository-manager-cli.d.ts +17 -0
  73. package/dist/services/repository-manager-cli.d.ts.map +1 -0
  74. package/dist/services/repository-manager-cli.js +148 -0
  75. package/dist/services/repository-manager-cli.js.map +1 -0
  76. package/dist/services/repository-manager-pat.d.ts +17 -0
  77. package/dist/services/repository-manager-pat.d.ts.map +1 -0
  78. package/dist/services/repository-manager-pat.js +148 -0
  79. package/dist/services/repository-manager-pat.js.map +1 -0
  80. package/dist/services/repository-manager.d.ts +7 -0
  81. package/dist/services/repository-manager.d.ts.map +1 -1
  82. package/dist/services/repository-manager.js +47 -0
  83. package/dist/services/repository-manager.js.map +1 -1
  84. package/dist/services/service-factory.d.ts +27 -0
  85. package/dist/services/service-factory.d.ts.map +1 -0
  86. package/dist/services/service-factory.js +79 -0
  87. package/dist/services/service-factory.js.map +1 -0
  88. package/dist/services/task-executor.d.ts.map +1 -1
  89. package/dist/services/task-executor.js +39 -68
  90. package/dist/services/task-executor.js.map +1 -1
  91. package/package.json +1 -1
@@ -0,0 +1,148 @@
1
+ import { execSync } from 'child_process';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import inquirer from 'inquirer';
5
+ import chalk from 'chalk';
6
+ import { DatabaseManager } from '../database.js';
7
+ export class RepositoryManagerCLI {
8
+ dbManager;
9
+ constructor() {
10
+ this.dbManager = new DatabaseManager();
11
+ }
12
+ async getValidWorkingDirectory() {
13
+ const currentDir = process.cwd();
14
+ if (this.isValidTargetRepository(currentDir)) {
15
+ return currentDir;
16
+ }
17
+ console.log(chalk.yellow('⚠️ Current directory is not a valid target repository'));
18
+ if (!this.isGitRepository(currentDir)) {
19
+ console.log(chalk.red('❌ Not a git repository'));
20
+ }
21
+ else if (this.isIvanRepository(currentDir)) {
22
+ console.log(chalk.red('❌ Cannot run Ivan on itself'));
23
+ }
24
+ return await this.promptForRepositoryPath();
25
+ }
26
+ isGitRepository(dir) {
27
+ try {
28
+ execSync('git rev-parse --git-dir', {
29
+ cwd: dir,
30
+ stdio: 'ignore'
31
+ });
32
+ return true;
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ isIvanRepository(dir) {
39
+ try {
40
+ const packageJsonPath = path.join(dir, 'package.json');
41
+ if (!fs.existsSync(packageJsonPath)) {
42
+ return false;
43
+ }
44
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
45
+ return packageJson.name === '@ariso-ai/ivan' || packageJson.name === 'ivan';
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ isValidTargetRepository(dir) {
52
+ return this.isGitRepository(dir) && !this.isIvanRepository(dir);
53
+ }
54
+ async promptForRepositoryPath() {
55
+ console.log('');
56
+ console.log(chalk.blue('📁 Please specify the repository where Ivan should work'));
57
+ while (true) {
58
+ const { repositoryPath } = await inquirer.prompt([
59
+ {
60
+ type: 'input',
61
+ name: 'repositoryPath',
62
+ message: 'Enter the path to your target repository:',
63
+ validate: (input) => {
64
+ if (!input || input.trim().length === 0) {
65
+ return 'Please enter a valid path';
66
+ }
67
+ return true;
68
+ }
69
+ }
70
+ ]);
71
+ const fullPath = path.resolve(repositoryPath.trim());
72
+ if (!fs.existsSync(fullPath)) {
73
+ console.log(chalk.red('❌ Path does not exist'));
74
+ continue;
75
+ }
76
+ if (!fs.statSync(fullPath).isDirectory()) {
77
+ console.log(chalk.red('❌ Path is not a directory'));
78
+ continue;
79
+ }
80
+ if (!this.isGitRepository(fullPath)) {
81
+ console.log(chalk.red('❌ Path is not a git repository'));
82
+ continue;
83
+ }
84
+ if (this.isIvanRepository(fullPath)) {
85
+ console.log(chalk.red('❌ Cannot run Ivan on itself'));
86
+ continue;
87
+ }
88
+ console.log(chalk.green(`✅ Using repository: ${fullPath}`));
89
+ return fullPath;
90
+ }
91
+ }
92
+ getRepositoryInfo(workingDir) {
93
+ try {
94
+ const repoName = path.basename(workingDir);
95
+ const branch = execSync('git branch --show-current', {
96
+ cwd: workingDir,
97
+ encoding: 'utf8'
98
+ }).trim();
99
+ return { name: repoName, branch };
100
+ }
101
+ catch {
102
+ return { name: path.basename(workingDir), branch: 'unknown' };
103
+ }
104
+ }
105
+ getRemoteUrl(workingDir) {
106
+ try {
107
+ const remoteUrl = execSync('git config --get remote.origin.url', {
108
+ cwd: workingDir,
109
+ encoding: 'utf8'
110
+ }).trim();
111
+ return remoteUrl || null;
112
+ }
113
+ catch {
114
+ return null;
115
+ }
116
+ }
117
+ async getOrCreateRepository(workingDir) {
118
+ const db = this.dbManager.getKysely();
119
+ // Check if repository exists
120
+ const existingRepo = await db
121
+ .selectFrom('repositories')
122
+ .selectAll()
123
+ .where('directory', '=', workingDir)
124
+ .executeTakeFirst();
125
+ if (existingRepo) {
126
+ return existingRepo;
127
+ }
128
+ // Create new repository
129
+ const { name } = this.getRepositoryInfo(workingDir);
130
+ const remoteUrl = this.getRemoteUrl(workingDir);
131
+ await db.insertInto('repositories').values({
132
+ remote_url: remoteUrl,
133
+ directory: workingDir,
134
+ name
135
+ }).execute();
136
+ // Fetch the created repository with its id
137
+ const createdRepo = await db
138
+ .selectFrom('repositories')
139
+ .selectAll()
140
+ .where('directory', '=', workingDir)
141
+ .executeTakeFirstOrThrow();
142
+ return createdRepo;
143
+ }
144
+ close() {
145
+ this.dbManager.close();
146
+ }
147
+ }
148
+ //# sourceMappingURL=repository-manager-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-manager-cli.js","sourceRoot":"","sources":["../../src/services/repository-manager-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Selectable } from 'kysely';
2
+ import { Repository } from '../database.js';
3
+ import { IRepositoryManager, RepositoryInfo } from './git-interfaces.js';
4
+ export declare class RepositoryManagerPAT implements IRepositoryManager {
5
+ private dbManager;
6
+ constructor();
7
+ getValidWorkingDirectory(): Promise<string>;
8
+ private isGitRepository;
9
+ private isIvanRepository;
10
+ private isValidTargetRepository;
11
+ private promptForRepositoryPath;
12
+ getRepositoryInfo(workingDir: string): RepositoryInfo;
13
+ private getRemoteUrl;
14
+ getOrCreateRepository(workingDir: string): Promise<Selectable<Repository>>;
15
+ close(): void;
16
+ }
17
+ //# sourceMappingURL=repository-manager-pat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-manager-pat.d.ts","sourceRoot":"","sources":["../../src/services/repository-manager-pat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAmB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,SAAS,CAAkB;;IAM7B,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBjD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;YAIjB,uBAAuB;IA8CrC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAcrD,OAAO,CAAC,YAAY;IAYd,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAkChF,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,148 @@
1
+ import { execSync } from 'child_process';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import inquirer from 'inquirer';
5
+ import chalk from 'chalk';
6
+ import { DatabaseManager } from '../database.js';
7
+ export class RepositoryManagerPAT {
8
+ dbManager;
9
+ constructor() {
10
+ this.dbManager = new DatabaseManager();
11
+ }
12
+ async getValidWorkingDirectory() {
13
+ const currentDir = process.cwd();
14
+ if (this.isValidTargetRepository(currentDir)) {
15
+ return currentDir;
16
+ }
17
+ console.log(chalk.yellow('⚠️ Current directory is not a valid target repository'));
18
+ if (!this.isGitRepository(currentDir)) {
19
+ console.log(chalk.red('❌ Not a git repository'));
20
+ }
21
+ else if (this.isIvanRepository(currentDir)) {
22
+ console.log(chalk.red('❌ Cannot run Ivan on itself'));
23
+ }
24
+ return await this.promptForRepositoryPath();
25
+ }
26
+ isGitRepository(dir) {
27
+ try {
28
+ execSync('git rev-parse --git-dir', {
29
+ cwd: dir,
30
+ stdio: 'ignore'
31
+ });
32
+ return true;
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ isIvanRepository(dir) {
39
+ try {
40
+ const packageJsonPath = path.join(dir, 'package.json');
41
+ if (!fs.existsSync(packageJsonPath)) {
42
+ return false;
43
+ }
44
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
45
+ return packageJson.name === '@ariso-ai/ivan' || packageJson.name === 'ivan';
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ isValidTargetRepository(dir) {
52
+ return this.isGitRepository(dir) && !this.isIvanRepository(dir);
53
+ }
54
+ async promptForRepositoryPath() {
55
+ console.log('');
56
+ console.log(chalk.blue('📁 Please specify the repository where Ivan should work'));
57
+ while (true) {
58
+ const { repositoryPath } = await inquirer.prompt([
59
+ {
60
+ type: 'input',
61
+ name: 'repositoryPath',
62
+ message: 'Enter the path to your target repository:',
63
+ validate: (input) => {
64
+ if (!input || input.trim().length === 0) {
65
+ return 'Please enter a valid path';
66
+ }
67
+ return true;
68
+ }
69
+ }
70
+ ]);
71
+ const fullPath = path.resolve(repositoryPath.trim());
72
+ if (!fs.existsSync(fullPath)) {
73
+ console.log(chalk.red('❌ Path does not exist'));
74
+ continue;
75
+ }
76
+ if (!fs.statSync(fullPath).isDirectory()) {
77
+ console.log(chalk.red('❌ Path is not a directory'));
78
+ continue;
79
+ }
80
+ if (!this.isGitRepository(fullPath)) {
81
+ console.log(chalk.red('❌ Path is not a git repository'));
82
+ continue;
83
+ }
84
+ if (this.isIvanRepository(fullPath)) {
85
+ console.log(chalk.red('❌ Cannot run Ivan on itself'));
86
+ continue;
87
+ }
88
+ console.log(chalk.green(`✅ Using repository: ${fullPath}`));
89
+ return fullPath;
90
+ }
91
+ }
92
+ getRepositoryInfo(workingDir) {
93
+ try {
94
+ const repoName = path.basename(workingDir);
95
+ const branch = execSync('git branch --show-current', {
96
+ cwd: workingDir,
97
+ encoding: 'utf8'
98
+ }).trim();
99
+ return { name: repoName, branch };
100
+ }
101
+ catch {
102
+ return { name: path.basename(workingDir), branch: 'unknown' };
103
+ }
104
+ }
105
+ getRemoteUrl(workingDir) {
106
+ try {
107
+ const remoteUrl = execSync('git config --get remote.origin.url', {
108
+ cwd: workingDir,
109
+ encoding: 'utf8'
110
+ }).trim();
111
+ return remoteUrl || null;
112
+ }
113
+ catch {
114
+ return null;
115
+ }
116
+ }
117
+ async getOrCreateRepository(workingDir) {
118
+ const db = this.dbManager.getKysely();
119
+ // Check if repository exists
120
+ const existingRepo = await db
121
+ .selectFrom('repositories')
122
+ .selectAll()
123
+ .where('directory', '=', workingDir)
124
+ .executeTakeFirst();
125
+ if (existingRepo) {
126
+ return existingRepo;
127
+ }
128
+ // Create new repository
129
+ const { name } = this.getRepositoryInfo(workingDir);
130
+ const remoteUrl = this.getRemoteUrl(workingDir);
131
+ await db.insertInto('repositories').values({
132
+ remote_url: remoteUrl,
133
+ directory: workingDir,
134
+ name
135
+ }).execute();
136
+ // Fetch the created repository with its id
137
+ const createdRepo = await db
138
+ .selectFrom('repositories')
139
+ .selectAll()
140
+ .where('directory', '=', workingDir)
141
+ .executeTakeFirstOrThrow();
142
+ return createdRepo;
143
+ }
144
+ close() {
145
+ this.dbManager.close();
146
+ }
147
+ }
148
+ //# sourceMappingURL=repository-manager-pat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-manager-pat.js","sourceRoot":"","sources":["../../src/services/repository-manager-pat.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
+ import { Selectable } from 'kysely';
2
+ import { Repository } from '../database.js';
1
3
  export declare class RepositoryManager {
4
+ private dbManager;
5
+ constructor();
2
6
  getValidWorkingDirectory(): Promise<string>;
3
7
  private isGitRepository;
4
8
  private isIvanRepository;
@@ -8,5 +12,8 @@ export declare class RepositoryManager {
8
12
  name: string;
9
13
  branch: string;
10
14
  };
15
+ private getRemoteUrl;
16
+ getOrCreateRepository(workingDir: string): Promise<Selectable<Repository>>;
17
+ close(): void;
11
18
  }
12
19
  //# sourceMappingURL=repository-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository-manager.d.ts","sourceRoot":"","sources":["../../src/services/repository-manager.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IACtB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBjD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;YAIjB,uBAAuB;IA8CrC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAaxE"}
1
+ {"version":3,"file":"repository-manager.d.ts","sourceRoot":"","sources":["../../src/services/repository-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAmB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAkB;;IAK7B,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBjD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;YAIjB,uBAAuB;IA8CrC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAcvE,OAAO,CAAC,YAAY;IAYd,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAkChF,KAAK,IAAI,IAAI;CAGd"}
@@ -3,7 +3,12 @@ import fs from 'fs';
3
3
  import path from 'path';
4
4
  import inquirer from 'inquirer';
5
5
  import chalk from 'chalk';
6
+ import { DatabaseManager } from '../database.js';
6
7
  export class RepositoryManager {
8
+ dbManager;
9
+ constructor() {
10
+ this.dbManager = new DatabaseManager();
11
+ }
7
12
  async getValidWorkingDirectory() {
8
13
  const currentDir = process.cwd();
9
14
  if (this.isValidTargetRepository(currentDir)) {
@@ -97,5 +102,47 @@ export class RepositoryManager {
97
102
  return { name: path.basename(workingDir), branch: 'unknown' };
98
103
  }
99
104
  }
105
+ getRemoteUrl(workingDir) {
106
+ try {
107
+ const remoteUrl = execSync('git config --get remote.origin.url', {
108
+ cwd: workingDir,
109
+ encoding: 'utf8'
110
+ }).trim();
111
+ return remoteUrl || null;
112
+ }
113
+ catch {
114
+ return null;
115
+ }
116
+ }
117
+ async getOrCreateRepository(workingDir) {
118
+ const db = this.dbManager.getKysely();
119
+ // Check if repository exists
120
+ const existingRepo = await db
121
+ .selectFrom('repositories')
122
+ .selectAll()
123
+ .where('directory', '=', workingDir)
124
+ .executeTakeFirst();
125
+ if (existingRepo) {
126
+ return existingRepo;
127
+ }
128
+ // Create new repository
129
+ const { name } = this.getRepositoryInfo(workingDir);
130
+ const remoteUrl = this.getRemoteUrl(workingDir);
131
+ await db.insertInto('repositories').values({
132
+ remote_url: remoteUrl,
133
+ directory: workingDir,
134
+ name
135
+ }).execute();
136
+ // Fetch the created repository with its id
137
+ const createdRepo = await db
138
+ .selectFrom('repositories')
139
+ .selectAll()
140
+ .where('directory', '=', workingDir)
141
+ .executeTakeFirstOrThrow();
142
+ return createdRepo;
143
+ }
144
+ close() {
145
+ this.dbManager.close();
146
+ }
100
147
  }
101
148
  //# sourceMappingURL=repository-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository-manager.js","sourceRoot":"","sources":["../../src/services/repository-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-manager.js","sourceRoot":"","sources":["../../src/services/repository-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { IGitManager, IPRService, IRepositoryManager } from './git-interfaces.js';
2
+ /**
3
+ * Factory class for creating service instances based on GitHub authentication configuration
4
+ */
5
+ export declare class ServiceFactory {
6
+ private configManager;
7
+ constructor();
8
+ /**
9
+ * Create a GitManager instance based on the configured authentication type
10
+ */
11
+ createGitManager(workingDir: string): IGitManager;
12
+ /**
13
+ * Create a PRService instance based on the configured authentication type
14
+ */
15
+ createPRService(workingDir: string): IPRService;
16
+ /**
17
+ * Create a RepositoryManager instance based on the configured authentication type
18
+ */
19
+ createRepositoryManager(): IRepositoryManager;
20
+ }
21
+ /**
22
+ * Convenience functions for creating service instances
23
+ */
24
+ export declare function createGitManager(workingDir: string): IGitManager;
25
+ export declare function createPRService(workingDir: string): IPRService;
26
+ export declare function createRepositoryManager(): IRepositoryManager;
27
+ //# sourceMappingURL=service-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-factory.d.ts","sourceRoot":"","sources":["../../src/services/service-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQlF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;;IAMrC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAejD;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAe/C;;OAEG;IACH,uBAAuB,IAAI,kBAAkB;CAU9C;AAED;;GAEG;AAEH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAGhE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAG9D;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAG5D"}
@@ -0,0 +1,79 @@
1
+ import { ConfigManager } from '../config.js';
2
+ import { GitManagerCLI } from './git-manager-cli.js';
3
+ import { GitManagerPAT } from './git-manager-pat.js';
4
+ import { PRServiceCLI } from './pr-service-cli.js';
5
+ import { PRServicePAT } from './pr-service-pat.js';
6
+ import { RepositoryManagerCLI } from './repository-manager-cli.js';
7
+ import { RepositoryManagerPAT } from './repository-manager-pat.js';
8
+ /**
9
+ * Factory class for creating service instances based on GitHub authentication configuration
10
+ */
11
+ export class ServiceFactory {
12
+ configManager;
13
+ constructor() {
14
+ this.configManager = new ConfigManager();
15
+ }
16
+ /**
17
+ * Create a GitManager instance based on the configured authentication type
18
+ */
19
+ createGitManager(workingDir) {
20
+ const authType = this.configManager.getGithubAuthType();
21
+ if (authType === 'pat') {
22
+ const pat = this.configManager.getGithubPat();
23
+ if (!pat) {
24
+ throw new Error('GitHub PAT is not configured. Please run "ivan configure" and set your PAT.');
25
+ }
26
+ return new GitManagerPAT(workingDir, pat);
27
+ }
28
+ else {
29
+ // Default to CLI
30
+ return new GitManagerCLI(workingDir);
31
+ }
32
+ }
33
+ /**
34
+ * Create a PRService instance based on the configured authentication type
35
+ */
36
+ createPRService(workingDir) {
37
+ const authType = this.configManager.getGithubAuthType();
38
+ if (authType === 'pat') {
39
+ const pat = this.configManager.getGithubPat();
40
+ if (!pat) {
41
+ throw new Error('GitHub PAT is not configured. Please run "ivan configure" and set your PAT.');
42
+ }
43
+ return new PRServicePAT(workingDir, pat);
44
+ }
45
+ else {
46
+ // Default to CLI
47
+ return new PRServiceCLI(workingDir);
48
+ }
49
+ }
50
+ /**
51
+ * Create a RepositoryManager instance based on the configured authentication type
52
+ */
53
+ createRepositoryManager() {
54
+ const authType = this.configManager.getGithubAuthType();
55
+ if (authType === 'pat') {
56
+ return new RepositoryManagerPAT();
57
+ }
58
+ else {
59
+ // Default to CLI
60
+ return new RepositoryManagerCLI();
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * Convenience functions for creating service instances
66
+ */
67
+ export function createGitManager(workingDir) {
68
+ const factory = new ServiceFactory();
69
+ return factory.createGitManager(workingDir);
70
+ }
71
+ export function createPRService(workingDir) {
72
+ const factory = new ServiceFactory();
73
+ return factory.createPRService(workingDir);
74
+ }
75
+ export function createRepositoryManager() {
76
+ const factory = new ServiceFactory();
77
+ return factory.createRepositoryManager();
78
+ }
79
+ //# sourceMappingURL=service-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-factory.js","sourceRoot":"","sources":["../../src/services/service-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,aAAa,CAAgB;IAErC;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAAkB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAExD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;YACD,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAkB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAExD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;YACD,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAExD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AAEH,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,uBAAuB,EAAE,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/services/task-executor.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAqB;;IAU7C,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAOlB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAiNxB,0BAA0B;YA8C1B,WAAW;YA4LX,wBAAwB;IAgOhC,6BAA6B,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2IjF"}
1
+ {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/services/task-executor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAI1E,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAqB;;IAU7C,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAOlB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAuLxB,0BAA0B;YAiD1B,WAAW;YA4LX,wBAAwB;IA2MhC,6BAA6B,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqJjF"}