opencode-acp 1.14.27-pr.370.105 → 1.14.27-pr.370.110

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/index.js CHANGED
@@ -911,6 +911,8 @@ var VALID_CONFIG_KEYS = /* @__PURE__ */ new Set([
911
911
  "compress.preserveLastUserMessage",
912
912
  "compress.stripProtectedReasoning",
913
913
  "compress.stripProtectedReasoningThreshold",
914
+ "compress.stripProtectedReasoningProviders",
915
+ "compress.stripProtectedReasoningMinMessages",
914
916
  "gc",
915
917
  "gc.algorithm",
916
918
  "gc.promotionThreshold",
@@ -1278,6 +1280,22 @@ function validateConfigTypes(config) {
1278
1280
  actual: JSON.stringify(compress.stripProtectedReasoningThreshold)
1279
1281
  });
1280
1282
  }
1283
+ if (compress.stripProtectedReasoningProviders !== void 0 && (!Array.isArray(compress.stripProtectedReasoningProviders) || !compress.stripProtectedReasoningProviders.every(
1284
+ (entry) => typeof entry === "string" && entry.trim() !== ""
1285
+ ))) {
1286
+ errors.push({
1287
+ key: "compress.stripProtectedReasoningProviders",
1288
+ expected: 'string[] (non-empty strings; "*" = all providers)',
1289
+ actual: JSON.stringify(compress.stripProtectedReasoningProviders)
1290
+ });
1291
+ }
1292
+ if (compress.stripProtectedReasoningMinMessages !== void 0 && (typeof compress.stripProtectedReasoningMinMessages !== "number" || !Number.isInteger(compress.stripProtectedReasoningMinMessages) || compress.stripProtectedReasoningMinMessages < 0)) {
1293
+ errors.push({
1294
+ key: "compress.stripProtectedReasoningMinMessages",
1295
+ expected: "integer (>= 0)",
1296
+ actual: JSON.stringify(compress.stripProtectedReasoningMinMessages)
1297
+ });
1298
+ }
1281
1299
  if (typeof compress.iterationNudgeThreshold === "number" && compress.iterationNudgeThreshold < 1) {
1282
1300
  errors.push({
1283
1301
  key: "compress.iterationNudgeThreshold",
@@ -1677,7 +1695,9 @@ var defaultConfig = {
1677
1695
  preserveRecentTokens: 5e3,
1678
1696
  preserveLastUserMessage: true,
1679
1697
  stripProtectedReasoning: true,
1680
- stripProtectedReasoningThreshold: 2048
1698
+ stripProtectedReasoningThreshold: 0,
1699
+ stripProtectedReasoningProviders: ["anthropic", "gemini"],
1700
+ stripProtectedReasoningMinMessages: 100
1681
1701
  },
1682
1702
  gc: {
1683
1703
  algorithm: "truncate",
@@ -1849,7 +1869,9 @@ function mergeCompress(base, override) {
1849
1869
  preserveRecentTokens: override.preserveRecentTokens ?? base.preserveRecentTokens,
1850
1870
  preserveLastUserMessage: override.preserveLastUserMessage ?? base.preserveLastUserMessage,
1851
1871
  stripProtectedReasoning: override.stripProtectedReasoning ?? base.stripProtectedReasoning,
1852
- stripProtectedReasoningThreshold: override.stripProtectedReasoningThreshold ?? base.stripProtectedReasoningThreshold
1872
+ stripProtectedReasoningThreshold: override.stripProtectedReasoningThreshold ?? base.stripProtectedReasoningThreshold,
1873
+ stripProtectedReasoningProviders: Array.isArray(override.stripProtectedReasoningProviders) ? [...override.stripProtectedReasoningProviders] : base.stripProtectedReasoningProviders,
1874
+ stripProtectedReasoningMinMessages: override.stripProtectedReasoningMinMessages ?? base.stripProtectedReasoningMinMessages
1853
1875
  };
1854
1876
  }
1855
1877
  function mergeCommands(base, override) {
@@ -8282,10 +8304,28 @@ function stripStaleMetadata(messages) {
8282
8304
  });
8283
8305
  });
8284
8306
  }
