@jingyi0605/codingns4dsh 0.2.1-beta.10 → 0.2.1-beta.11

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 (145) hide show
  1. package/README.en.md +3 -3
  2. package/README.md +6 -4
  3. package/data/build/dist/client/bundle.js +8958 -7380
  4. package/data/build/dist/client/bundle.js.map +1 -1
  5. package/data/build/dist/client/cli-slots.d.ts +11 -2
  6. package/data/build/dist/client/cli-slots.d.ts.map +1 -1
  7. package/data/build/dist/client/cli-slots.js +67 -16
  8. package/data/build/dist/client/cli-slots.js.map +1 -1
  9. package/data/build/dist/client/client.assistant-configuration-view.js +8 -7
  10. package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -1
  11. package/data/build/dist/client/client.moss-voice-output.js +581 -0
  12. package/data/build/dist/client/client.moss-voice-output.js.map +1 -0
  13. package/data/build/dist/client/client.native-workspace-store.js +1 -1
  14. package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
  15. package/data/build/dist/client/client.primitives-adapter.js.map +1 -1
  16. package/data/build/dist/client/client.react-dom.js +0 -570
  17. package/data/build/dist/client/client.react-dom.js.map +1 -1
  18. package/data/build/dist/client/client.session-translation.js +97 -2
  19. package/data/build/dist/client/client.session-translation.js.map +1 -1
  20. package/data/build/dist/client/client.transport.js +57 -11
  21. package/data/build/dist/client/client.transport.js.map +1 -1
  22. package/data/build/dist/client/desktop-assistant.js +57 -11
  23. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  24. package/data/build/dist/client/features/cli-adapters.js +3 -1
  25. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  26. package/data/build/dist/client/features/session-translation.d.ts.map +1 -1
  27. package/data/build/dist/client/features/session-translation.js +43 -48
  28. package/data/build/dist/client/features/session-translation.js.map +1 -1
  29. package/data/build/dist/client/locales/panels.d.ts.map +1 -1
  30. package/data/build/dist/client/locales/panels.js +57 -11
  31. package/data/build/dist/client/locales/panels.js.map +1 -1
  32. package/data/build/dist/client/native-model-translation-menu.d.ts +6 -0
  33. package/data/build/dist/client/native-model-translation-menu.d.ts.map +1 -0
  34. package/data/build/dist/client/native-model-translation-menu.js +57 -0
  35. package/data/build/dist/client/native-model-translation-menu.js.map +1 -0
  36. package/data/build/dist/client/native-translation-default.d.ts +6 -0
  37. package/data/build/dist/client/native-translation-default.d.ts.map +1 -0
  38. package/data/build/dist/client/native-translation-default.js +30 -0
  39. package/data/build/dist/client/native-translation-default.js.map +1 -0
  40. package/data/build/dist/client/session-translation-chat.d.ts +15 -0
  41. package/data/build/dist/client/session-translation-chat.d.ts.map +1 -1
  42. package/data/build/dist/client/session-translation-chat.js +109 -41
  43. package/data/build/dist/client/session-translation-chat.js.map +1 -1
  44. package/data/build/dist/client/session-translation-interactions.d.ts +31 -0
  45. package/data/build/dist/client/session-translation-interactions.d.ts.map +1 -0
  46. package/data/build/dist/client/session-translation-interactions.js +158 -0
  47. package/data/build/dist/client/session-translation-interactions.js.map +1 -0
  48. package/data/build/dist/client/session-translation-model-pool.d.ts +16 -0
  49. package/data/build/dist/client/session-translation-model-pool.d.ts.map +1 -0
  50. package/data/build/dist/client/session-translation-model-pool.js +246 -0
  51. package/data/build/dist/client/session-translation-model-pool.js.map +1 -0
  52. package/data/build/dist/client/session-translation-pending-dom.d.ts +8 -0
  53. package/data/build/dist/client/session-translation-pending-dom.d.ts.map +1 -0
  54. package/data/build/dist/client/session-translation-pending-dom.js +58 -0
  55. package/data/build/dist/client/session-translation-pending-dom.js.map +1 -0
  56. package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.d.ts +30 -0
  57. package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.d.ts.map +1 -0
  58. package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js +102 -0
  59. package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js.map +1 -0
  60. package/data/build/dist/dsh-capabilities/client/interaction-text-dom.d.ts +12 -0
  61. package/data/build/dist/dsh-capabilities/client/interaction-text-dom.d.ts.map +1 -0
  62. package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js +181 -0
  63. package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js.map +1 -0
  64. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts +1 -0
  65. package/data/build/dist/dsh-capabilities/client/primitives-adapter.d.ts.map +1 -1
  66. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js +1 -0
  67. package/data/build/dist/dsh-capabilities/client/primitives-adapter.js.map +1 -1
  68. package/data/build/dist/dsh-capabilities/client/question-history-adapter.d.ts +20 -0
  69. package/data/build/dist/dsh-capabilities/client/question-history-adapter.d.ts.map +1 -0
  70. package/data/build/dist/dsh-capabilities/client/question-history-adapter.js +65 -0
  71. package/data/build/dist/dsh-capabilities/client/question-history-adapter.js.map +1 -0
  72. package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts +30 -0
  73. package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts.map +1 -0
  74. package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js +62 -0
  75. package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js.map +1 -0
  76. package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
  77. package/data/build/dist/dsh-capabilities/matrix.js +1 -0
  78. package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
  79. package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
  80. package/data/build/dist/dsh-capabilities/routes.js +3 -0
  81. package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
  82. package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
  83. package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
  84. package/data/build/dist/dsh-capabilities/types.js.map +1 -1
  85. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  86. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +17 -8
  87. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  88. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  89. package/data/build/dist/host/cli-adapters/feature.js +252 -39
  90. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  91. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js +2 -2
  92. package/data/build/dist/host/cli-adapters/native-subagent-dispatch.js.map +1 -1
  93. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  94. package/data/build/dist/host/cli-adapters/registry.js +2 -0
  95. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  96. package/data/build/dist/host/features/interaction-translation.d.ts +9 -0
  97. package/data/build/dist/host/features/interaction-translation.d.ts.map +1 -0
  98. package/data/build/dist/host/features/interaction-translation.js +168 -0
  99. package/data/build/dist/host/features/interaction-translation.js.map +1 -0
  100. package/data/build/dist/host/features/session-translation-protection.d.ts +11 -0
  101. package/data/build/dist/host/features/session-translation-protection.d.ts.map +1 -0
  102. package/data/build/dist/host/features/session-translation-protection.js +165 -0
  103. package/data/build/dist/host/features/session-translation-protection.js.map +1 -0
  104. package/data/build/dist/host/features/session-translation-runtime.d.ts +16 -0
  105. package/data/build/dist/host/features/session-translation-runtime.d.ts.map +1 -0
  106. package/data/build/dist/host/features/session-translation-runtime.js +85 -0
  107. package/data/build/dist/host/features/session-translation-runtime.js.map +1 -0
  108. package/data/build/dist/host/features/session-translation-service.d.ts +10 -3
  109. package/data/build/dist/host/features/session-translation-service.d.ts.map +1 -1
  110. package/data/build/dist/host/features/session-translation-service.js +159 -197
  111. package/data/build/dist/host/features/session-translation-service.js.map +1 -1
  112. package/data/build/dist/host/features/session-translation.js +1 -1
  113. package/data/build/dist/host/features/session-translation.js.map +1 -1
  114. package/data/build/dist/host/native-session-bridge.js +2 -2
  115. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  116. package/data/build/dist/host/settings.d.ts.map +1 -1
  117. package/data/build/dist/host/settings.js +6 -2
  118. package/data/build/dist/host/settings.js.map +1 -1
  119. package/data/build/dist/shared/contracts/interaction-presentation.d.ts +32 -0
  120. package/data/build/dist/shared/contracts/interaction-presentation.d.ts.map +1 -0
  121. package/data/build/dist/shared/contracts/interaction-presentation.js +2 -0
  122. package/data/build/dist/shared/contracts/interaction-presentation.js.map +1 -0
  123. package/data/build/dist/shared/contracts/interaction-translation.d.ts +53 -0
  124. package/data/build/dist/shared/contracts/interaction-translation.d.ts.map +1 -0
  125. package/data/build/dist/shared/contracts/interaction-translation.js +44 -0
  126. package/data/build/dist/shared/contracts/interaction-translation.js.map +1 -0
  127. package/data/build/dist/shared/contracts/session-translation.d.ts +62 -7
  128. package/data/build/dist/shared/contracts/session-translation.d.ts.map +1 -1
  129. package/data/build/dist/shared/contracts/session-translation.js +122 -2
  130. package/data/build/dist/shared/contracts/session-translation.js.map +1 -1
  131. package/data/build/dist/shared/contracts/version.d.ts +1 -1
  132. package/data/build/dist/shared/contracts/version.js +1 -1
  133. package/data/build/dist/shared/index.d.ts +1 -1
  134. package/data/build/dist/shared/index.d.ts.map +1 -1
  135. package/data/build/dist/shared/index.js +1 -1
  136. package/data/build/dist/shared/index.js.map +1 -1
  137. package/data/build/dist/shared/translation-indicator.d.ts +26 -0
  138. package/data/build/dist/shared/translation-indicator.d.ts.map +1 -0
  139. package/data/build/dist/shared/translation-indicator.js +29 -0
  140. package/data/build/dist/shared/translation-indicator.js.map +1 -0
  141. package/package.json +1 -1
  142. package/profile/README.md +2 -2
  143. package/profile/package.json +2 -2
  144. package/profile/version.json +1 -1
  145. package/version.json +1 -1
