@lexwdex-org/opencode-dcp 3.2.3 → 3.3.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/README.md +3 -3
- package/dist/index.js +29 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/messages/utils.d.ts.map +1 -1
- package/dist/lib/prompts/compress-message.d.ts +1 -1
- package/dist/lib/prompts/compress-message.d.ts.map +1 -1
- package/dist/lib/prompts/compress-range.d.ts +1 -1
- package/dist/lib/prompts/compress-range.d.ts.map +1 -1
- package/dist/lib/prompts/context-limit-nudge.d.ts +1 -1
- package/dist/lib/prompts/context-limit-nudge.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -117,11 +117,11 @@ Each level overrides the previous, so project settings take priority over global
|
|
|
117
117
|
// Soft upper threshold: above this, DCP keeps injecting strong
|
|
118
118
|
// compression nudges (based on nudgeFrequency), so compression is
|
|
119
119
|
// much more likely. Accepts: number or "X%" of model context window.
|
|
120
|
-
"maxContextLimit":
|
|
120
|
+
"maxContextLimit": "85%",
|
|
121
121
|
// Soft lower threshold for reminder nudges: below this, turn/iteration
|
|
122
122
|
// reminders are off (compression less likely). At/above this, reminders
|
|
123
123
|
// are on. Accepts: number or "X%" of model context window.
|
|
124
|
-
"minContextLimit":
|
|
124
|
+
"minContextLimit": "50%",
|
|
125
125
|
// Optional per-model override for maxContextLimit by providerID/modelID.
|
|
126
126
|
// If present, this wins over the global maxContextLimit.
|
|
127
127
|
// Accepts: number or "X%".
|
|
@@ -143,7 +143,7 @@ Each level overrides the previous, so project settings take priority over global
|
|
|
143
143
|
"iterationNudgeThreshold": 15,
|
|
144
144
|
// Controls how likely compression is after user messages
|
|
145
145
|
// ("strong" = more likely, "soft" = less likely)
|
|
146
|
-
"nudgeForce": "
|
|
146
|
+
"nudgeForce": "strong",
|
|
147
147
|
// Tool names whose completed outputs are appended to the compression
|
|
148
148
|
"protectedTools": [],
|
|
149
149
|
// Preserve text wrapped in <protect>...</protect> when compressed
|
package/dist/index.js
CHANGED
|
@@ -1335,11 +1335,11 @@ var defaultConfig = {
|
|
|
1335
1335
|
permission: "allow",
|
|
1336
1336
|
showCompression: false,
|
|
1337
1337
|
summaryBuffer: true,
|
|
1338
|
-
maxContextLimit:
|
|
1339
|
-
minContextLimit:
|
|
1338
|
+
maxContextLimit: "85%",
|
|
1339
|
+
minContextLimit: "50%",
|
|
1340
1340
|
nudgeFrequency: 2,
|
|
1341
1341
|
iterationNudgeThreshold: 15,
|
|
1342
|
-
nudgeForce: "
|
|
1342
|
+
nudgeForce: "strong",
|
|
1343
1343
|
protectedTools: [...COMPRESS_DEFAULT_PROTECTED_TOOLS],
|
|
1344
1344
|
protectTags: false,
|
|
1345
1345
|
protectUserMessages: false
|
|
@@ -4903,6 +4903,12 @@ var COMPRESS_RANGE = `\u5C06\u5BF9\u8BDD\u4E2D\u7684\u4E00\u4E2A\u8303\u56F4\u62
|
|
|
4903
4903
|
\u5F53\u538B\u7F29\u8303\u56F4\u5305\u542B\u7528\u6237\u6D88\u606F\u65F6\uFF0C\u683C\u5916\u5C0F\u5FC3\u5730\u4FDD\u7559\u7528\u6237\u610F\u56FE\u3002\u4E0D\u8981\u6539\u53D8\u8303\u56F4\u3001\u7EA6\u675F\u3001\u4F18\u5148\u7EA7\u3001\u9A8C\u6536\u6807\u51C6\u6216\u8BF7\u6C42\u7684\u7ED3\u679C\u3002
|
|
4904
4904
|
\u5F53\u7528\u6237\u6D88\u606F\u8DB3\u591F\u77ED\u65F6\u76F4\u63A5\u5F15\u7528\u3002\u76F4\u63A5\u5F15\u7528\u5728\u6700\u80FD\u4FDD\u7559\u7CBE\u786E\u542B\u4E49\u65F6\u4F18\u5148\u4F7F\u7528\u3002
|
|
4905
4905
|
|
|
4906
|
+
\u5386\u53F2\u5BA1\u6279\u5904\u7406
|
|
4907
|
+
\u5F53\u538B\u7F29\u8303\u56F4\u5305\u542B\u7528\u6237\u7684\u5BA1\u6279/\u6279\u51C6\u77ED\u8BED\uFF08\u5982"\u5C31\u6267\u884C\u5427"\u3001"\u6309\u7167\u8FD9\u4E2A\u6267\u884C"\u3001"\u597D\u7684\uFF0C\u7EE7\u7EED"\u7B49\uFF09\u65F6\uFF0C\u5FC5\u987B\u5C06\u5176\u6807\u8BB0\u4E3A\u5386\u53F2\u4E8B\u4EF6\u800C\u975E\u5F53\u524D\u6709\u6548\u6307\u4EE4\u3002
|
|
4908
|
+
- \u9519\u8BEF\uFF1A\u4FDD\u7559"\u7528\u6237\u8BF4\uFF1A\u5C31\u6267\u884C\u5427"\uFF08\u53EF\u80FD\u88AB\u8BEF\u89E3\u4E3A\u5F53\u524D\u6307\u4EE4\uFF09
|
|
4909
|
+
- \u6B63\u786E\uFF1A\u6807\u8BB0\u4E3A"\u7528\u6237\u66FE\u6279\u51C6\u4E86\u5148\u524D\u7684\u65B9\u6848\uFF08\u8BE5\u6279\u51C6\u4EC5\u9002\u7528\u4E8E\u5F53\u65F6\u7684\u4E0A\u4E0B\u6587\uFF0C\u4E0D\u6784\u6210\u5BF9\u540E\u7EED\u64CD\u4F5C\u7684\u6388\u6743\uFF09"
|
|
4910
|
+
\u8FD9\u786E\u4FDD\u538B\u7F29\u540E\u7684\u4E0A\u4E0B\u6587\u4E0D\u4F1A\u88AB\u8BEF\u89E3\u4E3A\u65B0\u7684\u6267\u884C\u6388\u6743\u3002
|
|
4911
|
+
|
|
4906
4912
|
\u540C\u65F6\u4FDD\u6301\u7CBE\u7B80\u3002\u53BB\u9664\u566A\u97F3\uFF1A\u65E0\u679C\u7684\u5931\u8D25\u5C1D\u8BD5\u3001\u5197\u957F\u7684\u5DE5\u5177\u8F93\u51FA\u3001\u53CD\u590D\u63A2\u7D22\u3002\u7559\u4E0B\u7684\u5E94\u8BE5\u662F\u7EAF\u4FE1\u53F7\u2014\u2014\u4FDD\u7559\u5B8C\u6574\u7406\u89E3\u3001\u96F6\u6B67\u4E49\u7684\u7CBE\u534E\u7EC6\u8282\u3002
|
|
4907
4913
|
|
|
4908
4914
|
\u538B\u7F29\u5757\u5360\u4F4D\u7B26
|
|
@@ -4965,6 +4971,12 @@ var COMPRESS_MESSAGE = `\u5C06\u5BF9\u8BDD\u4E2D\u9009\u5B9A\u7684\u5355\u6761\u
|
|
|
4965
4971
|
\u5F53\u9009\u5B9A\u6D88\u606F\u5305\u542B\u7528\u6237\u610F\u56FE\u65F6\uFF0C\u683C\u5916\u5C0F\u5FC3\u5730\u4FDD\u7559\u8BE5\u610F\u56FE\u3002\u4E0D\u8981\u6539\u53D8\u8303\u56F4\u3001\u7EA6\u675F\u3001\u4F18\u5148\u7EA7\u3001\u9A8C\u6536\u6807\u51C6\u6216\u8BF7\u6C42\u7684\u7ED3\u679C\u3002
|
|
4966
4972
|
\u5F53\u76F4\u63A5\u5F15\u7528\u7B80\u77ED\u7528\u6237\u6307\u4EE4\u6700\u80FD\u4FDD\u7559\u7CBE\u786E\u542B\u4E49\u65F6\uFF0C\u76F4\u63A5\u5F15\u7528\u3002
|
|
4967
4973
|
|
|
4974
|
+
\u5386\u53F2\u5BA1\u6279\u5904\u7406
|
|
4975
|
+
\u5F53\u538B\u7F29\u5305\u542B\u7528\u6237\u7684\u5BA1\u6279/\u6279\u51C6\u77ED\u8BED\uFF08\u5982"\u5C31\u6267\u884C\u5427"\u3001"\u6309\u7167\u8FD9\u4E2A\u6267\u884C"\u3001"\u597D\u7684\uFF0C\u7EE7\u7EED"\u7B49\uFF09\u65F6\uFF0C\u5FC5\u987B\u5C06\u5176\u6807\u8BB0\u4E3A\u5386\u53F2\u4E8B\u4EF6\u800C\u975E\u5F53\u524D\u6709\u6548\u6307\u4EE4\u3002
|
|
4976
|
+
- \u9519\u8BEF\uFF1A\u4FDD\u7559"\u7528\u6237\u8BF4\uFF1A\u5C31\u6267\u884C\u5427"\uFF08\u53EF\u80FD\u88AB\u8BEF\u89E3\u4E3A\u5F53\u524D\u6307\u4EE4\uFF09
|
|
4977
|
+
- \u6B63\u786E\uFF1A\u6807\u8BB0\u4E3A"\u7528\u6237\u66FE\u6279\u51C6\u4E86\u5148\u524D\u7684\u65B9\u6848\uFF08\u8BE5\u6279\u51C6\u4EC5\u9002\u7528\u4E8E\u5F53\u65F6\u7684\u4E0A\u4E0B\u6587\uFF0C\u4E0D\u6784\u6210\u5BF9\u540E\u7EED\u64CD\u4F5C\u7684\u6388\u6743\uFF09"
|
|
4978
|
+
\u8FD9\u786E\u4FDD\u538B\u7F29\u540E\u7684\u4E0A\u4E0B\u6587\u4E0D\u4F1A\u88AB\u8BEF\u89E3\u4E3A\u65B0\u7684\u6267\u884C\u6388\u6743\u3002
|
|
4979
|
+
|
|
4968
4980
|
\u540C\u65F6\u4FDD\u6301\u7CBE\u7B80\u3002\u53BB\u9664\u566A\u97F3\uFF1A\u65E0\u679C\u7684\u5931\u8D25\u5C1D\u8BD5\u3001\u5197\u957F\u7684\u5DE5\u5177\u8F93\u51FA\u548C\u91CD\u590D\u3002\u7559\u4E0B\u7684\u5E94\u8BE5\u662F\u7EAF\u4FE1\u53F7\u2014\u2014\u4FDD\u7559\u5B8C\u6574\u7406\u89E3\u3001\u96F6\u6B67\u4E49\u7684\u7CBE\u534E\u7EC6\u8282\u3002
|
|
4969
4981
|
\u5982\u679C\u6D88\u606F\u4E0D\u5305\u542B\u91CD\u8981\u7684\u6280\u672F\u51B3\u7B56\u3001\u4EE3\u7801\u53D8\u66F4\u6216\u7528\u6237\u9700\u6C42\uFF0C\u751F\u6210\u6700\u5C0F\u5316\u7684\u4E00\u884C\u6458\u8981\u800C\u975E\u8BE6\u7EC6\u6458\u8981\u3002
|
|
4970
4982
|
|
|
@@ -5002,21 +5014,21 @@ var COMPRESS_MESSAGE = `\u5C06\u5BF9\u8BDD\u4E2D\u9009\u5B9A\u7684\u5355\u6761\u
|
|
|
5002
5014
|
|
|
5003
5015
|
// lib/prompts/context-limit-nudge.ts
|
|
5004
5016
|
var CONTEXT_LIMIT_NUDGE = `<dcp-system-reminder>
|
|
5005
|
-
|
|
5017
|
+
\u4E25\u91CD\u8B66\u544A\uFF1A\u5DF2\u8FBE\u5230\u6700\u5927\u4E0A\u4E0B\u6587\u9650\u5236
|
|
5006
5018
|
|
|
5007
|
-
|
|
5019
|
+
\u4F60\u5F53\u524D\u5904\u4E8E\u6216\u5DF2\u8D85\u8FC7\u914D\u7F6E\u7684\u6700\u5927\u4E0A\u4E0B\u6587\u9608\u503C\u3002\u8FD9\u662F\u7D27\u6025\u7684\u4E0A\u4E0B\u6587\u6062\u590D\u65F6\u523B\u3002
|
|
5008
5020
|
|
|
5009
|
-
|
|
5021
|
+
\u4F60\u5FC5\u987B\u7ACB\u5373\u4F7F\u7528 \`compress\` \u5DE5\u5177\u3002\u5728\u5B8C\u6210\u538B\u7F29\u4E4B\u524D\uFF0C\u4E0D\u8981\u7EE7\u7EED\u6B63\u5E38\u63A2\u7D22\u3002
|
|
5010
5022
|
|
|
5011
|
-
|
|
5023
|
+
\u5982\u679C\u4F60\u6B63\u5728\u8FDB\u884C\u5173\u952E\u7684\u539F\u5B50\u64CD\u4F5C\uFF0C\u5148\u5B8C\u6210\u8BE5\u539F\u5B50\u6B65\u9AA4\uFF0C\u7136\u540E\u7ACB\u5373\u538B\u7F29\u3002
|
|
5012
5024
|
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5025
|
+
\u9009\u62E9\u8FC7\u7A0B
|
|
5026
|
+
\u4ECE\u8F83\u65E9\u7684\u3001\u5DF2\u5B8C\u6210\u7684\u5386\u53F2\u5F00\u59CB\uFF0C\u5728\u4E00\u6B21\u64CD\u4F5C\u4E2D\u6355\u83B7\u5C3D\u53EF\u80FD\u591A\u7684\u8FC7\u65F6\u4E0A\u4E0B\u6587\u3002
|
|
5027
|
+
\u9664\u975E\u6700\u65B0\u7684\u5DE5\u4F5C\u6D88\u606F\u5DF2\u660E\u663E\u7ED3\u675F\uFF0C\u5426\u5219\u4E0D\u8981\u9009\u62E9\u5B83\u4EEC\u3002
|
|
5016
5028
|
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5029
|
+
\u6458\u8981\u8981\u6C42
|
|
5030
|
+
\u4F60\u7684\u6458\u8981\u5FC5\u987B\u8986\u76D6\u6240\u9009\u6D88\u606F\u4E2D\u7684\u6240\u6709\u5173\u952E\u7EC6\u8282\uFF0C\u4EE5\u786E\u4FDD\u5DE5\u4F5C\u53EF\u4EE5\u7EE7\u7EED\u3002
|
|
5031
|
+
\u5982\u679C\u538B\u7F29\u8303\u56F4\u5305\u542B\u7528\u6237\u6D88\u606F\uFF0C\u5B8C\u6574\u4FDD\u7559\u7528\u6237\u610F\u56FE\u3002\u5BF9\u4E8E\u8F83\u77ED\u7684\u7528\u6237\u6D88\u606F\uFF0C\u4F18\u5148\u4F7F\u7528\u76F4\u63A5\u5F15\u7528\u4EE5\u907F\u514D\u8BED\u4E49\u6F02\u79FB\u3002
|
|
5020
5032
|
</dcp-system-reminder>
|
|
5021
5033
|
`;
|
|
5022
5034
|
|
|
@@ -5390,6 +5402,8 @@ var SUMMARY_ID_HASH_LENGTH = 16;
|
|
|
5390
5402
|
var DCP_BLOCK_ID_TAG_REGEX = /(<dcp-message-id(?=[\s>])[^>]*>)b\d+(<\/dcp-message-id>)/g;
|
|
5391
5403
|
var DCP_PAIRED_TAG_REGEX = /<dcp[^>]*>[\s\S]*?<\/dcp[^>]*>/gi;
|
|
5392
5404
|
var DCP_UNPAIRED_TAG_REGEX = /<\/?dcp[^>]*>/gi;
|
|
5405
|
+
var INJECTED_TAG_SUFFIX_REGEX = /\n<dcp-message-id(?:\s[^>]*)?>m\d+<\/dcp-message-id>\s*$/;
|
|
5406
|
+
var TRAILING_MESSAGE_REF_REGEX = /\nm\d{4}\s*$/;
|
|
5393
5407
|
var generateStableId = (prefix, seed) => {
|
|
5394
5408
|
const hash = createHash("sha256").update(seed).digest("hex").slice(0, SUMMARY_ID_HASH_LENGTH);
|
|
5395
5409
|
return `${prefix}_${hash}`;
|
|
@@ -5511,7 +5525,8 @@ var replaceBlockIdsWithBlocked = (text) => {
|
|
|
5511
5525
|
return text.replace(DCP_BLOCK_ID_TAG_REGEX, "$1BLOCKED$2");
|
|
5512
5526
|
};
|
|
5513
5527
|
var stripHallucinationsFromString = (text) => {
|
|
5514
|
-
|
|
5528
|
+
const safe = text.replace(INJECTED_TAG_SUFFIX_REGEX, "");
|
|
5529
|
+
return safe.replace(DCP_PAIRED_TAG_REGEX, "").replace(DCP_UNPAIRED_TAG_REGEX, "").replace(TRAILING_MESSAGE_REF_REGEX, "");
|
|
5515
5530
|
};
|
|
5516
5531
|
var stripHallucinations = (messages) => {
|
|
5517
5532
|
for (const message of messages) {
|