@sillybit/renamer-opencode-plugin 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # renamer-opencode-plugin
1
+ # @sillybit/renamer-opencode-plugin
2
2
 
3
3
  A small OpenCode plugin that **replaces case-insensitive occurrences of `opencode`** with a configurable word (default: `Renamer`) across OpenCode outputs.
4
4
 
@@ -22,7 +22,13 @@ It **does not replace** inside:
22
22
 
23
23
  ## Quickstart (npm)
24
24
 
25
- 1. Add the plugin to your OpenCode config (`opencode.json` or `opencode.jsonc`):
25
+ 1. Install the plugin in your project:
26
+
27
+ ```bash
28
+ bun add -d @sillybit/renamer-opencode-plugin
29
+ ```
30
+
31
+ 2. Add the plugin to your OpenCode config (`opencode.json` or `opencode.jsonc`):
26
32
 
27
33
  ```json
28
34
  {
@@ -31,9 +37,27 @@ It **does not replace** inside:
31
37
  }
32
38
  ```
33
39
 
34
- 2. Restart OpenCode.
40
+ 3. Restart OpenCode.
41
+
42
+ OpenCode installs npm plugins automatically at startup (cached under `~/.cache/opencode/node_modules/`), so the manual install step is optional.
43
+
44
+ ## Updating the plugin
45
+
46
+ If the plugin is installed in your project `devDependencies`, update it with Bun:
35
47
 
36
- OpenCode installs npm plugins automatically at startup (cached under `~/.cache/opencode/node_modules/`).
48
+ ```bash
49
+ bun update -d @sillybit/renamer-opencode-plugin
50
+ ```
51
+
52
+ To force the latest published version:
53
+
54
+ ```bash
55
+ bun add -d @sillybit/renamer-opencode-plugin@latest
56
+ ```
57
+
58
+ After updating, restart OpenCode so it reloads the plugin.
59
+
60
+ If you only reference the plugin in `opencode.json`/`opencode.jsonc` (without adding it to your project dependencies), restarting OpenCode is usually enough for it to fetch the newest cached-compatible version.
37
61
 
38
62
  ## Configuration
39
63
 
@@ -51,7 +75,15 @@ Example:
51
75
  ```json
52
76
  {
53
77
  "enabled": true,
54
- "replacement": "Renamer"
78
+ "replacement": "Renamer",
79
+ "hooks": {
80
+ "chatMessage": true,
81
+ "system": true,
82
+ "messageHistory": true,
83
+ "textComplete": true,
84
+ "toolOutput": true
85
+ },
86
+ "caseVariants": false
55
87
  }
56
88
  ```
57
89
 
@@ -60,6 +92,80 @@ Example:
60
92
  - `OPENCODE_RENAMER_REPLACE_ENABLED` (`true`/`false`, also supports `1/0`, `yes/no`, `on/off`)
61
93
  - `OPENCODE_RENAMER_REPLACE_TEXT` (non-empty string)
62
94
 
