opencode-acp 1.14.22 → 1.14.23

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":"inject.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AA+DzD,eAAO,MAAM,oBAAoB,GAC7B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,SAAS,cAAc,EACvB,wBAAwB,sBAAsB,EAC9C,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACpC,oBAAoB,MAAM,KAC3B,IAkgBF,CAAA;AAgBD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACnB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CA6CjG;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBzF;AAuBD,eAAO,MAAM,gBAAgB,GACzB,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,wBAAwB,sBAAsB,KAC/C,IAiEF,CAAA"}
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAgEzD,eAAO,MAAM,oBAAoB,GAC7B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,SAAS,cAAc,EACvB,wBAAwB,sBAAsB,EAC9C,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACpC,oBAAoB,MAAM,KAC3B,IAuhBF,CAAA;AAgBD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACnB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CA6CjG;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBzF;AAuBD,eAAO,MAAM,gBAAgB,GACzB,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,wBAAwB,sBAAsB,KAC/C,IAiEF,CAAA"}
@@ -42,7 +42,7 @@ export declare function computeShouldNudge(params: {
42
42
  minNudgeContextPercent: number;
43
43
  nudgeGrowthTokens: number;
44
44
  }): NudgeDecision;
45
- export declare function resolveAdaptiveNudgeGrowth(modelContextLimit: number | undefined): number;
45
+ export declare const DEFAULT_NUDGE_GROWTH_TOKENS = 50000;
46
46
  export declare function addAnchor(anchorMessageIds: Set<string>, anchorMessageId: string, anchorMessageIndex: number, messages: WithParts[], interval: number): boolean;
47
47
  export declare function applyAnchoredNudges(state: SessionState, config: PluginConfig, messages: WithParts[], prompts: RuntimePrompts, compressionPriorities?: CompressionPriorityMap, currentTokens?: number, modelContextLimit?: number, suffixMessage?: WithParts | null): void;
