@frontmcp/sdk 0.5.0 → 0.6.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 (226) hide show
  1. package/README.md +3 -3
  2. package/package.json +8 -19
  3. package/src/adapter/adapter.instance.js +5 -0
  4. package/src/adapter/adapter.instance.js.map +1 -1
  5. package/src/auth/authorization/authorization.class.d.ts +1 -4
  6. package/src/auth/authorization/authorization.class.js +6 -13
  7. package/src/auth/authorization/authorization.class.js.map +1 -1
  8. package/src/auth/flows/session.verify.flow.d.ts +1 -0
  9. package/src/auth/flows/session.verify.flow.js +11 -1
  10. package/src/auth/flows/session.verify.flow.js.map +1 -1
  11. package/src/auth/flows/well-known.jwks.flow.js +2 -2
  12. package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
  13. package/src/auth/jwks/dev-key-persistence.d.ts +63 -0
  14. package/src/auth/jwks/dev-key-persistence.js +219 -0
  15. package/src/auth/jwks/dev-key-persistence.js.map +1 -0
  16. package/src/auth/jwks/index.d.ts +1 -0
  17. package/src/auth/jwks/index.js +1 -0
  18. package/src/auth/jwks/index.js.map +1 -1
  19. package/src/auth/jwks/jwks.service.d.ts +7 -4
  20. package/src/auth/jwks/jwks.service.js +81 -12
  21. package/src/auth/jwks/jwks.service.js.map +1 -1
  22. package/src/auth/jwks/jwks.types.d.ts +7 -0
  23. package/src/auth/jwks/jwks.types.js.map +1 -1
  24. package/src/auth/machine-id.d.ts +5 -0
  25. package/src/auth/machine-id.js +32 -0
  26. package/src/auth/machine-id.js.map +1 -0
  27. package/src/auth/session/index.d.ts +1 -0
  28. package/src/auth/session/index.js +3 -1
  29. package/src/auth/session/index.js.map +1 -1
  30. package/src/auth/session/record/session.base.js +5 -3
  31. package/src/auth/session/record/session.base.js.map +1 -1
  32. package/src/auth/session/record/session.stateless.d.ts +2 -2
  33. package/src/auth/session/record/session.stateless.js +5 -3
  34. package/src/auth/session/record/session.stateless.js.map +1 -1
  35. package/src/auth/session/redis-session.store.d.ts +64 -0
  36. package/src/auth/session/redis-session.store.js +204 -0
  37. package/src/auth/session/redis-session.store.js.map +1 -0
  38. package/src/auth/session/session.service.d.ts +0 -2
  39. package/src/auth/session/session.service.js +1 -7
  40. package/src/auth/session/session.service.js.map +1 -1
  41. package/src/auth/session/transport-session.manager.js +3 -5
  42. package/src/auth/session/transport-session.manager.js.map +1 -1
  43. package/src/auth/session/transport-session.types.d.ts +4 -0
  44. package/src/auth/session/transport-session.types.js +4 -3
  45. package/src/auth/session/transport-session.types.js.map +1 -1
  46. package/src/auth/session/utils/session-id.utils.d.ts +12 -1
  47. package/src/auth/session/utils/session-id.utils.js +48 -9
  48. package/src/auth/session/utils/session-id.utils.js.map +1 -1
  49. package/src/auth/ui/base-layout.d.ts +0 -8
  50. package/src/auth/ui/base-layout.js +1 -14
  51. package/src/auth/ui/base-layout.js.map +1 -1
  52. package/src/auth/ui/index.d.ts +3 -4
  53. package/src/auth/ui/index.js +10 -11
  54. package/src/auth/ui/index.js.map +1 -1
  55. package/src/auth/ui/{htmx-templates.d.ts → templates.d.ts} +5 -6
  56. package/src/auth/ui/{htmx-templates.js → templates.js} +8 -15
  57. package/src/auth/ui/templates.js.map +1 -0
  58. package/src/common/decorators/decorator-utils.js.map +1 -1
  59. package/src/common/decorators/front-mcp.decorator.js +28 -2
  60. package/src/common/decorators/front-mcp.decorator.js.map +1 -1
  61. package/src/common/index.d.ts +0 -1
  62. package/src/common/index.js +0 -1
  63. package/src/common/index.js.map +1 -1
  64. package/src/common/interfaces/adapter.interface.d.ts +6 -0
  65. package/src/common/interfaces/adapter.interface.js.map +1 -1
  66. package/src/common/interfaces/execution-context.interface.d.ts +52 -3
  67. package/src/common/interfaces/execution-context.interface.js +88 -3
  68. package/src/common/interfaces/execution-context.interface.js.map +1 -1
  69. package/src/common/interfaces/flow.interface.d.ts +13 -0
  70. package/src/common/interfaces/flow.interface.js +24 -0
  71. package/src/common/interfaces/flow.interface.js.map +1 -1
  72. package/src/common/interfaces/server.interface.d.ts +9 -0
  73. package/src/common/interfaces/server.interface.js.map +1 -1
  74. package/src/common/metadata/app.metadata.d.ts +108 -0
  75. package/src/common/metadata/front-mcp.metadata.d.ts +659 -2
  76. package/src/common/metadata/front-mcp.metadata.js +3 -1
  77. package/src/common/metadata/front-mcp.metadata.js.map +1 -1
  78. package/src/common/metadata/provider.metadata.d.ts +14 -0
  79. package/src/common/metadata/provider.metadata.js +18 -2
  80. package/src/common/metadata/provider.metadata.js.map +1 -1
  81. package/src/common/metadata/tool.metadata.d.ts +33 -1
  82. package/src/common/metadata/tool.metadata.js.map +1 -1
  83. package/src/common/migrate/auth-transport.migrate.d.ts +62 -0
  84. package/src/common/migrate/auth-transport.migrate.js +140 -0
  85. package/src/common/migrate/auth-transport.migrate.js.map +1 -0
  86. package/src/common/migrate/index.d.ts +1 -0
  87. package/src/common/migrate/index.js +6 -0
  88. package/src/common/migrate/index.js.map +1 -0
  89. package/src/common/schemas/http-output.schema.d.ts +10 -2
  90. package/src/common/schemas/index.d.ts +1 -0
  91. package/src/common/schemas/index.js +1 -0
  92. package/src/common/schemas/index.js.map +1 -1
  93. package/src/common/schemas/session-header.schema.d.ts +16 -0
  94. package/src/common/schemas/session-header.schema.js +42 -0
  95. package/src/common/schemas/session-header.schema.js.map +1 -0
  96. package/src/common/tokens/front-mcp.tokens.js +3 -1
  97. package/src/common/tokens/front-mcp.tokens.js.map +1 -1
  98. package/src/common/types/options/auth.options.d.ts +233 -3
  99. package/src/common/types/options/auth.options.js +29 -40
  100. package/src/common/types/options/auth.options.js.map +1 -1
  101. package/src/common/types/options/index.d.ts +2 -0
  102. package/src/common/types/options/index.js +2 -0
  103. package/src/common/types/options/index.js.map +1 -1
  104. package/src/common/types/options/redis.options.d.ts +22 -0
  105. package/src/common/types/options/redis.options.js +45 -0
  106. package/src/common/types/options/redis.options.js.map +1 -0
  107. package/src/common/types/options/transport.options.d.ts +84 -0
  108. package/src/common/types/options/transport.options.js +121 -0
  109. package/src/common/types/options/transport.options.js.map +1 -0
  110. package/src/completion/flows/complete.flow.d.ts +17 -2
  111. package/src/context/frontmcp-context-storage.d.ts +94 -0
  112. package/src/context/frontmcp-context-storage.js +183 -0
  113. package/src/context/frontmcp-context-storage.js.map +1 -0
  114. package/src/context/frontmcp-context.d.ts +269 -0
  115. package/src/context/frontmcp-context.js +360 -0
  116. package/src/context/frontmcp-context.js.map +1 -0
  117. package/src/context/frontmcp-context.provider.d.ts +43 -0
  118. package/src/context/frontmcp-context.provider.js +61 -0
  119. package/src/context/frontmcp-context.provider.js.map +1 -0
  120. package/src/context/index.d.ts +34 -0
  121. package/src/context/index.js +64 -0
  122. package/src/context/index.js.map +1 -0
  123. package/src/context/request-context-storage.d.ts +89 -0
  124. package/src/context/request-context-storage.js +183 -0
  125. package/src/context/request-context-storage.js.map +1 -0
  126. package/src/context/request-context.d.ts +184 -0
  127. package/src/context/request-context.js +209 -0
  128. package/src/context/request-context.js.map +1 -0
  129. package/src/context/request-context.provider.d.ts +37 -0
  130. package/src/context/request-context.provider.js +51 -0
  131. package/src/context/request-context.provider.js.map +1 -0
  132. package/src/context/session-key.provider.d.ts +45 -0
  133. package/src/context/session-key.provider.js +65 -0
  134. package/src/context/session-key.provider.js.map +1 -0
  135. package/src/context/trace-context.d.ts +43 -0
  136. package/src/context/trace-context.js +142 -0
  137. package/src/context/trace-context.js.map +1 -0
  138. package/src/errors/index.d.ts +1 -1
  139. package/src/errors/index.js +3 -1
  140. package/src/errors/index.js.map +1 -1
  141. package/src/errors/mcp.error.d.ts +7 -0
  142. package/src/errors/mcp.error.js +11 -1
  143. package/src/errors/mcp.error.js.map +1 -1
  144. package/src/flows/flow.instance.d.ts +16 -0
  145. package/src/flows/flow.instance.js +166 -80
  146. package/src/flows/flow.instance.js.map +1 -1
  147. package/src/flows/flow.registry.d.ts +5 -0
  148. package/src/flows/flow.registry.js +45 -3
  149. package/src/flows/flow.registry.js.map +1 -1
  150. package/src/front-mcp/front-mcp.d.ts +12 -0
  151. package/src/front-mcp/front-mcp.js +22 -3
  152. package/src/front-mcp/front-mcp.js.map +1 -1
  153. package/src/front-mcp/front-mcp.providers.d.ts +266 -1
  154. package/src/front-mcp/front-mcp.providers.js +2 -1
  155. package/src/front-mcp/front-mcp.providers.js.map +1 -1
  156. package/src/front-mcp/serverless-handler.d.ts +28 -0
  157. package/src/front-mcp/serverless-handler.js +61 -0
  158. package/src/front-mcp/serverless-handler.js.map +1 -0
  159. package/src/hooks/hooks.utils.d.ts +1 -1
  160. package/src/hooks/hooks.utils.js +10 -3
  161. package/src/hooks/hooks.utils.js.map +1 -1
  162. package/src/index.d.ts +8 -4
  163. package/src/index.js +20 -1
  164. package/src/index.js.map +1 -1
  165. package/src/logger/instances/instance.logger.js +0 -1
  166. package/src/logger/instances/instance.logger.js.map +1 -1
  167. package/src/logging/flows/set-level.flow.d.ts +17 -2
  168. package/src/notification/notification.service.js +5 -1
  169. package/src/notification/notification.service.js.map +1 -1
  170. package/src/prompt/flows/get-prompt.flow.d.ts +97 -2
  171. package/src/prompt/flows/prompts-list.flow.d.ts +12 -1
  172. package/src/provider/provider.registry.d.ts +97 -5
  173. package/src/provider/provider.registry.js +306 -9
  174. package/src/provider/provider.registry.js.map +1 -1
  175. package/src/provider/provider.types.d.ts +21 -3
  176. package/src/provider/provider.types.js.map +1 -1
  177. package/src/resource/flows/read-resource.flow.d.ts +22 -3
  178. package/src/resource/flows/resource-templates-list.flow.d.ts +20 -1
  179. package/src/resource/flows/resources-list.flow.d.ts +20 -1
  180. package/src/resource/flows/subscribe-resource.flow.d.ts +17 -2
  181. package/src/resource/flows/unsubscribe-resource.flow.d.ts +17 -2
  182. package/src/scope/flows/http.request.flow.js +43 -7
  183. package/src/scope/flows/http.request.flow.js.map +1 -1
  184. package/src/scope/scope.instance.js +12 -5
  185. package/src/scope/scope.instance.js.map +1 -1
  186. package/src/server/adapters/base.host.adapter.d.ts +9 -0
  187. package/src/server/adapters/base.host.adapter.js.map +1 -1
  188. package/src/server/adapters/express.host.adapter.d.ts +12 -0
  189. package/src/server/adapters/express.host.adapter.js +21 -1
  190. package/src/server/adapters/express.host.adapter.js.map +1 -1
  191. package/src/server/server.instance.d.ts +3 -0
  192. package/src/server/server.instance.js +14 -7
  193. package/src/server/server.instance.js.map +1 -1
  194. package/src/tool/flows/call-tool.flow.d.ts +118 -13
  195. package/src/tool/flows/call-tool.flow.js +240 -194
  196. package/src/tool/flows/call-tool.flow.js.map +1 -1
  197. package/src/tool/flows/tools-list.flow.d.ts +25 -11
  198. package/src/tool/flows/tools-list.flow.js +82 -31
  199. package/src/tool/flows/tools-list.flow.js.map +1 -1
  200. package/src/tool/tool.instance.d.ts +1 -4
  201. package/src/transport/adapters/transport.streamable-http.adapter.js +1 -0
  202. package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
  203. package/src/transport/flows/handle.sse.flow.js +9 -2
  204. package/src/transport/flows/handle.sse.flow.js.map +1 -1
  205. package/src/transport/flows/handle.streamable-http.flow.js +63 -6
  206. package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
  207. package/src/transport/mcp-handlers/complete-request.handler.d.ts +27 -1
  208. package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +52 -1
  209. package/src/transport/mcp-handlers/index.d.ts +413 -7
  210. package/src/transport/mcp-handlers/initialize-request.handler.js +12 -2
  211. package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
  212. package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +27 -1
  213. package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +32 -1
  214. package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +32 -1
  215. package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +30 -1
  216. package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +20 -0
  217. package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +27 -1
  218. package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +20 -0
  219. package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +20 -0
  220. package/src/transport/transport.registry.d.ts +68 -4
  221. package/src/transport/transport.registry.js +313 -11
  222. package/src/transport/transport.registry.js.map +1 -1
  223. package/src/auth/ui/htmx-templates.js.map +0 -1
  224. package/src/common/providers/session.provider.d.ts +0 -13
  225. package/src/common/providers/session.provider.js +0 -27
  226. package/src/common/providers/session.provider.js.map +0 -1
