@dollhousemcp/mcp-server 1.3.2 → 1.4.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/CHANGELOG.md +57 -0
- package/README.md +100 -5
- package/dist/collection/ElementInstaller.d.ts.map +1 -1
- package/dist/collection/ElementInstaller.js +2 -4
- package/dist/elements/agents/AgentManager.js +2 -2
- package/dist/elements/index.d.ts +0 -2
- package/dist/elements/index.d.ts.map +1 -1
- package/dist/elements/index.js +1 -3
- package/dist/elements/skills/Skill.d.ts.map +1 -1
- package/dist/elements/skills/Skill.js +3 -2
- package/dist/elements/skills/SkillManager.d.ts +89 -0
- package/dist/elements/skills/SkillManager.d.ts.map +1 -0
- package/dist/elements/skills/SkillManager.js +412 -0
- package/dist/elements/skills/index.d.ts +1 -0
- package/dist/elements/skills/index.d.ts.map +1 -1
- package/dist/elements/skills/index.js +2 -1
- package/dist/elements/templates/TemplateManager.d.ts +9 -0
- package/dist/elements/templates/TemplateManager.d.ts.map +1 -1
- package/dist/elements/templates/TemplateManager.js +28 -1
- package/dist/index.d.ts +104 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1166 -6
- package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
- package/dist/portfolio/PortfolioManager.js +1 -3
- package/dist/portfolio/types.d.ts +6 -6
- package/dist/portfolio/types.d.ts.map +1 -1
- package/dist/portfolio/types.js +7 -7
- package/dist/security/audit/config/suppressions.d.ts.map +1 -1
- package/dist/security/audit/config/suppressions.js +6 -1
- package/dist/server/ServerSetup.d.ts.map +1 -1
- package/dist/server/ServerSetup.js +5 -2
- package/dist/server/tools/CollectionTools.js +6 -6
- package/dist/server/tools/ElementTools.d.ts +11 -0
- package/dist/server/tools/ElementTools.d.ts.map +1 -0
- package/dist/server/tools/ElementTools.js +303 -0
- package/dist/server/tools/index.d.ts +1 -0
- package/dist/server/tools/index.d.ts.map +1 -1
- package/dist/server/tools/index.js +2 -1
- package/dist/server/types.d.ts +31 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +1 -1
- package/dist/utils/filesystem.d.ts.map +1 -1
- package/dist/utils/filesystem.js +17 -5
- package/package.json +1 -1
- package/dist/elements/ensembles/Ensemble.d.ts +0 -144
- package/dist/elements/ensembles/Ensemble.d.ts.map +0 -1
- package/dist/elements/ensembles/Ensemble.js +0 -860
- package/dist/elements/ensembles/EnsembleManager.d.ts +0 -85
- package/dist/elements/ensembles/EnsembleManager.d.ts.map +0 -1
- package/dist/elements/ensembles/EnsembleManager.js +0 -378
- package/dist/elements/ensembles/constants.d.ts +0 -73
- package/dist/elements/ensembles/constants.d.ts.map +0 -1
- package/dist/elements/ensembles/constants.js +0 -92
- package/dist/elements/ensembles/index.d.ts +0 -8
- package/dist/elements/ensembles/index.d.ts.map +0 -1
- package/dist/elements/ensembles/index.js +0 -8
- package/dist/elements/ensembles/types.d.ts +0 -92
- package/dist/elements/ensembles/types.d.ts.map +0 -1
- package/dist/elements/ensembles/types.js +0 -8
- package/dist/elements/memories/Memory.d.ts +0 -110
- package/dist/elements/memories/Memory.d.ts.map +0 -1
- package/dist/elements/memories/Memory.js +0 -470
- package/dist/elements/memories/MemoryManager.d.ts +0 -86
- package/dist/elements/memories/MemoryManager.d.ts.map +0 -1
- package/dist/elements/memories/MemoryManager.js +0 -435
- package/dist/elements/memories/constants.d.ts +0 -42
- package/dist/elements/memories/constants.d.ts.map +0 -1
- package/dist/elements/memories/constants.js +0 -49
- package/dist/elements/memories/index.d.ts +0 -6
- package/dist/elements/memories/index.d.ts.map +0 -1
- package/dist/elements/memories/index.js +0 -6
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element-related tool definitions and handlers
|
|
3
|
+
* Provides generic tools that work with all element types
|
|
4
|
+
*/
|
|
5
|
+
import { ElementType } from '../../portfolio/types.js';
|
|
6
|
+
export function getElementTools(server) {
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
tool: {
|
|
10
|
+
name: "list_elements",
|
|
11
|
+
description: "List all available elements of a specific type",
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: "object",
|
|
14
|
+
properties: {
|
|
15
|
+
type: {
|
|
16
|
+
type: "string",
|
|
17
|
+
description: "The element type to list",
|
|
18
|
+
enum: Object.values(ElementType),
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ["type"],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
handler: (args) => server.listElements(args.type)
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
tool: {
|
|
28
|
+
name: "activate_element",
|
|
29
|
+
description: "Activate a specific element by name",
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: "object",
|
|
32
|
+
properties: {
|
|
33
|
+
name: {
|
|
34
|
+
type: "string",
|
|
35
|
+
description: "The element name to activate",
|
|
36
|
+
},
|
|
37
|
+
type: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "The element type",
|
|
40
|
+
enum: Object.values(ElementType),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["name", "type"],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
handler: (args) => server.activateElement(args.name, args.type)
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
tool: {
|
|
50
|
+
name: "get_active_elements",
|
|
51
|
+
description: "Get information about currently active elements of a specific type",
|
|
52
|
+
inputSchema: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
type: {
|
|
56
|
+
type: "string",
|
|
57
|
+
description: "The element type to check",
|
|
58
|
+
enum: Object.values(ElementType),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ["type"],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
handler: (args) => server.getActiveElements(args.type)
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
tool: {
|
|
68
|
+
name: "deactivate_element",
|
|
69
|
+
description: "Deactivate a specific element",
|
|
70
|
+
inputSchema: {
|
|
71
|
+
type: "object",
|
|
72
|
+
properties: {
|
|
73
|
+
name: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "The element name to deactivate",
|
|
76
|
+
},
|
|
77
|
+
type: {
|
|
78
|
+
type: "string",
|
|
79
|
+
description: "The element type",
|
|
80
|
+
enum: Object.values(ElementType),
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
required: ["name", "type"],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
handler: (args) => server.deactivateElement(args.name, args.type)
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
tool: {
|
|
90
|
+
name: "get_element_details",
|
|
91
|
+
description: "Get detailed information about a specific element",
|
|
92
|
+
inputSchema: {
|
|
93
|
+
type: "object",
|
|
94
|
+
properties: {
|
|
95
|
+
name: {
|
|
96
|
+
type: "string",
|
|
97
|
+
description: "The element name to get details for",
|
|
98
|
+
},
|
|
99
|
+
type: {
|
|
100
|
+
type: "string",
|
|
101
|
+
description: "The element type",
|
|
102
|
+
enum: Object.values(ElementType),
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
required: ["name", "type"],
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
handler: (args) => server.getElementDetails(args.name, args.type)
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
tool: {
|
|
112
|
+
name: "reload_elements",
|
|
113
|
+
description: "Reload elements of a specific type from the filesystem",
|
|
114
|
+
inputSchema: {
|
|
115
|
+
type: "object",
|
|
116
|
+
properties: {
|
|
117
|
+
type: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "The element type to reload",
|
|
120
|
+
enum: Object.values(ElementType),
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
required: ["type"],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
handler: (args) => server.reloadElements(args.type)
|
|
127
|
+
},
|
|
128
|
+
// Element-specific tools
|
|
129
|
+
{
|
|
130
|
+
tool: {
|
|
131
|
+
name: "render_template",
|
|
132
|
+
description: "Render a template element with provided variables",
|
|
133
|
+
inputSchema: {
|
|
134
|
+
type: "object",
|
|
135
|
+
properties: {
|
|
136
|
+
name: {
|
|
137
|
+
type: "string",
|
|
138
|
+
description: "The template name to render",
|
|
139
|
+
},
|
|
140
|
+
variables: {
|
|
141
|
+
type: "object",
|
|
142
|
+
description: "Variables to use in the template",
|
|
143
|
+
additionalProperties: true,
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
required: ["name", "variables"],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
handler: (args) => server.renderTemplate(args.name, args.variables)
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
tool: {
|
|
153
|
+
name: "execute_agent",
|
|
154
|
+
description: "Execute an agent element with a specific goal",
|
|
155
|
+
inputSchema: {
|
|
156
|
+
type: "object",
|
|
157
|
+
properties: {
|
|
158
|
+
name: {
|
|
159
|
+
type: "string",
|
|
160
|
+
description: "The agent name to execute",
|
|
161
|
+
},
|
|
162
|
+
goal: {
|
|
163
|
+
type: "string",
|
|
164
|
+
description: "The goal for the agent to achieve",
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
required: ["name", "goal"],
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
handler: (args) => server.executeAgent(args.name, args.goal)
|
|
171
|
+
},
|
|
172
|
+
// Generic element creation tool
|
|
173
|
+
{
|
|
174
|
+
tool: {
|
|
175
|
+
name: "create_element",
|
|
176
|
+
description: "Create a new element of any type",
|
|
177
|
+
inputSchema: {
|
|
178
|
+
type: "object",
|
|
179
|
+
properties: {
|
|
180
|
+
name: {
|
|
181
|
+
type: "string",
|
|
182
|
+
description: "The element name",
|
|
183
|
+
},
|
|
184
|
+
type: {
|
|
185
|
+
type: "string",
|
|
186
|
+
description: "The element type",
|
|
187
|
+
enum: Object.values(ElementType),
|
|
188
|
+
},
|
|
189
|
+
description: {
|
|
190
|
+
type: "string",
|
|
191
|
+
description: "Element description",
|
|
192
|
+
},
|
|
193
|
+
content: {
|
|
194
|
+
type: "string",
|
|
195
|
+
description: "Element content (required for some types)",
|
|
196
|
+
},
|
|
197
|
+
metadata: {
|
|
198
|
+
type: "object",
|
|
199
|
+
description: "Additional metadata specific to element type",
|
|
200
|
+
additionalProperties: true,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
required: ["name", "type", "description"],
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
handler: (args) => server.createElement(args)
|
|
207
|
+
},
|
|
208
|
+
// Generic element editing tool
|
|
209
|
+
{
|
|
210
|
+
tool: {
|
|
211
|
+
name: "edit_element",
|
|
212
|
+
description: "Edit an existing element of any type",
|
|
213
|
+
inputSchema: {
|
|
214
|
+
type: "object",
|
|
215
|
+
properties: {
|
|
216
|
+
name: {
|
|
217
|
+
type: "string",
|
|
218
|
+
description: "The element name to edit",
|
|
219
|
+
},
|
|
220
|
+
type: {
|
|
221
|
+
type: "string",
|
|
222
|
+
description: "The element type",
|
|
223
|
+
enum: Object.values(ElementType),
|
|
224
|
+
},
|
|
225
|
+
field: {
|
|
226
|
+
type: "string",
|
|
227
|
+
description: "The field to edit (e.g., 'description', 'metadata.author', 'content')",
|
|
228
|
+
},
|
|
229
|
+
value: {
|
|
230
|
+
description: "The new value for the field",
|
|
231
|
+
oneOf: [
|
|
232
|
+
{ type: "string" },
|
|
233
|
+
{ type: "number" },
|
|
234
|
+
{ type: "boolean" },
|
|
235
|
+
{ type: "object" },
|
|
236
|
+
{ type: "array" },
|
|
237
|
+
],
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
required: ["name", "type", "field", "value"],
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
handler: (args) => server.editElement(args)
|
|
244
|
+
},
|
|
245
|
+
// Generic element validation tool
|
|
246
|
+
{
|
|
247
|
+
tool: {
|
|
248
|
+
name: "validate_element",
|
|
249
|
+
description: "Validate an element for correctness and best practices",
|
|
250
|
+
inputSchema: {
|
|
251
|
+
type: "object",
|
|
252
|
+
properties: {
|
|
253
|
+
name: {
|
|
254
|
+
type: "string",
|
|
255
|
+
description: "The element name to validate",
|
|
256
|
+
},
|
|
257
|
+
type: {
|
|
258
|
+
type: "string",
|
|
259
|
+
description: "The element type",
|
|
260
|
+
enum: Object.values(ElementType),
|
|
261
|
+
},
|
|
262
|
+
strict: {
|
|
263
|
+
type: "boolean",
|
|
264
|
+
description: "Whether to apply strict validation rules",
|
|
265
|
+
default: false,
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
required: ["name", "type"],
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
handler: (args) => server.validateElement(args)
|
|
272
|
+
},
|
|
273
|
+
// Generic element deletion tool
|
|
274
|
+
{
|
|
275
|
+
tool: {
|
|
276
|
+
name: "delete_element",
|
|
277
|
+
description: "Delete an element and optionally its associated data files",
|
|
278
|
+
inputSchema: {
|
|
279
|
+
type: "object",
|
|
280
|
+
properties: {
|
|
281
|
+
name: {
|
|
282
|
+
type: "string",
|
|
283
|
+
description: "The element name to delete",
|
|
284
|
+
},
|
|
285
|
+
type: {
|
|
286
|
+
type: "string",
|
|
287
|
+
description: "The element type",
|
|
288
|
+
enum: Object.values(ElementType),
|
|
289
|
+
},
|
|
290
|
+
deleteData: {
|
|
291
|
+
type: "boolean",
|
|
292
|
+
description: "Whether to delete associated data files (if not specified, will prompt)",
|
|
293
|
+
default: undefined,
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
required: ["name", "type"],
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
handler: (args) => server.deleteElement(args)
|
|
300
|
+
},
|
|
301
|
+
];
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudFRvb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci90b29scy9FbGVtZW50VG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBbUV2RCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQW9CO0lBQ2xELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsZUFBZTtnQkFDckIsV0FBVyxFQUFFLGdEQUFnRDtnQkFDN0QsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLDBCQUEwQjs0QkFDdkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO3lCQUNqQztxQkFDRjtvQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ25CO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDcEU7UUFDRDtZQUNFLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixXQUFXLEVBQUUscUNBQXFDO2dCQUNsRCxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsOEJBQThCO3lCQUM1Qzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGtCQUFrQjs0QkFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO3lCQUNq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TUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRSxTQUFTOzRCQUNmLFdBQVcsRUFBRSwwQ0FBMEM7NEJBQ3ZELE9BQU8sRUFBRSxLQUFLO3lCQUNmO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7aUJBQzNCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUF5QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztTQUNyRTtRQUNELGdDQUFnQztRQUNoQztZQUNFLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixXQUFXLEVBQUUsNERBQTREO2dCQUN6RSxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRTs0QkFDSixJQUFJLEVBQUUsUUFBUTs0QkFDZCxXQUFXLEVBQUUsNEJBQTRCO3lCQUMxQzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGtCQUFrQjs0QkFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO3lCQUNqQzt3QkFDRCxVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsV0FBVyxFQUFFLHlFQUF5RTs0QkFDdEYsT0FBTyxFQUFFLFNBQVM7eUJBQ25CO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7aUJBQzNCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUF1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUNqRTtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbGVtZW50LXJlbGF0ZWQgdG9vbCBkZWZpbml0aW9ucyBhbmQgaGFuZGxlcnNcbiAqIFByb3ZpZGVzIGdlbmVyaWMgdG9vbHMgdGhhdCB3b3JrIHdpdGggYWxsIGVsZW1lbnQgdHlwZXNcbiAqL1xuXG5pbXBvcnQgeyBUb29sRGVmaW5pdGlvbiB9IGZyb20gJy4vVG9vbFJlZ2lzdHJ5LmpzJztcbmltcG9ydCB7IElUb29sSGFuZGxlciB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IEVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vcG9ydGZvbGlvL3R5cGVzLmpzJztcblxuLy8gVHlwZS1zYWZlIGludGVyZmFjZXMgZm9yIGFsbCBlbGVtZW50IHRvb2wgYXJndW1lbnRzXG5pbnRlcmZhY2UgTGlzdEVsZW1lbnRzQXJncyB7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFjdGl2YXRlRWxlbWVudEFyZ3Mge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIERlYWN0aXZhdGVFbGVtZW50QXJncyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgR2V0RWxlbWVudERldGFpbHNBcmdzIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBHZXRBY3RpdmVFbGVtZW50c0FyZ3Mge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDcmVhdGVFbGVtZW50QXJncyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmludGVyZmFjZSBFZGl0RWxlbWVudEFyZ3Mge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZmllbGQ6IHN0cmluZztcbiAgdmFsdWU6IGFueTtcbn1cblxuaW50ZXJmYWNlIFZhbGlkYXRlRWxlbWVudEFyZ3Mge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgc3RyaWN0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIERlbGV0ZUVsZW1lbnRBcmdzIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlbGV0ZURhdGE/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgUmVuZGVyVGVtcGxhdGVBcmdzIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmludGVyZmFjZSBSZWxvYWRFbGVtZW50c0FyZ3Mge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFeGVjdXRlQWdlbnRBcmdzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBnb2FsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50VG9vbHMoc2VydmVyOiBJVG9vbEhhbmRsZXIpOiBBcnJheTx7IHRvb2w6IFRvb2xEZWZpbml0aW9uOyBoYW5kbGVyOiBhbnkgfT4ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJsaXN0X2VsZW1lbnRzXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3QgYWxsIGF2YWlsYWJsZSBlbGVtZW50cyBvZiBhIHNwZWNpZmljIHR5cGVcIixcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgdHlwZSB0byBsaXN0XCIsXG4gICAgICAgICAgICAgIGVudW06IE9iamVjdC52YWx1ZXMoRWxlbWVudFR5cGUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJ0eXBlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBMaXN0RWxlbWVudHNBcmdzKSA9PiBzZXJ2ZXIubGlzdEVsZW1lbnRzKGFyZ3MudHlwZSlcbiAgICB9LFxuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJhY3RpdmF0ZV9lbGVtZW50XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkFjdGl2YXRlIGEgc3BlY2lmaWMgZWxlbWVudCBieSBuYW1lXCIsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IG5hbWUgdG8gYWN0aXZhdGVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IHR5cGVcIixcbiAgICAgICAgICAgICAgZW51bTogT2JqZWN0LnZhbHVlcyhFbGVtZW50VHlwZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ0eXBlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBBY3RpdmF0ZUVsZW1lbnRBcmdzKSA9PiBzZXJ2ZXIuYWN0aXZhdGVFbGVtZW50KGFyZ3MubmFtZSwgYXJncy50eXBlKVxuICAgIH0sXG4gICAge1xuICAgICAgdG9vbDoge1xuICAgICAgICBuYW1lOiBcImdldF9hY3RpdmVfZWxlbWVudHNcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiR2V0IGluZm9ybWF0aW9uIGFib3V0IGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudHMgb2YgYSBzcGVjaWZpYyB0eXBlXCIsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IHR5cGUgdG8gY2hlY2tcIixcbiAgICAgICAgICAgICAgZW51bTogT2JqZWN0LnZhbHVlcyhFbGVtZW50VHlwZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcInR5cGVcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogKGFyZ3M6IEdldEFjdGl2ZUVsZW1lbnRzQXJncykgPT4gc2VydmVyLmdldEFjdGl2ZUVsZW1lbnRzKGFyZ3MudHlwZSlcbiAgICB9LFxuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJkZWFjdGl2YXRlX2VsZW1lbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiRGVhY3RpdmF0ZSBhIHNwZWNpZmljIGVsZW1lbnRcIixcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgbmFtZSB0byBkZWFjdGl2YXRlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZWxlbWVudCB0eXBlXCIsXG4gICAgICAgICAgICAgIGVudW06IE9iamVjdC52YWx1ZXMoRWxlbWVudFR5cGUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidHlwZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoYXJnczogRGVhY3RpdmF0ZUVsZW1lbnRBcmdzKSA9PiBzZXJ2ZXIuZGVhY3RpdmF0ZUVsZW1lbnQoYXJncy5uYW1lLCBhcmdzLnR5cGUpXG4gICAgfSxcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwiZ2V0X2VsZW1lbnRfZGV0YWlsc1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJHZXQgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBlbGVtZW50XCIsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IG5hbWUgdG8gZ2V0IGRldGFpbHMgZm9yXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZWxlbWVudCB0eXBlXCIsXG4gICAgICAgICAgICAgIGVudW06IE9iamVjdC52YWx1ZXMoRWxlbWVudFR5cGUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidHlwZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoYXJnczogR2V0RWxlbWVudERldGFpbHNBcmdzKSA9PiBzZXJ2ZXIuZ2V0RWxlbWVudERldGFpbHMoYXJncy5uYW1lLCBhcmdzLnR5cGUpXG4gICAgfSxcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwicmVsb2FkX2VsZW1lbnRzXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJlbG9hZCBlbGVtZW50cyBvZiBhIHNwZWNpZmljIHR5cGUgZnJvbSB0aGUgZmlsZXN5c3RlbVwiLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZWxlbWVudCB0eXBlIHRvIHJlbG9hZFwiLFxuICAgICAgICAgICAgICBlbnVtOiBPYmplY3QudmFsdWVzKEVsZW1lbnRUeXBlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogW1widHlwZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoYXJnczogUmVsb2FkRWxlbWVudHNBcmdzKSA9PiBzZXJ2ZXIucmVsb2FkRWxlbWVudHMoYXJncy50eXBlKVxuICAgIH0sXG4gICAgLy8gRWxlbWVudC1zcGVjaWZpYyB0b29sc1xuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJyZW5kZXJfdGVtcGxhdGVcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUmVuZGVyIGEgdGVtcGxhdGUgZWxlbWVudCB3aXRoIHByb3ZpZGVkIHZhcmlhYmxlc1wiLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgdGVtcGxhdGUgbmFtZSB0byByZW5kZXJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVmFyaWFibGVzIHRvIHVzZSBpbiB0aGUgdGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ2YXJpYWJsZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogKGFyZ3M6IFJlbmRlclRlbXBsYXRlQXJncykgPT4gc2VydmVyLnJlbmRlclRlbXBsYXRlKGFyZ3MubmFtZSwgYXJncy52YXJpYWJsZXMpXG4gICAgfSxcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwiZXhlY3V0ZV9hZ2VudFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJFeGVjdXRlIGFuIGFnZW50IGVsZW1lbnQgd2l0aCBhIHNwZWNpZmljIGdvYWxcIixcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGFnZW50IG5hbWUgdG8gZXhlY3V0ZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdvYWw6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGdvYWwgZm9yIHRoZSBhZ2VudCB0byBhY2hpZXZlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJnb2FsXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBFeGVjdXRlQWdlbnRBcmdzKSA9PiBzZXJ2ZXIuZXhlY3V0ZUFnZW50KGFyZ3MubmFtZSwgYXJncy5nb2FsKVxuICAgIH0sXG4gICAgLy8gR2VuZXJpYyBlbGVtZW50IGNyZWF0aW9uIHRvb2xcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwiY3JlYXRlX2VsZW1lbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ3JlYXRlIGEgbmV3IGVsZW1lbnQgb2YgYW55IHR5cGVcIixcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgbmFtZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgdHlwZVwiLFxuICAgICAgICAgICAgICBlbnVtOiBPYmplY3QudmFsdWVzKEVsZW1lbnRUeXBlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbGVtZW50IGRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbGVtZW50IGNvbnRlbnQgKHJlcXVpcmVkIGZvciBzb21lIHR5cGVzKVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZGl0aW9uYWwgbWV0YWRhdGEgc3BlY2lmaWMgdG8gZWxlbWVudCB0eXBlXCIsXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwidHlwZVwiLCBcImRlc2NyaXB0aW9uXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBDcmVhdGVFbGVtZW50QXJncykgPT4gc2VydmVyLmNyZWF0ZUVsZW1lbnQoYXJncylcbiAgICB9LFxuICAgIC8vIEdlbmVyaWMgZWxlbWVudCBlZGl0aW5nIHRvb2xcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwiZWRpdF9lbGVtZW50XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkVkaXQgYW4gZXhpc3RpbmcgZWxlbWVudCBvZiBhbnkgdHlwZVwiLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZWxlbWVudCBuYW1lIHRvIGVkaXRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IHR5cGVcIixcbiAgICAgICAgICAgICAgZW51bTogT2JqZWN0LnZhbHVlcyhFbGVtZW50VHlwZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGZpZWxkIHRvIGVkaXQgKGUuZy4sICdkZXNjcmlwdGlvbicsICdtZXRhZGF0YS5hdXRob3InLCAnY29udGVudCcpXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGZpZWxkXCIsXG4gICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgICAgICAgICAgeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICAgIHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgICAgICAgICAgICAgIHsgdHlwZTogXCJhcnJheVwiIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ0eXBlXCIsIFwiZmllbGRcIiwgXCJ2YWx1ZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoYXJnczogRWRpdEVsZW1lbnRBcmdzKSA9PiBzZXJ2ZXIuZWRpdEVsZW1lbnQoYXJncylcbiAgICB9LFxuICAgIC8vIEdlbmVyaWMgZWxlbWVudCB2YWxpZGF0aW9uIHRvb2xcbiAgICB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIG5hbWU6IFwidmFsaWRhdGVfZWxlbWVudFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJWYWxpZGF0ZSBhbiBlbGVtZW50IGZvciBjb3JyZWN0bmVzcyBhbmQgYmVzdCBwcmFjdGljZXNcIixcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgbmFtZSB0byB2YWxpZGF0ZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGVsZW1lbnQgdHlwZVwiLFxuICAgICAgICAgICAgICBlbnVtOiBPYmplY3QudmFsdWVzKEVsZW1lbnRUeXBlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJpY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gYXBwbHkgc3RyaWN0IHZhbGlkYXRpb24gcnVsZXNcIixcbiAgICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJ0eXBlXCJdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6IChhcmdzOiBWYWxpZGF0ZUVsZW1lbnRBcmdzKSA9PiBzZXJ2ZXIudmFsaWRhdGVFbGVtZW50KGFyZ3MpXG4gICAgfSxcbiAgICAvLyBHZW5lcmljIGVsZW1lbnQgZGVsZXRpb24gdG9vbFxuICAgIHtcbiAgICAgIHRvb2w6IHtcbiAgICAgICAgbmFtZTogXCJkZWxldGVfZWxlbWVudFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJEZWxldGUgYW4gZWxlbWVudCBhbmQgb3B0aW9uYWxseSBpdHMgYXNzb2NpYXRlZCBkYXRhIGZpbGVzXCIsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbGVtZW50IG5hbWUgdG8gZGVsZXRlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZWxlbWVudCB0eXBlXCIsXG4gICAgICAgICAgICAgIGVudW06IE9iamVjdC52YWx1ZXMoRWxlbWVudFR5cGUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZURhdGE6IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gZGVsZXRlIGFzc29jaWF0ZWQgZGF0YSBmaWxlcyAoaWYgbm90IHNwZWNpZmllZCwgd2lsbCBwcm9tcHQpXCIsXG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogW1wibmFtZVwiLCBcInR5cGVcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogKGFyZ3M6IERlbGV0ZUVsZW1lbnRBcmdzKSA9PiBzZXJ2ZXIuZGVsZXRlRWxlbWVudChhcmdzKVxuICAgIH0sXG4gIF07XG59Il19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './ToolRegistry.js';
|
|
5
5
|
export * from './PersonaTools.js';
|
|
6
|
+
export * from './ElementTools.js';
|
|
6
7
|
export * from './CollectionTools.js';
|
|
7
8
|
export * from './UserTools.js';
|
|
8
9
|
export * from './UpdateTools.js';
|
|
9
10
|
export * from './ConfigTools.js';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL3Rvb2xzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3J0IGFsbCB0b29sIG1vZHVsZXNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL1Rvb2xSZWdpc3RyeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1BlcnNvbmFUb29scy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0VsZW1lbnRUb29scy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rpb25Ub29scy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1VzZXJUb29scy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1VwZGF0ZVRvb2xzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uZmlnVG9vbHMuanMnOyJdfQ==
|
package/dist/server/types.d.ts
CHANGED
|
@@ -11,6 +11,37 @@ export interface IToolHandler {
|
|
|
11
11
|
createPersona(name: string, description: string, category: string, instructions: string, triggers?: string): Promise<any>;
|
|
12
12
|
editPersona(persona: string, field: string, value: string): Promise<any>;
|
|
13
13
|
validatePersona(persona: string): Promise<any>;
|
|
14
|
+
listElements(type: string): Promise<any>;
|
|
15
|
+
activateElement(name: string, type: string): Promise<any>;
|
|
16
|
+
getActiveElements(type: string): Promise<any>;
|
|
17
|
+
deactivateElement(name: string, type: string): Promise<any>;
|
|
18
|
+
getElementDetails(name: string, type: string): Promise<any>;
|
|
19
|
+
reloadElements(type: string): Promise<any>;
|
|
20
|
+
createElement(args: {
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
description: string;
|
|
24
|
+
content?: string;
|
|
25
|
+
metadata?: Record<string, any>;
|
|
26
|
+
}): Promise<any>;
|
|
27
|
+
editElement(args: {
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
field: string;
|
|
31
|
+
value: any;
|
|
32
|
+
}): Promise<any>;
|
|
33
|
+
validateElement(args: {
|
|
34
|
+
name: string;
|
|
35
|
+
type: string;
|
|
36
|
+
strict?: boolean;
|
|
37
|
+
}): Promise<any>;
|
|
38
|
+
deleteElement(args: {
|
|
39
|
+
name: string;
|
|
40
|
+
type: string;
|
|
41
|
+
deleteData?: boolean;
|
|
42
|
+
}): Promise<any>;
|
|
43
|
+
renderTemplate(name: string, variables: Record<string, any>): Promise<any>;
|
|
44
|
+
executeAgent(name: string, goal: string): Promise<any>;
|
|
14
45
|
browseCollection(section?: string, type?: string): Promise<any>;
|
|
15
46
|
searchCollection(query: string): Promise<any>;
|
|
16
47
|
getCollectionContent(path: string): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAE3B,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1H,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG/C,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAG7C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGlC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGhC,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAGnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,iBAAiB,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
package/dist/server/types.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Server interface types to avoid circular dependencies
|
|
3
3
|
*/
|
|
4
4
|
export {};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2ZXIgaW50ZXJmYWNlIHR5cGVzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvb2xIYW5kbGVyIHtcbiAgLy8gUGVyc29uYSB0b29scyAobGVnYWN5IC0gd2lsbCBjYWxsIGVsZW1lbnQgdG9vbHMgaW50ZXJuYWxseSlcbiAgbGlzdFBlcnNvbmFzKCk6IFByb21pc2U8YW55PjtcbiAgYWN0aXZhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZ2V0QWN0aXZlUGVyc29uYSgpOiBQcm9taXNlPGFueT47XG4gIGRlYWN0aXZhdGVQZXJzb25hKCk6IFByb21pc2U8YW55PjtcbiAgZ2V0UGVyc29uYURldGFpbHMocGVyc29uYTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRQZXJzb25hcygpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZVBlcnNvbmEobmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBjYXRlZ29yeTogc3RyaW5nLCBpbnN0cnVjdGlvbnM6IHN0cmluZywgdHJpZ2dlcnM/OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGVkaXRQZXJzb25hKHBlcnNvbmE6IHN0cmluZywgZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgdmFsaWRhdGVQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQgdG9vbHMgKGdlbmVyaWMgZm9yIGFsbCBlbGVtZW50IHR5cGVzKVxuICBsaXN0RWxlbWVudHModHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEFjdGl2ZUVsZW1lbnRzKHR5cGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZGVhY3RpdmF0ZUVsZW1lbnQobmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldEVsZW1lbnREZXRhaWxzKG5hbWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWxvYWRFbGVtZW50cyh0eXBlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGNyZWF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nOyBjb250ZW50Pzogc3RyaW5nOyBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT59KTogUHJvbWlzZTxhbnk+O1xuICBlZGl0RWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnl9KTogUHJvbWlzZTxhbnk+O1xuICB2YWxpZGF0ZUVsZW1lbnQoYXJnczoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBzdHJpY3Q/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgZGVsZXRlRWxlbWVudChhcmdzOiB7bmFtZTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGRlbGV0ZURhdGE/OiBib29sZWFufSk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIEVsZW1lbnQtc3BlY2lmaWMgdG9vbHNcbiAgcmVuZGVyVGVtcGxhdGUobmFtZTogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT47XG4gIGV4ZWN1dGVBZ2VudChuYW1lOiBzdHJpbmcsIGdvYWw6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIENvbGxlY3Rpb24gdG9vbHNcbiAgYnJvd3NlQ29sbGVjdGlvbihzZWN0aW9uPzogc3RyaW5nLCB0eXBlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBzZWFyY2hDb2xsZWN0aW9uKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGdldENvbGxlY3Rpb25Db250ZW50KHBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgaW5zdGFsbENvbnRlbnQocGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBzdWJtaXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgXG4gIC8vIFVzZXIgdG9vbHNcbiAgc2V0VXNlcklkZW50aXR5KHVzZXJuYW1lOiBzdHJpbmcsIGVtYWlsPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBnZXRVc2VySWRlbnRpdHkoKTogUHJvbWlzZTxhbnk+O1xuICBjbGVhclVzZXJJZGVudGl0eSgpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBVcGRhdGUgdG9vbHNcbiAgY2hlY2tGb3JVcGRhdGVzKCk6IFByb21pc2U8YW55PjtcbiAgdXBkYXRlU2VydmVyKGNvbmZpcm06IGJvb2xlYW4pOiBQcm9taXNlPGFueT47XG4gIHJvbGxiYWNrVXBkYXRlKGNvbmZpcm06IGJvb2xlYW4pOiBQcm9taXNlPGFueT47XG4gIGdldFNlcnZlclN0YXR1cygpOiBQcm9taXNlPGFueT47XG4gIFxuICAvLyBDb25maWcgdG9vbHNcbiAgY29uZmlndXJlSW5kaWNhdG9yKGNvbmZpZzogYW55KTogUHJvbWlzZTxhbnk+O1xuICBnZXRJbmRpY2F0b3JDb25maWcoKTogUHJvbWlzZTxhbnk+O1xuICBcbiAgLy8gRXhwb3J0L0ltcG9ydC9TaGFyZSB0b29sc1xuICBleHBvcnRQZXJzb25hKHBlcnNvbmE6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgZXhwb3J0QWxsUGVyc29uYXMoaW5jbHVkZURlZmF1bHRzPzogYm9vbGVhbik6IFByb21pc2U8YW55PjtcbiAgaW1wb3J0UGVyc29uYShzb3VyY2U6IHN0cmluZywgb3ZlcndyaXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55PjtcbiAgc2hhcmVQZXJzb25hKHBlcnNvbmE6IHN0cmluZywgZXhwaXJ5RGF5cz86IG51bWJlcik6IFByb21pc2U8YW55PjtcbiAgaW1wb3J0RnJvbVVybCh1cmw6IHN0cmluZywgb3ZlcndyaXRlPzogYm9vbGVhbik6IFByb21pc2U8YW55Pjtcbn0iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAQD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/utils/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAQD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B5C;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF"}
|
package/dist/utils/filesystem.js
CHANGED
|
@@ -44,12 +44,24 @@ export function slugify(text) {
|
|
|
44
44
|
// Previously: Multiple replace() operations with unbounded quantifiers could cause exponential backtracking
|
|
45
45
|
// Now: Single-pass transformation with built-in length limit
|
|
46
46
|
const normalized = text.toLowerCase();
|
|
47
|
-
|
|
47
|
+
const transformed = normalized
|
|
48
48
|
.split('')
|
|
49
49
|
.map(char => ALPHANUMERIC_REGEX.test(char) ? char : '-')
|
|
50
|
-
.join('')
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
.join('');
|
|
51
|
+
// SECURITY FIX: Avoid polynomial regex by using separate operations
|
|
52
|
+
// Trim leading hyphens
|
|
53
|
+
let start = 0;
|
|
54
|
+
while (start < transformed.length && transformed[start] === '-') {
|
|
55
|
+
start++;
|
|
56
|
+
}
|
|
57
|
+
// Trim trailing hyphens
|
|
58
|
+
let end = transformed.length - 1;
|
|
59
|
+
while (end >= start && transformed[end] === '-') {
|
|
60
|
+
end--;
|
|
61
|
+
}
|
|
62
|
+
// Extract the trimmed portion and collapse multiple hyphens
|
|
63
|
+
const trimmed = transformed.slice(start, end + 1);
|
|
64
|
+
return trimmed.replace(/-{2,}/g, '-'); // This is safe as it's linear
|
|
53
65
|
}
|
|
54
66
|
/**
|
|
55
67
|
* Ensure a directory exists, create if it doesn't
|
|
@@ -91,4 +103,4 @@ export async function createBackup(sourcePath, backupPath) {
|
|
|
91
103
|
// Copy directory recursively
|
|
92
104
|
await fs.cp(sourcePath, backupPath, { recursive: true });
|
|
93
105
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxRQUFRLFNBQVMsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsc0ZBQXNGO0FBQ3RGLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBRXRDLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLE1BQWU7SUFDbkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN2QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMs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LENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsUUFBZ0I7SUFDaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztBQUNwQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQ3ZFLGlDQUFpQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWpDLDZCQUE2QjtJQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpbGVzeXN0ZW0gYW5kIHN0cmluZyBtYW5pcHVsYXRpb24gdXRpbGl0aWVzXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEFESkVDVElWRVMsIEFOSU1BTFMgfSBmcm9tICcuLi9jb25maWcvY29uc3RhbnRzLmpzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm9ueW1vdXMgSUQgZm9yIHVzZXJzIHdpdGhvdXQgaWRlbnRpdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQW5vbnltb3VzSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgYWRqZWN0aXZlID0gQURKRUNUSVZFU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBBREpFQ1RJVkVTLmxlbmd0aCldO1xuICBjb25zdCBhbmltYWwgPSBBTklNQUxTW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIEFOSU1BTFMubGVuZ3RoKV07XG4gIGNvbnN0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA2KTtcbiAgcmV0dXJuIGBhbm9uLSR7YWRqZWN0aXZlfS0ke2FuaW1hbH0tJHtyYW5kb219YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBmb3IgcGVyc29uYXNcbiAqL1xuLy8gUHJlLWNvbXBpbGVkIHJlZ2V4IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKGF2b2lkcyBjcmVhdGluZyByZWdleCBvbiBlYWNoIGNoYXJhY3RlcilcbmNvbnN0IEFMUEhBTlVNRVJJQ19SRUdFWCA9IC9bYS16MC05XS87XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKHBlcnNvbmFOYW1lOiBzdHJpbmcsIGF1dGhvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRhdGVTdHIgPSBub3cudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCkucmVwbGFjZSgvLS9nLCAnJyk7XG4gIGNvbnN0IHRpbWVTdHIgPSBub3cudG9UaW1lU3RyaW5nKCkuc2xpY2UoMCwgOCkucmVwbGFjZSgvOi9nLCAnJyk7XG4gIC8vIFNFQ1VSSVRZIEZJWDogUHJldmVudCBSZURvUyBieSB1c2luZyBhIHNpbmdsZS1wYXNzIGFwcHJvYWNoXG4gIC8vIFByZXZpb3VzbHk6IE11bHRpcGxlIHJlcGxhY2UoKSBvcGVyYXRpb25zIHdpdGggdW5ib3VuZGVkIHF1YW50aWZpZXJzIGNvdWxkIGNhdXNlIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZ1xuICAvLyBOb3c6IFNpbmdsZS1wYXNzIHRyYW5zZm9ybWF0aW9uIHdpdGggYnVpbHQtaW4gbGVuZ3RoIGxpbWl0XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBwZXJzb25hTmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBzYW5pdGl6ZWROYW1lID0gbm9ybWFsaXplZFxuICAgIC5zcGxpdCgnJylcbiAgICAubWFwKGNoYXIgPT4gQUxQSEFOVU1FUklDX1JFR0VYLnRlc3QoY2hhcikgPyBjaGFyIDogJy0nKVxuICAgIC5qb2luKCcnKVxuICAgIC5zdWJzdHJpbmcoMCwgMTAwKSAvLyBMaW1pdCBhZnRlciB0cmFuc2Zvcm1hdGlvbiB0byBwcmVzZXJ2ZSBzdHJ1Y3R1cmVcbiAgICAucmVwbGFjZSgvXi0rfC0rJC9nLCAnJykgLy8gT25seSB0cmltIGxlYWRpbmcvdHJhaWxpbmcgaHlwaGVuc1xuICAgIC5yZXBsYWNlKC8tezIsfS9nLCAnLScpOyAvLyBDb2xsYXBzZSBtdWx0aXBsZSBoeXBoZW5zXG4gIGNvbnN0IHdob01hZGVJdCA9IGF1dGhvciB8fCBnZW5lcmF0ZUFub255bW91c0lkKCk7XG4gIFxuICByZXR1cm4gYCR7c2FuaXRpemVkTmFtZX1fJHtkYXRlU3RyfS0ke3RpbWVTdHJ9XyR7d2hvTWFkZUl0fWA7XG59XG5cbi8qKlxuICogQ29udmVydCB0ZXh0IHRvIFVSTC1zYWZlIHNsdWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsdWdpZnkodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gU0VDVVJJVFkgRklYOiBQcmV2ZW50IFJlRG9TIGJ5IHVzaW5nIGEgc2luZ2xlLXBhc3MgYXBwcm9hY2hcbiAgLy8gUHJldmlvdXNseTogTXVsdGlwbGUgcmVwbGFjZSgpIG9wZXJhdGlvbnMgd2l0aCB1bmJvdW5kZWQgcXVhbnRpZmllcnMgY291bGQgY2F1c2UgZXhwb25lbnRpYWwgYmFja3RyYWNraW5nXG4gIC8vIE5vdzogU2luZ2xlLXBhc3MgdHJhbnNmb3JtYXRpb24gd2l0aCBidWlsdC1pbiBsZW5ndGggbGltaXRcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHRleHQudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBub3JtYWxpemVkXG4gICAgLnNwbGl0KCcnKVxuICAgIC5tYXAoY2hhciA9PiBBTFBIQU5VTUVSSUNfUkVHRVgudGVzdChjaGFyKSA/IGNoYXIgOiAnLScpXG4gICAgLmpvaW4oJycpO1xuICBcbiAgLy8gU0VDVVJJVFkgRklYOiBBdm9pZCBwb2x5bm9taWFsIHJlZ2V4IGJ5IHVzaW5nIHNlcGFyYXRlIG9wZXJhdGlvbnNcbiAgLy8gVHJpbSBsZWFkaW5nIGh5cGhlbnNcbiAgbGV0IHN0YXJ0ID0gMDtcbiAgd2hpbGUgKHN0YXJ0IDwgdHJhbnNmb3JtZWQubGVuZ3RoICYmIHRyYW5zZm9ybWVkW3N0YXJ0XSA9PT0gJy0nKSB7XG4gICAgc3RhcnQrKztcbiAgfVxuICBcbiAgLy8gVHJpbSB0cmFpbGluZyBoeXBoZW5zXG4gIGxldCBlbmQgPSB0cmFuc2Zvcm1lZC5sZW5ndGggLSAxO1xuICB3aGlsZSAoZW5kID49IHN0YXJ0ICYmIHRyYW5zZm9ybWVkW2VuZF0gPT09ICctJykge1xuICAgIGVuZC0tO1xuICB9XG4gIFxuICAvLyBFeHRyYWN0IHRoZSB0cmltbWVkIHBvcnRpb24gYW5kIGNvbGxhcHNlIG11bHRpcGxlIGh5cGhlbnNcbiAgY29uc3QgdHJpbW1lZCA9IHRyYW5zZm9ybWVkLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTtcbiAgcmV0dXJuIHRyaW1tZWQucmVwbGFjZSgvLXsyLH0vZywgJy0nKTsgLy8gVGhpcyBpcyBzYWZlIGFzIGl0J3MgbGluZWFyXG59XG5cbi8qKlxuICogRW5zdXJlIGEgZGlyZWN0b3J5IGV4aXN0cywgY3JlYXRlIGlmIGl0IGRvZXNuJ3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZURpcmVjdG9yeShkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5hY2Nlc3MoZGlyUGF0aCk7XG4gIH0gY2F0Y2gge1xuICAgIGF3YWl0IGZzLm1rZGlyKGRpclBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBmaWxlIGV4aXN0c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyhmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMuYWNjZXNzKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogR2V0IGZpbGUgc2l6ZSBpbiBieXRlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RmlsZVNpemUoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IHN0YXRzID0gYXdhaXQgZnMuc3RhdChmaWxlUGF0aCk7XG4gIHJldHVybiBzdGF0cy5zaXplO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGJhY2t1cCBvZiBhIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQmFja3VwKHNvdXJjZVBhdGg6IHN0cmluZywgYmFja3VwUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIEVuc3VyZSBiYWNrdXAgZGlyZWN0b3J5IGV4aXN0c1xuICBjb25zdCBiYWNrdXBEaXIgPSBwYXRoLmRpcm5hbWUoYmFja3VwUGF0aCk7XG4gIGF3YWl0IGVuc3VyZURpcmVjdG9yeShiYWNrdXBEaXIpO1xuICBcbiAgLy8gQ29weSBkaXJlY3RvcnkgcmVjdXJzaXZlbHlcbiAgYXdhaXQgZnMuY3Aoc291cmNlUGF0aCwgYmFja3VwUGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG59Il19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dollhousemcp/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|