@acorex-platform/module-conversation-client 0.0.28 → 0.0.32
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/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DsjrXRZ6.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs} +7655 -6569
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-D-DZ9ylV.mjs → acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-D-DZ9ylV.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BfjJCQ-e.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Dgs6fpN3.mjs} +6 -6
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BfjJCQ-e.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Dgs6fpN3.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BRW1cHN6.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs.map → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BRW1cHN6.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.mjs +1379 -0
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-D4go5xbr.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-eKYhjy91.mjs} +4 -4
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-D4go5xbr.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-eKYhjy91.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-DLYtqFLi.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-DLYtqFLi.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.mjs +472 -0
- package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Bq4SdK0_.mjs → acorex-platform-module-conversation-client-comments-page.component-VOuN3y_8.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Bq4SdK0_.mjs.map → acorex-platform-module-conversation-client-comments-page.component-VOuN3y_8.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +39 -6
- package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-BlYDwGVe.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-BlYDwGVe.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs → acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs} +16 -1
- package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BQLK6F69.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BQLK6F69.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs +50 -0
- package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-module-conversation-client-contracts.d.ts +28 -18
- package/types/acorex-platform-module-conversation-client.d.ts +150 -76
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DsjrXRZ6.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.mjs +0 -871
- package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B1Z_gZ6O.mjs +0 -142
- package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B1Z_gZ6O.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { A as AXMConversationEntityStoreService, a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT, b as AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, c as axmConversationHasAiChat } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-
|
|
3
|
+
import { A as AXMConversationEntityStoreService, a as AXM_CONVERSATION_ASSIST_RESPONSE_PORT, b as AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, c as axmConversationHasAiChat } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs';
|
|
4
4
|
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region ---- Command ----
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
32
32
|
}] });
|
|
33
33
|
|
|
34
34
|
export { AXMConversationAfterMessageSentCommand };
|
|
35
|
-
//# sourceMappingURL=acorex-platform-module-conversation-client-after-message-sent.command-
|
|
35
|
+
//# sourceMappingURL=acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-conversation-client-after-message-sent.command-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-conversation-client-after-message-sent.command-CpMGuSU1.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/after-message-sent.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { AXConversationSendMessageCommand } from '@acorex/components/conversation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { Injectable, inject } from '@angular/core';\n\nimport { AXM_CONVERSATION_ASSIST_RESPONSE_PORT } from '../chat/services/conversation-assist-response.port';\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\nimport { axmConversationHasAiChat } from '../chat/plugins/utils/assist-metadata.util';\nimport { AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT } from '../chat/services/conversation-regular-auto-reply.port';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMAfterMessageSentOptions {\n conversationId: string;\n messageId: string;\n command: AXConversationSendMessageCommand;\n currentUserId: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationAfterMessageSentCommand implements AXPCommand<AXMAfterMessageSentOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n private readonly assistResponse = inject(AXM_CONVERSATION_ASSIST_RESPONSE_PORT, { optional: true });\n private readonly regularAutoReply = inject(AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, { optional: true });\n\n async execute(input: AXMAfterMessageSentOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMAfterMessageSentOptions;\n\n const cached = this.store.getCachedConversation(options.conversationId);\n const conversation = cached ?? (await this.store.getConversation(options.conversationId));\n const isAssist = axmConversationHasAiChat(conversation?.metadata as Record<string, unknown>);\n\n if (isAssist && this.assistResponse) {\n await this.assistResponse.handleAfterUserMessage(\n options.conversationId,\n options.messageId,\n options.command,\n options.currentUserId,\n );\n } else if (!isAssist && this.regularAutoReply) {\n await this.regularAutoReply.maybeGenerate(options.command, options.messageId, options.currentUserId);\n }\n\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAwBA;AAEA;MAGa,sCAAsC,CAAA;AADnD,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iCAAiC,CAAC;QACjD,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClF,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,wCAAwC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAsBzG,IAAA;IApBC,MAAM,OAAO,CAAC,KAA2C,EAAA;QACvD,MAAM,OAAO,GAAG,KAAmC;AAEnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC;AACvE,QAAA,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,YAAY,EAAE,QAAmC,CAAC;AAE5F,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;YACnC,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAC9C,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,aAAa,CACtB;QACH;AAAO,aAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC7C,YAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC;QACtG;AAEA,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3D;8GAxBW,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sCAAsC,cADzB,MAAM,EAAA,CAAA,CAAA;;2FACnB,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBADlD,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as i1$
|
|
1
|
+
import * as i1$1 from '@acorex/components/button';
|
|
2
2
|
import { AXButtonModule } from '@acorex/components/button';
|
|
3
3
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i3 from '@acorex/core/translation';
|
|
5
5
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
6
6
|
import { AsyncPipe } from '@angular/common';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
@@ -9,7 +9,7 @@ import { input, computed, ViewEncapsulation, ChangeDetectionStrategy, Component
|
|
|
9
9
|
import * as i2 from '@acorex/components/decorators';
|
|
10
10
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
11
11
|
import { axpSanitizeLastProviderPayloadForPersistence, axpAiChatTextMessage, axpAiParseSupervisorAgentToolName, axpAiChatToolOrAgentResultBodyJson, axpAiDelegatedAgentResultSegments, axpAiDelegatedAgentPromptPreview } from '@acorex-platform/module-ai-management-client';
|
|
12
|
-
import {
|
|
12
|
+
import { w as axmReadAssistAiTranscript, x as axmReadAssistAiTranscriptRaw, y as axmAssistSegmentDirection, z as axmParseAssistTranscriptTextEnvelope, B as axmAssistWidgetNodeFromUnknown, C as axmPartitionAssistAnswerText, D as axmSyntheticEmbedMessage, E as AXMNodeMessageRendererComponent, F as AXMAssistBotFileLineComponent, G as AXMAssistSuggestionChipsComponent } from './acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs';
|
|
13
13
|
import * as i5 from '@acorex/components/code-editor';
|
|
14
14
|
import { AXCodeEditorModule } from '@acorex/components/code-editor';
|
|
15
15
|
import { AXConversationTextRendererComponent } from '@acorex/components/conversation';
|
|
@@ -387,7 +387,7 @@ class AXMAssistDelegatedAgentTranscriptViewComponent {
|
|
|
387
387
|
return candidate.type === 'code' && typeof candidate.language === 'string' && typeof candidate.code === 'string';
|
|
388
388
|
}
|
|
389
389
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssistDelegatedAgentTranscriptViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
390
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAssistDelegatedAgentTranscriptViewComponent, isStandalone: true, selector: "axm-assist-delegated-agent-transcript-view", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, embedParent: { classPropertyName: "embedParent", publicName: "embedParent", isSignal: true, isRequired: true, transformFunction: null }, emptyHint: { classPropertyName: "emptyHint", publicName: "emptyHint", isSignal: true, isRequired: false, transformFunction: null }, agentTitleById: { classPropertyName: "agentTitleById", publicName: "agentTitleById", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"axm-delegated-transcript\">\n @if (!hasMessages() && emptyHint()) {\n <p class=\"axm-delegated-transcript__empty\">{{ emptyHint() }}</p>\n } @else {\n <div class=\"axm-delegated-transcript__lines\" role=\"list\">\n @for (item of displayLines(); track item.lineIndex) {\n @let line = item.line;\n @let lineIndex = item.lineIndex;\n <details\n class=\"axm-delegated-transcript__line-collapse\"\n role=\"listitem\"\n [class.axm-delegated-transcript__line-collapse--user]=\"line.role === 'user'\"\n [class.axm-delegated-transcript__line-collapse--assistant]=\"line.role === 'assistant'\"\n [attr.data-role]=\"line.role\"\n [open]=\"lineIndex === displayLines().length - 1 ? true : null\"\n >\n <summary class=\"axm-delegated-transcript__line-summary\">\n <span class=\"axm-delegated-transcript__role-pill\">{{ roleTranslationKey(line.role) | translate | async }}</span>\n @if (line.delegatedReflection) {\n <span class=\"axm-delegated-transcript__reflection-badge\">{{\n '@conversation:chat.assist-renderer.delegated-agent.reflection' | translate | async\n }}</span>\n }\n @if (line.name?.trim()) {\n <span class=\"axm-delegated-transcript__name\">{{ line.name }}</span>\n }\n </summary>\n\n <div class=\"axm-delegated-transcript__segments\">\n @for (seg of line.responses; track segIndex; let segIndex = $index) {\n @if (line.role === 'user' && seg.type === 'file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"seg.content.fileId\" />\n } @else if (line.role === 'user' && seg.type === 'text') {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'think') {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(seg.content)\"\n >\n <axp-markdown-viewer [markdown]=\"seg.content\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'text') {\n @let parsedLine = parseAssistLineText(seg.content);\n @if (parsedLine.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedLine.thinking ?? '')\"\n >\n <axp-markdown-viewer [markdown]=\"parsedLine.thinking ?? ''\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @if (parsedLine.body.trim()) {\n @let partitionedLine = partitionAnswerText(parsedLine.body);\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n @if (partitionedLine.markdown.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(partitionedLine.markdown)\"\n >\n <axp-markdown-viewer [markdown]=\"partitionedLine.markdown\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n @if (widgetNodeFromCode(markdownCodeValue(segment))) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeFromCode(\n markdownCodeValue(segment),\n sectionCollapseKey(lineIndex, segIndex, 'md-code')\n )\n \"\n />\n </div>\n } @else {\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n @for (renderable of partitionedLine.renderable; track $index) {\n @switch (renderable.type) {\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(renderable.content)) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 100 + $index, renderable.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"renderable.content\" />\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"renderable.content.fileId\"\n />\n }\n }\n }\n </details>\n }\n } @else if (\n line.role === 'assistant' &&\n (seg.type === 'agent' || seg.type === 'tool') &&\n isDelegatedAgentCommand(seg.content.command)\n ) {\n <details class=\"axm-delegated-transcript__tool-collapse\">\n <summary class=\"axm-delegated-transcript__tool-panel-header\">\n <i class=\"fa-light fa-people-group axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n <span class=\"axm-delegated-transcript__tool-panel-title\">{{\n resolveToolDisplayTitle(seg.content.command)\n }}</span>\n </summary>\n <div class=\"axm-delegated-transcript__tool-panel-body\">\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-prompt' | translate | async }}\n </summary>\n <div\n class=\"axm-delegated-transcript__prompt axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(delegatedPromptPreview(seg.content.arguments))\"\n >\n {{ delegatedPromptPreview(seg.content.arguments) }}\n </div>\n </details>\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n @let outcomeSegs = delegatedAgentOutcomeSegmentsForCall(resultLine);\n @if (outcomeSegs.length > 0) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n @for (outSeg of outcomeSegs; track $index; let outcomeIndex = $index) {\n @switch (outSeg.type) {\n @case ('text') {\n @let parsedOut = parseAssistLineText(outSeg.content);\n @if (parsedOut.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedOut.thinking ?? '')\"\n >\n <axp-markdown-viewer [markdown]=\"parsedOut.thinking ?? ''\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @if (parsedOut.body.trim()) {\n @let partitionedOut = partitionAnswerText(parsedOut.body);\n @if (partitionedOut.markdown.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(partitionedOut.markdown)\"\n >\n <axp-markdown-viewer [markdown]=\"partitionedOut.markdown\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n @if (widgetNodeFromCode(markdownCodeValue(segment))) {\n <div\n class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\"\n dir=\"auto\"\n >\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeFromCode(\n markdownCodeValue(segment),\n sectionCollapseKey(\n lineIndex,\n segIndex * 1000 + outcomeIndex,\n 'out-code'\n )\n )\n \"\n />\n </div>\n } @else {\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n @for (renderable of partitionedOut.renderable; track $index; let renderableIndex = $index) {\n @switch (renderable.type) {\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(renderable.content)) {\n <div\n class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\"\n dir=\"auto\"\n >\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(\n lineIndex,\n segIndex * 1000 + outcomeIndex * 10 + renderableIndex,\n renderable.content\n )\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"renderable.content\" />\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"renderable.content.fileId\"\n />\n }\n }\n }\n }\n }\n @case ('think') {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(outSeg.content)\"\n >\n <axp-markdown-viewer [markdown]=\"outSeg.content\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @case ('file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"outSeg.content.fileId\" />\n }\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(outSeg.content)) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 1000 + outcomeIndex, outSeg.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"outSeg.content\" />\n </div>\n }\n }\n }\n </details>\n } @else {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n }\n }\n </div>\n </details>\n } @else if (line.role === 'assistant' && (seg.type === 'agent' || seg.type === 'tool')) {\n <details class=\"axm-delegated-transcript__tool-collapse\">\n <summary class=\"axm-delegated-transcript__tool-panel-header\">\n <i class=\"fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n <span class=\"axm-delegated-transcript__tool-panel-title\">{{\n resolveToolDisplayTitle(seg.content.command)\n }}</span>\n </summary>\n <div class=\"axm-delegated-transcript__tool-panel-body\">\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n }\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'node') {\n @if (axmAssistWidgetNodeFromUnknown(seg.content)) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)\"\n />\n </div>\n </details>\n }\n } @else if (line.role === 'assistant' && seg.type === 'file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"seg.content.fileId\" />\n } @else if (line.role === 'tool' && (seg.type === 'tool_result' || seg.type === 'agent_result')) {\n <!-- Shown on the matching tool/agent block above -->\n } @else if (line.role === 'system' && seg.type === 'text') {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.delegated-agent.roles.system' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n </details>\n } @else {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-bot__fallback axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(formatFallbackSegment(seg))\"\n >\n {{ formatFallbackSegment(seg) }}\n </div>\n </details>\n }\n }\n </div>\n </details>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;.axm-assist-renderer{display:flex;flex-direction:column;gap:.25rem}.axm-assist-renderer axm-assist-suggestion-chips>div{padding:0;padding-top:calc(var(--spacing, .25rem) * 4)}.axm-assist-renderer .axm-assist-renderer__cursor{display:inline-block;inline-size:6px;block-size:1em;margin-inline-start:2px;background:rgb(var(--ax-sys-color-primary-500));border-radius:1px;animation:axm-blink .8s steps(2) infinite;vertical-align:text-bottom}.axm-assist-renderer .axm-assist-renderer__stream-content{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-assist-renderer .axm-assist-renderer__streaming-activity{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-block:.15rem}.axm-assist-renderer .axm-assist-renderer__activity-label{line-height:1.45}.axm-assist-renderer .axm-assist-renderer__text{white-space:pre-line;word-break:break-word;line-height:1.85;font-size:.95rem;letter-spacing:.002em;text-wrap:pretty}.axm-assist-renderer .axm-assist-renderer__markdown .axp-markdown-viewer__content :is(p,ul,ol){margin-block:.45rem}.axm-assist-renderer .axm-assist-renderer__markdown .axp-markdown-viewer__content li{line-height:1.8}.axm-assist-renderer .axm-assist-renderer__accordion-group{width:100%}.axm-assist-renderer .axm-assist-renderer__collapse-shell{border-radius:.625rem;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.axm-assist-renderer .axm-assist-renderer__collapse-shell>.axm-assist-renderer__accordion-header:hover{background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__collapse-body{margin:0;padding:0;border-radius:0 0 .5rem .5rem;background:transparent}.axm-assist-renderer .axm-assist-renderer__collapse-body>.axm-assist-renderer__agent-live-block--in-accordion{padding-inline:.5rem;padding-block-end:.35rem}.axm-assist-renderer .axm-assist-renderer__accordion-header{display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);--tw-border-style: none;border-style:none;padding:.5rem .75rem;background:transparent;border-radius:.625rem .625rem 0 0;transition:background-color .15s ease}.axm-assist-renderer .axm-assist-renderer__accordion-header-main{display:flex;flex-direction:column;min-inline-size:0;gap:.1rem}.axm-assist-renderer .axm-assist-renderer__accordion-header-title{display:inline-flex;align-items:center;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.8125rem;line-height:1.25;color:rgb(var(--ax-sys-color-on-surface));gap:.4rem}.axm-assist-renderer .axm-assist-renderer__header-trailing{display:inline-flex;flex-shrink:0;align-items:center;gap:.35rem}.axm-assist-renderer .axm-assist-renderer__delegated-agent-detail-link{text-decoration-line:underline;padding:.25rem;padding-top:0}.axm-assist-renderer .axm-assist-renderer__badge{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,14rem);padding:.1875rem .65rem;font-size:.6875rem;line-height:1.3;letter-spacing:.03em}.axm-assist-renderer .axm-assist-renderer__badge--warning{background:rgb(var(--ax-sys-color-warning-100))}.axm-assist-renderer .axm-assist-renderer__badge--primary{background:rgb(var(--ax-sys-color-primary-100))}.axm-assist-renderer .axm-assist-renderer__badge--success{background:rgb(var(--ax-sys-color-success-100))}.axm-assist-renderer .axm-assist-renderer__thinking-chevron{display:inline-block;flex-shrink:0;font-size:.65rem;opacity:.65;transition:transform .2s ease;line-height:1}.axm-assist-renderer .axm-assist-renderer__thinking-chevron--expanded{transform:rotate(180deg)}.axm-assist-renderer .axm-assist-renderer__thinking-body{padding:.625rem .75rem .75rem;font-size:.78rem;color:rgb(var(--ax-sys-color-neutral-700));word-break:break-word;line-height:1.55}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content{font-size:inherit;color:inherit;line-height:inherit}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content :is(p,ul,ol){margin-block:.35rem}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content li{line-height:inherit}.axm-assist-renderer .axm-assist-renderer__tools{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-assist-renderer .axm-assist-renderer__tool-row{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);padding:.5rem .65rem;border-radius:.625rem;background:rgb(var(--ax-sys-color-lighter-surface));border:1px solid rgb(var(--ax-sys-color-border-lighter-surface))}.axm-assist-renderer .axm-assist-renderer__tool-row-main{display:flex;min-width:0px;align-items:center;gap:.45rem}.axm-assist-renderer .axm-assist-renderer__tool-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface))}.axm-assist-renderer .axm-assist-renderer__tool-model-label{flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);max-width:9rem;letter-spacing:.01em;color:rgb(var(--ax-sys-color-neutral-600));opacity:.78}.axm-assist-renderer .axm-assist-renderer__tool-card{border-radius:.625rem;overflow:hidden}.axm-assist-renderer .axm-assist-renderer__tool-body{display:flex;flex-direction:column;padding:.625rem .75rem .75rem;gap:.35rem}.axm-assist-renderer .axm-assist-renderer__tool-section-label{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;font-size:.625rem;letter-spacing:.06em;color:rgb(var(--ax-sys-color-neutral-700))}.axm-assist-renderer .axm-assist-renderer__tool-pre{margin:0;overflow:auto;border-radius:var(--radius-md, .375rem);max-block-size:10rem;background:rgb(var(--ax-sys-color-light-surface));padding:.5rem;font-family:var(--ax-font-mono, monospace);font-size:.675rem;line-height:1.45;word-break:break-word}.axm-assist-renderer .axm-assist-renderer__run-meta-wrap{margin-block-start:.45rem}.axm-assist-renderer .axm-assist-renderer__run-meta-header-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.35;color:rgb(var(--ax-sys-color-neutral-700));max-width:100%}.axm-assist-renderer .axm-assist-renderer__run-meta{display:flex;flex-direction:column;margin-block-start:.45rem;padding:.55rem .65rem .6rem;border-radius:.625rem;background:rgb(var(--ax-sys-color-lighter-surface));gap:.45rem}.axm-assist-renderer .axm-assist-renderer__run-meta--panel{margin-block-start:0;padding:.45rem .5rem .55rem;background:transparent;border-radius:0}.axm-assist-renderer .axm-assist-renderer__run-meta-grid{display:flex;gap:.4rem}.axm-assist-renderer .axm-assist-renderer__meta-tile{min-width:0px;padding:.4rem .5rem .45rem;border-radius:.45rem;background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__meta-tile--wide{grid-column:1/-1}.axm-assist-renderer .axm-assist-renderer__meta-tile--accent{background:rgb(var(--ax-sys-color-primary-50))}.axm-assist-renderer .axm-assist-renderer__meta-tile-label{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-transform:uppercase;font-size:.6rem;letter-spacing:.06em;color:rgb(var(--ax-sys-color-neutral-700));margin-block-end:.2rem}.axm-assist-renderer .axm-assist-renderer__meta-tile-value{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.78rem;line-height:1.35;color:rgb(var(--ax-sys-color-on-surface));word-break:break-word}.axm-assist-renderer .axm-assist-renderer__meta-tile-value--mono{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\" 1}.axm-assist-renderer .axm-assist-renderer__meta-tile-sub{margin-block-start:.15rem;font-size:.65rem;line-height:1.3;color:rgb(var(--ax-sys-color-neutral-700));font-family:var(--ax-font-mono, ui-monospace, monospace);word-break:break-all}.axm-assist-renderer .axm-assist-renderer__meta-tile-note{display:inline;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);margin-inline-start:.2rem;font-size:.65rem;color:rgb(var(--ax-sys-color-success-700))}.axm-assist-renderer .axm-assist-renderer__tool-editor-wrap{overflow:hidden;border-radius:var(--radius-md, .375rem);background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__waiting{display:flex;gap:.25rem;padding:.25rem 0}.axm-assist-renderer .axm-assist-renderer__dot{inline-size:6px;block-size:6px;border-radius:50%;background:rgb(var(--ax-sys-color-neutral-500));animation:axm-blink 1.2s ease-in-out infinite}.axm-assist-renderer .axm-assist-renderer__dot:nth-child(2){animation-delay:.2s}.axm-assist-renderer .axm-assist-renderer__dot:nth-child(3){animation-delay:.4s}.axm-assist-renderer .axm-assist-renderer__agent-live-block{display:flex;flex-direction:column;border-radius:.75rem;background:rgb(var(--ax-sys-color-lighter-surface));padding:.75rem .875rem;gap:.65rem;max-inline-size:min(42rem,100%)}.axm-assist-renderer .axm-assist-renderer__agent-live-block--in-accordion{background:rgb(var(--ax-sys-color-light-surface));border-radius:.5rem;padding:.5rem .55rem .55rem;max-inline-size:none}.axm-assist-renderer .axm-assist-renderer__agent-live-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axm-assist-renderer .axm-assist-renderer__agent-live-title{flex:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));min-inline-size:0}.axm-assist-renderer .axm-assist-renderer__agent-live-prompt{align-self:flex-end;font-size:.8125rem;line-height:1.55;word-break:break-word;padding:.5rem .75rem;border-radius:1.25rem;background:rgb(var(--ax-sys-color-lightest-surface));max-inline-size:min(92%,36rem)}.axm-assist-renderer .axm-assist-renderer__agent-live-stream{font-size:.8125rem;line-height:1.55;white-space:pre-line;word-break:break-word;padding-block-start:.15rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-tools{display:flex;flex-direction:column;gap:.35rem;padding-block-start:.35rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-row{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-name{flex:1;overflow:hidden;text-overflow:ellipsis;font-family:var(--ax-font-mono, monospace);font-size:.7rem;min-inline-size:0}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-status{flex-shrink:0;color:rgb(var(--ax-sys-color-neutral-600))}.axm-assist-renderer .axm-assist-renderer__retry-alert-body{display:flex;align-items:flex-start;gap:.75rem}.axm-assist-renderer .axm-assist-renderer__retry-alert-text{display:flex;flex:1;flex-direction:column;min-inline-size:0;gap:.3rem}.axm-assist-renderer .axm-assist-renderer__retry-description{margin:0;font-size:.8125rem;line-height:1.5;opacity:.92}.axm-assist-renderer .axm-assist-renderer__retry-error-detail{margin:.15rem 0 0;font-size:.75rem;line-height:1.45;font-family:var(--ax-font-mono, ui-monospace, monospace);word-break:break-word;opacity:.88}.axm-assist-renderer .axm-assist-renderer__retry-action{flex-shrink:0;align-self:center}.axm-assist-bot,.axm-assist-bot .axm-assist-bot__final-line{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axm-assist-bot .axm-assist-bot__segment{unicode-bidi:isolate;font-size:.95rem;line-height:1.8;letter-spacing:.002em;color:rgb(var(--ax-sys-color-on-surface));text-wrap:pretty}.axm-assist-bot .axm-assist-bot__segment:has(axm-chat-user-form-renderer){inline-size:100%;max-inline-size:100%}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer{display:block}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer :is(p,ul,ol){margin-block:.45rem}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer li{line-height:1.8}.axm-assist-bot .axm-assist-bot__line--user{align-self:flex-end}.axm-assist-bot .axm-assist-bot__line--tool-role{align-self:stretch}.axm-assist-bot .axm-assist-bot__tool-result{border-radius:var(--radius-lg, .5rem);background:rgb(var(--ax-sys-color-lighter-surface));padding:.5rem .75rem}.axm-assist-bot .axm-assist-bot__fallback{font-size:.88rem;line-height:1.75;word-break:break-word;opacity:.9}@keyframes axm-blink{0%{opacity:1}50%{opacity:0}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n", "@layer properties;.axm-delegated-transcript{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);min-inline-size:0}.axm-delegated-transcript .axm-delegated-transcript__empty{margin:0;border-radius:var(--radius-lg, .5rem);padding:calc(var(--spacing, .25rem) * 6);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-neutral-600));background:rgb(var(--ax-sys-color-lighter-surface))}.axm-delegated-transcript .axm-delegated-transcript__lines{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);overflow-y:auto;padding:calc(var(--spacing, .25rem) * 4);max-block-size:min(75vh,42rem)}.axm-delegated-transcript .axm-delegated-transcript__line-collapse{display:flex;flex-direction:column;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-lighter-surface));padding:.35rem .65rem .65rem}.axm-delegated-transcript .axm-delegated-transcript__line-collapse--user{background:rgb(var(--ax-sys-color-primary-500))}@supports (color: color-mix(in lab,red,red)){.axm-delegated-transcript .axm-delegated-transcript__line-collapse--user{background:color-mix(in srgb,rgb(var(--ax-sys-color-primary-500)) 5%,rgb(var(--ax-sys-color-lighter-surface)))}}.axm-delegated-transcript .axm-delegated-transcript__line-collapse--assistant{background:rgb(var(--ax-sys-color-lightest-surface))}.axm-delegated-transcript .axm-delegated-transcript__line-summary{display:flex;cursor:pointer;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);padding:.35rem .15rem;list-style:none}.axm-delegated-transcript .axm-delegated-transcript__line-summary::-webkit-details-marker{display:none}.axm-delegated-transcript .axm-delegated-transcript__line-summary:before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease}.axm-delegated-transcript .axm-delegated-transcript__line-collapse[open]>.axm-delegated-transcript__line-summary:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__line{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2.5);padding:.75rem .85rem;border-radius:.75rem;border:1px solid rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-lighter-surface))}.axm-delegated-transcript .axm-delegated-transcript__line--user{background:rgb(var(--ax-sys-color-primary-500))}@supports (color: color-mix(in lab,red,red)){.axm-delegated-transcript .axm-delegated-transcript__line--user{background:color-mix(in srgb,rgb(var(--ax-sys-color-primary-500)) 5%,rgb(var(--ax-sys-color-lighter-surface)))}}.axm-delegated-transcript .axm-delegated-transcript__line--assistant{background:rgb(var(--ax-sys-color-lightest-surface))}.axm-delegated-transcript .axm-delegated-transcript__role{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axm-delegated-transcript .axm-delegated-transcript__role-pill{display:inline-flex;align-items:center;border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;padding:.2rem .55rem;font-size:.625rem;letter-spacing:.05em;color:rgb(var(--ax-sys-color-on-primary-light-surface));background:rgb(var(--ax-sys-color-primary-100))}.axm-delegated-transcript .axm-delegated-transcript__reflection-badge{border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);padding:.125rem .45rem;font-size:.625rem;color:rgb(var(--ax-sys-color-on-warning-light-surface));background:rgb(var(--ax-sys-color-warning-100))}.axm-delegated-transcript .axm-delegated-transcript__name{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-neutral-600))}.axm-delegated-transcript .axm-delegated-transcript__segments{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-inline-start:.35rem}.axm-delegated-transcript .axm-delegated-transcript__section-collapse,.axm-delegated-transcript .axm-delegated-transcript__tool-collapse{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.35rem .5rem}.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);list-style:none;padding:.2rem .15rem}:is(.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header)::-webkit-details-marker{display:none}:is(.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header):before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.5625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease;flex-shrink:0}.axm-delegated-transcript .axm-delegated-transcript__section-collapse[open]>.axm-delegated-transcript__section-summary:before,.axm-delegated-transcript .axm-delegated-transcript__tool-collapse[open]>.axm-delegated-transcript__tool-panel-header:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__section-summary{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-neutral-700))}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-block-start:.35rem;padding-inline-start:.5rem}.axm-delegated-transcript .axm-delegated-transcript__widget-embed{inline-size:100%;max-inline-size:100%;min-block-size:0}.axm-delegated-transcript .axm-delegated-transcript__think{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.35rem .5rem}.axm-delegated-transcript .axm-delegated-transcript__think-summary{display:flex;cursor:pointer;align-items:center;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);gap:.35rem;font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));list-style:none}.axm-delegated-transcript .axm-delegated-transcript__think-summary::-webkit-details-marker{display:none}.axm-delegated-transcript .axm-delegated-transcript__think-summary:before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.5625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease}.axm-delegated-transcript .axm-delegated-transcript__think[open]>.axm-delegated-transcript__think-summary:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__tool-panel{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.65rem .75rem}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}.axm-delegated-transcript .axm-delegated-transcript__prompt{border-radius:var(--radius-md, .375rem);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));padding:.5rem .6rem;background:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-surface));white-space:pre-wrap;word-break:break-word}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXConversationTextRendererComponent, selector: "ax-conversation-text-renderer", inputs: ["message"] }, { kind: "component", type: AXMNodeMessageRendererComponent, selector: "axm-chat-user-form-renderer", inputs: ["message", "node"], outputs: ["formSubmitted"] }, { kind: "component", type: AXMAssistBotFileLineComponent, selector: "axm-assist-bot-file-line", inputs: ["parentMessage", "fileId"] }, { kind: "component", type: AXMAssistSuggestionChipsComponent, selector: "axm-assist-suggestion-chips", inputs: ["items", "compact", "sendInPlace", "disabled"], outputs: ["conversationCreated"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i5.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "component", type: AXPMarkdownViewerComponent, selector: "axp-markdown-viewer", inputs: ["markdown"] }, { kind: "directive", type: AXPMarkdownTemplateDirective, selector: "ng-template[axpMarkdownTemplate]", inputs: ["axpMarkdownTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
390
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAssistDelegatedAgentTranscriptViewComponent, isStandalone: true, selector: "axm-assist-delegated-agent-transcript-view", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, embedParent: { classPropertyName: "embedParent", publicName: "embedParent", isSignal: true, isRequired: true, transformFunction: null }, emptyHint: { classPropertyName: "emptyHint", publicName: "emptyHint", isSignal: true, isRequired: false, transformFunction: null }, agentTitleById: { classPropertyName: "agentTitleById", publicName: "agentTitleById", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"axm-delegated-transcript\">\n @if (!hasMessages() && emptyHint()) {\n <p class=\"axm-delegated-transcript__empty\">{{ emptyHint() }}</p>\n } @else {\n <div class=\"axm-delegated-transcript__lines\" role=\"list\">\n @for (item of displayLines(); track item.lineIndex) {\n @let line = item.line;\n @let lineIndex = item.lineIndex;\n <details\n class=\"axm-delegated-transcript__line-collapse\"\n role=\"listitem\"\n [class.axm-delegated-transcript__line-collapse--user]=\"line.role === 'user'\"\n [class.axm-delegated-transcript__line-collapse--assistant]=\"line.role === 'assistant'\"\n [attr.data-role]=\"line.role\"\n [open]=\"lineIndex === displayLines().length - 1 ? true : null\"\n >\n <summary class=\"axm-delegated-transcript__line-summary\">\n <span class=\"axm-delegated-transcript__role-pill\">{{ roleTranslationKey(line.role) | translate | async }}</span>\n @if (line.delegatedReflection) {\n <span class=\"axm-delegated-transcript__reflection-badge\">{{\n '@conversation:chat.assist-renderer.delegated-agent.reflection' | translate | async\n }}</span>\n }\n @if (line.name?.trim()) {\n <span class=\"axm-delegated-transcript__name\">{{ line.name }}</span>\n }\n </summary>\n\n <div class=\"axm-delegated-transcript__segments\">\n @for (seg of line.responses; track segIndex; let segIndex = $index) {\n @if (line.role === 'user' && seg.type === 'file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"seg.content.fileId\" />\n } @else if (line.role === 'user' && seg.type === 'text') {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'think') {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(seg.content)\"\n >\n <axp-markdown-viewer [markdown]=\"seg.content\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'text') {\n @let parsedLine = parseAssistLineText(seg.content);\n @if (parsedLine.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedLine.thinking ?? '')\"\n >\n <axp-markdown-viewer [markdown]=\"parsedLine.thinking ?? ''\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @if (parsedLine.body.trim()) {\n @let partitionedLine = partitionAnswerText(parsedLine.body);\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n @if (partitionedLine.markdown.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(partitionedLine.markdown)\"\n >\n <axp-markdown-viewer [markdown]=\"partitionedLine.markdown\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n @if (widgetNodeFromCode(markdownCodeValue(segment))) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeFromCode(\n markdownCodeValue(segment),\n sectionCollapseKey(lineIndex, segIndex, 'md-code')\n )\n \"\n />\n </div>\n } @else {\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n @for (renderable of partitionedLine.renderable; track $index) {\n @switch (renderable.type) {\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(renderable.content)) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 100 + $index, renderable.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"renderable.content\" />\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"renderable.content.fileId\"\n />\n }\n }\n }\n </details>\n }\n } @else if (\n line.role === 'assistant' &&\n (seg.type === 'agent' || seg.type === 'tool') &&\n isDelegatedAgentCommand(seg.content.command)\n ) {\n <details class=\"axm-delegated-transcript__tool-collapse\">\n <summary class=\"axm-delegated-transcript__tool-panel-header\">\n <i class=\"fa-light fa-people-group axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n <span class=\"axm-delegated-transcript__tool-panel-title\">{{\n resolveToolDisplayTitle(seg.content.command)\n }}</span>\n </summary>\n <div class=\"axm-delegated-transcript__tool-panel-body\">\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-prompt' | translate | async }}\n </summary>\n <div\n class=\"axm-delegated-transcript__prompt axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(delegatedPromptPreview(seg.content.arguments))\"\n >\n {{ delegatedPromptPreview(seg.content.arguments) }}\n </div>\n </details>\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n @let outcomeSegs = delegatedAgentOutcomeSegmentsForCall(resultLine);\n @if (outcomeSegs.length > 0) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n @for (outSeg of outcomeSegs; track $index; let outcomeIndex = $index) {\n @switch (outSeg.type) {\n @case ('text') {\n @let parsedOut = parseAssistLineText(outSeg.content);\n @if (parsedOut.thinking?.trim()) {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(parsedOut.thinking ?? '')\"\n >\n <axp-markdown-viewer [markdown]=\"parsedOut.thinking ?? ''\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @if (parsedOut.body.trim()) {\n @let partitionedOut = partitionAnswerText(parsedOut.body);\n @if (partitionedOut.markdown.trim()) {\n <div\n class=\"axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(partitionedOut.markdown)\"\n >\n <axp-markdown-viewer [markdown]=\"partitionedOut.markdown\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n @if (widgetNodeFromCode(markdownCodeValue(segment))) {\n <div\n class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\"\n dir=\"auto\"\n >\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeFromCode(\n markdownCodeValue(segment),\n sectionCollapseKey(\n lineIndex,\n segIndex * 1000 + outcomeIndex,\n 'out-code'\n )\n )\n \"\n />\n </div>\n } @else {\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n }\n </ng-template>\n </axp-markdown-viewer>\n </div>\n }\n @for (renderable of partitionedOut.renderable; track $index; let renderableIndex = $index) {\n @switch (renderable.type) {\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(renderable.content)) {\n <div\n class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\"\n dir=\"auto\"\n >\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(\n lineIndex,\n segIndex * 1000 + outcomeIndex * 10 + renderableIndex,\n renderable.content\n )\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"renderable.content\" />\n </div>\n }\n @case ('file') {\n <axm-assist-bot-file-line\n [parentMessage]=\"embedParent()\"\n [fileId]=\"renderable.content.fileId\"\n />\n }\n }\n }\n }\n }\n @case ('think') {\n <details class=\"axm-delegated-transcript__think\">\n <summary class=\"axm-delegated-transcript__think-summary\">\n <i class=\"fa-light fa-brain axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n {{ '@conversation:chat.assist-renderer.sections.thinking' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-renderer__thinking-body axm-assist-bot__segment axm-assist-renderer__markdown\"\n [attr.dir]=\"segmentDir(outSeg.content)\"\n >\n <axp-markdown-viewer [markdown]=\"outSeg.content\">\n <ng-template axpMarkdownTemplate=\"code\" let-segment>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"markdownCodeValue(segment)\"\n [readonly]=\"true\"\n [language]=\"markdownCodeLanguage(segment)\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </ng-template>\n </axp-markdown-viewer>\n </div>\n </details>\n }\n @case ('file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"outSeg.content.fileId\" />\n }\n @case ('node') {\n @if (axmAssistWidgetNodeFromUnknown(outSeg.content)) {\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"\n syntheticNodeEmbedMessage(lineIndex, segIndex * 1000 + outcomeIndex, outSeg.content)\n \"\n />\n </div>\n }\n }\n @case ('followUp') {\n <div class=\"axm-assist-bot__segment\" dir=\"auto\">\n <axm-assist-suggestion-chips [items]=\"outSeg.content\" />\n </div>\n }\n }\n }\n </details>\n } @else {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n }\n }\n </div>\n </details>\n } @else if (line.role === 'assistant' && (seg.type === 'agent' || seg.type === 'tool')) {\n <details class=\"axm-delegated-transcript__tool-collapse\">\n <summary class=\"axm-delegated-transcript__tool-panel-header\">\n <i class=\"fa-light fa-screwdriver-wrench axm-assist-renderer__tool-title-icon\" aria-hidden=\"true\"></i>\n <span class=\"axm-delegated-transcript__tool-panel-title\">{{\n resolveToolDisplayTitle(seg.content.command)\n }}</span>\n </summary>\n <div class=\"axm-delegated-transcript__tool-panel-body\">\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.input' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatArgs(seg.content.arguments)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n @if (toolResultForCallId(seg.callId); as resultLine) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div class=\"axm-assist-renderer__tool-editor-wrap\" style=\"direction: ltr\">\n <ax-code-editor\n [ngModel]=\"formatToolResultBody(resultLine)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineNumbers]=\"true\"\n class=\"axm-assist-renderer__tool-editor\"\n ></ax-code-editor>\n </div>\n </details>\n }\n </div>\n </details>\n } @else if (line.role === 'assistant' && seg.type === 'node') {\n @if (axmAssistWidgetNodeFromUnknown(seg.content)) {\n <details class=\"axm-delegated-transcript__section-collapse\" open>\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.agent-answer' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment axm-delegated-transcript__widget-embed\" dir=\"auto\">\n <axm-chat-user-form-renderer\n [message]=\"syntheticNodeEmbedMessage(lineIndex, segIndex, seg.content)\"\n />\n </div>\n </details>\n }\n } @else if (line.role === 'assistant' && seg.type === 'file') {\n <axm-assist-bot-file-line [parentMessage]=\"embedParent()\" [fileId]=\"seg.content.fileId\" />\n } @else if (line.role === 'tool' && (seg.type === 'tool_result' || seg.type === 'agent_result')) {\n <!-- Shown on the matching tool/agent block above -->\n } @else if (line.role === 'system' && seg.type === 'text') {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.delegated-agent.roles.system' | translate | async }}\n </summary>\n <div class=\"axm-assist-bot__segment\" [attr.dir]=\"segmentDir(seg.content)\">\n <ax-conversation-text-renderer [message]=\"syntheticTextMessage(lineIndex, segIndex, seg.content)\" />\n </div>\n </details>\n } @else {\n <details class=\"axm-delegated-transcript__section-collapse\">\n <summary class=\"axm-delegated-transcript__section-summary\">\n {{ '@conversation:chat.assist-renderer.sections.output' | translate | async }}\n </summary>\n <div\n class=\"axm-assist-bot__fallback axm-assist-bot__segment\"\n [attr.dir]=\"segmentDir(formatFallbackSegment(seg))\"\n >\n {{ formatFallbackSegment(seg) }}\n </div>\n </details>\n }\n }\n </div>\n </details>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;.axm-assist-renderer{display:flex;flex-direction:column;gap:.25rem}.axm-assist-renderer axm-assist-suggestion-chips>div{padding:0;padding-top:calc(var(--spacing, .25rem) * 4)}.axm-assist-renderer .axm-assist-renderer__cursor{display:inline-block;inline-size:6px;block-size:1em;margin-inline-start:2px;background:rgb(var(--ax-sys-color-primary-500));border-radius:1px;animation:axm-blink .8s steps(2) infinite;vertical-align:text-bottom}.axm-assist-renderer .axm-assist-renderer__stream-content{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-assist-renderer .axm-assist-renderer__streaming-activity{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);padding-block:.15rem}.axm-assist-renderer .axm-assist-renderer__activity-label{line-height:1.45}.axm-assist-renderer .axm-assist-renderer__text{white-space:pre-line;word-break:break-word;line-height:1.85;font-size:.95rem;letter-spacing:.002em;text-wrap:pretty}.axm-assist-renderer .axm-assist-renderer__markdown .axp-markdown-viewer__content :is(p,ul,ol){margin-block:.45rem}.axm-assist-renderer .axm-assist-renderer__markdown .axp-markdown-viewer__content li{line-height:1.8}.axm-assist-renderer .axm-assist-renderer__accordion-group{width:100%}.axm-assist-renderer .axm-assist-renderer__collapse-shell{border-radius:.625rem;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.axm-assist-renderer .axm-assist-renderer__collapse-shell>.axm-assist-renderer__accordion-header:hover{background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__collapse-body{margin:0;padding:0;border-radius:0 0 .5rem .5rem;background:transparent}.axm-assist-renderer .axm-assist-renderer__collapse-body>.axm-assist-renderer__agent-live-block--in-accordion{padding-inline:.5rem;padding-block-end:.35rem}.axm-assist-renderer .axm-assist-renderer__accordion-header{display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);--tw-border-style: none;border-style:none;padding:.5rem .75rem;background:transparent;border-radius:.625rem .625rem 0 0;transition:background-color .15s ease}.axm-assist-renderer .axm-assist-renderer__accordion-header-main{display:flex;flex-direction:column;min-inline-size:0;gap:.1rem}.axm-assist-renderer .axm-assist-renderer__accordion-header-title{display:inline-flex;align-items:center;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.8125rem;line-height:1.25;color:rgb(var(--ax-sys-color-on-surface));gap:.4rem}.axm-assist-renderer .axm-assist-renderer__header-trailing{display:inline-flex;flex-shrink:0;align-items:center;gap:.35rem}.axm-assist-renderer .axm-assist-renderer__delegated-agent-detail-link{text-decoration-line:underline;padding:.25rem;padding-top:0}.axm-assist-renderer .axm-assist-renderer__badge{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,14rem);padding:.1875rem .65rem;font-size:.6875rem;line-height:1.3;letter-spacing:.03em}.axm-assist-renderer .axm-assist-renderer__badge--warning{background:rgb(var(--ax-sys-color-warning-100))}.axm-assist-renderer .axm-assist-renderer__badge--primary{background:rgb(var(--ax-sys-color-primary-100))}.axm-assist-renderer .axm-assist-renderer__badge--success{background:rgb(var(--ax-sys-color-success-100))}.axm-assist-renderer .axm-assist-renderer__thinking-chevron{display:inline-block;flex-shrink:0;font-size:.65rem;opacity:.65;transition:transform .2s ease;line-height:1}.axm-assist-renderer .axm-assist-renderer__thinking-chevron--expanded{transform:rotate(180deg)}.axm-assist-renderer .axm-assist-renderer__thinking-body{padding:.625rem .75rem .75rem;font-size:.78rem;color:rgb(var(--ax-sys-color-neutral-700));word-break:break-word;line-height:1.55}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content{font-size:inherit;color:inherit;line-height:inherit}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content :is(p,ul,ol){margin-block:.35rem}.axm-assist-renderer .axm-assist-renderer__thinking-body.axm-assist-renderer__markdown .axp-markdown-viewer__content li{line-height:inherit}.axm-assist-renderer .axm-assist-renderer__tools{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axm-assist-renderer .axm-assist-renderer__tool-row{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);padding:.5rem .65rem;border-radius:.625rem;background:rgb(var(--ax-sys-color-lighter-surface));border:1px solid rgb(var(--ax-sys-color-border-lighter-surface))}.axm-assist-renderer .axm-assist-renderer__tool-row-main{display:flex;min-width:0px;align-items:center;gap:.45rem}.axm-assist-renderer .axm-assist-renderer__tool-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface))}.axm-assist-renderer .axm-assist-renderer__tool-model-label{flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);max-width:9rem;letter-spacing:.01em;color:rgb(var(--ax-sys-color-neutral-600));opacity:.78}.axm-assist-renderer .axm-assist-renderer__tool-card{border-radius:.625rem;overflow:hidden}.axm-assist-renderer .axm-assist-renderer__tool-body{display:flex;flex-direction:column;padding:.625rem .75rem .75rem;gap:.35rem}.axm-assist-renderer .axm-assist-renderer__tool-section-label{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;font-size:.625rem;letter-spacing:.06em;color:rgb(var(--ax-sys-color-neutral-700))}.axm-assist-renderer .axm-assist-renderer__tool-pre{margin:0;overflow:auto;border-radius:var(--radius-md, .375rem);max-block-size:10rem;background:rgb(var(--ax-sys-color-light-surface));padding:.5rem;font-family:var(--ax-font-mono, monospace);font-size:.675rem;line-height:1.45;word-break:break-word}.axm-assist-renderer .axm-assist-renderer__run-meta-wrap{margin-block-start:.45rem}.axm-assist-renderer .axm-assist-renderer__run-meta-header-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.35;color:rgb(var(--ax-sys-color-neutral-700));max-width:100%}.axm-assist-renderer .axm-assist-renderer__run-meta{display:flex;flex-direction:column;margin-block-start:.45rem;padding:.55rem .65rem .6rem;border-radius:.625rem;background:rgb(var(--ax-sys-color-lighter-surface));gap:.45rem}.axm-assist-renderer .axm-assist-renderer__run-meta--panel{margin-block-start:0;padding:.45rem .5rem .55rem;background:transparent;border-radius:0}.axm-assist-renderer .axm-assist-renderer__run-meta-grid{display:flex;gap:.4rem}.axm-assist-renderer .axm-assist-renderer__meta-tile{min-width:0px;padding:.4rem .5rem .45rem;border-radius:.45rem;background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__meta-tile--wide{grid-column:1/-1}.axm-assist-renderer .axm-assist-renderer__meta-tile--accent{background:rgb(var(--ax-sys-color-primary-50))}.axm-assist-renderer .axm-assist-renderer__meta-tile-label{--tw-font-weight: var(--font-weight-bold, 700);font-weight:var(--font-weight-bold, 700);text-transform:uppercase;font-size:.6rem;letter-spacing:.06em;color:rgb(var(--ax-sys-color-neutral-700));margin-block-end:.2rem}.axm-assist-renderer .axm-assist-renderer__meta-tile-value{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.78rem;line-height:1.35;color:rgb(var(--ax-sys-color-on-surface));word-break:break-word}.axm-assist-renderer .axm-assist-renderer__meta-tile-value--mono{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\" 1}.axm-assist-renderer .axm-assist-renderer__meta-tile-sub{margin-block-start:.15rem;font-size:.65rem;line-height:1.3;color:rgb(var(--ax-sys-color-neutral-700));font-family:var(--ax-font-mono, ui-monospace, monospace);word-break:break-all}.axm-assist-renderer .axm-assist-renderer__meta-tile-note{display:inline;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);margin-inline-start:.2rem;font-size:.65rem;color:rgb(var(--ax-sys-color-success-700))}.axm-assist-renderer .axm-assist-renderer__tool-editor-wrap{overflow:hidden;border-radius:var(--radius-md, .375rem);background:rgb(var(--ax-sys-color-light-surface))}.axm-assist-renderer .axm-assist-renderer__waiting{display:flex;gap:.25rem;padding:.25rem 0}.axm-assist-renderer .axm-assist-renderer__dot{inline-size:6px;block-size:6px;border-radius:50%;background:rgb(var(--ax-sys-color-neutral-500));animation:axm-blink 1.2s ease-in-out infinite}.axm-assist-renderer .axm-assist-renderer__dot:nth-child(2){animation-delay:.2s}.axm-assist-renderer .axm-assist-renderer__dot:nth-child(3){animation-delay:.4s}.axm-assist-renderer .axm-assist-renderer__agent-live-block{display:flex;flex-direction:column;border-radius:.75rem;background:rgb(var(--ax-sys-color-lighter-surface));padding:.75rem .875rem;gap:.65rem;max-inline-size:min(42rem,100%)}.axm-assist-renderer .axm-assist-renderer__agent-live-block--in-accordion{background:rgb(var(--ax-sys-color-light-surface));border-radius:.5rem;padding:.5rem .55rem .55rem;max-inline-size:none}.axm-assist-renderer .axm-assist-renderer__agent-live-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.axm-assist-renderer .axm-assist-renderer__agent-live-title{flex:1;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));min-inline-size:0}.axm-assist-renderer .axm-assist-renderer__agent-live-prompt{align-self:flex-end;font-size:.8125rem;line-height:1.55;word-break:break-word;padding:.5rem .75rem;border-radius:1.25rem;background:rgb(var(--ax-sys-color-lightest-surface));max-inline-size:min(92%,36rem)}.axm-assist-renderer .axm-assist-renderer__agent-live-stream{font-size:.8125rem;line-height:1.55;white-space:pre-line;word-break:break-word;padding-block-start:.15rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-tools{display:flex;flex-direction:column;gap:.35rem;padding-block-start:.35rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-row{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-name{flex:1;overflow:hidden;text-overflow:ellipsis;font-family:var(--ax-font-mono, monospace);font-size:.7rem;min-inline-size:0}.axm-assist-renderer .axm-assist-renderer__agent-live-nested-status{flex-shrink:0;color:rgb(var(--ax-sys-color-neutral-600))}.axm-assist-renderer .axm-assist-renderer__retry-alert-body{display:flex;align-items:flex-start;gap:.75rem}.axm-assist-renderer .axm-assist-renderer__retry-alert-text{display:flex;flex:1;flex-direction:column;min-inline-size:0;gap:.3rem}.axm-assist-renderer .axm-assist-renderer__retry-description{margin:0;font-size:.8125rem;line-height:1.5;opacity:.92}.axm-assist-renderer .axm-assist-renderer__retry-error-detail{margin:.15rem 0 0;font-size:.75rem;line-height:1.45;font-family:var(--ax-font-mono, ui-monospace, monospace);word-break:break-word;opacity:.88}.axm-assist-renderer .axm-assist-renderer__retry-action{flex-shrink:0;align-self:center}.axm-assist-bot,.axm-assist-bot .axm-assist-bot__final-line{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.axm-assist-bot .axm-assist-bot__segment{unicode-bidi:isolate;font-size:.95rem;line-height:1.8;letter-spacing:.002em;color:rgb(var(--ax-sys-color-on-surface));text-wrap:pretty}.axm-assist-bot .axm-assist-bot__segment:has(axm-chat-user-form-renderer){inline-size:100%;max-inline-size:100%}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer{display:block}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer :is(p,ul,ol){margin-block:.45rem}.axm-assist-bot .axm-assist-bot__segment ax-conversation-text-renderer li{line-height:1.8}.axm-assist-bot .axm-assist-bot__line--user{align-self:flex-end}.axm-assist-bot .axm-assist-bot__line--tool-role{align-self:stretch}.axm-assist-bot .axm-assist-bot__tool-result{border-radius:var(--radius-lg, .5rem);background:rgb(var(--ax-sys-color-lighter-surface));padding:.5rem .75rem}.axm-assist-bot .axm-assist-bot__fallback{font-size:.88rem;line-height:1.75;word-break:break-word;opacity:.9}@keyframes axm-blink{0%{opacity:1}50%{opacity:0}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n", "@layer properties;.axm-delegated-transcript{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);min-inline-size:0}.axm-delegated-transcript .axm-delegated-transcript__empty{margin:0;border-radius:var(--radius-lg, .5rem);padding:calc(var(--spacing, .25rem) * 6);text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-neutral-600));background:rgb(var(--ax-sys-color-lighter-surface))}.axm-delegated-transcript .axm-delegated-transcript__lines{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);overflow-y:auto;padding:calc(var(--spacing, .25rem) * 4);max-block-size:min(75vh,42rem)}.axm-delegated-transcript .axm-delegated-transcript__line-collapse{display:flex;flex-direction:column;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-lighter-surface));padding:.35rem .65rem .65rem}.axm-delegated-transcript .axm-delegated-transcript__line-collapse--user{background:rgb(var(--ax-sys-color-primary-500))}@supports (color: color-mix(in lab,red,red)){.axm-delegated-transcript .axm-delegated-transcript__line-collapse--user{background:color-mix(in srgb,rgb(var(--ax-sys-color-primary-500)) 5%,rgb(var(--ax-sys-color-lighter-surface)))}}.axm-delegated-transcript .axm-delegated-transcript__line-collapse--assistant{background:rgb(var(--ax-sys-color-lightest-surface))}.axm-delegated-transcript .axm-delegated-transcript__line-summary{display:flex;cursor:pointer;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);padding:.35rem .15rem;list-style:none}.axm-delegated-transcript .axm-delegated-transcript__line-summary::-webkit-details-marker{display:none}.axm-delegated-transcript .axm-delegated-transcript__line-summary:before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease}.axm-delegated-transcript .axm-delegated-transcript__line-collapse[open]>.axm-delegated-transcript__line-summary:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__line{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2.5);padding:.75rem .85rem;border-radius:.75rem;border:1px solid rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-lighter-surface))}.axm-delegated-transcript .axm-delegated-transcript__line--user{background:rgb(var(--ax-sys-color-primary-500))}@supports (color: color-mix(in lab,red,red)){.axm-delegated-transcript .axm-delegated-transcript__line--user{background:color-mix(in srgb,rgb(var(--ax-sys-color-primary-500)) 5%,rgb(var(--ax-sys-color-lighter-surface)))}}.axm-delegated-transcript .axm-delegated-transcript__line--assistant{background:rgb(var(--ax-sys-color-lightest-surface))}.axm-delegated-transcript .axm-delegated-transcript__role{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axm-delegated-transcript .axm-delegated-transcript__role-pill{display:inline-flex;align-items:center;border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;padding:.2rem .55rem;font-size:.625rem;letter-spacing:.05em;color:rgb(var(--ax-sys-color-on-primary-light-surface));background:rgb(var(--ax-sys-color-primary-100))}.axm-delegated-transcript .axm-delegated-transcript__reflection-badge{border-radius:calc(infinity * 1px);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);padding:.125rem .45rem;font-size:.625rem;color:rgb(var(--ax-sys-color-on-warning-light-surface));background:rgb(var(--ax-sys-color-warning-100))}.axm-delegated-transcript .axm-delegated-transcript__name{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-neutral-600))}.axm-delegated-transcript .axm-delegated-transcript__segments{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-inline-start:.35rem}.axm-delegated-transcript .axm-delegated-transcript__section-collapse,.axm-delegated-transcript .axm-delegated-transcript__tool-collapse{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.35rem .5rem}.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing, .25rem) * 2);list-style:none;padding:.2rem .15rem}:is(.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header)::-webkit-details-marker{display:none}:is(.axm-delegated-transcript .axm-delegated-transcript__section-summary,.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header):before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.5625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease;flex-shrink:0}.axm-delegated-transcript .axm-delegated-transcript__section-collapse[open]>.axm-delegated-transcript__section-summary:before,.axm-delegated-transcript .axm-delegated-transcript__tool-collapse[open]>.axm-delegated-transcript__tool-panel-header:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__section-summary{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-neutral-700))}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-body{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-block-start:.35rem;padding-inline-start:.5rem}.axm-delegated-transcript .axm-delegated-transcript__widget-embed{inline-size:100%;max-inline-size:100%;min-block-size:0}.axm-delegated-transcript .axm-delegated-transcript__think{border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.35rem .5rem}.axm-delegated-transcript .axm-delegated-transcript__think-summary{display:flex;cursor:pointer;align-items:center;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);gap:.35rem;font-size:.8125rem;color:rgb(var(--ax-sys-color-on-surface));list-style:none}.axm-delegated-transcript .axm-delegated-transcript__think-summary::-webkit-details-marker{display:none}.axm-delegated-transcript .axm-delegated-transcript__think-summary:before{content:\"\\f054\";font-family:\"Font Awesome 6 Pro\",\"Font Awesome 6 Free\",sans-serif;font-weight:300;font-size:.5625rem;color:rgb(var(--ax-sys-color-neutral-500));transition:transform .15s ease}.axm-delegated-transcript .axm-delegated-transcript__think[open]>.axm-delegated-transcript__think-summary:before{transform:rotate(90deg)}.axm-delegated-transcript .axm-delegated-transcript__tool-panel{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgb(var(--ax-sys-color-border-lighter-surface));background:rgb(var(--ax-sys-color-light-surface));padding:.65rem .75rem}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-header{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axm-delegated-transcript .axm-delegated-transcript__tool-panel-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}.axm-delegated-transcript .axm-delegated-transcript__prompt{border-radius:var(--radius-md, .375rem);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));padding:.5rem .6rem;background:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-surface));white-space:pre-wrap;word-break:break-word}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXConversationTextRendererComponent, selector: "ax-conversation-text-renderer", inputs: ["message"] }, { kind: "component", type: AXMNodeMessageRendererComponent, selector: "axm-chat-user-form-renderer", inputs: ["message", "node"], outputs: ["formSubmitted"] }, { kind: "component", type: AXMAssistBotFileLineComponent, selector: "axm-assist-bot-file-line", inputs: ["parentMessage", "fileId"] }, { kind: "component", type: AXMAssistSuggestionChipsComponent, selector: "axm-assist-suggestion-chips", inputs: ["items", "compact", "sendInPlace", "disabled"], outputs: ["conversationCreated"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i5.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "component", type: AXPMarkdownViewerComponent, selector: "axp-markdown-viewer", inputs: ["markdown"] }, { kind: "directive", type: AXPMarkdownTemplateDirective, selector: "ng-template[axpMarkdownTemplate]", inputs: ["axpMarkdownTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
391
391
|
}
|
|
392
392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssistDelegatedAgentTranscriptViewComponent, decorators: [{
|
|
393
393
|
type: Component,
|
|
@@ -448,7 +448,7 @@ class AXMAssistDelegatedAgentDetailPopupComponent extends AXBasePageComponent {
|
|
|
448
448
|
</ax-suffix>
|
|
449
449
|
</ax-footer>
|
|
450
450
|
</div>
|
|
451
|
-
`, isInline: true, styles: [".axm-assist-delegated-detail-popup{display:flex;flex-direction:column;gap:1rem;min-block-size:0}.axm-assist-delegated-detail-popup ax-footer ax-suffix{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: AXMAssistDelegatedAgentTranscriptViewComponent, selector: "axm-assist-delegated-agent-transcript-view", inputs: ["messages", "embedParent", "emptyHint", "agentTitleById"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$
|
|
451
|
+
`, isInline: true, styles: [".axm-assist-delegated-detail-popup{display:flex;flex-direction:column;gap:1rem;min-block-size:0}.axm-assist-delegated-detail-popup ax-footer ax-suffix{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: AXMAssistDelegatedAgentTranscriptViewComponent, selector: "axm-assist-delegated-agent-transcript-view", inputs: ["messages", "embedParent", "emptyHint", "agentTitleById"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
452
452
|
}
|
|
453
453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssistDelegatedAgentDetailPopupComponent, decorators: [{
|
|
454
454
|
type: Component,
|
|
@@ -489,4 +489,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
489
489
|
}] });
|
|
490
490
|
|
|
491
491
|
export { AXMAssistDelegatedAgentDetailPopupComponent };
|
|
492
|
-
//# sourceMappingURL=acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-
|
|
492
|
+
//# sourceMappingURL=acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-Dgs6fpN3.mjs.map
|