@miragon/mcp-toolkit-core 2.5.0 → 2.7.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.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/dist/auth/caller.d.ts +55 -0
  3. package/dist/auth/caller.d.ts.map +1 -0
  4. package/dist/auth/caller.js +81 -0
  5. package/dist/auth/caller.js.map +1 -0
  6. package/dist/engine/pipeline-executor.d.ts +32 -4
  7. package/dist/engine/pipeline-executor.d.ts.map +1 -1
  8. package/dist/engine/pipeline-executor.js +22 -2
  9. package/dist/engine/pipeline-executor.js.map +1 -1
  10. package/dist/framework/catalogue.d.ts +2 -2
  11. package/dist/framework/render-view.d.ts +6 -4
  12. package/dist/framework/render-view.d.ts.map +1 -1
  13. package/dist/framework/render-view.js.map +1 -1
  14. package/dist/index.d.ts +5 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/middleware/org-gate.d.ts +31 -7
  19. package/dist/middleware/org-gate.d.ts.map +1 -1
  20. package/dist/middleware/org-gate.js +9 -6
  21. package/dist/middleware/org-gate.js.map +1 -1
  22. package/dist/middleware/role-filter.d.ts +39 -7
  23. package/dist/middleware/role-filter.d.ts.map +1 -1
  24. package/dist/middleware/role-filter.js +24 -28
  25. package/dist/middleware/role-filter.js.map +1 -1
  26. package/dist/tools/create-framework-app.d.ts +12 -1
  27. package/dist/tools/create-framework-app.d.ts.map +1 -1
  28. package/dist/tools/create-framework-app.js +10 -5
  29. package/dist/tools/create-framework-app.js.map +1 -1
  30. package/dist/tools/dashboard-store.d.ts +83 -13
  31. package/dist/tools/dashboard-store.d.ts.map +1 -1
  32. package/dist/tools/dashboard-store.js +174 -73
  33. package/dist/tools/dashboard-store.js.map +1 -1
  34. package/dist/tools/index.d.ts +5 -3
  35. package/dist/tools/index.d.ts.map +1 -1
  36. package/dist/tools/index.js +1 -1
  37. package/dist/tools/index.js.map +1 -1
  38. package/dist/tools/install-toolkit.d.ts +22 -1
  39. package/dist/tools/install-toolkit.d.ts.map +1 -1
  40. package/dist/tools/install-toolkit.js +15 -3
  41. package/dist/tools/install-toolkit.js.map +1 -1
  42. package/dist/tools/register-catalogue-tool.d.ts.map +1 -1
  43. package/dist/tools/register-catalogue-tool.js +2 -5
  44. package/dist/tools/register-catalogue-tool.js.map +1 -1
  45. package/dist/tools/register-dashboard-tools.d.ts +15 -3
  46. package/dist/tools/register-dashboard-tools.d.ts.map +1 -1
  47. package/dist/tools/register-dashboard-tools.js +120 -20
  48. package/dist/tools/register-dashboard-tools.js.map +1 -1
  49. package/dist/tools/register-framework-tools.d.ts.map +1 -1
  50. package/dist/tools/register-framework-tools.js +4 -6
  51. package/dist/tools/register-framework-tools.js.map +1 -1
  52. package/dist/tools/register-tool.d.ts +67 -9
  53. package/dist/tools/register-tool.d.ts.map +1 -1
  54. package/dist/tools/register-tool.js +17 -8
  55. package/dist/tools/register-tool.js.map +1 -1
  56. package/dist/tools/register-widget-tool.d.ts +46 -5
  57. package/dist/tools/register-widget-tool.d.ts.map +1 -1
  58. package/dist/tools/register-widget-tool.js +25 -27
  59. package/dist/tools/register-widget-tool.js.map +1 -1
  60. package/dist/tools/registrar-shared.d.ts +74 -0
  61. package/dist/tools/registrar-shared.d.ts.map +1 -0
  62. package/dist/tools/registrar-shared.js +32 -0
  63. package/dist/tools/registrar-shared.js.map +1 -0
  64. package/dist/tools/tool-name-guard.d.ts +37 -0
  65. package/dist/tools/tool-name-guard.d.ts.map +1 -0
  66. package/dist/tools/tool-name-guard.js +81 -0
  67. package/dist/tools/tool-name-guard.js.map +1 -0
  68. package/package.json +7 -7
