orcommit 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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +318 -0
  3. package/dist/cli.d.ts +70 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +391 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/index.d.ts +18 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +21 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/modules/api.d.ts +48 -0
  12. package/dist/modules/api.d.ts.map +1 -0
  13. package/dist/modules/api.js +286 -0
  14. package/dist/modules/api.js.map +1 -0
  15. package/dist/modules/cache.d.ts +74 -0
  16. package/dist/modules/cache.d.ts.map +1 -0
  17. package/dist/modules/cache.js +284 -0
  18. package/dist/modules/cache.js.map +1 -0
  19. package/dist/modules/config.d.ts +53 -0
  20. package/dist/modules/config.d.ts.map +1 -0
  21. package/dist/modules/config.js +180 -0
  22. package/dist/modules/config.js.map +1 -0
  23. package/dist/modules/core.d.ts +54 -0
  24. package/dist/modules/core.d.ts.map +1 -0
  25. package/dist/modules/core.js +474 -0
  26. package/dist/modules/core.js.map +1 -0
  27. package/dist/modules/diff-filter.d.ts +71 -0
  28. package/dist/modules/diff-filter.d.ts.map +1 -0
  29. package/dist/modules/diff-filter.js +332 -0
  30. package/dist/modules/diff-filter.js.map +1 -0
  31. package/dist/modules/git.d.ts +61 -0
  32. package/dist/modules/git.d.ts.map +1 -0
  33. package/dist/modules/git.js +362 -0
  34. package/dist/modules/git.js.map +1 -0
  35. package/dist/modules/logger.d.ts +67 -0
  36. package/dist/modules/logger.d.ts.map +1 -0
  37. package/dist/modules/logger.js +212 -0
  38. package/dist/modules/logger.js.map +1 -0
  39. package/dist/modules/tokenizer.d.ts +43 -0
  40. package/dist/modules/tokenizer.d.ts.map +1 -0
  41. package/dist/modules/tokenizer.js +200 -0
  42. package/dist/modules/tokenizer.js.map +1 -0
  43. package/dist/types/index.d.ts +141 -0
  44. package/dist/types/index.d.ts.map +1 -0
  45. package/dist/types/index.js +70 -0
  46. package/dist/types/index.js.map +1 -0
  47. package/dist/utils/index.d.ts +64 -0
  48. package/dist/utils/index.d.ts.map +1 -0
  49. package/dist/utils/index.js +154 -0
  50. package/dist/utils/index.js.map +1 -0
  51. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/modules/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Config } from '../types/index.js';
