@copilotkitnext/angular 0.0.15 → 0.0.17-alpha.0
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/esm2022/lib/agent.mjs +2 -2
- package/dist/esm2022/lib/copilotkit.mjs +25 -13
- package/dist/esm2022/lib/tools.mjs +1 -1
- package/dist/fesm2022/copilotkitnext-angular.mjs +23 -11
- package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
- package/dist/lib/copilotkit.d.ts +3 -3
- package/dist/lib/tools.d.ts +11 -11
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DestroyRef, Injectable, inject, signal, computed } from "@angular/core";
|
|
1
|
+
import { DestroyRef, Injectable, inject, signal, computed, } from "@angular/core";
|
|
2
2
|
import { CopilotKit } from "./copilotkit";
|
|
3
3
|
import { DEFAULT_AGENT_ID } from "@copilotkitnext/shared";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -70,4 +70,4 @@ export function injectAgentStore(agentId) {
|
|
|
70
70
|
const agentIdSignal = typeof agentId === "function" ? agentId : computed(() => agentId);
|
|
71
71
|
return agentFactory.createAgentStoreSignal(agentIdSignal, destroyRef);
|
|
72
72
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELE1BQU0sT0FBTyxVQUFVO0lBQ1osYUFBYSxDQUVwQjtJQUNPLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEMsU0FBUyxHQUFHLE1BQU0sQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFNLFNBQVMsQ0FBQyxDQUFDO0lBRWhDLEtBQUssQ0FBZ0I7SUFDckIsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFMUMsWUFBWSxhQUE0QixFQUFFLFVBQXNCO1FBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBRTNCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMzQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUM7WUFDRCxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsV0FBVyxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLHNCQUFzQixDQUNwQixPQUFtQyxFQUNuQyxVQUFzQjtRQUV0QixJQUFJLGNBQXNDLENBQUM7UUFFM0MsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFMUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQzdCLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FDN0MsT0FBTyxFQUFFLElBQUksZ0JBQWdCLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUVyQyxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F6QlUsc0JBQXNCOzRHQUF0QixzQkFBc0IsY0FEVCxNQUFNOzs0RkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUE2QmxDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBNEM7SUFFNUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sYUFBYSxHQUNqQixPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBFLE9BQU8sWUFBWSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzdHJveVJlZixcbiAgSW5qZWN0YWJsZSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBTaWduYWwsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0IH0gZnJvbSBcIi4vY29waWxvdGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdEFnZW50IH0gZnJvbSBcIkBhZy11aS9jbGllbnRcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gXCJAYWctdWkvY2xpZW50XCI7XG5pbXBvcnQgeyBERUZBVUxUX0FHRU5UX0lEIH0gZnJvbSBcIkBjb3BpbG90a2l0bmV4dC9zaGFyZWRcIjtcblxuZXhwb3J0IGNsYXNzIEFnZW50U3RvcmUge1xuICByZWFkb25seSAjc3Vic2NyaXB0aW9uPzoge1xuICAgIHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkO1xuICB9O1xuICByZWFkb25seSAjaXNSdW5uaW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgI21lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuICByZWFkb25seSAjc3RhdGUgPSBzaWduYWw8YW55Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGFnZW50OiBBYnN0cmFjdEFnZW50O1xuICByZWFkb25seSBpc1J1bm5pbmcgPSB0aGlzLiNpc1J1bm5pbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBtZXNzYWdlcyA9IHRoaXMuI21lc3NhZ2VzLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLiNzdGF0ZS5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IoYWJzdHJhY3RBZ2VudDogQWJzdHJhY3RBZ2VudCwgZGVzdHJveVJlZjogRGVzdHJveVJlZikge1xuICAgIHRoaXMuYWdlbnQgPSBhYnN0cmFjdEFnZW50O1xuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uID0gYWJzdHJhY3RBZ2VudC5zdWJzY3JpYmUoe1xuICAgICAgb25NZXNzYWdlc0NoYW5nZWQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy4jbWVzc2FnZXMuc2V0KGFic3RyYWN0QWdlbnQubWVzc2FnZXMpO1xuICAgICAgfSxcbiAgICAgIG9uU3RhdGVDaGFuZ2VkOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuI3N0YXRlLnNldChhYnN0cmFjdEFnZW50LnN0YXRlKTtcbiAgICAgIH0sXG4gICAgICBvblJ1bkluaXRpYWxpemVkOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuI2lzUnVubmluZy5zZXQodHJ1ZSk7XG4gICAgICB9LFxuICAgICAgb25SdW5GaW5hbGl6ZWQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy4jaXNSdW5uaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgb25SdW5GYWlsZWQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy4jaXNSdW5uaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy50ZWFyZG93bigpO1xuICAgIH0pO1xuICB9XG5cbiAgdGVhcmRvd24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90a2l0QWdlbnRGYWN0b3J5IHtcbiAgcmVhZG9ubHkgI2NvcGlsb3RraXQgPSBpbmplY3QoQ29waWxvdEtpdCk7XG5cbiAgY3JlYXRlQWdlbnRTdG9yZVNpZ25hbChcbiAgICBhZ2VudElkOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPixcbiAgICBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICk6IFNpZ25hbDxBZ2VudFN0b3JlIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGxhc3RBZ2VudFN0b3JlOiBBZ2VudFN0b3JlIHwgdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHRoaXMuI2NvcGlsb3RraXQuYWdlbnRzKCk7XG5cbiAgICAgIGlmIChsYXN0QWdlbnRTdG9yZSkge1xuICAgICAgICBsYXN0QWdlbnRTdG9yZS50ZWFyZG93bigpO1xuICAgICAgICBsYXN0QWdlbnRTdG9yZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYWJzdHJhY3RBZ2VudCA9IHRoaXMuI2NvcGlsb3RraXQuZ2V0QWdlbnQoXG4gICAgICAgIGFnZW50SWQoKSB8fCBERUZBVUxUX0FHRU5UX0lEXG4gICAgICApO1xuICAgICAgaWYgKCFhYnN0cmFjdEFnZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBsYXN0QWdlbnRTdG9yZSA9IG5ldyBBZ2VudFN0b3JlKGFic3RyYWN0QWdlbnQsIGRlc3Ryb3lSZWYpO1xuICAgICAgcmV0dXJuIGxhc3RBZ2VudFN0b3JlO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBZ2VudFN0b3JlKFxuICBhZ2VudElkOiBzdHJpbmcgfCBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPlxuKTogU2lnbmFsPEFnZW50U3RvcmUgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgYWdlbnRGYWN0b3J5ID0gaW5qZWN0KENvcGlsb3RraXRBZ2VudEZhY3RvcnkpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdCBhZ2VudElkU2lnbmFsID1cbiAgICB0eXBlb2YgYWdlbnRJZCA9PT0gXCJmdW5jdGlvblwiID8gYWdlbnRJZCA6IGNvbXB1dGVkKCgpID0+IGFnZW50SWQpO1xuXG4gIHJldHVybiBhZ2VudEZhY3RvcnkuY3JlYXRlQWdlbnRTdG9yZVNpZ25hbChhZ2VudElkU2lnbmFsLCBkZXN0cm95UmVmKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CopilotKitCore } from "@copilotkitnext/core";
|
|
2
|
-
import { Injectable, Injector, runInInjectionContext, signal, inject } from "@angular/core";
|
|
2
|
+
import { Injectable, Injector, runInInjectionContext, signal, inject, } from "@angular/core";
|
|
3
3
|
import { injectCopilotKitConfig } from "./config";
|
|
4
4
|
import { HumanInTheLoop } from "./human-in-the-loop";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -49,22 +49,27 @@ export class CopilotKit {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
#bindClientTool(clientToolWithInjector) {
|
|
52
|
-
const { injector, handler,
|
|
52
|
+
const { injector, handler, ...frontendCandidate } = clientToolWithInjector;
|
|
53
53
|
return {
|
|
54
|
-
|
|
55
|
-
name,
|
|
56
|
-
agentId,
|
|
54
|
+
...frontendCandidate,
|
|
57
55
|
handler: (args) => runInInjectionContext(injector, () => handler(args)),
|
|
58
|
-
parameters: args,
|
|
59
56
|
};
|
|
60
57
|
}
|
|
61
58
|
addFrontendTool(clientToolWithInjector) {
|
|
62
59
|
const tool = this.#bindClientTool(clientToolWithInjector);
|
|
63
60
|
this.core.addTool(tool);
|
|
64
|
-
this.#clientToolCallRenderConfigs.update((current) => [
|
|
61
|
+
this.#clientToolCallRenderConfigs.update((current) => [
|
|
62
|
+
...current,
|
|
63
|
+
// Erase generic parameter for storage without using `any`.
|
|
64
|
+
clientToolWithInjector,
|
|
65
|
+
]);
|
|
65
66
|
}
|
|
66
67
|
addRenderToolCall(renderConfig) {
|
|
67
|
-
this.#toolCallRenderConfigs.update((current) => [
|
|
68
|
+
this.#toolCallRenderConfigs.update((current) => [
|
|
69
|
+
...current,
|
|
70
|
+
// Erase generic parameter for storage without using `any`.
|
|
71
|
+
renderConfig,
|
|
72
|
+
]);
|
|
68
73
|
}
|
|
69
74
|
#bindHumanInTheLoopTool(humanInTheLoopTool) {
|
|
70
75
|
return {
|
|
@@ -75,7 +80,11 @@ export class CopilotKit {
|
|
|
75
80
|
};
|
|
76
81
|
}
|
|
77
82
|
addHumanInTheLoop(humanInTheLoopTool) {
|
|
78
|
-
this.#humanInTheLoopToolRenderConfigs.update((current) => [
|
|
83
|
+
this.#humanInTheLoopToolRenderConfigs.update((current) => [
|
|
84
|
+
...current,
|
|
85
|
+
// Erase generic parameter for storage without using `any`.
|
|
86
|
+
humanInTheLoopTool,
|
|
87
|
+
]);
|
|
79
88
|
const tool = this.#bindHumanInTheLoopTool(humanInTheLoopTool);
|
|
80
89
|
this.core.addTool(tool);
|
|
81
90
|
}
|
|
@@ -87,9 +96,12 @@ export class CopilotKit {
|
|
|
87
96
|
}
|
|
88
97
|
removeTool(toolName, agentId) {
|
|
89
98
|
this.core.removeTool(toolName);
|
|
90
|
-
this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
91
|
-
|
|
92
|
-
this.#
|
|
99
|
+
this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
100
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
101
|
+
this.#humanInTheLoopToolRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
102
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
103
|
+
this.#toolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
104
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
93
105
|
}
|
|
94
106
|
getAgent(agentId) {
|
|
95
107
|
return this.core.getAgent(agentId);
|
|
@@ -115,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
115
127
|
type: Injectable,
|
|
116
128
|
args: [{ providedIn: "root" }]
|
|
117
129
|
}], ctorParameters: () => [] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29waWxvdGtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUEwQixxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxVQUFVO0lBQ1osT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDbkMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxNQUFNLENBQWdDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRW5DLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtRQUNuQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFDNUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSztLQUMxQixDQUFDLENBQUM7SUFFTSxzQkFBc0IsR0FBMkMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLDRCQUE0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UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7d0dBbkpVLFVBQVU7NEdBQVYsVUFBVSxjQURHLE1BQU07OzRGQUNuQixVQUFVO2tCQUR0QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0QWdlbnQgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuaW1wb3J0IHsgRnJvbnRlbmRUb29sLCBDb3BpbG90S2l0Q29yZSB9IGZyb20gXCJAY29waWxvdGtpdG5leHQvY29yZVwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRnJvbnRlbmRUb29sQ29uZmlnLCBIdW1hbkluVGhlTG9vcENvbmZpZywgUmVuZGVyVG9vbENhbGxDb25maWcgfSBmcm9tIFwiLi90b29sc1wiO1xuaW1wb3J0IHsgaW5qZWN0Q29waWxvdEtpdENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgSHVtYW5JblRoZUxvb3AgfSBmcm9tIFwiLi9odW1hbi1pbi10aGUtbG9vcFwiO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgQ29waWxvdEtpdCB7XG4gIHJlYWRvbmx5ICNjb25maWcgPSBpbmplY3RDb3BpbG90S2l0Q29uZmlnKCk7XG4gIHJlYWRvbmx5ICNoaXRsID0gaW5qZWN0KEh1bWFuSW5UaGVMb29wKTtcbiAgcmVhZG9ubHkgI3Jvb3RJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJlYWRvbmx5ICNhZ2VudHMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgQWJzdHJhY3RBZ2VudD4+KHRoaXMuI2NvbmZpZy5hZ2VudHMgPz8ge30pO1xuICByZWFkb25seSBhZ2VudHMgPSB0aGlzLiNhZ2VudHMuYXNSZWFkb25seSgpO1xuXG4gIHJlYWRvbmx5IGNvcmUgPSBuZXcgQ29waWxvdEtpdENvcmUoe1xuICAgIHJ1bnRpbWVVcmw6IHRoaXMuI2NvbmZpZy5ydW50aW1lVXJsLFxuICAgIGhlYWRlcnM6IHRoaXMuI2NvbmZpZy5oZWFkZXJzLFxuICAgIHByb3BlcnRpZXM6IHRoaXMuI2NvbmZpZy5wcm9wZXJ0aWVzLFxuICAgIGFnZW50c19fdW5zYWZlX2Rldl9vbmx5OiB0aGlzLiNjb25maWcuYWdlbnRzLFxuICAgIHRvb2xzOiB0aGlzLiNjb25maWcudG9vbHMsXG4gIH0pO1xuXG4gIHJlYWRvbmx5ICN0b29sQ2FsbFJlbmRlckNvbmZpZ3M6IFdyaXRhYmxlU2lnbmFsPFJlbmRlclRvb2xDYWxsQ29uZmlnW10+ID0gc2lnbmFsKFtdKTtcbiAgcmVhZG9ubHkgI2NsaWVudFRvb2xDYWxsUmVuZGVyQ29uZmlnczogV3JpdGFibGVTaWduYWw8RnJvbnRlbmRUb29sQ29uZmlnW10+ID0gc2lnbmFsKFtdKTtcbiAgcmVhZG9ubHkgI2h1bWFuSW5UaGVMb29wVG9vbFJlbmRlckNvbmZpZ3M6IFdyaXRhYmxlU2lnbmFsPEh1bWFuSW5UaGVMb29wQ29uZmlnW10+ID0gc2lnbmFsKFtdKTtcblxuICByZWFkb25seSB0b29sQ2FsbFJlbmRlckNvbmZpZ3M6IFNpZ25hbDxSZW5kZXJUb29sQ2FsbENvbmZpZ1tdPiA9IHRoaXMuI3Rvb2xDYWxsUmVuZGVyQ29uZmlncy5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGNsaWVudFRvb2xDYWxsUmVuZGVyQ29uZmlnczogU2lnbmFsPEZyb250ZW5kVG9vbENvbmZpZ1tdPiA9IHRoaXMuI2NsaWVudFRvb2xDYWxsUmVuZGVyQ29uZmlncy5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGh1bWFuSW5UaGVMb29wVG9vbFJlbmRlckNvbmZpZ3M6IFNpZ25hbDxIdW1hbkluVGhlTG9vcENvbmZpZ1tdPiA9XG4gICAgdGhpcy4jaHVtYW5JblRoZUxvb3BUb29sUmVuZGVyQ29uZmlncy5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jY29uZmlnLnJlbmRlclRvb2xDYWxscz8uZm9yRWFjaCgocmVuZGVyQ29uZmlnKSA9PiB7XG4gICAgICB0aGlzLmFkZFJlbmRlclRvb2xDYWxsKHJlbmRlckNvbmZpZyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNjb25maWcudG9vbHM/LmZvckVhY2goKHRvb2wpID0+IHtcbiAgICAgIGlmICh0b29sLnJlbmRlcmVyICYmIHRvb2wucGFyYW1ldGVycykge1xuICAgICAgICB0aGlzLmFkZFJlbmRlclRvb2xDYWxsKHtcbiAgICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgICAgYXJnczogdG9vbC5wYXJhbWV0ZXJzLFxuICAgICAgICAgIGNvbXBvbmVudDogdG9vbC5yZW5kZXJlcixcbiAgICAgICAgICBhZ2VudElkOiB0b29sLmFnZW50SWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy4jY29uZmlnLmZyb250ZW5kVG9vbHM/LmZvckVhY2goKGNsaWVudFRvb2wpID0+IHtcbiAgICAgIHRoaXMuYWRkRnJvbnRlbmRUb29sKHsgLi4uY2xpZW50VG9vbCwgaW5qZWN0b3I6IHRoaXMuI3Jvb3RJbmplY3RvciB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuI2NvbmZpZy5odW1hbkluVGhlTG9vcD8uZm9yRWFjaCgoaHVtYW5JblRoZUxvb3BUb29sKSA9PiB7XG4gICAgICB0aGlzLmFkZEh1bWFuSW5UaGVMb29wKGh1bWFuSW5UaGVMb29wVG9vbCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvcmUuc3Vic2NyaWJlKHtcbiAgICAgIG9uQWdlbnRzQ2hhbmdlZDogKCkgPT4ge1xuICAgICAgICB0aGlzLiNhZ2VudHMuc2V0KHRoaXMuY29yZS5hZ2VudHMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gICNiaW5kQ2xpZW50VG9vbChcbiAgICBjbGllbnRUb29sV2l0aEluamVjdG9yOiBGcm9udGVuZFRvb2xDb25maWcgJiB7XG4gICAgICBpbmplY3RvcjogSW5qZWN0b3I7XG4gICAgfSxcbiAgKTogRnJvbnRlbmRUb29sIHtcbiAgICBjb25zdCB7IGluamVjdG9yLCBoYW5kbGVyLCBhcmdzLCBkZXNjcmlwdGlvbiwgbmFtZSwgYWdlbnRJZCB9ID0gY2xpZW50VG9vbFdpdGhJbmplY3RvcjtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIG5hbWUsXG4gICAgICBhZ2VudElkLFxuICAgICAgaGFuZGxlcjogKGFyZ3MpID0+IHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4gaGFuZGxlcihhcmdzKSksXG4gICAgICBwYXJhbWV0ZXJzOiBhcmdzLFxuICAgIH07XG4gIH1cblxuICBhZGRGcm9udGVuZFRvb2woXG4gICAgY2xpZW50VG9vbFdpdGhJbmplY3RvcjogRnJvbnRlbmRUb29sQ29uZmlnICYge1xuICAgICAgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHRvb2wgPSB0aGlzLiNiaW5kQ2xpZW50VG9vbChjbGllbnRUb29sV2l0aEluamVjdG9yKTtcblxuICAgIHRoaXMuY29yZS5hZGRUb29sKHRvb2wpO1xuXG4gICAgdGhpcy4jY2xpZW50VG9vbENhbGxSZW5kZXJDb25maWdzLnVwZGF0ZSgoY3VycmVudCkgPT4gWy4uLmN1cnJlbnQsIGNsaWVudFRvb2xXaXRoSW5qZWN0b3JdKTtcbiAgfVxuXG4gIGFkZFJlbmRlclRvb2xDYWxsKHJlbmRlckNvbmZpZzogUmVuZGVyVG9vbENhbGxDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLiN0b29sQ2FsbFJlbmRlckNvbmZpZ3MudXBkYXRlKChjdXJyZW50KSA9PiBbLi4uY3VycmVudCwgcmVuZGVyQ29uZmlnXSk7XG4gIH1cblxuICAjYmluZEh1bWFuSW5UaGVMb29wVG9vbChodW1hbkluVGhlTG9vcFRvb2w6IEh1bWFuSW5UaGVMb29wQ29uZmlnKTogRnJvbnRlbmRUb29sIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uaHVtYW5JblRoZUxvb3BUb29sLFxuICAgICAgaGFuZGxlcjogKGFyZ3MsIHRvb2xDYWxsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiNoaXRsLm9uUmVzdWx0KHRvb2xDYWxsLmlkLCBodW1hbkluVGhlTG9vcFRvb2wubmFtZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhZGRIdW1hbkluVGhlTG9vcChodW1hbkluVGhlTG9vcFRvb2w6IEh1bWFuSW5UaGVMb29wQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy4jaHVtYW5JblRoZUxvb3BUb29sUmVuZGVyQ29uZmlncy51cGRhdGUoKGN1cnJlbnQpID0+IFsuLi5jdXJyZW50LCBodW1hbkluVGhlTG9vcFRvb2xdKTtcblxuICAgIGNvbnN0IHRvb2wgPSB0aGlzLiNiaW5kSHVtYW5JblRoZUxvb3BUb29sKGh1bWFuSW5UaGVMb29wVG9vbCk7XG5cbiAgICB0aGlzLmNvcmUuYWRkVG9vbCh0b29sKTtcbiAgfVxuXG4gICNpc1NhbWVBZ2VudElkPFQgZXh0ZW5kcyB7IGFnZW50SWQ/OiBzdHJpbmcgfT4odGFyZ2V0OiBULCBhZ2VudElkPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGFnZW50SWQpIHtcbiAgICAgIHJldHVybiB0YXJnZXQuYWdlbnRJZCA9PT0gYWdlbnRJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJlbW92ZVRvb2wodG9vbE5hbWU6IHN0cmluZywgYWdlbnRJZD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29yZS5yZW1vdmVUb29sKHRvb2xOYW1lKTtcbiAgICB0aGlzLiNjbGllbnRUb29sQ2FsbFJlbmRlckNvbmZpZ3MudXBkYXRlKChjdXJyZW50KSA9PlxuICAgICAgY3VycmVudC5maWx0ZXIoKHJlbmRlckNvbmZpZykgPT4gcmVuZGVyQ29uZmlnLm5hbWUgIT09IHRvb2xOYW1lICYmIHRoaXMuI2lzU2FtZUFnZW50SWQocmVuZGVyQ29uZmlnLCBhZ2VudElkKSksXG4gICAgKTtcbiAgICB0aGlzLiNodW1hbkluVGhlTG9vcFRvb2xSZW5kZXJDb25maWdzLnVwZGF0ZSgoY3VycmVudCkgPT5cbiAgICAgIGN1cnJlbnQuZmlsdGVyKChyZW5kZXJDb25maWcpID0+IHJlbmRlckNvbmZpZy5uYW1lICE9PSB0b29sTmFtZSAmJiB0aGlzLiNpc1NhbWVBZ2VudElkKHJlbmRlckNvbmZpZywgYWdlbnRJZCkpLFxuICAgICk7XG4gICAgdGhpcy4jdG9vbENhbGxSZW5kZXJDb25maWdzLnVwZGF0ZSgoY3VycmVudCkgPT5cbiAgICAgIGN1cnJlbnQuZmlsdGVyKChyZW5kZXJDb25maWcpID0+IHJlbmRlckNvbmZpZy5uYW1lICE9PSB0b29sTmFtZSAmJiB0aGlzLiNpc1NhbWVBZ2VudElkKHJlbmRlckNvbmZpZywgYWdlbnRJZCkpLFxuICAgICk7XG4gIH1cblxuICBnZXRBZ2VudChhZ2VudElkOiBzdHJpbmcpOiBBYnN0cmFjdEFnZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmdldEFnZW50KGFnZW50SWQpO1xuICB9XG5cbiAgdXBkYXRlUnVudGltZShvcHRpb25zOiB7XG4gICAgcnVudGltZVVybD86IHN0cmluZztcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgYWdlbnRzPzogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RBZ2VudD47XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAob3B0aW9ucy5ydW50aW1lVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29yZS5zZXRSdW50aW1lVXJsKG9wdGlvbnMucnVudGltZVVybCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhlYWRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb3JlLnNldEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMucHJvcGVydGllcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvcmUuc2V0UHJvcGVydGllcyhvcHRpb25zLnByb3BlcnRpZXMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5hZ2VudHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb3JlLnNldEFnZW50c19fdW5zYWZlX2Rldl9vbmx5KG9wdGlvbnMuYWdlbnRzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdGtpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29waWxvdGtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUdSLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxVQUFVO0lBQ1osT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDbkMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxNQUFNLENBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDMUIsQ0FBQztJQUNPLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRW5DLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1FBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtRQUNuQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFDNUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSztLQUMxQixDQUFDLENBQUM7SUFFTSxzQkFBc0IsR0FDN0IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ0osNEJBQTRC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QUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO3dHQXJMVSxVQUFVOzRHQUFWLFVBQVUsY0FERyxNQUFNOzs0RkFDbkIsVUFBVTtrQkFEdEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEFnZW50IH0gZnJvbSBcIkBhZy11aS9jbGllbnRcIjtcbmltcG9ydCB7IEZyb250ZW5kVG9vbCwgQ29waWxvdEtpdENvcmUgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxuICBTaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbiAgaW5qZWN0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRnJvbnRlbmRUb29sQ29uZmlnLFxuICBIdW1hbkluVGhlTG9vcENvbmZpZyxcbiAgUmVuZGVyVG9vbENhbGxDb25maWcsXG59IGZyb20gXCIuL3Rvb2xzXCI7XG5pbXBvcnQgeyBpbmplY3RDb3BpbG90S2l0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBIdW1hbkluVGhlTG9vcCB9IGZyb20gXCIuL2h1bWFuLWluLXRoZS1sb29wXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90S2l0IHtcbiAgcmVhZG9ubHkgI2NvbmZpZyA9IGluamVjdENvcGlsb3RLaXRDb25maWcoKTtcbiAgcmVhZG9ubHkgI2hpdGwgPSBpbmplY3QoSHVtYW5JblRoZUxvb3ApO1xuICByZWFkb25seSAjcm9vdEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcmVhZG9ubHkgI2FnZW50cyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50Pj4oXG4gICAgdGhpcy4jY29uZmlnLmFnZW50cyA/PyB7fVxuICApO1xuICByZWFkb25seSBhZ2VudHMgPSB0aGlzLiNhZ2VudHMuYXNSZWFkb25seSgpO1xuXG4gIHJlYWRvbmx5IGNvcmUgPSBuZXcgQ29waWxvdEtpdENvcmUoe1xuICAgIHJ1bnRpbWVVcmw6IHRoaXMuI2NvbmZpZy5ydW50aW1lVXJsLFxuICAgIGhlYWRlcnM6IHRoaXMuI2NvbmZpZy5oZWFkZXJzLFxuICAgIHByb3BlcnRpZXM6IHRoaXMuI2NvbmZpZy5wcm9wZXJ0aWVzLFxuICAgIGFnZW50c19fdW5zYWZlX2Rldl9vbmx5OiB0aGlzLiNjb25maWcuYWdlbnRzLFxuICAgIHRvb2xzOiB0aGlzLiNjb25maWcudG9vbHMsXG4gIH0pO1xuXG4gIHJlYWRvbmx5ICN0b29sQ2FsbFJlbmRlckNvbmZpZ3M6IFdyaXRhYmxlU2lnbmFsPFJlbmRlclRvb2xDYWxsQ29uZmlnW10+ID1cbiAgICBzaWduYWwoW10pO1xuICByZWFkb25seSAjY2xpZW50VG9vbENhbGxSZW5kZXJDb25maWdzOiBXcml0YWJsZVNpZ25hbDxGcm9udGVuZFRvb2xDb25maWdbXT4gPVxuICAgIHNpZ25hbChbXSk7XG4gIHJlYWRvbmx5ICNodW1hbkluVGhlTG9vcFRvb2xSZW5kZXJDb25maWdzOiBXcml0YWJsZVNpZ25hbDxcbiAgICBIdW1hbkluVGhlTG9vcENvbmZpZ1tdXG4gID4gPSBzaWduYWwoW10pO1xuXG4gIHJlYWRvbmx5IHRvb2xDYWxsUmVuZGVyQ29uZmlnczogU2lnbmFsPFJlbmRlclRvb2xDYWxsQ29uZmlnW10+ID1cbiAgICB0aGlzLiN0b29sQ2FsbFJlbmRlckNvbmZpZ3MuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjbGllbnRUb29sQ2FsbFJlbmRlckNvbmZpZ3M6IFNpZ25hbDxGcm9udGVuZFRvb2xDb25maWdbXT4gPVxuICAgIHRoaXMuI2NsaWVudFRvb2xDYWxsUmVuZGVyQ29uZmlncy5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGh1bWFuSW5UaGVMb29wVG9vbFJlbmRlckNvbmZpZ3M6IFNpZ25hbDxIdW1hbkluVGhlTG9vcENvbmZpZ1tdPiA9XG4gICAgdGhpcy4jaHVtYW5JblRoZUxvb3BUb29sUmVuZGVyQ29uZmlncy5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jY29uZmlnLnJlbmRlclRvb2xDYWxscz8uZm9yRWFjaCgocmVuZGVyQ29uZmlnKSA9PiB7XG4gICAgICB0aGlzLmFkZFJlbmRlclRvb2xDYWxsKHJlbmRlckNvbmZpZyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNjb25maWcudG9vbHM/LmZvckVhY2goKHRvb2wpID0+IHtcbiAgICAgIGlmICh0b29sLnJlbmRlcmVyICYmIHRvb2wucGFyYW1ldGVycykge1xuICAgICAgICB0aGlzLmFkZFJlbmRlclRvb2xDYWxsKHtcbiAgICAgICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICAgICAgYXJnczogdG9vbC5wYXJhbWV0ZXJzLFxuICAgICAgICAgIGNvbXBvbmVudDogdG9vbC5yZW5kZXJlcixcbiAgICAgICAgICBhZ2VudElkOiB0b29sLmFnZW50SWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy4jY29uZmlnLmZyb250ZW5kVG9vbHM/LmZvckVhY2goKGNsaWVudFRvb2wpID0+IHtcbiAgICAgIHRoaXMuYWRkRnJvbnRlbmRUb29sKHsgLi4uY2xpZW50VG9vbCwgaW5qZWN0b3I6IHRoaXMuI3Jvb3RJbmplY3RvciB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuI2NvbmZpZy5odW1hbkluVGhlTG9vcD8uZm9yRWFjaCgoaHVtYW5JblRoZUxvb3BUb29sKSA9PiB7XG4gICAgICB0aGlzLmFkZEh1bWFuSW5UaGVMb29wKGh1bWFuSW5UaGVMb29wVG9vbCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvcmUuc3Vic2NyaWJlKHtcbiAgICAgIG9uQWdlbnRzQ2hhbmdlZDogKCkgPT4ge1xuICAgICAgICB0aGlzLiNhZ2VudHMuc2V0KHRoaXMuY29yZS5hZ2VudHMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gICNiaW5kQ2xpZW50VG9vbDxBcmdzIGV4dGVuZHMgb2JqZWN0PihcbiAgICBjbGllbnRUb29sV2l0aEluamVjdG9yOiBGcm9udGVuZFRvb2xDb25maWc8QXJncz4gJiB7XG4gICAgICBpbmplY3RvcjogSW5qZWN0b3I7XG4gICAgfVxuICApOiBGcm9udGVuZFRvb2w8QXJncz4ge1xuICAgIGNvbnN0IHsgaW5qZWN0b3IsIGhhbmRsZXIsIC4uLmZyb250ZW5kQ2FuZGlkYXRlIH0gPSBjbGllbnRUb29sV2l0aEluamVjdG9yO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZyb250ZW5kQ2FuZGlkYXRlLFxuICAgICAgaGFuZGxlcjogKGFyZ3MpID0+IHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4gaGFuZGxlcihhcmdzIGFzIEFyZ3MpKSxcbiAgICB9O1xuICB9XG5cbiAgYWRkRnJvbnRlbmRUb29sPEFyZ3MgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGNsaWVudFRvb2xXaXRoSW5qZWN0b3I6IEZyb250ZW5kVG9vbENvbmZpZzxBcmdzPiAmIHtcbiAgICAgIGluamVjdG9yOiBJbmplY3RvcjtcbiAgICB9XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHRvb2wgPSB0aGlzLiNiaW5kQ2xpZW50VG9vbChjbGllbnRUb29sV2l0aEluamVjdG9yKTtcblxuICAgIHRoaXMuY29yZS5hZGRUb29sKHRvb2wpO1xuXG4gICAgdGhpcy4jY2xpZW50VG9vbENhbGxSZW5kZXJDb25maWdzLnVwZGF0ZSgoY3VycmVudCkgPT4gW1xuICAgICAgLi4uY3VycmVudCxcbiAgICAgIC8vIEVyYXNlIGdlbmVyaWMgcGFyYW1ldGVyIGZvciBzdG9yYWdlIHdpdGhvdXQgdXNpbmcgYGFueWAuXG4gICAgICBjbGllbnRUb29sV2l0aEluamVjdG9yIGFzIEZyb250ZW5kVG9vbENvbmZpZyxcbiAgICBdKTtcbiAgfVxuXG4gIGFkZFJlbmRlclRvb2xDYWxsPEFyZ3MgZXh0ZW5kcyBvYmplY3Q+KHJlbmRlckNvbmZpZzogUmVuZGVyVG9vbENhbGxDb25maWc8QXJncz4pOiB2b2lkIHtcbiAgICB0aGlzLiN0b29sQ2FsbFJlbmRlckNvbmZpZ3MudXBkYXRlKChjdXJyZW50KSA9PiBbXG4gICAgICAuLi5jdXJyZW50LFxuICAgICAgLy8gRXJhc2UgZ2VuZXJpYyBwYXJhbWV0ZXIgZm9yIHN0b3JhZ2Ugd2l0aG91dCB1c2luZyBgYW55YC5cbiAgICAgIHJlbmRlckNvbmZpZyBhcyBSZW5kZXJUb29sQ2FsbENvbmZpZyxcbiAgICBdKTtcbiAgfVxuXG4gICNiaW5kSHVtYW5JblRoZUxvb3BUb29sPEFyZ3MgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGh1bWFuSW5UaGVMb29wVG9vbDogSHVtYW5JblRoZUxvb3BDb25maWc8QXJncz5cbiAgKTogRnJvbnRlbmRUb29sPEFyZ3M+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uaHVtYW5JblRoZUxvb3BUb29sLFxuICAgICAgaGFuZGxlcjogKGFyZ3MsIHRvb2xDYWxsKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiNoaXRsLm9uUmVzdWx0KHRvb2xDYWxsLmlkLCBodW1hbkluVGhlTG9vcFRvb2wubmFtZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhZGRIdW1hbkluVGhlTG9vcDxBcmdzIGV4dGVuZHMgb2JqZWN0PihodW1hbkluVGhlTG9vcFRvb2w6IEh1bWFuSW5UaGVMb29wQ29uZmlnPEFyZ3M+KTogdm9pZCB7XG4gICAgdGhpcy4jaHVtYW5JblRoZUxvb3BUb29sUmVuZGVyQ29uZmlncy51cGRhdGUoKGN1cnJlbnQpID0+IFtcbiAgICAgIC4uLmN1cnJlbnQsXG4gICAgICAvLyBFcmFzZSBnZW5lcmljIHBhcmFtZXRlciBmb3Igc3RvcmFnZSB3aXRob3V0IHVzaW5nIGBhbnlgLlxuICAgICAgaHVtYW5JblRoZUxvb3BUb29sIGFzIEh1bWFuSW5UaGVMb29wQ29uZmlnLFxuICAgIF0pO1xuXG4gICAgY29uc3QgdG9vbCA9IHRoaXMuI2JpbmRIdW1hbkluVGhlTG9vcFRvb2woaHVtYW5JblRoZUxvb3BUb29sKTtcblxuICAgIHRoaXMuY29yZS5hZGRUb29sKHRvb2wpO1xuICB9XG5cbiAgI2lzU2FtZUFnZW50SWQ8VCBleHRlbmRzIHsgYWdlbnRJZD86IHN0cmluZyB9PihcbiAgICB0YXJnZXQ6IFQsXG4gICAgYWdlbnRJZD86IHN0cmluZ1xuICApOiBib29sZWFuIHtcbiAgICBpZiAoYWdlbnRJZCkge1xuICAgICAgcmV0dXJuIHRhcmdldC5hZ2VudElkID09PSBhZ2VudElkO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlVG9vbCh0b29sTmFtZTogc3RyaW5nLCBhZ2VudElkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb3JlLnJlbW92ZVRvb2wodG9vbE5hbWUpO1xuICAgIHRoaXMuI2NsaWVudFRvb2xDYWxsUmVuZGVyQ29uZmlncy51cGRhdGUoKGN1cnJlbnQpID0+XG4gICAgICBjdXJyZW50LmZpbHRlcihcbiAgICAgICAgKHJlbmRlckNvbmZpZykgPT5cbiAgICAgICAgICByZW5kZXJDb25maWcubmFtZSAhPT0gdG9vbE5hbWUgJiZcbiAgICAgICAgICB0aGlzLiNpc1NhbWVBZ2VudElkKHJlbmRlckNvbmZpZywgYWdlbnRJZClcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuI2h1bWFuSW5UaGVMb29wVG9vbFJlbmRlckNvbmZpZ3MudXBkYXRlKChjdXJyZW50KSA9PlxuICAgICAgY3VycmVudC5maWx0ZXIoXG4gICAgICAgIChyZW5kZXJDb25maWcpID0+XG4gICAgICAgICAgcmVuZGVyQ29uZmlnLm5hbWUgIT09IHRvb2xOYW1lICYmXG4gICAgICAgICAgdGhpcy4jaXNTYW1lQWdlbnRJZChyZW5kZXJDb25maWcsIGFnZW50SWQpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLiN0b29sQ2FsbFJlbmRlckNvbmZpZ3MudXBkYXRlKChjdXJyZW50KSA9PlxuICAgICAgY3VycmVudC5maWx0ZXIoXG4gICAgICAgIChyZW5kZXJDb25maWcpID0+XG4gICAgICAgICAgcmVuZGVyQ29uZmlnLm5hbWUgIT09IHRvb2xOYW1lICYmXG4gICAgICAgICAgdGhpcy4jaXNTYW1lQWdlbnRJZChyZW5kZXJDb25maWcsIGFnZW50SWQpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGdldEFnZW50KGFnZW50SWQ6IHN0cmluZyk6IEFic3RyYWN0QWdlbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvcmUuZ2V0QWdlbnQoYWdlbnRJZCk7XG4gIH1cblxuICB1cGRhdGVSdW50aW1lKG9wdGlvbnM6IHtcbiAgICBydW50aW1lVXJsPzogc3RyaW5nO1xuICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBhZ2VudHM/OiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdEFnZW50PjtcbiAgfSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLnJ1bnRpbWVVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb3JlLnNldFJ1bnRpbWVVcmwob3B0aW9ucy5ydW50aW1lVXJsKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaGVhZGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvcmUuc2V0SGVhZGVycyhvcHRpb25zLmhlYWRlcnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5wcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29yZS5zZXRQcm9wZXJ0aWVzKG9wdGlvbnMucHJvcGVydGllcyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmFnZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvcmUuc2V0QWdlbnRzX191bnNhZmVfZGV2X29ubHkob3B0aW9ucy5hZ2VudHMpO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
@@ -28,4 +28,4 @@ export function registerHumanInTheLoop(humanInTheLoop) {
|
|
|
28
28
|
copilotKit.removeTool(humanInTheLoop.name);
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rvb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFnQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQXlGMUMsTUFBTSxVQUFVLHNCQUFzQixDQUVwQyxjQUEwQztJQUMxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU3QyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FFbEMsWUFBc0M7SUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUN6QixHQUFJLFlBQW1DO1FBQ3ZDLFFBQVE7S0FDVCxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN4QixVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBRXBDLGNBQTBDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdEMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3hCLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBTaWduYWwsIFR5cGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGcm9udGVuZFRvb2wgfSBmcm9tIFwiQGNvcGlsb3RraXRuZXh0L2NvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBDb3BpbG90S2l0IH0gZnJvbSBcIi4vY29waWxvdGtpdFwiO1xuXG5leHBvcnQgdHlwZSBBbmd1bGFyVG9vbENhbGw8XG4gIEFyZ3MgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPVxuICB8IHtcbiAgICAgIGFyZ3M6IFBhcnRpYWw8QXJncz47XG4gICAgICBzdGF0dXM6IFwiaW4tcHJvZ3Jlc3NcIjtcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImV4ZWN1dGluZ1wiO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgfVxuICB8IHtcbiAgICAgIGFyZ3M6IEFyZ3M7XG4gICAgICBzdGF0dXM6IFwiY29tcGxldGVcIjtcbiAgICAgIHJlc3VsdDogc3RyaW5nO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEh1bWFuSW5UaGVMb29wVG9vbENhbGw8XG4gIEFyZ3MgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPVxuICB8IHtcbiAgICAgIGFyZ3M6IFBhcnRpYWw8QXJncz47XG4gICAgICBzdGF0dXM6IFwiaW4tcHJvZ3Jlc3NcIjtcbiAgICAgIHJlc3VsdDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImV4ZWN1dGluZ1wiO1xuICAgICAgcmVzdWx0OiB1bmRlZmluZWQ7XG4gICAgICByZXNwb25kOiAocmVzdWx0OiB1bmtub3duKSA9PiB2b2lkO1xuICAgIH1cbiAgfCB7XG4gICAgICBhcmdzOiBBcmdzO1xuICAgICAgc3RhdHVzOiBcImNvbXBsZXRlXCI7XG4gICAgICByZXN1bHQ6IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xSZW5kZXJlcjxcbiAgQXJncyBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiB7XG4gIHRvb2xDYWxsOiBTaWduYWw8QW5ndWxhclRvb2xDYWxsPEFyZ3M+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkluVGhlTG9vcFRvb2xSZW5kZXJlcjxcbiAgQXJncyBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiB7XG4gIHRvb2xDYWxsOiBTaWduYWw8SHVtYW5JblRoZUxvb3BUb29sQ2FsbDxBcmdzPj47XG59XG5cbmV4cG9ydCB0eXBlIENsaWVudFRvb2w8XG4gIEFyZ3MgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSBPbWl0PEZyb250ZW5kVG9vbDxBcmdzPiwgXCJoYW5kbGVyXCI+ICYge1xuICByZW5kZXJlcj86IFR5cGU8VG9vbFJlbmRlcmVyPEFyZ3M+Pjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyVG9vbENhbGxDb25maWc8XG4gIEFyZ3MgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyZ3M6IHouWm9kVHlwZTxBcmdzPjtcbiAgY29tcG9uZW50OiBUeXBlPFRvb2xSZW5kZXJlcjxBcmdzPj47XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRlbmRUb29sQ29uZmlnPFxuICBBcmdzIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhcmdzOiB6LlpvZFR5cGU8QXJncz47XG4gIGNvbXBvbmVudDogVHlwZTxUb29sUmVuZGVyZXI8QXJncz4+O1xuICBoYW5kbGVyOiAoYXJnczogQXJncykgPT4gUHJvbWlzZTx1bmtub3duPjtcbiAgYWdlbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdW1hbkluVGhlTG9vcENvbmZpZzxcbiAgQXJncyBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJnczogei5ab2RUeXBlPEFyZ3M+O1xuICBjb21wb25lbnQ6IFR5cGU8SHVtYW5JblRoZUxvb3BUb29sUmVuZGVyZXI8QXJncz4+O1xuICB0b29sQ2FsbDogU2lnbmFsPEh1bWFuSW5UaGVMb29wVG9vbENhbGw8QXJncz4+O1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJSZW5kZXJUb29sQ2FsbDxcbiAgQXJncyBleHRlbmRzIG9iamVjdCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPihyZW5kZXJUb29sQ2FsbDogUmVuZGVyVG9vbENhbGxDb25maWc8QXJncz4pOiB2b2lkIHtcbiAgY29uc3QgY29waWxvdEtpdCA9IGluamVjdChDb3BpbG90S2l0KTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb3BpbG90S2l0LmFkZFJlbmRlclRvb2xDYWxsKHJlbmRlclRvb2xDYWxsKTtcblxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgY29waWxvdEtpdC5yZW1vdmVUb29sKHJlbmRlclRvb2xDYWxsLm5hbWUsIHJlbmRlclRvb2xDYWxsLmFnZW50SWQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRnJvbnRlbmRUb29sPFxuICBBcmdzIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KGZyb250ZW5kVG9vbDogRnJvbnRlbmRUb29sQ29uZmlnPEFyZ3M+KTogdm9pZCB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgY29uc3QgY29waWxvdEtpdCA9IGluamVjdChDb3BpbG90S2l0KTtcblxuICBjb3BpbG90S2l0LmFkZEZyb250ZW5kVG9vbCh7XG4gICAgLi4uKGZyb250ZW5kVG9vbCBhcyBGcm9udGVuZFRvb2xDb25maWcpLFxuICAgIGluamVjdG9yLFxuICB9KTtcblxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgY29waWxvdEtpdC5yZW1vdmVUb29sKGZyb250ZW5kVG9vbC5uYW1lKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlckh1bWFuSW5UaGVMb29wPFxuICBBcmdzIGV4dGVuZHMgb2JqZWN0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KGh1bWFuSW5UaGVMb29wOiBIdW1hbkluVGhlTG9vcENvbmZpZzxBcmdzPik6IHZvaWQge1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdCBjb3BpbG90S2l0ID0gaW5qZWN0KENvcGlsb3RLaXQpO1xuXG4gIGNvcGlsb3RLaXQuYWRkSHVtYW5JblRoZUxvb3AoaHVtYW5JblRoZUxvb3ApO1xuXG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICBjb3BpbG90S2l0LnJlbW92ZVRvb2woaHVtYW5JblRoZUxvb3AubmFtZSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -90,22 +90,27 @@ class CopilotKit {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
#bindClientTool(clientToolWithInjector) {
|
|
93
|
-
const { injector, handler,
|
|
93
|
+
const { injector, handler, ...frontendCandidate } = clientToolWithInjector;
|
|
94
94
|
return {
|
|
95
|
-
|
|
96
|
-
name,
|
|
97
|
-
agentId,
|
|
95
|
+
...frontendCandidate,
|
|
98
96
|
handler: (args) => runInInjectionContext(injector, () => handler(args)),
|
|
99
|
-
parameters: args,
|
|
100
97
|
};
|
|
101
98
|
}
|
|
102
99
|
addFrontendTool(clientToolWithInjector) {
|
|
103
100
|
const tool = this.#bindClientTool(clientToolWithInjector);
|
|
104
101
|
this.core.addTool(tool);
|
|
105
|
-
this.#clientToolCallRenderConfigs.update((current) => [
|
|
102
|
+
this.#clientToolCallRenderConfigs.update((current) => [
|
|
103
|
+
...current,
|
|
104
|
+
// Erase generic parameter for storage without using `any`.
|
|
105
|
+
clientToolWithInjector,
|
|
106
|
+
]);
|
|
106
107
|
}
|
|
107
108
|
addRenderToolCall(renderConfig) {
|
|
108
|
-
this.#toolCallRenderConfigs.update((current) => [
|
|
109
|
+
this.#toolCallRenderConfigs.update((current) => [
|
|
110
|
+
...current,
|
|
111
|
+
// Erase generic parameter for storage without using `any`.
|
|
112
|
+
renderConfig,
|
|
113
|
+
]);
|
|
109
114
|
}
|
|
110
115
|
#bindHumanInTheLoopTool(humanInTheLoopTool) {
|
|
111
116
|
return {
|
|
@@ -116,7 +121,11 @@ class CopilotKit {
|
|
|
116
121
|
};
|
|
117
122
|
}
|
|
118
123
|
addHumanInTheLoop(humanInTheLoopTool) {
|
|
119
|
-
this.#humanInTheLoopToolRenderConfigs.update((current) => [
|
|
124
|
+
this.#humanInTheLoopToolRenderConfigs.update((current) => [
|
|
125
|
+
...current,
|
|
126
|
+
// Erase generic parameter for storage without using `any`.
|
|
127
|
+
humanInTheLoopTool,
|
|
128
|
+
]);
|
|
120
129
|
const tool = this.#bindHumanInTheLoopTool(humanInTheLoopTool);
|
|
121
130
|
this.core.addTool(tool);
|
|
122
131
|
}
|
|
@@ -128,9 +137,12 @@ class CopilotKit {
|
|
|
128
137
|
}
|
|
129
138
|
removeTool(toolName, agentId) {
|
|
130
139
|
this.core.removeTool(toolName);
|
|
131
|
-
this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
132
|
-
|
|
133
|
-
this.#
|
|
140
|
+
this.#clientToolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
141
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
142
|
+
this.#humanInTheLoopToolRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
143
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
144
|
+
this.#toolCallRenderConfigs.update((current) => current.filter((renderConfig) => renderConfig.name !== toolName &&
|
|
145
|
+
this.#isSameAgentId(renderConfig, agentId)));
|
|
134
146
|
}
|
|
135
147
|
getAgent(agentId) {
|
|
136
148
|
return this.core.getAgent(agentId);
|