AstrBot 4.5.6__py3-none-any.whl → 4.5.8__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.
Files changed (55) hide show
  1. astrbot/api/all.py +2 -1
  2. astrbot/api/provider/__init__.py +2 -1
  3. astrbot/core/agent/message.py +1 -1
  4. astrbot/core/agent/run_context.py +7 -2
  5. astrbot/core/agent/runners/base.py +7 -0
  6. astrbot/core/agent/runners/tool_loop_agent_runner.py +51 -3
  7. astrbot/core/agent/tool.py +5 -6
  8. astrbot/core/astr_agent_context.py +13 -8
  9. astrbot/core/astr_agent_hooks.py +36 -0
  10. astrbot/core/astr_agent_run_util.py +80 -0
  11. astrbot/core/astr_agent_tool_exec.py +246 -0
  12. astrbot/core/config/default.py +53 -7
  13. astrbot/core/exceptions.py +9 -0
  14. astrbot/core/pipeline/context.py +1 -2
  15. astrbot/core/pipeline/context_utils.py +0 -65
  16. astrbot/core/pipeline/process_stage/method/llm_request.py +239 -491
  17. astrbot/core/pipeline/respond/stage.py +21 -20
  18. astrbot/core/platform/platform_metadata.py +3 -0
  19. astrbot/core/platform/register.py +2 -0
  20. astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py +2 -0
  21. astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py +16 -5
  22. astrbot/core/platform/sources/discord/discord_platform_adapter.py +4 -1
  23. astrbot/core/platform/sources/discord/discord_platform_event.py +16 -7
  24. astrbot/core/platform/sources/lark/lark_adapter.py +4 -1
  25. astrbot/core/platform/sources/misskey/misskey_adapter.py +4 -1
  26. astrbot/core/platform/sources/satori/satori_adapter.py +2 -2
  27. astrbot/core/platform/sources/slack/slack_adapter.py +2 -0
  28. astrbot/core/platform/sources/webchat/webchat_adapter.py +3 -0
  29. astrbot/core/platform/sources/webchat/webchat_event.py +8 -1
  30. astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py +4 -1
  31. astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py +16 -0
  32. astrbot/core/platform/sources/wecom/wecom_adapter.py +2 -1
  33. astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py +4 -1
  34. astrbot/core/provider/__init__.py +2 -2
  35. astrbot/core/provider/entities.py +40 -18
  36. astrbot/core/provider/func_tool_manager.py +15 -6
  37. astrbot/core/provider/manager.py +4 -1
  38. astrbot/core/provider/provider.py +7 -22
  39. astrbot/core/provider/register.py +2 -0
  40. astrbot/core/provider/sources/anthropic_source.py +0 -2
  41. astrbot/core/provider/sources/coze_source.py +0 -2
  42. astrbot/core/provider/sources/dashscope_source.py +1 -3
  43. astrbot/core/provider/sources/dify_source.py +0 -2
  44. astrbot/core/provider/sources/gemini_source.py +31 -3
  45. astrbot/core/provider/sources/groq_source.py +15 -0
  46. astrbot/core/provider/sources/openai_source.py +67 -21
  47. astrbot/core/provider/sources/zhipu_source.py +1 -6
  48. astrbot/core/star/context.py +197 -45
  49. astrbot/core/star/register/star_handler.py +30 -10
  50. astrbot/dashboard/routes/chat.py +5 -0
  51. {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/METADATA +2 -2
  52. {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/RECORD +55 -50
  53. {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/WHEEL +0 -0
  54. {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/entry_points.txt +0 -0
  55. {astrbot-4.5.6.dist-info → astrbot-4.5.8.dist-info}/licenses/LICENSE +0 -0
@@ -5,6 +5,10 @@ from typing import Any
5
5
 
6
6
  from deprecated import deprecated
7
7
 
8
+ from astrbot.core.agent.hooks import BaseAgentRunHooks
9
+ from astrbot.core.agent.message import Message
10
+ from astrbot.core.agent.runners.tool_loop_agent_runner import ToolLoopAgentRunner
11
+ from astrbot.core.agent.tool import ToolSet
8
12
  from astrbot.core.astrbot_config_mgr import AstrBotConfigManager
9
13
  from astrbot.core.config.astrbot_config import AstrBotConfig
10
14
  from astrbot.core.conversation_mgr import ConversationManager
@@ -13,10 +17,10 @@ from astrbot.core.knowledge_base.kb_mgr import KnowledgeBaseManager
13
17
  from astrbot.core.message.message_event_result import MessageChain
14
18
  from astrbot.core.persona_mgr import PersonaManager
15
19
  from astrbot.core.platform import Platform
16
- from astrbot.core.platform.astr_message_event import MessageSesion
20
+ from astrbot.core.platform.astr_message_event import AstrMessageEvent, MessageSesion
17
21
  from astrbot.core.platform.manager import PlatformManager
18
22
  from astrbot.core.platform_message_history_mgr import PlatformMessageHistoryManager
19
- from astrbot.core.provider.entities import ProviderType
23
+ from astrbot.core.provider.entities import LLMResponse, ProviderRequest, ProviderType
20
24
  from astrbot.core.provider.func_tool_manager import FunctionTool, FunctionToolManager
21
25
  from astrbot.core.provider.manager import ProviderManager
22
26
  from astrbot.core.provider.provider import (
@@ -31,6 +35,7 @@ from astrbot.core.star.filter.platform_adapter_type import (
31
35
  PlatformAdapterType,
32
36
  )
33
37
 
38
+ from ..exceptions import ProviderNotFoundError
34
39
  from .filter.command import CommandFilter
35
40
  from .filter.regex import RegexFilter
36
41
  from .star import StarMetadata, star_map, star_registry
@@ -75,6 +80,153 @@ class Context:
75
80
  self.astrbot_config_mgr = astrbot_config_mgr
76
81
  self.kb_manager = knowledge_base_manager
77
82
 
83
+ async def llm_generate(
84
+ self,
85
+ *,
86
+ chat_provider_id: str,
87
+ prompt: str | None = None,
88
+ image_urls: list[str] | None = None,
89
+ tools: ToolSet | None = None,
90
+ system_prompt: str | None = None,
91
+ contexts: list[Message] | None = None,
92
+ **kwargs: Any,
93
+ ) -> LLMResponse:
94
+ """Call the LLM to generate a response. The method will not automatically execute tool calls. If you want to use tool calls, please use `tool_loop_agent()`.
95
+
96
+ .. versionadded:: 4.5.7 (sdk)
97
+
98
+ Args:
99
+ chat_provider_id: The chat provider ID to use.
100
+ prompt: The prompt to send to the LLM, if `contexts` and `prompt` are both provided, `prompt` will be appended as the last user message
101
+ image_urls: List of image URLs to include in the prompt, if `contexts` and `prompt` are both provided, `image_urls` will be appended to the last user message
102
+ tools: ToolSet of tools available to the LLM
103
+ system_prompt: System prompt to guide the LLM's behavior, if provided, it will always insert as the first system message in the context
104
+ contexts: context messages for the LLM
105
+ **kwargs: Additional keyword arguments for LLM generation, OpenAI compatible
106
+
107
+ Raises:
108
+ ChatProviderNotFoundError: If the specified chat provider ID is not found
109
+ Exception: For other errors during LLM generation
110
+ """
111
+ prov = await self.provider_manager.get_provider_by_id(chat_provider_id)
112
+ if not prov or not isinstance(prov, Provider):
113
+ raise ProviderNotFoundError(f"Provider {chat_provider_id} not found")
114
+ llm_resp = await prov.text_chat(
115
+ prompt=prompt,
116
+ image_urls=image_urls,
117
+ func_tool=tools,
118
+ contexts=contexts,
119
+ system_prompt=system_prompt,
120
+ **kwargs,
121
+ )
122
+ return llm_resp
123
+
124
+ async def tool_loop_agent(
125
+ self,
126
+ *,
127
+ event: AstrMessageEvent,
128
+ chat_provider_id: str,
129
+ prompt: str | None = None,
130
+ image_urls: list[str] | None = None,
131
+ tools: ToolSet | None = None,
132
+ system_prompt: str | None = None,
133
+ contexts: list[Message] | None = None,
134
+ max_steps: int = 30,
135
+ tool_call_timeout: int = 60,
136
+ **kwargs: Any,
137
+ ) -> LLMResponse:
138
+ """Run an agent loop that allows the LLM to call tools iteratively until a final answer is produced.
139
+ If you do not pass the agent_context parameter, the method will recreate a new agent context.
140
+
141
+ .. versionadded:: 4.5.7 (sdk)
142
+
143
+ Args:
144
+ chat_provider_id: The chat provider ID to use.
145
+ prompt: The prompt to send to the LLM, if `contexts` and `prompt` are both provided, `prompt` will be appended as the last user message
146
+ image_urls: List of image URLs to include in the prompt, if `contexts` and `prompt` are both provided, `image_urls` will be appended to the last user message
147
+ tools: ToolSet of tools available to the LLM
148
+ system_prompt: System prompt to guide the LLM's behavior, if provided, it will always insert as the first system message in the context
149
+ contexts: context messages for the LLM
150
+ max_steps: Maximum number of tool calls before stopping the loop
151
+ **kwargs: Additional keyword arguments. The kwargs will not be passed to the LLM directly for now, but can include:
152
+ agent_hooks: BaseAgentRunHooks[AstrAgentContext] - hooks to run during agent execution
153
+ agent_context: AstrAgentContext - context to use for the agent
154
+
155
+ Returns:
156
+ The final LLMResponse after tool calls are completed.
157
+
158
+ Raises:
159
+ ChatProviderNotFoundError: If the specified chat provider ID is not found
160
+ Exception: For other errors during LLM generation
161
+ """
162
+ # Import here to avoid circular imports
163
+ from astrbot.core.astr_agent_context import (
164
+ AgentContextWrapper,
165
+ AstrAgentContext,
166
+ )
167
+ from astrbot.core.astr_agent_tool_exec import FunctionToolExecutor
168
+
169
+ prov = await self.provider_manager.get_provider_by_id(chat_provider_id)
170
+ if not prov or not isinstance(prov, Provider):
171
+ raise ProviderNotFoundError(f"Provider {chat_provider_id} not found")
172
+
173
+ agent_hooks = kwargs.get("agent_hooks") or BaseAgentRunHooks[AstrAgentContext]()
174
+ agent_context = kwargs.get("agent_context")
175
+
176
+ context_ = []
177
+ for msg in contexts or []:
178
+ if isinstance(msg, Message):
179
+ context_.append(msg.model_dump())
180
+ else:
181
+ context_.append(msg)
182
+
183
+ request = ProviderRequest(
184
+ prompt=prompt,
185
+ image_urls=image_urls or [],
186
+ func_tool=tools,
187
+ contexts=context_,
188
+ system_prompt=system_prompt or "",
189
+ )
190
+ if agent_context is None:
191
+ agent_context = AstrAgentContext(
192
+ context=self,
193
+ event=event,
194
+ )
195
+ agent_runner = ToolLoopAgentRunner()
196
+ tool_executor = FunctionToolExecutor()
197
+ await agent_runner.reset(
198
+ provider=prov,
199
+ request=request,
200
+ run_context=AgentContextWrapper(
201
+ context=agent_context,
202
+ tool_call_timeout=tool_call_timeout,
203
+ ),
204
+ tool_executor=tool_executor,
205
+ agent_hooks=agent_hooks,
206
+ streaming=kwargs.get("stream", False),
207
+ )
208
+ async for _ in agent_runner.step_until_done(max_steps):
209
+ pass
210
+ llm_resp = agent_runner.get_final_llm_resp()
211
+ if not llm_resp:
212
+ raise Exception("Agent did not produce a final LLM response")
213
+ return llm_resp
214
+
215
+ async def get_current_chat_provider_id(self, umo: str) -> str:
216
+ """Get the ID of the currently used chat provider.
217
+
218
+ Args:
219
+ umo(str): unified_message_origin value, if provided and user has enabled provider session isolation, the provider preferred by that session will be used.
220
+
221
+ Raises:
222
+ ProviderNotFoundError: If the specified chat provider is not found
223
+
224
+ """
225
+ prov = self.get_using_provider(umo)
226
+ if not prov:
227
+ raise ProviderNotFoundError("Provider not found")
228
+ return prov.meta().id
229
+
78
230
  def get_registered_star(self, star_name: str) -> StarMetadata | None:
79
231
  """根据插件名获取插件的 Metadata"""
80
232
  for star in star_registry:
@@ -107,10 +259,6 @@ class Context:
107
259
  """
108
260
  return self.provider_manager.llm_tools.deactivate_llm_tool(name)
109
261
 
110
- def register_provider(self, provider: Provider):
111
- """注册一个 LLM Provider(Chat_Completion 类型)。"""
112
- self.provider_manager.provider_insts.append(provider)
113
-
114
262
  def get_provider_by_id(
115
263
  self,
116
264
  provider_id: str,
@@ -189,45 +337,6 @@ class Context:
189
337
  return self._config
190
338
  return self.astrbot_config_mgr.get_conf(umo)
191
339
 
192
- def get_db(self) -> BaseDatabase:
193
- """获取 AstrBot 数据库。"""
194
- return self._db
195
-
196
- def get_event_queue(self) -> Queue:
197
- """获取事件队列。"""
198
- return self._event_queue
199
-
200
- @deprecated(version="4.0.0", reason="Use get_platform_inst instead")
201
- def get_platform(self, platform_type: PlatformAdapterType | str) -> Platform | None:
202
- """获取指定类型的平台适配器。
203
-
204
- 该方法已经过时,请使用 get_platform_inst 方法。(>= AstrBot v4.0.0)
205
- """
206
- for platform in self.platform_manager.platform_insts:
207
- name = platform.meta().name
208
- if isinstance(platform_type, str):
209
- if name == platform_type:
210
- return platform
211
- elif (
212
- name in ADAPTER_NAME_2_TYPE
213
- and ADAPTER_NAME_2_TYPE[name] & platform_type
214
- ):
215
- return platform
216
-
217
- def get_platform_inst(self, platform_id: str) -> Platform | None:
218
- """获取指定 ID 的平台适配器实例。
219
-
220
- Args:
221
- platform_id (str): 平台适配器的唯一标识符。你可以通过 event.get_platform_id() 获取。
222
-
223
- Returns:
224
- Platform: 平台适配器实例,如果未找到则返回 None。
225
-
226
- """
227
- for platform in self.platform_manager.platform_insts:
228
- if platform.meta().id == platform_id:
229
- return platform
230
-
231
340
  async def send_message(
232
341
  self,
233
342
  session: str | MessageSesion,
@@ -300,6 +409,49 @@ class Context:
300
409
  以下的方法已经不推荐使用。请从 AstrBot 文档查看更好的注册方式。
301
410
  """
302
411
 
412
+ def get_event_queue(self) -> Queue:
413
+ """获取事件队列。"""
414
+ return self._event_queue
415
+
416
+ @deprecated(version="4.0.0", reason="Use get_platform_inst instead")
417
+ def get_platform(self, platform_type: PlatformAdapterType | str) -> Platform | None:
418
+ """获取指定类型的平台适配器。
419
+
420
+ 该方法已经过时,请使用 get_platform_inst 方法。(>= AstrBot v4.0.0)
421
+ """
422
+ for platform in self.platform_manager.platform_insts:
423
+ name = platform.meta().name
424
+ if isinstance(platform_type, str):
425
+ if name == platform_type:
426
+ return platform
427
+ elif (
428
+ name in ADAPTER_NAME_2_TYPE
429
+ and ADAPTER_NAME_2_TYPE[name] & platform_type
430
+ ):
431
+ return platform
432
+
433
+ def get_platform_inst(self, platform_id: str) -> Platform | None:
434
+ """获取指定 ID 的平台适配器实例。
435
+
436
+ Args:
437
+ platform_id (str): 平台适配器的唯一标识符。你可以通过 event.get_platform_id() 获取。
438
+
439
+ Returns:
440
+ Platform: 平台适配器实例,如果未找到则返回 None。
441
+
442
+ """
443
+ for platform in self.platform_manager.platform_insts:
444
+ if platform.meta().id == platform_id:
445
+ return platform
446
+
447
+ def get_db(self) -> BaseDatabase:
448
+ """获取 AstrBot 数据库。"""
449
+ return self._db
450
+
451
+ def register_provider(self, provider: Provider):
452
+ """注册一个 LLM Provider(Chat_Completion 类型)。"""
453
+ self.provider_manager.provider_insts.append(provider)
454
+
303
455
  def register_llm_tool(
304
456
  self,
305
457
  name: str,
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import re
3
4
  from collections.abc import Awaitable, Callable
4
5
  from typing import Any
5
6
 
@@ -11,7 +12,7 @@ from astrbot.core.agent.handoff import HandoffTool
11
12
  from astrbot.core.agent.hooks import BaseAgentRunHooks
12
13
  from astrbot.core.agent.tool import FunctionTool
13
14
  from astrbot.core.astr_agent_context import AstrAgentContext
14
- from astrbot.core.provider.func_tool_manager import SUPPORTED_TYPES
15
+ from astrbot.core.provider.func_tool_manager import PY_TO_JSON_TYPE, SUPPORTED_TYPES
15
16
  from astrbot.core.provider.register import llm_tools
16
17
 
17
18
  from ..filter.command import CommandFilter
@@ -417,18 +418,37 @@ def register_llm_tool(name: str | None = None, **kwargs):
417
418
  docstring = docstring_parser.parse(func_doc)
418
419
  args = []
419
420
  for arg in docstring.params:
420
- if arg.type_name not in SUPPORTED_TYPES:
421
+ sub_type_name = None
422
+ type_name = arg.type_name
423
+ if not type_name:
424
+ raise ValueError(
425
+ f"LLM 函数工具 {awaitable.__module__}_{llm_tool_name} 的参数 {arg.arg_name} 缺少类型注释。",
426
+ )
427
+ # parse type_name to handle cases like "list[string]"
428
+ match = re.match(r"(\w+)\[(\w+)\]", type_name)
429
+ if match:
430
+ type_name = match.group(1)
431
+ sub_type_name = match.group(2)
432
+ type_name = PY_TO_JSON_TYPE.get(type_name, type_name)
433
+ if sub_type_name:
434
+ sub_type_name = PY_TO_JSON_TYPE.get(sub_type_name, sub_type_name)
435
+ if type_name not in SUPPORTED_TYPES or (
436
+ sub_type_name and sub_type_name not in SUPPORTED_TYPES
437
+ ):
421
438
  raise ValueError(
422
439
  f"LLM 函数工具 {awaitable.__module__}_{llm_tool_name} 不支持的参数类型:{arg.type_name}",
423
440
  )
424
- args.append(
425
- {
426
- "type": arg.type_name,
427
- "name": arg.arg_name,
428
- "description": arg.description,
429
- },
430
- )
431
- # print(llm_tool_name, registering_agent)
441
+
442
+ arg_json_schema = {
443
+ "type": type_name,
444
+ "name": arg.arg_name,
445
+ "description": arg.description,
446
+ }
447
+ if sub_type_name:
448
+ if type_name == "array":
449
+ arg_json_schema["items"] = {"type": sub_type_name}
450
+ args.append(arg_json_schema)
451
+
432
452
  if not registering_agent:
433
453
  doc_desc = docstring.description.strip() if docstring.description else ""
434
454
  md = get_handler_or_create(awaitable, EventType.OnCallingFuncToolEvent)
@@ -125,6 +125,8 @@ class ChatRoute(Route):
125
125
  audio_url = post_data.get("audio_url")
126
126
  selected_provider = post_data.get("selected_provider")
127
127
  selected_model = post_data.get("selected_model")
128
+ enable_streaming = post_data.get("enable_streaming", True) # 默认为 True
129
+
128
130
  if not message and not image_url and not audio_url:
129
131
  return (
130
132
  Response()
@@ -202,6 +204,8 @@ class ChatRoute(Route):
202
204
  ):
203
205
  # 追加机器人消息
204
206
  new_his = {"type": "bot", "message": result_text}
207
+ if "reasoning" in result:
208
+ new_his["reasoning"] = result["reasoning"]
205
209
  await self.platform_history_mgr.insert(
206
210
  platform_id="webchat",
207
211
  user_id=webchat_conv_id,
@@ -224,6 +228,7 @@ class ChatRoute(Route):
224
228
  "audio_url": audio_url,
225
229
  "selected_provider": selected_provider,
226
230
  "selected_model": selected_model,
231
+ "enable_streaming": enable_streaming,
227
232
  },
228
233
  ),
229
234
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AstrBot
3
- Version: 4.5.6
3
+ Version: 4.5.8
4
4
  Summary: Easy-to-use multi-platform LLM chatbot and development framework
5
5
  License-File: LICENSE
6
6
  Keywords: Astrbot,Astrbot Module,Astrbot Plugin
@@ -68,7 +68,7 @@ Description-Content-Type: text/markdown
68
68
 
69
69
  <div>
70
70
  <a href="https://trendshift.io/repositories/12875" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12875" alt="Soulter%2FAstrBot | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
71
- <a href="https://hellogithub.com/repository/AstrBotDevs/AstrBot" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=d127d50cd5e54c5382328acc3bb25483&claim_uid=ZO9by7qCXgSd6Lp&t=1" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
71
+ <a href="https://hellogithub.com/repository/AstrBotDevs/AstrBot" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=d127d50cd5e54c5382328acc3bb25483&claim_uid=ZO9by7qCXgSd6Lp&t=2" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
72
72
  </div>
73
73
 
74
74
  <br>
@@ -1,11 +1,11 @@
1
1
  astrbot/__init__.py,sha256=QZZ0-g1T26mH28hIq98lEHh29pW1c1GqQUyY-lBRUKI,84
2
2
  astrbot/api/__init__.py,sha256=ec-txHoj5ytUG85VkDf5sW6eH6Wkd068-anFwO1Xaf4,568
3
- astrbot/api/all.py,sha256=pg_9_cv55aKjU2z7dUq8tm59l3MBVa0J3UAP2Sq8oFY,1446
3
+ astrbot/api/all.py,sha256=nqGqsrbRPOHWTIkyUfo61gLl10c1xWnR006d0RNB4Rc,1476
4
4
  astrbot/api/message_components.py,sha256=4x2LXczK598y9dVbfvfQJR8-UwhPRjQ99kYw_F7ZGms,46
5
5
  astrbot/api/event/__init__.py,sha256=w2pZepTsWEGvuBYWggdxoqx2Y3k3R5haCeuUgizs0Wk,368
6
6
  astrbot/api/event/filter/__init__.py,sha256=OTGVKQWw2FtPULMTgukw5ZkpliNr4sNf-QfRpsKrZyA,2055
7
7
  astrbot/api/platform/__init__.py,sha256=HXvAy_KLtOJspoGVgDtLa7VjIZoF6WK3Puww55yy89M,465
8
- astrbot/api/provider/__init__.py,sha256=8sMm_S3XwYNlaQnYo7W1f3VLE27iH5iaCoiQnlBvTkw,349
8
+ astrbot/api/provider/__init__.py,sha256=mJVcon0snjn_xYirk2hntwba6ymIYYC-ZKKmxvx-jok,379
9
9
  astrbot/api/star/__init__.py,sha256=OxgHGtWn3lEQGjb4twbpbWnRepUevPu7gxtDAkAsfhQ,250
10
10
  astrbot/api/util/__init__.py,sha256=L1O_mFEUDk8V4lEPsT5iiNbIiOVh7HbrNmitqzUWMZg,180
11
11
  astrbot/cli/__init__.py,sha256=b5kXc-KWXgh_CEs-Gwrxdta2EjaWkLB9RgvwamG7L4g,23
@@ -20,11 +20,15 @@ astrbot/cli/utils/basic.py,sha256=-sjbBl0YfF-gt1jvkVyddBk-OWXIVpfG6JcF0DqOLZA,26
20
20
  astrbot/cli/utils/plugin.py,sha256=FdLVcDHH5dBpoBhLC6iWriUomp_5ONGlWNJnOG4ZOnM,8666
21
21
  astrbot/cli/utils/version_comparator.py,sha256=NVUmshfb5LU4a-S453rI7opqo0QtIHvlT1KUD3pdoVM,3462
22
22
  astrbot/core/__init__.py,sha256=zsaF9IeON4NaHk_Ktr0eB7xQEFC5tUZ4UJCesC3-KHM,1220
23
- astrbot/core/astr_agent_context.py,sha256=xXR_X5--nXlqPIPpoJ-qhF8U1HclNKQCuey9H5e9CdU,402
23
+ astrbot/core/astr_agent_context.py,sha256=bgSbB-JgK_ncK-H2cxj-Ox0Gt_D8X4QmrgbalL9Hgzs,618
24
+ astrbot/core/astr_agent_hooks.py,sha256=QOMtBaamDRiylGIby5D5ApThk94Y_Dcy4gDnhPBHXKo,1073
25
+ astrbot/core/astr_agent_run_util.py,sha256=QQyyy649GgdcRHkdGg0N1U2yACn5O5kMj_pX2034U5U,3295
26
+ astrbot/core/astr_agent_tool_exec.py,sha256=jNaUEYJHJ42BT8DveBQ1YZ3lbcpq1LH3eGM6l-Lde60,8847
24
27
  astrbot/core/astrbot_config_mgr.py,sha256=SUvusfo8Qk89eNpEmduWcXuczJ9g5TBH-VOV69ax28g,8950
25
28
  astrbot/core/conversation_mgr.py,sha256=GsirCeMBmgxyaOb3hYNleF_11yyFyAER5PtpM3IUvIQ,15765
26
29
  astrbot/core/core_lifecycle.py,sha256=uoRlYqg33g3XgHDXFq9uOUSOEjomezidwqiA1r8z7-Q,12603
27
30
  astrbot/core/event_bus.py,sha256=0rABGmFd01B5q972HS_2LQ5OFxd6iPLSyM9FbPKIgcg,2540
31
+ astrbot/core/exceptions.py,sha256=GVCUgAjpvUHLL59MkJalFrSp_HbtliChu7XII_Px2WM,219
28
32
  astrbot/core/file_token_service.py,sha256=8X0Qyo-NPGhtxy6IcRsJg7Z2tx_ULPf_7OKvw-KBk6o,3317
29
33
  astrbot/core/initial_loader.py,sha256=q798G8wEti7-p3UC0y1GB3MOK-kO6z1Nt826iO5nJVA,1802
30
34
  astrbot/core/log.py,sha256=768CcnBvuL1vTWUw9sevqvuFm3nmogJjL2kCQMLo0xE,8523
@@ -37,17 +41,17 @@ astrbot/core/agent/agent.py,sha256=wquvKo18JcsJM56dwKyFFAoGhc5qLyQaeqdZ-LlZsWQ,3
37
41
  astrbot/core/agent/handoff.py,sha256=AxO0yx4Uscy0CO-3Q3fvDOfpfr3gUscLRplH7gH7-Lc,1194
38
42
  astrbot/core/agent/hooks.py,sha256=ooe9uUz7czlVt2W7jTDwkRbI-qDrOOXWjCaXtiAkrvE,830
39
43
  astrbot/core/agent/mcp_client.py,sha256=3N52RRlbscgLZbKwhH-lutO_cOo6ygK5cvcOQ07WGzM,9548
40
- astrbot/core/agent/message.py,sha256=ORvFtBPgpgvv7hNeRkoFdlPbOEkQZ6OoE7Bz8671B14,5027
44
+ astrbot/core/agent/message.py,sha256=YuINBqzUEHMexwiDNbZwBn7VDOUnUpITqcjmwNhtLGE,5032
41
45
  astrbot/core/agent/response.py,sha256=ddJABXu03Uw3b-YGTvRafFLJEGa40o93pIEz_CRTb4g,261
42
- astrbot/core/agent/run_context.py,sha256=P5XIyscWSS6G1W9U-CdAEeADwsaKJh8trruZ7f7vf-c,428
43
- astrbot/core/agent/tool.py,sha256=stWY7C9OWys20Q13tNmbm7WkY3gT2xwmFD2bdrTCuCU,9298
46
+ astrbot/core/agent/run_context.py,sha256=h-teucYKYi5o4oTbAsIlkaa04yn2OSNC-ahIF2n6cwE,719
47
+ astrbot/core/agent/tool.py,sha256=3F-zcADIJkACNljrlDJBZZCJwqhxFkfpgoKvg5v0TQM,9276
44
48
  astrbot/core/agent/tool_executor.py,sha256=8GGgVB_JaKGVLQUG1epeL-lvKMqgfQ7mJaOPnVytnXo,438
45
49
  astrbot/core/agent/runners/__init__.py,sha256=KwR34OKGVSQpJ_MaGVP_MX5L1SZ4oU-lv4GuMbSF5Ys,65
46
- astrbot/core/agent/runners/base.py,sha256=5vDgK676B_39yTHfbWS324e9z4R8E5w4Q9HqqH2c3MA,1582
47
- astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=EjYPCImSv7bVRkN6ljS3qOS_yd37HoAUVz7cEQlutG0,14915
50
+ astrbot/core/agent/runners/base.py,sha256=5vDPiI_65ZlmVpuak-A4K2NW4uVhVD6wYRERKb81t18,1779
51
+ astrbot/core/agent/runners/tool_loop_agent_runner.py,sha256=1bbuYHBz7A3U68Rl-ubG_-u_l4qjVTufkotQdBrIO8M,16781
48
52
  astrbot/core/config/__init__.py,sha256=vZjtpC7vr-IvBgSUtbS04C0wpulmCG5tPmcEP1WYE_4,172
49
53
  astrbot/core/config/astrbot_config.py,sha256=nGyvHyR9VJH9Pk0XKYyeDFVxjwbyVb9u0lIsuvpe3fg,6276
50
- astrbot/core/config/default.py,sha256=-aHW7JXd42YeP4TZal5Jrio-ZxaXbslTpy4LXlXvyEY,133409
54
+ astrbot/core/config/default.py,sha256=RdaNP0ECr86PC4HfgJNToZ_ccNZjh1YnkCULvqS567c,135898
51
55
  astrbot/core/db/__init__.py,sha256=XA1ootJl_SoMHG6sNUWNR5nj663JHvNF--WEM-hfd1o,8965
52
56
  astrbot/core/db/po.py,sha256=jLrmhbtqbnjZ1r7sS0WO6SZIubZr1FH04qmD64N4Y50,7845
53
57
  astrbot/core/db/sqlite.py,sha256=H7DOQDktJ3gRFwK0H9TFb3miJqnpx5pRFjwdTETWhWo,26520
@@ -84,8 +88,8 @@ astrbot/core/knowledge_base/retrieval/sparse_retriever.py,sha256=sOCZ9I636j3P5WG
84
88
  astrbot/core/message/components.py,sha256=lQhxsfRPVMFFDdpCbyWjVN-uXyHIzDOc-3WLWoBAoL8,25526
85
89
  astrbot/core/message/message_event_result.py,sha256=1jC6NLeO7lzcTCi2NO28057sWpTsDabICkmGsiggyhk,7204
86
90
  astrbot/core/pipeline/__init__.py,sha256=nEepE3tnYYo0EYnzdLLyrp_k7XYg0LpQ3W6QuEeGL6k,1461
87
- astrbot/core/pipeline/context.py,sha256=2Mm7p7KdKmzlQgnc0iUFch_zQZlcWUqBmy1nF2I_Z1M,572
88
- astrbot/core/pipeline/context_utils.py,sha256=pJ65WhYvSSPXnQFKb2GUipxt5FA0PxcsSSNvNGhq32g,6091
91
+ astrbot/core/pipeline/context.py,sha256=jfEyX9i34XM7uqeqqK6rKRDgBXfsV9UHgRpf9Wj_hnI,505
92
+ astrbot/core/pipeline/context_utils.py,sha256=3kos5YRBzHnOjr_ASw-rkYVpusCa2V9tlWvnw5tqoXM,3567
89
93
  astrbot/core/pipeline/scheduler.py,sha256=u96IOXoSpTOMj_X5z5Hnaz4Fwa8Nyl-P3qJauuqcQR0,3305
90
94
  astrbot/core/pipeline/stage.py,sha256=hpzghbberezaBJtb2cwhY8x0xi6lZrgWfD2BYv-te1g,1350
91
95
  astrbot/core/pipeline/content_safety_check/stage.py,sha256=4C3k9wMXirIbyDNvUazPnbMKo6u0PZqnaDX9LKVdCiU,1396
@@ -96,10 +100,10 @@ astrbot/core/pipeline/content_safety_check/strategies/strategy.py,sha256=XM2c-6a
96
100
  astrbot/core/pipeline/preprocess_stage/stage.py,sha256=BFaON3u4MrQUXp0ZXETU5MIvN_w0p0KJDNc9D7Y3qsY,4202
97
101
  astrbot/core/pipeline/process_stage/stage.py,sha256=yd1CpHbGzmLn-2C2QwvyAHa9WhsF7QKEqb_ojl6HJ6I,2679
98
102
  astrbot/core/pipeline/process_stage/utils.py,sha256=EPooTG8hs4uB8I8lMtRi23BkDjMu-7eM07v3O305po4,2593
99
- astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=jFJUw40Rtn6056UFB313uRVncPFnKkfJhP6i6iMsB3Y,28482
103
+ astrbot/core/pipeline/process_stage/method/llm_request.py,sha256=9H4cBgYCPDEqCNHPWVI8AHUd7WJnmSh-16-uY4-TH0w,18985
100
104
  astrbot/core/pipeline/process_stage/method/star_request.py,sha256=cbZO2bcS3LIsk21DLO-V7rRrZed3fOjholafAVKDrvI,2515
101
105
  astrbot/core/pipeline/rate_limit_check/stage.py,sha256=9EVJ0zYtxATFsj7ADyWDYcSGBRqmrMiKWp1kkD9LONI,3962
102
- astrbot/core/pipeline/respond/stage.py,sha256=-LGDmf32YSCKpvK5ahH4SO_K396cDwo_i-f5NWROMwI,10821
106
+ astrbot/core/pipeline/respond/stage.py,sha256=im_UrME-g-YOk9TnrDFzFeYIvzZsGBy9BDCAp5PXuNM,10738
103
107
  astrbot/core/pipeline/result_decorate/stage.py,sha256=t_UJ4uC3GQtgbO6MUkDClfLJcU5Z_8oe1hDjGHrTQUM,14053
104
108
  astrbot/core/pipeline/session_status_check/stage.py,sha256=cFp6MMdFzeURjmW5LCrzsTGD_hnJN5jhDh_zoPbnFAw,1291
105
109
  astrbot/core/pipeline/waking_check/stage.py,sha256=V1xr7aGcYh8JoSNnR86_YAA2XZTJfjp2HKmYVM4tCLs,8280
@@ -111,19 +115,19 @@ astrbot/core/platform/manager.py,sha256=BMIVCP9Ymz4tpxiyTHia4JNQIuJvjyFsgMMWxmKF
111
115
  astrbot/core/platform/message_session.py,sha256=AGI-fAyish5VYfIQf0dg2J3HZbiYPzpPMdAwBODzc1M,1089
112
116
  astrbot/core/platform/message_type.py,sha256=uGn5KN8B_7b9F5nFTpvLAXRlXx2VFHP3JmJjN8cC7fg,261
113
117
  astrbot/core/platform/platform.py,sha256=UETCazEPfEfQq0utZSMOIKcgIvQ3XbKv2yldwvte0IA,1694
114
- astrbot/core/platform/platform_metadata.py,sha256=4tSTRGMnJq9fv59k6GDtHH7bQyPaCwSQfL8zSjFMfdU,616
115
- astrbot/core/platform/register.py,sha256=cFNQNetx8tG3hCkKu9GZJ6Q6K8zkslBFer5gaOPV18w,1847
118
+ astrbot/core/platform/platform_metadata.py,sha256=b10aFNvC9HFYBJbedlaUxerLUyeVAOqvVksh2yE-s-M,707
119
+ astrbot/core/platform/register.py,sha256=KiAMpiuEP6H5RwR9ItOgQEth02urvasKhObjiy5X-Hc,1956
116
120
  astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py,sha256=wuHJZu_Q86KQ83vaj_V-t3u5P7JIBURNtnFmYfCU4wM,8080
117
- astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py,sha256=pwZuJSsZfpeEr1bXi-zc0M4qIcyltUh8ihioDB_0x7A,16972
118
- astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py,sha256=5OI3CSfiIxx1HPO3mbD3yv1nC1csDV_Bq3PdOFkMs7w,8791
121
+ astrbot/core/platform/sources/aiocqhttp/aiocqhttp_platform_adapter.py,sha256=jfvff0MhNcBgOJ6tlGMV7unxWzteFMwpVVKFAG72cjQ,17054
122
+ astrbot/core/platform/sources/dingtalk/dingtalk_adapter.py,sha256=70JxfF4IlUosYB9Y7Vg1s4-6-oAju9Z-daidByduI_8,9190
119
123
  astrbot/core/platform/sources/dingtalk/dingtalk_event.py,sha256=Ph8AP03qct0dFDHKB1be0VY8Slxe9yiwqMsd7Zhpvas,2696
120
124
  astrbot/core/platform/sources/discord/client.py,sha256=dYu9ANCMeI9nY1K2FRquPOwTe1xLWHuVYslSLXoXNkY,4622
121
125
  astrbot/core/platform/sources/discord/components.py,sha256=sh0vvqKcO1a293XNApcA-olunPTHbVWFauq-Nwvj-o4,3957
122
- astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=4f6RwrvRf8LrZffSBEVd4dRB38NvP6akX3UEd6dKeg0,18510
123
- astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=riLViGLTM0DUrcdp1r0NyeCachyZsV8KG7ZiR-eETCk,12201
124
- astrbot/core/platform/sources/lark/lark_adapter.py,sha256=6sx4q0JeSpVpDKgr7tk5TUKU62Sf0pD0W9TGihINz58,8252
126
+ astrbot/core/platform/sources/discord/discord_platform_adapter.py,sha256=RrubMAyNLG-ee3yBnByW-DDx029keHGsB52gl7plysg,18594
127
+ astrbot/core/platform/sources/discord/discord_platform_event.py,sha256=u6OE7TTW1VTqaWcd0t7uvwwttZk1qWkGGU9ycftu-UQ,12594
128
+ astrbot/core/platform/sources/lark/lark_adapter.py,sha256=UX9zPLHfKqwPDYtj0tuWFtUe0rKazF3qyQYwki2q3vE,8336
125
129
  astrbot/core/platform/sources/lark/lark_event.py,sha256=bK6575i7SnkkKeYfegcod3Z_eo0fLoOzFzi53UbSDww,5198
126
- astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=WMobfssXd3zKIAnqqAJ8j01mXxvXn7fHcCLiQQcZKoo,29585
130
+ astrbot/core/platform/sources/misskey/misskey_adapter.py,sha256=Z6L2VdOytdH-UPUWuNPnjhOsGzEGmY7_xGwQF-EcN0c,29669
127
131
  astrbot/core/platform/sources/misskey/misskey_api.py,sha256=YlE1zxHs0dPWJVuVsWR0Lr0d9TPQmnTwsLCQKI4p6Gk,35905
128
132
  astrbot/core/platform/sources/misskey/misskey_event.py,sha256=2PYSU9arxzbS71jz5D__3maFFNKqxYZiGmXtLuC_aAc,6550
129
133
  astrbot/core/platform/sources/misskey/misskey_utils.py,sha256=KEzX-_5-EfzKmLdcrZyQiUR09NHXDT0A6v3DrDp3fyk,17859
@@ -132,20 +136,20 @@ astrbot/core/platform/sources/qqofficial/qqofficial_platform_adapter.py,sha256=i
132
136
  astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_adapter.py,sha256=ZUb5Td6kaaxCwrnBikZE_pjBU1vMvJE7JH8AKqtZMlQ,4507
133
137
  astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_event.py,sha256=vqifw9itvrcr7sV9cL0T19qLZ7I9CWORi4oUBgZrOqc,501
134
138
  astrbot/core/platform/sources/qqofficial_webhook/qo_webhook_server.py,sha256=dYhnveFWSIpFsphS7Hec70pOenPBVMJOFDTzQXK1NFw,3853
135
- astrbot/core/platform/sources/satori/satori_adapter.py,sha256=F8xTxvXpcz4xjXFzmZ4L45F1DJIfKKPwwZXTNX55Zr4,27991
139
+ astrbot/core/platform/sources/satori/satori_adapter.py,sha256=iNSDAas3ektZBDqy6tc212Ve50RjdWlSNNb0gQKKhU0,28064
136
140
  astrbot/core/platform/sources/satori/satori_event.py,sha256=agI9FYUwBZM2CnxPANxDOw9vnRqPQSCGZi6UK5UVrdA,16183
137
141
  astrbot/core/platform/sources/slack/client.py,sha256=opkwKKwgaLxw3EpYILLAf7gzzC6KwpiUoq3TOewolh4,5633
138
- astrbot/core/platform/sources/slack/slack_adapter.py,sha256=GUb1E5YZcUmk3InaFFB4GKaRU66dhvHj3fBIwIpfNLs,16052
142
+ astrbot/core/platform/sources/slack/slack_adapter.py,sha256=LUZY-A-fVD8y5mG_86nQJjgKZ2j8k5uiue1B5vqjBhg,16134
139
143
  astrbot/core/platform/sources/slack/slack_event.py,sha256=qtd7AkYDrX5-rcf6-N3QX6Lm3YzvO8ipsUL8iFF6T_U,8926
140
144
  astrbot/core/platform/sources/telegram/tg_adapter.py,sha256=5eGR5PK1wUSDIBZQw7IW7JpfNfjSB3zldpVDpMs7zUo,16076
141
145
  astrbot/core/platform/sources/telegram/tg_event.py,sha256=Xh8IDfSLtjJqzyiZVX05LKT8adm7Q2YPUHHKIZ-rpI4,11641
142
- astrbot/core/platform/sources/webchat/webchat_adapter.py,sha256=pvfoKzzSHegqUvJx9bc2uipV5OPeGAS9VEr3le1FP8c,6050
143
- astrbot/core/platform/sources/webchat/webchat_event.py,sha256=0MDy-yeV1XwCA8wYBrksNh4T5nZLGw1zVodqdeujWGg,5498
146
+ astrbot/core/platform/sources/webchat/webchat_adapter.py,sha256=cQAkwFWyVsk5BLdQ7d82APfSea2q-6AZWldq9Q2FayU,6163
147
+ astrbot/core/platform/sources/webchat/webchat_event.py,sha256=iXkHFugb0ecwWjuKgoiiqjFA7nM8iWgVwbb7HWlLKcY,5720
144
148
  astrbot/core/platform/sources/webchat/webchat_queue_mgr.py,sha256=2P0hQRNn7tMs9O6MLQ1GkJSSKz7R5Q8k_0JxEltSKLM,1364
145
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py,sha256=autcUNTq7VKnBjkrn5xlMB03S14LkeMx5TrvEGrhp3c,40624
146
- astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py,sha256=DMbWWYceKbNVdvSo1Wb380dwB1pfn-JU84agRmJOj9M,6042
149
+ astrbot/core/platform/sources/wechatpadpro/wechatpadpro_adapter.py,sha256=O4qgp41_tfSCvNh7O1jxbvEAKMScxbREcSn5qxRsthk,40708
150
+ astrbot/core/platform/sources/wechatpadpro/wechatpadpro_message_event.py,sha256=pdvKtziixnvNrrk3fhJtUZrfX33LY0X9bV5GPmn4ITA,6574
147
151
  astrbot/core/platform/sources/wechatpadpro/xml_data_parser.py,sha256=n1PZRcNjGN_w1-z2CXcIMZL7oSTprteQpPbJ992Lsu4,6306
148
- astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=17nRVNUP7fSRtFgl0uEDBOz6NKywvsAci0IfRs5XoOg,13820
152
+ astrbot/core/platform/sources/wecom/wecom_adapter.py,sha256=aZf5bh78lXuC5fRQk27lzHxlvHRAYceyA-Cqbm3L2wo,13898
149
153
  astrbot/core/platform/sources/wecom/wecom_event.py,sha256=sH_6Ix6mtW9ePkk3SqMDlM7Y8Q2SrjV4IIZPkJfK10k,9175
150
154
  astrbot/core/platform/sources/wecom/wecom_kf.py,sha256=eenwV2hmH0j70OfYFsnAw9vukwHYmfF-YTzCym-6JE0,10820
151
155
  astrbot/core/platform/sources/wecom/wecom_kf_message.py,sha256=__9zR3FCgggRDDwaEUsgfUgvhCtkUE5Uoi4jAuJrVUo,5934
@@ -158,32 +162,33 @@ astrbot/core/platform/sources/wecom_ai_bot/wecomai_event.py,sha256=Bd3-dRPKBOTA2
158
162
  astrbot/core/platform/sources/wecom_ai_bot/wecomai_queue_mgr.py,sha256=fv06hqscDE5EQvXl8P3aAORppZ8RL4XcAouxmJz8o-g,4658
159
163
  astrbot/core/platform/sources/wecom_ai_bot/wecomai_server.py,sha256=hLhWV26Wa2HGBtw-eSKGq0LAeCS7HNNDnSRm7OuHJSQ,5280
160
164
  astrbot/core/platform/sources/wecom_ai_bot/wecomai_utils.py,sha256=6vTeKwrt-zXsA0Lt_7GFk7_J0IXWX-ErVvwK9VC0EDM,5427
161
- astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=iMhA-l4Odw29VUjiTQf3E4Yhzd1o2qJhIT4HCcfUZDk,10575
165
+ astrbot/core/platform/sources/weixin_official_account/weixin_offacc_adapter.py,sha256=IbOUuf9BnFjG8Dt18xNB3jKXxg09QspDBRThBHtQxtY,10659
162
166
  astrbot/core/platform/sources/weixin_official_account/weixin_offacc_event.py,sha256=_DYWTs5u3MoOKt-7eIH7fGHIpvxae2qckkceH9X9DCQ,7100
163
- astrbot/core/provider/__init__.py,sha256=b5lr-mm9VdMgUI5N0Y6AFa76lqow6j8g5cUMRlQq3oI,170
167
+ astrbot/core/provider/__init__.py,sha256=0NVyKtTapnrUy0lkXVYWyM5KetwtDwXmTwBzqLG0MA4,142
164
168
  astrbot/core/provider/entites.py,sha256=0eYiQ-xttqFTb3WZR2b1oemdZy3d5sevELvj9FixJtE,388
165
- astrbot/core/provider/entities.py,sha256=2p1vuOg6pVVcdeVOJ-GyCFDe_DA6fi-KHzcJ4IYGEB0,10801
166
- astrbot/core/provider/func_tool_manager.py,sha256=ynCsK5RVeNQfNVxBqIzg1yt2njs-2yfEhIpX5z9wCvU,20839
167
- astrbot/core/provider/manager.py,sha256=bDiKHuZnoNylfiqlgWehKT1c5A4ToqCr3RXqzzJ1AHg,22458
168
- astrbot/core/provider/provider.py,sha256=jiNT38q13MiDOnDV8XvMaFmt7YfeaV7YoGvPtRM7-jw,11076
169
- astrbot/core/provider/register.py,sha256=5ooo5FQ-KpfwkXUvB2C4fWSsFBqSpHwfbf4uamJ5IUc,1816
170
- astrbot/core/provider/sources/anthropic_source.py,sha256=2GvY3KJPExbzVDagqkpyyIPyQ1WwzorwL-4ZyahfpUU,15643
169
+ astrbot/core/provider/entities.py,sha256=LY0VxEXuLDwUxWJb8Gae2qjmT3UCUKNduE0qoM3ZboU,11718
170
+ astrbot/core/provider/func_tool_manager.py,sha256=wJ0wFMofTV8atFKe9kGwJYlxFpAhY-g8rdsC1fa-Vrg,21014
171
+ astrbot/core/provider/manager.py,sha256=OzoEniML-bxbIO1GG2IMnzVDZ-IlVGQCbBFB0MB4zZw,22592
172
+ astrbot/core/provider/provider.py,sha256=bMJBBZzNwHhVv8dEiO1tNUclzxS78Yb01vUbceHZXKA,10680
173
+ astrbot/core/provider/register.py,sha256=0WMYrT9vbRjeq-72HD0oRT45kJmeKA96UgSItpTJbX8,1904
174
+ astrbot/core/provider/sources/anthropic_source.py,sha256=kRbJk0K-li84mWwapxYezGlkEF03Lg1brZDZnjmGrQ8,15584
171
175
  astrbot/core/provider/sources/azure_tts_source.py,sha256=uhPr4Dja6XANesAmrfZiuINNIlXej0NV7Goo8ahMm14,9387
172
176
  astrbot/core/provider/sources/coze_api_client.py,sha256=0k8pQsFsbjKdF-jkY91qZWsC8YSaSmwC98TMTK-zqw0,10853
173
- astrbot/core/provider/sources/coze_source.py,sha256=xjUztewnR8n2jqunyqxO5zY0OGuIsPCzaMV1JJqT1ZI,25400
174
- astrbot/core/provider/sources/dashscope_source.py,sha256=GqKfEbLe_h0XwTTRt-J6B4aLUWLN3d4Dc3svrEU4_NA,7463
177
+ astrbot/core/provider/sources/coze_source.py,sha256=FXqhRUOjKXwBsUBfVXBlLm5pM--IQpzzFViIUFltX1M,25341
178
+ astrbot/core/provider/sources/dashscope_source.py,sha256=DlvP4tkBLZGHl77LvWbjdtfNO0spr6y0nypPzwKN-n8,7369
175
179
  astrbot/core/provider/sources/dashscope_tts.py,sha256=GMslnWn9e30c78qHhnMioJrG60nAwSWo3nXsQmISJno,5603
176
- astrbot/core/provider/sources/dify_source.py,sha256=mOIQSerhjBKp7i_XS1Ky9rUBe1nMr918F9p8VFG-U3U,11400
180
+ astrbot/core/provider/sources/dify_source.py,sha256=w6xG9oUlhlMivYjfAufRxIj8xijman3SRyk74VdwPxE,11341
177
181
  astrbot/core/provider/sources/edge_tts_source.py,sha256=7C04B0voPmQdeaB4u-U5Lip6qN3UAyB_yNPBYHLaxo8,4680
178
182
  astrbot/core/provider/sources/fishaudio_tts_api_source.py,sha256=P2N_dkwxx3Kk1uWae1TT4yJShj6i0Q_jTpWT1V_dLQ0,5484
179
183
  astrbot/core/provider/sources/gemini_embedding_source.py,sha256=XpTqb5rlI5z34FmrdFkpvwkk9BiuyFKcpWm6xQEHpNE,2248
180
- astrbot/core/provider/sources/gemini_source.py,sha256=OsH_InknZRgg5lTgtv-fg5847HDt0CjbIoiMyqK9EEY,29179
184
+ astrbot/core/provider/sources/gemini_source.py,sha256=A1VBbHFd8UFk21smt8Y2eUa35HT7dw2Fu9Ts_i-YrcU,30238
181
185
  astrbot/core/provider/sources/gemini_tts_source.py,sha256=6LJIT2aTjoZaMszjYRzDu38prsO9G5Xg7SzJmQb2TzE,2880
186
+ astrbot/core/provider/sources/groq_source.py,sha256=NqmiQn37mrMsaTyGX25eNzMpIgkCifY-5TJO8DFzHaA,456
182
187
  astrbot/core/provider/sources/gsv_selfhosted_source.py,sha256=RYQgwCc67N7RWPaODN4sSLJZn6o5gpgk_jF_KaRnD0M,5942
183
188
  astrbot/core/provider/sources/gsvi_tts_source.py,sha256=nGGctfkzrAeTofAvB2b_VNTYHW44SzyO12B-mBWb1rY,2011
184
189
  astrbot/core/provider/sources/minimax_tts_api_source.py,sha256=qMN6iBR2V145d5BAIkjAa2pVrH5eZOHeWnd8yhemOCY,5837
185
190
  astrbot/core/provider/sources/openai_embedding_source.py,sha256=26hjOYrQ8eHHPi8wybCubtsY-UOOfGx0qcCxQ3BvjIE,1616
186
- astrbot/core/provider/sources/openai_source.py,sha256=Wk4AECPh5t7m5Qmi3fLy8cEsYDvdWf7clPgDzw1BYTA,22229
191
+ astrbot/core/provider/sources/openai_source.py,sha256=4GvBLMv5aBzn0hBZCjORLCDROsV4PcwCK0K5XLBITik,24654
187
192
  astrbot/core/provider/sources/openai_tts_api_source.py,sha256=DVviGQdBpCk6lW3LjnJHzwZr9wGkXRDNwfoQ3FYFVcs,1667
188
193
  astrbot/core/provider/sources/sensevoice_selfhosted_source.py,sha256=aG7m3HvqSdcTRJcncqFNhyz9D-TVIdjiCbGFQPhDcdM,3819
189
194
  astrbot/core/provider/sources/vllm_rerank_source.py,sha256=5mZwtOUG1w7AfqQR7AYznxL_L0HVOKq6_T2G0CrNkZg,2316
@@ -192,11 +197,11 @@ astrbot/core/provider/sources/whisper_api_source.py,sha256=elK7TIdq55qixf6hmwj8Q
192
197
  astrbot/core/provider/sources/whisper_selfhosted_source.py,sha256=5R7Xwg3gZF6TW-D8WSivd4ZCG6RcLlv7gcHYqxzojEw,2640
193
198
  astrbot/core/provider/sources/xinference_rerank_source.py,sha256=X3Jm3zB7cGUedsYasDJjiNpOAVleB-5LR4j4DqALd1A,4428
194
199
  astrbot/core/provider/sources/xinference_stt_provider.py,sha256=DPEc7cVo2KXKGIgb8IXKagPH9qpNAdp5gx5PAink0j4,7731
195
- astrbot/core/provider/sources/zhipu_source.py,sha256=wUXp9wjMoFjYKqjwkDDUWGduzkrqYvoffjsJch3iNnw,706
200
+ astrbot/core/provider/sources/zhipu_source.py,sha256=oOCPXGsR9PLWOuu3h8RSVNRw1Qy2Se6dwmeFR3zk3GM,612
196
201
  astrbot/core/star/README.md,sha256=LXxqxp3xv_oejO8ocBPOrbmLe0WB4feu43fYDNddHTQ,161
197
202
  astrbot/core/star/__init__.py,sha256=ccAN4tGmHjKmMIuL4L0KTFpPz6_uf26yhCj0XQBf2do,2112
198
203
  astrbot/core/star/config.py,sha256=FgrBz_fUrBU0-9BxD8enX-xGNGVbFxst3UT10sboYNA,3531
199
- astrbot/core/star/context.py,sha256=TQS8eKTUfOSg7uL1mXWJhnAR5GpvfjX6GSL61h82VoA,14304
204
+ astrbot/core/star/context.py,sha256=a4jeHhQSx5NpzOmO1kPR5QxeOJEoivx9bsncou_-Wn4,21036
200
205
  astrbot/core/star/session_llm_manager.py,sha256=S6vYYgW8Y3igIvrqYJZhFlzFcsFKXMehSmwEmgLG9mk,8776
201
206
  astrbot/core/star/session_plugin_manager.py,sha256=bu_YeO-YldfribTz987ZBR-0NAhVT1nqlQE1ExX5vwg,5423
202
207
  astrbot/core/star/star.py,sha256=Wkf81teNZ27JE_JrENuP0SrpFc2uFYRxHQsWo8R9-No,1826
@@ -214,7 +219,7 @@ astrbot/core/star/filter/platform_adapter_type.py,sha256=90h4g9xB1IfC8ws53M-pjeP
214
219
  astrbot/core/star/filter/regex.py,sha256=GHB5YvBMLFbOOiFVUnEHaqHTER7sU1pAVrAcXdwBtkQ,545
215
220
  astrbot/core/star/register/__init__.py,sha256=Z2dbNKCsh5wzh9a6XFvb_x-9wO5SvowynJAd8kpWEJU,992
216
221
  astrbot/core/star/register/star.py,sha256=Eto7nD_HFuCNt-VJnXUXKv2D7a5TQ6qkhzLJ_itXo_8,1920
217
- astrbot/core/star/register/star_handler.py,sha256=1bk9i5cGoGt9lm_7_YBvOqJzPjRSnqdzCd8U35fRXhE,16586
222
+ astrbot/core/star/register/star_handler.py,sha256=kCIQVzI5EBWVAugkEsXHLTOoOQp3r5uTLYc4sPfdZls,17483
218
223
  astrbot/core/utils/astrbot_path.py,sha256=tQFD55EFwGbpR1tpoJADpdElPS5iTFAZVLIxCVvKypY,1213
219
224
  astrbot/core/utils/command_parser.py,sha256=Cwd4zzyKEoC-er0a-9WZ5n2g4F8eH9p6BHxD96gjaVM,617
220
225
  astrbot/core/utils/dify_api_client.py,sha256=nQRgDv40rNxzIzOJdURHRHOjfIvXQJxw89OHRK8lPug,5067
@@ -239,7 +244,7 @@ astrbot/dashboard/server.py,sha256=HiuqrnMKWOER8j6h1ZAIAONUb3DwJCEjXl7LkLFXMiI,9
239
244
  astrbot/dashboard/utils.py,sha256=KrAv0lnPaVR0bx8yevT1CLGbSNsJizlfkKkPEtVVANI,5355
240
245
  astrbot/dashboard/routes/__init__.py,sha256=IKg0EzasXsd-OleSixE54Ul5wQcBeMHzVwhhjMFZ2dE,783
241
246
  astrbot/dashboard/routes/auth.py,sha256=rYkvt3MpCY9BhWjG0DUoX3YaBkJT1Id7M2pKqTmXbvo,2946
242
- astrbot/dashboard/routes/chat.py,sha256=qNqHc9V8bZ20z1T0ca5iWCeJbANUO8KlJiLSaw4PVoA,13290
247
+ astrbot/dashboard/routes/chat.py,sha256=ME9CjZ1tKGfGYyQ719sP0hQFVcLkCJHAYDrKjonhPcU,13563
243
248
  astrbot/dashboard/routes/config.py,sha256=DHWd56JZrtXdxuf80DIfmyFYmeOcZ6mC8aCKZc6QacA,40070
244
249
  astrbot/dashboard/routes/conversation.py,sha256=sFHgkpNDdTR9qkSOC_JfSjzkfTuv63iaMxvh52wQUzM,10773
245
250
  astrbot/dashboard/routes/file.py,sha256=gULvXP9PnVOQlyv_PCEzZQE5ptnGQEjFPvwOLxdVgb4,708
@@ -254,8 +259,8 @@ astrbot/dashboard/routes/static_file.py,sha256=7KnNcOb1BVqSTft114LhGsDkfg69X2jHE
254
259
  astrbot/dashboard/routes/t2i.py,sha256=F6smxdL99MF7cRw3hqS6-2GErw8Zhsv0V0mfBUeEk-c,8931
255
260
  astrbot/dashboard/routes/tools.py,sha256=YsVFrwVIhxAI-Ikme7YPrHVnPVTkJ1IaH7n6ciREjdE,14663
256
261
  astrbot/dashboard/routes/update.py,sha256=qXiqQ_dbqRVftOzGgCQrvK8-qopVK6zKhhVVJ9SK26U,6648
257
- astrbot-4.5.6.dist-info/METADATA,sha256=fyCSeXmfiYgqoiFcVi_3bFuoyuYvgk74SkkDFzVz6hU,10029
258
- astrbot-4.5.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
259
- astrbot-4.5.6.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
260
- astrbot-4.5.6.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
261
- astrbot-4.5.6.dist-info/RECORD,,
262
+ astrbot-4.5.8.dist-info/METADATA,sha256=tNASBEgbAu1-hgtG2NFcsbaLS9vqHYv_GS8a6rU4p3Q,10029
263
+ astrbot-4.5.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
264
+ astrbot-4.5.8.dist-info/entry_points.txt,sha256=OEF09YmhBWYuViXrvTLLpstF4ccmNwDL8r7nnFD0pfI,53
265
+ astrbot-4.5.8.dist-info/licenses/LICENSE,sha256=zPfQj5Mq8-gThIiBcxETr7t8gND9bZWOjTGQAr80TQI,34500
266
+ astrbot-4.5.8.dist-info/RECORD,,