botmux 2.98.4-canary.2 → 2.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/README.en.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/adapters/cli/genius.d.ts +4 -0
  4. package/dist/adapters/cli/genius.d.ts.map +1 -0
  5. package/dist/adapters/cli/genius.js +216 -0
  6. package/dist/adapters/cli/genius.js.map +1 -0
  7. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  8. package/dist/adapters/cli/opencode.js +241 -13
  9. package/dist/adapters/cli/opencode.js.map +1 -1
  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 +3 -1
  13. package/dist/adapters/cli/registry.js.map +1 -1
  14. package/dist/adapters/cli/traex.d.ts.map +1 -1
  15. package/dist/adapters/cli/traex.js +8 -6
  16. package/dist/adapters/cli/traex.js.map +1 -1
  17. package/dist/adapters/cli/types.d.ts +11 -4
  18. package/dist/adapters/cli/types.d.ts.map +1 -1
  19. package/dist/core/dashboard-rows.d.ts +1 -1
  20. package/dist/core/dashboard-rows.d.ts.map +1 -1
  21. package/dist/core/dashboard-rows.js +2 -1
  22. package/dist/core/dashboard-rows.js.map +1 -1
  23. package/dist/dashboard/session-card-model.d.ts +2 -2
  24. package/dist/dashboard/session-card-model.d.ts.map +1 -1
  25. package/dist/dashboard/session-card-model.js +5 -2
  26. package/dist/dashboard/session-card-model.js.map +1 -1
  27. package/dist/dashboard/web/app.d.ts.map +1 -1
  28. package/dist/dashboard/web/app.js +28 -63
  29. package/dist/dashboard/web/app.js.map +1 -1
  30. package/dist/dashboard/web/bot-defaults-page.d.ts +3 -0
  31. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -0
  32. package/dist/dashboard/web/bot-defaults-page.js +23 -0
  33. package/dist/dashboard/web/bot-defaults-page.js.map +1 -0
  34. package/dist/dashboard/web/bot-defaults.d.ts +2 -1
  35. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  36. package/dist/dashboard/web/bot-defaults.js +30 -30
  37. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  38. package/dist/dashboard/web/connectors-page.d.ts +14 -0
  39. package/dist/dashboard/web/connectors-page.d.ts.map +1 -0
  40. package/dist/dashboard/web/connectors-page.js +303 -0
  41. package/dist/dashboard/web/connectors-page.js.map +1 -0
  42. package/dist/dashboard/web/connectors.d.ts +1 -12
  43. package/dist/dashboard/web/connectors.d.ts.map +1 -1
  44. package/dist/dashboard/web/connectors.js +1 -325
  45. package/dist/dashboard/web/connectors.js.map +1 -1
  46. package/dist/dashboard/web/dashboard-routes.d.ts +14 -0
  47. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -0
  48. package/dist/dashboard/web/dashboard-routes.js +176 -0
  49. package/dist/dashboard/web/dashboard-routes.js.map +1 -0
  50. package/dist/dashboard/web/groups-page.d.ts +3 -0
  51. package/dist/dashboard/web/groups-page.d.ts.map +1 -0
  52. package/dist/dashboard/web/groups-page.js +26 -0
  53. package/dist/dashboard/web/groups-page.js.map +1 -0
  54. package/dist/dashboard/web/groups.d.ts +1 -1
  55. package/dist/dashboard/web/groups.d.ts.map +1 -1
  56. package/dist/dashboard/web/groups.js +113 -52
  57. package/dist/dashboard/web/groups.js.map +1 -1
  58. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  59. package/dist/dashboard/web/i18n.js +18 -0
  60. package/dist/dashboard/web/i18n.js.map +1 -1
  61. package/dist/dashboard/web/insights-page.d.ts +3 -0
  62. package/dist/dashboard/web/insights-page.d.ts.map +1 -0
  63. package/dist/dashboard/web/insights-page.js +26 -0
  64. package/dist/dashboard/web/insights-page.js.map +1 -0
  65. package/dist/dashboard/web/insights.d.ts +18 -1
  66. package/dist/dashboard/web/insights.d.ts.map +1 -1
  67. package/dist/dashboard/web/insights.js +25 -61
  68. package/dist/dashboard/web/insights.js.map +1 -1
  69. package/dist/dashboard/web/office-page.d.ts +3 -0
  70. package/dist/dashboard/web/office-page.d.ts.map +1 -0
  71. package/dist/dashboard/web/office-page.js +149 -0
  72. package/dist/dashboard/web/office-page.js.map +1 -0
  73. package/dist/dashboard/web/office.d.ts +1 -1
  74. package/dist/dashboard/web/office.d.ts.map +1 -1
  75. package/dist/dashboard/web/office.js +1 -139
  76. package/dist/dashboard/web/office.js.map +1 -1
  77. package/dist/dashboard/web/overview-page.d.ts +3 -0
  78. package/dist/dashboard/web/overview-page.d.ts.map +1 -0
  79. package/dist/dashboard/web/overview-page.js +149 -0
  80. package/dist/dashboard/web/overview-page.js.map +1 -0
  81. package/dist/dashboard/web/overview.d.ts +2 -2
  82. package/dist/dashboard/web/overview.d.ts.map +1 -1
  83. package/dist/dashboard/web/overview.js +14 -3
  84. package/dist/dashboard/web/overview.js.map +1 -1
  85. package/dist/dashboard/web/react-hooks.d.ts +8 -0
  86. package/dist/dashboard/web/react-hooks.d.ts.map +1 -0
  87. package/dist/dashboard/web/react-hooks.js +43 -0
  88. package/dist/dashboard/web/react-hooks.js.map +1 -0
  89. package/dist/dashboard/web/react-mount.d.ts +4 -0
  90. package/dist/dashboard/web/react-mount.d.ts.map +1 -0
  91. package/dist/dashboard/web/react-mount.js +7 -0
  92. package/dist/dashboard/web/react-mount.js.map +1 -0
  93. package/dist/dashboard/web/roles-page.d.ts +4 -0
  94. package/dist/dashboard/web/roles-page.d.ts.map +1 -0
  95. package/dist/dashboard/web/roles-page.js +26 -0
  96. package/dist/dashboard/web/roles-page.js.map +1 -0
  97. package/dist/dashboard/web/roles.d.ts +1 -2
  98. package/dist/dashboard/web/roles.d.ts.map +1 -1
  99. package/dist/dashboard/web/roles.js +189 -135
  100. package/dist/dashboard/web/roles.js.map +1 -1
  101. package/dist/dashboard/web/route-lifecycle.d.ts +14 -0
  102. package/dist/dashboard/web/route-lifecycle.d.ts.map +1 -0
  103. package/dist/dashboard/web/route-lifecycle.js +29 -0
  104. package/dist/dashboard/web/route-lifecycle.js.map +1 -0
  105. package/dist/dashboard/web/schedules-page.d.ts +14 -0
  106. package/dist/dashboard/web/schedules-page.d.ts.map +1 -0
  107. package/dist/dashboard/web/schedules-page.js +84 -0
  108. package/dist/dashboard/web/schedules-page.js.map +1 -0
  109. package/dist/dashboard/web/schedules.d.ts +1 -1
  110. package/dist/dashboard/web/schedules.d.ts.map +1 -1
  111. package/dist/dashboard/web/schedules.js +1 -115
  112. package/dist/dashboard/web/schedules.js.map +1 -1
  113. package/dist/dashboard/web/sessions-page.d.ts +3 -0
  114. package/dist/dashboard/web/sessions-page.d.ts.map +1 -0
  115. package/dist/dashboard/web/sessions-page.js +28 -0
  116. package/dist/dashboard/web/sessions-page.js.map +1 -0
  117. package/dist/dashboard/web/sessions.d.ts +4 -1
  118. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  119. package/dist/dashboard/web/sessions.js +43 -10
  120. package/dist/dashboard/web/sessions.js.map +1 -1
  121. package/dist/dashboard/web/settings-page.d.ts +3 -0
  122. package/dist/dashboard/web/settings-page.d.ts.map +1 -0
  123. package/dist/dashboard/web/settings-page.js +387 -0
  124. package/dist/dashboard/web/settings-page.js.map +1 -0
  125. package/dist/dashboard/web/settings.d.ts +1 -1
  126. package/dist/dashboard/web/settings.d.ts.map +1 -1
  127. package/dist/dashboard/web/settings.js +1 -534
  128. package/dist/dashboard/web/settings.js.map +1 -1
  129. package/dist/dashboard/web/skills-page.d.ts +33 -0
  130. package/dist/dashboard/web/skills-page.d.ts.map +1 -0
  131. package/dist/dashboard/web/skills-page.js +515 -0
  132. package/dist/dashboard/web/skills-page.js.map +1 -0
  133. package/dist/dashboard/web/skills.d.ts +1 -1
  134. package/dist/dashboard/web/skills.d.ts.map +1 -1
  135. package/dist/dashboard/web/skills.js +1 -711
  136. package/dist/dashboard/web/skills.js.map +1 -1
  137. package/dist/dashboard/web/store.d.ts +9 -0
  138. package/dist/dashboard/web/store.d.ts.map +1 -1
  139. package/dist/dashboard/web/store.js +19 -2
  140. package/dist/dashboard/web/store.js.map +1 -1
  141. package/dist/dashboard/web/team-federation-page.d.ts +4 -0
  142. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -0
  143. package/dist/dashboard/web/team-federation-page.js +47 -0
  144. package/dist/dashboard/web/team-federation-page.js.map +1 -0
  145. package/dist/dashboard/web/team-federation.d.ts +2 -2
  146. package/dist/dashboard/web/team-federation.d.ts.map +1 -1
  147. package/dist/dashboard/web/team-federation.js +104 -97
  148. package/dist/dashboard/web/team-federation.js.map +1 -1
  149. package/dist/dashboard/web/v3-page.d.ts +3 -0
  150. package/dist/dashboard/web/v3-page.d.ts.map +1 -0
  151. package/dist/dashboard/web/v3-page.js +27 -0
  152. package/dist/dashboard/web/v3-page.js.map +1 -0
  153. package/dist/dashboard/web/v3.d.ts +2 -1
  154. package/dist/dashboard/web/v3.d.ts.map +1 -1
  155. package/dist/dashboard/web/v3.js +18 -43
  156. package/dist/dashboard/web/v3.js.map +1 -1
  157. package/dist/dashboard/web/whiteboards-page.d.ts +3 -0
  158. package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -0
  159. package/dist/dashboard/web/whiteboards-page.js +203 -0
  160. package/dist/dashboard/web/whiteboards-page.js.map +1 -0
  161. package/dist/dashboard/web/whiteboards.d.ts +1 -1
  162. package/dist/dashboard/web/whiteboards.d.ts.map +1 -1
  163. package/dist/dashboard/web/whiteboards.js +1 -275
  164. package/dist/dashboard/web/whiteboards.js.map +1 -1
  165. package/dist/dashboard-web/app.js +36 -2550
  166. package/dist/dashboard-web/chunks/bot-defaults-page-3EV7K6LJ.js +358 -0
  167. package/dist/dashboard-web/chunks/chunk-5E3MJJL4.js +1 -0
  168. package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +1 -0
  169. package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +1 -0
  170. package/dist/dashboard-web/chunks/chunk-JTSE5VP6.js +54 -0
  171. package/dist/dashboard-web/chunks/chunk-JXLHRRJD.js +31 -0
  172. package/dist/dashboard-web/chunks/chunk-NASYW5FD.js +1 -0
  173. package/dist/dashboard-web/chunks/connectors-XPZKEHF6.js +1 -0
  174. package/dist/dashboard-web/chunks/groups-page-C54PVKYP.js +207 -0
  175. package/dist/dashboard-web/chunks/insights-page-BBQYR7WY.js +309 -0
  176. package/dist/dashboard-web/chunks/office-page-6DXYOG55.js +1 -0
  177. package/dist/dashboard-web/chunks/overview-page-5PJCAMID.js +1 -0
  178. package/dist/dashboard-web/chunks/roles-page-APUDLPVM.js +98 -0
  179. package/dist/dashboard-web/chunks/schedules-WG2UKHSO.js +1 -0
  180. package/dist/dashboard-web/chunks/sessions-page-F3U5NFPD.js +238 -0
  181. package/dist/dashboard-web/chunks/settings-page-OSBZNCXL.js +2 -0
  182. package/dist/dashboard-web/chunks/skills-page-Y3VUAOYG.js +2 -0
  183. package/dist/dashboard-web/chunks/team-federation-page-CRH3WZPH.js +10 -0
  184. package/dist/dashboard-web/chunks/v3-page-FVPUL665.js +149 -0
  185. package/dist/dashboard-web/chunks/whiteboards-page-HLCTYSSV.js +1 -0
  186. package/dist/dashboard-web/chunks/workflows-UB7OPYGI.js +184 -0
  187. package/dist/dashboard-web/index.html +1 -1
  188. package/dist/dashboard-web/style.css +82 -1
  189. package/dist/dashboard.js +5 -6
  190. package/dist/dashboard.js.map +1 -1
  191. package/dist/i18n/en.d.ts.map +1 -1
  192. package/dist/i18n/en.js +1 -0
  193. package/dist/i18n/en.js.map +1 -1
  194. package/dist/i18n/zh.d.ts.map +1 -1
  195. package/dist/i18n/zh.js +1 -0
  196. package/dist/i18n/zh.js.map +1 -1
  197. package/dist/im/lark/card-builder.d.ts +2 -2
  198. package/dist/im/lark/card-builder.d.ts.map +1 -1
  199. package/dist/im/lark/card-builder.js +3 -2
  200. package/dist/im/lark/card-builder.js.map +1 -1
  201. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  202. package/dist/im/lark/event-dispatcher.js +18 -0
  203. package/dist/im/lark/event-dispatcher.js.map +1 -1
  204. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  205. package/dist/im/lark/sessions-card.js +4 -1
  206. package/dist/im/lark/sessions-card.js.map +1 -1
  207. package/dist/services/opencode-paths.d.ts +7 -0
  208. package/dist/services/opencode-paths.d.ts.map +1 -0
  209. package/dist/services/opencode-paths.js +18 -0
  210. package/dist/services/opencode-paths.js.map +1 -0
  211. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  212. package/dist/setup/bot-config-editor.js +16 -14
  213. package/dist/setup/bot-config-editor.js.map +1 -1
  214. package/dist/worker.js +11 -3
  215. package/dist/worker.js.map +1 -1
  216. package/dist/workflows/attempt-resume.d.ts.map +1 -1
  217. package/dist/workflows/attempt-resume.js +4 -1
  218. package/dist/workflows/attempt-resume.js.map +1 -1
  219. package/package.json +8 -2
