@@ -15,7 +15,8 @@ dotenv.config();
1515
1616export enum CONFIG_KEYS {
1717 OCO_OPENAI_API_KEY = 'OCO_OPENAI_API_KEY' ,
18- OCO_OPENAI_MAX_TOKENS = 'OCO_OPENAI_MAX_TOKENS' ,
18+ OCO_TOKENS_MAX_INPUT = 'OCO_TOKENS_MAX_INPUT' ,
19+ OCO_TOKENS_MAX_OUTPUT = 'OCO_TOKENS_MAX_OUTPUT' ,
1920 OCO_OPENAI_BASE_PATH = 'OCO_OPENAI_BASE_PATH' ,
2021 OCO_DESCRIPTION = 'OCO_DESCRIPTION' ,
2122 OCO_EMOJI = 'OCO_EMOJI' ,
@@ -26,13 +27,16 @@ export enum CONFIG_KEYS {
2627 OCO_AI_PROVIDER = 'OCO_AI_PROVIDER' ,
2728}
2829
29- export const DEFAULT_MODEL_TOKEN_LIMIT = 4096 ;
30-
3130export enum CONFIG_MODES {
3231 get = 'get' ,
3332 set = 'set'
3433}
3534
35+ export enum DEFAULT_TOKEN_LIMITS {
36+ DEFAULT_MAX_TOKENS_INPUT = 4096 ,
37+ DEFAULT_MAX_TOKENS_OUTPUT = 500
38+ }
39+
3640const validateConfig = (
3741 key : string ,
3842 condition : any ,
@@ -75,18 +79,37 @@ export const configValidators = {
7579 return value ;
7680 } ,
7781
78- [ CONFIG_KEYS . OCO_OPENAI_MAX_TOKENS ] ( value : any ) {
82+ [ CONFIG_KEYS . OCO_TOKENS_MAX_INPUT ] ( value : any ) {
83+ // If the value is a string, convert it to a number.
84+ if ( typeof value === 'string' ) {
85+ value = parseInt ( value ) ;
86+ validateConfig (
87+ CONFIG_KEYS . OCO_TOKENS_MAX_INPUT ,
88+ ! isNaN ( value ) ,
89+ 'Must be a number'
90+ ) ;
91+ }
92+ validateConfig (
93+ CONFIG_KEYS . OCO_TOKENS_MAX_INPUT ,
94+ value ? typeof value === 'number' : undefined ,
95+ 'Must be a number'
96+ ) ;
97+
98+ return value ;
99+ } ,
100+
101+ [ CONFIG_KEYS . OCO_TOKENS_MAX_OUTPUT ] ( value : any ) {
79102 // If the value is a string, convert it to a number.
80103 if ( typeof value === 'string' ) {
81104 value = parseInt ( value ) ;
82105 validateConfig (
83- CONFIG_KEYS . OCO_OPENAI_MAX_TOKENS ,
106+ CONFIG_KEYS . OCO_TOKENS_MAX_OUTPUT ,
84107 ! isNaN ( value ) ,
85108 'Must be a number'
86109 ) ;
87110 }
88111 validateConfig (
89- CONFIG_KEYS . OCO_OPENAI_MAX_TOKENS ,
112+ CONFIG_KEYS . OCO_TOKENS_MAX_OUTPUT ,
90113 value ? typeof value === 'number' : undefined ,
91114 'Must be a number'
92115 ) ;
@@ -178,8 +201,11 @@ const configPath = pathJoin(homedir(), '.opencommit');
178201export const getConfig = ( ) : ConfigType | null => {
179202 const configFromEnv = {
180203 OCO_OPENAI_API_KEY : process . env . OCO_OPENAI_API_KEY ,
181- OCO_OPENAI_MAX_TOKENS : process . env . OCO_OPENAI_MAX_TOKENS
182- ? Number ( process . env . OCO_OPENAI_MAX_TOKENS )
204+ OCO_TOKENS_MAX_INPUT : process . env . OCO_TOKENS_MAX_INPUT
205+ ? Number ( process . env . OCO_TOKENS_MAX_INPUT )
206+ : undefined ,
207+ OCO_TOKENS_MAX_OUTPUT : process . env . OCO_TOKENS_MAX_OUTPUT
208+ ? Number ( process . env . OCO_TOKENS_MAX_OUTPUT )
183209 : undefined ,
184210 OCO_OPENAI_BASE_PATH : process . env . OCO_OPENAI_BASE_PATH ,
185211 OCO_DESCRIPTION : process . env . OCO_DESCRIPTION === 'true' ? true : false ,
0 commit comments