@plurnk/plurnk-mcp 1.6.1 → 1.8.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 (65) hide show
  1. package/.env.defaults +31 -4
  2. package/README.md +161 -42
  3. package/SPEC.md +486 -28
  4. package/dist/McpExecutor.d.ts +28 -5
  5. package/dist/McpExecutor.d.ts.map +1 -1
  6. package/dist/McpExecutor.js +144 -32
  7. package/dist/McpExecutor.js.map +1 -1
  8. package/dist/McpResources.d.ts +2 -2
  9. package/dist/McpResources.d.ts.map +1 -1
  10. package/dist/McpResources.js +114 -24
  11. package/dist/McpResources.js.map +1 -1
  12. package/dist/Module.d.ts +30 -5
  13. package/dist/Module.d.ts.map +1 -1
  14. package/dist/Module.js +857 -36
  15. package/dist/Module.js.map +1 -1
  16. package/dist/ToolPresentation.d.ts +7 -0
  17. package/dist/ToolPresentation.d.ts.map +1 -0
  18. package/dist/ToolPresentation.js +224 -0
  19. package/dist/ToolPresentation.js.map +1 -0
  20. package/dist/capabilityMatrix.d.ts +23 -0
  21. package/dist/capabilityMatrix.d.ts.map +1 -0
  22. package/dist/capabilityMatrix.js +403 -0
  23. package/dist/capabilityMatrix.js.map +1 -0
  24. package/dist/client.d.ts +27 -8
  25. package/dist/client.d.ts.map +1 -1
  26. package/dist/client.js +537 -91
  27. package/dist/client.js.map +1 -1
  28. package/dist/config.d.ts +14 -13
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +257 -51
  31. package/dist/config.js.map +1 -1
  32. package/dist/extensionChannel.d.ts +25 -0
  33. package/dist/extensionChannel.d.ts.map +1 -0
  34. package/dist/extensionChannel.js +195 -0
  35. package/dist/extensionChannel.js.map +1 -0
  36. package/dist/index.d.ts +3 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/inputRequired.d.ts +36 -0
  41. package/dist/inputRequired.d.ts.map +1 -0
  42. package/dist/inputRequired.js +171 -0
  43. package/dist/inputRequired.js.map +1 -0
  44. package/dist/mcp-watchdog.mjs +106 -0
  45. package/dist/oauth.d.ts +28 -0
  46. package/dist/oauth.d.ts.map +1 -0
  47. package/dist/oauth.js +149 -0
  48. package/dist/oauth.js.map +1 -0
  49. package/dist/protocol.d.ts +8 -0
  50. package/dist/protocol.d.ts.map +1 -0
  51. package/dist/protocol.js +8 -0
  52. package/dist/protocol.js.map +1 -0
  53. package/dist/protocolHeaders.d.ts +4 -0
  54. package/dist/protocolHeaders.d.ts.map +1 -0
  55. package/dist/protocolHeaders.js +87 -0
  56. package/dist/protocolHeaders.js.map +1 -0
  57. package/dist/subscriptions.d.ts +15 -0
  58. package/dist/subscriptions.d.ts.map +1 -0
  59. package/dist/subscriptions.js +188 -0
  60. package/dist/subscriptions.js.map +1 -0
  61. package/dist/tasks.d.ts +19 -0
  62. package/dist/tasks.d.ts.map +1 -0
  63. package/dist/tasks.js +334 -0
  64. package/dist/tasks.js.map +1 -0
  65. package/package.json +12 -7
@@ -1,32 +1,83 @@
1
- import { BaseExecutor, ErrorDetail, ERROR_DETAIL_LIMIT, renderJsonResult, Results, } from "@plurnk/plurnk-execs";
1
+ import { BaseExecutor, ErrorDetail, ERROR_DETAIL_LIMIT, renderJsonResult, Results, RuntimeInvocation, } from "@plurnk/plurnk-execs";
2
+ import { toolRegistry as presentTools } from "./ToolPresentation.js";
2
3
  const CHANNEL = "body";
