UNPKG

@larksuiteoapi/lark-mcp

Version:
456 lines (455 loc) 24.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.okrV1Tools = exports.okrV1UserOkrList = exports.okrV1ReviewQuery = exports.okrV1ProgressRecordUpdate = exports.okrV1ProgressRecordGet = exports.okrV1ProgressRecordDelete = exports.okrV1ProgressRecordCreate = exports.okrV1PeriodPatch = exports.okrV1PeriodList = exports.okrV1PeriodCreate = exports.okrV1PeriodRuleList = exports.okrV1OkrBatchGet = void 0; const zod_1 = require("zod"); exports.okrV1OkrBatchGet = { project: 'okr', name: 'okr.v1.okr.batchGet', sdkName: 'okr.v1.okr.batchGet', path: '/open-apis/okr/v1/okrs/batch_get', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-OKR 内容-批量获取 OKR-根据 OKR id 批量获取 OKR', accessTokens: ['tenant', 'user'], schema: { params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id', 'people_admin_id']).describe('用户ID类型').optional(), okr_ids: zod_1.z.array(zod_1.z.string()).describe('OKR ID 列表,最多10个'), lang: zod_1.z.string().describe('请求OKR的语言版本(比如@的人名),lang=en_us/zh_cn,请求 Query中').optional(), }), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1PeriodRuleList = { project: 'okr', name: 'okr.v1.periodRule.list', sdkName: 'okr.v1.periodRule.list', path: '/open-apis/okr/v1/period_rules', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-周期规则-获取 OKR 周期规则-获取租户的周期规则列表', accessTokens: ['tenant'], schema: {}, }; exports.okrV1PeriodCreate = { project: 'okr', name: 'okr.v1.period.create', sdkName: 'okr.v1.period.create', path: '/open-apis/okr/v1/periods', httpMethod: 'POST', description: '[Feishu/Lark]-OKR-OKR 周期-创建 OKR 周期-根据周期规则创建一个 OKR 周期', accessTokens: ['tenant'], schema: { data: zod_1.z.object({ period_rule_id: zod_1.z.string().describe('周期规则 id'), start_month: zod_1.z.string().describe('周期起始年月'), }), }, }; exports.okrV1PeriodList = { project: 'okr', name: 'okr.v1.period.list', sdkName: 'okr.v1.period.list', path: '/open-apis/okr/v1/periods', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-OKR 周期-获取 OKR 周期列表-获取 OKR 周期列表', accessTokens: ['tenant'], schema: { params: zod_1.z .object({ page_token: zod_1.z .string() .describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果') .optional(), page_size: zod_1.z.number().describe('分页大小,默认10').optional(), }) .optional(), }, }; exports.okrV1PeriodPatch = { project: 'okr', name: 'okr.v1.period.patch', sdkName: 'okr.v1.period.patch', path: '/open-apis/okr/v1/periods/:period_id', httpMethod: 'PATCH', description: '[Feishu/Lark]-OKR-OKR 周期-修改 OKR 周期状态-修改某个 OKR 周期的状态为「正常」、「失效」或「隐藏」,对租户所有人生效,请谨慎操作', accessTokens: ['tenant'], schema: { data: zod_1.z.object({ status: zod_1.z .number() .describe('周期显示状态 Options:1(normal_status 正常状态),2(mark_invalid 标记失效),3(hidden_period 隐藏周期)'), }), path: zod_1.z.object({ period_id: zod_1.z.string().describe('周期id') }), }, }; exports.okrV1ProgressRecordCreate = { project: 'okr', name: 'okr.v1.progressRecord.create', sdkName: 'okr.v1.progressRecord.create', path: '/open-apis/okr/v1/progress_records', httpMethod: 'POST', description: '[Feishu/Lark]-OKR-OKR 进展记录-创建 OKR 进展记录-创建 OKR 进展记录', accessTokens: ['tenant', 'user'], schema: { data: zod_1.z.object({ source_title: zod_1.z.string().describe('进展来源'), source_url: zod_1.z.string().describe('进展来源链接'), target_id: zod_1.z.string().describe('目标 id,与 target_type 对应,可通过 OKR 内容相关接口获取'), target_type: zod_1.z.number().describe('目标类型 Options:2(objective okr的O),3(key_result okr的KR)'), content: zod_1.z .object({ blocks: zod_1.z .array(zod_1.z.object({ type: zod_1.z .enum(['paragraph', 'gallery']) .describe('文档元素类型 Options:paragraph(文本段落),gallery(图片)') .optional(), paragraph: zod_1.z .object({ style: zod_1.z .object({ list: zod_1.z .object({ type: zod_1.z .enum(['number', 'bullet', 'checkBox', 'checkedBox', 'indent']) .describe('列表类型 Options:number(有序列表),bullet(无序列表),checkBox(任务列表),checkedBox(已完成的任务列表),indent(tab缩进)') .optional(), indentLevel: zod_1.z .number() .describe('列表的缩进级别,支持指定一行的缩进 除代码块以外的列表都支持设置缩进,支持 1-16 级缩进,取值范围:[1,16]') .optional(), number: zod_1.z .number() .describe('用于指定列表的行号,仅对有序列表和代码块生效 如果为有序列表设置了缩进,行号可能会显示为字母或者罗马数字') .optional(), }) .describe('有序列表/无序列表/任务列表') .optional(), }) .describe('段落样式') .optional(), elements: zod_1.z .array(zod_1.z.object({ type: zod_1.z .enum(['textRun', 'docsLink', 'person']) .describe('元素类型 Options:textRun(文本型元素),docsLink(文档链接型元素),person(艾特用户型元素)') .optional(), textRun: zod_1.z .object({ text: zod_1.z.string().describe('具体的文本内容').optional(), style: zod_1.z .object({ bold: zod_1.z.boolean().describe('是否加粗').optional(), strikeThrough: zod_1.z.boolean().describe('是否删除').optional(), backColor: zod_1.z .object({ red: zod_1.z.number().describe('红 取值范围[0,255]').optional(), green: zod_1.z.number().describe('绿 取值范围[0,255]').optional(), blue: zod_1.z.number().describe('蓝 取值范围[0,255]').optional(), alpha: zod_1.z.number().describe('透明度 取值范围[0,1]').optional(), }) .describe('背景颜色') .optional(), textColor: zod_1.z .object({ red: zod_1.z.number().describe('红 取值范围[0,255]').optional(), green: zod_1.z.number().describe('绿 取值范围[0,255]').optional(), blue: zod_1.z.number().describe('蓝 取值范围[0,255]').optional(), alpha: zod_1.z.number().describe('透明度 取值范围[0,1]').optional(), }) .describe('字体颜色') .optional(), link: zod_1.z .object({ url: zod_1.z.string().describe('链接地址').optional() }) .describe('链接地址') .optional(), }) .describe('文本内容的样式,支持 BIUS、颜色等') .optional(), }) .describe('文本') .optional(), docsLink: zod_1.z .object({ url: zod_1.z.string().describe('飞书云文档链接地址').optional(), title: zod_1.z.string().describe('飞书云文档标题').optional(), }) .describe('飞书云文档') .optional(), person: zod_1.z .object({ openId: zod_1.z.string().describe('员工的OpenID').optional() }) .describe('艾特用户') .optional(), })) .describe('段落元素组成一个段落') .optional(), }) .describe('文本段落') .optional(), gallery: zod_1.z .object({ imageList: zod_1.z .array(zod_1.z.object({ fileToken: zod_1.z.string().describe('图片 token,通过上传图片接口获取').optional(), src: zod_1.z.string().describe('图片链接').optional(), width: zod_1.z.number().describe('图片宽,单位px').optional(), height: zod_1.z.number().describe('图片高,单位px').optional(), })) .describe('图片元素') .optional(), }) .describe('图片') .optional(), })) .describe('文档结构是按行排列的,每行内容是一个 Block') .optional(), }) .describe('进展详情 富文本格式'), source_url_pc: zod_1.z.string().describe('pc进展来源链接').optional(), source_url_mobile: zod_1.z.string().describe('mobile进展来源链接').optional(), progress_rate: zod_1.z .object({ percent: zod_1.z.number().describe('进展百分比,保留两位小数').optional(), status: zod_1.z .number() .describe('进展状态 Options:-1(not_yet 暂无),0(normal 正常),1(risk 风险),2(postpone 延期)') .optional(), }) .describe('进展,包括百分比和状态') .optional(), }), params: zod_1.z .object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }) .optional(), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1ProgressRecordDelete = { project: 'okr', name: 'okr.v1.progressRecord.delete', sdkName: 'okr.v1.progressRecord.delete', path: '/open-apis/okr/v1/progress_records/:progress_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-OKR-OKR 进展记录-删除 OKR 进展记录-根据 ID 删除 OKR 进展记录', accessTokens: ['tenant', 'user'], schema: { path: zod_1.z.object({ progress_id: zod_1.z .string() .describe('待删除的 OKR进展记录 ID,“创建 OKR 进展记录”接口返回值中会提供,也可以通过 OKR 内容相关接口获取'), }), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1ProgressRecordGet = { project: 'okr', name: 'okr.v1.progressRecord.get', sdkName: 'okr.v1.progressRecord.get', path: '/open-apis/okr/v1/progress_records/:progress_id', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-OKR 进展记录-获取 OKR 进展记录-根据 ID 获取 OKR 进展记录详情,接口返回进展记录的内容、更新时间以及进展百分比和状态', accessTokens: ['tenant', 'user'], schema: { params: zod_1.z .object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }) .optional(), path: zod_1.z .object({ progress_id: zod_1.z .string() .describe('待查询的 OKR进展记录 ,可以通过调用“批量获取 OKR”或“获取用户的 OKR 列表”接口获取') .optional(), }) .optional(), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1ProgressRecordUpdate = { project: 'okr', name: 'okr.v1.progressRecord.update', sdkName: 'okr.v1.progressRecord.update', path: '/open-apis/okr/v1/progress_records/:progress_id', httpMethod: 'PUT', description: '[Feishu/Lark]-OKR-OKR 进展记录-更新 OKR 进展记录-根据 OKR 进展记录 ID 更新进展详情', accessTokens: ['tenant', 'user'], schema: { data: zod_1.z.object({ content: zod_1.z .object({ blocks: zod_1.z .array(zod_1.z.object({ type: zod_1.z .enum(['paragraph', 'gallery']) .describe('文档元素类型 Options:paragraph(文本段落),gallery(图片)') .optional(), paragraph: zod_1.z .object({ style: zod_1.z .object({ list: zod_1.z .object({ type: zod_1.z .enum(['number', 'bullet', 'checkBox', 'checkedBox', 'indent']) .describe('列表类型 Options:number(有序列表),bullet(无序列表),checkBox(任务列表),checkedBox(已完成的任务列表),indent(tab缩进)') .optional(), indentLevel: zod_1.z .number() .describe('列表的缩进级别,支持指定一行的缩进 除代码块以外的列表都支持设置缩进,支持 1-16 级缩进,取值范围:[1,16]') .optional(), number: zod_1.z .number() .describe('用于指定列表的行号,仅对有序列表和代码块生效 如果为有序列表设置了缩进,行号可能会显示为字母或者罗马数字') .optional(), }) .describe('有序列表/无序列表/任务列表') .optional(), }) .describe('段落样式') .optional(), elements: zod_1.z .array(zod_1.z.object({ type: zod_1.z .enum(['textRun', 'docsLink', 'person']) .describe('元素类型 Options:textRun(文本型元素),docsLink(文档链接型元素),person(艾特用户型元素)') .optional(), textRun: zod_1.z .object({ text: zod_1.z.string().describe('具体的文本内容').optional(), style: zod_1.z .object({ bold: zod_1.z.boolean().describe('是否加粗').optional(), strikeThrough: zod_1.z.boolean().describe('是否删除').optional(), backColor: zod_1.z .object({ red: zod_1.z.number().describe('红 取值范围[0,255]').optional(), green: zod_1.z.number().describe('绿 取值范围[0,255]').optional(), blue: zod_1.z.number().describe('蓝 取值范围[0,255]').optional(), alpha: zod_1.z.number().describe('透明度 取值范围[0,1]').optional(), }) .describe('背景颜色') .optional(), textColor: zod_1.z .object({ red: zod_1.z.number().describe('红 取值范围[0,255]').optional(), green: zod_1.z.number().describe('绿 取值范围[0,255]').optional(), blue: zod_1.z.number().describe('蓝 取值范围[0,255]').optional(), alpha: zod_1.z.number().describe('透明度 取值范围[0,1]').optional(), }) .describe('字体颜色') .optional(), link: zod_1.z .object({ url: zod_1.z.string().describe('链接地址').optional() }) .describe('链接地址') .optional(), }) .describe('文本内容的样式,支持 BIUS、颜色等') .optional(), }) .describe('文本') .optional(), docsLink: zod_1.z .object({ url: zod_1.z.string().describe('飞书云文档链接地址').optional(), title: zod_1.z.string().describe('飞书云文档标题').optional(), }) .describe('飞书云文档') .optional(), person: zod_1.z .object({ openId: zod_1.z.string().describe('员工的OpenID').optional() }) .describe('艾特用户') .optional(), })) .describe('段落元素组成一个段落') .optional(), }) .describe('文本段落') .optional(), gallery: zod_1.z .object({ imageList: zod_1.z .array(zod_1.z.object({ fileToken: zod_1.z.string().describe('图片 token,通过上传图片接口获取').optional(), src: zod_1.z.string().describe('图片链接').optional(), width: zod_1.z.number().describe('图片宽,单位px').optional(), height: zod_1.z.number().describe('图片高,单位px').optional(), })) .describe('图片元素') .optional(), }) .describe('图片') .optional(), })) .describe('文档结构是按行排列的,每行内容是一个 Block') .optional(), }) .describe('进展详情 富文本格式'), progress_rate: zod_1.z .object({ percent: zod_1.z.number().describe('进展百分比,保留两位小数').optional(), status: zod_1.z .number() .describe('进展状态 Options:-1(not_yet 暂无),0(normal 正常),1(risk 风险),2(postpone 延期)') .optional(), }) .describe('进展,包括百分比和状态') .optional(), }), params: zod_1.z .object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }) .optional(), path: zod_1.z.object({ progress_id: zod_1.z .string() .describe('待更新的 OKR进展记录 ID,“创建 OKR 进展记录”接口返回值中会提供,也可以通过 OKR 内容相关接口获取'), }), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1ReviewQuery = { project: 'okr', name: 'okr.v1.review.query', sdkName: 'okr.v1.review.query', path: '/open-apis/okr/v1/reviews/query', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-OKR 复盘-查询复盘信息-根据周期和用户查询复盘信息', accessTokens: ['tenant'], schema: { params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id', 'people_admin_id']).describe('用户ID类型').optional(), user_ids: zod_1.z.array(zod_1.z.string()).describe('目标用户id列表,最多5个'), period_ids: zod_1.z.array(zod_1.z.string()).describe('period_id列表,最多5个'), }), }, }; exports.okrV1UserOkrList = { project: 'okr', name: 'okr.v1.userOkr.list', sdkName: 'okr.v1.userOkr.list', path: '/open-apis/okr/v1/users/:user_id/okrs', httpMethod: 'GET', description: '[Feishu/Lark]-OKR-OKR 内容-获取用户的 OKR 列表-根据用户的 id 获取 OKR 列表', accessTokens: ['tenant', 'user'], schema: { params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id', 'people_admin_id']).describe('用户ID类型').optional(), offset: zod_1.z.string().describe('请求列表的偏移(对应响应体的 okr_list 字段),offset>=0'), limit: zod_1.z.string().describe('列表长度,0-10'), lang: zod_1.z.string().describe('请求OKR的语言版本(比如@的人名),lang=en_us/zh_cn').optional(), period_ids: zod_1.z.array(zod_1.z.string()).describe('period_id列表,最多10个').optional(), }), path: zod_1.z.object({ user_id: zod_1.z.string().describe('目标用户id').optional() }).optional(), useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; exports.okrV1Tools = [ exports.okrV1OkrBatchGet, exports.okrV1PeriodRuleList, exports.okrV1PeriodCreate, exports.okrV1PeriodList, exports.okrV1PeriodPatch, exports.okrV1ProgressRecordCreate, exports.okrV1ProgressRecordDelete, exports.okrV1ProgressRecordGet, exports.okrV1ProgressRecordUpdate, exports.okrV1ReviewQuery, exports.okrV1UserOkrList, ];