@jingyi0605/codingns4dsh 0.2.1-beta.11 → 0.2.1-beta.12
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/README.en.md +7 -5
- package/README.md +9 -5
- package/data/build/dist/bootstrap/dsh-connection-adapter.d.ts +1 -1
- package/data/build/dist/bootstrap/index.d.ts +1 -1
- package/data/build/dist/client/bundle.js +2280 -1495
- package/data/build/dist/client/bundle.js.map +1 -1
- package/data/build/dist/client/cli-slots.d.ts +3 -2
- package/data/build/dist/client/cli-slots.d.ts.map +1 -1
- package/data/build/dist/client/cli-slots.js +29 -5
- package/data/build/dist/client/cli-slots.js.map +1 -1
- package/data/build/dist/client/client.assistant-configuration-view.js +5 -5
- package/data/build/dist/client/client.assistant-configuration-view.js.map +1 -1
- package/data/build/dist/client/client.moss-voice-output.js +0 -166
- package/data/build/dist/client/client.moss-voice-output.js.map +1 -1
- package/data/build/dist/client/client.native-workspace-store.js +4 -4
- package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
- package/data/build/dist/client/client.react-dom.js +166 -0
- package/data/build/dist/client/client.react-dom.js.map +1 -1
- package/data/build/dist/client/client.session-translation.js +9 -1
- package/data/build/dist/client/client.session-translation.js.map +1 -1
- package/data/build/dist/client/client.transport.js +46 -0
- package/data/build/dist/client/client.transport.js.map +1 -1
- package/data/build/dist/client/conversation-translation-settings.d.ts +10 -0
- package/data/build/dist/client/conversation-translation-settings.d.ts.map +1 -0
- package/data/build/dist/client/conversation-translation-settings.js +52 -0
- package/data/build/dist/client/conversation-translation-settings.js.map +1 -0
- package/data/build/dist/client/desktop-assistant.js +512 -439
- package/data/build/dist/client/features/cli-adapters.js +1 -1
- package/data/build/dist/client/features/cli-adapters.js.map +1 -1
- package/data/build/dist/client/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/client/features/session-translation.js +7 -1
- package/data/build/dist/client/features/session-translation.js.map +1 -1
- package/data/build/dist/client/locales/panels.d.ts.map +1 -1
- package/data/build/dist/client/locales/panels.js +46 -0
- package/data/build/dist/client/locales/panels.js.map +1 -1
- package/data/build/dist/client/session-translation-chat.d.ts +9 -3
- package/data/build/dist/client/session-translation-chat.d.ts.map +1 -1
- package/data/build/dist/client/session-translation-chat.js +146 -48
- package/data/build/dist/client/session-translation-chat.js.map +1 -1
- package/data/build/dist/client/session-translation-pending-dom.d.ts +1 -1
- package/data/build/dist/client/session-translation-pending-dom.d.ts.map +1 -1
- package/data/build/dist/client/session-translation-pending-dom.js +4 -4
- package/data/build/dist/client/session-translation-pending-dom.js.map +1 -1
- package/data/build/dist/client/session-translation-retry.d.ts +16 -0
- package/data/build/dist/client/session-translation-retry.d.ts.map +1 -0
- package/data/build/dist/client/session-translation-retry.js +66 -0
- package/data/build/dist/client/session-translation-retry.js.map +1 -0
- package/data/build/dist/client/session-translation-rules.d.ts +13 -0
- package/data/build/dist/client/session-translation-rules.d.ts.map +1 -0
- package/data/build/dist/client/session-translation-rules.js +58 -0
- package/data/build/dist/client/session-translation-rules.js.map +1 -0
- package/data/build/dist/client/style.css +276 -276
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js +4 -13
- package/data/build/dist/dsh-capabilities/client/interaction-presentation-adapter.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js +1 -1
- package/data/build/dist/dsh-capabilities/client/interaction-text-dom.js.map +1 -1
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.d.ts +19 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.js +39 -0
- package/data/build/dist/dsh-capabilities/client/message-presentation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts +2 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js +28 -0
- package/data/build/dist/dsh-capabilities/client/slot-presentation-mirror.js.map +1 -1
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.d.ts +10 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.js +34 -0
- package/data/build/dist/dsh-capabilities/host/connection-peer-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.d.ts +21 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.js +11 -0
- package/data/build/dist/dsh-capabilities/host/native-dispatch-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.d.ts +17 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.js +37 -0
- package/data/build/dist/dsh-capabilities/host/session-activation-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts +17 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js +45 -0
- package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts +28 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.d.ts.map +1 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js +31 -0
- package/data/build/dist/dsh-capabilities/host/session-prompt-adapter.js.map +1 -0
- package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/matrix.js +12 -4
- package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/routes.js +25 -5
- package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
- package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
- package/data/build/dist/dsh-capabilities/types.js.map +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/antigravity-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/attachment-utils.d.ts +4 -3
- package/data/build/dist/host/cli-adapters/attachment-utils.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/attachment-utils.js +9 -8
- package/data/build/dist/host/cli-adapters/attachment-utils.js.map +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/claude-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/command-code-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/command-code-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/driver.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts +2 -0
- package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js +11 -3
- package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/feature.js +154 -68
- package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/gemini-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts +1 -0
- package/data/build/dist/host/cli-adapters/grok-driver.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/grok-driver.js +128 -40
- package/data/build/dist/host/cli-adapters/grok-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/kimi-driver.js +2 -2
- package/data/build/dist/host/cli-adapters/kimi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/mcode-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js +2 -1
- package/data/build/dist/host/cli-adapters/native-team-subagent.js.map +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/pi-driver.js.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
- package/data/build/dist/host/cli-adapters/registry.js +23 -16
- package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.js +1 -1
- package/data/build/dist/host/cli-adapters/zcode-driver.js.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.d.ts.map +1 -1
- package/data/build/dist/host/features/global-voice-rpc.js +2 -3
- package/data/build/dist/host/features/global-voice-rpc.js.map +1 -1
- package/data/build/dist/host/features/peer-host.js +6 -6
- package/data/build/dist/host/features/peer-host.js.map +1 -1
- package/data/build/dist/host/features/session-prompt-translation.d.ts +10 -0
- package/data/build/dist/host/features/session-prompt-translation.d.ts.map +1 -0
- package/data/build/dist/host/features/session-prompt-translation.js +197 -0
- package/data/build/dist/host/features/session-prompt-translation.js.map +1 -0
- package/data/build/dist/host/features/session-translation-protection.d.ts +6 -1
- package/data/build/dist/host/features/session-translation-protection.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-protection.js +23 -5
- package/data/build/dist/host/features/session-translation-protection.js.map +1 -1
- package/data/build/dist/host/features/session-translation-recovery.d.ts +20 -0
- package/data/build/dist/host/features/session-translation-recovery.d.ts.map +1 -0
- package/data/build/dist/host/features/session-translation-recovery.js +122 -0
- package/data/build/dist/host/features/session-translation-recovery.js.map +1 -0
- package/data/build/dist/host/features/session-translation-service.d.ts +5 -2
- package/data/build/dist/host/features/session-translation-service.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation-service.js +60 -16
- package/data/build/dist/host/features/session-translation-service.js.map +1 -1
- package/data/build/dist/host/features/session-translation.d.ts.map +1 -1
- package/data/build/dist/host/features/session-translation.js +4 -1
- package/data/build/dist/host/features/session-translation.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts +2 -2
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js +10 -9
- package/data/build/dist/host/modules/peer-host/peer-host-native-dispatch.js.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts +3 -3
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.d.ts.map +1 -1
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js +26 -14
- package/data/build/dist/host/modules/peer-host/peer-host-native-streams.js.map +1 -1
- package/data/build/dist/host/native-session-bridge.d.ts +2 -1
- package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
- package/data/build/dist/host/native-session-bridge.js +5 -13
- package/data/build/dist/host/native-session-bridge.js.map +1 -1
- package/data/build/dist/host/rpc.d.ts.map +1 -1
- package/data/build/dist/host/rpc.js +14 -8
- package/data/build/dist/host/rpc.js.map +1 -1
- package/data/build/dist/host/settings.d.ts.map +1 -1
- package/data/build/dist/host/settings.js +5 -1
- package/data/build/dist/host/settings.js.map +1 -1
- package/data/build/dist/shared/attachment-prompts.d.ts +11 -0
- package/data/build/dist/shared/attachment-prompts.d.ts.map +1 -0
- package/data/build/dist/shared/attachment-prompts.js +17 -0
- package/data/build/dist/shared/attachment-prompts.js.map +1 -0
- package/data/build/dist/shared/contracts/cli-adapter.d.ts +8 -1
- package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/errors.d.ts +2 -2
- package/data/build/dist/shared/contracts/session-translation.d.ts +13 -0
- package/data/build/dist/shared/contracts/session-translation.d.ts.map +1 -1
- package/data/build/dist/shared/contracts/session-translation.js +10 -0
- package/data/build/dist/shared/contracts/session-translation.js.map +1 -1
- package/data/build/dist/shared/contracts/version.d.ts +4 -4
- package/data/build/dist/shared/contracts/version.js +3 -3
- package/package.json +35 -34
- package/profile/README.md +2 -2
- package/profile/package.json +3 -3
- package/profile/version.json +3 -3
- package/version.json +3 -3
|
@@ -47,6 +47,8 @@ export class CodingNsDshMessageProjector {
|
|
|
47
47
|
nextBlockIndex = 2;
|
|
48
48
|
reasoningText = '';
|
|
49
49
|
textText = '';
|
|
50
|
+
/** Decide buffering once per block so settings changes cannot split its deltas. */
|
|
51
|
+
translatedBlocks = new Set();
|
|
50
52
|
finished = false;
|
|
51
53
|
/** 只要收到正文、工具、usage 或交互事件,就说明 Provider 确实产出了结果。 */
|
|
52
54
|
receivedProviderEvent = false;
|
|
@@ -191,7 +193,10 @@ export class CodingNsDshMessageProjector {
|
|
|
191
193
|
else
|
|
192
194
|
this.textText += text;
|
|
193
195
|
const delta = { type: `${channel}-delta`, index, text };
|
|
194
|
-
if (this.options.translation?.shouldTranslate(this.options.adapterId, channel === 'reasoning' ? 'reasoning' : 'assistant', this.options.translationEnabled) === true)
|
|
196
|
+
if (opened && this.options.translation?.shouldTranslate(this.options.adapterId, channel === 'reasoning' ? 'reasoning' : 'assistant', this.options.translationEnabled) === true) {
|
|
197
|
+
this.translatedBlocks.add(index);
|
|
198
|
+
}
|
|
199
|
+
if (this.translatedBlocks.has(index))
|
|
195
200
|
return [];
|
|
196
201
|
return opened ? [{ type: 'block-start', index, blockType: channel }, delta] : [delta];
|
|
197
202
|
}
|
|
@@ -217,7 +222,7 @@ export class CodingNsDshMessageProjector {
|
|
|
217
222
|
const original = this.reasoningText;
|
|
218
223
|
this.reasoningText = '';
|
|
219
224
|
this.reasoningIndex = undefined;
|
|
220
|
-
if (this.
|
|
225
|
+
if (!this.translatedBlocks.delete(index)) {
|
|
221
226
|
return [{ type: 'block-end', index, block: { type: 'reasoning', text: original } }];
|
|
222
227
|
}
|
|
223
228
|
return this.translatedBlock('reasoning', index, original);
|
|
@@ -230,7 +235,7 @@ export class CodingNsDshMessageProjector {
|
|
|
230
235
|
const original = this.textText;
|
|
231
236
|
this.textText = '';
|
|
232
237
|
this.textIndex = undefined;
|
|
233
|
-
if (this.
|
|
238
|
+
if (!this.translatedBlocks.delete(index)) {
|
|
234
239
|
return [{ type: 'block-end', index, block: { type: 'text', text: original } }];
|
|
235
240
|
}
|
|
236
241
|
return this.translatedBlock('text', index, original);
|
|
@@ -338,6 +343,7 @@ export class CodingNsDshMessageProjector {
|
|
|
338
343
|
await responder({ requestId: event.requestId, approved, ...(reason === undefined ? {} : { reason }) });
|
|
339
344
|
}
|
|
340
345
|
async requestQuestions(event) {
|
|
346
|
+
this.options.signal?.throwIfAborted();
|
|
341
347
|
const responder = this.options.respondQuestion;
|
|
342
348
|
if (responder === undefined)
|
|
343
349
|
throw new Error('外部 Agent 发送了问题请求,但适配器没有问题回复接口');
|
|
@@ -357,6 +363,8 @@ export class CodingNsDshMessageProjector {
|
|
|
357
363
|
questions: event.questions,
|
|
358
364
|
...(this.options.signal === undefined ? {} : { signal: this.options.signal }),
|
|
359
365
|
}) ?? null;
|
|
366
|
+
// A submitted answer can race with cancellation or adapter reload.
|
|
367
|
+
this.options.signal?.throwIfAborted();
|
|
360
368
|
if (response === null)
|
|
361
369
|
throw new Error('DSH 原生问题组件不可用或问题已取消');
|
|
362
370
|
await responder(response);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsh-message-projector.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/dsh-message-projector.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EACL,4BAA4B,GAE7B,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAA;AAoB7F;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,KAAqD,EAAE,kBAAkB,GAAG,KAAK;IAOxG,2CAA2C;IAC3C,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,WAAW,CAAA;IAC1E,qDAAqD;IACrD,yDAAyD;IACzD,2DAA2D;IAC3D,MAAM,WAAW,GAAG,kBAAkB;WACjC,mBAAmB,KAAK,CAAC;WACzB,KAAK,CAAC,YAAY,KAAK,CAAC;WACxB,KAAK,CAAC,eAAe,KAAK,SAAS;WACnC,KAAK,CAAC,gBAAgB,KAAK,SAAS;WACpC,KAAK,CAAC,aAAa,KAAK,SAAS;QACpC,CAAC,CAAC,KAAK,CAAC,aAAa;QACrB,CAAC,CAAC,mBAAmB,CAAA;IACvB,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;QACrC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1F,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAC/E,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IAYT;IAXZ,UAAU,GAAG,IAAI,4BAA4B,EAAE,CAAA;IAC/C,WAAW,CAAiC;IACrD,cAAc,GAAuB,CAAC,CAAA;IACtC,SAAS,GAAuB,CAAC,CAAA;IACjC,cAAc,GAAG,CAAC,CAAA;IAClB,aAAa,GAAG,EAAE,CAAA;IAClB,QAAQ,GAAG,EAAE,CAAA;IACb,QAAQ,GAAG,KAAK,CAAA;IACxB,kDAAkD;IAC1C,qBAAqB,GAAG,KAAK,CAAA;IAErC,YAA6B,OAA2C;QAA3C,YAAO,GAAP,OAAO,CAAoC;QACtE,IAAI,CAAC,WAAW,GAAG,IAAI,+BAA+B,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACtH,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAyB;QAClC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAA;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACzD,MAAM,SAAS,GAA6B,EAAE,CAAA;QAC9C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;YACjD,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAK;QAC1B,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,QAAQ,CAAC,SAA4B,MAAM;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAC5B,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACzC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QACjE,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK;QAC3C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9H,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,SAAS,GAA6B,EAAE,CAAA;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACzF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,KAAqD;QAC7E,yDAAyD;QACzD,MAAM,KAAK,GAA8B;YACvC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC;YACtG,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1F,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YACpF,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YACpF,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;SACjG,CAAA;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1E,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAChC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;gBACrD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACjF,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,KAAmC,EACnC,cAAuB;QAEvB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAiB;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAA;gBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClD,KAAK,YAAY;gBACf,sCAAsC;gBACtC,0CAA0C;gBAC1C,iCAAiC;gBACjC,iCAAiC;gBACjC,4CAA4C;gBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAA;gBACvI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAC7C,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC9C,KAAK,eAAe;gBAClB,mDAAmD;gBACnD,0CAA0C;gBAC1C,OAAO,EAAE,CAAA;YACX,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;YAChE,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACvC,KAAK,oBAAoB;gBACvB,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBACnC,OAAO,EAAE,CAAA;YACX,KAAK,kBAAkB;gBACrB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAClC,OAAO,EAAE,CAAA;YACX,KAAK,OAAO;gBACV,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC3D,KAAK,iBAAiB;gBACpB,OAAO,EAAE,CAAA;YACX,KAAK,oBAAoB;gBACvB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,qBAAqB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC3E,GAAG,KAAK;oBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;oBAClD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;iBACrE,CAAC,CAAA;gBACF,OAAO,EAAE,CAAA;YACX,KAAK,QAAQ;gBACX,MAAM,MAAM,GAAG;oBACb,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAC9C,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;iBAC1C,CAAA;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACpB,MAAM,aAAa,GAAG,cAAc,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAA;gBAC9D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBACtD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC5G,OAAO,MAAM,CAAA;YACf;gBACE,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAA6B,EAAE,IAAY;QAC7D,MAAM,MAAM,GAAG,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAA;QACzF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,WAAW;YAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAA;;YAClD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAA;QAC1B,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACvD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QAC/K,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACvF,CAAC;IAEO,SAAS,CAAC,OAA6B;QAC7C,MAAM,OAAO,GAAG,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAC9E,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;QACxB,IAAI,OAAO,KAAK,WAAW;YAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;;YACnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAA6B;QAC3D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAA;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAA;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;YACnC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;YAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7H,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;YACrF,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE;YAAE,OAAO,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAA;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7H,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAA6B,EAAE,KAAa,EAAE,QAAgB;QAC1F,IAAI,WAAwD,CAAA;QAC5D,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;QAC5M,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;YAC5C,MAAM,YAAY,GAAG;gBACnB,QAAQ;gBACR,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,IAAI,IAAI;gBAChE,UAAU,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,WAAoB;gBACjF,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,IAAI;aACb,CAAA;YACD,OAAO;gBACL,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE;gBACrF,EAAE,IAAI,EAAE,GAAG,OAAO,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE;gBACtF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE;aAC7I,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7E,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,GAAG,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;YACnG,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,UAAU,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,WAAoB;YACjF,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,GAAG,CAAC,WAAW,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACxE,GAAG,6BAA6B,CAAC,WAAW,CAAC;YAC7C,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAA;QACD,kFAAkF;QAClF,yEAAyE;QACzE,OAAO;YACL,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE;YACpH,EAAE,IAAI,EAAE,GAAG,OAAO,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE;YACrH,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE;SAC3M,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,MAA4C;QACpE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;QACxB,OAAO;YACL,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE;YACtD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,KAAK;gBACL,sDAAsD;gBACtD,IAAI,EAAE,GAAG;gBACT,oBAAoB,EAAE,MAAM;aAC7B;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;SACtE,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB,CAC9B,KAA8D;QAE9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAA;QACjF,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC1C,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAA;QACjC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;QACxB,OAAO,CAAC,GAAG,MAAM;YACf,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;YAClD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SACnE,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAkE;QAChG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAA;QAChD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC7E,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5H,IAAI,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5I,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;gBAChK,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAAA;YACnE,CAAC;YAAC,MAAM,CAAC,CAAC,6DAA6D,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3F,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAC9E,CAAC,IAAI,aAAa,CAAA;QACnB,MAAM,QAAQ,GAAG,OAAO,KAAK,cAAc,CAAA;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC/D,MAAM,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IACxG,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAgE;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAA;QAC9C,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAC7E,sDAAsD;QACtD,gDAAgD;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACvB,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;gBACjF,MAAM,EAAE,SAAS;aAClB,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACzF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAC9E,CAAC,IAAI,IAAI,CAAA;QACV,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC7D,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACvB,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;oBACrB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;wBAChD,GAAG,MAAM,CAAC,QAAQ;wBAClB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzD,CAAC;iBACH,CAAC;gBACF,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,WAAW;aACpB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,KAAY;IAC9C,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAE,KAAqC,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;AACvG,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAmC,EAAE,cAAuB,EAAE,WAAoB;IAC3G,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAA;IACvG,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,IAAI,EAAE,WAAW,IAAI,gBAAgB,EAAE,EAAE,CAAA;IAC1H,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,cAAc,CACrB,OAAkE,EAClE,UAAuC;IAEvC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,UAAU,EAAE,cAAc,KAAK,OAAO;YAC3C,CAAC,CAAC,mCAAmC;YACrC,CAAC,CAAC,WAAW,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IAC7C,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,eAAe,CAAA;IACrD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,OAAe;IAChE,MAAM,OAAO,GAAG,IAAI,SAAS,KAAK,OAAO,EAAE,CAAA;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5E,OAAO,4BAA4B,KAAK,SAAS,OAAO,KAAK,KAAK,IAAI,CAAA;AACxE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,SAAiB;IAC3D,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"dsh-message-projector.js","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/dsh-message-projector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/feature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,mCAAmC,CAAA;AAkB5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAM1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../../src/host/cli-adapters/feature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,mCAAmC,CAAA;AAkB5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAM1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AA4BhE,wBAAgB,wBAAwB,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,0BAA0B,CAAA;CAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAofrI"}
|
|
@@ -33,7 +33,12 @@ import { debugInfo } from '../../shared/debug.js';
|
|
|
33
33
|
import { hasLegacySessionAdapterHint } from './legacy-session-adapter.js';
|
|
34
34
|
import { DSH_NATIVE_SESSION_ADAPTER_ID, formatSessionTranslationOutput, readSessionTranslationMetrics, } from '../../shared/contracts/session-translation.js';
|
|
35
35
|
import { createInteractionTranslation } from '../features/interaction-translation.js';
|
|
36
|
+
import { createSessionTranslationRecovery, SessionTranslationCancelled } from '../features/session-translation-recovery.js';
|
|
36
37
|
import { ASSISTANT_AGENT_PREFIX } from '../../dsh-capabilities/host/assistant-agent-adapter.js';
|
|
38
|
+
import { createDshCapabilityRegistry } from '../../dsh-capabilities/routes.js';
|
|
39
|
+
import { attachmentFileNotice } from '../../shared/attachment-prompts.js';
|
|
40
|
+
import { sessionPromptScope } from '../../dsh-capabilities/host/session-prompt-adapter.js';
|
|
41
|
+
import { createSessionPromptTranslation } from '../features/session-prompt-translation.js';
|
|
37
42
|
export function createCliAdaptersFeature(options = {}) {
|
|
38
43
|
return {
|
|
39
44
|
descriptor: {
|
|
@@ -42,8 +47,10 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
42
47
|
enabledByDefault: true,
|
|
43
48
|
dependencies: [],
|
|
44
49
|
runtime: 'host',
|
|
50
|
+
requires: [{ capability: 'session.external-model-selection', required: false, fallback: 'degrade' }],
|
|
45
51
|
},
|
|
46
52
|
async start(context) {
|
|
53
|
+
const lifetime = new AbortController();
|
|
47
54
|
// 用量查询超时对所有适配器统一生效:同一个 timeoutMs 下发给全部网络读取器,
|
|
48
55
|
// 设置变更时整体重建,避免旧超时继续生效。
|
|
49
56
|
const buildSubscriptions = (settings) => {
|
|
@@ -93,6 +100,18 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
93
100
|
virtualProviders?.setProviders(registry.enabledAdapterIds());
|
|
94
101
|
if (virtualProviders !== undefined)
|
|
95
102
|
context.resources.add(() => virtualProviders.dispose());
|
|
103
|
+
if (context.services.dshContext !== undefined && context.services.dshVersion !== undefined) {
|
|
104
|
+
const selection = createDshCapabilityRegistry(context.services.dshVersion, 'host', context.services.dshContext)
|
|
105
|
+
.getProfile(context.services.dshContext).capabilities.get('session.external-model-selection')
|
|
106
|
+
?.value;
|
|
107
|
+
if (selection !== undefined)
|
|
108
|
+
context.resources.add(selection.install((sessionId) => {
|
|
109
|
+
const config = registry.getSession(sessionId);
|
|
110
|
+
if (config.adapterId === 'dsh' || !registry.isEnabled(config.adapterId))
|
|
111
|
+
return undefined;
|
|
112
|
+
return { provider: config.adapterId, model: config.modelId?.trim() || 'provider-default' };
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
96
115
|
registry.warmCatalog();
|
|
97
116
|
// 外部适配器没有经过 DSH 原生 Agent Loop,必须把同一套运行状态投影给
|
|
98
117
|
// subagentCatalog。这里集中去重,避免 llm/stream、原生 session/event 和
|
|
@@ -132,10 +151,27 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
132
151
|
});
|
|
133
152
|
context.resources.add(disposeNativeEvents);
|
|
134
153
|
}
|
|
135
|
-
|
|
154
|
+
const translationRecovery = createSessionTranslationRecovery(translation, sessionId => registry.getSession(sessionId));
|
|
155
|
+
context.resources.add(() => translationRecovery.dispose());
|
|
156
|
+
const promptTranslation = createSessionPromptTranslation(translation, sessionId => {
|
|
157
|
+
if (!sessionId || isAssistantSession(sessionId) || readNativeSessionHeader(nativeSessions, sessionId)?.origin === 'subagent')
|
|
158
|
+
return undefined;
|
|
159
|
+
const config = registry.getSession(sessionId);
|
|
160
|
+
return (config.translationEnabled ?? (config.adapterId === 'dsh' && translation?.nativeEnabled === true)) ? config.adapterId : undefined;
|
|
161
|
+
});
|
|
162
|
+
context.resources.add(() => promptTranslation.dispose());
|
|
163
|
+
if (context.services.dshContext !== undefined && context.services.dshVersion !== undefined) {
|
|
164
|
+
const adapter = createDshCapabilityRegistry(context.services.dshVersion, 'host', context.services.dshContext)
|
|
165
|
+
.getProfile(context.services.dshContext).capabilities.get('session.prompt-assembly')?.value;
|
|
166
|
+
if (adapter !== undefined)
|
|
167
|
+
context.resources.add(adapter.install((assembly, scope) => promptTranslation.translateAssembly(assembly, scope)));
|
|
168
|
+
}
|
|
169
|
+
registerDelegationAgentHooks(context.services.dshContext, registry, context.resources, publishExternalStatus, translation, translationRecovery, promptTranslation, nativeSessions);
|
|
136
170
|
const interactionTranslation = createInteractionTranslation(translation, sessionId => registry.getSession(sessionId));
|
|
137
171
|
context.resources.add(() => interactionTranslation.dispose());
|
|
138
172
|
context.resources.add(context.services.rpc.register('cli', (action, payload, rpcContext) => {
|
|
173
|
+
const rpcSignal = asRecord(rpcContext)?.signal;
|
|
174
|
+
const signal = isAbortSignal(rpcSignal) ? rpcSignal : undefined;
|
|
139
175
|
switch (action) {
|
|
140
176
|
case 'catalog': return registry.catalog();
|
|
141
177
|
case 'catalog/refresh': return registry.refreshCatalog(asRecord(payload)?.adapterId === undefined ? undefined : readAdapterId(payload)).then((catalog) => {
|
|
@@ -147,10 +183,10 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
147
183
|
return adapterId === 'dsh' ? readDshModelCatalog(context.services.dshContext) : registry.models(adapterId);
|
|
148
184
|
}
|
|
149
185
|
case 'translation/models': return context.services.sessionTranslation?.catalog() ?? { models: [], default: null, errors: ['翻译模型目录不可用'] };
|
|
150
|
-
case 'translation/
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
186
|
+
case 'translation/pending': return translationRecovery.pending(payload);
|
|
187
|
+
case 'translation/resolve': return translationRecovery.resolve(payload);
|
|
188
|
+
case 'translation/retry-output': return translationRecovery.retryOutput(payload, signal);
|
|
189
|
+
case 'translation/fields': return interactionTranslation.translate(payload, signal);
|
|
154
190
|
case 'skills': {
|
|
155
191
|
const request = readSkillsRequest(payload);
|
|
156
192
|
const cwd = resolveSessionCwd(context.services.nativeSessions, request.sessionId, null);
|
|
@@ -168,15 +204,26 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
168
204
|
}
|
|
169
205
|
return registry.getSession(sessionId);
|
|
170
206
|
}
|
|
171
|
-
case 'session/set':
|
|
207
|
+
case 'session/set': {
|
|
208
|
+
const sessionId = readSessionId(payload);
|
|
209
|
+
const previous = registry.getSession(sessionId);
|
|
210
|
+
const config = registry.setSession(sessionId, readSessionConfig(payload));
|
|
211
|
+
if (config.translationEnabled === false || previous.adapterId !== config.adapterId)
|
|
212
|
+
translationRecovery.cancelSession(sessionId);
|
|
213
|
+
return config;
|
|
214
|
+
}
|
|
172
215
|
case 'session/list': return registry.listSessions(readSessionListOptions(payload));
|
|
173
216
|
case 'session/adapter-map':
|
|
174
217
|
// 列表查询只返回持久化索引,不能触发会话加载或历史解析。
|
|
175
218
|
return sessionStore.adapterBindings();
|
|
176
219
|
case 'session/archive': return registry.archiveSession(readSessionId(payload));
|
|
177
|
-
case 'session/steer': return translateSteerPrompt(
|
|
178
|
-
case 'session/follow-up': return translateSteerPrompt(
|
|
179
|
-
case 'session/interrupt':
|
|
220
|
+
case 'session/steer': return translateSteerPrompt(translationRecovery, registry, readSessionId(payload), readPrompt(payload), false, signal);
|
|
221
|
+
case 'session/follow-up': return translateSteerPrompt(translationRecovery, registry, readSessionId(payload), readPrompt(payload), true, signal);
|
|
222
|
+
case 'session/interrupt': {
|
|
223
|
+
const sessionId = readSessionId(payload);
|
|
224
|
+
translationRecovery.cancelSession(sessionId);
|
|
225
|
+
return registry.interrupt(sessionId);
|
|
226
|
+
}
|
|
180
227
|
case 'team/status': return context.services.nativeTeam?.diagnostic() ?? registry.teamDiagnostic();
|
|
181
228
|
case 'team/members': return requireTeam(context).invoke('members', payload);
|
|
182
229
|
case 'team/tasks': return requireTeam(context).invoke('tasks', payload);
|
|
@@ -267,6 +314,7 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
267
314
|
virtualProviders?.setProviders(registry.enabledAdapterIds());
|
|
268
315
|
registry.syncPreferences(next.agentAdapterPreferences);
|
|
269
316
|
sessionStore.sync(next.cliSessions);
|
|
317
|
+
translationRecovery.cancelDisabled(next.sessionTranslation?.nativeEnabled === true, next.sessionTranslation?.inputEnabled !== false);
|
|
270
318
|
const nextSubscriptionSettings = JSON.stringify(next.subscriptionUsage ?? null);
|
|
271
319
|
if (nextSubscriptionSettings !== subscriptionSettings) {
|
|
272
320
|
subscriptionSettings = nextSubscriptionSettings;
|
|
@@ -371,19 +419,24 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
371
419
|
const turnInput = extractTurnInput(messages, context.services.dshContext);
|
|
372
420
|
const turnOptions = readCliTurnOptions(value);
|
|
373
421
|
const runtimeEnv = readCliRuntimeEnv(value);
|
|
374
|
-
const requestSignal = isAbortSignal(value?.signal)
|
|
422
|
+
const requestSignal = isAbortSignal(value?.signal)
|
|
423
|
+
? AbortSignal.any([value.signal, lifetime.signal])
|
|
424
|
+
: lifetime.signal;
|
|
425
|
+
const translationLanguage = translation?.enabled && translation.inputEnabled !== false && config.translationEnabled === true ? readInputTargetLanguage(translation) : undefined;
|
|
375
426
|
let translatedPrompt = turnInput.translationPrompt;
|
|
376
|
-
if (turnInput.translatePrompt &&
|
|
427
|
+
if (turnInput.translatePrompt && turnInput.translationPrompt.trim() !== '' && translationLanguage !== undefined) {
|
|
377
428
|
try {
|
|
378
|
-
translatedPrompt = await
|
|
429
|
+
translatedPrompt = (await translationRecovery.translateInput(sessionId, config.adapterId, turnInput.translationPrompt, requestSignal)).translated;
|
|
379
430
|
}
|
|
380
|
-
catch {
|
|
381
|
-
|
|
382
|
-
|
|
431
|
+
catch (error) {
|
|
432
|
+
if (!(error instanceof SessionTranslationCancelled) && !requestSignal?.aborted)
|
|
433
|
+
throw error;
|
|
434
|
+
yield { type: 'finish', reason: { kind: 'stop' } };
|
|
435
|
+
return;
|
|
383
436
|
}
|
|
384
437
|
}
|
|
385
438
|
const prompt = turnInput.translatePrompt
|
|
386
|
-
? [translatedPrompt, turnInput.untranslatedPrompt].filter((part) => part.trim() !== '').join('\n\n')
|
|
439
|
+
? [translatedPrompt, translationLanguage === undefined ? turnInput.untranslatedPrompt : attachmentNotices(turnInput.attachments, translationLanguage)].filter((part) => part.trim() !== '').join('\n\n')
|
|
387
440
|
: turnInput.prompt;
|
|
388
441
|
// 权限状态必须与 DSH 会话当前生效值同源。驱动不能自行假设“完全权限”,
|
|
389
442
|
// 也不能把缺省当成“已确认无限制”:解析失败时留空,由驱动沿用保守默认。
|
|
@@ -396,6 +449,7 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
396
449
|
sessionId,
|
|
397
450
|
messages: turnInput.messages,
|
|
398
451
|
prompt,
|
|
452
|
+
...(translationLanguage === undefined ? {} : { translationLanguage }),
|
|
399
453
|
...(turnInput.attachments.length === 0 ? {} : { attachments: turnInput.attachments }),
|
|
400
454
|
...(permission === undefined ? {} : { permission }),
|
|
401
455
|
...(turnOptions.plan === true ? { plan: true } : {}),
|
|
@@ -492,6 +546,8 @@ export function createCliAdaptersFeature(options = {}) {
|
|
|
492
546
|
// DSH 先停用设置上下文再执行异步资源清理时,旧的写队列不能继续调用
|
|
493
547
|
// configEditor,否则会出现 inactive context 并污染退出日志。
|
|
494
548
|
sessionStore.dispose();
|
|
549
|
+
// Close native interaction cards before unloading their provider transports.
|
|
550
|
+
lifetime.abort();
|
|
495
551
|
await registry.dispose();
|
|
496
552
|
await sessionStore.flush();
|
|
497
553
|
setAdapterRegistry(undefined);
|
|
@@ -546,12 +602,13 @@ function createExternalSessionStatusPublisher(events, registry, sessionStore) {
|
|
|
546
602
|
* `messages`,会直接抛出只读属性异常。`agent/pre-step` 返回的新消息保留用户原文,并把
|
|
547
603
|
* 译文写入 source 元数据;外部适配器再据此构造发给 Agent 的译文。
|
|
548
604
|
*/
|
|
549
|
-
function registerDelegationAgentHooks(dshContext, registry, resources, publishExternalStatus, translation, nativeSessions) {
|
|
605
|
+
function registerDelegationAgentHooks(dshContext, registry, resources, publishExternalStatus, translation, translationRecovery, promptTranslation, nativeSessions) {
|
|
550
606
|
if (dshContext === undefined || typeof dshContext.on !== 'function')
|
|
551
607
|
return;
|
|
552
608
|
const disposers = [];
|
|
553
609
|
const register = (name, listener) => {
|
|
554
|
-
|
|
610
|
+
// Wrap existing pre-step producers so their after-next catalogs are visible.
|
|
611
|
+
const disposer = dshContext.on(name, listener, { global: true, prepend: name === 'agent/pre-step' });
|
|
555
612
|
if (typeof disposer === 'function')
|
|
556
613
|
disposers.push(disposer);
|
|
557
614
|
};
|
|
@@ -608,20 +665,44 @@ function registerDelegationAgentHooks(dshContext, registry, resources, publishEx
|
|
|
608
665
|
messages = [...delegation.value.messages];
|
|
609
666
|
}
|
|
610
667
|
}
|
|
611
|
-
|
|
668
|
+
let translatedInput;
|
|
669
|
+
try {
|
|
670
|
+
translatedInput = await translatePreStepInput(translation, translationRecovery, registry, sessionId, messages, dshContext, isAbortSignal(record?.signal) ? record.signal : undefined, nativePreStepContext(translation, registry, sessionId, nativeSessions));
|
|
671
|
+
}
|
|
672
|
+
catch (error) {
|
|
673
|
+
if (error instanceof SessionTranslationCancelled || record?.signal?.aborted === true)
|
|
674
|
+
return { kind: 'reject' };
|
|
675
|
+
throw error;
|
|
676
|
+
}
|
|
612
677
|
if (translatedInput !== undefined)
|
|
613
678
|
messages = [...translatedInput];
|
|
614
679
|
const decision = await next();
|
|
615
680
|
if (!isEnterPreStepDecision(decision))
|
|
616
681
|
return decision;
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
const
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
682
|
+
// Match producer-owned messages by identity. Downstream middleware may insert
|
|
683
|
+
// instructions before the human message, so a positional prefix loses data.
|
|
684
|
+
const incoming = Array.isArray(record?.messages) ? record.messages.filter(isMessage) : [];
|
|
685
|
+
const replaced = new Set();
|
|
686
|
+
const accepted = delegation?.kind === 'rewritten' || translatedInput !== undefined
|
|
687
|
+
? decision.messages.map(message => {
|
|
688
|
+
const index = incoming.findIndex((original, position) => !replaced.has(position) && (original === message || typeof original.id === 'string' && original.id === message.id
|
|
689
|
+
// Legacy callers can return detached messages without durable IDs.
|
|
690
|
+
|| original.id === undefined && message.id === undefined && original.role === message.role
|
|
691
|
+
&& original.source?.kind === message.source?.kind && original.source?.form === message.source?.form
|
|
692
|
+
&& JSON.stringify(original.content) === JSON.stringify(message.content)));
|
|
693
|
+
if (index >= 0)
|
|
694
|
+
replaced.add(index);
|
|
695
|
+
return index < 0 ? message : messages[index] ?? message;
|
|
696
|
+
}) : decision.messages;
|
|
697
|
+
try {
|
|
698
|
+
const scope = sessionPromptScope(record?.agent, isAbortSignal(record?.signal) ? record.signal : undefined);
|
|
699
|
+
return { ...decision, messages: await promptTranslation.translateMessages(accepted, scope) };
|
|
700
|
+
}
|
|
701
|
+
catch (error) {
|
|
702
|
+
if (error instanceof SessionTranslationCancelled || record?.signal?.aborted === true)
|
|
703
|
+
return { kind: 'reject' };
|
|
704
|
+
throw error;
|
|
705
|
+
}
|
|
625
706
|
});
|
|
626
707
|
// 正常结束、异常结束和中断最终都会进入 idle;在此清理本轮授权,避免下一轮
|
|
627
708
|
// 没有 carrier 时继承上一轮的目标白名单。
|
|
@@ -631,12 +712,14 @@ function registerDelegationAgentHooks(dshContext, registry, resources, publishEx
|
|
|
631
712
|
if (record?.status === 'running')
|
|
632
713
|
publishExternalStatus(sessionId, true);
|
|
633
714
|
else if (record?.status === 'idle') {
|
|
715
|
+
translationRecovery.cancelSession(sessionId);
|
|
634
716
|
publishExternalStatus(sessionId, false);
|
|
635
717
|
clearDelegationAuthorization(sessionId);
|
|
636
718
|
}
|
|
637
719
|
});
|
|
638
720
|
register('agent/disposed', (payload) => {
|
|
639
721
|
const sessionId = readAgentSessionId(asRecord(payload)?.agent);
|
|
722
|
+
translationRecovery.cancelSession(sessionId);
|
|
640
723
|
// disposed 只代表运行时释放;subagentCatalog 没有删除语义,保留目录项并
|
|
641
724
|
// 把它标成 idle,后续若 DSH 重新激活会再次收到 running。
|
|
642
725
|
publishExternalStatus(sessionId, false);
|
|
@@ -999,18 +1082,20 @@ async function setAdapterEnabled(settings, registry, value) {
|
|
|
999
1082
|
return { adapterId, enabled };
|
|
1000
1083
|
}
|
|
1001
1084
|
/** 运行中的外部 Agent 插话也必须经过同一条输入翻译路径。 */
|
|
1002
|
-
async function translateSteerPrompt(
|
|
1085
|
+
async function translateSteerPrompt(translationRecovery, registry, sessionId, prompt, followUp, signal) {
|
|
1003
1086
|
const session = registry.getSession(sessionId);
|
|
1004
1087
|
let translated = prompt;
|
|
1005
|
-
if (
|
|
1088
|
+
if (session.translationEnabled === true) {
|
|
1006
1089
|
try {
|
|
1007
|
-
translated = await
|
|
1090
|
+
translated = (await translationRecovery.translateInput(sessionId, session.adapterId, prompt, signal)).translated;
|
|
1008
1091
|
}
|
|
1009
|
-
catch {
|
|
1010
|
-
|
|
1011
|
-
|
|
1092
|
+
catch (error) {
|
|
1093
|
+
if (error instanceof SessionTranslationCancelled)
|
|
1094
|
+
return;
|
|
1095
|
+
throw error;
|
|
1012
1096
|
}
|
|
1013
1097
|
}
|
|
1098
|
+
signal?.throwIfAborted();
|
|
1014
1099
|
await registry.steer(sessionId, translated, followUp);
|
|
1015
1100
|
}
|
|
1016
1101
|
/**
|
|
@@ -1019,8 +1104,8 @@ async function translateSteerPrompt(translation, registry, sessionId, prompt, fo
|
|
|
1019
1104
|
* DSH 随后会把返回的消息写入 `user/message`。正文只放实际发送的译文;原文和模型
|
|
1020
1105
|
* 记录在 source 元数据中供 Client 详情按钮读取。外部 CLI 边界也会移除该元数据。
|
|
1021
1106
|
*/
|
|
1022
|
-
async function translatePreStepInput(translation, registry, sessionId, messages, dshContext, signal, nativeSession) {
|
|
1023
|
-
if (translation === undefined || !translation.enabled || sessionId.trim() === '')
|
|
1107
|
+
async function translatePreStepInput(translation, translationRecovery, registry, sessionId, messages, dshContext, signal, nativeSession) {
|
|
1108
|
+
if (translation === undefined || !translation.enabled || translation.inputEnabled === false || sessionId.trim() === '')
|
|
1024
1109
|
return undefined;
|
|
1025
1110
|
const messageIndex = findLatestHumanMessage(messages);
|
|
1026
1111
|
const current = messageIndex < 0 ? undefined : messages[messageIndex];
|
|
@@ -1031,10 +1116,10 @@ async function translatePreStepInput(translation, registry, sessionId, messages,
|
|
|
1031
1116
|
if (nativeSession.translationEnabled !== true)
|
|
1032
1117
|
return undefined;
|
|
1033
1118
|
const input = extractTurnInput(messages, dshContext);
|
|
1034
|
-
if (input.
|
|
1119
|
+
if (input.prompt.trim() === '')
|
|
1035
1120
|
return undefined;
|
|
1036
|
-
const result = await
|
|
1037
|
-
const translated = [result.translated, input.
|
|
1121
|
+
const result = await translationRecovery.translateInput(sessionId, nativeSession.adapterId, input.translationPrompt, signal);
|
|
1122
|
+
const translated = [result.translated, attachmentNotices(input.attachments, readInputTargetLanguage(translation))].filter((part) => part.trim() !== '').join('\n\n').trim();
|
|
1038
1123
|
if (translated === '')
|
|
1039
1124
|
return undefined;
|
|
1040
1125
|
const record = {
|
|
@@ -1050,7 +1135,7 @@ async function translatePreStepInput(translation, registry, sessionId, messages,
|
|
|
1050
1135
|
const next = [...messages];
|
|
1051
1136
|
next[messageIndex] = {
|
|
1052
1137
|
...current,
|
|
1053
|
-
content:
|
|
1138
|
+
content: result.failed ? current.content : replaceInputTranslationContent(nativeTranslationContent(current.content, dshContext), translated),
|
|
1054
1139
|
source: { ...(current.source ?? {}), kind: 'user', codingnsTranslationInput: record },
|
|
1055
1140
|
};
|
|
1056
1141
|
return next;
|
|
@@ -1065,10 +1150,10 @@ async function translatePreStepInput(translation, registry, sessionId, messages,
|
|
|
1065
1150
|
if (session.adapterId === 'dsh' || session.translationEnabled !== true)
|
|
1066
1151
|
return undefined;
|
|
1067
1152
|
const input = extractTurnInput(messages, dshContext);
|
|
1068
|
-
if (input.
|
|
1153
|
+
if (input.prompt.trim() === '')
|
|
1069
1154
|
return undefined;
|
|
1070
|
-
const result = await
|
|
1071
|
-
const translated = [result.translated, input.
|
|
1155
|
+
const result = await translationRecovery.translateInput(sessionId, session.adapterId, input.translationPrompt, signal);
|
|
1156
|
+
const translated = [result.translated, attachmentNotices(input.attachments, readInputTargetLanguage(translation))]
|
|
1072
1157
|
.filter((part) => part.trim() !== '')
|
|
1073
1158
|
.join('\n\n')
|
|
1074
1159
|
.trim();
|
|
@@ -1095,26 +1180,6 @@ async function translatePreStepInput(translation, registry, sessionId, messages,
|
|
|
1095
1180
|
};
|
|
1096
1181
|
return next;
|
|
1097
1182
|
}
|
|
1098
|
-
/** 输入翻译统一入口:翻译只是增强能力,异常时回退原文并标记失败。 */
|
|
1099
|
-
async function runInputTranslation(translation, adapterId, text, signal) {
|
|
1100
|
-
try {
|
|
1101
|
-
if (translation.translateInputDetailed !== undefined) {
|
|
1102
|
-
const detailed = await translation.translateInputDetailed(adapterId, text, signal, true);
|
|
1103
|
-
return {
|
|
1104
|
-
translated: detailed.translated,
|
|
1105
|
-
...(detailed.sourceLanguage === undefined ? {} : { sourceLanguage: detailed.sourceLanguage }),
|
|
1106
|
-
...(detailed.alreadyTargetLanguage === true ? { alreadyTargetLanguage: true } : {}),
|
|
1107
|
-
...(detailed.model === undefined ? {} : { model: detailed.model }),
|
|
1108
|
-
...(detailed.failed === true ? { failed: true } : {}),
|
|
1109
|
-
...readSessionTranslationMetrics(detailed),
|
|
1110
|
-
};
|
|
1111
|
-
}
|
|
1112
|
-
return { translated: await translation.translateInput(adapterId, text, signal, true) };
|
|
1113
|
-
}
|
|
1114
|
-
catch {
|
|
1115
|
-
return { translated: text, failed: true };
|
|
1116
|
-
}
|
|
1117
|
-
}
|
|
1118
1183
|
/** 旧测试替身没有 inputLanguage 时沿用历史默认值英语。 */
|
|
1119
1184
|
function readInputTargetLanguage(translation) {
|
|
1120
1185
|
const language = translation.inputLanguage;
|
|
@@ -1177,7 +1242,10 @@ async function* translateNativeStream(stream, translation, bilingual, signal) {
|
|
|
1177
1242
|
const existing = blocks.get(index);
|
|
1178
1243
|
if (existing !== undefined)
|
|
1179
1244
|
return existing.kind === kind && !existing.closed ? existing : undefined;
|
|
1180
|
-
const created = {
|
|
1245
|
+
const created = {
|
|
1246
|
+
index, kind, text: '', closed: false,
|
|
1247
|
+
translate: translation.shouldTranslate(DSH_NATIVE_SESSION_ADAPTER_ID, kind === 'reasoning' ? 'reasoning' : 'assistant', true),
|
|
1248
|
+
};
|
|
1181
1249
|
blocks.set(index, created);
|
|
1182
1250
|
return created;
|
|
1183
1251
|
};
|
|
@@ -1210,7 +1278,7 @@ async function* translateNativeStream(stream, translation, bilingual, signal) {
|
|
|
1210
1278
|
if (record === undefined)
|
|
1211
1279
|
return [];
|
|
1212
1280
|
const visible = formatSessionTranslationOutput(record);
|
|
1213
|
-
if (visible.trim() === '' || visible === original)
|
|
1281
|
+
if (visible.trim() === '' || visible === original && record.failed !== true)
|
|
1214
1282
|
return [];
|
|
1215
1283
|
return [
|
|
1216
1284
|
// Keep the provider text in the native history. The client chooses the translated
|
|
@@ -1231,7 +1299,9 @@ async function* translateNativeStream(stream, translation, bilingual, signal) {
|
|
|
1231
1299
|
}
|
|
1232
1300
|
const kind = type === 'text-delta' ? 'text' : 'reasoning';
|
|
1233
1301
|
const block = bufferOf(index, kind);
|
|
1234
|
-
|
|
1302
|
+
// Decide once per block: changing settings must not translate only a suffix
|
|
1303
|
+
// or drop a prefix that was already buffered.
|
|
1304
|
+
if (block === undefined || !block.translate) {
|
|
1235
1305
|
yield chunk;
|
|
1236
1306
|
continue;
|
|
1237
1307
|
}
|
|
@@ -1248,6 +1318,7 @@ async function* translateNativeStream(stream, translation, bilingual, signal) {
|
|
|
1248
1318
|
yield item;
|
|
1249
1319
|
if (emitted.length > 0)
|
|
1250
1320
|
continue;
|
|
1321
|
+
yield { type: `${block.kind}-delta`, index: block.index, text: block.text };
|
|
1251
1322
|
}
|
|
1252
1323
|
}
|
|
1253
1324
|
yield chunk;
|
|
@@ -1338,7 +1409,7 @@ function readInputTranslation(value) {
|
|
|
1338
1409
|
return undefined;
|
|
1339
1410
|
if (candidate.original.trim() === '' || candidate.translated.trim() === '')
|
|
1340
1411
|
return undefined;
|
|
1341
|
-
const targetLanguage = candidate.targetLanguage === 'fr' || candidate.targetLanguage === 'de' || candidate.targetLanguage === 'ja'
|
|
1412
|
+
const targetLanguage = candidate.targetLanguage === 'fr' || candidate.targetLanguage === 'de' || candidate.targetLanguage === 'ja' || candidate.targetLanguage === 'zh'
|
|
1342
1413
|
? candidate.targetLanguage
|
|
1343
1414
|
: 'en';
|
|
1344
1415
|
const sourceLanguage = candidate.sourceLanguage === 'zh' || candidate.sourceLanguage === 'en' || candidate.sourceLanguage === 'fr' || candidate.sourceLanguage === 'de' || candidate.sourceLanguage === 'ja'
|
|
@@ -1388,6 +1459,19 @@ function replaceInputTranslationContent(content, text) {
|
|
|
1388
1459
|
});
|
|
1389
1460
|
return replaced ? blocks : [{ type: 'text', text }, ...content];
|
|
1390
1461
|
}
|
|
1462
|
+
/** Resolved files already have localized path notices. Leaving their file blocks
|
|
1463
|
+
* would make DSH append another, English-only file notice at adapter dispatch.
|
|
1464
|
+
* Preserve images and unresolved files so DSH retains modality/error handling.
|
|
1465
|
+
*/
|
|
1466
|
+
function nativeTranslationContent(content, dshContext) {
|
|
1467
|
+
if (!Array.isArray(content))
|
|
1468
|
+
return content;
|
|
1469
|
+
return content.filter(part => {
|
|
1470
|
+
if (!isRecord(part) || part.type !== 'file')
|
|
1471
|
+
return true;
|
|
1472
|
+
return resolveDshAttachmentPath(dshContext, 'file', isRecord(part.attachment) ? part.attachment : part) === undefined;
|
|
1473
|
+
});
|
|
1474
|
+
}
|
|
1391
1475
|
/** DSH 为工具分段注入的继续提示必须成为下一次 Provider 请求的 prompt。 */
|
|
1392
1476
|
function isInjectedStepNotice(message) {
|
|
1393
1477
|
if (message.role !== 'user' || !isRecord(message.source))
|
|
@@ -1443,11 +1527,13 @@ function extractMessageInput(content, dshContext) {
|
|
|
1443
1527
|
const mimeType = typeof reference.mediaType === 'string' && reference.mediaType.trim() !== '' ? reference.mediaType.trim() : undefined;
|
|
1444
1528
|
attachments.push({ kind, path, ...(name === undefined ? {} : { name }), ...(mimeType === undefined ? {} : { mimeType }) });
|
|
1445
1529
|
}
|
|
1446
|
-
const fileNotes = attachments.filter((attachment) => attachment.kind === 'file').map((attachment) => `附件文件${attachment.name === undefined ? '' : `「${attachment.name}」`}位于:${attachment.path}\n请使用工具读取该文件的内容。`);
|
|
1447
1530
|
const translationPrompt = text.join('\n\n').trim();
|
|
1448
|
-
const untranslatedPrompt =
|
|
1531
|
+
const untranslatedPrompt = attachmentNotices(attachments);
|
|
1449
1532
|
return { prompt: [translationPrompt, untranslatedPrompt].filter(value => value !== '').join('\n\n'), translationPrompt, untranslatedPrompt, attachments };
|
|
1450
1533
|
}
|
|
1534
|
+
function attachmentNotices(attachments, language) {
|
|
1535
|
+
return attachments.filter(attachment => attachment.kind === 'file').map(attachment => attachmentFileNotice(attachment, language)).join('\n\n');
|
|
1536
|
+
}
|
|
1451
1537
|
function resolveDshAttachmentPath(dshContext, kind, reference) {
|
|
1452
1538
|
if (dshContext === undefined || typeof reference.attachmentId !== 'string')
|
|
1453
1539
|
return undefined;
|