@things-factory/board-ai 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/board-ai",
3
- "version": "10.1.26",
3
+ "version": "10.1.28",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/client/index.js",
6
6
  "things-factory": true,
@@ -32,12 +32,12 @@
32
32
  "@operato/i18n": "^10.0.0",
33
33
  "@operato/scene-ops": "^10.14.1",
34
34
  "@operato/styles": "^10.0.0",
35
- "@things-factory/ai-assistant": "^10.1.26",
36
- "@things-factory/ai-client-base": "^10.1.26",
37
- "@things-factory/auth-base": "^10.1.26",
38
- "@things-factory/board-import": "^10.1.26",
35
+ "@things-factory/ai-assistant": "^10.1.28",
36
+ "@things-factory/ai-client-base": "^10.1.28",
37
+ "@things-factory/auth-base": "^10.1.28",
38
+ "@things-factory/board-import": "^10.1.28",
39
39
  "@things-factory/env": "^10.1.20",
40
- "@things-factory/shell": "^10.1.26",
40
+ "@things-factory/shell": "^10.1.28",
41
41
  "dompurify": "^3.0.0",
42
42
  "graphql-tag": "^2.12.6",
43
43
  "lit": "^3.1.2",
@@ -47,5 +47,5 @@
47
47
  "copyfiles": "^2.4.1",
48
48
  "rimraf": "^5.0.0"
49
49
  },
50
- "gitHead": "151bda14d899442c6846532ddded1e2bfe23a2f5"
50
+ "gitHead": "3a260a0f79bc6b41a692a103955bfcc541aff60e"
51
51
  }
@@ -27,47 +27,15 @@ import { findMentions, type MentionPick } from './mention-resolver'
27
27
  */
28
28
  export const MENTION_MARKER_RE = /\{[a-zA-Z][a-zA-Z0-9]*:[^}\s]+\}/g
29
29
 
30
- /**
31
- * 멘션된 userId 중 *아직 참여자가 아닌* + *자기 자신이 아닌* 신규만 (C4 초대 — 차집합).
32
- * 순수 — 누구를 새로 참여자 등록할지 판정. (resolver 가 repo 작업과 분리해 테스트 가능.)
30
+ /*
31
+ * 이 둘은 **`@things-factory/ai-assistant` 로 옮겼다**(ADR-0071 결정 1).
32
+ *
33
+ * 멘션이 사람을 불러들이는 일은 보드만의 일이 아니다 — 트윈 협의에서 `@이름` 은 아무도 부르지 않고
34
+ * 있었다. 규칙이 이 제품 안에 있는 한 다른 문은 그것을 쓸 수 없다. 여기서는 이름만 다시 내보내
35
+ * 이 패키지의 부르는 자리가 그대로 돌게 한다.
33
36
  */
34
- export function newParticipantUserIds(
35
- mentioned: ReadonlyArray<string>,
36
- existing: ReadonlyArray<string>,
37
- selfUserId?: string | null
38
- ): string[] {
39
- const have = new Set(existing)
40
- if (selfUserId) have.add(selfUserId)
41
- const out: string[] = []
42
- const seen = new Set<string>()
43
- for (const id of mentioned) {
44
- if (!id || have.has(id) || seen.has(id)) continue
45
- seen.add(id)
46
- out.push(id)
47
- }
48
- return out
49
- }
37
+ export { extractMentionUserIds, newParticipantUserIds } from '@things-factory/ai-assistant'
50
38
 
51
- /**
52
- * 본문에서 `@user{userId:UUID}` 마커의 *userId 집합* 추출 (C4 — 초대 트리거).
53
- * 같은 user 중복 제거, 순서 보존(첫 등장순). 마커 없으면 빈 배열.
54
- * 순수 — content 만으로 "이 메시지가 누구를 멘션했나" 판정.
55
- */
56
- export function extractMentionUserIds(text: string | null | undefined): string[] {
57
- if (!text) return []
58
- const re = /\{userId:([^}\s]+)\}/g
59
- const seen = new Set<string>()
60
- const out: string[] = []
61
- let m: RegExpExecArray | null
62
- while ((m = re.exec(text)) !== null) {
63
- const id = m[1]
64
- if (!seen.has(id)) {
65
- seen.add(id)
66
- out.push(id)
67
- }
68
- }
69
- return out
70
- }
71
39
 
72
40
  /**
73
41
  * 본문에서 모든 `{key:value}` 인라인 마커 제거. LLM 입력 / textarea 편집 / 평문 표출 등.