@things-factory/board-ai 10.1.5 → 10.1.7

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 (204) hide show
  1. package/client/components/default-catalog-entries.ts +1 -1
  2. package/client/components/default-slash-templates.ts +1 -1
  3. package/client/index.ts +39 -6
  4. package/dist-client/client/components/default-catalog-entries.d.ts +1 -1
  5. package/dist-client/client/components/default-catalog-entries.js.map +1 -1
  6. package/dist-client/client/components/default-slash-templates.d.ts +1 -1
  7. package/dist-client/client/components/default-slash-templates.js.map +1 -1
  8. package/dist-client/client/index.d.ts +3 -11
  9. package/dist-client/client/index.js +37 -6
  10. package/dist-client/client/index.js.map +1 -1
  11. package/dist-client/server/service/assistant.d.ts +22 -22
  12. package/dist-client/server/service/assistant.js +32 -70
  13. package/dist-client/server/service/assistant.js.map +1 -1
  14. package/dist-client/server/service/grounding.d.ts +2 -12
  15. package/dist-client/server/service/grounding.js +15 -23
  16. package/dist-client/server/service/grounding.js.map +1 -1
  17. package/dist-client/server/service/types.d.ts +2 -4
  18. package/dist-client/server/service/types.js.map +1 -1
  19. package/dist-client/server/service/validation/board-model-schema.d.ts +270 -270
  20. package/dist-client/tsconfig.tsbuildinfo +1 -1
  21. package/dist-server/service/assistant.d.ts +22 -22
  22. package/dist-server/service/assistant.js +25 -76
  23. package/dist-server/service/assistant.js.map +1 -1
  24. package/dist-server/service/board-ai-resolver.js +41 -30
  25. package/dist-server/service/board-ai-resolver.js.map +1 -1
  26. package/dist-server/service/board-session-resolver.d.ts +12 -0
  27. package/dist-server/service/board-session-resolver.js +203 -0
  28. package/dist-server/service/board-session-resolver.js.map +1 -0
  29. package/dist-server/service/board-tool-rights.d.ts +7 -0
  30. package/dist-server/service/board-tool-rights.js +62 -0
  31. package/dist-server/service/board-tool-rights.js.map +1 -0
  32. package/dist-server/service/grounding.d.ts +2 -12
  33. package/dist-server/service/grounding.js +16 -24
  34. package/dist-server/service/grounding.js.map +1 -1
  35. package/dist-server/service/index.d.ts +4 -10
  36. package/dist-server/service/index.js +16 -23
  37. package/dist-server/service/index.js.map +1 -1
  38. package/dist-server/service/patch-entry/board-patch-subscription.js +2 -2
  39. package/dist-server/service/patch-entry/board-patch-subscription.js.map +1 -1
  40. package/dist-server/service/patch-entry/patch-entry.d.ts +1 -1
  41. package/dist-server/service/patch-entry/patch-entry.js +3 -3
  42. package/dist-server/service/patch-entry/patch-entry.js.map +1 -1
  43. package/dist-server/service/types.d.ts +2 -4
  44. package/dist-server/service/types.js.map +1 -1
  45. package/dist-server/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +7 -6
  47. package/server/service/apply-patch-drift.test.ts +3 -1
  48. package/server/service/assistant.ts +47 -73
  49. package/server/service/board-ai-resolver.ts +22 -12
  50. package/server/service/board-session-resolver.ts +183 -0
  51. package/server/service/board-tool-rights.test.ts +96 -0
  52. package/server/service/board-tool-rights.ts +73 -0
  53. package/server/service/dock-contract.test.ts +3 -0
  54. package/server/service/grounding.test.ts +3 -3
  55. package/server/service/grounding.ts +15 -34
  56. package/server/service/index.ts +16 -22
  57. package/server/service/patch-entry/board-patch-subscription.ts +1 -1
  58. package/server/service/patch-entry/patch-entry.ts +3 -2
  59. package/server/service/registry-tool-loop.test.ts +1 -0
  60. package/server/service/tool-exposure.test.ts +2 -0
  61. package/server/service/types.ts +3 -4
  62. package/translations/en.json +1 -62
  63. package/translations/ja.json +1 -61
  64. package/translations/ko.json +1 -62
  65. package/translations/ms.json +1 -61
  66. package/translations/zh.json +1 -61
  67. package/client/components/board-ai-chat.test.ts +0 -149
  68. package/client/components/board-ai-chat.ts +0 -3184
  69. package/client/components/chat-echo-dedup.test.ts +0 -230
  70. package/client/components/chat-echo-dedup.ts +0 -155
  71. package/client/components/chat-input-builder.ts +0 -69
  72. package/client/components/markdown.test.ts +0 -518
  73. package/client/components/markdown.ts +0 -508
  74. package/client/components/mention-popup-helpers.ts +0 -433
  75. package/client/components/mention-popup.test.ts +0 -588
  76. package/client/components/mention-popup.ts +0 -238
  77. package/client/utils/board-edit-patch.ts +0 -374
  78. package/dist-client/client/components/board-ai-chat.d.ts +0 -384
  79. package/dist-client/client/components/board-ai-chat.js +0 -3008
  80. package/dist-client/client/components/board-ai-chat.js.map +0 -1
  81. package/dist-client/client/components/board-ai-chat.test.d.ts +0 -1
  82. package/dist-client/client/components/board-ai-chat.test.js +0 -138
  83. package/dist-client/client/components/board-ai-chat.test.js.map +0 -1
  84. package/dist-client/client/components/chat-echo-dedup.d.ts +0 -54
  85. package/dist-client/client/components/chat-echo-dedup.js +0 -115
  86. package/dist-client/client/components/chat-echo-dedup.js.map +0 -1
  87. package/dist-client/client/components/chat-echo-dedup.test.d.ts +0 -1
  88. package/dist-client/client/components/chat-echo-dedup.test.js +0 -203
  89. package/dist-client/client/components/chat-echo-dedup.test.js.map +0 -1
  90. package/dist-client/client/components/chat-input-builder.d.ts +0 -55
  91. package/dist-client/client/components/chat-input-builder.js +0 -32
  92. package/dist-client/client/components/chat-input-builder.js.map +0 -1
  93. package/dist-client/client/components/markdown.d.ts +0 -60
  94. package/dist-client/client/components/markdown.js +0 -422
  95. package/dist-client/client/components/markdown.js.map +0 -1
  96. package/dist-client/client/components/markdown.test.d.ts +0 -1
  97. package/dist-client/client/components/markdown.test.js +0 -418
  98. package/dist-client/client/components/markdown.test.js.map +0 -1
  99. package/dist-client/client/components/mention-popup-helpers.d.ts +0 -165
  100. package/dist-client/client/components/mention-popup-helpers.js +0 -330
  101. package/dist-client/client/components/mention-popup-helpers.js.map +0 -1
  102. package/dist-client/client/components/mention-popup.d.ts +0 -35
  103. package/dist-client/client/components/mention-popup.js +0 -223
  104. package/dist-client/client/components/mention-popup.js.map +0 -1
  105. package/dist-client/client/components/mention-popup.test.d.ts +0 -1
  106. package/dist-client/client/components/mention-popup.test.js +0 -474
  107. package/dist-client/client/components/mention-popup.test.js.map +0 -1
  108. package/dist-client/client/utils/board-edit-patch.d.ts +0 -157
  109. package/dist-client/client/utils/board-edit-patch.js +0 -284
  110. package/dist-client/client/utils/board-edit-patch.js.map +0 -1
  111. package/dist-server/service/chat-message/chat-message-broadcast.d.ts +0 -13
  112. package/dist-server/service/chat-message/chat-message-broadcast.js +0 -13
  113. package/dist-server/service/chat-message/chat-message-broadcast.js.map +0 -1
  114. package/dist-server/service/chat-message/chat-message-publish.d.ts +0 -6
  115. package/dist-server/service/chat-message/chat-message-publish.js +0 -27
  116. package/dist-server/service/chat-message/chat-message-publish.js.map +0 -1
  117. package/dist-server/service/chat-message/chat-message-subscription.d.ts +0 -8
  118. package/dist-server/service/chat-message/chat-message-subscription.js +0 -53
  119. package/dist-server/service/chat-message/chat-message-subscription.js.map +0 -1
  120. package/dist-server/service/chat-message/chat-message.d.ts +0 -68
  121. package/dist-server/service/chat-message/chat-message.js +0 -172
  122. package/dist-server/service/chat-message/chat-message.js.map +0 -1
  123. package/dist-server/service/chat-message/fold-history.d.ts +0 -43
  124. package/dist-server/service/chat-message/fold-history.js +0 -33
  125. package/dist-server/service/chat-message/fold-history.js.map +0 -1
  126. package/dist-server/service/chat-message/history-summary.d.ts +0 -43
  127. package/dist-server/service/chat-message/history-summary.js +0 -77
  128. package/dist-server/service/chat-message/history-summary.js.map +0 -1
  129. package/dist-server/service/chat-message/index.d.ts +0 -5
  130. package/dist-server/service/chat-message/index.js +0 -12
  131. package/dist-server/service/chat-message/index.js.map +0 -1
  132. package/dist-server/service/chat-message/llm-history.d.ts +0 -46
  133. package/dist-server/service/chat-message/llm-history.js +0 -87
  134. package/dist-server/service/chat-message/llm-history.js.map +0 -1
  135. package/dist-server/service/chat-session/chat-session.d.ts +0 -62
  136. package/dist-server/service/chat-session/chat-session.js +0 -164
  137. package/dist-server/service/chat-session/chat-session.js.map +0 -1
  138. package/dist-server/service/chat-session/index.d.ts +0 -3
  139. package/dist-server/service/chat-session/index.js +0 -7
  140. package/dist-server/service/chat-session/index.js.map +0 -1
  141. package/dist-server/service/chat-session/session-activity-broadcast.d.ts +0 -30
  142. package/dist-server/service/chat-session/session-activity-broadcast.js +0 -34
  143. package/dist-server/service/chat-session/session-activity-broadcast.js.map +0 -1
  144. package/dist-server/service/chat-session/session-activity-publish.d.ts +0 -12
  145. package/dist-server/service/chat-session/session-activity-publish.js +0 -37
  146. package/dist-server/service/chat-session/session-activity-publish.js.map +0 -1
  147. package/dist-server/service/chat-session/session-activity-subscription.d.ts +0 -14
  148. package/dist-server/service/chat-session/session-activity-subscription.js +0 -87
  149. package/dist-server/service/chat-session/session-activity-subscription.js.map +0 -1
  150. package/dist-server/service/chat-session/session-anchor.d.ts +0 -12
  151. package/dist-server/service/chat-session/session-anchor.js +0 -20
  152. package/dist-server/service/chat-session/session-anchor.js.map +0 -1
  153. package/dist-server/service/chat-session/session-inbox.d.ts +0 -80
  154. package/dist-server/service/chat-session/session-inbox.js +0 -133
  155. package/dist-server/service/chat-session/session-inbox.js.map +0 -1
  156. package/dist-server/service/chat-session-participant/chat-session-participant.d.ts +0 -49
  157. package/dist-server/service/chat-session-participant/chat-session-participant.js +0 -141
  158. package/dist-server/service/chat-session-participant/chat-session-participant.js.map +0 -1
  159. package/dist-server/service/chat-session-participant/index.d.ts +0 -4
  160. package/dist-server/service/chat-session-participant/index.js +0 -10
  161. package/dist-server/service/chat-session-participant/index.js.map +0 -1
  162. package/dist-server/service/chat-session-participant/invite-notification.d.ts +0 -27
  163. package/dist-server/service/chat-session-participant/invite-notification.js +0 -30
  164. package/dist-server/service/chat-session-participant/invite-notification.js.map +0 -1
  165. package/dist-server/service/chat-session-participant/presence.d.ts +0 -4
  166. package/dist-server/service/chat-session-participant/presence.js +0 -22
  167. package/dist-server/service/chat-session-participant/presence.js.map +0 -1
  168. package/dist-server/service/chat-session-resolver.d.ts +0 -102
  169. package/dist-server/service/chat-session-resolver.js +0 -856
  170. package/dist-server/service/chat-session-resolver.js.map +0 -1
  171. package/dist-server/service/subscribe-auth.d.ts +0 -14
  172. package/dist-server/service/subscribe-auth.js +0 -33
  173. package/dist-server/service/subscribe-auth.js.map +0 -1
  174. package/server/service/chat-message/chat-message-broadcast.integration.test.ts +0 -73
  175. package/server/service/chat-message/chat-message-broadcast.test.ts +0 -40
  176. package/server/service/chat-message/chat-message-broadcast.ts +0 -27
  177. package/server/service/chat-message/chat-message-publish.ts +0 -22
  178. package/server/service/chat-message/chat-message-subscription.ts +0 -41
  179. package/server/service/chat-message/chat-message.ts +0 -195
  180. package/server/service/chat-message/fold-history.test.ts +0 -98
  181. package/server/service/chat-message/fold-history.ts +0 -77
  182. package/server/service/chat-message/history-summary.test.ts +0 -127
  183. package/server/service/chat-message/history-summary.ts +0 -100
  184. package/server/service/chat-message/index.ts +0 -12
  185. package/server/service/chat-message/llm-history.test.ts +0 -194
  186. package/server/service/chat-message/llm-history.ts +0 -163
  187. package/server/service/chat-session/chat-session.ts +0 -182
  188. package/server/service/chat-session/index.ts +0 -5
  189. package/server/service/chat-session/session-activity-broadcast.ts +0 -57
  190. package/server/service/chat-session/session-activity-publish.ts +0 -44
  191. package/server/service/chat-session/session-activity-subscription.ts +0 -67
  192. package/server/service/chat-session/session-anchor.ts +0 -35
  193. package/server/service/chat-session/session-inbox.test.ts +0 -185
  194. package/server/service/chat-session/session-inbox.ts +0 -161
  195. package/server/service/chat-session-participant/chat-session-participant.ts +0 -135
  196. package/server/service/chat-session-participant/index.ts +0 -6
  197. package/server/service/chat-session-participant/invite-notification.test.ts +0 -30
  198. package/server/service/chat-session-participant/invite-notification.ts +0 -48
  199. package/server/service/chat-session-participant/presence.test.ts +0 -39
  200. package/server/service/chat-session-participant/presence.ts +0 -21
  201. package/server/service/chat-session-resolver.ts +0 -779
  202. package/server/service/session-anchor.test.ts +0 -65
  203. package/server/service/subscribe-auth.test.ts +0 -57
  204. package/server/service/subscribe-auth.ts +0 -34