@@ -59,12 +59,19 @@ export function parseDashboardRecord(raw) {
59
59
  function nowIso() {
60
60
  return new Date().toISOString();
61
61
  }
62
- function ownedBy(record, userId) {
62
+ /**
63
+ * The ownership rule of the {@link DashboardStore} contract, shared by every
64
+ * built-in store and by the dashboard tools: no caller id = global scope
65
+ * (no-OAuth boot, everything visible); an identified caller owns exactly the
66
+ * records stamped with its id — an owner-less record is not one of them.
67
+ *
68
+ * Exported so a custom store applies the same rule instead of re-deriving it
69
+ * (the 2.5 rule also granted owner-less records to every identified caller).
70
+ */
71
+ export function isDashboardOwnedBy(ownerId, userId) {
63
72
  if (!userId)
64
73
  return true;
65
- if (!record.userId)
66
- return true;
67
- return record.userId === userId;
74
+ return ownerId === userId;
68
75
  }
69
76
  /**
70
77
  * Error thrown by `save()` when an update would touch a record the caller
@@ -79,6 +86,35 @@ export class DashboardOwnershipError extends Error {
79
86
  this.name = "DashboardOwnershipError";
80
87
  }
81
88
  }
89
+ /**
90
+ * Error thrown by `get`, `save` and `delete` when the addressed record exists
91
+ * but this build cannot read it (newer `schemaVersion`, corrupt JSON, failed
92
+ * schema). Treating such a record as absent would let `save` overwrite it —
93
+ * stamping a fresh owner onto someone else's data — so it is a conflict the
94
+ * caller has to see.
95
+ */
96
+ export class DashboardUnreadableError extends Error {
97
+ dashboardId;
98
+ reason;
99
+ constructor(dashboardId, reason) {
100
+ super(`Dashboard "${dashboardId}" exists but cannot be read (${reason}); refusing to treat it as absent.`);
101
+ this.dashboardId = dashboardId;
102
+ this.reason = reason;
103
+ this.name = "DashboardUnreadableError";
104
+ }
105
+ }
106
+ /**
107
+ * Throw {@link DashboardOwnershipError} unless `userId` may update `existing`
108
+ * ({@link isDashboardOwnedBy}). Shared by {@link resolveSavedRecord} and the
109
+ * dashboard tools, which re-check a custom store's answer before a save.
110
+ */
111
+ export function assertDashboardWritable(existing, userId) {
112
+ if (isDashboardOwnedBy(existing.userId, userId))
113
+ return;
114
+ throw new DashboardOwnershipError(existing.userId
115
+ ? `Access denied: dashboard "${existing.id}" is owned by another user.`
116
+ : `Access denied: dashboard "${existing.id}" has no owner; an owner-less (global-scope) dashboard is not writable by an identified caller.`);
117
+ }
82
118
  /**
83
119
  * Resolve the record to persist for a `save`, enforcing ownership on updates.
84
120
  *
@@ -89,18 +125,17 @@ export class DashboardOwnershipError extends Error {
89
125
  * record with `id`, `createdAt`, and — critically — `existing.userId`
90
126
  * preserved so `input.userId` can never reassign the owner.
91
127
  *
92
- * Records without a `userId` (global scope, e.g. a host booted without OAuth)
93
- * are deliberately writable by anyone — same convention `ownedBy` uses for
94
- * read/delete — so single-user and OAuth-less deployments keep working.
128
+ * Without an `input.userId` (global scope: a host booted without OAuth) every
129
+ * record is writable, so single-user deployments keep working. An identified
130
+ * actor owns only records stamped with its id — an owner-less record is
131
+ * refused, never silently claimed.
95
132
  *
96
133
  * Exported for unit testing; the store factories below are the public API.
97
134
  */
98
135
  export function resolveSavedRecord(existing, input, now) {
99
136
  if (!existing)
100
137
  return null;
101
- if (!ownedBy(existing, input.userId)) {
102
- throw new DashboardOwnershipError(`Access denied: dashboard "${existing.id}" is owned by another user.`);
103
- }
138
+ assertDashboardWritable(existing, input.userId);
104
139
  return {
105
140
  ...existing,
106
141
  ...stripUndefined(input),
@@ -144,21 +179,15 @@ export function createInMemoryDashboardStore() {
144
179
  });
145
180
  },
146
181
  list(filter) {
147
- const all = [...byId.values()].filter((r) => ownedBy(r, filter.userId));
182
+ const all = [...byId.values()].filter((r) => isDashboardOwnedBy(r.userId, filter.userId));
148
183
  all.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
149
- return Promise.resolve(all.map((r) => ({
150
- id: r.id,
151
- name: r.name,
152
- description: r.description,
153
- title: r.title,
154
- updatedAt: r.updatedAt,
155
- })));
184
+ return Promise.resolve(all.map(summaryOf));
156
185
  },
157
186
  get(id, filter) {
158
187
  const record = byId.get(id);
159
188
  if (!record)
160
189
  return Promise.resolve(undefined);
161
- if (!ownedBy(record, filter.userId))
190
+ if (!isDashboardOwnedBy(record.userId, filter.userId))
162
191
  return Promise.resolve(undefined);
163
192
  return Promise.resolve(record);
164
193
  },
@@ -166,18 +195,49 @@ export function createInMemoryDashboardStore() {
166
195
  const record = byId.get(id);
167
196
  if (!record)
168
197
  return Promise.resolve(false);
169
- if (!ownedBy(record, filter.userId))
198
+ if (!isDashboardOwnedBy(record.userId, filter.userId))
170
199
  return Promise.resolve(false);
171
200
  byId.delete(id);
172
201
  return Promise.resolve(true);
173
202
  },
174
203
  };
175
204
  }