@@ -1,6 +1,8 @@
1
1
  import { createDshCapabilityRegistry } from '../../dsh-capabilities/routes.js';
2
- import { isSessionTranslationAdapter, } from '../../shared/contracts/session-translation.js';
2
+ import { isSessionTranslationAdapter, normalizeSessionTranslationSettings, supportsSessionTranslation, } from '../../shared/contracts/session-translation.js';
3
3
  import { debugWarn } from '../../shared/debug.js';
4
+ import { isLanguageNeutralText, protectText, restoreText, stripPlaceholders } from './session-translation-protection.js';
5
+ import { translationFailure, withTranslationAbort as withAbort } from './session-translation-runtime.js';
4
6
  /**
5
7
  * 会话翻译只调用 DSH 已配置的原生 LLM,不创建 Agent、不执行工具,也不持久化凭据。
6
8
  * 翻译失败时由调用方回退原文,不能让外部 Agent 的主任务失败。
@@ -15,11 +17,14 @@ export function createSessionTranslationService(ctx, dshVersion) {
15
17
  let disposed = false;
16
18
  let active = false;
17
19
  let nativeFallbackModel;
18
- const selectModel = async (signal) => {
19
- const configured = settings.translationModel;
20
+ const selectModels = async (signal) => {
21
+ if (settings.translationModels !== undefined && settings.translationModels.length > 0) {
22
+ return settings.translationModels.filter((item) => !isSessionTranslationAdapter(item.provider));
23
+ }
24
+ const configured = settings.translationModels === undefined ? settings.translationModel : undefined;
20
25
  if (configured !== undefined) {
21
26
  if (!isSessionTranslationAdapter(configured.provider))
22
- return configured;
27
+ return [configured];
23
28
  debugWarn('codingns4dsh: 翻译设置指向外部 Agent Provider,改用原生模型目录', {
24
29
  provider: configured.provider,
25
30
  model: configured.model,
@@ -27,12 +32,86 @@ export function createSessionTranslationService(ctx, dshVersion) {
27
32
  }
28
33
  const selected = model?.currentSelection?.();
29
34
  if (selected !== undefined && !isSessionTranslationAdapter(selected.provider))
30
- return selected;
35
+ return [selected];
31
36
  if (nativeFallbackModel === undefined)
32
37
  nativeFallbackModel = findFirstNativeModel(llm);
33
- const fallback = await nativeFallbackModel;
38
+ const pendingFallback = nativeFallbackModel;
39
+ const fallback = await withAbort(() => pendingFallback, signal);
34
40
  signal.throwIfAborted();
35
- return fallback;
41
+ return fallback === undefined ? [] : [fallback];
42
+ };
43
+ // Both directions share model ordering, deadlines, cancellation, and result validation.
44
+ const translateWithModels = async (adapterId, kind, text, protectedText, targetLanguage, signal) => {
45
+ const startedAt = performance.now();
46
+ let totalTokens;
47
+ const metrics = () => ({
48
+ durationMs: performance.now() - startedAt,
49
+ ...(totalTokens === undefined ? {} : { totalTokens }),
50
+ });
51
+ let selected;
52
+ let failure = { code: 'configuration', retryable: false };
53
+ try {
54
+ const selectionTimeout = AbortSignal.timeout(30_000);
55
+ const selectionSignal = signal === undefined ? selectionTimeout : AbortSignal.any([selectionTimeout, signal]);
56
+ selectionSignal.throwIfAborted();
57
+ const candidates = await selectModels(selectionSignal);
58
+ for (const candidate of candidates) {
59
+ if (signal?.aborted)
60
+ break;
61
+ if (candidate.provider.trim() === '' || candidate.model.trim() === '')
62
+ continue;
63
+ selected = candidate;
64
+ const controller = new AbortController();
65
+ const timeout = globalThis.setTimeout(() => controller.abort(new Error('session translation timeout')), 30_000);
66
+ const combined = signal === undefined ? controller.signal : AbortSignal.any([controller.signal, signal]);
67
+ let attemptTokens = 0;
68
+ try {
69
+ const translated = await withAbort(async () => {
70
+ combined.throwIfAborted();
71
+ const reasoningEffort = await translationReasoningEffort(llm, candidate, combined);
72
+ const result = await readTranslation(llm.stream({
73
+ provider: candidate.provider,
74
+ model: candidate.model,
75
+ signal: combined,
76
+ codingnsTranslation: true,
77
+ ...(reasoningEffort === undefined ? {} : { reasoningEffort }),
78
+ temperature: 0,
79
+ maxTokens: Math.min(16_000, Math.max(512, text.length * 2 + 256)),
80
+ system: translationSystem(targetLanguage, kind),
81
+ messages: [{ role: 'user', content: [{ type: 'text', text: translationUserMessage(targetLanguage, kind, protectedText.text) }] }],
82
+ }), combined, (tokens) => {
83
+ totalTokens = (totalTokens ?? 0) + tokens - attemptTokens;
84
+ attemptTokens = tokens;
85
+ });
86
+ combined.throwIfAborted();
87
+ // Validate prose before restoring code, whose language is intentionally unchanged.
88
+ if (!isUsableTranslation(stripPlaceholders(result), targetLanguage))
89
+ throw new Error('model returned an unusable translation');
90
+ return restoreText(result.trim(), protectedText.values);
91
+ }, combined);
92
+ return { translated, model: candidate, ...metrics() };
93
+ }
94
+ catch (error) {
95
+ failure = translationFailure(error, combined);
96
+ debugWarn('codingns4dsh: Translation model failed', {
97
+ adapterId, kind, provider: candidate.provider, model: candidate.model,
98
+ error: error instanceof Error ? error.message : String(error),
99
+ });
100
+ if (signal?.aborted)
101
+ break;
102
+ }
103
+ finally {
104
+ globalThis.clearTimeout(timeout);
105
+ }
106
+ }
107
+ }
108
+ catch (error) {
109
+ failure = translationFailure(error, signal);
110
+ debugWarn('codingns4dsh: Translation model selection failed', {
111
+ adapterId, kind, error: error instanceof Error ? error.message : String(error),
112
+ });
113
+ }
114
+ return { translated: text, failed: true, failure, ...(selected === undefined ? {} : { model: selected }), ...metrics() };
36
115
  };
37
116
  const translate = async (adapterId, kind, text, signal, sessionEnabled) => {
38
117
  const value = text;
@@ -42,7 +121,7 @@ export function createSessionTranslationService(ctx, dshVersion) {
42
121
  return null;
43
122
  const targetLanguage = kind === 'assistant' || kind === 'reasoning' ? settings.outputLanguage : settings.inputLanguage;
44
123
  const protectedText = protectText(value);
45
- if (isPlaceholderOnly(protectedText.text))
124
+ if (hasNoTranslatableText(protectedText.text))
46
125
  return null;
47
126
  const sourceLanguage = detectSourceLanguage(protectedText.text, targetLanguage);
48
127
  if (sourceLanguage === targetLanguage) {
@@ -53,83 +132,26 @@ export function createSessionTranslationService(ctx, dshVersion) {
53
132
  targetLanguage,
54
133
  bilingual: settings.bilingual,
55
134
  alreadyTargetLanguage: true,
135
+ durationMs: 0,
136
+ totalTokens: 0,
56
137
  };
57
138
  }
58
- const controller = new AbortController();
59
- const timeout = globalThis.setTimeout(() => controller.abort(new Error('session translation timeout')), 30_000);
60
- const combined = signal === undefined ? controller.signal : AbortSignal.any([controller.signal, signal]);
61
- let selected;
62
- try {
63
- selected = await selectModel(combined);
64
- if (selected === undefined || selected.provider.trim() === '' || selected.model.trim() === '') {
65
- debugWarn('codingns4dsh: 会话翻译未找到可用模型,已回退原文', { adapterId, kind });
66
- return { original: value, translated: value, ...(sourceLanguage === undefined ? {} : { sourceLanguage }), targetLanguage, bilingual: settings.bilingual, failed: true };
67
- }
68
- combined.throwIfAborted();
69
- const reasoningEffort = await translationReasoningEffort(llm, selected, combined);
70
- const result = await readTranslation(llm.stream({
71
- provider: selected.provider,
72
- model: selected.model,
73
- signal: combined,
74
- codingnsTranslation: true,
75
- ...(reasoningEffort === undefined ? {} : { reasoningEffort }),
76
- temperature: 0,
77
- maxTokens: Math.min(16_000, Math.max(512, value.length * 2 + 256)),
78
- system: translationSystem(targetLanguage, kind),
79
- messages: [{ role: 'user', content: [{ type: 'text', text: translationUserMessage(targetLanguage, kind, protectedText.text) }] }],
80
- }), combined);
81
- const translated = restoreText(result, protectedText.values).trim();
82
- if (!isUsableTranslation(translated, targetLanguage)) {
83
- debugWarn('codingns4dsh: 会话输出翻译没有返回文字,已回退原文', {
84
- adapterId,
85
- kind,
86
- provider: selected.provider,
87
- model: selected.model,
88
- });
89
- return {
90
- original: value,
91
- translated: value,
92
- ...(sourceLanguage === undefined ? {} : { sourceLanguage }),
93
- targetLanguage,
94
- bilingual: settings.bilingual,
95
- failed: true,
96
- model: { provider: selected.provider, model: selected.model },
97
- };
98
- }
99
- return {
100
- original: value,
101
- translated,
102
- ...(sourceLanguage === undefined ? {} : { sourceLanguage }),
103
- targetLanguage,
104
- bilingual: settings.bilingual,
105
- model: { provider: selected.provider, model: selected.model },
106
- };
107
- }
108
- catch (error) {
109
- debugWarn('codingns4dsh: 会话输出翻译请求失败,已回退原文', {
110
- adapterId,
111
- kind,
112
- ...(selected === undefined ? {} : { provider: selected.provider, model: selected.model }),
113
- error: error instanceof Error ? error.message : String(error),
114
- });
115
- return {
116
- original: value,
117
- translated: value,
118
- ...(sourceLanguage === undefined ? {} : { sourceLanguage }),
119
- targetLanguage,
120
- bilingual: settings.bilingual,
121
- failed: true,
122
- ...(selected === undefined ? {} : { model: { provider: selected.provider, model: selected.model } }),
123
- };
124
- }
125
- finally {
126
- globalThis.clearTimeout(timeout);
127
- }
139
+ const result = await translateWithModels(adapterId, kind, value, protectedText, targetLanguage, signal);
140
+ return {
141
+ original: value,
142
+ ...result,
143
+ ...(sourceLanguage === undefined ? {} : { sourceLanguage }),
144
+ targetLanguage,
145
+ bilingual: settings.bilingual,
146
+ };
128
147
  };
129
148
  return {
130
149
  get enabled() { return active; },
150
+ get cacheKey() { return JSON.stringify([settings, model?.currentSelection?.()]); },
131
151
  get inputLanguage() { return settings.inputLanguage; },
132
152
  get outputLanguage() { return settings.outputLanguage; },
153
+ get nativeEnabled() { return settings.nativeEnabled === true; },
154
+ get bilingual() { return settings.bilingual === true; },
133
155
  async catalog() {
134
156
  const errors = [];
135
157
  const providers = llm.listProviders?.() ?? [];
@@ -175,62 +197,15 @@ export function createSessionTranslationService(ctx, dshVersion) {
175
197
  if (!active || !canTranslateAdapter(adapterId, sessionEnabled) || text.trim() === '')
176
198
  return { translated: text };
177
199
  const protectedText = protectText(text);
178
- if (isPlaceholderOnly(protectedText.text))
200
+ if (hasNoTranslatableText(protectedText.text))
179
201
  return { translated: text };
180
202
  const targetLanguage = settings.inputLanguage;
181
203
  const sourceLanguage = detectSourceLanguage(protectedText.text, targetLanguage);
182
204
  if (sourceLanguage === targetLanguage) {
183
- return { translated: text, sourceLanguage, alreadyTargetLanguage: true };
184
- }
185
- const controller = new AbortController();
186
- const timeout = globalThis.setTimeout(() => controller.abort(new Error('session translation timeout')), 30_000);
187
- const combined = signal === undefined ? controller.signal : AbortSignal.any([controller.signal, signal]);
188
- let selected;
189
- try {
190
- selected = await selectModel(combined);
191
- if (selected === undefined || selected.provider.trim() === '' || selected.model.trim() === '') {
192
- debugWarn('codingns4dsh: 会话输入翻译未找到可用模型,已回退原文', { adapterId });
193
- return { translated: text, ...(sourceLanguage === undefined ? {} : { sourceLanguage }), failed: true };
194
- }
195
- const reasoningEffort = await translationReasoningEffort(llm, selected, combined);
196
- const result = await readTranslation(llm.stream({
197
- provider: selected.provider,
198
- model: selected.model,
199
- signal: combined,
200
- codingnsTranslation: true,
201
- ...(reasoningEffort === undefined ? {} : { reasoningEffort }),
202
- temperature: 0,
203
- maxTokens: Math.min(16_000, Math.max(512, text.length * 2 + 256)),
204
- system: translationSystem(settings.inputLanguage, 'input'),
205
- messages: [{ role: 'user', content: [{ type: 'text', text: translationUserMessage(settings.inputLanguage, 'input', protectedText.text) }] }],
206
- }), combined);
207
- const translated = restoreText(result, protectedText.values).trim();
208
- if (!isUsableTranslation(translated, settings.inputLanguage)) {
209
- debugWarn('codingns4dsh: 会话输入翻译没有返回文字,已回退原文', {
210
- adapterId,
211
- provider: selected.provider,
212
- model: selected.model,
213
- });
214
- return { translated: text, ...(sourceLanguage === undefined ? {} : { sourceLanguage }), failed: true, model: { provider: selected.provider, model: selected.model } };
215
- }
216
- return { translated, ...(sourceLanguage === undefined ? {} : { sourceLanguage }), model: { provider: selected.provider, model: selected.model } };
217
- }
218
- catch (error) {
219
- debugWarn('codingns4dsh: 会话输入翻译请求失败,已回退原文', {
220
- adapterId,
221
- ...(selected === undefined ? {} : { provider: selected.provider, model: selected.model }),
222
- error: error instanceof Error ? error.message : String(error),
223
- });
224
- return {
225
- translated: text,
226
- ...(sourceLanguage === undefined ? {} : { sourceLanguage }),
227
- failed: true,
228
- ...(selected === undefined ? {} : { model: { provider: selected.provider, model: selected.model } }),
229
- };
230
- }
231
- finally {
232
- globalThis.clearTimeout(timeout);
205
+ return { translated: text, sourceLanguage, alreadyTargetLanguage: true, durationMs: 0, totalTokens: 0 };
233
206
  }
207
+ const result = await translateWithModels(adapterId, 'input', text, protectedText, targetLanguage, signal);
208
+ return { ...result, ...(sourceLanguage === undefined ? {} : { sourceLanguage }) };
234
209
  }
235
210
  }
236
211
  function translationSystem(language, kind) {
@@ -248,7 +223,8 @@ function translationSystem(language, kind) {
248
223
  'TRANSLATION RULE: Translate faithfully and completely. Do not add facts, intent, politeness, or a suggested next step.',
249
224
  'OUTPUT RULE: Return only the translated text. Do not add a prefix, quotation marks, labels, notes, or commentary.',
250
225
  'OUTPUT RULE: If the source text is already in the target language, return it unchanged.',
251
- 'PRESERVATION RULE: Preserve line breaks, Markdown structure, fenced code, inline code, JSON, shell commands, URLs, file paths, identifiers, and placeholders exactly.',
226
+ 'PRESERVATION RULE: Preserve line breaks, Markdown structure, fenced code, inline code, HTML/XML elements, JSON, shell commands, URLs, file paths, identifiers, and placeholders exactly.',
227
+ 'PRESERVATION RULE: Copy each @@CODINGNS_TRANSLATION_N@@ placeholder exactly once. Never translate, omit, duplicate, or invent placeholders.',
252
228
  ].join('\n');
253
229
  }
254
230
  function translationUserMessage(language, kind, text) {
@@ -278,17 +254,15 @@ function isUsableTranslation(value, language) {
278
254
  return latin > 0 && latin >= cjk;
279
255
  }
280
256
  /**
281
- * 轻量、本地的语言判断。只有明确的文字特征或较强词汇信号才返回语言;
282
- * 混合文本、短代号和语言特征不足的文本保持未知,继续走原翻译流程。
257
+ * Local language detection after protected code and literals have been removed.
258
+ * Han prose may contain isolated Latin terms; foreign passages and ambiguous
259
+ * mixtures remain unknown so that translation is not skipped accidentally.
283
260
  *
284
- * 目标语言是英语时额外放行「纯拉丁文本」:英语没有专属字形,词表评分对
285
- * `tool test`、`check this file` 这类短指令经常给不出结论,继续调用翻译模型
286
- * 只会原样返回,还会把界面标成「已翻译」。命中法语/德语词汇或带非英语
287
- * 变音字母的文本仍保持未知,交由翻译模型处理。
261
+ * An English target also accepts plain Latin text without French/German signals,
262
+ * preserving the existing bypass for short instructions such as "tool test".
288
263
  */
