ccpoke 1.7.7 → 1.7.9

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 (50) hide show
  1. package/dist/agent/claude-code/claude-code-provider.js +14 -21
  2. package/dist/agent/claude-code/claude-code-provider.js.map +1 -1
  3. package/dist/agent/codex/codex-provider.js +1 -9
  4. package/dist/agent/codex/codex-provider.js.map +1 -1
  5. package/dist/agent/cursor/cursor-provider.js +2 -12
  6. package/dist/agent/cursor/cursor-provider.js.map +1 -1
  7. package/dist/agent/gemini-cli/gemini-cli-provider.js +1 -9
  8. package/dist/agent/gemini-cli/gemini-cli-provider.js.map +1 -1
  9. package/dist/agent/opencode/opencode-provider.js +1 -9
  10. package/dist/agent/opencode/opencode-provider.js.map +1 -1
  11. package/dist/channel/discord/discord-permission-handler.d.ts +3 -1
  12. package/dist/channel/discord/discord-permission-handler.js +70 -31
  13. package/dist/channel/discord/discord-permission-handler.js.map +1 -1
  14. package/dist/channel/permission-tui-injector.d.ts +16 -0
  15. package/dist/channel/permission-tui-injector.js +65 -0
  16. package/dist/channel/permission-tui-injector.js.map +1 -0
  17. package/dist/channel/summarize-tool.js +12 -0
  18. package/dist/channel/summarize-tool.js.map +1 -1
  19. package/dist/channel/telegram/ask-question-handler.js +9 -6
  20. package/dist/channel/telegram/ask-question-handler.js.map +1 -1
  21. package/dist/channel/telegram/escape-markdown.js +19 -5
  22. package/dist/channel/telegram/escape-markdown.js.map +1 -1
  23. package/dist/channel/telegram/permission-request-handler.d.ts +3 -2
  24. package/dist/channel/telegram/permission-request-handler.js +61 -25
  25. package/dist/channel/telegram/permission-request-handler.js.map +1 -1
  26. package/dist/channel/telegram/prompt-handler.js +2 -1
  27. package/dist/channel/telegram/prompt-handler.js.map +1 -1
  28. package/dist/channel/telegram/telegram-channel.js +37 -34
  29. package/dist/channel/telegram/telegram-channel.js.map +1 -1
  30. package/dist/channel/telegram/telegram-sender.d.ts +1 -0
  31. package/dist/channel/telegram/telegram-sender.js +9 -2
  32. package/dist/channel/telegram/telegram-sender.js.map +1 -1
  33. package/dist/i18n/locales/en.js +2 -0
  34. package/dist/i18n/locales/en.js.map +1 -1
  35. package/dist/i18n/locales/vi.js +2 -0
  36. package/dist/i18n/locales/vi.js.map +1 -1
  37. package/dist/i18n/locales/zh.js +2 -0
  38. package/dist/i18n/locales/zh.js.map +1 -1
  39. package/dist/i18n/types.d.ts +2 -0
  40. package/dist/server/api-server.js +6 -0
  41. package/dist/server/api-server.js.map +1 -1
  42. package/dist/utils/event-collector.d.ts +5 -0
  43. package/dist/utils/event-collector.js +30 -0
  44. package/dist/utils/event-collector.js.map +1 -0
  45. package/dist/utils/markdown.d.ts +1 -0
  46. package/dist/utils/markdown.js +27 -6
  47. package/dist/utils/markdown.js.map +1 -1
  48. package/dist/utils/version-check.js +1 -0
  49. package/dist/utils/version-check.js.map +1 -1
  50. package/package.json +1 -1
@@ -1,10 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
- import { AGENT_START_COMMANDS } from "../../channel/agent-launcher.js";
3
- import { t } from "../../i18n/index.js";
4
2
  import { collectGitChanges } from "../../utils/git-collector.js";
5
3
  import { logger } from "../../utils/log.js";
6
4
  import { paths } from "../../utils/paths.js";
7
- import { isCommandAvailable } from "../../utils/shell.js";
8
5
  import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
9
6
  import { claudeCodeInstaller } from "./claude-code-installer.js";
10
7
  import { extractProjectName, isValidStopEvent, parseTranscript } from "./claude-code-parser.js";
