@ezychat/web 0.1.46 → 0.1.48

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 (40) hide show
  1. package/dist-lib/chunks/admin-CpYxtKzJ.js +694 -0
  2. package/dist-lib/chunks/admin-Da2uR7mY.js +695 -0
  3. package/dist-lib/chunks/{app-C2A7ZZsu.js → app-3jWCMPbu.js} +3 -1
  4. package/dist-lib/chunks/{app-RX8Fy2Oz.js → app-Diwr0AD0.js} +3 -1
  5. package/dist-lib/chunks/{inbox-DccyncVL.js → inbox-DtLIGOCo.js} +29 -14
  6. package/dist-lib/chunks/{inbox-Bdg6faLa.js → inbox-u9BCZ1IH.js} +29 -14
  7. package/dist-lib/ezychat-web.css +1 -1
  8. package/dist-lib/index.js +10987 -4997
  9. package/dist-lib/types/admin/AdminLayout.d.ts +14 -1
  10. package/dist-lib/types/admin/AiContextPanel.d.ts +10 -5
  11. package/dist-lib/types/admin/AiEditDialog.d.ts +6 -2
  12. package/dist-lib/types/admin/AiMemberPage.d.ts +6 -0
  13. package/dist-lib/types/admin/AiTryIt.d.ts +7 -2
  14. package/dist-lib/types/admin/InboxAccess.d.ts +9 -0
  15. package/dist-lib/types/admin/InboxesPage.d.ts +3 -0
  16. package/dist-lib/types/admin/PresetBadge.d.ts +8 -0
  17. package/dist-lib/types/admin/agent-path.d.ts +6 -0
  18. package/dist-lib/types/admin/ai-status.d.ts +15 -1
  19. package/dist-lib/types/admin/inbox-status.d.ts +16 -0
  20. package/dist-lib/types/api/ai.d.ts +194 -6
  21. package/dist-lib/types/api/inbox-mutations.d.ts +70 -0
  22. package/dist-lib/types/api/queries.d.ts +78 -3
  23. package/dist-lib/types/extensions/agent-section.d.ts +18 -0
  24. package/dist-lib/types/extensions/index.d.ts +1 -0
  25. package/dist-lib/types/extensions/types.d.ts +1 -1
  26. package/dist-lib/types/i18n/resources.d.ts +222 -3
  27. package/dist-lib/types/inbox/ChatFilters.d.ts +4 -1
  28. package/dist-lib/types/inbox/ChatListItem.d.ts +4 -2
  29. package/dist-lib/types/inbox/ConversationHeader.d.ts +4 -2
  30. package/dist-lib/types/inbox/InboxChip.d.ts +6 -0
  31. package/dist-lib/types/inbox/WaBanner.d.ts +6 -1
  32. package/dist-lib/types/inbox/useDirectory.d.ts +26 -4
  33. package/dist-lib/types/inbox/useVisibleInboxes.d.ts +12 -0
  34. package/dist-lib/types/index.d.ts +1 -1
  35. package/dist-lib/types/lib/whatsapp-format.d.ts +5 -0
  36. package/dist-lib/types/setup/AiAssistantStep.d.ts +3 -2
  37. package/dist-lib/types/wa/PhoneLink.d.ts +7 -2
  38. package/package.json +2 -2
  39. package/dist-lib/chunks/admin-CO4a2wgk.js +0 -620
  40. package/dist-lib/chunks/admin-DviFuAwJ.js +0 -621