8285
- function stripProtectedReasoning(messages, protectedTools, threshold) {
8307
+ function stripProtectedReasoning(messages, protectedTools, threshold, options) {
8286
8308
  if (protectedTools.length === 0) {
8287
8309
  return 0;
8288
8310
  }
8311
+ const allowedProviders = options?.allowedProviders;
8312
+ if (allowedProviders !== void 0) {
8313
+ if (allowedProviders.length === 0) {
8314
+ return 0;
8315
+ }
8316
+ if (!allowedProviders.some((entry) => entry.trim() === "*")) {
8317
+ const providerID = options?.providerID;
8318
+ if (providerID === void 0 || !allowedProviders.some(
8319
+ (entry) => providerID.toLowerCase().includes(entry.trim().toLowerCase())
8320
+ )) {
8321
+ return 0;
8322
+ }
8323
+ }
8324
+ }
8325
+ const minMessages = options?.minMessages;
8326
+ if (minMessages !== void 0 && minMessages > 0 && messages.length < minMessages) {
8327
+ return 0;
8328
+ }
8289
8329
  const lastUserMessage = getLastUserMessage(messages);
8290
8330
  if (!lastUserMessage || lastUserMessage.info.role !== "user") {
8291
8331
  return 0;
@@ -9450,7 +9490,7 @@ import { writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
9450
9490
  import { join as join3 } from "path";
9451
9491
  import { existsSync as existsSync3 } from "fs";
9452
9492
  import { homedir as homedir3 } from "os";
9453
- var LOG_VERSION = true ? "1.14.27-pr.370.105" : "dev";
9493
+ var LOG_VERSION = true ? "1.14.27-pr.370.110" : "dev";
9454
9494
  var LEVEL_RANK = {
9455
9495
  debug: 10,
9456
9496
  info: 20,
@@ -11392,6 +11432,7 @@ function createChatMessageTransformHandler(client, registry4, logger, config, pr
11392
11432
  return;
11393
11433
  }
11394
11434
  const lastUserMessage = getLastUserMessage(messages);
11435
+ const requestModel = lastUserMessage?.info?.model;
11395
11436
  let state;
11396
11437
  if (!lastUserMessage) {
11397
11438
  state = createSessionState();
@@ -11402,7 +11443,6 @@ function createChatMessageTransformHandler(client, registry4, logger, config, pr
11402
11443
  messages,
11403
11444
  config
11404
11445
  );
11405
- const requestModel = lastUserMessage.info.model;
11406
11446
  const requestModelLimit = registry4.resolveModelLimit(
11407
11447
  requestModel?.providerID,
11408
11448
  requestModel?.modelID
@@ -11471,7 +11511,19 @@ function createChatMessageTransformHandler(client, registry4, logger, config, pr
11471
11511
  const removedReasoning = stripProtectedReasoning(
11472
11512
  output.messages,
11473
11513
  config.compress.protectedTools,
11474
- config.compress.stripProtectedReasoningThreshold ?? 2048
11514
+ config.compress.stripProtectedReasoningThreshold ?? 0,
11515
+ {
11516
+ // Prefer this request's provider from the user-message
11517
+ // model metadata; fall back to the cached identity pair
11518
+ // (undefined on the first request of a fresh session →
11519
+ // fail-closed).
11520
+ providerID: requestModel?.providerID ?? state.modelProviderID,
11521
+ allowedProviders: config.compress.stripProtectedReasoningProviders ?? [
11522
+ "anthropic",
11523
+ "gemini"
11524
+ ],
11525
+ minMessages: config.compress.stripProtectedReasoningMinMessages ?? 100
11526
+ }
11475
11527
  );
11476
11528
  if (removedReasoning > 0) {
11477
11529
  logger.debug("stripProtectedReasoning: removed reasoning parts from historical protected messages", {
@@ -11935,7 +11987,7 @@ var server = (async (ctx) => {
11935
11987
  }
11936
11988
  const logger = new Logger(config.debug, config.debug ? "debug" : config.logLevel);
11937
11989
  logger.info("ACP plugin initialized", {
11938
- version: true ? "1.14.27-pr.370.105" : "dev",
11990
+ version: true ? "1.14.27-pr.370.110" : "dev",
11939
11991
  workspace: ctx.directory,
11940
11992
  logLevel: logger.level,
11941
11993
  debug: config.debug,