@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.
Files changed (124) hide show
  1. package/CHANGELOG.md +29 -4
  2. package/LICENSE +0 -0
  3. package/README.md +114 -6
  4. package/dist/cli.js +154 -6
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/config.d.ts +30 -0
  7. package/dist/core/config.d.ts.map +1 -1
  8. package/dist/core/config.js +41 -1
  9. package/dist/core/config.js.map +1 -1
  10. package/dist/core/daemon.d.ts.map +1 -1
  11. package/dist/core/daemon.js +2 -1
  12. package/dist/core/daemon.js.map +1 -1
  13. package/dist/core/dedup.d.ts +29 -0
  14. package/dist/core/dedup.d.ts.map +1 -0
  15. package/dist/core/dedup.js +69 -0
  16. package/dist/core/dedup.js.map +1 -0
  17. package/dist/core/file-downloader.d.ts +24 -0
  18. package/dist/core/file-downloader.d.ts.map +1 -0
  19. package/dist/core/file-downloader.js +79 -0
  20. package/dist/core/file-downloader.js.map +1 -0
  21. package/dist/core/hook-manager.d.ts +14 -0
  22. package/dist/core/hook-manager.d.ts.map +1 -0
  23. package/dist/core/hook-manager.js +71 -0
  24. package/dist/core/hook-manager.js.map +1 -0
  25. package/dist/core/message-handler.d.ts +17 -1
  26. package/dist/core/message-handler.d.ts.map +1 -1
  27. package/dist/core/message-handler.js +151 -8
  28. package/dist/core/message-handler.js.map +1 -1
  29. package/dist/core/profile-manager.d.ts +27 -0
  30. package/dist/core/profile-manager.d.ts.map +1 -0
  31. package/dist/core/profile-manager.js +149 -0
  32. package/dist/core/profile-manager.js.map +1 -0
  33. package/dist/core/session-manager.d.ts +8 -1
  34. package/dist/core/session-manager.d.ts.map +1 -1
  35. package/dist/core/session-manager.js +27 -4
  36. package/dist/core/session-manager.js.map +1 -1
  37. package/dist/core/types.d.ts +13 -0
  38. package/dist/core/types.d.ts.map +1 -1
  39. package/dist/feishu/api.d.ts +17 -0
  40. package/dist/feishu/api.d.ts.map +1 -1
  41. package/dist/feishu/api.js +106 -0
  42. package/dist/feishu/api.js.map +1 -1
  43. package/dist/feishu/card.d.ts +4 -1
  44. package/dist/feishu/card.d.ts.map +1 -1
  45. package/dist/feishu/card.js +26 -6
  46. package/dist/feishu/card.js.map +1 -1
  47. package/dist/feishu/event-source.d.ts.map +1 -1
  48. package/dist/feishu/event-source.js +3 -0
  49. package/dist/feishu/event-source.js.map +1 -1
  50. package/dist/feishu/silent-logger.d.ts +5 -5
  51. package/dist/feishu/silent-logger.d.ts.map +1 -1
  52. package/dist/feishu/silent-logger.js +5 -5
  53. package/dist/feishu/silent-logger.js.map +1 -1
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +3 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/opencode/client.d.ts +5 -1
  59. package/dist/opencode/client.d.ts.map +1 -1
  60. package/dist/opencode/client.js +15 -2
  61. package/dist/opencode/client.js.map +1 -1
  62. package/dist/opencode/event-handler.d.ts +6 -1
  63. package/dist/opencode/event-handler.d.ts.map +1 -1
  64. package/dist/opencode/event-handler.js +31 -3
  65. package/dist/opencode/event-handler.js.map +1 -1
  66. package/dist/plugin.d.ts.map +1 -1
  67. package/dist/plugin.js +4 -2
  68. package/dist/plugin.js.map +1 -1
  69. package/dist/services/approval-service.d.ts +20 -0
  70. package/dist/services/approval-service.d.ts.map +1 -0
  71. package/dist/services/approval-service.js +123 -0
  72. package/dist/services/approval-service.js.map +1 -0
  73. package/dist/services/base-service.d.ts +22 -0
  74. package/dist/services/base-service.d.ts.map +1 -0
  75. package/dist/services/base-service.js +47 -0
  76. package/dist/services/base-service.js.map +1 -0
  77. package/dist/services/calendar-service.d.ts +25 -0
  78. package/dist/services/calendar-service.d.ts.map +1 -0
  79. package/dist/services/calendar-service.js +220 -0
  80. package/dist/services/calendar-service.js.map +1 -0
  81. package/dist/services/chat-service.d.ts +52 -0
  82. package/dist/services/chat-service.d.ts.map +1 -0
  83. package/dist/services/chat-service.js +170 -0
  84. package/dist/services/chat-service.js.map +1 -0
  85. package/dist/services/contact-service.d.ts +40 -0
  86. package/dist/services/contact-service.d.ts.map +1 -0
  87. package/dist/services/contact-service.js +137 -0
  88. package/dist/services/contact-service.js.map +1 -0
  89. package/dist/services/doc-service.d.ts +137 -0
  90. package/dist/services/doc-service.d.ts.map +1 -0
  91. package/dist/services/doc-service.js +516 -0
  92. package/dist/services/doc-service.js.map +1 -0
  93. package/dist/services/im-service.d.ts +64 -0
  94. package/dist/services/im-service.d.ts.map +1 -0
  95. package/dist/services/im-service.js +215 -0
  96. package/dist/services/im-service.js.map +1 -0
  97. package/dist/services/index.d.ts +9 -0
  98. package/dist/services/index.d.ts.map +1 -0
  99. package/dist/services/index.js +10 -0
  100. package/dist/services/index.js.map +1 -0
  101. package/dist/services/task-service.d.ts +19 -0
  102. package/dist/services/task-service.d.ts.map +1 -0
  103. package/dist/services/task-service.js +126 -0
  104. package/dist/services/task-service.js.map +1 -0
  105. package/dist/setup/device-flow.d.ts +31 -0
  106. package/dist/setup/device-flow.d.ts.map +1 -0
  107. package/dist/setup/device-flow.js +133 -0
  108. package/dist/setup/device-flow.js.map +1 -0
  109. package/dist/setup/preflight.d.ts +1 -0
  110. package/dist/setup/preflight.d.ts.map +1 -1
  111. package/dist/setup/preflight.js +167 -1
  112. package/dist/setup/preflight.js.map +1 -1
  113. package/dist/setup/wizard.d.ts +3 -1
  114. package/dist/setup/wizard.d.ts.map +1 -1
  115. package/dist/setup/wizard.js +113 -125
  116. package/dist/setup/wizard.js.map +1 -1
  117. package/dist/standalone.d.ts.map +1 -1
  118. package/dist/standalone.js +49 -13
  119. package/dist/standalone.js.map +1 -1
  120. package/dist/types/extended.d.ts +196 -0
  121. package/dist/types/extended.d.ts.map +1 -0
  122. package/dist/types/extended.js +6 -0
  123. package/dist/types/extended.js.map +1 -0
  124. package/package.json +5 -3