@@ -1,620 +0,0 @@
1
- //#region src/i18n/locales/zh-CN/admin.json
2
- var e = "管理", t = "管理 · {{section}}", n = {
3
- label: "管理分区",
4
- members: "成员",
5
- quickReplies: "快捷回复",
6
- whatsapp: "WhatsApp",
7
- tunnel: "手机访问",
8
- settings: "设置",
9
- audit: "审计日志"
10
- }, r = {
11
- inbox: "收件箱",
12
- menu: "管理菜单",
13
- footer: "管理工具与支持",
14
- backToInbox: "返回收件箱",
15
- logOut: "退出登录",
16
- loggingOut: "正在退出…",
17
- logOutFailed: "无法退出登录:{{error}}",
18
- loading: "正在加载"
19
- }, i = {
20
- copied: "已复制到剪贴板",
21
- copyFailed: "复制失败,请选中文本后手动复制。",
22
- loadFailed: "无法加载",
23
- loading: "正在加载",
24
- unsaved: "未保存"
25
- }, a = {
26
- title: "成员",
27
- description: "可以登录团队收件箱的人员。",
28
- add: "添加成员",
29
- searchLabel: "搜索成员",
30
- searchPlaceholder: "搜索姓名、用户名或角色",
31
- count_other: "{{shown}} / {{count}} 位成员",
32
- added: "添加于 <time>{{date}}</time>",
33
- you: "(您)",
34
- columns: {
35
- member: "成员",
36
- role: "角色",
37
- status: "状态",
38
- created: "创建时间",
39
- actions: "操作"
40
- },
41
- empty: {
42
- noMatchTitle: "没有匹配的成员",
43
- noMatchBody: "请尝试其他姓名、用户名或角色。",
44
- clearSearch: "清除搜索",
45
- noneTitle: "还没有成员",
46
- noneBody: "添加成员后,他们即可登录。"
47
- },
48
- status: {
49
- disabled: "已停用",
50
- active: "正常",
51
- mustChangePassword: "须修改密码"
52
- },
53
- actions: {
54
- editMember: "编辑 {{name}}",
55
- moreFor: "{{name}} 的更多操作",
56
- resetPassword: "重置密码",
57
- signOutEverywhere: "在所有设备上退出",
58
- enable: "启用",
59
- disable: "停用"
60
- },
61
- form: {
62
- role: "角色",
63
- username: "用户名",
64
- displayName: "显示名称",
65
- tempPass: "临时密码",
66
- tempPasswordHint: "对方首次登录时需要修改此密码。",
67
- tempPasswordManualHint: "此浏览器无法自动生成密码。请输入一个强密码,对方首次登录时需要修改。",
68
- generate: "生成",
69
- usernameTooShort: "用户名至少需要 3 个字符。",
70
- passTooShort: "密码至少需要 8 个字符。",
71
- ownRoleHint: "您不能更改自己的角色。"
72
- },
73
- create: {
74
- title: "添加成员",
75
- submit: "创建成员",
76
- done: "已添加 {{name}}。请将临时密码告知对方。"
77
- },
78
- edit: {
79
- title: "编辑 {{name}}",
80
- done: "成员已更新。"
81
- },
82
- disable: {
83
- enableTitle: "启用 {{name}}?",
84
- disableTitle: "停用 {{name}}?",
85
- enableBody: "对方将可以重新登录。",
86
- disableBody: "停用的成员会立即被退出登录,且无法再登录。",
87
- enabled: "{{name}} 可以重新登录了。",
88
- disabled: "已停用 {{name}}。"
89
- },
90
- reset: {
91
- title: "重置 {{name}} 的密码?",
92
- body: "将生成新的临时密码,并退出对方的所有会话。",
93
- newTitle: "新的临时密码",
94
- newBody: "请将此密码告知 {{name}}。密码只显示一次,对方下次登录时必须修改。对方的其他会话已被退出。"
95
- },
96
- revoke: {
97
- title: "让 {{name}} 在所有设备上退出?",
98
- confirm: "退出登录",
99
- body: "对方的所有设备将立即退出登录。",
100
- done: "已让 {{name}} 在所有设备上退出。"
101
- }
102
- }, o = {
103
- title: "快捷回复",
104
- description: "客服在输入框中输入 <kbd>/</kbd> 加快捷码,即可插入回复。",
105
- new: "新建快捷回复",
106
- searchLabel: "搜索快捷回复",
107
- searchPlaceholder: "搜索快捷码或回复内容",
108
- count_other: "{{shown}} / {{count}} 条快捷回复",
109
- empty: {
110
- noMatchTitle: "没有匹配的快捷回复",
111
- noMatchBody: "请尝试其他快捷码或词语。",
112
- noneTitle: "还没有快捷回复",
113
- noneBody: "创建快捷回复,更快地回答常见问题。",
114
- clearSearch: "清除搜索"
115
- },
116
- editLabel: "编辑 /{{shortcut}}",
117
- delete: {
118
- title: "删除 /{{shortcut}}?",
119
- body: "客服将无法再使用此快捷回复。",
120
- done: "已删除 /{{shortcut}}。"
121
- },
122
- form: {
123
- editTitle: "编辑 /{{shortcut}}",
124
- shortcut: "快捷码",
125
- shortcutHint: "在输入框中 / 之后输入,例如 /{{example}}",
126
- shortcutExample: "price",
127
- shortcutInvalid: "请使用 1-32 个小写字母、数字、“-”或“_”。",
128
- body: "回复内容",
129
- bodyRequired: "请输入回复内容。",
130
- saved: "已保存 /{{shortcut}}。"
131
- },
132
- moreLabel: "/{{shortcut}} 的更多操作"
133
- }, s = {
134
- title: "审计日志",
135
- description: "登录、成员变更、WhatsApp 及隧道操作。",
136
- download: "下载日志",
137
- empty: "还没有审计记录",
138
- loadOlder: "加载更早记录",
139
- system: "系统",
140
- aiAssistantToken: "AI 助手令牌",
141
- tokenOwner: "所有者:{{name}}",
142
- userNumber: "用户 #{{id}}",
143
- columns: {
144
- time: "时间",
145
- who: "操作人",
146
- action: "操作",
147
- details: "详情",
148
- ip: "IP"
149
- },
150
- actions: {
151
- authLogin: "已登录",
152
- authLoginFailed: "登录失败",
153
- authLogout: "已退出登录",
154
- authChangePassword: "已修改密码",
155
- authResetAdminCli: "已重置管理员密码",
156
- setupAdmin: "已创建管理员账户",
157
- userCreate: "已添加成员",
158
- userUpdate: "已更新成员",
159
- userResetPassword: "已重置成员密码",
160
- userRevokeSessions: "已让成员在所有设备上退出",
161
- quickReplyCreate: "已创建快捷回复",
162
- quickReplyUpdate: "已更新快捷回复",
163
- quickReplyDelete: "已删除快捷回复",
164
- waLogout: "已解除 WhatsApp 关联",
165
- waRelink: "已重新开始关联 WhatsApp",
166
- waTakeover: "已接管 WhatsApp 会话",
167
- waPairingCode: "已请求 WhatsApp 配对码",
168
- tunnelStart: "隧道已启动",
169
- tunnelStop: "隧道已停止",
170
- cloudflareLogin: "已开始登录 Cloudflare",
171
- cloudflareCreate: "已配置 Cloudflare 收件箱地址",
172
- settingsUpdate: "已更新设置",
173
- chatsResolveAll: "已解决所有未结对话",
174
- chatMerge: "已合并聊天",
175
- chatStartFromGroup: "从群组发起对话",
176
- logsDownload: "已下载日志",
177
- aiConnectionUpdate: "已更改 AI 连接",
178
- aiMemberUpdate: "已更改 AI 成员",
179
- aiDocumentAdd: "已添加业务资料",
180
- aiDocumentUpdate: "已编辑业务资料",
181
- aiDocumentRemove: "已删除业务资料",
182
- aiHandoff: "AI 已将对话转交团队",
183
- aiResolve: "AI 已解决对话",
184
- aiVoiceUpdate: "已更改语音消息设置",
185
- aiVoiceModelDownload: "已开始下载语音模型",
186
- aiVoiceModelCancel: "已取消下载语音模型",
187
- aiVoiceModelRemove: "已删除语音模型",
188
- customerProfileUpdate: "已更新客户资料",
189
- apiTokenCreate: "已创建访问令牌",
190
- apiTokenRevoke: "已撤销访问令牌",
191
- apiTokenAuthFailed: "AI 助手令牌被拒绝",
192
- mcpEnable: "已开启 AI 助手访问",
193
- mcpDisable: "已关闭 AI 助手访问"
194
- },
195
- fields: {
196
- chat: "对话",
197
- group: "群组",
198
- from: "来自",
199
- to: "到",
200
- member: "成员",
201
- assignedTo: "分配给",
202
- reason: "原因",
203
- enabled: "已启用",
204
- disabled: "已停用",
205
- role: "角色",
206
- mode: "模式",
207
- model: "模型",
208
- kind: "类型",
209
- size: "大小",
210
- document: "条目",
211
- transcription: "转写",
212
- resolvedCount: "已解决对话",
213
- username: "用户名",
214
- displayName: "显示名称",
215
- id: "ID",
216
- shortcut: "快捷词",
217
- hostname: "主机名",
218
- subdomain: "子域名",
219
- tunnelName: "隧道",
220
- domain: "域名",
221
- restartRequired: "需要重启",
222
- moved: "已移动",
223
- name: "名称",
224
- tags: "标签",
225
- instructions: "指令",
226
- handoffRules: "转交规则",
227
- text: "文本",
228
- token: "令牌",
229
- port: "端口",
230
- lanEnabled: "局域网访问",
231
- historyDays: "历史天数",
232
- expires: "到期"
233
- },
234
- reasons: {
235
- rateLimited: "尝试次数过多",
236
- invalid: "用户名或密码错误",
237
- malformed: "无有效令牌",
238
- unknown: "未知令牌",
239
- revoked: "令牌已撤销",
240
- expired: "令牌已过期",
241
- userInactive: "所有者已停用",
242
- notAdmin: "所有者不是管理员",
243
- mustChangePassword: "所有者需要修改密码"
244
- },
245
- yes: "是",
246
- no: "否",
247
- changed: "已更改 {{fields}}",
248
- filterLabel: "显示",
249
- filterAll: "全部活动",
250
- filterChanges: "隐藏登录记录",
251
- hiddenSignIns_other: "已隐藏 {{count}} 条登录记录",
252
- details: { customerChanged: "已更改:{{fields}}" },
253
- customerFields: {
254
- name: "姓名",
255
- company: "公司",
256
- email: "电子邮箱",
257
- otherPhone: "其他电话",
258
- address: "地址",
259
- tags: "标签"
260
- },
261
- listSeparator: "、"
262
- }, c = {
263
- access: {
264
- label: "允许 AI 助手读取此收件箱",
265
- description: "连接任何兼容 MCP 的 AI 助手。它可以读取对话、备注和统计数据,并可读取、测试和修改 AI 销售助理的指令、转交规则和业务资料。只有在令牌允许时,它才能向客户发送回复。每项更改都会记录在审计日志中。",
266
- worksFromLabel: "可用于",
267
- worksFromLocal: "运行 {{product}} 的电脑。",
268
- worksFromTunnel: "运行 {{product}} 的电脑,也可以通过您的隧道从任何地方连接:",
269
- privacyLabel: "隐私",
270
- privacy: "助手读取的聊天内容会发送给运营该助手的公司(例如 Anthropic、OpenAI 或 Google),并归入您所连接的账户。",
271
- turnedOn: "已开启 AI 助手访问",
272
- turnedOff: "已关闭 AI 助手访问"
273
- },
274
- noTunnel: {
275
- title: "隧道未运行",
276
- body: "运行 {{product}} 的电脑上的助手现在就可以连接。如需从其他地方连接,请先开启手机访问。",
277
- link: "打开手机访问"
278
- },
279
- tokens: {
280
- title: "访问令牌",
281
- description: "将令牌粘贴到您的 AI 助手中即可连接。任何持有令牌的人都可以读取收件箱(如果令牌允许,还可以发送回复),因此请妥善保管。",
282
- create: "创建令牌",
283
- empty: "还没有令牌。请为您使用的每个助手和每台电脑各创建一个。",
284
- created: "创建于 {{date}}",
285
- lastUsed: "最近使用:{{when}}",
286
- neverUsed: "从未使用",
287
- expires: "{{date}} 到期",
288
- neverExpires: "永不过期",
289
- expired: "已于 {{date}} 过期",
290
- revoke: "撤销",
291
- revokeLabel: "撤销令牌 {{name}}",
292
- revokeTitle: "撤销“{{name}}”?",
293
- revokeBody: "使用此令牌的助手将立即停止工作。此操作无法撤消。",
294
- revokeConfirm: "撤销令牌",
295
- revoked: "令牌已撤销",
296
- canSendBadge: "可发送",
297
- canNewBadge: "新号码"
298
- },
299
- create: {
300
- title: "创建访问令牌",
301
- description: "每个助手和每台电脑使用一个令牌。您可以随时撤销。",
302
- name: "名称",
303
- nameHint: "方便以后识别,例如是哪台电脑。",
304
- nameRequired: "请输入名称。",
305
- nameTooLong: "名称最多 64 个字符。",
306
- expiry: "有效期",
307
- expiry30: "30 天",
308
- expiry90: "90 天",
309
- expiry365: "1 年",
310
- expiryNever: "永久",
311
- submit: "创建令牌",
312
- canSend: "可以发送 WhatsApp 消息",
313
- canSendHint: "您的 AI 助手可以以您的身份在现有对话中回复。",
314
- canSendWarning: "回复会直接发送给您的客户。大多数 AI 助手会在每条消息前征求您的同意;请在批准前检查每条消息。",
315
- canNew: "也可以向新号码发送消息",
316
- canNewHint: "助手可以与收件箱中没有的号码开始对话。WhatsApp 会先检查该号码。每天最多 20 个新号码。",
317
- canNewWarningTitle: "WhatsApp 封号风险",
318
- canNewWarning: "如果您的号码向未曾要求联系的人发送消息,WhatsApp 可能会封禁该号码。仅当您的团队联系已同意被联系的人时才开启此项。助手也会收到此警告。"
319
- },
320
- created: {
321
- title: "立即复制您的令牌",
322
- description: "令牌只显示这一次。如果丢失,请撤销后重新创建。",
323
- secretLabel: "您的令牌",
324
- copyToken: "复制令牌",
325
- connect: "连接您的助手",
326
- clientClaude: "Claude Code",
327
- clientGemini: "Gemini CLI",
328
- clientOther: "其他",
329
- claudeHint: "在终端中运行:",
330
- geminiHint: "将 mcpServers 条目合并到 ~/.gemini/settings.json(如文件不存在请新建):",
331
- copyCommand: "复制命令",
332
- copySettings: "复制配置",
333
- serverUrl: "服务器 URL",
334
- header: "Authorization 请求头",
335
- copyUrl: "复制 URL",
336
- copyHeader: "复制请求头",
337
- otherHint: "可在任何接受服务器 URL 和请求头的 MCP 应用中使用(例如 Codex CLI、Cursor 或 VS Code)。",
338
- oauthHint: "仅支持 OAuth 登录的应用(如 ChatGPT 和 claude.ai 连接器)暂不支持。",
339
- localOnly: "此地址仅在运行 {{product}} 的电脑上有效。启动隧道后即可从其他地方连接。",
340
- askHint: "然后可以这样提问:“哪些聊天正在等待回复?”"
341
- },
342
- permissions: {
343
- edit: "权限",
344
- editLabel: "更改令牌 {{name}} 的权限",
345
- title: "“{{name}}”的权限",
346
- description: "选择使用此令牌的 AI 助手可以做什么。令牌保持不变:无需重新连接。",
347
- takesEffect: "更改会在助手的下一次请求时生效。读取收件箱和 AI 设置工具保持开启。",
348
- save: "保存",
349
- saved: "权限已保存"
350
- }
351
- }, l = {
352
- title: "设置",
353
- saved: "设置已保存。",
354
- save: "保存设置",
355
- portInvalid: "端口必须介于 1024 和 65535 之间。",
356
- historyInvalid: "历史记录必须介于 0 到 365 天之间。",
357
- restartTitle: "需要重启",
358
- restartBody: "网络更改将在应用(或服务)重启后生效。",
359
- network: {
360
- title: "网络",
361
- port: "端口",
362
- portHint: "仅当其他应用已占用此端口时才需更改。默认 7420。",
363
- lan: "允许从局域网(LAN)访问",
364
- lanHint: "同一 Wi-Fi 下的其他设备可以打开收件箱。",
365
- lanWarningTitle: "局域网流量为明文 HTTP",
366
- lanWarningBody: "密码和消息在本地网络中以未加密方式传输。请仅在可信网络中启用;如需加密的远程访问,请使用隧道。"
367
- },
368
- history: {
369
- title: "历史记录",
370
- days: "关联时导入的历史天数",
371
- daysHint: "0–365 天。下次关联 WhatsApp 时使用。",
372
- unit: "天"
373
- },
374
- device: {
375
- title: "本设备",
376
- description: "保存在此浏览器中,并立即生效。",
377
- themeHint: "“跟随系统”会使用设备的浅色或深色设置。",
378
- notifications: "通知",
379
- notificationsHint: "未打开收件箱时,收到新消息会通知您。",
380
- languageHint: "应用中的菜单、按钮和提示。",
381
- languageShort: {
382
- en: "English",
383
- ms: "BM",
384
- "zh-CN": "中文"
385
- }
386
- },
387
- tabs: {
388
- general: "常规",
389
- ai: "AI",
390
- integrations: "集成",
391
- device: "偏好",
392
- maintenance: "维护"
393
- },
394
- description: "此收件箱的团队设置,以及您自己的偏好。",
395
- account: {
396
- title: "您的账户",
397
- description: "保存到您的账户,在您的每台设备上保持一致。"
398
- }
399
- }, u = {
400
- title: "日终处理",
401
- description: "下班前一键解决全团队的所有未结对话。消息会保留,新收到的消息会自动重新打开对话。",
402
- loading: "正在加载未结对话…",
403
- none: "没有需要解决的未结对话。",
404
- openCount_other: "{{count}} 个未结对话",
405
- button: "解决所有未结对话",
406
- confirmTitle: "解决所有未结对话?",
407
- confirm: "全部解决",
408
- done_other: "已解决 {{count}} 个对话。",
409
- confirmBody: "这将解决全团队当前所有未结对话,并清除负责人。消息和未读计数会保留。之后您可以单独重新打开对话。",
410
- confirmBodyWithCount: "这将解决全团队当前所有未结对话(目前 {{openCount}} 个),并清除负责人。消息和未读计数会保留。之后您可以单独重新打开对话。"
411
- }, d = {
412
- description: "关联到此团队收件箱的 WhatsApp 号码。",
413
- state: {
414
- open: "已连接",
415
- connecting: "正在连接",
416
- qr: "等待扫描二维码",
417
- disconnected: "已断开",
418
- loggedOut: "已退出登录",
419
- replaced: "已在别处打开",
420
- blocked: "已被封禁"
421
- },
422
- connection: "连接",
423
- status: "状态",
424
- linkedNumber: "已关联号码",
425
- name: "名称",
426
- replacedTitle: "会话已在别处打开",
427
- replacedBody: "此号码已从其他地方连接。使用“接管”可在此处重新连接。",
428
- unlinkedBody: "请使用“重新关联”再次关联号码。",
429
- scanTitle: "扫码关联",
430
- scanHint: "在手机上:WhatsApp → 设置 → 已关联的设备 → 关联新设备。",
431
- qrLabel: "WhatsApp 关联二维码",
432
- waitingQrTitle: "等待二维码",
433
- waitingQrBody: "几秒钟后二维码会显示在这里。",
434
- phoneTitle: "或使用手机号码关联",
435
- phoneHint: "获取 8 位字符的代码,无需扫描二维码。",
436
- linkTitle: "关联 WhatsApp",
437
- linkBody: "重新关联以显示新的二维码,然后用手机扫描。",
438
- actionsTitle: "操作",
439
- actions: {
440
- logout: {
441
- label: "退出登录",
442
- title: "退出 WhatsApp?",
443
- body: "已关联的设备将从手机中移除。在重新关联之前,团队收件箱将停止收发消息。消息记录会保留。",
444
- done: "已退出 WhatsApp。",
445
- hint: "从手机的已关联设备中移除此收件箱。消息记录会保留。"
446
- },
447
- relink: {
448
- label: "重新关联",
449
- title: "重新关联 WhatsApp?",
450
- body: "当前会话将被丢弃,并显示新的二维码。请在手机上通过 WhatsApp > 已关联的设备 扫描。",
451
- done: "会话已重置,请扫描新的二维码。",
452
- hint: "丢弃当前会话,并用新的二维码重新配对。"
453
- },
454
- takeover: {
455
- label: "接管",
456
- title: "接管会话?",
457
- body: "另一个实例(例如其他电脑上的 WhatsApp Web)取代了此连接。接管后将在此处重新连接,并断开另一个连接。",
458
- done: "正在此处重新连接。",
459
- hint: "在此处重新连接,并断开在其他地方打开的会话。"
460
- }
461
- }
462
- }, f = {
463
- title: "手机访问",
464
- description: "为团队提供一个链接,随时随地用手机打开收件箱。",
465
- state: {
466
- stopped: "已停止",
467
- starting: "正在启动",
468
- running: "运行中",
469
- error: "错误"
470
- },
471
- modes: {
472
- off: "关闭",
473
- offHint: "仅限本电脑(以及已启用的局域网)。",
474
- quick: "临时链接",
475
- quickHint: "免费链接,重启后会改变。无需账户。",
476
- named: "您的域名",
477
- namedHint: "登录 Cloudflare 并选择一个固定的收件箱地址。"
478
- },
479
- action: {
480
- disconnect: "断开 Cloudflare",
481
- namedConnecting: "正在连接已保存的地址…",
482
- namedConnect: "连接已保存的地址",
483
- quickRestart: "重启临时链接",
484
- quickCreate: "创建临时链接"
485
- },
486
- tokenTooShort: "该令牌似乎太短。",
487
- tokenRequired: "请粘贴 Cloudflare 控制台中的隧道令牌。",
488
- copyUrl: "复制网址",
489
- qrLabel: "隧道网址二维码",
490
- scanHint: "用手机相机扫描即可打开收件箱。",
491
- quickNote: "每次连接或应用重启后,临时链接都会改变。选择“您的域名”可获得固定的收件箱地址。",
492
- lastError: "最近错误",
493
- connectTitle: "团队如何连接",
494
- remoteAccess: "远程访问",
495
- remoteAccessMode: "远程访问模式",
496
- advancedToken: "高级:使用隧道令牌",
497
- advancedTokenBody: "适用于已在 Cloudflare 控制台中配置的现有隧道。上方的引导式登录可自动完成此设置。",
498
- token: "隧道令牌",
499
- tokenHint: "Cloudflare Zero Trust → Networks → Tunnels → 您的隧道 → install token。",
500
- tokenSavedPlaceholder: "••••••••(已保存,留空则保持不变)",
501
- hostname: "公共主机名",
502
- hostnameHint: "隧道配置中路由到 http://127.0.0.1:<port> 的主机名。",
503
- connectWithToken: "使用令牌连接",
504
- disconnectNote: "断开 Cloudflare 会停止公共链接。收件箱仍可在本电脑上使用。消息和已保存的域名会保留,之后可以重新连接。",
505
- disconnectNoteLan: "断开 Cloudflare 会停止公共链接。收件箱仍可在本电脑及已启用的局域网中使用。消息和已保存的域名会保留,之后可以重新连接。",
506
- diagnostics: "高级:连接诊断"
507
- }, p = {
508
- loading: "正在加载 Cloudflare 设置",
509
- invalidApproval: "无法验证 Cloudflare 登录地址。请取消登录后重试。",
510
- saved: {
511
- label: "已保存的 Cloudflare 地址",
512
- running: "您的域名已连接",
513
- starting: "正在连接您的收件箱…",
514
- idle: "Cloudflare 连接已保存",
515
- runningBody: "团队可以使用此地址,并用各自的收件箱账户登录。",
516
- startingBody: "正在等待 Cloudflare 连接。请保持本电脑和应用运行。",
517
- idleBody: "连接下方已保存的地址,让团队可以使用收件箱。",
518
- change: "更改地址"
519
- },
520
- setupLabel: "设置您的 Cloudflare 域名",
521
- step1: {
522
- title: "1. 连接您的 Cloudflare 账户",
523
- body: "在 Cloudflare 登录并授权要使用的域名,授权后返回此处。您需要一个已添加到 Cloudflare 账户的域名。",
524
- connected: "Cloudflare 账户已连接。",
525
- refresh: "刷新域名",
526
- another: "选择其他域名",
527
- anotherHint: "下方仅显示已授权的域名。“选择其他域名”会发起新的 Cloudflare 授权。",
528
- waitingApproval: "正在等待您在 Cloudflare 上授权…",
529
- preparing: "正在准备 Cloudflare 登录…",
530
- open: "打开 Cloudflare 登录",
531
- cancel: "取消登录",
532
- autoUpdate: "授权后此页面会自动更新。请保持应用运行。",
533
- retry: "重新登录 Cloudflare",
534
- signIn: "登录 Cloudflare"
535
- },
536
- attention: "Cloudflare 设置需要处理",
537
- noDomainTitle: "未找到已授权的域名",
538
- noDomainBody: "请先将域名添加到 Cloudflare,然后选择其他域名进行授权。如果您刚授权了域名,请尝试“刷新域名”。",
539
- formInvalid: "请检查域名、地址和隧道名称。",
540
- step2: {
541
- title: "2. 选择收件箱地址",
542
- domain: "域名",
543
- domainPlaceholder: "选择已授权的域名",
544
- account: "账户:{{name}}",
545
- prefix: "地址前缀",
546
- prefixHint: "域名前的简短单词,例如 inbox 或 support。",
547
- preview: "团队将打开",
548
- previewLabel: "收件箱地址预览",
549
- tunnelName: "隧道名称",
550
- tunnelNameHint: "在 Cloudflare 中便于识别此应用的名称,不会改变地址。"
551
- },
552
- step3: {
553
- saveTitle: "3. 保存更改",
554
- connectTitle: "3. 连接收件箱",
555
- body: "这将使用上方地址发布收件箱,并设置其 Cloudflare 连接。团队成员仍需使用平常的收件箱账户登录。请保持本电脑和应用运行。",
556
- connecting: "正在连接您的收件箱…",
557
- saveSubmit: "保存并连接更改",
558
- createSubmit: "创建并连接收件箱",
559
- unchanged: "此地址和隧道名称已保存。",
560
- cancel: "取消更改"
561
- }
562
- }, m = /*#__PURE__*/ JSON.parse("{\"settingsTitle\":\"AI\",\"settingsDescription\":\"连接 ChatGPT 或 OpenAI API 密钥。此收件箱的所有 AI 成员共用一个提供商和模型。\",\"roleBadge\":\"AI · 销售客服\",\"addMember\":\"添加 AI 成员\",\"membersDescription\":\"为客户聊天提供服务的团队和 AI 助手。\",\"assistant\":\"AI 助手\",\"behavior\":\"在未分配的客户聊天中等待 10 秒后回复并接管。将聊天分配给自己即可接手。AI 仅在客户确认后解决聊天。需要帮助时,AI 会将聊天分配给没有进行中聊天的在线人工客服,或将其退回未分配状态。\",\"memberName\":\"AI 成员名称\",\"roleDescription\":\"角色:销售客服 — 使用业务知识回答基本问题。\",\"keySaved\":\"OpenAI API 密钥已保存。\",\"keyMissing\":\"尚未配置 OpenAI API 密钥。\",\"connectionMode\":\"连接模式\",\"apiKey\":\"OpenAI API 密钥\",\"keepKeyHint\":\"输入新密钥。留空则保留已保存的密钥。\",\"apiKeyHint\":\"安全存储在收件箱服务器上。API 用量与 ChatGPT 分开计费。\",\"enterKey\":\"输入 API 密钥\",\"cancelLogin\":\"取消登录\",\"openLogin\":\"打开登录页面\",\"invalidLink\":\"登录链接无效。请取消登录后重试。\",\"model\":\"模型(可选)\",\"apiModelHint\":\"留空使用 gpt-4.1-mini。\",\"instructions\":\"AI 指令\",\"instructionsHint\":\"已预填推荐指令;可按您的语气修改,也可保持不变。\",\"saveConnection\":\"保存 AI 连接\",\"connectionSaved\":\"收件箱 AI 连接已保存。\",\"memberSaved\":\"AI 成员设置已保存。\",\"checkSettings\":\"请检查 AI 设置。\",\"fileTypeError\":\"请选择 TXT、Markdown、PDF 或 DOCX 文档。\",\"fileSizeError\":\"文档大小不得超过 10 MB。\",\"chatgptState\":\"ChatGPT:{{state}}\",\"modelInvalid\":\"ChatGPT 模式支持 {{models}}。留空使用默认模型。\",\"modelSeparator\":\" 或 \",\"refreshError\":\"无法刷新 AI 连接状态。{{error}}\",\"state\":{\"unavailable\":\"不可用\",\"signed_out\":\"已退出\",\"signing_in\":\"正在登录\",\"connected\":\"已连接\",\"error\":\"错误\",\"expired\":\"已过期\"},\"signedInAs\":\"已登录:{{email}}\",\"signedIn\":\"已登录 ChatGPT\",\"signInSavesMode\":\"登录时也会将 ChatGPT 保存为连接方式。\",\"signOut\":\"退出登录\",\"signInWithChatgpt\":\"使用 ChatGPT 登录\",\"testConnection\":\"测试连接\",\"testOk\":\"{{model}} 回复:{{reply}}\",\"testFailed\":\"测试失败:{{error}}\",\"chatgptModel\":\"模型\",\"modelAuto\":\"自动(推荐)\",\"modelsLive\":\"您的 ChatGPT 账户可用的模型。\",\"modelsFallback\":\"默认模型列表。登录后可加载您账户的模型。\",\"modeApi\":\"API 密钥\",\"modeChatgpt\":\"ChatGPT\",\"pasteLabel\":\"在另一台电脑上登录?\",\"pasteHint\":\"批准后,浏览器会打开一个可能无法加载的页面。请从地址栏复制完整地址并粘贴到这里。\",\"pastePlaceholder\":\"http://localhost:1455/auth/callback?code=…\",\"pasteSubmit\":\"完成登录\",\"saveBeforeTest\":\"请先保存连接再测试。\",\"bannerExpiredTitle\":\"ChatGPT 登录已过期\",\"bannerErrorTitle\":\"ChatGPT 连接已停止工作\",\"bannerFallback\":\"AI 连接无法使用。\",\"bannerChatsReleased\":\"AI 成员已停止回复。在连接恢复之前,聊天会保持未分配,交由您的团队处理。\",\"bannerExpiredText\":\"ChatGPT 登录已过期,请重新登录。\",\"popupBlocked\":\"登录页面被浏览器拦截。请使用“打开登录页面”。\",\"page\":{\"defaultTitle\":\"AI 销售助理\",\"breadcrumb\":\"导航路径\",\"pill\":{\"off\":\"已关闭\",\"on\":\"已开启\",\"needsConnection\":\"需要连接\",\"needsKnowledge\":\"需要业务背景\"},\"turnOn\":\"开启\",\"turnOff\":\"关闭\",\"reasonConnection\":\"请先在下方连接 AI。\",\"reasonKnowledge\":\"请先添加业务背景。\",\"turnedOn\":\"AI 成员已开启。\",\"turnedOff\":\"AI 成员已关闭。\",\"draftSaved\":\"已将 AI 成员保存为草稿,以便添加业务背景。\",\"stepName\":\"名称和角色\",\"stepInstructions\":\"AI 指令\",\"stepContext\":\"业务背景\",\"stepHandoff\":\"转交规则\",\"stepTry\":\"试一试\",\"instructionsPlaceholder\":\"例如:简短礼貌地回复。回答有关价格、配送和营业时间的问题。投诉或退款请转交人工。\",\"useDefaultInstructions\":\"使用默认指令\",\"handoffLabel\":\"转交规则\",\"handoffHint\":\"AI 何时应把聊天转交给您的团队?每行一条规则。留空表示没有额外规则。\",\"handoffPlaceholder\":\"例如:\\n- 客户要求退款\\n- 客户需要报价\",\"handoffSystem\":\"无论此处如何填写,以下情况始终转交:客户要求人工服务、AI 无法办理的请求(下单、预订、付款)、业务背景中没有的答案,以及法律、医疗或个人资料相关事项。\",\"useDefaultHandoff\":\"使用默认规则\",\"howItWorks\":\"工作原理\",\"connectionLine\":\"连接:{{state}}\",\"openSettings\":\"设置 → AI\",\"save\":\"保存\",\"description\":\"设置、测试并开启回复客户对话的 AI 助手。\",\"usingRecommended\":\"正在使用推荐的指令。可按您的语气进行编辑。\",\"advanced\":\"高级:指令和转接规则\",\"advancedRecommended\":\"使用推荐设置\",\"advancedCustomised\":\"已自定义\"},\"try\":{\"label\":\"客户问题\",\"placeholder\":\"例如:运费是多少?\",\"enterHint\":\"按 Enter 提问,Shift+Enter 换行。\",\"ask\":\"提问\",\"hint\":\"使用已保存的业务背景以及本页的名称和指令(包括未保存的更改)回答。不会向客户发送任何内容。\",\"decision\":{\"answer\":\"回答\",\"ask_resolution\":\"已询问是否解决\",\"resolve\":\"将标记为已解决\",\"handoff\":\"将转交人工\",\"no_reply\":\"不会回复\"},\"handoffReason\":\"原因:{{reason}}\",\"lookups\":\"AI 查询的内容\",\"lookedUp\":\"AI 查询了 {{title}} · {{source}}\",\"lookupFailed\":\"无法查询 {{title}} · {{source}}\",\"noReply\":\"AI 不会发送任何内容,并继续负责此聊天。\",\"noKnowledge\":\"未找到匹配的业务知识,因此 AI 会在不调用模型的情况下将此聊天转交给人工。\",\"model\":\"模型:{{model}}\",\"failed\":\"无法回答:{{error}}\"},\"voice\":{\"title\":\"语音消息\",\"description\":\"客户的语音消息会转写成文字,方便 AI 和团队阅读。\",\"engine\":\"转写方式\",\"off\":\"关闭\",\"offHint\":\"语音消息只保留音频。AI 会请客户输入文字提问。\",\"local\":\"在这台电脑上\",\"localHint\":\"音频留在这台电脑上。\",\"localNeedsModel\":\"请先在下方下载语音模型。\",\"cloud\":\"云端(OpenAI)\",\"cloudHint\":\"音频会发送到 OpenAI 进行转写。\",\"cloudNeedsKey\":\"需要在上方 AI 连接中保存 OpenAI API 密钥。\",\"modelTitle\":\"这台电脑的语音模型\",\"notInstalled\":\"尚未安装。只需下载一次,之后在这台电脑上转写。\",\"download\":\"下载语音模型({{size}} MB)\",\"downloading\":\"正在下载… {{percent}}%\",\"downloadProgress\":\"{{done}} / {{total}} MB\",\"cancel\":\"取消下载\",\"installed\":\"已安装\",\"remove\":\"移除\",\"removeTitle\":\"移除语音模型?\",\"removeText\":\"这台电脑将不再转写语音消息。之后可以重新下载模型。\",\"removeConfirm\":\"移除模型\",\"saved\":\"语音消息设置已保存\",\"privacy\":\"选择“在这台电脑上”时,语音不会离开这台电脑;选择云端时,音频会发送到 OpenAI。转写文字会随聊天一起保存。\",\"errors\":{\"disk_space\":\"磁盘空间不足。请至少释放 800 MB 后重试。\",\"network\":\"下载失败。请检查网络连接后重试。\",\"verification\":\"下载的文件校验和不符,已删除。请重试。\",\"redirect\":\"下载被转到意外的地址,已停止。\",\"write\":\"无法在这台电脑上保存语音模型。\",\"unknown\":\"下载失败。请重试。\"}},\"contextPanel\":{\"hint\":\"AI 用来回答的文件和文本:公司简介、产品、价格、政策和常见问题。\",\"limits\":\"最多 20 项,每个文件不超过 10 MB\",\"search\":\"搜索业务背景\",\"searchPlaceholder\":\"按名称搜索\",\"select\":\"选择\",\"cancel\":\"取消\",\"deleteSelected_other\":\"删除 {{count}} 项\",\"add\":\"添加\",\"upload\":\"从设备上传\",\"addText\":\"添加文本内容\",\"name\":\"名称\",\"size\":\"大小\",\"details\":\"详情\",\"type\":\"类型\",\"kindFile\":\"文件\",\"kindText\":\"文本内容\",\"added\":\"添加于{{when}}\",\"meta\":\"{{size}} · {{added}}\",\"selectItem\":\"选择 {{name}}\",\"empty\":\"还没有业务背景:添加公司简介、产品清单、价格和常见问题。\",\"noMatches\":\"没有与“{{query}}”匹配的项目。\",\"limitReached\":\"删除一项后才能添加新的(最多 20 项)。\",\"textLabel\":\"文本内容\",\"characterCount\":\"{{count}} / {{max}} 个字符\",\"namePlaceholder\":\"例如:价目表\",\"textPlaceholder\":\"例如:\\nEzy 饼屋在新山销售蛋糕和面包。\\n每天上午 9 点至下午 6 点营业,公共假期休息。\\n10 公里内配送费 RM10。\\n\\n问:可以定制订单吗?\\n答:可以,需提前 3 天通知。\",\"addTextTitle\":\"添加文本内容\",\"save\":\"保存\",\"delete\":\"删除\",\"close\":\"关闭\",\"loading\":\"正在加载…\",\"loadError\":\"无法打开此项目。{{error}}\",\"preview\":\"提取的文本(只读)\",\"previewTruncated\":\"仅显示提取文本的开头部分。\",\"fileReadOnly\":\"文件无法编辑。请删除此文件并上传新版本。\",\"textAdded\":\"已添加文本内容。\",\"fileAdded\":\"已添加文件。\",\"changesSaved\":\"更改已保存。\",\"deleted_other\":\"已删除 {{count}} 项。\",\"confirmOne\":\"删除 {{name}}?\",\"confirmMany_other\":\"删除 {{count}} 项?\",\"confirmText\":\"AI 将立即停止使用它。此操作无法撤销。\",\"deleteFailed\":\"无法删除:{{names}}\",\"namesMore\":\"{{names}} 等另外 {{count}} 项\"},\"defaults\":{\"instructions\":\"角色\\n你是本商家的 WhatsApp 助手。你负责回答客户咨询和产品问题,并以专业的方式代表商家。\\n\\n范围\\n你可以协助:\\n- 产品:功能、规格、款式、库存情况和使用方法\\n- 一般咨询:营业时间、地点、下单方式、配送区域、付款方式和退货政策\\n- 下一步:如何下单、如何索取报价,或联系我们的团队\\n与本商家或其产品无关的话题(闲聊、新闻、编程、作业、观点、政治、宗教),你不提供帮助。请用一句话礼貌回复并引导回正题,例如:“抱歉,我只能回答有关我们产品和服务的问题。请问有什么可以帮您?”\\n\\n知识\\n- 产品名称、型号和价格必须与业务背景中的写法完全一致。\\n- 切勿猜测价格、库存、规格、配送日期、促销或政策。如果缺少信息,请说明并让我们的团队确认。\\n- 切勿承诺折扣、赠品或特殊处理。\\n\\n语言\\n- 使用客户的语言回复。如果客户混用多种语言,请使用其消息的主要语言回复。\\n- 如果无法使用客户的语言回复,请使用业务背景中指定的默认语言,否则使用英语。\\n\\n风格\\n- 专业、礼貌、友好;不用俚语。最多使用一个表情符号,且仅在合适时使用。\\n- 一到三句短句。仅在列出选项或规格时使用简短列表。\\n- 先回答问题:不要冗长的问候,也不要复述问题。\\n- 需要时最多问一个澄清问题(例如哪个型号、尺寸或区域)。\\n- 仅使用 WhatsApp 格式:用 *粗体* 标出关键信息,使用普通换行。不要使用标题、表格或未提供给你的链接。\",\"handoffRules\":\"- 客户不满或提出投诉\\n- 客户要求退款、退货、换货或保修索赔\\n- 客户询问现有订单、配送或付款\\n- 客户需要批量或定制订单,或索取报价\\n- 客户想议价或要求折扣\"},\"replaceKey\":\"替换密钥\",\"keepKey\":\"保留已保存的密钥\",\"modelAdvanced\":\"高级:选择模型\",\"edit\":{\"open\":\"用 AI 修改\",\"unavailable\":\"请先在上方连接 AI,才能使用“用 AI 修改”。\",\"title\":{\"instructions\":\"用 AI 修改 AI 指令\",\"handoffRules\":\"用 AI 修改转交规则\"},\"description\":\"描述要做的修改。应用前你会先审阅。\",\"requestLabel\":\"需要修改什么?\",\"placeholder\":{\"instructions\":\"例如:用更亲切、轻松的语气回复\",\"handoffRules\":\"例如:把退款请求转交给人工\"},\"suggest\":\"生成建议\",\"suggestAgain\":\"重新建议\",\"writing\":\"正在撰写建议…\",\"result\":{\"instructions\":\"建议的 AI 指令\",\"handoffRules\":\"建议的转交规则\"},\"removed\":\"删除:\",\"added\":\"新增:\",\"noChange\":\"没有建议任何修改——请换个方式描述。\",\"failed\":\"AI 无法给出修改建议,请重试。\",\"discard\":\"放弃\",\"apply\":{\"instructions\":\"应用到 AI 指令\",\"handoffRules\":\"应用到转交规则\"},\"applyNote\":\"应用只会填入文本框;请在页面上按“保存”才会保留。\",\"applied\":\"已应用。请按“保存”保留修改。\",\"unchanged_other\":\"{{count}} 行未更改\"},\"keyOk\":\"密钥有效。\",\"connectionReady\":\"AI 连接已就绪。\",\"setupAgent\":\"设置销售代理\",\"moreFeatures\":\"更多 AI 功能\",\"moreFeaturesHint\":\"语音消息和客户资料补全\",\"remoteSignInHint\":\"请在运行收件箱的电脑上的浏览器中登录;如在其他电脑上登录,请按提示粘贴最终地址。\",\"connect\":{\"title\":\"连接 AI\",\"chatgpt\":\"使用 ChatGPT 登录\",\"recommended\":\"推荐\",\"note\":\"使用您的 ChatGPT 账户。此连接为非官方连接,可能会停止工作;您可以随时改用 API 密钥。\",\"signingIn\":\"正在登录… 请在 ChatGPT 窗口中完成。\",\"cancel\":\"取消\",\"connectedChatgpt\":\"已连接 ChatGPT\",\"connectedAs\":\"已登录为 {{email}}\",\"connectedKey\":\"OpenAI API 密钥已检查并保存\",\"useKey\":\"改用 OpenAI API 密钥\",\"useChatgpt\":\"改用 ChatGPT 登录\",\"keyLabel\":\"OpenAI API 密钥\",\"keyHint\":\"以 sk- 开头。可在 platform.openai.com → API keys 创建。\",\"testKey\":\"测试密钥\",\"keyFailedFallback\":\"此密钥无效。请检查是否完整复制。\",\"keyInvalid\":\"OpenAI 不接受此密钥。请检查是否完整复制。\",\"keyUnreachable\":\"无法连接 OpenAI 检查密钥。请检查网络连接后重试。\",\"keyRateLimited\":\"OpenAI 繁忙或此密钥已达到用量限制。请稍等一分钟后重试。\",\"keyForbidden\":\"OpenAI 不允许此密钥列出模型。受限密钥或地区限制可能导致此情况;此密钥仍可能用于回复。\",\"saveAnyway\":\"仍然保存\"}}"), h = {
563
- title: "客户资料补全",
564
- description: "从新的私聊消息中自动保存明确的客户资料。",
565
- enable: "自动更新客户资料",
566
- independent: "使用共享的 AI 连接,包括由员工处理的对话。销售助手回复可以保持关闭。",
567
- paused: "资料补全已暂停,等待 AI 连接恢复。",
568
- thresholds: "达到 90/100 才填写空白字段。达到 95/100 且有明确的当前证据才替换已有值。含糊的资料会被跳过。",
569
- rules: "查看评分规则",
570
- weights: "归属 30 · 陈述清晰度 25 · 上下文 20 · 验证 15 · 当前证据 10。每个字段单独决定;平均分仅用于审核摘要。",
571
- audit: "查看审核记录",
572
- average: "平均 {{score}}/100",
573
- details: "资料补全详情",
574
- meaning: "证据评分解释决策依据,不代表概率。",
575
- close: "关闭",
576
- savedFields: "参与平均分计算的字段:{{count}}",
577
- added: "已添加",
578
- replaced: "已替换",
579
- threshold: "门槛 {{score}}",
580
- source: "查看来源对话",
581
- policy: "精确平均分 {{average}} · 评分规则 {{policy}}",
582
- action: "客户资料已补全",
583
- settingsAction: "客户资料补全设置已更改",
584
- fields: {
585
- name: "姓名",
586
- company: "公司",
587
- email: "电子邮箱",
588
- address: "地址"
589
- },
590
- criteria: {
591
- ownership: "归属",
592
- clarity: "陈述清晰度",
593
- context: "上下文",
594
- validation: "验证",
595
- freshness: "当前证据"
596
- },
597
- reasons: {
598
- self_reported: "客户明确提供了自己的当前资料。",
599
- correction: "客户明确更正了已保存的资料。"
600
- }
601
- }, g = {
602
- title: e,
603
- titleWithSection: t,
604
- nav: n,
605
- layout: r,
606
- ui: i,
607
- members: a,
608
- quickReplies: o,
609
- audit: s,
610
- integrations: c,
611
- settings: l,
612
- resolveAll: u,
613
- whatsapp: d,
614
- tunnel: f,
615
- cloudflare: p,
616
- ai: m,
617
- enrichment: h
618
- };
619
- //#endregion
620
- export { m as ai, s as audit, p as cloudflare, g as default, h as enrichment, c as integrations, r as layout, a as members, n as nav, o as quickReplies, u as resolveAll, l as settings, e as title, t as titleWithSection, f as tunnel, i as ui, d as whatsapp };