@memberjunction/ng-conversations 6.1.0-edge.6 → 6.1.0-edge.7
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/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.js +3 -3
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.js +4 -4
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +16 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +39 -7
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +159 -107
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.d.ts +9 -4
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.js +95 -19
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
- package/dist/lib/services/delegation-result-parser.d.ts +5 -0
- package/dist/lib/services/delegation-result-parser.d.ts.map +1 -1
- package/dist/lib/services/delegation-result-parser.js +12 -0
- package/dist/lib/services/delegation-result-parser.js.map +1 -1
- package/dist/lib/services/realtime-session-review.service.d.ts +31 -1
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session-review.service.js +63 -8
- package/dist/lib/services/realtime-session-review.service.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +15 -8
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +62 -14
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/package.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"input-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":";AAEA,qBAsGa,oBAAoB;IACtB,OAAO,EAAE,MAAM,CAAM;IACrB,UAAU,EAAE,MAAM,CAAM;IACxB,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAU;IAC7D,WAAW,EAAE,MAAM,CAAM;IACzB,QAAQ,EAAE,OAAO,CAAS;IAC1B,KAAK,EAAE,MAAM,CAAM;IACnB,gBAAgB,EAAE,MAAM,CAAM;IAC9B,sBAAsB,EAAE,MAAM,CAAM;IACpC,mBAAmB,EAAE,OAAO,CAAS;IACrC,WAAW,EAAE,MAAM,CAAM;IAElC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAY9B,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;yCA5Bb,oBAAoB;2CAApB,oBAAoB;CA+BhC"}
|
|
@@ -108,7 +108,7 @@ export class InputDialogComponent {
|
|
|
108
108
|
i0.ɵɵconditional(ctx.inputType !== "textarea" ? 8 : -1);
|
|
109
109
|
i0.ɵɵadvance();
|
|
110
110
|
i0.ɵɵconditional(ctx.secondInputLabel ? 9 : -1);
|
|
111
|
-
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: [".input-dialog-content[_ngcontent-%COMP%] {\n padding: 8px
|
|
111
|
+
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: [".input-dialog-content[_ngcontent-%COMP%] {\n \n\n\n\n padding: 4px 20px 8px;\n \n\n box-sizing: border-box;\n }\n .input-dialog-content[_ngcontent-%COMP%] *[_ngcontent-%COMP%] {\n box-sizing: border-box;\n }\n .dialog-message[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n .input-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .input-label[_ngcontent-%COMP%] {\n font-weight: 500;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n .required-mark[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n margin-left: 2px;\n }\n .mj-input[_ngcontent-%COMP%], \n .mj-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-input[_ngcontent-%COMP%]:focus, \n .mj-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n }\n .mj-textarea[_ngcontent-%COMP%] {\n min-height: 80px;\n resize: vertical;\n }"] });
|
|
112
112
|
}
|
|
113
113
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputDialogComponent, [{
|
|
114
114
|
type: Component,
|
|
@@ -154,7 +154,7 @@ export class InputDialogComponent {
|
|
|
154
154
|
</div>
|
|
155
155
|
}
|
|
156
156
|
</div>
|
|
157
|
-
`, styles: ["\n .input-dialog-content {\n padding: 8px
|
|
157
|
+
`, styles: ["\n .input-dialog-content {\n /* MJDialogContainerComponent pads only string content (.mj-dialog-body > p); a component\n body arrives with no horizontal padding at all, so the message, labels and inputs sat flush\n against the dialog edges while the header and footer were padded. Same inset as the sibling\n rating dialog, which already compensates for this. */\n padding: 4px 20px 8px;\n /* Parity with the rating dialog: the Explorer shell's global reset makes this redundant, but a host\n without that reset would let the 100%-wide inputs (padding + border, no local box-sizing) overflow. */\n box-sizing: border-box;\n }\n .input-dialog-content * {\n box-sizing: border-box;\n }\n .dialog-message {\n margin: 0 0 16px 0;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n .input-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .input-label {\n font-weight: 500;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n .required-mark {\n color: var(--mj-status-error);\n margin-left: 2px;\n }\n .mj-input,\n .mj-textarea {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-input:focus,\n .mj-textarea:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n }\n .mj-textarea {\n min-height: 80px;\n resize: vertical;\n }\n "] }]
|
|
158
158
|
}], null, { message: [{
|
|
159
159
|
type: Input
|
|
160
160
|
}], inputLabel: [{
|
|
@@ -176,5 +176,5 @@ export class InputDialogComponent {
|
|
|
176
176
|
}], secondValue: [{
|
|
177
177
|
type: Input
|
|
178
178
|
}] }); })();
|
|
179
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InputDialogComponent, { className: "InputDialogComponent", filePath: "src/lib/components/dialogs/input-dialog.component.ts", lineNumber:
|
|
179
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InputDialogComponent, { className: "InputDialogComponent", filePath: "src/lib/components/dialogs/input-dialog.component.ts", lineNumber: 105 }); })();
|
|
180
180
|
//# sourceMappingURL=input-dialog.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;IAYrC,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAItC,mCAGsB;IAFpB,ySAAmB;IAGrB,0BAAA;IAAA,iBAAW;;;IAHT,4CAAmB;IACnB,gDAA2B;;;;IAK7B,gCAKuC;IAJrC,sSAAmB;IAInB,6MAAiB,yBAAkB,KAAC;IALtC,iBAKuC;;;IAJrC,4CAAmB;IAEnB,AADA,iDAA4B,mCACD;;;IAUzB,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAHxC,AADF,8BAAyB,eACI;IACzB,YACA;IAAA,qGAA2B;IAG7B,iBAAQ;IACR,mCAGsB;IAFpB,qTAAyB;IAG3B,0BAAA;IACF,AADE,iBAAW,EACP;;;IAVF,eACA;IADA,wDACA;IAAA,cAEC;IAFD,qDAEC;IAGD,cAAyB;IAAzB,kDAAyB;IACzB,2DAAsC;;
|
|
1
|
+
{"version":3,"file":"input-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;IAYrC,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAItC,mCAGsB;IAFpB,ySAAmB;IAGrB,0BAAA;IAAA,iBAAW;;;IAHT,4CAAmB;IACnB,gDAA2B;;;;IAK7B,gCAKuC;IAJrC,sSAAmB;IAInB,6MAAiB,yBAAkB,KAAC;IALtC,iBAKuC;;;IAJrC,4CAAmB;IAEnB,AADA,iDAA4B,mCACD;;;IAUzB,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAHxC,AADF,8BAAyB,eACI;IACzB,YACA;IAAA,qGAA2B;IAG7B,iBAAQ;IACR,mCAGsB;IAFpB,qTAAyB;IAG3B,0BAAA;IACF,AADE,iBAAW,EACP;;;IAVF,eACA;IADA,wDACA;IAAA,cAEC;IAFD,qDAEC;IAGD,cAAyB;IAAzB,kDAAyB;IACzB,2DAAsC;;AA+DlD,MAAM,OAAO,oBAAoB;IACtB,OAAO,GAAW,EAAE,CAAC;IACrB,UAAU,GAAW,EAAE,CAAC;IACxB,SAAS,GAA6C,MAAM,CAAC;IAC7D,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,GAAY,KAAK,CAAC;IAC1B,KAAK,GAAW,EAAE,CAAC;IACnB,gBAAgB,GAAW,EAAE,CAAC;IAC9B,sBAAsB,GAAW,EAAE,CAAC;IACpC,mBAAmB,GAAY,KAAK,CAAC;IACrC,WAAW,GAAW,EAAE,CAAC;IAElC,UAAU,CAAC,KAAY;QACrB,MAAM,QAAQ,GAAG,KAAsB,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,mDAAmD;YACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAsB,CAAC;YACpG,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;8GA9BU,oBAAoB;6DAApB,oBAAoB;YAjG3B,AADF,8BAAkC,WACN;YAAA,YAAa;YAAA,iBAAI;YAEzC,AADF,8BAAyB,eACI;YACzB,YACA;YAAA,uFAAgB;YAGlB,iBAAQ;YACR,2FAAgC;YAOhC,wFAAgC;YAQlC,iBAAM;YACN,sFAAwB;YAe1B,iBAAM;;YAvCsB,eAAa;YAAb,iCAAa;YAGnC,eACA;YADA,+CACA;YAAA,cAEC;YAFD,uCAEC;YAEH,cAMC;YAND,uDAMC;YACD,cAOC;YAPD,uDAOC;YAEH,cAcC;YAdD,+CAcC;;;iFA2DM,oBAAoB;cAtGhC,SAAS;6BACI,KAAK,YACP,iBAAiB,YACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0CP;;kBA0DF,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kFAVK,oBAAoB","sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n standalone: false,\n selector: 'mj-input-dialog',\n template: `\n <div class=\"input-dialog-content\">\n <p class=\"dialog-message\">{{ message }}</p>\n <div class=\"input-field\">\n <label class=\"input-label\">\n {{ inputLabel }}\n @if (required) {\n <span class=\"required-mark\">*</span>\n }\n </label>\n @if (inputType === 'textarea') {\n <textarea\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n class=\"mj-textarea\">\n </textarea>\n }\n @if (inputType !== 'textarea') {\n <input\n [(ngModel)]=\"value\"\n [type]=\"inputType || 'text'\"\n [placeholder]=\"placeholder\"\n class=\"mj-input\"\n (keydown.enter)=\"onEnterKey($event)\">\n }\n </div>\n @if (secondInputLabel) {\n <div class=\"input-field\">\n <label class=\"input-label\">\n {{ secondInputLabel }}\n @if (secondInputRequired) {\n <span class=\"required-mark\">*</span>\n }\n </label>\n <textarea\n [(ngModel)]=\"secondValue\"\n [placeholder]=\"secondInputPlaceholder\"\n class=\"mj-textarea\">\n </textarea>\n </div>\n }\n </div>\n `,\n styles: [`\n .input-dialog-content {\n /* MJDialogContainerComponent pads only string content (.mj-dialog-body > p); a component\n body arrives with no horizontal padding at all, so the message, labels and inputs sat flush\n against the dialog edges while the header and footer were padded. Same inset as the sibling\n rating dialog, which already compensates for this. */\n padding: 4px 20px 8px;\n /* Parity with the rating dialog: the Explorer shell's global reset makes this redundant, but a host\n without that reset would let the 100%-wide inputs (padding + border, no local box-sizing) overflow. */\n box-sizing: border-box;\n }\n .input-dialog-content * {\n box-sizing: border-box;\n }\n .dialog-message {\n margin: 0 0 16px 0;\n color: var(--mj-text-primary);\n font-size: 14px;\n }\n .input-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .input-label {\n font-weight: 500;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n .required-mark {\n color: var(--mj-status-error);\n margin-left: 2px;\n }\n .mj-input,\n .mj-textarea {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-input:focus,\n .mj-textarea:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n }\n .mj-textarea {\n min-height: 80px;\n resize: vertical;\n }\n `]\n})\nexport class InputDialogComponent {\n @Input() message: string = '';\n @Input() inputLabel: string = '';\n @Input() inputType: 'text' | 'textarea' | 'number' | 'email' = 'text';\n @Input() placeholder: string = '';\n @Input() required: boolean = false;\n @Input() value: string = '';\n @Input() secondInputLabel: string = '';\n @Input() secondInputPlaceholder: string = '';\n @Input() secondInputRequired: boolean = false;\n @Input() secondValue: string = '';\n\n onEnterKey(event: Event): void {\n const keyEvent = event as KeyboardEvent;\n if (this.inputType !== 'textarea') {\n keyEvent.preventDefault();\n // Trigger OK/primary button click in the MJ dialog\n const okButton = document.querySelector('.mj-dialog-actions .mj-btn--primary') as HTMLButtonElement;\n if (okButton) {\n okButton.click();\n }\n }\n }\n\n getValue(): string {\n return this.value.trim();\n }\n\n getSecondValue(): string {\n return this.secondValue.trim();\n }\n}\n"]}
|
|
@@ -44,7 +44,7 @@ function MessageInputComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
|
44
44
|
i0.ɵɵelementEnd();
|
|
45
45
|
} if (rf & 2) {
|
|
46
46
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
47
|
-
i0.ɵɵproperty("Provider", ctx_r0.
|
|
47
|
+
i0.ɵɵproperty("Provider", ctx_r0.ProviderToUse)("CurrentUser", ctx_r0.currentUser)("Agents", ctx_r0.voicePickerAgents)("DefaultAgentId", ctx_r0.voicePickerDefaultAgentId)("CoAgents", ctx_r0.voicePickerCoAgents)("DefaultCoAgentId", ctx_r0.voicePickerDefaultCoAgentId);
|
|
48
48
|
} }
|
|
49
49
|
export class MessageInputComponent extends BaseAngularComponent {
|
|
50
50
|
dialogService;
|
|
@@ -2482,13 +2482,13 @@ export class MessageInputComponent extends BaseAngularComponent {
|
|
|
2482
2482
|
} if (rf & 2) {
|
|
2483
2483
|
let _t;
|
|
2484
2484
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputBox = _t.first);
|
|
2485
|
-
} }, inputs: { conversationId: "conversationId", conversationName: "conversationName", currentUser: "currentUser", disabled: "disabled", placeholder: "placeholder", parentMessageId: "parentMessageId", enableAttachments: "enableAttachments", enableMentions: "enableMentions", enableAgentMentions: "enableAgentMentions", enableEntityMentions: "enableEntityMentions", enableSkillCommands: "enableSkillCommands", enablePlanMode: "enablePlanMode", enableRealtime: "enableRealtime", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", artifactsByDetailId: "artifactsByDetailId", systemArtifactsByDetailId: "systemArtifactsByDetailId", agentRunsByDetailId: "agentRunsByDetailId", emptyStateMode: "emptyStateMode", appContext: "appContext", defaultAgentId: "defaultAgentId", conversationDefaultAgentId: "conversationDefaultAgentId", agentConfigurationPresetId: "agentConfigurationPresetId", initialMessage: "initialMessage", initialAttachments: "initialAttachments", conversationHistory: "conversationHistory", inProgressMessageIds: "inProgressMessageIds", applicationId: "applicationId", initialDraft: "initialDraft" }, outputs: { messageSent: "messageSent", agentResponse: "agentResponse", beforeAgentTurn: "beforeAgentTurn", afterAgentTurn: "afterAgentTurn", agentRunDetected: "agentRunDetected", agentRunUpdate: "agentRunUpdate", messageComplete: "messageComplete", artifactCreated: "artifactCreated", conversationRenamed: "conversationRenamed", intentCheckStarted: "intentCheckStarted", intentCheckCompleted: "intentCheckCompleted", initialMessageAutoSendStarted: "initialMessageAutoSendStarted", initialMessageAutoSendFailed: "initialMessageAutoSendFailed", emptyStateSubmit: "emptyStateSubmit", uploadStateChanged: "uploadStateChanged", initialDraftApplied: "initialDraftApplied", DraftStateChanged: "DraftStateChanged", ComposerBlurred: "ComposerBlurred" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 6, vars: 27, consts: [["pickerOrigin", "cdkOverlayOrigin"], ["inputBox", ""], ["cdkOverlayOrigin", "", 1, "message-input-wrapper"], [1, "processing-indicator"], [3, "valueChange", "blurred", "textSubmitted", "attachmentsChanged", "attachmentError", "voiceRequested", "voiceOptionsRequested", "planModeToggle", "placeholder", "disabled", "showCharacterCount", "enableMentions", "EnableAgentMentions", "EnableEntityMentions", "EnableSkillCommands", "TargetAgentId", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes", "currentUser", "Provider", "rows", "enableRealtime", "voiceActive", "canStartRealtime", "enablePlanMode", "planModeActive", "value"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPush", "cdkConnectedOverlayHasBackdrop"], [1, "fas", "fa-circle-notch", "fa-spin"], [3, "AgentPicked", "Cancelled", "Provider", "Agents", "DefaultAgentId", "CoAgents", "DefaultCoAgentId"]], template: function MessageInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2485
|
+
} }, inputs: { conversationId: "conversationId", conversationName: "conversationName", currentUser: "currentUser", disabled: "disabled", placeholder: "placeholder", parentMessageId: "parentMessageId", enableAttachments: "enableAttachments", enableMentions: "enableMentions", enableAgentMentions: "enableAgentMentions", enableEntityMentions: "enableEntityMentions", enableSkillCommands: "enableSkillCommands", enablePlanMode: "enablePlanMode", enableRealtime: "enableRealtime", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", artifactsByDetailId: "artifactsByDetailId", systemArtifactsByDetailId: "systemArtifactsByDetailId", agentRunsByDetailId: "agentRunsByDetailId", emptyStateMode: "emptyStateMode", appContext: "appContext", defaultAgentId: "defaultAgentId", conversationDefaultAgentId: "conversationDefaultAgentId", agentConfigurationPresetId: "agentConfigurationPresetId", initialMessage: "initialMessage", initialAttachments: "initialAttachments", conversationHistory: "conversationHistory", inProgressMessageIds: "inProgressMessageIds", applicationId: "applicationId", initialDraft: "initialDraft" }, outputs: { messageSent: "messageSent", agentResponse: "agentResponse", beforeAgentTurn: "beforeAgentTurn", afterAgentTurn: "afterAgentTurn", agentRunDetected: "agentRunDetected", agentRunUpdate: "agentRunUpdate", messageComplete: "messageComplete", artifactCreated: "artifactCreated", conversationRenamed: "conversationRenamed", intentCheckStarted: "intentCheckStarted", intentCheckCompleted: "intentCheckCompleted", initialMessageAutoSendStarted: "initialMessageAutoSendStarted", initialMessageAutoSendFailed: "initialMessageAutoSendFailed", emptyStateSubmit: "emptyStateSubmit", uploadStateChanged: "uploadStateChanged", initialDraftApplied: "initialDraftApplied", DraftStateChanged: "DraftStateChanged", ComposerBlurred: "ComposerBlurred" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 6, vars: 27, consts: [["pickerOrigin", "cdkOverlayOrigin"], ["inputBox", ""], ["cdkOverlayOrigin", "", 1, "message-input-wrapper"], [1, "processing-indicator"], [3, "valueChange", "blurred", "textSubmitted", "attachmentsChanged", "attachmentError", "voiceRequested", "voiceOptionsRequested", "planModeToggle", "placeholder", "disabled", "showCharacterCount", "enableMentions", "EnableAgentMentions", "EnableEntityMentions", "EnableSkillCommands", "TargetAgentId", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes", "currentUser", "Provider", "rows", "enableRealtime", "voiceActive", "canStartRealtime", "enablePlanMode", "planModeActive", "value"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPush", "cdkConnectedOverlayHasBackdrop"], [1, "fas", "fa-circle-notch", "fa-spin"], [3, "AgentPicked", "Cancelled", "Provider", "CurrentUser", "Agents", "DefaultAgentId", "CoAgents", "DefaultCoAgentId"]], template: function MessageInputComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2486
2486
|
i0.ɵɵelementStart(0, "div", 2, 0);
|
|
2487
2487
|
i0.ɵɵconditionalCreate(2, MessageInputComponent_Conditional_2_Template, 4, 1, "div", 3);
|
|
2488
2488
|
i0.ɵɵelementStart(3, "mj-ai-composer", 4, 1);
|
|
2489
2489
|
i0.ɵɵlistener("valueChange", function MessageInputComponent_Template_mj_ai_composer_valueChange_3_listener($event) { return ctx.OnComposerValueChanged($event); })("blurred", function MessageInputComponent_Template_mj_ai_composer_blurred_3_listener() { return ctx.ComposerBlurred.emit(); })("textSubmitted", function MessageInputComponent_Template_mj_ai_composer_textSubmitted_3_listener($event) { return ctx.onTextSubmitted($event); })("attachmentsChanged", function MessageInputComponent_Template_mj_ai_composer_attachmentsChanged_3_listener($event) { return ctx.onAttachmentsChanged($event); })("attachmentError", function MessageInputComponent_Template_mj_ai_composer_attachmentError_3_listener($event) { return ctx.onAttachmentError($event); })("voiceRequested", function MessageInputComponent_Template_mj_ai_composer_voiceRequested_3_listener() { return ctx.onStartRealtime(); })("voiceOptionsRequested", function MessageInputComponent_Template_mj_ai_composer_voiceOptionsRequested_3_listener() { return ctx.onRealtimeOptions(); })("planModeToggle", function MessageInputComponent_Template_mj_ai_composer_planModeToggle_3_listener() { return ctx.TogglePlanMode(); });
|
|
2490
2490
|
i0.ɵɵelementEnd();
|
|
2491
|
-
i0.ɵɵtemplate(5, MessageInputComponent_ng_template_5_Template, 1,
|
|
2491
|
+
i0.ɵɵtemplate(5, MessageInputComponent_ng_template_5_Template, 1, 6, "ng-template", 5);
|
|
2492
2492
|
i0.ɵɵlistener("backdropClick", function MessageInputComponent_Template_ng_template_backdropClick_5_listener() { return ctx.onRealtimeAgentPickerCancelled(); })("detach", function MessageInputComponent_Template_ng_template_detach_5_listener() { return ctx.onRealtimeAgentPickerCancelled(); });
|
|
2493
2493
|
i0.ɵɵelementEnd();
|
|
2494
2494
|
} if (rf & 2) {
|
|
@@ -2503,7 +2503,7 @@ export class MessageInputComponent extends BaseAngularComponent {
|
|
|
2503
2503
|
}
|
|
2504
2504
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MessageInputComponent, [{
|
|
2505
2505
|
type: Component,
|
|
2506
|
-
args: [{ standalone: false, selector: 'mj-message-input', template: "<div class=\"message-input-wrapper\" cdkOverlayOrigin #pickerOrigin=\"cdkOverlayOrigin\">\n <!-- Processing Indicator Overlay -->\n @if (isProcessing) {\n <div class=\"processing-indicator\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>{{ processingMessage }}</span>\n </div>\n }\n\n <!-- AI composer (mic + Plan Mode buttons live in its in-composer toolbar): wraps the\n generic mj-message-input-box with the '@' agent / '#' record / '/' skill trigger\n plugins built in \u2014 all three on by default, preserving the standard chat behavior. -->\n <mj-ai-composer\n #inputBox\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || isProcessing\"\n [showCharacterCount]=\"false\"\n [enableMentions]=\"enableMentions\"\n [EnableAgentMentions]=\"enableAgentMentions\"\n [EnableEntityMentions]=\"enableEntityMentions\"\n [EnableSkillCommands]=\"enableSkillCommands\"\n [TargetAgentId]=\"pickerTargetAgentId\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n [currentUser]=\"currentUser\"\n [Provider]=\"Provider\"\n [rows]=\"3\"\n [enableRealtime]=\"enableRealtime\"\n [voiceActive]=\"voiceActive\"\n [canStartRealtime]=\"canStartRealtime\"\n [enablePlanMode]=\"enablePlanMode\"\n [planModeActive]=\"PlanModeEnabled\"\n [value]=\"messageText\"\n (valueChange)=\"OnComposerValueChanged($event)\"\n (blurred)=\"ComposerBlurred.emit()\"\n (textSubmitted)=\"onTextSubmitted($event)\"\n (attachmentsChanged)=\"onAttachmentsChanged($event)\"\n (attachmentError)=\"onAttachmentError($event)\"\n (voiceRequested)=\"onStartRealtime()\"\n (voiceOptionsRequested)=\"onRealtimeOptions()\"\n (planModeToggle)=\"TogglePlanMode()\">\n </mj-ai-composer>\n\n <!-- Voice agent/co-agent/model picker \u2014 shown when starting a call on a conversation\n with NO prior agent participation, or on demand via the caret next to the phone\n button (any conversation). Rendered in a body-level CDK overlay anchored above the\n composer so it POPS OUT of the chat overlay's clipping border instead of being cut\n off at the top of a narrow (~390px) overlay. -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"pickerOrigin\"\n [cdkConnectedOverlayOpen]=\"showRealtimeAgentPicker\"\n [cdkConnectedOverlayPositions]=\"pickerOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"onRealtimeAgentPickerCancelled()\"\n (detach)=\"onRealtimeAgentPickerCancelled()\">\n <mj-realtime-agent-picker\n [Provider]=\"
|
|
2506
|
+
args: [{ standalone: false, selector: 'mj-message-input', template: "<div class=\"message-input-wrapper\" cdkOverlayOrigin #pickerOrigin=\"cdkOverlayOrigin\">\n <!-- Processing Indicator Overlay -->\n @if (isProcessing) {\n <div class=\"processing-indicator\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>{{ processingMessage }}</span>\n </div>\n }\n\n <!-- AI composer (mic + Plan Mode buttons live in its in-composer toolbar): wraps the\n generic mj-message-input-box with the '@' agent / '#' record / '/' skill trigger\n plugins built in \u2014 all three on by default, preserving the standard chat behavior. -->\n <mj-ai-composer\n #inputBox\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || isProcessing\"\n [showCharacterCount]=\"false\"\n [enableMentions]=\"enableMentions\"\n [EnableAgentMentions]=\"enableAgentMentions\"\n [EnableEntityMentions]=\"enableEntityMentions\"\n [EnableSkillCommands]=\"enableSkillCommands\"\n [TargetAgentId]=\"pickerTargetAgentId\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n [currentUser]=\"currentUser\"\n [Provider]=\"Provider\"\n [rows]=\"3\"\n [enableRealtime]=\"enableRealtime\"\n [voiceActive]=\"voiceActive\"\n [canStartRealtime]=\"canStartRealtime\"\n [enablePlanMode]=\"enablePlanMode\"\n [planModeActive]=\"PlanModeEnabled\"\n [value]=\"messageText\"\n (valueChange)=\"OnComposerValueChanged($event)\"\n (blurred)=\"ComposerBlurred.emit()\"\n (textSubmitted)=\"onTextSubmitted($event)\"\n (attachmentsChanged)=\"onAttachmentsChanged($event)\"\n (attachmentError)=\"onAttachmentError($event)\"\n (voiceRequested)=\"onStartRealtime()\"\n (voiceOptionsRequested)=\"onRealtimeOptions()\"\n (planModeToggle)=\"TogglePlanMode()\">\n </mj-ai-composer>\n\n <!-- Voice agent/co-agent/model picker \u2014 shown when starting a call on a conversation\n with NO prior agent participation, or on demand via the caret next to the phone\n button (any conversation). Rendered in a body-level CDK overlay anchored above the\n composer so it POPS OUT of the chat overlay's clipping border instead of being cut\n off at the top of a narrow (~390px) overlay. -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"pickerOrigin\"\n [cdkConnectedOverlayOpen]=\"showRealtimeAgentPicker\"\n [cdkConnectedOverlayPositions]=\"pickerOverlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"onRealtimeAgentPickerCancelled()\"\n (detach)=\"onRealtimeAgentPickerCancelled()\">\n <mj-realtime-agent-picker\n [Provider]=\"ProviderToUse\"\n [CurrentUser]=\"currentUser\"\n [Agents]=\"voicePickerAgents\"\n [DefaultAgentId]=\"voicePickerDefaultAgentId\"\n [CoAgents]=\"voicePickerCoAgents\"\n [DefaultCoAgentId]=\"voicePickerDefaultCoAgentId\"\n (AgentPicked)=\"onRealtimeAgentPicked($event)\"\n (Cancelled)=\"onRealtimeAgentPickerCancelled()\">\n </mj-realtime-agent-picker>\n </ng-template>\n</div>\n\n<!-- The voice \"call mode\" overlay is hosted by <mj-conversation-chat-area> (it fills the\n whole conversation panel in place); this component only owns the trigger wiring. -->\n", styles: [".message-input-wrapper {\n position: relative;\n width: 100%;\n}\n\n/* Plan Mode moved into the in-composer toolbar (message-input-box) as a toggle icon button\n next to the attachment/voice buttons \u2014 see .plan-mode-button-icon there. */\n\n.processing-indicator {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1.25rem;\n background: color-mix(in srgb, var(--mj-bg-surface-card) 95%, transparent);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-sm);\n z-index: 10;\n pointer-events: none;\n}\n.processing-indicator i {\n color: var(--mj-brand-primary);\n}\n.processing-indicator span {\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n}\n"] }]
|
|
2507
2507
|
}], () => [{ type: i1.DialogService }, { type: i2.ToastService }, { type: i3.ConversationAgentService }, { type: i4.DataCacheService }, { type: i5.ActiveTasksService }, { type: i6.ConversationStreamingService }, { type: i7.MentionParserService }, { type: i8.ConversationAttachmentService }, { type: i9.ConversationBridgeService }, { type: i10.RealtimeSessionService }], { conversationId: [{
|
|
2508
2508
|
type: Input
|
|
2509
2509
|
}], conversationName: [{
|