@things-factory/ai-assistant 10.1.26 → 10.1.28

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 (194) hide show
  1. package/client/components/assistant-chat.ts +653 -59
  2. package/client/components/assistant-mode.test.ts +86 -55
  3. package/client/components/assistant-mode.ts +124 -82
  4. package/client/components/chat-echo-dedup.test.ts +23 -0
  5. package/client/components/chat-echo-dedup.ts +29 -3
  6. package/client/components/chat-input-builder.test.ts +20 -20
  7. package/client/components/chat-input-builder.ts +16 -14
  8. package/client/components/chat-proposal-survival.test.ts +73 -0
  9. package/client/components/mention-popup.ts +31 -8
  10. package/client/components/panel-aria.test.ts +34 -0
  11. package/client/components/proposal-outcome-line.ts +33 -0
  12. package/client/utils/assistant-session-controller.test.ts +75 -0
  13. package/client/utils/assistant-session-controller.ts +23 -0
  14. package/client/utils/assistant-session-transport.ts +11 -3
  15. package/dist-client/components/assistant-chat.d.ts +128 -13
  16. package/dist-client/components/assistant-chat.js +613 -67
  17. package/dist-client/components/assistant-chat.js.map +1 -1
  18. package/dist-client/components/assistant-mode.d.ts +80 -68
  19. package/dist-client/components/assistant-mode.js +63 -19
  20. package/dist-client/components/assistant-mode.js.map +1 -1
  21. package/dist-client/components/assistant-mode.test.js +74 -53
  22. package/dist-client/components/assistant-mode.test.js.map +1 -1
  23. package/dist-client/components/chat-echo-dedup.d.ts +2 -0
  24. package/dist-client/components/chat-echo-dedup.js +27 -4
  25. package/dist-client/components/chat-echo-dedup.js.map +1 -1
  26. package/dist-client/components/chat-echo-dedup.test.js +20 -0
  27. package/dist-client/components/chat-echo-dedup.test.js.map +1 -1
  28. package/dist-client/components/chat-input-builder.d.ts +12 -7
  29. package/dist-client/components/chat-input-builder.js +8 -10
  30. package/dist-client/components/chat-input-builder.js.map +1 -1
  31. package/dist-client/components/chat-input-builder.test.js +17 -18
  32. package/dist-client/components/chat-input-builder.test.js.map +1 -1
  33. package/dist-client/components/chat-proposal-survival.test.d.ts +1 -0
  34. package/dist-client/components/chat-proposal-survival.test.js +61 -0
  35. package/dist-client/components/chat-proposal-survival.test.js.map +1 -0
  36. package/dist-client/components/mention-popup.js +28 -8
  37. package/dist-client/components/mention-popup.js.map +1 -1
  38. package/dist-client/components/panel-aria.test.d.ts +1 -0
  39. package/dist-client/components/panel-aria.test.js +31 -0
  40. package/dist-client/components/panel-aria.test.js.map +1 -0
  41. package/dist-client/components/proposal-outcome-line.d.ts +9 -0
  42. package/dist-client/components/proposal-outcome-line.js +15 -0
  43. package/dist-client/components/proposal-outcome-line.js.map +1 -0
  44. package/dist-client/tsconfig.tsbuildinfo +1 -1
  45. package/dist-client/utils/assistant-session-controller.d.ts +10 -0
  46. package/dist-client/utils/assistant-session-controller.js +16 -0
  47. package/dist-client/utils/assistant-session-controller.js.map +1 -1
  48. package/dist-client/utils/assistant-session-controller.test.d.ts +1 -0
  49. package/dist-client/utils/assistant-session-controller.test.js +56 -0
  50. package/dist-client/utils/assistant-session-controller.test.js.map +1 -0
  51. package/dist-client/utils/assistant-session-transport.js +11 -3
  52. package/dist-client/utils/assistant-session-transport.js.map +1 -1
  53. package/dist-server/service/assistant-capability-resolver.d.ts +17 -0
  54. package/dist-server/service/assistant-capability-resolver.js +88 -0
  55. package/dist-server/service/assistant-capability-resolver.js.map +1 -0
  56. package/dist-server/service/assistant-chat-resolver.d.ts +6 -6
  57. package/dist-server/service/assistant-chat-resolver.js +166 -44
  58. package/dist-server/service/assistant-chat-resolver.js.map +1 -1
  59. package/dist-server/service/assistant-mode/assistant-mode-resolver.d.ts +25 -0
  60. package/dist-server/service/assistant-mode/assistant-mode-resolver.js +140 -0
  61. package/dist-server/service/assistant-mode/assistant-mode-resolver.js.map +1 -0
  62. package/dist-server/service/assistant-mode/index.d.ts +9 -0
  63. package/dist-server/service/assistant-mode/index.js +19 -0
  64. package/dist-server/service/assistant-mode/index.js.map +1 -0
  65. package/dist-server/service/assistant-mode/registry.d.ts +18 -0
  66. package/dist-server/service/assistant-mode/registry.js +136 -0
  67. package/dist-server/service/assistant-mode/registry.js.map +1 -0
  68. package/dist-server/service/assistant-mode/resolve.d.ts +33 -0
  69. package/dist-server/service/assistant-mode/resolve.js +60 -0
  70. package/dist-server/service/assistant-mode/resolve.js.map +1 -0
  71. package/dist-server/service/assistant-mode/types.d.ts +99 -0
  72. package/dist-server/service/assistant-mode/types.js +12 -0
  73. package/dist-server/service/assistant-mode/types.js.map +1 -0
  74. package/dist-server/service/chat-message/carried-turns.d.ts +48 -0
  75. package/dist-server/service/chat-message/carried-turns.js +80 -0
  76. package/dist-server/service/chat-message/carried-turns.js.map +1 -0
  77. package/dist-server/service/chat-message/chat-message-subscription.d.ts +1 -1
  78. package/dist-server/service/chat-message/chat-message-subscription.js +24 -6
  79. package/dist-server/service/chat-message/chat-message-subscription.js.map +1 -1
  80. package/dist-server/service/chat-message/chat-message.d.ts +32 -0
  81. package/dist-server/service/chat-message/chat-message.js +17 -0
  82. package/dist-server/service/chat-message/chat-message.js.map +1 -1
  83. package/dist-server/service/chat-message/door-access.d.ts +15 -0
  84. package/dist-server/service/chat-message/door-access.js +26 -0
  85. package/dist-server/service/chat-message/door-access.js.map +1 -0
  86. package/dist-server/service/chat-message/fold-session-history.d.ts +30 -0
  87. package/dist-server/service/chat-message/fold-session-history.js +133 -0
  88. package/dist-server/service/chat-message/fold-session-history.js.map +1 -0
  89. package/dist-server/service/chat-message/llm-history.d.ts +7 -0
  90. package/dist-server/service/chat-message/llm-history.js +23 -11
  91. package/dist-server/service/chat-message/llm-history.js.map +1 -1
  92. package/dist-server/service/chat-message/message-doors.d.ts +29 -0
  93. package/dist-server/service/chat-message/message-doors.js +107 -0
  94. package/dist-server/service/chat-message/message-doors.js.map +1 -0
  95. package/dist-server/service/chat-message/proposal-outcome.d.ts +18 -0
  96. package/dist-server/service/chat-message/proposal-outcome.js +31 -0
  97. package/dist-server/service/chat-message/proposal-outcome.js.map +1 -0
  98. package/dist-server/service/chat-message/reader-gate.d.ts +3 -0
  99. package/dist-server/service/chat-message/reader-gate.js +37 -0
  100. package/dist-server/service/chat-message/reader-gate.js.map +1 -0
  101. package/dist-server/service/chat-message/room-message.d.ts +4 -0
  102. package/dist-server/service/chat-message/room-message.js +25 -0
  103. package/dist-server/service/chat-message/room-message.js.map +1 -0
  104. package/dist-server/service/chat-session/chat-session.d.ts +24 -0
  105. package/dist-server/service/chat-session/chat-session.js +26 -2
  106. package/dist-server/service/chat-session/chat-session.js.map +1 -1
  107. package/dist-server/service/chat-session/session-inbox.d.ts +4 -1
  108. package/dist-server/service/chat-session/session-inbox.js +3 -2
  109. package/dist-server/service/chat-session/session-inbox.js.map +1 -1
  110. package/dist-server/service/chat-session/session-visibility.d.ts +15 -0
  111. package/dist-server/service/chat-session/session-visibility.js +28 -0
  112. package/dist-server/service/chat-session/session-visibility.js.map +1 -0
  113. package/dist-server/service/chat-session/station-session-guard.d.ts +1 -5
  114. package/dist-server/service/chat-session/station-session-guard.js +7 -2
  115. package/dist-server/service/chat-session/station-session-guard.js.map +1 -1
  116. package/dist-server/service/chat-session-participant/mention-invite.d.ts +29 -0
  117. package/dist-server/service/chat-session-participant/mention-invite.js +103 -0
  118. package/dist-server/service/chat-session-participant/mention-invite.js.map +1 -0
  119. package/dist-server/service/chat-session-resolver.d.ts +15 -0
  120. package/dist-server/service/chat-session-resolver.js +267 -15
  121. package/dist-server/service/chat-session-resolver.js.map +1 -1
  122. package/dist-server/service/grounding-sources.d.ts +14 -0
  123. package/dist-server/service/grounding-sources.js +26 -0
  124. package/dist-server/service/grounding-sources.js.map +1 -0
  125. package/dist-server/service/index.d.ts +8 -1
  126. package/dist-server/service/index.js +19 -0
  127. package/dist-server/service/index.js.map +1 -1
  128. package/dist-server/service/request-translator.d.ts +2 -0
  129. package/dist-server/service/request-translator.js +20 -0
  130. package/dist-server/service/request-translator.js.map +1 -0
  131. package/dist-server/service/testing/conversation-script.d.ts +123 -0
  132. package/dist-server/service/testing/conversation-script.js +202 -0
  133. package/dist-server/service/testing/conversation-script.js.map +1 -0
  134. package/dist-server/service/testing/mode-conformance.d.ts +40 -0
  135. package/dist-server/service/testing/mode-conformance.js +90 -0
  136. package/dist-server/service/testing/mode-conformance.js.map +1 -0
  137. package/dist-server/tool-registry-boot-report.d.ts +3 -0
  138. package/dist-server/tool-registry-boot-report.js +25 -2
  139. package/dist-server/tool-registry-boot-report.js.map +1 -1
  140. package/dist-server/tsconfig.tsbuildinfo +1 -1
  141. package/package.json +5 -5
  142. package/server/explicit-graphql-types.test.ts +56 -0
  143. package/server/service/assistant-capability-resolver.ts +66 -0
  144. package/server/service/assistant-chat-resolver.ts +184 -42
  145. package/server/service/assistant-mode/assistant-mode-resolver.ts +102 -0
  146. package/server/service/assistant-mode/index.ts +16 -0
  147. package/server/service/assistant-mode/registry.test.ts +105 -0
  148. package/server/service/assistant-mode/registry.ts +147 -0
  149. package/server/service/assistant-mode/resolve.test.ts +78 -0
  150. package/server/service/assistant-mode/resolve.ts +96 -0
  151. package/server/service/assistant-mode/subject-defaults.test.ts +86 -0
  152. package/server/service/assistant-mode/types.ts +103 -0
  153. package/server/service/chat-message/carried-turns.test.ts +69 -0
  154. package/server/service/chat-message/carried-turns.ts +99 -0
  155. package/server/service/chat-message/chat-message-subscription.ts +20 -4
  156. package/server/service/chat-message/chat-message.ts +44 -0
  157. package/server/service/chat-message/door-access.ts +45 -0
  158. package/server/service/chat-message/fold-session-history.test.ts +98 -0
  159. package/server/service/chat-message/fold-session-history.ts +115 -0
  160. package/server/service/chat-message/llm-history.test.ts +58 -7
  161. package/server/service/chat-message/llm-history.ts +30 -11
  162. package/server/service/chat-message/message-doors.test.ts +87 -0
  163. package/server/service/chat-message/message-doors.ts +117 -0
  164. package/server/service/chat-message/proposal-outcome.test.ts +48 -0
  165. package/server/service/chat-message/proposal-outcome.ts +42 -0
  166. package/server/service/chat-message/reader-gate.ts +42 -0
  167. package/server/service/chat-message/room-message.test.ts +21 -0
  168. package/server/service/chat-message/room-message.ts +22 -0
  169. package/server/service/chat-session/chat-session.ts +31 -1
  170. package/server/service/chat-session/session-inbox.test.ts +18 -0
  171. package/server/service/chat-session/session-inbox.ts +9 -2
  172. package/server/service/chat-session/session-visibility.test.ts +36 -0
  173. package/server/service/chat-session/session-visibility.ts +26 -0
  174. package/server/service/chat-session/station-session-guard.ts +10 -2
  175. package/server/service/chat-session-participant/mention-invite.test.ts +125 -0
  176. package/server/service/chat-session-participant/mention-invite.ts +121 -0
  177. package/server/service/chat-session-resolver.ts +272 -15
  178. package/server/service/grounding-sources.test.ts +55 -0
  179. package/server/service/grounding-sources.ts +46 -0
  180. package/server/service/index.ts +19 -0
  181. package/server/service/request-translator.test.ts +45 -0
  182. package/server/service/request-translator.ts +33 -0
  183. package/server/service/station-session-guard.test.ts +12 -5
  184. package/server/service/testing/conversation-scenario.test.ts +163 -0
  185. package/server/service/testing/conversation-script.test.ts +131 -0
  186. package/server/service/testing/conversation-script.ts +288 -0
  187. package/server/service/testing/mode-conformance.ts +107 -0
  188. package/server/tool-registry-boot-report.ts +25 -2
  189. package/test/assistant-chat-call-sites.test.ts +82 -0
  190. package/translations/en.json +44 -2
  191. package/translations/ja.json +44 -2
  192. package/translations/ko.json +44 -2
  193. package/translations/ms.json +44 -2
  194. package/translations/zh.json +44 -2
