@meet-im/lxcli 0.1.1 → 0.1.3

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.
@@ -13,8 +13,7 @@ const PACKAGE_JSON_PATH = path.resolve('package.json');
13
13
  const CATEGORY_CONFIG = {
14
14
  'lxcli-builtin': { title: 'Builtin', description: 'lxcli 内置命令。' },
15
15
  'lxcli-kb-': { title: 'Kb', description: 'Kanboard 服务命令。' },
16
- 'lxcli-meet-': { title: 'Meet', description: 'Meet 服务命令。' },
17
- 'lxcli-meetbot-': { title: 'Meetbot', description: 'MeetBot 服务命令。' },
16
+ 'lxcli-meet-': { title: 'Meet', description: 'MeetIM 服务命令。' },
18
17
  };
19
18
  function getCategory(skillName) {
20
19
  // 精确匹配 lxcli-builtin
@@ -76,7 +75,7 @@ async function scanSkills(skillsDir) {
76
75
  throw new Error(`Failed to read skills directory: ${skillsDir}`);
77
76
  }
78
77
  // 按分类排序,同类按名称排序
79
- const categoryOrder = ['builtin', 'kb', 'meet', 'meetbot', 'other'];
78
+ const categoryOrder = ['builtin', 'kb', 'meet', 'other'];
80
79
  entries.sort((a, b) => {
81
80
  const catA = categoryOrder.indexOf(a.category);
82
81
  const catB = categoryOrder.indexOf(b.category);
@@ -106,7 +105,6 @@ function renderIndex(entries) {
106
105
  builtin: CATEGORY_CONFIG['lxcli-builtin'],
107
106
  kb: CATEGORY_CONFIG['lxcli-kb-'],
108
107
  meet: CATEGORY_CONFIG['lxcli-meet-'],
109
- meetbot: CATEGORY_CONFIG['lxcli-meetbot-'],
110
108
  other: { title: 'Other', description: '其他命令。' },
111
109
  };
112
110
  for (const [cat, items] of Object.entries(grouped)) {
@@ -151,6 +149,28 @@ function renderParamsTable(params) {
151
149
  lines.push('');
152
150
  return lines.join('\n');
153
151
  }
152
+ function renderExtraSections(metadata) {
153
+ const sections = metadata?.sections || [];
154
+ if (sections.length === 0)
155
+ return '';
156
+ const lines = [];
157
+ for (const section of sections) {
158
+ lines.push(`## ${section.title}`, '');
159
+ if (section.kind === 'bullets') {
160
+ for (const item of section.items) {
161
+ lines.push(`- ${item}`);
162
+ }
163
+ lines.push('');
164
+ continue;
165
+ }
166
+ lines.push(`| ${section.headers.join(' | ')} |`, `| ${section.headers.map(() => '---').join(' | ')} |`);
167
+ for (const row of section.rows) {
168
+ lines.push(`| ${row.join(' | ')} |`);
169
+ }
170
+ lines.push('');
171
+ }
172
+ return lines.join('\n');
173
+ }
154
174
  async function readPackageVersion() {
155
175
  const packageJson = JSON.parse(await fs.readFile(PACKAGE_JSON_PATH, 'utf-8'));
156
176
  return packageJson.version || '1.0.0';
@@ -194,7 +214,7 @@ function renderSkillMd(method, version) {
194
214
  }
195
215
  return `--${param.name} <${param.type === 'integer' ? 'ID' : 'VALUE'}>`;
196
216
  });
197
- const shortcutUsage = shortcuts.length > 0 ? `lxcli kb ${method} ${shortcuts.join(' ')}` : '';
217
+ const shortcutUsage = metadata?.shortcutUsageExample || (shortcuts.length > 0 ? `lxcli kb ${method} ${shortcuts.join(' ')}` : '');
198
218
  const paramsUsage = hasParams ? `lxcli kb ${method} --params '${JSON.stringify(metadata?.paramsExample || buildParamsExample(params))}'` : '';
199
219
  // Usage 部分
200
220
  const usageLines = ['## Usage', '', '```bash'];
@@ -242,6 +262,10 @@ metadata:
242
262
  lines.push(renderParamsTable(params));
243
263
  }
244
264
  lines.push('## Examples', '', '```bash', shortcutUsage || paramsUsage || `lxcli kb ${method}`, '```', '');
265
+ const extraSections = renderExtraSections(metadata);
266
+ if (extraSections) {
267
+ lines.push(extraSections);
268
+ }
245
269
  if (metadata?.notes?.length) {
246
270
  lines.push('## Notes', '', ...metadata.notes.map((note) => `- ${note}`), '');
247
271
  }
@@ -9,7 +9,6 @@ import { registerUpgradeCommand } from './upgrade.js';
9
9
  import { registerGenerateSkillsCommand } from './generate-skills.js';
10
10
  import { registerSchemaCommand } from './schema.js';
11
11
  import kbService from './services/kb/index.js';
12
- import meetbotService from './services/meetbot/index.js';
13
12
  import meetService from './services/meet/index.js';
14
13
  export const builtInCommands = [
15
14
  { name: 'auth', register: registerAuthCommand },
@@ -23,7 +22,6 @@ export const builtInCommands = [
23
22
  ];
24
23
  export const externalServices = [
25
24
  kbService,
26
- meetbotService,
27
25
  meetService,
28
26
  ];
29
27
  export function registerAllCommands(program) {
@@ -4,6 +4,7 @@ import { kbConfig } from './config.js';
4
4
  import { METHODS, METHOD_DESCRIPTIONS } from './descriptions.js';
5
5
  import { createKbAction } from './handler.js';
6
6
  import { PARAM_DEFS } from './params.js';
7
+ import { METHOD_SKILL_METADATA } from './skill-metadata.js';
7
8
  function getShortcutParamDescription(method, paramName) {
8
9
  const param = PARAM_DEFS[method]?.find((item) => item.name === paramName);
9
10
  if (!param) {
@@ -25,10 +26,32 @@ function renderParamsHelp(method) {
25
26
  }
26
27
  return lines.join('\n');
27
28
  }
29
+ function renderMethodExtraHelp(method) {
30
+ const sections = METHOD_SKILL_METADATA[method]?.sections || [];
31
+ if (sections.length === 0) {
32
+ return '';
33
+ }
34
+ const lines = [];
35
+ for (const section of sections) {
36
+ lines.push(`${section.title}:`);
37
+ if (section.kind === 'bullets') {
38
+ for (const item of section.items) {
39
+ lines.push(` - ${item.replace(/`/g, '')}`);
40
+ }
41
+ continue;
42
+ }
43
+ for (const row of section.rows) {
44
+ const [label, description] = row;
45
+ lines.push(` - ${label.replace(/`/g, '')}: ${description}`);
46
+ }
47
+ }
48
+ return lines.join('\n');
49
+ }
28
50
  function addParamsOption(command, method) {
29
51
  const paramsHelp = renderParamsHelp(method);
52
+ const extraHelp = renderMethodExtraHelp(method);
30
53
  const description = paramsHelp
31
- ? `JSON/JSON5 params; CLI fills jsonrpc/method/id\n${paramsHelp}`
54
+ ? `JSON/JSON5 params; CLI fills jsonrpc/method/id\n${paramsHelp}${extraHelp ? `\n${extraHelp}` : ''}`
32
55
  : 'JSON/JSON5 params; CLI fills jsonrpc/method/id';
33
56
  return command.option('--params <json>', description);
34
57
  }
@@ -21,7 +21,7 @@ export const PARAM_DEFS = {
21
21
  ],
22
22
  searchTasks: [
23
23
  { name: 'project_id', type: 'integer', required: true, description: '项目 ID。接口按项目检查查看权限。' },
24
- { name: 'query', type: 'string', required: true, description: 'Kanboard 搜索表达式,例如 iteration:456 status:1' },
24
+ { name: 'query', type: 'string', required: true, description: 'Kanboard 搜索表达式;多个条件以空格分隔,不同字段为 AND,同一字段重复为 OR。' },
25
25
  ],
26
26
  searchSubtasks: [
27
27
  { name: 'project_id', type: 'integer', required: false, description: '项目 ID。传入后仅返回该项目下的子任务,并按项目检查查看权限;不传时仅在当前用户有权限查看的启用项目中查找。' },
@@ -4,6 +4,18 @@ export interface MethodSkillMetadata {
4
4
  notes?: string[];
5
5
  skillParams?: ParamDef[];
6
6
  paramsExample?: Record<string, unknown>;
7
+ shortcutUsageExample?: string;
8
+ sections?: MethodSkillSection[];
7
9
  }
10
+ export type MethodSkillSection = {
11
+ title: string;
12
+ kind: 'bullets';
13
+ items: string[];
14
+ } | {
15
+ title: string;
16
+ kind: 'table';
17
+ headers: string[];
18
+ rows: string[][];
19
+ };
8
20
  export declare const METHOD_SHORTCUT_PARAMS: Partial<Record<Method, string[]>>;
9
21
  export declare const METHOD_SKILL_METADATA: Partial<Record<Method, MethodSkillMetadata>>;
@@ -26,6 +26,48 @@ export const METHOD_SKILL_METADATA = {
26
26
  '仅在确实需要时才传 `with_comments`、`with_files`、`with_links`、`with_subtasks`,避免把额外第三方内容带入代理上下文。',
27
27
  ],
28
28
  },
29
+ searchTasks: {
30
+ paramsExample: {
31
+ project_id: 4,
32
+ query: 'iteration:3 status:0 completedRange:"2026-07-01 00:00:00..2026-07-07 23:59:59"',
33
+ },
34
+ shortcutUsageExample: "lxcli kb searchTasks --project_id 4 --query 'iteration:3 status:0'",
35
+ sections: [
36
+ {
37
+ title: 'Query Syntax',
38
+ kind: 'bullets',
39
+ items: [
40
+ '`字段:值` 是基础条件,多个条件用空格分隔。',
41
+ '不同字段之间是 AND。',
42
+ '同一字段传多个值时为 OR,例如 `assignee:alice assignee:bob`。',
43
+ '值中包含空格、冒号或时间范围时,用双引号包裹。',
44
+ '日期字段支持比较符,例如 `completed:>=2026-07-01`。',
45
+ '范围字段支持 `start..end`,可省略一端。',
46
+ ],
47
+ },
48
+ {
49
+ title: 'Common Query Conditions',
50
+ kind: 'table',
51
+ headers: ['表达式', '说明'],
52
+ rows: [
53
+ ['`iteration:456` / `iteration:V1.0.0`', '按迭代 ID 或名称查询'],
54
+ ['`status:1` / `status:0`', '按打开 / 关闭状态查询'],
55
+ ['`completedRange:"2026-07-01 00:00:00..2026-07-07 23:59:59"`', '按完成时间范围查询'],
56
+ ['`completed:>=2026-07-01`', '按完成时间做比较查询'],
57
+ ['`assignee:alice` / `assignee:me`', '按处理人查询'],
58
+ ['`category:Feature` / `column:Ready`', '按分类或状态列查询'],
59
+ ['`title:"登录异常"` / `description:"回调失败"`', '按标题或描述查询'],
60
+ ],
61
+ },
62
+ {
63
+ title: 'Warnings',
64
+ kind: 'bullets',
65
+ items: [
66
+ '`completedRange` 结束值只写日期时按当天 `00:00:00` 解析;需要覆盖整天时请写到 `23:59:59`。',
67
+ ],
68
+ },
69
+ ],
70
+ },
29
71
  createProjectFile: {
30
72
  skillParams: [
31
73
  { name: 'project_id', type: 'integer', required: true, description: '项目 ID' },
@@ -1,13 +1,2 @@
1
- import type { SyncMsgParams, SyncMsgResult, GetConvInfo2Params, GetConvInfo2Result, GetMyInfoResult } from './types.js';
2
- /**
3
- * 同步消息
4
- */
5
- export declare function syncMsg(gateway: string, params: SyncMsgParams, token: string): Promise<SyncMsgResult>;
6
- /**
7
- * 获取会话信息(含成员列表)
8
- */
9
- export declare function getConvInfo2(gateway: string, params: GetConvInfo2Params, token: string): Promise<GetConvInfo2Result>;
10
- /**
11
- * 获取当前用户信息
12
- */
13
- export declare function getMyInfo(gateway: string, token: string): Promise<GetMyInfoResult>;
1
+ import type { GetMySimpleInfoResult } from './types.js';
2
+ export declare function getMySimpleInfo(gateway: string, pat: string): Promise<GetMySimpleInfoResult>;
@@ -1,38 +1,12 @@
1
- // src/commands/services/meet/api.ts
2
1
  import { request } from '../../../core/http.js';
3
- /**
4
- * 同步消息
5
- */
6
- export async function syncMsg(gateway, params, token) {
2
+ export async function getMySimpleInfo(gateway, pat) {
7
3
  return request({
8
4
  gateway,
9
- path: '/im/SyncMsg',
10
- method: 'POST',
11
- body: params,
12
- headers: { Token: token },
13
- });
14
- }
15
- /**
16
- * 获取会话信息(含成员列表)
17
- */
18
- export async function getConvInfo2(gateway, params, token) {
19
- return request({
20
- gateway,
21
- path: '/general/GetConvInfo2',
22
- method: 'POST',
23
- body: params,
24
- headers: { Token: token },
25
- });
26
- }
27
- /**
28
- * 获取当前用户信息
29
- */
30
- export async function getMyInfo(gateway, token) {
31
- return request({
32
- gateway,
33
- path: '/general/GetMyInfo',
5
+ path: '/general/GetMySimpleInfo',
34
6
  method: 'POST',
35
7
  body: {},
36
- headers: { Token: token },
8
+ headers: {
9
+ Authorization: `meet ${pat}`,
10
+ },
37
11
  });
38
12
  }
@@ -1,4 +1,2 @@
1
- import type { Env } from '../../../types/index.js';
2
1
  import type { ServiceGatewayConfig } from '../../../core/tenants.js';
3
2
  export declare const meetConfig: ServiceGatewayConfig;
4
- export declare function getMeetGateway(tenant: string, env: Env): string | undefined;
@@ -1,16 +1,29 @@
1
- // src/commands/services/meet/config.ts
1
+ const meetGateways = {
2
+ test: 'https://staging-meet-api.miyachat.com',
3
+ pre: 'https://pre-meet-api.miyachat.com',
4
+ staging: 'https://staging-meet-api.miyachat.com',
5
+ beta: 'https://staging-meet-api.miyachat.com',
6
+ prod: 'https://meet-api.miyachat.com',
7
+ };
8
+ const coGateways = {
9
+ test: 'https://ng.meet-api.mecord668.com',
10
+ pre: 'https://ng.meet-api.mecord668.com',
11
+ staging: 'https://ng.meet-api.mecord668.com',
12
+ beta: 'https://ng.meet-api.mecord668.com',
13
+ prod: 'https://ng.meet-api.mecord668.com',
14
+ };
15
+ const skyGateways = {
16
+ test: 'https://meet-api.yuanqiyun668.com',
17
+ pre: 'https://meet-api.yuanqiyun668.com',
18
+ staging: 'https://meet-api.yuanqiyun668.com',
19
+ beta: 'https://meet-api.yuanqiyun668.com',
20
+ prod: 'https://meet-api.yuanqiyun668.com',
21
+ };
2
22
  export const meetConfig = {
3
23
  name: 'meet',
4
24
  gateways: {
5
- meet: {
6
- test: 'https://staging-meet-api.miyachat.com',
7
- pre: 'https://pre-meet-api.miyachat.com',
8
- staging: 'https://staging-meet-api.miyachat.com',
9
- beta: 'https://staging-meet-api.miyachat.com',
10
- prod: 'https://meet-api.miyachat.com',
11
- },
25
+ meet: meetGateways,
26
+ co: coGateways,
27
+ sky: skyGateways,
12
28
  },
13
29
  };
14
- export function getMeetGateway(tenant, env) {
15
- return meetConfig.gateways[tenant]?.[env];
16
- }
@@ -1,3 +1,4 @@
1
- export declare const COMMANDS: readonly ["syncMsg", "getConvInfo2", "getMyInfo"];
2
- export type CommandName = typeof COMMANDS[number];
3
- export declare const COMMAND_DESCRIPTIONS: Record<CommandName, string>;
1
+ export declare const METHODS: readonly string[];
2
+ export type Method = typeof METHODS[number];
3
+ export declare const METHOD_DESCRIPTIONS: Record<Method, string>;
4
+ export { PARAM_DEFS, type ParamDef, type ParamType } from './params.js';
@@ -1,7 +1,6 @@
1
- // src/commands/services/meet/descriptions.ts
2
- export const COMMANDS = ['syncMsg', 'getConvInfo2', 'getMyInfo'];
3
- export const COMMAND_DESCRIPTIONS = {
4
- syncMsg: 'Sync messages from conversation',
5
- getConvInfo2: 'Get conversation info with members',
6
- getMyInfo: 'Get current user info',
1
+ import { PARAM_DEFS } from './params.js';
2
+ export const METHODS = Object.keys(PARAM_DEFS);
3
+ export const METHOD_DESCRIPTIONS = {
4
+ getMe: '获取当前开发者基础信息',
7
5
  };
6
+ export { PARAM_DEFS } from './params.js';
@@ -1,25 +1,5 @@
1
- import { getCurrentUser } from '../../../core/auth.js';
2
- /**
3
- * 获取 meet 认证信息
4
- */
5
- export declare function getMeetAuth(userName?: string): {
6
- user: NonNullable<ReturnType<typeof getCurrentUser>>;
7
- token: string;
8
- };
9
- export interface SyncMsgOptions {
1
+ export interface GetMeOptions {
10
2
  user?: string;
11
3
  gateway?: string;
12
- params?: string;
13
4
  }
14
- export declare function handleSyncMsg(options: SyncMsgOptions): Promise<void>;
15
- export interface GetConvInfo2Options {
16
- user?: string;
17
- gateway?: string;
18
- params?: string;
19
- }
20
- export declare function handleGetConvInfo2(options: GetConvInfo2Options): Promise<void>;
21
- export interface GetMyInfoOptions {
22
- user?: string;
23
- gateway?: string;
24
- }
25
- export declare function handleGetMyInfo(options: GetMyInfoOptions): Promise<void>;
5
+ export declare function handleGetMe(options: GetMeOptions): Promise<void>;
@@ -1,50 +1,14 @@
1
- // src/commands/services/meet/handler.ts
2
1
  import { getCurrentUser, getGatewayForUser } from '../../../core/auth.js';
3
2
  import { outputCliError } from '../../../core/error.js';
4
- import { outputJson, parseCliParams } from '../../../utils/index.js';
5
- import { syncMsg, getConvInfo2, getMyInfo } from './api.js';
6
- /**
7
- * 获取 meet 认证信息
8
- */
9
- export function getMeetAuth(userName) {
10
- const user = getCurrentUser(userName);
3
+ import { outputJson } from '../../../utils/index.js';
4
+ import { getMySimpleInfo } from './api.js';
5
+ export async function handleGetMe(options) {
6
+ const user = getCurrentUser(options.user);
11
7
  if (!user) {
12
8
  outputCliError('USER_NOT_FOUND', 'No user configured. Run "lxcli auth" first.');
9
+ return;
13
10
  }
14
- return {
15
- user: user,
16
- token: user.token,
17
- };
18
- }
19
- export async function handleSyncMsg(options) {
20
- if (!options.params) {
21
- outputCliError('PARAM_INVALID', 'Missing required option: --params.');
22
- }
23
- const { user, token } = getMeetAuth(options.user);
24
- const gateway = options.gateway || getGatewayForUser(user, 'meet');
25
- const params = parseCliParams(options.params);
26
- if (!params.sessionInfo) {
27
- outputCliError('PARAM_INVALID', 'Missing required field: sessionInfo.');
28
- }
29
- const result = await syncMsg(gateway, params, token);
30
- outputJson(result);
31
- }
32
- export async function handleGetConvInfo2(options) {
33
- if (!options.params) {
34
- outputCliError('PARAM_INVALID', 'Missing required option: --params.');
35
- }
36
- const { user, token } = getMeetAuth(options.user);
37
- const gateway = options.gateway || getGatewayForUser(user, 'meet');
38
- const params = parseCliParams(options.params);
39
- if (!params.sessionInfo) {
40
- outputCliError('PARAM_INVALID', 'Missing required field: sessionInfo.');
41
- }
42
- const result = await getConvInfo2(gateway, params, token);
43
- outputJson(result);
44
- }
45
- export async function handleGetMyInfo(options) {
46
- const { user, token } = getMeetAuth(options.user);
47
11
  const gateway = options.gateway || getGatewayForUser(user, 'meet');
48
- const result = await getMyInfo(gateway, token);
12
+ const result = await getMySimpleInfo(gateway, user.token);
49
13
  outputJson(result);
50
14
  }
@@ -1,43 +1,24 @@
1
- // src/commands/services/meet/index.ts
2
1
  import { registerService } from '../../../core/tenants.js';
3
2
  import { meetConfig } from './config.js';
4
- import { COMMAND_DESCRIPTIONS } from './descriptions.js';
5
- import { handleSyncMsg, handleGetConvInfo2, handleGetMyInfo } from './handler.js';
3
+ import { METHOD_DESCRIPTIONS } from './descriptions.js';
4
+ import { handleGetMe } from './handler.js';
6
5
  const meetService = {
7
6
  name: 'meet',
8
7
  description: 'MeetIM Core API',
9
- enabled: false,
8
+ enabled: true,
10
9
  register(cmd) {
11
10
  registerService(meetConfig);
12
11
  cmd.description(this.description).allowUnknownOption(false);
13
- // 无子命令时显示帮助
14
12
  cmd.action(() => {
15
13
  console.log(cmd.helpInformation());
16
14
  process.exitCode = 0;
17
15
  });
18
- // syncMsg
19
16
  cmd
20
- .command('syncMsg')
21
- .description(COMMAND_DESCRIPTIONS.syncMsg)
22
- .requiredOption('--params <json>', 'JSON params: {sessionInfo, beginSeqId?, endSeqId?, limit?}')
17
+ .command('getMe')
18
+ .description(METHOD_DESCRIPTIONS.getMe)
23
19
  .option('--user <user>', 'Specify user')
24
20
  .option('--gateway <url>', 'Override meet gateway')
25
- .action(handleSyncMsg);
26
- // getConvInfo2
27
- cmd
28
- .command('getConvInfo2')
29
- .description(COMMAND_DESCRIPTIONS.getConvInfo2)
30
- .requiredOption('--params <json>', 'JSON params: {sessionInfo}')
31
- .option('--user <user>', 'Specify user')
32
- .option('--gateway <url>', 'Override meet gateway')
33
- .action(handleGetConvInfo2);
34
- // getMyInfo
35
- cmd
36
- .command('getMyInfo')
37
- .description(COMMAND_DESCRIPTIONS.getMyInfo)
38
- .option('--user <user>', 'Specify user')
39
- .option('--gateway <url>', 'Override meet gateway')
40
- .action(handleGetMyInfo);
21
+ .action(handleGetMe);
41
22
  },
42
23
  };
43
24
  export default meetService;
@@ -0,0 +1,8 @@
1
+ export type ParamType = 'integer' | 'number' | 'string' | 'array<integer>' | 'array<string>' | 'object' | 'file';
2
+ export interface ParamDef {
3
+ name: string;
4
+ type: ParamType;
5
+ required: boolean;
6
+ description: string;
7
+ }
8
+ export declare const PARAM_DEFS: Record<string, ParamDef[]>;
@@ -0,0 +1,3 @@
1
+ export const PARAM_DEFS = {
2
+ getMe: [],
3
+ };
@@ -0,0 +1,9 @@
1
+ import type { Method } from './descriptions.js';
2
+ import type { ParamDef } from './params.js';
3
+ export interface MethodSkillMetadata {
4
+ notes?: string[];
5
+ skillParams?: ParamDef[];
6
+ paramsExample?: Record<string, unknown>;
7
+ }
8
+ export declare const METHOD_SHORTCUT_PARAMS: Partial<Record<Method, string[]>>;
9
+ export declare const METHOD_SKILL_METADATA: Partial<Record<Method, MethodSkillMetadata>>;
@@ -0,0 +1,2 @@
1
+ export const METHOD_SHORTCUT_PARAMS = {};
2
+ export const METHOD_SKILL_METADATA = {};
@@ -1,65 +1,7 @@
1
- export interface SessionInfo {
2
- firstID: number;
3
- secondID: number;
4
- /** 1=私聊, 3=群聊 */
5
- sessionType: 1 | 3;
6
- companyID?: number;
7
- }
8
- export interface SyncMsgParams {
9
- sessionInfo: SessionInfo;
10
- beginSeqId?: number;
11
- endSeqId?: number;
12
- limit?: number;
13
- isForward?: boolean;
14
- notReaded?: boolean;
15
- }
16
- export interface MsgContent {
17
- seqID: number;
18
- content: string;
19
- fromUID: number;
20
- timestamp: number;
21
- [key: string]: unknown;
22
- }
23
- export interface SyncMsgResult {
24
- msgs: MsgContent[];
25
- lastSeqId: number;
26
- isMin: boolean;
27
- [key: string]: unknown;
28
- }
29
- export interface GetConvInfo2Params {
30
- sessionInfo: SessionInfo;
31
- }
32
- export interface ConvInfo {
33
- groupID: number;
34
- name: string;
35
- avatar: string;
36
- memberCount: number;
37
- [key: string]: unknown;
38
- }
39
- export interface ConvMember {
1
+ export interface GetMySimpleInfoResult {
40
2
  userID: number;
41
3
  nickName: string;
42
- avatar: string;
43
- [key: string]: unknown;
44
- }
45
- export interface GetConvInfo2Result {
46
- convInfo: ConvInfo;
47
- isInGroup: boolean;
48
- isDiscarded: boolean;
49
- members?: ConvMember[];
50
- total?: number;
51
- [key: string]: unknown;
52
- }
53
- export interface UserInfo {
54
- userID: number;
55
- nickName: string;
56
- avatar: string;
57
- mobile?: string;
58
- email?: string;
59
- [key: string]: unknown;
60
- }
61
- export interface GetMyInfoResult {
62
- uInfo: UserInfo;
63
- currentCompanyID: number;
64
- [key: string]: unknown;
4
+ mobileStr: string;
5
+ jobNumber: string;
6
+ email: string;
65
7
  }
@@ -1,2 +1 @@
1
- // src/commands/services/meet/types.ts
2
1
  export {};
@@ -0,0 +1 @@
1
+ export declare function getNextRequestId(): string;
@@ -0,0 +1,4 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ export function getNextRequestId() {
3
+ return uuidv4();
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meet-im/lxcli",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "连续科技命令行工具",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",