botmux 2.95.0 → 2.96.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.
Files changed (175) hide show
  1. package/README.en.md +4 -4
  2. package/README.md +3 -3
  3. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/tmux-backend.js +6 -10
  5. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  6. package/dist/adapters/cli/kimi.d.ts +4 -0
  7. package/dist/adapters/cli/kimi.d.ts.map +1 -0
  8. package/dist/adapters/cli/kimi.js +54 -0
  9. package/dist/adapters/cli/kimi.js.map +1 -0
  10. package/dist/adapters/cli/registry.d.ts +2 -1
  11. package/dist/adapters/cli/registry.d.ts.map +1 -1
  12. package/dist/adapters/cli/registry.js +6 -20
  13. package/dist/adapters/cli/registry.js.map +1 -1
  14. package/dist/adapters/cli/types.d.ts +1 -1
  15. package/dist/adapters/cli/types.d.ts.map +1 -1
  16. package/dist/adapters/hook-installer.d.ts.map +1 -1
  17. package/dist/adapters/hook-installer.js +138 -28
  18. package/dist/adapters/hook-installer.js.map +1 -1
  19. package/dist/bot-registry.d.ts +61 -4
  20. package/dist/bot-registry.d.ts.map +1 -1
  21. package/dist/bot-registry.js +164 -3
  22. package/dist/bot-registry.js.map +1 -1
  23. package/dist/cli/stdin-encoding.d.ts +21 -0
  24. package/dist/cli/stdin-encoding.d.ts.map +1 -1
  25. package/dist/cli/stdin-encoding.js +37 -0
  26. package/dist/cli/stdin-encoding.js.map +1 -1
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +14 -4
  29. package/dist/cli.js.map +1 -1
  30. package/dist/config.d.ts +18 -0
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +27 -0
  33. package/dist/config.js.map +1 -1
  34. package/dist/core/ask-hook/opencode.d.ts +15 -17
  35. package/dist/core/ask-hook/opencode.d.ts.map +1 -1
  36. package/dist/core/ask-hook/opencode.js +17 -19
  37. package/dist/core/ask-hook/opencode.js.map +1 -1
  38. package/dist/core/command-handler.d.ts.map +1 -1
  39. package/dist/core/command-handler.js +1 -0
  40. package/dist/core/command-handler.js.map +1 -1
  41. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  42. package/dist/core/dashboard-ipc-server.js +193 -5
  43. package/dist/core/dashboard-ipc-server.js.map +1 -1
  44. package/dist/core/dashboard-rows.d.ts +2 -0
  45. package/dist/core/dashboard-rows.d.ts.map +1 -1
  46. package/dist/core/dashboard-rows.js +2 -0
  47. package/dist/core/dashboard-rows.js.map +1 -1
  48. package/dist/core/trigger-session.d.ts.map +1 -1
  49. package/dist/core/trigger-session.js +99 -7
  50. package/dist/core/trigger-session.js.map +1 -1
  51. package/dist/core/types.d.ts +16 -0
  52. package/dist/core/types.d.ts.map +1 -1
  53. package/dist/core/types.js.map +1 -1
  54. package/dist/core/worker-pool.d.ts +1 -1
  55. package/dist/core/worker-pool.d.ts.map +1 -1
  56. package/dist/core/worker-pool.js +68 -11
  57. package/dist/core/worker-pool.js.map +1 -1
  58. package/dist/dashboard/bot-payload.d.ts +7 -0
  59. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  60. package/dist/dashboard/bot-payload.js +7 -1
  61. package/dist/dashboard/bot-payload.js.map +1 -1
  62. package/dist/dashboard/session-cleanup.d.ts +1 -0
  63. package/dist/dashboard/session-cleanup.d.ts.map +1 -1
  64. package/dist/dashboard/session-cleanup.js +2 -0
  65. package/dist/dashboard/session-cleanup.js.map +1 -1
  66. package/dist/dashboard/settings-write-applier.d.ts +2 -1
  67. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  68. package/dist/dashboard/settings-write-applier.js +6 -0
  69. package/dist/dashboard/settings-write-applier.js.map +1 -1
  70. package/dist/dashboard/trigger-api.d.ts +4 -0
  71. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  72. package/dist/dashboard/trigger-api.js +20 -0
  73. package/dist/dashboard/trigger-api.js.map +1 -1
  74. package/dist/dashboard/web/bot-defaults.d.ts +1 -0
  75. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  76. package/dist/dashboard/web/bot-defaults.js +247 -4
  77. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  78. package/dist/dashboard/web/connectors.d.ts +11 -0
  79. package/dist/dashboard/web/connectors.d.ts.map +1 -1
  80. package/dist/dashboard/web/connectors.js +45 -1
  81. package/dist/dashboard/web/connectors.js.map +1 -1
  82. package/dist/dashboard/web/groups.d.ts +7 -0
  83. package/dist/dashboard/web/groups.d.ts.map +1 -1
  84. package/dist/dashboard/web/groups.js +62 -15
  85. package/dist/dashboard/web/groups.js.map +1 -1
  86. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  87. package/dist/dashboard/web/i18n.js +58 -2
  88. package/dist/dashboard/web/i18n.js.map +1 -1
  89. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  90. package/dist/dashboard/web/sessions.js +149 -5
  91. package/dist/dashboard/web/sessions.js.map +1 -1
  92. package/dist/dashboard/web/settings.d.ts.map +1 -1
  93. package/dist/dashboard/web/settings.js +10 -0
  94. package/dist/dashboard/web/settings.js.map +1 -1
  95. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  96. package/dist/dashboard/webhook-routes.js +126 -6
  97. package/dist/dashboard/webhook-routes.js.map +1 -1
  98. package/dist/dashboard-web/app.js +827 -751
  99. package/dist/dashboard-web/style.css +47 -0
  100. package/dist/dashboard.js +85 -6
  101. package/dist/dashboard.js.map +1 -1
  102. package/dist/global-config.d.ts +4 -0
  103. package/dist/global-config.d.ts.map +1 -1
  104. package/dist/global-config.js +2 -0
  105. package/dist/global-config.js.map +1 -1
  106. package/dist/i18n/en.d.ts.map +1 -1
  107. package/dist/i18n/en.js +1 -0
  108. package/dist/i18n/en.js.map +1 -1
  109. package/dist/i18n/zh.d.ts.map +1 -1
  110. package/dist/i18n/zh.js +1 -0
  111. package/dist/i18n/zh.js.map +1 -1
  112. package/dist/im/lark/card-builder.d.ts.map +1 -1
  113. package/dist/im/lark/card-builder.js +1 -0
  114. package/dist/im/lark/card-builder.js.map +1 -1
  115. package/dist/im/lark/client.d.ts +12 -0
  116. package/dist/im/lark/client.d.ts.map +1 -1
  117. package/dist/im/lark/client.js +154 -9
  118. package/dist/im/lark/client.js.map +1 -1
  119. package/dist/im/lark/event-dispatcher.d.ts +13 -0
  120. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  121. package/dist/im/lark/event-dispatcher.js +200 -16
  122. package/dist/im/lark/event-dispatcher.js.map +1 -1
  123. package/dist/im/lark/message-parser.d.ts +11 -0
  124. package/dist/im/lark/message-parser.d.ts.map +1 -1
  125. package/dist/im/lark/message-parser.js +2 -1
  126. package/dist/im/lark/message-parser.js.map +1 -1
  127. package/dist/im/lark/summary-command.d.ts +19 -0
  128. package/dist/im/lark/summary-command.d.ts.map +1 -0
  129. package/dist/im/lark/summary-command.js +276 -0
  130. package/dist/im/lark/summary-command.js.map +1 -0
  131. package/dist/mir-local-runtime.d.ts +40 -0
  132. package/dist/mir-local-runtime.d.ts.map +1 -1
  133. package/dist/mir-local-runtime.js +246 -52
  134. package/dist/mir-local-runtime.js.map +1 -1
  135. package/dist/mir-runner.js +26 -1
  136. package/dist/mir-runner.js.map +1 -1
  137. package/dist/services/card-prefs-store.d.ts +2 -2
  138. package/dist/services/card-prefs-store.d.ts.map +1 -1
  139. package/dist/services/card-prefs-store.js +5 -5
  140. package/dist/services/card-prefs-store.js.map +1 -1
  141. package/dist/services/chat-reply-mode-store.d.ts +6 -4
  142. package/dist/services/chat-reply-mode-store.d.ts.map +1 -1
  143. package/dist/services/chat-reply-mode-store.js +6 -4
  144. package/dist/services/chat-reply-mode-store.js.map +1 -1
  145. package/dist/services/pi-transcript.d.ts +19 -0
  146. package/dist/services/pi-transcript.d.ts.map +1 -0
  147. package/dist/services/pi-transcript.js +222 -0
  148. package/dist/services/pi-transcript.js.map +1 -0
  149. package/dist/services/seen-message-store.d.ts +12 -0
  150. package/dist/services/seen-message-store.d.ts.map +1 -0
  151. package/dist/services/seen-message-store.js +119 -0
  152. package/dist/services/seen-message-store.js.map +1 -0
  153. package/dist/services/summary-range-store.d.ts +21 -0
  154. package/dist/services/summary-range-store.d.ts.map +1 -0
  155. package/dist/services/summary-range-store.js +89 -0
  156. package/dist/services/summary-range-store.js.map +1 -0
  157. package/dist/services/trigger-types.d.ts +14 -2
  158. package/dist/services/trigger-types.d.ts.map +1 -1
  159. package/dist/services/trigger-types.js +15 -1
  160. package/dist/services/trigger-types.js.map +1 -1
  161. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  162. package/dist/setup/bot-config-editor.js +2 -0
  163. package/dist/setup/bot-config-editor.js.map +1 -1
  164. package/dist/types.d.ts +20 -1
  165. package/dist/types.d.ts.map +1 -1
  166. package/dist/utils/executable.d.ts +3 -0
  167. package/dist/utils/executable.d.ts.map +1 -0
  168. package/dist/utils/executable.js +24 -0
  169. package/dist/utils/executable.js.map +1 -0
  170. package/dist/worker.js +75 -6
  171. package/dist/worker.js.map +1 -1
  172. package/dist/workflows/definition.d.ts +8 -8
  173. package/dist/workflows/events/payloads.d.ts +10 -10
  174. package/dist/workflows/events/schema.d.ts +28 -28
  175. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -1,6 +1,23 @@