@@ -39,7 +39,6 @@
39
39
  "ai-assistant.text.ungrounded-mention": "확인되지 않은 대상을 언급했습니다 — 실제 데이터에 없습니다:",
40
40
  "ai-assistant.text.toggle-system-note": "눌러서 펼치기",
41
41
  "ai-assistant.button.run-proposal": "실행",
42
- "ai-assistant.text.proposal-sent": "실행 요청됨",
43
42
  "ai-assistant.text.history-folded": "대화가 길어져 앞부분 {count}개가 생략되었습니다. 다른 주제라면 새 대화가 낫습니다.",
44
43
  "ai-assistant.text.history-folded-summarized": "대화가 길어져 앞부분 {count}개가 요약으로 접혔습니다. 다른 주제라면 새 대화가 낫습니다.",
45
44
  "ai-assistant.example.create-monitoring-dashboard": "가동률·온도·압력 3개 게이지와 24시간 라인 차트로 모니터링 대시보드",
@@ -66,5 +65,48 @@
66
65
  "ai-assistant.tooltip.attach-file": "이미지 또는 파일 첨부 (클립보드 붙여넣기·드래그앤드롭 지원)",
67
66
  "ai-assistant.text.drop-files-here": "여기에 이미지나 파일을 놓으세요",
68
67
  "ai-assistant.button.remove-attachment": "첨부 삭제",
