@zaclinley/dsh-mailharbor 0.9.1 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/lib/client.js +79 -25
- package/lib/client.js.map +3 -3
- package/lib/index.js +48 -14
- package/lib/index.js.map +3 -3
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -281,7 +281,7 @@ var init_imap = __esm({
|
|
|
281
281
|
await active.noop();
|
|
282
282
|
}).catch(() => {
|
|
283
283
|
});
|
|
284
|
-
},
|
|
284
|
+
}, 15e4);
|
|
285
285
|
this.keepalive.unref?.();
|
|
286
286
|
}
|
|
287
287
|
stopKeepalive() {
|
|
@@ -1716,26 +1716,28 @@ import { existsSync as existsSync4, mkdirSync as mkdirSync3, readFileSync as rea
|
|
|
1716
1716
|
import { dirname, join as join4 } from "node:path";
|
|
1717
1717
|
var TIMEOUT_MS = 9e4;
|
|
1718
1718
|
var MAX_PROMPT_CHARS = 4e4;
|
|
1719
|
-
var SUMMARY_SYSTEM = `\u4F60\u662F\u90AE\u4EF6\u52A9\u7406\uFF0C\u670D\u52A1\u4E8E\u4E2D\u6587\u7528\u6237\u3002\
|
|
1719
|
+
var SUMMARY_SYSTEM = `\u4F60\u662F\u90AE\u4EF6\u52A9\u7406\uFF0C\u670D\u52A1\u4E8E\u4E2D\u6587\u7528\u6237\u3002\u7528\u7B80\u4F53\u4E2D\u6587\uFF0C\u7B80\u6D01\u4F18\u5148\uFF0C\u603B\u957F\u4E0D\u8D85\u8FC7 180 \u5B57\u3002
|
|
1720
|
+
|
|
1721
|
+
\u4E25\u683C\u6309\u4E0B\u9762\u56DB\u4E2A\u5C0F\u6807\u9898\u8F93\u51FA\uFF0C\u4E0D\u8981\u8F93\u51FA\u5176\u4ED6\u5185\u5BB9\uFF1A
|
|
1720
1722
|
|
|
1721
1723
|
\u7ED3\u8BBA
|
|
1722
|
-
\
|
|
1724
|
+
\u4E00\u53E5\u8BDD\uFF08\u4E0D\u8D85\u8FC7 40 \u5B57\uFF09\u8BF4\u660E\u8FD9\u662F\u4EC0\u4E48\u90AE\u4EF6\u3001\u8C01\u8981\u505A\u4EC0\u4E48\u3002
|
|
1723
1725
|
|
|
1724
1726
|
\u9700\u8981\u4F60\u505A\u4EC0\u4E48
|
|
1725
|
-
\
|
|
1727
|
+
- \u6700\u591A 3 \u6761\uFF0C\u6BCF\u6761\u4E0D\u8D85\u8FC7 20 \u5B57\uFF1B\u6CA1\u6709\u5C31\u53EA\u5199\u300C\u65E0\u9700\u64CD\u4F5C\u300D\u3002
|
|
1728
|
+
- \u5982\u679C\u8EAB\u4EFD\u662F\u300C\u4EC5\u6284\u9001\u300D\uFF0C\u53EA\u5199\u300C\u4F60\u53EA\u662F\u88AB\u6284\u9001\uFF0C\u901A\u5E38\u65E0\u9700\u64CD\u4F5C\u300D\u3002
|
|
1729
|
+
- \u5982\u679C\u8EAB\u4EFD\u662F\u300C\u53D1\u4EF6\u4EBA\u300D\uFF0C\u53EA\u5199\u300C\u8FD9\u662F\u4F60\u53D1\u51FA\u7684\u90AE\u4EF6\uFF0C\u65E0\u9700\u64CD\u4F5C\u300D\u3002
|
|
1730
|
+
- \u5982\u679C\u8EAB\u4EFD\u662F\u300C\u4E0D\u5728\u6536\u4EF6\u4EBA/\u6284\u9001\u5217\u8868\u300D\uFF0C\u53EA\u5199\u300C\u4F60\u4E0D\u5728\u6536\u4EF6\u4EBA\u5217\u8868\uFF0C\u901A\u5E38\u65E0\u9700\u64CD\u4F5C\u300D\u3002
|
|
1726
1731
|
|
|
1727
1732
|
\u5173\u952E\u4FE1\u606F
|
|
1728
|
-
\
|
|
1733
|
+
- \u6700\u591A 5 \u6761\uFF0C\u6BCF\u6761\u4E0D\u8D85\u8FC7 30 \u5B57\uFF1B\u53EA\u5217\u771F\u6B63\u6709\u7528\u7684\u65F6\u95F4\u3001\u91D1\u989D\u3001\u4EBA\u540D\u3001\u5355\u53F7\u3001\u94FE\u63A5\u3002
|
|
1734
|
+
- \u6CA1\u6709\u5C31\u5199\u300C\u65E0\u300D\u3002
|
|
1729
1735
|
|
|
1730
1736
|
\u5EFA\u8BAE\u56DE\u590D\u8981\u70B9
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
\u8EAB\u4EFD\u89C4\u5219\uFF08\u7528\u6237\u8EAB\u4EFD\u4F1A\u5199\u5728\u90AE\u4EF6\u4FE1\u606F\u91CC\uFF09\uFF1A
|
|
1734
|
-
- \u5982\u679C\u7528\u6237\u662F\u300C\u4EC5\u6284\u9001\u300D\u6216\u300C\u4E0D\u5728\u6536\u4EF6\u4EBA/\u6284\u9001\u5217\u8868\u300D\uFF1A\u9700\u8981\u4F60\u505A\u4EC0\u4E48\u53EA\u5199\u300C\u4F60\u53EA\u662F\u88AB\u6284\u9001\uFF0C\u901A\u5E38\u65E0\u9700\u64CD\u4F5C\u300D\u8FD9\u7C7B\u7ED3\u8BBA\uFF1B\u4E0D\u8981\u8F93\u51FA\u300C\u5EFA\u8BAE\u56DE\u590D\u8981\u70B9\u300D\u8FD9\u4E00\u6BB5
|
|
1735
|
-
- \u5982\u679C\u7528\u6237\u662F\u300C\u53D1\u4EF6\u4EBA\u300D\uFF1A\u9700\u8981\u4F60\u505A\u4EC0\u4E48\u5199\u300C\u8FD9\u662F\u4F60\u53D1\u51FA\u7684\u90AE\u4EF6\uFF0C\u65E0\u9700\u64CD\u4F5C\u300D\uFF1B\u4E0D\u8981\u8F93\u51FA\u300C\u5EFA\u8BAE\u56DE\u590D\u8981\u70B9\u300D\u8FD9\u4E00\u6BB5
|
|
1736
|
-
- \u53EA\u6709\u300C\u76F4\u63A5\u6536\u4EF6\u4EBA\u300D\u4E14\u90AE\u4EF6\u786E\u5B9E\u8981\u6C42\u884C\u52A8\u65F6\uFF0C\u624D\u7ED9\u300C\u5EFA\u8BAE\u56DE\u590D\u8981\u70B9\u300D
|
|
1737
|
+
- \u53EA\u6709\u5F53\u8EAB\u4EFD\u662F\u300C\u76F4\u63A5\u6536\u4EF6\u4EBA\u300D\u4E14\u90AE\u4EF6\u660E\u786E\u8981\u6C42\u4F60\u884C\u52A8\u65F6\u624D\u8F93\u51FA\uFF1B\u6700\u591A 2 \u6761\uFF0C\u6BCF\u6761\u4E0D\u8D85\u8FC7 25 \u5B57\u3002
|
|
1738
|
+
- \u5176\u4ED6\u8EAB\u4EFD\u4E0D\u8981\u8F93\u51FA\u8FD9\u4E2A\u5C0F\u6807\u9898\u3002
|
|
1737
1739
|
|
|
1738
|
-
\
|
|
1740
|
+
\u4E0D\u8981\u590D\u8FF0\u539F\u6587\uFF0C\u4E0D\u8981\u89E3\u91CA\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3002`;
|
|
1739
1741
|
var REPLY_SYSTEM = (language, style) => `\u4F60\u662F\u90AE\u4EF6\u5199\u4F5C\u52A9\u7406\u3002\u6839\u636E\u539F\u59CB\u90AE\u4EF6\u548C\u7528\u6237\u7684\u8981\u6C42\uFF0C\u5199\u4E00\u5C01\u53EF\u4EE5\u76F4\u63A5\u53D1\u9001\u7684\u56DE\u590D\u6B63\u6587\u3002
|
|
1740
1742
|
|
|
1741
1743
|
\u8981\u6C42\uFF1A
|
|
@@ -1966,8 +1968,9 @@ var AiService = class {
|
|
|
1966
1968
|
}
|
|
1967
1969
|
async summarize(message, email, signal) {
|
|
1968
1970
|
const output = await this.complete(SUMMARY_SYSTEM, contextOf(message, email), signal);
|
|
1971
|
+
const compact = compactSummary(output);
|
|
1969
1972
|
const role = roleOf(message, email);
|
|
1970
|
-
return role === "to" || role === "unknown" ?
|
|
1973
|
+
return role === "to" || role === "unknown" ? compact : stripReplySuggestions(compact);
|
|
1971
1974
|
}
|
|
1972
1975
|
async reply(account, message, options = {}, signal) {
|
|
1973
1976
|
const style = this.style(account)?.profile ?? "";
|
|
@@ -2128,6 +2131,33 @@ function parseTaskJson(text2) {
|
|
|
2128
2131
|
}
|
|
2129
2132
|
return result.slice(0, 30);
|
|
2130
2133
|
}
|
|
2134
|
+
function compactSummary(text2) {
|
|
2135
|
+
const sections = [];
|
|
2136
|
+
let current = { title: "", lines: [] };
|
|
2137
|
+
for (const raw of text2.split(/\r?\n/)) {
|
|
2138
|
+
const line2 = raw.trim();
|
|
2139
|
+
const heading = /^#{0,4}\s*(结论|需要你做什么|关键信息|建议回复要点)\s*[::]?\s*$/.exec(line2);
|
|
2140
|
+
if (heading !== null) {
|
|
2141
|
+
if (current.title !== "" || current.lines.length > 0) sections.push(current);
|
|
2142
|
+
current = { title: heading[1] ?? "", lines: [] };
|
|
2143
|
+
} else if (line2 !== "") {
|
|
2144
|
+
current.lines.push(line2.replace(/^[-*•]\s*/, "").trim());
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
if (current.title !== "" || current.lines.length > 0) sections.push(current);
|
|
2148
|
+
if (sections.length === 0) return text2.trim();
|
|
2149
|
+
const limits = { \u7ED3\u8BBA: 2, \u9700\u8981\u4F60\u505A\u4EC0\u4E48: 3, \u5173\u952E\u4FE1\u606F: 5, \u5EFA\u8BAE\u56DE\u590D\u8981\u70B9: 2 };
|
|
2150
|
+
const output = [];
|
|
2151
|
+
for (const section of sections) {
|
|
2152
|
+
if (section.title === "") continue;
|
|
2153
|
+
const limit = limits[section.title] ?? 3;
|
|
2154
|
+
const lines = section.lines.filter((line2) => line2 !== "").slice(0, limit);
|
|
2155
|
+
if (lines.length === 0) continue;
|
|
2156
|
+
output.push(`${section.title}
|
|
2157
|
+
${lines.join("\n")}`);
|
|
2158
|
+
}
|
|
2159
|
+
return output.join("\n\n");
|
|
2160
|
+
}
|
|
2131
2161
|
function stripReplySuggestions(text2) {
|
|
2132
2162
|
const lines = text2.split(/\r?\n/);
|
|
2133
2163
|
const index = lines.findIndex((line2) => /^#{0,4}\s*建议回复要点\s*[::]?\s*$/.test(line2.trim()));
|
|
@@ -2380,7 +2410,7 @@ ${conversation.trim()}
|
|
|
2380
2410
|
}
|
|
2381
2411
|
|
|
2382
2412
|
// src/host/version.ts
|
|
2383
|
-
var VERSION = "0.
|
|
2413
|
+
var VERSION = "0.10.1";
|
|
2384
2414
|
|
|
2385
2415
|
// src/host/api.ts
|
|
2386
2416
|
init_smtp();
|
|
@@ -4890,6 +4920,10 @@ function apply(ctx) {
|
|
|
4890
4920
|
}
|
|
4891
4921
|
}
|
|
4892
4922
|
});
|
|
4923
|
+
const activeAccount2 = runtime.current.accounts.find((item) => item.id === runtime.current.activeAccountId);
|
|
4924
|
+
if (activeAccount2 !== void 0 && runtime.hasCredentials(activeAccount2)) {
|
|
4925
|
+
void runtime.provider(activeAccount2).warm().then(() => runtime.provider(activeAccount2).list("INBOX", 40)).catch(() => void 0);
|
|
4926
|
+
}
|
|
4893
4927
|
const handler = createApiHandler(runtime);
|
|
4894
4928
|
const disposers = [];
|
|
4895
4929
|
const start = () => {
|