@things-factory/ai-assistant 10.1.45 → 10.1.47

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 (37) hide show
  1. package/client/components/assistant-chat.ts +3 -1
  2. package/client/components/assistant-mode.ts +27 -0
  3. package/client/components/chat-input-builder.ts +8 -1
  4. package/client/index.ts +2 -0
  5. package/client/utils/assistant-capability-read.ts +24 -0
  6. package/client/utils/assistant-capability.test.ts +17 -0
  7. package/client/utils/assistant-capability.ts +19 -0
  8. package/dist-client/components/assistant-chat.js +3 -1
  9. package/dist-client/components/assistant-chat.js.map +1 -1
  10. package/dist-client/components/assistant-mode.js +24 -0
  11. package/dist-client/components/assistant-mode.js.map +1 -1
  12. package/dist-client/components/chat-input-builder.d.ts +9 -0
  13. package/dist-client/components/chat-input-builder.js +2 -1
  14. package/dist-client/components/chat-input-builder.js.map +1 -1
  15. package/dist-client/index.d.ts +2 -0
  16. package/dist-client/index.js +2 -0
  17. package/dist-client/index.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/dist-client/utils/assistant-capability-read.d.ts +6 -0
  20. package/dist-client/utils/assistant-capability-read.js +23 -0
  21. package/dist-client/utils/assistant-capability-read.js.map +1 -0
  22. package/dist-client/utils/assistant-capability.d.ts +4 -0
  23. package/dist-client/utils/assistant-capability.js +17 -0
  24. package/dist-client/utils/assistant-capability.js.map +1 -0
  25. package/dist-client/utils/assistant-capability.test.d.ts +1 -0
  26. package/dist-client/utils/assistant-capability.test.js +16 -0
  27. package/dist-client/utils/assistant-capability.test.js.map +1 -0
  28. package/dist-server/service/assistant-chat-resolver.js +1 -1
  29. package/dist-server/service/assistant-chat-resolver.js.map +1 -1
  30. package/dist-server/service/index.d.ts +1 -0
  31. package/dist-server/service/index.js +3 -1
  32. package/dist-server/service/index.js.map +1 -1
  33. package/dist-server/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +4 -4
  35. package/server/service/assistant-chat-resolver.ts +1 -1
  36. package/server/service/chat-message/fold-session-history.test.ts +18 -0
  37. package/server/service/index.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/ai-assistant",
3
- "version": "10.1.45",
3
+ "version": "10.1.47",
4
4
  "main": "dist-server/index.js",
5
5
  "things-factory": true,
6
6
  "author": "heartyoh",
@@ -30,9 +30,9 @@
30
30
  "@operato/i18n": "^10.0.0",
31
31
  "@operato/styles": "^10.0.0",
32
32
  "@things-factory/ai-client-base": "^10.1.39",
33
- "@things-factory/auth-base": "^10.1.44",
33
+ "@things-factory/auth-base": "^10.1.47",
34
34
  "@things-factory/env": "^10.1.20",
35
- "@things-factory/shell": "^10.1.44",
35
+ "@things-factory/shell": "^10.1.47",
36
36
  "dompurify": "^3.0.0",
37
37
  "graphql-scalars": "^1.22.0",
38
38
  "graphql-tag": "^2.12.6",
@@ -44,5 +44,5 @@
44
44
  "copyfiles": "^2.4.1",
45
45
  "rimraf": "^5.0.0"
46
46
  },
47
- "gitHead": "d72e1fd1285797fcd7839d97a18e31f5bf076ae3"
47
+ "gitHead": "185f20d7d9a15715a0ee2757a6a8189ec36cfb9d"
48
48
  }
@@ -493,7 +493,7 @@ export class AssistantChatResolver {
493
493
  domainId: domain.id,
494
494
  client,
495
495
  maxTurns: LLM_HISTORY_MAX_TURNS,
496
- locale: context.state?.locale
496
+ locale: context.state?.lng
497
497
  })
498
498
  }
499
499
 
@@ -96,3 +96,21 @@ describe('rowsAfterWatermark', () => {
96
96
  expect(where[1]).toMatchObject({ session: { id: 's1' }, createdAt: at })
97
97
  })
98
98
  })
99
+
100
+ /*
101
+ * The summary is written in the conversation's language only if the language reaches it. The i18n
102
+ * middleware leaves it on `ctx.state.lng` (`i18n-base` koa-i18next `setLanguage`); nothing sets
103
+ * `state.locale`. The door read `state.locale`, so every summary was asked for with no language and
104
+ * a Korean deliberation could be summarised in English (found 2026-09-24).
105
+ */
106
+ describe('the door hands the fold the request language', () => {
107
+ it('★ reads state.lng — the key the i18n middleware sets', () => {
108
+ const { readFileSync } = require('fs')
109
+ const { join } = require('path')
110
+ const resolver: string = readFileSync(join(__dirname, '..', 'assistant-chat-resolver.ts'), 'utf8')
111
+ const call = resolver.slice(resolver.indexOf('void foldSessionHistory({'), resolver.indexOf('})', resolver.indexOf('void foldSessionHistory({')))
112
+
113
+ expect(call).toMatch(/locale: context\.state\?\.lng\b/)
114
+ expect(resolver).not.toMatch(/state\?\.locale\b/)
115
+ })
116
+ })
@@ -13,6 +13,7 @@ export * from './chat-session-resolver.js'
13
13
  export * from './assistant-chat-resolver.js'
14
14
  /* The mode registry — each app server declares what its conversations are (ADR-0061 decision 7). */
15
15
  export * from './assistant-mode/index.js'
16
+ export { requestTranslator } from './request-translator.js'
16
17
  export * from './assistant-capability-resolver.js'
17
18
  /*
18
19
  * 대화 각본 하네스는 **런타임 export 에서 뺀다**(ADR-0070 A15 결정 ④) — 시험 도구가 서버 번들에