69
- "ai-assistant.session.all": "전체 이력"
68
+ "ai-assistant.session.all": "전체 이력",
69
+ "ai-assistant.notice.stopped": "요청이 중간에 멈춰서 일부만 처리했습니다.",
70
+ "ai-assistant.notice.provider-busy": "AI 서비스가 지금 응답하지 않습니다. 잠시 뒤에 다시 해 보세요.",
71
+ "ai-assistant.notice.provider-error": "처리 중에 문제가 생겼습니다. 같은 문제가 계속되면 관리자에게 알려 주세요.",
72
+ "ai-assistant.notice.too-long": "일이 길어져서 {iter}단계에서 멈췄습니다. 나눠서 요청해 보세요.",
73
+ "ai-assistant.notice.tool-kept-failing": "{tool} 호출이 {count}번 잇따라 실패해서 멈췄습니다. 다르게 말해 보세요.",
74
+ "ai-assistant.text.no-match": "맞는 것이 없습니다",
75
+ "ai-assistant.text.messages-unreadable": "이 대화를 읽지 못했습니다.",
76
+ "ai-assistant.text.sessions-unreadable": "대화 목록을 불러오지 못했습니다.",
77
+ "ai-assistant.text.session-not-created": "대화를 시작하지 못했습니다.",
78
+ "ai-assistant.text.proposal-choices": "이어서 할 것",
79
+ "ai-assistant.text.attached-image-ask": "이미지를 붙였습니다. 이걸 보고 해 주세요.",
80
+ "ai-assistant.text.attached-file-ask": "파일을 붙였습니다. 한번 봐 주세요.",
81
+ "ai-assistant.text.other-figure-history": "이 대화는 다른 Figure 의 것입니다. 지금 열어 둔 모델의 대화를 여세요.",
82
+ "ai-assistant.text.application-vs-model-history": "이 대화는 모델이 아니라 애플리케이션에 대한 것입니다. 원하는 쪽 대화를 여세요.",
83
+ "ai-assistant.text.other-station-history": "이 대화는 다른 현장 화면의 것입니다. 지금 보고 있는 화면의 대화를 여세요.",
84
+ "ai-assistant.text.unknown-mode": "이 화면이 찾는 대화가 서버에 없습니다({kind}). 페이지를 새로 고치세요.",
85
+ "ai-assistant.session.default-name": "대화 {n}",
86
+ "ai-assistant.match.id": "ID",
87
+ "ai-assistant.match.name": "이름",
88
+ "ai-assistant.match.tag": "태그",
89
+ "ai-assistant.match.type": "종류",
90
+ "ai-assistant.match.class": "클래스",
91
+ "ai-assistant.match.text": "글",
92
+ "ai-assistant.match.data": "값",
93
+ "ai-assistant.match.property": "속성",
94
+ "ai-assistant.match.description": "설명",
95
+ "ai-assistant.candidate.template": "문장",
96
+ "ai-assistant.candidate.user": "사람",
97
+ "ai-assistant.text.match-count": "{shown} / {all} 개",
98
+ "ai-assistant.text.match-overflow": "+{count} 개 더 있습니다 — 검색어를 좁히세요",
99
+ "ai-assistant.verdict.accepted": "적용했습니다",
100
+ "ai-assistant.verdict.refused": "거절했습니다",
101
+ "ai-assistant.verdict.unavailable": "실행하지 못했습니다",
102
+ "ai-assistant.verdict.declined": "취소했습니다",
103
+ "ai-assistant.text.proposal-waiting": "보내는 중 — {seconds}초, 아직 답이 없습니다",
104
+ "ai-assistant.text.proposal-applied-count": " {total} 중 {applied}",
105
+ "ai-assistant.text.say-to-room-tooltip": "여기 있는 사람들에게 말합니다. AI 는 답하지 않습니다",
106
+ "ai-assistant.text.no-room-yet": "아직 저장되지 않은 대화라 같이 있는 사람이 없습니다",
107
+ "ai-assistant.text.will-be-invited": "보내면 {names} 이 이 대화에 들어옵니다",
108
+ "ai-assistant.text.cannot-invite": "{names} 은 들어오지 않습니다. 이 대화에 있는 사람만 다른 사람을 부를 수 있습니다",
109
+ "ai-assistant.text.answer-needs-permission": "이 답을 볼 권한이 없습니다. 관리자에게 요청하십시오.",
110
+ "ai-assistant.label.conversation": "대화",
111
+ "ai-assistant.text.switch-conversation": "{name} 대화로 바꾸기"
70
112
  }