95
+ ## Hook Configuration
96
+
97
+ By default, all hooks are enabled. You can selectively disable specific hooks using the `hooks` configuration:
98
+
99
+ ```json
100
+ {
101
+ "enabled": true,
102
+ "replacement": "Renamer",
103
+ "hooks": {
104
+ "chatMessage": false, // Disable replacement in chat messages
105
+ "system": true, // Keep replacement in system prompts
106
+ "messageHistory": true, // Keep replacement in message history
107
+ "textComplete": true, // Keep replacement in text completions
108
+ "toolOutput": true // Keep replacement in tool outputs
109
+ }
110
+ }
111
+ ```
112
+
113
+ **Available hook toggles:**
114
+
115
+ - `chatMessage` - Controls replacement in chat messages
116
+ - `system` - Controls replacement in system prompts
117
+ - `messageHistory` - Controls replacement in message history
118
+ - `textComplete` - Controls replacement in text completions
119
+ - `toolOutput` - Controls replacement in tool outputs
120
+
121
+ **Note:** Session title replacement (the `event` handler) is always active when `enabled: true` and cannot be disabled via hooks configuration.
122
+
123
+ ## Case Variant Matching
124
+
125
+ By default, the plugin only matches `opencode` (case-insensitive). You can enable matching of case variants using the `caseVariants` option:
126
+
127
+ ```json
128
+ {
129
+ "enabled": true,
130
+ "replacement": "Renamer",
131
+ "caseVariants": true
132
+ }
133
+ ```
134
+
135
+ When `caseVariants: true`, the plugin matches and replaces these 7 variants:
136
+
137
+ - **camelCase**: `openCode` → `Renamer`
138
+ - **PascalCase**: `OpenCode` → `Renamer`
139
+ - **kebab-case**: `open-code` → `Renamer`
140
+ - **snake_case**: `open_code` → `Renamer`
141
+ - **SCREAMING_SNAKE**: `OPEN_CODE` → `Renamer`
142
+ - **SCREAMING_KEBAB**: `OPEN-CODE` → `Renamer`
143
+ - **dot.case**: `open.code` → `Renamer`
144
+
145
+ **Important notes:**
146
+
147
+ - Replacement is always the literal `replacement` string (not case-aware)
148
+ - Variants respect protected ranges (URLs, paths, code blocks)
149
+ - Default is `false` for backward compatibility
150
+
151
+ **Example:**
152
+
153
+ Input:
154
+
155
+ ```
156
+ Use open-code or open_code in your project
157
+ Visit https://open-code.dev for docs
158
+ ```
159
+
160
+ Output (with `caseVariants: true`):
161
+
162
+ ```
163
+ Use Renamer or Renamer in your project
164
+ Visit https://open-code.dev for docs
165
+ ```
166
+
167
+ The URL is protected, but the text variants are replaced.
168
+
63
169
  ## Examples
64
170
 
65
171
  ### Normal text (replaced)
@@ -87,6 +193,7 @@ echo "opencode"
87
193
  ## Behavior details
88
194
 
89
195
  - Match is case-insensitive: `OpenCode`, `OPENCODE`, `opencode` all become your `replacement`.
196
+ - **Case variant matching**: When `caseVariants: true` is enabled, variants like `open-code` or `open_code` are also matched and replaced.
90
197
  - Replacement target is intentionally fixed to `opencode` (not configurable).
91
198
 
92
199
  ## Development
package/dist/index.d.ts CHANGED
@@ -1,3 +1,21 @@
1
1
  import type { Plugin } from "@opencode-ai/plugin";
2
+ export type HooksConfig = {
3
+ chatMessage: boolean;
4
+ system: boolean;
5
+ messageHistory: boolean;
6
+ textComplete: boolean;
7
+ toolOutput: boolean;
8
+ };
9
+ export declare const DEFAULT_HOOKS_CONFIG: HooksConfig;
10
+ export declare function mergeHooksConfig(globalHooks: Partial<HooksConfig> | undefined, projectHooks: Partial<HooksConfig> | undefined): HooksConfig;
11
+ export declare function splitIntoWords(target: string): string[];
12
+ export declare function generateCaseVariants(words: string[]): string[];
13
+ export declare function buildVariantRegex(variants: string[]): RegExp;
14
+ export declare function replaceOpencode(text: string, replacement: string, regex?: RegExp): string;
15
+ export declare function mergeRanges(ranges: Array<[number, number]>): Array<[number, number]>;
16
+ export declare function replaceOutsideRanges(text: string, replacement: string, ranges: Array<[number, number]>, regex?: RegExp): string;
17
+ export declare function replaceExcludingUrlsAndPaths(text: string, replacement: string, regex?: RegExp): string;
18
+ export declare function replaceInInlineCodeSegments(text: string, replacement: string, regex?: RegExp): string;
19
+ export declare function replaceInText(text: string, replacement: string, regex?: RegExp): string;
2
20
  export declare const RenamerReplacePlugin: Plugin;