205
+ function classifyStoredDashboard(raw) {
206
+ let parsed;
207
+ try {
208
+ parsed = JSON.parse(raw);
209
+ }
210
+ catch {
211
+ return { state: "unreadable", reason: "file is not valid JSON" };
212
+ }
213
+ const record = parseDashboardRecord(parsed);
214
+ if (record)
215
+ return { state: "readable", record };
216
+ const fields = typeof parsed === "object" && parsed !== null ? parsed : {};
217
+ const version = fields.schemaVersion;
218
+ return {
219
+ state: "unreadable",
220
+ reason: typeof version === "number" && version > DASHBOARD_SCHEMA_VERSION
221
+ ? `written by a newer schemaVersion ${version} (this build reads up to ${DASHBOARD_SCHEMA_VERSION})`
222
+ : "does not match the current record schema",
223
+ ...(typeof fields.userId === "string" ? { ownerId: fields.userId } : {}),
224
+ ...(typeof fields.updatedAt === "string" ? { updatedAt: fields.updatedAt } : {}),
225
+ };
226
+ }
227
+ /**
228
+ * Whether an unreadable record addressed BY ID concerns the caller: global
229
+ * scope, its own record, or one whose owner cannot be told (then the caller
230
+ * learns it exists — the same as the ownership error on a foreign save).
231
+ */
232
+ function unreadableAddressableBy(ownerId, userId) {
233
+ return ownerId === undefined || isDashboardOwnedBy(ownerId, userId);
234
+ }
176
235
  /**
177
236
  * Dashboards stored as one JSON file per record under `dir`. Suitable for
178
- * single-node deployments that need survival across restarts. Locking is
179
- * advisory: concurrent writes of the same id can race — fine for the v1
180
- * "single user clicking Save" workflow, not fine for multi-writer
237
+ * single-node deployments that need survival across restarts. Writes are
238
+ * atomic (temp file + rename), so a crash never leaves a torn record.
239
+ * Locking is advisory: concurrent writes of the same id can race — fine for
240
+ * the v1 "single user clicking Save" workflow, not fine for multi-writer
181
241
  * production.
182
242
  */