@@ -59,12 +59,54 @@
59
59
  "ai-assistant.text.ungrounded-mention": "Menyebut sasaran yang tidak disahkan — tiada dalam data sebenar:",
60
60
  "ai-assistant.text.toggle-system-note": "klik untuk kembangkan",
61
61
  "ai-assistant.button.run-proposal": "jalankan",
62
- "ai-assistant.text.proposal-sent": "pelaksanaan diminta",
63
62
  "ai-assistant.text.history-folded": "perbualan ini menjadi panjang — {count} mesej terawal ditinggalkan. perbualan baharu lebih sesuai untuk topik lain.",
64
63
  "ai-assistant.text.history-folded-summarized": "perbualan ini menjadi panjang — {count} mesej terawal diringkaskan. perbualan baharu lebih sesuai untuk topik lain.",
65
64
  "ai-assistant.button.attach": "Lampir",
66
65
  "ai-assistant.tooltip.attach-file": "Lampirkan imej atau fail (tampal papan keratan dan seret & lepas disokong)",
67
66
  "ai-assistant.text.drop-files-here": "Lepaskan imej atau fail di sini",
68
67
  "ai-assistant.button.remove-attachment": "Buang lampiran",
69
- "ai-assistant.session.all": "Semua sejarah"
68
+ "ai-assistant.session.all": "Semua sejarah",
69
+ "ai-assistant.notice.stopped": "permintaan terhenti separuh jalan, jadi sebahagian sahaja selesai.",
70
+ "ai-assistant.notice.provider-busy": "perkhidmatan ai tidak menjawab sekarang. cuba lagi sebentar lagi.",
71
+ "ai-assistant.notice.provider-error": "ada masalah semasa mengendalikan ini. beritahu pentadbir jika ia berulang.",
72
+ "ai-assistant.notice.too-long": "ini berjalan lama dan berhenti pada langkah {iter}. cuba minta dalam bahagian yang lebih kecil.",
73
+ "ai-assistant.notice.tool-kept-failing": "{tool} gagal {count} kali berturut-turut, jadi ia berhenti. cuba nyatakan dengan cara lain.",
74
+ "ai-assistant.text.no-match": "tiada padanan",
75
+ "ai-assistant.text.messages-unreadable": "tidak dapat membaca perbualan ini.",
76
+ "ai-assistant.text.sessions-unreadable": "tidak dapat memuatkan senarai perbualan.",
77
+ "ai-assistant.text.session-not-created": "tidak dapat memulakan perbualan.",
78
+ "ai-assistant.text.proposal-choices": "pilihan susulan",
79
+ "ai-assistant.text.attached-image-ask": "saya lampirkan gambar — ikut gambar ini.",
80
+ "ai-assistant.text.attached-file-ask": "saya lampirkan fail — sila lihat.",
81
+ "ai-assistant.text.other-figure-history": "perbualan ini milik figure lain. buka perbualan bagi model yang sedang anda buka.",
82
+ "ai-assistant.text.application-vs-model-history": "perbualan ini tentang aplikasi, bukan tentang model. buka yang anda mahu.",
83
+ "ai-assistant.text.other-station-history": "perbualan ini milik skrin stesen lain. buka perbualan skrin yang anda sedang lihat.",
84
+ "ai-assistant.text.unknown-mode": "skrin ini meminta perbualan yang tiada pada pelayan ({kind}). muat semula halaman.",
85
+ "ai-assistant.session.default-name": "perbualan {n}",
86
+ "ai-assistant.match.id": "ID",
87
+ "ai-assistant.match.name": "nama",
88
+ "ai-assistant.match.tag": "tag",
89
+ "ai-assistant.match.type": "jenis",
90
+ "ai-assistant.match.class": "kelas",
91
+ "ai-assistant.match.text": "teks",
92
+ "ai-assistant.match.data": "data",
93
+ "ai-assistant.match.property": "sifat",
94
+ "ai-assistant.match.description": "huraian",
95
+ "ai-assistant.candidate.template": "ayat",
96
+ "ai-assistant.candidate.user": "orang",
97
+ "ai-assistant.text.match-count": "{shown} / {all} padanan",
98
+ "ai-assistant.text.match-overflow": "+{count} lagi — persempit carian",
99
+ "ai-assistant.verdict.accepted": "selesai",
100
+ "ai-assistant.verdict.refused": "ditolak",
101
+ "ai-assistant.verdict.unavailable": "tidak dapat dijalankan",
102
+ "ai-assistant.verdict.declined": "dibatalkan",
103
+ "ai-assistant.text.proposal-waiting": "menghantar — {seconds}s, belum ada jawapan",
104
+ "ai-assistant.text.proposal-applied-count": " {applied} daripada {total}",
105
+ "ai-assistant.text.say-to-room-tooltip": "cakap kepada orang di sini — pembantu tidak menjawab",
106
+ "ai-assistant.text.no-room-yet": "perbualan ini belum disimpan, jadi tiada orang lain di dalamnya",
107
+ "ai-assistant.text.will-be-invited": "{names} akan menyertai perbualan ini apabila anda hantar",
108
+ "ai-assistant.text.cannot-invite": "{names} tidak akan menyertai — hanya orang yang sudah ada dalam perbualan boleh membawa orang masuk",
109
+ "ai-assistant.text.answer-needs-permission": "anda tiada kebenaran untuk melihat jawapan ini. minta kebenaran daripada pentadbir.",
110
+ "ai-assistant.label.conversation": "perbualan",
111
+ "ai-assistant.text.switch-conversation": "tukar ke perbualan {name}"
70
112
  }
