local-operator-ui 0.39.9 → 0.40.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.
- package/out/main/index.js +407 -36
- package/out/preload/index.js +24 -2
- package/out/renderer/assets/{_basePickBy-op663AbZ.js → _basePickBy-DpS1gi-o.js} +1 -1
- package/out/renderer/assets/{_baseUniq-BmA1_2me.js → _baseUniq-BU_W0zZ3.js} +1 -1
- package/out/renderer/assets/{agent-details-page-DD95Pj8m.js → agent-details-page-mS7IJBVP.js} +2 -2
- package/out/renderer/assets/{agent-hub-page-KqbaZ4jt.js → agent-hub-page-CWGw4Aok.js} +2 -2
- package/out/renderer/assets/agents-page-CzMpVd20.js +7 -0
- package/out/renderer/assets/arc-T0TkGR-7.js +1 -0
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-FOFq1O67.js +36 -0
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-BbL6rC8t.js → blockDiagram-JOT3LUYC-Dbo2qDB8.js} +6 -6
- package/out/renderer/assets/{book-open-C5VnLNlM.js → book-open-Dt6NrEVH.js} +1 -1
- package/out/renderer/assets/browser-page-4D5CfHGL.js +1 -0
- package/out/renderer/assets/browser-webauthn-prompt-CwtoTzl0.js +1 -0
- package/out/renderer/assets/{building-2-BinkVpHL.js → building-2-C1lADJ7I.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-TY6fUFKt.js → c4Diagram-VJAJSXHY-B5h8VwBj.js} +1 -1
- package/out/renderer/assets/channel-ChMTCIo9.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-dLL3W7IZ.js → chunk-4BMEZGHF-MR8YxQC8.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-D78WiLnh.js → chunk-A2AXSNBT-DCwZuOlD.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-BKmfkMGW.js → chunk-AEK57VVT-DiUHgqSA.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-CZre37TG.js → chunk-D6G4REZN-BLBf1anZ.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-BVFKaoz8.js → chunk-RZ5BOZE2-8iG8Y9sJ.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-C4B9nFg3.js → chunk-XZIHB7SX-BUzPkuyD.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-olxpExNZ.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-olxpExNZ.js +1 -0
- package/out/renderer/assets/clone-BH-xWYVr.js +1 -0
- package/out/renderer/assets/console-mirror-VlsurRTu.js +44 -0
- package/out/renderer/assets/consoleCapture-BAEbuUE1.js +1 -0
- package/out/renderer/assets/{conversation-input-sync-Drf7pG8h.js → conversation-input-sync-D8QfxmnI.js} +250 -307
- package/out/renderer/assets/dagre-OKDRZEBW-BVOSa9Ir.js +4 -0
- package/out/renderer/assets/diagram-SSKATNLV-Cd2OUAVJ.js +43 -0
- package/out/renderer/assets/diagram-VNBRO52H-CtrjNGKr.js +24 -0
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-CbYsJOXr.js → erDiagram-Q7BY3M3F-DfVP3bcN.js} +1 -1
- package/out/renderer/assets/error-boundary-B3EFBlFF.js +126 -0
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-xksRM4qL.js → flowDiagram-4HSFHLVR-CGAjhZfs.js} +1 -1
- package/out/renderer/assets/ganttDiagram-APWFNJXF-Drljtxgq.js +257 -0
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-BHemdXzF.js +65 -0
- package/out/renderer/assets/{graph-F4dHmEZ9.js → graph-CHQd8w8o.js} +1 -1
- package/out/renderer/assets/hash-CgPb_SeD.js +6 -0
- package/out/renderer/assets/heart-NsStSoql.js +6 -0
- package/out/renderer/assets/index-BkGcHmBa.css +1 -0
- package/out/renderer/assets/index-CGOyAbPs.js +7 -0
- package/out/renderer/assets/index-DAftzhq_.js +57 -0
- package/out/renderer/assets/index-Y7gJQGpG.js +1 -0
- package/out/renderer/assets/index-ew1hMKtY.js +835 -0
- package/out/renderer/assets/infoDiagram-PH2N3AL5-DAlyVNJm.js +2 -0
- package/out/renderer/assets/{installer-AUhVnro1.js → installer-BUHF69aB.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-BKYQCvNS.js → journeyDiagram-U35MCT3I-1EO-cM2S.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-Af9PLtCI.js → kanban-definition-NDS4AKOZ-BjWHx1j6.js} +1 -1
- package/out/renderer/assets/{layout-DArRUuWc.js → layout-BITZWXG5.js} +1 -1
- package/out/renderer/assets/legacy-agents-page-EkXsYE5Y.js +33 -0
- package/out/renderer/assets/library-page-A0nXlev9.js +157 -0
- package/out/renderer/assets/{mermaid.core-DeacZbEh.js → mermaid.core-BoximGnF.js} +5 -5
- package/out/renderer/assets/mesh-page-CbJ0YzZR.js +1 -0
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-CtxUEaL0.js +95 -0
- package/out/renderer/assets/mini-B95cJkWv.js +1 -0
- package/out/renderer/assets/{notebook-pen-CAaIu5ma.js → notebook-pen-BxTTwLf8.js} +1 -1
- package/out/renderer/assets/org-access-BO4A2FAr.js +1 -0
- package/out/renderer/assets/org-surface-gate-Bp_arWAv.js +1 -0
- package/out/renderer/assets/{page-header-DxdkMDUw.js → page-header-DhME4jBY.js} +1 -1
- package/out/renderer/assets/path-utils-DXMoAzHL.js +58 -0
- package/out/renderer/assets/{pieDiagram-IB7DONF6-BAijqzhx.js → pieDiagram-IB7DONF6-BET_kuRa.js} +2 -2
- package/out/renderer/assets/{projects-page-CyQadeH9.js → projects-page-CrvzCjsd.js} +4 -4
- package/out/renderer/assets/publication-validation-BSKuV2BJ.js +1 -0
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-B9gsMu2n.js → quadrantDiagram-7GDLP6J5-Wn0SqLL-.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-f4VBDN4e.js → radar-MK3ICKWK-DrM9X8dD.js} +1 -1
- package/out/renderer/assets/radient-auth-buttons-DQnvQV0I.js +1 -0
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CPNfG1Zx.js → requirementDiagram-KVF5MWMF-BdDYpNvz.js} +1 -1
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-C5mpSMB8.js +10 -0
- package/out/renderer/assets/{schedules-page-CroQduzq.js → schedules-page-C4tiK1q4.js} +4 -4
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-BptLOcCw.js → sequenceDiagram-X6HHIX6F-B3Cs3RcE.js} +1 -1
- package/out/renderer/assets/settings-page-BZEp-NUB.js +287 -0
- package/out/renderer/assets/smartart-0y9MEJnm.js +1 -0
- package/out/renderer/assets/stateDiagram-DGXRK772-TzXzPiSs.js +1 -0
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-CvQ7ch2C.js +1 -0
- package/out/renderer/assets/team-bridge-page-ybfd-TgP.js +26 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-mfxv2tvk.js → timeline-definition-BDJGKUSR-D9poGZsh.js} +1 -1
- package/out/renderer/assets/use-download-agent-mutation-CpziX3j_.js +56 -0
- package/out/renderer/assets/use-session-snapshot-uuzUNGgk.js +1 -0
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-DU7xqK3g.js → xychartDiagram-VJFVF3MP-Bpq99cbF.js} +1 -1
- package/out/renderer/console-capture.html +5 -5
- package/out/renderer/index.html +7 -7
- package/out/renderer/installer.html +4 -4
- package/out/renderer/mini.html +7 -7
- package/package.json +2 -2
- package/out/renderer/assets/agents-page-BuW5YXsO.js +0 -7
- package/out/renderer/assets/arc-BDKgui3b.js +0 -1
- package/out/renderer/assets/architectureDiagram-IEHRJDOE-DQ-ywUWn.js +0 -36
- package/out/renderer/assets/browser-page-Blp9VxzI.js +0 -1
- package/out/renderer/assets/browser-webauthn-prompt-CIVC5zZy.js +0 -1
- package/out/renderer/assets/channel-BXgHvdBf.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-DqhUybG_.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-DqhUybG_.js +0 -1
- package/out/renderer/assets/clone-Dy0JmXpj.js +0 -1
- package/out/renderer/assets/console-mirror-CPwb8uF3.js +0 -44
- package/out/renderer/assets/consoleCapture-HmARhax8.js +0 -1
- package/out/renderer/assets/dagre-OKDRZEBW-Dh0W2jNu.js +0 -4
- package/out/renderer/assets/diagram-SSKATNLV-DRCrONrr.js +0 -43
- package/out/renderer/assets/diagram-VNBRO52H-BV4nGPJx.js +0 -24
- package/out/renderer/assets/error-boundary-Cxrbe_jr.js +0 -126
- package/out/renderer/assets/ganttDiagram-APWFNJXF-mPElU2p8.js +0 -257
- package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-GsnNXRGz.js +0 -65
- package/out/renderer/assets/hash-DY3q9E3o.js +0 -6
- package/out/renderer/assets/index-D2xD4O43.js +0 -835
- package/out/renderer/assets/index-DOY6mKnp.js +0 -1
- package/out/renderer/assets/index-DecxvzI1.js +0 -57
- package/out/renderer/assets/index-OxbcfWJz.css +0 -1
- package/out/renderer/assets/index-n0UKEmyA.js +0 -7
- package/out/renderer/assets/infoDiagram-PH2N3AL5-Bj2irJ1P.js +0 -2
- package/out/renderer/assets/legacy-agents-page-DoDPY_st.js +0 -33
- package/out/renderer/assets/library-page-CCZamoeo.js +0 -157
- package/out/renderer/assets/mesh-page-b0Arx7SZ.js +0 -1
- package/out/renderer/assets/mindmap-definition-ALO5MXBD-D7Dx3AOZ.js +0 -95
- package/out/renderer/assets/mini-BCNMkGXS.js +0 -1
- package/out/renderer/assets/org-access-BnJqhAjv.js +0 -1
- package/out/renderer/assets/org-surface-gate-C2iuuUmY.js +0 -1
- package/out/renderer/assets/publication-validation-BLE_XzAT.js +0 -1
- package/out/renderer/assets/radient-auth-buttons-ukARjoyK.js +0 -1
- package/out/renderer/assets/sankeyDiagram-QLVOVGJD-BlICGCPu.js +0 -10
- package/out/renderer/assets/settings-page-B6GsvZtx.js +0 -287
- package/out/renderer/assets/smartart-54M0TKRG.js +0 -1
- package/out/renderer/assets/stateDiagram-DGXRK772-LIFxYM21.js +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DfyWsnvp.js +0 -1
- package/out/renderer/assets/team-bridge-page-CG0IpAuo.js +0 -16
- package/out/renderer/assets/ui-preferences-store-BA52R-Fw.js +0 -1
- package/out/renderer/assets/use-download-agent-mutation-BxernpiS.js +0 -61
- package/out/renderer/assets/use-session-snapshot-sSI_vLQL.js +0 -1
package/out/main/index.js
CHANGED
|
@@ -2499,13 +2499,35 @@ const desktopRequestUnion = zod.z.discriminatedUnion("op", [
|
|
|
2499
2499
|
before_seq: zod.z.number().int().nonnegative().optional(),
|
|
2500
2500
|
endpoint_id: id$1.optional()
|
|
2501
2501
|
}).strict(),
|
|
2502
|
+
zod.z.object({
|
|
2503
|
+
op: zod.z.literal("team_bridge.reactions.toggle"),
|
|
2504
|
+
conversation_id: id$1,
|
|
2505
|
+
message_id: id$1,
|
|
2506
|
+
tenant_id: id$1.optional(),
|
|
2507
|
+
emoji: zod.z.string().min(1),
|
|
2508
|
+
active: zod.z.boolean()
|
|
2509
|
+
}).strict(),
|
|
2502
2510
|
zod.z.object({
|
|
2503
2511
|
op: zod.z.literal("team_bridge.messages.send"),
|
|
2504
2512
|
conversation_id: id$1,
|
|
2505
2513
|
tenant_id: id$1.optional(),
|
|
2506
2514
|
client_ref: id$1,
|
|
2507
2515
|
body: zod.z.string().min(1),
|
|
2508
|
-
agent_label: zod.z.string().min(1).max(64).optional()
|
|
2516
|
+
agent_label: zod.z.string().min(1).max(64).optional(),
|
|
2517
|
+
/* Reply in this root message's thread; the hub validates the root. */
|
|
2518
|
+
thread_root_id: id$1.optional()
|
|
2519
|
+
}).strict(),
|
|
2520
|
+
/*
|
|
2521
|
+
* One thread (root + replies, oldest-first) under the history gate. Paging
|
|
2522
|
+
* runs FORWARD with an inclusive `after_seq`, because a thread reads top-down.
|
|
2523
|
+
*/
|
|
2524
|
+
zod.z.object({
|
|
2525
|
+
op: zod.z.literal("team_bridge.messages.replies"),
|
|
2526
|
+
conversation_id: id$1,
|
|
2527
|
+
message_id: id$1,
|
|
2528
|
+
tenant_id: id$1.optional(),
|
|
2529
|
+
limit: zod.z.number().int().min(1).max(100).optional(),
|
|
2530
|
+
after_seq: zod.z.number().int().nonnegative().optional()
|
|
2509
2531
|
}).strict(),
|
|
2510
2532
|
zod.z.object({
|
|
2511
2533
|
op: zod.z.literal("team_bridge.read"),
|
|
@@ -3420,6 +3442,7 @@ const READ_ONLY_OPS = /* @__PURE__ */ new Set([
|
|
|
3420
3442
|
"team_bridge.conversations.list",
|
|
3421
3443
|
"team_bridge.conversations.get",
|
|
3422
3444
|
"team_bridge.messages.list",
|
|
3445
|
+
"team_bridge.messages.replies",
|
|
3423
3446
|
"team_bridge.unread",
|
|
3424
3447
|
"team_bridge.directory",
|
|
3425
3448
|
"team_bridge.status",
|
|
@@ -5073,6 +5096,17 @@ function desktopEndpoint(request) {
|
|
|
5073
5096
|
method: "GET"
|
|
5074
5097
|
};
|
|
5075
5098
|
}
|
|
5099
|
+
case "team_bridge.reactions.toggle": {
|
|
5100
|
+
const path2 = `/v1/desktop/team-bridge/conversations/${encodeURIComponent(request.conversation_id)}/messages/${encodeURIComponent(request.message_id)}/reactions/${encodeURIComponent(request.emoji)}`;
|
|
5101
|
+
return request.active ? {
|
|
5102
|
+
path: path2,
|
|
5103
|
+
method: "PUT",
|
|
5104
|
+
body: request.tenant_id ? { tenant_id: request.tenant_id } : {}
|
|
5105
|
+
} : {
|
|
5106
|
+
path: `${path2}${tenantQuery(request.tenant_id)}`,
|
|
5107
|
+
method: "DELETE"
|
|
5108
|
+
};
|
|
5109
|
+
}
|
|
5076
5110
|
case "team_bridge.messages.send":
|
|
5077
5111
|
return {
|
|
5078
5112
|
path: `/v1/desktop/team-bridge/conversations/${encodeURIComponent(request.conversation_id)}/messages`,
|
|
@@ -5081,9 +5115,23 @@ function desktopEndpoint(request) {
|
|
|
5081
5115
|
...request.tenant_id ? { tenant_id: request.tenant_id } : {},
|
|
5082
5116
|
client_ref: request.client_ref,
|
|
5083
5117
|
body: request.body,
|
|
5084
|
-
...request.agent_label ? { agent_label: request.agent_label } : {}
|
|
5118
|
+
...request.agent_label ? { agent_label: request.agent_label } : {},
|
|
5119
|
+
...request.thread_root_id ? { thread_root_id: request.thread_root_id } : {}
|
|
5085
5120
|
}
|
|
5086
5121
|
};
|
|
5122
|
+
case "team_bridge.messages.replies": {
|
|
5123
|
+
const query = new URLSearchParams();
|
|
5124
|
+
if (request.tenant_id) query.set("tenant_id", request.tenant_id);
|
|
5125
|
+
if (request.limit !== void 0)
|
|
5126
|
+
query.set("limit", String(request.limit));
|
|
5127
|
+
if (request.after_seq !== void 0)
|
|
5128
|
+
query.set("after_seq", String(request.after_seq));
|
|
5129
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
5130
|
+
return {
|
|
5131
|
+
path: `/v1/desktop/team-bridge/conversations/${encodeURIComponent(request.conversation_id)}/messages/${encodeURIComponent(request.message_id)}/replies${suffix}`,
|
|
5132
|
+
method: "GET"
|
|
5133
|
+
};
|
|
5134
|
+
}
|
|
5087
5135
|
case "team_bridge.read":
|
|
5088
5136
|
return {
|
|
5089
5137
|
path: `/v1/desktop/team-bridge/conversations/${encodeURIComponent(request.conversation_id)}/read`,
|
|
@@ -38688,6 +38736,10 @@ const enUiTeamBridge = {
|
|
|
38688
38736
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
38689
38737
|
"ui.teamBridge.notify.body": "{sender} sent a message",
|
|
38690
38738
|
"ui.teamBridge.notify.body_fallback": "New message",
|
|
38739
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
38740
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
38741
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# new message} other {# new messages}}",
|
|
38742
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# new message: {preview}} other {# new messages: {preview}}}",
|
|
38691
38743
|
"ui.teamBridge.people.title": "People",
|
|
38692
38744
|
"ui.teamBridge.people.loading": "Loading people",
|
|
38693
38745
|
"ui.teamBridge.people.error": "People could not be loaded.",
|
|
@@ -38743,6 +38795,35 @@ const enUiTeamBridge = {
|
|
|
38743
38795
|
"ui.teamBridge.thread.intro_chief": "This is the beginning of your conversation with {name}, a teammate's chief of staff agent. It reads your messages as untrusted input and its owner decides what it acts on.",
|
|
38744
38796
|
"ui.teamBridge.thread.intro_group": "Your first message starts a conversation with {names}.",
|
|
38745
38797
|
"ui.teamBridge.list.error_pane": "Conversations couldn’t be loaded. Try again from the list on the left.",
|
|
38798
|
+
"ui.teamBridge.reactions.add": "Add reaction",
|
|
38799
|
+
"ui.teamBridge.reactions.search": "Search emoji",
|
|
38800
|
+
"ui.teamBridge.reactions.categories": "Emoji categories",
|
|
38801
|
+
"ui.teamBridge.reactions.all": "All emoji",
|
|
38802
|
+
"ui.teamBridge.reactions.frequent": "Frequently used",
|
|
38803
|
+
"ui.teamBridge.reactions.tone": "Skin tone",
|
|
38804
|
+
"ui.teamBridge.reactions.toneDefault": "Default skin tone",
|
|
38805
|
+
"ui.teamBridge.reactions.empty": "No emoji found",
|
|
38806
|
+
"ui.teamBridge.reactions.failed": "Reaction could not be saved. Try again.",
|
|
38807
|
+
"ui.teamBridge.reactions.category0": "Smileys and emotion",
|
|
38808
|
+
"ui.teamBridge.reactions.category1": "People and body",
|
|
38809
|
+
"ui.teamBridge.reactions.category2": "Animals and nature",
|
|
38810
|
+
"ui.teamBridge.reactions.category3": "Food and drink",
|
|
38811
|
+
"ui.teamBridge.reactions.category4": "Travel and places",
|
|
38812
|
+
"ui.teamBridge.reactions.category5": "Activities",
|
|
38813
|
+
"ui.teamBridge.reactions.category6": "Objects",
|
|
38814
|
+
"ui.teamBridge.reactions.category7": "Symbols",
|
|
38815
|
+
"ui.teamBridge.reactions.category8": "Flags",
|
|
38816
|
+
"ui.teamBridge.reactions.choose": "Choose an emoji",
|
|
38817
|
+
"ui.teamBridge.reactions.noResults": "No emoji found",
|
|
38818
|
+
"ui.teamBridge.replies.action": "Reply in thread",
|
|
38819
|
+
"ui.teamBridge.replies.title": "Thread",
|
|
38820
|
+
"ui.teamBridge.replies.close": "Close thread",
|
|
38821
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# reply} other {# replies}}",
|
|
38822
|
+
"ui.teamBridge.replies.last": "last reply {time}",
|
|
38823
|
+
"ui.teamBridge.replies.empty": "No replies yet. Start the thread.",
|
|
38824
|
+
"ui.teamBridge.replies.placeholder": "Reply in thread",
|
|
38825
|
+
"ui.teamBridge.replies.more": "Load more replies",
|
|
38826
|
+
"ui.teamBridge.actions.label": "Message actions",
|
|
38746
38827
|
"ui.teamBridge.sender.unknown_person": "Unknown person",
|
|
38747
38828
|
"ui.teamBridge.sender.unknown_agent": "Unknown agent"
|
|
38748
38829
|
};
|
|
@@ -42296,6 +42377,10 @@ const esUiTeamBridge = {
|
|
|
42296
42377
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
42297
42378
|
"ui.teamBridge.notify.body": "{sender} envió un mensaje",
|
|
42298
42379
|
"ui.teamBridge.notify.body_fallback": "Mensaje nuevo",
|
|
42380
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
42381
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
42382
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# mensaje nuevo} many {# de mensajes nuevos} other {# mensajes nuevos}}",
|
|
42383
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# mensaje nuevo: {preview}} many {# de mensajes nuevos: {preview}} other {# mensajes nuevos: {preview}}}",
|
|
42299
42384
|
"ui.teamBridge.people.title": "Personas",
|
|
42300
42385
|
"ui.teamBridge.people.loading": "Cargando personas",
|
|
42301
42386
|
"ui.teamBridge.people.error": "No se pudieron cargar las personas.",
|
|
@@ -42351,6 +42436,35 @@ const esUiTeamBridge = {
|
|
|
42351
42436
|
"ui.teamBridge.thread.intro_chief": "Este es el comienzo de tu conversación con {name}, el agente jefe de gabinete de un miembro del equipo. Trata tus mensajes como información no confiable y su propietario decide qué hace con ellos.",
|
|
42352
42437
|
"ui.teamBridge.thread.intro_group": "Tu primer mensaje inicia una conversación con {names}.",
|
|
42353
42438
|
"ui.teamBridge.list.error_pane": "No se pudieron cargar las conversaciones. Inténtalo de nuevo desde la lista de la izquierda.",
|
|
42439
|
+
"ui.teamBridge.reactions.add": "Añadir reacción",
|
|
42440
|
+
"ui.teamBridge.reactions.search": "Buscar emojis",
|
|
42441
|
+
"ui.teamBridge.reactions.categories": "Categorías de emojis",
|
|
42442
|
+
"ui.teamBridge.reactions.all": "Todos los emojis",
|
|
42443
|
+
"ui.teamBridge.reactions.frequent": "Usados con frecuencia",
|
|
42444
|
+
"ui.teamBridge.reactions.tone": "Tono de piel",
|
|
42445
|
+
"ui.teamBridge.reactions.toneDefault": "Tono predeterminado",
|
|
42446
|
+
"ui.teamBridge.reactions.empty": "No se encontraron emojis",
|
|
42447
|
+
"ui.teamBridge.reactions.failed": "No se pudo guardar la reacción. Inténtalo de nuevo.",
|
|
42448
|
+
"ui.teamBridge.reactions.category0": "Caras y emociones",
|
|
42449
|
+
"ui.teamBridge.reactions.category1": "Personas y cuerpo",
|
|
42450
|
+
"ui.teamBridge.reactions.category2": "Animales y naturaleza",
|
|
42451
|
+
"ui.teamBridge.reactions.category3": "Comida y bebida",
|
|
42452
|
+
"ui.teamBridge.reactions.category4": "Viajes y lugares",
|
|
42453
|
+
"ui.teamBridge.reactions.category5": "Actividades",
|
|
42454
|
+
"ui.teamBridge.reactions.category6": "Objetos",
|
|
42455
|
+
"ui.teamBridge.reactions.category7": "Símbolos",
|
|
42456
|
+
"ui.teamBridge.reactions.category8": "Banderas",
|
|
42457
|
+
"ui.teamBridge.reactions.choose": "Elige un emoji",
|
|
42458
|
+
"ui.teamBridge.reactions.noResults": "No se encontraron emojis",
|
|
42459
|
+
"ui.teamBridge.replies.action": "Responder en el hilo",
|
|
42460
|
+
"ui.teamBridge.replies.title": "Hilo",
|
|
42461
|
+
"ui.teamBridge.replies.close": "Cerrar hilo",
|
|
42462
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# respuesta} many {# de respuestas} other {# respuestas}}",
|
|
42463
|
+
"ui.teamBridge.replies.last": "última respuesta: {time}",
|
|
42464
|
+
"ui.teamBridge.replies.empty": "Aún no hay respuestas. Inicia el hilo.",
|
|
42465
|
+
"ui.teamBridge.replies.placeholder": "Responde en el hilo",
|
|
42466
|
+
"ui.teamBridge.replies.more": "Cargar más respuestas",
|
|
42467
|
+
"ui.teamBridge.actions.label": "Acciones del mensaje",
|
|
42354
42468
|
"ui.teamBridge.sender.unknown_person": "Persona desconocida",
|
|
42355
42469
|
"ui.teamBridge.sender.unknown_agent": "Agente desconocido"
|
|
42356
42470
|
};
|
|
@@ -45904,6 +46018,10 @@ const frUiTeamBridge = {
|
|
|
45904
46018
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
45905
46019
|
"ui.teamBridge.notify.body": "{sender} a envoyé un message",
|
|
45906
46020
|
"ui.teamBridge.notify.body_fallback": "Nouveau message",
|
|
46021
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
46022
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
46023
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# nouveau message} many {# de nouveaux messages} other {# nouveaux messages}}",
|
|
46024
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# nouveau message : {preview}} many {# de nouveaux messages : {preview}} other {# nouveaux messages : {preview}}}",
|
|
45907
46025
|
"ui.teamBridge.people.title": "Personnes",
|
|
45908
46026
|
"ui.teamBridge.people.loading": "Chargement des personnes",
|
|
45909
46027
|
"ui.teamBridge.people.error": "Les personnes n’ont pas pu être chargées.",
|
|
@@ -45959,6 +46077,35 @@ const frUiTeamBridge = {
|
|
|
45959
46077
|
"ui.teamBridge.thread.intro_chief": "Voici le début de votre conversation avec {name}, la cheffe de cabinet d’un membre de l’équipe. Cet agent considère vos messages comme des entrées non fiables ; c’est son propriétaire qui décide des suites à donner.",
|
|
45960
46078
|
"ui.teamBridge.thread.intro_group": "Votre premier message démarrera une conversation avec {names}.",
|
|
45961
46079
|
"ui.teamBridge.list.error_pane": "Les conversations n’ont pas pu être chargées. Réessayez depuis la liste de gauche.",
|
|
46080
|
+
"ui.teamBridge.reactions.add": "Ajouter une réaction",
|
|
46081
|
+
"ui.teamBridge.reactions.search": "Rechercher un émoji",
|
|
46082
|
+
"ui.teamBridge.reactions.categories": "Catégories d’émojis",
|
|
46083
|
+
"ui.teamBridge.reactions.all": "Tous les émojis",
|
|
46084
|
+
"ui.teamBridge.reactions.frequent": "Fréquemment utilisés",
|
|
46085
|
+
"ui.teamBridge.reactions.tone": "Teint",
|
|
46086
|
+
"ui.teamBridge.reactions.toneDefault": "Teint par défaut",
|
|
46087
|
+
"ui.teamBridge.reactions.empty": "Aucun émoji trouvé",
|
|
46088
|
+
"ui.teamBridge.reactions.failed": "La réaction n’a pas été enregistrée. Réessayez.",
|
|
46089
|
+
"ui.teamBridge.reactions.category0": "Smileys et émotions",
|
|
46090
|
+
"ui.teamBridge.reactions.category1": "Personnes et corps",
|
|
46091
|
+
"ui.teamBridge.reactions.category2": "Animaux et nature",
|
|
46092
|
+
"ui.teamBridge.reactions.category3": "Nourriture et boissons",
|
|
46093
|
+
"ui.teamBridge.reactions.category4": "Voyages et lieux",
|
|
46094
|
+
"ui.teamBridge.reactions.category5": "Activités",
|
|
46095
|
+
"ui.teamBridge.reactions.category6": "Objets",
|
|
46096
|
+
"ui.teamBridge.reactions.category7": "Symboles",
|
|
46097
|
+
"ui.teamBridge.reactions.category8": "Drapeaux",
|
|
46098
|
+
"ui.teamBridge.reactions.choose": "Choisir un émoji",
|
|
46099
|
+
"ui.teamBridge.reactions.noResults": "Aucun émoji trouvé",
|
|
46100
|
+
"ui.teamBridge.replies.action": "Répondre dans le fil",
|
|
46101
|
+
"ui.teamBridge.replies.title": "Fil de discussion",
|
|
46102
|
+
"ui.teamBridge.replies.close": "Fermer le fil",
|
|
46103
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# réponse} many {# de réponses} other {# réponses}}",
|
|
46104
|
+
"ui.teamBridge.replies.last": "dernière réponse à {time}",
|
|
46105
|
+
"ui.teamBridge.replies.empty": "Aucune réponse pour l’instant. Lancez le fil.",
|
|
46106
|
+
"ui.teamBridge.replies.placeholder": "Répondre dans le fil",
|
|
46107
|
+
"ui.teamBridge.replies.more": "Charger plus de réponses",
|
|
46108
|
+
"ui.teamBridge.actions.label": "Actions sur le message",
|
|
45962
46109
|
"ui.teamBridge.sender.unknown_person": "Personne inconnue",
|
|
45963
46110
|
"ui.teamBridge.sender.unknown_agent": "Agent inconnu"
|
|
45964
46111
|
};
|
|
@@ -49470,6 +49617,10 @@ const hiUiTeamBridge = {
|
|
|
49470
49617
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
49471
49618
|
"ui.teamBridge.notify.body": "{sender} ने एक संदेश भेजा",
|
|
49472
49619
|
"ui.teamBridge.notify.body_fallback": "नया संदेश",
|
|
49620
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
49621
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
49622
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# नया संदेश} other {# नए संदेश}}",
|
|
49623
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# नया संदेश: {preview}} other {# नए संदेश: {preview}}}",
|
|
49473
49624
|
"ui.teamBridge.people.title": "लोग",
|
|
49474
49625
|
"ui.teamBridge.people.loading": "लोगों की सूची लोड हो रही है",
|
|
49475
49626
|
"ui.teamBridge.people.error": "लोगों की सूची लोड नहीं हो सकी।",
|
|
@@ -49525,6 +49676,35 @@ const hiUiTeamBridge = {
|
|
|
49525
49676
|
"ui.teamBridge.thread.intro_chief": "{name} किसी टीम सदस्य का चीफ़ ऑफ़ स्टाफ़ एजेंट है, और उसके साथ आपकी बातचीत यहाँ से शुरू होती है। यह आपके संदेशों को भरोसेमंद इनपुट नहीं मानता, और यह किस पर अमल करेगा, यह इसका मालिक तय करता है।",
|
|
49526
49677
|
"ui.teamBridge.thread.intro_group": "आपके पहले संदेश से {names} के साथ बातचीत शुरू होगी।",
|
|
49527
49678
|
"ui.teamBridge.list.error_pane": "बातचीतें लोड नहीं हो सकीं। बाईं ओर की सूची से फिर कोशिश करें।",
|
|
49679
|
+
"ui.teamBridge.reactions.add": "प्रतिक्रिया जोड़ें",
|
|
49680
|
+
"ui.teamBridge.reactions.search": "इमोजी खोजें",
|
|
49681
|
+
"ui.teamBridge.reactions.categories": "इमोजी श्रेणियाँ",
|
|
49682
|
+
"ui.teamBridge.reactions.all": "सभी इमोजी",
|
|
49683
|
+
"ui.teamBridge.reactions.frequent": "अक्सर इस्तेमाल किए गए",
|
|
49684
|
+
"ui.teamBridge.reactions.tone": "त्वचा का रंग",
|
|
49685
|
+
"ui.teamBridge.reactions.toneDefault": "डिफ़ॉल्ट रंग",
|
|
49686
|
+
"ui.teamBridge.reactions.empty": "कोई इमोजी नहीं मिला",
|
|
49687
|
+
"ui.teamBridge.reactions.failed": "प्रतिक्रिया सहेजी नहीं गई। फिर कोशिश करें।",
|
|
49688
|
+
"ui.teamBridge.reactions.category0": "स्माइली और भावनाएँ",
|
|
49689
|
+
"ui.teamBridge.reactions.category1": "लोग और शरीर",
|
|
49690
|
+
"ui.teamBridge.reactions.category2": "पशु और प्रकृति",
|
|
49691
|
+
"ui.teamBridge.reactions.category3": "खान-पान",
|
|
49692
|
+
"ui.teamBridge.reactions.category4": "यात्रा और स्थान",
|
|
49693
|
+
"ui.teamBridge.reactions.category5": "गतिविधियाँ",
|
|
49694
|
+
"ui.teamBridge.reactions.category6": "वस्तुएँ",
|
|
49695
|
+
"ui.teamBridge.reactions.category7": "चिह्न",
|
|
49696
|
+
"ui.teamBridge.reactions.category8": "झंडे",
|
|
49697
|
+
"ui.teamBridge.reactions.choose": "इमोजी चुनें",
|
|
49698
|
+
"ui.teamBridge.reactions.noResults": "कोई इमोजी नहीं मिला",
|
|
49699
|
+
"ui.teamBridge.replies.action": "थ्रेड में जवाब दें",
|
|
49700
|
+
"ui.teamBridge.replies.title": "थ्रेड",
|
|
49701
|
+
"ui.teamBridge.replies.close": "थ्रेड बंद करें",
|
|
49702
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# जवाब} other {# जवाब}}",
|
|
49703
|
+
"ui.teamBridge.replies.last": "अंतिम जवाब {time}",
|
|
49704
|
+
"ui.teamBridge.replies.empty": "अभी कोई जवाब नहीं। थ्रेड शुरू करें।",
|
|
49705
|
+
"ui.teamBridge.replies.placeholder": "थ्रेड में जवाब लिखें",
|
|
49706
|
+
"ui.teamBridge.replies.more": "और जवाब लोड करें",
|
|
49707
|
+
"ui.teamBridge.actions.label": "संदेश की कार्रवाइयाँ",
|
|
49528
49708
|
"ui.teamBridge.sender.unknown_person": "अज्ञात व्यक्ति",
|
|
49529
49709
|
"ui.teamBridge.sender.unknown_agent": "अज्ञात एजेंट"
|
|
49530
49710
|
};
|
|
@@ -53056,6 +53236,10 @@ const ruUiTeamBridge = {
|
|
|
53056
53236
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
53057
53237
|
"ui.teamBridge.notify.body": "{sender}: новое сообщение",
|
|
53058
53238
|
"ui.teamBridge.notify.body_fallback": "Новое сообщение",
|
|
53239
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
53240
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
53241
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# новое сообщение} few {# новых сообщения} many {# новых сообщений} other {# нового сообщения}}",
|
|
53242
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# новое сообщение: {preview}} few {# новых сообщения: {preview}} many {# новых сообщений: {preview}} other {# нового сообщения: {preview}}}",
|
|
53059
53243
|
"ui.teamBridge.people.title": "Люди",
|
|
53060
53244
|
"ui.teamBridge.people.loading": "Загрузка списка людей",
|
|
53061
53245
|
"ui.teamBridge.people.error": "Не удалось загрузить список людей.",
|
|
@@ -53111,6 +53295,35 @@ const ruUiTeamBridge = {
|
|
|
53111
53295
|
"ui.teamBridge.thread.intro_chief": "Здесь начинается ваш разговор с агентом {name}, координатором одного из участников команды. Агент воспринимает ваши сообщения как недоверенные входные данные, а решения о действиях принимает его владелец.",
|
|
53112
53296
|
"ui.teamBridge.thread.intro_group": "Первым сообщением вы начнёте разговор. Кому: {names}.",
|
|
53113
53297
|
"ui.teamBridge.list.error_pane": "Не удалось загрузить разговоры. Повторите попытку в списке слева.",
|
|
53298
|
+
"ui.teamBridge.reactions.add": "Добавить реакцию",
|
|
53299
|
+
"ui.teamBridge.reactions.search": "Поиск эмодзи",
|
|
53300
|
+
"ui.teamBridge.reactions.categories": "Категории эмодзи",
|
|
53301
|
+
"ui.teamBridge.reactions.all": "Все эмодзи",
|
|
53302
|
+
"ui.teamBridge.reactions.frequent": "Часто используемые",
|
|
53303
|
+
"ui.teamBridge.reactions.tone": "Оттенок кожи",
|
|
53304
|
+
"ui.teamBridge.reactions.toneDefault": "По умолчанию",
|
|
53305
|
+
"ui.teamBridge.reactions.empty": "Эмодзи не найдены",
|
|
53306
|
+
"ui.teamBridge.reactions.failed": "Не удалось сохранить реакцию. Повторите попытку.",
|
|
53307
|
+
"ui.teamBridge.reactions.category0": "Смайлики и эмоции",
|
|
53308
|
+
"ui.teamBridge.reactions.category1": "Люди и части тела",
|
|
53309
|
+
"ui.teamBridge.reactions.category2": "Животные и природа",
|
|
53310
|
+
"ui.teamBridge.reactions.category3": "Еда и напитки",
|
|
53311
|
+
"ui.teamBridge.reactions.category4": "Путешествия и места",
|
|
53312
|
+
"ui.teamBridge.reactions.category5": "Занятия",
|
|
53313
|
+
"ui.teamBridge.reactions.category6": "Предметы",
|
|
53314
|
+
"ui.teamBridge.reactions.category7": "Символы",
|
|
53315
|
+
"ui.teamBridge.reactions.category8": "Флаги",
|
|
53316
|
+
"ui.teamBridge.reactions.choose": "Выберите эмодзи",
|
|
53317
|
+
"ui.teamBridge.reactions.noResults": "Эмодзи не найдены",
|
|
53318
|
+
"ui.teamBridge.replies.action": "Ответить в ветке",
|
|
53319
|
+
"ui.teamBridge.replies.title": "Ветка",
|
|
53320
|
+
"ui.teamBridge.replies.close": "Закрыть ветку",
|
|
53321
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# ответ} few {# ответа} many {# ответов} other {# ответа}}",
|
|
53322
|
+
"ui.teamBridge.replies.last": "последний ответ: {time}",
|
|
53323
|
+
"ui.teamBridge.replies.empty": "Ответов пока нет. Начните ветку.",
|
|
53324
|
+
"ui.teamBridge.replies.placeholder": "Ответить в ветке",
|
|
53325
|
+
"ui.teamBridge.replies.more": "Загрузить ещё ответы",
|
|
53326
|
+
"ui.teamBridge.actions.label": "Действия с сообщением",
|
|
53114
53327
|
"ui.teamBridge.sender.unknown_person": "Неизвестный пользователь",
|
|
53115
53328
|
"ui.teamBridge.sender.unknown_agent": "Неизвестный агент"
|
|
53116
53329
|
};
|
|
@@ -56642,6 +56855,10 @@ const urUiTeamBridge = {
|
|
|
56642
56855
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
56643
56856
|
"ui.teamBridge.notify.body": "{sender} نے پیغام بھیجا",
|
|
56644
56857
|
"ui.teamBridge.notify.body_fallback": "نیا پیغام",
|
|
56858
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
56859
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
56860
|
+
"ui.teamBridge.notify.count": "{count, plural, one {# نیا پیغام} other {# نئے پیغامات}}",
|
|
56861
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, one {# نیا پیغام: {preview}} other {# نئے پیغامات: {preview}}}",
|
|
56645
56862
|
"ui.teamBridge.people.title": "لوگ",
|
|
56646
56863
|
"ui.teamBridge.people.loading": "لوگ لوڈ ہو رہے ہیں",
|
|
56647
56864
|
"ui.teamBridge.people.error": "لوگ لوڈ نہیں ہو سکے۔",
|
|
@@ -56697,6 +56914,35 @@ const urUiTeamBridge = {
|
|
|
56697
56914
|
"ui.teamBridge.thread.intro_chief": "یہ {name} کے ساتھ آپ کی گفتگو کا آغاز ہے، جو ٹیم کے ایک رکن کا چیف آف اسٹاف ایجنٹ ہے۔ یہ آپ کے پیغامات کو غیر معتبر ان پٹ سمجھتا ہے، اور اس کا مالک طے کرتا ہے کہ یہ کس بات پر عمل کرے۔",
|
|
56698
56915
|
"ui.teamBridge.thread.intro_group": "آپ کا پہلا پیغام {names} کے ساتھ گفتگو شروع کرے گا۔",
|
|
56699
56916
|
"ui.teamBridge.list.error_pane": "گفتگوئیں لوڈ نہیں ہو سکیں۔ دائیں جانب کی فہرست سے دوبارہ کوشش کریں۔",
|
|
56917
|
+
"ui.teamBridge.reactions.add": "ردعمل شامل کریں",
|
|
56918
|
+
"ui.teamBridge.reactions.search": "ایموجی تلاش کریں",
|
|
56919
|
+
"ui.teamBridge.reactions.categories": "ایموجی کے زمرے",
|
|
56920
|
+
"ui.teamBridge.reactions.all": "تمام ایموجی",
|
|
56921
|
+
"ui.teamBridge.reactions.frequent": "اکثر استعمال ہونے والے",
|
|
56922
|
+
"ui.teamBridge.reactions.tone": "جلد کی رنگت",
|
|
56923
|
+
"ui.teamBridge.reactions.toneDefault": "ڈیفالٹ رنگت",
|
|
56924
|
+
"ui.teamBridge.reactions.empty": "کوئی ایموجی نہیں ملا",
|
|
56925
|
+
"ui.teamBridge.reactions.failed": "ردعمل محفوظ نہیں ہو سکا۔ دوبارہ کوشش کریں۔",
|
|
56926
|
+
"ui.teamBridge.reactions.category0": "اسمائلیز اور جذبات",
|
|
56927
|
+
"ui.teamBridge.reactions.category1": "لوگ اور جسم",
|
|
56928
|
+
"ui.teamBridge.reactions.category2": "جانور اور فطرت",
|
|
56929
|
+
"ui.teamBridge.reactions.category3": "کھانا اور مشروبات",
|
|
56930
|
+
"ui.teamBridge.reactions.category4": "سفر اور مقامات",
|
|
56931
|
+
"ui.teamBridge.reactions.category5": "سرگرمیاں",
|
|
56932
|
+
"ui.teamBridge.reactions.category6": "اشیاء",
|
|
56933
|
+
"ui.teamBridge.reactions.category7": "علامات",
|
|
56934
|
+
"ui.teamBridge.reactions.category8": "پرچم",
|
|
56935
|
+
"ui.teamBridge.reactions.choose": "ایموجی منتخب کریں",
|
|
56936
|
+
"ui.teamBridge.reactions.noResults": "کوئی ایموجی نہیں ملا",
|
|
56937
|
+
"ui.teamBridge.replies.action": "تھریڈ میں جواب دیں",
|
|
56938
|
+
"ui.teamBridge.replies.title": "تھریڈ",
|
|
56939
|
+
"ui.teamBridge.replies.close": "تھریڈ بند کریں",
|
|
56940
|
+
"ui.teamBridge.replies.count": "{count, plural, one {# جواب} other {# جوابات}}",
|
|
56941
|
+
"ui.teamBridge.replies.last": "آخری جواب {time}",
|
|
56942
|
+
"ui.teamBridge.replies.empty": "ابھی کوئی جواب نہیں۔ تھریڈ شروع کریں۔",
|
|
56943
|
+
"ui.teamBridge.replies.placeholder": "تھریڈ میں جواب دیں",
|
|
56944
|
+
"ui.teamBridge.replies.more": "مزید جوابات لوڈ کریں",
|
|
56945
|
+
"ui.teamBridge.actions.label": "پیغام کے اقدامات",
|
|
56700
56946
|
"ui.teamBridge.sender.unknown_person": "نامعلوم شخص",
|
|
56701
56947
|
"ui.teamBridge.sender.unknown_agent": "نامعلوم ایجنٹ"
|
|
56702
56948
|
};
|
|
@@ -60037,6 +60283,10 @@ const viUiTeamBridge = {
|
|
|
60037
60283
|
"ui.teamBridge.notify.title": "{conversation} ({organization})",
|
|
60038
60284
|
"ui.teamBridge.notify.body": "{sender} đã gửi một tin nhắn",
|
|
60039
60285
|
"ui.teamBridge.notify.body_fallback": "Tin nhắn mới",
|
|
60286
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
60287
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
60288
|
+
"ui.teamBridge.notify.count": "{count, plural, other {# tin nhắn mới}}",
|
|
60289
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, other {# tin nhắn mới: {preview}}}",
|
|
60040
60290
|
"ui.teamBridge.people.title": "Mọi người",
|
|
60041
60291
|
"ui.teamBridge.people.loading": "Đang tải danh sách mọi người",
|
|
60042
60292
|
"ui.teamBridge.people.error": "Không tải được danh sách mọi người.",
|
|
@@ -60092,6 +60342,35 @@ const viUiTeamBridge = {
|
|
|
60092
60342
|
"ui.teamBridge.thread.intro_chief": "Đây là khởi đầu cuộc trò chuyện của bạn với {name}, tác nhân chánh văn phòng của một đồng nghiệp. Tác nhân này coi tin nhắn của bạn là đầu vào không tin cậy, và chủ sở hữu sẽ quyết định tác nhân làm theo điều gì.",
|
|
60093
60343
|
"ui.teamBridge.thread.intro_group": "Tin nhắn đầu tiên của bạn sẽ bắt đầu cuộc trò chuyện với {names}.",
|
|
60094
60344
|
"ui.teamBridge.list.error_pane": "Không tải được danh sách cuộc trò chuyện. Hãy thử lại từ danh sách bên trái.",
|
|
60345
|
+
"ui.teamBridge.reactions.add": "Thêm cảm xúc",
|
|
60346
|
+
"ui.teamBridge.reactions.search": "Tìm biểu tượng cảm xúc",
|
|
60347
|
+
"ui.teamBridge.reactions.categories": "Danh mục biểu tượng cảm xúc",
|
|
60348
|
+
"ui.teamBridge.reactions.all": "Tất cả biểu tượng cảm xúc",
|
|
60349
|
+
"ui.teamBridge.reactions.frequent": "Thường dùng",
|
|
60350
|
+
"ui.teamBridge.reactions.tone": "Tông màu da",
|
|
60351
|
+
"ui.teamBridge.reactions.toneDefault": "Tông màu da mặc định",
|
|
60352
|
+
"ui.teamBridge.reactions.empty": "Không tìm thấy biểu tượng cảm xúc",
|
|
60353
|
+
"ui.teamBridge.reactions.failed": "Không lưu được cảm xúc. Hãy thử lại.",
|
|
60354
|
+
"ui.teamBridge.reactions.category0": "Mặt cười và cảm xúc",
|
|
60355
|
+
"ui.teamBridge.reactions.category1": "Người và cơ thể",
|
|
60356
|
+
"ui.teamBridge.reactions.category2": "Động vật và thiên nhiên",
|
|
60357
|
+
"ui.teamBridge.reactions.category3": "Đồ ăn và thức uống",
|
|
60358
|
+
"ui.teamBridge.reactions.category4": "Du lịch và địa điểm",
|
|
60359
|
+
"ui.teamBridge.reactions.category5": "Hoạt động",
|
|
60360
|
+
"ui.teamBridge.reactions.category6": "Đồ vật",
|
|
60361
|
+
"ui.teamBridge.reactions.category7": "Biểu tượng",
|
|
60362
|
+
"ui.teamBridge.reactions.category8": "Cờ",
|
|
60363
|
+
"ui.teamBridge.reactions.choose": "Chọn biểu tượng cảm xúc",
|
|
60364
|
+
"ui.teamBridge.reactions.noResults": "Không tìm thấy biểu tượng cảm xúc",
|
|
60365
|
+
"ui.teamBridge.replies.action": "Trả lời trong luồng",
|
|
60366
|
+
"ui.teamBridge.replies.title": "Luồng trò chuyện",
|
|
60367
|
+
"ui.teamBridge.replies.close": "Đóng luồng trò chuyện",
|
|
60368
|
+
"ui.teamBridge.replies.count": "{count, plural, other {# câu trả lời}}",
|
|
60369
|
+
"ui.teamBridge.replies.last": "trả lời gần nhất lúc {time}",
|
|
60370
|
+
"ui.teamBridge.replies.empty": "Chưa có câu trả lời nào. Hãy bắt đầu luồng trò chuyện.",
|
|
60371
|
+
"ui.teamBridge.replies.placeholder": "Trả lời trong luồng",
|
|
60372
|
+
"ui.teamBridge.replies.more": "Tải thêm câu trả lời",
|
|
60373
|
+
"ui.teamBridge.actions.label": "Thao tác với tin nhắn",
|
|
60095
60374
|
"ui.teamBridge.sender.unknown_person": "Người không xác định",
|
|
60096
60375
|
"ui.teamBridge.sender.unknown_agent": "Tác nhân không xác định"
|
|
60097
60376
|
};
|
|
@@ -63645,6 +63924,10 @@ const zhCNUiTeamBridge = {
|
|
|
63645
63924
|
"ui.teamBridge.notify.title": "{conversation}({organization})",
|
|
63646
63925
|
"ui.teamBridge.notify.body": "{sender}发来一条消息",
|
|
63647
63926
|
"ui.teamBridge.notify.body_fallback": "新消息",
|
|
63927
|
+
"ui.teamBridge.notify.channel": "#{channel}",
|
|
63928
|
+
"ui.teamBridge.notify.subtitle": "{place} · {organization}",
|
|
63929
|
+
"ui.teamBridge.notify.count": "{count, plural, other {#条新消息}}",
|
|
63930
|
+
"ui.teamBridge.notify.count_preview": "{count, plural, other {#条新消息:{preview}}}",
|
|
63648
63931
|
"ui.teamBridge.people.title": "成员",
|
|
63649
63932
|
"ui.teamBridge.people.loading": "正在加载成员",
|
|
63650
63933
|
"ui.teamBridge.people.error": "无法加载成员。",
|
|
@@ -63700,6 +63983,35 @@ const zhCNUiTeamBridge = {
|
|
|
63700
63983
|
"ui.teamBridge.thread.intro_chief": "这是你与{name}对话的开始,对方是一位团队成员的首席助理。它会将你的消息视为不受信任的输入,是否据此行动由其所有者决定。",
|
|
63701
63984
|
"ui.teamBridge.thread.intro_group": "发送第一条消息即可开始与{names}的对话。",
|
|
63702
63985
|
"ui.teamBridge.list.error_pane": "无法加载对话。请在左侧列表中重试。",
|
|
63986
|
+
"ui.teamBridge.reactions.add": "添加表情回应",
|
|
63987
|
+
"ui.teamBridge.reactions.search": "搜索表情",
|
|
63988
|
+
"ui.teamBridge.reactions.categories": "表情类别",
|
|
63989
|
+
"ui.teamBridge.reactions.all": "全部表情",
|
|
63990
|
+
"ui.teamBridge.reactions.frequent": "常用",
|
|
63991
|
+
"ui.teamBridge.reactions.tone": "肤色",
|
|
63992
|
+
"ui.teamBridge.reactions.toneDefault": "默认肤色",
|
|
63993
|
+
"ui.teamBridge.reactions.empty": "未找到表情",
|
|
63994
|
+
"ui.teamBridge.reactions.failed": "表情回应未保存。请重试。",
|
|
63995
|
+
"ui.teamBridge.reactions.category0": "笑脸和情感",
|
|
63996
|
+
"ui.teamBridge.reactions.category1": "人物和身体",
|
|
63997
|
+
"ui.teamBridge.reactions.category2": "动物和自然",
|
|
63998
|
+
"ui.teamBridge.reactions.category3": "食物和饮料",
|
|
63999
|
+
"ui.teamBridge.reactions.category4": "旅行和地点",
|
|
64000
|
+
"ui.teamBridge.reactions.category5": "活动",
|
|
64001
|
+
"ui.teamBridge.reactions.category6": "物品",
|
|
64002
|
+
"ui.teamBridge.reactions.category7": "符号",
|
|
64003
|
+
"ui.teamBridge.reactions.category8": "旗帜",
|
|
64004
|
+
"ui.teamBridge.reactions.choose": "选择表情",
|
|
64005
|
+
"ui.teamBridge.reactions.noResults": "未找到表情",
|
|
64006
|
+
"ui.teamBridge.replies.action": "在讨论串中回复",
|
|
64007
|
+
"ui.teamBridge.replies.title": "讨论串",
|
|
64008
|
+
"ui.teamBridge.replies.close": "关闭讨论串",
|
|
64009
|
+
"ui.teamBridge.replies.count": "{count, plural, other {#条回复}}",
|
|
64010
|
+
"ui.teamBridge.replies.last": "最后回复于{time}",
|
|
64011
|
+
"ui.teamBridge.replies.empty": "还没有回复。发起讨论吧。",
|
|
64012
|
+
"ui.teamBridge.replies.placeholder": "在讨论串中回复",
|
|
64013
|
+
"ui.teamBridge.replies.more": "加载更多回复",
|
|
64014
|
+
"ui.teamBridge.actions.label": "消息操作",
|
|
63703
64015
|
"ui.teamBridge.sender.unknown_person": "未知用户",
|
|
63704
64016
|
"ui.teamBridge.sender.unknown_agent": "未知智能体"
|
|
63705
64017
|
};
|
|
@@ -74375,7 +74687,7 @@ async function runWithLimit(items, limit, worker) {
|
|
|
74375
74687
|
}
|
|
74376
74688
|
await Promise.all(runners);
|
|
74377
74689
|
}
|
|
74378
|
-
async function probeFiles(asked, cwd, home, deps = fsProbeDeps, cache = sharedProbeCache) {
|
|
74690
|
+
async function probeFiles(asked, cwd, home, deps = fsProbeDeps, cache = sharedProbeCache, fresh = false) {
|
|
74379
74691
|
const inputs = asked.slice(0, MAX_PROBE_PATHS);
|
|
74380
74692
|
const realRootPromise = cwd ? probeRealRoot(resolveUserPath$1(cwd, void 0, home), deps) : Promise.resolve(null);
|
|
74381
74693
|
const units = /* @__PURE__ */ new Map();
|
|
@@ -74389,8 +74701,9 @@ async function probeFiles(asked, cwd, home, deps = fsProbeDeps, cache = sharedPr
|
|
|
74389
74701
|
for (const [key, unit] of units) {
|
|
74390
74702
|
const entry = cache.get(key);
|
|
74391
74703
|
if (entry === void 0) continue;
|
|
74392
|
-
if (now - entry.at < entry.ttlMs)
|
|
74393
|
-
|
|
74704
|
+
if (now - entry.at < entry.ttlMs) {
|
|
74705
|
+
if (!fresh) unit.facts = entry;
|
|
74706
|
+
} else cache.delete(key);
|
|
74394
74707
|
}
|
|
74395
74708
|
await runWithLimit(
|
|
74396
74709
|
[...units.entries()].filter(([, unit]) => unit.facts === null),
|
|
@@ -75157,17 +75470,16 @@ function installSupplementProtocol(fetchDocument, log2) {
|
|
|
75157
75470
|
});
|
|
75158
75471
|
}
|
|
75159
75472
|
const TEAM_BRIDGE_NOTIFY_MAX_TITLE = 320;
|
|
75160
|
-
const TEAM_BRIDGE_NOTIFY_MAX_BODY =
|
|
75473
|
+
const TEAM_BRIDGE_NOTIFY_MAX_BODY = 360;
|
|
75474
|
+
const TEAM_BRIDGE_NOTIFY_MAX_SUBTITLE = 320;
|
|
75161
75475
|
const MAX_SEQ = Number.MAX_SAFE_INTEGER;
|
|
75162
75476
|
const SAFE_ID = /^[A-Za-z0-9_.:-]{1,128}$/;
|
|
75477
|
+
function unsafeBannerCharacter(character) {
|
|
75478
|
+
const code = character.codePointAt(0) ?? 0;
|
|
75479
|
+
return character === "<" || character === ">" || code < 32 || code >= 127 && code <= 159 || code === 1564 || code === 8206 || code === 8207 || code >= 8234 && code <= 8238 || code >= 8294 && code <= 8297 || code === 8232 || code === 8233;
|
|
75480
|
+
}
|
|
75163
75481
|
function hasUnsafeText(value) {
|
|
75164
|
-
|
|
75165
|
-
const code = character.codePointAt(0) ?? 0;
|
|
75166
|
-
if (character === "<" || character === ">" || code < 32 || code === 127) {
|
|
75167
|
-
return true;
|
|
75168
|
-
}
|
|
75169
|
-
}
|
|
75170
|
-
return false;
|
|
75482
|
+
return Array.from(value).some(unsafeBannerCharacter);
|
|
75171
75483
|
}
|
|
75172
75484
|
function cleanId(value) {
|
|
75173
75485
|
return typeof value === "string" && SAFE_ID.test(value) ? value : null;
|
|
@@ -75176,7 +75488,7 @@ function cleanText(value, max) {
|
|
|
75176
75488
|
if (typeof value !== "string") return null;
|
|
75177
75489
|
const trimmed = value.trim();
|
|
75178
75490
|
if (trimmed.length === 0 || trimmed.length > max) return null;
|
|
75179
|
-
if (hasUnsafeText(
|
|
75491
|
+
if (hasUnsafeText(value)) return null;
|
|
75180
75492
|
return trimmed;
|
|
75181
75493
|
}
|
|
75182
75494
|
function parseTeamBridgeNotifyRequest(value) {
|
|
@@ -75189,13 +75501,47 @@ function parseTeamBridgeNotifyRequest(value) {
|
|
|
75189
75501
|
const title = cleanText(input.title, TEAM_BRIDGE_NOTIFY_MAX_TITLE);
|
|
75190
75502
|
const body = cleanText(input.body, TEAM_BRIDGE_NOTIFY_MAX_BODY);
|
|
75191
75503
|
const seq2 = input.seq;
|
|
75504
|
+
const subtitle = input.subtitle === void 0 ? void 0 : cleanText(input.subtitle, TEAM_BRIDGE_NOTIFY_MAX_SUBTITLE);
|
|
75505
|
+
const threadId = input.threadId === void 0 ? void 0 : cleanId(input.threadId);
|
|
75506
|
+
const viewing = input.viewing;
|
|
75507
|
+
if (subtitle === null || threadId === null || viewing !== void 0 && typeof viewing !== "boolean") {
|
|
75508
|
+
return null;
|
|
75509
|
+
}
|
|
75192
75510
|
if (conversationId === null || tenantId === null || title === null || body === null || typeof seq2 !== "number" || !Number.isSafeInteger(seq2) || seq2 < 0 || seq2 > MAX_SEQ) {
|
|
75193
75511
|
return null;
|
|
75194
75512
|
}
|
|
75195
|
-
return {
|
|
75513
|
+
return {
|
|
75514
|
+
conversationId,
|
|
75515
|
+
tenantId,
|
|
75516
|
+
title,
|
|
75517
|
+
body,
|
|
75518
|
+
seq: seq2,
|
|
75519
|
+
...subtitle === void 0 ? {} : { subtitle },
|
|
75520
|
+
...threadId === void 0 ? {} : { threadId },
|
|
75521
|
+
...viewing === void 0 ? {} : { viewing }
|
|
75522
|
+
};
|
|
75523
|
+
}
|
|
75524
|
+
const TEAM_BRIDGE_COALESCE_MS = 1e4;
|
|
75525
|
+
function teamBridgeBannerId(conversationId) {
|
|
75526
|
+
return `team-bridge:${conversationId}`;
|
|
75527
|
+
}
|
|
75528
|
+
function teamBridgeBannerLines(request, platform) {
|
|
75529
|
+
if (!request.subtitle) return { title: request.title, body: request.body };
|
|
75530
|
+
if (platform === "darwin") {
|
|
75531
|
+
return {
|
|
75532
|
+
title: request.title,
|
|
75533
|
+
subtitle: request.subtitle,
|
|
75534
|
+
body: request.body
|
|
75535
|
+
};
|
|
75536
|
+
}
|
|
75537
|
+
return {
|
|
75538
|
+
title: request.title,
|
|
75539
|
+
body: `${request.subtitle} — ${request.body}`
|
|
75540
|
+
};
|
|
75196
75541
|
}
|
|
75197
|
-
function teamBridgeWindowIsQuiet(window) {
|
|
75542
|
+
function teamBridgeWindowIsQuiet(window, viewing) {
|
|
75198
75543
|
if (!window) return false;
|
|
75544
|
+
if (viewing === false) return false;
|
|
75199
75545
|
return !window.isDestroyed() && window.isVisible() && !window.isMinimized() && window.isFocused();
|
|
75200
75546
|
}
|
|
75201
75547
|
class TeamBridgeNotifier {
|
|
@@ -75206,6 +75552,8 @@ class TeamBridgeNotifier {
|
|
|
75206
75552
|
}
|
|
75207
75553
|
/** The live banner per conversation, so a new seq REPLACES it. */
|
|
75208
75554
|
banners = /* @__PURE__ */ new Map();
|
|
75555
|
+
/** When each conversation's live banner was raised, for `COALESCE_MS`. */
|
|
75556
|
+
raisedAt = /* @__PURE__ */ new Map();
|
|
75209
75557
|
/** The banners this process must keep reachable for their clicks to fire. */
|
|
75210
75558
|
lifetime = new NotificationLifetime();
|
|
75211
75559
|
pendingOpen = null;
|
|
@@ -75226,31 +75574,37 @@ class TeamBridgeNotifier {
|
|
|
75226
75574
|
}
|
|
75227
75575
|
if (this.options.show === "never") return { shown: false };
|
|
75228
75576
|
if (!this.canNotify()) return { shown: false };
|
|
75229
|
-
if (teamBridgeWindowIsQuiet(this.options.window())) {
|
|
75577
|
+
if (teamBridgeWindowIsQuiet(this.options.window(), request.viewing)) {
|
|
75230
75578
|
return { shown: false };
|
|
75231
75579
|
}
|
|
75232
75580
|
const previous = this.options.store.notifiedSeq(request.conversationId);
|
|
75233
75581
|
if (previous !== void 0 && request.seq <= previous) {
|
|
75234
75582
|
return { shown: false };
|
|
75235
75583
|
}
|
|
75584
|
+
const now = (this.options.now ?? Date.now)();
|
|
75585
|
+
const lastRaised = this.raisedAt.get(request.conversationId);
|
|
75586
|
+
const burst = this.banners.has(request.conversationId) && lastRaised !== void 0 && now - lastRaised < TEAM_BRIDGE_COALESCE_MS;
|
|
75236
75587
|
this.replace(request.conversationId);
|
|
75237
75588
|
const notification = this.createBanner({
|
|
75238
|
-
|
|
75239
|
-
|
|
75240
|
-
|
|
75589
|
+
id: teamBridgeBannerId(request.conversationId),
|
|
75590
|
+
groupId: teamBridgeBannerId(request.conversationId),
|
|
75591
|
+
...teamBridgeBannerLines(
|
|
75592
|
+
request,
|
|
75593
|
+
this.options.platform ?? process.platform
|
|
75594
|
+
),
|
|
75595
|
+
silent: burst,
|
|
75241
75596
|
...this.options.icon ? { icon: this.options.icon } : {}
|
|
75242
75597
|
});
|
|
75243
|
-
|
|
75244
|
-
|
|
75245
|
-
|
|
75246
|
-
|
|
75247
|
-
|
|
75248
|
-
|
|
75249
|
-
|
|
75250
|
-
}
|
|
75251
|
-
});
|
|
75598
|
+
const conversationId = request.conversationId;
|
|
75599
|
+
const target2 = {
|
|
75600
|
+
conversationId,
|
|
75601
|
+
tenantId: request.tenantId,
|
|
75602
|
+
...request.threadId ? { threadId: request.threadId } : {}
|
|
75603
|
+
};
|
|
75604
|
+
this.retainTarget(notification, target2);
|
|
75252
75605
|
notification.show();
|
|
75253
75606
|
this.banners.set(request.conversationId, notification);
|
|
75607
|
+
this.raisedAt.set(request.conversationId, now);
|
|
75254
75608
|
this.options.store.record(request.conversationId, request.seq);
|
|
75255
75609
|
return { shown: true };
|
|
75256
75610
|
}
|
|
@@ -75274,11 +75628,20 @@ class TeamBridgeNotifier {
|
|
|
75274
75628
|
this.banners.delete(conversationId);
|
|
75275
75629
|
previous.close?.();
|
|
75276
75630
|
}
|
|
75277
|
-
|
|
75278
|
-
|
|
75279
|
-
|
|
75280
|
-
|
|
75281
|
-
|
|
75631
|
+
/** Separate scope makes it impossible for handlers to retain the IPC request. */
|
|
75632
|
+
retainTarget(notification, target2) {
|
|
75633
|
+
const conversationId = target2.conversationId;
|
|
75634
|
+
this.lifetime.retain(notification, () => {
|
|
75635
|
+
this.banners.delete(conversationId);
|
|
75636
|
+
this.open(target2);
|
|
75637
|
+
});
|
|
75638
|
+
notification.once("close", () => {
|
|
75639
|
+
if (this.banners.get(conversationId) === notification) {
|
|
75640
|
+
this.banners.delete(conversationId);
|
|
75641
|
+
}
|
|
75642
|
+
});
|
|
75643
|
+
}
|
|
75644
|
+
open(target2) {
|
|
75282
75645
|
this.pendingOpen = target2;
|
|
75283
75646
|
const window = this.options.window();
|
|
75284
75647
|
if (window && !window.isDestroyed()) {
|
|
@@ -85096,10 +85459,18 @@ electron.app.whenReady().then(async () => {
|
|
|
85096
85459
|
};
|
|
85097
85460
|
electron.ipcMain.handle(
|
|
85098
85461
|
"probe-files",
|
|
85099
|
-
async (event, paths, cwd) => {
|
|
85462
|
+
async (event, paths, cwd, options) => {
|
|
85100
85463
|
authorizeLocalFileSender(event, "probe files");
|
|
85101
85464
|
const asked = Array.isArray(paths) ? paths.filter((path2) => typeof path2 === "string") : [];
|
|
85102
|
-
|
|
85465
|
+
const fresh = options?.fresh === true;
|
|
85466
|
+
return await probeFiles(
|
|
85467
|
+
asked,
|
|
85468
|
+
cwd,
|
|
85469
|
+
electron.app.getPath("home"),
|
|
85470
|
+
void 0,
|
|
85471
|
+
void 0,
|
|
85472
|
+
fresh
|
|
85473
|
+
);
|
|
85103
85474
|
}
|
|
85104
85475
|
);
|
|
85105
85476
|
electron.ipcMain.handle(
|