@jc01rho/opencode-smart-title 0.3.17 → 0.4.1

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
@@ -17,6 +17,8 @@ An OpenCode plugin that generates better session titles from conversation contex
17
17
  - `🤖 <project>` when only subagents are active
18
18
  - `💤 <project>` when the session is idle
19
19
  - Avoids redundant terminal writes and duplicate in-flight title updates
20
+ - Throttles terminal title writes (3s cooldown) to prevent rapid status oscillation spam
21
+ - Enforces 30s cooldown between AI title generations per session
20
22
  - Uses OpenCode authentication flow instead of requiring separate API keys in this plugin
21
23
 
22
24
  ## How it works
@@ -90,6 +92,7 @@ Terminal title sync is best-effort.
90
92
  - It sanitizes terminal title content before writing
91
93
  - It skips writes when no TTY is available
92
94
  - It avoids rewriting the same title repeatedly
95
+ - Terminal title writes are throttled to at most once every 3 seconds (`running` bypasses for responsive feedback)
93
96
 
94
97
  This part of the plugin is the most environment-sensitive behavior in the project.
95
98
  If you are not using Windows Terminal with WSL2 Ubuntu, expect possible differences.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAYjD,QAAA,MAAM,gBAAgB,EAAE,MAyavB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAcjD,QAAA,MAAM,gBAAgB,EAAE,MA8cvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -12,12 +12,14 @@
12
12
  */
13
13
  import { getConfig } from "./lib/config.js";
14
14
  import { Logger } from "./lib/logger.js";
15
- import { updateSessionTitle, updateTerminalTitle } from "./lib/title.js";
15
+ import { updateSessionTitle, updateTerminalTitle, clearTitleGenerationCooldown } from "./lib/title.js";
16
16
  import { getRootSessionID, isSubagentSession, sessionIdleCount } from "./lib/session.js";
17
+ import { classifySessionEvent, EventDedupeTracker } from "./lib/event-classifier.js";
17
18
  import { join } from "path";
18
19
  import { homedir } from "os";
19
20
  const SUBAGENT_ACTIVITY_TTL_MS = 5 * 60 * 1000;
20
21
  const IDLE_DEBOUNCE_MS = 5000;