@@ -1,12 +1,20 @@
1
1
  import { FlowBase, FlowRunOptions, ToolContext, ToolEntry } from '../../common';
2
2
  import { z } from 'zod';
3
3
  import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
4
+ import { type ToolResponseContent } from '@frontmcp/ui/adapters';
4
5
  declare const inputSchema: z.ZodObject<{
5
6
  request: z.ZodObject<{
6
7
  method: z.ZodLiteral<"tools/call">;
7
8
  params: z.ZodObject<{
9
+ task: z.ZodOptional<z.ZodObject<{
10
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodNull]>>;
11
+ pollInterval: z.ZodOptional<z.ZodNumber>;
12
+ }, z.core.$loose>>;
8
13
  _meta: z.ZodOptional<z.ZodObject<{
9
14
  progressToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
15
+ "io.modelcontextprotocol/related-task": z.ZodOptional<z.ZodObject<{
16
+ taskId: z.ZodString;
17
+ }, z.core.$loose>>;
10
18
  }, z.core.$loose>>;
11
19
  name: z.ZodString;
12
20
  arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -15,25 +23,61 @@ declare const inputSchema: z.ZodObject<{
15
23
  ctx: z.ZodAny;
16
24
  }, z.core.$strip>;
17
25
  declare const outputSchema: z.ZodObject<{
18
- _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
26
+ _meta: z.ZodOptional<z.ZodObject<{
27
+ "io.modelcontextprotocol/related-task": z.ZodOptional<z.ZodObject<{
28
+ taskId: z.ZodString;
29
+ }, z.core.$loose>>;
30
+ }, z.core.$loose>>;
19
31
  content: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
20
32
  type: z.ZodLiteral<"text">;
21
33
  text: z.ZodString;
34
+ annotations: z.ZodOptional<z.ZodObject<{
35
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
36
+ user: "user";
37
+ assistant: "assistant";
38
+ }>>>;
39
+ priority: z.ZodOptional<z.ZodNumber>;
40
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
41
+ }, z.core.$strip>>;
22
42
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
43
  }, z.core.$strip>, z.ZodObject<{
24
44
  type: z.ZodLiteral<"image">;
25
45
  data: z.ZodString;
26
46
  mimeType: z.ZodString;
47
+ annotations: z.ZodOptional<z.ZodObject<{
48
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
49
+ user: "user";
50
+ assistant: "assistant";
51
+ }>>>;
52
+ priority: z.ZodOptional<z.ZodNumber>;
53
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
54
+ }, z.core.$strip>>;
27
55
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
56
  }, z.core.$strip>, z.ZodObject<{
29
57
  type: z.ZodLiteral<"audio">;
30
58
  data: z.ZodString;
31
59
  mimeType: z.ZodString;
60
+ annotations: z.ZodOptional<z.ZodObject<{
61
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
62
+ user: "user";
63
+ assistant: "assistant";
64
+ }>>>;
65
+ priority: z.ZodOptional<z.ZodNumber>;
66
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
67
+ }, z.core.$strip>>;
32
68
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
33
69
  }, z.core.$strip>, z.ZodObject<{
34
70
  uri: z.ZodString;
35
71
  description: z.ZodOptional<z.ZodString>;
36
72
  mimeType: z.ZodOptional<z.ZodString>;
73
+ annotations: z.ZodOptional<z.ZodObject<{
74
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
75
+ user: "user";
76
+ assistant: "assistant";
77
+ }>>>;
78
+ priority: z.ZodOptional<z.ZodNumber>;
79
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
80
+ }, z.core.$strip>>;
37
81
  _meta: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
