@fgbg/mdocs 0.8.16 → 0.8.19
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/README.md +114 -76
- package/agent-skills/changelog/SKILL.md +21 -1
- package/agent-skills/index/SKILL.md +1 -1
- package/agent-skills/index.json +4 -4
- package/agent-skills/usage-agent-dev-loop/SKILL.md +7 -7
- package/agent-skills/usage-onboarding-ai/SKILL.md +98 -29
- package/agent-skills/usage-settings/SKILL.md +4 -4
- package/dist/server/agent/Agent/almost-empty.js +15 -0
- package/dist/server/agent/Agent/almost-empty.js.map +1 -0
- package/dist/server/agent/Agent/almost-empty.test.js +20 -0
- package/dist/server/agent/Agent/almost-empty.test.js.map +1 -0
- package/dist/server/agent/Agent/choice-pending.js +71 -0
- package/dist/server/agent/Agent/choice-pending.js.map +1 -0
- package/dist/server/agent/Agent/choice-pending.test.js +58 -0
- package/dist/server/agent/Agent/choice-pending.test.js.map +1 -0
- package/dist/server/agent/Agent/run.js +49 -3
- package/dist/server/agent/Agent/run.js.map +1 -1
- package/dist/server/agent/Agent/system-prompt.js +6 -5
- package/dist/server/agent/Agent/system-prompt.js.map +1 -1
- package/dist/server/agent/Agent/tools-account.js +16 -3
- package/dist/server/agent/Agent/tools-account.js.map +1 -1
- package/dist/server/agent/Agent/tools-choice.js +70 -0
- package/dist/server/agent/Agent/tools-choice.js.map +1 -0
- package/dist/server/agent/Agent/tools-coding.js +6 -3
- package/dist/server/agent/Agent/tools-coding.js.map +1 -1
- package/dist/server/agent/Agent/tools-overwrite.js +158 -0
- package/dist/server/agent/Agent/tools-overwrite.js.map +1 -0
- package/dist/server/routes/agent.routes.js +54 -0
- package/dist/server/routes/agent.routes.js.map +1 -1
- package/dist/server/search/document-index-manager.js +11 -8
- package/dist/server/search/document-index-manager.js.map +1 -1
- package/dist/web/assets/AgentChatPanel-CLKeiDeR.js +1 -0
- package/dist/web/assets/AiWriteWorkbench-Ecp214S5.js +6 -0
- package/dist/web/assets/DiagramEditor-BTRe45TX-DzJEhM4C.js +2 -0
- package/dist/web/assets/DocumentEditor-NPbbAape.js +21 -0
- package/dist/web/assets/{MergeView-BqQuuHxp.js → MergeView-BnWbq08U.js} +2 -2
- package/dist/web/assets/PlaygroundPage-BSGipUkC.js +8 -0
- package/dist/web/assets/SettingsPage-OklrFCx7.js +1 -0
- package/dist/web/assets/Toolbar-DjPuWk5G.js +126 -0
- package/dist/web/assets/VisitorPickerModal-BUS-cOq0.js +1 -0
- package/dist/web/assets/copy-hWOco_4c.js +11 -0
- package/dist/web/assets/diagram-gfUK8OHx.js +3016 -0
- package/dist/web/assets/editor-ONzd_YnO.js +16 -0
- package/dist/web/assets/history-AMIEbyMc.js +6 -0
- package/dist/web/assets/index-BksNm27A.css +1 -0
- package/dist/web/assets/index-C46BU1-j.js +185 -0
- package/dist/web/assets/meta2d-C8Z4cn-d.js +110 -0
- package/dist/web/assets/meta2dEngine-BD2XbzaV-D7hJ1H1g.js +1 -0
- package/dist/web/assets/motion-C4pN8CfU.js +8 -0
- package/dist/web/assets/plus-CnKbiP8x.js +6 -0
- package/dist/web/assets/react-B7vrA7AR.js +2126 -0
- package/dist/web/assets/react-vendor-BNpqFP9B.js +242 -0
- package/dist/web/assets/ui-DxdLi_28.js +3126 -0
- package/dist/web/index.html +28 -3
- package/package.json +2 -2
- package/dist/web/assets/_baseUniq-CTLDRefi.js +0 -1
- package/dist/web/assets/arc-C6HVu_cL.js +0 -1
- package/dist/web/assets/architectureDiagram-Q4EWVU46-BGZyIwfI.js +0 -36
- package/dist/web/assets/blockDiagram-DXYQGD6D-BnmQmYk5.js +0 -132
- package/dist/web/assets/c4Diagram-AHTNJAMY-D5ZSFyGW.js +0 -10
- package/dist/web/assets/channel-ComR_5wI.js +0 -1
- package/dist/web/assets/chunk-4BX2VUAB-bB7dqglW.js +0 -1
- package/dist/web/assets/chunk-4TB4RGXK-DLOuFWAV.js +0 -206
- package/dist/web/assets/chunk-55IACEB6-F-vn8P_5.js +0 -1
- package/dist/web/assets/chunk-EDXVE4YY-DJggdpTr.js +0 -1
- package/dist/web/assets/chunk-FMBD7UC4-CGFWLCLP.js +0 -15
- package/dist/web/assets/chunk-OYMX7WX6-nDiR5vU7.js +0 -231
- package/dist/web/assets/chunk-QZHKN3VN-D29FhQRL.js +0 -1
- package/dist/web/assets/chunk-YZCP3GAM-BmFALtIq.js +0 -1
- package/dist/web/assets/classDiagram-6PBFFD2Q-CxGT_r56.js +0 -1
- package/dist/web/assets/classDiagram-v2-HSJHXN6E-CxGT_r56.js +0 -1
- package/dist/web/assets/clone-J85LHgdR.js +0 -1
- package/dist/web/assets/cose-bilkent-S5V4N54A-J4Iar7P4.js +0 -1
- package/dist/web/assets/cytoscape.esm-BiciSPf8.js +0 -331
- package/dist/web/assets/dagre-KV5264BT-Cg07vwKD.js +0 -4
- package/dist/web/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/dist/web/assets/diagram-5BDNPKRD-D0FP-ifV.js +0 -10
- package/dist/web/assets/diagram-G4DWMVQ6-CNejTsu2.js +0 -24
- package/dist/web/assets/diagram-MMDJMWI5-DEQjM6f7.js +0 -43
- package/dist/web/assets/diagram-TYMM5635-CRGZl6sR.js +0 -24
- package/dist/web/assets/erDiagram-SMLLAGMA-BGOATwuq.js +0 -85
- package/dist/web/assets/flowDiagram-DWJPFMVM-DVHizH8q.js +0 -162
- package/dist/web/assets/ganttDiagram-T4ZO3ILL-dLF_Rbaw.js +0 -292
- package/dist/web/assets/gitGraphDiagram-UUTBAWPF-BNMxCpkL.js +0 -106
- package/dist/web/assets/graph-p7_cO2pv.js +0 -1
- package/dist/web/assets/index-5eJ_7IuO.css +0 -1
- package/dist/web/assets/index-DoJ58x_f.js +0 -6291
- package/dist/web/assets/infoDiagram-42DDH7IO-BDffsV8g.js +0 -2
- package/dist/web/assets/ishikawaDiagram-UXIWVN3A-C7fw-Hwt.js +0 -70
- package/dist/web/assets/journeyDiagram-VCZTEJTY-CuEYHG93.js +0 -139
- package/dist/web/assets/kanban-definition-6JOO6SKY-iodYb2rc.js +0 -89
- package/dist/web/assets/layout-Dblo7Nv4.js +0 -1
- package/dist/web/assets/linear-Dj7ICVZv.js +0 -1
- package/dist/web/assets/min-BC0MiAVU.js +0 -1
- package/dist/web/assets/mindmap-definition-QFDTVHPH-Bi8kR-nH.js +0 -96
- package/dist/web/assets/pieDiagram-DEJITSTG-DFXNJaaz.js +0 -30
- package/dist/web/assets/quadrantDiagram-34T5L4WZ-eG750Sg7.js +0 -7
- package/dist/web/assets/requirementDiagram-MS252O5E-BOS23lbk.js +0 -84
- package/dist/web/assets/sankeyDiagram-XADWPNL6-iuLPdF16.js +0 -10
- package/dist/web/assets/sequenceDiagram-FGHM5R23-9dOhL1F_.js +0 -157
- package/dist/web/assets/stateDiagram-FHFEXIEX-DiYubp3u.js +0 -1
- package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-C0u2afgY.js +0 -1
- package/dist/web/assets/timeline-definition-GMOUNBTQ-B7K2SCHF.js +0 -120
- package/dist/web/assets/vennDiagram-DHZGUBPP-DwsDXISO.js +0 -34
- package/dist/web/assets/wardley-RL74JXVD-DOtyNPcb.js +0 -162
- package/dist/web/assets/wardleyDiagram-NUSXRM2D-IO3BUkVB.js +0 -20
- package/dist/web/assets/xychartDiagram-5P7HB3ND-B_eC9Ig0.js +0 -7
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
const pending = new Map();
|
|
3
|
+
/** 默认 2 分钟,给用户留思考时间 */
|
|
4
|
+
export const DEFAULT_CHOICE_TIMEOUT_MS = 120_000;
|
|
5
|
+
/** 登记一次 choice 等待;超时 / abort 会自动解冻 */
|
|
6
|
+
export function waitForUserChoice(params) {
|
|
7
|
+
const requestId = randomUUID();
|
|
8
|
+
const timeoutMs = Math.min(Math.max(params.timeoutMs ?? DEFAULT_CHOICE_TIMEOUT_MS, 3_000), 300_000);
|
|
9
|
+
const promise = new Promise((resolve) => {
|
|
10
|
+
const finish = (result) => {
|
|
11
|
+
const cur = pending.get(requestId);
|
|
12
|
+
if (!cur)
|
|
13
|
+
return;
|
|
14
|
+
clearTimeout(cur.timer);
|
|
15
|
+
pending.delete(requestId);
|
|
16
|
+
resolve(result);
|
|
17
|
+
};
|
|
18
|
+
const timer = setTimeout(() => finish({ status: "timeout" }), timeoutMs);
|
|
19
|
+
pending.set(requestId, {
|
|
20
|
+
visitorId: params.visitorId,
|
|
21
|
+
resolve: finish,
|
|
22
|
+
timer,
|
|
23
|
+
});
|
|
24
|
+
const onAbort = () => finish({ status: "cancelled" });
|
|
25
|
+
if (params.signal) {
|
|
26
|
+
if (params.signal.aborted) {
|
|
27
|
+
onAbort();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
params.signal.addEventListener("abort", onAbort, { once: true });
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return { requestId, promise };
|
|
34
|
+
}
|
|
35
|
+
/** 前端点选 / 自由输入后解冻;choice 为内容字符串 */
|
|
36
|
+
export function resolveUserChoice(visitorId, requestId, choice) {
|
|
37
|
+
const entry = pending.get(requestId);
|
|
38
|
+
if (!entry)
|
|
39
|
+
throw new Error("choice_not_found");
|
|
40
|
+
if (entry.visitorId !== visitorId)
|
|
41
|
+
throw new Error("choice_forbidden");
|
|
42
|
+
const text = choice.trim();
|
|
43
|
+
if (!text)
|
|
44
|
+
throw new Error("choice_empty");
|
|
45
|
+
const result = { status: "selected", choice: text };
|
|
46
|
+
entry.resolve(result);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
/** 前端倒计时结束或用户放弃时解冻为 timeout */
|
|
50
|
+
export function expireUserChoice(visitorId, requestId) {
|
|
51
|
+
const entry = pending.get(requestId);
|
|
52
|
+
if (!entry)
|
|
53
|
+
throw new Error("choice_not_found");
|
|
54
|
+
if (entry.visitorId !== visitorId)
|
|
55
|
+
throw new Error("choice_forbidden");
|
|
56
|
+
entry.resolve({ status: "timeout" });
|
|
57
|
+
}
|
|
58
|
+
/** chat 断开时清掉该访客未完成的 choice */
|
|
59
|
+
export function cancelVisitorChoices(visitorId) {
|
|
60
|
+
for (const [id, entry] of pending) {
|
|
61
|
+
if (entry.visitorId === visitorId) {
|
|
62
|
+
entry.resolve({ status: "cancelled" });
|
|
63
|
+
// resolve 内会 delete;若竞态仍在则强制删
|
|
64
|
+
if (pending.has(id)) {
|
|
65
|
+
clearTimeout(entry.timer);
|
|
66
|
+
pending.delete(id);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=choice-pending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choice-pending.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/choice-pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { cancelVisitorChoices, expireUserChoice, resolveUserChoice, waitForUserChoice, } from "./choice-pending.js";
|
|
3
|
+
describe("choice-pending", () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
vi.useFakeTimers();
|
|
6
|
+
});
|
|
7
|
+
afterEach(() => {
|
|
8
|
+
vi.useRealTimers();
|
|
9
|
+
});
|
|
10
|
+
it("resolves with selected choice string", async () => {
|
|
11
|
+
const { requestId, promise } = waitForUserChoice({
|
|
12
|
+
visitorId: "v1",
|
|
13
|
+
timeoutMs: 60_000,
|
|
14
|
+
});
|
|
15
|
+
const settled = promise.then((r) => r);
|
|
16
|
+
resolveUserChoice("v1", requestId, " 打开帮写 ");
|
|
17
|
+
await expect(settled).resolves.toEqual({
|
|
18
|
+
status: "selected",
|
|
19
|
+
choice: "打开帮写",
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it("times out", async () => {
|
|
23
|
+
const { promise } = waitForUserChoice({
|
|
24
|
+
visitorId: "v1",
|
|
25
|
+
timeoutMs: 15_000,
|
|
26
|
+
});
|
|
27
|
+
const settled = promise.then((r) => r);
|
|
28
|
+
await vi.advanceTimersByTimeAsync(15_000);
|
|
29
|
+
await expect(settled).resolves.toEqual({ status: "timeout" });
|
|
30
|
+
});
|
|
31
|
+
it("expireUserChoice from frontend", async () => {
|
|
32
|
+
const { requestId, promise } = waitForUserChoice({
|
|
33
|
+
visitorId: "v1",
|
|
34
|
+
timeoutMs: 60_000,
|
|
35
|
+
});
|
|
36
|
+
const settled = promise.then((r) => r);
|
|
37
|
+
expireUserChoice("v1", requestId);
|
|
38
|
+
await expect(settled).resolves.toEqual({ status: "timeout" });
|
|
39
|
+
});
|
|
40
|
+
it("cancelVisitorChoices cancels pending", async () => {
|
|
41
|
+
const { promise } = waitForUserChoice({
|
|
42
|
+
visitorId: "v1",
|
|
43
|
+
timeoutMs: 60_000,
|
|
44
|
+
});
|
|
45
|
+
const settled = promise.then((r) => r);
|
|
46
|
+
cancelVisitorChoices("v1");
|
|
47
|
+
await expect(settled).resolves.toEqual({ status: "cancelled" });
|
|
48
|
+
});
|
|
49
|
+
it("rejects empty choice", () => {
|
|
50
|
+
const { requestId } = waitForUserChoice({
|
|
51
|
+
visitorId: "v1",
|
|
52
|
+
timeoutMs: 60_000,
|
|
53
|
+
});
|
|
54
|
+
expect(() => resolveUserChoice("v1", requestId, " ")).toThrow("choice_empty");
|
|
55
|
+
cancelVisitorChoices("v1");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=choice-pending.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choice-pending.test.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/choice-pending.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { createAccountTools } from "./tools-account.js";
|
|
|
9
9
|
import { createCodingTools } from "./tools-coding.js";
|
|
10
10
|
import { AgentSessionManager, } from "./session-manager.js";
|
|
11
11
|
import { getAgentContextUsageForApi, mergeContextUsage, } from "./context-usage.js";
|
|
12
|
+
import { cancelVisitorChoices } from "./choice-pending.js";
|
|
12
13
|
export { getAgentContextUsageForApi } from "./context-usage.js";
|
|
13
14
|
export function getAgentStatus(visitorId) {
|
|
14
15
|
const cfg = getVisitorAgentConfig(visitorId);
|
|
@@ -40,13 +41,29 @@ export async function runOnboardingChat(params) {
|
|
|
40
41
|
if (!skills.isReady())
|
|
41
42
|
throw new Error("skills_missing");
|
|
42
43
|
const { models, model } = createDeepSeekModel(cfg);
|
|
44
|
+
const choiceHooks = {
|
|
45
|
+
onChoiceCard: (card) => {
|
|
46
|
+
onEvent({ type: "choice_card", ...card });
|
|
47
|
+
},
|
|
48
|
+
onChoiceExpired: (requestId) => {
|
|
49
|
+
onEvent({ type: "choice_expired", requestId });
|
|
50
|
+
},
|
|
51
|
+
...(mode === "normal"
|
|
52
|
+
? {
|
|
53
|
+
onOpenCoding: (payload) => {
|
|
54
|
+
onEvent({ type: "open_coding", ...payload });
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
: {}),
|
|
58
|
+
signal,
|
|
59
|
+
};
|
|
43
60
|
const accountOrCoding = mode === "coding"
|
|
44
61
|
? createCodingTools(visitorId, {
|
|
45
62
|
documentId: params.documentId ?? null,
|
|
46
63
|
workingMarkdown: params.workingMarkdown ?? "",
|
|
47
64
|
baseMarkdown: params.baseMarkdown ?? "",
|
|
48
|
-
})
|
|
49
|
-
: createAccountTools(visitorId);
|
|
65
|
+
}, choiceHooks)
|
|
66
|
+
: createAccountTools(visitorId, choiceHooks);
|
|
50
67
|
const tools = [...createSkillTools(skills), ...accountOrCoding];
|
|
51
68
|
const systemPrompt = buildSystemPrompt(mode);
|
|
52
69
|
const sessionManager = new AgentSessionManager(visitorId, {
|
|
@@ -69,7 +86,10 @@ export async function runOnboardingChat(params) {
|
|
|
69
86
|
onEvent,
|
|
70
87
|
track,
|
|
71
88
|
}));
|
|
72
|
-
const onAbort = () =>
|
|
89
|
+
const onAbort = () => {
|
|
90
|
+
cancelVisitorChoices(visitorId);
|
|
91
|
+
agent.abort();
|
|
92
|
+
};
|
|
73
93
|
signal?.addEventListener("abort", onAbort);
|
|
74
94
|
try {
|
|
75
95
|
await agent.prompt(message);
|
|
@@ -97,6 +117,7 @@ export async function runOnboardingChat(params) {
|
|
|
97
117
|
}
|
|
98
118
|
finally {
|
|
99
119
|
signal?.removeEventListener("abort", onAbort);
|
|
120
|
+
cancelVisitorChoices(visitorId);
|
|
100
121
|
unsub();
|
|
101
122
|
}
|
|
102
123
|
}
|
|
@@ -313,6 +334,31 @@ function bindAgentEvents(opts) {
|
|
|
313
334
|
});
|
|
314
335
|
return;
|
|
315
336
|
}
|
|
337
|
+
if (event.toolName === "overwrite_document") {
|
|
338
|
+
const status = String(details?.status ?? "");
|
|
339
|
+
const name = String(details?.displayName ?? "").trim() || "文档";
|
|
340
|
+
if (status === "overwritten") {
|
|
341
|
+
onEvent({
|
|
342
|
+
type: "tool_notice",
|
|
343
|
+
toolName: event.toolName,
|
|
344
|
+
text: `已覆写「${name}」`,
|
|
345
|
+
});
|
|
346
|
+
const documentId = String(details?.documentId ?? "");
|
|
347
|
+
const headCommitId = String(details?.headCommitId ?? "");
|
|
348
|
+
if (documentId && headCommitId) {
|
|
349
|
+
onEvent({ type: "document_overwritten", documentId, headCommitId });
|
|
350
|
+
}
|
|
351
|
+
onEvent({ type: "tree_changed", reason: "overwrite_document" });
|
|
352
|
+
}
|
|
353
|
+
else if (status === "redirected_to_coding") {
|
|
354
|
+
onEvent({
|
|
355
|
+
type: "tool_notice",
|
|
356
|
+
toolName: event.toolName,
|
|
357
|
+
text: `「${name}」已打开帮写`,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
316
362
|
if (event.toolName === "get_working_document") {
|
|
317
363
|
onEvent({
|
|
318
364
|
type: "tool_notice",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,YAAY,EACZ,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EACL,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AA4BhE,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,GAAG,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;QACnC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACnC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACjC,MAAM,EAAE,CAAC,MAAM;YACb,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;gBACjB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAUvC;IACC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACvD,MAAM,IAAI,GAAc,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvE,MAAM,GAAG,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,eAAe,GACnB,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;YACrC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;SACxC,CAAC;QACJ,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE;QACxD,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;KAC9C,CAAC,CAAC;IACH,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GACpC,MAAM,cAAc,CAAC,sBAAsB,CACzC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC;IAEJ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,YAAY,EAAE;YACZ,YAAY;YACZ,KAAK;YACL,KAAK;YACL,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;SACvC;QACD,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3B,eAAe,CAAC;QACd,SAAS;QACT,cAAc;QACd,OAAO;QACP,KAAK;KACN,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;QAC1C,mCAAmC;QACnC,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACjE,OAAO,CAAC;YACN,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO;QAC5B,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,KAAK,EAAE,CAAC;IACV,CAAC;AACH,CAAC;AAED,qBAAqB;AAErB,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;CACrE,CAAC;AAEF,4CAA4C;AAC5C,SAAS,YAAY,CAAC,OAA8B,EAAE,KAAiB;IACrE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,OAAO;YACL,IAAI,EAAE,WAAoB;YAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACrD,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,EAAE;YACf,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,MAAe;YAC3B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC;aACL,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;aACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,2BAA2B,CAAC,YAEpC;IACC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;SACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,SAAS,eAAe,CAAC,IAKxB;IACC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACvD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,IACE,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAC/B,KAAK,CAAC,qBAAqB,CAAC,IAAI,KAAK,YAAY,EACjD,CAAC;YACD,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAClD,IAAI,OAAO;wBAAE,MAAM,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,KAAK,CAAC,OAIjB,CAAC;gBAEF,IAAI,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBAChE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzE,CAAC;gBAED,IACE,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC;oBAC5D,GAAG,CAAC,YAAY,EAChB,CAAC;oBACD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;oBACtD,OAAO;gBACT,CAAC;gBAED,2BAA2B;gBAC3B,IACE,CAAC,iBAAiB;oBAClB,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,EAC1D,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC;oBACzB,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC/D,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,IACE,KAAK,CAAC,IAAI,KAAK,oBAAoB;YACnC,KAAK,CAAC,QAAQ,KAAK,sBAAsB;YACzC,CAAC,KAAK,CAAC,OAAO,EACd,CAAC;YACD,MAAM,MAAM,GACV,KAAK,CAAC,MACP,EAAE,OAAO,EAAE,MAAM,CAAC;YACnB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/C,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;gBAClC,iBAAiB;gBACjB,eAAe;gBACf,eAAe;aAChB,CAAC,CAAC;YACH,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAI,KAAK,CAAC,MAAuD,EAAE,OAAO,CAAC;YAExF,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAI,OAAO,EAAE,OAIX,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,OAAO;qBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACX,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;oBAC7C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO;oBACpD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;iBACxC,CAAC,CAAC;qBACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,OAAO,CAAC;oBACN,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,QAAQ,IAAI,CAAC,MAAM,GAAG;oBAC7B,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAI,OAAO,EAAE,SAIb,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,SAAS;qBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACX,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;oBAC7C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO;oBACpD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;iBAC7C,CAAC,CAAC;qBACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,OAAO,CAAC;oBACN,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,QAAQ,IAAI,CAAC,MAAM,GAAG;oBAC7B,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAI,OAAO,EAAE,KAMT,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,KAAK;qBACf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACV,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtD,MAAM,KAAK,GACT,MAAM,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;wBACnC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;wBAC5B,KAAK,CAAC;oBACR,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC1C,OAAO;wBACL,UAAU;wBACV,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK;wBACrD,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;qBAC3C,CAAC;gBACJ,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC/B,OAAO,CAAC;oBACN,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;oBAC3D,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC,UAAU;oBAAE,OAAO;gBACxB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC/C,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/D,OAAO,CAAC;oBACN,IAAI,EAAE,eAAe;oBACrB,UAAU;oBACV,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO;oBAC3D,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;oBAChD,OAAO;iBACR,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;gBAClE,OAAO,CAAC;oBACN,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,UAAU,IAAI,GAAG;iBACxB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC;oBACN,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ;iBAC1C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;gBAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC;oBACN,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG;iBACtD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,sBAAsB,EAAE,CAAC;gBAC9C,OAAO,CAAC;oBACN,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,uBAAuB,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC;oBACN,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAuB;IAClD,MAAM,KAAK,GAAgC;QACzC,EAAE,EAAE,GAAG,CAAC,OAAO;QACf,IAAI,EAAE,GAAG,CAAC,OAAO;QACjB,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;QAC1D,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,IAAI;QACf,MAAM,EAAE;YACN,qBAAqB,EAAE,KAAK;YAC5B,uBAAuB,EAAE,KAAK;SAC/B;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,WAAW,CAChB,cAAc,CAAC;QACb,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,KAAK,CAAC,OAAO;oBACX,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBACxD,CAAC;aACF;SACF;QACD,MAAM,EAAE,CAAC,KAAK,CAAC;QACf,GAAG,EAAE,oBAAoB,EAAE;KAC5B,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
const NORMAL_RULES = `你是 mdocs 智能助手:上手向导 + 账号助理。可帮助理解产品用法,也可代为执行账号内的域/目录/空文档等结构操作。
|
|
2
2
|
|
|
3
3
|
规则:
|
|
4
|
-
1.
|
|
4
|
+
1. 禁止代写长文草稿给用户粘贴;不做发布、不做删除。改已有文档正文必须调用「覆写文档正文」(overwrite_document):几乎空则工具直接写入;已有实质正文时工具会弹出「直接覆写 / 打开帮写审阅 / 取消」供用户选择。有正文也可以覆写,只是要用户同意——由该工具出卡,你不得自行声称「无法覆写」。
|
|
5
5
|
2. 需要产品知识时:先调用「查询 mdocs 手册大纲」了解有哪些主题,再调用「查询 mdocs 手册正文」按 id 阅读相关章节后回答。
|
|
6
|
-
3.
|
|
7
|
-
4.
|
|
8
|
-
5.
|
|
9
|
-
6.
|
|
6
|
+
3. 允许调用账号工具执行:列域、建域、搜文、列树、列我的文档、建空文档、建文件夹;以及列访客、列/添加域成员、读取文档内容、移动文档、覆写文档正文。执行后基于工具 JSON 结果如实反馈,不得编造工具未返回的字段。用户问某篇具体内容时用「读取文档内容」(documentId);搜文/列树只给摘要或元数据。用户问「有哪些人可以邀请」时调用「列出活跃访客」;问某域现有成员时调用「列出域成员」;要把某人加进 restricted 域时先列访客再「添加域成员」。移动文档用「移动文档」(parentId 为文件夹 id,不传则到域根);仅创建者可移动。
|
|
7
|
+
4. 若需要用户在若干方案中做选择(例如选 A/B),必须调用「请用户选择」(ask_user_choice)。但用户要改某篇已有文档时:禁止用 ask_user_choice 自拟「无法覆写 / 新建一篇 / 我自己处理」等绕道选项;必须直接调用 overwrite_document,让工具出卡。工具返回后再如实说明结果。
|
|
8
|
+
5. 用户要求写作或改文档正文:调用 overwrite_document(documentId, 完整 markdown);按工具返回说明已覆写、已打开帮写、或用户取消/超时。可读取用户有权查看的文档来回答问题。
|
|
9
|
+
6. 先给出工具结果与结论,再给简短下一步建议;回答简洁、面向操作步骤。
|
|
10
|
+
7. 每轮回答正文结束后,另起一段追加一句引导(只追加一次,不要反复追问):先问「您还有什么想了解的吗?」,再给 1~2 个与本轮话题相关、可继续深挖的具体问题示例。示例要短、可直接当作下一句提问;与当前无关的主题不要乱推。`;
|
|
10
11
|
const CODING_RULES = `你是 mdocs「帮写」助手(coding 模式):在纯 Markdown 工作台协助用户起草/改稿。
|
|
11
12
|
|
|
12
13
|
规则:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/system-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/system-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG;;;;;;;;;iHAS4F,CAAC;AAElH,MAAM,YAAY,GAAG;;;;;;;;;sBASC,CAAC;AAEvB,MAAM,UAAU,iBAAiB,CAAC,OAAkB,QAAQ;IAC1D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AACzD,CAAC"}
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { createDocumentTools } from "./tools-documents.js";
|
|
2
2
|
import { createDomainTools } from "./tools-domains.js";
|
|
3
3
|
import { createVisitorTools } from "./tools-visitors.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { createChoiceTools } from "./tools-choice.js";
|
|
5
|
+
import { createOverwriteTools, } from "./tools-overwrite.js";
|
|
6
|
+
function isOverwriteHooks(hooks) {
|
|
7
|
+
return !!hooks && typeof hooks.onOpenCoding === "function";
|
|
8
|
+
}
|
|
9
|
+
/** 账号/结构操作 tools;带 hooks 时另挂 choice;Ask 另挂覆写。 */
|
|
10
|
+
export function createAccountTools(visitorId, choiceHooks, options = {}) {
|
|
11
|
+
const withOverwrite = options.withOverwrite !== false;
|
|
12
|
+
const base = [
|
|
7
13
|
...createVisitorTools(visitorId),
|
|
8
14
|
...createDomainTools(visitorId),
|
|
9
15
|
...createDocumentTools(visitorId),
|
|
10
16
|
];
|
|
17
|
+
const withChoice = choiceHooks
|
|
18
|
+
? [...base, ...createChoiceTools(visitorId, choiceHooks)]
|
|
19
|
+
: base;
|
|
20
|
+
if (withOverwrite && isOverwriteHooks(choiceHooks)) {
|
|
21
|
+
return [...withChoice, ...createOverwriteTools(visitorId, choiceHooks)];
|
|
22
|
+
}
|
|
23
|
+
return withChoice;
|
|
11
24
|
}
|
|
12
25
|
//# sourceMappingURL=tools-account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-account.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools-account.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-account.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAO9B,SAAS,gBAAgB,CACvB,KAAkC;IAElC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAQ,KAA4B,CAAC,YAAY,KAAK,UAAU,CAAC;AACrF,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,WAA6B,EAC7B,UAA+B,EAAE;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG;QACX,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAChC,GAAG,iBAAiB,CAAC,SAAS,CAAC;QAC/B,GAAG,mBAAmB,CAAC,SAAS,CAAC;KAClC,CAAC;IACF,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,aAAa,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Type } from "@earendil-works/pi-ai";
|
|
2
|
+
import { DEFAULT_CHOICE_TIMEOUT_MS, waitForUserChoice, } from "./choice-pending.js";
|
|
3
|
+
function asToolResult(payload) {
|
|
4
|
+
return {
|
|
5
|
+
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
6
|
+
details: payload,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function normalizeOptions(raw) {
|
|
10
|
+
if (!Array.isArray(raw))
|
|
11
|
+
return [];
|
|
12
|
+
const out = [];
|
|
13
|
+
for (const item of raw) {
|
|
14
|
+
if (typeof item !== "string")
|
|
15
|
+
continue;
|
|
16
|
+
const t = item.trim();
|
|
17
|
+
if (t && !out.includes(t))
|
|
18
|
+
out.push(t);
|
|
19
|
+
}
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
/** 向用户展示选项并阻塞等待内容字符串选择(可自由输入) */
|
|
23
|
+
export function createChoiceTools(visitorId, hooks) {
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
name: "ask_user_choice",
|
|
27
|
+
label: "请用户选择",
|
|
28
|
+
description: "向用户展示一张选择卡片:options 为内容字符串列表(你自填、不固定)。调用后会阻塞直到用户点选某项、自行输入一段文字、超时或取消。需要用户做二选一/多选一时必须用本工具,禁止只在口头上问。返回 JSON 含 status 与 choice(选中的内容字符串)。",
|
|
29
|
+
parameters: Type.Object({
|
|
30
|
+
title: Type.Optional(Type.String({ description: "卡片标题/问题" })),
|
|
31
|
+
options: Type.Array(Type.String({ description: "一个可点选项的文案" }), {
|
|
32
|
+
description: "至少 2 个选项文案",
|
|
33
|
+
minItems: 2,
|
|
34
|
+
}),
|
|
35
|
+
timeoutMs: Type.Optional(Type.Number({ description: "超时毫秒,默认 120000(2 分钟)" })),
|
|
36
|
+
}),
|
|
37
|
+
execute: async (_id, params) => {
|
|
38
|
+
const title = typeof params.title === "string"
|
|
39
|
+
? params.title.trim()
|
|
40
|
+
: "请选择";
|
|
41
|
+
const options = normalizeOptions(params.options);
|
|
42
|
+
if (options.length < 2) {
|
|
43
|
+
throw new Error("options must contain at least 2 non-empty strings");
|
|
44
|
+
}
|
|
45
|
+
const timeoutRaw = params.timeoutMs;
|
|
46
|
+
const timeoutMs = typeof timeoutRaw === "number" && Number.isFinite(timeoutRaw)
|
|
47
|
+
? timeoutRaw
|
|
48
|
+
: DEFAULT_CHOICE_TIMEOUT_MS;
|
|
49
|
+
const { requestId, promise } = waitForUserChoice({
|
|
50
|
+
visitorId,
|
|
51
|
+
timeoutMs,
|
|
52
|
+
signal: hooks.signal,
|
|
53
|
+
});
|
|
54
|
+
const expiresAt = new Date(Date.now() + timeoutMs).toISOString();
|
|
55
|
+
hooks.onChoiceCard({
|
|
56
|
+
requestId,
|
|
57
|
+
title: title || "请选择",
|
|
58
|
+
options,
|
|
59
|
+
expiresAt,
|
|
60
|
+
});
|
|
61
|
+
const result = await promise;
|
|
62
|
+
if (result.status === "timeout") {
|
|
63
|
+
hooks.onChoiceExpired?.(requestId);
|
|
64
|
+
}
|
|
65
|
+
return asToolResult(result);
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=tools-choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools-choice.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-choice.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,8 +65,11 @@ export function createCodingWriteTools(ctx) {
|
|
|
65
65
|
},
|
|
66
66
|
];
|
|
67
67
|
}
|
|
68
|
-
/** coding:账号结构 tools + 读写 buffer tools(手册 tools 在 run
|
|
69
|
-
export function createCodingTools(visitorId, ctx) {
|
|
70
|
-
return [
|
|
68
|
+
/** coding:账号结构 tools + 读写 buffer tools(手册 tools 在 run 里另挂;不含服务端覆写) */
|
|
69
|
+
export function createCodingTools(visitorId, ctx, choiceHooks) {
|
|
70
|
+
return [
|
|
71
|
+
...createAccountTools(visitorId, choiceHooks, { withOverwrite: false }),
|
|
72
|
+
...createCodingWriteTools(ctx),
|
|
73
|
+
];
|
|
71
74
|
}
|
|
72
75
|
//# sourceMappingURL=tools-coding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-coding.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-coding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools-coding.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-coding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Type } from "@earendil-works/pi-ai";
|
|
2
|
+
import { assertDocumentAccess, DocumentError } from "../../access/access-control.js";
|
|
3
|
+
import { getDocument, updateDocument } from "../../documents/document.service.js";
|
|
4
|
+
import { isAlmostEmptyDocumentText } from "./almost-empty.js";
|
|
5
|
+
import { DEFAULT_CHOICE_TIMEOUT_MS, waitForUserChoice, } from "./choice-pending.js";
|
|
6
|
+
const OVERWRITE_OPTION = "直接覆写";
|
|
7
|
+
const OPEN_CODING_OPTION = "打开帮写审阅";
|
|
8
|
+
const CANCEL_OPTION = "取消";
|
|
9
|
+
function asToolResult(payload) {
|
|
10
|
+
return {
|
|
11
|
+
content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
|
|
12
|
+
details: payload,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function classifyChoice(choice) {
|
|
16
|
+
const t = choice.trim();
|
|
17
|
+
if (t === OVERWRITE_OPTION || t === "覆写" || t.includes("直接覆写")) {
|
|
18
|
+
return "overwrite";
|
|
19
|
+
}
|
|
20
|
+
if (t === OPEN_CODING_OPTION || t.includes("帮写")) {
|
|
21
|
+
return "coding";
|
|
22
|
+
}
|
|
23
|
+
if (t === CANCEL_OPTION || t.includes("取消")) {
|
|
24
|
+
return "cancel";
|
|
25
|
+
}
|
|
26
|
+
// 自由输入:含「覆写」优先;否则不当作同意覆写
|
|
27
|
+
if (t.includes("覆写"))
|
|
28
|
+
return "overwrite";
|
|
29
|
+
return "cancel";
|
|
30
|
+
}
|
|
31
|
+
function doOverwrite(params) {
|
|
32
|
+
const updated = updateDocument({
|
|
33
|
+
actorVisitorId: params.visitorId,
|
|
34
|
+
documentId: params.documentId,
|
|
35
|
+
content: params.markdown,
|
|
36
|
+
contentFormat: "markdown",
|
|
37
|
+
version: { localBaseCommitId: params.localBaseCommitId },
|
|
38
|
+
});
|
|
39
|
+
return asToolResult({
|
|
40
|
+
status: "overwritten",
|
|
41
|
+
documentId: updated.documentId,
|
|
42
|
+
displayName: updated.displayName,
|
|
43
|
+
headCommitId: updated.headCommitId ?? null,
|
|
44
|
+
overwritten: true,
|
|
45
|
+
localBaseCommitId: params.localBaseCommitId,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Ask 覆写:空文直写;有正文则请用户选「直接覆写 / 打开帮写 / 取消」。
|
|
50
|
+
*/
|
|
51
|
+
export function createOverwriteTools(visitorId, hooks) {
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
name: "overwrite_document",
|
|
55
|
+
label: "覆写文档正文",
|
|
56
|
+
description: "将完整 Markdown 写入指定文档(服务端)。几乎空则直接写入;已有实质正文时本工具会弹出选择卡,选项固定为以下三项(勿另调 ask_user_choice 自拟其它文案):「直接覆写」「打开帮写审阅」「取消」。有正文不是无法覆写,只是要用户点选。必须传入完整 markdown。",
|
|
57
|
+
parameters: Type.Object({
|
|
58
|
+
documentId: Type.String({ description: "目标文档 documentId" }),
|
|
59
|
+
markdown: Type.String({ description: "要写入的完整 Markdown 正文" }),
|
|
60
|
+
}),
|
|
61
|
+
execute: async (_id, params) => {
|
|
62
|
+
const documentId = String(params.documentId ?? "").trim();
|
|
63
|
+
const markdown = String(params.markdown ?? "");
|
|
64
|
+
if (!documentId)
|
|
65
|
+
throw new Error("documentId is required");
|
|
66
|
+
try {
|
|
67
|
+
assertDocumentAccess(documentId, visitorId, "edit");
|
|
68
|
+
const doc = getDocument(documentId, visitorId, "text");
|
|
69
|
+
const plain = doc.content ?? "";
|
|
70
|
+
const displayName = String(doc.displayName ?? "").trim() || "未命名文档";
|
|
71
|
+
const headCommitId = doc.headCommitId;
|
|
72
|
+
if (!headCommitId) {
|
|
73
|
+
throw new Error("DOCUMENT_HAS_NO_HEAD: 文档缺少 headCommitId,无法安全覆写");
|
|
74
|
+
}
|
|
75
|
+
if (isAlmostEmptyDocumentText(plain)) {
|
|
76
|
+
return doOverwrite({
|
|
77
|
+
visitorId,
|
|
78
|
+
documentId,
|
|
79
|
+
markdown,
|
|
80
|
+
localBaseCommitId: headCommitId,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
const { requestId, promise } = waitForUserChoice({
|
|
84
|
+
visitorId,
|
|
85
|
+
timeoutMs: DEFAULT_CHOICE_TIMEOUT_MS,
|
|
86
|
+
signal: hooks.signal,
|
|
87
|
+
});
|
|
88
|
+
const expiresAt = new Date(Date.now() + DEFAULT_CHOICE_TIMEOUT_MS).toISOString();
|
|
89
|
+
hooks.onChoiceCard({
|
|
90
|
+
requestId,
|
|
91
|
+
title: `「${displayName}」已有正文,请选择`,
|
|
92
|
+
options: [OVERWRITE_OPTION, OPEN_CODING_OPTION, CANCEL_OPTION],
|
|
93
|
+
expiresAt,
|
|
94
|
+
});
|
|
95
|
+
const choiceResult = await promise;
|
|
96
|
+
if (choiceResult.status === "timeout") {
|
|
97
|
+
hooks.onChoiceExpired?.(requestId);
|
|
98
|
+
return asToolResult({
|
|
99
|
+
status: "timeout",
|
|
100
|
+
documentId,
|
|
101
|
+
overwritten: false,
|
|
102
|
+
message: "用户未在时限内选择;未覆写、未打开帮写",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (choiceResult.status === "cancelled") {
|
|
106
|
+
return asToolResult({
|
|
107
|
+
status: "cancelled",
|
|
108
|
+
documentId,
|
|
109
|
+
overwritten: false,
|
|
110
|
+
message: "选择已取消;未覆写、未打开帮写",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const choice = choiceResult.choice ?? "";
|
|
114
|
+
const action = classifyChoice(choice);
|
|
115
|
+
if (action === "overwrite") {
|
|
116
|
+
// 同意后重新读 head,避免等待期间被他人推进
|
|
117
|
+
const fresh = getDocument(documentId, visitorId, "text");
|
|
118
|
+
const base = fresh.headCommitId;
|
|
119
|
+
if (!base) {
|
|
120
|
+
throw new Error("DOCUMENT_HAS_NO_HEAD: 文档缺少 headCommitId,无法安全覆写");
|
|
121
|
+
}
|
|
122
|
+
return doOverwrite({
|
|
123
|
+
visitorId,
|
|
124
|
+
documentId,
|
|
125
|
+
markdown,
|
|
126
|
+
localBaseCommitId: base,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (action === "coding") {
|
|
130
|
+
hooks.onOpenCoding({ documentId, displayName });
|
|
131
|
+
return asToolResult({
|
|
132
|
+
status: "redirected_to_coding",
|
|
133
|
+
documentId,
|
|
134
|
+
displayName,
|
|
135
|
+
choice,
|
|
136
|
+
overwritten: false,
|
|
137
|
+
message: "已请前端打开帮写;Ask 未覆写服务端正文",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return asToolResult({
|
|
141
|
+
status: "declined",
|
|
142
|
+
documentId,
|
|
143
|
+
choice,
|
|
144
|
+
overwritten: false,
|
|
145
|
+
message: "用户取消;未覆写、未打开帮写",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
if (err instanceof DocumentError) {
|
|
150
|
+
throw new Error(`${err.code}: ${err.message}`);
|
|
151
|
+
}
|
|
152
|
+
throw err;
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=tools-overwrite.js.map
|