22
+ const EVENT_DEDUPE_WINDOW_MS = 1500;
21
23
  const SmartTitlePlugin = async (ctx) => {
22
24
  const config = getConfig(ctx);
23
25
  if (!config.enabled) {
@@ -286,64 +288,97 @@ const SmartTitlePlugin = async (ctx) => {
286
288
  projectConfigFile: ctx.directory ? join(ctx.directory, ".opencode", "smart-title.jsonc") : "N/A",
287
289
  logDirectory: join(homedir(), ".config", "opencode", "logs", "smart-title")
288
290
  });
291
+ const eventDedupeTracker = new EventDedupeTracker(EVENT_DEDUPE_WINDOW_MS);
289
292
  return {
290
293
  event: async ({ event }) => {
291
294
  const sessionId = getEventSessionId(event);
292
295
  if (event.type === "session.deleted") {
296
+ logger.debug("event", "Session deleted, cleaning up state", { sessionId });
293
297
  await clearSubagentActivity(sessionId);
298
+ if (sessionId) {
299
+ rootSessionStatuses.delete(sessionId);
300
+ activeSubagentsByRoot.delete(sessionId);
301
+ pendingIdleTimers.delete(sessionId);
302
+ sessionIdleCount.delete(sessionId);
303
+ clearTitleGenerationCooldown(sessionId);
304
+ }
294
305
  return;
295
306
  }
296
- const isLegacyIdleEvent = event.type === "session.status" &&
297
- event.properties.status?.type === "idle";
298
- const isIdleEvent = event.type === "session.idle" || isLegacyIdleEvent;
299
- if (isIdleEvent) {
300
- await syncTerminalStatus(sessionId, "idle");
307
+ const classified = classifySessionEvent(event);
308
+ logger.debug("event", `Event classified: ${classified.label}`, {
309
+ sessionId: classified.sessionId,
310
+ kind: classified.kind,
311
+ dedupeKey: classified.dedupeKey
312
+ });
313
+ if (!eventDedupeTracker.shouldProcess(classified.dedupeKey)) {
314
+ logger.debug("event", `Deduplicated event: ${classified.label}`, {
315
+ sessionId: classified.sessionId,
316
+ dedupeKey: classified.dedupeKey,
317
+ windowMs: EVENT_DEDUPE_WINDOW_MS
318
+ });
319
+ return;
301
320
  }
302
- else if (event.type === "session.status") {
303
- await syncTerminalStatus(sessionId, "running");
321
+ switch (classified.kind) {
322
+ case "session.idle":
323
+ await syncTerminalStatus(classified.sessionId, "idle");
324
+ break;
325
+ case "session.running":
326
+ await syncTerminalStatus(classified.sessionId, "running");
327
+ break;
328
+ case "session.error":
329
+ await syncTerminalStatus(classified.sessionId, "idle");
330
+ break;
331
+ case "permission.updated":
332
+ case "permission.asked":
333
+ case "question.asked":
334
+ await syncTerminalStatus(classified.sessionId, "running");
335
+ break;
336
+ default:
337
+ break;
304
338
  }
305
- if (isIdleEvent) {
306
- logger.debug('event', 'Session became idle', { sessionId });
307
- if (!sessionId) {
308
- logger.debug('event', 'Skipping idle handling because session ID is unavailable', {
309
- eventType: event.type
310
- });
311
- return;
312
- }
313
- if (await isSubagentSession(client, sessionId, logger)) {
314
- logger.debug('event', 'Skipping AI title generation for subagent idle event', {
315
- sessionId
316
- });
317
- return;
318
- }
319
- const currentCount = (sessionIdleCount.get(sessionId) || 0) + 1;
320
- sessionIdleCount.set(sessionId, currentCount);
321
- logger.debug('event', 'Idle count updated', {
322
- sessionId,
323
- currentCount,
324
- threshold: config.updateThreshold
339
+ if (classified.kind !== "session.idle") {
340
+ return;
341
+ }
342
+ const sid = classified.sessionId;
343
+ if (!sid) {
344
+ logger.debug("event", "Skipping idle handling: session ID unavailable", {
345
+ eventType: event.type
325
346
  });
326
- if (currentCount % config.updateThreshold !== 0) {
327
- logger.debug('event', 'Threshold not reached, skipping title update', {
328
- sessionId,
329
- currentCount,
330
- threshold: config.updateThreshold
331
- });
332
- return;
333
- }
334
- logger.info('event', 'Threshold reached, triggering title update for idle session', {
335
- sessionId,
347
+ return;
348
+ }
349
+ if (await isSubagentSession(client, sid, logger)) {
350
+ logger.debug("event", "Skipping title generation for subagent idle", {
351
+ sessionId: sid
352
+ });
353
+ return;
354
+ }
355
+ const currentCount = (sessionIdleCount.get(sid) || 0) + 1;
356
+ sessionIdleCount.set(sid, currentCount);
357
+ logger.debug("event", "Idle count updated", {
358
+ sessionId: sid,
359
+ currentCount,
360
+ threshold: config.updateThreshold
361
+ });
362
+ if (currentCount % config.updateThreshold !== 0) {
363
+ logger.debug("event", "Threshold not reached, skipping title update", {
364
+ sessionId: sid,
336
365
  currentCount,
337
366
  threshold: config.updateThreshold
338
367
  });
339
- updateSessionTitle(client, sessionId, logger, config).catch((error) => {
340
- logger.error('event', 'Title update failed', {
341
- sessionId,
342
- error: error.message,
343
- stack: error.stack
344
- });
345
- });
368
+ return;
346
369
  }
370
+ logger.info("event", "Threshold reached, triggering title update", {
371
+ sessionId: sid,
372
+ currentCount,
373
+ threshold: config.updateThreshold
374
+ });
375
+ updateSessionTitle(client, sid, logger, config).catch((error) => {
376
+ logger.error("event", "Title update failed", {
377
+ sessionId: sid,
378
+ error: error.message,
379
+ stack: error.stack
380
+ });
381
+ });
347
382
  },
348
383
  "chat.message": async ({ sessionID }) => {
349
384
  await syncTerminalStatus(sessionID, "running");
@@ -354,7 +389,7 @@ const SmartTitlePlugin = async (ctx) => {
354
389
  "tool.execute.before": async ({ sessionID }) => {
355
390
  await syncTerminalStatus(sessionID, "running");
356
391
  },
357
- "tool.execute.after": async ({ sessionID }) => {
392
+ "tool.execute.after": async () => {
358
393
  // No-op: idle debounce timer checks running tool parts directly
359
394
  }
360
395
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type SessionEventKind = "session.idle" | "session.running" | "session.error" | "session.deleted" | "permission.updated" | "permission.asked" | "question.asked" | "tool.execute.before" | "tool.execute.after" | "chat.message" | "command.execute.before" | "unknown";
2
+ export interface SessionEventClassification {
3
+ kind: SessionEventKind;
4
+ sessionId: string | undefined;
5
+ dedupeKey: string | undefined;
6
+ label: string;
7
+ }
8
+ export declare function classifySessionEvent(event: {
9
+ type: string;
10
+ properties?: unknown;
11
+ }): SessionEventClassification;
12
+ export declare class EventDedupeTracker {
13
+ private readonly windowMs;
14
+ private readonly recent;
15
+ constructor(windowMs: number);
16
+ shouldProcess(dedupeKey: string | undefined, nowMs?: number): boolean;
17
+ }
18
+ //# sourceMappingURL=event-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-classifier.d.ts","sourceRoot":"","sources":["../../lib/event-classifier.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACtB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,cAAc,GACd,wBAAwB,GACxB,SAAS,CAAA;AAEf,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,gBAAgB,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;CAChB;AAyBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,0BAA0B,CA0C7B;AAED,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;gBAEvC,QAAQ,EAAE,MAAM;IAI5B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,SAAa,GAAG,OAAO;CAiB5E"}
@@ -0,0 +1,72 @@
1
+ function extractSessionId(properties) {
2
+ if (!properties || typeof properties !== "object")
3
+ return undefined;
4
+ const props = properties;
5
+ if (typeof props.sessionID === "string")
6
+ return props.sessionID;
7
+ const info = props.info;
8
+ if (info && typeof info === "object") {
9
+ const id = info.id;
10
+ if (typeof id === "string")
11
+ return id;
12
+ }
13
+ return undefined;
14
+ }
15
+ export function classifySessionEvent(event) {
16
+ const { type, properties } = event;
17
+ const sessionId = extractSessionId(properties);
18
+ switch (type) {
19
+ case "session.idle":
20
+ return { kind: "session.idle", sessionId, dedupeKey: `session-idle:${sessionId}`, label: "session.idle" };
21
+ case "session.status": {
22
+ const statusType = properties?.status?.type;
23
+ if (statusType === "idle") {
24
+ return { kind: "session.idle", sessionId, dedupeKey: `session-status-idle:${sessionId}`, label: "session.status (idle)" };
25
+ }
26
+ return { kind: "session.running", sessionId, dedupeKey: `session-status-running:${sessionId}`, label: `session.status (${statusType ?? "unknown"})` };
27
+ }
28
+ case "session.error":
29
+ return { kind: "session.error", sessionId, dedupeKey: `session-error:${sessionId}`, label: "session.error" };
30
+ case "session.deleted":
31
+ return { kind: "session.deleted", sessionId, dedupeKey: undefined, label: "session.deleted" };
32
+ case "permission.updated":
33
+ case "permission.asked": {
34
+ const p = properties;
35
+ return { kind: type, sessionId, dedupeKey: `permission:${sessionId}:${p?.requestID ?? "unknown"}`, label: type };
36
+ }
37
+ case "question.asked": {
38
+ const p = properties;
39
+ return { kind: "question.asked", sessionId, dedupeKey: `question:${sessionId}:${p?.callID ?? "unknown"}`, label: "question.asked" };
40
+ }
41
+ case "tool.execute.before":
42
+ case "tool.execute.after":
43
+ case "chat.message":
44
+ case "command.execute.before":
45
+ return { kind: type, sessionId, dedupeKey: undefined, label: type };
46
+ default:
47
+ return { kind: "unknown", sessionId: undefined, dedupeKey: undefined, label: type };
48
+ }
49
+ }
50
+ export class EventDedupeTracker {
51
+ windowMs;
52
+ recent = new Map();
53
+ constructor(windowMs) {
54
+ this.windowMs = windowMs;
55
+ }
56
+ shouldProcess(dedupeKey, nowMs = Date.now()) {
57
+ if (!dedupeKey)
58
+ return true;
59
+ for (const [key, timestamp] of this.recent.entries()) {
60
+ if (nowMs - timestamp >= this.windowMs) {
61
+ this.recent.delete(key);
62
+ }
63
+ }
64
+ const lastProcessedAt = this.recent.get(dedupeKey);
65
+ if (lastProcessedAt !== undefined && nowMs - lastProcessedAt < this.windowMs) {
66
+ return false;
67
+ }
68
+ this.recent.set(dedupeKey, nowMs);
69
+ return true;
70
+ }
71
+ }
72
+ //# sourceMappingURL=event-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-classifier.js","sourceRoot":"","sources":["../../lib/event-classifier.ts"],"names":[],"mappings":"AAgCA,SAAS,gBAAgB,CAAC,UAAmB;IACzC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACnE,MAAM,KAAK,GAAG,UAAqC,CAAA;IACnD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,SAAS,CAAA;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,EAAE,GAAI,IAAyB,CAAC,EAAE,CAAA;QACxC,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAA;IACzC,CAAC;IACD,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAE9C,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,cAAc;YACf,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,SAAS,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;QAE7G,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,UAAU,GAAI,UAA2C,EAAE,MAAM,EAAE,IAAI,CAAA;YAC7E,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,SAAS,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;YAC7H,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,0BAA0B,SAAS,EAAE,EAAE,KAAK,EAAE,mBAAmB,UAAU,IAAI,SAAS,GAAG,EAAE,CAAA;QACzJ,CAAC;QAED,KAAK,eAAe;YAChB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,SAAS,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;QAEhH,KAAK,iBAAiB;YAClB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QAEjG,KAAK,oBAAoB,CAAC;QAC1B,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,UAAwC,CAAA;YAClD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,SAAS,IAAI,CAAC,EAAE,SAAS,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACpH,CAAC;QAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,UAAwC,CAAA;YAClD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,SAAS,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;QACvI,CAAC;QAED,KAAK,qBAAqB,CAAC;QAC3B,KAAK,oBAAoB,CAAC;QAC1B,KAAK,cAAc,CAAC;QACpB,KAAK,wBAAwB;YACzB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAEvE;YACI,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC3F,CAAC;AACL,CAAC;AAED,MAAM,OAAO,kBAAkB;IACV,QAAQ,CAAQ;IAChB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEnD,YAAY,QAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,aAAa,CAAC,SAA6B,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;QAC3D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,eAAe,KAAK,SAAS,IAAI,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -2,6 +2,7 @@ import type { OpenCodeClient } from "./types.js";
2
2
  import type { Logger } from "./logger.js";
3
3
  import type { PluginConfig } from "./config.js";
4
4
  export type TerminalStatus = "idle" | "running" | "subagent" | "thinking";
5
+ export declare function clearTitleGenerationCooldown(sessionId: string): void;
5
6
  export declare function updateTerminalTitle(directory: string | undefined, status: TerminalStatus, logger: Logger): void;
6
7
  export declare function cleanTitle(raw: string): string;
7
8
  export declare function generateTitleFromContext(context: string, configModel: string | undefined, logger: Logger, client: OpenCodeClient): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../lib/title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM/C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;AA+CzE,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACf,IAAI,CAoCN;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW9C;AAED,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsExB;AAED,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAmFf"}
1
+ {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../lib/title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM/C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;AAOzE,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAIpE;AAuED,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACf,IAAI,CAyDN;AAGD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAW9C;AAED,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsExB;AAED,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAiGf"}
package/dist/lib/title.js CHANGED
@@ -2,9 +2,19 @@ import { extractSmartContext, formatContextForTitle, truncate } from "./context.
2
2
  import { selectModel } from "./model-selector.js";
3
3
  import { TITLE_PROMPT } from "../prompt.js";
4
4
  import { basename } from "path";
5
- let lastTerminalTitle = null;
6
5
  const inFlightSessionTitleUpdates = new Set();
7
6
  const queuedSessionTitleUpdates = new Set();
7
+ const TITLE_GENERATION_COOLDOWN_MS = 30_000;
8
+ const lastTitleGenerationAt = new Map();
9
+ export function clearTitleGenerationCooldown(sessionId) {
10
+ lastTitleGenerationAt.delete(sessionId);
11
+ inFlightSessionTitleUpdates.delete(sessionId);
12
+ queuedSessionTitleUpdates.delete(sessionId);
13
+ }
14
+ const TERMINAL_WRITE_COOLDOWN_MS = 3000;
15
+ let lastTerminalTitle = null;
16
+ let lastTerminalTitleWriteAt = 0;
17
+ let pendingTerminalTimer = null;
8
18
  function sanitizeTerminalTitle(value) {
9
19
  return value
10
20
  .replace(/[\u0007\u001b]/g, "")
@@ -34,6 +44,20 @@ function wrapOscSequenceForTerminal(sequence) {
34
44
  }
35
45
  return `\u001bPtmux;${sequence.replace(/\u001b/g, "\u001b\u001b")}\u001b\\`;
36
46
  }
47
+ function writeTerminalTitle(writer, title, logger, status) {
48
+ const osc0 = wrapOscSequenceForTerminal(`\u001b]0;${title}\u0007`);
49
+ const osc2 = wrapOscSequenceForTerminal(`\u001b]2;${title}\u0007`);
50
+ writer.write(osc0);
51
+ writer.write(osc2);
52
+ lastTerminalTitle = title;
53
+ lastTerminalTitleWriteAt = Date.now();
54
+ logger.debug("terminal-title", "Terminal title updated", {
55
+ title,
56
+ status,
57
+ writer: writer === process.stdout ? "stdout" : "stderr",
58
+ tmux: Boolean(process.env.TMUX)
59
+ });
60
+ }
37
61
  export function updateTerminalTitle(directory, status, logger) {
38
62
  try {
39
63
  const writer = getTerminalWriter();
@@ -47,17 +71,35 @@ export function updateTerminalTitle(directory, status, logger) {
47
71
  if (!title || title === lastTerminalTitle) {
48
72
  return;
49
73
  }
50
- const osc0 = wrapOscSequenceForTerminal(`\u001b]0;${title}\u0007`);
51
- const osc2 = wrapOscSequenceForTerminal(`\u001b]2;${title}\u0007`);
52
- writer.write(osc0);
53
- writer.write(osc2);
54
- lastTerminalTitle = title;
55
- logger.debug("terminal-title", "Terminal title updated", {
56
- title,
57
- status,
58
- writer: writer === process.stdout ? "stdout" : "stderr",
59
- tmux: Boolean(process.env.TMUX)
60
- });
74
+ const now = Date.now();
75
+ const timeSinceLastWrite = now - lastTerminalTitleWriteAt;
76
+ // "running" always writes immediately for responsive feedback
77
+ if (status === "running" || timeSinceLastWrite >= TERMINAL_WRITE_COOLDOWN_MS) {
78
+ if (pendingTerminalTimer) {
79
+ clearTimeout(pendingTerminalTimer);
80
+ pendingTerminalTimer = null;
81
+ }
82
+ writeTerminalTitle(writer, title, logger, status);
83
+ }
84
+ else {
85
+ // Throttle: cancel previous pending write, schedule new one with latest status
86
+ if (pendingTerminalTimer) {
87
+ clearTimeout(pendingTerminalTimer);
88
+ }
89
+ const delay = TERMINAL_WRITE_COOLDOWN_MS - timeSinceLastWrite;
90
+ pendingTerminalTimer = setTimeout(() => {
91
+ pendingTerminalTimer = null;
92
+ const throttledTitle = formatTerminalTitle(directory, status);
93
+ if (throttledTitle && throttledTitle !== lastTerminalTitle) {
94
+ writeTerminalTitle(writer, throttledTitle, logger, status);
95
+ }
96
+ }, delay);
97
+ logger.debug("terminal-title", "Terminal title write throttled, queued for later", {
98
+ title,
99
+ status,
100
+ cooldownRemainingMs: delay
101
+ });
102
+ }
61
103
  }
62
104
  catch (error) {
63
105
  logger.warn("terminal-title", "Failed to update terminal title", {
@@ -143,6 +185,16 @@ export async function updateSessionTitle(client, sessionId, logger, config) {
143
185
  });
144
186
  return;
145
187
  }
188
+ const now = Date.now();
189
+ const lastGen = lastTitleGenerationAt.get(sessionId);
190
+ if (lastGen && now - lastGen < TITLE_GENERATION_COOLDOWN_MS) {
191
+ logger.debug('update-title', 'Skipping title update due to cooldown', {
192
+ sessionId,
193
+ elapsedMs: now - lastGen,
194
+ cooldownMs: TITLE_GENERATION_COOLDOWN_MS
195
+ });
196
+ return;
197
+ }
146
198
  inFlightSessionTitleUpdates.add(sessionId);
147
199
  try {
148
200
  logger.info('update-title', 'Title update triggered', { sessionId });
@@ -184,6 +236,7 @@ export async function updateSessionTitle(client, sessionId, logger, config) {
184
236
  path: { id: sessionId },
185
237
  body: { title: newTitle }
186
238
  });
239
+ lastTitleGenerationAt.set(sessionId, Date.now());
187
240
  logger.info('update-title', 'Session title updated successfully', {
188
241
  sessionId,
189
242
  title: newTitle
@@ -1 +1 @@
1
- {"version":3,"file":"title.js","sourceRoot":"","sources":["../../lib/title.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAI/B,IAAI,iBAAiB,GAAkB,IAAI,CAAA;AAC3C,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAU,CAAA;AACrD,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAA;AAMnD,SAAS,qBAAqB,CAAC,KAAa;IACxC,OAAO,KAAK;SACP,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,IAAI,EAAE,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA6B,EAAE,MAAsB;IAC9E,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IAC9E,MAAM,eAAe,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACxH,OAAO,qBAAqB,CAAC,GAAG,eAAe,IAAI,WAAW,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEzE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,OAAO,eAAe,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,SAA6B,EAC7B,MAAsB,EACtB,MAAc;IAEd,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;QAElC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,mEAAmE,EAAE;gBAChG,MAAM;aACT,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAEpD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACxC,OAAM;QACV,CAAC;QAED,MAAM,IAAI,GAAG,0BAA0B,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,0BAA0B,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAA;QAElE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClB,iBAAiB,GAAG,KAAK,CAAA;QAEzB,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,wBAAwB,EAAE;YACrD,KAAK;YACL,MAAM;YACN,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACvD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,iCAAiC,EAAE;YAC7D,MAAM;YACN,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;SACzC,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IAClC,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAA;IAE3D,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAA;IAC9C,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,OAAe,EACf,WAA+B,EAC/B,MAAc,EACd,MAAsB;IAEtB,IAAI,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;QAEpE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,CACvE,MAAM,EACN,WAAW,CACd,CAAA;QAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,EAAE;YAC9C,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,MAAM;YACN,MAAM;SACT,CAAC,CAAA;QAEF,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;oBACvB,IAAI,EAAE;wBACF,KAAK,EAAE,6BAA6B;wBACpC,OAAO,EAAE,GAAG,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,OAAO,kBAAkB,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE;wBACtH,OAAO,EAAE,MAAM;wBACf,QAAQ,EAAE,IAAI;qBACjB;iBACJ,CAAC,CAAA;gBACF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,6CAA6C,EAAE;oBAC3E,WAAW;oBACX,aAAa,EAAE,SAAS;iBAC3B,CAAC,CAAA;YACN,CAAC;YAAC,OAAO,UAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,mCAAmC,EAAE;oBAClE,KAAK,EAAE,UAAU,CAAC,OAAO;iBAC5B,CAAC,CAAA;YACN,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,EAAE;YACjD,aAAa,EAAE,OAAO,CAAC,MAAM;SAChC,CAAC,CAAA;QAEF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAC9B,KAAK;YACL,QAAQ,EAAE;gBACN;oBACI,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,GAAG,YAAY,uBAAuB,OAAO,4CAA4C;iBACrG;aACJ;SACJ,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAErC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,8BAA8B,EAAE;YAC5D,KAAK;YACL,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;SAChC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAEhB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,0BAA0B,EAAE;YACzD,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,MAAsB,EACtB,SAAiB,EACjB,MAAc,EACd,MAAoB;IAEpB,IAAI,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,wEAAwE,EAAE;YACnG,SAAS;SACZ,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAE1C,IAAI,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;QAEpE,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YACzE,OAAM;QACV,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE;YAC7C,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,MAAM;SAC1B,CAAC,CAAA;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE;gBACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBACnC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;aACjC,CAAC,CAAA;QACN,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAE5C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,iDAAiD,EAAE;YAC5E,SAAS;YACT,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,eAAe,EAAE,MAAM,CAAC,KAAK;SAChC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAEtF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,oEAAoE,EAAE;gBAC9F,SAAS;gBACT,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,eAAe,EAAE,MAAM,CAAC,KAAK;aAChC,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,iCAAiC,EAAE;YAC3D,SAAS;YACT,KAAK,EAAE,QAAQ;SAClB,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACvB,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,oCAAoC,EAAE;YAC9D,SAAS;YACT,KAAK,EAAE,QAAQ;SAClB,CAAC,CAAA;IAEN,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,gCAAgC,EAAE;YAC3D,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC,CAAA;IACN,CAAC;YAAS,CAAC;QACP,2BAA2B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAE7C,IAAI,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,mEAAmE,EAAE;gBAC9F,SAAS;aACZ,CAAC,CAAA;YACF,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/D,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"title.js","sourceRoot":"","sources":["../../lib/title.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@jc01rho/opencode-smart-title",
4
- "version": "0.3.17",
4
+ "version": "0.4.1",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that automatically generates meaningful session titles using AI and smart context selection",
7
7
  "main": "./dist/index.js",