acp-kernel 0.0.85-pr.376.236 → 0.0.85-pr.378.237
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/absorb.d.ts +2 -2
- package/dist/absorb.d.ts.map +1 -1
- package/dist/ccr.d.ts.map +1 -1
- package/dist/compress.d.ts.map +1 -1
- package/dist/crush.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +169 -108
- package/dist/index.js.map +1 -1
- package/dist/protected.d.ts +42 -5
- package/dist/protected.d.ts.map +1 -1
- package/dist/recommend.d.ts.map +1 -1
- package/dist/rules.d.ts +6 -3
- package/dist/rules.d.ts.map +1 -1
- package/dist/types.d.ts +5 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/absorb.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LatestProtected } from "./protected.js";
|
|
1
|
+
import { type LatestProtected, type RulePairProtection } from "./protected.js";
|
|
2
2
|
import type { AbsorbConfig, Config, CompressionState, CoreMessage } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Instant tool-result absorption ("absorb") — the middle layer between
|
|
@@ -18,7 +18,7 @@ export declare function buildAbsorbPrompt(ref: string, tokens: number, toolName?
|
|
|
18
18
|
export declare function buildAbsorbSystemPrompt(toolName?: string): string;
|
|
19
19
|
/** True when a tool-result message is in scope for absorption prompting:
|
|
20
20
|
* a tool-result of a non-ACP, non-excluded, non-protected tool. */
|
|
21
|
-
export declare function isAbsorbCandidate(msg: CoreMessage, config: Config, latest?: LatestProtected): boolean;
|
|
21
|
+
export declare function isAbsorbCandidate(msg: CoreMessage, config: Config, latest?: LatestProtected, rule?: RulePairProtection): boolean;
|
|
22
22
|
/** Drop tool-call + tool-result pairs recorded in state.absorbed. Both halves
|
|
23
23
|
* go together so the provider-visible conversation stays structurally valid;
|
|
24
24
|
* prune's orphan stripping cleans up any straddling leftovers. */
|
package/dist/absorb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"absorb.d.ts","sourceRoot":"","sources":["../src/absorb.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"absorb.d.ts","sourceRoot":"","sources":["../src/absorb.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,YAAY,EAEZ,MAAM,EACN,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AAEH,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAEhE;AAQD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,GAClC,MAAM,CAQR;AAED,8DAA8D;AAC9D,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,MAAyB,GAClC,MAAM,CAIR;AAWD;oEACoE;AACpE,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,eAAe,EACxB,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAYT;AAED;;mEAEmE;AACnE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,gBAAgB,GACtB,WAAW,EAAE,CASf;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;sEAGsE;AACtE,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACpC,yBAAyB,CAqC3B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;4DAE4D;AAC5D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjC,YAAY,GAAG,IAAI,CA+BrB;AAaD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;0DAE0D;AAC1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CA6G7D"}
|
package/dist/ccr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ccr.d.ts","sourceRoot":"","sources":["../src/ccr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ccr.d.ts","sourceRoot":"","sources":["../src/ccr.ts"],"names":[],"mappings":"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"}
|
package/dist/compress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAehF,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAehF,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBvD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,MAAM,EAEN,WAAW,EAGX,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACxD;mEAC+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACvE,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACnE,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;8DAC0D;IAC1D,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AA2GD,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAmW7D;AAqpCD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/crush.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crush.d.ts","sourceRoot":"","sources":["../src/crush.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"crush.d.ts","sourceRoot":"","sources":["../src/crush.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -58,7 +58,7 @@ export { searchBlocks, searchBlocksAsync, blockDocs, messageDocs, } from "./sear
|
|
|
58
58
|
export { clearDocFeatures, docCacheInfo, docFeatures, setDocCacheCap, } from "./search.js";
|
|
59
59
|
export type { SearchResult, SearchOptions, SearchAlgorithm, AsyncSearchAlgorithm, AnySearchAlgorithm, SearchDoc, SearchDocKind, ScoredBlock, MessageRole, RoleWeights, MessageInput, } from "./search.js";
|
|
60
60
|
export { DEFAULT_ALGORITHM, DEFAULT_ROLE_WEIGHTS, registerSearchAlgorithm, getSearchAlgorithm, listSearchAlgorithms, } from "./search.js";
|
|
61
|
-
export { collectLatestProtected, hasMediaPayload, isMessageLatestProtected, isMessageProtected, matchToolPattern, type LatestProtected, } from "./protected.js";
|
|
61
|
+
export { collectLatestProtected, collectRulePairProtection, hasMediaPayload, isMessageLatestProtected, isMessageProtected, isMessageRuleProtected, matchToolPattern, type LatestProtected, type RulePairProtection, } from "./protected.js";
|
|
62
62
|
export { runPipeline, makeIO, type PipelineNode, type PipelineContext, type NodeIO, type NodeEffects, } from "./pipeline.js";
|
|
63
63
|
export * from "./filter/index.js";
|
|
64
64
|
export { VIABLE_RANGE_MIN_TOKENS, viableRanges } from "./viable.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1175,8 +1175,107 @@ var RETRIEVE_TOOL_RESPONSES = {
|
|
|
1175
1175
|
parameters: RETRIEVE_PARAMETERS
|
|
1176
1176
|
};
|
|
1177
1177
|
|
|
1178
|
+
// src/rules.ts
|
|
1179
|
+
var RULE_TOOL_NAME = "acp_rule";
|
|
1180
|
+
var DEFAULT_RULE_LIMITS = Object.freeze({
|
|
1181
|
+
maxRules: 50,
|
|
1182
|
+
maxRuleChars: 300
|
|
1183
|
+
});
|
|
1184
|
+
var RULES_USAGE_PROMPT = [
|
|
1185
|
+
"Use the acp_rule tool to record short, principle-level reminders that must survive context compression:",
|
|
1186
|
+
"- behavioral corrections the user has had to repeat more than once,",
|
|
1187
|
+
"- project invariants the user explicitly asked you to remember,",
|
|
1188
|
+
"- pitfalls you ran into once and must not run into again.",
|
|
1189
|
+
"Rules are re-injected into the system prompt every turn. Omit the text argument to list recorded rules."
|
|
1190
|
+
].join("\n");
|
|
1191
|
+
function listRules(state) {
|
|
1192
|
+
return state.rules ?? [];
|
|
1193
|
+
}
|
|
1194
|
+
function resolveRuleLimits(config) {
|
|
1195
|
+
return {
|
|
1196
|
+
maxRules: config?.rules?.maxRules ?? DEFAULT_RULE_LIMITS.maxRules,
|
|
1197
|
+
maxRuleChars: config?.rules?.maxRuleChars ?? DEFAULT_RULE_LIMITS.maxRuleChars
|
|
1198
|
+
};
|
|
1199
|
+
}
|
|
1200
|
+
var RULE_ID_RE = /^rule(\d+)$/;
|
|
1201
|
+
function highestRuleNumber(state) {
|
|
1202
|
+
let highest = 0;
|
|
1203
|
+
for (const rule of state.rules ?? []) {
|
|
1204
|
+
const match = RULE_ID_RE.exec(rule.id);
|
|
1205
|
+
if (match) highest = Math.max(highest, Number(match[1]));
|
|
1206
|
+
}
|
|
1207
|
+
return highest;
|
|
1208
|
+
}
|
|
1209
|
+
function allocateRuleId(state) {
|
|
1210
|
+
return `rule${Math.max(state.nextRuleId ?? 1, highestRuleNumber(state) + 1)}`;
|
|
1211
|
+
}
|
|
1212
|
+
function addRule(state, text, limits = {}) {
|
|
1213
|
+
const maxRules = limits.maxRules ?? DEFAULT_RULE_LIMITS.maxRules;
|
|
1214
|
+
const maxRuleChars = limits.maxRuleChars ?? DEFAULT_RULE_LIMITS.maxRuleChars;
|
|
1215
|
+
const trimmed = (text ?? "").trim();
|
|
1216
|
+
if (!trimmed) {
|
|
1217
|
+
return {
|
|
1218
|
+
ok: false,
|
|
1219
|
+
error: "rule text is empty \u2014 provide the reminder to record."
|
|
1220
|
+
};
|
|
1221
|
+
}
|
|
1222
|
+
if (trimmed.length > maxRuleChars) {
|
|
1223
|
+
return {
|
|
1224
|
+
ok: false,
|
|
1225
|
+
error: `${trimmed.length} chars exceeds the ${maxRuleChars}-char limit \u2014 keep rules short and principle-level.`
|
|
1226
|
+
};
|
|
1227
|
+
}
|
|
1228
|
+
const rules = listRules(state);
|
|
1229
|
+
const duplicate = rules.find((rule2) => rule2.text === trimmed);
|
|
1230
|
+
if (duplicate) {
|
|
1231
|
+
return {
|
|
1232
|
+
ok: false,
|
|
1233
|
+
error: `identical rule already exists (${duplicate.id}) \u2014 no change.`
|
|
1234
|
+
};
|
|
1235
|
+
}
|
|
1236
|
+
if (rules.length >= maxRules) {
|
|
1237
|
+
return {
|
|
1238
|
+
ok: false,
|
|
1239
|
+
error: `rule limit reached (${maxRules}) \u2014 remove or clear outdated rules first.`
|
|
1240
|
+
};
|
|
1241
|
+
}
|
|
1242
|
+
const next = Math.max(state.nextRuleId ?? 1, highestRuleNumber(state) + 1);
|
|
1243
|
+
const rule = { id: `rule${next}`, text: trimmed };
|
|
1244
|
+
state.rules = [...rules, rule];
|
|
1245
|
+
state.nextRuleId = next + 1;
|
|
1246
|
+
return { ok: true, rule };
|
|
1247
|
+
}
|
|
1248
|
+
function removeRule(state, id) {
|
|
1249
|
+
const rules = listRules(state);
|
|
1250
|
+
const target = rules.find((rule) => rule.id === id.trim());
|
|
1251
|
+
if (!target) {
|
|
1252
|
+
return {
|
|
1253
|
+
ok: false,
|
|
1254
|
+
error: `no rule with id "${id.trim()}" \u2014 list current rules first (omit the text argument).`
|
|
1255
|
+
};
|
|
1256
|
+
}
|
|
1257
|
+
state.rules = rules.filter((rule) => rule.id !== target.id);
|
|
1258
|
+
return { ok: true, rule: target };
|
|
1259
|
+
}
|
|
1260
|
+
function clearRules(state) {
|
|
1261
|
+
const count = listRules(state).length;
|
|
1262
|
+
state.rules = [];
|
|
1263
|
+
return { ok: true, count };
|
|
1264
|
+
}
|
|
1265
|
+
function formatRulesForPrompt(state) {
|
|
1266
|
+
const rules = listRules(state);
|
|
1267
|
+
if (rules.length === 0) return "";
|
|
1268
|
+
return [
|
|
1269
|
+
"# Persistent rules (recorded via acp_rule \u2014 kept across compression)",
|
|
1270
|
+
...rules.map((rule) => `- [${rule.id}] ${rule.text}`)
|
|
1271
|
+
].join("\n");
|
|
1272
|
+
}
|
|
1273
|
+
function formatRulesList(rules) {
|
|
1274
|
+
return rules.map((rule, i) => `${i + 1}. [${rule.id}] ${rule.text}`).join("\n");
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1178
1277
|
// src/protected.ts
|
|
1179
|
-
var ALWAYS_PROTECTED_TOOLS = ["compress"
|
|
1278
|
+
var ALWAYS_PROTECTED_TOOLS = ["compress"];
|
|
1180
1279
|
var NEVER_PRESERVE_RECENT_TOOLS = [
|
|
1181
1280
|
"decompress",
|
|
1182
1281
|
"search_context",
|
|
@@ -1270,6 +1369,57 @@ function hasMediaPayload(msg) {
|
|
|
1270
1369
|
function isObjWith(v, key, value) {
|
|
1271
1370
|
return typeof v === "object" && v !== null && v[key] === value;
|
|
1272
1371
|
}
|
|
1372
|
+
var RULE_RECORD_RESULT_RE = /^Recorded (rule\d+): /;
|
|
1373
|
+
var RULE_REMOVE_RESULT_RE = /^Removed (rule\d+): /;
|
|
1374
|
+
var RULE_CLEAR_RESULT_RE = /^Cleared \d+ rule\(s\)\./;
|
|
1375
|
+
function collectRulePairProtection(messages) {
|
|
1376
|
+
const callNameById = /* @__PURE__ */ new Map();
|
|
1377
|
+
for (const m of messages) {
|
|
1378
|
+
if (m.contentType === "tool-call" && m.toolCallId && m.toolName) {
|
|
1379
|
+
callNameById.set(m.toolCallId, m.toolName);
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
const isRuleResult = (m) => m.contentType === "tool-result" && (m.toolName === RULE_TOOL_NAME || m.toolCallId != null && callNameById.get(m.toolCallId) === RULE_TOOL_NAME);
|
|
1383
|
+
const live = /* @__PURE__ */ new Set();
|
|
1384
|
+
const malformedMsgIds = /* @__PURE__ */ new Set();
|
|
1385
|
+
const callIds = /* @__PURE__ */ new Set();
|
|
1386
|
+
for (const m of messages) {
|
|
1387
|
+
if (!isRuleResult(m)) continue;
|
|
1388
|
+
const text = m.text ?? "";
|
|
1389
|
+
const removedId = RULE_REMOVE_RESULT_RE.exec(text)?.[1];
|
|
1390
|
+
if (removedId !== void 0) {
|
|
1391
|
+
live.delete(removedId);
|
|
1392
|
+
continue;
|
|
1393
|
+
}
|
|
1394
|
+
if (RULE_CLEAR_RESULT_RE.test(text)) {
|
|
1395
|
+
live.clear();
|
|
1396
|
+
continue;
|
|
1397
|
+
}
|
|
1398
|
+
const recordedId = RULE_RECORD_RESULT_RE.exec(text)?.[1];
|
|
1399
|
+
if (recordedId !== void 0) {
|
|
1400
|
+
live.add(recordedId);
|
|
1401
|
+
} else if (text.startsWith("Recorded ")) {
|
|
1402
|
+
malformedMsgIds.add(m.id);
|
|
1403
|
+
if (m.toolCallId) callIds.add(m.toolCallId);
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
const msgIds = new Set(malformedMsgIds);
|
|
1407
|
+
for (const m of messages) {
|
|
1408
|
+
if (!isRuleResult(m)) continue;
|
|
1409
|
+
const recordedId = RULE_RECORD_RESULT_RE.exec(m.text ?? "")?.[1];
|
|
1410
|
+
if (recordedId === void 0 || !live.has(recordedId)) continue;
|
|
1411
|
+
if (m.toolCallId) callIds.add(m.toolCallId);
|
|
1412
|
+
else msgIds.add(m.id);
|
|
1413
|
+
}
|
|
1414
|
+
return { callIds, msgIds };
|
|
1415
|
+
}
|
|
1416
|
+
function isMessageRuleProtected(msg, protection) {
|
|
1417
|
+
if (msg.contentType !== "tool-call" && msg.contentType !== "tool-result") {
|
|
1418
|
+
return false;
|
|
1419
|
+
}
|
|
1420
|
+
if (protection.msgIds.has(msg.id)) return true;
|
|
1421
|
+
return msg.toolCallId != null && protection.callIds.has(msg.toolCallId);
|
|
1422
|
+
}
|
|
1273
1423
|
|
|
1274
1424
|
// src/content-store.ts
|
|
1275
1425
|
import { createHash } from "crypto";
|
|
@@ -1447,6 +1597,7 @@ function storeLargeResults(input) {
|
|
|
1447
1597
|
callById.set(message.toolCallId, message);
|
|
1448
1598
|
}
|
|
1449
1599
|
}
|
|
1600
|
+
const ruleProt = collectRulePairProtection(input.messages);
|
|
1450
1601
|
const updated = input.messages.map((message) => {
|
|
1451
1602
|
if (message.contentType !== "tool-result") return message;
|
|
1452
1603
|
const text = message.text ?? "";
|
|
@@ -1460,7 +1611,8 @@ function storeLargeResults(input) {
|
|
|
1460
1611
|
if (toolName && cfg.excludeTools.some((pattern) => matchToolPattern(toolName, pattern))) {
|
|
1461
1612
|
return message;
|
|
1462
1613
|
}
|
|
1463
|
-
if (isMessageProtected(message, input.config)
|
|
1614
|
+
if (isMessageProtected(message, input.config) || isMessageRuleProtected(message, ruleProt))
|
|
1615
|
+
return message;
|
|
1464
1616
|
const tokens = input.countTokens(text);
|
|
1465
1617
|
if (tokens < cfg.minToolTokens) return message;
|
|
1466
1618
|
const ref = refForRaw(input.state.messageRefs, message.id);
|
|
@@ -2025,13 +2177,14 @@ function isAcpOrConfiguredTool(toolName, cfg) {
|
|
|
2025
2177
|
if (toolName === cfg.toolName) return true;
|
|
2026
2178
|
return ACP_TOOL_NAMES.has(toolName);
|
|
2027
2179
|
}
|
|
2028
|
-
function isAbsorbCandidate(msg, config, latest) {
|
|
2180
|
+
function isAbsorbCandidate(msg, config, latest, rule) {
|
|
2029
2181
|
if (msg.contentType !== "tool-result" || !msg.toolCallId) return false;
|
|
2030
2182
|
if (isStoredPlaceholderText(msg.text ?? "")) return false;
|
|
2031
2183
|
const cfg = resolveAbsorbConfig(config);
|
|
2032
2184
|
if (isAcpOrConfiguredTool(msg.toolName, cfg)) return false;
|
|
2033
2185
|
if (isMessageProtected(msg, config)) return false;
|
|
2034
2186
|
if (latest && isMessageLatestProtected(msg, latest)) return false;
|
|
2187
|
+
if (rule && isMessageRuleProtected(msg, rule)) return false;
|
|
2035
2188
|
for (const pattern of cfg.excludeTools) {
|
|
2036
2189
|
if (msg.toolName && matchToolPattern(msg.toolName, pattern)) return false;
|
|
2037
2190
|
}
|
|
@@ -2060,8 +2213,9 @@ function appendAbsorbPrompts(messages, state, config, tokenCount, countTokens) {
|
|
|
2060
2213
|
}
|
|
2061
2214
|
let promptedCount = 0;
|
|
2062
2215
|
const latest = collectLatestProtected(messages, config);
|
|
2216
|
+
const ruleProt = collectRulePairProtection(messages);
|
|
2063
2217
|
const out = messages.map((msg) => {
|
|
2064
|
-
if (!isAbsorbCandidate(msg, config, latest)) return msg;
|
|
2218
|
+
if (!isAbsorbCandidate(msg, config, latest, ruleProt)) return msg;
|
|
2065
2219
|
if (absorbedIds.has(msg.id)) return msg;
|
|
2066
2220
|
const text = msg.text ?? "";
|
|
2067
2221
|
if (text.includes(ABSORB_PROMPT_MARKER)) return msg;
|
|
@@ -2170,7 +2324,7 @@ function applyAbsorb(input) {
|
|
|
2170
2324
|
if (isMessageProtected(target, input.config) || isMessageLatestProtected(
|
|
2171
2325
|
target,
|
|
2172
2326
|
collectLatestProtected(input.messages, input.config)
|
|
2173
|
-
)) {
|
|
2327
|
+
) || isMessageRuleProtected(target, collectRulePairProtection(input.messages))) {
|
|
2174
2328
|
return {
|
|
2175
2329
|
state: input.state,
|
|
2176
2330
|
ok: false,
|
|
@@ -3505,8 +3659,9 @@ function applyCrushToMessages(messages, config, tokenCount, countTokens) {
|
|
|
3505
3659
|
let distilledCount = 0;
|
|
3506
3660
|
let changed = false;
|
|
3507
3661
|
const out = [];
|
|
3662
|
+
const ruleProt = collectRulePairProtection(messages);
|
|
3508
3663
|
for (const msg of messages) {
|
|
3509
|
-
if (!isAbsorbCandidate(msg, config)) {
|
|
3664
|
+
if (!isAbsorbCandidate(msg, config, void 0, ruleProt)) {
|
|
3510
3665
|
out.push(msg);
|
|
3511
3666
|
continue;
|
|
3512
3667
|
}
|
|
@@ -4003,6 +4158,7 @@ function buildCompressibleRanges(messages, state, config, protectedZoneRefs, cou
|
|
|
4003
4158
|
const protectedCallIds = collectProtectedToolCallIds(messages, config);
|
|
4004
4159
|
const latest = collectLatestProtected(messages, config);
|
|
4005
4160
|
for (const id of latest.callIds) protectedCallIds.add(id);
|
|
4161
|
+
const ruleProt = collectRulePairProtection(messages);
|
|
4006
4162
|
let skipSinceCompressible = false;
|
|
4007
4163
|
let skipSinceProtected = false;
|
|
4008
4164
|
let msgIndex = -1;
|
|
@@ -4020,7 +4176,7 @@ function buildCompressibleRanges(messages, state, config, protectedZoneRefs, cou
|
|
|
4020
4176
|
skipSinceProtected = true;
|
|
4021
4177
|
continue;
|
|
4022
4178
|
}
|
|
4023
|
-
if (isMessageProtectedWithPairing(msg, config, protectedCallIds) || isMessageLatestProtected(msg, latest)) {
|
|
4179
|
+
if (isMessageProtectedWithPairing(msg, config, protectedCallIds) || isMessageLatestProtected(msg, latest) || isMessageRuleProtected(msg, ruleProt)) {
|
|
4024
4180
|
protectedMsgs.push({
|
|
4025
4181
|
ref,
|
|
4026
4182
|
gapBefore: skipSinceProtected,
|
|
@@ -4544,7 +4700,8 @@ var assignRefsNode = {
|
|
|
4544
4700
|
run(io, ctx) {
|
|
4545
4701
|
const hasProtection = ctx.config.protectedTools.length > 0 || !!ctx.config.isToolProtected || (ctx.config.protectedLatestTools?.length ?? 0) > 0;
|
|
4546
4702
|
const latest = hasProtection ? collectLatestProtected(io.messages, ctx.config) : void 0;
|
|
4547
|
-
const
|
|
4703
|
+
const ruleProt = collectRulePairProtection(io.messages);
|
|
4704
|
+
const protectedFn = (m) => hasMediaPayload(m) || isMessageRuleProtected(m, ruleProt) || (hasProtection ? isMessageProtected(m, ctx.config) || (latest ? isMessageLatestProtected(m, latest) : false) : false);
|
|
4548
4705
|
const refResult = assignRefs(io.messages, {
|
|
4549
4706
|
existing: io.state.messageRefs,
|
|
4550
4707
|
nextIndex: highestUsedIndex(io.state.messageRefs) + 1,
|
|
@@ -4993,6 +5150,7 @@ function filterProtectedToolMessages(directMessageIds, messages, config) {
|
|
|
4993
5150
|
const removedIds = /* @__PURE__ */ new Set();
|
|
4994
5151
|
const latest = collectLatestProtected(messages, config);
|
|
4995
5152
|
for (const id of latest.callIds) protectedCallIds.add(id);
|
|
5153
|
+
const ruleProt = collectRulePairProtection(messages);
|
|
4996
5154
|
for (const msg of messages) {
|
|
4997
5155
|
if (isMessageProtected(msg, config) && msg.toolCallId) {
|
|
4998
5156
|
protectedCallIds.add(msg.toolCallId);
|
|
@@ -5001,7 +5159,7 @@ function filterProtectedToolMessages(directMessageIds, messages, config) {
|
|
|
5001
5159
|
for (const id of directMessageIds) {
|
|
5002
5160
|
const msg = messages.find((m) => m.id === id);
|
|
5003
5161
|
if (!msg) continue;
|
|
5004
|
-
if (hasMediaPayload(msg) || isMessageProtected(msg, config) || isMessageLatestProtected(msg, latest)) {
|
|
5162
|
+
if (hasMediaPayload(msg) || isMessageProtected(msg, config) || isMessageLatestProtected(msg, latest) || isMessageRuleProtected(msg, ruleProt)) {
|
|
5005
5163
|
removedIds.add(id);
|
|
5006
5164
|
if (msg.toolCallId) protectedCallIds.add(msg.toolCallId);
|
|
5007
5165
|
}
|
|
@@ -6461,105 +6619,6 @@ function matchSession(sessions, selector, labelOf) {
|
|
|
6461
6619
|
return sessions.filter((s) => s.id.startsWith(selector) || (labelOf(s) ?? "").startsWith(selector));
|
|
6462
6620
|
}
|
|
6463
6621
|
|
|
6464
|
-
// src/rules.ts
|
|
6465
|
-
var RULE_TOOL_NAME = "acp_rule";
|
|
6466
|
-
var DEFAULT_RULE_LIMITS = Object.freeze({
|
|
6467
|
-
maxRules: 50,
|
|
6468
|
-
maxRuleChars: 300
|
|
6469
|
-
});
|
|
6470
|
-
var RULES_USAGE_PROMPT = [
|
|
6471
|
-
"Use the acp_rule tool to record short, principle-level reminders that must survive context compression:",
|
|
6472
|
-
"- behavioral corrections the user has had to repeat more than once,",
|
|
6473
|
-
"- project invariants the user explicitly asked you to remember,",
|
|
6474
|
-
"- pitfalls you ran into once and must not run into again.",
|
|
6475
|
-
"Rules are re-injected into the system prompt every turn. Omit the text argument to list recorded rules."
|
|
6476
|
-
].join("\n");
|
|
6477
|
-
function listRules(state) {
|
|
6478
|
-
return state.rules ?? [];
|
|
6479
|
-
}
|
|
6480
|
-
function resolveRuleLimits(config) {
|
|
6481
|
-
return {
|
|
6482
|
-
maxRules: config?.rules?.maxRules ?? DEFAULT_RULE_LIMITS.maxRules,
|
|
6483
|
-
maxRuleChars: config?.rules?.maxRuleChars ?? DEFAULT_RULE_LIMITS.maxRuleChars
|
|
6484
|
-
};
|
|
6485
|
-
}
|
|
6486
|
-
var RULE_ID_RE = /^rule(\d+)$/;
|
|
6487
|
-
function highestRuleNumber(state) {
|
|
6488
|
-
let highest = 0;
|
|
6489
|
-
for (const rule of state.rules ?? []) {
|
|
6490
|
-
const match = RULE_ID_RE.exec(rule.id);
|
|
6491
|
-
if (match) highest = Math.max(highest, Number(match[1]));
|
|
6492
|
-
}
|
|
6493
|
-
return highest;
|
|
6494
|
-
}
|
|
6495
|
-
function allocateRuleId(state) {
|
|
6496
|
-
return `rule${Math.max(state.nextRuleId ?? 1, highestRuleNumber(state) + 1)}`;
|
|
6497
|
-
}
|
|
6498
|
-
function addRule(state, text, limits = {}) {
|
|
6499
|
-
const maxRules = limits.maxRules ?? DEFAULT_RULE_LIMITS.maxRules;
|
|
6500
|
-
const maxRuleChars = limits.maxRuleChars ?? DEFAULT_RULE_LIMITS.maxRuleChars;
|
|
6501
|
-
const trimmed = (text ?? "").trim();
|
|
6502
|
-
if (!trimmed) {
|
|
6503
|
-
return {
|
|
6504
|
-
ok: false,
|
|
6505
|
-
error: "rule text is empty \u2014 provide the reminder to record."
|
|
6506
|
-
};
|
|
6507
|
-
}
|
|
6508
|
-
if (trimmed.length > maxRuleChars) {
|
|
6509
|
-
return {
|
|
6510
|
-
ok: false,
|
|
6511
|
-
error: `${trimmed.length} chars exceeds the ${maxRuleChars}-char limit \u2014 keep rules short and principle-level.`
|
|
6512
|
-
};
|
|
6513
|
-
}
|
|
6514
|
-
const rules = listRules(state);
|
|
6515
|
-
const duplicate = rules.find((rule2) => rule2.text === trimmed);
|
|
6516
|
-
if (duplicate) {
|
|
6517
|
-
return {
|
|
6518
|
-
ok: false,
|
|
6519
|
-
error: `identical rule already exists (${duplicate.id}) \u2014 no change.`
|
|
6520
|
-
};
|
|
6521
|
-
}
|
|
6522
|
-
if (rules.length >= maxRules) {
|
|
6523
|
-
return {
|
|
6524
|
-
ok: false,
|
|
6525
|
-
error: `rule limit reached (${maxRules}) \u2014 remove or clear outdated rules first.`
|
|
6526
|
-
};
|
|
6527
|
-
}
|
|
6528
|
-
const next = Math.max(state.nextRuleId ?? 1, highestRuleNumber(state) + 1);
|
|
6529
|
-
const rule = { id: `rule${next}`, text: trimmed };
|
|
6530
|
-
state.rules = [...rules, rule];
|
|
6531
|
-
state.nextRuleId = next + 1;
|
|
6532
|
-
return { ok: true, rule };
|
|
6533
|
-
}
|
|
6534
|
-
function removeRule(state, id) {
|
|
6535
|
-
const rules = listRules(state);
|
|
6536
|
-
const target = rules.find((rule) => rule.id === id.trim());
|
|
6537
|
-
if (!target) {
|
|
6538
|
-
return {
|
|
6539
|
-
ok: false,
|
|
6540
|
-
error: `no rule with id "${id.trim()}" \u2014 list current rules first (omit the text argument).`
|
|
6541
|
-
};
|
|
6542
|
-
}
|
|
6543
|
-
state.rules = rules.filter((rule) => rule.id !== target.id);
|
|
6544
|
-
return { ok: true, rule: target };
|
|
6545
|
-
}
|
|
6546
|
-
function clearRules(state) {
|
|
6547
|
-
const count = listRules(state).length;
|
|
6548
|
-
state.rules = [];
|
|
6549
|
-
return { ok: true, count };
|
|
6550
|
-
}
|
|
6551
|
-
function formatRulesForPrompt(state) {
|
|
6552
|
-
const rules = listRules(state);
|
|
6553
|
-
if (rules.length === 0) return "";
|
|
6554
|
-
return [
|
|
6555
|
-
"# Persistent rules (recorded via acp_rule \u2014 kept across compression)",
|
|
6556
|
-
...rules.map((rule) => `- [${rule.id}] ${rule.text}`)
|
|
6557
|
-
].join("\n");
|
|
6558
|
-
}
|
|
6559
|
-
function formatRulesList(rules) {
|
|
6560
|
-
return rules.map((rule, i) => `${i + 1}. [${rule.id}] ${rule.text}`).join("\n");
|
|
6561
|
-
}
|
|
6562
|
-
|
|
6563
6622
|
// src/image-compress.ts
|
|
6564
6623
|
var DEFAULT_IMAGE_COMPRESSION_CONFIG = {
|
|
6565
6624
|
enabled: false,
|
|
@@ -7997,6 +8056,7 @@ export {
|
|
|
7997
8056
|
codeTrimPlugin,
|
|
7998
8057
|
collectBlockContent,
|
|
7999
8058
|
collectLatestProtected,
|
|
8059
|
+
collectRulePairProtection,
|
|
8000
8060
|
computeFoldEconomics,
|
|
8001
8061
|
contentStoreStats,
|
|
8002
8062
|
countMessageTokens,
|
|
@@ -8048,6 +8108,7 @@ export {
|
|
|
8048
8108
|
isImageFullRestored,
|
|
8049
8109
|
isMessageLatestProtected,
|
|
8050
8110
|
isMessageProtected,
|
|
8111
|
+
isMessageRuleProtected,
|
|
8051
8112
|
isRenderedSummaryMessage,
|
|
8052
8113
|
isRetrievedMessage,
|
|
8053
8114
|
isStoredPlaceholderText,
|