chatlab-cli 0.37.0 → 0.37.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/dist/{chat-command-WBAJBKIE.mjs → chat-command-YAFRLHMQ.mjs} +8 -8
- package/dist/{chunk-N2WGG3MS.mjs → chunk-2PY4XCH3.mjs} +6 -3
- package/dist/chunk-2PY4XCH3.mjs.map +1 -0
- package/dist/{chunk-FM3GXNEO.mjs → chunk-73TJ2S7W.mjs} +2 -2
- package/dist/{chunk-MSMDLDPB.mjs → chunk-ARIBCH47.mjs} +4 -4
- package/dist/{chunk-CR2MU7LN.mjs → chunk-FPVRSXQ4.mjs} +12 -12
- package/dist/{chunk-DQR2YS3I.mjs → chunk-GKCIRKOH.mjs} +8 -6
- package/dist/{chunk-DQR2YS3I.mjs.map → chunk-GKCIRKOH.mjs.map} +1 -1
- package/dist/{chunk-5YOHLJFB.mjs → chunk-JWJREWVN.mjs} +24 -7
- package/dist/chunk-JWJREWVN.mjs.map +1 -0
- package/dist/{chunk-RXMSZIYD.mjs → chunk-MMTEGUQA.mjs} +3 -3
- package/dist/{chunk-EJBBVLUN.mjs → chunk-N4SB6QZV.mjs} +2 -2
- package/dist/{chunk-4J4MA3RC.mjs → chunk-OTYNMDDL.mjs} +83 -55
- package/dist/chunk-OTYNMDDL.mjs.map +1 -0
- package/dist/{chunk-SQWN4GTQ.mjs → chunk-PDQV4RUA.mjs} +2 -2
- package/dist/{chunk-DKIYHA3O.mjs → chunk-UP6JIV3S.mjs} +15 -22
- package/dist/chunk-UP6JIV3S.mjs.map +1 -0
- package/dist/{chunk-2TV7M4CC.mjs → chunk-WDLO7OLX.mjs} +2 -2
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +1 -1
- package/dist/{http-X6OEOOSH.mjs → http-LPFPVTBC.mjs} +12 -12
- package/dist/{import-WBJ6YIQ7.mjs → import-T4WX2ZJL.mjs} +7 -7
- package/dist/index.mjs +12 -12
- package/dist/{mcp-FR6OKWKL.mjs → mcp-SMF3NWIN.mjs} +8 -8
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-WE5HNN2O.mjs → src-EGLLMTAU.mjs} +6 -6
- package/dist/{stream-import-YYQVZDGQ.mjs → stream-import-2BXJTTCE.mjs} +7 -7
- package/dist/{worker-runtime-YGB5ZDE4.mjs → worker-runtime-RDLSPXFT.mjs} +5 -5
- package/dist-cli-web/assets/{AISettingsTab-Co2sM1iY.js → AISettingsTab-CEhrXlYR.js} +1 -1
- package/dist-cli-web/assets/{AboutTab-DQ8r6mYE.js → AboutTab-Bbu0SsMM.js} +1 -1
- package/dist-cli-web/assets/{ActionToolsPanel-CmYpw8Mt.css → ActionToolsPanel-DDNXXH8v.css} +1 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-IB1yZxCE.js +75 -0
- package/dist-cli-web/assets/{Alert-DU1tLAAg.js → Alert-510jTN3l.js} +1 -1
- package/dist-cli-web/assets/{ApiSettingsTab-D5g5b79L.js → ApiSettingsTab-Bi1GRMN4.js} +1 -1
- package/dist-cli-web/assets/{BatchManageTab-BFUyVaGU.js → BatchManageTab-DhnqMCSM.js} +1 -1
- package/dist-cli-web/assets/{BufferResource-C-RfYwQW.js → BufferResource-CKZxnACp.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-Dz7JAMrR.js → CanvasRenderer-BeK5POBy.js} +1 -1
- package/dist-cli-web/assets/{CardDecoration-D28DI1G9.js → CardDecoration-RuBA3N2j.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordDrawer-Cph819yY.js → ChatRecordDrawer-BY_-lIEj.js} +1 -1
- package/dist-cli-web/assets/{ChatRecordWorkspace-BAfERdPc.js → ChatRecordWorkspace-7prKd-Tq.js} +1 -1
- package/dist-cli-web/assets/{Checkbox-B8uqt13j.js → Checkbox-_eH64bb0.js} +1 -1
- package/dist-cli-web/assets/{DataDirCleanupNotice-3sGBE5vU.js → DataDirCleanupNotice-BHaXwlfr.js} +1 -1
- package/dist-cli-web/assets/{DatePicker.vue_vue_type_script_setup_true_lang-CQuub8-f.js → DatePicker.vue_vue_type_script_setup_true_lang-D9Ul_GYz.js} +1 -1
- package/dist-cli-web/assets/{DebugToolsPanel-Cwkr0BOY.js → DebugToolsPanel-ByKItGrS.js} +1 -1
- package/dist-cli-web/assets/{EChart.vue_vue_type_script_setup_true_lang-BuLujQCF.js → EChart.vue_vue_type_script_setup_true_lang-DubnuUXI.js} +1 -1
- package/dist-cli-web/assets/{EChartBar.vue_vue_type_script_setup_true_lang-DuA5xbcC.js → EChartBar.vue_vue_type_script_setup_true_lang-DKNCZuFm.js} +1 -1
- package/dist-cli-web/assets/{EChartLine.vue_vue_type_script_setup_true_lang-CvmMEfYq.js → EChartLine.vue_vue_type_script_setup_true_lang-Fl7xAOSR.js} +1 -1
- package/dist-cli-web/assets/{EChartWordcloud-CHVtyPR7.js → EChartWordcloud-C6XM4KOX.js} +1 -1
- package/dist-cli-web/assets/{FileDropZone.vue_vue_type_script_setup_true_lang-BKPy9Qv-.js → FileDropZone.vue_vue_type_script_setup_true_lang-DYDdRSNE.js} +1 -1
- package/dist-cli-web/assets/{Filter-CMfRHIoK.js → Filter-CByj_rCR.js} +1 -1
- package/dist-cli-web/assets/{GlobalTaskBar-Jz6MASCu.js → GlobalTaskBar-BdELjzrs.js} +1 -1
- package/dist-cli-web/assets/{GroupRelationshipGalaxyView-Ch4obfEq.js → GroupRelationshipGalaxyView-CnzPEgUS.js} +1 -1
- package/dist-cli-web/assets/{Label-CuryuymO.js → Label-DCIcxkhU.js} +1 -1
- package/dist-cli-web/assets/{LoadingState.vue_vue_type_script_setup_true_lang-CoeQsaiL.js → LoadingState.vue_vue_type_script_setup_true_lang-BBcCt_Qm.js} +1 -1
- package/dist-cli-web/assets/{MessageExportModal-JqGZ-iLr.js → MessageExportModal-DNU16Bs8.js} +1 -1
- package/dist-cli-web/assets/{PageHeader-D4up77TB.js → PageHeader-CKeZjNNR.js} +1 -1
- package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-DYQRFk9s.js → PageTabs.vue_vue_type_script_setup_true_lang-C8M3wNNH.js} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-Cn7Eta5U.js → RelationshipGalaxyCanvas-CDhljGyJ.js} +3 -3
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-LlaX57z6.js → RelationshipGalaxyThreeCanvas-BP8fsvvf.js} +1 -1
- package/dist-cli-web/assets/{RenderTargetSystem-JhA2PUFi.js → RenderTargetSystem-D76QrDT_.js} +1 -1
- package/dist-cli-web/assets/{RovingFocusItem-DHaiTb4j.js → RovingFocusItem-BJMUQ5DJ.js} +1 -1
- package/dist-cli-web/assets/{ScreenCaptureModal-Bxhyt5g1.js → ScreenCaptureModal-DkX4z-M1.js} +1 -1
- package/dist-cli-web/assets/{SectionTabs.vue_vue_type_script_setup_true_lang-BlAje3Tf.js → SectionTabs.vue_vue_type_script_setup_true_lang-qFhJO5B0.js} +1 -1
- package/dist-cli-web/assets/{Select-Beeqv0wU.js → Select-B5oJc5y1.js} +1 -1
- package/dist-cli-web/assets/SettingsModal-BO-QKQ2h.js +2 -0
- package/dist-cli-web/assets/{StorageTab-B7GHadia.js → StorageTab-CPPXXaRm.js} +1 -1
- package/dist-cli-web/assets/{Switch-u4zlvUMa.js → Switch-CDk3LZ4_.js} +1 -1
- package/dist-cli-web/assets/{Tabs-RWKHwtfM.js → Tabs-BMq9wODW.js} +1 -1
- package/dist-cli-web/assets/{Tabs-B7-Koq3x.js → Tabs-DqWTBV8x.js} +1 -1
- package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-ndsa3-aT.js → ThemeCard.vue_vue_type_script_setup_true_lang-D2outEOV.js} +1 -1
- package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-DKa1flT-.js → TimeSelect.vue_vue_type_script_setup_true_lang-BcflxP_U.js} +1 -1
- package/dist-cli-web/assets/{VisuallyHiddenInput-DGDqcvUy.js → VisuallyHiddenInput-BAFpkxMI.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-ifvgA1fe.js → WebGLRenderer-DjCPvR_O.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-DwzmuWF0.js → WebGPURenderer-C2B_u03z.js} +1 -1
- package/dist-cli-web/assets/aiChat--CR4g2M7.js +8 -0
- package/dist-cli-web/assets/{base-BWDX-164.js → base-F6s0vTrr.js} +1 -1
- package/dist-cli-web/assets/{browserAll-CSIIETeE.js → browserAll-DiUAZg4L.js} +1 -1
- package/dist-cli-web/assets/{chatMessages--r0obAVw.css → chatMessages-BGRbSlvD.css} +1 -1
- package/dist-cli-web/assets/{chatMessages-Zywjea1n.js → chatMessages-Bd33SSXI.js} +20 -20
- package/dist-cli-web/assets/{cli-web-BRY49NWe.js → cli-web-DoibEdj2.js} +1 -1
- package/dist-cli-web/assets/{fetch-jx1VdM9j.js → fetch-4nh1LaVF.js} +1 -1
- package/dist-cli-web/assets/{fetch-qBaUXqFt.js → fetch-7lUvXbhU.js} +1 -1
- package/dist-cli-web/assets/{fetch-DNSDHSqQ.js → fetch-BEaW1j5H.js} +1 -1
- package/dist-cli-web/assets/{fetch-wzv71PYy.js → fetch-B_YFABxI.js} +1 -1
- package/dist-cli-web/assets/{fetch-D3nLtFBi.js → fetch-BeX69kpS.js} +1 -1
- package/dist-cli-web/assets/{fetch-Bf4cqeM3.js → fetch-CRocA-4C.js} +1 -1
- package/dist-cli-web/assets/{fetch-BiXab0IF.js → fetch-CXM-cjDS.js} +1 -1
- package/dist-cli-web/assets/{fetch-Co2vLmiE.js → fetch-CXqeAbnY.js} +1 -1
- package/dist-cli-web/assets/{fetch-r6mhEGrP.js → fetch-CxVcHNid.js} +1 -1
- package/dist-cli-web/assets/fetch-DBpDMy29.js +1 -0
- package/dist-cli-web/assets/{fetch-mYSeL4Ki.js → fetch-DKBBS9Op.js} +1 -1
- package/dist-cli-web/assets/{fetch-DeHqF6yL.js → fetch-epFXmPIQ.js} +1 -1
- package/dist-cli-web/assets/{host-jXJHyyOX.js → host-C4rU8pKA.js} +1 -1
- package/dist-cli-web/assets/{host-1emQf9_4.js → host-CtSqR_Zm.js} +1 -1
- package/dist-cli-web/assets/{index-Cw0IhKZ6.js → index-4DVZ2g0M.js} +1 -1
- package/dist-cli-web/assets/{index-DnpnIyle.js → index-B1oj9KDv.js} +33 -33
- package/dist-cli-web/assets/{index-slDUxib2.js → index-BFH1j_R9.js} +1 -1
- package/dist-cli-web/assets/{index-DOqbUvhA.js → index-BvMAw3Zd.js} +1 -1
- package/dist-cli-web/assets/{index-2dJCozDq.js → index-CaYtkONV.js} +4 -4
- package/dist-cli-web/assets/{index-B4mJkX_d.js → index-CuCQ1d9f.js} +1 -1
- package/dist-cli-web/assets/index-D3Hyjv4e.js +137 -0
- package/dist-cli-web/assets/{index-ClHMs0-a.js → index-D8cHMqV-.js} +2 -2
- package/dist-cli-web/assets/{index-BQ463TS7.js → index-DlHuILT_.js} +1 -1
- package/dist-cli-web/assets/{index-6ejRbH3h.js → index-R4LqAnx9.js} +2 -2
- package/dist-cli-web/assets/{index-LV9LfFNu.js → index-_m1mf1jm.js} +1 -1
- package/dist-cli-web/assets/{index-CYc_VLgK.js → index-ekvsNmfe.js} +1 -1
- package/dist-cli-web/assets/{index-B7biznha.js → index-mXe1LssU.js} +1 -1
- package/dist-cli-web/assets/{index-BOcFyPCa.js → index-mbLXPIyC.js} +1 -1
- package/dist-cli-web/assets/{people-page-header-Cx5r9Bk2.js → people-page-header-BbYSSpsO.js} +1 -1
- package/dist-cli-web/assets/{prompt-BggEDxxi.js → prompt-C-ofJ7t_.js} +1 -1
- package/dist-cli-web/assets/{semantic-index-config-builder-1sO0aEc1.js → semantic-index-config-builder-D3TYVYC-.js} +1 -1
- package/dist-cli-web/assets/service-BYOUkk7V.js +1 -0
- package/dist-cli-web/assets/{service-Bvq1fRkC.js → service-CppETV4a.js} +1 -1
- package/dist-cli-web/assets/service-tEx-5LUL.js +1 -0
- package/dist-cli-web/assets/useFormControl-CrWi_6Hn.js +1 -0
- package/dist-cli-web/assets/{useTable-DC7oxmBl.js → useTable-Clk7ecq-.js} +1 -1
- package/dist-cli-web/assets/{useToast-CCPBE-Sy.js → useToast-B5LaA6c-.js} +1 -1
- package/dist-cli-web/assets/{webworkerAll-FCJk6reG.js → webworkerAll-CyA4b4LT.js} +1 -1
- package/dist-cli-web/index.html +1 -1
- package/package.json +3 -3
- package/dist/chunk-4J4MA3RC.mjs.map +0 -1
- package/dist/chunk-5YOHLJFB.mjs.map +0 -1
- package/dist/chunk-DKIYHA3O.mjs.map +0 -1
- package/dist/chunk-N2WGG3MS.mjs.map +0 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang--RPlmfIu.js +0 -75
- package/dist-cli-web/assets/SettingsModal-DV8yDBJs.js +0 -2
- package/dist-cli-web/assets/aiChat-BY4C3UQe.js +0 -8
- package/dist-cli-web/assets/fetch-C8CcoTWY.js +0 -1
- package/dist-cli-web/assets/index-kePiJ3ca.js +0 -137
- package/dist-cli-web/assets/service-DkPheDt8.js +0 -1
- package/dist-cli-web/assets/service-DvI8O_7K.js +0 -1
- package/dist-cli-web/assets/useFormControl-B0aShtLp.js +0 -1
- /package/dist/{chat-command-WBAJBKIE.mjs.map → chat-command-YAFRLHMQ.mjs.map} +0 -0
- /package/dist/{chunk-FM3GXNEO.mjs.map → chunk-73TJ2S7W.mjs.map} +0 -0
- /package/dist/{chunk-MSMDLDPB.mjs.map → chunk-ARIBCH47.mjs.map} +0 -0
- /package/dist/{chunk-CR2MU7LN.mjs.map → chunk-FPVRSXQ4.mjs.map} +0 -0
- /package/dist/{chunk-RXMSZIYD.mjs.map → chunk-MMTEGUQA.mjs.map} +0 -0
- /package/dist/{chunk-EJBBVLUN.mjs.map → chunk-N4SB6QZV.mjs.map} +0 -0
- /package/dist/{chunk-SQWN4GTQ.mjs.map → chunk-PDQV4RUA.mjs.map} +0 -0
- /package/dist/{chunk-2TV7M4CC.mjs.map → chunk-WDLO7OLX.mjs.map} +0 -0
- /package/dist/{http-X6OEOOSH.mjs.map → http-LPFPVTBC.mjs.map} +0 -0
- /package/dist/{import-WBJ6YIQ7.mjs.map → import-T4WX2ZJL.mjs.map} +0 -0
- /package/dist/{mcp-FR6OKWKL.mjs.map → mcp-SMF3NWIN.mjs.map} +0 -0
- /package/dist/{src-WE5HNN2O.mjs.map → src-EGLLMTAU.mjs.map} +0 -0
- /package/dist/{stream-import-YYQVZDGQ.mjs.map → stream-import-2BXJTTCE.mjs.map} +0 -0
- /package/dist/{worker-runtime-YGB5ZDE4.mjs.map → worker-runtime-RDLSPXFT.mjs.map} +0 -0
|
@@ -3947,7 +3947,21 @@ var PUNCTUATION_REGEX = /[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~,。!?、;
|
|
|
3947
3947
|
var URL_REGEX = /https?:\/\/[^\s]+/g;
|
|
3948
3948
|
var MENTION_REGEX = /@[^\s@]+/g;
|
|
3949
3949
|
var PURE_NUMBER_REGEX = /^\d+$/;
|
|
3950
|
-
var
|
|
3950
|
+
var MEDIA_PLACEHOLDER_NAME_PATTERN = "(?:\u56FE\u7247|\u89C6\u9891|\u8BED\u97F3|\u6587\u4EF6|\u52A8\u753B\u8868\u60C5|\u8868\u60C5|\u94FE\u63A5|\u4F4D\u7F6E|\u5730\u7406\u4F4D\u7F6E|\u540D\u7247|\u7EA2\u5305|\u8F6C\u8D26|\u97F3\u4E50|Image|Photo|Video|Voice|Audio|File|Sticker|Link|Location)";
|
|
3951
|
+
var MEDIA_PLACEHOLDER_DURATION_PATTERN = "(?:\\s+\\d+(?:\\.\\d+)?\\s*(?:\u79D2|s))?";
|
|
3952
|
+
var SYSTEM_PLACEHOLDER_REGEX = new RegExp(
|
|
3953
|
+
`\\[${MEDIA_PLACEHOLDER_NAME_PATTERN}${MEDIA_PLACEHOLDER_DURATION_PATTERN}\\]`,
|
|
3954
|
+
"gi"
|
|
3955
|
+
);
|
|
3956
|
+
var MEDIA_PLACEHOLDER_ONLY_REGEX = new RegExp(
|
|
3957
|
+
`^\\[${MEDIA_PLACEHOLDER_NAME_PATTERN}${MEDIA_PLACEHOLDER_DURATION_PATTERN}\\]$`,
|
|
3958
|
+
"i"
|
|
3959
|
+
);
|
|
3960
|
+
var VOICE_TRANSCRIPTION_PREFIX_REGEX = new RegExp(
|
|
3961
|
+
`^\\s*\\[(?:\u8BED\u97F3|Voice|Audio)${MEDIA_PLACEHOLDER_DURATION_PATTERN}\\]\\s*`,
|
|
3962
|
+
"i"
|
|
3963
|
+
);
|
|
3964
|
+
var SYSTEM_MESSAGE_PREFIX_REGEX = /^\s*(?:\[(?:系统(?:消息)?|分享内容|system(?:\s+message)?)\]|【(?:系统(?:消息)?|分享内容|system(?:\s+message)?)】)\s*/iu;
|
|
3951
3965
|
var BRACKET_EMOJI_PLACEHOLDER_REGEX = /(?:\[|【)([\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Letter}\p{Number}_-]{1,16})(?:\]|】)/gu;
|
|
3952
3966
|
var CJK_TEXT_REGEX = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]/u;
|
|
3953
3967
|
var BRACKET_EMOJI_MAP = {
|
|
@@ -4040,6 +4054,18 @@ function cleanText(text) {
|
|
|
4040
4054
|
return CJK_TEXT_REGEX.test(name) ? " " : match;
|
|
4041
4055
|
}).replace(EMOJI_REGEX, " ").replace(EMOJI_VARIATION_SELECTOR_REGEX, " ").replace(PUNCTUATION_REGEX, " ").replace(/\s+/g, " ").trim();
|
|
4042
4056
|
}
|
|
4057
|
+
function stripMediaPlaceholders(text) {
|
|
4058
|
+
return text.replace(SYSTEM_PLACEHOLDER_REGEX, " ");
|
|
4059
|
+
}
|
|
4060
|
+
function stripVoiceTranscriptionPrefix(text) {
|
|
4061
|
+
return text.replace(VOICE_TRANSCRIPTION_PREFIX_REGEX, "").trim();
|
|
4062
|
+
}
|
|
4063
|
+
function isSystemMessageContent(text) {
|
|
4064
|
+
return SYSTEM_MESSAGE_PREFIX_REGEX.test(text);
|
|
4065
|
+
}
|
|
4066
|
+
function isMediaPlaceholderContent(text) {
|
|
4067
|
+
return MEDIA_PLACEHOLDER_ONLY_REGEX.test(text.trim());
|
|
4068
|
+
}
|
|
4043
4069
|
function isValidWord(word, locale, minLength, enableStopwords, isStopwordFn) {
|
|
4044
4070
|
if (!word || word.trim().length === 0) return false;
|
|
4045
4071
|
if (PURE_NUMBER_REGEX.test(word)) return false;
|
|
@@ -6819,17 +6845,27 @@ var SYSTEM_PLACEHOLDER_CONTENTS = /* @__PURE__ */ new Set([
|
|
|
6819
6845
|
"[Location]"
|
|
6820
6846
|
]);
|
|
6821
6847
|
function isSystemPlaceholderContent(content) {
|
|
6822
|
-
|
|
6848
|
+
const trimmed = content.trim();
|
|
6849
|
+
return SYSTEM_PLACEHOLDER_CONTENTS.has(trimmed) || isMediaPlaceholderContent(trimmed);
|
|
6823
6850
|
}
|
|
6824
6851
|
|
|
6825
6852
|
// ../../packages/core/src/query/advanced/repeat.ts
|
|
6853
|
+
var VOICE_TRANSCRIPTION_SQL = `
|
|
6854
|
+
TRIM(msg.content) LIKE '[\u8BED\u97F3] %' OR
|
|
6855
|
+
TRIM(msg.content) LIKE '[\u8BED\u97F3 %] %' OR
|
|
6856
|
+
TRIM(msg.content) LIKE '[Voice] %' OR
|
|
6857
|
+
TRIM(msg.content) LIKE '[Voice %] %' OR
|
|
6858
|
+
TRIM(msg.content) LIKE '[Audio] %' OR
|
|
6859
|
+
TRIM(msg.content) LIKE '[Audio %] %'
|
|
6860
|
+
`;
|
|
6861
|
+
var CATCHPHRASE_MESSAGE_TYPES = [0 /* TEXT */, 5 /* EMOJI */].join(", ");
|
|
6826
6862
|
function getCatchphraseAnalysis(db, filter) {
|
|
6827
6863
|
const { clause, params } = buildTimeFilter(filter);
|
|
6828
6864
|
let whereClause = clause;
|
|
6829
6865
|
if (whereClause.includes("WHERE")) {
|
|
6830
|
-
whereClause +=
|
|
6866
|
+
whereClause += ` AND COALESCE(m.account_name, '') != '\u7CFB\u7EDF\u6D88\u606F' AND msg.type IN (${CATCHPHRASE_MESSAGE_TYPES}) AND msg.content IS NOT NULL AND LENGTH(TRIM(msg.content)) >= 2`;
|
|
6831
6867
|
} else {
|
|
6832
|
-
whereClause =
|
|
6868
|
+
whereClause = ` WHERE COALESCE(m.account_name, '') != '\u7CFB\u7EDF\u6D88\u606F' AND msg.type IN (${CATCHPHRASE_MESSAGE_TYPES}) AND msg.content IS NOT NULL AND LENGTH(TRIM(msg.content)) >= 2`;
|
|
6833
6869
|
}
|
|
6834
6870
|
const rows = db.prepare(
|
|
6835
6871
|
`
|
|
@@ -6843,13 +6879,15 @@ function getCatchphraseAnalysis(db, filter) {
|
|
|
6843
6879
|
JOIN member m ON msg.sender_id = m.id
|
|
6844
6880
|
${whereClause}
|
|
6845
6881
|
GROUP BY m.id, TRIM(msg.content)
|
|
6846
|
-
HAVING COUNT(*) >= 2
|
|
6882
|
+
HAVING COUNT(*) >= 2 OR (${VOICE_TRANSCRIPTION_SQL})
|
|
6847
6883
|
ORDER BY m.id, count DESC
|
|
6848
6884
|
`
|
|
6849
6885
|
).all(...params);
|
|
6850
6886
|
const memberMap = /* @__PURE__ */ new Map();
|
|
6887
|
+
const phraseMaps = /* @__PURE__ */ new Map();
|
|
6851
6888
|
for (const row of rows) {
|
|
6852
|
-
|
|
6889
|
+
const content = stripVoiceTranscriptionPrefix(row.content);
|
|
6890
|
+
if (!content || isSystemMessageContent(content) || isSystemPlaceholderContent(content)) continue;
|
|
6853
6891
|
if (!memberMap.has(row.memberId)) {
|
|
6854
6892
|
memberMap.set(row.memberId, {
|
|
6855
6893
|
memberId: row.memberId,
|
|
@@ -6858,17 +6896,24 @@ function getCatchphraseAnalysis(db, filter) {
|
|
|
6858
6896
|
catchphrases: []
|
|
6859
6897
|
});
|
|
6860
6898
|
}
|
|
6861
|
-
|
|
6862
|
-
if (
|
|
6863
|
-
|
|
6899
|
+
let phrases = phraseMaps.get(row.memberId);
|
|
6900
|
+
if (!phrases) {
|
|
6901
|
+
phrases = /* @__PURE__ */ new Map();
|
|
6902
|
+
phraseMaps.set(row.memberId, phrases);
|
|
6864
6903
|
}
|
|
6904
|
+
const existing = phrases.get(content);
|
|
6905
|
+
if (existing) existing.count += Number(row.count);
|
|
6906
|
+
else phrases.set(content, { content, count: Number(row.count) });
|
|
6865
6907
|
}
|
|
6866
6908
|
const members = Array.from(memberMap.values());
|
|
6909
|
+
for (const member of members) {
|
|
6910
|
+
member.catchphrases = [...phraseMaps.get(member.memberId)?.values() ?? []].filter((item) => item.count >= 2).sort((a, b) => b.count - a.count || a.content.localeCompare(b.content)).slice(0, 100);
|
|
6911
|
+
}
|
|
6867
6912
|
members.sort((a, b) => {
|
|
6868
6913
|
const countDifference = (b.catchphrases[0]?.count ?? 0) - (a.catchphrases[0]?.count ?? 0);
|
|
6869
6914
|
return countDifference || a.memberId - b.memberId;
|
|
6870
6915
|
});
|
|
6871
|
-
return { members };
|
|
6916
|
+
return { members: members.filter((member) => member.catchphrases.length > 0) };
|
|
6872
6917
|
}
|
|
6873
6918
|
|
|
6874
6919
|
// ../../packages/core/src/query/advanced/group-relationship-galaxy.ts
|
|
@@ -7759,8 +7804,9 @@ var RE_MENTION = /@[^\s@]+/g;
|
|
|
7759
7804
|
var RE_EMOJI = /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F1E0}-\u{1F1FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/gu;
|
|
7760
7805
|
var RE_PUNCTUATION = /[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~,。!?、;:""''()【】《》…—~·\s]/g;
|
|
7761
7806
|
var RE_PURE_NUMBER = /^\d+$/;
|
|
7807
|
+
var LANGUAGE_ANALYSIS_MESSAGE_TYPES = [0 /* TEXT */, 5 /* EMOJI */].join(", ");
|
|
7762
7808
|
function cleanTextForNlp(text) {
|
|
7763
|
-
return text.replace(RE_URL, " ").replace(RE_MENTION, " ").replace(RE_EMOJI, " ").replace(RE_PUNCTUATION, " ").replace(/\s+/g, " ").trim();
|
|
7809
|
+
return stripMediaPlaceholders(text).replace(RE_URL, " ").replace(RE_MENTION, " ").replace(RE_EMOJI, " ").replace(RE_PUNCTUATION, " ").replace(/\s+/g, " ").trim();
|
|
7764
7810
|
}
|
|
7765
7811
|
function countMatches(text, regex) {
|
|
7766
7812
|
regex.lastIndex = 0;
|
|
@@ -7781,7 +7827,7 @@ function getLanguagePreferenceAnalysis(db, params) {
|
|
|
7781
7827
|
const { locale, timeFilter, nlpProvider } = params;
|
|
7782
7828
|
const { clause, params: filterParams } = buildTimeFilter(timeFilter);
|
|
7783
7829
|
let whereClause = clause;
|
|
7784
|
-
const textFilter =
|
|
7830
|
+
const textFilter = ` COALESCE(m.account_name, '') != '\u7CFB\u7EDF\u6D88\u606F' AND msg.type IN (${LANGUAGE_ANALYSIS_MESSAGE_TYPES}) AND msg.content IS NOT NULL AND LENGTH(TRIM(msg.content)) >= 2`;
|
|
7785
7831
|
if (whereClause.includes("WHERE")) {
|
|
7786
7832
|
whereClause += " AND " + textFilter;
|
|
7787
7833
|
} else {
|
|
@@ -7794,13 +7840,14 @@ function getLanguagePreferenceAnalysis(db, params) {
|
|
|
7794
7840
|
if (rows.length === 0) return { members: [], sharedWords: [], similarityScore: 0 };
|
|
7795
7841
|
const memberMessages = /* @__PURE__ */ new Map();
|
|
7796
7842
|
for (const row of rows) {
|
|
7797
|
-
|
|
7843
|
+
const content = stripVoiceTranscriptionPrefix(row.content);
|
|
7844
|
+
if (!content || isSystemMessageContent(content) || isSystemPlaceholderContent(content)) continue;
|
|
7798
7845
|
let entry = memberMessages.get(row.memberId);
|
|
7799
7846
|
if (!entry) {
|
|
7800
7847
|
entry = { name: row.name, messages: [] };
|
|
7801
7848
|
memberMessages.set(row.memberId, entry);
|
|
7802
7849
|
}
|
|
7803
|
-
entry.messages.push(
|
|
7850
|
+
entry.messages.push(content);
|
|
7804
7851
|
}
|
|
7805
7852
|
const isChinese2 = locale.startsWith("zh");
|
|
7806
7853
|
const minWordLength = isChinese2 ? 2 : 3;
|
|
@@ -9818,31 +9865,10 @@ var AssistantManager = class {
|
|
|
9818
9865
|
this.ensureInitialized();
|
|
9819
9866
|
return this.cache.has(id);
|
|
9820
9867
|
}
|
|
9821
|
-
getBuiltinCatalog() {
|
|
9822
|
-
this.ensureInitialized();
|
|
9823
|
-
return [];
|
|
9824
|
-
}
|
|
9825
9868
|
isGeneralAssistant(id) {
|
|
9826
9869
|
return this.generalIds.includes(id);
|
|
9827
9870
|
}
|
|
9828
9871
|
// ==================== Import ====================
|
|
9829
|
-
importAssistant(builtinId) {
|
|
9830
|
-
this.ensureInitialized();
|
|
9831
|
-
const builtinConfig = this.getBuiltinConfig(builtinId);
|
|
9832
|
-
if (!builtinConfig) return { success: false, error: `Builtin assistant not found: ${builtinId}` };
|
|
9833
|
-
const existing = this.findByBuiltinId(builtinId);
|
|
9834
|
-
if (existing) return { success: false, error: `Assistant already imported: ${builtinId}` };
|
|
9835
|
-
return this.saveToDisk(this.withBuiltinTracking(builtinConfig));
|
|
9836
|
-
}
|
|
9837
|
-
reimportAssistant(id) {
|
|
9838
|
-
this.ensureInitialized();
|
|
9839
|
-
const existing = this.cache.get(id);
|
|
9840
|
-
if (!existing) return { success: false, error: `Assistant not found: ${id}` };
|
|
9841
|
-
if (!existing.builtinId) return { success: false, error: "Only imported builtin assistants can be reimported" };
|
|
9842
|
-
const builtinConfig = this.getBuiltinConfig(existing.builtinId);
|
|
9843
|
-
if (!builtinConfig) return { success: false, error: `Builtin template not found: ${existing.builtinId}` };
|
|
9844
|
-
return this.saveToDisk(this.withBuiltinTracking(builtinConfig, existing.id));
|
|
9845
|
-
}
|
|
9846
9872
|
importAssistantFromMd(rawMd) {
|
|
9847
9873
|
this.ensureInitialized();
|
|
9848
9874
|
const config = parseAssistantFile(rawMd, "cloud_import.md");
|
|
@@ -9936,9 +9962,6 @@ var AssistantManager = class {
|
|
|
9936
9962
|
return { success: true, backupId };
|
|
9937
9963
|
}
|
|
9938
9964
|
// ==================== Internal ====================
|
|
9939
|
-
findByBuiltinId(builtinId) {
|
|
9940
|
-
return Array.from(this.cache.values()).find((c) => c.builtinId === builtinId);
|
|
9941
|
-
}
|
|
9942
9965
|
saveToDisk(config) {
|
|
9943
9966
|
try {
|
|
9944
9967
|
const filePath = this.deps.fs.joinPath(this.deps.assistantsDir, `${config.id}.md`);
|
|
@@ -13433,7 +13456,8 @@ async function runAgentCore(options) {
|
|
|
13433
13456
|
return clampThinkingLevel(piModel, level);
|
|
13434
13457
|
})();
|
|
13435
13458
|
const finalThinkingLevel = resolvedThinkingLevel ?? (piModel.reasoning ? void 0 : "off");
|
|
13436
|
-
let hasReachedToolRoundLimit =
|
|
13459
|
+
let hasReachedToolRoundLimit = maxToolRounds <= 0;
|
|
13460
|
+
let hasCompletedFinalAnswerTurn = false;
|
|
13437
13461
|
const thinkingFormat = piModel.compat?.thinkingFormat;
|
|
13438
13462
|
const replayOptions = piModel.reasoning && thinkingFormat === "deepseek" ? {
|
|
13439
13463
|
modelInfo: { api: piModel.api, provider: piModel.provider, id: piModel.id },
|
|
@@ -13456,10 +13480,11 @@ async function runAgentCore(options) {
|
|
|
13456
13480
|
onConvertToLlm?.(filtered);
|
|
13457
13481
|
return filtered;
|
|
13458
13482
|
},
|
|
13459
|
-
|
|
13483
|
+
afterToolCall: async ({ result }) => result.isError === true ? { isError: true } : void 0,
|
|
13484
|
+
shouldStopAfterTurn: async () => hasCompletedFinalAnswerTurn,
|
|
13485
|
+
prepareNextTurnWithContext: ({ context }) => hasReachedToolRoundLimit ? {
|
|
13460
13486
|
context: {
|
|
13461
|
-
|
|
13462
|
-
messages: coreAgent.state.messages,
|
|
13487
|
+
...context,
|
|
13463
13488
|
tools: []
|
|
13464
13489
|
}
|
|
13465
13490
|
} : void 0,
|
|
@@ -13537,9 +13562,10 @@ async function runAgentCore(options) {
|
|
|
13537
13562
|
});
|
|
13538
13563
|
} else if (event.type === "turn_end") {
|
|
13539
13564
|
const hadToolCalls = event.toolResults.length > 0;
|
|
13540
|
-
|
|
13565
|
+
const isFinalAnswerTurn = hasReachedToolRoundLimit;
|
|
13566
|
+
if (hadToolCalls && !hasReachedToolRoundLimit) {
|
|
13541
13567
|
toolRounds += 1;
|
|
13542
|
-
if (
|
|
13568
|
+
if (maxToolRounds > 0 && toolRounds >= maxToolRounds) {
|
|
13543
13569
|
hasReachedToolRoundLimit = true;
|
|
13544
13570
|
coreAgent.state.tools = [];
|
|
13545
13571
|
coreAgent.steer({
|
|
@@ -13549,6 +13575,7 @@ async function runAgentCore(options) {
|
|
|
13549
13575
|
});
|
|
13550
13576
|
}
|
|
13551
13577
|
}
|
|
13578
|
+
if (isFinalAnswerTurn) hasCompletedFinalAnswerTurn = true;
|
|
13552
13579
|
onEvent({ type: "turn_end", round: toolRounds, hadToolCalls });
|
|
13553
13580
|
} else if (event.type === "message_end") {
|
|
13554
13581
|
if (event.message.role === "assistant") {
|
|
@@ -20797,9 +20824,20 @@ export {
|
|
|
20797
20824
|
generateSessionIndex,
|
|
20798
20825
|
generateIncrementalSessionIndex,
|
|
20799
20826
|
getPrivateChatMemberAvatar,
|
|
20827
|
+
CHATLAB_FORMAT_VERSION,
|
|
20828
|
+
CHATLAB_SUPPORTED_FORMAT_VERSIONS,
|
|
20829
|
+
isSupportedChatLabFormatVersion,
|
|
20830
|
+
ANNUAL_SUMMARY_PLUGIN_ID,
|
|
20831
|
+
TIME_INVESTMENT_PLUGIN_ID,
|
|
20832
|
+
NAVIGATION_LAYOUT_SCHEMA_VERSION,
|
|
20833
|
+
MessageType,
|
|
20834
|
+
KNOWN_PLATFORMS,
|
|
20835
|
+
getDefaultGeneralAssistantId,
|
|
20836
|
+
CONTACTS_TIME_RANGE_PRESETS,
|
|
20800
20837
|
POS_TAG_DEFINITIONS,
|
|
20801
20838
|
MEANINGFUL_POS_TAGS,
|
|
20802
20839
|
isStopword,
|
|
20840
|
+
isSystemMessageContent,
|
|
20803
20841
|
buildExcludeKeywordsConditions,
|
|
20804
20842
|
getMentionAnalysis,
|
|
20805
20843
|
getLaughAnalysis,
|
|
@@ -20819,16 +20857,6 @@ export {
|
|
|
20819
20857
|
shouldScopeContactToSession,
|
|
20820
20858
|
buildContactKey,
|
|
20821
20859
|
getCrossChatSessionActivityFacts,
|
|
20822
|
-
CHATLAB_FORMAT_VERSION,
|
|
20823
|
-
CHATLAB_SUPPORTED_FORMAT_VERSIONS,
|
|
20824
|
-
isSupportedChatLabFormatVersion,
|
|
20825
|
-
ANNUAL_SUMMARY_PLUGIN_ID,
|
|
20826
|
-
TIME_INVESTMENT_PLUGIN_ID,
|
|
20827
|
-
NAVIGATION_LAYOUT_SCHEMA_VERSION,
|
|
20828
|
-
MessageType,
|
|
20829
|
-
KNOWN_PLATFORMS,
|
|
20830
|
-
getDefaultGeneralAssistantId,
|
|
20831
|
-
CONTACTS_TIME_RANGE_PRESETS,
|
|
20832
20860
|
getAnnualSummarySessionFacts,
|
|
20833
20861
|
aggregateAnnualSummaryFacts,
|
|
20834
20862
|
getTimeInvestmentSessionFacts,
|
|
@@ -21058,4 +21086,4 @@ export {
|
|
|
21058
21086
|
StaticPathProvider,
|
|
21059
21087
|
createDatabaseManagerAdapter
|
|
21060
21088
|
};
|
|
21061
|
-
//# sourceMappingURL=chunk-
|
|
21089
|
+
//# sourceMappingURL=chunk-OTYNMDDL.mjs.map
|