@tarquinen/opencode-dcp 1.3.0-beta.0 → 1.3.1-beta.0

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.
Files changed (172) hide show
  1. package/README.md +11 -10
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +18 -13
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/auth.d.ts +4 -0
  6. package/dist/lib/auth.d.ts.map +1 -0
  7. package/dist/lib/auth.js +32 -0
  8. package/dist/lib/auth.js.map +1 -0
  9. package/dist/lib/commands/context.d.ts.map +1 -1
  10. package/dist/lib/commands/context.js +36 -23
  11. package/dist/lib/commands/context.js.map +1 -1
  12. package/dist/lib/config.d.ts +6 -6
  13. package/dist/lib/config.d.ts.map +1 -1
  14. package/dist/lib/config.js +46 -45
  15. package/dist/lib/config.js.map +1 -1
  16. package/dist/lib/hooks.d.ts.map +1 -1
  17. package/dist/lib/hooks.js +8 -29
  18. package/dist/lib/hooks.js.map +1 -1
  19. package/dist/lib/messages/inject.d.ts +7 -0
  20. package/dist/lib/messages/inject.d.ts.map +1 -1
  21. package/dist/lib/messages/inject.js +70 -63
  22. package/dist/lib/messages/inject.js.map +1 -1
  23. package/dist/lib/messages/prune.js +7 -7
  24. package/dist/lib/messages/prune.js.map +1 -1
  25. package/dist/lib/messages/utils.d.ts +21 -1
  26. package/dist/lib/messages/utils.d.ts.map +1 -1
  27. package/dist/lib/messages/utils.js +49 -39
  28. package/dist/lib/messages/utils.js.map +1 -1
  29. package/dist/lib/prompts/compress-tool-spec.d.ts +2 -0
  30. package/dist/lib/prompts/compress-tool-spec.d.ts.map +1 -0
  31. package/dist/lib/prompts/compress-tool-spec.js +58 -0
  32. package/dist/lib/prompts/compress-tool-spec.js.map +1 -0
  33. package/dist/lib/prompts/distill-tool-spec.d.ts +2 -0
  34. package/dist/lib/prompts/distill-tool-spec.d.ts.map +1 -0
  35. package/dist/lib/prompts/distill-tool-spec.js +48 -0
  36. package/dist/lib/prompts/distill-tool-spec.js.map +1 -0
  37. package/dist/lib/prompts/index.d.ts +7 -0
  38. package/dist/lib/prompts/index.d.ts.map +1 -1
  39. package/dist/lib/prompts/index.js +28 -36
  40. package/dist/lib/prompts/index.js.map +1 -1
  41. package/dist/lib/prompts/nudge.generated.d.ts +2 -0
  42. package/dist/lib/prompts/nudge.generated.d.ts.map +1 -0
  43. package/dist/lib/prompts/nudge.generated.js +17 -0
  44. package/dist/lib/prompts/nudge.generated.js.map +1 -0
  45. package/dist/lib/prompts/prune-tool-spec.d.ts +2 -0
  46. package/dist/lib/prompts/prune-tool-spec.d.ts.map +1 -0
  47. package/dist/lib/prompts/prune-tool-spec.js +40 -0
  48. package/dist/lib/prompts/prune-tool-spec.js.map +1 -0
  49. package/dist/lib/prompts/system.generated.d.ts +2 -0
  50. package/dist/lib/prompts/system.generated.d.ts.map +1 -0
  51. package/dist/lib/prompts/system.generated.js +90 -0
  52. package/dist/lib/prompts/system.generated.js.map +1 -0
  53. package/dist/lib/state/persistence.d.ts +2 -2
  54. package/dist/lib/state/persistence.d.ts.map +1 -1
  55. package/dist/lib/state/persistence.js +1 -1
  56. package/dist/lib/state/persistence.js.map +1 -1
  57. package/dist/lib/state/state.js +3 -3
  58. package/dist/lib/state/state.js.map +1 -1
  59. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  60. package/dist/lib/state/tool-cache.js +2 -5
  61. package/dist/lib/state/tool-cache.js.map +1 -1
  62. package/dist/lib/state/types.d.ts +2 -2
  63. package/dist/lib/state/types.d.ts.map +1 -1
  64. package/dist/lib/state/utils.js +1 -1
  65. package/dist/lib/state/utils.js.map +1 -1
  66. package/dist/lib/strategies/index.d.ts +1 -1
  67. package/dist/lib/strategies/index.d.ts.map +1 -1
  68. package/dist/lib/strategies/index.js +1 -1
  69. package/dist/lib/strategies/index.js.map +1 -1
  70. package/dist/lib/tools/compress.d.ts +4 -0
  71. package/dist/lib/tools/compress.d.ts.map +1 -0
  72. package/dist/lib/tools/{squash.js → compress.js} +22 -22
  73. package/dist/lib/tools/compress.js.map +1 -0
  74. package/dist/lib/tools/{discard.d.ts → distill.d.ts} +2 -2
  75. package/dist/lib/tools/distill.d.ts.map +1 -0
  76. package/dist/lib/tools/{extract.js → distill.js} +12 -7
  77. package/dist/lib/tools/{extract.js.map → distill.js.map} +1 -1
  78. package/dist/lib/tools/index.d.ts +3 -3
  79. package/dist/lib/tools/index.d.ts.map +1 -1
  80. package/dist/lib/tools/index.js +3 -3
  81. package/dist/lib/tools/index.js.map +1 -1
  82. package/dist/lib/tools/prune-shared.d.ts.map +1 -1
  83. package/dist/lib/tools/prune-shared.js +32 -12
  84. package/dist/lib/tools/prune-shared.js.map +1 -1
  85. package/dist/lib/tools/prune.d.ts +4 -0
  86. package/dist/lib/tools/prune.d.ts.map +1 -0
  87. package/dist/lib/tools/{discard.js → prune.js} +6 -6
  88. package/dist/lib/tools/prune.js.map +1 -0
  89. package/dist/lib/tools/utils.d.ts +3 -3
  90. package/dist/lib/tools/utils.d.ts.map +1 -1
  91. package/dist/lib/tools/utils.js +7 -7
  92. package/dist/lib/tools/utils.js.map +1 -1
  93. package/dist/lib/ui/notification.d.ts +1 -1
  94. package/dist/lib/ui/notification.d.ts.map +1 -1
  95. package/dist/lib/ui/notification.js +6 -6
  96. package/dist/lib/ui/notification.js.map +1 -1
  97. package/package.json +6 -4
  98. package/dist/lib/prompts/discard-tool-spec.d.ts +0 -2
  99. package/dist/lib/prompts/discard-tool-spec.d.ts.map +0 -1
  100. package/dist/lib/prompts/discard-tool-spec.js +0 -18
  101. package/dist/lib/prompts/discard-tool-spec.js.map +0 -1
  102. package/dist/lib/prompts/extract-tool-spec.d.ts +0 -2
  103. package/dist/lib/prompts/extract-tool-spec.d.ts.map +0 -1
  104. package/dist/lib/prompts/extract-tool-spec.js +0 -23
  105. package/dist/lib/prompts/extract-tool-spec.js.map +0 -1
  106. package/dist/lib/prompts/nudge/all.d.ts +0 -2
  107. package/dist/lib/prompts/nudge/all.d.ts.map +0 -1
  108. package/dist/lib/prompts/nudge/all.js +0 -9
  109. package/dist/lib/prompts/nudge/all.js.map +0 -1
  110. package/dist/lib/prompts/nudge/discard-extract.d.ts +0 -2
  111. package/dist/lib/prompts/nudge/discard-extract.d.ts.map +0 -1
  112. package/dist/lib/prompts/nudge/discard-extract.js +0 -8
  113. package/dist/lib/prompts/nudge/discard-extract.js.map +0 -1
  114. package/dist/lib/prompts/nudge/discard-squash.d.ts +0 -2
  115. package/dist/lib/prompts/nudge/discard-squash.d.ts.map +0 -1
  116. package/dist/lib/prompts/nudge/discard-squash.js +0 -8
  117. package/dist/lib/prompts/nudge/discard-squash.js.map +0 -1
  118. package/dist/lib/prompts/nudge/discard.d.ts +0 -2
  119. package/dist/lib/prompts/nudge/discard.d.ts.map +0 -1
  120. package/dist/lib/prompts/nudge/discard.js +0 -8
  121. package/dist/lib/prompts/nudge/discard.js.map +0 -1
  122. package/dist/lib/prompts/nudge/extract-squash.d.ts +0 -2
  123. package/dist/lib/prompts/nudge/extract-squash.d.ts.map +0 -1
  124. package/dist/lib/prompts/nudge/extract-squash.js +0 -8
  125. package/dist/lib/prompts/nudge/extract-squash.js.map +0 -1
  126. package/dist/lib/prompts/nudge/extract.d.ts +0 -2
  127. package/dist/lib/prompts/nudge/extract.d.ts.map +0 -1
  128. package/dist/lib/prompts/nudge/extract.js +0 -8
  129. package/dist/lib/prompts/nudge/extract.js.map +0 -1
  130. package/dist/lib/prompts/nudge/squash.d.ts +0 -2
  131. package/dist/lib/prompts/nudge/squash.d.ts.map +0 -1
  132. package/dist/lib/prompts/nudge/squash.js +0 -8
  133. package/dist/lib/prompts/nudge/squash.js.map +0 -1
  134. package/dist/lib/prompts/squash-tool-spec.d.ts +0 -2
  135. package/dist/lib/prompts/squash-tool-spec.d.ts.map +0 -1
  136. package/dist/lib/prompts/squash-tool-spec.js +0 -33
  137. package/dist/lib/prompts/squash-tool-spec.js.map +0 -1
  138. package/dist/lib/prompts/system/all.d.ts +0 -2
  139. package/dist/lib/prompts/system/all.d.ts.map +0 -1
  140. package/dist/lib/prompts/system/all.js +0 -26
  141. package/dist/lib/prompts/system/all.js.map +0 -1
  142. package/dist/lib/prompts/system/discard-extract.d.ts +0 -2
  143. package/dist/lib/prompts/system/discard-extract.d.ts.map +0 -1
  144. package/dist/lib/prompts/system/discard-extract.js +0 -26
  145. package/dist/lib/prompts/system/discard-extract.js.map +0 -1
  146. package/dist/lib/prompts/system/discard-squash.d.ts +0 -2
  147. package/dist/lib/prompts/system/discard-squash.d.ts.map +0 -1
  148. package/dist/lib/prompts/system/discard-squash.js +0 -25
  149. package/dist/lib/prompts/system/discard-squash.js.map +0 -1
  150. package/dist/lib/prompts/system/discard.d.ts +0 -2
  151. package/dist/lib/prompts/system/discard.d.ts.map +0 -1
  152. package/dist/lib/prompts/system/discard.js +0 -27
  153. package/dist/lib/prompts/system/discard.js.map +0 -1
  154. package/dist/lib/prompts/system/extract-squash.d.ts +0 -2
  155. package/dist/lib/prompts/system/extract-squash.d.ts.map +0 -1
  156. package/dist/lib/prompts/system/extract-squash.js +0 -25
  157. package/dist/lib/prompts/system/extract-squash.js.map +0 -1
  158. package/dist/lib/prompts/system/extract.d.ts +0 -2
  159. package/dist/lib/prompts/system/extract.d.ts.map +0 -1
  160. package/dist/lib/prompts/system/extract.js +0 -27
  161. package/dist/lib/prompts/system/extract.js.map +0 -1
  162. package/dist/lib/prompts/system/squash.d.ts +0 -2
  163. package/dist/lib/prompts/system/squash.d.ts.map +0 -1
  164. package/dist/lib/prompts/system/squash.js +0 -27
  165. package/dist/lib/prompts/system/squash.js.map +0 -1
  166. package/dist/lib/tools/discard.d.ts.map +0 -1
  167. package/dist/lib/tools/discard.js.map +0 -1
  168. package/dist/lib/tools/extract.d.ts +0 -4
  169. package/dist/lib/tools/extract.d.ts.map +0 -1
  170. package/dist/lib/tools/squash.d.ts +0 -4
  171. package/dist/lib/tools/squash.d.ts.map +0 -1
  172. package/dist/lib/tools/squash.js.map +0 -1
