@tarquinen/opencode-dcp 2.2.9-beta0 → 3.0.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 +14 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -10
- package/dist/index.js.map +1 -1
- package/dist/lib/commands/help.d.ts.map +1 -1
- package/dist/lib/commands/help.js +7 -6
- package/dist/lib/commands/help.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +3 -2
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +15 -10
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/host-permissions.d.ts +11 -0
- package/dist/lib/host-permissions.d.ts.map +1 -0
- package/dist/lib/host-permissions.js +49 -0
- package/dist/lib/host-permissions.js.map +1 -0
- package/dist/lib/messages/inject/inject.js +3 -3
- package/dist/lib/messages/inject/inject.js.map +1 -1
- package/dist/lib/messages/inject/utils.d.ts.map +1 -1
- package/dist/lib/messages/inject/utils.js +5 -5
- package/dist/lib/messages/inject/utils.js.map +1 -1
- package/dist/lib/messages/utils.d.ts.map +1 -1
- package/dist/lib/messages/utils.js +2 -6
- package/dist/lib/messages/utils.js.map +1 -1
- package/dist/lib/prompts/compress.d.ts +1 -1
- package/dist/lib/prompts/compress.d.ts.map +1 -1
- package/dist/lib/prompts/compress.js +9 -33
- package/dist/lib/prompts/compress.js.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/dist/lib/prompts/context-limit-nudge.js +2 -2
- package/dist/lib/prompts/index.d.ts.map +1 -1
- package/dist/lib/prompts/index.js +3 -13
- package/dist/lib/prompts/index.js.map +1 -1
- package/dist/lib/prompts/internal-overlays.d.ts +2 -2
- package/dist/lib/prompts/internal-overlays.d.ts.map +1 -1
- package/dist/lib/prompts/internal-overlays.js +4 -4
- package/dist/lib/prompts/iteration-nudge.d.ts +1 -1
- package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -1
- package/dist/lib/prompts/iteration-nudge.js +2 -2
- package/dist/lib/prompts/store.d.ts.map +1 -1
- package/dist/lib/prompts/store.js +19 -38
- package/dist/lib/prompts/store.js.map +1 -1
- package/dist/lib/prompts/system.d.ts +1 -1
- package/dist/lib/prompts/system.d.ts.map +1 -1
- package/dist/lib/prompts/system.js +1 -25
- package/dist/lib/prompts/system.js.map +1 -1
- package/dist/lib/prompts/turn-nudge.d.ts +1 -1
- package/dist/lib/prompts/turn-nudge.js +2 -2
- package/dist/lib/shared-utils.d.ts +4 -0
- package/dist/lib/shared-utils.d.ts.map +1 -1
- package/dist/lib/shared-utils.js +8 -0
- package/dist/lib/shared-utils.js.map +1 -1
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +2 -0
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/types.d.ts +1 -0
- package/dist/lib/state/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const wildcardMatch = (value, pattern) => {
|
|
2
|
+
const normalizedValue = value.replaceAll("\\", "/");
|
|
3
|
+
let escaped = pattern
|
|
4
|
+
.replaceAll("\\", "/")
|
|
5
|
+
.replace(/[.+^${}()|[\]\\]/g, "\\$&")
|
|
6
|
+
.replace(/\*/g, ".*")
|
|
7
|
+
.replace(/\?/g, ".");
|
|
8
|
+
if (escaped.endsWith(" .*")) {
|
|
9
|
+
escaped = escaped.slice(0, -3) + "( .*)?";
|
|
10
|
+
}
|
|
11
|
+
const flags = process.platform === "win32" ? "si" : "s";
|
|
12
|
+
return new RegExp(`^${escaped}$`, flags).test(normalizedValue);
|
|
13
|
+
};
|
|
14
|
+
const getPermissionRules = (permissionConfigs) => {
|
|
15
|
+
const rules = [];
|
|
16
|
+
for (const permissionConfig of permissionConfigs) {
|
|
17
|
+
if (!permissionConfig) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
for (const [permission, value] of Object.entries(permissionConfig)) {
|
|
21
|
+
if (value === "ask" || value === "allow" || value === "deny") {
|
|
22
|
+
rules.push({ permission, pattern: "*", action: value });
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
for (const [pattern, action] of Object.entries(value)) {
|
|
26
|
+
if (action === "ask" || action === "allow" || action === "deny") {
|
|
27
|
+
rules.push({ permission, pattern, action });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return rules;
|
|
33
|
+
};
|
|
34
|
+
export const compressDisabledByOpencode = (...permissionConfigs) => {
|
|
35
|
+
const match = getPermissionRules(permissionConfigs).findLast((rule) => wildcardMatch("compress", rule.permission));
|
|
36
|
+
return match?.pattern === "*" && match.action === "deny";
|
|
37
|
+
};
|
|
38
|
+
export const resolveEffectiveCompressPermission = (basePermission, hostPermissions, agentName) => {
|
|
39
|
+
if (basePermission === "deny") {
|
|
40
|
+
return "deny";
|
|
41
|
+
}
|
|
42
|
+
return compressDisabledByOpencode(hostPermissions.global, agentName ? hostPermissions.agents[agentName] : undefined)
|
|
43
|
+
? "deny"
|
|
44
|
+
: basePermission;
|
|
45
|
+
};
|
|
46
|
+
export const hasExplicitToolPermission = (permissionConfig, tool) => {
|
|
47
|
+
return permissionConfig ? Object.hasOwn(permissionConfig, tool) : false;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=host-permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-permissions.js","sourceRoot":"","sources":["../../lib/host-permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { formatMessageIdTag } from "../../message-ids";
|
|
2
|
-
import { getLastUserMessage } from "../../shared-utils";
|
|
2
|
+
import { compressPermission, getLastUserMessage } from "../../shared-utils";
|
|
3
3
|
import { saveSessionState } from "../../state/persistence";
|
|
4
4
|
import { appendIdToTool, createSyntheticTextPart, findLastToolPart, isIgnoredUserMessage, } from "../utils";
|
|
5
5
|
import { addAnchor, applyAnchoredNudges, countMessagesAfterIndex, findLastNonIgnoredMessage, getIterationNudgeThreshold, getNudgeFrequency, getModelInfo, isContextOverLimits, messageHasCompress, } from "./utils";
|
|
6
6
|
export const injectCompressNudges = (state, config, logger, messages, prompts) => {
|
|
7
|
-
if (config
|
|
7
|
+
if (compressPermission(state, config) === "deny") {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
if (state.manualMode) {
|
|
@@ -73,7 +73,7 @@ export const injectCompressNudges = (state, config, logger, messages, prompts) =
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
export const injectMessageIds = (state, config, messages) => {
|
|
76
|
-
if (config
|
|
76
|
+
if (compressPermission(state, config) === "deny") {
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
79
|
for (const message of messages) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAMzD,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAU7F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAM9D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAcxE;AA+CD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,EAAE;;;EAaxB;AAED,wBAAgB,SAAS,CACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAsBT;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAaxE;AAkDD,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,cAAc,GACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAMzD,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAU7F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAM9D;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAcxE;AA+CD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,EAAE;;;EAaxB;AAED,wBAAgB,SAAS,CACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAsBT;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAaxE;AAkDD,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,cAAc,GACxB,IAAI,CA0BN"}
|
|
@@ -119,8 +119,8 @@ export function buildCompressedBlockGuidance(state) {
|
|
|
119
119
|
"- If your selected compression range includes any listed block, include each required placeholder exactly once in the summary using \`(bN)\`.",
|
|
120
120
|
].join("\n");
|
|
121
121
|
}
|
|
122
|
-
function
|
|
123
|
-
const closeTag = "</
|
|
122
|
+
function appendGuidanceToDcpTag(hintText, guidance) {
|
|
123
|
+
const closeTag = "</dcp-system-reminder>";
|
|
124
124
|
const closeTagIndex = hintText.lastIndexOf(closeTag);
|
|
125
125
|
if (closeTagIndex === -1) {
|
|
126
126
|
return hintText;
|
|
@@ -158,11 +158,11 @@ function applyAnchoredNudge(anchorMessageIds, messages, hintText) {
|
|
|
158
158
|
}
|
|
159
159
|
export function applyAnchoredNudges(state, config, messages, prompts) {
|
|
160
160
|
const compressedBlockGuidance = buildCompressedBlockGuidance(state);
|
|
161
|
-
const contextLimitNudge =
|
|
161
|
+
const contextLimitNudge = appendGuidanceToDcpTag(prompts.contextLimitNudge, compressedBlockGuidance);
|
|
162
162
|
applyAnchoredNudge(state.nudges.contextLimitAnchors, messages, contextLimitNudge);
|
|
163
163
|
const turnNudgeAnchors = new Set();
|
|
164
164
|
const targetRole = config.compress.nudgeForce === "strong" ? "user" : "assistant";
|
|
165
|
-
const turnNudge =
|
|
165
|
+
const turnNudge = appendGuidanceToDcpTag(prompts.turnNudge, compressedBlockGuidance);
|
|
166
166
|
for (const message of messages) {
|
|
167
167
|
if (!state.nudges.turnNudgeAnchors.has(message.info.id))
|
|
168
168
|
continue;
|
|
@@ -171,7 +171,7 @@ export function applyAnchoredNudges(state, config, messages, prompts) {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
applyAnchoredNudge(turnNudgeAnchors, messages, turnNudge);
|
|
174
|
-
const iterationNudge =
|
|
174
|
+
const iterationNudge = appendGuidanceToDcpTag(prompts.iterationNudge, compressedBlockGuidance);
|
|
175
175
|
applyAnchoredNudge(state.nudges.iterationNudgeAnchors, messages, iterationNudge);
|
|
176
176
|
}
|
|
177
177
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAY7D,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAqB;IAC3D,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,SAAQ;QACZ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAChC,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAqB,EAAE,KAAa;IACxE,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,SAAQ;QACZ,CAAC;QACD,KAAK,EAAE,CAAA;IACX,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAkB;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,OAAO,KAAK,CAAC,IAAI,CACb,CAAC,IAAI,EAAE,EAAE,CACL,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAC5F,CAAA;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAqB;IAC9C,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO;YACH,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;SACrB,CAAA;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAmB,CAAA;IACpD,OAAO;QACH,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;QACrC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;KAClC,CAAA;AACL,CAAC;AAED,SAAS,wBAAwB,CAC7B,MAAoB,EACpB,KAAmB,EACnB,UAA8B,EAC9B,OAA2B,EAC3B,SAAwB;IAExB,MAAM,eAAe,GAAG,CAAC,KAAwC,EAAsB,EAAE;QACrF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,SAAS,CAAA;QACpB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO,SAAS,CAAA;QACpB,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAA;QACpB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAChD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACvE,CAAC,CAAA;IAED,MAAM,WAAW,GACb,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAA;IACzF,IAAI,WAAW,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,eAAe,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAA;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;QAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,eAAe,CAAC,UAAU,CAAC,CAAA;QACtC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GACb,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAA;IAC3F,OAAO,eAAe,CAAC,WAAW,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,MAAoB,EACpB,KAAmB,EACnB,UAA8B,EAC9B,OAA2B,EAC3B,QAAqB;IAErB,MAAM,eAAe,GAAG,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3F,MAAM,eAAe,GAAG,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3F,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAEpD,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,GAAG,eAAe,CAAA;IAC5F,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,eAAe,CAAA;IAE5F,OAAO;QACH,YAAY;QACZ,YAAY;KACf,CAAA;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CACrB,gBAA6B,EAC7B,eAAuB,EACvB,kBAA0B,EAC1B,QAAqB,EACrB,QAAgB;IAEhB,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,wBAAwB,GAAG,CAAC,CAAC,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,wBAAwB,GAAG,CAAC,CAAA;YAC5B,MAAK;QACT,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GACX,wBAAwB,GAAG,CAAC,IAAI,kBAAkB,GAAG,wBAAwB,IAAI,QAAQ,CAAA;IAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAA;IAC1C,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACrC,OAAO,gBAAgB,CAAC,IAAI,KAAK,YAAY,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAmB;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;SACvD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;IAC9B,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAE3D,OAAO;QACH,2BAA2B;QAC3B,+CAA+C,UAAU,KAAK,SAAS,GAAG;QAC1E,+IAA+I;KAClJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAYvD,eAAO,MAAM,0BAA0B,GACnC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,aAAa,MAAM,KACpB,SA2BF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAChC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,aAAa,MAAM;;;;;;CAatB,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,KAAK,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEtD,eAAO,MAAM,cAAc,GAAI,MAAM,QAAQ,EAAE,KAAK,MAAM,KAAG,OAa5D,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,KAAG,QAAQ,GAAG,IAShE,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAiBpF;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,KAAG,OAazD,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAE5D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,EAAE,KAAG,IAgB3D,CAAA"}
|
|
@@ -2,8 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { isMessageCompacted } from "../shared-utils";
|
|
3
3
|
const SUMMARY_ID_HASH_LENGTH = 16;
|
|
4
4
|
const DCP_MESSAGE_ID_TAG_REGEX = /<dcp-message-id>(?:m\d+|b\d+)<\/dcp-message-id>/g;
|
|
5
|
-
const
|
|
6
|
-
const ITERATION_NUDGE_BLOCK_REGEX = /<instruction\s+name=iteration_nudge\b[^>]*>[\s\S]*?<\/instruction>/g;
|
|
5
|
+
const DCP_SYSTEM_REMINDER_REGEX = /<dcp-system-reminder\b[^>]*>[\s\S]*?<\/dcp-system-reminder>/g;
|
|
7
6
|
const generateStableId = (prefix, seed) => {
|
|
8
7
|
const hash = createHash("sha256").update(seed).digest("hex").slice(0, SUMMARY_ID_HASH_LENGTH);
|
|
9
8
|
return `${prefix}_${hash}`;
|
|
@@ -100,10 +99,7 @@ export const isIgnoredUserMessage = (message) => {
|
|
|
100
99
|
return true;
|
|
101
100
|
};
|
|
102
101
|
export const stripHallucinationsFromString = (text) => {
|
|
103
|
-
return text
|
|
104
|
-
.replace(TURN_NUDGE_BLOCK_REGEX, "")
|
|
105
|
-
.replace(ITERATION_NUDGE_BLOCK_REGEX, "")
|
|
106
|
-
.replace(DCP_MESSAGE_ID_TAG_REGEX, "");
|
|
102
|
+
return text.replace(DCP_SYSTEM_REMINDER_REGEX, "").replace(DCP_MESSAGE_ID_TAG_REGEX, "");
|
|
107
103
|
};
|
|
108
104
|
export const stripHallucinations = (messages) => {
|
|
109
105
|
for (const message of messages) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAIpD,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,wBAAwB,GAAG,kDAAkD,CAAA;AACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const COMPRESS = "
|
|
1
|
+
export declare const COMPRESS = "Collapse a range in the conversation into a detailed summary.\n\nTHE PHILOSOPHY OF COMPRESS\n`compress` transforms verbose conversation sequences into dense, high-fidelity summaries. This is not cleanup - it is crystallization. Your summary becomes the authoritative record of what transpired.\n\nThink of compression as phase transitions: raw exploration becomes refined understanding. The original context served its purpose; your summary now carries that understanding forward.\n\nTHE SUMMARY\nYour summary must be EXHAUSTIVE. Capture file paths, function signatures, decisions made, constraints discovered, key findings... EVERYTHING that maintains context integrity. This is not a brief note - it is an authoritative record so faithful that the original conversation adds no value.\n\nUSER INTENT FIDELITY\nWhen the compressed range includes user messages, preserve the user's intent with extra care. Do not change scope, constraints, priorities, acceptance criteria, or requested outcomes.\nDirectly quote user messages when they are short enough to include safely. Direct quotes are preferred when they best preserve exact meaning.\n\nYet be LEAN. Strip away the noise: failed attempts that led nowhere, verbose tool outputs, back-and-forth exploration. What remains should be pure signal - golden nuggets of detail that preserve full understanding with zero ambiguity.\n\nCOMPRESSED BLOCK PLACEHOLDERS\nWhen the selected range includes previously compressed blocks, use this exact placeholder format when referencing one:\n\n- `(bN)`\n\nCompressed block sections in context are clearly marked with a header:\n\n- `[Compressed conversation section]`\n\nCompressed block IDs always use the `bN` form (never `mNNNN`) and are represented in the same XML metadata tag format.\n\nRules:\n\n- Include every required block placeholder exactly once.\n- Do not invent placeholders for blocks outside the selected range.\n- Treat `(bN)` placeholders as RESERVED TOKENS. Do not emit `(bN)` text anywhere except intentional placeholders.\n- If you need to mention a block in prose, use plain text like `compressed bN` (not as a placeholder).\n- Preflight check before finalizing: the set of `(bN)` placeholders in your summary must exactly match the required set, with no duplicates.\n\nThese placeholders are semantic references. They will be replaced with the full stored compressed block content when the tool processes your output.\n\nFLOW PRESERVATION WITH PLACEHOLDERS\nWhen you use compressed block placeholders, write the surrounding summary text so it still reads correctly AFTER placeholder expansion.\n\n- Treat each placeholder as a stand-in for a full conversation segment, not as a short label.\n- Ensure transitions before and after each placeholder preserve chronology and causality.\n- Do not write text that depends on the placeholder staying literal (for example, \"as noted in `(b2)`\").\n- Your final meaning must be coherent once each placeholder is replaced with its full compressed block content.\n\nTHE WAYS OF COMPRESS\nCompress when a range is genuinely closed and the raw conversation has served its purpose:\n\nResearch concluded and findings are clear\nImplementation finished and verified\nExploration exhausted and patterns understood\n\nCompress smaller ranges when:\nYou need to discard dead-end noise without waiting for a whole chapter to close\nYou need to preserve key findings from a narrow slice while freeing context quickly\nYou can bound a stale range cleanly with injected IDs\n\nDo NOT compress when:\nYou may need exact code, error messages, or file contents from the range in the immediate next steps\nWork in that area is still active or likely to resume immediately\nYou cannot identify reliable boundaries yet\n\nBefore compressing, ask: _\"Is this range closed enough to become summary-only right now?\"_ Compression is irreversible. The summary replaces everything in the range.\n\nBOUNDARY IDS\nYou specify boundaries by ID using the injected IDs visible in the conversation:\n\n- `mNNNN` IDs identify raw messages\n- `bN` IDs identify previously compressed blocks\n\nEach message has an ID inside XML metadata tags like `<dcp-message-id>...</dcp-message-id>`.\nTreat these tags as boundary metadata only, not as tool result content.\n\nRules:\n\n- Pick `startId` and `endId` directly from injected IDs in context.\n- IDs must exist in the current visible context.\n- `startId` must appear before `endId`.\n- Prefer boundaries that produce short, closed ranges.\n- Do not invent IDs. Use only IDs that are present in context.\n\nPARALLEL COMPRESS EXECUTION\nWhen multiple independent ranges are ready and their boundaries do not overlap, launch MULTIPLE `compress` calls in parallel in a single response. This is the PREFERRED pattern over a single large-range compression when the work can be safely split. Run compression sequentially only when ranges overlap or when a later range depends on the result of an earlier compression.\n";
|
|
2
2
|
//# sourceMappingURL=compress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,23JAmFpB,CAAA"}
|
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
export const COMPRESS = `
|
|
1
|
+
export const COMPRESS = `Collapse a range in the conversation into a detailed summary.
|
|
2
2
|
|
|
3
3
|
THE PHILOSOPHY OF COMPRESS
|
|
4
4
|
\`compress\` transforms verbose conversation sequences into dense, high-fidelity summaries. This is not cleanup - it is crystallization. Your summary becomes the authoritative record of what transpired.
|
|
5
5
|
|
|
6
6
|
Think of compression as phase transitions: raw exploration becomes refined understanding. The original context served its purpose; your summary now carries that understanding forward.
|
|
7
7
|
|
|
8
|
-
One method, many safe ranges:
|
|
9
|
-
|
|
10
|
-
- short, closed ranges for disposable noise
|
|
11
|
-
- short, closed ranges for resolved investigative slices
|
|
12
|
-
- short, closed ranges for completed implementation chunks
|
|
13
|
-
|
|
14
|
-
Default to multiple short, bounded compressions. Prefer several safe range compressions over one large sweep whenever independent ranges are available.
|
|
15
|
-
|
|
16
|
-
CADENCE, SIGNALS, AND LATENCY
|
|
17
|
-
Use \`compress\` during work whenever a slice is summary-safe; do not wait for the user to send another message.
|
|
18
|
-
|
|
19
|
-
- no fixed threshold forces compression
|
|
20
|
-
- prioritize closedness and independence over raw range size
|
|
21
|
-
- qualitative signals still matter most (stale exploration, noisy tool bursts, resolved branches)
|
|
22
|
-
|
|
23
|
-
PREFER smaller, regular compressions OVER infrequent large compressions for better latency and better summary fidelity.
|
|
24
|
-
|
|
25
8
|
THE SUMMARY
|
|
26
9
|
Your summary must be EXHAUSTIVE. Capture file paths, function signatures, decisions made, constraints discovered, key findings... EVERYTHING that maintains context integrity. This is not a brief note - it is an authoritative record so faithful that the original conversation adds no value.
|
|
27
10
|
|
|
@@ -29,6 +12,8 @@ USER INTENT FIDELITY
|
|
|
29
12
|
When the compressed range includes user messages, preserve the user's intent with extra care. Do not change scope, constraints, priorities, acceptance criteria, or requested outcomes.
|
|
30
13
|
Directly quote user messages when they are short enough to include safely. Direct quotes are preferred when they best preserve exact meaning.
|
|
31
14
|
|
|
15
|
+
Yet be LEAN. Strip away the noise: failed attempts that led nowhere, verbose tool outputs, back-and-forth exploration. What remains should be pure signal - golden nuggets of detail that preserve full understanding with zero ambiguity.
|
|
16
|
+
|
|
32
17
|
COMPRESSED BLOCK PLACEHOLDERS
|
|
33
18
|
When the selected range includes previously compressed blocks, use this exact placeholder format when referencing one:
|
|
34
19
|
|
|
@@ -55,11 +40,9 @@ When you use compressed block placeholders, write the surrounding summary text s
|
|
|
55
40
|
|
|
56
41
|
- Treat each placeholder as a stand-in for a full conversation segment, not as a short label.
|
|
57
42
|
- Ensure transitions before and after each placeholder preserve chronology and causality.
|
|
58
|
-
- Do not write text that depends on the placeholder staying literal (for example, "as noted in (b2)").
|
|
43
|
+
- Do not write text that depends on the placeholder staying literal (for example, "as noted in \`(b2)\`").
|
|
59
44
|
- Your final meaning must be coherent once each placeholder is replaced with its full compressed block content.
|
|
60
45
|
|
|
61
|
-
Yet be LEAN. Strip away the noise: failed attempts that led nowhere, verbose tool outputs, back-and-forth exploration. What remains should be pure signal - golden nuggets of detail that preserve full understanding with zero ambiguity.
|
|
62
|
-
|
|
63
46
|
THE WAYS OF COMPRESS
|
|
64
47
|
Compress when a range is genuinely closed and the raw conversation has served its purpose:
|
|
65
48
|
|
|
@@ -80,28 +63,21 @@ You cannot identify reliable boundaries yet
|
|
|
80
63
|
Before compressing, ask: _"Is this range closed enough to become summary-only right now?"_ Compression is irreversible. The summary replaces everything in the range.
|
|
81
64
|
|
|
82
65
|
BOUNDARY IDS
|
|
83
|
-
You specify boundaries by ID
|
|
84
|
-
|
|
85
|
-
Use the injected IDs visible in the conversation:
|
|
66
|
+
You specify boundaries by ID using the injected IDs visible in the conversation:
|
|
86
67
|
|
|
87
68
|
- \`mNNNN\` IDs identify raw messages
|
|
88
69
|
- \`bN\` IDs identify previously compressed blocks
|
|
89
70
|
|
|
71
|
+
Each message has an ID inside XML metadata tags like \`<dcp-message-id>...</dcp-message-id>\`.
|
|
72
|
+
Treat these tags as boundary metadata only, not as tool result content.
|
|
73
|
+
|
|
90
74
|
Rules:
|
|
91
75
|
|
|
92
76
|
- Pick \`startId\` and \`endId\` directly from injected IDs in context.
|
|
93
77
|
- IDs must exist in the current visible context.
|
|
94
78
|
- \`startId\` must appear before \`endId\`.
|
|
95
79
|
- Prefer boundaries that produce short, closed ranges.
|
|
96
|
-
|
|
97
|
-
ID SOURCES
|
|
98
|
-
|
|
99
|
-
- There is always an ID available for each message in XML tags like \`<dcp-message-id>...</dcp-message-id>\`.
|
|
100
|
-
- Compressed blocks are addressable by \`bN\` IDs.
|
|
101
|
-
|
|
102
|
-
Treat \`<dcp-message-id>...</dcp-message-id>\` as metadata only. It is not part of the tool result semantics.
|
|
103
|
-
|
|
104
|
-
Do not invent IDs. Use only IDs that are present in context.
|
|
80
|
+
- Do not invent IDs. Use only IDs that are present in context.
|
|
105
81
|
|
|
106
82
|
PARALLEL COMPRESS EXECUTION
|
|
107
83
|
When multiple independent ranges are ready and their boundaries do not overlap, launch MULTIPLE \`compress\` calls in parallel in a single response. This is the PREFERRED pattern over a single large-range compression when the work can be safely split. Run compression sequentially only when ranges overlap or when a later range depends on the result of an earlier compression.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../lib/prompts/compress.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFvB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CONTEXT_LIMIT_NUDGE = "<
|
|
1
|
+
export declare const CONTEXT_LIMIT_NUDGE = "<dcp-system-reminder>\nCRITICAL WARNING: MAX CONTEXT LIMIT REACHED\n\nYou are at or beyond the configured max context threshold. This is an emergency context-recovery moment.\n\nYou MUST use the `compress` tool now. Do not continue normal exploration until compression is handled.\n\nIf you are in the middle of a critical atomic operation, finish that atomic step first, then compress immediately.\n\nRANGE STRATEGY (MANDATORY)\nPrioritize one large, closed, high-yield compression range first.\nThis overrides the normal preference for many small compressions.\nOnly split into multiple compressions if one large range would reduce summary quality or make boundary selection unsafe.\n\nRANGE SELECTION\nStart from older, resolved history and capture as much stale context as safely possible in one pass.\nAvoid the newest active working slice unless it is clearly closed.\nUse visible injected boundary IDs for compression (`mNNNN` for messages, `bN` for compressed blocks), and ensure `startId` appears before `endId`.\n\nSUMMARY REQUIREMENTS\nYour summary must cover all essential details from the selected range so work can continue without reopening raw messages.\nIf the compressed range includes user messages, preserve user intent exactly. Prefer direct quotes for short user messages to avoid semantic drift.\n</dcp-system-reminder>\n";
|
|
2
2
|
//# sourceMappingURL=context-limit-nudge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-limit-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/context-limit-nudge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"context-limit-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/context-limit-nudge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,q0CAuB/B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const CONTEXT_LIMIT_NUDGE = `<
|
|
1
|
+
export const CONTEXT_LIMIT_NUDGE = `<dcp-system-reminder>
|
|
2
2
|
CRITICAL WARNING: MAX CONTEXT LIMIT REACHED
|
|
3
3
|
|
|
4
4
|
You are at or beyond the configured max context threshold. This is an emergency context-recovery moment.
|
|
@@ -20,6 +20,6 @@ Use visible injected boundary IDs for compression (\`mNNNN\` for messages, \`bN\
|
|
|
20
20
|
SUMMARY REQUIREMENTS
|
|
21
21
|
Your summary must cover all essential details from the selected range so work can continue without reopening raw messages.
|
|
22
22
|
If the compressed range includes user messages, preserve user intent exactly. Prefer direct quotes for short user messages to avoid semantic drift.
|
|
23
|
-
</
|
|
23
|
+
</dcp-system-reminder>
|
|
24
24
|
`;
|
|
25
25
|
//# sourceMappingURL=context-limit-nudge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAU7C,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,OAAO,GACnB,MAAM,CAaR"}
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
function stripLegacyInlineComments(content) {
|
|
2
2
|
return content.replace(/^[ \t]*\/\/.*?\/\/[ \t]*$/gm, "");
|
|
3
3
|
}
|
|
4
|
-
function
|
|
5
|
-
|
|
6
|
-
return systemPrompt;
|
|
7
|
-
}
|
|
8
|
-
const closeTag = "</system-reminder>";
|
|
9
|
-
const closeTagIndex = systemPrompt.lastIndexOf(closeTag);
|
|
10
|
-
if (closeTagIndex === -1) {
|
|
11
|
-
return [systemPrompt, ...overlays].join("\n\n");
|
|
12
|
-
}
|
|
13
|
-
const beforeClose = systemPrompt.slice(0, closeTagIndex).trimEnd();
|
|
14
|
-
const afterClose = systemPrompt.slice(closeTagIndex);
|
|
15
|
-
return `${beforeClose}\n\n${overlays.join("\n\n")}\n\n${afterClose}`;
|
|
4
|
+
function appendSystemOverlays(systemPrompt, overlays) {
|
|
5
|
+
return [systemPrompt, ...overlays].filter(Boolean).join("\n\n");
|
|
16
6
|
}
|
|
17
7
|
export function renderSystemPrompt(prompts, manual, subagent) {
|
|
18
8
|
const overlays = [];
|
|
@@ -23,7 +13,7 @@ export function renderSystemPrompt(prompts, manual, subagent) {
|
|
|
23
13
|
overlays.push(prompts.subagentOverlay.trim());
|
|
24
14
|
}
|
|
25
15
|
const strippedSystem = stripLegacyInlineComments(prompts.system).trim();
|
|
26
|
-
const withOverlays =
|
|
16
|
+
const withOverlays = appendSystemOverlays(strippedSystem, overlays);
|
|
27
17
|
return withOverlays.replace(/\n([ \t]*\n)+/g, "\n\n").trim();
|
|
28
18
|
}
|
|
29
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAEA,SAAS,yBAAyB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAEA,SAAS,yBAAyB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB,EAAE,QAAkB;IAClE,OAAO,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,OAAuB,EACvB,MAAgB,EAChB,QAAkB;IAElB,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,MAAM,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACvE,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IACnE,OAAO,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;AAChE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const MANUAL_MODE_SYSTEM_OVERLAY = "<
|
|
2
|
-
export declare const SUBAGENT_SYSTEM_OVERLAY = "<
|
|
1
|
+
export declare const MANUAL_MODE_SYSTEM_OVERLAY = "<dcp-system-reminder>\nManual mode is enabled. Do NOT use compress unless the user has explicitly triggered it through a manual marker.\n\nOnly use the compress tool after seeing `<compress triggered manually>` in the current user instruction context.\n\nIssue exactly ONE compress call per manual trigger. Do NOT launch multiple compress calls in parallel. Each trigger grants a single compression; after it completes, wait for the next trigger.\n\nAfter completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.\n</dcp-system-reminder>\n";
|
|
2
|
+
export declare const SUBAGENT_SYSTEM_OVERLAY = "<dcp-system-reminder>\nYou are operating in a subagent environment.\n\nThe initial subagent instruction is imperative and must be followed exactly.\nIt is the only user message intentionally not assigned a message ID, and therefore is not eligible for compression.\nAll subsequent messages in the session will have IDs.\n</dcp-system-reminder>\n";
|
|
3
3
|
export declare const NESTED_FORMAT_OVERLAY = "\nTHE FORMAT OF COMPRESS\n\n```\n{\n topic: string, // Short label (3-5 words) - e.g., \"Auth System Exploration\"\n content: {\n startId: string, // Boundary ID at range start: mNNNN or bN\n endId: string, // Boundary ID at range end: mNNNN or bN\n summary: string // Complete technical summary replacing all content in range\n }\n}\n```";
|
|
4
4
|
export declare const FLAT_FORMAT_OVERLAY = "\nTHE FORMAT OF COMPRESS\n\n```\n{\n topic: string, // Short label (3-5 words) - e.g., \"Auth System Exploration\"\n startId: string, // Boundary ID at range start: mNNNN or bN\n endId: string, // Boundary ID at range end: mNNNN or bN\n summary: string // Complete technical summary replacing all content in range\n}\n```";
|
|
5
5
|
//# sourceMappingURL=internal-overlays.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-overlays.d.ts","sourceRoot":"","sources":["../../../lib/prompts/internal-overlays.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"internal-overlays.d.ts","sourceRoot":"","sources":["../../../lib/prompts/internal-overlays.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,mrBAStC,CAAA;AAED,eAAO,MAAM,uBAAuB,8VAOnC,CAAA;AAED,eAAO,MAAM,qBAAqB,kYAY3B,CAAA;AAEP,eAAO,MAAM,mBAAmB,+WAUzB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const MANUAL_MODE_SYSTEM_OVERLAY = `<
|
|
1
|
+
export const MANUAL_MODE_SYSTEM_OVERLAY = `<dcp-system-reminder>
|
|
2
2
|
Manual mode is enabled. Do NOT use compress unless the user has explicitly triggered it through a manual marker.
|
|
3
3
|
|
|
4
4
|
Only use the compress tool after seeing \`<compress triggered manually>\` in the current user instruction context.
|
|
@@ -6,15 +6,15 @@ Only use the compress tool after seeing \`<compress triggered manually>\` in the
|
|
|
6
6
|
Issue exactly ONE compress call per manual trigger. Do NOT launch multiple compress calls in parallel. Each trigger grants a single compression; after it completes, wait for the next trigger.
|
|
7
7
|
|
|
8
8
|
After completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.
|
|
9
|
-
</
|
|
9
|
+
</dcp-system-reminder>
|
|
10
10
|
`;
|
|
11
|
-
export const SUBAGENT_SYSTEM_OVERLAY = `<
|
|
11
|
+
export const SUBAGENT_SYSTEM_OVERLAY = `<dcp-system-reminder>
|
|
12
12
|
You are operating in a subagent environment.
|
|
13
13
|
|
|
14
14
|
The initial subagent instruction is imperative and must be followed exactly.
|
|
15
15
|
It is the only user message intentionally not assigned a message ID, and therefore is not eligible for compression.
|
|
16
16
|
All subsequent messages in the session will have IDs.
|
|
17
|
-
</
|
|
17
|
+
</dcp-system-reminder>
|
|
18
18
|
`;
|
|
19
19
|
export const NESTED_FORMAT_OVERLAY = `
|
|
20
20
|
THE FORMAT OF COMPRESS
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ITERATION_NUDGE = "<
|
|
1
|
+
export declare const ITERATION_NUDGE = "<dcp-system-reminder>\nYou've been iterating for a while after the last user message.\n\nIf there is a closed portion that is unlikely to be referenced immediately (for example, finished research before implementation), use the compress tool on it now.\n\nPrefer multiple short, closed ranges over one large range when several independent slices are ready.\n</dcp-system-reminder>\n";
|
|
2
2
|
//# sourceMappingURL=iteration-nudge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iteration-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/iteration-nudge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"iteration-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/iteration-nudge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,mYAO3B,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export const ITERATION_NUDGE = `<
|
|
1
|
+
export const ITERATION_NUDGE = `<dcp-system-reminder>
|
|
2
2
|
You've been iterating for a while after the last user message.
|
|
3
3
|
|
|
4
4
|
If there is a closed portion that is unlikely to be referenced immediately (for example, finished research before implementation), use the compress tool on it now.
|
|
5
5
|
|
|
6
6
|
Prefer multiple short, closed ranges over one large range when several independent slices are ready.
|
|
7
|
-
</
|
|
7
|
+
</dcp-system-reminder>
|
|
8
8
|
`;
|
|
9
9
|
//# sourceMappingURL=iteration-nudge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../lib/prompts/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAQvC,MAAM,MAAM,SAAS,GACf,QAAQ,GACR,UAAU,GACV,qBAAqB,GACrB,YAAY,GACZ,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../lib/prompts/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAQvC,MAAM,MAAM,SAAS,GACf,QAAQ,GACR,UAAU,GACV,qBAAqB,GACrB,YAAY,GACZ,iBAAiB,CAAA;AA6BvB,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CAC1B;AA6CD,eAAO,MAAM,WAAW,EAAE,SAAS,EAMlC,CAAA;AA2MD,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,cAAc,CAAgB;gBAE1B,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,UAAQ;IAYlF,iBAAiB,IAAI,cAAc;IAInC,MAAM,IAAI,IAAI;IAiDd,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,kBAAkB;CAkD7B"}
|