48
48
  export interface ContextComposition {
@@ -82,6 +82,16 @@ export interface CompressibleRange {
82
82
  endRef: string;
83
83
  count: number;
84
84
  tokens: number;
85
+ /**
86
+ * Tokens that would actually survive the compress pipeline's soft
87
+ * filters (last-user-message, no-meaningful-content). The pipeline
88
+ * silently drops those messages from plans, so `tokens` overstates
89
+ * what a compression would free. Recommendations and displays use
90
+ * this field to stay honest (phantom-loop fix, issue #37 session
91
+ * ses_7fb5cbc8: ranges shown as "10.8K compressible" resolved to
92
+ * 3066 chars in the pipeline → min-size rejection → retry loop).
93
+ */
94
+ effectiveTokens: number;
85
95
  toolPct: number;
86
96
  textPct: number;
87
97
  dangerous?: boolean;
@@ -102,21 +112,51 @@ export interface RangeFilterOptions {
102
112
  logger?: {
103
113
  debug: (msg: string, data?: any) => void;
104
114
  };
115
+ minEffectiveTokens?: number;
105
116
  }
117
+ /**
118
+ * DEFAULT token floor for a range to stay in the recommendation list, aligned
119
+ * with the compress pipeline's default minCompressRange (5000 chars ÷ 4
120
+ * chars/token). The actual floor is derived from the configured
121
+ * `compress.minCompressRange` via `resolveEffectiveFloor` so the recommendation
122
+ * tracks the pipeline's real rejection threshold. Ranges whose effective
123
+ * compressible content falls below the floor would be rejected by the
124
+ * pipeline's minimum-size check, so recommending them only invites
125
+ * guaranteed-failed compress calls (the retry loop observed in issue #37
126
+ * session ses_7fb5cbc8: displayed "10.8K compressible" resolved to 3066 chars
127
+ * in the pipeline → rejected → model retried ×10).
128
+ */
129
+ export declare const EFFECTIVE_MIN_COMPRESSIBLE_TOKENS = 1250;
130
+ /**
131
+ * Derive the effective-token recommendation floor from the pipeline's
132
+ * char-based `compress.minCompressRange` (÷ 4 chars/token). When
133
+ * minCompressRange is 0 the pipeline's size check is disabled, so the floor
134
+ * is 0 — but the universal phantom guard (`effective > 0`) still applies in
135
+ * filterRecommendedRanges: a range whose every message is soft-filtered
136
+ * produces a phantom plan the pipeline always rejects.
137
+ */
138
+ export declare function resolveEffectiveFloor(config: {
139
+ compress?: {
140
+ minCompressRange?: number;
141
+ };
142
+ }): number;
106
143
  /**
107
144
  * Filter compressible ranges for the recommendation list.
108
145
  *
109
- * All ranges are shown to the model — the model decides what to compress.
110
- * The last segment is always marked `dangerous: true` (it may still be in
111
- * active use; the model is warned in the suffix text).
146
+ * Ranges whose effective compressible content (after the pipeline's soft
147
+ * filters: last-user-message, no-meaningful-content) falls below
148
+ * EFFECTIVE_MIN_COMPRESSIBLE_TOKENS are dropped the pipeline's
149
+ * minCompressRange check would reject them anyway. The last surviving
150
+ * segment is marked `dangerous: true` (it may still be in active use).
112
151
  *
113
152
  * Issue #251: Previously this function used `growthThreshold` (5% of context
114
153
  * window = 50K at 1M) as an aggregate gate — if "effective compressible"
115
154
  * was below the threshold, ALL ranges were suppressed and the nudge was
116
155
  * hidden. At large context windows, individual ranges rarely exceeded this
117
156
  * threshold, so compression was permanently blocked. The aggregate gate
118
- * has been removed; `minCompressRange` in `range.ts` (5000 chars) already
119
- * prevents garbage compressions as a backstop.
157
+ * has been removed. The per-range effective floor below is 1250 tokens —
158
+ * far below #251's 50K, and matched to the pipeline's own acceptance
159
+ * criteria rather than the context size.
120
160
  */
121
161
  export declare function filterRecommendedRanges(compressible: CompressibleRange[], _protectedRanges: ProtectedRange[], options: RangeFilterOptions): CompressibleRange[];
122
162
  export declare function formatCompressibleRanges(ranges: CompressibleRange[], protectedRanges?: ProtectedRange[]): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  * triggers messages.transform, then llm/request.ts triggers system.transform
7
7
  * during handle.process). state.modelContextLimit is written only by the
8
8
  * system hook, so on the first request after a model switch every percentage
9
- * threshold (emergencyThresholdPercent, min/maxContextLimit "%", adaptive
10
- * nudge growth, GC tiers) is still computed against the PREVIOUS model's
9
+ * threshold (emergencyThresholdPercent, min/maxContextLimit "%", GC tiers) is
10
+ * still computed against the PREVIOUS model's
11
11
  * limit. This catalog lets the messages hook reconcile against the model
12
12
  * named on the request's user message instead of waiting one turn.
13
13
  *
@@ -1,6 +1,21 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  export declare function startAutoUpdate(ctx: PluginInput, enabled: boolean): void;
3
+ export type UpdateTarget = {
4
+ /** Wrapper directory to remove so opencode reinstalls on next start. */
5
+ removeDir: string;
6
+ /** Installed plugin spec (from the wrapper directory name, e.g. `stable`, `^1.14.0`). */
7
+ spec: string;
8
+ };
9
+ export declare function updateTarget(packageDir: string, name: string): Promise<UpdateTarget | undefined>;
3
10
  export declare function updateRemoveDir(packageDir: string, name: string): Promise<string | undefined>;
4
11
  export declare function isAutoUpdatableSpec(spec: string): boolean;
12
+ /**
13
+ * Registry dist-tag the auto-updater should track for a spec.
14
+ *
15
+ * - `stable`, `dev`, `pr-327`, `latest` → that dist-tag
16
+ * - ranges (`^1.2.3`, `>=1.0.0`, `*`) → `latest`
17
+ * - exact pins / non-registry specs → undefined (never auto-update)
18
+ */
19
+ export declare function specUpdateTag(spec: string): string | undefined;
5
20
  export declare function isVersionNewer(latest: string, current: string): boolean;
6
21
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../lib/update.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAetD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBxE;AA0CD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,+BAarE;AAgBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,WAQ/C;AA6BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WA4B7D"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../lib/update.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAetD,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBxE;AA+CD,MAAM,MAAM,YAAY,GAAG;IACvB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAA;IACjB,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAatG;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,+BAErE;AAgBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,WAS/C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,sBAMzC;AAyCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WA4B7D"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "opencode-acp",
4
- "version": "1.14.22",
4
+ "version": "1.14.23",
5
5
  "type": "module",
6
6
  "description": "Active Context Pruning — model-driven context management for OpenCode (hardened fork of DCP with 35 bug fixes)",
7
7
  "main": "./dist/index.js",