goose-py 0.11.22__py3-none-any.whl → 0.11.24__py3-none-any.whl

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.
goose/_internal/agent.py CHANGED
@@ -37,13 +37,13 @@ class Agent:
37
37
  self.run_id = run_id
38
38
  self.logger = logger
39
39
 
40
- async def generate[R: Result](
40
+ async def generate[R: Result, M: LLMModelAlias](
41
41
  self,
42
42
  *,
43
43
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
44
- model: LLMModelAlias,
44
+ model: M,
45
45
  task_name: str,
46
- router: LLMRouter[LLMModelAlias],
46
+ router: LLMRouter[M],
47
47
  response_model: type[R] = TextResult,
48
48
  ) -> R:
49
49
  start_time = datetime.now()
@@ -88,13 +88,13 @@ class Agent:
88
88
 
89
89
  return parsed_response
90
90
 
91
- async def ask(
91
+ async def ask[M: LLMModelAlias](
92
92
  self,
93
93
  *,
94
94
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
95
- model: LLMModelAlias,
95
+ model: M,
96
96
  task_name: str,
97
- router: LLMRouter[LLMModelAlias],
97
+ router: LLMRouter[M],
98
98
  ) -> str:
99
99
  start_time = datetime.now()
100
100
  typed_messages: list[ExpectedMessage] = [*messages]
@@ -129,12 +129,12 @@ class Agent:
129
129
 
130
130
  return response.text
131
131
 
132
- async def refine[R: Result](
132
+ async def refine[R: Result, M: LLMModelAlias](
133
133
  self,
134
134
  *,
135
135
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
136
- model: LLMModelAlias,
137
- router: LLMRouter[LLMModelAlias],
136
+ model: M,
137
+ router: LLMRouter[M],
138
138
  task_name: str,
139
139
  response_model: type[R],
140
140
  ) -> R:
@@ -181,58 +181,58 @@ class Agent:
181
181
  return refined_response
182
182
 
183
183
  @overload
184
- async def __call__[R: Result](
184
+ async def __call__[R: Result, M: LLMModelAlias](
185
185
  self,
186
186
  *,
187
187
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
188
- model: LLMModelAlias,
189
- router: LLMRouter[LLMModelAlias],
188
+ model: M,
189
+ router: LLMRouter[M],
190
190
  task_name: str,
191
191
  mode: Literal["generate"],
192
192
  response_model: type[R],
193
193
  ) -> R: ...
194
194
 
195
195
  @overload
196
- async def __call__[R: Result](
196
+ async def __call__[R: Result, M: LLMModelAlias](
197
197
  self,
198
198
  *,
199
199
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
200
- model: LLMModelAlias,
201
- router: LLMRouter[LLMModelAlias],
200
+ model: M,
201
+ router: LLMRouter[M],
202
202
  task_name: str,
203
203
  mode: Literal["ask"],
204
204
  response_model: type[R] = TextResult,
205
205
  ) -> str: ...
206
206
 
207
207
  @overload
208
- async def __call__[R: Result](
208
+ async def __call__[R: Result, M: LLMModelAlias](
209
209
  self,
210
210
  *,
211
211
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
212
- model: LLMModelAlias,
213
- router: LLMRouter[LLMModelAlias],
212
+ model: M,
213
+ router: LLMRouter[M],
214
214
  task_name: str,
215
215
  response_model: type[R],
216
216
  mode: Literal["refine"],
217
217
  ) -> R: ...
218
218
 
219
219
  @overload
220
- async def __call__[R: Result](
220
+ async def __call__[R: Result, M: LLMModelAlias](
221
221
  self,
222
222
  *,
223
223
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
224
- model: LLMModelAlias,
225
- router: LLMRouter[LLMModelAlias],
224
+ model: M,
225
+ router: LLMRouter[M],
226
226
  task_name: str,
227
227
  response_model: type[R],
228
228
  ) -> R: ...
229
229
 
230
- async def __call__[R: Result](
230
+ async def __call__[R: Result, M: LLMModelAlias](
231
231
  self,
232
232
  *,
233
233
  messages: list[LLMUserMessage | LLMAssistantMessage | LLMSystemMessage],
234
- model: LLMModelAlias,
235
- router: LLMRouter[LLMModelAlias],
234
+ model: M,
235
+ router: LLMRouter[M],
236
236
  task_name: str,
237
237
  response_model: type[R] = TextResult,
238
238
  mode: Literal["generate", "ask", "refine"] = "generate",
goose/_internal/task.py CHANGED
@@ -18,11 +18,9 @@ class Task[**P, R: Result]:
18
18
  /,
19
19
  *,
20
20
  retries: int = 0,
21
- refinement_model: LLMModelAlias = "gemini-2.0-flash-lite",
22
21
  ) -> None:
23
22
  self._generator = generator
24
23
  self._retries = retries
25
- self._refinement_model: LLMModelAlias = refinement_model
26
24
 
27
25
  @property
28
26
  def result_type(self) -> type[R]:
@@ -44,11 +42,12 @@ class Task[**P, R: Result]:
44
42
  else:
45
43
  return self.result_type.model_validate_json(state.raw_result)
46
44
 
47
- async def ask(
45
+ async def ask[M: LLMModelAlias](
48
46
  self,
49
47
  *,
50
48
  user_message: LLMUserMessage,
51
- router: LLMRouter[LLMModelAlias],
49
+ router: LLMRouter[M],
50
+ model: M,
52
51
  context: LLMSystemMessage | None = None,
53
52
  index: int = 0,
54
53
  ) -> str:
@@ -64,7 +63,7 @@ class Task[**P, R: Result]:
64
63
 
65
64
  answer = await flow_run.agent(
66
65
  messages=node_state.conversation.render(),
67
- model=self._refinement_model,
66
+ model=model,
68
67
  task_name=f"ask--{self.name}",
69
68
  mode="ask",
70
69
  router=router,
@@ -74,11 +73,12 @@ class Task[**P, R: Result]:
74
73
 
75
74
  return answer
76
75
 
77
- async def refine(
76
+ async def refine[M: LLMModelAlias](
78
77
  self,
79
78
  *,
80
79
  user_message: LLMUserMessage,
81
- router: LLMRouter[LLMModelAlias],
80
+ router: LLMRouter[M],
81
+ model: M,
82
82
  context: LLMSystemMessage | None = None,
83
83
  index: int = 0,
84
84
  ) -> R:
@@ -94,7 +94,7 @@ class Task[**P, R: Result]:
94
94
 
95
95
  result = await flow_run.agent(
96
96
  messages=node_state.conversation.render(),
97
- model=self._refinement_model,
97
+ model=model,
98
98
  task_name=f"refine--{self.name}",
99
99
  response_model=self.result_type,
100
100
  mode="refine",
@@ -161,21 +161,18 @@ class Task[**P, R: Result]:
161
161
  @overload
162
162
  def task[**P, R: Result](generator: Callable[P, Awaitable[R]], /) -> Task[P, R]: ...
163
163
  @overload
164
- def task[**P, R: Result](
165
- *, retries: int = 0, refinement_model: LLMModelAlias = "gemini-2.0-flash-lite"
166
- ) -> Callable[[Callable[P, Awaitable[R]]], Task[P, R]]: ...
164
+ def task[**P, R: Result](*, retries: int = 0) -> Callable[[Callable[P, Awaitable[R]]], Task[P, R]]: ...
167
165
  def task[**P, R: Result](
168
166
  generator: Callable[P, Awaitable[R]] | None = None,
169
167
  /,
170
168
  *,
171
169
  retries: int = 0,
172
- refinement_model: LLMModelAlias = "gemini-2.0-flash-lite",
173
170
  ) -> Task[P, R] | Callable[[Callable[P, Awaitable[R]]], Task[P, R]]:
174
171
  if generator is None:
175
172
 
176
173
  def decorator(fn: Callable[P, Awaitable[R]]) -> Task[P, R]:
177
- return Task(fn, retries=retries, refinement_model=refinement_model)
174
+ return Task(fn, retries=retries)
178
175
 
179
176
  return decorator
180
177
 
181
- return Task(generator, retries=retries, refinement_model=refinement_model)
178
+ return Task(generator, retries=retries)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: goose-py
3
- Version: 0.11.22
3
+ Version: 0.11.24
4
4
  Summary: A tool for AI workflows based on human-computer collaboration and structured output.
5
5
  Author-email: Nash Taylor <nash@chelle.ai>, Joshua Cook <joshua@chelle.ai>, Michael Sankur <michael@chelle.ai>
6
6
  Requires-Python: >=3.12
@@ -4,15 +4,15 @@ goose/flow.py,sha256=YsZLBa5I1W27_P6LYGWbtFX8ZYx9vJG3KtENYChHm5E,111
4
4
  goose/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  goose/runs.py,sha256=ub-r_gzbUbaIzWXX-jc-dncNxEh6zTfzIkmnDfCSbRI,160
6
6
  goose/task.py,sha256=95rspdxETJoY12IHBl3KjnVIdqQnf1jDKlnGWNWOTvQ,53
7
- goose/_internal/agent.py,sha256=Wn-bWCG14D60XBmlZoyp2OFX7khw8tdtYv5zsPC5mwA,9235
7
+ goose/_internal/agent.py,sha256=9Hz15SOrhaJWgOXhfQYYW4nrolB2xbMG5G3RwHX_k90,9187
8
8
  goose/_internal/conversation.py,sha256=vhJwe1pHk2lV60DaB9Tz9KbpzQo7_thRYInPjbIoUTE,1437
9
9
  goose/_internal/flow.py,sha256=8MJxlhHYSAzUHZefpF_sRJc37o532OF0X7l3KRopDmc,4115
10
10
  goose/_internal/result.py,sha256=vtJMfBxb9skfl8st2tn4hBmEq6qmXiJTme_B5QTgu2M,538
11
11
  goose/_internal/state.py,sha256=kA116MpsetsQz6nYodsXOqE3uYz37OTgjC9Vcy_3Qvg,8065
12
12
  goose/_internal/store.py,sha256=tWmKfa1-yq1jU6lT3l6kSOmVt2m3H7I1xLMTrxnUDI8,889
13
- goose/_internal/task.py,sha256=27xzbD_4E_j3Cn7JCIxXFiYMgLzVomCKF5I1QInRb2U,6627
13
+ goose/_internal/task.py,sha256=A13TsBQJlo1yuAqbUpDY8k15JAd5WZxqgrz32F18H2U,6311
14
14
  goose/_internal/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  goose/_internal/types/telemetry.py,sha256=xpfkhx7zCdZjjKU8rPuUJ2UHgqmZ084ZupzbTU36gSM,3791
16
- goose_py-0.11.22.dist-info/METADATA,sha256=FwtMXDWnfQrb4Z2zmBCAalMgGAnqtNc1wxwCGQlx6uM,444
17
- goose_py-0.11.22.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
- goose_py-0.11.22.dist-info/RECORD,,
16
+ goose_py-0.11.24.dist-info/METADATA,sha256=nbZUrRJMGWKXI8mm0TiYY1VT6W_dQp8T_hhhGZLX5CY,444
17
+ goose_py-0.11.24.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
+ goose_py-0.11.24.dist-info/RECORD,,