38
82
  icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
39
83
  src: z.ZodString;
@@ -56,6 +100,14 @@ declare const outputSchema: z.ZodObject<{
56
100
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
57
101
  blob: z.ZodString;
58
102
  }, z.core.$strip>]>;
103
+ annotations: z.ZodOptional<z.ZodObject<{
104
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
105
+ user: "user";
106
+ assistant: "assistant";
107
+ }>>>;
108
+ priority: z.ZodOptional<z.ZodNumber>;
109
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
110
+ }, z.core.$strip>>;
59
111
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
60
112
  }, z.core.$strip>]>>>;
61
113
  structuredContent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -67,37 +119,65 @@ declare const stateSchema: z.ZodObject<{
67
119
  arguments: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
68
120
  }, z.core.$loose>;
69
121
  authInfo: z.ZodType<AuthInfo>;
70
- tool: z.ZodCustom<ToolEntry<Readonly<{
71
- [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
72
- }>, import("../../common").ToolOutputType, unknown, unknown>, ToolEntry<Readonly<{
73
- [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
74
- }>, import("../../common").ToolOutputType, unknown, unknown>>;
75
- toolContext: z.ZodCustom<ToolContext<Readonly<{
76
- [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
77
- }>, import("../../common").ToolOutputType, unknown, unknown>, ToolContext<Readonly<{
78
- [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
79
- }>, import("../../common").ToolOutputType, unknown, unknown>>;
122
+ tool: z.ZodCustom<ToolEntry<import("../../common").ToolInputType, import("../../common").ToolOutputType, unknown, unknown>, ToolEntry<import("../../common").ToolInputType, import("../../common").ToolOutputType, unknown, unknown>>;
123
+ toolContext: z.ZodCustom<ToolContext<import("../../common").ToolInputType, import("../../common").ToolOutputType, unknown, unknown>, ToolContext<import("../../common").ToolInputType, import("../../common").ToolOutputType, unknown, unknown>>;
80
124
  rawOutput: z.ZodOptional<z.ZodAny>;
81
125
  output: z.ZodObject<{
82
- _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ _meta: z.ZodOptional<z.ZodObject<{
127
+ "io.modelcontextprotocol/related-task": z.ZodOptional<z.ZodObject<{
128
+ taskId: z.ZodString;
129
+ }, z.core.$loose>>;
130
+ }, z.core.$loose>>;
83
131
  content: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
84
132
  type: z.ZodLiteral<"text">;
85
133
  text: z.ZodString;
134
+ annotations: z.ZodOptional<z.ZodObject<{
135
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
136
+ user: "user";
137
+ assistant: "assistant";
138
+ }>>>;
139
+ priority: z.ZodOptional<z.ZodNumber>;
140
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
141
+ }, z.core.$strip>>;
86
142
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
87
143
  }, z.core.$strip>, z.ZodObject<{
88
144
  type: z.ZodLiteral<"image">;
89
145
  data: z.ZodString;
90
146
  mimeType: z.ZodString;
147
+ annotations: z.ZodOptional<z.ZodObject<{
148
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
149
+ user: "user";
150
+ assistant: "assistant";
151
+ }>>>;
152
+ priority: z.ZodOptional<z.ZodNumber>;
153
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
154
+ }, z.core.$strip>>;
91
155
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
92
156
  }, z.core.$strip>, z.ZodObject<{
93
157
  type: z.ZodLiteral<"audio">;
94
158
  data: z.ZodString;
95
159
  mimeType: z.ZodString;
160
+ annotations: z.ZodOptional<z.ZodObject<{
161
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
162
+ user: "user";
163
+ assistant: "assistant";
164
+ }>>>;
165
+ priority: z.ZodOptional<z.ZodNumber>;
166
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
167
+ }, z.core.$strip>>;
96
168
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
97
169
  }, z.core.$strip>, z.ZodObject<{
98
170
  uri: z.ZodString;
99
171
  description: z.ZodOptional<z.ZodString>;
100
172
  mimeType: z.ZodOptional<z.ZodString>;
173
+ annotations: z.ZodOptional<z.ZodObject<{
174
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
175
+ user: "user";
176
+ assistant: "assistant";
177
+ }>>>;
178
+ priority: z.ZodOptional<z.ZodNumber>;
179
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
180
+ }, z.core.$strip>>;
101
181
  _meta: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
102
182
  icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
103
183
  src: z.ZodString;
@@ -120,17 +200,27 @@ declare const stateSchema: z.ZodObject<{
120
200
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
201
  blob: z.ZodString;
122
202
  }, z.core.$strip>]>;