289
264
  function detectSourceLanguage(value, targetLanguage) {
290
- const text = value
291
- .replace(/@@CODINGNS_TRANSLATION_\d+@@/gu, ' ')
265
+ const text = stripPlaceholders(value)
292
266
  .normalize('NFKC')
293
267
  .trim();
294
268
  if (text === '')
@@ -297,7 +271,9 @@ function detectSourceLanguage(value, targetLanguage) {
297
271
  return 'ja';
298
272
  const han = (text.match(/[\u3400-\u9fff]/gu) ?? []).length;
299
273
  const latin = (text.match(/[A-Za-zÀ-ÖØ-öø-ÿ]/gu) ?? []).length;
300
- if (han > 0 && latin === 0) {
274
+ if (han > 0) {
275
+ if (latin > 0 && !isHanProseWithEmbeddedLatinTerms(text, han))
276
+ return undefined;
301
277
  // 简体中文特征字和常见短语,补足“你好”一类没有专属字形的短文本。
302
278
  if (/[这门马车东书国语汉发后里时会为]/u.test(text)
303
279
  || /(?:你好|您好|谢谢|再见|请问|什么|为什么|如何|代码|检查|完成|错误|继续|开始|结束|测试|确认|没有|可以|需要)/u.test(text))
@@ -305,13 +281,13 @@ function detectSourceLanguage(value, targetLanguage) {
305
281
  // 少数常见的纯汉字日语短语;普通日语句子通常已由假名识别。
306
282
  if (/(?:確認|作成|実行|設定|変更|対応|修正|原因|利用|処理|必要|可能|準備|表示|入力|出力|開発|環境|現在)/u.test(text))
307
283
  return 'ja';
308
- // 目标语言是中文时,纯汉字文本按中文处理:没有特征字的短句(如“我修好了”)
309
- // 同样无法识别,继续调用翻译模型只会原样返回并把界面标成「已翻译」。
284
+ // With a Chinese target, Han prose without distinctive vocabulary is also
285
+ // accepted, including short replies and prose with embedded technical terms.
310
286
  if (targetLanguage === 'zh')
311
287
  return 'zh';
312
288
  return undefined;
313
289
  }
314
- if (latin === 0 || han > 0)
290
+ if (latin === 0)
315
291
  return undefined;
316
292
  const words = text.toLocaleLowerCase().match(/[\p{L}]+/gu) ?? [];
317
293
  const scores = { en: 0, fr: 0, de: 0 };
@@ -348,6 +324,29 @@ function detectSourceLanguage(value, targetLanguage) {
348
324
  return 'en';
349
325
  return undefined;
350
326
  }
327
+ /** Accept embedded terms without letting a Han majority hide foreign passages. */
328
+ function isHanProseWithEmbeddedLatinTerms(text, han) {
329
+ if (/(?!\p{Script=Han}|\p{Script=Latin})\p{L}/u.test(text))
330
+ return false;
331
+ // Count Latin words rather than letters: a long identifier must not outweigh
332
+ // its surrounding prose. Very short or term-heavy mixtures remain unknown.
333
+ const terms = text.match(/\p{Script=Latin}+/gu) ?? [];
334
+ if (han <= terms.length)
335
+ return false;
336
+ // Keep periods inside identifiers such as Node.js; split sentence endings and
337
+ // lines so that even a short foreign sentence cannot be masked by Han elsewhere.
338
+ const clauses = text.split(/[\r\n。!?!?;;]|\.(?=\s|$)/u);
339
+ return clauses.every((clause) => {
340
+ if (!/\p{Script=Latin}/u.test(clause))
341
+ return true;
342
+ if (!/[\u3400-\u9fff]/u.test(clause))
343
+ return false;
344
+ // Only isolated terms qualify. Multiword names and phrases remain ambiguous;
345
+ // handling them conservatively avoids skipping actual foreign prose. Ignore
346
+ // Markdown emphasis without treating underscores inside identifiers as spaces.
347
+ return !/\p{Script=Latin}\s+\p{Script=Latin}/u.test(clause.replace(/[*_~]/gu, ''));
348
+ });
349
+ }
351
350
  /**
352
351
  * 纯拉丁文本:不含汉字、假名等其它文字的专属字形,也不含非英语的拉丁变音字母。
353
352
  * 只有这类文本才允许在目标语言是英语时直接放行。
@@ -361,10 +360,20 @@ function isPlainLatinText(text) {
361
360
  return false;
362
361
  return true;
363
362
  }
364
- async function readTranslation(stream, signal) {
363
+ async function readTranslation(stream, signal, onUsage) {
365
364
  let text = '';
366
365
  for await (const chunk of stream) {
367
366
  signal.throwIfAborted();
367
+ if (chunk.type === 'usage' && chunk.usage != null) {
368
+ const usage = chunk.usage;
369
+ const validTokens = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
370
+ // DSH reports uncached input and cache reads/writes as disjoint buckets.
371
+ const buckets = [usage.inputTokens, usage.outputTokens, usage.cacheReadTokens, usage.cacheWriteTokens].filter(validTokens);
372
+ if (validTokens(usage.totalTokens))
373
+ onUsage(usage.totalTokens);
374
+ else if (buckets.length > 0)
375
+ onUsage(buckets.reduce((total, value) => total + value, 0));
376
+ }
368
377
  if (chunk.type === 'text-delta' && typeof chunk.text === 'string')
369
378
  text += chunk.text;
370
379
  else if (chunk.type === 'block-end' && chunk.block?.type === 'text' && text === '' && typeof chunk.block.text === 'string')
@@ -391,59 +400,19 @@ async function findFirstNativeModel(llm) {
391
400
  }
392
401
  return undefined;
393
402
  }
394
- function protectText(value) {
395
- const values = [];
396
- if (isJsonDocument(value)) {
397
- values.push(value);
398
- return { text: `@@CODINGNS_TRANSLATION_0@@`, values };
399
- }
400
- const text = value.replace(/```[\s\S]*?```|`[^`]*`|https?:\/\/[^\s)]+|(?:^|\s)(?:[~/][^\s]+|[A-Za-z]:\\[^\s]+)(?=\s|$)|(?:^|\n)[ \t]*(?:[$>#]\s+|(?:npm|pnpm|yarn|bun|git|node|python|python3|cargo|docker|kubectl|curl|ssh|chmod|chown|mkdir|rmdir|rm|cp|mv|ls|cat|echo|export|make)\s+)[^\n]+/gimu, (match) => {
401
- const prefix = /^\s/u.test(match) ? match.slice(0, match.length - match.trimStart().length) : '';
402
- const original = match.slice(prefix.length);
403
- const index = values.push(original) - 1;
404
- return `${prefix}@@CODINGNS_TRANSLATION_${index}@@`;
405
- });
406
- return { text, values };
407
- }
408
- function isPlaceholderOnly(value) {
409
- return value.replace(/@@CODINGNS_TRANSLATION_\d+@@/gu, '').trim() === '';
410
- }
411
- function isJsonDocument(value) {
412
- const trimmed = value.trim();
413
- if (!/^(?:\{|\[)/u.test(trimmed))
414
- return false;
415
- try {
416
- JSON.parse(trimmed);
417
- return true;
418
- }
419
- catch {
420
- return false;
421
- }
422
- }
423
- function restoreText(value, values) {
424
- return value.replace(/@@CODINGNS_TRANSLATION_(\d+)@@/gu, (match, index) => values[Number(index)] ?? match);
403
+ function hasNoTranslatableText(value) {
404
+ const prose = stripPlaceholders(value).trim();
405
+ return prose === '' || isLanguageNeutralText(prose);
425
406
  }
426
407
  function normalizeSettings(value) {
427
- const fallback = defaultSettings();
428
- if (value === undefined)
429
- return fallback;
430
- const translationModel = normalizeModel(value.translationModel);
431
- return {
432
- inputLanguage: ['en', 'fr', 'de', 'ja'].includes(value.inputLanguage) ? value.inputLanguage : fallback.inputLanguage,
433
- outputLanguage: ['zh', 'en', 'fr', 'de', 'ja'].includes(value.outputLanguage) ? value.outputLanguage : fallback.outputLanguage,
434
- bilingual: value.bilingual === true,
435
- ...(translationModel === undefined ? {} : { translationModel }),
436
- };
408
+ return normalizeSessionTranslationSettings(value);
437
409
  }
438
410
  function defaultSettings() {
439
- return {
440
- inputLanguage: 'en',
441
- outputLanguage: 'zh',
442
- bilingual: false,
443
- };
411
+ return normalizeSessionTranslationSettings(undefined);
444
412
  }
413
+ /** 外部 Agent 与 DSH 原生 Agent 共用同一开关语义:会话级开关必须显式为 true。 */
445
414
  function canTranslateAdapter(adapterId, sessionEnabled) {
446
- return isSessionTranslationAdapter(adapterId) && sessionEnabled === true;
415
+ return supportsSessionTranslation(adapterId) && sessionEnabled === true;
447
416
  }
448
417
  /**
449
418
  * 只在模型目录明确声明时下发关闭思考档位。
@@ -457,13 +426,6 @@ async function translationReasoningEffort(llm, model, signal) {
457
426
  signal.throwIfAborted();
458
427
  return info?.reasoning?.efforts.find((item) => item.id === 'off' || item.id === 'none')?.id;
459
428
  }
460
- function normalizeModel(value) {
461
- if (value === undefined || value === null || typeof value.provider !== 'string' || typeof value.model !== 'string')
462
- return undefined;
463
- const provider = value.provider.trim();
464
- const model = value.model.trim();
465
- return provider === '' || model === '' ? undefined : { provider, model };
466
- }
467
429
  function readOptionalService(ctx, name) {
468
430
  if (typeof ctx?.get !== 'function')
469
431
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"session-translation-service.js","sourceRoot":"","sources":["../../../../../src/host/features/session-translation-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-translation-service.js","sourceRoot":"","sources":["../../../../../src/host/features/session-translation-service.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export function createSessionTranslationFeature() {
11
11
  requires: [{ capability: 'llm.text', required: false, fallback: 'disable' }],
12
12
  ui: {
13
13
  label: 'Session translation middleware',
14
- description: 'Translate selected external Agent requests and visible reasoning or replies while keeping tools, commands, paths, and original history intact.',
14
+ description: 'Translate selected external Agent requests and visible reasoning or replies while keeping tools, commands, paths, and original history intact. DSH native sessions are opt-in and can be enabled separately.',
15
15
  labelKey: 'feature.sessionTranslation.label',
16
16
  descriptionKey: 'feature.sessionTranslation.description',
17
17
  order: 32,
@@ -1 +1 @@
1
- {"version":3,"file":"session-translation.js","sourceRoot":"","sources":["../../../../../src/host/features/session-translation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,MAAM,+CAA+C,CAAA;AAEpG,uCAAuC;AACvC,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,CAAC,aAAa,CAAC;YAC7B,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAC5E,EAAE,EAAE;gBACF,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,gJAAgJ;gBAC7J,QAAQ,EAAE,kCAAkC;gBAC5C,cAAc,EAAE,wCAAwC;gBACxD,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,KAAK;aACnB;SACF;QACD,KAAK,CAAC,OAAO;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAA;YACnD,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,MAAM,IAAI,GAAG,CAAC,QAAsF,EAAQ,EAAE;gBAC5G,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,IAAI,oCAAoC,CAAC,CAAA;YACzF,CAAC,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YACtC,OAAO,CAAC,QAAQ,EAAE,CAAA;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACtE,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAChD,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"session-translation.js","sourceRoot":"","sources":["../../../../../src/host/features/session-translation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,MAAM,+CAA+C,CAAA;AAEpG,uCAAuC;AACvC,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,CAAC,aAAa,CAAC;YAC7B,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAC5E,EAAE,EAAE;gBACF,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,8MAA8M;gBAC3N,QAAQ,EAAE,kCAAkC;gBAC5C,cAAc,EAAE,wCAAwC;gBACxD,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,KAAK;aACnB;SACF;QACD,KAAK,CAAC,OAAO;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAA;YACnD,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,MAAM,IAAI,GAAG,CAAC,QAAsF,EAAQ,EAAE;gBAC5G,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,IAAI,oCAAoC,CAAC,CAAA;YACzF,CAAC,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YACtC,OAAO,CAAC,QAAQ,EAAE,CAAA;YAClB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACtE,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACzD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAChD,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -334,7 +334,7 @@ export function createCodingNsNativeSessionBridge(ctx, dshVersion) {
334
334
  return false;
335
335
  }
336
336
  };
337
- const injectNativeNextStep = (sessionId, summary = '外部工具已完成,继续处理当前任务。') => {
337
+ const injectNativeNextStep = (sessionId, summary = 'The external tool has finished. Continue the current task.') => {
338
338
  const agent = nativeAgent(ctx, sessionId);
339
339
  if (agent === null || typeof agent.inject !== 'function') {
340
340
  // 子代理会话一旦注入失败,DSH 不会发起第二次 llm/stream,子会话就停在当前
@@ -354,7 +354,7 @@ export function createCodingNsNativeSessionBridge(ctx, dshVersion) {
354
354
  if (hasPendingNativeNextStep(agent))
355
355
  return true;
356
356
  injectedStepSequence += 1;
357
- const boundedSummary = summary.trim().slice(0, 120) || '外部工具已完成,继续处理当前任务。';
357
+ const boundedSummary = summary.trim().slice(0, 120) || 'The external tool has finished. Continue the current task.';
358
358
  const producerOwned = usesProducerOwnedSource(appendableSession(store?.get(sessionId)));
359
359
  try {
360
360
  if (on !== undefined)