3
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAgOlD,eAAO,MAAM,oBAAoB,EAAE,MA8GlC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAmBF,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EAC7C,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,GAC7C,WAAW,CAMb;AAoBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAsB9D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAG5D;AAsFD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAGR;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC9B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBzB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CA4BR;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAgBR;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAQR;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CASR;AAkED,eAAO,MAAM,oBAAoB,EAAE,MAgLlC,CAAC"}
package/dist/index.js CHANGED
@@ -1,16 +1,64 @@
1
1
  import fs from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
+ export const DEFAULT_HOOKS_CONFIG = {
5
+ chatMessage: true,
6
+ system: true,
7
+ messageHistory: true,
8
+ textComplete: true,
9
+ toolOutput: true,
10
+ };
11
+ export function mergeHooksConfig(globalHooks, projectHooks) {
12
+ return {
13
+ ...DEFAULT_HOOKS_CONFIG,
14
+ ...(globalHooks ?? {}),
15
+ ...(projectHooks ?? {}),
16
+ };
17
+ }
4
18
  const DEFAULT_CONFIG = {
5
19
  enabled: true,
6
20
  replacement: "Renamer",
21
+ hooks: DEFAULT_HOOKS_CONFIG,
22
+ caseVariants: false,
7
23
  };
8
24
  const CONFIG_FILENAME = "renamer-config.json";
9
25
  const ENV_ENABLED = "OPENCODE_RENAMER_REPLACE_ENABLED";
10
26
  const ENV_REPLACEMENT = "OPENCODE_RENAMER_REPLACE_TEXT";
11
27
  const URL_REGEX = /https?:\/\/[^\s`"')\]]+/gi;
12
- const PATH_REGEX = /(?:\b[a-zA-Z]:\\[^\s`"')\]]+)|(?:~\/[^\s`"')\]]+)|(?:\.\.?\/[^\s`"')\]]+)|(?:\/[^\s`"')\]]+)/g;
28
+ const PATH_REGEX = /(?:\b[a-zA-Z]:\\[^\s`"')\]]+)|(?:~\/[^\s`"')\]]+)|(?:\.\.?\/[^\s`"')\]]+)/g;
13
29
  const OPENCODE_REGEX = /opencode/gi;