203
+ annotations: z.ZodOptional<z.ZodObject<{
204
+ audience: z.ZodOptional<z.ZodArray<z.ZodEnum<{
205
+ user: "user";
206
+ assistant: "assistant";
207
+ }>>>;
208
+ priority: z.ZodOptional<z.ZodNumber>;
209
+ lastModified: z.ZodOptional<z.ZodISODateTime>;
210
+ }, z.core.$strip>>;
123
211
  _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
212
  }, z.core.$strip>]>>>;
125
213
  structuredContent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
214
  isError: z.ZodOptional<z.ZodBoolean>;
127
215
  }, z.core.$loose>;
128
216
  _toolOwnerId: z.ZodOptional<z.ZodString>;
217
+ uiResult: z.ZodType<ToolResponseContent | undefined>;
218
+ uiMeta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
129
219
  }, z.core.$strip>;
130
220
  declare const plan: {
131
221
  readonly pre: ["parseInput", "findTool", "checkToolAuthorization", "createToolCallContext", "acquireQuota", "acquireSemaphore"];
132
222
  readonly execute: ["validateInput", "execute", "validateOutput"];
133
- readonly finalize: ["releaseSemaphore", "releaseQuota", "finalize"];
223
+ readonly finalize: ["releaseSemaphore", "releaseQuota", "applyUI", "finalize"];
134
224
  };
135
225
  declare global {
136
226
  interface ExtendFlows {
@@ -160,6 +250,21 @@ export default class CallToolFlow extends FlowBase<typeof name> {
160
250
  validateOutput(): Promise<void>;
161
251
  releaseSemaphore(): Promise<void>;
162
252
  releaseQuota(): Promise<void>;
253
+ /**
254
+ * Apply UI rendering to the tool response.
255
+ * This stage handles all UI-related logic including platform detection,
256
+ * serving mode resolution, and content formatting.
257
+ */
258
+ applyUI(): Promise<void>;
259
+ /**
260
+ * Finalize the tool response.
261
+ * Validates output, applies UI result from applyUI stage, and sends the response.
262
+ *
263
+ * Note: This stage runs even when execute fails (as part of cleanup).
264
+ * If rawOutput is undefined, it means an error occurred during execution
265
+ * and the error will be propagated by the flow framework - we should not
266
+ * throw a new error here.
267
+ */
163
268
  finalize(): Promise<void>;
164
269
  }
165
270
  export {};