3
- export const runtimeDecl = (name) => ({
4
+ const firstSentence = (text) => {
5
+ if (text === undefined)
6
+ return undefined;
7
+ const normalized = text.replaceAll(/\s+/gu, " ").trim();
8
+ if (normalized === "")
9
+ return undefined;
10
+ const boundary = /[.!?](?:\s|$)/u.exec(normalized);
11
+ return boundary === null ? normalized : normalized.slice(0, boundary.index + 1);
12
+ };
13
+ // {§mcp-summary-derivation} — one server one-liner: the authored _SUMMARY
14
+ // companion, then the server's own description and display title (spec
15
+ // metadata — a title like "Chrome DevTools MCP server" IS the one-liner), then
16
+ // the first sentence of its instructions essay. Never the container template;
17
+ // when the chain is empty, name the actual tools.
18
+ export const serverSummary = (name, catalog, override) => {
19
+ if (override !== undefined && override.trim() !== "")
20
+ return override.trim();
21
+ const described = catalog?.server?.description;
22
+ if (described !== undefined && described.trim() !== "")
23
+ return described.replaceAll(/\s+/gu, " ").trim();
24
+ const titled = catalog?.server?.title;
25
+ if (titled !== undefined && titled.trim() !== "")
26
+ return titled.replaceAll(/\s+/gu, " ").trim();
27
+ const instructed = firstSentence(catalog?.instructions);
28
+ if (instructed !== undefined)
29
+ return instructed;
30
+ const tools = catalog?.tools.map((tool) => tool.name).join(", ");
31
+ return tools === undefined || tools === ""
32
+ ? `MCP server ${name}.`
33
+ : `Tools: ${tools}.`;
34
+ };
35
+ export const runtimeDecl = (name, summary, expandTools) => ({
4
36
  name,
5
37
  glyph: "🔌",
38
+ summary,
39
+ // {§tools-resource-materialization} — MCP families live in the tools
40
+ // namespace; the turn-0 survey lists the family document, and expandTools
41
+ // (PLURNK_MCP_EXPANDED) adds the complete tool tree.
42
+ resourcesPath: "/tools",
43
+ ...(expandTools ? { expandTools: true } : {}),
6
44
  invocation: {
7
45
  body: { role: "JSON arguments", required: false },
8
46
  target: { role: "MCP tool", required: true, kind: "literal" },
9
- example: { target: "tool_name", body: '{"argument":"value"}' },
47
+ example: { target: "tool_name" },
10
48
  },
11
- documentation: `# ${name}
12
-
13
- This configured MCP server is available as an executable tool family and an
14
- addressable resource family.
15
-
16
- \`\`\`plurnk
17
- ## READ0 (${name}:///)\n\n## EXEC0 [${name}] (tool_name)\n{"argument":"value"}
18
- \`\`\`
19
-
20
- READ returns the live catalog. Tool arguments are one JSON object. Tool results
21
- are written to the operation's \`body\` channel.
22
- `,
23
49
  });
24
50
  const message = (error) => error instanceof Error ? error.message : String(error);
51
+ const progressNotice = (runtime, tool, progress) => ({
52
+ source: `exec:${runtime}`,
53
+ kind: "mcp_progress",
54
+ level: "info",
55
+ message: progress.message ?? (progress.total === undefined
56
+ ? `MCP tool '${tool}' progressed to ${progress.progress}.`
57
+ : `MCP tool '${tool}' progressed to ${progress.progress}/${progress.total}.`),
58
+ tool,
59
+ progress: progress.progress,
60
+ ...(progress.total === undefined ? {} : { total: progress.total }),
61
+ });
25
62
  export default class McpExecutor extends BaseExecutor {
26
63
  #connection;
27
- constructor(metadata, connection) {
64
+ #tools;
65
+ #read;
66
+ #registry = null;
67
+ #toolSummaries;
68
+ #catalog = null;
69
+ constructor(metadata, connection, policy = {}, toolSummaries) {
28
70
  super(metadata);
29
71
  this.#connection = connection;
72
+ this.#tools = policy.tools ?? null;
73
+ this.#read = new Set(policy.read ?? []);
74
+ this.#toolSummaries = toolSummaries ?? new Map();
75
+ }
76
+ get manifest() {
77
+ return {
78
+ ...super.manifest,
79
+ example: `## FIND0 (${this.runtime}:///resources/**)`,
80
+ };
30
81
  }
31
82
  get channels() {
32
83
  return {
@@ -36,9 +87,50 @@ export default class McpExecutor extends BaseExecutor {
36
87
  };
37
88
  }
38
89
  effect(target) {
39
- if (target === null || target.length === 0)
40
- return "read";
41
- return this.#connection.readOnly(target) ? "read" : "host";
90
+ if (target === null || !this.#enabledTargets().has(target)) {
91
+ throw new Error(`MCP effect classification received unregistered target '${target ?? ""}' on '${this.runtime}'.`);
92
+ }
93
+ return this.#read.has(target) ? "read" : "host";
94
+ }
95
+ #selectTools(tools) {
96
+ const available = new Set(tools.map((tool) => tool.name));
97
+ if (available.size !== tools.length) {
98
+ throw new Error(`MCP server '${this.runtime}' returned duplicate tool names.`);
99
+ }
100
+ const configured = this.#tools ?? [];
101
+ for (const name of configured) {
102
+ if (!available.has(name)) {
103
+ throw new Error(`Configured MCP tool '${name}' is absent from server '${this.runtime}'.`);
104
+ }
105
+ }
106
+ const selected = this.#tools === null
107
+ ? tools
108
+ : tools.filter((tool) => this.#tools?.includes(tool.name));
109
+ const enabled = new Set(selected.map((tool) => tool.name));
110
+ for (const name of this.#read) {
111
+ if (!enabled.has(name)) {
112
+ throw new Error(`Read-classified MCP tool '${name}' is not enabled on server '${this.runtime}'.`);
113
+ }
114
+ }
115
+ return selected;
116
+ }
117
+ #enabledTargets() {
118
+ if (this.#registry === null) {
119
+ throw new Error(`MCP tool registry for '${this.runtime}' was read before availability was established.`);
120
+ }
121
+ return new Set(this.#registry.tools.map((tool) => tool.target));
122
+ }
123
+ toolRegistry() {
124
+ if (this.#registry === null) {
125
+ throw new Error(`MCP tool registry for '${this.runtime}' was read before availability was established.`);
126
+ }
127
+ return this.#registry;
128
+ }
129
+ get catalog() {
130
+ if (this.#catalog === null) {
131
+ throw new Error(`MCP catalog for '${this.runtime}' was read before availability was established.`);
132
+ }
133
+ return this.#catalog;
42
134
  }
43
135
  async probe(signal) {
44
136
  const detailLimit = ErrorDetail.configuredLimit();
@@ -49,16 +141,7 @@ export default class McpExecutor extends BaseExecutor {
49
141
  };
50
142
  }
51
143
  try {
52
- const catalog = await this.#connection.catalog(signal);
53
- return {
54
- available: true,
55
- detail: [
56
- `MCP ${catalog.protocolVersion}`,
57
- `${catalog.tools.length} tools`,
58
- `${catalog.resources.length} resources`,
59
- `${catalog.prompts.length} prompts`,
60
- ].join("; "),
61
- };
144
+ return await this.requireAvailable(signal);
62
145
  }
63
146
  catch (error) {
64
147
  return {
@@ -67,7 +150,25 @@ export default class McpExecutor extends BaseExecutor {
67
150
  };
68
151
  }
69
152
  }
70
- async run({ runtime, body, target, signal, write, setState, }) {
153
+ async requireAvailable(signal) {
154
+ if (ErrorDetail.configuredLimit() === null) {
155
+ throw new Error(`${ERROR_DETAIL_LIMIT} must be set to a non-negative integer.`);
156
+ }
157
+ const catalog = await this.#connection.catalog(signal);
158
+ const selected = this.#selectTools(catalog.tools);
159
+ this.#registry = RuntimeInvocation.assertToolRegistry(presentTools(this.runtime, selected, this.#toolSummaries), "@plurnk/plurnk-mcp", this.runtime);
160
+ this.#catalog = catalog;
161
+ return {
162
+ available: true,
163
+ detail: [
164
+ `MCP ${catalog.protocolVersion}`,
165
+ `${catalog.tools.length} tools`,
166
+ `${catalog.resources.length} resources`,
167
+ `${catalog.prompts.length} prompts`,
168
+ ].join("; "),
169
+ };
170
+ }
171
+ async run({ runtime, body, target, signal, write, setState, emit, interact, }) {
71
172
  const fail = (code, status, detail, extensions) => {
72
173
  setState(CHANNEL, "errored");
73
174
  return Results.failure("executor:mcp", code, status, detail, {}, {
@@ -84,7 +185,14 @@ export default class McpExecutor extends BaseExecutor {
84
185
  const input = body.trim();
85
186
  if (target === null || target.length === 0) {
86
187
  return fail("tool-required", 400, `MCP executor '${runtime}' requires a tool target.`, {
87
- recovery: `READ ${runtime}:/// for the live catalog, then target one listed tool.`,
188
+ recovery: `Select a target documented under worker://plurnk/tools/${runtime}/.`,
189
+ retryable: false,
190
+ });
191
+ }
192
+ if (!this.#enabledTargets().has(target)) {
193
+ return fail("tool-not-enabled", 404, `MCP tool '${target}' is not enabled on '${runtime}'.`, {
194
+ tool: target,
195
+ recovery: `Select a target documented under worker://plurnk/tools/${runtime}/.`,
88
196
  retryable: false,
89
197
  });
90
198
  }
@@ -106,7 +214,11 @@ export default class McpExecutor extends BaseExecutor {
106
214
  }
107
215
  }
108
216
  try {
109
- const result = await this.#connection.callTool(target, args, signal);
217
+ const tool = this.#catalog?.tools.find((candidate) => candidate.name === target);
218
+ if (tool === undefined) {
219
+ throw new Error(`MCP tool '${target}' is absent from the prepared catalog.`);
220
+ }
221
+ const result = await this.#connection.callTool(target, args, signal, (progress) => emit(progressNotice(runtime, target, progress)), interact, tool);
110
222
  write(CHANNEL, renderJsonResult(result), "application/json");
111
223
  if (result.isError === true) {
112
224
  return fail("tool-reported-error", 502, `MCP tool '${target}' on '${runtime}' reported an error.`, {
@@ -1 +1 @@
1
- {"version":3,"file":"McpExecutor.js","sourceRoot":"","sources":["../src/McpExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpExecutor.js","sourceRoot":"","sources":["../src/McpExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type EntryFindResult, type FindStatement, type RepresentationPreparationRequest, type RepresentationPreparationResult, type SchemeCtx } from "@plurnk/plurnk-schemes";
2
- import ServerConnection from "./client.ts";
2
+ import ServerConnection, { type ServerCatalog } from "./client.ts";
3
3
  export default class McpResources {
4
4
  #private;
5
- constructor(server: string, connection: ServerConnection);
5
+ constructor(server: string, connection: ServerConnection, catalog: ServerCatalog);
6
6
  claims(pathname: string): boolean;
7
7
  prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
8
8
  find(statement: FindStatement, ctx: SchemeCtx): Promise<EntryFindResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"McpResources.d.ts","sourceRoot":"","sources":["../src/McpResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,SAAS,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,gBAAgB,MAAM,aAAa,CAAC;AAsF3C,MAAM,CAAC,OAAO,OAAO,YAAY;;IAI7B,YAAY,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAGvD;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIhC;IAgEK,qBAAqB,CACvB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CA0B1C;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB7E;CACJ"}
1
+ {"version":3,"file":"McpResources.d.ts","sourceRoot":"","sources":["../src/McpResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,eAAe,EAGpB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,SAAS,EAEjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,gBAAgB,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAoInE,MAAM,CAAC,OAAO,OAAO,YAAY;;IAK7B,YAAY,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAI/E;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMhC;IAkIK,qBAAqB,CACvB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CA+B1C;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAiB7E;CACJ"}
@@ -2,11 +2,30 @@ import { Results, } from "@plurnk/plurnk-schemes";
2
2
  const ROOT = "/";
3
3
  const RESOURCES = "/resources";
4
4
  const RESOURCE_PREFIX = `${RESOURCES}/`;
5
+ const PROMPTS = "/prompts";
6
+ const PROMPT_PREFIX = `${PROMPTS}/`;
5
7
  const RESOURCE_KIND = "mcp-resource";
6
8
  const CATALOG_KIND = "mcp-resource-catalog";
9
+ const PROMPT_KIND = "mcp-prompt";
7
10
  class ResourceAddressError extends Error {
8
11
  }
12
+ class EntryOperationFailure extends Error {
13
+ result;
14
+ constructor(result) {
15
+ super(result.problem?.detail ?? `Entry operation failed with status ${result.status}.`, {
16
+ cause: result.problem,
17
+ });
18
+ this.result = result;
19
+ }
20
+ }
21
+ const requireEntrySuccess = (result) => {
22
+ const exact = Results.assert(result);
23
+ if (Results.isErrorStatus(exact.status))
24
+ throw new EntryOperationFailure(exact);
25
+ return exact;
26
+ };
9
27
  const resourcePath = (uri) => `${RESOURCE_PREFIX}${encodeURIComponent(uri)}`;
28
+ const promptPath = (name) => `${PROMPT_PREFIX}${encodeURIComponent(name)}`;
10
29
  const preparationFailure = (server, code, status, detail, extensions) => Results.failure("scheme:mcp", code, status, detail, {}, {
11
30
  server,
12
31
  stage: "mcp-resource",
@@ -25,6 +44,21 @@ const findFailure = (server, code, status, detail, extensions) => Results.failur
25
44
  stage: "mcp-resource",
26
45
  ...extensions,
27
46
  });
47
+ const preparationEntryFailure = (failure) => Results.assertRepresentationPreparation({
48
+ status: failure.result.status,
49
+ problem: failure.result.problem,
50
+ });
51
+ const findEntryFailure = (failure) => Results.assert({
52
+ status: failure.result.status,
53
+ problem: failure.result.problem,
54
+ content: null,
55
+ mimetype: null,
56
+ results: [],
57
+ itemsWeightTotal: 0,
58
+ returnedItemsWeightTotal: 0,
59
+ matchingPathCount: 0,
60
+ matchLocationCount: 0,
61
+ });
28
62
  const resourceBody = (result) => {
29
63
  if (result.contents.length === 1 && "text" in result.contents[0]) {
30
64
  const value = result.contents[0];
@@ -50,40 +84,88 @@ const catalogEntry = (content, kind) => ({
50
84
  export default class McpResources {
51
85
  #server;
52
86
  #connection;
53
- constructor(server, connection) {
87
+ #catalog;
88
+ constructor(server, connection, catalog) {
54
89
  this.#server = server;
55
90
  this.#connection = connection;
91
+ this.#catalog = catalog;
56
92
  }
57
93
  claims(pathname) {
58
94
  return pathname === ROOT
59
95
  || pathname === RESOURCES
60
- || pathname.startsWith(RESOURCE_PREFIX);
96
+ || pathname.startsWith(RESOURCE_PREFIX)
97
+ || pathname === PROMPTS
98
+ || pathname.startsWith(PROMPT_PREFIX);
61
99
  }
62
100
  async #materializeCatalog(ctx) {
63
- const catalog = await this.#connection.catalog(ctx.signal);
64
- await ctx.entries.write(ROOT, catalogEntry(JSON.stringify({
65
- ...catalog,
66
- resources: catalog.resources.map((resource) => ({
67
- ...resource,
68
- address: `${this.#server}://${resourcePath(resource.uri)}`,
69
- })),
70
- }), "mcp-catalog"));
71
- await ctx.entries.write(RESOURCES, catalogEntry(JSON.stringify({
72
- resources: catalog.resources.map((resource) => ({
73
- ...resource,
74
- address: `${this.#server}://${resourcePath(resource.uri)}`,
75
- })),
76
- resourceTemplates: catalog.resourceTemplates,
77
- }), "mcp-resource-index"));
78
- await Promise.all(catalog.resources.map(async (resource) => {
101
+ const resources = this.#catalog.resources.map((resource) => ({
102
+ ...resource,
103
+ address: `${this.#server}://${resourcePath(resource.uri)}`,
104
+ }));
105
+ const prompts = this.#catalog.prompts.map((prompt) => ({
106
+ ...prompt,
107
+ address: `${this.#server}://${promptPath(prompt.name)}`,
108
+ }));
109
+ requireEntrySuccess(await ctx.entries.write(ROOT, catalogEntry(JSON.stringify({
110
+ resources,
111
+ resourceTemplates: this.#catalog.resourceTemplates,
112
+ prompts,
113
+ }), "mcp-resource-index")));
114
+ requireEntrySuccess(await ctx.entries.write(RESOURCES, catalogEntry(JSON.stringify({
115
+ resources,
116
+ resourceTemplates: this.#catalog.resourceTemplates,
117
+ }), "mcp-resource-index")));
118
+ requireEntrySuccess(await ctx.entries.write(PROMPTS, catalogEntry(JSON.stringify({ prompts }), "mcp-prompt-index")));
119
+ await Promise.all(this.#catalog.resources.map(async (resource) => {
79
120
  const pathname = resourcePath(resource.uri);
80
- const existing = await ctx.entries.read(pathname);
121
+ const existing = requireEntrySuccess(await ctx.entries.read(pathname));
81
122
  if (existing.entry?.attributes?.kind === RESOURCE_KIND)
82
123
  return;
83
- await ctx.entries.write(pathname, catalogEntry(JSON.stringify({
124
+ requireEntrySuccess(await ctx.entries.write(pathname, catalogEntry(JSON.stringify({
84
125
  ...resource,
85
126
  address: `${this.#server}://${pathname}`,
86
- }), CATALOG_KIND));
127
+ }), CATALOG_KIND)));
128
+ }));
129
+ await Promise.all(this.#catalog.prompts.map(async (prompt) => {
130
+ const pathname = promptPath(prompt.name);
131
+ const existing = requireEntrySuccess(await ctx.entries.read(pathname));
132
+ if (existing.entry?.attributes?.kind === PROMPT_KIND)
133
+ return;
134
+ requireEntrySuccess(await ctx.entries.write(pathname, catalogEntry(JSON.stringify({
135
+ ...prompt,
136
+ address: `${this.#server}://${pathname}`,
137
+ }), "mcp-prompt-catalog")));
138
+ }));
139
+ }
140
+ async #materializePrompt(request, ctx) {
141
+ const encoded = request.pathname.slice(PROMPT_PREFIX.length);
142
+ if (encoded.length === 0 || encoded.includes("/")) {
143
+ throw new ResourceAddressError(`Invalid MCP prompt address '${request.pathname}'.`);
144
+ }
145
+ let name;
146
+ try {
147
+ name = decodeURIComponent(encoded);
148
+ }
149
+ catch (cause) {
150
+ throw new ResourceAddressError(`Invalid encoded MCP prompt address '${request.pathname}'.`, { cause });
151
+ }
152
+ const search = new URLSearchParams(request.target.kind === "url" ? request.target.query ?? "" : "");
153
+ const args = {};
154
+ for (const [key, value] of search) {
155
+ if (Object.hasOwn(args, key)) {
156
+ throw new ResourceAddressError(`MCP prompt argument '${key}' occurs more than once.`);
157
+ }
158
+ args[key] = value;
159
+ }
160
+ const result = await this.#connection.getPrompt(name, Object.keys(args).length === 0 ? undefined : args, ctx.signal, (interaction) => ctx.interactions.request(interaction));
161
+ requireEntrySuccess(await ctx.entries.write(request.pathname, {
162
+ channels: {
163
+ body: {
164
+ content: JSON.stringify(result),
165
+ mimetype: "application/json",
166
+ },
167
+ },
168
+ attributes: { kind: PROMPT_KIND },
87
169
  }));
88
170
  }
89
171
  async #materializeResource(pathname, ctx) {
@@ -98,8 +180,8 @@ export default class McpResources {
98
180
  catch (cause) {
99
181
  throw new ResourceAddressError(`Invalid encoded MCP resource address '${pathname}'.`, { cause });
100
182
  }
101
- const body = resourceBody(await this.#connection.readResource(uri, ctx.signal));
102
- await ctx.entries.write(pathname, {
183
+ const body = resourceBody(await this.#connection.readResource(uri, ctx.signal, (interaction) => ctx.interactions.request(interaction)));
184
+ requireEntrySuccess(await ctx.entries.write(pathname, {
103
185
  channels: {
104
186
  body: {
105
187
  content: body.content,
@@ -107,7 +189,7 @@ export default class McpResources {
107
189
  },
108
190
  },
109
191
  attributes: { kind: RESOURCE_KIND },
110
- });
192
+ }));
111
193
  }
112
194
  async prepareRepresentation(request, ctx) {
113
195
  const pathname = request.pathname;
@@ -117,12 +199,18 @@ export default class McpResources {
117
199
  if (exactResource) {
118
200
  await this.#materializeResource(pathname, ctx);
119
201
  }
202
+ else if (pathname.startsWith(PROMPT_PREFIX) && !/[*?[\]{}]/.test(pathname)) {
203
+ await this.#materializePrompt(request, ctx);
204
+ }
120
205
  else {
121
206
  await this.#materializeCatalog(ctx);
122
207
  }
123
208
  return { status: 200 };
124
209
  }
125
210
  catch (error) {
211
+ if (error instanceof EntryOperationFailure) {
212
+ return preparationEntryFailure(error);
213
+ }
126
214
  const invalidAddress = error instanceof ResourceAddressError;
127
215
  return preparationFailure(this.#server, invalidAddress ? "resource-address-invalid" : "resource-read-failed", invalidAddress ? 400 : 502, invalidAddress
128
216
  ? `The requested MCP resource address for '${this.#server}' is invalid.`
@@ -138,6 +226,8 @@ export default class McpResources {
138
226
  return await ctx.entries.operations.find(statement);
139
227
  }
140
228
  catch (error) {
229
+ if (error instanceof EntryOperationFailure)
230
+ return findEntryFailure(error);
141
231
  return findFailure(this.#server, "resource-find-failed", 502, `MCP server '${this.#server}' could not list its resources.`, {
142
232
  diagnostic: error instanceof Error ? error.message : String(error),
143
233
  retryable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"McpResources.js","sourceRoot":"","sources":["../src/McpResources.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,GAOV,MAAM,wBAAwB,CAAC;AAIhC,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,eAAe,GAAG,GAAG,SAAS,GAAG,CAAC;AACxC,MAAM,aAAa,GAAG,cAAc,CAAC;AACrC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAE5C,MAAM,oBAAqB,SAAQ,KAAK;CAAG;AAE3C,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE,CACzC,GAAG,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AAEnD,MAAM,kBAAkB,GAAG,CACvB,MAAc,EACd,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAA6C,EACd,EAAE,CAAC,OAAO,CAAC,OAAO,CACjD,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,MAAM,EACN,EAAE,EACF;IACI,MAAM;IACN,KAAK,EAAE,cAAc;IACrB,GAAG,UAAU;CAChB,CAC+B,CAAC;AAErC,MAAM,WAAW,GAAG,CAChB,MAAc,EACd,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAA6C,EAC9B,EAAE,CAAC,OAAO,CAAC,OAAO,CACjC,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,MAAM,EACN;IACI,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,gBAAgB,EAAE,CAAC;IACnB,wBAAwB,EAAE,CAAC;IAC3B,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;CACxB,EACD;IACI,MAAM;IACN,KAAK,EAAE,cAAc;IACrB,GAAG,UAAU;CAChB,CACe,CAAC;AAErB,MAAM,YAAY,GAAG,CAAC,MAA0B,EAG9C,EAAE;IACA,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;QAClC,OAAO;YACH,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,YAAY;SAC3C,CAAC;IACN,CAAC;IACD,OAAO;QACH,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,kBAAkB;KAC/B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,IAAY,EAAa,EAAE,CAAC,CAAC;IAChE,QAAQ,EAAE;QACN,IAAI,EAAE;YACF,OAAO;YACP,QAAQ,EAAE,kBAAkB;SAC/B;KACJ;IACD,UAAU,EAAE,EAAE,IAAI,EAAE;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,YAAY;IACpB,OAAO,CAAS;IAChB,WAAW,CAAmB;IAEvC,YAAY,MAAc,EAAE,UAA4B;QACpD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,QAAQ,KAAK,IAAI;eACjB,QAAQ,KAAK,SAAS;eACtB,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAc;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CACnB,IAAI,EACJ,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YACxB,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC5C,GAAG,QAAQ;gBACX,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;aAC7D,CAAC,CAAC;SACN,CAAC,EAAE,aAAa,CAAC,CACrB,CAAC;QACF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CACnB,SAAS,EACT,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC5C,GAAG,QAAQ;gBACX,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;aAC7D,CAAC,CAAC;YACH,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC/C,CAAC,EAAE,oBAAoB,CAAC,CAC5B,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,KAAK,aAAa;gBAAE,OAAO;YAC/D,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CACnB,QAAQ,EACR,YAAY,CACR,IAAI,CAAC,SAAS,CAAC;gBACX,GAAG,QAAQ;gBACX,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,QAAQ,EAAE;aAC3C,CAAC,EACF,YAAY,CACf,CACJ,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,GAAc;QACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,QAAQ,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACD,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,yCAAyC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBAC1B;aACJ;YACD,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,qBAAqB,CACvB,OAAyC,EACzC,GAAc;QAEd,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;mBACnD,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,KAAK,YAAY,oBAAoB,CAAC;YAC7D,OAAO,kBAAkB,CACrB,IAAI,CAAC,OAAO,EACZ,cAAc,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sBAAsB,EACpE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC1B,cAAc;gBACV,CAAC,CAAC,2CAA2C,IAAI,CAAC,OAAO,eAAe;gBACxE,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,0CAA0C,EAC3E;gBACI,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAClE,SAAS,EAAE,CAAC,cAAc;aAC7B,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAc;QAC/C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,WAAW,CACd,IAAI,CAAC,OAAO,EACZ,sBAAsB,EACtB,GAAG,EACH,eAAe,IAAI,CAAC,OAAO,iCAAiC,EAC5D;gBACI,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAClE,SAAS,EAAE,IAAI;aAClB,CACJ,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"McpResources.js","sourceRoot":"","sources":["../src/McpResources.ts"],"names":[],"mappings":"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"}
package/dist/Module.d.ts CHANGED
@@ -6,18 +6,43 @@ interface RuntimeSchemeFacet {
6
6
  prepareRepresentation?(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
7
7
  find?(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
8
8
  }
9
+ interface RuntimeRegistration {
10
+ readonly namespaceOwner: string;
11
+ readonly decl: RuntimeDecl;
12
+ readonly executor: McpExecutor;
13
+ readonly availability: RuntimeAvailability;
14
+ readonly scheme?: RuntimeSchemeFacet;
15
+ }
16
+ type ModuleActionContext = {
17
+ readonly scope: "worldless";
18
+ } | {
19
+ readonly scope: "workspace";
20
+ readonly workspaceId: number;
21
+ };
9
22
  interface ModuleSetupSeam {
10
- registerRuntime(registration: {
23
+ registerModuleAction(registration: {
24
+ readonly name: string;
25
+ readonly scope: "worldless" | "workspace";
26
+ readonly handler: (params: Readonly<Record<string, unknown>>, context: ModuleActionContext) => unknown | Promise<unknown>;
27
+ }): void;
28
+ registerWorkspaceCapabilityProvider(namespaceOwner: string, provider: {
29
+ hydrate(workspaceId: number): void | Promise<void>;
30
+ }): void;
31
+ readWorkspaceModuleState(workspaceId: number, namespaceOwner: string): Promise<unknown | null>;
32
+ replaceWorkspaceCapabilities(replacement: {
33
+ readonly workspaceId: number;
11
34
  readonly namespaceOwner: string;
12
- readonly decl: RuntimeDecl;
13
- readonly executor: McpExecutor;
14
- readonly availability: RuntimeAvailability;
15
- readonly scheme?: RuntimeSchemeFacet;
35
+ readonly state: unknown | null;
36
+ readonly runtimes: readonly RuntimeRegistration[];
16
37
  }): Promise<void>;
17
38
  }
18
39
  export interface ModuleOptions {
19
40
  readonly env?: NodeJS.ProcessEnv;
20
41
  }
42
+ interface ClosableConnection {
43
+ close(): Promise<void>;
44
+ }
45
+ export declare const closeConnections: (connections: readonly ClosableConnection[]) => Promise<void>;
21
46
  export default class Module {
22
47
  #private;
23
48
  static init(options?: ModuleOptions): Module;
@@ -1 +1 @@
1
- {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,WAAW,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACR,aAAa,EACb,gCAAgC,EAChC,+BAA+B,EAC/B,SAAS,EACT,YAAY,EACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,WAA4B,MAAM,kBAAkB,CAAC;AAG5D,UAAU,kBAAkB;IACxB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,qBAAqB,CAAC,CAClB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1E;AAED,UAAU,eAAe;IACrB,eAAe,CAAC,YAAY,EAAE;QAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;KACxC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;IAIvB,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAE/C;IAED,OAAO,eAEN;IAEK,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAU3B;CACJ"}
1
+ {"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,WAAW,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACR,aAAa,EACb,gCAAgC,EAChC,+BAA+B,EAC/B,SAAS,EACT,YAAY,EACf,MAAM,wBAAwB,CAAC;AAqBhC,OAAO,WAA2C,MAAM,kBAAkB,CAAC;AAM3E,UAAU,kBAAkB;IACxB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,qBAAqB,CAAC,CAClB,OAAO,EAAE,gCAAgC,EACzC,GAAG,EAAE,SAAS,GACf,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1E;AAED,UAAU,mBAAmB;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,KAAK,mBAAmB,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,UAAU,eAAe;IACrB,oBAAoB,CAAC,YAAY,EAAE;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC;QAC1C,QAAQ,CAAC,OAAO,EAAE,CACd,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,OAAO,EAAE,mBAAmB,KAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC,GAAG,IAAI,CAAC;IACT,mCAAmC,CAC/B,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE;QAAE,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GACjE,IAAI,CAAC;IACR,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC/F,4BAA4B,CAAC,WAAW,EAAE;QACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;KACrD,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAoED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAED,UAAU,kBAAkB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAyED,eAAO,MAAM,gBAAgB,gBACZ,SAAS,kBAAkB,EAAE,KAC3C,OAAO,CAAC,IAAI,CAUd,CAAC;AA+GF,MAAM,CAAC,OAAO,OAAO,MAAM;;IAevB,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAE/C;IAED,OAAO,eAQN;IAEK,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChD;IAy3BK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB3B;CACJ"}