@@ -59,12 +59,54 @@
59
59
  "ai-assistant.text.ungrounded-mention": "提到了未经确认的对象 — 实际数据中不存在:",
60
60
  "ai-assistant.text.toggle-system-note": "点击展开",
61
61
  "ai-assistant.button.run-proposal": "执行",
62
- "ai-assistant.text.proposal-sent": "已请求执行",
63
62
  "ai-assistant.text.history-folded": "对话变长,前面 {count} 条已省略。若是另一个话题,新建对话更合适。",
64
63
  "ai-assistant.text.history-folded-summarized": "对话变长,前面 {count} 条已折叠为摘要。若是另一个话题,新建对话更合适。",
65
64
  "ai-assistant.button.attach": "附件",
66
65
  "ai-assistant.tooltip.attach-file": "附加图片或文件(支持剪贴板粘贴和拖放)",
67
66
  "ai-assistant.text.drop-files-here": "将图片或文件拖放到此处",
68
67
  "ai-assistant.button.remove-attachment": "删除附件",
69
- "ai-assistant.session.all": "全部历史"
68
+ "ai-assistant.session.all": "全部历史",
69
+ "ai-assistant.notice.stopped": "请求中途停止,只处理了一部分。",
70
+ "ai-assistant.notice.provider-busy": "AI 服务暂时没有回应,请稍后再试。",
71
+ "ai-assistant.notice.provider-error": "处理时出了问题。如果一直这样,请告知管理员。",
72
+ "ai-assistant.notice.too-long": "处理过长,在第 {iter} 步停止。请分成小一些的请求。",
73
+ "ai-assistant.notice.tool-kept-failing": "{tool} 连续失败 {count} 次,已停止。请换一种说法。",
74
+ "ai-assistant.text.no-match": "没有匹配项",
75
+ "ai-assistant.text.messages-unreadable": "无法读取这个对话。",
76
+ "ai-assistant.text.sessions-unreadable": "无法加载对话列表。",
77
+ "ai-assistant.text.session-not-created": "无法开始对话。",
78
+ "ai-assistant.text.proposal-choices": "接下来可以做的",
79
+ "ai-assistant.text.attached-image-ask": "我附上了一张图,请按它来做。",
80
+ "ai-assistant.text.attached-file-ask": "我附上了一个文件,请看一下。",
81
+ "ai-assistant.text.other-figure-history": "这个对话属于另一个 Figure。请打开当前模型的对话。",
82
+ "ai-assistant.text.application-vs-model-history": "这个对话是关于应用的,不是关于模型的。请打开你要的那个。",
83
+ "ai-assistant.text.other-station-history": "这个对话属于另一个现场画面。请打开当前画面的对话。",
84
+ "ai-assistant.text.unknown-mode": "此界面请求的对话在服务器上不存在({kind})。请刷新页面。",
85
+ "ai-assistant.session.default-name": "对话 {n}",
86
+ "ai-assistant.match.id": "ID",
87
+ "ai-assistant.match.name": "名称",
88
+ "ai-assistant.match.tag": "标签",
89
+ "ai-assistant.match.type": "类型",
90
+ "ai-assistant.match.class": "类",
91
+ "ai-assistant.match.text": "文本",
92
+ "ai-assistant.match.data": "数据",
93
+ "ai-assistant.match.property": "属性",
94
+ "ai-assistant.match.description": "说明",
95
+ "ai-assistant.candidate.template": "语句",
96
+ "ai-assistant.candidate.user": "人员",
97
+ "ai-assistant.text.match-count": "{shown} / {all} 项",
98
+ "ai-assistant.text.match-overflow": "还有 {count} 项 — 请缩小搜索范围",
99
+ "ai-assistant.verdict.accepted": "已应用",
100
+ "ai-assistant.verdict.refused": "已拒绝",
101
+ "ai-assistant.verdict.unavailable": "无法执行",
102
+ "ai-assistant.verdict.declined": "已取消",
103
+ "ai-assistant.text.proposal-waiting": "发送中 — {seconds} 秒,尚未收到答复",
104
+ "ai-assistant.text.proposal-applied-count": " {total} 项中的 {applied} 项",
105
+ "ai-assistant.text.say-to-room-tooltip": "对这里的人说,AI 不会回答",
106
+ "ai-assistant.text.no-room-yet": "这个对话还没有保存,所以没有其他人在场",
107
+ "ai-assistant.text.will-be-invited": "发送后 {names} 将加入此对话",
108
+ "ai-assistant.text.cannot-invite": "{names} 不会加入。只有已在此对话中的人才能邀请他人",
109
+ "ai-assistant.text.answer-needs-permission": "没有查看此回答的权限。请向管理员申请。",
110
+ "ai-assistant.label.conversation": "对话",
111
+ "ai-assistant.text.switch-conversation": "切换到 {name} 对话"
70
112
  }