183
243
  export function createFileSystemDashboardStore(options) {
@@ -186,41 +246,68 @@ export function createFileSystemDashboardStore(options) {
186
246
  await fs.mkdir(dir, { recursive: true });
187
247
  };
188
248
  const fileFor = (id) => path.join(dir, `${encodeURIComponent(id)}.json`);
189
- const readRecord = async (id) => {
249
+ const idOfFile = (name) => {
250
+ const encoded = name.slice(0, -".json".length);
251
+ try {
252
+ return decodeURIComponent(encoded);
253
+ }
254
+ catch {
255
+ return encoded;
256
+ }
257
+ };
258
+ const readStored = async (file, id) => {
190
259
  let raw;
191
260
  try {
192
- raw = await fs.readFile(fileFor(id), "utf-8");
261
+ raw = await fs.readFile(file, "utf-8");
193
262
  }
194
263
  catch (err) {
195
264
  if (err.code === "ENOENT")
196
- return undefined;
265
+ return { state: "absent" };
197
266
  throw err;
198
267
  }
199
- // Corrupt/incompatible content is treated as "not present" (fail-soft) so a
200
- // single bad file can't crash `get`/`save`; a real fs error above still
201
- // throws.
202
- let parsed;
203
- try {
204
- parsed = JSON.parse(raw);
268
+ const stored = classifyStoredDashboard(raw);
269
+ if (stored.state === "unreadable") {
270
+ console.warn(`[dashboard-store] Dashboard "${id}" is unreadable: ${stored.reason}.`);
205
271
  }
206
- catch {
207
- console.warn(`[dashboard-store] Ignoring dashboard "${id}": file is not valid JSON.`);
208
- return undefined;
272
+ return stored;
273
+ };
274
+ /**
275
+ * `readStored` for one directory entry of a listing: an entry the filesystem
276
+ * refuses (a directory named `*.json`, EACCES, EIO) becomes an unreadable
277
+ * record of unknown owner instead of rejecting the whole listing.
278
+ */
279
+ const readListed = async (name, id) => {
280
+ try {
281
+ return await readStored(path.join(dir, name), id);
209
282
  }
210
- const record = parseDashboardRecord(parsed);
211
- if (!record) {
212
- console.warn(`[dashboard-store] Ignoring dashboard "${id}": does not match the current record schema.`);
283
+ catch (err) {
284
+ const code = err.code ?? "read error";
285
+ console.warn(`[dashboard-store] Dashboard "${id}" cannot be read: ${code}.`);
286
+ return { state: "unreadable", reason: `cannot be read (${code})` };
213
287
  }
214
- return record;
215
288
  };
216
289
  const writeRecord = async (record) => {
217
290
  await ensureDir();
218
- await fs.writeFile(fileFor(record.id), JSON.stringify(record, null, 2), "utf-8");
291
+ const target = fileFor(record.id);
292
+ const temp = `${target}.${randomUUID()}.tmp`;
293
+ await fs.writeFile(temp, JSON.stringify(record, null, 2), "utf-8");
294
+ await fs.rename(temp, target);
219
295
  };
220
296
  return {
221
297
  async save(input) {
222
298
  const now = nowIso();
223
- const existing = input.id ? await readRecord(input.id) : undefined;
299
+ const stored = input.id
300
+ ? await readStored(fileFor(input.id), input.id)
301
+ : { state: "absent" };
302
+ if (stored.state === "unreadable") {
303
+ // `input.id` is set: only an addressed record can be found unreadable.
304
+ const id = input.id ?? "";
305
+ if (!unreadableAddressableBy(stored.ownerId, input.userId)) {
306
+ throw new DashboardOwnershipError(`Access denied: dashboard "${id}" is owned by another user.`);
307
+ }
308
+ throw new DashboardUnreadableError(id, stored.reason);
309
+ }
310
+ const existing = stored.state === "readable" ? stored.record : undefined;
224
311
  const record = resolveSavedRecord(existing, input, now) ?? {
225
312
  id: input.id ?? randomUUID(),
226
313
  name: input.name,
@@ -240,56 +327,70 @@ export function createFileSystemDashboardStore(options) {
240
327
  async list(filter) {
241
328
  await ensureDir();
242
329
  const entries = await fs.readdir(dir);
243
- const records = [];
330
+ const summaries = [];
244
331
  for (const name of entries) {
245
332
  if (!name.endsWith(".json"))
246
333
  continue;
247
- let parsed;
248
- try {
249
- parsed = JSON.parse(await fs.readFile(path.join(dir, name), "utf-8"));
250
- }
251
- catch {
252
- // Not valid JSON — not one of our records. Skip.
253
- continue;
334
+ const id = idOfFile(name);
335
+ const stored = await readListed(name, id);
336
+ if (stored.state === "readable") {
337
+ if (!isDashboardOwnedBy(stored.record.userId, filter.userId))
338
+ continue;
339
+ summaries.push(summaryOf(stored.record));
254
340
  }
255
- // Validate before trusting: a partial record (e.g. missing `updatedAt`)
256
- // would otherwise crash the sort below and take the whole listing down.
257
- const record = parseDashboardRecord(parsed);
258
- if (!record) {
259
- console.warn(`[dashboard-store] Skipping "${name}": does not match the record schema.`);
260
- continue;
341
+ else if (stored.state === "unreadable" &&
342
+ isDashboardOwnedBy(stored.ownerId, filter.userId)) {
343
+ // Listed only where it is attributable (or in global scope): a list
344
+ // must not enumerate ids an identified caller cannot be tied to.
345
+ summaries.push({
346
+ id,
347
+ name: id,
348
+ ...(stored.ownerId === undefined ? {} : { userId: stored.ownerId }),
349
+ updatedAt: stored.updatedAt ?? "",
350
+ unreadable: stored.reason,
351
+ });
261
352
  }
262
- if (ownedBy(record, filter.userId))
263
- records.push(record);
264
353
  }
265
- records.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
266
- return records.map((r) => ({
267
- id: r.id,
268
- name: r.name,
269
- description: r.description,
270
- title: r.title,
271
- updatedAt: r.updatedAt,
272
- }));
354
+ summaries.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
355
+ return summaries;
273
356
  },
274
357
  async get(id, filter) {
275
- const record = await readRecord(id);
276
- if (!record)
358
+ const stored = await readStored(fileFor(id), id);
359
+ if (stored.state === "absent")
277
360
  return undefined;
278
- if (!ownedBy(record, filter.userId))
279
- return undefined;
280
- return record;
361
+ if (stored.state === "unreadable") {
362
+ if (!unreadableAddressableBy(stored.ownerId, filter.userId))
363
+ return undefined;
364
+ throw new DashboardUnreadableError(id, stored.reason);
365
+ }
366
+ return isDashboardOwnedBy(stored.record.userId, filter.userId) ? stored.record : undefined;
281
367
  },
282
368
  async delete(id, filter) {
283
- const record = await readRecord(id);
284
- if (!record)
369
+ const stored = await readStored(fileFor(id), id);
370
+ if (stored.state === "absent")
285
371
  return false;
286
- if (!ownedBy(record, filter.userId))
372
+ if (stored.state === "unreadable") {
373
+ if (!unreadableAddressableBy(stored.ownerId, filter.userId))
374
+ return false;
375
+ throw new DashboardUnreadableError(id, stored.reason);
376
+ }
377
+ if (!isDashboardOwnedBy(stored.record.userId, filter.userId))
287
378
  return false;
288
379
  await fs.rm(fileFor(id), { force: true });
289
380
  return true;
290
381
  },
291
382
  };
292
383
  }
384
+ function summaryOf(record) {
385
+ return {
386
+ id: record.id,
387
+ name: record.name,
388
+ description: record.description,
389
+ title: record.title,
390
+ userId: record.userId,
391
+ updatedAt: record.updatedAt,
392
+ };
393
+ }
293
394
  function stripUndefined(obj) {
294
395
  const out = {};
295
396
  for (const [k, v] of Object.entries(obj)) {
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-store.js","sourceRoot":"","sources":["../../src/tools/dashboard-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-store.js","sourceRoot":"","sources":["../../src/tools/dashboard-store.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export { createToolRegistrar } from "./register-tool.js";
2
- export type { ToolConfig, RegisteredToolMeta } from "./register-tool.js";
2
+ export type { ToolArgs, ToolConfig, RegisteredToolMeta, RegistrarToolOutput, ToolRegistrar, TypedToolRegistrar, } from "./register-tool.js";
3
3
  export { createWidgetToolRegistrar } from "./register-widget-tool.js";
4
- export type { WidgetToolConfig, WidgetToolVisibility } from "./register-widget-tool.js";
4
+ export type { WidgetToolConfig, WidgetToolVisibility, WidgetToolOutput, WidgetToolRegistrar, TypedWidgetToolRegistrar, } from "./register-widget-tool.js";
5
+ export type { ToolHandlerContext, ToolDefinitionPassthrough, WidgetToolDefinitionPassthrough, ToolRegistrarOptions, } from "./registrar-shared.js";
6
+ export type { DuplicateToolNamePolicy } from "./tool-name-guard.js";
5
7
  export { withToolErrors } from "./with-tool-errors.js";
6
8
  export { textResult, objectResult, errorResult } from "./tool-results.js";
7
9
  export { registerFrameworkTools, RENDER_VIEW_NAME } from "./register-framework-tools.js";
@@ -16,6 +18,6 @@ export { createFrameworkApp } from "./create-framework-app.js";
16
18
  export type { CreateFrameworkAppOptions } from "./create-framework-app.js";
17
19
  export { createBackendRegistry, withBackend, BackendNotSelectedError, UnknownBackendError, } from "./backend-registry.js";
18
20
  export type { BackendRegistry, BackendEntry, ResolvedBackend, CreateBackendRegistryOptions, } from "./backend-registry.js";
19
- export { createInMemoryDashboardStore, createFileSystemDashboardStore, DashboardOwnershipError, resolveSavedRecord, parseDashboardRecord, DASHBOARD_SCHEMA_VERSION, } from "./dashboard-store.js";
21
+ export { createInMemoryDashboardStore, createFileSystemDashboardStore, DashboardOwnershipError, DashboardUnreadableError, isDashboardOwnedBy, resolveSavedRecord, parseDashboardRecord, DASHBOARD_SCHEMA_VERSION, } from "./dashboard-store.js";
20
22
  export type { DashboardStore, DashboardRecord, DashboardSaveInput, DashboardSummary, DashboardListFilter, FileSystemDashboardStoreOptions, } from "./dashboard-store.js";
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,YAAY,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,uBAAuB,CAAA;AAK9B,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,+BAA+B,GAChC,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EACV,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,YAAY,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,4BAA4B,GAC7B,MAAM,uBAAuB,CAAA;AAK9B,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,+BAA+B,GAChC,MAAM,sBAAsB,CAAA"}
@@ -11,5 +11,5 @@ export { createBackendRegistry, withBackend, BackendNotSelectedError, UnknownBac
11
11
  // Dashboard-store implementations are server-side (the filesystem impl
12
12
  // imports `node:fs`). Consumers wire them through `createFrameworkApp`'s
13
13
  // `app.dashboardStore`.
14
- export { createInMemoryDashboardStore, createFileSystemDashboardStore, DashboardOwnershipError, resolveSavedRecord, parseDashboardRecord, DASHBOARD_SCHEMA_VERSION, } from "./dashboard-store.js";
14
+ export { createInMemoryDashboardStore, createFileSystemDashboardStore, DashboardOwnershipError, DashboardUnreadableError, isDashboardOwnedBy, resolveSavedRecord, parseDashboardRecord, DASHBOARD_SCHEMA_VERSION, } from "./dashboard-store.js";
15
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAQ9B,uEAAuE;AACvE,yEAAyE;AACzE,wBAAwB;AACxB,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AASxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAerE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAQ9B,uEAAuE;AACvE,yEAAyE;AACzE,wBAAwB;AACxB,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA"}
@@ -4,6 +4,7 @@ import { WidgetRegistry } from "../registry/widget-registry.js";
4
4
  import { type DashboardStore } from "./dashboard-store.js";
5
5
  import type { AppConfig, AppDefinition, AppPlugin } from "../types/index.js";
6
6
  import type { AppResourceCsp } from "../types/meta.js";
7
+ import { type DuplicateToolNamePolicy } from "./tool-name-guard.js";
7
8
  export interface InstallToolkitOptions {
8
9
  /**
9
10
  * App definitions contributing steps + widgets to the pipeline registries —
@@ -40,8 +41,27 @@ export interface InstallToolkitOptions {
40
41
  * Only relevant with {@link builder}.
41
42
  */
42
43
  dashboardStore?: DashboardStore;
44
+ /**
45
+ * Refuse every dashboard call that resolves no caller id instead of serving
46
+ * it in global scope — set it when the server has OAuth configured.
47
+ * (`createFrameworkApp` does so automatically.) Authenticated calls are held
48
+ * to this regardless; the flag additionally covers a call that reaches the
49
+ * tools without any `ctx.auth`. Only relevant with {@link builder}.
50
+ */
51
+ requireCallerIdentity?: boolean;
43
52
  /** Overrides the active-apps/pipelines config derived from apps + modules. */
44
53
  appConfig?: AppConfig;
54
+ /**
55
+ * A tool name registered twice on this server — between modules, against
56
+ * a framework tool (`get-framework-manifest`, `render-view`, the refresh
57
+ * tool, and with {@link builder} the catalogue + dashboard tools), or by
58
+ * application code after the install — is reported naming both owners.
59
+ * `"warn"` (default in 2.x) logs it and keeps mcp-use's last-wins result;
60
+ * `"throw"` fails the install instead. Tools registered BEFORE the install
61
+ * are invisible to the check (mcp-use has no public tool listing), so
62
+ * register your own tools after `installToolkit`.
63
+ */
64
+ duplicateToolNames?: DuplicateToolNamePolicy;
45
65
  }
46
66
  /** The registries {@link installToolkit} built — for advanced composition. */
47
67
  export interface InstalledToolkit {
@@ -57,7 +77,8 @@ export interface InstalledToolkit {
57
77
  * `start`) or embed it yourself. This call adds the framework surface on
58
78
  * top: `get-framework-manifest`, `render-view` (bound to its own view),
59
79
  * the app-only `refresh-view`, each module's widget tools, and — with
60
- * `builder: true` — the catalogue + dashboard tools.
80
+ * `builder: true` — the catalogue + dashboard tools. Call it before
81
+ * registering your own tools, so its duplicate-name check covers them.
61
82
  *
62
83
  * View delivery follows however the server is run:
63
84
  *
@@ -1 +1 @@
1
- {"version":3,"file":"install-toolkit.d.ts","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKtD,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,EAAE,CAAA;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;IACrB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,qBAA0B,GAClC,gBAAgB,CA6DlB"}
1
+ {"version":3,"file":"install-toolkit.d.ts","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAItD,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAA;AAE7B,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,EAAE,CAAA;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;IACrB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,uBAAuB,CAAA;CAC7C;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,qBAA0B,GAClC,gBAAgB,CAKlB"}
@@ -5,6 +5,7 @@ import { createInMemoryDashboardStore } from "./dashboard-store.js";
5
5
  import { registerFrameworkTools } from "./register-framework-tools.js";
6
6
  import { registerCatalogueTool } from "./register-catalogue-tool.js";
7
7
  import { registerDashboardTools } from "./register-dashboard-tools.js";
8
+ import { FRAMEWORK_TOOL_OWNER, installToolNameGuard, moduleToolOwner, withToolOwner, } from "./tool-name-guard.js";
8
9
  /**
9
10
  * Install the toolkit's composition features on an existing `MCPServer` —
10
11
  * the "standard mcp-use project, toolkit on top" entry point.
@@ -14,7 +15,8 @@ import { registerDashboardTools } from "./register-dashboard-tools.js";
14
15
  * `start`) or embed it yourself. This call adds the framework surface on
15
16
  * top: `get-framework-manifest`, `render-view` (bound to its own view),
16
17
  * the app-only `refresh-view`, each module's widget tools, and — with
17
- * `builder: true` — the catalogue + dashboard tools.
18
+ * `builder: true` — the catalogue + dashboard tools. Call it before
19
+ * registering your own tools, so its duplicate-name check covers them.
18
20
  *
19
21
  * View delivery follows however the server is run:
20
22
  *
@@ -31,6 +33,12 @@ import { registerDashboardTools } from "./register-dashboard-tools.js";
31
33
  * message pointing at the CLI otherwise.
32
34
  */
33
35
  export function installToolkit(server, options = {}) {
36
+ installToolNameGuard(server, options.duplicateToolNames ?? "warn");
37
+ // Everything the install registers is framework-owned unless a module hook
38
+ // claims it: module tools here, module widget tools in registerFrameworkTools.
39
+ return withToolOwner(server, FRAMEWORK_TOOL_OWNER, () => install(server, options));
40
+ }
41
+ function install(server, options) {
34
42
  const stepRegistry = new StepRegistry();
35
43
  const widgetRegistry = new WidgetRegistry();
36
44
  const apps = options.apps ?? [];
@@ -39,7 +47,7 @@ export function installToolkit(server, options = {}) {
39
47
  // must fail loud (hard throw).
40
48
  loadApps([...apps, ...modules.map((m) => m.definition)], stepRegistry, widgetRegistry);
41
49
  for (const module of modules) {
42
- module.registerTools?.(server);
50
+ withToolOwner(server, moduleToolOwner(module.definition.name), () => module.registerTools?.(server));
43
51
  }
44
52
  // Per-app step configuration: each module's `appConfig` keyed by app name.
45
53
  // A module may inject closures here (e.g. a typed `callTool`) — the pipeline
@@ -78,7 +86,11 @@ export function installToolkit(server, options = {}) {
78
86
  toolName: options.catalogueToolName,
79
87
  });
80
88
  const dashboardStore = options.dashboardStore ?? createInMemoryDashboardStore();
81
- registerDashboardTools(server, { store: dashboardStore, widgetRegistry });
89
+ registerDashboardTools(server, {
90
+ store: dashboardStore,
91
+ widgetRegistry,
92
+ requireCallerIdentity: options.requireCallerIdentity,
93
+ });
82
94
  }
83
95
  return { stepRegistry, widgetRegistry };
84
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install-toolkit.js","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-toolkit.js","sourceRoot":"","sources":["../../src/tools/install-toolkit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-catalogue-tool.d.ts","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,4BAA4B,GACpC,IAAI,CAsBN"}
1
+ {"version":3,"file":"register-catalogue-tool.d.ts","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAIxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAsBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,4BAA4B,GACpC,IAAI,CAsBN"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { resolvePipelineContext } from "../engine/pipeline-executor.js";
2
3
  import { getBuilderCatalogue } from "../framework/catalogue.js";
3
4
  const stepRefSchema = z.object({
4
5
  id: z.string().describe("Context key under which the step's result is stored, e.g. 'invoice'."),
@@ -18,10 +19,6 @@ const catalogueSchema = z.object({
18
19
  .optional()
19
20
  .describe("Steps already configured in the view — their produced keys count as reachable."),
20
21
  });
21
- function extractUserId(ctx) {
22
- const user = ctx?.auth?.user;
23
- return typeof user?.userId === "string" ? user.userId : undefined;
24
- }
25
22
  /**
26
23
  * Registers `get-builder-catalogue` — the in-iframe builder's data
27
24
  * source. App-only (`visibility: ["app"]`), so it never appears in the
@@ -46,7 +43,7 @@ export function registerCatalogueTool(server, options) {
46
43
  stepRegistry,
47
44
  widgetRegistry,
48
45
  appConfigs,
49
- ctx: { userId: extractUserId(ctx) },
46
+ ctx: resolvePipelineContext(ctx),
50
47
  });
51
48
  });
52
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register-catalogue-tool.js","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAY/D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;CAC9F,CAAC,CAAA;AAEF,SAAS,aAAa,CAAC,GAAY;IACjC,MAAM,IAAI,GAAI,GAA8D,EAAE,IAAI,EAAE,IAAI,CAAA;IACxF,OAAO,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,OAAqC;IAErC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,GAAG,uBAAuB,EAAE,GAAG,OAAO,CAAA;IAEhG,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,4LAA4L;QAC9L,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,KAAK;KAClB,EACD,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACpB,OAAO,mBAAmB,CAAC;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YACjD,YAAY;YACZ,cAAc;YACd,UAAU;YACV,GAAG,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"register-catalogue-tool.js","sourceRoot":"","sources":["../../src/tools/register-catalogue-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAY/D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC/F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC/E,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;CAC9F,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,OAAqC;IAErC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,GAAG,uBAAuB,EAAE,GAAG,OAAO,CAAA;IAEhG,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,4LAA4L;QAC9L,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,KAAK;KAClB,EACD,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACpB,OAAO,mBAAmB,CAAC;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YACjD,YAAY;YACZ,cAAc;YACd,UAAU;YACV,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;SACjC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;AACH,CAAC"}