@optima-chat/optima-agent 0.5.0 → 0.5.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/.claude/settings.local.json +83 -0
- package/.claude/skills/ads/SKILL.md +0 -0
- package/.claude/skills/bi/SKILL.md +71 -42
- package/.claude/skills/collection/SKILL.md +88 -0
- package/.claude/skills/comfy/SKILL.md +138 -122
- package/.claude/skills/ffmpeg/SKILL.md +164 -0
- package/.claude/skills/homepage/SKILL.md +324 -0
- package/.claude/skills/i18n/SKILL.md +0 -0
- package/.claude/skills/inventory/SKILL.md +90 -79
- package/.claude/skills/markdown-pdf/SKILL.md +72 -0
- package/.claude/skills/merchant/SKILL.md +71 -68
- package/.claude/skills/order/SKILL.md +193 -21
- package/.claude/skills/product/SKILL.md +51 -6
- package/.claude/skills/product-page/SKILL.md +200 -0
- package/.claude/skills/review/SKILL.md +234 -0
- package/.claude/skills/scout/SKILL.md +116 -1
- package/.claude/skills/shipping/SKILL.md +193 -0
- package/README.md +5 -1
- package/dist/bin/bi-cli.d.ts +0 -0
- package/dist/bin/bi-cli.d.ts.map +0 -0
- package/dist/bin/bi-cli.js.map +0 -0
- package/dist/bin/comfy.d.ts +0 -0
- package/dist/bin/comfy.d.ts.map +0 -0
- package/dist/bin/comfy.js.map +0 -0
- package/dist/bin/commerce.d.ts +0 -0
- package/dist/bin/commerce.d.ts.map +0 -0
- package/dist/bin/commerce.js.map +0 -0
- package/dist/bin/google-ads.d.ts +0 -0
- package/dist/bin/google-ads.d.ts.map +0 -0
- package/dist/bin/google-ads.js.map +0 -0
- package/dist/bin/optima.d.ts +0 -0
- package/dist/bin/optima.d.ts.map +0 -0
- package/dist/bin/optima.js +3 -3
- package/dist/bin/optima.js.map +1 -1
- package/dist/bin/scout.d.ts +0 -0
- package/dist/bin/scout.d.ts.map +0 -0
- package/dist/bin/scout.js.map +0 -0
- package/dist/bin/serve.d.ts +0 -0
- package/dist/bin/serve.d.ts.map +0 -0
- package/dist/bin/serve.js +0 -0
- package/dist/bin/serve.js.map +0 -0
- package/dist/src/agent.d.ts +0 -48
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +3 -98
- package/dist/src/agent.js.map +1 -1
- package/dist/src/auth/device-flow.d.ts +0 -0
- package/dist/src/auth/device-flow.d.ts.map +0 -0
- package/dist/src/auth/device-flow.js +0 -0
- package/dist/src/auth/device-flow.js.map +0 -0
- package/dist/src/auth/index.d.ts +0 -0
- package/dist/src/auth/index.d.ts.map +0 -0
- package/dist/src/auth/index.js +0 -0
- package/dist/src/auth/index.js.map +0 -0
- package/dist/src/auth/token.d.ts +0 -0
- package/dist/src/auth/token.d.ts.map +0 -0
- package/dist/src/auth/token.js +0 -0
- package/dist/src/auth/token.js.map +0 -0
- package/dist/src/auth/types.d.ts +0 -0
- package/dist/src/auth/types.d.ts.map +0 -0
- package/dist/src/auth/types.js +0 -0
- package/dist/src/auth/types.js.map +0 -0
- package/dist/src/config.d.ts +0 -0
- package/dist/src/config.d.ts.map +0 -0
- package/dist/src/config.js +0 -0
- package/dist/src/config.js.map +0 -0
- package/dist/src/hooks-loader.d.ts +6 -0
- package/dist/src/hooks-loader.d.ts.map +1 -0
- package/dist/src/hooks-loader.js +215 -0
- package/dist/src/hooks-loader.js.map +1 -0
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/index.d.ts +0 -0
- package/dist/src/server/index.d.ts.map +0 -0
- package/dist/src/server/index.js +1 -1
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/types.d.ts +0 -0
- package/dist/src/server/types.d.ts.map +0 -0
- package/dist/src/server/types.js +0 -0
- package/dist/src/server/types.js.map +0 -0
- package/dist/src/system-prompt.d.ts +0 -0
- package/dist/src/system-prompt.d.ts.map +1 -1
- package/dist/src/system-prompt.js +10 -3
- package/dist/src/system-prompt.js.map +1 -1
- package/dist/src/tools/memory.d.ts +0 -0
- package/dist/src/tools/memory.d.ts.map +0 -0
- package/dist/src/tools/memory.js +0 -0
- package/dist/src/tools/memory.js.map +0 -0
- package/dist/src/types.d.ts +1 -11
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +0 -0
- package/dist/src/types.js.map +0 -0
- package/dist/src/ui/App.d.ts +6 -0
- package/dist/src/ui/App.d.ts.map +1 -0
- package/dist/src/ui/App.js +164 -0
- package/dist/src/ui/App.js.map +1 -0
- package/dist/src/ui/components/Composer.d.ts +10 -0
- package/dist/src/ui/components/Composer.d.ts.map +1 -0
- package/dist/src/ui/components/Composer.js +13 -0
- package/dist/src/ui/components/Composer.js.map +1 -0
- package/dist/src/ui/components/Header.d.ts +7 -0
- package/dist/src/ui/components/Header.d.ts.map +1 -0
- package/dist/src/ui/components/Header.js +7 -0
- package/dist/src/ui/components/Header.js.map +1 -0
- package/dist/src/ui/components/Message.d.ts +12 -0
- package/dist/src/ui/components/Message.d.ts.map +1 -0
- package/dist/src/ui/components/Message.js +21 -0
- package/dist/src/ui/components/Message.js.map +1 -0
- package/dist/src/ui/components/MessageList.d.ts +9 -0
- package/dist/src/ui/components/MessageList.d.ts.map +1 -0
- package/dist/src/ui/components/MessageList.js +18 -0
- package/dist/src/ui/components/MessageList.js.map +1 -0
- package/dist/src/ui/components/Spinner.d.ts +6 -0
- package/dist/src/ui/components/Spinner.d.ts.map +1 -0
- package/dist/src/ui/components/Spinner.js +7 -0
- package/dist/src/ui/components/Spinner.js.map +1 -0
- package/dist/src/ui/components/StatusBar.d.ts +11 -0
- package/dist/src/ui/components/StatusBar.d.ts.map +1 -0
- package/dist/src/ui/components/StatusBar.js +7 -0
- package/dist/src/ui/components/StatusBar.js.map +1 -0
- package/dist/src/ui/components/index.d.ts +7 -0
- package/dist/src/ui/components/index.d.ts.map +1 -0
- package/dist/src/ui/components/index.js +7 -0
- package/dist/src/ui/components/index.js.map +1 -0
- package/dist/src/ui/conversation-manager.d.ts +10 -9
- package/dist/src/ui/conversation-manager.d.ts.map +1 -1
- package/dist/src/ui/conversation-manager.js +35 -2
- package/dist/src/ui/conversation-manager.js.map +1 -1
- package/dist/src/ui/headless-types.d.ts +85 -4
- package/dist/src/ui/headless-types.d.ts.map +1 -1
- package/dist/src/ui/headless-types.js +0 -0
- package/dist/src/ui/headless-types.js.map +0 -0
- package/dist/src/ui/headless.d.ts +14 -4
- package/dist/src/ui/headless.d.ts.map +1 -1
- package/dist/src/ui/headless.js +311 -139
- package/dist/src/ui/headless.js.map +1 -1
- package/dist/src/ui/index.d.ts +0 -0
- package/dist/src/ui/index.d.ts.map +0 -0
- package/dist/src/ui/index.js +0 -0
- package/dist/src/ui/index.js.map +0 -0
- package/dist/src/ui/stream.d.ts +0 -0
- package/dist/src/ui/stream.d.ts.map +1 -1
- package/dist/src/ui/stream.js +27 -5
- package/dist/src/ui/stream.js.map +1 -1
- package/dist/src/validation/error-formatter.d.ts +21 -0
- package/dist/src/validation/error-formatter.d.ts.map +1 -0
- package/dist/src/validation/error-formatter.js +98 -0
- package/dist/src/validation/error-formatter.js.map +1 -0
- package/dist/src/validation/index.d.ts +10 -0
- package/dist/src/validation/index.d.ts.map +1 -0
- package/dist/src/validation/index.js +10 -0
- package/dist/src/validation/index.js.map +1 -0
- package/dist/src/validation/json-validator.d.ts +25 -0
- package/dist/src/validation/json-validator.d.ts.map +1 -0
- package/dist/src/validation/json-validator.js +173 -0
- package/dist/src/validation/json-validator.js.map +1 -0
- package/dist/src/validation/schema.d.ts +353 -0
- package/dist/src/validation/schema.d.ts.map +1 -0
- package/dist/src/validation/schema.js +57 -0
- package/dist/src/validation/schema.js.map +1 -0
- package/dist/src/validation/suggestions.d.ts +25 -0
- package/dist/src/validation/suggestions.d.ts.map +1 -0
- package/dist/src/validation/suggestions.js +144 -0
- package/dist/src/validation/suggestions.js.map +1 -0
- package/dist/src/validation/types.d.ts +40 -0
- package/dist/src/validation/types.d.ts.map +1 -0
- package/dist/src/validation/types.js +5 -0
- package/dist/src/validation/types.js.map +1 -0
- package/dist/src/validation/yaml-validator.d.ts +25 -0
- package/dist/src/validation/yaml-validator.d.ts.map +1 -0
- package/dist/src/validation/yaml-validator.js +177 -0
- package/dist/src/validation/yaml-validator.js.map +1 -0
- package/dist/src/version.d.ts +0 -0
- package/dist/src/version.d.ts.map +0 -0
- package/dist/src/version.js +0 -0
- package/dist/src/version.js.map +0 -0
- package/package.json +1 -1
- package/.claude/skills/storefront/SKILL.md +0 -532
package/dist/src/ui/headless.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { createInterface } from "readline";
|
|
2
2
|
import { ConversationManager } from "./conversation-manager.js";
|
|
3
3
|
/**
|
|
4
|
-
* Headless 模式 -
|
|
5
|
-
* 兼容 ai-cli 的消息格式
|
|
4
|
+
* Headless 模式 - 参数化版本
|
|
6
5
|
*
|
|
7
|
-
*
|
|
6
|
+
* 支持两种运行模式:
|
|
7
|
+
* - Docker 模式:stdin/stdout 通信,永久运行
|
|
8
|
+
* - Lambda 模式:自定义输出和消息源,处理完退出
|
|
9
|
+
*
|
|
10
|
+
* @param options - 配置选项
|
|
8
11
|
*/
|
|
9
|
-
export async function startHeadlessMode(options
|
|
10
|
-
|
|
11
|
-
// request_id -> { resolve, reject, conversationId }
|
|
12
|
-
const pendingQuestions = new Map();
|
|
12
|
+
export async function startHeadlessMode(options) {
|
|
13
|
+
const { cwd = process.cwd(), model = "claude-sonnet-4-5-20250929", streamFormat = "content", sendOutput, waitForAnswer, runForever = true, getNextMessage, restoreConversations, } = options;
|
|
13
14
|
// 生成唯一的 request_id
|
|
14
15
|
let requestIdCounter = 0;
|
|
15
16
|
function generateRequestId() {
|
|
16
17
|
return `ask_question_${Date.now()}_${++requestIdCounter}`;
|
|
17
18
|
}
|
|
18
19
|
// canUseTool 回调:处理 AskUserQuestion 工具
|
|
19
|
-
const canUseTool = async (toolName, input,
|
|
20
|
-
const { conversationId } = options;
|
|
20
|
+
const canUseTool = async (toolName, input, conversationId) => {
|
|
21
21
|
if (toolName === "AskUserQuestion") {
|
|
22
22
|
// 生成唯一 request_id
|
|
23
23
|
const requestId = generateRequestId();
|
|
@@ -28,92 +28,54 @@ export async function startHeadlessMode(options = {}) {
|
|
|
28
28
|
request_id: requestId,
|
|
29
29
|
questions: input.questions,
|
|
30
30
|
});
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
conversationId,
|
|
42
|
-
});
|
|
43
|
-
}).catch((error) => {
|
|
44
|
-
// 连接断开或用户取消,返回 deny
|
|
31
|
+
// 使用外部提供的 waitForAnswer 等待用户回答
|
|
32
|
+
try {
|
|
33
|
+
const answers = await waitForAnswer(requestId, conversationId);
|
|
34
|
+
return {
|
|
35
|
+
behavior: "allow",
|
|
36
|
+
updatedInput: { questions: input.questions, answers },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
// 超时或取消,返回 deny
|
|
45
41
|
return {
|
|
46
42
|
behavior: "deny",
|
|
47
43
|
message: error instanceof Error ? error.message : "Question cancelled",
|
|
48
44
|
};
|
|
49
|
-
}
|
|
45
|
+
}
|
|
50
46
|
}
|
|
51
47
|
// 其他工具直接放行
|
|
52
48
|
return { behavior: "allow", updatedInput: input };
|
|
53
49
|
};
|
|
50
|
+
// 打印启动诊断信息
|
|
51
|
+
console.error(`[Headless] Starting with cwd: ${cwd}`);
|
|
52
|
+
console.error(`[Headless] Model: ${model}`);
|
|
53
|
+
console.error(`[Headless] HOME: ${process.env.HOME}`);
|
|
54
|
+
console.error(`[Headless] USER: ${process.env.USER || process.env.USERNAME || 'unknown'}`);
|
|
54
55
|
const conversationManager = new ConversationManager({
|
|
55
|
-
|
|
56
|
+
cwd,
|
|
57
|
+
model,
|
|
56
58
|
canUseTool,
|
|
57
59
|
});
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
console.
|
|
60
|
+
// 恢复对话(如果有)
|
|
61
|
+
if (restoreConversations && restoreConversations.length > 0) {
|
|
62
|
+
console.error(`[Headless] Restoring ${restoreConversations.length} conversations`);
|
|
63
|
+
conversationManager.restore(restoreConversations);
|
|
64
|
+
sendOutput({
|
|
65
|
+
type: "info",
|
|
66
|
+
info: {
|
|
67
|
+
message: `Restored ${restoreConversations.length} conversations`,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
61
70
|
}
|
|
62
71
|
// 发送初始化消息
|
|
72
|
+
console.error(`[Headless] Initialization complete`);
|
|
63
73
|
sendOutput({
|
|
64
74
|
type: "info",
|
|
65
75
|
info: {
|
|
66
|
-
message: `Optima Agent ready (model: ${
|
|
76
|
+
message: `Optima Agent ready (model: ${model}, workspace: ${cwd})`,
|
|
67
77
|
},
|
|
68
78
|
});
|
|
69
|
-
// 创建 readline 接口
|
|
70
|
-
const rl = createInterface({
|
|
71
|
-
input: process.stdin,
|
|
72
|
-
output: process.stdout,
|
|
73
|
-
terminal: false,
|
|
74
|
-
});
|
|
75
|
-
// 处理每一行 JSON 输入
|
|
76
|
-
rl.on("line", async (line) => {
|
|
77
|
-
try {
|
|
78
|
-
const input = JSON.parse(line);
|
|
79
|
-
await handleInput(input);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
sendOutput({
|
|
83
|
-
type: "error",
|
|
84
|
-
error: {
|
|
85
|
-
message: `Invalid input: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
86
|
-
code: "INVALID_INPUT",
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
// 处理 stdin 关闭
|
|
92
|
-
rl.on("close", () => {
|
|
93
|
-
console.error("[Headless] stdin closed, continuing to run. Send SIGINT/SIGTERM to exit.");
|
|
94
|
-
});
|
|
95
|
-
// 处理进程终止信号
|
|
96
|
-
process.on("SIGINT", () => {
|
|
97
|
-
// 清理所有待处理的问题
|
|
98
|
-
for (const [requestId, pending] of pendingQuestions) {
|
|
99
|
-
pending.reject(new Error("Process terminated"));
|
|
100
|
-
}
|
|
101
|
-
pendingQuestions.clear();
|
|
102
|
-
process.exit(0);
|
|
103
|
-
});
|
|
104
|
-
process.on("SIGTERM", () => {
|
|
105
|
-
// 清理所有待处理的问题
|
|
106
|
-
for (const [requestId, pending] of pendingQuestions) {
|
|
107
|
-
pending.reject(new Error("Process terminated"));
|
|
108
|
-
}
|
|
109
|
-
pendingQuestions.clear();
|
|
110
|
-
process.exit(0);
|
|
111
|
-
});
|
|
112
|
-
// 永久等待,保持函数不返回(类似 ai-cli 的 await headless.start())
|
|
113
|
-
// 进程只能通过 SIGINT/SIGTERM 退出
|
|
114
|
-
await new Promise(() => {
|
|
115
|
-
// 永不 resolve,保持函数阻塞
|
|
116
|
-
});
|
|
117
79
|
// 处理输入消息
|
|
118
80
|
async function handleInput(input) {
|
|
119
81
|
switch (input.type) {
|
|
@@ -122,9 +84,9 @@ export async function startHeadlessMode(options = {}) {
|
|
|
122
84
|
sendOutput({
|
|
123
85
|
type: "init",
|
|
124
86
|
init: {
|
|
125
|
-
model
|
|
87
|
+
model,
|
|
126
88
|
maxContextTokens: 200000,
|
|
127
|
-
workspaceDir:
|
|
89
|
+
workspaceDir: cwd,
|
|
128
90
|
},
|
|
129
91
|
});
|
|
130
92
|
break;
|
|
@@ -142,7 +104,7 @@ export async function startHeadlessMode(options = {}) {
|
|
|
142
104
|
});
|
|
143
105
|
return;
|
|
144
106
|
}
|
|
145
|
-
await handleMessage(msgInput.conversation_id, msgInput.content);
|
|
107
|
+
await handleMessage(msgInput.conversation_id, msgInput.content, msgInput.streamFormat);
|
|
146
108
|
break;
|
|
147
109
|
}
|
|
148
110
|
case "abort": {
|
|
@@ -159,13 +121,6 @@ export async function startHeadlessMode(options = {}) {
|
|
|
159
121
|
}
|
|
160
122
|
case "delete_conversation": {
|
|
161
123
|
const deleteInput = input;
|
|
162
|
-
// 清理该会话的所有待处理问题
|
|
163
|
-
for (const [requestId, pending] of pendingQuestions) {
|
|
164
|
-
if (pending.conversationId === deleteInput.conversation_id) {
|
|
165
|
-
pending.reject(new Error("Conversation deleted"));
|
|
166
|
-
pendingQuestions.delete(requestId);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
124
|
const deleted = conversationManager.delete(deleteInput.conversation_id);
|
|
170
125
|
if (deleted) {
|
|
171
126
|
sendOutput({
|
|
@@ -188,13 +143,6 @@ export async function startHeadlessMode(options = {}) {
|
|
|
188
143
|
}
|
|
189
144
|
case "reset_conversation": {
|
|
190
145
|
const resetInput = input;
|
|
191
|
-
// 清理该会话的所有待处理问题
|
|
192
|
-
for (const [requestId, pending] of pendingQuestions) {
|
|
193
|
-
if (pending.conversationId === resetInput.conversation_id) {
|
|
194
|
-
pending.reject(new Error("Conversation reset"));
|
|
195
|
-
pendingQuestions.delete(requestId);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
146
|
conversationManager.reset(resetInput.conversation_id);
|
|
199
147
|
sendOutput({
|
|
200
148
|
type: "info",
|
|
@@ -216,33 +164,44 @@ export async function startHeadlessMode(options = {}) {
|
|
|
216
164
|
break;
|
|
217
165
|
}
|
|
218
166
|
case "answer_question": {
|
|
167
|
+
// 在参数化模式下,answer_question 应该通过 waitForAnswer 回调处理
|
|
168
|
+
// 这里只是为了兼容性保留,通常不会走到这里
|
|
219
169
|
const answerInput = input;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
170
|
+
sendOutput({
|
|
171
|
+
type: "error",
|
|
172
|
+
error: {
|
|
173
|
+
message: `Unexpected answer_question message for ${answerInput.request_id}. In parameterized mode, answers should be provided via waitForAnswer callback.`,
|
|
174
|
+
code: "UNEXPECTED_ANSWER",
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case "ping": {
|
|
180
|
+
sendOutput({
|
|
181
|
+
type: "pong",
|
|
182
|
+
timestamp: Date.now(),
|
|
183
|
+
});
|
|
234
184
|
break;
|
|
235
185
|
}
|
|
236
186
|
}
|
|
237
187
|
}
|
|
238
188
|
// 处理用户消息
|
|
239
|
-
async function handleMessage(conversationId, content) {
|
|
189
|
+
async function handleMessage(conversationId, content, messageStreamFormat, isRetry = false) {
|
|
190
|
+
// 使用消息级别的 streamFormat,如果没有则使用全局配置
|
|
191
|
+
const effectiveStreamFormat = messageStreamFormat ?? streamFormat;
|
|
192
|
+
console.error(`[Headless] Processing message for conversation ${conversationId}${isRetry ? ' (retry)' : ''}`);
|
|
193
|
+
console.error(`[Headless] Content: ${content.substring(0, 100)}${content.length > 100 ? '...' : ''}`);
|
|
194
|
+
console.error(`[Headless] Stream format: ${effectiveStreamFormat}`);
|
|
195
|
+
// 检查是否有旧的 session ID(用于判断是否需要重试逻辑)
|
|
196
|
+
const hasExistingSessionId = conversationManager.hasSessionId(conversationId);
|
|
197
|
+
console.error(`[Headless] Has existing session ID: ${hasExistingSessionId}`);
|
|
240
198
|
// 立即发送 thinking 状态,让前端显示加载动画
|
|
241
199
|
sendOutput({
|
|
242
200
|
type: "thinking",
|
|
243
201
|
conversation_id: conversationId,
|
|
244
202
|
});
|
|
245
203
|
const { state, agent } = conversationManager.getOrCreate(conversationId);
|
|
204
|
+
console.error(`[Headless] Agent created, starting chat...`);
|
|
246
205
|
const abortController = new AbortController();
|
|
247
206
|
conversationManager.setAbortController(conversationId, abortController);
|
|
248
207
|
let toolCallCounter = 0;
|
|
@@ -252,47 +211,89 @@ export async function startHeadlessMode(options = {}) {
|
|
|
252
211
|
const totalTokens = { input: 0, output: 0 };
|
|
253
212
|
const modelTokens = {};
|
|
254
213
|
try {
|
|
255
|
-
for await (const msg of agent.chat(content, { signal: abortController.signal })) {
|
|
214
|
+
for await (const msg of agent.chat(content, { signal: abortController.signal, streamFormat: effectiveStreamFormat })) {
|
|
256
215
|
// 保存 claude_sdk_session_id
|
|
257
216
|
if ("session_id" in msg && msg.session_id) {
|
|
258
217
|
conversationManager.updateClaudeSdkSessionId(conversationId, msg.session_id);
|
|
259
218
|
}
|
|
219
|
+
// 处理 text_delta 事件(delta 流式模式)
|
|
220
|
+
if (msg.type === "text_delta") {
|
|
221
|
+
const deltaMsg = msg;
|
|
222
|
+
sendOutput({
|
|
223
|
+
type: "text_delta",
|
|
224
|
+
conversation_id: conversationId,
|
|
225
|
+
delta: { text: deltaMsg.delta.text },
|
|
226
|
+
});
|
|
227
|
+
}
|
|
260
228
|
// 处理 assistant 消息
|
|
261
|
-
if (msg.type === "assistant" && msg.message
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
229
|
+
if (msg.type === "assistant" && msg.message) {
|
|
230
|
+
// 先处理 usage 并发送进度事件
|
|
231
|
+
if (msg.message.usage) {
|
|
232
|
+
const usage = msg.message.usage;
|
|
233
|
+
// 计算本次 API 调用的 token
|
|
234
|
+
const currentInputTokens = (usage.input_tokens ?? 0) +
|
|
235
|
+
(usage.cache_read_input_tokens ?? 0) +
|
|
236
|
+
(usage.cache_creation_input_tokens ?? 0);
|
|
237
|
+
const currentOutputTokens = usage.output_tokens ?? 0;
|
|
238
|
+
// 累积到会话总计
|
|
239
|
+
totalTokens.input += currentInputTokens;
|
|
240
|
+
totalTokens.output += currentOutputTokens;
|
|
241
|
+
// 发送实时进度事件
|
|
242
|
+
sendOutput({
|
|
243
|
+
type: "progress",
|
|
244
|
+
conversation_id: conversationId,
|
|
245
|
+
progress: {
|
|
246
|
+
total_input_tokens: totalTokens.input,
|
|
247
|
+
total_output_tokens: totalTokens.output,
|
|
248
|
+
current_input_tokens: currentInputTokens,
|
|
249
|
+
current_output_tokens: currentOutputTokens,
|
|
250
|
+
by_model: modelTokens,
|
|
251
|
+
timestamp: Date.now(),
|
|
252
|
+
},
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// 处理消息内容
|
|
256
|
+
if (msg.message.content) {
|
|
257
|
+
for (const block of msg.message.content) {
|
|
258
|
+
if (block.type === "text") {
|
|
259
|
+
// 在 delta 模式下,text 内容已通过 text_delta 事件发送,跳过 content 事件
|
|
260
|
+
if (effectiveStreamFormat !== "delta") {
|
|
261
|
+
sendOutput({
|
|
262
|
+
type: "content",
|
|
263
|
+
conversation_id: conversationId,
|
|
264
|
+
content: {
|
|
265
|
+
text: block.text,
|
|
266
|
+
},
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else if (block.type === "tool_use") {
|
|
271
|
+
toolCallCounter++;
|
|
272
|
+
// 保存 tool_use_id -> tool_name 映射
|
|
273
|
+
toolNameMap.set(block.id, block.name);
|
|
274
|
+
sendOutput({
|
|
275
|
+
type: "tool_call",
|
|
276
|
+
conversation_id: conversationId,
|
|
277
|
+
tool_call: {
|
|
278
|
+
id: block.id,
|
|
279
|
+
name: block.name,
|
|
280
|
+
arguments: typeof block.input === "string" ? block.input : JSON.stringify(block.input),
|
|
281
|
+
},
|
|
282
|
+
});
|
|
283
|
+
}
|
|
285
284
|
}
|
|
286
285
|
}
|
|
287
286
|
}
|
|
288
287
|
// 处理 tool_result
|
|
289
288
|
if (msg.type === "user" && msg.message?.content) {
|
|
289
|
+
console.error(`[Headless] Processing user message with ${msg.message.content.length} blocks`);
|
|
290
290
|
for (const block of msg.message.content) {
|
|
291
291
|
if (block.type === "tool_result") {
|
|
292
292
|
const output = typeof block.content === "string" ? block.content : JSON.stringify(block.content);
|
|
293
293
|
const toolUseId = block.tool_use_id || "";
|
|
294
294
|
// 从映射中获取工具名称
|
|
295
295
|
const toolName = toolNameMap.get(toolUseId) || "unknown";
|
|
296
|
+
console.error(`[Headless] Sending tool_result for ${toolName}, tool_call_id: ${toolUseId}`);
|
|
296
297
|
sendOutput({
|
|
297
298
|
type: "tool_result",
|
|
298
299
|
conversation_id: conversationId,
|
|
@@ -311,11 +312,10 @@ export async function startHeadlessMode(options = {}) {
|
|
|
311
312
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
312
313
|
const modelUsage = msg.modelUsage;
|
|
313
314
|
if (modelUsage) {
|
|
314
|
-
for (const [modelName,
|
|
315
|
-
const inputTokens = (
|
|
316
|
-
const outputTokens =
|
|
317
|
-
totalTokens
|
|
318
|
-
totalTokens.output += outputTokens;
|
|
315
|
+
for (const [modelName, modelData] of Object.entries(modelUsage)) {
|
|
316
|
+
const inputTokens = (modelData.inputTokens ?? 0) + (modelData.cacheReadInputTokens ?? 0) + (modelData.cacheCreationInputTokens ?? 0);
|
|
317
|
+
const outputTokens = modelData.outputTokens ?? 0;
|
|
318
|
+
// 注意:totalTokens 已经在 assistant 消息中累加过了,这里只更新 modelTokens
|
|
319
319
|
if (!modelTokens[modelName]) {
|
|
320
320
|
modelTokens[modelName] = { input: 0, output: 0 };
|
|
321
321
|
}
|
|
@@ -355,6 +355,57 @@ export async function startHeadlessMode(options = {}) {
|
|
|
355
355
|
}
|
|
356
356
|
catch (error) {
|
|
357
357
|
const errorMsg = error instanceof Error ? error.message : "Unknown error";
|
|
358
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
359
|
+
// 打印完整的错误信息到 stderr(调试用)
|
|
360
|
+
console.error(`[Headless] Error in chat: ${errorMsg}`);
|
|
361
|
+
if (errorStack) {
|
|
362
|
+
console.error(`[Headless] Stack trace:\n${errorStack}`);
|
|
363
|
+
}
|
|
364
|
+
// 检测 session 恢复失败的错误(通常是 session ID 过期或损坏)
|
|
365
|
+
// 典型的错误模式:
|
|
366
|
+
// - "Claude Code process exited with code 1" (SDK ProcessTransport 错误)
|
|
367
|
+
// - "Session not found" 或 "Invalid session"
|
|
368
|
+
// - 其他与 session/resume 相关的错误
|
|
369
|
+
const isSessionError = errorMsg.includes("process exited") ||
|
|
370
|
+
errorMsg.includes("session") ||
|
|
371
|
+
errorMsg.includes("Session") ||
|
|
372
|
+
errorMsg.includes("resume");
|
|
373
|
+
// 如果是 session 相关错误,且有旧的 session ID,且不是重试
|
|
374
|
+
// 则重置 session ID 并重试一次
|
|
375
|
+
if (isSessionError && hasExistingSessionId && !isRetry) {
|
|
376
|
+
console.error(`[Headless] Session error detected, resetting session ID and retrying...`);
|
|
377
|
+
// 重置 session ID
|
|
378
|
+
conversationManager.resetSessionId(conversationId);
|
|
379
|
+
// 通知前端会话已被重置
|
|
380
|
+
sendOutput({
|
|
381
|
+
type: "info",
|
|
382
|
+
conversation_id: conversationId,
|
|
383
|
+
info: {
|
|
384
|
+
message: "会话已过期,正在重新开始...",
|
|
385
|
+
code: "SESSION_RESET",
|
|
386
|
+
},
|
|
387
|
+
});
|
|
388
|
+
// 重试一次(isRetry = true 防止无限循环)
|
|
389
|
+
try {
|
|
390
|
+
await handleMessage(conversationId, content, messageStreamFormat, true);
|
|
391
|
+
return; // 重试成功,直接返回
|
|
392
|
+
}
|
|
393
|
+
catch (retryError) {
|
|
394
|
+
// 重试也失败了,继续到下面的错误处理
|
|
395
|
+
const retryErrorMsg = retryError instanceof Error ? retryError.message : "Unknown error";
|
|
396
|
+
console.error(`[Headless] Retry also failed: ${retryErrorMsg}`);
|
|
397
|
+
// 更新 errorMsg 为重试的错误
|
|
398
|
+
sendOutput({
|
|
399
|
+
type: "error",
|
|
400
|
+
conversation_id: conversationId,
|
|
401
|
+
error: {
|
|
402
|
+
message: `重试失败: ${retryErrorMsg}`,
|
|
403
|
+
code: "RETRY_FAILED",
|
|
404
|
+
},
|
|
405
|
+
});
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
358
409
|
if (errorMsg.includes("aborted")) {
|
|
359
410
|
// abort 也通知前端,确保每条路径都有终止事件
|
|
360
411
|
sendOutput({
|
|
@@ -381,5 +432,126 @@ export async function startHeadlessMode(options = {}) {
|
|
|
381
432
|
conversationManager.setAbortController(conversationId, null);
|
|
382
433
|
}
|
|
383
434
|
}
|
|
435
|
+
// 如果提供了 getNextMessage,使用它获取消息
|
|
436
|
+
if (getNextMessage) {
|
|
437
|
+
// Lambda 模式:循环获取消息直到返回 null
|
|
438
|
+
while (true) {
|
|
439
|
+
const input = await getNextMessage();
|
|
440
|
+
if (input === null) {
|
|
441
|
+
// 没有更多消息,退出
|
|
442
|
+
break;
|
|
443
|
+
}
|
|
444
|
+
try {
|
|
445
|
+
await handleInput(input);
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
sendOutput({
|
|
449
|
+
type: "error",
|
|
450
|
+
error: {
|
|
451
|
+
message: `Error handling input: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
452
|
+
code: "INPUT_ERROR",
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
// 如果不是永久运行模式,直接返回
|
|
458
|
+
if (!runForever) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
// Docker 模式:使用 readline 监听 stdin
|
|
463
|
+
// 或者 Lambda 模式但设置了 runForever = true
|
|
464
|
+
const rl = createInterface({
|
|
465
|
+
input: process.stdin,
|
|
466
|
+
output: process.stdout,
|
|
467
|
+
terminal: false,
|
|
468
|
+
});
|
|
469
|
+
// 处理每一行 JSON 输入
|
|
470
|
+
rl.on("line", async (line) => {
|
|
471
|
+
try {
|
|
472
|
+
const input = JSON.parse(line);
|
|
473
|
+
await handleInput(input);
|
|
474
|
+
}
|
|
475
|
+
catch (error) {
|
|
476
|
+
sendOutput({
|
|
477
|
+
type: "error",
|
|
478
|
+
error: {
|
|
479
|
+
message: `Invalid input: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
480
|
+
code: "INVALID_INPUT",
|
|
481
|
+
},
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
// 处理 stdin 关闭
|
|
486
|
+
rl.on("close", () => {
|
|
487
|
+
console.error("[Headless] stdin closed, continuing to run. Send SIGINT/SIGTERM to exit.");
|
|
488
|
+
});
|
|
489
|
+
// 保持事件循环活跃的定时器
|
|
490
|
+
// 这是必要的,因为当 stdin 关闭后,如果没有 active handles,
|
|
491
|
+
// Node.js 会检测到事件循环为空并退出进程(即使有 pending promises)
|
|
492
|
+
const keepAliveTimer = setInterval(() => {
|
|
493
|
+
// 每小时运行一次,仅用于保持事件循环活跃
|
|
494
|
+
}, 1000 * 60 * 60);
|
|
495
|
+
// 处理进程终止信号
|
|
496
|
+
const handleExit = () => {
|
|
497
|
+
clearInterval(keepAliveTimer);
|
|
498
|
+
process.exit(0);
|
|
499
|
+
};
|
|
500
|
+
process.on("SIGINT", handleExit);
|
|
501
|
+
process.on("SIGTERM", handleExit);
|
|
502
|
+
// 永久等待,保持函数不返回
|
|
503
|
+
await new Promise(() => {
|
|
504
|
+
// 永不 resolve,保持函数阻塞
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Docker 模式的便捷入口
|
|
509
|
+
*
|
|
510
|
+
* 使用默认的 stdin/stdout 通信,永久运行
|
|
511
|
+
*/
|
|
512
|
+
export async function startDockerHeadlessMode(options = {}) {
|
|
513
|
+
// 待处理的问题(用于 AskUserQuestion 工具)
|
|
514
|
+
const pendingQuestions = new Map();
|
|
515
|
+
// 创建 readline 接口用于接收 answer_question 消息
|
|
516
|
+
const answerRl = createInterface({
|
|
517
|
+
input: process.stdin,
|
|
518
|
+
output: process.stdout,
|
|
519
|
+
terminal: false,
|
|
520
|
+
});
|
|
521
|
+
// 监听 answer_question 消息
|
|
522
|
+
answerRl.on("line", (line) => {
|
|
523
|
+
try {
|
|
524
|
+
const input = JSON.parse(line);
|
|
525
|
+
if (input.type === "answer_question") {
|
|
526
|
+
const pending = pendingQuestions.get(input.request_id);
|
|
527
|
+
if (pending) {
|
|
528
|
+
pendingQuestions.delete(input.request_id);
|
|
529
|
+
pending.resolve(input.answers);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
catch {
|
|
534
|
+
// 忽略解析错误,让主循环处理
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
// 处理进程终止
|
|
538
|
+
const cleanup = () => {
|
|
539
|
+
for (const pending of pendingQuestions.values()) {
|
|
540
|
+
pending.reject(new Error("Process terminated"));
|
|
541
|
+
}
|
|
542
|
+
pendingQuestions.clear();
|
|
543
|
+
};
|
|
544
|
+
process.on("SIGINT", cleanup);
|
|
545
|
+
process.on("SIGTERM", cleanup);
|
|
546
|
+
await startHeadlessMode({
|
|
547
|
+
...options,
|
|
548
|
+
sendOutput: (event) => console.log(JSON.stringify(event)),
|
|
549
|
+
waitForAnswer: (requestId) => {
|
|
550
|
+
return new Promise((resolve, reject) => {
|
|
551
|
+
pendingQuestions.set(requestId, { resolve, reject });
|
|
552
|
+
});
|
|
553
|
+
},
|
|
554
|
+
runForever: true,
|
|
555
|
+
});
|
|
384
556
|
}
|
|
385
557
|
//# sourceMappingURL=headless.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../../src/ui/headless.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAahE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA4C,EAAE;IACpF,gCAAgC;IAChC,oDAAoD;IACpD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAI5B,CAAC;IAEL,mBAAmB;IACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,SAAS,iBAAiB;QACxB,OAAO,gBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IAC5D,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,KAAK,EACtB,QAAgB,EAChB,KAA8B,EAC9B,OAAuD,EAC5B,EAAE;QAC7B,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,kBAAkB;YAClB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAEtC,qBAAqB;YACrB,UAAU,CAAC;gBACT,IAAI,EAAE,cAAc;gBACpB,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,KAAK,CAAC,SAKf;aACH,CAAC,CAAC;YAEH,yBAAyB;YACzB,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACvD,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC9B,OAAO,EAAE,CAAC,OAA+B,EAAE,EAAE;wBAC3C,OAAO,CAAC;4BACN,QAAQ,EAAE,OAAO;4BACjB,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE;yBACtD,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM;oBACN,cAAc;iBACf,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,oBAAoB;gBACpB,OAAO;oBACL,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;iBACnD,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,WAAW;QACX,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC;QAClD,GAAG,OAAO;QACV,UAAU;KACX,CAAC,CAAC;IAEH,qBAAqB;IACrB,SAAS,UAAU,CAAC,KAAkB;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,UAAU;IACV,UAAU,CAAC;QACT,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,8BAA8B,OAAO,CAAC,KAAK,IAAI,4BAA4B,gBAAgB,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG;SACpI;KACF,CAAC,CAAC;IAEH,iBAAiB;IACjB,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,gBAAgB;IAChB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,UAAU,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,OAAO,EAAE,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;oBACrF,IAAI,EAAE,eAAe;iBACtB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,cAAc;IACd,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,WAAW;IACX,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,aAAa;QACb,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACpD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,aAAa;QACb,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACpD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,2BAA2B;IAC3B,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;QACrB,oBAAoB;IACtB,CAAC,CAAC,CAAC;IAEH,SAAS;IACT,KAAK,UAAU,WAAW,CAAC,KAAmB;QAC5C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,eAAe;gBACf,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,4BAA4B;wBACpD,gBAAgB,EAAE,MAAM;wBACxB,YAAY,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;qBAC3C;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,QAAQ,GAAG,KAA4B,CAAC;gBAE9C,sCAAsC;gBACtC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;oBAC9B,UAAU,CAAC;wBACT,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,OAAO,EAAE,6BAA6B;4BACtC,IAAI,EAAE,yBAAyB;yBAChC;qBACF,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,aAAa,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAChE,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,UAAU,GAAG,KAA0B,CAAC;gBAC9C,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACtD,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,eAAe,EAAE,UAAU,CAAC,eAAe;oBAC3C,IAAI,EAAE;wBACJ,OAAO,EAAE,gBAAgB,UAAU,CAAC,eAAe,UAAU;qBAC9D;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAGD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,WAAW,GAAG,KAAuC,CAAC;gBAE5D,gBAAgB;gBAChB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBACpD,IAAI,OAAO,CAAC,cAAc,KAAK,WAAW,CAAC,eAAe,EAAE,CAAC;wBAC3D,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAClD,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBACxE,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,CAAC;wBACT,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,OAAO,EAAE,gBAAgB,WAAW,CAAC,eAAe,UAAU;yBAC/D;qBACF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC;wBACT,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,OAAO,EAAE,gBAAgB,WAAW,CAAC,eAAe,YAAY;4BAChE,IAAI,EAAE,WAAW;yBAClB;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,UAAU,GAAG,KAAsC,CAAC;gBAE1D,gBAAgB;gBAChB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBACpD,IAAI,OAAO,CAAC,cAAc,KAAK,UAAU,CAAC,eAAe,EAAE,CAAC;wBAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBAChD,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAED,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACtD,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,OAAO,EAAE,gBAAgB,UAAU,CAAC,eAAe,QAAQ;qBAC5D;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,YAAY,GAAG,KAAyC,CAAC;gBAC/D,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACxD,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,OAAO,EAAE,YAAY,YAAY,CAAC,aAAa,CAAC,MAAM,gBAAgB;qBACvE;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,WAAW,GAAG,KAAmC,CAAC;gBACxD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACZ,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAChD,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC;wBACT,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,OAAO,EAAE,oBAAoB,WAAW,CAAC,UAAU,gCAAgC;4BACnF,IAAI,EAAE,mBAAmB;yBAC1B;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;IACT,KAAK,UAAU,aAAa,CAAC,cAAsB,EAAE,OAAe;QAClE,6BAA6B;QAC7B,UAAU,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,eAAe,EAAE,cAAc;SAChC,CAAC,CAAC;QAEH,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAExE,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE9C,qBAAqB;QACrB,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAsD,EAAE,CAAC;QAE1E,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAChF,2BAA2B;gBAC3B,IAAI,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC1C,mBAAmB,CAAC,wBAAwB,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/E,CAAC;gBAED,kBAAkB;gBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACrD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC1B,UAAU,CAAC;gCACT,IAAI,EAAE,SAAS;gCACf,eAAe,EAAE,cAAc;gCAC/B,OAAO,EAAE;oCACP,IAAI,EAAE,KAAK,CAAC,IAAI;iCACjB;6BACF,CAAC,CAAC;wBACL,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BACrC,eAAe,EAAE,CAAC;4BAClB,iCAAiC;4BACjC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4BACtC,UAAU,CAAC;gCACT,IAAI,EAAE,WAAW;gCACjB,eAAe,EAAE,cAAc;gCAC/B,SAAS,EAAE;oCACT,EAAE,EAAE,KAAK,CAAC,EAAE;oCACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;iCACvF;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,iBAAiB;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBAChD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;4BACjC,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACjG,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;4BAC1C,aAAa;4BACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;4BACzD,UAAU,CAAC;gCACT,IAAI,EAAE,aAAa;gCACnB,eAAe,EAAE,cAAc;gCAC/B,WAAW,EAAE;oCACX,YAAY,EAAE,SAAS;oCACvB,SAAS,EAAE,QAAQ;oCACnB,MAAM;oCACN,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;iCAC3C;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,8DAA8D;oBAC9D,MAAM,UAAU,GAAI,GAAW,CAAC,UAKlB,CAAC;oBAEf,IAAI,UAAU,EAAE,CAAC;wBACf,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC5D,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC;4BACzH,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;4BAE7C,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC;4BACjC,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC;4BAEnC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC5B,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;4BACnD,CAAC;4BACD,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC;4BAC5C,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC;wBAChD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;YACP,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAE1D,UAAU,CAAC;gBACT,IAAI,EAAE,QAAQ;gBACd,eAAe,EAAE,cAAc;gBAC/B,MAAM,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,eAAe;oBAC3B,KAAK,EAAE;wBACL,YAAY,EAAE,WAAW,CAAC,KAAK;wBAC/B,aAAa,EAAE,WAAW,CAAC,MAAM;wBACjC,QAAQ,EAAE,WAAW;qBACtB;iBACF;aACF,CAAC,CAAC;YAEH,4BAA4B;YAC5B,oDAAoD;YACpD,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBAChC,UAAU,CAAC;oBACT,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE;wBACN,eAAe,EAAE,cAAc;wBAC/B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;wBAClD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE;qBACrD;iBACF,CAAC,CAAC;YACL,CAAC;QAEH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1E,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,2BAA2B;gBAC3B,UAAU,CAAC;oBACT,IAAI,EAAE,QAAQ;oBACd,eAAe,EAAE,cAAc;oBAC/B,MAAM,EAAE;wBACN,MAAM,EAAE,SAAS;wBACjB,UAAU,EAAE,eAAe;qBAC5B;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC;oBACT,IAAI,EAAE,OAAO;oBACb,eAAe,EAAE,cAAc;oBAC/B,KAAK,EAAE;wBACL,OAAO,EAAE,QAAQ;wBACjB,IAAI,EAAE,iBAAiB;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../../src/ui/headless.ts"],"names":[],"mappings":"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"}
|
package/dist/src/ui/index.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/src/ui/index.js
CHANGED
|
File without changes
|
package/dist/src/ui/index.js.map
CHANGED
|
File without changes
|
package/dist/src/ui/stream.d.ts
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/ui/stream.ts"],"names":[],"mappings":"AA0OA,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/ui/stream.ts"],"names":[],"mappings":"AA0OA,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,QAooC3C"}
|