@@ -15,13 +12,7 @@ export class ClaudeCodeProvider {
15
12
  settleDelayMs = TRANSCRIPT_SETTLE_DELAY_MS;
16
13
  submitKeys = ["Enter"];
17
14
  detect() {
18
- if (!existsSync(paths.claudeDir))
19
- return false;
20
- const startCommand = AGENT_START_COMMANDS[AgentName.ClaudeCode];
21
- if (!startCommand)
22
- return false;
23
- const binary = startCommand.split(" ")[0];
24
- return isCommandAvailable(binary);
15
+ return existsSync(paths.claudeDir);
25
16
  }
26
17
  isHookInstalled() {
27
18
  return claudeCodeInstaller.isInstalled();
@@ -39,24 +30,25 @@ export class ClaudeCodeProvider {
39
30
  if (!isValidStopEvent(raw)) {
40
31
  return this.createFallbackResult(raw);
41
32
  }
42
- let summary = {
43
- lastAssistantMessage: "",
44
- model: "",
45
- };
33
+ const obj = raw;
34
+ const bodyMessage = typeof obj.last_assistant_message === "string" ? obj.last_assistant_message : "";
35
+ let transcriptModel = "";
36
+ let transcriptMessage = "";
46
37
  try {
47
- summary = parseTranscript(raw.transcript_path);
38
+ const summary = parseTranscript(raw.transcript_path);
39
+ transcriptModel = summary.model;
40
+ transcriptMessage = summary.lastAssistantMessage;
48
41
  }
49
- catch (err) {
50
- logger.error({ err }, t("hook.transcriptFailed"));
42
+ catch {
43
+ logger.debug("[ClaudeCode:transcript] parse failed, using body payload only");
51
44
  }
52
45
  const gitChanges = collectGitChanges(raw.cwd);
53
- const obj = raw;
54
46
  const tmuxTarget = typeof obj.tmux_target === "string" ? obj.tmux_target : undefined;
55
47
  return {
56
48
  projectName: extractProjectName(raw.cwd, raw.transcript_path),
57
- responseSummary: summary.lastAssistantMessage,
49
+ responseSummary: bodyMessage || transcriptMessage,
58
50
  gitChanges,
59
- model: summary.model,
51
+ model: transcriptModel,
60
52
  agentSessionId: raw.session_id,
61
53
  cwd: raw.cwd,
62
54
  tmuxTarget,
@@ -67,9 +59,10 @@ export class ClaudeCodeProvider {
67
59
  const cwd = typeof obj.cwd === "string" ? obj.cwd : "";
68
60
  const transcriptPath = typeof obj.transcript_path === "string" ? obj.transcript_path : "";
69
61
  const tmuxTarget = typeof obj.tmux_target === "string" ? obj.tmux_target : undefined;
62
+ const bodyMessage = typeof obj.last_assistant_message === "string" ? obj.last_assistant_message : "";
70
63
  return {
71
64
  projectName: cwd ? extractProjectName(cwd, transcriptPath) : "unknown",
72
- responseSummary: "",
65
+ responseSummary: bodyMessage,
73
66
  gitChanges: cwd ? collectGitChanges(cwd) : [],
74
67
  model: "",
75
68
  agentSessionId: typeof obj.session_id === "string" ? obj.session_id : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-provider.js","sourceRoot":"","sources":["../../../src/agent/claude-code/claude-code-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-provider.js","sourceRoot":"","sources":["../../../src/agent/claude-code/claude-code-provider.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
- import { AGENT_START_COMMANDS } from "../../channel/agent-launcher.js";
3
2
  import { collectGitChanges } from "../../utils/git-collector.js";
4
3
  import { logger } from "../../utils/log.js";
5
4
  import { paths } from "../../utils/paths.js";
6
- import { isCommandAvailable } from "../../utils/shell.js";
7
5
  import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
8
6
  import { codexInstaller } from "./codex-installer.js";
9
7
  import { extractProjectName, isValidNotifyEvent, parseNotifyEvent, parseRolloutFile, } from "./codex-parser.js";
@@ -14,13 +12,7 @@ export class CodexProvider {
14
12
  settleDelayMs = ROLLOUT_SETTLE_DELAY_MS;
15
13
  submitKeys = ["Escape", "Enter"];
16
14
  detect() {
17
- if (!existsSync(paths.codexDir))
18
- return false;
19
- const startCommand = AGENT_START_COMMANDS[AgentName.Codex];
20
- if (!startCommand)
21
- return false;
22
- const binary = startCommand.split(" ")[0];
23
- return isCommandAvailable(binary);
15
+ return existsSync(paths.codexDir);
24
16
  }
25
17
  isHookInstalled() {
26
18
  return codexInstaller.isInstalled();
@@ -1 +1 @@
1
- {"version":3,"file":"codex-provider.js","sourceRoot":"","sources":["../../../src/agent/codex/codex-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-provider.js","sourceRoot":"","sources":["../../../src/agent/codex/codex-provider.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  import { existsSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join } from "node:path";
4
- import { AGENT_START_COMMANDS } from "../../channel/agent-launcher.js";
5
2
  import { t } from "../../i18n/index.js";
6
3
  import { collectGitChanges } from "../../utils/git-collector.js";
7
4
  import { logger } from "../../utils/log.js";
8
- import { isCommandAvailable } from "../../utils/shell.js";
5
+ import { paths } from "../../utils/paths.js";
9
6
  import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
10
7
  import { cursorInstaller } from "./cursor-installer.js";
11
8
  import { extractProjectName, isValidStopEvent, parseStopEvent, parseTranscript, } from "./cursor-parser.js";
@@ -16,14 +13,7 @@ export class CursorProvider {
16
13
  settleDelayMs = 0;
17
14
  submitKeys = ["Enter"];
18
15
  detect() {
19
- const hasCursorDir = existsSync(join(homedir(), ".cursor"));
20
- if (!hasCursorDir)
21
- return false;
22
- const startCommand = AGENT_START_COMMANDS[AgentName.Cursor];
23
- if (!startCommand)
24
- return false;
25
- const binary = startCommand.split(" ")[0];
26
- return isCommandAvailable(binary);
16
+ return existsSync(paths.cursorDir);
27
17
  }
28
18
  isHookInstalled() {
29
19
  return cursorInstaller.isInstalled();
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-provider.js","sourceRoot":"","sources":["../../../src/agent/cursor/cursor-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-provider.js","sourceRoot":"","sources":["../../../src/agent/cursor/cursor-provider.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
- import { AGENT_START_COMMANDS } from "../../channel/agent-launcher.js";
3
2
  import { collectGitChanges } from "../../utils/git-collector.js";
4
3
  import { logger } from "../../utils/log.js";
5
4
  import { paths } from "../../utils/paths.js";
6
- import { isCommandAvailable } from "../../utils/shell.js";
7
5
  import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
8
6
  import { geminiCliInstaller } from "./gemini-cli-installer.js";
9
7
  import { extractProjectName, isValidAfterAgentEvent, parseAfterAgentEvent, parseTranscriptForUsage, } from "./gemini-cli-parser.js";
@@ -13,13 +11,7 @@ export class GeminiCliProvider {
13
11
  settleDelayMs = 0;
14
12
  submitKeys = ["Enter"];
15
13
  detect() {
16
- if (!existsSync(paths.geminiDir))
17
- return false;
18
- const startCommand = AGENT_START_COMMANDS[AgentName.GeminiCli];
19
- if (!startCommand)
20
- return false;
21
- const binary = startCommand.split(" ")[0];
22
- return isCommandAvailable(binary);
14
+ return existsSync(paths.geminiDir);
23
15
  }
24
16
  isHookInstalled() {
25
17
  return geminiCliInstaller.isInstalled();
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli-provider.js","sourceRoot":"","sources":["../../../src/agent/gemini-cli/gemini-cli-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-cli-provider.js","sourceRoot":"","sources":["../../../src/agent/gemini-cli/gemini-cli-provider.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
- import { AGENT_START_COMMANDS } from "../../channel/agent-launcher.js";
3
2
  import { collectGitChanges } from "../../utils/git-collector.js";
4
3
  import { logger } from "../../utils/log.js";
5
4
  import { paths } from "../../utils/paths.js";
6
- import { isCommandAvailable } from "../../utils/shell.js";
7
5
  import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
8
6
  import { opencodeInstaller } from "./opencode-installer.js";
9
7
  import { extractProjectName, isValidOpencodeEvent, parseOpencodeEvent } from "./opencode-parser.js";
@@ -13,13 +11,7 @@ export class OpencodeProvider {
13
11
  settleDelayMs = 0;
14
12
  submitKeys = ["Enter"];
15
13
  detect() {
16
- if (!existsSync(paths.opencodeDir))
17
- return false;
18
- const startCommand = AGENT_START_COMMANDS[AgentName.OpenCode];
19
- if (!startCommand)
20
- return false;
21
- const binary = startCommand.split(" ")[0];
22
- return isCommandAvailable(binary);
14
+ return existsSync(paths.opencodeDir);
23
15
  }
24
16
  isHookInstalled() {
25
17
  return opencodeInstaller.isInstalled();
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-provider.js","sourceRoot":"","sources":["../../../src/agent/opencode/opencode-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,SAAS,GAGV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEpG,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC1B,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtD,aAAa,GAAG,CAAC,CAAC;IAClB,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhC,MAAM;QACJ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAC3C,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACb,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,WAAW;QACT,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,iBAAiB,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,iBAAiB,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED,UAAU,CAAC,GAAY;QACrB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,SAAS,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAE7E,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAErF,OAAO;YACL,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1C,eAAe,EAAE,KAAK,CAAC,cAAc;YACrC,UAAU;YACV,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,cAAc,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;YAC5C,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,GAAY;QACvC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;QAC5F,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAErF,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YACtD,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7C,KAAK,EAAE,EAAE;YACT,GAAG;YACH,UAAU;SACX,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"opencode-provider.js","sourceRoot":"","sources":["../../../src/agent/opencode/opencode-provider.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,16 @@ import type { TmuxBridge } from "../../tmux/tmux-bridge.js";
5
5
  export declare class DiscordPermissionHandler {
6
6
  private getChannel;
7
7
  private sessionMap;
8
- private tmuxBridge;
9
8
  private pending;
10
9
  private timers;
11
10
  private nextPendingId;
11
+ private injector;
12
12
  constructor(getChannel: () => DMChannel | TextChannel | null, sessionMap: SessionMap, tmuxBridge: TmuxBridge);
13
13
  forwardPermission(event: PermissionRequestEvent): Promise<void>;
14
14
  handleInteraction(interaction: ButtonInteraction): Promise<void>;
15
15
  destroy(): void;
16
+ private buildPlanButtons;
17
+ private buildStandardButtons;
16
18
  private setPending;
17
19
  private clearPending;
18
20
  }
@@ -1,5 +1,8 @@
1
1
  import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, } from "discord.js";
2
+ import { AGENT_DISPLAY_NAMES, AgentName } from "../../agent/types.js";
3
+ import { t } from "../../i18n/index.js";
2
4
  import { logger } from "../../utils/log.js";
5
+ import { isExitPlanMode, parsePermissionCallback, PermissionTuiInjector, } from "../permission-tui-injector.js";
3
6
  import { summarizeTool } from "../summarize-tool.js";
4
7
  const EXPIRE_MS = 10 * 60 * 1000;
5
8
  const MAX_PENDING = 50;
@@ -9,14 +12,14 @@ const EMBED_COLOR_DENY = 0xd63031;
9
12
  export class DiscordPermissionHandler {
10
13
  getChannel;
11
14
  sessionMap;
12
- tmuxBridge;
13
15
  pending = new Map();
14
16
  timers = new Map();
15
17
  nextPendingId = 1;
18
+ injector;
16
19
  constructor(getChannel, sessionMap, tmuxBridge) {
17
20
  this.getChannel = getChannel;
18
21
  this.sessionMap = sessionMap;
19
- this.tmuxBridge = tmuxBridge;
22
+ this.injector = new PermissionTuiInjector(tmuxBridge);
20
23
  }
21
24
  async forwardPermission(event) {
22
25
  const channel = this.getChannel();
@@ -32,30 +35,39 @@ export class DiscordPermissionHandler {
32
35
  const toolSummary = summarizeTool(event.toolName, event.toolInput);
33
36
  const session = this.sessionMap.getBySessionId(event.sessionId);
34
37
  const projectName = session?.project ?? "unknown";
38
+ const agentName = AGENT_DISPLAY_NAMES[session?.agent ?? AgentName.ClaudeCode];
39
+ const planLabels = isExitPlanMode(event.toolName)
40
+ ? this.injector.extractPlanOptions(event.tmuxTarget)
41
+ : undefined;
35
42
  const pp = {
36
43
  pendingId,
37
44
  sessionId: event.sessionId,
38
45
  tmuxTarget: event.tmuxTarget,
39
46
  toolName: event.toolName,
40
47
  toolSummary,
48
+ planLabels,
41
49
  createdAt: Date.now(),
42
50
  };
43
51
  this.setPending(pendingId, pp);
44
- const embed = new EmbedBuilder()
45
- .setColor(EMBED_COLOR_WARN)
46
- .setTitle("⚠️ Permission Request")
47
- .setDescription(`**${projectName}**`)
48
- .addFields({ name: "🔧 Tool", value: event.toolName, inline: true }, { name: "Input", value: `\`${toolSummary}\`` })
49
- .setTimestamp();
50
- const row = new ActionRowBuilder().addComponents(new ButtonBuilder()
51
- .setCustomId(`perm:a:${pendingId}`)
52
- .setLabel("Allow")
53
- .setStyle(ButtonStyle.Success)
54
- .setEmoji("✅"), new ButtonBuilder()
55
- .setCustomId(`perm:d:${pendingId}`)
56
- .setLabel("Deny")
57
- .setStyle(ButtonStyle.Danger)
58
- .setEmoji("❌"));
52
+ let embed;
53
+ if (isExitPlanMode(event.toolName)) {
54
+ embed = new EmbedBuilder()
55
+ .setColor(EMBED_COLOR_WARN)
56
+ .setTitle(`📦 ${projectName}`)
57
+ .setDescription(`🐾 ${agentName}\n\n${t("permissionRequest.planTitle")}`)
58
+ .setTimestamp();
59
+ }
60
+ else {
61
+ embed = new EmbedBuilder()
62
+ .setColor(EMBED_COLOR_WARN)
63
+ .setTitle("⚠️ Permission Request")
64
+ .setDescription(`**${projectName}**`)
65
+ .addFields({ name: "🔧 Tool", value: event.toolName, inline: true }, { name: "Input", value: `\`${toolSummary}\`` })
66
+ .setTimestamp();
67
+ }
68
+ const row = planLabels
69
+ ? this.buildPlanButtons(pendingId, planLabels)
70
+ : this.buildStandardButtons(pendingId);
59
71
  await channel.send({ embeds: [embed], components: [row] }).catch((err) => {
60
72
  logger.error({ err }, "[Discord:PermReq] send failed");
61
73
  });
@@ -66,24 +78,35 @@ export class DiscordPermissionHandler {
66
78
  return;
67
79
  const action = parts[1];
68
80
  const pendingId = parseInt(parts[2], 10);
69
- const allow = action === "a";
70
81
  const pp = this.pending.get(pendingId);
71
82
  if (!pp) {
72
83
  await interaction.reply({ content: "This permission request has expired.", ephemeral: true });
73
84
  return;
74
85
  }
75
- const resultEmoji = allow ? "✅" : "❌";
76
- const resultText = allow
77
- ? `Allowed: **${pp.toolName}** — \`${pp.toolSummary}\``
78
- : `Denied: **${pp.toolName}** \`${pp.toolSummary}\``;
86
+ const injectionResult = parsePermissionCallback(action);
87
+ let resultText;
88
+ let embedColor;
89
+ if (injectionResult.action === "plan-option") {
90
+ const label = pp.planLabels?.[injectionResult.optionIndex] ?? "";
91
+ resultText = t("permissionRequest.planApproved", { option: label });
92
+ embedColor = EMBED_COLOR_ALLOW;
93
+ }
94
+ else {
95
+ const allow = injectionResult.action === "allow";
96
+ resultText = allow
97
+ ? `Allowed: **${pp.toolName}** — \`${pp.toolSummary}\``
98
+ : `Denied: **${pp.toolName}** — \`${pp.toolSummary}\``;
99
+ embedColor = allow ? EMBED_COLOR_ALLOW : EMBED_COLOR_DENY;
100
+ }
101
+ const resultEmoji = injectionResult.action === "deny" ? "❌" : "✅";
79
102
  const updatedEmbed = new EmbedBuilder()
80
- .setColor(allow ? EMBED_COLOR_ALLOW : EMBED_COLOR_DENY)
103
+ .setColor(embedColor)
81
104
  .setDescription(`${resultEmoji} ${resultText}`)
82
105
  .setTimestamp();
83
106
  await interaction.deferUpdate();
84
107
  try {
85
- await injectResponse(this.tmuxBridge, pp.tmuxTarget, allow);
86
- logger.debug(`[Discord:PermReq] injected ${allow ? "allow" : "deny"} → ${pp.tmuxTarget}`);
108
+ await this.injector.inject(pp.tmuxTarget, injectionResult);
109
+ logger.debug(`[Discord:PermReq] injected ${injectionResult.action} → ${pp.tmuxTarget}`);
87
110
  }
88
111
  catch (err) {
89
112
  logger.error({ err }, "[Discord:PermReq] injection failed");
@@ -97,6 +120,28 @@ export class DiscordPermissionHandler {
97
120
  this.timers.clear();
98
121
  this.pending.clear();
99
122
  }
123
+ buildPlanButtons(pendingId, labels) {
124
+ const styles = [ButtonStyle.Success, ButtonStyle.Primary, ButtonStyle.Secondary];
125
+ const emojis = ["🔄", "⚡", "✋"];
126
+ return new ActionRowBuilder().addComponents(...labels
127
+ .slice(0, 3)
128
+ .map((label, i) => new ButtonBuilder()
129
+ .setCustomId(`perm:e${i}:${pendingId}`)
130
+ .setLabel(label)
131
+ .setStyle(styles[i])
132
+ .setEmoji(emojis[i])));
133
+ }
134
+ buildStandardButtons(pendingId) {
135
+ return new ActionRowBuilder().addComponents(new ButtonBuilder()
136
+ .setCustomId(`perm:a:${pendingId}`)
137
+ .setLabel("Allow")
138
+ .setStyle(ButtonStyle.Success)
139
+ .setEmoji("✅"), new ButtonBuilder()
140
+ .setCustomId(`perm:d:${pendingId}`)
141
+ .setLabel("Deny")
142
+ .setStyle(ButtonStyle.Danger)
143
+ .setEmoji("❌"));
144
+ }
100
145
  setPending(pendingId, pp) {
101
146
  this.pending.set(pendingId, pp);
102
147
  const timer = setTimeout(() => this.clearPending(pendingId), EXPIRE_MS);
@@ -110,10 +155,4 @@ export class DiscordPermissionHandler {
110
155
  this.timers.delete(pendingId);
111
156
  }
112
157
  }
113
- async function injectResponse(tmuxBridge, tmuxTarget, allow) {
114
- const ready = await tmuxBridge.waitForTuiReady(tmuxTarget, 5000);
115
- if (!ready)
116
- throw new Error("TUI not ready");
117
- tmuxBridge.sendKeys(tmuxTarget, allow ? "y" : "n", ["Enter"]);
118
- }
119
158
  //# sourceMappingURL=discord-permission-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discord-permission-handler.js","sourceRoot":"","sources":["../../../src/channel/discord/discord-permission-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-permission-handler.js","sourceRoot":"","sources":["../../../src/channel/discord/discord-permission-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { TmuxBridge } from "../tmux/tmux-bridge.js";
2
+ export type PermissionAction = "allow" | "deny" | "plan-option";
3
+ export interface PermissionInjectionResult {
4
+ action: PermissionAction;
5
+ optionIndex?: number;
6
+ }
7
+ export declare function isExitPlanMode(toolName: string): boolean;
8
+ export declare function parsePermissionCallback(action: string): PermissionInjectionResult;
9
+ export declare class PermissionTuiInjector {
10
+ private tmuxBridge;
11
+ constructor(tmuxBridge: TmuxBridge);
12
+ extractPlanOptions(tmuxTarget: string): string[];
13
+ inject(tmuxTarget: string, result: PermissionInjectionResult): Promise<void>;
14
+ private injectOptionSelect;
15
+ private delay;
16
+ }
@@ -0,0 +1,65 @@
1
+ const KEY_DELAY_MS = 80;
2
+ const MAX_PLAN_OPTION_INDEX = 2;
3
+ const PLAN_OPTION_PATTERN = /^\s*[❯►>\s]*(Yes,\s*.+)$/;
4
+ const FALLBACK_LABELS = [
5
+ "Yes, clear context and bypass permissions",
6
+ "Yes, and bypass permissions",
7
+ "Yes, manually approve edits",
8
+ ];
9
+ export function isExitPlanMode(toolName) {
10
+ return toolName === "ExitPlanMode";
11
+ }
12
+ export function parsePermissionCallback(action) {
13
+ if (action.startsWith("e")) {
14
+ const idx = parseInt(action[1], 10);
15
+ const clamped = Number.isNaN(idx) ? 0 : Math.min(Math.max(idx, 0), MAX_PLAN_OPTION_INDEX);
16
+ return { action: "plan-option", optionIndex: clamped };
17
+ }
18
+ return { action: action === "a" ? "allow" : "deny" };
19
+ }
20
+ export class PermissionTuiInjector {
21
+ tmuxBridge;
22
+ constructor(tmuxBridge) {
23
+ this.tmuxBridge = tmuxBridge;
24
+ }
25
+ extractPlanOptions(tmuxTarget) {
26
+ try {
27
+ const content = this.tmuxBridge.capturePane(tmuxTarget, 20);
28
+ const options = [];
29
+ for (const line of content.split("\n")) {
30
+ const match = PLAN_OPTION_PATTERN.exec(line);
31
+ if (match)
32
+ options.push(match[1].trim());
33
+ }
34
+ if (options.length >= 3)
35
+ return options.slice(0, 3);
36
+ }
37
+ catch {
38
+ /* pane capture failed — use fallback */
39
+ }
40
+ return [...FALLBACK_LABELS];
41
+ }
42
+ async inject(tmuxTarget, result) {
43
+ const ready = await this.tmuxBridge.waitForTuiReady(tmuxTarget, 5000);
44
+ if (!ready)
45
+ throw new Error("TUI not ready");
46
+ if (result.action === "plan-option") {
47
+ await this.injectOptionSelect(tmuxTarget, result.optionIndex ?? 0);
48
+ }
49
+ else {
50
+ this.tmuxBridge.sendKeys(tmuxTarget, result.action === "allow" ? "y" : "n", ["Enter"]);
51
+ }
52
+ }
53
+ async injectOptionSelect(tmuxTarget, optionIndex) {
54
+ for (let i = 0; i < optionIndex; i++) {
55
+ this.tmuxBridge.sendSpecialKey(tmuxTarget, "Down");
56
+ await this.delay(KEY_DELAY_MS);
57
+ }
58
+ await this.delay(KEY_DELAY_MS);
59
+ this.tmuxBridge.sendSpecialKey(tmuxTarget, "Enter");
60
+ }
61
+ delay(ms) {
62
+ return new Promise((resolve) => setTimeout(resolve, ms));
63
+ }
64
+ }
65
+ //# sourceMappingURL=permission-tui-injector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-tui-injector.js","sourceRoot":"","sources":["../../src/channel/permission-tui-injector.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,18 @@ export function summarizeTool(toolName, input) {
16
16
  : toolName;
17
17
  case "Agent":
18
18
  return typeof input.description === "string" ? truncate(input.description, 80) : toolName;
19
+ case "ExitPlanMode": {
20
+ const prompts = input.allowedPrompts;
21
+ if (Array.isArray(prompts) && prompts.length > 0) {
22
+ return prompts
23
+ .map((p) => {
24
+ const obj = p;
25
+ return `${obj.tool}: ${obj.prompt}`;
26
+ })
27
+ .join(", ");
28
+ }
29
+ return "Plan approval";
30
+ }
19
31
  default:
20
32
  return toolName;
21
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"summarize-tool.js","sourceRoot":"","sources":["../../src/channel/summarize-tool.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,KAA8B;IAC5E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrF,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;gBACxC,CAAC,CAAC,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAC9B,CAAC,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;wBACjC,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,QAAQ,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5F;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAW;IAC/C,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"summarize-tool.js","sourceRoot":"","sources":["../../src/channel/summarize-tool.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,KAA8B;IAC5E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrF,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;gBACxC,CAAC,CAAC,KAAK,CAAC,SAAS;gBACjB,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAC9B,CAAC,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;wBACjC,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,QAAQ,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5F,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,OAAO;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACT,MAAM,GAAG,GAAG,CAA2B,CAAC;oBACxC,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtC,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;QACD;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAW;IAC/C,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACjE,CAAC"}