@grackle-ai/mcp 0.116.0 → 0.118.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/README.md CHANGED
@@ -245,22 +245,23 @@ Query aggregated token usage and cost data.
245
245
  |------|-------------|------------|
246
246
  | `usage_get` | Get token usage and cost for a session, task, task tree, workspace, or environment. | `scope` (`session` \| `task` \| `task_tree` \| `workspace` \| `environment`), `id` (string) |
247
247
 
248
- ### Widget Tools
248
+ ### Component & Widget Tools
249
249
 
250
- [MCP Apps](#mcp-apps-ui-widgets) UI widgets — interactive HTML rendered inline by capable hosts (and always by Grackle's own chat pane via the broker).
250
+ [MCP Apps](#mcp-apps-ui-widgets) UI rendered inline by capable hosts (and always by Grackle's own chat pane via the broker).
251
251
 
252
- `show_hello_widget` is the Grackle-served demo widget: it references a static `ui://` resource and appears in `tools/list` **only** when the host advertises the `io.modelcontextprotocol/ui` extension. The **widget registry** tools let an agent author and render its own widgets at runtime; they are ordinary scoped tools (always listed) and the rendered widget is captured by the broker into the session's chat.
252
+ `show_hello_widget` is the Grackle-served demo: it references a static `ui://` resource and appears in `tools/list` **only** when the host advertises the `io.modelcontextprotocol/ui` extension. The **component registry** tools (#1269) let an agent author and reuse components at runtime; they are ordinary scoped tools (always listed) and the rendered output is captured by the broker into the session's chat.
253
253
 
254
254
  | Tool | Description | Parameters |
255
255
  |------|-------------|------------|
256
256
  | `show_hello_widget` | Display the Grackle hello widget — a minimal interactive MCP Apps UI that echoes the provided message. | `message` (string, optional) |
257
- | `widget_register` | Register a reusable widget (HTML body) in the workspace so it can be re-rendered with different data. Returns the widget id. | `name` (string), `body` (string), `description` (string, optional), `propsSchema` (string, optional) |
258
- | `widget_update` | Update a registered widget's body/name/description/props schema; bumps its version. | `id` (string), `body`/`name`/`description`/`propsSchema` (optional) |
259
- | `widget_list` | List the reusable widgets registered in the workspace. | — |
260
- | `widget_render` | Render a registered widget inline (by `id` or `name`), optionally passing `props` (data). | `id` (string, optional), `name` (string, optional), `props` (object, optional) |
261
- | `widget_show` | Render a one-off widget inline from an inline HTML `body`, without persisting it. | `body` (string), `props` (object, optional) |
262
-
263
- Widgets are **workspace-scoped**: a session may only register/render widgets in its own workspace (the `workspaceId` is taken from the session's scoped token). Agent-authored bodies render in the cross-origin sandbox with inline scripts allowed (`script-src 'unsafe-inline'`), isolated by the iframe origin + a restricted `connect-src`.
257
+ | `component_register` | Register a reusable component in the workspace. `source` is JSX (`grackle-react`, default) or HTML (`mcp-app-html`). Returns the component id. | `name` (string), `source` (string), `rendererKind` (optional), `description` (optional), `propsSchema` (JSON Schema string, optional) |
258
+ | `component_update` | Update a registered component's source/name/description/props schema; bumps its version. | `id` (string), `source`/`name`/`description`/`propsSchema` (optional) |
259
+ | `component_list` | List the reusable components registered in the workspace. | — |
260
+ | `component_render` | Render a registered component inline (by `id` or `name`), optionally passing `props`. Props are validated against the component's `propsSchema`. | `id` (optional), `name` (optional), `props` (object, optional) |
261
+ | `component_show` | Render a one-off React/JSX component inline against the Grackle component library (no persistence). `source` calls `render(<Component {...props}/>)`; `React`, `props`, and Grackle components are in scope. | `source` (string), `props` (object, optional) |
262
+ | `widget_show` | Render a one-off raw-HTML body inline, without persisting it. | `body` (string), `props` (object, optional) |
263
+
264
+ Components are **workspace-scoped**: a session may only register/render components in its own workspace (the `workspaceId` is taken from the session's scoped token). A component's `propsSchema` (a JSON Schema) is validated at register, and render-time `props` are validated against it (via zod's `fromJSONSchema`). Renderers run in the cross-origin sandbox: `mcp-app-html` allows inline scripts (`script-src 'unsafe-inline'`); `grackle-react` runs the React runtime that transpiles + evaluates JSX (`script-src 'unsafe-eval'`) — both kept safe by the iframe origin isolation + restricted `connect-src`.
264
265
 
265
266
  ---
266
267
 
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAwB7B,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAqBzE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,IAAI,CAAC;AAEV,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAChC,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAuTD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,CA8FtE;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAC7C,SAAS,EAAE,OAAO,GACjB,MAAM,CASR"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAwB7B,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAqBzE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,IAAI,CAAC;AAEV,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAChC,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAyTD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,CA8FtE;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAC7C,SAAS,EAAE,OAAO,GACjB,MAAM,CASR"}
@@ -237,7 +237,8 @@ async function createMcpServerInstance(grpcClients, authContext, assetBaseUrl, b
237
237
  try {
238
238
  const dynamic = result._meta?.[WIDGET_RENDER_META_KEY];
239
239
  if (dynamic) {
240
- // Dynamic, agent-authored widget (widget_render / widget_show, #1239).
240
+ // Dynamic, agent-authored render (component_render / component_show /
241
+ // widget_show); grackle-react React runtime (#1268/#1269).
241
242
  publishWidgetEvent(authContext.taskSessionId, {
242
243
  rendererKind: dynamic.rendererKind || "mcp-app-html",
243
244
  resourceUri: dynamic.resourceUri ?? "",
@@ -247,6 +248,7 @@ async function createMcpServerInstance(grpcClients, authContext, assetBaseUrl, b
247
248
  resourceDomains: [widgetAssetOrigin],
248
249
  connectDomains: [widgetAssetOrigin],
249
250
  allowInlineScripts: dynamic.allowInlineScripts === true,
251
+ allowUnsafeEval: dynamic.allowUnsafeEval === true,
250
252
  },
251
253
  toolInput: dynamic.props ?? parsed.data,
252
254
  toolResult: result,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ToolDefinition } from "../tool-registry.js";
2
+ /**
3
+ * MCP Apps component registry + render tools.
4
+ *
5
+ * - `component_register` / `component_update` / `component_list` — the
6
+ * agent-authored registry (#1239 widgets → #1269 components): persist a reusable
7
+ * component (`grackle-react` JSX by default, or `mcp-app-html`) in the workspace.
8
+ * - `component_render` — render a registered component by id/name with props; the
9
+ * broker captures the result `_meta` descriptor and emits the widget event.
10
+ * - `component_show` — render a one-off React/JSX component (render-by-source, #1268).
11
+ * - `widget_show` — render a one-off raw-HTML body. `show_hello_widget` — demo.
12
+ *
13
+ * `show_hello_widget` carries a static `uiResourceUri` (gated to ui-capable hosts
14
+ * in `mcp-server.ts`); the registry tools are plain tools (always listed to scoped
15
+ * agents) and produce widgets dynamically via `_meta`.
16
+ */
17
+ export declare const componentTools: ToolDefinition[];
18
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/tools/component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,cAAc,EAAc,MAAM,qBAAqB,CAAC;AA0FtF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,EAgO1C,CAAC"}
@@ -0,0 +1,323 @@
1
+ import { z } from "zod";
2
+ import { jsonResult } from "../result-helpers.js";
3
+ import { grpcErrorToToolResult } from "../error-handler.js";
4
+ import { HELLO_WIDGET_URI } from "../resources/hello-widget.js";
5
+ import { WIDGET_RENDER_META_KEY } from "../widget-render-meta.js";
6
+ /** Renderer kind for raw-HTML bodies (sandboxed inline scripts). */
7
+ const HTML_RENDERER_KIND = "mcp-app-html";
8
+ /** Renderer kind for the Grackle React runtime (JSX via react-live, #1268). */
9
+ const REACT_RENDERER_KIND = "grackle-react";
10
+ /** Build an INVALID_ARGUMENT tool error result. */
11
+ function invalidArgument(message) {
12
+ return {
13
+ content: [{ type: "text", text: JSON.stringify({ error: message, code: "INVALID_ARGUMENT" }, null, 2) }],
14
+ isError: true,
15
+ };
16
+ }
17
+ /** Wrap a render descriptor in a tool result whose `_meta` the broker capture reads. */
18
+ function renderResult(summary, descriptor) {
19
+ return { ...jsonResult(summary), _meta: { [WIDGET_RENDER_META_KEY]: descriptor } };
20
+ }
21
+ /** Owner provenance from the calling session's scoped token (empty for non-scoped callers). */
22
+ function owner(authContext) {
23
+ if (authContext?.type === "scoped") {
24
+ return { ownerTaskId: authContext.taskId, ownerSessionId: authContext.taskSessionId };
25
+ }
26
+ return { ownerTaskId: "", ownerSessionId: "" };
27
+ }
28
+ /**
29
+ * Validate that a `propsSchema` argument is a well-formed JSON Schema object.
30
+ * Returns an error message when malformed, or `undefined` when valid/absent.
31
+ */
32
+ function propsSchemaError(propsSchema) {
33
+ if (!propsSchema) {
34
+ return undefined;
35
+ }
36
+ let parsed;
37
+ try {
38
+ parsed = JSON.parse(propsSchema);
39
+ }
40
+ catch {
41
+ return "propsSchema must be valid JSON (a JSON Schema object)";
42
+ }
43
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
44
+ return "propsSchema must be a JSON Schema object (e.g. {\"type\":\"object\",\"properties\":{...}})";
45
+ }
46
+ try {
47
+ z.fromJSONSchema(parsed);
48
+ }
49
+ catch (err) {
50
+ return `propsSchema is not a valid JSON Schema: ${err instanceof Error ? err.message : String(err)}`;
51
+ }
52
+ return undefined;
53
+ }
54
+ /**
55
+ * Validate render-time `props` against a component's stored JSON-Schema
56
+ * `propsSchema` by converting it to a zod schema and parsing. Returns an error
57
+ * message on mismatch, or `undefined` when valid (or when there is no schema).
58
+ */
59
+ function propsValidationError(propsSchema, props) {
60
+ if (!propsSchema) {
61
+ return undefined;
62
+ }
63
+ let schema;
64
+ try {
65
+ schema = JSON.parse(propsSchema);
66
+ }
67
+ catch {
68
+ // A malformed stored schema is validated at register time; don't block renders on it.
69
+ return undefined;
70
+ }
71
+ let zodSchema;
72
+ try {
73
+ zodSchema = z.fromJSONSchema(schema);
74
+ }
75
+ catch {
76
+ return undefined; // unusable stored schema → don't block the render
77
+ }
78
+ const result = zodSchema.safeParse(props);
79
+ if (result.success) {
80
+ return undefined;
81
+ }
82
+ return z.prettifyError(result.error);
83
+ }
84
+ /**
85
+ * MCP Apps component registry + render tools.
86
+ *
87
+ * - `component_register` / `component_update` / `component_list` — the
88
+ * agent-authored registry (#1239 widgets → #1269 components): persist a reusable
89
+ * component (`grackle-react` JSX by default, or `mcp-app-html`) in the workspace.
90
+ * - `component_render` — render a registered component by id/name with props; the
91
+ * broker captures the result `_meta` descriptor and emits the widget event.
92
+ * - `component_show` — render a one-off React/JSX component (render-by-source, #1268).
93
+ * - `widget_show` — render a one-off raw-HTML body. `show_hello_widget` — demo.
94
+ *
95
+ * `show_hello_widget` carries a static `uiResourceUri` (gated to ui-capable hosts
96
+ * in `mcp-server.ts`); the registry tools are plain tools (always listed to scoped
97
+ * agents) and produce widgets dynamically via `_meta`.
98
+ */
99
+ export const componentTools = [
100
+ {
101
+ name: "show_hello_widget",
102
+ group: "widget",
103
+ description: "Display the Grackle hello widget — a minimal interactive MCP Apps UI that echoes the provided message. Renders inline in hosts that support MCP Apps.",
104
+ inputSchema: z.object({
105
+ message: z.string().optional().describe("Message to echo back in the widget."),
106
+ }),
107
+ rpcMethod: "showHelloWidget",
108
+ mutating: false,
109
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
110
+ uiResourceUri: HELLO_WIDGET_URI,
111
+ async handler(args) {
112
+ const message = typeof args.message === "string" ? args.message : "Hello from Grackle";
113
+ return jsonResult({ message, renderedAt: new Date().toISOString() });
114
+ },
115
+ },
116
+ {
117
+ name: "component_register",
118
+ group: "component",
119
+ description: "Register a reusable component in this workspace so it can be rendered repeatedly with different data via component_render. `source` is the component body: JSX for the default `grackle-react` renderer (call render(<C {...props}/>); React + Grackle components are in scope), or HTML for `mcp-app-html`. Optionally provide a `propsSchema` (JSON Schema) describing the props it accepts. Returns the component id.",
120
+ inputSchema: z.object({
121
+ name: z.string().describe("Short component name, unique within your workspace."),
122
+ source: z.string().describe("Component body — JSX (grackle-react) or HTML (mcp-app-html)."),
123
+ rendererKind: z.enum([REACT_RENDERER_KIND, HTML_RENDERER_KIND]).optional().describe("Renderer (default grackle-react)."),
124
+ description: z.string().optional().describe("Human-readable description of the component."),
125
+ propsSchema: z.string().optional().describe("JSON Schema (as a string) describing the props component_render accepts."),
126
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context when omitted)."),
127
+ }),
128
+ rpcMethod: "registerComponent",
129
+ mutating: true,
130
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
131
+ async handler(args, { orchestration: client }, authContext) {
132
+ const workspaceId = args.workspaceId;
133
+ if (!workspaceId) {
134
+ return invalidArgument("workspaceId is required but was not provided or auto-injected. This session may not be associated with a workspace.");
135
+ }
136
+ const schemaErr = propsSchemaError(args.propsSchema);
137
+ if (schemaErr) {
138
+ return invalidArgument(schemaErr);
139
+ }
140
+ try {
141
+ const c = await client.registerComponent({
142
+ workspaceId,
143
+ name: args.name,
144
+ body: args.source,
145
+ description: args.description ?? "",
146
+ rendererKind: args.rendererKind ?? REACT_RENDERER_KIND,
147
+ propsSchema: args.propsSchema ?? "",
148
+ ...owner(authContext),
149
+ });
150
+ return jsonResult({ id: c.id, name: c.name, version: c.version });
151
+ }
152
+ catch (error) {
153
+ return grpcErrorToToolResult(error);
154
+ }
155
+ },
156
+ },
157
+ {
158
+ name: "component_update",
159
+ group: "component",
160
+ description: "Update a registered component's source (body), name, description, or props schema. Only provided fields change; the version is bumped.",
161
+ inputSchema: z.object({
162
+ id: z.string().describe("Component id to update."),
163
+ source: z.string().optional().describe("New component body (JSX or HTML)."),
164
+ name: z.string().optional().describe("New component name."),
165
+ description: z.string().optional().describe("New description."),
166
+ propsSchema: z.string().optional().describe("New props JSON Schema (as a string)."),
167
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context)."),
168
+ }),
169
+ rpcMethod: "updateComponent",
170
+ mutating: true,
171
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
172
+ async handler(args, { orchestration: client }) {
173
+ if (!args.id) {
174
+ return invalidArgument("id is required");
175
+ }
176
+ const schemaErr = propsSchemaError(args.propsSchema);
177
+ if (schemaErr) {
178
+ return invalidArgument(schemaErr);
179
+ }
180
+ try {
181
+ const c = await client.updateComponent({
182
+ id: args.id,
183
+ workspaceId: args.workspaceId ?? "",
184
+ ...(args.name !== undefined ? { name: args.name } : {}),
185
+ ...(args.description !== undefined ? { description: args.description } : {}),
186
+ ...(args.source !== undefined ? { body: args.source } : {}),
187
+ ...(args.propsSchema !== undefined ? { propsSchema: args.propsSchema } : {}),
188
+ });
189
+ return jsonResult({ id: c.id, name: c.name, version: c.version });
190
+ }
191
+ catch (error) {
192
+ return grpcErrorToToolResult(error);
193
+ }
194
+ },
195
+ },
196
+ {
197
+ name: "component_list",
198
+ group: "component",
199
+ description: "List the reusable components registered in this workspace.",
200
+ inputSchema: z.object({
201
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context when omitted)."),
202
+ }),
203
+ rpcMethod: "listComponents",
204
+ mutating: false,
205
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
206
+ async handler(args, { orchestration: client }) {
207
+ const workspaceId = args.workspaceId;
208
+ if (!workspaceId) {
209
+ return invalidArgument("workspaceId is required but was not provided or auto-injected.");
210
+ }
211
+ try {
212
+ const response = await client.listComponents({ workspaceId });
213
+ return jsonResult(response.components.map((c) => ({
214
+ id: c.id,
215
+ name: c.name,
216
+ description: c.description,
217
+ rendererKind: c.rendererKind,
218
+ propsSchema: c.propsSchema,
219
+ version: c.version,
220
+ updatedAt: c.updatedAt,
221
+ })));
222
+ }
223
+ catch (error) {
224
+ return grpcErrorToToolResult(error);
225
+ }
226
+ },
227
+ },
228
+ {
229
+ name: "component_render",
230
+ group: "component",
231
+ description: "Render a previously registered component inline in the chat, optionally passing props (data). Resolve by id (preferred) or by name within your workspace. Props are validated against the component's propsSchema when present.",
232
+ inputSchema: z.object({
233
+ id: z.string().optional().describe("Component id (takes precedence over name)."),
234
+ name: z.string().optional().describe("Component name, resolved within your workspace."),
235
+ props: z.record(z.string(), z.unknown()).optional().describe("Data passed to the component at render time."),
236
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context)."),
237
+ }),
238
+ rpcMethod: "getComponent",
239
+ mutating: false,
240
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
241
+ async handler(args, { orchestration: client }) {
242
+ const id = args.id;
243
+ const name = args.name;
244
+ if (!id && !name) {
245
+ return invalidArgument("id or name is required");
246
+ }
247
+ try {
248
+ const c = await client.getComponent({
249
+ id: id ?? "",
250
+ name: name ?? "",
251
+ workspaceId: args.workspaceId ?? "",
252
+ });
253
+ const props = args.props ?? {};
254
+ const validationErr = propsValidationError(c.propsSchema, props);
255
+ if (validationErr) {
256
+ return invalidArgument(`props do not match the component's propsSchema: ${validationErr}`);
257
+ }
258
+ const kind = c.rendererKind || REACT_RENDERER_KIND;
259
+ const descriptor = {
260
+ rendererKind: kind,
261
+ body: c.body,
262
+ props,
263
+ allowInlineScripts: kind === HTML_RENDERER_KIND,
264
+ allowUnsafeEval: kind === REACT_RENDERER_KIND,
265
+ widgetId: c.id,
266
+ version: c.version,
267
+ resourceUri: `ui://grackle/${c.id}`,
268
+ };
269
+ return renderResult({ rendered: true, id: c.id, name: c.name, version: c.version }, descriptor);
270
+ }
271
+ catch (error) {
272
+ return grpcErrorToToolResult(error);
273
+ }
274
+ },
275
+ },
276
+ {
277
+ name: "component_show",
278
+ group: "component",
279
+ description: "Render a one-off React/JSX component inline in the chat against the Grackle component library (no persistence). Provide `source` as JSX that calls render(<YourComponent {...props}/>) (react-live noInline); `props` supplies the data. `React`, `props`, and Grackle components (e.g. Button, Callout, Spinner) are in scope. Use component_register + component_render to reuse a component across renders.",
280
+ inputSchema: z.object({
281
+ source: z.string().describe("JSX source. Must call render(<Component {...props}/>). `React`, `props`, and Grackle components are in scope."),
282
+ props: z.record(z.string(), z.unknown()).optional().describe("Data passed to the component as `props`."),
283
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected; unused for one-off renders)."),
284
+ }),
285
+ rpcMethod: "componentShow",
286
+ mutating: false,
287
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
288
+ async handler(args) {
289
+ const descriptor = {
290
+ rendererKind: REACT_RENDERER_KIND,
291
+ body: args.source,
292
+ props: args.props ?? {},
293
+ allowUnsafeEval: true,
294
+ resourceUri: "",
295
+ };
296
+ return renderResult({ rendered: true }, descriptor);
297
+ },
298
+ },
299
+ {
300
+ name: "widget_show",
301
+ group: "widget",
302
+ description: "Render a one-off raw-HTML widget inline in the chat from an inline HTML body, without persisting it. For React/JSX use component_show; for reuse use component_register + component_render.",
303
+ inputSchema: z.object({
304
+ body: z.string().describe("Widget HTML body. May include inline <script>/<style>."),
305
+ props: z.record(z.string(), z.unknown()).optional().describe("Data passed to the widget at render time."),
306
+ workspaceId: z.string().optional().describe("Workspace ID (auto-injected; unused for one-off renders)."),
307
+ }),
308
+ rpcMethod: "widgetShow",
309
+ mutating: false,
310
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
311
+ async handler(args) {
312
+ const descriptor = {
313
+ rendererKind: HTML_RENDERER_KIND,
314
+ body: args.body,
315
+ props: args.props ?? {},
316
+ allowInlineScripts: true,
317
+ resourceUri: "",
318
+ };
319
+ return renderResult({ rendered: true }, descriptor);
320
+ },
321
+ },
322
+ ];
323
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/tools/component.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import { scheduleTools } from "./schedule.js";
15
15
  import { versionTools } from "./version.js";
16
16
  import { escalationTools } from "./escalation.js";
17
17
  import { pluginTools } from "./plugin.js";
18
- import { widgetTools } from "./widget.js";
18
+ import { componentTools } from "./component.js";
19
19
  /** Built-in tool groups shipped with the MCP package. */
20
20
  const builtinToolGroups = [
21
21
  envTools,
@@ -34,7 +34,7 @@ const builtinToolGroups = [
34
34
  versionTools,
35
35
  escalationTools,
36
36
  pluginTools,
37
- widgetTools,
37
+ componentTools,
38
38
  ];
39
39
  /**
40
40
  * Create a ToolRegistry pre-populated with all built-in MCP tools.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yDAAyD;AACzD,MAAM,iBAAiB,GAAuB;IAC5C,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,SAAS;IACT,YAAY;IACZ,SAAS;IACT,eAAe;IACf,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,oBAAyC;IAC1E,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,yDAAyD;AACzD,MAAM,iBAAiB,GAAuB;IAC5C,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,SAAS;IACT,YAAY;IACZ,SAAS;IACT,eAAe;IACf,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,WAAW;IACX,cAAc;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,oBAAyC;IAC1E,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Internal `_meta` channel used by the dynamic widget tools (`widget_render`,
3
- * `widget_show`) to hand a render descriptor to the in-process broker capture in
2
+ * Internal `_meta` channel used by the dynamic render tools (`component_render`,
3
+ * `component_show`, `widget_show`) to hand a render descriptor to the broker capture in
4
4
  * `mcp-server.ts`. The handler runs in-process, so the capture reads the
5
5
  * descriptor off the result directly — it never depends on the agent SDK
6
6
  * round-tripping `_meta` (the T3 broker-capture principle).
@@ -17,6 +17,8 @@ export interface WidgetRenderDescriptor {
17
17
  props?: Record<string, unknown>;
18
18
  /** Allow inline `<script>` in the sandbox CSP (agent-authored bodies). */
19
19
  allowInlineScripts?: boolean;
20
+ /** Allow `eval`/`new Function` in the sandbox CSP (the Grackle React runtime, #1268). */
21
+ allowUnsafeEval?: boolean;
20
22
  /** Registry id when rendering a registered widget (omitted for one-off `widget_show`). */
21
23
  widgetId?: string;
22
24
  /** Registry version, when known. */
@@ -1 +1 @@
1
- {"version":3,"file":"widget-render-meta.d.ts","sourceRoot":"","sources":["../src/widget-render-meta.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,EAAE,MAAmC,CAAC;AAEzE,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"widget-render-meta.d.ts","sourceRoot":"","sources":["../src/widget-render-meta.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,EAAE,MAAmC,CAAC;AAEzE,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Internal `_meta` channel used by the dynamic widget tools (`widget_render`,
3
- * `widget_show`) to hand a render descriptor to the in-process broker capture in
2
+ * Internal `_meta` channel used by the dynamic render tools (`component_render`,
3
+ * `component_show`, `widget_show`) to hand a render descriptor to the broker capture in
4
4
  * `mcp-server.ts`. The handler runs in-process, so the capture reads the
5
5
  * descriptor off the result directly — it never depends on the agent SDK
6
6
  * round-tripping `_meta` (the T3 broker-capture principle).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/mcp",
3
- "version": "0.116.0",
3
+ "version": "0.118.0",
4
4
  "description": "MCP (Model Context Protocol) server for Grackle — translates MCP tool calls to ConnectRPC",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -37,9 +37,9 @@
37
37
  "@modelcontextprotocol/ext-apps": "^1.7.2",
38
38
  "@modelcontextprotocol/sdk": "^1.29.0",
39
39
  "pino": "^10.3.1",
40
- "zod": "^4.0.0",
41
- "@grackle-ai/common": "0.116.0",
42
- "@grackle-ai/auth": "0.116.0"
40
+ "zod": "^4.3.0",
41
+ "@grackle-ai/auth": "0.118.0",
42
+ "@grackle-ai/common": "0.118.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@rushstack/heft": "1.2.7",
@@ -1,17 +0,0 @@
1
- import type { ToolDefinition } from "../tool-registry.js";
2
- /**
3
- * MCP Apps widget tools.
4
- *
5
- * - `show_hello_widget` — the static Grackle-served demo widget (T2/T3).
6
- * - `widget_register` / `widget_update` / `widget_list` — the agent-authored
7
- * registry (#1239): persist a reusable widget body in the workspace.
8
- * - `widget_render` / `widget_show` — render a widget into the chat. The broker
9
- * captures the result `_meta` descriptor and emits the widget event; the
10
- * frontend never contacts the MCP server.
11
- *
12
- * `show_hello_widget` carries a static `uiResourceUri` (gated to ui-capable
13
- * hosts in `mcp-server.ts`); the registry tools are plain tools (always listed
14
- * to scoped agents) and produce widgets dynamically via `_meta`.
15
- */
16
- export declare const widgetTools: ToolDefinition[];
17
- //# sourceMappingURL=widget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,cAAc,EAAc,MAAM,qBAAqB,CAAC;AA8BtF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,EAAE,cAAc,EAuLvC,CAAC"}
@@ -1,223 +0,0 @@
1
- import { z } from "zod";
2
- import { jsonResult } from "../result-helpers.js";
3
- import { grpcErrorToToolResult } from "../error-handler.js";
4
- import { HELLO_WIDGET_URI } from "../resources/hello-widget.js";
5
- import { WIDGET_RENDER_META_KEY } from "../widget-render-meta.js";
6
- const DEFAULT_RENDERER_KIND = "mcp-app-html";
7
- /** Build an INVALID_ARGUMENT tool error result. */
8
- function invalidArgument(message) {
9
- return {
10
- content: [{ type: "text", text: JSON.stringify({ error: message, code: "INVALID_ARGUMENT" }, null, 2) }],
11
- isError: true,
12
- };
13
- }
14
- /** Wrap a render descriptor in a tool result whose `_meta` the broker capture reads. */
15
- function renderResult(summary, descriptor) {
16
- return { ...jsonResult(summary), _meta: { [WIDGET_RENDER_META_KEY]: descriptor } };
17
- }
18
- /** Owner provenance from the calling session's scoped token (empty for non-scoped callers). */
19
- function owner(authContext) {
20
- if (authContext?.type === "scoped") {
21
- return { ownerTaskId: authContext.taskId, ownerSessionId: authContext.taskSessionId };
22
- }
23
- return { ownerTaskId: "", ownerSessionId: "" };
24
- }
25
- /**
26
- * MCP Apps widget tools.
27
- *
28
- * - `show_hello_widget` — the static Grackle-served demo widget (T2/T3).
29
- * - `widget_register` / `widget_update` / `widget_list` — the agent-authored
30
- * registry (#1239): persist a reusable widget body in the workspace.
31
- * - `widget_render` / `widget_show` — render a widget into the chat. The broker
32
- * captures the result `_meta` descriptor and emits the widget event; the
33
- * frontend never contacts the MCP server.
34
- *
35
- * `show_hello_widget` carries a static `uiResourceUri` (gated to ui-capable
36
- * hosts in `mcp-server.ts`); the registry tools are plain tools (always listed
37
- * to scoped agents) and produce widgets dynamically via `_meta`.
38
- */
39
- export const widgetTools = [
40
- {
41
- name: "show_hello_widget",
42
- group: "widget",
43
- description: "Display the Grackle hello widget — a minimal interactive MCP Apps UI that echoes the provided message. Renders inline in hosts that support MCP Apps.",
44
- inputSchema: z.object({
45
- message: z.string().optional().describe("Message to echo back in the widget."),
46
- }),
47
- rpcMethod: "showHelloWidget",
48
- mutating: false,
49
- annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
50
- uiResourceUri: HELLO_WIDGET_URI,
51
- async handler(args) {
52
- const message = typeof args.message === "string" ? args.message : "Hello from Grackle";
53
- return jsonResult({ message, renderedAt: new Date().toISOString() });
54
- },
55
- },
56
- {
57
- name: "widget_register",
58
- group: "widget",
59
- description: "Register a reusable UI widget in this workspace so it can be rendered repeatedly with different data via widget_render. The body is HTML (text/html;profile=mcp-app) and may include inline <script>/<style>; it renders in a sandboxed iframe. Returns the widget id.",
60
- inputSchema: z.object({
61
- name: z.string().describe("Short widget name, unique within your workspace."),
62
- body: z.string().describe("Widget HTML body. May include inline <script>/<style>."),
63
- description: z.string().optional().describe("Human-readable description of the widget."),
64
- propsSchema: z.string().optional().describe("Optional JSON Schema (as a string) describing the props widget_render accepts."),
65
- workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context when omitted)."),
66
- }),
67
- rpcMethod: "registerWidget",
68
- mutating: true,
69
- annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
70
- async handler(args, { orchestration: client }, authContext) {
71
- const workspaceId = args.workspaceId;
72
- if (!workspaceId) {
73
- return invalidArgument("workspaceId is required but was not provided or auto-injected. This session may not be associated with a workspace.");
74
- }
75
- try {
76
- const w = await client.registerWidget({
77
- workspaceId,
78
- name: args.name,
79
- body: args.body,
80
- description: args.description ?? "",
81
- rendererKind: DEFAULT_RENDERER_KIND,
82
- propsSchema: args.propsSchema ?? "",
83
- ...owner(authContext),
84
- });
85
- return jsonResult({ id: w.id, name: w.name, version: w.version });
86
- }
87
- catch (error) {
88
- return grpcErrorToToolResult(error);
89
- }
90
- },
91
- },
92
- {
93
- name: "widget_update",
94
- group: "widget",
95
- description: "Update a registered widget's body, name, description, or props schema. Only provided fields change; the version is bumped.",
96
- inputSchema: z.object({
97
- id: z.string().describe("Widget id to update."),
98
- body: z.string().optional().describe("New widget HTML body."),
99
- name: z.string().optional().describe("New widget name."),
100
- description: z.string().optional().describe("New description."),
101
- propsSchema: z.string().optional().describe("New props JSON Schema (as a string)."),
102
- workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context)."),
103
- }),
104
- rpcMethod: "updateWidget",
105
- mutating: true,
106
- annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
107
- async handler(args, { orchestration: client }) {
108
- if (!args.id) {
109
- return invalidArgument("id is required");
110
- }
111
- try {
112
- const w = await client.updateWidget({
113
- id: args.id,
114
- workspaceId: args.workspaceId ?? "",
115
- ...(args.name !== undefined ? { name: args.name } : {}),
116
- ...(args.description !== undefined ? { description: args.description } : {}),
117
- ...(args.body !== undefined ? { body: args.body } : {}),
118
- ...(args.propsSchema !== undefined ? { propsSchema: args.propsSchema } : {}),
119
- });
120
- return jsonResult({ id: w.id, name: w.name, version: w.version });
121
- }
122
- catch (error) {
123
- return grpcErrorToToolResult(error);
124
- }
125
- },
126
- },
127
- {
128
- name: "widget_list",
129
- group: "widget",
130
- description: "List the reusable widgets registered in this workspace.",
131
- inputSchema: z.object({
132
- workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context when omitted)."),
133
- }),
134
- rpcMethod: "listWidgets",
135
- mutating: false,
136
- annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
137
- async handler(args, { orchestration: client }) {
138
- const workspaceId = args.workspaceId;
139
- if (!workspaceId) {
140
- return invalidArgument("workspaceId is required but was not provided or auto-injected.");
141
- }
142
- try {
143
- const response = await client.listWidgets({ workspaceId });
144
- return jsonResult(response.widgets.map((w) => ({
145
- id: w.id,
146
- name: w.name,
147
- description: w.description,
148
- rendererKind: w.rendererKind,
149
- version: w.version,
150
- updatedAt: w.updatedAt,
151
- })));
152
- }
153
- catch (error) {
154
- return grpcErrorToToolResult(error);
155
- }
156
- },
157
- },
158
- {
159
- name: "widget_render",
160
- group: "widget",
161
- description: "Render a previously registered widget inline in the chat, optionally passing props (data). Resolve the widget by id (preferred) or by name within your workspace.",
162
- inputSchema: z.object({
163
- id: z.string().optional().describe("Widget id (takes precedence over name)."),
164
- name: z.string().optional().describe("Widget name, resolved within your workspace."),
165
- props: z.record(z.string(), z.unknown()).optional().describe("Data passed to the widget at render time."),
166
- workspaceId: z.string().optional().describe("Workspace ID (auto-injected from session context)."),
167
- }),
168
- rpcMethod: "getWidget",
169
- mutating: false,
170
- annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
171
- async handler(args, { orchestration: client }) {
172
- const id = args.id;
173
- const name = args.name;
174
- if (!id && !name) {
175
- return invalidArgument("id or name is required");
176
- }
177
- try {
178
- const w = await client.getWidget({
179
- id: id ?? "",
180
- name: name ?? "",
181
- workspaceId: args.workspaceId ?? "",
182
- });
183
- const descriptor = {
184
- rendererKind: w.rendererKind || DEFAULT_RENDERER_KIND,
185
- body: w.body,
186
- props: args.props ?? {},
187
- allowInlineScripts: true,
188
- widgetId: w.id,
189
- version: w.version,
190
- resourceUri: `ui://grackle/${w.id}`,
191
- };
192
- return renderResult({ rendered: true, id: w.id, name: w.name, version: w.version }, descriptor);
193
- }
194
- catch (error) {
195
- return grpcErrorToToolResult(error);
196
- }
197
- },
198
- },
199
- {
200
- name: "widget_show",
201
- group: "widget",
202
- description: "Render a one-off widget inline in the chat from an inline HTML body, without persisting it. Use widget_register + widget_render when you want to reuse a widget across renders.",
203
- inputSchema: z.object({
204
- body: z.string().describe("Widget HTML body. May include inline <script>/<style>."),
205
- props: z.record(z.string(), z.unknown()).optional().describe("Data passed to the widget at render time."),
206
- workspaceId: z.string().optional().describe("Workspace ID (auto-injected; unused for one-off renders)."),
207
- }),
208
- rpcMethod: "widgetShow",
209
- mutating: false,
210
- annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
211
- async handler(args) {
212
- const descriptor = {
213
- rendererKind: DEFAULT_RENDERER_KIND,
214
- body: args.body,
215
- props: args.props ?? {},
216
- allowInlineScripts: true,
217
- resourceUri: "",
218
- };
219
- return renderResult({ rendered: true }, descriptor);
220
- },
221
- },
222
- ];
223
- //# sourceMappingURL=widget.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"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"}