@@ -1,149 +0,0 @@
1
- /**
2
- * board-ai-chat.ts 의 pure helper 회귀 방지.
3
- *
4
- * 핵심 보호:
5
- * - GraphQL mutation input 에 selectedRefids 가 항상 포함되는지 — 누락이 사용자
6
- * 보고된 "AI 가 선택된 컴포넌트를 모른다" 의 root cause 였다.
7
- * - 식별자 정책 — refid (universal numeric) 가 selection 채널의 표준. id 는 데이터
8
- * 바인딩 이름이며 unique 가 아니라 selection 에 부적합.
9
- */
10
- import { buildChatMutationInput } from './chat-input-builder'
11
-
12
- describe('buildChatMutationInput — mutation input 회귀 방지', () => {
13
- test('selectedRefids 가 input 에 반드시 포함된다 (root cause regression)', () => {
14
- const input = buildChatMutationInput({
15
- sessionId: 'session-1',
16
- history: [{ role: 'user', content: 'hi' }],
17
- liveBoard: { width: 1000, height: 600, components: [] },
18
- selectedRefids: [35]
19
- })
20
- expect(input).toHaveProperty('selectedRefids', [35])
21
- })
22
-
23
- test('selectedRefids 빈 배열도 누락 없이 포함', () => {
24
- const input = buildChatMutationInput({
25
- history: [],
26
- liveBoard: null,
27
- selectedRefids: []
28
- })
29
- expect(input.selectedRefids).toEqual([])
30
- })
31
-
32
- test('모든 expected 필드 존재', () => {
33
- const input = buildChatMutationInput({
34
- sessionId: 's1',
35
- history: [{ role: 'user', content: 'hi' }],
36
- liveBoard: { components: [] },
37
- scopes: ['fmsim'],
38
- knownTypes: ['rect'],
39
- categories: ['equipment'],
40
- componentSchemas: [{ type: 'rect' }],
41
- selectedRefids: [1, 2]
42
- })
43
- expect(Object.keys(input).sort()).toEqual([
44
- 'categories',
45
- 'componentSchemas',
46
- 'currentBoard',
47
- 'knownTypes',
48
- 'messages',
49
- 'scopes',
50
- 'selectedRefids',
51
- 'sessionId'
52
- ])
53
- })
54
-
55
- test('sessionId 누락 → null 정규화', () => {
56
- const input = buildChatMutationInput({
57
- history: [],
58
- liveBoard: null,
59
- selectedRefids: []
60
- })
61
- expect(input.sessionId).toBeNull()
62
- })
63
-
64
- test('liveBoard 누락 → null 정규화', () => {
65
- const input = buildChatMutationInput({
66
- history: [],
67
- liveBoard: undefined,
68
- selectedRefids: []
69
- })
70
- expect(input.currentBoard).toBeNull()
71
- })
72
-
73
- test('messages 가 history 그대로', () => {
74
- const history = [
75
- { role: 'user' as const, content: 'msg1' },
76
- { role: 'assistant' as const, content: 'reply1' }
77
- ]
78
- const input = buildChatMutationInput({
79
- history,
80
- liveBoard: null,
81
- selectedRefids: []
82
- })
83
- expect(input.messages).toBe(history)
84
- })
85
-
86
- test('liveBoard 가 그대로 currentBoard 로 매핑', () => {
87
- const board = {
88
- width: 1920,
89
- height: 1080,
90
- components: [{ refid: 1, type: 'rect' }]
91
- }
92
- const input = buildChatMutationInput({
93
- history: [],
94
- liveBoard: board,
95
- selectedRefids: []
96
- })
97
- expect(input.currentBoard).toBe(board)
98
- })
99
-
100
- test('scopes / knownTypes / categories 누락 시 undefined', () => {
101
- const input = buildChatMutationInput({
102
- history: [],
103
- liveBoard: null,
104
- selectedRefids: []
105
- })
106
- expect(input.scopes).toBeUndefined()
107
- expect(input.knownTypes).toBeUndefined()
108
- expect(input.categories).toBeUndefined()
109
- expect(input.componentSchemas).toBeUndefined()
110
- })
111
-
112
- test('selectedRefids 다중 항목 (number 배열, stringify 없음)', () => {
113
- const input = buildChatMutationInput({
114
- history: [],
115
- liveBoard: null,
116
- selectedRefids: [35, 127, 4096]
117
- })
118
- expect(input.selectedRefids).toEqual([35, 127, 4096])
119
- })
120
-
121
- test('mentions (popup picks) — 빈 배열은 input 에 안 들어감 (server 부담 X)', () => {
122
- const input = buildChatMutationInput({
123
- history: [],
124
- liveBoard: null,
125
- selectedRefids: [],
126
- mentions: []
127
- })
128
- expect(input.mentions).toBeUndefined()
129
- })
130
-
131
- test('mentions — 항목 있으면 input 에 그대로 통과', () => {
132
- const input = buildChatMutationInput({
133
- history: [{ role: 'user', content: '#경광등1 빨갛게' }],
134
- liveBoard: null,
135
- selectedRefids: [],
136
- mentions: [{ token: '경광등1', refid: 35 }]
137
- })
138
- expect(input.mentions).toEqual([{ token: '경광등1', refid: 35 }])
139
- })
140
-
141
- test('mentions 미지정 시 input 에 키 자체가 없음 (backwards compat)', () => {
142
- const input = buildChatMutationInput({
143
- history: [],
144
- liveBoard: null,
145
- selectedRefids: []
146
- })
147
- expect('mentions' in input).toBe(false)
148
- })
149
- })