parent
0603359e2d
commit
c828a5dfdf
Binary file not shown.
|
After Width: | Height: | Size: 5.4 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
|
class FeishuCalendarProvider(BuiltinToolProviderController):
|
||||||
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
|
auth(credentials)
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
identity:
|
||||||
|
author: Doug Lea
|
||||||
|
name: feishu_calendar
|
||||||
|
label:
|
||||||
|
en_US: Feishu Calendar
|
||||||
|
zh_Hans: 飞书日历
|
||||||
|
description:
|
||||||
|
en_US: |
|
||||||
|
Feishu calendar, requires the following permissions: calendar:calendar:read、calendar:calendar、contact:user.id:readonly.
|
||||||
|
zh_Hans: |
|
||||||
|
飞书日历,需要开通以下权限: calendar:calendar:read、calendar:calendar、contact:user.id:readonly。
|
||||||
|
icon: icon.png
|
||||||
|
tags:
|
||||||
|
- social
|
||||||
|
- productivity
|
||||||
|
credentials_for_provider:
|
||||||
|
app_id:
|
||||||
|
type: text-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP ID
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your feishu app id
|
||||||
|
zh_Hans: 请输入你的飞书 app id
|
||||||
|
help:
|
||||||
|
en_US: Get your app_id and app_secret from Feishu
|
||||||
|
zh_Hans: 从飞书获取您的 app_id 和 app_secret
|
||||||
|
url: https://open.larkoffice.com/app
|
||||||
|
app_secret:
|
||||||
|
type: secret-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP Secret
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your app secret
|
||||||
|
zh_Hans: 请输入你的飞书 app secret
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class AddEventAttendeesTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
event_id = tool_parameters.get("event_id")
|
||||||
|
attendee_phone_or_email = tool_parameters.get("attendee_phone_or_email")
|
||||||
|
need_notification = tool_parameters.get("need_notification", True)
|
||||||
|
|
||||||
|
res = client.add_event_attendees(event_id, attendee_phone_or_email, need_notification)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class CreateEventTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
summary = tool_parameters.get("summary")
|
||||||
|
description = tool_parameters.get("description")
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
attendee_ability = tool_parameters.get("attendee_ability")
|
||||||
|
need_notification = tool_parameters.get("need_notification", True)
|
||||||
|
auto_record = tool_parameters.get("auto_record", False)
|
||||||
|
|
||||||
|
res = client.create_event(
|
||||||
|
summary, description, start_time, end_time, attendee_ability, need_notification, auto_record
|
||||||
|
)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteEventTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
event_id = tool_parameters.get("event_id")
|
||||||
|
need_notification = tool_parameters.get("need_notification", True)
|
||||||
|
|
||||||
|
res = client.delete_event(event_id, need_notification)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class GetPrimaryCalendarTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
|
||||||
|
res = client.get_primary_calendar(user_id_type)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class ListEventsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
page_token = tool_parameters.get("page_token")
|
||||||
|
page_size = tool_parameters.get("page_size")
|
||||||
|
|
||||||
|
res = client.list_events(start_time, end_time, page_token, page_size)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class SearchEventsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
query = tool_parameters.get("query")
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
page_token = tool_parameters.get("page_token")
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
page_size = tool_parameters.get("page_size", 20)
|
||||||
|
|
||||||
|
res = client.search_events(query, start_time, end_time, page_token, user_id_type, page_size)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateEventTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
event_id = tool_parameters.get("event_id")
|
||||||
|
summary = tool_parameters.get("summary")
|
||||||
|
description = tool_parameters.get("description")
|
||||||
|
need_notification = tool_parameters.get("need_notification", True)
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
auto_record = tool_parameters.get("auto_record", False)
|
||||||
|
|
||||||
|
res = client.update_event(event_id, summary, description, need_notification, start_time, end_time, auto_record)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -1,15 +1,7 @@
|
|||||||
from core.tools.errors import ToolProviderCredentialValidationError
|
|
||||||
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
from core.tools.utils.feishu_api_utils import FeishuRequest
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
class FeishuDocumentProvider(BuiltinToolProviderController):
|
class FeishuDocumentProvider(BuiltinToolProviderController):
|
||||||
def _validate_credentials(self, credentials: dict) -> None:
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
app_id = credentials.get("app_id")
|
auth(credentials)
|
||||||
app_secret = credentials.get("app_secret")
|
|
||||||
if not app_id or not app_secret:
|
|
||||||
raise ToolProviderCredentialValidationError("app_id and app_secret is required")
|
|
||||||
try:
|
|
||||||
assert FeishuRequest(app_id, app_secret).tenant_access_token is not None
|
|
||||||
except Exception as e:
|
|
||||||
raise ToolProviderCredentialValidationError(str(e))
|
|
||||||
|
|||||||
@ -1,15 +1,7 @@
|
|||||||
from core.tools.errors import ToolProviderCredentialValidationError
|
|
||||||
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
from core.tools.utils.feishu_api_utils import FeishuRequest
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
class FeishuMessageProvider(BuiltinToolProviderController):
|
class FeishuMessageProvider(BuiltinToolProviderController):
|
||||||
def _validate_credentials(self, credentials: dict) -> None:
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
app_id = credentials.get("app_id")
|
auth(credentials)
|
||||||
app_secret = credentials.get("app_secret")
|
|
||||||
if not app_id or not app_secret:
|
|
||||||
raise ToolProviderCredentialValidationError("app_id and app_secret is required")
|
|
||||||
try:
|
|
||||||
assert FeishuRequest(app_id, app_secret).tenant_access_token is not None
|
|
||||||
except Exception as e:
|
|
||||||
raise ToolProviderCredentialValidationError(str(e))
|
|
||||||
|
|||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class GetChatMessagesTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
container_id = tool_parameters.get("container_id")
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
page_token = tool_parameters.get("page_token")
|
||||||
|
sort_type = tool_parameters.get("sort_type", "ByCreateTimeAsc")
|
||||||
|
page_size = tool_parameters.get("page_size", 20)
|
||||||
|
|
||||||
|
res = client.get_chat_messages(container_id, start_time, end_time, page_token, sort_type, page_size)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class GetChatMessagesTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
container_id = tool_parameters.get("container_id")
|
||||||
|
page_token = tool_parameters.get("page_token")
|
||||||
|
sort_type = tool_parameters.get("sort_type", "ByCreateTimeAsc")
|
||||||
|
page_size = tool_parameters.get("page_size", 20)
|
||||||
|
|
||||||
|
res = client.get_thread_messages(container_id, page_token, sort_type, page_size)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
|
class FeishuMessageProvider(BuiltinToolProviderController):
|
||||||
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
|
auth(credentials)
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
identity:
|
||||||
|
author: Doug Lea
|
||||||
|
name: feishu_spreadsheet
|
||||||
|
label:
|
||||||
|
en_US: Feishu Spreadsheet
|
||||||
|
zh_Hans: 飞书电子表格
|
||||||
|
description:
|
||||||
|
en_US: |
|
||||||
|
Feishu Spreadsheet, requires the following permissions: sheets:spreadsheet.
|
||||||
|
zh_Hans: |
|
||||||
|
飞书电子表格,需要开通以下权限: sheets:spreadsheet。
|
||||||
|
icon: icon.png
|
||||||
|
tags:
|
||||||
|
- social
|
||||||
|
- productivity
|
||||||
|
credentials_for_provider:
|
||||||
|
app_id:
|
||||||
|
type: text-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP ID
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your feishu app id
|
||||||
|
zh_Hans: 请输入你的飞书 app id
|
||||||
|
help:
|
||||||
|
en_US: Get your app_id and app_secret from Feishu
|
||||||
|
zh_Hans: 从飞书获取您的 app_id 和 app_secret
|
||||||
|
url: https://open.larkoffice.com/app
|
||||||
|
app_secret:
|
||||||
|
type: secret-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP Secret
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your app secret
|
||||||
|
zh_Hans: 请输入你的飞书 app secret
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class AddColsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
sheet_id = tool_parameters.get("sheet_id")
|
||||||
|
sheet_name = tool_parameters.get("sheet_name")
|
||||||
|
length = tool_parameters.get("length")
|
||||||
|
values = tool_parameters.get("values")
|
||||||
|
|
||||||
|
res = client.add_cols(spreadsheet_token, sheet_id, sheet_name, length, values)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class AddRowsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
sheet_id = tool_parameters.get("sheet_id")
|
||||||
|
sheet_name = tool_parameters.get("sheet_name")
|
||||||
|
length = tool_parameters.get("length")
|
||||||
|
values = tool_parameters.get("values")
|
||||||
|
|
||||||
|
res = client.add_rows(spreadsheet_token, sheet_id, sheet_name, length, values)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class CreateSpreadsheetTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
title = tool_parameters.get("title")
|
||||||
|
folder_token = tool_parameters.get("folder_token")
|
||||||
|
|
||||||
|
res = client.create_spreadsheet(title, folder_token)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class GetSpreadsheetTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
|
||||||
|
res = client.get_spreadsheet(spreadsheet_token, user_id_type)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class ListSpreadsheetSheetsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
|
||||||
|
res = client.list_spreadsheet_sheets(spreadsheet_token)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class ReadColsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
sheet_id = tool_parameters.get("sheet_id")
|
||||||
|
sheet_name = tool_parameters.get("sheet_name")
|
||||||
|
start_col = tool_parameters.get("start_col")
|
||||||
|
num_cols = tool_parameters.get("num_cols")
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
|
||||||
|
res = client.read_cols(spreadsheet_token, sheet_id, sheet_name, start_col, num_cols, user_id_type)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class ReadRowsTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
sheet_id = tool_parameters.get("sheet_id")
|
||||||
|
sheet_name = tool_parameters.get("sheet_name")
|
||||||
|
start_row = tool_parameters.get("start_row")
|
||||||
|
num_rows = tool_parameters.get("num_rows")
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
|
||||||
|
res = client.read_rows(spreadsheet_token, sheet_id, sheet_name, start_row, num_rows, user_id_type)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class ReadTableTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
spreadsheet_token = tool_parameters.get("spreadsheet_token")
|
||||||
|
sheet_id = tool_parameters.get("sheet_id")
|
||||||
|
sheet_name = tool_parameters.get("sheet_name")
|
||||||
|
num_range = tool_parameters.get("num_range")
|
||||||
|
query = tool_parameters.get("query")
|
||||||
|
user_id_type = tool_parameters.get("user_id_type", "open_id")
|
||||||
|
|
||||||
|
res = client.read_table(spreadsheet_token, sheet_id, sheet_name, num_range, query, user_id_type)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
|
class FeishuTaskProvider(BuiltinToolProviderController):
|
||||||
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
|
auth(credentials)
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
identity:
|
||||||
|
author: Doug Lea
|
||||||
|
name: feishu_task
|
||||||
|
label:
|
||||||
|
en_US: Feishu Task
|
||||||
|
zh_Hans: 飞书任务
|
||||||
|
description:
|
||||||
|
en_US: |
|
||||||
|
Feishu Task, requires the following permissions: task:task:write、contact:user.id:readonly.
|
||||||
|
zh_Hans: |
|
||||||
|
飞书任务,需要开通以下权限: task:task:write、contact:user.id:readonly。
|
||||||
|
icon: icon.png
|
||||||
|
tags:
|
||||||
|
- social
|
||||||
|
- productivity
|
||||||
|
credentials_for_provider:
|
||||||
|
app_id:
|
||||||
|
type: text-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP ID
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your feishu app id
|
||||||
|
zh_Hans: 请输入你的飞书 app id
|
||||||
|
help:
|
||||||
|
en_US: Get your app_id and app_secret from Feishu
|
||||||
|
zh_Hans: 从飞书获取您的 app_id 和 app_secret
|
||||||
|
url: https://open.larkoffice.com/app
|
||||||
|
app_secret:
|
||||||
|
type: secret-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP Secret
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your app secret
|
||||||
|
zh_Hans: 请输入你的飞书 app secret
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class AddMembersTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
task_guid = tool_parameters.get("task_guid")
|
||||||
|
member_phone_or_email = tool_parameters.get("member_phone_or_email")
|
||||||
|
member_role = tool_parameters.get("member_role", "follower")
|
||||||
|
|
||||||
|
res = client.add_members(task_guid, member_phone_or_email, member_role)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class CreateTaskTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
summary = tool_parameters.get("summary")
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
completed_time = tool_parameters.get("completed_time")
|
||||||
|
description = tool_parameters.get("description")
|
||||||
|
|
||||||
|
res = client.create_task(summary, start_time, end_time, completed_time, description)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateTaskTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
task_guid = tool_parameters.get("task_guid")
|
||||||
|
|
||||||
|
res = client.delete_task(task_guid)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateTaskTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
task_guid = tool_parameters.get("task_guid")
|
||||||
|
summary = tool_parameters.get("summary")
|
||||||
|
start_time = tool_parameters.get("start_time")
|
||||||
|
end_time = tool_parameters.get("end_time")
|
||||||
|
completed_time = tool_parameters.get("completed_time")
|
||||||
|
description = tool_parameters.get("description")
|
||||||
|
|
||||||
|
res = client.update_task(task_guid, summary, start_time, end_time, completed_time, description)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||||
|
from core.tools.utils.feishu_api_utils import auth
|
||||||
|
|
||||||
|
|
||||||
|
class FeishuWikiProvider(BuiltinToolProviderController):
|
||||||
|
def _validate_credentials(self, credentials: dict) -> None:
|
||||||
|
auth(credentials)
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
identity:
|
||||||
|
author: Doug Lea
|
||||||
|
name: feishu_wiki
|
||||||
|
label:
|
||||||
|
en_US: Feishu Wiki
|
||||||
|
zh_Hans: 飞书知识库
|
||||||
|
description:
|
||||||
|
en_US: |
|
||||||
|
Feishu Wiki, requires the following permissions: wiki:wiki:readonly.
|
||||||
|
zh_Hans: |
|
||||||
|
飞书知识库,需要开通以下权限: wiki:wiki:readonly。
|
||||||
|
icon: icon.png
|
||||||
|
tags:
|
||||||
|
- social
|
||||||
|
- productivity
|
||||||
|
credentials_for_provider:
|
||||||
|
app_id:
|
||||||
|
type: text-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP ID
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your feishu app id
|
||||||
|
zh_Hans: 请输入你的飞书 app id
|
||||||
|
help:
|
||||||
|
en_US: Get your app_id and app_secret from Feishu
|
||||||
|
zh_Hans: 从飞书获取您的 app_id 和 app_secret
|
||||||
|
url: https://open.larkoffice.com/app
|
||||||
|
app_secret:
|
||||||
|
type: secret-input
|
||||||
|
required: true
|
||||||
|
label:
|
||||||
|
en_US: APP Secret
|
||||||
|
placeholder:
|
||||||
|
en_US: Please input your app secret
|
||||||
|
zh_Hans: 请输入你的飞书 app secret
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||||
|
from core.tools.tool.builtin_tool import BuiltinTool
|
||||||
|
from core.tools.utils.feishu_api_utils import FeishuRequest
|
||||||
|
|
||||||
|
|
||||||
|
class GetWikiNodesTool(BuiltinTool):
|
||||||
|
def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> ToolInvokeMessage:
|
||||||
|
app_id = self.runtime.credentials.get("app_id")
|
||||||
|
app_secret = self.runtime.credentials.get("app_secret")
|
||||||
|
client = FeishuRequest(app_id, app_secret)
|
||||||
|
|
||||||
|
space_id = tool_parameters.get("space_id")
|
||||||
|
parent_node_token = tool_parameters.get("parent_node_token")
|
||||||
|
page_token = tool_parameters.get("page_token")
|
||||||
|
page_size = tool_parameters.get("page_size")
|
||||||
|
|
||||||
|
res = client.get_wiki_nodes(space_id, parent_node_token, page_token, page_size)
|
||||||
|
|
||||||
|
return self.create_json_message(res)
|
||||||
Loading…
Reference in New Issue