@@ -0,0 +1,303 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { mountReactPage } from './react-mount.js';
4
+ import { useT } from './react-hooks.js';
5
+ const emptyForm = {
6
+ name: '',
7
+ botId: '',
8
+ kind: 'turn',
9
+ workflowId: '',
10
+ mode: 'dynamic',
11
+ chatId: '',
12
+ manualChat: false,
13
+ manualChatId: '',
14
+ allowChats: [],
15
+ dedup: '',
16
+ instruction: '',
17
+ verify: 'token',
18
+ secret: '',
19
+ };
20
+ async function jget(u) {
21
+ const r = await fetch(u);
22
+ return { status: r.status, body: await r.json().catch(() => ({})) };
23
+ }
24
+ async function jsend(method, u, b) {
25
+ const r = await fetch(u, {
26
+ method,
27
+ headers: { 'content-type': 'application/json' },
28
+ body: b ? JSON.stringify(b) : undefined,
29
+ });
30
+ return { status: r.status, body: await r.json().catch(() => ({})) };
31
+ }
32
+ export function buildConnectorInstructionUpdateBody(connector, instruction) {
33
+ return {
34
+ promptEnvelope: {
35
+ sourceName: connector.promptEnvelope?.sourceName || connector.name,
36
+ instruction,
37
+ },
38
+ };
39
+ }
40
+ function webhookUrl(id) {
41
+ return `${location.origin}/webhook/${encodeURIComponent(id)}`;
42
+ }
43
+ function botGroups(groups, botId) {
44
+ return groups.filter(g => g.bots.includes(botId));
45
+ }
46
+ function ConnectorsPage() {
47
+ const tr = useT();
48
+ const mountedRef = useRef(false);
49
+ const copyTimerRef = useRef(null);
50
+ const [bots, setBots] = useState([]);
51
+ const [groups, setGroups] = useState([]);
52
+ const [connectors, setConnectors] = useState([]);
53
+ const [loading, setLoading] = useState(true);
54
+ const [form, setForm] = useState(emptyForm);
55
+ const [createMsg, setCreateMsg] = useState(null);
56
+ const [created, setCreated] = useState(null);
57
+ const [creating, setCreating] = useState(false);
58
+ const [editingId, setEditingId] = useState(null);
59
+ const [editInstruction, setEditInstruction] = useState('');
60
+ const [editMsg, setEditMsg] = useState(null);
61
+ const [copiedId, setCopiedId] = useState(null);
62
+ const groupsForBot = useMemo(() => botGroups(groups, form.botId), [groups, form.botId]);
63
+ const groupName = useCallback((chatId) => {
64
+ const g = groups.find(x => x.chatId === chatId);
65
+ return g?.name || chatId;
66
+ }, [groups]);
67
+ const normalizeFormForLoadedData = useCallback((nextBots, nextGroups) => {
68
+ setForm(cur => {
69
+ const botId = cur.botId && nextBots.some(b => b.larkAppId === cur.botId)
70
+ ? cur.botId
71
+ : (nextBots[0]?.larkAppId ?? '');
72
+ const availableGroups = botGroups(nextGroups, botId);
73
+ const chatId = cur.chatId && availableGroups.some(g => g.chatId === cur.chatId)
74
+ ? cur.chatId
75
+ : (availableGroups[0]?.chatId ?? '');
76
+ const allowSet = new Set(availableGroups.map(g => g.chatId));
77
+ return {
78
+ ...cur,
79
+ botId,
80
+ chatId,
81
+ allowChats: cur.allowChats.filter(id => allowSet.has(id)),
82
+ };
83
+ });
84
+ }, []);
85
+ const load = useCallback(async () => {
86
+ setLoading(true);
87
+ try {
88
+ const [bl, cl, gl] = await Promise.all([jget('/api/bots'), jget('/api/connectors'), jget('/api/groups')]);
89
+ if (!mountedRef.current)
90
+ return;
91
+ const nextBots = (bl.body?.bots || []).map((b) => ({
92
+ larkAppId: b.larkAppId,
93
+ botName: b.botName || b.larkAppId,
94
+ }));
95
+ const nextGroups = (gl.body?.chats || []).map((c) => ({
96
+ chatId: c.chatId,
97
+ name: c.name || '',
98
+ bots: (c.memberBots || []).filter((mb) => mb.inChat).map((mb) => mb.larkAppId),
99
+ }));
100
+ setBots(nextBots);
101
+ setGroups(nextGroups);
102
+ setConnectors(Array.isArray(cl.body?.connectors) ? cl.body.connectors : []);
103
+ normalizeFormForLoadedData(nextBots, nextGroups);
104
+ }
105
+ finally {
106
+ if (mountedRef.current)
107
+ setLoading(false);
108
+ }
109
+ }, [normalizeFormForLoadedData]);
110
+ useEffect(() => {
111
+ mountedRef.current = true;
112
+ void load();
113
+ return () => {
114
+ mountedRef.current = false;
115
+ if (copyTimerRef.current)
116
+ clearTimeout(copyTimerRef.current);
117
+ };
118
+ }, [load]);
119
+ useEffect(() => {
120
+ const valid = new Set(groupsForBot.map(g => g.chatId));
121
+ setForm(cur => ({
122
+ ...cur,
123
+ chatId: cur.chatId && valid.has(cur.chatId) ? cur.chatId : (groupsForBot[0]?.chatId ?? ''),
124
+ allowChats: cur.allowChats.filter(id => valid.has(id)),
125
+ }));
126
+ }, [groupsForBot]);
127
+ function modeLabel(m) {
128
+ return m === 'fixed'
129
+ ? tr('connectors.modeLabelFixed')
130
+ : m === 'new-group'
131
+ ? tr('connectors.modeLabelNewGroup')
132
+ : tr('connectors.modeLabelDynamic');
133
+ }
134
+ function kindLabel(k) {
135
+ return k === 'workflow' ? tr('connectors.kindLabelWorkflow') : tr('connectors.kindLabelTurn');
136
+ }
137
+ function patchForm(patch) {
138
+ setForm(cur => ({ ...cur, ...patch }));
139
+ }
140
+ function selectAllowChats(select) {
141
+ patchForm({ allowChats: Array.from(select.selectedOptions).map(o => o.value).filter(Boolean) });
142
+ }
143
+ async function createConnector() {
144
+ setCreateMsg(null);
145
+ setCreated(null);
146
+ const name = form.name.trim();
147
+ const botId = form.botId;
148
+ if (!name) {
149
+ setCreateMsg({ text: tr('connectors.errName'), error: true });
150
+ return;
151
+ }
152
+ if (!botId) {
153
+ setCreateMsg({ text: tr('connectors.errBot'), error: true });
154
+ return;
155
+ }
156
+ const body = {
157
+ name,
158
+ enabled: true,
159
+ target: { kind: form.kind, mode: form.mode, botId },
160
+ promptEnvelope: { sourceName: name },
161
+ verify: { type: form.verify },
162
+ };
163
+ const instruction = form.instruction.trim();
164
+ if (instruction)
165
+ body.promptEnvelope.instruction = instruction;
166
+ if (form.kind === 'workflow') {
167
+ if (!form.workflowId.trim()) {
168
+ setCreateMsg({ text: tr('connectors.errWf'), error: true });
169
+ return;
170
+ }
171
+ body.target.workflowId = form.workflowId.trim();
172
+ }
173
+ if (form.mode === 'fixed') {
174
+ const chatId = form.manualChat ? form.manualChatId.trim() : form.chatId;
175
+ if (!chatId) {
176
+ setCreateMsg({ text: tr('connectors.errChat'), error: true });
177
+ return;
178
+ }
179
+ body.target.chatId = chatId;
180
+ }
181
+ else if (form.allowChats.length) {
182
+ body.target.allowChats = form.allowChats;
183
+ }
184
+ if (form.mode === 'new-group') {
185
+ const dedup = form.dedup.trim();
186
+ body.lifecycleExtractors = dedup ? { dedupKey: dedup } : null;
187
+ }
188
+ if (form.secret.trim())
189
+ body.secret = form.secret.trim();
190
+ setCreating(true);
191
+ setCreateMsg({ text: tr('connectors.creating') });
192
+ try {
193
+ const r = await jsend('POST', '/api/connectors', body);
194
+ if (!mountedRef.current)
195
+ return;
196
+ if (r.status === 201 && r.body?.ok) {
197
+ const url = r.body.webhookUrl || webhookUrl(r.body.connector.id);
198
+ const isToken = (r.body.connector?.verify?.type ?? 'token') === 'token';
199
+ const isDynamic = form.mode === 'dynamic';
200
+ const exampleChat = isDynamic ? (body.target.allowChats?.[0] || '<chatId>') : '';
201
+ setCreateMsg(null);
202
+ setCreated({
203
+ name,
204
+ mode: form.mode,
205
+ chatId: body.target.chatId,
206
+ url,
207
+ secret: r.body.secret,
208
+ isToken,
209
+ isDynamic,
210
+ exampleChat,
211
+ });
212
+ setForm(cur => ({
213
+ ...cur,
214
+ name: '',
215
+ workflowId: '',
216
+ manualChatId: '',
217
+ dedup: '',
218
+ secret: '',
219
+ instruction: '',
220
+ allowChats: [],
221
+ }));
222
+ await load();
223
+ }
224
+ else {
225
+ const e = r.body?.error || r.status;
226
+ setCreateMsg({ text: tr('connectors.createFailed', { error: String(e) }), error: true });
227
+ }
228
+ }
229
+ finally {
230
+ if (mountedRef.current)
231
+ setCreating(false);
232
+ }
233
+ }
234
+ async function saveInstruction(connector) {
235
+ setEditMsg({ id: connector.id, text: tr('connectors.saving') });
236
+ const r = await jsend('PUT', `/api/connectors/${encodeURIComponent(connector.id)}`, buildConnectorInstructionUpdateBody(connector, editInstruction));
237
+ if (!mountedRef.current)
238
+ return;
239
+ if (r.status === 200 && r.body?.ok) {
240
+ setEditingId(null);
241
+ setEditInstruction('');
242
+ setEditMsg(null);
243
+ await load();
244
+ }
245
+ else {
246
+ const e = r.body?.error || r.status;
247
+ setEditMsg({ id: connector.id, text: tr('connectors.saveFailed', { error: String(e) }), error: true });
248
+ }
249
+ }
250
+ async function toggleConnector(connector) {
251
+ await jsend('PATCH', `/api/connectors/${encodeURIComponent(connector.id)}`, { enabled: !connector.enabled });
252
+ if (!mountedRef.current)
253
+ return;
254
+ await load();
255
+ }
256
+ async function deleteConnector(connector) {
257
+ if (!confirm(tr('connectors.delConfirm')))
258
+ return;
259
+ await jsend('DELETE', `/api/connectors/${encodeURIComponent(connector.id)}`);
260
+ if (!mountedRef.current)
261
+ return;
262
+ await load();
263
+ }
264
+ function copyConnectorUrl(connector) {
265
+ void navigator.clipboard?.writeText(webhookUrl(connector.id));
266
+ setCopiedId(connector.id);
267
+ if (copyTimerRef.current)
268
+ clearTimeout(copyTimerRef.current);
269
+ copyTimerRef.current = setTimeout(() => {
270
+ if (mountedRef.current)
271
+ setCopiedId(null);
272
+ }, 1200);
273
+ }
274
+ return (_jsxs("section", { className: "page", children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: "Webhook" }), _jsx("h1", { children: "Webhook" }), _jsx("p", { children: tr('connectors.lede') })] }) }), _jsxs("div", { className: "card", style: { marginBottom: 16 }, children: [_jsx("h2", { style: { marginTop: 0 }, children: tr('connectors.createTitle') }), _jsxs("div", { className: "cn-form", style: { display: 'grid', gridTemplateColumns: '140px 1fr', gap: '10px 14px', alignItems: 'center', maxWidth: 680 }, children: [_jsx("label", { htmlFor: "cn-name", children: tr('connectors.fName') }), _jsx("input", { id: "cn-name", value: form.name, onChange: e => patchForm({ name: e.currentTarget.value }), placeholder: tr('connectors.fNamePh') }), _jsx("label", { htmlFor: "cn-bot", children: tr('connectors.fBot') }), _jsx("select", { id: "cn-bot", value: form.botId, onChange: e => patchForm({ botId: e.currentTarget.value }), children: bots.length ? bots.map(b => _jsx("option", { value: b.larkAppId, children: b.botName }, b.larkAppId)) : _jsx("option", { value: "", children: tr('connectors.noOnlineBots') }) }), _jsx("label", { htmlFor: "cn-kind", children: tr('connectors.fKind') }), _jsxs("select", { id: "cn-kind", value: form.kind, onChange: e => patchForm({ kind: e.currentTarget.value }), children: [_jsx("option", { value: "turn", children: tr('connectors.kindTurn') }), _jsx("option", { value: "workflow", children: tr('connectors.kindWorkflow') })] }), form.kind === 'workflow' ? (_jsxs(_Fragment, { children: [_jsx("label", { htmlFor: "cn-wf", children: tr('connectors.fWf') }), _jsx("input", { id: "cn-wf", value: form.workflowId, onChange: e => patchForm({ workflowId: e.currentTarget.value }), placeholder: "workflowId" })] })) : null, _jsx("label", { htmlFor: "cn-mode", children: tr('connectors.fMode') }), _jsxs("select", { id: "cn-mode", value: form.mode, onChange: e => patchForm({ mode: e.currentTarget.value }), children: [_jsx("option", { value: "dynamic", children: tr('connectors.modeDynamic') }), _jsx("option", { value: "fixed", children: tr('connectors.modeFixed') }), _jsx("option", { value: "new-group", children: tr('connectors.modeNewGroup') })] }), form.mode === 'fixed' ? (_jsxs(_Fragment, { children: [_jsx("label", { children: tr('connectors.fFixedChat') }), _jsxs("div", { children: [form.manualChat ? (_jsx("input", { id: "cn-chat", value: form.manualChatId, onChange: e => patchForm({ manualChatId: e.currentTarget.value }), placeholder: tr('connectors.fChatManualPh'), style: { width: '100%', boxSizing: 'border-box', marginTop: 6 } })) : (_jsx("select", { id: "cn-chat-sel", value: form.chatId, onChange: e => patchForm({ chatId: e.currentTarget.value }), style: { width: '100%', boxSizing: 'border-box' }, children: groupsForBot.length ? groupsForBot.map(g => _jsx("option", { value: g.chatId, children: g.name || g.chatId }, g.chatId)) : _jsx("option", { value: "", children: tr('connectors.noBotGroups') }) })), _jsx("a", { href: "#", onClick: e => { e.preventDefault(); patchForm({ manualChat: !form.manualChat }); }, style: { fontSize: 12, display: 'inline-block', marginTop: 4 }, children: form.manualChat ? tr('connectors.chatListLink') : tr('connectors.chatManualLink') })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("label", { children: [tr('connectors.fAllow'), _jsx("span", { className: "muted", style: { fontWeight: 400 }, children: tr('connectors.optional') })] }), _jsxs("div", { children: [_jsx("select", { multiple: true, size: 4, value: form.allowChats, onChange: e => selectAllowChats(e.currentTarget), style: { width: '100%', boxSizing: 'border-box' }, children: groupsForBot.map(g => _jsx("option", { value: g.chatId, children: g.name || g.chatId }, g.chatId)) }), _jsx("div", { className: "muted", style: { fontSize: 12, marginTop: 4 }, children: tr('connectors.allowHint') })] })] })), form.mode === 'dynamic' ? (_jsx("div", { style: { gridColumn: '1 / -1' }, children: _jsx("div", { className: "muted", style: { fontSize: 12, lineHeight: 1.7, background: 'var(--bg-soft,#f6f7f9)', padding: '8px 10px', borderRadius: 6 }, dangerouslySetInnerHTML: { __html: tr('connectors.dynamicHint') } }) })) : null, form.mode === 'new-group' ? (_jsxs(_Fragment, { children: [_jsxs("label", { htmlFor: "cn-dedup", children: [tr('connectors.fDedup'), _jsx("span", { className: "muted", style: { fontWeight: 400 }, children: tr('connectors.optional') })] }), _jsxs("div", { children: [_jsx("input", { id: "cn-dedup", value: form.dedup, onChange: e => patchForm({ dedup: e.currentTarget.value }), placeholder: tr('connectors.fDedupPh'), style: { width: '100%', boxSizing: 'border-box' } }), _jsx("div", { className: "muted", style: { fontSize: 12, marginTop: 4 }, dangerouslySetInnerHTML: { __html: tr('connectors.dedupHint') } })] })] })) : null, _jsxs("label", { htmlFor: "cn-instruction", style: { alignSelf: 'start' }, children: [tr('connectors.fInstruction'), _jsx("span", { className: "muted", style: { fontWeight: 400 }, children: tr('connectors.optional') })] }), _jsx("textarea", { id: "cn-instruction", rows: 3, value: form.instruction, onChange: e => patchForm({ instruction: e.currentTarget.value }), placeholder: tr('connectors.fInstructionPh'), style: { width: '100%', boxSizing: 'border-box', fontFamily: 'inherit', fontSize: 13 } }), _jsx("label", { htmlFor: "cn-verify", children: tr('connectors.fVerify') }), _jsxs("select", { id: "cn-verify", value: form.verify, onChange: e => patchForm({ verify: e.currentTarget.value }), children: [_jsx("option", { value: "token", children: tr('connectors.verifyToken') }), _jsx("option", { value: "hmac-sha256", children: tr('connectors.verifyHmac') })] }), _jsx("label", { htmlFor: "cn-secret", children: tr('connectors.fSecret') }), _jsx("input", { id: "cn-secret", value: form.secret, onChange: e => patchForm({ secret: e.currentTarget.value }), placeholder: tr('connectors.fSecretPh') })] }), _jsxs("div", { style: { marginTop: 14 }, children: [_jsx("button", { id: "cn-create", type: "button", className: "primary", disabled: creating, onClick: () => void createConnector(), children: tr('connectors.btnCreate') }), createMsg ? _jsx("span", { className: createMsg.error ? 'err' : 'muted', style: { marginLeft: 10, fontSize: 13 }, children: createMsg.text }) : null] }), created ? _jsx(CreatedPanel, { created: created, groupName: groupName }) : null] }), _jsxs("div", { className: "card", children: [_jsxs("h2", { style: { marginTop: 0 }, children: [tr('connectors.listTitle'), " ", _jsx("span", { className: "muted", style: { fontSize: 13 }, children: connectors.length ? tr('connectors.count', { count: connectors.length }) : '' })] }), loading ? _jsx("div", { children: tr('connectors.loading') }) : (_jsx(ConnectorList, { connectors: connectors, bots: bots, copiedId: copiedId, editingId: editingId, editInstruction: editInstruction, editMsg: editMsg, groupName: groupName, modeLabel: modeLabel, kindLabel: kindLabel, onCopy: copyConnectorUrl, onEdit: connector => { setEditingId(connector.id); setEditInstruction(connector.promptEnvelope?.instruction || ''); setEditMsg(null); }, onCancelEdit: () => { setEditingId(null); setEditInstruction(''); setEditMsg(null); }, onEditInstruction: setEditInstruction, onSaveInstruction: connector => void saveInstruction(connector), onToggle: connector => void toggleConnector(connector), onDelete: connector => void deleteConnector(connector) }))] })] }));
275
+ }
276
+ function CreatedPanel(props) {
277
+ const tr = useT();
278
+ const c = props.created;
279
+ const callUrl = c.isDynamic ? `${c.url}?chatId=${c.exampleChat}` : c.url;
280
+ const dynamicGroupName = c.exampleChat !== '<chatId>' ? `(${props.groupName(c.exampleChat)})` : '';
281
+ return (_jsx("div", { style: { marginTop: 12 }, children: _jsxs("div", { className: "card", style: { padding: '12px 14px', background: 'var(--bg-soft,#f6f7f9)' }, children: [_jsxs("p", { className: "ok", style: { margin: '0 0 6px' }, children: [tr('connectors.createdPrefix', { name: c.name }), c.mode === 'fixed' && c.chatId ? (_jsxs("span", { className: "muted", style: { fontWeight: 400, fontSize: 13 }, children: [" \u00B7 ", tr('connectors.createdDest', { name: props.groupName(c.chatId) })] })) : null] }), _jsxs("p", { style: { margin: '4px 0', fontSize: 13 }, children: [_jsx("span", { className: "muted", children: tr('connectors.webhookUrl') }), _jsx("code", { style: { wordBreak: 'break-all' }, children: c.url })] }), c.secret ? (_jsxs("p", { style: { margin: '4px 0', fontSize: 13 }, children: [_jsxs("span", { className: "muted", children: [c.isToken ? tr('connectors.tokenLabel') : tr('connectors.signLabel'), tr('connectors.secretOnce')] }), _jsx("code", { children: c.secret })] })) : null, c.isToken && c.isDynamic ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "muted", style: { fontSize: 12, margin: '6px 0 0' }, children: tr('connectors.usageDynamicLede', { gn: dynamicGroupName }) }), _jsx("pre", { style: { margin: '6px 0 0', fontSize: 12, whiteSpace: 'pre-wrap', wordBreak: 'break-all' }, children: _jsx("code", { children: `curl -X POST '${callUrl}' -H 'content-type: application/json' -d '{}'` }) }), _jsx("p", { className: "muted", style: { fontSize: 12, margin: '6px 0 0' }, dangerouslySetInnerHTML: { __html: tr('connectors.usageDynamicNote') } })] })) : c.isToken ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "muted", style: { fontSize: 12, margin: '6px 0 0' }, children: tr('connectors.usageTokenLede') }), _jsx("pre", { style: { margin: '6px 0 0', fontSize: 12, whiteSpace: 'pre-wrap', wordBreak: 'break-all' }, children: _jsx("code", { children: `curl -X POST '${callUrl}' -H 'content-type: application/json' -d '{}'` }) }), _jsx("p", { className: "muted", style: { fontSize: 12, margin: '6px 0 0' }, dangerouslySetInnerHTML: { __html: tr('connectors.usageTokenNote') } })] })) : (_jsx("p", { className: "muted", style: { fontSize: 12, margin: '6px 0 0' }, dangerouslySetInnerHTML: { __html: tr('connectors.usageHmac') + (c.isDynamic ? tr('connectors.usageHmacDynamic') : '') } }))] }) }));
282
+ }
283
+ function ConnectorList(props) {
284
+ const tr = useT();
285
+ if (!props.connectors.length)
286
+ return _jsx("p", { className: "muted", children: tr('connectors.empty') });
287
+ return (_jsx(_Fragment, { children: props.connectors.map(c => {
288
+ const bot = props.bots.find(b => b.larkAppId === c.target.botId);
289
+ const url = webhookUrl(c.id);
290
+ const isToken = (c.verify?.type ?? 'token') === 'token';
291
+ const verifyBadge = isToken ? tr('connectors.badgeToken') : tr('connectors.badgeSign');
292
+ const destLabel = c.target.mode === 'fixed' && c.target.chatId
293
+ ? ` · ${tr('connectors.dest', { name: props.groupName(c.target.chatId) })}`
294
+ : '';
295
+ const editing = props.editingId === c.id;
296
+ const editMsg = props.editMsg?.id === c.id ? props.editMsg : null;
297
+ return (_jsxs("div", { className: "card", style: { margin: '0 0 10px', padding: '12px 14px', background: 'var(--bg-soft,#f6f7f9)' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' }, children: [_jsx("b", { style: { fontSize: 15 }, children: c.name }), _jsx("span", { className: c.enabled ? 'ok' : 'muted', style: { fontSize: 12 }, children: c.enabled ? tr('connectors.enabled') : tr('connectors.disabled') }), _jsxs("span", { className: "muted", style: { fontSize: 12 }, children: ["\u00B7 ", bot?.botName || c.target.botId, " \u00B7 ", props.kindLabel(c.target.kind), " \u00B7 ", props.modeLabel(c.target.mode), destLabel, " \u00B7 ", verifyBadge] }), _jsxs("span", { style: { marginLeft: 'auto', display: 'flex', gap: 6 }, children: [_jsx("button", { className: "ghost", type: "button", style: { fontSize: 12 }, onClick: () => props.onEdit(c), children: tr('connectors.btnEdit') }), _jsx("button", { className: "ghost", type: "button", style: { fontSize: 12 }, onClick: () => props.onToggle(c), children: c.enabled ? tr('connectors.btnDisable') : tr('connectors.btnEnable') }), _jsx("button", { className: "ghost", type: "button", style: { fontSize: 12 }, onClick: () => props.onDelete(c), children: tr('connectors.btnDel') })] })] }), _jsxs("div", { style: { marginTop: 6, fontSize: 13, display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' }, children: [_jsx("span", { className: "muted", children: tr('connectors.webhookUrl') }), _jsxs("code", { style: { fontSize: 12, wordBreak: 'break-all' }, children: [url, isToken ? '/<token>' : ''] }), _jsx("button", { className: "ghost", type: "button", style: { fontSize: 12 }, onClick: () => props.onCopy(c), children: props.copiedId === c.id ? tr('connectors.copied') : tr('connectors.copy') })] }), isToken ? _jsx("div", { className: "muted", style: { fontSize: 12, marginTop: 4 }, dangerouslySetInnerHTML: { __html: tr('connectors.tokenHint') } }) : null, c.target.mode === 'dynamic' ? _jsx("div", { className: "muted", style: { fontSize: 12, marginTop: 4 }, dangerouslySetInnerHTML: { __html: tr('connectors.dynamicReqHint') } }) : null, c.promptEnvelope?.instruction ? _jsxs("div", { className: "muted", style: { fontSize: 12, marginTop: 4 }, children: [tr('connectors.instructionPrefix'), c.promptEnvelope.instruction] }) : null, editing ? (_jsxs("div", { className: "cn-edit-box", style: { marginTop: 8 }, children: [_jsx("textarea", { className: "cn-edit-instruction", rows: 3, value: props.editInstruction, onChange: e => props.onEditInstruction(e.currentTarget.value), style: { width: '100%', boxSizing: 'border-box', fontFamily: 'inherit', fontSize: 13 }, placeholder: tr('connectors.fInstructionPh') }), _jsxs("div", { style: { marginTop: 8, display: 'flex', alignItems: 'center', gap: 8, flexWrap: 'wrap' }, children: [_jsx("button", { className: "primary", type: "button", style: { fontSize: 12 }, onClick: () => props.onSaveInstruction(c), children: tr('connectors.btnSave') }), _jsx("button", { className: "ghost", type: "button", style: { fontSize: 12 }, onClick: props.onCancelEdit, children: tr('connectors.btnCancel') }), editMsg ? _jsx("span", { className: editMsg.error ? 'err' : 'muted', style: { fontSize: 12 }, children: editMsg.text }) : null] })] })) : null] }, c.id));
298
+ }) }));
299
+ }
300
+ export function renderConnectorsPage(root) {
301
+ return mountReactPage(root, _jsx(ConnectorsPage, {}));
302
+ }
303
+ //# sourceMappingURL=connectors-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/connectors-page.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,2 @@
1
- export declare function buildConnectorInstructionUpdateBody(connector: {
2
- name: string;
3
- promptEnvelope?: {
4
- sourceName?: string;
5
- };
6
- }, instruction: string): {
7
- promptEnvelope: {
8
- sourceName: string;
9
- instruction: string;
10
- };
11
- };
12
- export declare function renderConnectorsPage(root: HTMLElement): void;
1
+ export { buildConnectorInstructionUpdateBody, renderConnectorsPage } from './connectors-page.js';
13
2
  //# sourceMappingURL=connectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/connectors.ts"],"names":[],"mappings":"AA2BA,wBAAgB,mCAAmC,CACjD,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACrE,WAAW,EAAE,MAAM,GAClB;IAAE,cAAc,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAOjE;AAiMD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAwF5D"}
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/connectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}