33package cli
44
55import (
6+ "context"
67 "flag"
78 "fmt"
89 "github.com/codemakerai/codemaker-sdk-go/client"
@@ -74,6 +75,7 @@ func (c *Cli) parseGenerateArgs() {
7475 lang := generateDocsCmd .String ("language" , "" , "Programming language: JavaScript, Java, Kotlin" )
7576 replace := generateDocsCmd .Bool ("replace" , false , "Determines if the existing code is replaced" )
7677 codePath := generateDocsCmd .String ("codepath" , "" , "The codepath to match." )
78+ model := generateDocsCmd .String ("model" , "" , "The fine-tuned model name." )
7779
7880 err := generateDocsCmd .Parse (os .Args [3 :])
7981 if err != nil {
@@ -93,10 +95,15 @@ func (c *Cli) parseGenerateArgs() {
9395 os .Exit (1 )
9496 }
9597
96- cl := c .createClient (* config )
98+ cl , err := c .createClient (* config )
99+ if err != nil {
100+ c .logger .Errorf ("Can not create client: %v" , err )
101+ os .Exit (1 )
102+ }
103+
97104 files := generateDocsCmd .Args ()[0 :]
98105
99- if err := c .generateCode (cl , lang , replace , codePath , files ); err != nil {
106+ if err := c .generateCode (cl , lang , replace , codePath , model , files ); err != nil {
100107 c .logger .Errorf ("Could not generate the code %v" , err )
101108 }
102109 break
@@ -124,7 +131,12 @@ func (c *Cli) parseGenerateArgs() {
124131 os .Exit (1 )
125132 }
126133
127- cl := c .createClient (* config )
134+ cl , err := c .createClient (* config )
135+ if err != nil {
136+ c .logger .Errorf ("Can not create client: %v" , err )
137+ os .Exit (1 )
138+ }
139+
128140 files := generateDocsCmd .Args ()[0 :]
129141
130142 if err := c .generateDocumentation (cl , lang , replace , codePath , files ); err != nil {
@@ -165,7 +177,12 @@ func (c *Cli) parseFixArgs() {
165177 os .Exit (1 )
166178 }
167179
168- cl := c .createClient (* config )
180+ cl , err := c .createClient (* config )
181+ if err != nil {
182+ c .logger .Errorf ("Can not create client: %v" , err )
183+ os .Exit (1 )
184+ }
185+
169186 input := refactorNaming .Args ()[0 :]
170187
171188 if err := c .fixSyntax (cl , lang , input ); err != nil {
@@ -178,7 +195,7 @@ func (c *Cli) parseFixArgs() {
178195 }
179196}
180197
181- func (c * Cli ) generateCode (cl client.Client , lang * string , replace * bool , codePath * string , files []string ) error {
198+ func (c * Cli ) generateCode (cl client.Client , lang * string , replace * bool , codePath * string , model * string , files []string ) error {
182199 return c .walkPath (files , func (file string ) error {
183200 if lang == nil || len (* lang ) == 0 {
184201 actLang , err := languageFromExtension (filepath .Ext (file ))
@@ -194,7 +211,7 @@ func (c *Cli) generateCode(cl client.Client, lang *string, replace *bool, codePa
194211 return err
195212 }
196213
197- output , err := c .process (cl , client .ModeCode , * lang , * replace , codePath , "" , source )
214+ output , err := c .process (cl , client .ModeCode , * lang , * replace , codePath , model , source )
198215 if err != nil {
199216 return err
200217 }
@@ -223,7 +240,7 @@ func (c *Cli) generateDocumentation(cl client.Client, lang *string, replace *boo
223240 return err
224241 }
225242
226- output , err := c .process (cl , client .ModeDocument , * lang , * replace , codePath , "" , source )
243+ output , err := c .process (cl , client .ModeDocument , * lang , * replace , codePath , nil , source )
227244 if err != nil {
228245 return err
229246 }
@@ -254,7 +271,7 @@ func (c *Cli) generateTests(cl client.Client, lang *string, files []string, outp
254271 return err
255272 }
256273
257- output , err := c .process (cl , client .ModeUnitTest , * lang , false , nil , "" , source )
274+ output , err := c .process (cl , client .ModeUnitTest , * lang , false , nil , nil , source )
258275 if err != nil {
259276 c .logger .Errorf ("failed to generate documentation for file %s %v" , file , err )
260277 return err
@@ -285,7 +302,7 @@ func (c *Cli) generateTests(cl client.Client, lang *string, files []string, outp
285302 })
286303}
287304
288- func (c * Cli ) migrateSyntax (cl client.Client , lang * string , langVer * string , files []string ) error {
305+ func (c * Cli ) migrateSyntax (cl client.Client , lang * string , files []string ) error {
289306 return c .walkPath (files , func (file string ) error {
290307 if lang == nil || len (* lang ) == 0 {
291308 actLang , err := languageFromExtension (filepath .Ext (file ))
@@ -303,7 +320,7 @@ func (c *Cli) migrateSyntax(cl client.Client, lang *string, langVer *string, fil
303320 return nil
304321 }
305322
306- output , err := c .process (cl , client .ModeMigrateSyntax , * lang , false , nil , * langVer , source )
323+ output , err := c .process (cl , client .ModeMigrateSyntax , * lang , false , nil , nil , source )
307324 if err != nil {
308325 c .logger .Errorf ("failed to migrate syntax in file %s %v" , file , err )
309326 return nil
@@ -335,7 +352,7 @@ func (c *Cli) refactorNaming(cl client.Client, lang *string, files []string) err
335352 return nil
336353 }
337354
338- output , err := c .process (cl , client .ModeRefactorNaming , * lang , false , nil , "" , source )
355+ output , err := c .process (cl , client .ModeRefactorNaming , * lang , false , nil , nil , source )
339356 if err != nil {
340357 c .logger .Errorf ("failed to rename variables in file %s %v" , file , err )
341358 return nil
@@ -367,7 +384,7 @@ func (c *Cli) fixSyntax(cl client.Client, lang *string, files []string) error {
367384 return nil
368385 }
369386
370- output , err := c .process (cl , client .ModeFixSyntax , * lang , false , nil , "" , source )
387+ output , err := c .process (cl , client .ModeFixSyntax , * lang , false , nil , nil , source )
371388 if err != nil {
372389 c .logger .Errorf ("failed to fix syntax in file %s %v" , file , err )
373390 return nil
@@ -381,7 +398,9 @@ func (c *Cli) fixSyntax(cl client.Client, lang *string, files []string) error {
381398 })
382399}
383400
384- func (c * Cli ) process (cl client.Client , mode string , lang string , replace bool , codePath * string , langVer string , source string ) (* string , error ) {
401+ func (c * Cli ) process (cl client.Client , mode string , lang string , replace bool , codePath * string , model * string , source string ) (* string , error ) {
402+ ctx := context .Background ()
403+
385404 modify := client .ModifyNone
386405 if replace {
387406 modify = client .ModifyReplace
@@ -391,57 +410,23 @@ func (c *Cli) process(cl client.Client, mode string, lang string, replace bool,
391410 codePath = nil
392411 }
393412
394- process , err := cl .CreateProcess (& client.CreateProcessRequest {
395- Process : client.Process {
396- Mode : mode ,
397- Language : lang ,
398- Input : client.Input {
399- Source : source ,
400- },
401- Options : & client.Options {
402- LanguageVersion : & langVer ,
403- Modify : & modify ,
404- CodePath : codePath ,
405- },
413+ process , err := cl .Process (ctx , & client.ProcessRequest {
414+ Mode : mode ,
415+ Language : lang ,
416+ Input : client.Input {
417+ Source : source ,
418+ },
419+ Options : & client.Options {
420+ Modify : & modify ,
421+ CodePath : codePath ,
422+ Model : model ,
406423 },
407424 })
408425 if err != nil {
409426 return nil , err
410427 }
411428
412- retry := 0
413- timeout := time .After (processTimeout )
414- for {
415- status , err := cl .GetProcessStatus (& client.GetProcessStatusRequest {
416- Id : process .Id ,
417- })
418- if err != nil {
419- return nil , err
420- }
421-
422- if c .isCompleted (status ) {
423- break
424- } else if c .isFailed (status ) {
425- return nil , fmt .Errorf ("the task processing has failed" )
426- }
427-
428- select {
429- case <- timeout :
430- return nil , fmt .Errorf ("the task processing had timed out" )
431- default :
432- c .backoff (retry )
433- retry ++
434- }
435- }
436-
437- output , err := cl .GetProcessOutput (& client.GetProcessOutputRequest {
438- Id : process .Id ,
439- })
440- if err != nil {
441- return nil , err
442- }
443-
444- return & output .Output .Source , nil
429+ return & process .Source , nil
445430}
446431
447432func (c * Cli ) configure () error {
@@ -480,15 +465,6 @@ func (c *Cli) printVersion() {
480465 c .logger .Infof ("CodeMaker CLI version %s (Build %s)" , Version , Build )
481466}
482467
483- func (c * Cli ) isCompleted (status * client.GetProcessStatusResponse ) bool {
484- return status .Status == client .StatusCompleted
485- }
486-
487- func (c * Cli ) isFailed (status * client.GetProcessStatusResponse ) bool {
488- return status .Status == client .StatusFailed ||
489- status .Status == client .StatusTimedOut
490- }
491-
492468func (c * Cli ) backoff (retry int ) {
493469 retry -= nonExponentRetries
494470 if retry < 0 {
@@ -576,7 +552,7 @@ func (c *Cli) writeFile(file string, source string) error {
576552 return os .WriteFile (file , []byte (source ), 0644 )
577553}
578554
579- func (c * Cli ) createClient (config client.Config ) client.Client {
555+ func (c * Cli ) createClient (config client.Config ) ( client.Client , error ) {
580556 return client .NewClient (config )
581557}
582558
0 commit comments