@neomei/opencode-feishu 0.1.2 → 0.2.1
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.
- package/CHANGELOG.md +29 -4
- package/LICENSE +0 -0
- package/README.md +114 -6
- package/dist/cli.js +154 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +30 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +41 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/daemon.d.ts.map +1 -1
- package/dist/core/daemon.js +2 -1
- package/dist/core/daemon.js.map +1 -1
- package/dist/core/dedup.d.ts +29 -0
- package/dist/core/dedup.d.ts.map +1 -0
- package/dist/core/dedup.js +69 -0
- package/dist/core/dedup.js.map +1 -0
- package/dist/core/file-downloader.d.ts +24 -0
- package/dist/core/file-downloader.d.ts.map +1 -0
- package/dist/core/file-downloader.js +79 -0
- package/dist/core/file-downloader.js.map +1 -0
- package/dist/core/hook-manager.d.ts +14 -0
- package/dist/core/hook-manager.d.ts.map +1 -0
- package/dist/core/hook-manager.js +71 -0
- package/dist/core/hook-manager.js.map +1 -0
- package/dist/core/message-handler.d.ts +17 -1
- package/dist/core/message-handler.d.ts.map +1 -1
- package/dist/core/message-handler.js +151 -8
- package/dist/core/message-handler.js.map +1 -1
- package/dist/core/profile-manager.d.ts +27 -0
- package/dist/core/profile-manager.d.ts.map +1 -0
- package/dist/core/profile-manager.js +149 -0
- package/dist/core/profile-manager.js.map +1 -0
- package/dist/core/session-manager.d.ts +8 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +27 -4
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/feishu/api.d.ts +17 -0
- package/dist/feishu/api.d.ts.map +1 -1
- package/dist/feishu/api.js +106 -0
- package/dist/feishu/api.js.map +1 -1
- package/dist/feishu/card.d.ts +4 -1
- package/dist/feishu/card.d.ts.map +1 -1
- package/dist/feishu/card.js +26 -6
- package/dist/feishu/card.js.map +1 -1
- package/dist/feishu/event-source.d.ts.map +1 -1
- package/dist/feishu/event-source.js +3 -0
- package/dist/feishu/event-source.js.map +1 -1
- package/dist/feishu/silent-logger.d.ts +5 -5
- package/dist/feishu/silent-logger.d.ts.map +1 -1
- package/dist/feishu/silent-logger.js +5 -5
- package/dist/feishu/silent-logger.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/opencode/client.d.ts +5 -1
- package/dist/opencode/client.d.ts.map +1 -1
- package/dist/opencode/client.js +15 -2
- package/dist/opencode/client.js.map +1 -1
- package/dist/opencode/event-handler.d.ts +6 -1
- package/dist/opencode/event-handler.d.ts.map +1 -1
- package/dist/opencode/event-handler.js +31 -3
- package/dist/opencode/event-handler.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +4 -2
- package/dist/plugin.js.map +1 -1
- package/dist/services/approval-service.d.ts +20 -0
- package/dist/services/approval-service.d.ts.map +1 -0
- package/dist/services/approval-service.js +123 -0
- package/dist/services/approval-service.js.map +1 -0
- package/dist/services/base-service.d.ts +22 -0
- package/dist/services/base-service.d.ts.map +1 -0
- package/dist/services/base-service.js +47 -0
- package/dist/services/base-service.js.map +1 -0
- package/dist/services/calendar-service.d.ts +25 -0
- package/dist/services/calendar-service.d.ts.map +1 -0
- package/dist/services/calendar-service.js +220 -0
- package/dist/services/calendar-service.js.map +1 -0
- package/dist/services/chat-service.d.ts +52 -0
- package/dist/services/chat-service.d.ts.map +1 -0
- package/dist/services/chat-service.js +170 -0
- package/dist/services/chat-service.js.map +1 -0
- package/dist/services/contact-service.d.ts +40 -0
- package/dist/services/contact-service.d.ts.map +1 -0
- package/dist/services/contact-service.js +137 -0
- package/dist/services/contact-service.js.map +1 -0
- package/dist/services/doc-service.d.ts +137 -0
- package/dist/services/doc-service.d.ts.map +1 -0
- package/dist/services/doc-service.js +516 -0
- package/dist/services/doc-service.js.map +1 -0
- package/dist/services/im-service.d.ts +64 -0
- package/dist/services/im-service.d.ts.map +1 -0
- package/dist/services/im-service.js +215 -0
- package/dist/services/im-service.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/task-service.d.ts +19 -0
- package/dist/services/task-service.d.ts.map +1 -0
- package/dist/services/task-service.js +126 -0
- package/dist/services/task-service.js.map +1 -0
- package/dist/setup/device-flow.d.ts +31 -0
- package/dist/setup/device-flow.d.ts.map +1 -0
- package/dist/setup/device-flow.js +133 -0
- package/dist/setup/device-flow.js.map +1 -0
- package/dist/setup/preflight.d.ts +1 -0
- package/dist/setup/preflight.d.ts.map +1 -1
- package/dist/setup/preflight.js +167 -1
- package/dist/setup/preflight.js.map +1 -1
- package/dist/setup/wizard.d.ts +3 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js +113 -125
- package/dist/setup/wizard.js.map +1 -1
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +49 -13
- package/dist/standalone.js.map +1 -1
- package/dist/types/extended.d.ts +196 -0
- package/dist/types/extended.d.ts.map +1 -0
- package/dist/types/extended.js +6 -0
- package/dist/types/extended.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { BaseService } from './base-service.js';
|
|
2
|
+
/**
|
|
3
|
+
* Contact/ User Service
|
|
4
|
+
* Provides user operations: search, get info, department query
|
|
5
|
+
*/
|
|
6
|
+
export class ContactService extends BaseService {
|
|
7
|
+
constructor(api) {
|
|
8
|
+
super(api);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Search users by keyword (name, email, phone).
|
|
12
|
+
*/
|
|
13
|
+
async searchUsers(query, options) {
|
|
14
|
+
this.validateRequired(query, 'query');
|
|
15
|
+
return this.call('searchUsers', async () => {
|
|
16
|
+
const client = this.api.getClient();
|
|
17
|
+
const res = await client.request({
|
|
18
|
+
method: 'POST',
|
|
19
|
+
url: '/open-apis/contact/v3/users/batch_get_id',
|
|
20
|
+
data: {
|
|
21
|
+
query,
|
|
22
|
+
...this.buildPagination(options?.pageSize || 20, options?.pageToken),
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
if (res.code !== 0) {
|
|
26
|
+
// Try alternative search endpoint
|
|
27
|
+
const searchRes = await client.request({
|
|
28
|
+
method: 'GET',
|
|
29
|
+
url: '/open-apis/contact/v3/users',
|
|
30
|
+
params: {
|
|
31
|
+
query,
|
|
32
|
+
...this.buildPagination(options?.pageSize || 20, options?.pageToken),
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
if (searchRes.code !== 0) {
|
|
36
|
+
throw new Error(`Failed to search users: ${searchRes.msg || res.msg || 'Unknown error'}`);
|
|
37
|
+
}
|
|
38
|
+
const data = searchRes.data || {};
|
|
39
|
+
return {
|
|
40
|
+
users: (data.items || []).map((user) => this.parseUser(user)),
|
|
41
|
+
hasMore: data.has_more || false,
|
|
42
|
+
pageToken: data.page_token,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const data = res.data || {};
|
|
46
|
+
return {
|
|
47
|
+
users: (data.user_list || []).map((user) => this.parseUser(user)),
|
|
48
|
+
hasMore: false,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get user info by ID.
|
|
54
|
+
*/
|
|
55
|
+
async getUserInfo(userId) {
|
|
56
|
+
this.validateRequired(userId, 'userId');
|
|
57
|
+
return this.call('getUserInfo', async () => {
|
|
58
|
+
const client = this.api.getClient();
|
|
59
|
+
const res = await client.contact.v3.user.get({
|
|
60
|
+
path: { user_id: userId },
|
|
61
|
+
params: { user_id_type: 'open_id' },
|
|
62
|
+
});
|
|
63
|
+
if (res.code !== 0) {
|
|
64
|
+
throw new Error(`Failed to get user info: ${res.msg || 'Unknown error'}`);
|
|
65
|
+
}
|
|
66
|
+
return this.parseUser(res.data?.user);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get current bot info.
|
|
71
|
+
*/
|
|
72
|
+
async getBotInfo() {
|
|
73
|
+
return this.call('getBotInfo', async () => {
|
|
74
|
+
const client = this.api.getClient();
|
|
75
|
+
const res = await client.request({
|
|
76
|
+
method: 'GET',
|
|
77
|
+
url: '/open-apis/bot/v3/info',
|
|
78
|
+
});
|
|
79
|
+
if (res.code !== 0) {
|
|
80
|
+
throw new Error(`Failed to get bot info: ${res.msg || 'Unknown error'}`);
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
openId: res.data?.bot?.open_id,
|
|
84
|
+
name: res.data?.bot?.app_name || 'Bot',
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get user list by department.
|
|
90
|
+
*/
|
|
91
|
+
async getDepartmentUsers(departmentId, options) {
|
|
92
|
+
this.validateRequired(departmentId, 'departmentId');
|
|
93
|
+
return this.call('getDepartmentUsers', async () => {
|
|
94
|
+
const client = this.api.getClient();
|
|
95
|
+
const res = await client.contact.v3.user.findByDepartment({
|
|
96
|
+
params: {
|
|
97
|
+
department_id_type: 'open_department_id',
|
|
98
|
+
department_id: departmentId,
|
|
99
|
+
...this.buildPagination(options?.pageSize || 50, options?.pageToken),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
if (res.code !== 0) {
|
|
103
|
+
throw new Error(`Failed to get department users: ${res.msg || 'Unknown error'}`);
|
|
104
|
+
}
|
|
105
|
+
const data = res.data || {};
|
|
106
|
+
return {
|
|
107
|
+
users: (data.items || []).map((user) => this.parseUser(user)),
|
|
108
|
+
hasMore: data.has_more || false,
|
|
109
|
+
pageToken: data.page_token,
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Parse user object from API response.
|
|
115
|
+
*/
|
|
116
|
+
parseUser(user) {
|
|
117
|
+
if (!user) {
|
|
118
|
+
return {
|
|
119
|
+
openId: '',
|
|
120
|
+
name: 'Unknown',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
openId: user.open_id || user.union_id || '',
|
|
125
|
+
unionId: user.union_id,
|
|
126
|
+
userId: user.user_id,
|
|
127
|
+
name: user.name || user.en_name || 'Unknown',
|
|
128
|
+
enName: user.en_name,
|
|
129
|
+
email: user.email,
|
|
130
|
+
mobile: user.mobile,
|
|
131
|
+
avatar: user.avatar?.avatar_origin,
|
|
132
|
+
department: user.department_name,
|
|
133
|
+
tenantKey: user.tenant_key,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=contact-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact-service.js","sourceRoot":"","sources":["../../src/services/contact-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { BaseService } from './base-service.js';
|
|
2
|
+
import type { FeishuAPI } from '../feishu/api.js';
|
|
3
|
+
import type { DocumentContent, DocumentSearchResult, ResourceUploadResult, FeishuMessage } from '../types/extended.js';
|
|
4
|
+
/**
|
|
5
|
+
* Document Service
|
|
6
|
+
* Provides document operations: create, read, search, update
|
|
7
|
+
* Supports both docx and wiki documents
|
|
8
|
+
*
|
|
9
|
+
* Aligned with lark-cli docs features:
|
|
10
|
+
* - +create: Create from XML/Markdown content
|
|
11
|
+
* - +fetch: Read with detail/scope support
|
|
12
|
+
* - +update: 8 commands (str_replace, block_insert_after, etc.)
|
|
13
|
+
* - +search: Cloud space search
|
|
14
|
+
*/
|
|
15
|
+
export declare class DocService extends BaseService {
|
|
16
|
+
constructor(api: FeishuAPI);
|
|
17
|
+
/**
|
|
18
|
+
* Create a new document from content.
|
|
19
|
+
* Supports XML (default) and Markdown formats.
|
|
20
|
+
*/
|
|
21
|
+
createDocument(options: {
|
|
22
|
+
content: string;
|
|
23
|
+
format?: 'xml' | 'markdown';
|
|
24
|
+
parentToken?: string;
|
|
25
|
+
parentPosition?: string;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
documentId: string;
|
|
28
|
+
revisionId: number;
|
|
29
|
+
url: string;
|
|
30
|
+
title: string;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Create a document from Markdown content (convenience method).
|
|
34
|
+
*/
|
|
35
|
+
createDocumentFromMarkdown(title: string, markdown: string, options?: {
|
|
36
|
+
parentToken?: string;
|
|
37
|
+
}): Promise<{
|
|
38
|
+
documentId: string;
|
|
39
|
+
revisionId: number;
|
|
40
|
+
url: string;
|
|
41
|
+
title: string;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Fetch document content with support for detail levels and scopes.
|
|
45
|
+
*
|
|
46
|
+
* @param docToken - Document token or URL
|
|
47
|
+
* @param options - Fetch options
|
|
48
|
+
* - detail: 'simple' | 'with-ids' | 'full' (default: 'simple')
|
|
49
|
+
* - scope: 'outline' | 'section' | 'range' | 'keyword' (default: undefined = full doc)
|
|
50
|
+
* - docFormat: 'xml' | 'markdown' | 'text' (default: 'markdown')
|
|
51
|
+
* - startBlockId: For section/range scope
|
|
52
|
+
* - endBlockId: For range scope
|
|
53
|
+
* - keyword: For keyword scope
|
|
54
|
+
* - maxDepth: For outline scope (heading depth limit)
|
|
55
|
+
*/
|
|
56
|
+
fetchDocument(docToken: string, options?: {
|
|
57
|
+
detail?: 'simple' | 'with-ids' | 'full';
|
|
58
|
+
scope?: 'outline' | 'section' | 'range' | 'keyword';
|
|
59
|
+
docFormat?: 'xml' | 'markdown' | 'text';
|
|
60
|
+
startBlockId?: string;
|
|
61
|
+
endBlockId?: string;
|
|
62
|
+
keyword?: string;
|
|
63
|
+
maxDepth?: number;
|
|
64
|
+
}): Promise<DocumentContent>;
|
|
65
|
+
/**
|
|
66
|
+
* Get document outline (table of contents).
|
|
67
|
+
* Returns heading structure up to specified depth.
|
|
68
|
+
*/
|
|
69
|
+
getDocumentOutline(docToken: string, maxDepth?: number): Promise<Array<{
|
|
70
|
+
level: number;
|
|
71
|
+
text: string;
|
|
72
|
+
blockId: string;
|
|
73
|
+
}>>;
|
|
74
|
+
/**
|
|
75
|
+
* Update document content with various commands.
|
|
76
|
+
*
|
|
77
|
+
* Commands:
|
|
78
|
+
* - str_replace: Find and replace text
|
|
79
|
+
* - block_insert_after: Insert after a block
|
|
80
|
+
* - block_replace: Replace a block
|
|
81
|
+
* - block_delete: Delete block(s)
|
|
82
|
+
* - block_copy_insert_after: Copy blocks and insert after
|
|
83
|
+
* - block_move_after: Move blocks after a position
|
|
84
|
+
* - append: Append to end of document
|
|
85
|
+
* - overwrite: Overwrite entire document
|
|
86
|
+
*/
|
|
87
|
+
updateDocument(docToken: string, command: string, options: {
|
|
88
|
+
content?: string;
|
|
89
|
+
pattern?: string;
|
|
90
|
+
blockId?: string;
|
|
91
|
+
srcBlockIds?: string[];
|
|
92
|
+
docFormat?: 'xml' | 'markdown';
|
|
93
|
+
}): Promise<{
|
|
94
|
+
revisionId: number;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Search documents in cloud space.
|
|
98
|
+
* Supports advanced query syntax.
|
|
99
|
+
*/
|
|
100
|
+
searchDocuments(query: string, options?: {
|
|
101
|
+
pageSize?: number;
|
|
102
|
+
pageToken?: string;
|
|
103
|
+
filters?: {
|
|
104
|
+
docTypes?: string[];
|
|
105
|
+
creatorIds?: string[];
|
|
106
|
+
folderTokens?: string[];
|
|
107
|
+
openTime?: {
|
|
108
|
+
start?: string;
|
|
109
|
+
end?: string;
|
|
110
|
+
};
|
|
111
|
+
createTime?: {
|
|
112
|
+
start?: string;
|
|
113
|
+
end?: string;
|
|
114
|
+
};
|
|
115
|
+
onlyTitle?: boolean;
|
|
116
|
+
onlyComment?: boolean;
|
|
117
|
+
};
|
|
118
|
+
}): Promise<DocumentSearchResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Share a document to a chat as an interactive card.
|
|
121
|
+
*/
|
|
122
|
+
shareDocument(chatId: string, docToken: string, options?: {
|
|
123
|
+
description?: string;
|
|
124
|
+
docType?: 'doc' | 'docx' | 'wiki' | 'sheet';
|
|
125
|
+
}): Promise<FeishuMessage>;
|
|
126
|
+
/**
|
|
127
|
+
* Upload a resource (image/file) to a document.
|
|
128
|
+
*/
|
|
129
|
+
uploadResource(filePath: string, fileName?: string): Promise<ResourceUploadResult>;
|
|
130
|
+
private parseSearchResult;
|
|
131
|
+
private mapDocType;
|
|
132
|
+
private guessMimeType;
|
|
133
|
+
private parseContentToBlocks;
|
|
134
|
+
private markdownToBlocks;
|
|
135
|
+
private xmlToBlocks;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=doc-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-service.d.ts","sourceRoot":"","sources":["../../src/services/doc-service.ts"],"names":[],"mappings":"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"}
|