opencode-command-hooks 0.1.4 → 0.1.6

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/executor.js CHANGED
@@ -94,19 +94,21 @@ async function injectMessage(client, sessionId, message) {
94
94
  }
95
95
  }
96
96
  /**
97
- * Execute a single tool hook
97
+ * Execute a single hook (tool or session)
98
98
  *
99
99
  * Runs the hook's commands, interpolates the template if configured,
100
- * and injects the result into the session if configured.
100
+ * and injects the result into the session if configured. Handles both
101
+ * ToolHook and SessionHook types with unified logic.
101
102
  *
102
- * @param hook - The tool hook to execute
103
+ * @param hook - The hook to execute (tool or session)
103
104
  * @param context - Execution context (tool name, session ID, agent, etc.)
104
105
  * @param client - OpenCode SDK client for message injection
105
106
  * @param truncationLimit - Optional truncation limit for command output
106
107
  * @returns Promise that resolves when hook execution is complete
107
108
  */
108
- async function executeToolHook(hook, context, client, truncationLimit) {
109
- logger.debug(`Executing tool hook "${hook.id}" for tool "${context.tool}", truncationLimit: ${truncationLimit}`);
109
+ async function executeHook(hook, context, client, truncationLimit) {
110
+ const hookType = isToolHook(hook) ? "tool" : "session";
111
+ logger.debug(`Executing ${hookType} hook "${hook.id}"${context.tool ? ` for tool "${context.tool}"` : ""}, truncationLimit: ${truncationLimit}`);
110
112
  try {
111
113
  // Execute the hook's commands
112
114
  if (truncationLimit !== undefined) {
@@ -119,28 +121,22 @@ async function executeToolHook(hook, context, client, truncationLimit) {
119
121
  logger.debug(`Hook "${hook.id}" executed ${results.length} command(s)`);
120
122
  // If inject is configured, prepare and inject the message
121
123
  if (hook.inject) {
122
- // Use the last command's result for template interpolation
123
124
  const lastResult = results[results.length - 1];
124
- // Build template context
125
125
  const templateContext = {
126
126
  id: hook.id,
127
127
  agent: context.agent,
128
- tool: context.tool,
128
+ tool: context.tool, // Will be undefined for session hooks
129
129
  cmd: Array.isArray(hook.run) ? hook.run[0] : hook.run,
130
130
  stdout: lastResult?.stdout,
131
131
  stderr: lastResult?.stderr,
132
132
  exitCode: lastResult?.exitCode,
133
133
  };
134
- // Interpolate template
135
134
  const message = interpolateTemplate(hook.inject, templateContext);
136
- // Inject into session
137
135
  await injectMessage(client, context.sessionId, message);
138
136
  }
139
137
  // If toast is configured, interpolate and show toast notification
140
138
  if (hook.toast) {
141
- // Use the last command's result for template interpolation
142
139
  const lastResult = results[results.length - 1];
143
- // Build template context
144
140
  const templateContext = {
145
141
  id: hook.id,
146
142
  agent: context.agent,
@@ -150,96 +146,18 @@ async function executeToolHook(hook, context, client, truncationLimit) {
150
146
  stderr: lastResult?.stderr,
151
147
  exitCode: lastResult?.exitCode,
152
148
  };
153
- // Interpolate toast title and message templates
154
- const toastTitle = hook.toast.title ? interpolateTemplate(hook.toast.title, templateContext) : undefined;
155
- const toastMessage = interpolateTemplate(hook.toast.message, templateContext);
156
- // Show toast notification
157
- await showToast(client, toastTitle, toastMessage, hook.toast.variant || "info", hook.toast.duration);
158
- }
159
- }
160
- catch (error) {
161
- // Log the error but don't throw - this is non-blocking
162
- const errorMessage = formatErrorMessage(hook.id, error);
163
- logger.error(errorMessage);
164
- // Optionally inject error message into session
165
- try {
166
- await injectMessage(client, context.sessionId, errorMessage);
167
- }
168
- catch (injectionError) {
169
- // If error injection fails, just log it
170
- const injectionErrorMsg = injectionError instanceof Error
171
- ? injectionError.message
172
- : String(injectionError);
173
- logger.error(`Failed to inject error message for hook "${hook.id}": ${injectionErrorMsg}`);
174
- }
175
- }
176
- }
177
- /**
178
- * Execute a single session hook
179
- *
180
- * Runs the hook's commands, interpolates the template if configured,
181
- * and injects the result into the session if configured.
182
- *
183
- * @param hook - The session hook to execute
184
- * @param context - Execution context (session ID, agent, etc.)
185
- * @param client - OpenCode SDK client for message injection
186
- * @param truncationLimit - Optional truncation limit for command output
187
- * @returns Promise that resolves when hook execution is complete
188
- */
189
- async function executeSessionHook(hook, context, client, truncationLimit) {
190
- logger.debug(`Executing session hook "${hook.id}", truncationLimit: ${truncationLimit}`);
191
- try {
192
- // Execute the hook's commands
193
- const results = await executeCommands(hook.run, hook.id, truncationLimit !== undefined ? { truncateOutput: truncationLimit } : undefined);
194
- logger.debug(`Hook "${hook.id}" executed ${results.length} command(s)`);
195
- // If inject is configured, prepare and inject the message
196
- if (hook.inject) {
197
- // Use the last command's result for template interpolation
198
- const lastResult = results[results.length - 1];
199
- // Build template context
200
- const templateContext = {
201
- id: hook.id,
202
- agent: context.agent,
203
- cmd: Array.isArray(hook.run) ? hook.run[0] : hook.run,
204
- stdout: lastResult?.stdout,
205
- stderr: lastResult?.stderr,
206
- exitCode: lastResult?.exitCode,
207
- };
208
- // Interpolate template
209
- const message = interpolateTemplate(hook.inject, templateContext);
210
- // Inject into session
211
- await injectMessage(client, context.sessionId, message);
212
- }
213
- // If toast is configured, interpolate and show toast notification
214
- if (hook.toast) {
215
- // Use the last command's result for template interpolation
216
- const lastResult = results[results.length - 1];
217
- // Build template context
218
- const templateContext = {
219
- id: hook.id,
220
- agent: context.agent,
221
- cmd: Array.isArray(hook.run) ? hook.run[0] : hook.run,
222
- stdout: lastResult?.stdout,
223
- stderr: lastResult?.stderr,
224
- exitCode: lastResult?.exitCode,
225
- };
226
- // Interpolate toast title and message templates
227
149
  const toastTitle = hook.toast.title ? interpolateTemplate(hook.toast.title, templateContext) : undefined;
228
150
  const toastMessage = interpolateTemplate(hook.toast.message, templateContext);
229
- // Show toast notification
230
151
  await showToast(client, toastTitle, toastMessage, hook.toast.variant || "info", hook.toast.duration);
231
152
  }
232
153
  }
233
154
  catch (error) {
234
- // Log the error but don't throw - this is non-blocking
235
155
  const errorMessage = formatErrorMessage(hook.id, error);
236
156
  logger.error(errorMessage);
237
- // Optionally inject error message into session
238
157
  try {
239
158
  await injectMessage(client, context.sessionId, errorMessage);
240
159
  }
241
160
  catch (injectionError) {
242
- // If error injection fails, just log it
243
161
  const injectionErrorMsg = injectionError instanceof Error
244
162
  ? injectionError.message
245
163
  : String(injectionError);
@@ -254,7 +172,7 @@ async function executeSessionHook(hook, context, client, truncationLimit) {
254
172
  * @returns true if the hook is a ToolHook
255
173
  */
256
174
  function isToolHook(hook) {
257
- return "when" in hook && "phase" in hook.when;
175
+ return "phase" in hook.when;
258
176
  }
259
177
  /**
260
178
  * Execute a collection of hooks
@@ -297,12 +215,7 @@ export async function executeHooks(hooks, context, client, truncationLimit) {
297
215
  // Execute each hook
298
216
  for (const hook of hooks) {
299
217
  try {
300
- if (isToolHook(hook)) {
301
- await executeToolHook(hook, context, client, truncationLimit);
302
- }
303
- else {
304
- await executeSessionHook(hook, context, client, truncationLimit);
305
- }
218
+ await executeHook(hook, context, client, truncationLimit);
306
219
  }
307
220
  catch (error) {
308
221
  // Catch errors from individual hook execution and continue
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqJjD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAuXhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA2OjD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,EAAE,MA6LhC,CAAA"}
package/dist/index.js CHANGED
@@ -30,33 +30,21 @@ async function notifyConfigError(configError, sessionId, client) {
30
30
  logger.error(`Failed to notify config error: ${notifyMessage}`);
31
31
  }
32
32
  }
33
- const TOOL_ARGS_TTL_MS = 5 * 60 * 1000;
34
33
  const toolCallArgsCache = new Map();
35
34
  const notifiedConfigErrors = new Set();
36
35
  function storeToolArgs(callId, args) {
37
36
  if (!callId || !args)
38
37
  return;
39
- const existing = toolCallArgsCache.get(callId);
40
- if (existing?.cleanup) {
41
- clearTimeout(existing.cleanup);
42
- }
43
- const cleanup = setTimeout(() => {
44
- toolCallArgsCache.delete(callId);
45
- }, TOOL_ARGS_TTL_MS);
46
- toolCallArgsCache.set(callId, { args, cleanup });
38
+ toolCallArgsCache.set(callId, args);
47
39
  }
48
40
  function getToolArgs(callId) {
49
41
  if (!callId)
50
42
  return undefined;
51
- return toolCallArgsCache.get(callId)?.args;
43
+ return toolCallArgsCache.get(callId);
52
44
  }
53
45
  function deleteToolArgs(callId) {
54
46
  if (!callId)
55
47
  return;
56
- const entry = toolCallArgsCache.get(callId);
57
- if (entry?.cleanup) {
58
- clearTimeout(entry.cleanup);
59
- }
60
48
  toolCallArgsCache.delete(callId);
61
49
  }
62
50
  /**
@@ -118,6 +106,80 @@ function filterToolHooks(hooks, criteria) {
118
106
  return true;
119
107
  });
120
108
  }
109
+ /**
110
+ * Handle a session lifecycle event (session.created or session.idle)
111
+ */
112
+ async function handleSessionEvent(eventType, sessionId, agent, client) {
113
+ if (!sessionId) {
114
+ logger.debug(`${eventType} event missing session ID`);
115
+ return;
116
+ }
117
+ try {
118
+ const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
119
+ await notifyConfigError(globalConfigError, sessionId, client);
120
+ const markdownConfig = { tool: [], session: [] };
121
+ const { config: mergedConfig } = mergeConfigs(globalConfig, markdownConfig);
122
+ const matchedHooks = filterSessionHooks(mergedConfig.session || [], {
123
+ event: eventType,
124
+ agent,
125
+ });
126
+ logger.debug(`Matched ${matchedHooks.length} hook(s) for ${eventType}, agent=${agent}`);
127
+ const context = {
128
+ sessionId,
129
+ agent: agent || "unknown",
130
+ };
131
+ await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
132
+ }
133
+ catch (error) {
134
+ const errorMessage = error instanceof Error ? error.message : String(error);
135
+ logger.error(`Error handling ${eventType} event: ${errorMessage}`);
136
+ }
137
+ }
138
+ /**
139
+ * Handle tool execution hook (before or after)
140
+ */
141
+ async function handleToolExecutionHook(phase, input, toolArgs, client) {
142
+ try {
143
+ const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
144
+ await notifyConfigError(globalConfigError, input.sessionID, client);
145
+ let agentConfig = { tool: [], session: [] };
146
+ let subagentType;
147
+ if (input.tool === "task" && toolArgs) {
148
+ subagentType = normalizeString(toolArgs.subagent_type) || undefined;
149
+ if (subagentType) {
150
+ logger.debug(`Detected task tool call with subagent_type: ${subagentType}`);
151
+ agentConfig = await loadAgentConfig(subagentType);
152
+ }
153
+ }
154
+ const { config: mergedConfig } = mergeConfigs(globalConfig, agentConfig);
155
+ const matchedHooks = filterToolHooks(mergedConfig.tool || [], {
156
+ phase,
157
+ toolName: input.tool,
158
+ callingAgent: subagentType,
159
+ slashCommand: undefined,
160
+ toolArgs,
161
+ });
162
+ logger.debug(`Matched ${matchedHooks.length} hook(s) for tool.execute.${phase}`);
163
+ const context = {
164
+ sessionId: input.sessionID,
165
+ agent: subagentType || "unknown",
166
+ tool: input.tool,
167
+ callId: input.callID,
168
+ toolArgs,
169
+ };
170
+ if (phase === "before") {
171
+ storeToolArgs(input.callID, toolArgs);
172
+ }
173
+ await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
174
+ if (phase === "after") {
175
+ deleteToolArgs(input.callID);
176
+ }
177
+ }
178
+ catch (error) {
179
+ const errorMessage = error instanceof Error ? error.message : String(error);
180
+ logger.error(`Error handling tool.execute.${phase}: ${errorMessage}`);
181
+ }
182
+ }
121
183
  /**
122
184
  * OpenCode Command Hooks Plugin
123
185
  *
@@ -170,68 +232,14 @@ export const CommandHooksPlugin = async ({ client }) => {
170
232
  const info = event.properties?.info;
171
233
  const sessionId = info?.id ? normalizeString(info.id) : undefined;
172
234
  const agent = normalizeString(event.properties?.agent);
173
- if (!sessionId) {
174
- logger.debug("session.created event missing session ID in info");
175
- return;
176
- }
177
- try {
178
- // Load config
179
- const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
180
- await notifyConfigError(globalConfigError, sessionId, client);
181
- const markdownConfig = { tool: [], session: [] };
182
- const { config: mergedConfig } = mergeConfigs(globalConfig, markdownConfig);
183
- // Filter session hooks for session.created (maps to session.start)
184
- const matchedHooks = filterSessionHooks(mergedConfig.session || [], {
185
- event: "session.created",
186
- agent,
187
- });
188
- logger.debug(`Matched ${matchedHooks.length} hook(s) for session.created (mapped to session.start), agent=${agent}, sessionId=${sessionId}`);
189
- // Build execution context
190
- const context = {
191
- sessionId,
192
- agent: agent || "unknown",
193
- };
194
- // Execute hooks with truncationLimit from config
195
- await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
196
- }
197
- catch (error) {
198
- const errorMessage = error instanceof Error ? error.message : String(error);
199
- logger.error(`Error handling session.created event: ${errorMessage}`);
200
- }
235
+ await handleSessionEvent("session.created", sessionId, agent, client);
201
236
  }
202
237
  // Handle session.idle event
203
238
  if (event.type === "session.idle") {
204
239
  logger.debug("Received session.idle event");
205
240
  const sessionId = normalizeString(event.properties?.sessionID);
206
241
  const agent = normalizeString(event.properties?.agent);
207
- if (!sessionId) {
208
- logger.debug("session.idle event missing sessionID");
209
- return;
210
- }
211
- try {
212
- // Load config
213
- const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
214
- await notifyConfigError(globalConfigError, sessionId, client);
215
- const markdownConfig = { tool: [], session: [] };
216
- const { config: mergedConfig } = mergeConfigs(globalConfig, markdownConfig);
217
- // Filter session hooks for session.idle
218
- const matchedHooks = filterSessionHooks(mergedConfig.session || [], {
219
- event: "session.idle",
220
- agent,
221
- });
222
- logger.debug(`Matched ${matchedHooks.length} hook(s) for session.idle, config truncationLimit: ${mergedConfig.truncationLimit}`);
223
- // Build execution context
224
- const context = {
225
- sessionId,
226
- agent: agent || "unknown",
227
- };
228
- // Execute hooks with truncationLimit from config
229
- await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
230
- }
231
- catch (error) {
232
- const errorMessage = error instanceof Error ? error.message : String(error);
233
- logger.error(`Error handling session.idle event: ${errorMessage}`);
234
- }
242
+ await handleSessionEvent("session.idle", sessionId, agent, client);
235
243
  }
236
244
  // Handle tool.result event (fires when tool finishes)
237
245
  if (event.type === "tool.result") {
@@ -245,14 +253,15 @@ export const CommandHooksPlugin = async ({ client }) => {
245
253
  logger.debug("tool.result event missing sessionID or tool name");
246
254
  return;
247
255
  }
256
+ // For tool.result, we need to pass the stored tool args and handle agent differently
248
257
  try {
249
- // Load global config
250
258
  const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
251
259
  await notifyConfigError(globalConfigError, sessionId, client);
252
260
  // Load agent-specific config if this is a task tool with subagent_type
253
261
  let agentConfig = { tool: [], session: [] };
262
+ let subagentType;
254
263
  if (toolName === "task" && storedToolArgs) {
255
- const subagentType = normalizeString(storedToolArgs.subagent_type);
264
+ subagentType = normalizeString(storedToolArgs.subagent_type);
256
265
  if (subagentType) {
257
266
  logger.debug(`Detected task tool call with subagent_type: ${subagentType}`);
258
267
  agentConfig = await loadAgentConfig(subagentType);
@@ -293,46 +302,7 @@ export const CommandHooksPlugin = async ({ client }) => {
293
302
  "tool.execute.before": async (input, output) => {
294
303
  logger.debug(`Received tool.execute.before for tool: ${input.tool}`);
295
304
  logger.debug(`Tool args: ${JSON.stringify(output.args)}`);
296
- try {
297
- // Load global config
298
- const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
299
- await notifyConfigError(globalConfigError, input.sessionID, client);
300
- // Load agent-specific config if this is a task tool with subagent_type
301
- let agentConfig = { tool: [], session: [] };
302
- let subagentType;
303
- if (input.tool === "task") {
304
- subagentType = normalizeString(output.args.subagent_type) || undefined;
305
- if (subagentType) {
306
- logger.debug(`Detected task tool call with subagent_type: ${subagentType}`);
307
- agentConfig = await loadAgentConfig(subagentType);
308
- }
309
- }
310
- const { config: mergedConfig } = mergeConfigs(globalConfig, agentConfig);
311
- // Filter tool hooks for before phase
312
- const matchedHooks = filterToolHooks(mergedConfig.tool || [], {
313
- phase: "before",
314
- toolName: input.tool,
315
- callingAgent: subagentType,
316
- slashCommand: undefined,
317
- toolArgs: output.args,
318
- });
319
- logger.debug(`Matched ${matchedHooks.length} hook(s) for tool.execute.before`);
320
- // Build execution context
321
- const context = {
322
- sessionId: input.sessionID,
323
- agent: subagentType || "unknown",
324
- tool: input.tool,
325
- callId: input.callID,
326
- toolArgs: output.args,
327
- };
328
- storeToolArgs(input.callID, output.args);
329
- // Execute hooks with truncationLimit from config
330
- await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
331
- }
332
- catch (error) {
333
- const errorMessage = error instanceof Error ? error.message : String(error);
334
- logger.error(`Error handling tool.execute.before: ${errorMessage}`);
335
- }
305
+ await handleToolExecutionHook("before", input, output.args, client);
336
306
  },
337
307
  /**
338
308
  * Tool execution after hook
@@ -346,45 +316,7 @@ export const CommandHooksPlugin = async ({ client }) => {
346
316
  return;
347
317
  }
348
318
  const storedToolArgs = getToolArgs(input.callID);
349
- try {
350
- // Load global config
351
- const { config: globalConfig, error: globalConfigError } = await loadGlobalConfig();
352
- await notifyConfigError(globalConfigError, input.sessionID, client);
353
- // Load agent-specific config if this is a task tool with subagent_type
354
- let agentConfig = { tool: [], session: [] };
355
- let subagentType;
356
- if (input.tool === "task" && storedToolArgs) {
357
- subagentType = normalizeString(storedToolArgs.subagent_type) || undefined;
358
- if (subagentType) {
359
- logger.debug(`Detected task tool call with subagent_type: ${subagentType}`);
360
- agentConfig = await loadAgentConfig(subagentType);
361
- }
362
- }
363
- const { config: mergedConfig } = mergeConfigs(globalConfig, agentConfig);
364
- // Filter tool hooks for after phase
365
- const matchedHooks = filterToolHooks(mergedConfig.tool || [], {
366
- phase: "after",
367
- toolName: input.tool,
368
- callingAgent: subagentType,
369
- slashCommand: undefined,
370
- toolArgs: storedToolArgs,
371
- });
372
- logger.debug(`Matched ${matchedHooks.length} hook(s) for tool.execute.after`);
373
- // Build execution context
374
- const context = {
375
- sessionId: input.sessionID,
376
- agent: subagentType || "unknown",
377
- tool: input.tool,
378
- callId: input.callID,
379
- toolArgs: storedToolArgs,
380
- };
381
- // Execute hooks with truncationLimit from config
382
- await executeHooks(matchedHooks, context, client, mergedConfig.truncationLimit);
383
- }
384
- catch (error) {
385
- const errorMessage = error instanceof Error ? error.message : String(error);
386
- logger.error(`Error handling tool.execute.after: ${errorMessage}`);
387
- }
319
+ await handleToolExecutionHook("after", input, storedToolArgs, client);
388
320
  },
389
321
  };
390
322
  logger.info(`Plugin returning hooks: ${Object.keys(hooks).join(", ")}`);
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/dist/logging.d.ts CHANGED
@@ -10,15 +10,19 @@ export declare function createLogger(client: OpencodeClient): {
10
10
  error: (message: string) => void;
11
11
  };
12
12
  export type Logger = ReturnType<typeof createLogger>;
13
+ /**
14
+ * Global logger instance.
15
+ * Set once during plugin initialization with the SDK client.
16
+ */
17
+ declare let logger: Logger;
13
18
  /**
14
19
  * Set the global logger instance.
15
20
  * Called once during plugin initialization with the SDK client.
16
21
  */
17
22
  export declare function setGlobalLogger(newLogger: Logger): void;
18
23
  /**
19
- * Proxy logger that always delegates to the current global logger.
20
- * This allows modules to import `logger` at load time, and it will
21
- * correctly use the real logger once it's initialized.
24
+ * Check if debug logging is enabled
22
25
  */
23
- export declare const logger: Logger;
26
+ export declare function isDebugEnabled(): boolean;
27
+ export { logger };
24
28
  //# sourceMappingURL=logging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc;qBAiB9B,MAAM;oBACP,MAAM;qBACL,MAAM;EAE1B;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAYpD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAUV,CAAA"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc;qBAiB9B,MAAM;oBACP,MAAM;qBACL,MAAM;EAE1B;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAEpD;;;GAGG;AACH,QAAA,IAAI,MAAM,EAAE,MAIX,CAAA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
package/dist/logging.js CHANGED
@@ -23,10 +23,11 @@ export function createLogger(client) {
23
23
  error: (message) => log("error", message),
24
24
  };
25
25
  }
26
- // Internal global logger state
27
- let globalLogger = null;
28
- // No-op logger for when no client is available
29
- const noopLogger = {
26
+ /**
27
+ * Global logger instance.
28
+ * Set once during plugin initialization with the SDK client.
29
+ */
30
+ let logger = {
30
31
  debug: () => { },
31
32
  info: () => { },
32
33
  error: () => { },
@@ -36,22 +37,13 @@ const noopLogger = {
36
37
  * Called once during plugin initialization with the SDK client.
37
38
  */
38
39
  export function setGlobalLogger(newLogger) {
39
- globalLogger = newLogger;
40
+ logger = newLogger;
40
41
  }
41
42
  /**
42
- * Proxy logger that always delegates to the current global logger.
43
- * This allows modules to import `logger` at load time, and it will
44
- * correctly use the real logger once it's initialized.
43
+ * Check if debug logging is enabled
45
44
  */
46
- export const logger = {
47
- get debug() {
48
- return (globalLogger ?? noopLogger).debug;
49
- },
50
- get info() {
51
- return (globalLogger ?? noopLogger).info;
52
- },
53
- get error() {
54
- return (globalLogger ?? noopLogger).error;
55
- },
56
- };
45
+ export function isDebugEnabled() {
46
+ return process.env.OPENCODE_HOOKS_DEBUG === "1" || process.env.OPENCODE_HOOKS_DEBUG === "true";
47
+ }
48
+ export { logger };
57
49
  //# sourceMappingURL=logging.js.map