@@ -58,6 +58,8 @@ type Options struct {
5858 DisablePromptServer bool
5959 SystemToolsDir string
6060 Env []string
61+ CredentialStore string
62+ CredentialToolsEnv []string
6163}
6264
6365func Complete (opts ... Options ) Options {
@@ -73,8 +75,10 @@ func Complete(opts ...Options) Options {
7375 result .Quiet = types .FirstSet (opt .Quiet , result .Quiet )
7476 result .Workspace = types .FirstSet (opt .Workspace , result .Workspace )
7577 result .Env = append (result .Env , opt .Env ... )
78+ result .CredentialToolsEnv = append (result .CredentialToolsEnv , opt .CredentialToolsEnv ... )
7679 result .DisablePromptServer = types .FirstSet (opt .DisablePromptServer , result .DisablePromptServer )
7780 result .DefaultModelProvider = types .FirstSet (opt .DefaultModelProvider , result .DefaultModelProvider )
81+ result .CredentialStore = types .FirstSet (opt .CredentialStore , result .CredentialStore )
7882 }
7983
8084 if result .Quiet == nil {
@@ -83,6 +87,9 @@ func Complete(opts ...Options) Options {
8387 if len (result .Env ) == 0 {
8488 result .Env = os .Environ ()
8589 }
90+ if len (result .CredentialToolsEnv ) == 0 {
91+ result .CredentialToolsEnv = result .Env
92+ }
8693 if len (result .CredentialContexts ) == 0 {
8794 result .CredentialContexts = []string {credentials .DefaultCredentialContext }
8895 }
@@ -104,11 +111,15 @@ func New(ctx context.Context, o ...Options) (*GPTScript, error) {
104111 return nil , err
105112 }
106113
114+ if opts .CredentialStore != "" {
115+ cliCfg .CredentialsStore = opts .CredentialStore
116+ }
117+
107118 if opts .Runner .RuntimeManager == nil {
108119 opts .Runner .RuntimeManager = runtimes .Default (cacheClient .CacheDir (), opts .SystemToolsDir )
109120 }
110121
111- simplerRunner , err := newSimpleRunner (cacheClient , opts .Runner .RuntimeManager , opts .Env )
122+ simplerRunner , err := newSimpleRunner (cacheClient , opts .Runner .RuntimeManager , opts .CredentialToolsEnv )
112123 if err != nil {
113124 return nil , err
114125 }
0 commit comments