1
1
  import type { BackendType } from './adapters/backend/types.js';
2
2
  export declare function getWebExternalHost(): string;
3
3
  export declare function getDashboardExternalHost(): string;
4
+ export interface ChatBotDiscoveryConfig {
5
+ listBotsApiEnabled: boolean;
6
+ listBotsApiTimeoutMs: number;
7
+ }
8
+ /**
9
+ * Current-chat bot discovery via Lark `/members/bots`.
10
+ *
11
+ * Enabled by default; the dashboard Settings toggle persists the choice in
12
+ * `~/.botmux/config.json` (`dashboard.chatBotDiscovery`). An explicit
13
+ * `BOTMUX_LARK_LIST_BOTS_API_ENABLED` env var still overrides the persisted
14
+ * value — the worker injects it into child panes so `botmux bots list` matches
15
+ * the daemon's `<available_bots>`, and it doubles as an escape hatch.
16
+ *
17
+ * The endpoint is not public API, so every caller must keep the legacy
18
+ * discovery path as fallback.
19
+ */
20
+ export declare function resolveChatBotDiscoveryConfig(env?: NodeJS.ProcessEnv): ChatBotDiscoveryConfig;
4
21
  export declare const config: {
5
22
  lark: {
6
23
  appId: string;
@@ -90,6 +107,7 @@ export declare const config: {
90
107
  /** Extra body params for the API request (JSON string). */
91
108
  extraBody: Record<string, unknown>;
92
109
  };
110
+ readonly chatBotDiscovery: ChatBotDiscoveryConfig;
93
111
  };
94
112
  export type Config = typeof config;
95
113
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAkB/D,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAuBD,eAAO,MAAM,MAAM;;;;;;iBAUI,MAAM;;;QAGzB;;;4CAGoC;;;;eAIY,OAAO,yBAAyB,EAAE,KAAK;;qBAElB,WAAW;QAChF;;;;;6CAKqC;;;;;;;;;;;;;;;;;;;QAuCrC;;;;;;;;;;sEAU8D;;;;;;;;QAQ9D,sCAAsC;;QAEtC,iEAAiE;;QAEjE,2CAA2C;;QAE3C,mFAAmF;sBAI3E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,mGAAmG;mBAI3F,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;QAG/B;;;;;WAKG;;;;;;QAMH,uDAAuD;sBAI/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,2DAA2D;mBAInD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;CAElC,CAAC;AAGF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAuBD,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,sBAAsB,CAU1G;AAED,eAAO,MAAM,MAAM;;;;;;iBAUI,MAAM;;;QAGzB;;;4CAGoC;;;;eAIY,OAAO,yBAAyB,EAAE,KAAK;;qBAElB,WAAW;QAChF;;;;;6CAKqC;;;;;;;;;;;;;;;;;;;QAuCrC;;;;;;;;;;sEAU8D;;;;;;;;QAQ9D,sCAAsC;;QAEtC,iEAAiE;;QAEjE,2CAA2C;;QAE3C,mFAAmF;sBAI3E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,mGAAmG;mBAI3F,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;QAG/B;;;;;WAKG;;;;;;QAMH,uDAAuD;sBAI/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,2DAA2D;mBAInD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;CAMlC,CAAC;AAGF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
package/dist/config.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { networkInterfaces } from 'node:os';
2
2
  import { probeTmuxFunctional } from './setup/ensure-tmux.js';
3
3
  import { resolveWorkerHttpHost } from './utils/worker-http.js';
4
+ import { readGlobalConfig } from './global-config.js';
4
5
  /** Get the first non-loopback IPv4 address, fallback to localhost. */
5
6
  function getLocalIp() {
6
7
  for (const addrs of Object.values(networkInterfaces())) {
@@ -38,6 +39,28 @@ function detectDefaultBackend() {
38
39
  // readers (resolveTeamRoleFile / getBotCapability / …) silently look in the
39
40
  // wrong directory. Mirrors the web/dashboard externalHost getters below.
40
41
  const packagedDataDir = new URL('../data', import.meta.url).pathname;
42
+ /**
43
+ * Current-chat bot discovery via Lark `/members/bots`.
44
+ *
45
+ * Enabled by default; the dashboard Settings toggle persists the choice in
46
+ * `~/.botmux/config.json` (`dashboard.chatBotDiscovery`). An explicit
47
+ * `BOTMUX_LARK_LIST_BOTS_API_ENABLED` env var still overrides the persisted
48
+ * value — the worker injects it into child panes so `botmux bots list` matches
49
+ * the daemon's `<available_bots>`, and it doubles as an escape hatch.
50
+ *
51
+ * The endpoint is not public API, so every caller must keep the legacy
52
+ * discovery path as fallback.
53
+ */
54
+ export function resolveChatBotDiscoveryConfig(env = process.env) {
55
+ const envFlag = env.BOTMUX_LARK_LIST_BOTS_API_ENABLED;
56
+ const listBotsApiEnabled = envFlag != null && envFlag !== ''
57
+ ? envFlag.toLowerCase() === 'true'
58
+ : readGlobalConfig().dashboard?.chatBotDiscovery !== false; // default ON
59
+ return {
60
+ listBotsApiEnabled,
61
+ listBotsApiTimeoutMs: Number(env.BOTMUX_LARK_LIST_BOTS_API_TIMEOUT_MS) || 3_000,
62
+ };
63
+ }
41
64
  export const config = {
42
65
  lark: {
43
66
  appId: process.env.LARK_APP_ID ?? '',
@@ -179,5 +202,9 @@ export const config = {
179
202
  }
180
203
  })(),
181
204
  },
205
+ // Live getter: re-reads the dashboard toggle (~/.botmux/config.json, 2s
206
+ // cached) on each access so a Settings change takes effect without a daemon
207
+ // restart. The daemon's listChatBotMembers reads this per call.
208
+ get chatBotDiscovery() { return resolveChatBotDiscoveryConfig(); },
182
209
  };
183
210
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,sEAAsE;AACtE,SAAS,UAAU;IACjB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAChE,MAAM,+BAA+B,GACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAE9E,MAAM,UAAU,kBAAkB;IAChC,OAAO,yBAAyB,IAAI,UAAU,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,+BAA+B,IAAI,UAAU,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB;IAC3B,OAAO,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,iDAAiD;AACjD,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAErE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QACpC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC7C;IACD,OAAO,EAAE;QACP,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC;QACzE,gEAAgE;QAChE,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,OAAO,CAAC,KAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC;KACrE;IACD,IAAI,EAAE;QACJ;;;4CAGoC;QACpC,sBAAsB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;KAC1G;IACD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,CAA4C;QACvF,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;QACrC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB,EAAE,CAAgB;QAChF;;;;;6CAKqC;QACrC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACvF,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;QAC1F,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;QACpG,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3F,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KAC9F;IACD,GAAG,EAAE;QACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS;QACvC,UAAU,EAAE,qBAAqB,EAAE;QACnC,IAAI,YAAY,KAAK,OAAO,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACnD,uEAAuE;QACvE,2EAA2E;QAC3E,gFAAgF;QAChF,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,8EAA8E;QAC9E,8EAA8E;QAC9E,kEAAkE;QAClE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;KACzD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;QACpD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI;QACvD,IAAI,YAAY,KAAK,OAAO,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACzD,8EAA8E;QAC9E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,+EAA+E;QAC/E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,oDAAoD;QACpD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI;QACpE;;;;;;;;;;sEAU8D;QAC9D,cAAc,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;KACnG;IACD,cAAc,EAAE;QACd,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAC7E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QACnD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;QACjD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QAC9C,sCAAsC;QACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,KAAK;QACpE,iEAAiE;QACjE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAClE,2CAA2C;QAC3C,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,KAAK;QACjF,mFAAmF;QACnF,YAAY,EAAE,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAC7E,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA4B;QAC9B,mGAAmG;QACnG,SAAS,EAAE,CAAC,GAAG,EAAE;YACf,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAC1E,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA6B;KAChC;IACD,cAAc,EAAE;QACd;;;;;WAKG;QACH,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QACrF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE;QAC3D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;QACzD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE;QACtD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,KAAK;QAC1E,uDAAuD;QACvD,YAAY,EAAE,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YACrF,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA4B;QAC9B,2DAA2D;QAC3D,SAAS,EAAE,CAAC,GAAG,EAAE;YACf,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAClF,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA6B;KAChC;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sEAAsE;AACtE,SAAS,UAAU;IACjB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAChE,MAAM,+BAA+B,GACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAE9E,MAAM,UAAU,kBAAkB;IAChC,OAAO,yBAAyB,IAAI,UAAU,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,+BAA+B,IAAI,UAAU,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB;IAC3B,OAAO,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,iDAAiD;AACjD,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAOrE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChF,MAAM,OAAO,GAAG,GAAG,CAAC,iCAAiC,CAAC;IACtD,MAAM,kBAAkB,GACtB,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE;QAC/B,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM;QAClC,CAAC,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,aAAa;IAC7E,OAAO;QACL,kBAAkB;QAClB,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,KAAK;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QACpC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC7C;IACD,OAAO,EAAE;QACP,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC;QACzE,gEAAgE;QAChE,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,OAAO,CAAC,KAAa,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC;KACrE;IACD,IAAI,EAAE;QACJ;;;4CAGoC;QACpC,sBAAsB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;KAC1G;IACD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,CAA4C;QACvF,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;QACrC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB,EAAE,CAAgB;QAChF;;;;;6CAKqC;QACrC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACvF,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;QAC1F,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;QACpG,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3F,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KAC9F;IACD,GAAG,EAAE;QACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS;QACvC,UAAU,EAAE,qBAAqB,EAAE;QACnC,IAAI,YAAY,KAAK,OAAO,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACnD,uEAAuE;QACvE,2EAA2E;QAC3E,gFAAgF;QAChF,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,8EAA8E;QAC9E,8EAA8E;QAC9E,kEAAkE;QAClE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;KACzD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;QACpD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI;QACvD,IAAI,YAAY,KAAK,OAAO,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACzD,8EAA8E;QAC9E,4EAA4E;QAC5E,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,+EAA+E;QAC/E,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,oDAAoD;QACpD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI;QACpE;;;;;;;;;;sEAU8D;QAC9D,cAAc,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;KACnG;IACD,cAAc,EAAE;QACd,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAC7E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QACnD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;QACjD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;QAC9C,sCAAsC;QACtC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,KAAK;QACpE,iEAAiE;QACjE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAClE,2CAA2C;QAC3C,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,KAAK;QACjF,mFAAmF;QACnF,YAAY,EAAE,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAC7E,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA4B;QAC9B,mGAAmG;QACnG,SAAS,EAAE,CAAC,GAAG,EAAE;YACf,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAC1E,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA6B;KAChC;IACD,cAAc,EAAE;QACd;;;;;WAKG;QACH,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QACrF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE;QAC3D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE;QACzD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE;QACtD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,KAAK;QAC1E,uDAAuD;QACvD,YAAY,EAAE,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YACrF,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA4B;QAC9B,2DAA2D;QAC3D,SAAS,EAAE,CAAC,GAAG,EAAE;YACf,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,IAAI,CAAC,CAAC;YAAC,CAAC;YAClF,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtB,CAAC,CAAC,EAA6B;KAChC;IACD,wEAAwE;IACxE,4EAA4E;IAC5E,gEAAgE;IAChE,IAAI,gBAAgB,KAAK,OAAO,6BAA6B,EAAE,CAAC,CAAC,CAAC;CACnE,CAAC"}
@@ -1,39 +1,37 @@
1
1
  /**
2
2
  * OpenCode hook adapter。
3
3
  *
4
- * OpenCode 通过 QuestionAsked 事件发起提问,payload 形状:
4
+ * OpenCode 自带原生 `question` 工具(= Claude AskUserQuestion 等价物),模型调用时服务端
5
+ * 发布 `question.asked` 事件并阻塞,等客户端把答案 POST 回 `/question/{id}/reply` 才解阻塞。
6
+ * botmux 的 OpenCode 插件(见 hook-installer.ts buildOpenCodePlugin)用 `event` 钩子拦截该
7
+ * 事件,把 questions 规范成下面这个 payload 喂给 `botmux hook opencode`,拿到 directive 里的
8
+ * `answers` 后再 POST 回 OpenCode:
5
9
  * {
6
- * hook_event_name: 'QuestionAsked',
7
- * session_id: 'opencode-<id>',
8
- * question_id: '<id>', // 同 _opencode_request_id
9
- * question_text: '问题文本(拍平版本)',
10
+ * hook_event_name: 'question.asked',
11
+ * question_id: 'que_<id>',
12
+ * session_id: 'ses_<id>',
10
13
  * tool_input: {
11
14
  * questions: [
12
15
  * {
13
16
  * question: '问题文本',
14
17
  * header: '可选标题',
15
18
  * options: [{ label: '选项文本', description?: '描述' }, ...],
16
- * multiple: boolean,
19
+ * multiple?: boolean,
17
20
  * }
18
21
  * ]
19
22
  * },
20
- * _opencode_request_id: '<id>',
21
23
  * }
22
24
  *
23
- * OpenCode 期望的 answer directive 形状(发往 /question/:id/reply):
25
+ * formatAnswer 返回的 directive 形状(插件取其中的 `answers` 作为 reply body):
24
26
  * { type: 'answer', answers: string[][] }
25
27
  * 其中 answers[i] = 第 i 个问题选中的 label 数组;跳过的 question 填 ['']。
28
+ * (自由文本作答即把该文字当作选中的 label —— OpenCode question 默认 custom:true 允许任意串。)
26
29
  *
27
- * 若没有结构化 questions(旧版兼容路径),改用:
28
- * { type: 'answer', text: '自由文本' }
30
+ * passthrough(放行)= 空字符串:插件见 stdout 为空 → 不 reply,把问题留给 OpenCode
31
+ * 原生 picker(botmux web 终端里仍可人工作答)。绝不用空答案顶替这次提问。
29
32
  *
30
- * passthrough(放行)directive 形状:
31
- * { type: 'answer', answers: [['']] }
32
- * (每条 question 填空哨兵 [''],让 OpenCode plugin 视为"未答"并继续)
33
- *
34
- * 参考来源:x-desktop-app/src/island/main/bridge/adapters/OpenCodeAdapter.ts
35
- * x-desktop-app/src/island/main/bridge/BridgeServer.ts buildOpenCodeAnswerDirective
36
- * x-desktop-app/src/island/hooks-install/opencode.ts postQuestionReply
33
+ * 机制已在 OpenCode 1.17.x 端到端实测确认(事件名 `question.asked`、reply 端点
34
+ * `POST /question/{id}/reply`、body `{ answers }`)。
37
35
  */
38
36
  import type { HookAskAdapter } from './types.js';
39
37
  declare const openCodeAdapter: HookAskAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/core/ask-hook/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAE5D,QAAA,MAAM,eAAe,EAAE,cA4FtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/core/ask-hook/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAE5D,QAAA,MAAM,eAAe,EAAE,cA4FtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,47 +1,45 @@
1
1
  /**
2
2
  * OpenCode hook adapter。
3
3
  *
4
- * OpenCode 通过 QuestionAsked 事件发起提问,payload 形状:
4
+ * OpenCode 自带原生 `question` 工具(= Claude AskUserQuestion 等价物),模型调用时服务端
5
+ * 发布 `question.asked` 事件并阻塞,等客户端把答案 POST 回 `/question/{id}/reply` 才解阻塞。
6
+ * botmux 的 OpenCode 插件(见 hook-installer.ts buildOpenCodePlugin)用 `event` 钩子拦截该
7
+ * 事件,把 questions 规范成下面这个 payload 喂给 `botmux hook opencode`,拿到 directive 里的
8
+ * `answers` 后再 POST 回 OpenCode:
5
9
  * {
6
- * hook_event_name: 'QuestionAsked',
7
- * session_id: 'opencode-<id>',
8
- * question_id: '<id>', // 同 _opencode_request_id
9
- * question_text: '问题文本(拍平版本)',
10
+ * hook_event_name: 'question.asked',
11
+ * question_id: 'que_<id>',
12
+ * session_id: 'ses_<id>',
10
13
  * tool_input: {
11
14
  * questions: [
12
15
  * {
13
16
  * question: '问题文本',
14
17
  * header: '可选标题',
15
18
  * options: [{ label: '选项文本', description?: '描述' }, ...],
16
- * multiple: boolean,
19
+ * multiple?: boolean,
17
20
  * }
18
21
  * ]
19
22
  * },
20
- * _opencode_request_id: '<id>',
21
23
  * }
22
24
  *
23
- * OpenCode 期望的 answer directive 形状(发往 /question/:id/reply):
25
+ * formatAnswer 返回的 directive 形状(插件取其中的 `answers` 作为 reply body):
24
26
  * { type: 'answer', answers: string[][] }
25
27
  * 其中 answers[i] = 第 i 个问题选中的 label 数组;跳过的 question 填 ['']。
28
+ * (自由文本作答即把该文字当作选中的 label —— OpenCode question 默认 custom:true 允许任意串。)
26
29
  *
27
- * 若没有结构化 questions(旧版兼容路径),改用:
28
- * { type: 'answer', text: '自由文本' }
30
+ * passthrough(放行)= 空字符串:插件见 stdout 为空 → 不 reply,把问题留给 OpenCode
31
+ * 原生 picker(botmux web 终端里仍可人工作答)。绝不用空答案顶替这次提问。
29
32
  *
30
- * passthrough(放行)directive 形状:
31
- * { type: 'answer', answers: [['']] }
32
- * (每条 question 填空哨兵 [''],让 OpenCode plugin 视为"未答"并继续)
33
- *
34
- * 参考来源:x-desktop-app/src/island/main/bridge/adapters/OpenCodeAdapter.ts
35
- * x-desktop-app/src/island/main/bridge/BridgeServer.ts buildOpenCodeAnswerDirective
36
- * x-desktop-app/src/island/hooks-install/opencode.ts postQuestionReply
33
+ * 机制已在 OpenCode 1.17.x 端到端实测确认(事件名 `question.asked`、reply 端点
34
+ * `POST /question/{id}/reply`、body `{ answers }`)。
37
35
  */
38
36
  const openCodeAdapter = {
39
37
  parseQuestions(payload) {
40
38
  if (!payload || typeof payload !== 'object')
41
39
  return null;
42
40
  const p = payload;
43
- // 只处理 QuestionAsked 事件
44
- if (p.hook_event_name !== 'QuestionAsked')
41
+ // 只处理 question.asked 事件(OpenCode 原生 question 工具触发,由插件规范后转发)
42
+ if (p.hook_event_name !== 'question.asked')
45
43
  return null;
46
44
  // 尝试从结构化 tool_input.questions 解析
47
45
  const toolInput = p.tool_input;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/core/ask-hook/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/core/ask-hook/opencode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"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"}
@@ -2640,6 +2640,7 @@ export async function handleCommand(cmd, rootId, message, deps, larkAppId) {
2640
2640
  t('help.insight', undefined, loc),
2641
2641
  t('help.land', undefined, loc),
2642
2642
  t('help.subscribe_doc', undefined, loc),
2643
+ t('help.summary', undefined, loc),
2643
2644
  '',
2644
2645
  t('help.heading_passthrough', { cliName }, loc),
2645
2646
  // 展示当前 bot 实际生效的透传集合:固定白名单 + adapter 默认 + 有效自定义项。