acp-kernel 0.0.19 → 0.0.20
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/compress.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +29 -7
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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,EAGL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAGL,KAAK,YAAY,EAElB,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,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;CAC7B;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;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAoO7D;
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAGL,KAAK,YAAY,EAElB,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,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;CAC7B;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;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAoO7D;AA6sBD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,wBAAgB,aAAa,CAC3B,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAC9B,MAAM,CAoCR;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,wBAAgB,aAAa,CAC3B,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAC9B,MAAM,CAoCR;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BvD"}
|
package/dist/index.js
CHANGED
|
@@ -300,7 +300,7 @@ function defaultConfig(modelContextLimit, overrides = {}) {
|
|
|
300
300
|
const base = {
|
|
301
301
|
tiers: { enabled: true, tier2Trigger: 5, tier3Trigger: 10 },
|
|
302
302
|
nudge: {
|
|
303
|
-
maxContextLimitPct: 0.
|
|
303
|
+
maxContextLimitPct: 0.75,
|
|
304
304
|
minContextLimitPct: 0.45,
|
|
305
305
|
frequency: 5,
|
|
306
306
|
iterationThreshold: 15,
|
|
@@ -310,10 +310,10 @@ function defaultConfig(modelContextLimit, overrides = {}) {
|
|
|
310
310
|
growthCap: 5e4,
|
|
311
311
|
minGrowthFloor: 2e4,
|
|
312
312
|
minGrowthRatio: 0.45,
|
|
313
|
-
emergencyThresholdPct: 0.
|
|
313
|
+
emergencyThresholdPct: 0.95
|
|
314
314
|
},
|
|
315
315
|
promotionThreshold: 5,
|
|
316
|
-
truncate: { threshold:
|
|
316
|
+
truncate: { threshold: 0.95 },
|
|
317
317
|
compress: {
|
|
318
318
|
minCompressRange: 5e3,
|
|
319
319
|
maxSummaryLength: 2e4,
|
|
@@ -343,6 +343,11 @@ function validateConfig(config) {
|
|
|
343
343
|
"nudge.minContextLimitPct must not exceed nudge.maxContextLimitPct"
|
|
344
344
|
);
|
|
345
345
|
}
|
|
346
|
+
if (config.nudge.maxContextLimitPct > config.nudge.emergencyThresholdPct) {
|
|
347
|
+
errors.push(
|
|
348
|
+
"nudge.maxContextLimitPct must not exceed nudge.emergencyThresholdPct"
|
|
349
|
+
);
|
|
350
|
+
}
|
|
346
351
|
if (config.promotionThreshold < 1) {
|
|
347
352
|
errors.push("promotionThreshold must be >= 1");
|
|
348
353
|
}
|
|
@@ -1543,6 +1548,7 @@ function decideNudge(input) {
|
|
|
1543
1548
|
const limit = config.modelContextLimit;
|
|
1544
1549
|
const usage = limit > 0 ? tokenCount / limit : 0;
|
|
1545
1550
|
const nudgeGrowthTokens = resolveAdaptiveGrowth(limit, config.nudge);
|
|
1551
|
+
const overLimit = usage >= config.nudge.maxContextLimitPct;
|
|
1546
1552
|
const emergencyOverride = usage >= config.nudge.emergencyThresholdPct;
|
|
1547
1553
|
const baseline = state.nudge.lastPerMessageNudgeTokens;
|
|
1548
1554
|
const hadPendingNudge = state.nudge.lastNudgeShownTokens > 0;
|
|
@@ -1559,7 +1565,7 @@ function decideNudge(input) {
|
|
|
1559
1565
|
let injectedTier = null;
|
|
1560
1566
|
let injectedReason = "";
|
|
1561
1567
|
const growthReady = growthSinceReference >= growthFloor;
|
|
1562
|
-
if (!
|
|
1568
|
+
if (!overLimit && growthReady) {
|
|
1563
1569
|
for (const tier of [1, 2, 3]) {
|
|
1564
1570
|
if (!config.tiers.enabled && tier > 1) break;
|
|
1565
1571
|
const info = tiers[tier];
|
|
@@ -1571,11 +1577,26 @@ function decideNudge(input) {
|
|
|
1571
1577
|
injectedReason = tier === 1 ? `T1 compressible ${info.pending} >= ${nudgeGrowthTokens}, growth ${growthSinceReference}, usage ${Math.round(usage * 100)}%` : `T${tier} distill ready: ${info.targetBlocks.length} tier-${tier - 1} blocks (${info.pending} tokens) >= ${nudgeGrowthTokens}, usage ${Math.round(usage * 100)}%`;
|
|
1572
1578
|
break;
|
|
1573
1579
|
}
|
|
1580
|
+
} else if (overLimit) {
|
|
1581
|
+
for (const tier of [1, 2, 3]) {
|
|
1582
|
+
if (!config.tiers.enabled && tier > 1) break;
|
|
1583
|
+
const info = tiers[tier];
|
|
1584
|
+
if (!info || info.pending < 1) continue;
|
|
1585
|
+
injectedTier = tier;
|
|
1586
|
+
injectedReason = emergencyOverride ? `EMERGENCY: usage ${Math.round(usage * 100)}% >= ${Math.round(config.nudge.emergencyThresholdPct * 100)}%, T${tier} pending ${info.pending}` : `OVER-LIMIT: usage ${Math.round(usage * 100)}% >= ${Math.round(config.nudge.maxContextLimitPct * 100)}%, T${tier} pending ${info.pending}`;
|
|
1587
|
+
break;
|
|
1588
|
+
}
|
|
1574
1589
|
}
|
|
1575
|
-
const shouldInject =
|
|
1590
|
+
const shouldInject = overLimit || injectedTier !== null;
|
|
1576
1591
|
let reason;
|
|
1577
|
-
if (emergencyOverride) {
|
|
1578
|
-
reason =
|
|
1592
|
+
if (emergencyOverride && injectedTier !== null) {
|
|
1593
|
+
reason = injectedReason;
|
|
1594
|
+
} else if (emergencyOverride) {
|
|
1595
|
+
reason = `EMERGENCY: usage ${Math.round(usage * 100)}% >= ${Math.round(config.nudge.emergencyThresholdPct * 100)}% (no compressible content)`;
|
|
1596
|
+
} else if (overLimit && injectedTier !== null) {
|
|
1597
|
+
reason = injectedReason;
|
|
1598
|
+
} else if (overLimit) {
|
|
1599
|
+
reason = `OVER-LIMIT: usage ${Math.round(usage * 100)}% >= ${Math.round(config.nudge.maxContextLimitPct * 100)}% (no compressible content)`;
|
|
1579
1600
|
} else if (injectedTier !== null) {
|
|
1580
1601
|
reason = injectedReason;
|
|
1581
1602
|
} else {
|
|
@@ -1611,6 +1632,7 @@ function decideNudge(input) {
|
|
|
1611
1632
|
nudgeGrowthTokens,
|
|
1612
1633
|
growthFloor,
|
|
1613
1634
|
hasPendingNudge: hasPendingNudge ? 1 : 0,
|
|
1635
|
+
overLimit: overLimit ? 1 : 0,
|
|
1614
1636
|
emergencyOverride: emergencyOverride ? 1 : 0,
|
|
1615
1637
|
pendingT1: tiers[1].pending,
|
|
1616
1638
|
pendingT2: tiers[2].pending,
|