@niubitli/plugin-feishu-connector 0.3.1-connector-feishu

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts", "../src/config.ts", "../src/manifest.ts"],
4
+ "sourcesContent": ["export const PLUGIN_ID = \"paperclipai.feishu-connector\";\nexport const PLUGIN_VERSION = \"0.3.1-connector-feishu\";\n\nexport const DATA_KEYS = {\n status: \"status\",\n catalog: \"catalog\",\n profiles: \"profiles\",\n directory: \"directory\",\n issueSource: \"issue-source\",\n capabilities: \"capabilities\",\n} as const;\n\nexport const ACTION_KEYS = {\n simulateInboundMessage: \"simulate-inbound-message\",\n sendMessage: \"send-message\",\n writeBaseRecord: \"write-base-record\",\n bindProfile: \"bind-profile\",\n startGuidedBind: \"start-guided-bind\",\n finishGuidedBind: \"finish-guided-bind\",\n startUserAuth: \"start-user-auth\",\n finishUserAuth: \"finish-user-auth\",\n testRoute: \"test-route\",\n checkPermissions: \"check-permissions\",\n retryFailedDeliveries: \"retry-failed-deliveries\",\n replyIssueSourceThread: \"reply-issue-source-thread\",\n downloadIssueAttachments: \"download-issue-attachments\",\n writeIssueBaseRecord: \"write-issue-base-record\",\n lookupIssueRequester: \"lookup-issue-requester\",\n replyIssueCommentToFeishu: \"reply-issue-comment-to-feishu\",\n} as const;\n\nexport const API_ROUTE_KEYS = {\n simulateInboundMessage: \"simulate-inbound-message\",\n} as const;\n\nexport const TOOL_NAMES = {\n sendMessage: \"feishu.send_message\",\n sendCard: \"feishu.send_card\",\n writeBaseRecord: \"feishu.write_base_record\",\n downloadAttachments: \"feishu.download_attachments\",\n replyOriginalThread: \"feishu.reply_original_thread\",\n replySourceThread: \"feishu.reply_source_thread\",\n askClarification: \"feishu.ask_clarification\",\n lookupUser: \"feishu.lookup_user\",\n fetchDoc: \"feishu.fetch_doc\",\n runLarkCliCapability: \"feishu.run_lark_cli_capability\",\n} as const;\n\nexport const UI_EXPORTS = {\n dashboardWidget: \"DashboardWidget\",\n sidebarLink: \"FeishuSidebarLink\",\n sidebarPanel: \"FeishuSidebarPanel\",\n settingsPage: \"FeishuSettingsPage\",\n issueTab: \"FeishuIssueTab\",\n commentReplyAction: \"FeishuCommentReplyAction\",\n} as const;\n\nexport const WEBHOOK_KEYS = {\n feishuEvents: \"feishu-events\",\n} as const;\n\nexport const LEGACY_ACK_TEMPLATE = \"\u5DF2\u6536\u5230\uFF0C\u6211\u4F1A\u4EA4\u7ED9 {{agent_name}} \u5904\u7406\u3002\";\nexport const LEGACY_COMPLETION_TEMPLATE = \"\u4EFB\u52A1\u5DF2\u5B8C\u6210\uFF1A{{issue_title}}\";\nexport const DEFAULT_ACK_TEMPLATE = \"\u5DF2\u6536\u5230\uFF0C\u4EA4\u7ED9 {{agent_name}} \u5904\u7406\u3002\\n\u4EFB\u52A1\uFF1A{{issue_ref}}\";\nexport const DEFAULT_COMPLETION_TEMPLATE = \"\u5904\u7406\u5B8C\u6210\uFF1A{{issue_title}}\";\nexport const DEFAULT_ACK_CARD_TITLE = \"\uD83D\uDCCB \u5DF2\u6536\u5230\u4EFB\u52A1\";\nexport const DEFAULT_ACK_CARD_TEMPLATE = \"blue\";\nexport const DEFAULT_COMPLETION_CARD_TITLE = \"\u2705 \u4EFB\u52A1\u5B8C\u6210\";\nexport const DEFAULT_COMPLETION_CARD_TEMPLATE = \"green\";\nexport const DEFAULT_PROGRESS_CARD_TITLE = \"\u23F3 \u8FDB\u5EA6\u66F4\u65B0\";\nexport const DEFAULT_PROGRESS_CARD_TEMPLATE = \"indigo\";\nexport const DEFAULT_BLOCKED_CARD_TITLE = \"\uD83D\uDD04 \u5DF2\u8F6C\u4EA4\u5904\u7406\";\nexport const DEFAULT_BLOCKED_CARD_TEMPLATE = \"yellow\";\nexport const DEFAULT_FAILURE_CARD_TITLE = \"\u274C \u5904\u7406\u5931\u8D25\";\nexport const DEFAULT_FAILURE_CARD_TEMPLATE = \"red\";\nexport const DEFAULT_ACK_CARD_FOOTER = \"\u5B8C\u6210\u540E\u4F1A\u81EA\u52A8\u56DE\u5230\u8FD9\u91CC\u3002\";\nexport const DEFAULT_ESTIMATED_DURATION_LABEL = \"3-8 \u5206\u949F\";\nexport const DEFAULT_QUICK_REPLY_REGEX = \"^(\u53EA\u56DE\u590D\\\\s*ok|\u56DE\u590D\\\\s*ok|ping)$\";\nexport const DEFAULT_QUICK_REPLY_TEXT = \"ok\";\n", "import {\n DEFAULT_ACK_TEMPLATE,\n DEFAULT_COMPLETION_TEMPLATE,\n DEFAULT_QUICK_REPLY_REGEX,\n DEFAULT_QUICK_REPLY_TEXT,\n} from \"./constants.js\";\nimport type {\n FeishuBaseSinkConfig,\n FeishuCapabilityConfig,\n FeishuCapabilityScope,\n FeishuConnectionConfig,\n FeishuConnectorConfig,\n FeishuRouteConfig,\n} from \"./types.js\";\n\nconst optionalStringKeys = [\n \"eventVerificationTokenRef\",\n \"eventEncryptKeyRef\",\n] as const;\n\nexport const DEFAULT_CONFIG: Required<Pick<\n FeishuConnectorConfig,\n \"larkCliBin\" | \"dryRunCli\" | \"capabilityDefaultPolicy\" | \"paperclipBaseUrl\" | \"enableEventSubscriber\" | \"eventTypes\" | \"ackOnInbound\" | \"ackMessageTemplate\" | \"completionMessageTemplate\"\n | \"eventRequireSignature\" | \"enableQuickReply\" | \"quickReplyRegex\" | \"quickReplyText\"\n>> = {\n larkCliBin: \"lark-cli\",\n dryRunCli: true,\n capabilityDefaultPolicy: \"authorized\",\n paperclipBaseUrl: \"\",\n enableEventSubscriber: false,\n eventTypes: \"im.message.receive_v1\",\n eventRequireSignature: false,\n ackOnInbound: false,\n ackMessageTemplate: DEFAULT_ACK_TEMPLATE,\n completionMessageTemplate: DEFAULT_COMPLETION_TEMPLATE,\n enableQuickReply: true,\n quickReplyRegex: DEFAULT_QUICK_REPLY_REGEX,\n quickReplyText: DEFAULT_QUICK_REPLY_TEXT,\n};\n\nfunction asArray<T>(value: unknown): T[] {\n return Array.isArray(value) ? value as T[] : [];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction normalizeStringList(value: unknown): string[] {\n const values = Array.isArray(value)\n ? value\n : typeof value === \"string\"\n ? value.split(/[,\uFF0C\u3001\\n]/g)\n : [];\n return [...new Set(values\n .filter((item): item is string => typeof item === \"string\")\n .map((item) => item.trim())\n .filter(Boolean))];\n}\n\nfunction normalizeCapabilityScope(value: unknown): FeishuCapabilityScope {\n return value === \"bot\" || value === \"entry\" || value === \"agent\" ? value : \"instance\";\n}\n\nexport function normalizeConfig(input: Record<string, unknown> | null | undefined): FeishuConnectorConfig {\n const source = isRecord(input) ? input : {};\n const optionalStrings = Object.fromEntries(optionalStringKeys\n .map((key) => [key, typeof source[key] === \"string\" ? source[key].trim() : undefined])\n .filter(([, value]) => typeof value === \"string\" && value.length > 0));\n return {\n ...DEFAULT_CONFIG,\n ...optionalStrings,\n larkCliBin: typeof source.larkCliBin === \"string\" && source.larkCliBin.trim()\n ? source.larkCliBin.trim()\n : DEFAULT_CONFIG.larkCliBin,\n dryRunCli: typeof source.dryRunCli === \"boolean\"\n ? source.dryRunCli\n : DEFAULT_CONFIG.dryRunCli,\n capabilityDefaultPolicy: source.capabilityDefaultPolicy === \"conservative\"\n ? \"conservative\"\n : DEFAULT_CONFIG.capabilityDefaultPolicy,\n paperclipBaseUrl: typeof source.paperclipBaseUrl === \"string\"\n ? source.paperclipBaseUrl.trim()\n : DEFAULT_CONFIG.paperclipBaseUrl,\n enableEventSubscriber: source.enableEventSubscriber === true,\n eventTypes: typeof source.eventTypes === \"string\" && source.eventTypes.trim()\n ? source.eventTypes.trim()\n : DEFAULT_CONFIG.eventTypes,\n eventRequireSignature: source.eventRequireSignature === true,\n ackOnInbound: source.ackOnInbound === true,\n ackMessageTemplate: typeof source.ackMessageTemplate === \"string\"\n ? source.ackMessageTemplate\n : DEFAULT_CONFIG.ackMessageTemplate,\n completionMessageTemplate: typeof source.completionMessageTemplate === \"string\"\n ? source.completionMessageTemplate\n : DEFAULT_CONFIG.completionMessageTemplate,\n enableQuickReply: source.enableQuickReply !== false,\n quickReplyRegex: typeof source.quickReplyRegex === \"string\" && source.quickReplyRegex.trim()\n ? source.quickReplyRegex.trim()\n : DEFAULT_CONFIG.quickReplyRegex,\n quickReplyText: typeof source.quickReplyText === \"string\"\n ? source.quickReplyText\n : DEFAULT_CONFIG.quickReplyText,\n connections: asArray<FeishuConnectionConfig>(source.connections)\n .filter((connection) =>\n typeof connection?.id === \"string\" &&\n typeof connection?.profileName === \"string\"\n )\n .map((connection) => ({\n ...connection,\n botAliases: normalizeStringList(connection.botAliases),\n })),\n routes: asArray<FeishuRouteConfig>(source.routes).filter((route) =>\n typeof route?.id === \"string\" &&\n (typeof route?.companyId === \"string\" || typeof route?.companyRef === \"string\") &&\n typeof route?.matchType === \"string\"\n ),\n baseSinks: asArray<FeishuBaseSinkConfig>(source.baseSinks).filter((sink) =>\n typeof sink?.id === \"string\" &&\n typeof sink?.baseToken === \"string\" &&\n typeof sink?.tableIdOrName === \"string\"\n ),\n capabilities: asArray<FeishuCapabilityConfig>(source.capabilities)\n .filter((capability) => typeof capability?.key === \"string\")\n .map((capability) => ({\n ...capability,\n key: capability.key.trim(),\n scope: normalizeCapabilityScope(capability.scope),\n }))\n .filter((capability) => capability.key.length > 0),\n };\n}\n\nexport function getEnabledConnections(config: FeishuConnectorConfig): FeishuConnectionConfig[] {\n return (config.connections ?? []).filter((connection) => connection.enabled !== false);\n}\n\nexport function resolveConnection(\n config: FeishuConnectorConfig,\n connectionId?: string,\n): FeishuConnectionConfig | null {\n const enabled = getEnabledConnections(config);\n if (connectionId) {\n return enabled.find((connection) => connection.id === connectionId) ?? null;\n }\n return enabled[0] ?? null;\n}\n\nexport function resolveBaseSink(\n config: FeishuConnectorConfig,\n sinkId?: string,\n): FeishuBaseSinkConfig | null {\n if (!sinkId) return null;\n return (config.baseSinks ?? []).find((sink) => sink.id === sinkId && sink.enabled !== false) ?? null;\n}\n", "import type { PaperclipPluginManifestV1 } from \"@paperclipai/plugin-sdk\";\nimport {\n API_ROUTE_KEYS,\n PLUGIN_ID,\n PLUGIN_VERSION,\n TOOL_NAMES,\n UI_EXPORTS,\n WEBHOOK_KEYS,\n} from \"./constants.js\";\nimport { DEFAULT_CONFIG } from \"./config.js\";\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: PLUGIN_ID,\n apiVersion: 1,\n version: PLUGIN_VERSION,\n displayName: \"\u98DE\u4E66\u8FDE\u63A5\u5668\",\n description: \"\u8BA9 Paperclip \u667A\u80FD\u4F53\u901A\u8FC7\u98DE\u4E66\u673A\u5668\u4EBA\u6536\u6D88\u606F\u3001\u56DE\u6D88\u606F\uFF0C\u5E76\u53EF\u628A\u9700\u6C42\u5199\u5165\u98DE\u4E66\u591A\u7EF4\u8868\u683C\u3002\",\n author: \"Paperclip\",\n categories: [\"connector\", \"automation\"],\n capabilities: [\n \"companies.read\",\n \"projects.read\",\n \"issues.read\",\n \"issues.create\",\n \"issue.comments.read\",\n \"issue.comments.create\",\n \"issue.attachments.create\",\n \"agents.read\",\n \"agents.invoke\",\n \"agent.sessions.create\",\n \"agent.sessions.send\",\n \"activity.log.write\",\n \"metrics.write\",\n \"database.namespace.migrate\",\n \"database.namespace.read\",\n \"database.namespace.write\",\n \"plugin.state.read\",\n \"plugin.state.write\",\n \"secrets.read-ref\",\n \"webhooks.receive\",\n \"api.routes.register\",\n \"events.subscribe\",\n \"agent.tools.register\",\n \"instance.settings.register\",\n \"ui.sidebar.register\",\n \"ui.dashboardWidget.register\",\n \"ui.detailTab.register\",\n \"ui.action.register\",\n ],\n entrypoints: {\n worker: \"./dist/worker.js\",\n ui: \"./dist/ui\",\n },\n webhooks: [\n {\n endpointKey: WEBHOOK_KEYS.feishuEvents,\n displayName: \"\u98DE\u4E66\u4E8B\u4EF6\u56DE\u8C03\",\n description: \"\u63A5\u6536\u98DE\u4E66\u5F00\u653E\u5E73\u53F0\u63A8\u9001\u7684\u6D88\u606F\u4E8B\u4EF6\uFF0C\u5E76\u6309\u5165\u53E3\u89C4\u5219\u521B\u5EFA\u6216\u66F4\u65B0 Paperclip Issue\u3002\",\n },\n ],\n apiRoutes: [\n {\n routeKey: API_ROUTE_KEYS.simulateInboundMessage,\n method: \"POST\",\n path: \"/simulate-inbound-message\",\n auth: \"board\",\n capability: \"api.routes.register\",\n companyResolution: { from: \"body\", key: \"companyId\" },\n },\n ],\n database: {\n namespaceSlug: \"feishu_connector\",\n migrationsDir: \"migrations\",\n coreReadTables: [\"issues\"],\n },\n instanceConfigSchema: {\n type: \"object\",\n properties: {\n capabilityDefaultPolicy: {\n type: \"string\",\n title: \"\u98DE\u4E66\u80FD\u529B\u9ED8\u8BA4\u5F00\u653E\u7B56\u7565\",\n \"x-order\": 5,\n description: \"\u9ED8\u8BA4\u4F7F\u7528\u201C\u6309\u98DE\u4E66\u5E94\u7528\u6388\u6743\u5F00\u653E\u201D\uFF1A\u63D2\u4EF6\u4E0D\u4F1A\u8BA9\u7528\u6237\u9010\u9879\u786E\u8BA4\u5DF2\u63A5\u5165\u80FD\u529B\uFF0C\u7528\u6237\u53EA\u9700\u8981\u5173\u95ED\u4E0D\u60F3\u7ED9 Agent \u4F7F\u7528\u7684\u80FD\u529B\u3002\",\n enum: [\"authorized\", \"conservative\"],\n enumNames: [\"\u6309\u98DE\u4E66\u5E94\u7528\u6388\u6743\u5F00\u653E\", \"\u4FDD\u5B88\u6A21\u5F0F\uFF1A\u53EA\u5F00\u542F\u6838\u5FC3\u80FD\u529B\"],\n default: \"authorized\",\n },\n connections: {\n type: \"array\",\n title: \"\u7B2C 1 \u6B65\uFF1A\u98DE\u4E66\u673A\u5668\u4EBA\u8D26\u53F7\",\n \"x-order\": 10,\n description: \"\u5148\u544A\u8BC9 Paperclip \u7528\u54EA\u4E2A\u98DE\u4E66\u673A\u5668\u4EBA\u6536\u53D1\u6D88\u606F\u3002\u901A\u5E38\u4E00\u4E2A\u673A\u5668\u4EBA\u586B\u4E00\u9879\u3002\",\n items: {\n type: \"object\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8D26\u53F7\",\n properties: {\n id: {\n type: \"string\",\n title: \"\u8FDE\u63A5\u4EE3\u53F7\",\n \"x-order\": 10,\n description: \"\u81EA\u5DF1\u8D77\u4E00\u4E2A\u77ED\u540D\u5B57\uFF0C\u540E\u9762\u7684\u63A5\u6536\u89C4\u5219\u4F1A\u5F15\u7528\u5B83\u3002\u5EFA\u8BAE\u7528\u82F1\u6587\u548C\u77ED\u6A2A\u7EBF\uFF0C\u4F8B\u5982 boss-news-bot\u3002\",\n default: \"boss-news-bot\",\n },\n name: {\n type: \"string\",\n title: \"\u9875\u9762\u663E\u793A\u540D\u79F0\",\n \"x-order\": 20,\n description: \"\u7ED9\u4EBA\u770B\u7684\u540D\u5B57\uFF0C\u4F8B\u5982\u300C\u8001\u677F\u8D44\u8BAF\u673A\u5668\u4EBA\u300D\u3002\",\n default: \"\u8001\u677F\u8D44\u8BAF\u673A\u5668\u4EBA\",\n },\n profileName: {\n type: \"string\",\n title: \"lark-cli \u767B\u5F55\u914D\u7F6E\u540D\",\n \"x-order\": 30,\n description: \"\u8FD9\u662F\u98DE\u4E66\u5B98\u65B9 lark-cli \u91CC\u5DF2\u7ECF\u767B\u5F55\u597D\u7684 profile \u540D\u3002\u4E0D\u4F1A\u586B\u65F6\u5148\u627E\u5DE5\u7A0B\u5E08\u6267\u884C lark-cli auth login \u521B\u5EFA\u3002\",\n default: \"paperclip-news-bot\",\n },\n botAliases: {\n type: \"array\",\n title: \"\u98DE\u4E66 @ \u540D\u79F0/\u522B\u540D\",\n \"x-order\": 32,\n description: \"\u5F53\u98DE\u4E66\u6216 lark-cli \u6CA1\u6709\u8FD4\u56DE\u673A\u5668\u4EBA\u663E\u793A\u540D\u65F6\uFF0C\u7528\u8FD9\u91CC\u5224\u65AD\u7528\u6237\u662F\u4E0D\u662F @ \u4E86\u5F53\u524D\u673A\u5668\u4EBA\u3002\u53EF\u586B\u591A\u4E2A\uFF0C\u4F8B\u5982\u300C\u9510\u601D\u300D\u300C\u5C0F\u9510\u300D\u3002\",\n items: { type: \"string\" },\n default: [],\n },\n appId: {\n type: \"string\",\n title: \"\u98DE\u4E66 App ID\uFF08\u53EF\u9009\uFF09\",\n \"x-order\": 35,\n description: \"\u53EA\u7528\u4E8E\u9875\u9762\u6838\u5BF9\uFF0C\u4E0D\u4FDD\u5B58 App Secret\u3002App Secret \u7531\u5B98\u65B9 lark-cli profile \u6258\u7BA1\u3002\",\n },\n enabled: {\n type: \"boolean\",\n title: \"\u542F\u7528\u8FD9\u4E2A\u98DE\u4E66\u673A\u5668\u4EBA\",\n \"x-order\": 40,\n default: true,\n },\n },\n required: [\"id\", \"profileName\"],\n },\n default: [],\n },\n routes: {\n type: \"array\",\n title: \"\u7B2C 2 \u6B65\uFF1A\u98DE\u4E66\u6D88\u606F\u4EA4\u7ED9\u54EA\u4E2A\u667A\u80FD\u4F53\",\n \"x-order\": 20,\n description: \"\u4E00\u6761\u89C4\u5219\u4EE3\u8868\u4E00\u4E2A\u573A\u666F\uFF1A\u8C01\u5728\u98DE\u4E66\u91CC\u53D1\u6D88\u606F\u3001\u4EA4\u7ED9 Paperclip \u91CC\u7684\u54EA\u4E2A\u667A\u80FD\u4F53\u5904\u7406\u3002\",\n items: {\n type: \"object\",\n title: \"\u63A5\u6536\u6D88\u606F\u89C4\u5219\",\n properties: {\n id: {\n type: \"string\",\n title: \"\u89C4\u5219\u4EE3\u53F7\",\n \"x-order\": 10,\n description: \"\u81EA\u5DF1\u8D77\u4E00\u4E2A\u77ED\u540D\u5B57\uFF0C\u4F8B\u5982 boss-chat-to-news-agent\u3002\",\n default: \"boss-chat-to-news-agent\",\n },\n connectionId: {\n type: \"string\",\n title: \"\u4F7F\u7528\u54EA\u4E2A\u98DE\u4E66\u673A\u5668\u4EBA\",\n \"x-order\": 20,\n description: \"\u586B\u5199\u7B2C 1 \u6B65\u91CC\u7684\u300C\u8FDE\u63A5\u4EE3\u53F7\u300D\u3002\u5982\u679C\u53EA\u914D\u7F6E\u4E86\u4E00\u4E2A\u673A\u5668\u4EBA\uFF0C\u4E5F\u5EFA\u8BAE\u586B\u4E0A\uFF0C\u907F\u514D\u4EE5\u540E\u6DF7\u6DC6\u3002\",\n default: \"boss-news-bot\",\n },\n enabled: {\n type: \"boolean\",\n title: \"\u542F\u7528\u8FD9\u6761\u89C4\u5219\",\n \"x-order\": 30,\n default: true,\n },\n matchType: {\n type: \"string\",\n title: \"\u76D1\u542C\u65B9\u5F0F\",\n \"x-order\": 40,\n description: \"\u6700\u5E38\u7528\u9009\u300C\u6307\u5B9A\u98DE\u4E66\u7FA4/\u4F1A\u8BDD\u300D\u3002\u8001\u677F\u5355\u804A\u673A\u5668\u4EBA\u4E5F\u53EF\u4EE5\u7528\u8FD9\u4E2A\u65B9\u5F0F\uFF0C\u586B\u5BF9\u5E94 chat_id\u3002\",\n enum: [\"chat\", \"user\", \"keyword\", \"regex\", \"default\"],\n enumNames: [\"\u6307\u5B9A\u98DE\u4E66\u7FA4/\u4F1A\u8BDD\", \"\u6307\u5B9A\u53D1\u6D88\u606F\u7684\u4EBA\", \"\u6D88\u606F\u5305\u542B\u5173\u952E\u8BCD\", \"\u9AD8\u7EA7\uFF1A\u6B63\u5219\u5339\u914D\", \"\u515C\u5E95\uFF1A\u5176\u4ED6\u6D88\u606F\u90FD\u63A5\u6536\"],\n default: \"chat\",\n },\n chatId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7FA4/\u4F1A\u8BDD chat_id\",\n \"x-order\": 50,\n description: \"\u76D1\u542C\u65B9\u5F0F\u9009\u300C\u6307\u5B9A\u98DE\u4E66\u7FA4/\u4F1A\u8BDD\u300D\u65F6\u586B\u5199\u3002\u8BBE\u7F6E\u9875\u652F\u6301\u6309\u7FA4\u540D\u641C\u7D22\u540E\u81EA\u52A8\u5E26\u51FA\u3002\",\n },\n chatName: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7FA4/\u4F1A\u8BDD\u540D\u79F0\",\n \"x-order\": 55,\n description: \"\u53EA\u7528\u4E8E\u9875\u9762\u663E\u793A\uFF0C\u771F\u6B63\u5339\u914D\u4ECD\u4EE5 chat_id \u4E3A\u51C6\u3002\",\n },\n userOpenId: {\n type: \"string\",\n title: \"\u53D1\u6D88\u606F\u4EBA\u7684 open_id\",\n \"x-order\": 60,\n description: \"\u76D1\u542C\u65B9\u5F0F\u9009\u300C\u6307\u5B9A\u53D1\u6D88\u606F\u7684\u4EBA\u300D\u65F6\u586B\u5199\u3002\u8BBE\u7F6E\u9875\u652F\u6301\u6309\u59D3\u540D\u641C\u7D22\u540E\u81EA\u52A8\u5E26\u51FA\u3002\",\n },\n userName: {\n type: \"string\",\n title: \"\u53D1\u6D88\u606F\u4EBA\u59D3\u540D\",\n \"x-order\": 65,\n description: \"\u53EA\u7528\u4E8E\u9875\u9762\u663E\u793A\uFF0C\u771F\u6B63\u5339\u914D\u4ECD\u4EE5 open_id \u4E3A\u51C6\u3002\",\n },\n keyword: {\n type: \"string\",\n title: \"\u5173\u952E\u8BCD\",\n \"x-order\": 70,\n description: \"\u76D1\u542C\u65B9\u5F0F\u9009\u300C\u6D88\u606F\u5305\u542B\u5173\u952E\u8BCD\u300D\u65F6\u586B\u5199\u3002\u4F8B\u5982\u300C\u8D44\u8BAF\u300D\u300C\u5E2E\u6211\u67E5\u300D\u3002\",\n },\n regex: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u6B63\u5219\u8868\u8FBE\u5F0F\",\n \"x-order\": 80,\n description: \"\u4E00\u822C\u4E0D\u7528\u586B\u3002\u53EA\u6709\u9700\u8981\u590D\u6742\u5339\u914D\u89C4\u5219\u65F6\u7ED9\u5DE5\u7A0B\u5E08\u4F7F\u7528\u3002\",\n },\n companyRef: {\n type: \"string\",\n title: \"Paperclip \u516C\u53F8\",\n \"x-order\": 90,\n description: \"\u586B\u516C\u53F8\u540D\u79F0\u6216\u5DE6\u4FA7\u5706\u70B9\u4E0A\u7684\u516C\u53F8\u524D\u7F00\u5373\u53EF\uFF0C\u4F8B\u5982\u300C\u9510\u6377\u7F51\u7EDC\u300D\u6216\u300CCMP\u300D\u3002\",\n default: \"CMP\",\n },\n targetAgentName: {\n type: \"string\",\n title: \"\u4EA4\u7ED9\u54EA\u4E2A\u667A\u80FD\u4F53\",\n \"x-order\": 100,\n description: \"\u586B\u5DE6\u4FA7\u667A\u80FD\u4F53\u5217\u8868\u91CC\u663E\u793A\u7684\u540D\u5B57\uFF0C\u4F8B\u5982\u300C\u8D44\u8BAF\u6570\u5B57\u4EBA\u300D\u300C\u5218\u603B\u300D\u3002\u63D2\u4EF6\u4F1A\u81EA\u52A8\u627E\u5230\u5BF9\u5E94\u667A\u80FD\u4F53\u3002\",\n },\n replyMode: {\n type: \"string\",\n title: \"\u667A\u80FD\u4F53\u5904\u7406\u540E\u600E\u4E48\u56DE\u590D\u98DE\u4E66\",\n \"x-order\": 110,\n enum: [\"none\", \"message\", \"thread\"],\n enumNames: [\"\u4E0D\u81EA\u52A8\u56DE\u590D\", \"\u53D1\u4E00\u6761\u65B0\u6D88\u606F\", \"\u5728\u539F\u6D88\u606F\u7EBF\u7A0B\u91CC\u56DE\u590D\"],\n default: \"thread\",\n },\n baseSinkId: {\n type: \"string\",\n title: \"\u53EF\u9009\uFF1A\u540C\u6B65\u5230\u54EA\u5F20\u591A\u7EF4\u8868\u683C\",\n \"x-order\": 120,\n description: \"\u586B\u5199\u7B2C 3 \u6B65\u91CC\u7684\u300C\u591A\u7EF4\u8868\u683C\u89C4\u5219\u4EE3\u53F7\u300D\u3002\u4E0D\u9700\u8981\u5199\u5165\u591A\u7EF4\u8868\u683C\u5C31\u7559\u7A7A\u3002\",\n },\n priority: {\n type: \"number\",\n title: \"\u9AD8\u7EA7\uFF1A\u89C4\u5219\u4F18\u5148\u7EA7\",\n \"x-order\": 900,\n description: \"\u591A\u6761\u89C4\u5219\u90FD\u80FD\u5339\u914D\u65F6\uFF0C\u6570\u5B57\u5927\u7684\u5148\u6267\u884C\u3002\u666E\u901A\u7528\u6237\u4FDD\u6301 10 \u5373\u53EF\u3002\",\n default: 10,\n },\n companyId: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u516C\u53F8 ID\",\n \"x-order\": 910,\n description: \"\u666E\u901A\u7528\u6237\u4E0D\u7528\u586B\u3002\u53EA\u6709\u516C\u53F8\u540D\u79F0/\u524D\u7F00\u627E\u4E0D\u5230\u65F6\uFF0C\u624D\u8BA9\u5DE5\u7A0B\u5E08\u590D\u5236\u516C\u53F8 ID\u3002\",\n },\n projectId: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u9879\u76EE ID\",\n \"x-order\": 920,\n description: \"\u9ED8\u8BA4\u4F1A\u521B\u5EFA\u5230\u516C\u53F8\u4EFB\u52A1\u6C60\u3002\u60F3\u56FA\u5B9A\u8FDB\u5165\u67D0\u4E2A\u9879\u76EE\u65F6\u518D\u586B\u9879\u76EE ID\u3002\",\n },\n targetAgentId: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u667A\u80FD\u4F53 ID\",\n \"x-order\": 930,\n description: \"\u666E\u901A\u7528\u6237\u4E0D\u7528\u586B\u3002\u53EA\u6709\u667A\u80FD\u4F53\u540D\u79F0\u627E\u4E0D\u5230\u65F6\uFF0C\u624D\u590D\u5236\u667A\u80FD\u4F53\u9875\u9762 URL \u91CC\u7684 ID\u3002\",\n },\n },\n required: [\"id\", \"matchType\"],\n },\n default: [],\n },\n baseSinks: {\n type: \"array\",\n title: \"\u7B2C 3 \u6B65\uFF08\u53EF\u9009\uFF09\uFF1A\u5199\u5165\u98DE\u4E66\u591A\u7EF4\u8868\u683C\",\n \"x-order\": 30,\n description: \"\u5982\u679C\u5E0C\u671B\u628A\u98DE\u4E66\u91CC\u7684\u65B0\u9700\u6C42\u540C\u6B65\u6C89\u6DC0\u5230\u591A\u7EF4\u8868\u683C\uFF0C\u5C31\u5728\u8FD9\u91CC\u6DFB\u52A0\u4E00\u9879\u3002\u4E0D\u9700\u8981\u5C31\u7559\u7A7A\u3002\",\n items: {\n type: \"object\",\n title: \"\u591A\u7EF4\u8868\u683C\u5199\u5165\u89C4\u5219\",\n properties: {\n id: {\n type: \"string\",\n title: \"\u591A\u7EF4\u8868\u683C\u89C4\u5219\u4EE3\u53F7\",\n \"x-order\": 10,\n description: \"\u81EA\u5DF1\u8D77\u4E00\u4E2A\u77ED\u540D\u5B57\uFF0C\u63A5\u6536\u89C4\u5219\u91CC\u4F1A\u5F15\u7528\u5B83\u3002\u4F8B\u5982 boss-demand-base\u3002\",\n default: \"boss-demand-base\",\n },\n connectionId: {\n type: \"string\",\n title: \"\u4F7F\u7528\u54EA\u4E2A\u98DE\u4E66\u673A\u5668\u4EBA\",\n \"x-order\": 20,\n description: \"\u586B\u5199\u7B2C 1 \u6B65\u91CC\u7684\u300C\u8FDE\u63A5\u4EE3\u53F7\u300D\u3002\u7559\u7A7A\u65F6\u9ED8\u8BA4\u4F7F\u7528\u7B2C\u4E00\u4E2A\u673A\u5668\u4EBA\u3002\",\n default: \"boss-news-bot\",\n },\n enabled: {\n type: \"boolean\",\n title: \"\u542F\u7528\u5199\u5165\u591A\u7EF4\u8868\u683C\",\n \"x-order\": 30,\n default: true,\n },\n baseToken: {\n type: \"string\",\n title: \"\u591A\u7EF4\u8868\u683C base token\",\n \"x-order\": 40,\n description: \"\u98DE\u4E66\u591A\u7EF4\u8868\u683C\u94FE\u63A5\u91CC\u7684 app \u5F00\u5934\u90A3\u6BB5 token\u3002\u4E0D\u4F1A\u627E\u65F6\u628A\u8868\u683C\u94FE\u63A5\u53D1\u7ED9\u5DE5\u7A0B\u5E08\u3002\",\n },\n tableIdOrName: {\n type: \"string\",\n title: \"\u6570\u636E\u8868 ID \u6216\u8868\u540D\",\n \"x-order\": 50,\n description: \"\u53EF\u4EE5\u586B\u8868\u540D\uFF0C\u4F8B\u5982\u300C\u9700\u6C42\u6C60\u300D\uFF1B\u66F4\u7A33\u7684\u662F\u586B table_id\u3002\",\n },\n identity: {\n type: \"string\",\n title: \"\u7528\u8C01\u7684\u8EAB\u4EFD\u5199\u8868\",\n \"x-order\": 60,\n enum: [\"bot\", \"user\"],\n enumNames: [\"\u673A\u5668\u4EBA\u8EAB\u4EFD\", \"\u7528\u6237\u8EAB\u4EFD\"],\n default: \"bot\",\n },\n fieldMap: {\n type: \"object\",\n title: \"\u5199\u5165\u54EA\u4E9B\u5B57\u6BB5\",\n \"x-order\": 70,\n description: \"\u5DE6\u8FB9\u662F\u98DE\u4E66\u8868\u683C\u5B57\u6BB5\u540D\uFF0C\u53F3\u8FB9\u662F\u8981\u5199\u5165\u7684\u5185\u5BB9\u6A21\u677F\u3002\u9ED8\u8BA4\u5B57\u6BB5\u9002\u5408\u300C\u9700\u6C42\u6C60\u300D\u8868\u3002\",\n properties: {\n \"\u9700\u6C42\u6807\u9898\": { type: \"string\", title: \"\u9700\u6C42\u6807\u9898\", \"x-order\": 10, default: \"{{issue_title}}\" },\n \"\u539F\u59CB\u9700\u6C42\": { type: \"string\", title: \"\u539F\u59CB\u9700\u6C42\", \"x-order\": 20, default: \"{{message.text}}\" },\n \"\u63D0\u51FA\u4EBA\": { type: \"string\", title: \"\u63D0\u51FA\u4EBA\", \"x-order\": 30, default: \"{{sender.name}}\" },\n \"\u98DE\u4E66\u6D88\u606FID\": { type: \"string\", title: \"\u98DE\u4E66\u6D88\u606FID\", \"x-order\": 40, default: \"{{message.id}}\" },\n \"Paperclip\u4EFB\u52A1ID\": { type: \"string\", title: \"Paperclip\u4EFB\u52A1ID\", \"x-order\": 50, default: \"{{issue_id}}\" },\n },\n },\n },\n required: [\"id\", \"baseToken\", \"tableIdOrName\"],\n },\n default: [],\n },\n dryRunCli: {\n type: \"boolean\",\n title: \"\u6D4B\u8BD5\u6A21\u5F0F\uFF1A\u5148\u4E0D\u771F\u7684\u53D1\u98DE\u4E66\u6D88\u606F\",\n \"x-order\": 40,\n default: DEFAULT_CONFIG.dryRunCli,\n description: \"\u521A\u914D\u7F6E\u65F6\u5EFA\u8BAE\u6253\u5F00\u3002\u786E\u8BA4\u6CA1\u95EE\u9898\u540E\u518D\u5173\u95ED\uFF0C\u5173\u95ED\u540E\u624D\u4F1A\u771F\u7684\u8C03\u7528 lark-cli \u7ED9\u98DE\u4E66\u53D1\u6D88\u606F\u6216\u5199\u8868\u3002\",\n },\n ackOnInbound: {\n type: \"boolean\",\n title: \"\u6536\u5230\u9700\u6C42\u540E\u5148\u56DE\u590D\u4E00\u53E5\u300C\u5DF2\u6536\u5230\u300D\",\n \"x-order\": 50,\n default: DEFAULT_CONFIG.ackOnInbound,\n description: \"\u6253\u5F00\u540E\uFF0C\u98DE\u4E66\u6D88\u606F\u8FDB\u6765\u65F6\u4F1A\u5148\u81EA\u52A8\u56DE\u590D\u786E\u8BA4\u3002\u5EFA\u8BAE\u6B63\u5F0F\u4F7F\u7528\u65F6\u6253\u5F00\u3002\",\n },\n ackMessageTemplate: {\n type: \"string\",\n title: \"\u6536\u5230\u9700\u6C42\u65F6\u7684\u786E\u8BA4\u8BDD\u672F\",\n \"x-order\": 60,\n default: DEFAULT_CONFIG.ackMessageTemplate,\n description: \"\u53EF\u4EE5\u4F7F\u7528 {{agent_name}} \u8868\u793A\u667A\u80FD\u4F53\u540D\u79F0\u3002\",\n },\n enableQuickReply: {\n type: \"boolean\",\n title: \"\u6D4B\u8BD5\u53E3\u4EE4\uFF1A\u53EA\u56DE\u590D ok \u65F6\u4E0D\u8DD1\u667A\u80FD\u4F53\",\n \"x-order\": 65,\n default: DEFAULT_CONFIG.enableQuickReply,\n description: \"\u6253\u5F00\u540E\uFF0C\u5728\u98DE\u4E66\u91CC @\u673A\u5668\u4EBA \u53D1\u9001\u300C\u53EA\u56DE\u590D ok\u300D\u4F1A\u76F4\u63A5\u56DE ok\uFF0C\u7528\u6765\u786E\u8BA4\u98DE\u4E66\u6536\u53D1\u94FE\u8DEF\uFF0C\u4E0D\u4F1A\u521B\u5EFA Paperclip \u4EFB\u52A1\u3002\",\n },\n quickReplyRegex: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u6D4B\u8BD5\u53E3\u4EE4\u5339\u914D\u89C4\u5219\",\n \"x-order\": 66,\n default: DEFAULT_CONFIG.quickReplyRegex,\n description: \"\u666E\u901A\u7528\u6237\u4E0D\u7528\u6539\u3002\u5339\u914D\u5230\u8FD9\u4E2A\u89C4\u5219\u65F6\uFF0C\u4F1A\u76F4\u63A5\u53D1\u9001\u4E0B\u65B9\u7684\u6D4B\u8BD5\u56DE\u590D\u5185\u5BB9\u3002\",\n },\n quickReplyText: {\n type: \"string\",\n title: \"\u6D4B\u8BD5\u56DE\u590D\u5185\u5BB9\",\n \"x-order\": 67,\n default: DEFAULT_CONFIG.quickReplyText,\n description: \"\u6D4B\u8BD5\u53E3\u4EE4\u547D\u4E2D\u540E\uFF0C\u673A\u5668\u4EBA\u76F4\u63A5\u56DE\u590D\u8FD9\u53E5\u8BDD\u3002\",\n },\n completionMessageTemplate: {\n type: \"string\",\n title: \"\u667A\u80FD\u4F53\u5B8C\u6210\u540E\u7684\u56DE\u590D\u8BDD\u672F\",\n \"x-order\": 70,\n default: DEFAULT_CONFIG.completionMessageTemplate,\n description: \"\u9ED8\u8BA4\u4F18\u5148\u4F7F\u7528 Paperclip \u6700\u7EC8\u8BC4\u8BBA\u6B63\u6587\u3002\u81EA\u5B9A\u4E49\u65F6\u53EF\u4F7F\u7528 {{issue_title}}\u3001{{issue_ref}}\u3001{{issue_url}}\u3002\",\n },\n paperclipBaseUrl: {\n type: \"string\",\n title: \"Paperclip \u5185\u90E8\u8BBF\u95EE\u5730\u5740\uFF08\u53EF\u9009\uFF09\",\n \"x-order\": 75,\n default: DEFAULT_CONFIG.paperclipBaseUrl,\n description: \"\u4F8B\u5982 https://paperclip.company.com\u3002\u53EA\u7528\u4E8E\u98DE\u4E66\u91CC\u9644\u5E26\u5185\u90E8\u4EFB\u52A1\u94FE\u63A5\uFF1B\u6CA1\u6709 Paperclip \u8D26\u53F7\u7684\u4EBA\u6253\u4E0D\u5F00\u3002\",\n },\n enableEventSubscriber: {\n type: \"boolean\",\n title: \"\u81EA\u52A8\u76D1\u542C\u98DE\u4E66\u65B0\u6D88\u606F\",\n \"x-order\": 80,\n default: DEFAULT_CONFIG.enableEventSubscriber,\n description: \"\u672C\u5730\u6D4B\u8BD5\u53EF\u4EE5\u6253\u5F00\u3002\u672A\u6765\u90E8\u7F72\u5230\u4E91\u670D\u52A1\u5668\u65F6\uFF0C\u5EFA\u8BAE\u53EA\u5F00\u4E00\u4E2A\u76D1\u542C\u670D\u52A1\uFF0C\u907F\u514D\u540C\u4E00\u6761\u98DE\u4E66\u6D88\u606F\u88AB\u5904\u7406\u591A\u6B21\u3002\",\n },\n eventTypes: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1A\u76D1\u542C\u7684\u98DE\u4E66\u4E8B\u4EF6\u7C7B\u578B\",\n \"x-order\": 90,\n default: DEFAULT_CONFIG.eventTypes,\n description: \"\u666E\u901A\u7528\u6237\u4E0D\u7528\u6539\u3002\u9ED8\u8BA4\u76D1\u542C\u98DE\u4E66\u6536\u5230\u6D88\u606F\u4E8B\u4EF6\u3002\",\n },\n eventVerificationTokenRef: {\n type: \"string\",\n title: \"\u4E8B\u4EF6 Verification Token Secret Ref\",\n \"x-order\": 92,\n description: \"\u53EF\u9009\u3002\u628A\u98DE\u4E66\u4E8B\u4EF6\u8BA2\u9605\u91CC\u7684 Verification Token \u5B58\u5230 Paperclip Secret/Vault \u540E\uFF0C\u5728\u8FD9\u91CC\u586B\u5199\u5F15\u7528\u540D\u3002\u63D2\u4EF6\u53EA\u4FDD\u5B58\u5F15\u7528\uFF0C\u4E0D\u4FDD\u5B58 token \u660E\u6587\u3002\",\n },\n eventEncryptKeyRef: {\n type: \"string\",\n title: \"\u4E8B\u4EF6 Encrypt Key Secret Ref\",\n \"x-order\": 94,\n description: \"\u53EF\u9009\u3002\u628A\u98DE\u4E66\u4E8B\u4EF6\u8BA2\u9605\u91CC\u7684 Encrypt Key \u5B58\u5230 Paperclip Secret/Vault \u540E\uFF0C\u5728\u8FD9\u91CC\u586B\u5199\u5F15\u7528\u540D\u3002\u7528\u4E8E\u89E3\u5BC6\u52A0\u5BC6\u4E8B\u4EF6\uFF0C\u4E5F\u53EF\u7528\u4E8E\u7B7E\u540D\u6821\u9A8C\u3002\",\n },\n eventRequireSignature: {\n type: \"boolean\",\n title: \"\u516C\u7F51\u56DE\u8C03\u5FC5\u987B\u6821\u9A8C\u7B7E\u540D\",\n \"x-order\": 96,\n default: DEFAULT_CONFIG.eventRequireSignature,\n description: \"\u4E91\u7AEF webhook \u5EFA\u8BAE\u5F00\u542F\u3002\u5F00\u542F\u540E\uFF0C\u98DE\u4E66\u56DE\u8C03\u5FC5\u987B\u5E26 x-lark-signature\u3001timestamp \u548C nonce\uFF0C\u5E76\u901A\u8FC7 Encrypt Key \u6821\u9A8C\u3002\",\n },\n larkCliBin: {\n type: \"string\",\n title: \"\u9AD8\u7EA7\uFF1Alark-cli \u547D\u4EE4\u8DEF\u5F84\",\n \"x-order\": 100,\n default: DEFAULT_CONFIG.larkCliBin,\n description: \"\u666E\u901A\u7528\u6237\u4E0D\u7528\u6539\u3002\u4FDD\u6301\u9ED8\u8BA4\u65F6\u63D2\u4EF6\u4F1A\u4F18\u5148\u4F7F\u7528\u5305\u5185\u81EA\u5E26 CLI\uFF1B\u9700\u8981\u5F3A\u5236\u8D70\u670D\u52A1\u5668\u56FA\u5B9A\u8DEF\u5F84\u65F6\u624D\u586B\u5199\u5B8C\u6574\u8DEF\u5F84\u3002\",\n },\n },\n },\n tools: [\n {\n name: TOOL_NAMES.sendMessage,\n displayName: \"\u53D1\u9001\u98DE\u4E66\u6D88\u606F\",\n description: \"\u901A\u8FC7\u5DF2\u914D\u7F6E\u7684\u98DE\u4E66\u673A\u5668\u4EBA\u7ED9\u6307\u5B9A\u4F1A\u8BDD\u6216\u7528\u6237\u53D1\u9001\u6D88\u606F\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n connectionId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8FDE\u63A5\u4EE3\u53F7\",\n description: \"\u5BF9\u5E94\u7B2C 1 \u6B65\u91CC\u586B\u5199\u7684\u8FDE\u63A5\u4EE3\u53F7\u3002\u7559\u7A7A\u65F6\u4F7F\u7528\u7B2C\u4E00\u4E2A\u542F\u7528\u7684\u673A\u5668\u4EBA\u3002\",\n },\n chatId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7FA4/\u4F1A\u8BDD chat_id\",\n description: \"\u53D1\u5230\u7FA4\u6216\u5355\u804A\u4F1A\u8BDD\u65F6\u586B\u5199\u3002\",\n },\n userId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7528\u6237 ID\",\n description: \"\u76F4\u63A5\u53D1\u7ED9\u67D0\u4E2A\u7528\u6237\u65F6\u586B\u5199\u3002\",\n },\n text: {\n type: \"string\",\n title: \"\u6587\u672C\u5185\u5BB9\",\n },\n markdown: {\n type: \"string\",\n title: \"Markdown \u5185\u5BB9\",\n },\n },\n },\n },\n {\n name: TOOL_NAMES.writeBaseRecord,\n displayName: \"\u5199\u5165\u98DE\u4E66\u591A\u7EF4\u8868\u683C\",\n description: \"\u628A\u4E00\u6761\u7ED3\u6784\u5316\u8BB0\u5F55\u5199\u5165\u5DF2\u914D\u7F6E\u7684\u98DE\u4E66\u591A\u7EF4\u8868\u683C\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n sinkId: {\n type: \"string\",\n title: \"\u591A\u7EF4\u8868\u683C\u89C4\u5219\u4EE3\u53F7\",\n description: \"\u5BF9\u5E94\u7B2C 3 \u6B65\u91CC\u586B\u5199\u7684\u89C4\u5219\u4EE3\u53F7\u3002\",\n },\n record: {\n type: \"object\",\n title: \"\u8981\u5199\u5165\u7684\u8BB0\u5F55\u5185\u5BB9\",\n },\n },\n required: [\"sinkId\", \"record\"],\n },\n },\n {\n name: TOOL_NAMES.sendCard,\n displayName: \"\u53D1\u9001\u98DE\u4E66\u5361\u7247\",\n description: \"\u901A\u8FC7\u5DF2\u914D\u7F6E\u7684\u98DE\u4E66\u673A\u5668\u4EBA\u53D1\u9001\u7ED3\u6784\u5316\u98DE\u4E66\u5361\u7247\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n connectionId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8FDE\u63A5\u4EE3\u53F7\",\n description: \"\u7559\u7A7A\u65F6\u4F7F\u7528\u7B2C\u4E00\u4E2A\u542F\u7528\u7684\u673A\u5668\u4EBA\u3002\",\n },\n chatId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7FA4/\u4F1A\u8BDD chat_id\",\n },\n userId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u7528\u6237 ID\",\n },\n title: {\n type: \"string\",\n title: \"\u5361\u7247\u6807\u9898\",\n },\n summary: {\n type: \"string\",\n title: \"\u5361\u7247\u6B63\u6587\u6458\u8981\",\n },\n actions: {\n type: \"array\",\n title: \"\u6309\u94AE\",\n items: {\n type: \"object\",\n properties: {\n text: { type: \"string\", title: \"\u6309\u94AE\u6587\u5B57\" },\n url: { type: \"string\", title: \"\u6309\u94AE\u94FE\u63A5\" },\n },\n },\n },\n },\n required: [\"title\", \"summary\"],\n },\n },\n {\n name: TOOL_NAMES.replyOriginalThread,\n displayName: \"\u56DE\u590D\u539F\u98DE\u4E66\u4F1A\u8BDD\",\n description: \"\u5728\u7531\u98DE\u4E66\u6D88\u606F\u521B\u5EFA\u7684 Paperclip \u4EFB\u52A1\u4E2D\uFF0C\u628A\u5185\u5BB9\u56DE\u590D\u5230\u539F\u98DE\u4E66\u6D88\u606F\u7EBF\u7A0B\u3002\u9ED8\u8BA4\u4F1A\u6839\u636E\u5F53\u524D Agent \u8FD0\u884C\u81EA\u52A8\u627E\u5230\u539F\u4F1A\u8BDD\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"\u8981\u56DE\u590D\u7684\u6587\u672C\",\n },\n issueId: {\n type: \"string\",\n title: \"Paperclip \u4EFB\u52A1 ID\uFF08\u53EF\u9009\uFF09\",\n description: \"\u4E00\u822C\u4E0D\u7528\u586B\u3002\u53EA\u6709\u5F53\u524D\u8FD0\u884C\u627E\u4E0D\u5230\u98DE\u4E66\u4F1A\u8BDD\u65F6\uFF0C\u624D\u7528\u4EFB\u52A1 ID \u515C\u5E95\u67E5\u627E\u3002\",\n },\n replyMode: {\n type: \"string\",\n title: \"\u56DE\u590D\u65B9\u5F0F\",\n enum: [\"thread\", \"message\"],\n enumNames: [\"\u5728\u539F\u6D88\u606F\u7EBF\u7A0B\u91CC\u56DE\u590D\", \"\u76F4\u63A5\u53D1\u5230\u539F\u98DE\u4E66\u4F1A\u8BDD\"],\n default: \"thread\",\n },\n },\n required: [\"text\"],\n },\n },\n {\n name: TOOL_NAMES.replySourceThread,\n displayName: \"\u56DE\u590D\u98DE\u4E66\u6765\u6E90\u7EBF\u7A0B\",\n description: \"\u5728\u7531\u98DE\u4E66\u6D88\u606F\u521B\u5EFA\u7684 Paperclip \u4EFB\u52A1\u4E2D\uFF0C\u628A\u5185\u5BB9\u56DE\u590D\u5230\u539F\u98DE\u4E66\u6D88\u606F\u7EBF\u7A0B\u3002\u5EFA\u8BAE\u65B0 Agent \u4F7F\u7528\u8FD9\u4E2A\u5DE5\u5177\u540D\uFF1B\u65E7\u5DE5\u5177\u540D\u7EE7\u7EED\u517C\u5BB9\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n text: {\n type: \"string\",\n title: \"\u8981\u56DE\u590D\u7684\u6587\u672C\",\n },\n issueId: {\n type: \"string\",\n title: \"Paperclip \u4EFB\u52A1 ID\uFF08\u53EF\u9009\uFF09\",\n description: \"\u4E00\u822C\u4E0D\u7528\u586B\u3002\u53EA\u6709\u5F53\u524D\u8FD0\u884C\u627E\u4E0D\u5230\u98DE\u4E66\u4F1A\u8BDD\u65F6\uFF0C\u624D\u7528\u4EFB\u52A1 ID \u515C\u5E95\u67E5\u627E\u3002\",\n },\n replyMode: {\n type: \"string\",\n title: \"\u56DE\u590D\u65B9\u5F0F\",\n enum: [\"thread\", \"message\"],\n enumNames: [\"\u5728\u539F\u6D88\u606F\u7EBF\u7A0B\u91CC\u56DE\u590D\", \"\u76F4\u63A5\u53D1\u5230\u539F\u98DE\u4E66\u4F1A\u8BDD\"],\n default: \"thread\",\n },\n },\n required: [\"text\"],\n },\n },\n {\n name: TOOL_NAMES.askClarification,\n displayName: \"\u5411\u98DE\u4E66\u63D0\u51FA\u8FFD\u95EE\",\n description: \"\u4EFB\u52A1\u4FE1\u606F\u4E0D\u8DB3\u65F6\uFF0C\u5728\u539F\u98DE\u4E66\u6D88\u606F\u7EBF\u7A0B\u91CC\u5411\u63D0\u51FA\u4EBA\u8FFD\u95EE\u3002\u53EA\u9002\u7528\u4E8E\u4ECE\u98DE\u4E66\u5165\u53E3\u521B\u5EFA\u7684 Paperclip \u4EFB\u52A1\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n question: {\n type: \"string\",\n title: \"\u8981\u8FFD\u95EE\u7684\u95EE\u9898\",\n },\n issueId: {\n type: \"string\",\n title: \"Paperclip \u4EFB\u52A1 ID\uFF08\u53EF\u9009\uFF09\",\n description: \"\u4E00\u822C\u4E0D\u7528\u586B\u3002\u53EA\u6709\u5F53\u524D\u8FD0\u884C\u627E\u4E0D\u5230\u98DE\u4E66\u4F1A\u8BDD\u65F6\uFF0C\u624D\u7528\u4EFB\u52A1 ID \u515C\u5E95\u67E5\u627E\u3002\",\n },\n },\n required: [\"question\"],\n },\n },\n {\n name: TOOL_NAMES.downloadAttachments,\n displayName: \"\u4E0B\u8F7D\u539F\u98DE\u4E66\u9644\u4EF6\",\n description: \"\u4E0B\u8F7D\u521B\u5EFA\u5F53\u524D Paperclip \u4EFB\u52A1\u7684\u98DE\u4E66\u539F\u6D88\u606F\u9644\u4EF6\uFF0C\u5E76\u6302\u5230 Issue\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n issueId: {\n type: \"string\",\n title: \"Paperclip \u4EFB\u52A1 ID\uFF08\u53EF\u9009\uFF09\",\n description: \"\u4E00\u822C\u4E0D\u7528\u586B\u3002\u53EA\u6709\u5F53\u524D\u8FD0\u884C\u627E\u4E0D\u5230\u98DE\u4E66\u4F1A\u8BDD\u65F6\uFF0C\u624D\u7528\u4EFB\u52A1 ID \u515C\u5E95\u67E5\u627E\u3002\",\n },\n },\n },\n },\n {\n name: TOOL_NAMES.lookupUser,\n displayName: \"\u67E5\u627E\u98DE\u4E66\u7528\u6237\",\n description: \"\u6309\u59D3\u540D\u3001\u5DE5\u53F7\u6216\u5173\u952E\u8BCD\u67E5\u627E\u98DE\u4E66\u8054\u7CFB\u4EBA\uFF0C\u4F9B\u667A\u80FD\u4F53\u5728\u9700\u8981\u786E\u8BA4\u6536\u4EF6\u4EBA\u6216\u63D0\u51FA\u4EBA\u8EAB\u4EFD\u65F6\u4F7F\u7528\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n title: \"\u59D3\u540D\u3001\u5DE5\u53F7\u6216\u5173\u952E\u8BCD\",\n },\n connectionId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8FDE\u63A5\u4EE3\u53F7\uFF08\u53EF\u9009\uFF09\",\n description: \"\u7559\u7A7A\u65F6\u4F7F\u7528\u7B2C\u4E00\u4E2A\u542F\u7528\u7684\u673A\u5668\u4EBA\u3002\",\n },\n profileName: {\n type: \"string\",\n title: \"lark-cli profile\uFF08\u53EF\u9009\uFF09\",\n description: \"\u5DE5\u7A0B\u5E08\u8C03\u8BD5\u65F6\u624D\u9700\u8981\u3002\u666E\u901A\u667A\u80FD\u4F53\u4E0D\u8981\u586B\u5199\u3002\",\n },\n },\n required: [\"query\"],\n },\n },\n {\n name: TOOL_NAMES.fetchDoc,\n displayName: \"\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\",\n description: \"\u8BFB\u53D6\u98DE\u4E66\u4E91\u6587\u6863\u5185\u5BB9\uFF0C\u4F9B\u667A\u80FD\u4F53\u603B\u7ED3\u6216\u5206\u6790\u3002\u9ED8\u8BA4\u4F7F\u7528\u7528\u6237\u6388\u6743\u8EAB\u4EFD\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n doc: {\n type: \"string\",\n title: \"\u98DE\u4E66\u6587\u6863 URL \u6216 token\",\n },\n connectionId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8FDE\u63A5\u4EE3\u53F7\uFF08\u53EF\u9009\uFF09\",\n description: \"\u7528\u4E8E\u9009\u62E9\u7ED1\u5B9A\u5728\u540C\u4E00\u98DE\u4E66\u5E94\u7528\u4E0B\u7684 profile\u3002\",\n },\n profileName: {\n type: \"string\",\n title: \"lark-cli profile\uFF08\u53EF\u9009\uFF09\",\n description: \"\u5DE5\u7A0B\u5E08\u8C03\u8BD5\u65F6\u624D\u9700\u8981\u3002\u666E\u901A\u667A\u80FD\u4F53\u4E0D\u8981\u586B\u5199\u3002\",\n },\n identity: {\n type: \"string\",\n title: \"\u8BBF\u95EE\u8EAB\u4EFD\",\n enum: [\"user\", \"bot\"],\n enumNames: [\"\u7528\u6237\u6388\u6743\", \"\u673A\u5668\u4EBA\u8EAB\u4EFD\"],\n default: \"user\",\n },\n },\n required: [\"doc\"],\n },\n },\n {\n name: TOOL_NAMES.runLarkCliCapability,\n displayName: \"\u53D7\u63A7\u8FD0\u884C lark-cli \u80FD\u529B\",\n description: \"\u9AD8\u7EA7\u515C\u5E95\u5DE5\u5177\u3002\u53EA\u80FD\u8FD0\u884C\u80FD\u529B\u4E2D\u5FC3\u5DF2\u5F00\u542F\u4E14\u547D\u4EE4\u524D\u7F00\u5728\u5141\u8BB8\u5217\u8868\u91CC\u7684 lark-cli \u80FD\u529B\u3002\",\n parametersSchema: {\n type: \"object\",\n properties: {\n capabilityKey: {\n type: \"string\",\n title: \"\u80FD\u529B key\",\n description: \"\u6765\u81EA\u80FD\u529B\u4E2D\u5FC3\uFF0C\u4F8B\u5982 fetch_doc\u3001lookup_user\u3002\",\n },\n command: {\n type: \"array\",\n title: \"lark-cli \u547D\u4EE4\u53C2\u6570\u6570\u7EC4\",\n items: { type: \"string\" },\n description: \"\u4E0D\u8981\u5305\u542B lark-cli \u4E8C\u8FDB\u5236\u540D\u3002\u63D2\u4EF6\u4F1A\u6309\u8FDE\u63A5\u6CE8\u5165 profile\u3002\",\n },\n connectionId: {\n type: \"string\",\n title: \"\u98DE\u4E66\u673A\u5668\u4EBA\u8FDE\u63A5\u4EE3\u53F7\uFF08\u53EF\u9009\uFF09\",\n },\n profileName: {\n type: \"string\",\n title: \"lark-cli profile\uFF08\u53EF\u9009\uFF09\",\n description: \"\u5DE5\u7A0B\u5E08\u8C03\u8BD5\u65F6\u624D\u9700\u8981\u3002\u666E\u901A\u667A\u80FD\u4F53\u4E0D\u8981\u586B\u5199\u3002\",\n },\n timeoutMs: {\n type: \"number\",\n title: \"\u8D85\u65F6\u65F6\u95F4\u6BEB\u79D2\uFF08\u53EF\u9009\uFF09\",\n },\n },\n required: [\"capabilityKey\", \"command\"],\n },\n },\n ],\n ui: {\n slots: [\n {\n type: \"settingsPage\",\n id: \"feishu-connector-settings\",\n displayName: \"\u98DE\u4E66\u8FDE\u63A5\u5668\u914D\u7F6E\",\n exportName: UI_EXPORTS.settingsPage,\n },\n {\n type: \"dashboardWidget\",\n id: \"feishu-connector-status\",\n displayName: \"\u98DE\u4E66\u8FDE\u63A5\u5668\",\n exportName: UI_EXPORTS.dashboardWidget,\n },\n {\n type: \"sidebar\",\n id: \"feishu-connector-sidebar-link\",\n displayName: \"\u98DE\u4E66\u8FDE\u63A5\u5668\",\n exportName: UI_EXPORTS.sidebarLink,\n },\n {\n type: \"sidebarPanel\",\n id: \"feishu-connector-sidebar-panel\",\n displayName: \"\u98DE\u4E66\u8FDE\u63A5\u5668\u72B6\u6001\",\n exportName: UI_EXPORTS.sidebarPanel,\n },\n {\n type: \"detailTab\",\n id: \"feishu-issue-source\",\n displayName: \"\u98DE\u4E66\",\n exportName: UI_EXPORTS.issueTab,\n entityTypes: [\"issue\"],\n },\n {\n type: \"commentContextMenuItem\",\n id: \"feishu-comment-reply-action\",\n displayName: \"\u56DE\u590D\u5230\u98DE\u4E66\",\n exportName: UI_EXPORTS.commentReplyAction,\n entityTypes: [\"comment\"],\n },\n ],\n },\n};\n\nexport default manifest;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }