opencode-acp 1.18.2-pr.471.205 → 1.18.2-pr.474.208

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA6BzD,QAAA,MAAM,MAAM,EAAE,MA8OK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA6BzD,QAAA,MAAM,MAAM,EAAE,MA4OK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -8439,6 +8439,29 @@ var resolveEffectiveCompressPermission = (basePermission, hostPermissions, agent
8439
8439
  var hasExplicitToolPermission = (permissionConfig, tool6) => {
8440
8440
  return permissionConfig ? Object.prototype.hasOwnProperty.call(permissionConfig, tool6) : false;
8441
8441
  };
8442
+ var anyRuleResolves = (permissionConfig, tool6) => {
8443
+ if (hasExplicitToolPermission(permissionConfig, tool6)) {
8444
+ return true;
8445
+ }
8446
+ const match = findLastMatchingRule(
8447
+ getPermissionRules([permissionConfig]),
8448
+ (rule) => wildcardMatch(tool6, rule.permission)
8449
+ );
8450
+ return match !== void 0;
8451
+ };
8452
+ var applyAcpToolPermissions = (permissionConfig, compressPermission2) => {
8453
+ if (permissionConfig && hasExplicitToolPermission(permissionConfig, "compress")) {
8454
+ return permissionConfig;
8455
+ }
8456
+ const next = {
8457
+ ...permissionConfig ?? {},
8458
+ compress: compressPermission2
8459
+ };
8460
+ if (!anyRuleResolves(permissionConfig, "acp_status")) {
8461
+ next.acp_status = "allow";
8462
+ }
8463
+ return next;
8464
+ };
8442
8465
 
8443
8466
  // lib/compress-permission.ts
8444
8467
  var compressPermission = (state, config) => {
@@ -11086,7 +11109,7 @@ import { writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
11086
11109
  import { join as join4 } from "path";
11087
11110
  import { existsSync as existsSync4 } from "fs";
11088
11111
  import { homedir as homedir3 } from "os";
11089
- var LOG_VERSION = true ? "1.18.2-pr.471.205" : "dev";
11112
+ var LOG_VERSION = true ? "1.18.2-pr.474.208" : "dev";
11090
11113
  var LEVEL_RANK = {
11091
11114
  debug: 10,
11092
11115
  info: 20,
@@ -11892,7 +11915,17 @@ var KEEP_PREFIX_CHARS = 2e3;
11892
11915
  var KEEP_SUFFIX_CHARS = 2e3;
11893
11916
  var PROTECT_RECENT_MESSAGES = 3;
11894
11917
  var OUTPUT_RESERVE_TOKENS = 16384;
11918
+ var MAX_OVERHEAD_ERROR_SESSIONS = 1024;
11895
11919
  var overheadErrorLogged = /* @__PURE__ */ new Set();
11920
+ function recordOverheadError(sessionKey) {
11921
+ if (overheadErrorLogged.has(sessionKey)) return false;
11922
+ if (overheadErrorLogged.size >= MAX_OVERHEAD_ERROR_SESSIONS) {
11923
+ const oldest = overheadErrorLogged.values().next().value;
11924
+ if (oldest !== void 0) overheadErrorLogged.delete(oldest);
11925
+ }
11926
+ overheadErrorLogged.add(sessionKey);
11927
+ return true;
11928
+ }
11896
11929
  function parseGcThreshold(threshold, modelContextLimit) {
11897
11930
  if (typeof threshold === "number") return threshold;
11898
11931
  const str = threshold ?? "100%";
@@ -11910,8 +11943,7 @@ function truncateLargeToolOutputs(state, config, logger, messages) {
11910
11943
  const threshold = Math.min(configuredThreshold, effective.limit - overhead);
11911
11944
  if (threshold <= 0) {
11912
11945
  const sessionKey = state.sessionId ?? "unknown";
11913
- if (!overheadErrorLogged.has(sessionKey)) {
11914
- overheadErrorLogged.add(sessionKey);
11946
+ if (recordOverheadError(sessionKey)) {
11915
11947
  logger.error("ACP: model context window too small to fit overhead", {
11916
11948
  session: state.sessionId,
11917
11949
  limit: effective.limit,
@@ -13773,7 +13805,7 @@ var server = (async (ctx) => {
13773
13805
  }
13774
13806
  const logger = new Logger(config.debug, config.debug ? "debug" : config.logLevel);
13775
13807
  logger.info("ACP plugin initialized", {
13776
- version: true ? "1.18.2-pr.471.205" : "dev",
13808
+ version: true ? "1.18.2-pr.474.208" : "dev",
13777
13809
  workspace: ctx.directory,
13778
13810
  logLevel: logger.level,
13779
13811
  debug: config.debug,
@@ -13921,14 +13953,10 @@ var server = (async (ctx) => {
13921
13953
  primary_tools: [...existingPrimaryTools, ...toolsToAdd]
13922
13954
  };
13923
13955
  }
13924
- if (!hasExplicitToolPermission(opencodeConfig.permission, "compress")) {
13925
- const permission = opencodeConfig.permission ?? {};
13926
- opencodeConfig.permission = {
13927
- ...permission,
13928
- compress: config.compress.permission,
13929
- acp_status: "allow"
13930
- };
13931
- }
13956
+ opencodeConfig.permission = applyAcpToolPermissions(
13957
+ opencodeConfig.permission,
13958
+ config.compress.permission
13959
+ );
13932
13960
  hostPermissions.global = opencodeConfig.permission;
13933
13961
  hostPermissions.agents = Object.fromEntries(
13934
13962
  Object.entries(opencodeConfig.agent ?? {}).map(([name, agent]) => [