2
+ export declare class ConfigManager {
3
+ private readonly configPath;
4
+ private cachedConfig?;
5
+ constructor();
6
+ /**
7
+ * Load configuration from file or create default if not exists
8
+ */
9
+ load(): Promise<Config>;
10
+ /**
11
+ * Save configuration to file
12
+ */
13
+ save(config: Config): Promise<void>;
14
+ /**
15
+ * Set API key for specific provider
16
+ */
17
+ setApiKey(provider: 'openrouter' | 'openai', apiKey: string): Promise<void>;
18
+ /**
19
+ * Get API key for specific provider
20
+ */
21
+ getApiKey(provider: 'openrouter' | 'openai'): Promise<string | undefined>;
22
+ /**
23
+ * Set model for specific provider
24
+ */
25
+ setModel(provider: 'openrouter' | 'openai', model: string): Promise<void>;
26
+ /**
27
+ * Get masked API key for display purposes
28
+ */
29
+ getMaskedApiKey(provider: 'openrouter' | 'openai'): Promise<string>;
30
+ /**
31
+ * Update user preferences
32
+ */
33
+ updatePreferences(preferences: Partial<Config['preferences']>): Promise<void>;
34
+ /**
35
+ * Validate configuration completeness
36
+ */
37
+ validateConfig(provider: 'openrouter' | 'openai'): Promise<boolean>;
38
+ /**
39
+ * Get configuration path for debugging
40
+ */
41
+ getConfigPath(): string;
42
+ /**
43
+ * Clear cached configuration (useful for testing)
44
+ */
45
+ clearCache(): void;
46
+ private ensureConfigDirectory;
47
+ private fileExists;
48
+ private createDefaultConfig;
49
+ private mergeWithDefaults;
50
+ private mergeProviderConfig;
51
+ }
52
+ export declare const configManager: ConfigManager;
53
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/modules/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAA+C,MAAM,mBAAmB,CAAC;AAExF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,YAAY,CAAC,CAAS;;IAM9B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA2B7B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjF;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK/E;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzE;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAanF;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzE;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,UAAU,IAAI,IAAI;YAMJ,qBAAqB;YASrB,UAAU;YASV,mBAAmB;IAIjC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;CAM5B;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,180 @@
1
+ import { promises as fs } from 'fs';
2
+ import { homedir } from 'os';
3
+ import { join } from 'path';
4
+ import { ConfigError, DEFAULT_CONFIG } from '../types/index.js';
5
+ export class ConfigManager {
6
+ configPath;
7
+ cachedConfig;
8
+ constructor() {
9
+ this.configPath = join(homedir(), '.config', 'orcommit.json');
10
+ }
11
+ /**
12
+ * Load configuration from file or create default if not exists
13
+ */
14
+ async load() {
15
+ if (this.cachedConfig) {
16
+ return this.cachedConfig;
17
+ }
18
+ try {
19
+ await this.ensureConfigDirectory();
20
+ const configExists = await this.fileExists(this.configPath);
21
+ if (!configExists) {
22
+ await this.createDefaultConfig();
23
+ }
24
+ const configData = await fs.readFile(this.configPath, 'utf-8');
25
+ const parsedConfig = JSON.parse(configData);
26
+ // Merge with defaults to ensure all properties exist
27
+ this.cachedConfig = this.mergeWithDefaults(parsedConfig);
28
+ return this.cachedConfig;
29
+ }
30
+ catch (error) {
31
+ throw new ConfigError(`Failed to load configuration: ${error instanceof Error ? error.message : 'Unknown error'}`, error instanceof Error ? error : undefined);
32
+ }
33
+ }
34
+ /**
35
+ * Save configuration to file
36
+ */
37
+ async save(config) {
38
+ try {
39
+ await this.ensureConfigDirectory();
40
+ const configJson = JSON.stringify(config, null, 2);
41
+ await fs.writeFile(this.configPath, configJson, 'utf-8');
42
+ // Set secure permissions (600 - owner read/write only)
43
+ await fs.chmod(this.configPath, 0o600);
44
+ this.cachedConfig = config;
45
+ }
46
+ catch (error) {
47
+ throw new ConfigError(`Failed to save configuration: ${error instanceof Error ? error.message : 'Unknown error'}`, error instanceof Error ? error : undefined);
48
+ }
49
+ }
50
+ /**
51
+ * Set API key for specific provider
52
+ */
53
+ async setApiKey(provider, apiKey) {
54
+ const config = await this.load();
55
+ const updatedConfig = {
56
+ ...config,
57
+ providers: {
58
+ ...config.providers,
59
+ [provider]: {
60
+ ...config.providers[provider],
61
+ apiKey,
62
+ },
63
+ },
64
+ };
65
+ await this.save(updatedConfig);
66
+ }
67
+ /**
68
+ * Get API key for specific provider
69
+ */
70
+ async getApiKey(provider) {
71
+ const config = await this.load();
72
+ return config.providers[provider].apiKey;
73
+ }
74
+ /**
75
+ * Set model for specific provider
76
+ */
77
+ async setModel(provider, model) {
78
+ const config = await this.load();
79
+ const updatedConfig = {
80
+ ...config,
81
+ providers: {
82
+ ...config.providers,
83
+ [provider]: {
84
+ ...config.providers[provider],
85
+ model,
86
+ },
87
+ },
88
+ };
89
+ await this.save(updatedConfig);
90
+ }
91
+ /**
92
+ * Get masked API key for display purposes
93
+ */
94
+ async getMaskedApiKey(provider) {
95
+ const apiKey = await this.getApiKey(provider);
96
+ if (!apiKey)
97
+ return 'Not set';
98
+ if (apiKey.length <= 8)
99
+ return '*'.repeat(apiKey.length);
100
+ return `${apiKey.slice(0, 4)}${'*'.repeat(Math.max(0, apiKey.length - 8))}${apiKey.slice(-4)}`;
101
+ }
102
+ /**
103
+ * Update user preferences
104
+ */
105
+ async updatePreferences(preferences) {
106
+ const config = await this.load();
107
+ const updatedConfig = {
108
+ ...config,
109
+ preferences: {
110
+ ...config.preferences,
111
+ ...preferences,
112
+ },
113
+ };
114
+ await this.save(updatedConfig);
115
+ }
116
+ /**
117
+ * Validate configuration completeness
118
+ */
119
+ async validateConfig(provider) {
120
+ const config = await this.load();
121
+ const providerConfig = config.providers[provider];
122
+ return Boolean(providerConfig.apiKey && providerConfig.apiKey.trim().length > 0);
123
+ }
124
+ /**
125
+ * Get configuration path for debugging
126
+ */
127
+ getConfigPath() {
128
+ return this.configPath;
129
+ }
130
+ /**
131
+ * Clear cached configuration (useful for testing)
132
+ */
133
+ clearCache() {
134
+ this.cachedConfig = undefined;
135
+ }
136
+ // Private methods
137
+ async ensureConfigDirectory() {
138
+ const configDir = join(homedir(), '.config');
139
+ try {
140
+ await fs.access(configDir);
141
+ }
142
+ catch {
143
+ await fs.mkdir(configDir, { recursive: true });
144
+ }
145
+ }
146
+ async fileExists(path) {
147
+ try {
148
+ await fs.access(path);
149
+ return true;
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ }
155
+ async createDefaultConfig() {
156
+ await this.save(DEFAULT_CONFIG);
157
+ }
158
+ mergeWithDefaults(config) {
159
+ return {
160
+ providers: {
161
+ openrouter: this.mergeProviderConfig(DEFAULT_CONFIG.providers.openrouter, config.providers?.openrouter),
162
+ openai: this.mergeProviderConfig(DEFAULT_CONFIG.providers.openai, config.providers?.openai),
163
+ },
164
+ preferences: {
165
+ ...DEFAULT_CONFIG.preferences,
166
+ ...config.preferences,
167
+ },
168
+ version: config.version || DEFAULT_CONFIG.version,
169
+ };
170
+ }
171
+ mergeProviderConfig(defaultConfig, userConfig) {
172
+ return {
173
+ ...defaultConfig,
174
+ ...userConfig,
175
+ };
176
+ }
177
+ }
178
+ // Singleton instance
179
+ export const configManager = new ConfigManager();
180
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/modules/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { CliOptions } from '../types/index.js';
2
+ export declare class CoreOrchestrator {
3
+ private config?;
4
+ /**
5
+ * Initialize the core orchestrator
6
+ */
7
+ initialize(): Promise<void>;
8
+ /**
9
+ * Main entry point for generating and creating commits
10
+ */
11
+ generateCommit(options: CliOptions): Promise<void>;
12
+ /**
13
+ * Generate commit message from diff
14
+ */
15
+ private generateCommitMessage;
16
+ /**
17
+ * Create system prompt based on options and preferences
18
+ */
19
+ private createSystemPrompt;
20
+ /**
21
+ * Prepare diff content for API consumption
22
+ */
23
+ private prepareDiffContent;
24
+ /**
25
+ * Split large diff content into manageable chunks
26
+ */
27
+ private splitDiffIntoChunks;
28
+ /**
29
+ * Combine results from multiple chunks into a single commit message
30
+ */
31
+ private combineChunkResults;
32
+ /**
33
+ * Get the appropriate model for the provider
34
+ */
35
+ private getModel;
36
+ /**
37
+ * Confirm commit with user (unless auto-confirm is enabled)
38
+ */
39
+ private confirmCommit;
40
+ /**
41
+ * Validate environment before processing
42
+ */
43
+ private validateEnvironment;
44
+ /**
45
+ * Perform push operation with proper messaging
46
+ */
47
+ private performPush;
48
+ /**
49
+ * Determine if we should push changes
50
+ */
51
+ private shouldPush;
52
+ }
53
+ export declare const coreOrchestrator: CoreOrchestrator;
54
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAUX,MAAM,mBAAmB,CAAC;AAW3B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqJxD;;OAEG;YACW,qBAAqB;IA8GnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsE1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAahB;;OAEG;YACW,aAAa;IAwB3B;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;YACW,WAAW;IAwBzB;;OAEG;YACW,UAAU;CAczB;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}