@@ -1,18 +1,33 @@
1
- import { ConfigManager } from './core/config.js';
1
+ import { ConfigManager, parseBotName } from './core/config.js';
2
2
  import { SessionManager } from './core/session-manager.js';
3
3
  import { MessageHandler } from './core/message-handler.js';
4
+ import { HookManager } from './core/hook-manager.js';
4
5
  import { FeishuAPI } from './feishu/api.js';
5
6
  import { FeishuEventSource } from './feishu/event-source.js';
6
7
  import { OpenCodeClient } from './opencode/client.js';
7
8
  import { OpenCodeEventHandler } from './opencode/event-handler.js';
9
+ import { DocService } from './services/doc-service.js';
8
10
  import { createLogger } from './core/logger.js';
9
11
  import { startStatusWriter } from './core/daemon.js';
10
12
  const log = createLogger('standalone');
11
13
  export async function startStandalone(configPath) {
12
14
  console.log('🚀 Starting OpenCode Feishu Plugin (Standalone Mode)\n');
15
+ console.log('💡 功能特性:');
16
+ console.log(' • 支持私聊和群聊(需@机器人)');
17
+ console.log(' • 支持文本、图片、文件、语音、视频消息');
18
+ console.log(' • AI 回复实时流式显示');
19
+ console.log(' • 消息去重和用户名显示');
20
+ console.log(' • 飞书文档:创建、读取、编辑、搜索、分享');
21
+ console.log(' • 日历日程:查看、创建、管理日程');
22
+ console.log(' • 任务管理:创建、分配、跟踪任务');
23
+ console.log(' • 审批流程:查询、批准、拒绝审批');
24
+ console.log(' • 多配置管理:支持多个飞书应用配置\n');
13
25
  // 1. Load configuration
14
26
  const configManager = new ConfigManager(configPath);
15
27
  const config = configManager.load();
28
+ // Resolve bot display name from soul/IDENTITY.md
29
+ const botName = parseBotName(process.cwd());
30
+ console.log(`🤖 Bot name: ${botName}`);
16
31
  console.log('📋 Configuration:');
17
32
  console.log(` App ID: ${config.appId}`);
18
33
  console.log(` Domain: ${config.domain}`);
@@ -34,8 +49,13 @@ export async function startStandalone(configPath) {
34
49
  }
35
50
  catch (err) {
36
51
  log.error({ err, opencodeUrl: config.opencodeUrl }, 'Failed to connect to OpenCode');
37
- console.error('\nPlease make sure OpenCode is running:');
38
- console.error(` ${config.opencodeUrl}`);
52
+ const port = new URL(config.opencodeUrl).port || '19876';
53
+ console.error('\n❌ Failed to connect to OpenCode server');
54
+ console.error(` URL: ${config.opencodeUrl}`);
55
+ console.error('\n💡 Please start OpenCode server first:');
56
+ console.error(` opencode serve --port ${port}`);
57
+ console.error('\nOr if you are using a different port, update the config:');
58
+ console.error(` opencode-feishu setup\n`);
39
59
  process.exit(1);
40
60
  }
41
61
  // 3. Initialize Feishu API
@@ -43,15 +63,31 @@ export async function startStandalone(configPath) {
43
63
  const feishuApi = new FeishuAPI(config);
44
64
  await feishuApi.initialize();
45
65
  console.log('✅ Feishu API initialized\n');
46
- // 4. Initialize session manager
47
- const sessionManager = new SessionManager(opencode);
48
- // 5. Initialize message handler
49
- const messageHandler = new MessageHandler(config, sessionManager, feishuApi, opencode);
50
- // 6. Start event handler for streaming
66
+ // 4. Initialize hook manager
67
+ const hookManager = config.hooks
68
+ ? new HookManager(config.hooks, process.cwd())
69
+ : undefined;
70
+ if (hookManager) {
71
+ console.log('🪝 Hooks configured:');
72
+ if (config.hooks?.onSessionCreated)
73
+ console.log(` onSessionCreated: ${config.hooks.onSessionCreated}`);
74
+ if (config.hooks?.onSessionIdle)
75
+ console.log(` onSessionIdle: ${config.hooks.onSessionIdle}`);
76
+ console.log();
77
+ }
78
+ // 5. Initialize session manager
79
+ const sessionManager = new SessionManager(opencode, {
80
+ hookManager,
81
+ opencodeUrl: config.opencodeUrl,
82
+ });
83
+ // 6. Initialize message handler
84
+ const docService = new DocService(feishuApi);
85
+ const messageHandler = new MessageHandler(config, sessionManager, feishuApi, opencode, docService, botName);
86
+ // 7. Start event handler for streaming
51
87
  let eventHandler;
52
88
  if (config.streaming) {
53
89
  console.log('📡 Starting event stream...');
54
- eventHandler = new OpenCodeEventHandler(sessionManager, feishuApi);
90
+ eventHandler = new OpenCodeEventHandler(sessionManager, feishuApi, hookManager, config.opencodeUrl, config.showProcess, botName);
55
91
  try {
56
92
  const eventStream = await opencode.subscribeEvents();
57
93
  eventHandler.start(eventStream).catch((err) => {
@@ -64,7 +100,7 @@ export async function startStandalone(configPath) {
64
100
  console.warn(' Streaming output will be disabled\n');
65
101
  }
66
102
  }
67
- // 7. Connect Feishu event source (long connection via SDK WSClient)
103
+ // 8. Connect Feishu event source
68
104
  console.log('📡 Connecting to Feishu event stream...');
69
105
  const feishuEvents = new FeishuEventSource(feishuApi);
70
106
  feishuEvents.on('message', async (message) => {
@@ -81,7 +117,7 @@ export async function startStandalone(configPath) {
81
117
  log.error({ err }, 'Failed to connect to Feishu');
82
118
  process.exit(1);
83
119
  }
84
- // 8. Display status
120
+ // 9. Display status
85
121
  console.log('╔════════════════════════════════════════════════╗');
86
122
  console.log('║ OpenCode Feishu Plugin Running ║');
87
123
  console.log('╠════════════════════════════════════════════════╣');
@@ -91,13 +127,13 @@ export async function startStandalone(configPath) {
91
127
  console.log(`║ Streaming: ${(config.streaming ? 'Enabled' : 'Disabled').padEnd(36)} ║`);
92
128
  console.log('╚════════════════════════════════════════════════╝\n');
93
129
  console.log('Press Ctrl+C to stop\n');
94
- // 9. Start periodic status writer so `opencode-feishu status` can observe us
130
+ // 10. Start periodic status writer
95
131
  const stopStatusWriter = startStatusWriter({
96
132
  getSessionCount: () => sessionManager.getAllSessions().length,
97
133
  isFeishuConnected: () => feishuEvents.isConnected(),
98
134
  getOpencodeUrl: () => config.opencodeUrl,
99
135
  });
100
- // 10. Handle shutdown
136
+ // 11. Handle shutdown
101
137
  const shutdown = async (signal) => {
102
138
  console.log(`\n🛑 Received ${signal}, shutting down...`);
103
139
  stopStatusWriter();
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Extended types for Feishu services
3
+ * Based on lark-cli shortcuts analysis
4
+ */
5
+ export interface DocumentInfo {
6
+ documentId: string;
7
+ title: string;
8
+ url?: string;
9
+ type: 'doc' | 'docx' | 'wiki' | 'sheet';
10
+ createTime?: string;
11
+ updateTime?: string;
12
+ ownerId?: string;
13
+ }
14
+ export interface DocumentBlock {
15
+ blockId: string;
16
+ blockType: string;
17
+ content?: string;
18
+ children?: DocumentBlock[];
19
+ [key: string]: any;
20
+ }
21
+ export interface DocumentContent {
22
+ documentId: string;
23
+ title: string;
24
+ content?: string;
25
+ revisionId?: number;
26
+ blocks?: DocumentBlock[];
27
+ markdown?: string;
28
+ }
29
+ export interface DocumentSearchResult {
30
+ documents: DocumentInfo[];
31
+ hasMore: boolean;
32
+ pageToken?: string;
33
+ }
34
+ export interface ChatInfo {
35
+ chatId: string;
36
+ name: string;
37
+ description?: string;
38
+ ownerId?: string;
39
+ memberCount?: number;
40
+ chatType?: 'p2p' | 'group';
41
+ createTime?: string;
42
+ }
43
+ export interface ChatSearchResult {
44
+ chats: ChatInfo[];
45
+ hasMore: boolean;
46
+ pageToken?: string;
47
+ }
48
+ export interface ChatMember {
49
+ openId: string;
50
+ userId?: string;
51
+ name?: string;
52
+ role?: 'owner' | 'admin' | 'member';
53
+ }
54
+ export interface UserInfo {
55
+ openId: string;
56
+ unionId?: string;
57
+ userId?: string;
58
+ name: string;
59
+ enName?: string;
60
+ email?: string;
61
+ mobile?: string;
62
+ avatar?: string;
63
+ department?: string;
64
+ tenantKey?: string;
65
+ }
66
+ export interface UserSearchResult {
67
+ users: UserInfo[];
68
+ hasMore: boolean;
69
+ pageToken?: string;
70
+ }
71
+ export interface MessageSearchResult {
72
+ messages: FeishuMessage[];
73
+ hasMore: boolean;
74
+ pageToken?: string;
75
+ }
76
+ export interface MessageReplyOptions {
77
+ messageId: string;
78
+ content: string;
79
+ msgType?: string;
80
+ replyInThread?: boolean;
81
+ }
82
+ export interface ResourceDownloadResult {
83
+ filePath: string;
84
+ fileName: string;
85
+ mimeType: string;
86
+ size: number;
87
+ }
88
+ export interface ResourceUploadResult {
89
+ fileKey: string;
90
+ fileName: string;
91
+ mimeType: string;
92
+ }
93
+ export interface AppPermission {
94
+ scope: string;
95
+ name: string;
96
+ description: string;
97
+ granted: boolean;
98
+ }
99
+ export interface AppStatus {
100
+ appId: string;
101
+ botEnabled: boolean;
102
+ published: boolean;
103
+ permissions: AppPermission[];
104
+ }
105
+ export interface CalendarInfo {
106
+ calendarId: string;
107
+ name: string;
108
+ description?: string;
109
+ isPrimary?: boolean;
110
+ isPublic?: boolean;
111
+ }
112
+ export interface CalendarEvent {
113
+ eventId: string;
114
+ summary: string;
115
+ description?: string;
116
+ startTime: string;
117
+ endTime: string;
118
+ location?: string;
119
+ attendees?: CalendarAttendee[];
120
+ recurrence?: string;
121
+ status?: string;
122
+ }
123
+ export interface CalendarAttendee {
124
+ openId?: string;
125
+ userId?: string;
126
+ email?: string;
127
+ displayName?: string;
128
+ responseStatus?: 'needs_action' | 'accept' | 'decline' | 'tentative';
129
+ isOptional?: boolean;
130
+ isResource?: boolean;
131
+ }
132
+ export interface CalendarSearchResult {
133
+ calendars: CalendarInfo[];
134
+ hasMore: boolean;
135
+ pageToken?: string;
136
+ }
137
+ export interface EventSearchResult {
138
+ events: CalendarEvent[];
139
+ hasMore: boolean;
140
+ pageToken?: string;
141
+ }
142
+ export interface FreeBusyResult {
143
+ openId: string;
144
+ busyTimes: {
145
+ start: string;
146
+ end: string;
147
+ }[];
148
+ }
149
+ export interface TaskInfo {
150
+ taskId: string;
151
+ summary: string;
152
+ description?: string;
153
+ dueTime?: string;
154
+ completedTime?: string;
155
+ status: 'needs_action' | 'completed';
156
+ creator?: string;
157
+ assignees?: string[];
158
+ followers?: string[];
159
+ }
160
+ export interface TaskSearchResult {
161
+ tasks: TaskInfo[];
162
+ hasMore: boolean;
163
+ pageToken?: string;
164
+ }
165
+ export interface ApprovalInstance {
166
+ instanceId: string;
167
+ approvalCode: string;
168
+ status: 'pending' | 'approved' | 'rejected' | 'transferred' | 'canceled';
169
+ createTime: string;
170
+ updateTime?: string;
171
+ requester?: string;
172
+ approvers?: ApprovalNode[];
173
+ formData?: Record<string, any>;
174
+ }
175
+ export interface ApprovalNode {
176
+ nodeId: string;
177
+ nodeName?: string;
178
+ status: 'pending' | 'approved' | 'rejected' | 'transferred';
179
+ approvers?: ApprovalApprover[];
180
+ }
181
+ export interface ApprovalApprover {
182
+ openId?: string;
183
+ userId?: string;
184
+ name?: string;
185
+ status: 'pending' | 'approved' | 'rejected' | 'transferred';
186
+ comment?: string;
187
+ operateTime?: string;
188
+ }
189
+ export interface ApprovalSearchResult {
190
+ instances: ApprovalInstance[];
191
+ hasMore: boolean;
192
+ pageToken?: string;
193
+ }
194
+ import type { FeishuConfig, FeishuMessage, CardContent } from '../core/types.js';
195
+ export type { FeishuConfig, FeishuMessage, CardContent };
196
+ //# sourceMappingURL=extended.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended.d.ts","sourceRoot":"","sources":["../../src/types/extended.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrC;AAID,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAID,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;AAID,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,cAAc,GAAG,WAAW,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;IAC5D,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Extended types for Feishu services
3
+ * Based on lark-cli shortcuts analysis
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=extended.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended.js","sourceRoot":"","sources":["../../src/types/extended.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neomei/opencode-feishu",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "Node.js-native Feishu/Lark bridge for OpenCode — production-grade daemon, persistence, preflight, structured logs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "test:watch": "jest --watch",
16
16
  "lint": "eslint src/**/*.ts",
17
17
  "typecheck": "tsc --noEmit",
18
- "clean": "rm -rf dist",
18
+ "clean": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\"",
19
19
  "prepublishOnly": "npm run clean && npm run build && npm test"
20
20
  },
21
21
  "keywords": [
@@ -46,12 +46,14 @@
46
46
  "access": "public"
47
47
  },
48
48
  "dependencies": {
49
- "@larksuiteoapi/node-sdk": "^1.61.1",
49
+ "@larksuiteoapi/node-sdk": "^1.62.0",
50
50
  "@opencode-ai/sdk": "^1.0.0",
51
+ "@types/qrcode": "^1.5.6",
51
52
  "commander": "^11.0.0",
52
53
  "inquirer": "^9.2.0",
53
54
  "pino": "^10.3.1",
54
55
  "pino-pretty": "^13.1.3",
56
+ "qrcode": "^1.5.4",
55
57
  "zod": "^3.22.0"
56
58
  },
57
59
  "devDependencies": {