@neomei/opencode-feishu 0.2.7 → 0.2.9
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/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +6 -3
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/message-handler.d.ts +10 -0
- package/dist/core/message-handler.d.ts.map +1 -1
- package/dist/core/message-handler.js +331 -5
- package/dist/core/message-handler.js.map +1 -1
- package/dist/core/opencode-serve-manager.d.ts +34 -0
- package/dist/core/opencode-serve-manager.d.ts.map +1 -0
- package/dist/core/opencode-serve-manager.js +128 -0
- package/dist/core/opencode-serve-manager.js.map +1 -0
- package/dist/core/session-manager.d.ts +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +18 -2
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +19 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/workdir-manager.d.ts +41 -0
- package/dist/core/workdir-manager.d.ts.map +1 -0
- package/dist/core/workdir-manager.js +122 -0
- package/dist/core/workdir-manager.js.map +1 -0
- package/dist/feishu/card.d.ts +3 -1
- package/dist/feishu/card.d.ts.map +1 -1
- package/dist/feishu/card.js +128 -30
- package/dist/feishu/card.js.map +1 -1
- package/dist/opencode/client.d.ts +10 -0
- package/dist/opencode/client.d.ts.map +1 -1
- package/dist/opencode/client.js +94 -2
- package/dist/opencode/client.js.map +1 -1
- package/dist/opencode/event-handler.d.ts +13 -1
- package/dist/opencode/event-handler.d.ts.map +1 -1
- package/dist/opencode/event-handler.js +89 -9
- package/dist/opencode/event-handler.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +8 -0
- package/dist/plugin.js.map +1 -1
- package/dist/standalone.d.ts +5 -1
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +48 -2
- package/dist/standalone.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workdir-manager.js","sourceRoot":"","sources":["../../src/core/workdir-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/feishu/card.d.ts
CHANGED
|
@@ -4,14 +4,16 @@ export declare class FeishuCard {
|
|
|
4
4
|
static createErrorCard(error: unknown): CardContent;
|
|
5
5
|
static createStreamingCard(opts: {
|
|
6
6
|
content: string;
|
|
7
|
+
thinkingContent?: string;
|
|
7
8
|
tools?: ToolState[];
|
|
8
9
|
done?: boolean;
|
|
9
10
|
retry?: string;
|
|
10
|
-
showProcess?:
|
|
11
|
+
showProcess?: 'none' | 'tools' | 'thinking' | 'full';
|
|
11
12
|
botName: string;
|
|
12
13
|
interaction?: PendingInteraction;
|
|
13
14
|
}): CardContent;
|
|
14
15
|
static createInteractionRepliedCard(kind: 'permission' | 'question', label: string): CardContent;
|
|
15
16
|
static createExpiredCard(): CardContent;
|
|
17
|
+
static createNavigationCard(content: string, sessionId: string): CardContent;
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/feishu/card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQnF,qBAAa,UAAU;IACrB,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAUvD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/feishu/card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQnF,qBAAa,UAAU;IACrB,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAUvD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW;IA8CnD,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;QACrD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAClC,GAAG,WAAW;IAmLf,MAAM,CAAC,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAmBhG,MAAM,CAAC,iBAAiB,IAAI,WAAW;IAgBvC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW;CA2C7E"}
|
package/dist/feishu/card.js
CHANGED
|
@@ -14,7 +14,38 @@ export class FeishuCard {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
static createErrorCard(error) {
|
|
17
|
-
|
|
17
|
+
let errorText;
|
|
18
|
+
if (typeof error === 'string') {
|
|
19
|
+
errorText = error;
|
|
20
|
+
}
|
|
21
|
+
else if (error instanceof Error) {
|
|
22
|
+
errorText = error.message;
|
|
23
|
+
}
|
|
24
|
+
else if (typeof error === 'object' && error !== null) {
|
|
25
|
+
// Handle object errors (e.g. API response objects)
|
|
26
|
+
try {
|
|
27
|
+
// Try to extract common error fields
|
|
28
|
+
const err = error;
|
|
29
|
+
if (err.message) {
|
|
30
|
+
errorText = err.message;
|
|
31
|
+
}
|
|
32
|
+
else if (err.data?.message) {
|
|
33
|
+
errorText = err.data.message;
|
|
34
|
+
}
|
|
35
|
+
else if (err.error) {
|
|
36
|
+
errorText = typeof err.error === 'string' ? err.error : JSON.stringify(err.error);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
errorText = JSON.stringify(error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
errorText = String(error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
errorText = String(error);
|
|
48
|
+
}
|
|
18
49
|
const safeError = errorText
|
|
19
50
|
.replace(/&/g, '&')
|
|
20
51
|
.replace(/</g, '<')
|
|
@@ -33,32 +64,11 @@ export class FeishuCard {
|
|
|
33
64
|
};
|
|
34
65
|
}
|
|
35
66
|
static createStreamingCard(opts) {
|
|
36
|
-
const { content, tools = [], done = false, retry, showProcess =
|
|
67
|
+
const { content, thinkingContent = '', tools = [], done = false, retry, showProcess = 'none', botName, interaction } = opts;
|
|
68
|
+
const showTools = showProcess === 'tools' || showProcess === 'full';
|
|
69
|
+
const showThinking = showProcess === 'thinking' || showProcess === 'full';
|
|
37
70
|
const anyRunning = tools.some(t => t.status === 'running');
|
|
38
|
-
|
|
39
|
-
const headerTitle = done
|
|
40
|
-
? '✅ 完成'
|
|
41
|
-
: retry
|
|
42
|
-
? '🔄 重试中...'
|
|
43
|
-
: `💭 ${botName}思考中...`;
|
|
44
|
-
const elements = [];
|
|
45
|
-
if (content) {
|
|
46
|
-
elements.push({ tag: 'div', text: { tag: 'lark_md', content } });
|
|
47
|
-
}
|
|
48
|
-
if (retry) {
|
|
49
|
-
if (elements.length > 0)
|
|
50
|
-
elements.push({ tag: 'hr' });
|
|
51
|
-
elements.push({
|
|
52
|
-
tag: 'div',
|
|
53
|
-
text: { tag: 'lark_md', content: `🔄 **重试中**:${retry}` },
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
config: { wide_screen_mode: true },
|
|
58
|
-
header: { title: { tag: 'plain_text', content: headerTitle } },
|
|
59
|
-
elements,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
71
|
+
// Determine header title based on state
|
|
62
72
|
const headerTitle = interaction
|
|
63
73
|
? (interaction.kind === 'permission' ? '🔒 等待授权' : '❓ 等待选择')
|
|
64
74
|
: done
|
|
@@ -67,8 +77,11 @@ export class FeishuCard {
|
|
|
67
77
|
? '🔄 重试中...'
|
|
68
78
|
: anyRunning
|
|
69
79
|
? '🔧 执行工具...'
|
|
70
|
-
:
|
|
80
|
+
: showThinking && thinkingContent && !content
|
|
81
|
+
? `💭 ${botName}思考中...`
|
|
82
|
+
: `💭 ${botName}思考中...`;
|
|
71
83
|
const elements = [];
|
|
84
|
+
// Retry notice
|
|
72
85
|
if (retry) {
|
|
73
86
|
elements.push({
|
|
74
87
|
tag: 'div',
|
|
@@ -76,7 +89,8 @@ export class FeishuCard {
|
|
|
76
89
|
});
|
|
77
90
|
elements.push({ tag: 'hr' });
|
|
78
91
|
}
|
|
79
|
-
|
|
92
|
+
// Tools section
|
|
93
|
+
if (showTools && tools.length > 0) {
|
|
80
94
|
const toolLines = tools
|
|
81
95
|
.map(t => {
|
|
82
96
|
const head = `${TOOL_ICON[t.status]} ${t.name}`;
|
|
@@ -86,15 +100,56 @@ export class FeishuCard {
|
|
|
86
100
|
})
|
|
87
101
|
.join('\n');
|
|
88
102
|
elements.push({ tag: 'div', text: { tag: 'lark_md', content: toolLines } });
|
|
103
|
+
if (thinkingContent || content)
|
|
104
|
+
elements.push({ tag: 'hr' });
|
|
105
|
+
}
|
|
106
|
+
// Thinking section (collapsible when done)
|
|
107
|
+
if (showThinking && thinkingContent) {
|
|
108
|
+
if (done) {
|
|
109
|
+
// Collapsible thinking section when done
|
|
110
|
+
elements.push({
|
|
111
|
+
tag: 'div',
|
|
112
|
+
text: {
|
|
113
|
+
tag: 'lark_md',
|
|
114
|
+
content: `<font color='grey'>💡 *思考过程(点击展开)*</font>`,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
elements.push({
|
|
118
|
+
tag: 'div',
|
|
119
|
+
text: {
|
|
120
|
+
tag: 'lark_md',
|
|
121
|
+
content: `<font color='grey'>${thinkingContent}</font>`,
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Show thinking inline while streaming
|
|
127
|
+
elements.push({
|
|
128
|
+
tag: 'div',
|
|
129
|
+
text: {
|
|
130
|
+
tag: 'lark_md',
|
|
131
|
+
content: `<font color='grey'>💭 ${thinkingContent}</font>`,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
}
|
|
89
135
|
if (content)
|
|
90
136
|
elements.push({ tag: 'hr' });
|
|
91
137
|
}
|
|
92
|
-
|
|
138
|
+
// Main content section
|
|
139
|
+
if (content) {
|
|
140
|
+
elements.push({
|
|
141
|
+
tag: 'div',
|
|
142
|
+
text: { tag: 'lark_md', content },
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
else if (!thinkingContent && !retry && !interaction && tools.length === 0) {
|
|
146
|
+
// Show placeholder when nothing else is displayed
|
|
93
147
|
elements.push({
|
|
94
148
|
tag: 'div',
|
|
95
|
-
text: { tag: 'lark_md', content:
|
|
149
|
+
text: { tag: 'lark_md', content: '...' },
|
|
96
150
|
});
|
|
97
151
|
}
|
|
152
|
+
// Interaction section (permissions/questions)
|
|
98
153
|
if (interaction) {
|
|
99
154
|
if (elements.length > 0)
|
|
100
155
|
elements.push({ tag: 'hr' });
|
|
@@ -215,5 +270,48 @@ export class FeishuCard {
|
|
|
215
270
|
],
|
|
216
271
|
};
|
|
217
272
|
}
|
|
273
|
+
static createNavigationCard(content, sessionId) {
|
|
274
|
+
return {
|
|
275
|
+
config: { wide_screen_mode: true },
|
|
276
|
+
header: { title: { tag: 'plain_text', content: '📄 内容浏览' } },
|
|
277
|
+
elements: [
|
|
278
|
+
{
|
|
279
|
+
tag: 'div',
|
|
280
|
+
text: { tag: 'lark_md', content },
|
|
281
|
+
},
|
|
282
|
+
{ tag: 'hr' },
|
|
283
|
+
{
|
|
284
|
+
tag: 'action',
|
|
285
|
+
layout: 'default',
|
|
286
|
+
actions: [
|
|
287
|
+
{
|
|
288
|
+
tag: 'button',
|
|
289
|
+
text: { tag: 'plain_text', content: '⬆️ 上一页' },
|
|
290
|
+
type: 'default',
|
|
291
|
+
value: { action: 'nav', cmd: 'session.page.up', sessionId },
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
tag: 'button',
|
|
295
|
+
text: { tag: 'plain_text', content: '⬇️ 下一页' },
|
|
296
|
+
type: 'default',
|
|
297
|
+
value: { action: 'nav', cmd: 'session.page.down', sessionId },
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
tag: 'button',
|
|
301
|
+
text: { tag: 'plain_text', content: '⏫ 首页' },
|
|
302
|
+
type: 'default',
|
|
303
|
+
value: { action: 'nav', cmd: 'session.first', sessionId },
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
tag: 'button',
|
|
307
|
+
text: { tag: 'plain_text', content: '⏬ 尾页' },
|
|
308
|
+
type: 'default',
|
|
309
|
+
value: { action: 'nav', cmd: 'session.last', sessionId },
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
},
|
|
313
|
+
],
|
|
314
|
+
};
|
|
315
|
+
}
|
|
218
316
|
}
|
|
219
317
|
//# sourceMappingURL=card.js.map
|
package/dist/feishu/card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/feishu/card.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAwC;IACrD,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,kBAAkB,CAAC,OAAe;QACvC,OAAO;YACL,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE;YAClC,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,QAAQ,EAAE;aAC7D;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAc;QACnC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/feishu/card.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,16 @@ export declare class OpenCodeClient {
|
|
|
29
29
|
replyPermission(requestID: string, reply: 'once' | 'always' | 'reject'): Promise<boolean>;
|
|
30
30
|
replyQuestion(requestID: string, answers: string[][]): Promise<boolean>;
|
|
31
31
|
sendCommand(sessionId: string, command: string, args?: string): Promise<any>;
|
|
32
|
+
executeTuiCommand(command: string): Promise<any>;
|
|
33
|
+
getProviders(): Promise<any>;
|
|
34
|
+
getAgents(): Promise<any>;
|
|
35
|
+
getCommands(): Promise<any>;
|
|
36
|
+
getSessions(): Promise<any>;
|
|
37
|
+
getTools(): Promise<any>;
|
|
38
|
+
getWorktrees(): Promise<any>;
|
|
39
|
+
getFiles(path?: string): Promise<any>;
|
|
40
|
+
getStatus(): Promise<any>;
|
|
41
|
+
getConfig(): Promise<any>;
|
|
32
42
|
getBaseUrl(): string;
|
|
33
43
|
getDirectory(): string;
|
|
34
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/opencode/client.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAmB/E,OAAO,CAAC,WAAW;IAcb,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IA8BlI,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC;IAK/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAU7D,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAU9B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAazF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAavE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/opencode/client.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAmB/E,OAAO,CAAC,WAAW;IAcb,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY3C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IA8BlI,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC;IAK/B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAU7D,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAU9B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAazF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAavE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAe5E,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAahD,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAY5B,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAYzB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAY3B,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAY3B,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAYxB,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAY5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAarC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAYzB,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAY/B,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;CAGvB"}
|
package/dist/opencode/client.js
CHANGED
|
@@ -134,8 +134,100 @@ export class OpenCodeClient {
|
|
|
134
134
|
arguments: args || '',
|
|
135
135
|
});
|
|
136
136
|
if (error) {
|
|
137
|
-
|
|
138
|
-
throw
|
|
137
|
+
// Pass the original error object so the caller can extract meaningful messages
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
return data;
|
|
141
|
+
}
|
|
142
|
+
async executeTuiCommand(command) {
|
|
143
|
+
const { data, error } = await this.client.tui.executeCommand({
|
|
144
|
+
directory: this.directory,
|
|
145
|
+
command,
|
|
146
|
+
});
|
|
147
|
+
if (error) {
|
|
148
|
+
throw new Error(`Failed to execute TUI command: ${this.formatError(error)}`);
|
|
149
|
+
}
|
|
150
|
+
return data;
|
|
151
|
+
}
|
|
152
|
+
async getProviders() {
|
|
153
|
+
const { data, error } = await this.client.config.providers({
|
|
154
|
+
directory: this.directory,
|
|
155
|
+
});
|
|
156
|
+
if (error) {
|
|
157
|
+
throw new Error(`Failed to get providers: ${this.formatError(error)}`);
|
|
158
|
+
}
|
|
159
|
+
return data;
|
|
160
|
+
}
|
|
161
|
+
async getAgents() {
|
|
162
|
+
const { data, error } = await this.client.app.agents({
|
|
163
|
+
directory: this.directory,
|
|
164
|
+
});
|
|
165
|
+
if (error) {
|
|
166
|
+
throw new Error(`Failed to get agents: ${this.formatError(error)}`);
|
|
167
|
+
}
|
|
168
|
+
return data;
|
|
169
|
+
}
|
|
170
|
+
async getCommands() {
|
|
171
|
+
const { data, error } = await this.client.command.list({
|
|
172
|
+
directory: this.directory,
|
|
173
|
+
});
|
|
174
|
+
if (error) {
|
|
175
|
+
throw new Error(`Failed to get commands: ${this.formatError(error)}`);
|
|
176
|
+
}
|
|
177
|
+
return data;
|
|
178
|
+
}
|
|
179
|
+
async getSessions() {
|
|
180
|
+
const { data, error } = await this.client.session.list({
|
|
181
|
+
directory: this.directory,
|
|
182
|
+
});
|
|
183
|
+
if (error) {
|
|
184
|
+
throw new Error(`Failed to get sessions: ${this.formatError(error)}`);
|
|
185
|
+
}
|
|
186
|
+
return data;
|
|
187
|
+
}
|
|
188
|
+
async getTools() {
|
|
189
|
+
const { data, error } = await this.client.tool.ids({
|
|
190
|
+
directory: this.directory,
|
|
191
|
+
});
|
|
192
|
+
if (error) {
|
|
193
|
+
throw new Error(`Failed to get tools: ${this.formatError(error)}`);
|
|
194
|
+
}
|
|
195
|
+
return data;
|
|
196
|
+
}
|
|
197
|
+
async getWorktrees() {
|
|
198
|
+
const { data, error } = await this.client.worktree.list({
|
|
199
|
+
directory: this.directory,
|
|
200
|
+
});
|
|
201
|
+
if (error) {
|
|
202
|
+
throw new Error(`Failed to get worktrees: ${this.formatError(error)}`);
|
|
203
|
+
}
|
|
204
|
+
return data;
|
|
205
|
+
}
|
|
206
|
+
async getFiles(path) {
|
|
207
|
+
const { data, error } = await this.client.file.list({
|
|
208
|
+
directory: this.directory,
|
|
209
|
+
path: path || '.',
|
|
210
|
+
});
|
|
211
|
+
if (error) {
|
|
212
|
+
throw new Error(`Failed to get files: ${this.formatError(error)}`);
|
|
213
|
+
}
|
|
214
|
+
return data;
|
|
215
|
+
}
|
|
216
|
+
async getStatus() {
|
|
217
|
+
const { data, error } = await this.client.file.status({
|
|
218
|
+
directory: this.directory,
|
|
219
|
+
});
|
|
220
|
+
if (error) {
|
|
221
|
+
throw new Error(`Failed to get status: ${this.formatError(error)}`);
|
|
222
|
+
}
|
|
223
|
+
return data;
|
|
224
|
+
}
|
|
225
|
+
async getConfig() {
|
|
226
|
+
const { data, error } = await this.client.config.get({
|
|
227
|
+
directory: this.directory,
|
|
228
|
+
});
|
|
229
|
+
if (error) {
|
|
230
|
+
throw new Error(`Failed to get config: ${this.formatError(error)}`);
|
|
139
231
|
}
|
|
140
232
|
return data;
|
|
141
233
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/opencode/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/opencode/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,25 @@ export declare class OpenCodeEventHandler {
|
|
|
9
9
|
private opencodeUrl;
|
|
10
10
|
private showProcess;
|
|
11
11
|
private botName;
|
|
12
|
-
constructor(sessionManager: SessionManager, feishuApi: FeishuAPI, hookManager?: HookManager, opencodeUrl?: string, showProcess?:
|
|
12
|
+
constructor(sessionManager: SessionManager, feishuApi: FeishuAPI, hookManager?: HookManager, opencodeUrl?: string, showProcess?: 'none' | 'tools' | 'thinking' | 'full', botName?: string);
|
|
13
|
+
/**
|
|
14
|
+
* Check if thinking content should be shown based on showProcess config.
|
|
15
|
+
*/
|
|
16
|
+
private shouldShowThinking;
|
|
17
|
+
/**
|
|
18
|
+
* Check if tools should be shown based on showProcess config.
|
|
19
|
+
*/
|
|
20
|
+
private shouldShowTools;
|
|
13
21
|
start(eventStream: {
|
|
14
22
|
stream: AsyncGenerator<any, void, unknown>;
|
|
15
23
|
}): Promise<void>;
|
|
16
24
|
stop(): void;
|
|
17
25
|
private handleEvent;
|
|
18
26
|
private handleTextDelta;
|
|
27
|
+
/**
|
|
28
|
+
* Determine if a field should be displayed based on showProcess config.
|
|
29
|
+
*/
|
|
30
|
+
private shouldShowField;
|
|
19
31
|
private handlePartUpdate;
|
|
20
32
|
private handleStatusChange;
|
|
21
33
|
private handleError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../src/opencode/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../src/opencode/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAEtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,GAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAe,EAC5D,OAAO,SAAO;IAUhB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIjB,KAAK,CAAC,WAAW,EAAE;QAAE,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvF,IAAI,IAAI,IAAI;YAKE,WAAW;YAoDX,eAAe;IA0C7B;;OAEG;IACH,OAAO,CAAC,eAAe;YAcT,gBAAgB;YA0ChB,kBAAkB;YAsClB,WAAW;YA8BX,iBAAiB;YAkCjB,qBAAqB;YA4BrB,uBAAuB;YAyBvB,mBAAmB;YA6BnB,qBAAqB;YAsBrB,sBAAsB;YAoBtB,qBAAqB;IAmBnC;;;;;OAKG;YACW,SAAS;CAsExB"}
|
|
@@ -10,7 +10,7 @@ export class OpenCodeEventHandler {
|
|
|
10
10
|
opencodeUrl;
|
|
11
11
|
showProcess;
|
|
12
12
|
botName;
|
|
13
|
-
constructor(sessionManager, feishuApi, hookManager, opencodeUrl, showProcess =
|
|
13
|
+
constructor(sessionManager, feishuApi, hookManager, opencodeUrl, showProcess = 'none', botName = '点点') {
|
|
14
14
|
this.sessionManager = sessionManager;
|
|
15
15
|
this.feishuApi = feishuApi;
|
|
16
16
|
this.hookManager = hookManager;
|
|
@@ -18,6 +18,18 @@ export class OpenCodeEventHandler {
|
|
|
18
18
|
this.showProcess = showProcess;
|
|
19
19
|
this.botName = botName;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if thinking content should be shown based on showProcess config.
|
|
23
|
+
*/
|
|
24
|
+
shouldShowThinking() {
|
|
25
|
+
return this.showProcess === 'thinking' || this.showProcess === 'full';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if tools should be shown based on showProcess config.
|
|
29
|
+
*/
|
|
30
|
+
shouldShowTools() {
|
|
31
|
+
return this.showProcess === 'tools' || this.showProcess === 'full';
|
|
32
|
+
}
|
|
21
33
|
async start(eventStream) {
|
|
22
34
|
if (this.isRunning) {
|
|
23
35
|
log.warn('Already running');
|
|
@@ -98,20 +110,56 @@ export class OpenCodeEventHandler {
|
|
|
98
110
|
async handleTextDelta(properties) {
|
|
99
111
|
if (!properties)
|
|
100
112
|
return;
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
if (
|
|
113
|
+
// Handle non-string delta (e.g. object, array) by converting to string
|
|
114
|
+
let deltaStr;
|
|
115
|
+
if (typeof properties.delta === 'string') {
|
|
116
|
+
deltaStr = properties.delta;
|
|
117
|
+
}
|
|
118
|
+
else if (properties.delta === null || properties.delta === undefined) {
|
|
119
|
+
deltaStr = '';
|
|
120
|
+
}
|
|
121
|
+
else if (typeof properties.delta === 'object') {
|
|
122
|
+
// If it's an object, try to extract text content or stringify
|
|
123
|
+
deltaStr = properties.delta.text || properties.delta.content || JSON.stringify(properties.delta);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
deltaStr = String(properties.delta);
|
|
127
|
+
}
|
|
128
|
+
// Skip empty deltas
|
|
129
|
+
if (!deltaStr) {
|
|
104
130
|
return;
|
|
105
131
|
}
|
|
132
|
+
log.info({ field: properties.field, partID: properties.partID?.substring(0, 20), deltaLen: deltaStr.length, deltaPreview: deltaStr.substring(0, 80) }, 'Text delta');
|
|
106
133
|
const chatId = this.sessionManager.getChatIdBySession(properties.sessionID);
|
|
107
134
|
if (!chatId)
|
|
108
135
|
return;
|
|
109
|
-
this
|
|
136
|
+
// Determine if we should show this field based on showProcess config
|
|
137
|
+
const shouldShowField = this.shouldShowField(properties.field);
|
|
138
|
+
if (!shouldShowField) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.sessionManager.appendContent(chatId, deltaStr, properties.partID, properties.field);
|
|
110
142
|
await this.flushCard(chatId);
|
|
111
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Determine if a field should be displayed based on showProcess config.
|
|
146
|
+
*/
|
|
147
|
+
shouldShowField(field) {
|
|
148
|
+
switch (this.showProcess) {
|
|
149
|
+
case 'full':
|
|
150
|
+
return true;
|
|
151
|
+
case 'thinking':
|
|
152
|
+
return field === 'text' || field === 'thinking' || field === 'reasoning';
|
|
153
|
+
case 'tools':
|
|
154
|
+
return field === 'text' || !field;
|
|
155
|
+
case 'none':
|
|
156
|
+
default:
|
|
157
|
+
return !field || field === 'text';
|
|
158
|
+
}
|
|
159
|
+
}
|
|
112
160
|
async handlePartUpdate(properties) {
|
|
113
|
-
// Skip tool display
|
|
114
|
-
if (!this.
|
|
161
|
+
// Skip tool display if not showing tools
|
|
162
|
+
if (!this.shouldShowTools())
|
|
115
163
|
return;
|
|
116
164
|
const { part } = properties;
|
|
117
165
|
if (part?.type !== 'tool')
|
|
@@ -187,8 +235,19 @@ export class OpenCodeEventHandler {
|
|
|
187
235
|
const chatId = this.sessionManager.getChatIdBySession(properties.sessionID);
|
|
188
236
|
if (!chatId)
|
|
189
237
|
return;
|
|
190
|
-
|
|
238
|
+
// If the session is already idle or error was already handled,
|
|
239
|
+
// the error was likely already handled by MessageHandler.
|
|
240
|
+
// Avoid sending a duplicate error card.
|
|
191
241
|
const session = this.sessionManager.getSession(chatId);
|
|
242
|
+
if (session?.status === 'idle') {
|
|
243
|
+
log.info({ chatId, sessionId: properties.sessionID }, 'Session already idle, skipping duplicate error card');
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (session?.errorHandled) {
|
|
247
|
+
log.info({ chatId, sessionId: properties.sessionID }, 'Error already handled, skipping duplicate error card');
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
await this.feishuApi.sendCard(chatId, FeishuCard.createErrorCard(properties.error));
|
|
192
251
|
if (session) {
|
|
193
252
|
session.tools = undefined;
|
|
194
253
|
session.retryMessage = undefined;
|
|
@@ -263,6 +322,13 @@ export class OpenCodeEventHandler {
|
|
|
263
322
|
if (hadPending) {
|
|
264
323
|
await this.flushCard(chatId, { force: true });
|
|
265
324
|
}
|
|
325
|
+
// Clear interactionReplied flag so subsequent AI streaming output can update the card.
|
|
326
|
+
// The confirmation state has already been shown; now we need to allow the AI to continue.
|
|
327
|
+
const session = this.sessionManager.getSession(chatId);
|
|
328
|
+
if (session) {
|
|
329
|
+
session.interactionReplied = undefined;
|
|
330
|
+
log.info({ chatId }, 'Cleared interactionReplied to allow AI streaming');
|
|
331
|
+
}
|
|
266
332
|
}
|
|
267
333
|
async handleQuestionAsked(properties) {
|
|
268
334
|
const chatId = this.sessionManager.getChatIdBySession(properties.sessionID);
|
|
@@ -302,6 +368,12 @@ export class OpenCodeEventHandler {
|
|
|
302
368
|
if (hadPending) {
|
|
303
369
|
await this.flushCard(chatId, { force: true });
|
|
304
370
|
}
|
|
371
|
+
// Clear interactionReplied flag so subsequent AI streaming output can update the card.
|
|
372
|
+
const session = this.sessionManager.getSession(chatId);
|
|
373
|
+
if (session) {
|
|
374
|
+
session.interactionReplied = undefined;
|
|
375
|
+
log.info({ chatId }, 'Cleared interactionReplied to allow AI streaming');
|
|
376
|
+
}
|
|
305
377
|
}
|
|
306
378
|
async handleQuestionRejected(properties) {
|
|
307
379
|
const chatId = this.sessionManager.getChatIdBySession(properties.sessionID);
|
|
@@ -313,6 +385,12 @@ export class OpenCodeEventHandler {
|
|
|
313
385
|
if (hadPending) {
|
|
314
386
|
await this.flushCard(chatId, { force: true });
|
|
315
387
|
}
|
|
388
|
+
// Clear interactionReplied flag so subsequent AI streaming output can update the card.
|
|
389
|
+
const session = this.sessionManager.getSession(chatId);
|
|
390
|
+
if (session) {
|
|
391
|
+
session.interactionReplied = undefined;
|
|
392
|
+
log.info({ chatId }, 'Cleared interactionReplied to allow AI streaming');
|
|
393
|
+
}
|
|
316
394
|
}
|
|
317
395
|
async handleCommandExecuted(properties) {
|
|
318
396
|
const chatId = this.sessionManager.getChatIdBySession(properties.sessionID);
|
|
@@ -348,11 +426,13 @@ export class OpenCodeEventHandler {
|
|
|
348
426
|
// don't race against each other and update different messages.
|
|
349
427
|
const targetMessageId = session.currentMessageId;
|
|
350
428
|
const content = session.currentContent || '';
|
|
351
|
-
const
|
|
429
|
+
const thinkingContent = this.shouldShowThinking() ? (session.thinkingContent || '') : '';
|
|
430
|
+
const tools = this.shouldShowTools() ? (session.tools || []) : [];
|
|
352
431
|
const interaction = session.pendingInteraction;
|
|
353
432
|
log.info({ chatId, hasInteraction: !!interaction, interactionKind: interaction?.kind, targetMessageId, force: opts.force, done: opts.done }, 'flushCard');
|
|
354
433
|
const card = FeishuCard.createStreamingCard({
|
|
355
434
|
content,
|
|
435
|
+
thinkingContent,
|
|
356
436
|
tools,
|
|
357
437
|
done: !!opts.done,
|
|
358
438
|
retry: session.retryMessage,
|