@copilotkitnext/angular 0.0.1 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +248 -0
- package/dist/README.md +248 -0
- package/dist/components/chat/copilot-chat-assistant-message.component.d.ts +10 -10
- package/dist/components/chat/copilot-chat-message-view.component.d.ts +42 -42
- package/dist/components/chat/copilot-chat-view.component.d.ts +14 -14
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-buttons.component.mjs +384 -0
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-renderer.component.mjs +286 -0
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-toolbar.component.mjs +27 -0
- package/dist/esm2022/components/chat/copilot-chat-assistant-message.component.mjs +433 -0
- package/dist/esm2022/components/chat/copilot-chat-assistant-message.types.mjs +2 -0
- package/dist/esm2022/components/chat/copilot-chat-audio-recorder.component.mjs +202 -0
- package/dist/esm2022/components/chat/copilot-chat-buttons.component.mjs +321 -0
- package/dist/esm2022/components/chat/copilot-chat-input-defaults.mjs +38 -0
- package/dist/esm2022/components/chat/copilot-chat-input.component.mjs +666 -0
- package/dist/esm2022/components/chat/copilot-chat-input.types.mjs +10 -0
- package/dist/esm2022/components/chat/copilot-chat-message-view-cursor.component.mjs +45 -0
- package/dist/esm2022/components/chat/copilot-chat-message-view.component.mjs +296 -0
- package/dist/esm2022/components/chat/copilot-chat-message-view.types.mjs +2 -0
- package/dist/esm2022/components/chat/copilot-chat-textarea.component.mjs +188 -0
- package/dist/esm2022/components/chat/copilot-chat-tool-calls-view.component.mjs +216 -0
- package/dist/esm2022/components/chat/copilot-chat-toolbar.component.mjs +25 -0
- package/dist/esm2022/components/chat/copilot-chat-tools-menu.component.mjs +199 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message-branch-navigation.component.mjs +137 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message-buttons.component.mjs +207 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message-renderer.component.mjs +35 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message-toolbar.component.mjs +34 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message.component.mjs +341 -0
- package/dist/esm2022/components/chat/copilot-chat-user-message.types.mjs +2 -0
- package/dist/esm2022/components/chat/copilot-chat-view-disclaimer.component.mjs +52 -0
- package/dist/esm2022/components/chat/copilot-chat-view-feather.component.mjs +55 -0
- package/dist/esm2022/components/chat/copilot-chat-view-handlers.service.mjs +19 -0
- package/dist/esm2022/components/chat/copilot-chat-view-input-container.component.mjs +110 -0
- package/dist/esm2022/components/chat/copilot-chat-view-scroll-to-bottom-button.component.mjs +93 -0
- package/dist/esm2022/components/chat/copilot-chat-view-scroll-view.component.mjs +443 -0
- package/dist/esm2022/components/chat/copilot-chat-view.component.mjs +479 -0
- package/dist/esm2022/components/chat/copilot-chat-view.types.mjs +2 -0
- package/dist/esm2022/components/chat/copilot-chat.component.mjs +214 -0
- package/dist/esm2022/components/copilotkit-tool-render.component.mjs +153 -0
- package/dist/esm2022/copilotkitnext-angular.mjs +5 -0
- package/dist/esm2022/core/chat-configuration/chat-configuration.providers.mjs +65 -0
- package/dist/esm2022/core/chat-configuration/chat-configuration.service.mjs +145 -0
- package/dist/esm2022/core/chat-configuration/chat-configuration.types.mjs +26 -0
- package/dist/esm2022/core/copilotkit.providers.mjs +34 -0
- package/dist/esm2022/core/copilotkit.service.mjs +430 -0
- package/dist/esm2022/core/copilotkit.types.mjs +12 -0
- package/dist/esm2022/directives/copilotkit-agent-context.directive.mjs +130 -0
- package/dist/esm2022/directives/copilotkit-agent.directive.mjs +217 -0
- package/dist/esm2022/directives/copilotkit-chat-config.directive.mjs +218 -0
- package/dist/esm2022/directives/copilotkit-config.directive.mjs +94 -0
- package/dist/esm2022/directives/copilotkit-frontend-tool.directive.mjs +130 -0
- package/dist/esm2022/directives/copilotkit-human-in-the-loop.directive.mjs +266 -0
- package/dist/esm2022/directives/stick-to-bottom.directive.mjs +181 -0
- package/dist/esm2022/index.mjs +70 -0
- package/dist/esm2022/lib/directives/tooltip.directive.mjs +211 -0
- package/dist/esm2022/lib/slots/copilot-slot.component.mjs +144 -0
- package/dist/esm2022/lib/slots/slot.types.mjs +6 -0
- package/dist/esm2022/lib/slots/slot.utils.mjs +222 -0
- package/dist/esm2022/lib/utils.mjs +10 -0
- package/dist/esm2022/services/resize-observer.service.mjs +152 -0
- package/dist/esm2022/services/scroll-position.service.mjs +124 -0
- package/dist/esm2022/types/frontend-tool.mjs +2 -0
- package/dist/esm2022/types/human-in-the-loop.mjs +2 -0
- package/dist/esm2022/utils/agent-context.utils.mjs +114 -0
- package/dist/esm2022/utils/agent.utils.mjs +204 -0
- package/dist/esm2022/utils/chat-config.utils.mjs +186 -0
- package/dist/esm2022/utils/copilotkit.utils.mjs +20 -0
- package/dist/esm2022/utils/frontend-tool.utils.mjs +228 -0
- package/dist/esm2022/utils/human-in-the-loop.utils.mjs +296 -0
- package/dist/fesm2022/copilotkitnext-angular.mjs +163 -164
- package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
- package/dist/styles.css +0 -27
- package/package.json +23 -20
- package/vitest.config.mts +32 -21
- package/.turbo/turbo-build.log +0 -39
- package/.turbo/turbo-check-types.log +0 -0
- package/.turbo/turbo-test.log +0 -71
- package/README-agent-context.md +0 -310
- package/ng-package.json +0 -19
- package/slots.md +0 -331
- package/src/components/chat/__tests__/copilot-chat-assistant-message.component.spec.ts +0 -282
- package/src/components/chat/__tests__/copilot-chat-input.component.spec.ts +0 -419
- package/src/components/chat/__tests__/copilot-chat-message-view.component.spec.ts +0 -372
- package/src/components/chat/__tests__/copilot-chat-user-message.component.spec.ts +0 -249
- package/src/components/chat/copilot-chat-assistant-message-buttons.component.ts +0 -292
- package/src/components/chat/copilot-chat-assistant-message-renderer.component.ts +0 -472
- package/src/components/chat/copilot-chat-assistant-message-toolbar.component.ts +0 -29
- package/src/components/chat/copilot-chat-assistant-message.component.ts +0 -463
- package/src/components/chat/copilot-chat-assistant-message.types.ts +0 -50
- package/src/components/chat/copilot-chat-audio-recorder.component.ts +0 -241
- package/src/components/chat/copilot-chat-buttons.component.ts +0 -308
- package/src/components/chat/copilot-chat-buttons.component.ts.bak +0 -471
- package/src/components/chat/copilot-chat-input-defaults.ts +0 -47
- package/src/components/chat/copilot-chat-input.component.ts +0 -512
- package/src/components/chat/copilot-chat-input.types.ts +0 -148
- package/src/components/chat/copilot-chat-message-view-cursor.component.ts +0 -51
- package/src/components/chat/copilot-chat-message-view.component.ts +0 -233
- package/src/components/chat/copilot-chat-message-view.types.ts +0 -39
- package/src/components/chat/copilot-chat-textarea.component.ts +0 -220
- package/src/components/chat/copilot-chat-tool-calls-view.component.ts +0 -261
- package/src/components/chat/copilot-chat-toolbar.component.ts +0 -35
- package/src/components/chat/copilot-chat-tools-menu.component.ts +0 -185
- package/src/components/chat/copilot-chat-user-message-branch-navigation.component.ts +0 -121
- package/src/components/chat/copilot-chat-user-message-buttons.component.ts +0 -170
- package/src/components/chat/copilot-chat-user-message-renderer.component.ts +0 -37
- package/src/components/chat/copilot-chat-user-message-toolbar.component.ts +0 -37
- package/src/components/chat/copilot-chat-user-message.component.ts +0 -247
- package/src/components/chat/copilot-chat-user-message.types.ts +0 -42
- package/src/components/chat/copilot-chat-view-disclaimer.component.ts +0 -51
- package/src/components/chat/copilot-chat-view-feather.component.ts +0 -47
- package/src/components/chat/copilot-chat-view-handlers.service.ts +0 -14
- package/src/components/chat/copilot-chat-view-input-container.component.ts +0 -87
- package/src/components/chat/copilot-chat-view-scroll-to-bottom-button.component.ts +0 -79
- package/src/components/chat/copilot-chat-view-scroll-view.component.ts +0 -322
- package/src/components/chat/copilot-chat-view.component.ts +0 -420
- package/src/components/chat/copilot-chat-view.types.ts +0 -52
- package/src/components/chat/copilot-chat.component.ts +0 -232
- package/src/components/copilotkit-tool-render.component.ts +0 -169
- package/src/core/__tests__/copilotkit.service.spec.ts +0 -1051
- package/src/core/__tests__/copilotkit.service.wildcard.spec.ts +0 -316
- package/src/core/chat-configuration/__tests__/chat-configuration.service.spec.ts +0 -287
- package/src/core/chat-configuration/chat-configuration.providers.ts +0 -71
- package/src/core/chat-configuration/chat-configuration.service.ts +0 -162
- package/src/core/chat-configuration/chat-configuration.types.ts +0 -57
- package/src/core/copilotkit.providers.ts +0 -59
- package/src/core/copilotkit.service.ts +0 -542
- package/src/core/copilotkit.types.ts +0 -132
- package/src/directives/__tests__/copilotkit-agent-context.directive.spec.ts +0 -384
- package/src/directives/__tests__/copilotkit-agent.directive.spec.ts +0 -253
- package/src/directives/__tests__/copilotkit-chat-config.directive.spec.ts +0 -385
- package/src/directives/__tests__/copilotkit-config.directive.spec.ts +0 -69
- package/src/directives/__tests__/copilotkit-frontend-tool-simple.directive.spec.ts +0 -60
- package/src/directives/__tests__/copilotkit-frontend-tool.directive.spec.ts +0 -108
- package/src/directives/__tests__/copilotkit-human-in-the-loop.directive.spec.ts +0 -452
- package/src/directives/copilotkit-agent-context.directive.ts +0 -138
- package/src/directives/copilotkit-agent.directive.ts +0 -225
- package/src/directives/copilotkit-chat-config.directive.ts +0 -241
- package/src/directives/copilotkit-config.directive.ts +0 -81
- package/src/directives/copilotkit-frontend-tool.directive.ts +0 -145
- package/src/directives/copilotkit-human-in-the-loop.directive.ts +0 -281
- package/src/directives/stick-to-bottom.directive.ts +0 -204
- package/src/index.ts +0 -105
- package/src/lib/directives/tooltip.directive.ts +0 -292
- package/src/lib/slots/__tests__/slot.utils.spec.ts +0 -377
- package/src/lib/slots/copilot-slot.component.ts +0 -135
- package/src/lib/slots/index.ts +0 -3
- package/src/lib/slots/slot.types.ts +0 -64
- package/src/lib/slots/slot.utils.ts +0 -289
- package/src/lib/utils.ts +0 -10
- package/src/public-api.ts +0 -1
- package/src/services/resize-observer.service.ts +0 -181
- package/src/services/scroll-position.service.ts +0 -169
- package/src/styles/globals.css +0 -266
- package/src/styles/index.css +0 -3
- package/src/test-setup.ts +0 -15
- package/src/testing/index.ts +0 -3
- package/src/testing/testing.utils.ts +0 -248
- package/src/types/frontend-tool.ts +0 -44
- package/src/types/human-in-the-loop.ts +0 -52
- package/src/utils/__tests__/agent.utils.spec.ts +0 -234
- package/src/utils/__tests__/chat-config.utils.spec.ts +0 -306
- package/src/utils/__tests__/frontend-tool-inject.spec.ts +0 -350
- package/src/utils/__tests__/frontend-tool-integration.spec.ts +0 -199
- package/src/utils/__tests__/frontend-tool.utils.spec.ts +0 -272
- package/src/utils/__tests__/human-in-the-loop.utils.spec.ts +0 -365
- package/src/utils/agent-context.utils.ts +0 -133
- package/src/utils/agent.utils.ts +0 -239
- package/src/utils/chat-config.utils.ts +0 -221
- package/src/utils/copilotkit.utils.ts +0 -20
- package/src/utils/frontend-tool.utils.ts +0 -266
- package/src/utils/human-in-the-loop.utils.ts +0 -359
- package/tsconfig.spec.json +0 -12
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation, signal, effect, runInInjectionContext, Optional, SkipSelf, } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { CopilotChatViewComponent } from "./copilot-chat-view.component";
|
|
4
|
+
import { CopilotChatConfigurationService } from "../../core/chat-configuration/chat-configuration.service";
|
|
5
|
+
import { COPILOT_CHAT_INITIAL_CONFIG, } from "../../core/chat-configuration/chat-configuration.types";
|
|
6
|
+
import { watchAgent } from "../../utils/agent.utils";
|
|
7
|
+
import { DEFAULT_AGENT_ID, randomUUID } from "@copilotkitnext/shared";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../core/chat-configuration/chat-configuration.service";
|
|
10
|
+
/**
|
|
11
|
+
* CopilotChat component - Angular equivalent of React's <CopilotChat>
|
|
12
|
+
* Provides a complete chat interface that wires an agent to the chat view
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```html
|
|
16
|
+
* <copilot-chat [agentId]="'default'" [threadId]="'abc123'"></copilot-chat>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class CopilotChatComponent {
|
|
20
|
+
chatConfig;
|
|
21
|
+
cdr;
|
|
22
|
+
injector;
|
|
23
|
+
agentId;
|
|
24
|
+
threadId;
|
|
25
|
+
constructor(chatConfig, cdr, injector) {
|
|
26
|
+
this.chatConfig = chatConfig;
|
|
27
|
+
this.cdr = cdr;
|
|
28
|
+
this.injector = injector;
|
|
29
|
+
// Create initial watcher once (constructor is a safe injection context)
|
|
30
|
+
const initialId = this.agentId ?? DEFAULT_AGENT_ID;
|
|
31
|
+
this.createWatcher(initialId);
|
|
32
|
+
// Connect once when agent becomes available
|
|
33
|
+
effect(() => {
|
|
34
|
+
const a = this.agent();
|
|
35
|
+
if (!a)
|
|
36
|
+
return;
|
|
37
|
+
// Apply thread id when agent is available
|
|
38
|
+
a.threadId = this.threadId || this.generatedThreadId;
|
|
39
|
+
if (!this.hasConnectedOnce) {
|
|
40
|
+
this.hasConnectedOnce = true;
|
|
41
|
+
this.connectToAgent(a);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Signals from watchAgent - using direct references instead of assignment
|
|
46
|
+
agent = signal(undefined).asReadonly();
|
|
47
|
+
messages = signal([]).asReadonly();
|
|
48
|
+
isRunning = signal(false).asReadonly();
|
|
49
|
+
showCursor = signal(false);
|
|
50
|
+
generatedThreadId = randomUUID();
|
|
51
|
+
agentWatcher;
|
|
52
|
+
hasConnectedOnce = false;
|
|
53
|
+
lastAgentId;
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.setupChatHandlers();
|
|
56
|
+
}
|
|
57
|
+
ngOnChanges(changes) {
|
|
58
|
+
if (changes["agentId"] && !changes["agentId"].firstChange) {
|
|
59
|
+
const newId = this.agentId ?? DEFAULT_AGENT_ID;
|
|
60
|
+
this.createWatcher(newId);
|
|
61
|
+
}
|
|
62
|
+
if (changes["threadId"] && !changes["threadId"].firstChange) {
|
|
63
|
+
const a = this.agent();
|
|
64
|
+
if (a) {
|
|
65
|
+
a.threadId = this.threadId || this.generatedThreadId;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async connectToAgent(agent) {
|
|
70
|
+
if (!agent)
|
|
71
|
+
return;
|
|
72
|
+
this.showCursor.set(true);
|
|
73
|
+
this.cdr.markForCheck();
|
|
74
|
+
try {
|
|
75
|
+
await agent.runAgent({ forwardedProps: { __copilotkitConnect: true } }, {
|
|
76
|
+
onTextMessageStartEvent: () => {
|
|
77
|
+
this.showCursor.set(false);
|
|
78
|
+
this.cdr.detectChanges();
|
|
79
|
+
},
|
|
80
|
+
onToolCallStartEvent: () => {
|
|
81
|
+
this.showCursor.set(false);
|
|
82
|
+
this.cdr.detectChanges();
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
this.showCursor.set(false);
|
|
86
|
+
this.cdr.markForCheck();
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error("Failed to connect to agent:", error);
|
|
90
|
+
this.showCursor.set(false);
|
|
91
|
+
this.cdr.markForCheck();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
setupChatHandlers() {
|
|
95
|
+
if (!this.chatConfig)
|
|
96
|
+
return;
|
|
97
|
+
// Handle input submission
|
|
98
|
+
this.chatConfig.setSubmitHandler(async (value) => {
|
|
99
|
+
const agent = this.agent();
|
|
100
|
+
if (!agent || !value.trim())
|
|
101
|
+
return;
|
|
102
|
+
// Add user message
|
|
103
|
+
const userMessage = {
|
|
104
|
+
id: randomUUID(),
|
|
105
|
+
role: "user",
|
|
106
|
+
content: value,
|
|
107
|
+
};
|
|
108
|
+
agent.addMessage(userMessage);
|
|
109
|
+
// Clear the input
|
|
110
|
+
this.chatConfig.setInputValue("");
|
|
111
|
+
// Show cursor while processing
|
|
112
|
+
this.showCursor.set(true);
|
|
113
|
+
this.cdr.markForCheck();
|
|
114
|
+
// Run the agent with named subscriber callbacks
|
|
115
|
+
try {
|
|
116
|
+
await agent.runAgent({}, {
|
|
117
|
+
onTextMessageStartEvent: () => {
|
|
118
|
+
this.showCursor.set(false);
|
|
119
|
+
this.cdr.detectChanges();
|
|
120
|
+
},
|
|
121
|
+
onToolCallStartEvent: () => {
|
|
122
|
+
this.showCursor.set(false);
|
|
123
|
+
this.cdr.detectChanges();
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
console.error("Agent run error:", error);
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
this.showCursor.set(false);
|
|
132
|
+
this.cdr.markForCheck();
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
// Handle input value changes (optional)
|
|
136
|
+
this.chatConfig.setChangeHandler(() => {
|
|
137
|
+
// Keep input state if needed
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
ngOnDestroy() {
|
|
141
|
+
if (this.agentWatcher?.unsubscribe) {
|
|
142
|
+
this.agentWatcher.unsubscribe();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
createWatcher(desiredAgentId) {
|
|
146
|
+
// Tear down previous watcher if it exists
|
|
147
|
+
if (this.agentWatcher?.unsubscribe) {
|
|
148
|
+
this.agentWatcher.unsubscribe();
|
|
149
|
+
this.agentWatcher = undefined;
|
|
150
|
+
}
|
|
151
|
+
// Setup watcher for desired agent - ensure injection context
|
|
152
|
+
this.agentWatcher = runInInjectionContext(this.injector, () => watchAgent({ agentId: desiredAgentId }));
|
|
153
|
+
this.agent = this.agentWatcher.agent;
|
|
154
|
+
this.messages = this.agentWatcher.messages;
|
|
155
|
+
this.isRunning = this.agentWatcher.isRunning;
|
|
156
|
+
this.hasConnectedOnce = false;
|
|
157
|
+
this.lastAgentId = desiredAgentId;
|
|
158
|
+
}
|
|
159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatComponent, deps: [{ token: i1.CopilotChatConfigurationService, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatComponent, isStandalone: true, selector: "copilot-chat", inputs: { agentId: "agentId", threadId: "threadId" }, providers: [
|
|
161
|
+
{
|
|
162
|
+
provide: CopilotChatConfigurationService,
|
|
163
|
+
deps: [
|
|
164
|
+
[new Optional(), new SkipSelf(), CopilotChatConfigurationService],
|
|
165
|
+
[new Optional(), COPILOT_CHAT_INITIAL_CONFIG],
|
|
166
|
+
],
|
|
167
|
+
useFactory: (parent, initial) => parent ?? new CopilotChatConfigurationService(initial ?? null),
|
|
168
|
+
},
|
|
169
|
+
], usesOnChanges: true, ngImport: i0, template: `
|
|
170
|
+
<copilot-chat-view
|
|
171
|
+
[messages]="messages()"
|
|
172
|
+
[autoScroll]="true"
|
|
173
|
+
[messageViewClass]="'w-full'"
|
|
174
|
+
[showCursor]="showCursor()"
|
|
175
|
+
>
|
|
176
|
+
</copilot-chat-view>
|
|
177
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: CopilotChatViewComponent, selector: "copilot-chat-view", inputs: ["messages", "autoScroll", "showCursor", "messageViewComponent", "messageViewTemplate", "messageViewClass", "scrollViewComponent", "scrollViewTemplate", "scrollViewClass", "scrollToBottomButtonComponent", "scrollToBottomButtonTemplate", "scrollToBottomButtonClass", "inputComponent", "inputTemplate", "inputContainerComponent", "inputContainerTemplate", "inputContainerClass", "featherComponent", "featherTemplate", "featherClass", "disclaimerComponent", "disclaimerTemplate", "disclaimerClass", "disclaimerText"], outputs: ["assistantMessageThumbsUp", "assistantMessageThumbsDown", "assistantMessageReadAloud", "assistantMessageRegenerate", "userMessageCopy", "userMessageEdit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
178
|
+
}
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatComponent, decorators: [{
|
|
180
|
+
type: Component,
|
|
181
|
+
args: [{
|
|
182
|
+
selector: "copilot-chat",
|
|
183
|
+
standalone: true,
|
|
184
|
+
imports: [CommonModule, CopilotChatViewComponent],
|
|
185
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
186
|
+
encapsulation: ViewEncapsulation.None,
|
|
187
|
+
providers: [
|
|
188
|
+
{
|
|
189
|
+
provide: CopilotChatConfigurationService,
|
|
190
|
+
deps: [
|
|
191
|
+
[new Optional(), new SkipSelf(), CopilotChatConfigurationService],
|
|
192
|
+
[new Optional(), COPILOT_CHAT_INITIAL_CONFIG],
|
|
193
|
+
],
|
|
194
|
+
useFactory: (parent, initial) => parent ?? new CopilotChatConfigurationService(initial ?? null),
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
template: `
|
|
198
|
+
<copilot-chat-view
|
|
199
|
+
[messages]="messages()"
|
|
200
|
+
[autoScroll]="true"
|
|
201
|
+
[messageViewClass]="'w-full'"
|
|
202
|
+
[showCursor]="showCursor()"
|
|
203
|
+
>
|
|
204
|
+
</copilot-chat-view>
|
|
205
|
+
`,
|
|
206
|
+
}]
|
|
207
|
+
}], ctorParameters: () => [{ type: i1.CopilotChatConfigurationService, decorators: [{
|
|
208
|
+
type: Optional
|
|
209
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }], propDecorators: { agentId: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], threadId: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}] } });
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFLTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBSU4scUJBQXFCLEVBQ3JCLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzNHLE9BQU8sRUFDTCwyQkFBMkIsR0FFNUIsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFHdEU7Ozs7Ozs7O0dBUUc7QUE4QkgsTUFBTSxPQUFPLG9CQUFvQjtJQUtUO0lBQ1o7SUFDQTtJQU5ELE9BQU8sQ0FBVTtJQUNqQixRQUFRLENBQVU7SUFFM0IsWUFDc0IsVUFBa0QsRUFDOUQsR0FBc0IsRUFDdEIsUUFBa0I7UUFGTixlQUFVLEdBQVYsVUFBVSxDQUF3QztRQUM5RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLHdFQUF3RTtRQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsNENBQTRDO1FBQzVD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QkFDRSxPQUFPLEVBQUUsK0JBQStCOzRCQUN4QyxJQUFJLEVBQUU7Z0NBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsK0JBQStCLENBQUM7Z0NBQ2pFLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQzs2QkFDOUM7NEJBQ0QsVUFBVSxFQUFFLENBQ1YsTUFBOEMsRUFDOUMsT0FBd0MsRUFDeEMsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLCtCQUErQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7eUJBQ3BFO3FCQUNGO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtpQkFDRjs7MEJBTUksUUFBUTtnR0FKRixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBTaWduYWwsXG4gIEluamVjdG9yLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RDaGF0Vmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHLFxuICBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb24sXG59IGZyb20gXCIuLi8uLi9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24udHlwZXNcIjtcbmltcG9ydCB7IHdhdGNoQWdlbnQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvYWdlbnQudXRpbHNcIjtcbmltcG9ydCB7IEFnZW50V2F0Y2hSZXN1bHQgfSBmcm9tIFwiLi4vLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0FHRU5UX0lELCByYW5kb21VVUlEIH0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9zaGFyZWRcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuXG4vKipcbiAqIENvcGlsb3RDaGF0IGNvbXBvbmVudCAtIEFuZ3VsYXIgZXF1aXZhbGVudCBvZiBSZWFjdCdzIDxDb3BpbG90Q2hhdD5cbiAqIFByb3ZpZGVzIGEgY29tcGxldGUgY2hhdCBpbnRlcmZhY2UgdGhhdCB3aXJlcyBhbiBhZ2VudCB0byB0aGUgY2hhdCB2aWV3XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxjb3BpbG90LWNoYXQgW2FnZW50SWRdPVwiJ2RlZmF1bHQnXCIgW3RocmVhZElkXT1cIidhYmMxMjMnXCI+PC9jb3BpbG90LWNoYXQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvcGlsb3QtY2hhdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb3BpbG90Q2hhdFZpZXdDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZV0sXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHXSxcbiAgICAgIF0sXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIHBhcmVudDogQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB8IG51bGwsXG4gICAgICAgIGluaXRpYWw6IENvcGlsb3RDaGF0Q29uZmlndXJhdGlvbiB8IG51bGxcbiAgICAgICkgPT4gcGFyZW50ID8/IG5ldyBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlKGluaXRpYWwgPz8gbnVsbCksXG4gICAgfSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y29waWxvdC1jaGF0LXZpZXdcbiAgICAgIFttZXNzYWdlc109XCJtZXNzYWdlcygpXCJcbiAgICAgIFthdXRvU2Nyb2xsXT1cInRydWVcIlxuICAgICAgW21lc3NhZ2VWaWV3Q2xhc3NdPVwiJ3ctZnVsbCdcIlxuICAgICAgW3Nob3dDdXJzb3JdPVwic2hvd0N1cnNvcigpXCJcbiAgICA+XG4gICAgPC9jb3BpbG90LWNoYXQtdmlldz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYWdlbnRJZD86IHN0cmluZztcbiAgQElucHV0KCkgdGhyZWFkSWQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjaGF0Q29uZmlnOiBDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlIHwgbnVsbCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gQ3JlYXRlIGluaXRpYWwgd2F0Y2hlciBvbmNlIChjb25zdHJ1Y3RvciBpcyBhIHNhZmUgaW5qZWN0aW9uIGNvbnRleHQpXG4gICAgY29uc3QgaW5pdGlhbElkID0gdGhpcy5hZ2VudElkID8/IERFRkFVTFRfQUdFTlRfSUQ7XG4gICAgdGhpcy5jcmVhdGVXYXRjaGVyKGluaXRpYWxJZCk7XG5cbiAgICAvLyBDb25uZWN0IG9uY2Ugd2hlbiBhZ2VudCBiZWNvbWVzIGF2YWlsYWJsZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBhID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKCFhKSByZXR1cm47XG4gICAgICAvLyBBcHBseSB0aHJlYWQgaWQgd2hlbiBhZ2VudCBpcyBhdmFpbGFibGVcbiAgICAgIGEudGhyZWFkSWQgPSB0aGlzLnRocmVhZElkIHx8IHRoaXMuZ2VuZXJhdGVkVGhyZWFkSWQ7XG4gICAgICBpZiAoIXRoaXMuaGFzQ29ubmVjdGVkT25jZSkge1xuICAgICAgICB0aGlzLmhhc0Nvbm5lY3RlZE9uY2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbm5lY3RUb0FnZW50KGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gU2lnbmFscyBmcm9tIHdhdGNoQWdlbnQgLSB1c2luZyBkaXJlY3QgcmVmZXJlbmNlcyBpbnN0ZWFkIG9mIGFzc2lnbm1lbnRcbiAgcHJvdGVjdGVkIGFnZW50OiBTaWduYWw8QWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZD4gPSBzaWduYWw8XG4gICAgQWJzdHJhY3RBZ2VudCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCkuYXNSZWFkb25seSgpIGFzIHVua25vd24gYXMgU2lnbmFsPEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQ+O1xuICBwcm90ZWN0ZWQgbWVzc2FnZXM6IFNpZ25hbDxNZXNzYWdlW10+ID0gc2lnbmFsPE1lc3NhZ2VbXT4oXG4gICAgW11cbiAgKS5hc1JlYWRvbmx5KCkgYXMgdW5rbm93biBhcyBTaWduYWw8TWVzc2FnZVtdPjtcbiAgcHJvdGVjdGVkIGlzUnVubmluZzogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KFxuICAgIGZhbHNlXG4gICkuYXNSZWFkb25seSgpIGFzIHVua25vd24gYXMgU2lnbmFsPGJvb2xlYW4+O1xuICBwcm90ZWN0ZWQgc2hvd0N1cnNvciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZWRUaHJlYWRJZDogc3RyaW5nID0gcmFuZG9tVVVJRCgpO1xuICBwcml2YXRlIGFnZW50V2F0Y2hlcj86IEFnZW50V2F0Y2hSZXN1bHQ7XG4gIHByaXZhdGUgaGFzQ29ubmVjdGVkT25jZSA9IGZhbHNlO1xuICBwcml2YXRlIGxhc3RBZ2VudElkPzogc3RyaW5nO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBDaGF0SGFuZGxlcnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImFnZW50SWRcIl0gJiYgIWNoYW5nZXNbXCJhZ2VudElkXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBuZXdJZCA9IHRoaXMuYWdlbnRJZCA/PyBERUZBVUxUX0FHRU5UX0lEO1xuICAgICAgdGhpcy5jcmVhdGVXYXRjaGVyKG5ld0lkKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJ0aHJlYWRJZFwiXSAmJiAhY2hhbmdlc1tcInRocmVhZElkXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBhID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKGEpIHtcbiAgICAgICAgYS50aHJlYWRJZCA9IHRoaXMudGhyZWFkSWQgfHwgdGhpcy5nZW5lcmF0ZWRUaHJlYWRJZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbm5lY3RUb0FnZW50KGFnZW50OiBBYnN0cmFjdEFnZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFhZ2VudCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zaG93Q3Vyc29yLnNldCh0cnVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhZ2VudC5ydW5BZ2VudChcbiAgICAgICAgeyBmb3J3YXJkZWRQcm9wczogeyBfX2NvcGlsb3RraXRDb25uZWN0OiB0cnVlIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIG9uVGV4dE1lc3NhZ2VTdGFydEV2ZW50OiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uVG9vbENhbGxTdGFydEV2ZW50OiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGhpcy5zaG93Q3Vyc29yLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBjb25uZWN0IHRvIGFnZW50OlwiLCBlcnJvcik7XG4gICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBDaGF0SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNoYXRDb25maWcpIHJldHVybjtcblxuICAgIC8vIEhhbmRsZSBpbnB1dCBzdWJtaXNzaW9uXG4gICAgdGhpcy5jaGF0Q29uZmlnLnNldFN1Ym1pdEhhbmRsZXIoYXN5bmMgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGFnZW50ID0gdGhpcy5hZ2VudCgpO1xuICAgICAgaWYgKCFhZ2VudCB8fCAhdmFsdWUudHJpbSgpKSByZXR1cm47XG5cbiAgICAgIC8vIEFkZCB1c2VyIG1lc3NhZ2VcbiAgICAgIGNvbnN0IHVzZXJNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICBpZDogcmFuZG9tVVVJRCgpLFxuICAgICAgICByb2xlOiBcInVzZXJcIixcbiAgICAgICAgY29udGVudDogdmFsdWUsXG4gICAgICB9O1xuICAgICAgYWdlbnQuYWRkTWVzc2FnZSh1c2VyTWVzc2FnZSk7XG5cbiAgICAgIC8vIENsZWFyIHRoZSBpbnB1dFxuICAgICAgdGhpcy5jaGF0Q29uZmlnIS5zZXRJbnB1dFZhbHVlKFwiXCIpO1xuXG4gICAgICAvLyBTaG93IGN1cnNvciB3aGlsZSBwcm9jZXNzaW5nXG4gICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KHRydWUpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgIC8vIFJ1biB0aGUgYWdlbnQgd2l0aCBuYW1lZCBzdWJzY3JpYmVyIGNhbGxiYWNrc1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYWdlbnQucnVuQWdlbnQoXG4gICAgICAgICAge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb25UZXh0TWVzc2FnZVN0YXJ0RXZlbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zaG93Q3Vyc29yLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblRvb2xDYWxsU3RhcnRFdmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiQWdlbnQgcnVuIGVycm9yOlwiLCBlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLnNob3dDdXJzb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgaW5wdXQgdmFsdWUgY2hhbmdlcyAob3B0aW9uYWwpXG4gICAgdGhpcy5jaGF0Q29uZmlnLnNldENoYW5nZUhhbmRsZXIoKCkgPT4ge1xuICAgICAgLy8gS2VlcCBpbnB1dCBzdGF0ZSBpZiBuZWVkZWRcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnZW50V2F0Y2hlcj8udW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuYWdlbnRXYXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVXYXRjaGVyKGRlc2lyZWRBZ2VudElkOiBzdHJpbmcpIHtcbiAgICAvLyBUZWFyIGRvd24gcHJldmlvdXMgd2F0Y2hlciBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5hZ2VudFdhdGNoZXI/LnVuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmFnZW50V2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5hZ2VudFdhdGNoZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIFNldHVwIHdhdGNoZXIgZm9yIGRlc2lyZWQgYWdlbnQgLSBlbnN1cmUgaW5qZWN0aW9uIGNvbnRleHRcbiAgICB0aGlzLmFnZW50V2F0Y2hlciA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PlxuICAgICAgd2F0Y2hBZ2VudCh7IGFnZW50SWQ6IGRlc2lyZWRBZ2VudElkIH0pXG4gICAgKTtcbiAgICB0aGlzLmFnZW50ID0gdGhpcy5hZ2VudFdhdGNoZXIuYWdlbnQ7XG4gICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMuYWdlbnRXYXRjaGVyLm1lc3NhZ2VzO1xuICAgIHRoaXMuaXNSdW5uaW5nID0gdGhpcy5hZ2VudFdhdGNoZXIuaXNSdW5uaW5nO1xuICAgIHRoaXMuaGFzQ29ubmVjdGVkT25jZSA9IGZhbHNlO1xuICAgIHRoaXMubGFzdEFnZW50SWQgPSBkZXNpcmVkQWdlbnRJZDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Component, Input, ViewContainerRef, TemplateRef, inject, ViewChild, } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { CopilotKitService } from "../core/copilotkit.service";
|
|
4
|
+
import { ToolCallStatus } from "../core/copilotkit.types";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
export class CopilotKitToolRenderComponent {
|
|
8
|
+
toolName;
|
|
9
|
+
args;
|
|
10
|
+
status = ToolCallStatus.InProgress;
|
|
11
|
+
result;
|
|
12
|
+
description;
|
|
13
|
+
container;
|
|
14
|
+
copilotkit = inject(CopilotKitService);
|
|
15
|
+
componentRef;
|
|
16
|
+
templateRef;
|
|
17
|
+
templateContext;
|
|
18
|
+
ngAfterViewInit() {
|
|
19
|
+
this.renderTool();
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges(changes) {
|
|
22
|
+
if (changes["toolName"] ||
|
|
23
|
+
changes["args"] ||
|
|
24
|
+
changes["status"] ||
|
|
25
|
+
changes["result"]) {
|
|
26
|
+
this.renderTool();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
renderTool() {
|
|
30
|
+
// Clear existing component
|
|
31
|
+
if (this.componentRef) {
|
|
32
|
+
this.componentRef.destroy();
|
|
33
|
+
this.componentRef = undefined;
|
|
34
|
+
}
|
|
35
|
+
// Clear template
|
|
36
|
+
this.templateRef = undefined;
|
|
37
|
+
this.templateContext = undefined;
|
|
38
|
+
if (!this.toolName) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Get the tool render configuration
|
|
42
|
+
const toolRender = this.copilotkit.getToolRender(this.toolName);
|
|
43
|
+
if (!toolRender) {
|
|
44
|
+
console.warn(`No render found for tool: ${this.toolName}`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Prepare props to pass to the component
|
|
48
|
+
const props = {
|
|
49
|
+
name: this.toolName,
|
|
50
|
+
description: this.description || "",
|
|
51
|
+
args: this.args,
|
|
52
|
+
status: this.status,
|
|
53
|
+
result: this.result,
|
|
54
|
+
};
|
|
55
|
+
// Check if render is a Component class or TemplateRef
|
|
56
|
+
if (this.isComponentClass(toolRender.render)) {
|
|
57
|
+
// Create component dynamically
|
|
58
|
+
this.renderComponent(toolRender.render, props);
|
|
59
|
+
}
|
|
60
|
+
else if (this.isTemplateRef(toolRender.render)) {
|
|
61
|
+
// Use template
|
|
62
|
+
this.renderTemplate(toolRender.render, props);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.error(`Invalid render type for tool: ${this.toolName}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
renderComponent(componentClass, props) {
|
|
69
|
+
// Clear the container
|
|
70
|
+
this.container.clear();
|
|
71
|
+
// Create the component
|
|
72
|
+
this.componentRef = this.container.createComponent(componentClass);
|
|
73
|
+
// Set inputs on the component using setInput
|
|
74
|
+
// Try setting a single 'props' input first
|
|
75
|
+
try {
|
|
76
|
+
this.componentRef.setInput('props', props);
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
// If props input doesn't exist, try setting individual inputs
|
|
80
|
+
for (const [key, value] of Object.entries(props)) {
|
|
81
|
+
try {
|
|
82
|
+
this.componentRef.setInput(key, value);
|
|
83
|
+
}
|
|
84
|
+
catch (inputError) {
|
|
85
|
+
// Input might not exist on the component, skip it
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Trigger change detection
|
|
90
|
+
this.componentRef.changeDetectorRef.detectChanges();
|
|
91
|
+
}
|
|
92
|
+
renderTemplate(template, props) {
|
|
93
|
+
this.templateRef = template;
|
|
94
|
+
this.templateContext = {
|
|
95
|
+
$implicit: props,
|
|
96
|
+
name: props.name,
|
|
97
|
+
description: props.description,
|
|
98
|
+
args: props.args,
|
|
99
|
+
status: props.status,
|
|
100
|
+
result: props.result,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
isComponentClass(value) {
|
|
104
|
+
return typeof value === "function" && value.prototype;
|
|
105
|
+
}
|
|
106
|
+
isTemplateRef(value) {
|
|
107
|
+
return value instanceof TemplateRef;
|
|
108
|
+
}
|
|
109
|
+
ngOnDestroy() {
|
|
110
|
+
if (this.componentRef) {
|
|
111
|
+
this.componentRef.destroy();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotKitToolRenderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotKitToolRenderComponent, isStandalone: true, selector: "copilotkit-tool-render", inputs: { toolName: "toolName", args: "args", status: "status", result: "result", description: "description" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
116
|
+
<ng-container #dynamicContainer></ng-container>
|
|
117
|
+
<ng-container *ngIf="templateRef && templateContext">
|
|
118
|
+
<ng-container
|
|
119
|
+
*ngTemplateOutlet="templateRef; context: templateContext"
|
|
120
|
+
></ng-container>
|
|
121
|
+
</ng-container>
|
|
122
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotKitToolRenderComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{
|
|
127
|
+
selector: "copilotkit-tool-render",
|
|
128
|
+
standalone: true,
|
|
129
|
+
imports: [CommonModule],
|
|
130
|
+
template: `
|
|
131
|
+
<ng-container #dynamicContainer></ng-container>
|
|
132
|
+
<ng-container *ngIf="templateRef && templateContext">
|
|
133
|
+
<ng-container
|
|
134
|
+
*ngTemplateOutlet="templateRef; context: templateContext"
|
|
135
|
+
></ng-container>
|
|
136
|
+
</ng-container>
|
|
137
|
+
`,
|
|
138
|
+
}]
|
|
139
|
+
}], propDecorators: { toolName: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], args: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], status: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], result: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], description: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], container: [{
|
|
150
|
+
type: ViewChild,
|
|
151
|
+
args: ["dynamicContainer", { read: ViewContainerRef, static: true }]
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC10b29sLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb3BpbG90a2l0LXRvb2wtcmVuZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUtYLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBZTFELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBTTtJQUNWLE1BQU0sR0FBbUIsY0FBYyxDQUFDLFVBQVUsQ0FBQztJQUNuRCxNQUFNLENBQU87SUFDYixXQUFXLENBQVU7SUFHdEIsU0FBUyxDQUFvQjtJQUU3QixVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsWUFBWSxDQUFxQjtJQUV6QyxXQUFXLENBQW9CO0lBQy9CLGVBQWUsQ0FBTztJQUV0QixlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDZixPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDakIsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsMkJBQTJCO1FBQzNC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OlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ29tcG9uZW50UmVmLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RLaXRTZXJ2aWNlIH0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFRvb2xDYWxsUHJvcHMsXG4gIEFuZ3VsYXJUb29sQ2FsbFJlbmRlcixcbn0gZnJvbSBcIi4uL2NvcmUvY29waWxvdGtpdC50eXBlc1wiO1xuaW1wb3J0IHsgVG9vbENhbGxTdGF0dXMgfSBmcm9tIFwiLi4vY29yZS9jb3BpbG90a2l0LnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb3BpbG90a2l0LXRvb2wtcmVuZGVyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgI2R5bmFtaWNDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmICYmIHRlbXBsYXRlQ29udGV4dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB0ZW1wbGF0ZUNvbnRleHRcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0VG9vbFJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHRvb2xOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBhcmdzOiBhbnk7XG4gIEBJbnB1dCgpIHN0YXR1czogVG9vbENhbGxTdGF0dXMgPSBUb29sQ2FsbFN0YXR1cy5JblByb2dyZXNzO1xuICBASW5wdXQoKSByZXN1bHQ/OiBhbnk7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoXCJkeW5hbWljQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgY29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBwcml2YXRlIGNvcGlsb3RraXQgPSBpbmplY3QoQ29waWxvdEtpdFNlcnZpY2UpO1xuICBwcml2YXRlIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgdGVtcGxhdGVDb250ZXh0PzogYW55O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1widG9vbE5hbWVcIl0gfHxcbiAgICAgIGNoYW5nZXNbXCJhcmdzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wic3RhdHVzXCJdIHx8XG4gICAgICBjaGFuZ2VzW1wicmVzdWx0XCJdXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlclRvb2woKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRvb2woKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgY29tcG9uZW50XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbGVhciB0ZW1wbGF0ZVxuICAgIHRoaXMudGVtcGxhdGVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50ZW1wbGF0ZUNvbnRleHQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRoaXMudG9vbE5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHRvb2wgcmVuZGVyIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCB0b29sUmVuZGVyID0gdGhpcy5jb3BpbG90a2l0LmdldFRvb2xSZW5kZXIodGhpcy50b29sTmFtZSkgYXNcbiAgICAgIHwgQW5ndWxhclRvb2xDYWxsUmVuZGVyXG4gICAgICB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghdG9vbFJlbmRlcikge1xuICAgICAgY29uc29sZS53YXJuKGBObyByZW5kZXIgZm91bmQgZm9yIHRvb2w6ICR7dGhpcy50b29sTmFtZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIHByb3BzIHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudFxuICAgIGNvbnN0IHByb3BzOiBUb29sQ2FsbFByb3BzPGFueT4gPSB7XG4gICAgICBuYW1lOiB0aGlzLnRvb2xOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgIGFyZ3M6IHRoaXMuYXJncyxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICByZXN1bHQ6IHRoaXMucmVzdWx0LFxuICAgIH07XG5cbiAgICAvLyBDaGVjayBpZiByZW5kZXIgaXMgYSBDb21wb25lbnQgY2xhc3Mgb3IgVGVtcGxhdGVSZWZcbiAgICBpZiAodGhpcy5pc0NvbXBvbmVudENsYXNzKHRvb2xSZW5kZXIucmVuZGVyKSkge1xuICAgICAgLy8gQ3JlYXRlIGNvbXBvbmVudCBkeW5hbWljYWxseVxuICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQodG9vbFJlbmRlci5yZW5kZXIsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNUZW1wbGF0ZVJlZih0b29sUmVuZGVyLnJlbmRlcikpIHtcbiAgICAgIC8vIFVzZSB0ZW1wbGF0ZVxuICAgICAgdGhpcy5yZW5kZXJUZW1wbGF0ZSh0b29sUmVuZGVyLnJlbmRlciwgcHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHJlbmRlciB0eXBlIGZvciB0b29sOiAke3RoaXMudG9vbE5hbWV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnQoXG4gICAgY29tcG9uZW50Q2xhc3M6IFR5cGU8YW55PixcbiAgICBwcm9wczogVG9vbENhbGxQcm9wc1xuICApOiB2b2lkIHtcbiAgICAvLyBDbGVhciB0aGUgY29udGFpbmVyXG4gICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgY29tcG9uZW50XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MpO1xuXG4gICAgLy8gU2V0IGlucHV0cyBvbiB0aGUgY29tcG9uZW50IHVzaW5nIHNldElucHV0XG4gICAgLy8gVHJ5IHNldHRpbmcgYSBzaW5nbGUgJ3Byb3BzJyBpbnB1dCBmaXJzdFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5zZXRJbnB1dCgncHJvcHMnLCBwcm9wcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSWYgcHJvcHMgaW5wdXQgZG9lc24ndCBleGlzdCwgdHJ5IHNldHRpbmcgaW5kaXZpZHVhbCBpbnB1dHNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICB9IGNhdGNoIChpbnB1dEVycm9yKSB7XG4gICAgICAgICAgLy8gSW5wdXQgbWlnaHQgbm90IGV4aXN0IG9uIHRoZSBjb21wb25lbnQsIHNraXAgaXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyVGVtcGxhdGUoXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJvcHM6IFRvb2xDYWxsUHJvcHNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlO1xuICAgIHRoaXMudGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICAgJGltcGxpY2l0OiBwcm9wcyxcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBhcmdzOiBwcm9wcy5hcmdzLFxuICAgICAgc3RhdHVzOiBwcm9wcy5zdGF0dXMsXG4gICAgICByZXN1bHQ6IHByb3BzLnJlc3VsdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbXBvbmVudENsYXNzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUeXBlPGFueT4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJiB2YWx1ZS5wcm90b3R5cGU7XG4gIH1cblxuICBwcml2YXRlIGlzVGVtcGxhdGVSZWYodmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdG5leHQtYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3BpbG90a2l0bmV4dC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { CopilotChatConfigurationService } from './chat-configuration.service';
|
|
2
|
+
import { COPILOT_CHAT_INITIAL_CONFIG } from './chat-configuration.types';
|
|
3
|
+
/**
|
|
4
|
+
* Provides CopilotKit chat configuration at a specific component level.
|
|
5
|
+
* This allows for scoped configuration where different parts of the app
|
|
6
|
+
* can have different chat configurations.
|
|
7
|
+
*
|
|
8
|
+
* @param config - Optional initial configuration
|
|
9
|
+
* @returns Array of providers
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Global configuration in app.config.ts
|
|
14
|
+
* export const appConfig: ApplicationConfig = {
|
|
15
|
+
* providers: [
|
|
16
|
+
* provideCopilotChatConfiguration({
|
|
17
|
+
* labels: {
|
|
18
|
+
* chatInputPlaceholder: "How can I help you today?"
|
|
19
|
+
* }
|
|
20
|
+
* })
|
|
21
|
+
* ]
|
|
22
|
+
* };
|
|
23
|
+
*
|
|
24
|
+
* // Component-scoped configuration
|
|
25
|
+
* @Component({
|
|
26
|
+
* selector: 'customer-support-chat',
|
|
27
|
+
* providers: [
|
|
28
|
+
* provideCopilotChatConfiguration({
|
|
29
|
+
* labels: {
|
|
30
|
+
* chatInputPlaceholder: "Describe your issue..."
|
|
31
|
+
* },
|
|
32
|
+
* onSubmitInput: (value) => console.log('Support message:', value)
|
|
33
|
+
* })
|
|
34
|
+
* ],
|
|
35
|
+
* template: `...`
|
|
36
|
+
* })
|
|
37
|
+
* export class CustomerSupportChatComponent {}
|
|
38
|
+
*
|
|
39
|
+
* // Multiple independent chats
|
|
40
|
+
* @Component({
|
|
41
|
+
* selector: 'sales-chat',
|
|
42
|
+
* providers: [
|
|
43
|
+
* provideCopilotChatConfiguration({
|
|
44
|
+
* labels: {
|
|
45
|
+
* chatInputPlaceholder: "Ask about our products..."
|
|
46
|
+
* }
|
|
47
|
+
* })
|
|
48
|
+
* ],
|
|
49
|
+
* template: `...`
|
|
50
|
+
* })
|
|
51
|
+
* export class SalesChatComponent {}
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function provideCopilotChatConfiguration(config) {
|
|
55
|
+
return [
|
|
56
|
+
// Provide the service
|
|
57
|
+
CopilotChatConfigurationService,
|
|
58
|
+
// Provide the initial configuration
|
|
59
|
+
{
|
|
60
|
+
provide: COPILOT_CHAT_INITIAL_CONFIG,
|
|
61
|
+
useValue: config || {}
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jb25maWd1cmF0aW9uLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL2NoYXQtY29uZmlndXJhdGlvbi9jaGF0LWNvbmZpZ3VyYXRpb24ucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFFTCwyQkFBMkIsRUFDNUIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrREc7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQzdDLE1BQWlDO0lBRWpDLE9BQU87UUFDTCxzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQztZQUNFLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsUUFBUSxFQUFFLE1BQU0sSUFBSSxFQUFFO1NBQ3ZCO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY2hhdC1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgXG4gIENvcGlsb3RDaGF0Q29uZmlndXJhdGlvbixcbiAgQ09QSUxPVF9DSEFUX0lOSVRJQUxfQ09ORklHIFxufSBmcm9tICcuL2NoYXQtY29uZmlndXJhdGlvbi50eXBlcyc7XG5cbi8qKlxuICogUHJvdmlkZXMgQ29waWxvdEtpdCBjaGF0IGNvbmZpZ3VyYXRpb24gYXQgYSBzcGVjaWZpYyBjb21wb25lbnQgbGV2ZWwuXG4gKiBUaGlzIGFsbG93cyBmb3Igc2NvcGVkIGNvbmZpZ3VyYXRpb24gd2hlcmUgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBhcHBcbiAqIGNhbiBoYXZlIGRpZmZlcmVudCBjaGF0IGNvbmZpZ3VyYXRpb25zLlxuICogXG4gKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgaW5pdGlhbCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBBcnJheSBvZiBwcm92aWRlcnNcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEdsb2JhbCBjb25maWd1cmF0aW9uIGluIGFwcC5jb25maWcudHNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlQ29waWxvdENoYXRDb25maWd1cmF0aW9uKHtcbiAqICAgICAgIGxhYmVsczoge1xuICogICAgICAgICBjaGF0SW5wdXRQbGFjZWhvbGRlcjogXCJIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/XCJcbiAqICAgICAgIH1cbiAqICAgICB9KVxuICogICBdXG4gKiB9O1xuICogXG4gKiAvLyBDb21wb25lbnQtc2NvcGVkIGNvbmZpZ3VyYXRpb25cbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ2N1c3RvbWVyLXN1cHBvcnQtY2hhdCcsXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb24oe1xuICogICAgICAgbGFiZWxzOiB7XG4gKiAgICAgICAgIGNoYXRJbnB1dFBsYWNlaG9sZGVyOiBcIkRlc2NyaWJlIHlvdXIgaXNzdWUuLi5cIlxuICogICAgICAgfSxcbiAqICAgICAgIG9uU3VibWl0SW5wdXQ6ICh2YWx1ZSkgPT4gY29uc29sZS5sb2coJ1N1cHBvcnQgbWVzc2FnZTonLCB2YWx1ZSlcbiAqICAgICB9KVxuICogICBdLFxuICogICB0ZW1wbGF0ZTogYC4uLmBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQ3VzdG9tZXJTdXBwb3J0Q2hhdENvbXBvbmVudCB7fVxuICogXG4gKiAvLyBNdWx0aXBsZSBpbmRlcGVuZGVudCBjaGF0c1xuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnc2FsZXMtY2hhdCcsXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb24oe1xuICogICAgICAgbGFiZWxzOiB7XG4gKiAgICAgICAgIGNoYXRJbnB1dFBsYWNlaG9sZGVyOiBcIkFzayBhYm91dCBvdXIgcHJvZHVjdHMuLi5cIlxuICogICAgICAgfVxuICogICAgIH0pXG4gKiAgIF0sXG4gKiAgIHRlbXBsYXRlOiBgLi4uYFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBTYWxlc0NoYXRDb21wb25lbnQge31cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvcGlsb3RDaGF0Q29uZmlndXJhdGlvbihcbiAgY29uZmlnPzogQ29waWxvdENoYXRDb25maWd1cmF0aW9uXG4pOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBQcm92aWRlIHRoZSBzZXJ2aWNlXG4gICAgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAvLyBQcm92aWRlIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb25cbiAgICB7XG4gICAgICBwcm92aWRlOiBDT1BJTE9UX0NIQVRfSU5JVElBTF9DT05GSUcsXG4gICAgICB1c2VWYWx1ZTogY29uZmlnIHx8IHt9XG4gICAgfVxuICBdO1xufSJdfQ==
|