16
16
17
17
from typing import Optional
18
18
19
- from ..tools . tool_context import ToolContext
19
+ from ..agents . callback_context import CallbackContext
20
20
from ..utils .feature_decorator import experimental
21
21
from .auth_credential import AuthCredential
22
22
from .auth_credential import AuthCredentialTypes
@@ -63,7 +63,7 @@ class CredentialManager:
63
63
)
64
64
65
65
# Load and prepare credential
66
- credential = await manager.load_auth_credential(tool_context )
66
+ credential = await manager.load_auth_credential(callback_context )
67
67
```
68
68
"""
69
69
@@ -100,11 +100,11 @@ def register_credential_exchanger(
100
100
"""
101
101
self ._exchanger_registry .register (credential_type , exchanger_instance )
102
102
103
- async def request_credential (self , tool_context : ToolContext ) -> None :
104
- tool_context .request_credential (self ._auth_config )
103
+ async def request_credential (self , callback_context : CallbackContext ) -> None :
104
+ callback_context .request_credential (self ._auth_config )
105
105
106
106
async def get_auth_credential (
107
- self , tool_context : ToolContext
107
+ self , callback_context : CallbackContext
108
108
) -> Optional [AuthCredential ]:
109
109
"""Load and prepare authentication credential through a structured workflow."""
110
110
@@ -116,14 +116,14 @@ async def get_auth_credential(
116
116
return self ._auth_config .raw_auth_credential
117
117
118
118
# Step 3: Try to load existing processed credential
119
- credential = await self ._load_existing_credential (tool_context )
119
+ credential = await self ._load_existing_credential (callback_context )
120
120
121
121
# Step 4: If no existing credential, load from auth response
122
122
# TODO instead of load from auth response, we can store auth response in
123
123
# credential service.
124
124
was_from_auth_response = False
125
125
if not credential :
126
- credential = await self ._load_from_auth_response (tool_context )
126
+ credential = await self ._load_from_auth_response (callback_context )
127
127
was_from_auth_response = True
128
128
129
129
# Step 5: If still no credential available, return None
@@ -134,22 +134,23 @@ async def get_auth_credential(
134
134
credential , was_exchanged = await self ._exchange_credential (credential )
135
135
136
136
# Step 7: Refresh credential if expired
137
+ was_refreshed = False
137
138
if not was_exchanged :
138
139
credential , was_refreshed = await self ._refresh_credential (credential )
139
140
140
141
# Step 8: Save credential if it was modified
141
142
if was_from_auth_response or was_exchanged or was_refreshed :
142
- await self ._save_credential (tool_context , credential )
143
+ await self ._save_credential (callback_context , credential )
143
144
144
145
return credential
145
146
146
147
async def _load_existing_credential (
147
- self , tool_context : ToolContext
148
+ self , callback_context : CallbackContext
148
149
) -> Optional [AuthCredential ]:
149
150
"""Load existing credential from credential service or cached exchanged credential."""
150
151
151
152
# Try loading from credential service first
152
- credential = await self ._load_from_credential_service (tool_context )
153
+ credential = await self ._load_from_credential_service (callback_context )
153
154
if credential :
154
155
return credential
155
156
@@ -160,23 +161,23 @@ async def _load_existing_credential(
160
161
return None
161
162
162
163
async def _load_from_credential_service (
163
- self , tool_context : ToolContext
164
+ self , callback_context : CallbackContext
164
165
) -> Optional [AuthCredential ]:
165
166
"""Load credential from credential service if available."""
166
- credential_service = tool_context ._invocation_context .credential_service
167
+ credential_service = callback_context ._invocation_context .credential_service
167
168
if credential_service :
168
169
# Note: This should be made async in a future refactor
169
170
# For now, assuming synchronous operation
170
171
return await credential_service .load_credential (
171
- self ._auth_config , tool_context
172
+ self ._auth_config , callback_context
172
173
)
173
174
return None
174
175
175
176
async def _load_from_auth_response (
176
- self , tool_context : ToolContext
177
+ self , callback_context : CallbackContext
177
178
) -> Optional [AuthCredential ]:
178
- """Load credential from auth response in tool context."""
179
- return tool_context .get_auth_response (self ._auth_config )
179
+ """Load credential from auth response in callback context."""
180
+ return callback_context .get_auth_response (self ._auth_config )
180
181
181
182
async def _exchange_credential (
182
183
self , credential : AuthCredential
@@ -251,11 +252,13 @@ async def _validate_credential(self) -> None:
251
252
# Additional validation can be added here
252
253
253
254
async def _save_credential (
254
- self , tool_context : ToolContext , credential : AuthCredential
255
+ self , callback_context : CallbackContext , credential : AuthCredential
255
256
) -> None :
256
257
"""Save credential to credential service if available."""
257
- credential_service = tool_context ._invocation_context .credential_service
258
+ credential_service = callback_context ._invocation_context .credential_service
258
259
if credential_service :
259
260
# Update the exchanged credential in config
260
261
self ._auth_config .exchanged_auth_credential = credential
261
- await credential_service .save_credential (self ._auth_config , tool_context )
262
+ await credential_service .save_credential (
263
+ self ._auth_config , callback_context
264
+ )
0 commit comments