package/README.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # Dynamic Context Pruning Plugin
2
2
 
3
+ [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/dansmolsky)
3
4
  [![npm version](https://img.shields.io/npm/v/@tarquinen/opencode-dcp.svg)](https://www.npmjs.com/package/@tarquinen/opencode-dcp)
4
5
 
5
6
  Automatically reduces token usage in OpenCode by removing obsolete tools from conversation history.
6
7
 
7
- ![DCP in action](dcp-demo5.png)
8
+ ![DCP in action](assets/images/dcp-demo5.png)
8
9
 
9
10
  ## Installation
10
11
 
@@ -27,11 +28,11 @@ DCP uses multiple tools and strategies to reduce context size:
27
28
 
28
29
  ### Tools
29
30
 
30
- **Discard** — Exposes a `discard` tool that the AI can call to remove completed or noisy tool content from context.
31
+ **Distill** — Exposes a `distill` tool that the AI can call to distill valuable context into concise summaries before removing the tool content.
31
32
 
32
- **Extract** — Exposes an `extract` tool that the AI can call to distill valuable context into concise summaries before removing the tool content.
33
+ **Compress** — Exposes a `compress` tool that the AI can call to collapse a large section of conversation (messages and tools) into a single summary.
33
34
 
34
- **Squash** — Exposes a `squash` tool that the AI can call to collapse a large section of conversation (messages and tools) into a single summary.
35
+ **Prune** — Exposes a `prune` tool that the AI can call to remove completed or noisy tool content from context.
35
36
 
36
37
  ### Strategies
37
38
 
@@ -59,7 +60,7 @@ DCP uses its own config file:
59
60
 
60
61
  - Global: `~/.config/opencode/dcp.jsonc` (or `dcp.json`), created automatically on first run
61
62
  - Custom config directory: `$OPENCODE_CONFIG_DIR/dcp.jsonc` (or `dcp.json`), if `OPENCODE_CONFIG_DIR` is set
62
- - Project: `.opencode/dcp.jsonc` (or `dcp.json`) in your projects `.opencode` directory
63
+ - Project: `.opencode/dcp.jsonc` (or `dcp.json`) in your project's `.opencode` directory
63
64
 
64
65
  <details>
65
66
  <summary><strong>Default Configuration</strong> (click to expand)</summary>
@@ -98,17 +99,17 @@ DCP uses its own config file:
98
99
  "protectedTools": [],
99
100
  },
100
101
  // Removes tool content from context without preservation (for completed tasks or noise)
101
- "discard": {
102
+ "prune": {
102
103
  "enabled": true,
103
104
  },
104
105
  // Distills key findings into preserved knowledge before removing raw content
105
- "extract": {
106
+ "distill": {
106
107
  "enabled": true,
107
108
  // Show distillation content as an ignored message notification
108
109
  "showDistillation": false,
109
110
  },
110
111
  // Collapses a range of conversation content into a single summary
111
- "squash": {
112
+ "compress": {
112
113
  "enabled": true,
113
114
  // Show summary content as an ignored message notification
114
115
  "showSummary": true,
@@ -151,12 +152,12 @@ DCP provides a `/dcp` slash command:
151
152
 
152
153
  ### Turn Protection
153
154
 
154
- When enabled, turn protection prevents tool outputs from being pruned for a configurable number of message turns. This gives the AI time to reference recent tool outputs before they become prunable. Applies to both `discard` and `extract` tools, as well as automatic strategies.
155
+ When enabled, turn protection prevents tool outputs from being pruned for a configurable number of message turns. This gives the AI time to reference recent tool outputs before they become prunable. Applies to both `prune` and `distill` tools, as well as automatic strategies.
155
156
 
156
157
  ### Protected Tools
157
158
 
158
159
  By default, these tools are always protected from pruning across all strategies:
159
- `task`, `todowrite`, `todoread`, `discard`, `extract`, `squash`, `batch`, `write`, `edit`
160
+ `task`, `todowrite`, `todoread`, `distill`, `compress`, `prune`, `batch`, `write`, `edit`, `plan_enter`, `plan_exit`
160
161
 
161
162
  The `protectedTools` arrays in each section add to this default list.
162
163
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAWjD,QAAA,MAAM,MAAM,EAAE,MAoGK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAYjD,QAAA,MAAM,MAAM,EAAE,MAyGK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { getConfig } from "./lib/config";
2
2
  import { Logger } from "./lib/logger";
3
3
  import { createSessionState } from "./lib/state";
4
- import { createDiscardTool, createExtractTool, createSquashTool } from "./lib/strategies";
4
+ import { createPruneTool, createDistillTool, createCompressTool } from "./lib/strategies";
5
5
  import { createChatMessageTransformHandler, createCommandExecuteHandler, createSystemPromptHandler, } from "./lib/hooks";
6
+ import { configureClientAuth, isSecureMode } from "./lib/auth";
6
7
  const plugin = (async (ctx) => {
7
8
  const config = getConfig(ctx);
8
9
  if (!config.enabled) {
@@ -10,6 +11,10 @@ const plugin = (async (ctx) => {
10
11
  }
11
12
  const logger = new Logger(config.debug);
12
13
  const state = createSessionState();
14
+ if (isSecureMode()) {
15
+ configureClientAuth(ctx.client);
16
+ // logger.info("Secure mode detected, configured client authentication")
17
+ }
13
18
  logger.info("DCP initialized", {
14
19
  strategies: config.strategies,
15
20
  });
@@ -24,8 +29,8 @@ const plugin = (async (ctx) => {
24
29
  },
25
30
  "command.execute.before": createCommandExecuteHandler(ctx.client, state, logger, config, ctx.directory),
26
31
  tool: {
27
- ...(config.tools.discard.enabled && {
28
- discard: createDiscardTool({
32
+ ...(config.tools.distill.enabled && {
33
+ distill: createDistillTool({
29
34
  client: ctx.client,
30
35
  state,
31
36
  logger,
@@ -33,8 +38,8 @@ const plugin = (async (ctx) => {
33
38
  workingDirectory: ctx.directory,
34
39
  }),
35
40
  }),
36
- ...(config.tools.extract.enabled && {
37
- extract: createExtractTool({
41
+ ...(config.tools.compress.enabled && {
42
+ compress: createCompressTool({
38
43
  client: ctx.client,
39
44
  state,
40
45
  logger,
@@ -42,8 +47,8 @@ const plugin = (async (ctx) => {
42
47
  workingDirectory: ctx.directory,
43
48
  }),
44
49
  }),
45
- ...(config.tools.squash.enabled && {
46
- squash: createSquashTool({
50
+ ...(config.tools.prune.enabled && {
51
+ prune: createPruneTool({
47
52
  client: ctx.client,
48
53
  state,
49
54
  logger,
@@ -61,12 +66,12 @@ const plugin = (async (ctx) => {
61
66
  };
62
67
  }
63
68
  const toolsToAdd = [];
64
- if (config.tools.discard.enabled)
65
- toolsToAdd.push("discard");
66
- if (config.tools.extract.enabled)
67
- toolsToAdd.push("extract");
68
- if (config.tools.squash.enabled)
69
- toolsToAdd.push("squash");
69
+ if (config.tools.prune.enabled)
70
+ toolsToAdd.push("prune");
71
+ if (config.tools.distill.enabled)
72
+ toolsToAdd.push("distill");
73
+ if (config.tools.compress.enabled)
74
+ toolsToAdd.push("compress");
70
75
  if (toolsToAdd.length > 0) {
71
76
  const existingPrimaryTools = opencodeConfig.experimental?.primary_tools ?? [];
72
77
  opencodeConfig.experimental = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,EACH,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,GAC5B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,GAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAE7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,EAAE,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;IAElC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAA;IAEF,OAAO;QACH,oCAAoC,EAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;QAEtF,sCAAsC,EAAE,iCAAiC,CACrE,GAAG,CAAC,MAAM,EACV,KAAK,EACL,MAAM,EACN,MAAM,CACT;QACD,cAAc,EAAE,KAAK,EACjB,KAMC,EACD,OAAY,EACd,EAAE;YACA,wDAAwD;YACxD,oDAAoD;YACpD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC7B,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACrF,CAAC;QACD,wBAAwB,EAAE,2BAA2B,CACjD,GAAG,CAAC,MAAM,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,GAAG,CAAC,SAAS,CAChB;QACD,IAAI,EAAE;YACF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI;gBAChC,OAAO,EAAE,iBAAiB,CAAC;oBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK;oBACL,MAAM;oBACN,MAAM;oBACN,gBAAgB,EAAE,GAAG,CAAC,SAAS;iBAClC,CAAC;aACL,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI;gBAChC,OAAO,EAAE,iBAAiB,CAAC;oBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK;oBACL,MAAM;oBACN,MAAM;oBACN,gBAAgB,EAAE,GAAG,CAAC,SAAS;iBAClC,CAAC;aACL,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI;gBAC/B,MAAM,EAAE,gBAAgB,CAAC;oBACrB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK;oBACL,MAAM;oBACN,MAAM;oBACN,gBAAgB,EAAE,GAAG,CAAC,SAAS;iBAClC,CAAC;aACL,CAAC;SACL;QACD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1B,cAAc,CAAC,OAAO,KAAK,EAAE,CAAA;gBAC7B,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;oBAC5B,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,6BAA6B;iBAC7C,CAAA;YACL,CAAC;YAED,MAAM,UAAU,GAAa,EAAE,CAAA;YAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAE1D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,IAAI,EAAE,CAAA;gBAC7E,cAAc,CAAC,YAAY,GAAG;oBAC1B,GAAG,cAAc,CAAC,YAAY;oBAC9B,aAAa,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,UAAU,CAAC;iBAC1D,CAAA;gBACD,MAAM,CAAC,IAAI,CACP,SAAS,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oDAAoD,CAC7G,CAAA;YACL,CAAC;QACL,CAAC;KACJ,CAAA;AACL,CAAC,CAAkB,CAAA;AAEnB,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function isSecureMode(): boolean;
2
+ export declare function getAuthorizationHeader(): string | undefined;
3
+ export declare function configureClientAuth(client: any): any;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../lib/auth.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAQ3D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAsBpD"}
@@ -0,0 +1,32 @@
1
+ export function isSecureMode() {
2
+ return !!process.env.OPENCODE_SERVER_PASSWORD;
3
+ }
4
+ export function getAuthorizationHeader() {
5
+ const password = process.env.OPENCODE_SERVER_PASSWORD;
6
+ if (!password)
7
+ return undefined;
8
+ const username = process.env.OPENCODE_SERVER_USERNAME ?? "opencode";
9
+ // Use Buffer for Node.js base64 encoding (btoa may not be available in all Node versions)
10
+ const credentials = Buffer.from(`${username}:${password}`).toString("base64");
11
+ return `Basic ${credentials}`;
12
+ }
13
+ export function configureClientAuth(client) {
14
+ const authHeader = getAuthorizationHeader();
15
+ if (!authHeader) {
16
+ return client;
17
+ }
18
+ // The SDK client has an internal client with request interceptors
19
+ // Access the underlying client to add the interceptor
20
+ const innerClient = client._client || client.client;
21
+ if (innerClient?.interceptors?.request) {
22
+ innerClient.interceptors.request.use((request) => {
23
+ // Only add auth header if not already present
24
+ if (!request.headers.has("Authorization")) {
25
+ request.headers.set("Authorization", authHeader);
26
+ }
27
+ return request;
28
+ });
29
+ }
30
+ return client;
31
+ }
32
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../lib/auth.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IACxB,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,UAAU,CAAA;IACnE,0FAA0F;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC7E,OAAO,SAAS,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAW;IAC3C,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAA;IAE3C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,kEAAkE;IAClE,sDAAsD;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAA;IAEnD,IAAI,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QACrC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAgB,EAAE,EAAE;YACtD,8CAA8C;YAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,OAAO,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQvD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AAuLD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQvD,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AAwMD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF"}
@@ -50,6 +50,7 @@ function analyzeTokens(state, messages) {
50
50
  toolCount: 0,
51
51
  prunedTokens: state.stats.totalPruneTokens,
52
52
  prunedCount: state.prune.toolIds.length,
53
+ prunedMessageCount: state.prune.messageIds.length,
53
54
  total: 0,
54
55
  };
55
56
  let firstAssistant;
@@ -84,14 +85,37 @@ function analyzeTokens(state, messages) {
84
85
  const toolOutputParts = [];
85
86
  let firstUserText = "";
86
87
  let foundFirstUser = false;
88
+ const foundToolIds = new Set();
87
89
  for (const msg of messages) {
88
- if (isMessageCompacted(state, msg))
89
- continue;
90
- if (msg.info.role === "user" && isIgnoredUserMessage(msg))
91
- continue;
92
90
  const parts = Array.isArray(msg.parts) ? msg.parts : [];
91
+ const isCompacted = isMessageCompacted(state, msg);
92
+ const isIgnoredUser = msg.info.role === "user" && isIgnoredUserMessage(msg);
93
93
  for (const part of parts) {
94
- if (part.type === "text" && msg.info.role === "user") {
94
+ if (part.type === "tool") {
95
+ const toolPart = part;
96
+ if (toolPart.callID && !foundToolIds.has(toolPart.callID)) {
97
+ breakdown.toolCount++;
98
+ foundToolIds.add(toolPart.callID);
99
+ }
100
+ if (!isCompacted) {
101
+ if (toolPart.state?.input) {
102
+ const inputStr = typeof toolPart.state.input === "string"
103
+ ? toolPart.state.input
104
+ : JSON.stringify(toolPart.state.input);
105
+ toolInputParts.push(inputStr);
106
+ }
107
+ if (toolPart.state?.status === "completed" && toolPart.state?.output) {
108
+ const outputStr = typeof toolPart.state.output === "string"
109
+ ? toolPart.state.output
110
+ : JSON.stringify(toolPart.state.output);
111
+ toolOutputParts.push(outputStr);
112
+ }
113
+ }
114
+ }
115
+ else if (part.type === "text" &&
116
+ msg.info.role === "user" &&
117
+ !isCompacted &&
118
+ !isIgnoredUser) {
95
119
  const textPart = part;
96
120
  const text = textPart.text || "";
97
121
  userTextParts.push(text);
@@ -99,24 +123,8 @@ function analyzeTokens(state, messages) {
99
123
  firstUserText += text;
100
124
  }
101
125
  }
102
- else if (part.type === "tool") {
103
- const toolPart = part;
104
- breakdown.toolCount++;
105
- if (toolPart.state?.input) {
106
- const inputStr = typeof toolPart.state.input === "string"
107
- ? toolPart.state.input
108
- : JSON.stringify(toolPart.state.input);
109
- toolInputParts.push(inputStr);
110
- }
111
- if (toolPart.state?.status === "completed" && toolPart.state?.output) {
112
- const outputStr = typeof toolPart.state.output === "string"
113
- ? toolPart.state.output
114
- : JSON.stringify(toolPart.state.output);
115
- toolOutputParts.push(outputStr);
116
- }
117
- }
118
126
  }
119
- if (msg.info.role === "user" && !isIgnoredUserMessage(msg) && !foundFirstUser) {
127
+ if (msg.info.role === "user" && !isIgnoredUser && !foundFirstUser) {
120
128
  foundFirstUser = true;
121
129
  }
122
130
  }
@@ -171,7 +179,12 @@ function formatContextMessage(breakdown) {
171
179
  lines.push("Summary:");
172
180
  if (breakdown.prunedTokens > 0) {
173
181
  const withoutPruning = breakdown.total + breakdown.prunedTokens;
174
- lines.push(` Pruned: ${breakdown.prunedCount} tools (~${formatTokenCount(breakdown.prunedTokens)})`);
182
+ const pruned = [];
183
+ if (breakdown.prunedCount > 0)
184
+ pruned.push(`${breakdown.prunedCount} tools`);
185
+ if (breakdown.prunedMessageCount > 0)
186
+ pruned.push(`${breakdown.prunedMessageCount} messages`);
187
+ lines.push(` Pruned: ${pruned.join(", ")} (~${formatTokenCount(breakdown.prunedTokens)})`);
175
188
  lines.push(` Current context: ~${formatTokenCount(breakdown.total)}`);
176
189
  lines.push(` Without DCP: ~${formatTokenCount(withoutPruning)}`);
177
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ export interface Deduplication {
3
3
  enabled: boolean;
4
4
  protectedTools: string[];
5
5
  }
6
- export interface DiscardTool {
6
+ export interface PruneTool {
7
7
  enabled: boolean;
8
8
  }
9
- export interface ExtractTool {
9
+ export interface DistillTool {
10
10
  enabled: boolean;
11
11
  showDistillation: boolean;
12
12
  }
13
- export interface SquashTool {
13
+ export interface CompressTool {
14
14
  enabled: boolean;
15
15
  showSummary: boolean;
16
16
  }
@@ -21,9 +21,9 @@ export interface ToolSettings {
21
21
  }
22
22
  export interface Tools {
23
23
  settings: ToolSettings;
24
- discard: DiscardTool;
25
- extract: ExtractTool;
26
- squash: SquashTool;
24
+ prune: PruneTool;
25
+ distill: DistillTool;
26
+ compress: CompressTool;
27
27
  }
28
28
  export interface Commands {
29
29
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;CACrB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IACjD,QAAQ,EAAE,QAAQ,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE;QACR,aAAa,EAAE,aAAa,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,WAAW,EAAE,WAAW,CAAA;KAC3B,CAAA;CACJ;AAiBD,eAAO,MAAM,iBAAiB,aAwC5B,CAAA;AAgBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AA+iBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAgIxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,WAAW,CAAA;IACpB,QAAQ,EAAE,YAAY,CAAA;CACzB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IACjD,QAAQ,EAAE,QAAQ,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE;QACR,aAAa,EAAE,aAAa,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,WAAW,EAAE,WAAW,CAAA;KAC3B,CAAA;CACJ;AAiBD,eAAO,MAAM,iBAAiB,aAwC5B,CAAA;AAgBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAkjBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAgIxD"}
@@ -6,9 +6,9 @@ const DEFAULT_PROTECTED_TOOLS = [
6
6
  "task",
7
7
  "todowrite",
8
8
  "todoread",
9
- "discard",
10
- "extract",
11
- "squash",
9
+ "prune",
10
+ "distill",
11
+ "compress",
12
12
  "batch",
13
13
  "write",
14
14
  "edit",
@@ -35,14 +35,14 @@ export const VALID_CONFIG_KEYS = new Set([
35
35
  "tools.settings.nudgeEnabled",
36
36
  "tools.settings.nudgeFrequency",
37
37
  "tools.settings.protectedTools",
38
- "tools.discard",
39
- "tools.discard.enabled",
40
- "tools.extract",
41
- "tools.extract.enabled",
42
- "tools.extract.showDistillation",
43
- "tools.squash",
44
- "tools.squash.enabled",
45
- "tools.squash.showSummary",
38
+ "tools.prune",
39
+ "tools.prune.enabled",
40
+ "tools.distill",
41
+ "tools.distill.enabled",
42
+ "tools.distill.showDistillation",
43
+ "tools.compress",
44
+ "tools.compress.enabled",
45
+ "tools.compress.showSummary",
46
46
  "strategies",
47
47
  // strategies.deduplication
48
48
  "strategies.deduplication",
@@ -184,46 +184,47 @@ function validateConfigTypes(config) {
184
184
  });
185
185
  }
186
186
  }
187
- if (tools.discard) {
188
- if (tools.discard.enabled !== undefined && typeof tools.discard.enabled !== "boolean") {
187
+ if (tools.prune) {
188
+ if (tools.prune.enabled !== undefined && typeof tools.prune.enabled !== "boolean") {
189
189
  errors.push({
190
- key: "tools.discard.enabled",
190
+ key: "tools.prune.enabled",
191
191
  expected: "boolean",
192
- actual: typeof tools.discard.enabled,
192
+ actual: typeof tools.prune.enabled,
193
193
  });
194
194
  }
195
195
  }
196
- if (tools.extract) {
197
- if (tools.extract.enabled !== undefined && typeof tools.extract.enabled !== "boolean") {
196
+ if (tools.distill) {
197
+ if (tools.distill.enabled !== undefined && typeof tools.distill.enabled !== "boolean") {
198
198
  errors.push({
199
- key: "tools.extract.enabled",
199
+ key: "tools.distill.enabled",
200
200
  expected: "boolean",
201
- actual: typeof tools.extract.enabled,
201
+ actual: typeof tools.distill.enabled,
202
202
  });
203
203
  }
204
- if (tools.extract.showDistillation !== undefined &&
205
- typeof tools.extract.showDistillation !== "boolean") {
204
+ if (tools.distill.showDistillation !== undefined &&
205
+ typeof tools.distill.showDistillation !== "boolean") {
206
206
  errors.push({
207
- key: "tools.extract.showDistillation",
207
+ key: "tools.distill.showDistillation",
208
208
  expected: "boolean",
209
- actual: typeof tools.extract.showDistillation,
209
+ actual: typeof tools.distill.showDistillation,
210
210
  });
211
211
  }
212
212
  }
213
- if (tools.squash) {
214
- if (tools.squash.enabled !== undefined && typeof tools.squash.enabled !== "boolean") {
213
+ if (tools.compress) {
214
+ if (tools.compress.enabled !== undefined &&
215
+ typeof tools.compress.enabled !== "boolean") {
215
216
  errors.push({
216
- key: "tools.squash.enabled",
217
+ key: "tools.compress.enabled",
217
218
  expected: "boolean",
218
- actual: typeof tools.squash.enabled,
219
+ actual: typeof tools.compress.enabled,
219
220
  });
220
221
  }
221
- if (tools.squash.showSummary !== undefined &&
222
- typeof tools.squash.showSummary !== "boolean") {
222
+ if (tools.compress.showSummary !== undefined &&
223
+ typeof tools.compress.showSummary !== "boolean") {
223
224
  errors.push({
224
- key: "tools.squash.showSummary",
225
+ key: "tools.compress.showSummary",
225
226
  expected: "boolean",
226
- actual: typeof tools.squash.showSummary,
227
+ actual: typeof tools.compress.showSummary,
227
228
  });
228
229
  }
229
230
  }
@@ -344,14 +345,14 @@ const defaultConfig = {
344
345
  nudgeFrequency: 10,
345
346
  protectedTools: [...DEFAULT_PROTECTED_TOOLS],
346
347
  },
347
- discard: {
348
+ prune: {
348
349
  enabled: true,
349
350
  },
350
- extract: {
351
+ distill: {
351
352
  enabled: true,
352
353
  showDistillation: false,
353
354
  },
354
- squash: {
355
+ compress: {
355
356
  enabled: true,
356
357
  showSummary: true,
357
358
  },
@@ -499,16 +500,16 @@ function mergeTools(base, override) {
499
500
  ]),
500
501
  ],
501
502
  },
502
- discard: {
503
- enabled: override.discard?.enabled ?? base.discard.enabled,
503
+ prune: {
504
+ enabled: override.prune?.enabled ?? base.prune.enabled,
504
505
  },
505
- extract: {
506
- enabled: override.extract?.enabled ?? base.extract.enabled,
507
- showDistillation: override.extract?.showDistillation ?? base.extract.showDistillation,
506
+ distill: {
507
+ enabled: override.distill?.enabled ?? base.distill.enabled,
508
+ showDistillation: override.distill?.showDistillation ?? base.distill.showDistillation,
508
509
  },
509
- squash: {
510
- enabled: override.squash?.enabled ?? base.squash.enabled,
511
- showSummary: override.squash?.showSummary ?? base.squash.showSummary,
510
+ compress: {
511
+ enabled: override.compress?.enabled ?? base.compress.enabled,
512
+ showSummary: override.compress?.showSummary ?? base.compress.showSummary,
512
513
  },
513
514
  };
514
515
  }
@@ -534,9 +535,9 @@ function deepCloneConfig(config) {
534
535
  ...config.tools.settings,
535
536
  protectedTools: [...config.tools.settings.protectedTools],
536
537
  },
537
- discard: { ...config.tools.discard },
538
- extract: { ...config.tools.extract },
539
- squash: { ...config.tools.squash },
538
+ prune: { ...config.tools.prune },
539
+ distill: { ...config.tools.distill },
540
+ compress: { ...config.tools.compress },
540
541
  },
541
542
  strategies: {
542
543
  deduplication: {