30
+ export function splitIntoWords(target) {
31
+ // For "opencode", hardcoded since it has no camelCase boundaries
32
+ if (target.toLowerCase() === "opencode") {
33
+ return ["open", "code"];
34
+ }
35
+ return [target];
36
+ }
37
+ export function generateCaseVariants(words) {
38
+ const lower = words.map((w) => w.toLowerCase());
39
+ const upper = words.map((w) => w.toUpperCase());
40
+ const capitalize = (w) => w[0].toUpperCase() + w.slice(1).toLowerCase();
41
+ return [
42
+ // camelCase: openCode
43
+ lower[0] + words.slice(1).map(capitalize).join(""),
44
+ // PascalCase: OpenCode
45
+ words.map(capitalize).join(""),
46
+ // kebab-case: open-code
47
+ lower.join("-"),
48
+ // snake_case: open_code
49
+ lower.join("_"),
50
+ // SCREAMING_SNAKE: OPEN_CODE
51
+ upper.join("_"),
52
+ // SCREAMING_KEBAB: OPEN-CODE
53
+ upper.join("-"),
54
+ // dot.case: open.code
55
+ lower.join("."),
56
+ ];
57
+ }
58
+ export function buildVariantRegex(variants) {
59
+ const escaped = variants.map((v) => v.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
60
+ return new RegExp(escaped.join("|"), "g");
61
+ }
14
62
  function parseBool(value) {
15
63
  if (value === undefined)
16
64
  return undefined;
@@ -39,59 +87,94 @@ async function readConfigFile(filePath) {
39
87
  }
40
88
  }
41
89
  async function loadConfig(state) {
42
- if (!shouldReloadConfig(state) && state.cachedConfig) {
43
- return state.cachedConfig;
44
- }
45
- const projectConfig = state.projectConfigPath
46
- ? await readConfigFile(state.projectConfigPath)
47
- : undefined;
48
- const globalConfig = state.globalConfigPath
49
- ? await readConfigFile(state.globalConfigPath)
50
- : undefined;
51
- const merged = {
52
- ...DEFAULT_CONFIG,
53
- ...(globalConfig ?? {}),
54
- ...(projectConfig ?? {}),
55
- };
56
- const envEnabled = parseBool(process.env[ENV_ENABLED]);
57
- if (envEnabled !== undefined) {
58
- merged.enabled = envEnabled;
90
+ try {
91
+ if (!shouldReloadConfig(state) && state.cachedConfig) {
92
+ return state.cachedConfig;
93
+ }
94
+ const projectConfig = state.projectConfigPath
95
+ ? await readConfigFile(state.projectConfigPath)
96
+ : undefined;
97
+ const globalConfig = state.globalConfigPath
98
+ ? await readConfigFile(state.globalConfigPath)
99
+ : undefined;
100
+ const merged = {
101
+ ...DEFAULT_CONFIG,
102
+ ...(globalConfig ?? {}),
103
+ ...(projectConfig ?? {}),
104
+ hooks: mergeHooksConfig(globalConfig?.hooks, projectConfig?.hooks),
105
+ };
106
+ const envEnabled = parseBool(process.env[ENV_ENABLED]);
107
+ if (envEnabled !== undefined) {
108
+ merged.enabled = envEnabled;
109
+ }
110
+ const envReplacement = process.env[ENV_REPLACEMENT];
111
+ if (envReplacement && envReplacement.trim().length > 0) {
112
+ merged.replacement = envReplacement;
113
+ }
114
+ // Compile variant regex when caseVariants is enabled
115
+ if (merged.caseVariants) {
116
+ const words = splitIntoWords("opencode");
117
+ const variants = generateCaseVariants(words);
118
+ // Also include base case-insensitive variants
119
+ variants.push("opencode", "Opencode", "OpenCode", "OPENCODE");
120
+ state.variantRegex = buildVariantRegex(variants);
121
+ }
122
+ else {
123
+ state.variantRegex = undefined;
124
+ }
125
+ state.cachedConfig = merged;
126
+ state.lastLoaded = Date.now();
127
+ return merged;
59
128
  }
60
- const envReplacement = process.env[ENV_REPLACEMENT];
61
- if (envReplacement && envReplacement.trim().length > 0) {
62
- merged.replacement = envReplacement;
129
+ catch (error) {
130
+ console.error("[renamer-opencode-plugin] loadConfig error:", error);
131
+ // Return default config on error to prevent plugin from breaking
132
+ return DEFAULT_CONFIG;
63
133
  }
64
- state.cachedConfig = merged;
65
- state.lastLoaded = Date.now();
66
- return merged;
67
134
  }
68
- function replaceOpencode(text, replacement) {
135
+ export function replaceOpencode(text, replacement, regex) {
69
136
  if (!text)
70
137
  return text;
71
- return text.replace(OPENCODE_REGEX, replacement);
138
+ return text.replace(regex ?? OPENCODE_REGEX, replacement);
139
+ }
140
+ export function mergeRanges(ranges) {
141
+ if (ranges.length === 0)
142
+ return [];
143
+ const sorted = [...ranges].sort((a, b) => a[0] - b[0]);
144
+ const merged = [[sorted[0][0], sorted[0][1]]];
145
+ for (let i = 1; i < sorted.length; i += 1) {
146
+ const current = sorted[i];
147
+ const last = merged[merged.length - 1];
148
+ if (current[0] <= last[1]) {
149
+ last[1] = Math.max(last[1], current[1]);
150
+ continue;
151
+ }
152
+ merged.push([current[0], current[1]]);
153
+ }
154
+ return merged;
72
155
  }
73
- function replaceOutsideRanges(text, replacement, ranges) {
156
+ export function replaceOutsideRanges(text, replacement, ranges, regex) {
74
157
  if (ranges.length === 0)
75
- return replaceOpencode(text, replacement);
76
- const sorted = ranges
158
+ return replaceOpencode(text, replacement, regex);
159
+ const sorted = mergeRanges(ranges
77
160
  .map((range) => [Math.max(0, range[0]), Math.max(0, range[1])])
78
161
  .filter(([start, end]) => end > start)
79
- .sort((a, b) => a[0] - b[0]);
162
+ .sort((a, b) => a[0] - b[0]));
80
163
  let result = "";
81
164
  let cursor = 0;
82
165
  for (const [start, end] of sorted) {
83
166
  if (start > cursor) {
84
- result += replaceOpencode(text.slice(cursor, start), replacement);
167
+ result += replaceOpencode(text.slice(cursor, start), replacement, regex);
85
168
  }
86
169
  result += text.slice(start, end);
87
170
  cursor = Math.max(cursor, end);
88
171
  }
89
172
  if (cursor < text.length) {
90
- result += replaceOpencode(text.slice(cursor), replacement);
173
+ result += replaceOpencode(text.slice(cursor), replacement, regex);
91
174
  }
92
175
  return result;
93
176
  }
94
- function replaceExcludingUrlsAndPaths(text, replacement) {
177
+ export function replaceExcludingUrlsAndPaths(text, replacement, regex) {
95
178
  const ranges = [];
96
179
  const urlMatches = text.matchAll(URL_REGEX);
97
180
  for (const match of urlMatches) {
@@ -105,63 +188,72 @@ function replaceExcludingUrlsAndPaths(text, replacement) {
105
188
  continue;
106
189
  ranges.push([match.index, match.index + match[0].length]);
107
190
  }
108
- return replaceOutsideRanges(text, replacement, ranges);
191
+ return replaceOutsideRanges(text, replacement, ranges, regex);
109
192
  }
110
- function replaceInInlineCodeSegments(text, replacement) {
193
+ export function replaceInInlineCodeSegments(text, replacement, regex) {
111
194
  const segments = text.split("`");
112
195
  return segments
113
196
  .map((segment, index) => {
114
197
  if (index % 2 === 1)
115
198
  return segment;
116
- return replaceExcludingUrlsAndPaths(segment, replacement);
199
+ return replaceExcludingUrlsAndPaths(segment, replacement, regex);
117
200
  })
118
201
  .join("`");
119
202
  }
120
- function replaceInText(text, replacement) {
203
+ export function replaceInText(text, replacement, regex) {
204
+ if (!text || typeof text !== "string")
205
+ return text;
121
206
  const blocks = text.split("```");
122
207
  return blocks
123
208
  .map((block, index) => {
124
209
  if (index % 2 === 1)
125
210
  return block;
126
- return replaceInInlineCodeSegments(block, replacement);
211
+ return replaceInInlineCodeSegments(block, replacement, regex);
127
212
  })
128
213
  .join("```");
129
214
  }
130
- function replaceInParts(parts, replacement) {
215
+ function replaceInParts(parts, replacement, regex) {
216
+ if (!parts || !Array.isArray(parts))
217
+ return;
131
218
  for (const part of parts) {
132
219
  if (part.type === "text" && typeof part.text === "string") {
133
- part.text = replaceInText(part.text, replacement);
220
+ part.text = replaceInText(part.text, replacement, regex);
134
221
  }
135
222
  if (part.type === "subtask") {
136
223
  if (typeof part.prompt === "string") {
137
- part.prompt = replaceInText(part.prompt, replacement);
224
+ part.prompt = replaceInText(part.prompt, replacement, regex);
138
225
  }
139
226
  if (typeof part.description === "string") {
140
- part.description = replaceInText(part.description, replacement);
227
+ part.description = replaceInText(part.description, replacement, regex);
141
228
  }
142
229
  }
143
230
  if (typeof part.title === "string") {
144
- part.title = replaceInText(part.title, replacement);
231
+ part.title = replaceInText(part.title, replacement, regex);
145
232
  }
146
233
  if (typeof part.description === "string") {
147
- part.description = replaceInText(part.description, replacement);
234
+ part.description = replaceInText(part.description, replacement, regex);
148
235
  }
149
236
  }
150
237
  }
151
- function replaceInMessages(messages, replacement) {
238
+ function replaceInMessages(messages, replacement, regex) {
239
+ if (!messages || !Array.isArray(messages))
240
+ return;
152
241
  for (const message of messages) {
153
- replaceInParts(message.parts, replacement);
242
+ replaceInParts(message.parts, replacement, regex);
154
243
  if (typeof message.info?.title === "string") {
155
- message.info.title = replaceInText(message.info.title, replacement);
244
+ message.info.title = replaceInText(message.info.title, replacement, regex);
156
245
  }
157
246
  }
158
247
  }
159
- function updateSessionTitleIfNeeded(title, replacement) {
248
+ function updateSessionTitleIfNeeded(title, replacement, regex) {
160
249
  if (!title)
161
250
  return title;
162
- if (!OPENCODE_REGEX.test(title))
251
+ const testRegex = regex ?? OPENCODE_REGEX;
252
+ if (!testRegex.test(title))
163
253
  return title;
164
- return replaceInText(title, replacement);
254
+ // Reset lastIndex since test() advances it for global regexes
255
+ testRegex.lastIndex = 0;
256
+ return replaceInText(title, replacement, regex);
165
257
  }
166
258
  export const RenamerReplacePlugin = async ({ client, directory, worktree, }) => {
167
259
  const state = {};
@@ -169,8 +261,14 @@ export const RenamerReplacePlugin = async ({ client, directory, worktree, }) =>
169
261
  state.projectConfigPath = path.join(projectRoot, ".opencode", CONFIG_FILENAME);
170
262
  state.globalConfigPath = path.join(os.homedir(), ".config", "opencode", CONFIG_FILENAME);
171
263
  async function withConfig(fn) {
172
- const config = await loadConfig(state);
173
- return fn(config);
264
+ try {
265
+ const config = await loadConfig(state);
266
+ return fn(config);
267
+ }
268
+ catch (error) {
269
+ console.error("[renamer-opencode-plugin] withConfig error:", error);
270
+ throw error;
271
+ }
174
272
  }
175
273
  return {
176
274
  event: async ({ event }) => {
@@ -188,7 +286,7 @@ export const RenamerReplacePlugin = async ({ client, directory, worktree, }) =>
188
286
  if (!config.enabled)
189
287
  return;
190
288
  const title = event.title;
191
- const updated = updateSessionTitleIfNeeded(title, config.replacement);
289
+ const updated = updateSessionTitleIfNeeded(title, config.replacement, state.variantRegex);
192
290
  if (!updated || updated === title)
193
291
  return;
194
292
  const sessionID = event.sessionID;
@@ -198,6 +296,8 @@ export const RenamerReplacePlugin = async ({ client, directory, worktree, }) =>
198
296
  path: { id: sessionID },
199
297
  body: { title: updated },
200
298
  });
299
+ }).catch((error) => {
300
+ console.error("[renamer-opencode-plugin] event.session.updated error:", error);
201
301
  });
202
302
  }
203
303
  },
@@ -205,40 +305,73 @@ export const RenamerReplacePlugin = async ({ client, directory, worktree, }) =>
205
305
  await withConfig((config) => {
206
306
  if (!config.enabled)
207
307
  return;
208
- replaceInParts(output.parts, config.replacement);
308
+ if (!config.hooks.chatMessage)
309
+ return;
310
+ if (!output.parts || !Array.isArray(output.parts))
311
+ return;
312
+ replaceInParts(output.parts, config.replacement, state.variantRegex);
313
+ }).catch((error) => {
314
+ console.error("[renamer-opencode-plugin] chat.message error:", error);
209
315
  });
210
316
  },
211
317
  "experimental.chat.system.transform": async (_input, output) => {
212
318
  await withConfig((config) => {
213
319
  if (!config.enabled)
214
320
  return;
215
- output.system = output.system.map((item) => replaceInText(item, config.replacement));
321
+ if (!config.hooks.system)
322
+ return;
323
+ const system = output?.system;
324
+ if (!system || !Array.isArray(system))
325
+ return;
326
+ for (let i = 0; i < system.length; i += 1) {
327
+ if (typeof system[i] === "string") {
328
+ system[i] = replaceInText(system[i], config.replacement, state.variantRegex);
329
+ }
330
+ }
331
+ }).catch((error) => {
332
+ console.error("[renamer-opencode-plugin] experimental.chat.system.transform error:", error);
216
333
  });
217
334
  },
218
335
  "experimental.chat.messages.transform": async (_input, output) => {
219
336
  await withConfig((config) => {
220
337
  if (!config.enabled)
221
338
  return;
222
- replaceInMessages(output.messages, config.replacement);
339
+ if (!config.hooks.messageHistory)
340
+ return;
341
+ if (!output.messages || !Array.isArray(output.messages))
342
+ return;
343
+ replaceInMessages(output.messages, config.replacement, state.variantRegex);
344
+ }).catch((error) => {
345
+ console.error("[renamer-opencode-plugin] experimental.chat.messages.transform error:", error);
223
346
  });
224
347
  },
225
348
  "experimental.text.complete": async (_input, output) => {
226
349
  await withConfig((config) => {
227
350
  if (!config.enabled)
228
351
  return;
229
- output.text = replaceInText(output.text, config.replacement);
352
+ if (!config.hooks.textComplete)
353
+ return;
354
+ if (typeof output.text !== "string")
355
+ return;
356
+ output.text = replaceInText(output.text, config.replacement, state.variantRegex);
357
+ }).catch((error) => {
358
+ console.error("[renamer-opencode-plugin] experimental.text.complete error:", error);
230
359
  });
231
360
  },
232
361
  "tool.execute.after": async (_input, output) => {
233
362
  await withConfig((config) => {
234
363
  if (!config.enabled)
235
364
  return;
365
+ if (!config.hooks.toolOutput)
366
+ return;
236
367
  if (typeof output.title === "string") {
237
- output.title = replaceInText(output.title, config.replacement);
368
+ output.title = replaceInText(output.title, config.replacement, state.variantRegex);
238
369
  }
239
370
  if (typeof output.output === "string") {
240
- output.output = replaceInText(output.output, config.replacement);
371
+ output.output = replaceInText(output.output, config.replacement, state.variantRegex);
241
372
  }
373
+ }).catch((error) => {
374
+ console.error("[renamer-opencode-plugin] tool.execute.after error:", error);
242
375
  });
243
376
  },
244
377
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sillybit/renamer-opencode-plugin",
3
- "version": "0.1.0",
4
- "description": "OpenCode plugin that replaces case-insensitive 'opencode' text with a configurable value (default: 'Renamer') across chat messages, system prompts, tool outputs, and session titles",
3
+ "version": "0.2.0",
4
+ "description": "OpenCode plugin that replaces case-insensitive 'OpenCode' text with a configurable value (default: 'Renamer') across chat messages, system prompts, tool outputs, and session titles",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -21,7 +21,8 @@
21
21
  "prepack": "bun run build",
22
22
  "format": "biome format --write .",
23
23
  "lint": "biome lint .",
24
- "check": "biome check --write ."
24
+ "check": "biome check --write .",
25
+ "test": "bun test"
25
26
  },
26
27
  "license": "MIT",
27
28
  "publishConfig": {
@@ -36,8 +37,8 @@
36
37
  "url": "https://github.com/Sillybit-io/renamer-opencode-plugin/issues"
37
38
  },
38
39
  "keywords": [
39
- "opencode",
40
- "opencode-plugin",
40
+ "OpenCode",
41
+ "OpenCode-plugin",
41
42
  "renamer",
42
43
  "text-transform"
43
44
  ],
@@ -45,7 +46,7 @@
45
46
  "node": ">=18"
46
47
  },
47
48
  "dependencies": {
48
- "@opencode-ai/plugin": "^1.1.21"
49
+ "@opencode-ai/plugin": "^1.1.53"
49
50
  },
50
51
  "devDependencies": {
51
52
  "@biomejs/biome": "^2.3.11",