nitrostack 1.0.71 → 1.0.73

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 (253) hide show
  1. package/dist/auth/api-key.js.map +1 -1
  2. package/dist/auth/client.js.map +1 -1
  3. package/dist/auth/index.d.ts +2 -1
  4. package/dist/auth/index.d.ts.map +1 -1
  5. package/dist/auth/index.js +3 -0
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/middleware.d.ts +1 -1
  8. package/dist/auth/middleware.d.ts.map +1 -1
  9. package/dist/auth/middleware.js.map +1 -1
  10. package/dist/auth/secure-secret.d.ts +136 -0
  11. package/dist/auth/secure-secret.d.ts.map +1 -0
  12. package/dist/auth/secure-secret.js +182 -0
  13. package/dist/auth/secure-secret.js.map +1 -0
  14. package/dist/auth/server-metadata.d.ts.map +1 -1
  15. package/dist/auth/server-metadata.js.map +1 -1
  16. package/dist/auth/simple-jwt.d.ts +100 -14
  17. package/dist/auth/simple-jwt.d.ts.map +1 -1
  18. package/dist/auth/simple-jwt.js +19 -9
  19. package/dist/auth/simple-jwt.js.map +1 -1
  20. package/dist/auth/token-store.js +1 -1
  21. package/dist/auth/token-store.js.map +1 -1
  22. package/dist/auth/token-validation.js +1 -1
  23. package/dist/auth/token-validation.js.map +1 -1
  24. package/dist/cli/commands/build.js +1 -1
  25. package/dist/cli/commands/build.js.map +1 -1
  26. package/dist/cli/commands/generate-types.js +12 -12
  27. package/dist/cli/commands/generate-types.js.map +1 -1
  28. package/dist/cli/commands/generate.d.ts +8 -1
  29. package/dist/cli/commands/generate.d.ts.map +1 -1
  30. package/dist/cli/commands/generate.js +13 -12
  31. package/dist/cli/commands/generate.js.map +1 -1
  32. package/dist/cli/commands/init.js +1 -1
  33. package/dist/cli/commands/init.js.map +1 -1
  34. package/dist/cli/commands/upgrade.d.ts +10 -0
  35. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  36. package/dist/cli/commands/upgrade.js +221 -0
  37. package/dist/cli/commands/upgrade.js.map +1 -0
  38. package/dist/cli/index.js +7 -0
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/core/app-decorator.d.ts +4 -3
  41. package/dist/core/app-decorator.d.ts.map +1 -1
  42. package/dist/core/app-decorator.js +67 -28
  43. package/dist/core/app-decorator.js.map +1 -1
  44. package/dist/core/builders.d.ts +19 -7
  45. package/dist/core/builders.d.ts.map +1 -1
  46. package/dist/core/builders.js +15 -8
  47. package/dist/core/builders.js.map +1 -1
  48. package/dist/core/component.d.ts +8 -8
  49. package/dist/core/component.d.ts.map +1 -1
  50. package/dist/core/component.js +3 -2
  51. package/dist/core/component.js.map +1 -1
  52. package/dist/core/config-module.d.ts +11 -4
  53. package/dist/core/config-module.d.ts.map +1 -1
  54. package/dist/core/config-module.js +1 -1
  55. package/dist/core/config-module.js.map +1 -1
  56. package/dist/core/decorators/cache.decorator.d.ts +9 -9
  57. package/dist/core/decorators/cache.decorator.d.ts.map +1 -1
  58. package/dist/core/decorators/cache.decorator.js +3 -3
  59. package/dist/core/decorators/cache.decorator.js.map +1 -1
  60. package/dist/core/decorators/health-check.decorator.d.ts +3 -3
  61. package/dist/core/decorators/health-check.decorator.d.ts.map +1 -1
  62. package/dist/core/decorators/health-check.decorator.js +2 -2
  63. package/dist/core/decorators/health-check.decorator.js.map +1 -1
  64. package/dist/core/decorators/rate-limit.decorator.d.ts +5 -4
  65. package/dist/core/decorators/rate-limit.decorator.d.ts.map +1 -1
  66. package/dist/core/decorators/rate-limit.decorator.js +3 -3
  67. package/dist/core/decorators/rate-limit.decorator.js.map +1 -1
  68. package/dist/core/decorators.d.ts +47 -29
  69. package/dist/core/decorators.d.ts.map +1 -1
  70. package/dist/core/decorators.js +9 -9
  71. package/dist/core/decorators.js.map +1 -1
  72. package/dist/core/di/container.d.ts +21 -4
  73. package/dist/core/di/container.d.ts.map +1 -1
  74. package/dist/core/di/container.js +11 -7
  75. package/dist/core/di/container.js.map +1 -1
  76. package/dist/core/di/injectable.decorator.d.ts +5 -3
  77. package/dist/core/di/injectable.decorator.d.ts.map +1 -1
  78. package/dist/core/di/injectable.decorator.js.map +1 -1
  79. package/dist/core/errors.d.ts +4 -4
  80. package/dist/core/errors.d.ts.map +1 -1
  81. package/dist/core/errors.js.map +1 -1
  82. package/dist/core/events/event-emitter.d.ts +3 -3
  83. package/dist/core/events/event-emitter.d.ts.map +1 -1
  84. package/dist/core/events/event-emitter.js.map +1 -1
  85. package/dist/core/events/event.decorator.d.ts +5 -5
  86. package/dist/core/events/event.decorator.d.ts.map +1 -1
  87. package/dist/core/events/event.decorator.js +10 -6
  88. package/dist/core/events/event.decorator.js.map +1 -1
  89. package/dist/core/events/log-emitter.d.ts +7 -1
  90. package/dist/core/events/log-emitter.d.ts.map +1 -1
  91. package/dist/core/events/log-emitter.js.map +1 -1
  92. package/dist/core/filters/exception-filter.decorator.d.ts +5 -5
  93. package/dist/core/filters/exception-filter.decorator.d.ts.map +1 -1
  94. package/dist/core/filters/exception-filter.decorator.js +3 -3
  95. package/dist/core/filters/exception-filter.decorator.js.map +1 -1
  96. package/dist/core/filters/exception-filter.interface.d.ts +14 -5
  97. package/dist/core/filters/exception-filter.interface.d.ts.map +1 -1
  98. package/dist/core/guards/apikey.guard.d.ts +1 -1
  99. package/dist/core/guards/apikey.guard.d.ts.map +1 -1
  100. package/dist/core/guards/guard.interface.d.ts +1 -1
  101. package/dist/core/guards/guard.interface.d.ts.map +1 -1
  102. package/dist/core/guards/jwt.guard.d.ts +1 -1
  103. package/dist/core/guards/jwt.guard.d.ts.map +1 -1
  104. package/dist/core/guards/oauth.guard.d.ts +1 -1
  105. package/dist/core/guards/oauth.guard.d.ts.map +1 -1
  106. package/dist/core/guards/use-guards.decorator.d.ts +3 -3
  107. package/dist/core/guards/use-guards.decorator.d.ts.map +1 -1
  108. package/dist/core/guards/use-guards.decorator.js +1 -1
  109. package/dist/core/guards/use-guards.decorator.js.map +1 -1
  110. package/dist/core/index.d.ts +2 -2
  111. package/dist/core/index.d.ts.map +1 -1
  112. package/dist/core/index.js.map +1 -1
  113. package/dist/core/interceptors/interceptor.decorator.d.ts +4 -4
  114. package/dist/core/interceptors/interceptor.decorator.d.ts.map +1 -1
  115. package/dist/core/interceptors/interceptor.decorator.js +2 -2
  116. package/dist/core/interceptors/interceptor.decorator.js.map +1 -1
  117. package/dist/core/interceptors/interceptor.interface.d.ts +3 -3
  118. package/dist/core/interceptors/interceptor.interface.d.ts.map +1 -1
  119. package/dist/core/logger.d.ts.map +1 -1
  120. package/dist/core/logger.js.map +1 -1
  121. package/dist/core/middleware/middleware.decorator.d.ts +4 -4
  122. package/dist/core/middleware/middleware.decorator.d.ts.map +1 -1
  123. package/dist/core/middleware/middleware.decorator.js +2 -2
  124. package/dist/core/middleware/middleware.decorator.js.map +1 -1
  125. package/dist/core/middleware/middleware.interface.d.ts +3 -3
  126. package/dist/core/middleware/middleware.interface.d.ts.map +1 -1
  127. package/dist/core/module.d.ts +33 -14
  128. package/dist/core/module.d.ts.map +1 -1
  129. package/dist/core/module.js +11 -6
  130. package/dist/core/module.js.map +1 -1
  131. package/dist/core/oauth-module.d.ts +9 -3
  132. package/dist/core/oauth-module.d.ts.map +1 -1
  133. package/dist/core/oauth-module.js +4 -3
  134. package/dist/core/oauth-module.js.map +1 -1
  135. package/dist/core/pipes/pipe.decorator.d.ts +14 -5
  136. package/dist/core/pipes/pipe.decorator.d.ts.map +1 -1
  137. package/dist/core/pipes/pipe.decorator.js +2 -2
  138. package/dist/core/pipes/pipe.decorator.js.map +1 -1
  139. package/dist/core/pipes/pipe.interface.d.ts +9 -4
  140. package/dist/core/pipes/pipe.interface.d.ts.map +1 -1
  141. package/dist/core/prompt.d.ts +13 -4
  142. package/dist/core/prompt.d.ts.map +1 -1
  143. package/dist/core/prompt.js +2 -2
  144. package/dist/core/prompt.js.map +1 -1
  145. package/dist/core/resource.d.ts +7 -2
  146. package/dist/core/resource.d.ts.map +1 -1
  147. package/dist/core/resource.js +2 -2
  148. package/dist/core/resource.js.map +1 -1
  149. package/dist/core/server.d.ts +49 -3
  150. package/dist/core/server.d.ts.map +1 -1
  151. package/dist/core/server.js +61 -34
  152. package/dist/core/server.js.map +1 -1
  153. package/dist/core/tool.d.ts +44 -16
  154. package/dist/core/tool.d.ts.map +1 -1
  155. package/dist/core/tool.js +19 -6
  156. package/dist/core/tool.js.map +1 -1
  157. package/dist/core/transports/discovery-http-server.d.ts +7 -1
  158. package/dist/core/transports/discovery-http-server.d.ts.map +1 -1
  159. package/dist/core/transports/discovery-http-server.js.map +1 -1
  160. package/dist/core/transports/http-server.d.ts +2 -2
  161. package/dist/core/transports/http-server.d.ts.map +1 -1
  162. package/dist/core/transports/http-server.js +1 -1
  163. package/dist/core/transports/http-server.js.map +1 -1
  164. package/dist/core/transports/streamable-http.d.ts +4 -4
  165. package/dist/core/transports/streamable-http.d.ts.map +1 -1
  166. package/dist/core/transports/streamable-http.js +1 -1
  167. package/dist/core/transports/streamable-http.js.map +1 -1
  168. package/dist/core/types.d.ts +87 -15
  169. package/dist/core/types.d.ts.map +1 -1
  170. package/dist/core/widgets/widget-registry.d.ts +2 -2
  171. package/dist/core/widgets/widget-registry.d.ts.map +1 -1
  172. package/dist/core/widgets/widget-registry.js +1 -1
  173. package/dist/core/widgets/widget-registry.js.map +1 -1
  174. package/dist/testing/index.d.ts +44 -17
  175. package/dist/testing/index.d.ts.map +1 -1
  176. package/dist/testing/index.js +5 -8
  177. package/dist/testing/index.js.map +1 -1
  178. package/dist/ui-next/index.d.ts +1 -1
  179. package/dist/ui-next/index.d.ts.map +1 -1
  180. package/dist/ui-next/index.js.map +1 -1
  181. package/dist/widgets/hooks/useWidgetSDK.d.ts +5 -5
  182. package/dist/widgets/runtime/WidgetLayout.js.map +1 -1
  183. package/dist/widgets/sdk.d.ts +5 -5
  184. package/dist/widgets/sdk.d.ts.map +1 -1
  185. package/dist/widgets/sdk.js.map +1 -1
  186. package/package.json +1 -1
  187. package/src/studio/app/api/auth/fetch-metadata/route.ts +3 -2
  188. package/src/studio/app/api/auth/register-client/route.ts +3 -2
  189. package/src/studio/app/api/chat/route.ts +33 -17
  190. package/src/studio/app/api/health/checks/route.ts +5 -4
  191. package/src/studio/app/api/init/route.ts +3 -2
  192. package/src/studio/app/api/ping/route.ts +3 -2
  193. package/src/studio/app/api/prompts/[name]/route.ts +4 -3
  194. package/src/studio/app/api/prompts/route.ts +3 -2
  195. package/src/studio/app/api/resources/[...uri]/route.ts +3 -2
  196. package/src/studio/app/api/resources/route.ts +3 -2
  197. package/src/studio/app/api/roots/route.ts +3 -2
  198. package/src/studio/app/api/sampling/route.ts +3 -2
  199. package/src/studio/app/api/tools/[name]/call/route.ts +3 -2
  200. package/src/studio/app/api/tools/route.ts +4 -3
  201. package/src/studio/app/api/widget-examples/route.ts +5 -4
  202. package/src/studio/app/auth/callback/page.tsx +9 -8
  203. package/src/studio/app/chat/page.tsx +1535 -468
  204. package/src/studio/app/chat/page.tsx.backup +1046 -187
  205. package/src/studio/app/globals.css +361 -191
  206. package/src/studio/app/health/page.tsx +73 -77
  207. package/src/studio/app/layout.tsx +9 -11
  208. package/src/studio/app/logs/page.tsx +31 -32
  209. package/src/studio/app/page.tsx +136 -232
  210. package/src/studio/app/prompts/page.tsx +115 -97
  211. package/src/studio/app/resources/page.tsx +115 -124
  212. package/src/studio/app/settings/page.tsx +1083 -127
  213. package/src/studio/app/tools/page.tsx +343 -0
  214. package/src/studio/components/EnlargeModal.tsx +76 -65
  215. package/src/studio/components/LogMessage.tsx +6 -6
  216. package/src/studio/components/MarkdownRenderer.tsx +246 -349
  217. package/src/studio/components/Sidebar.tsx +165 -210
  218. package/src/studio/components/SplashScreen.tsx +109 -0
  219. package/src/studio/components/ToolCard.tsx +50 -41
  220. package/src/studio/components/VoiceOrbOverlay.tsx +475 -0
  221. package/src/studio/components/WidgetErrorBoundary.tsx +48 -0
  222. package/src/studio/components/WidgetRenderer.tsx +169 -211
  223. package/src/studio/components/ops/OpsCanvas.tsx +748 -0
  224. package/src/studio/components/ops/OpsNodeDetailPanel.tsx +150 -0
  225. package/src/studio/components/ops/OpsSummaryBar.tsx +90 -0
  226. package/src/studio/components/ops/index.ts +5 -0
  227. package/src/studio/components/ops/nodes/BaseNode.tsx +65 -0
  228. package/src/studio/components/ops/nodes/LLMCallNode.tsx +34 -0
  229. package/src/studio/components/ops/nodes/LLMResponseNode.tsx +33 -0
  230. package/src/studio/components/ops/nodes/ToolCallNode.tsx +30 -0
  231. package/src/studio/components/ops/nodes/ToolResultNode.tsx +43 -0
  232. package/src/studio/components/ops/nodes/UserPromptNode.tsx +34 -0
  233. package/src/studio/components/ops/nodes/WidgetRenderNode.tsx +23 -0
  234. package/src/studio/components/ops/nodes/index.ts +8 -0
  235. package/src/studio/components/tools/ToolsCanvas.tsx +327 -0
  236. package/src/studio/lib/api.ts +61 -42
  237. package/src/studio/lib/http-client-transport.ts +2 -2
  238. package/src/studio/lib/llm-service.ts +126 -47
  239. package/src/studio/lib/mcp-client.ts +9 -6
  240. package/src/studio/lib/ops-store.ts +427 -0
  241. package/src/studio/lib/ops-tracker.ts +416 -0
  242. package/src/studio/lib/ops-types.ts +164 -0
  243. package/src/studio/lib/store.ts +23 -11
  244. package/src/studio/lib/types.ts +228 -38
  245. package/src/studio/lib/widget-loader.ts +2 -2
  246. package/src/studio/package-lock.json +3303 -0
  247. package/src/studio/package.json +3 -1
  248. package/src/studio/public/NitroStudio Isotype Color.png +0 -0
  249. package/src/studio/tailwind.config.ts +63 -17
  250. package/templates/typescript-oauth/src/modules/flights/flights.prompts.ts +19 -22
  251. package/dist/cli/build-widgets.mjs +0 -165
  252. package/src/studio/app/auth/page.tsx +0 -560
  253. package/src/studio/app/ping/page.tsx +0 -209
@@ -1,26 +1,108 @@
1
1
  // NitroStack Studio Type Definitions
2
2
 
3
+ // ============================================================================
4
+ // JSON Types - For safe handling of arbitrary JSON data
5
+ // ============================================================================
6
+
7
+ /**
8
+ * Primitive JSON values
9
+ */
10
+ export type JsonPrimitive = string | number | boolean | null;
11
+
12
+ /**
13
+ * JSON array type
14
+ */
15
+ export type JsonArray = JsonValue[];
16
+
17
+ /**
18
+ * JSON object type
19
+ */
20
+ export type JsonObject = { [key: string]: JsonValue };
21
+
22
+ /**
23
+ * Any valid JSON value
24
+ */
25
+ export type JsonValue = JsonPrimitive | JsonArray | JsonObject;
26
+
27
+ // ============================================================================
28
+ // Schema Types
29
+ // ============================================================================
30
+
31
+ /**
32
+ * JSON Schema property definition
33
+ */
34
+ export interface JsonSchemaProperty {
35
+ type?: string;
36
+ description?: string;
37
+ enum?: JsonValue[];
38
+ default?: JsonValue;
39
+ items?: JsonSchemaProperty;
40
+ properties?: Record<string, JsonSchemaProperty>;
41
+ required?: string[];
42
+ additionalProperties?: boolean | JsonSchemaProperty;
43
+ format?: string;
44
+ minimum?: number;
45
+ maximum?: number;
46
+ minLength?: number;
47
+ maxLength?: number;
48
+ pattern?: string;
49
+ [key: string]: JsonValue | undefined;
50
+ }
51
+
52
+ /**
53
+ * Tool input schema (JSON Schema format)
54
+ */
55
+ export interface ToolInputSchema {
56
+ type: string;
57
+ properties?: Record<string, JsonSchemaProperty>;
58
+ required?: string[];
59
+ additionalProperties?: boolean;
60
+ }
61
+
62
+ // ============================================================================
63
+ // Tool Types
64
+ // ============================================================================
65
+
66
+ /**
67
+ * Tool metadata
68
+ */
69
+ export interface ToolMeta {
70
+ 'openai/outputTemplate'?: string;
71
+ 'ui/template'?: string;
72
+ 'tool/initial'?: boolean;
73
+ 'tool/examples'?: JsonValue;
74
+ [key: string]: JsonValue | undefined;
75
+ }
76
+
77
+ /**
78
+ * Tool examples
79
+ */
80
+ export interface ToolExamples {
81
+ request?: JsonValue;
82
+ response?: JsonValue;
83
+ }
84
+
3
85
  export interface Tool {
4
86
  name: string;
5
87
  description?: string;
6
- inputSchema?: {
7
- type: string;
8
- properties?: Record<string, any>;
9
- required?: string[];
10
- };
11
- examples?: {
12
- request?: any;
13
- response?: any;
14
- };
88
+ inputSchema?: ToolInputSchema;
89
+ examples?: ToolExamples;
15
90
  widget?: {
16
91
  route: string;
17
92
  };
18
93
  outputTemplate?: string;
19
- _meta?: {
20
- 'openai/outputTemplate'?: string;
21
- 'ui/template'?: string;
22
- [key: string]: any;
23
- };
94
+ _meta?: ToolMeta;
95
+ }
96
+
97
+ // ============================================================================
98
+ // Resource Types
99
+ // ============================================================================
100
+
101
+ /**
102
+ * Resource examples
103
+ */
104
+ export interface ResourceExamples {
105
+ response?: JsonValue;
24
106
  }
25
107
 
26
108
  export interface Resource {
@@ -28,45 +110,69 @@ export interface Resource {
28
110
  uri: string;
29
111
  description?: string;
30
112
  mimeType?: string;
31
- examples?: {
32
- response?: any;
33
- };
34
- _meta?: Record<string, any>;
113
+ examples?: ResourceExamples;
114
+ _meta?: Record<string, JsonValue>;
115
+ }
116
+
117
+ // ============================================================================
118
+ // Prompt Types
119
+ // ============================================================================
120
+
121
+ export interface PromptArgument {
122
+ name: string;
123
+ description?: string;
124
+ required?: boolean;
35
125
  }
36
126
 
37
127
  export interface Prompt {
38
128
  name: string;
39
129
  description?: string;
40
- arguments?: Array<{
41
- name: string;
42
- description?: string;
43
- required?: boolean;
44
- }>;
130
+ arguments?: PromptArgument[];
45
131
  }
46
132
 
133
+ // ============================================================================
134
+ // Root Types
135
+ // ============================================================================
136
+
47
137
  export interface Root {
48
138
  uri: string;
49
139
  name?: string;
50
140
  }
51
141
 
142
+ // ============================================================================
143
+ // Chat Types
144
+ // ============================================================================
145
+
146
+ /**
147
+ * Tool call in a chat message
148
+ */
149
+ export interface ToolCall {
150
+ id: string;
151
+ name: string;
152
+ arguments: JsonValue;
153
+ result?: JsonValue;
154
+ }
155
+
156
+ /**
157
+ * File attachment in a chat message
158
+ */
159
+ export interface ChatFile {
160
+ data: string;
161
+ type: string;
162
+ name: string;
163
+ }
164
+
52
165
  export interface ChatMessage {
53
166
  role: 'user' | 'assistant' | 'tool' | 'system';
54
167
  content: string;
55
168
  toolCalls?: ToolCall[];
56
169
  toolCallId?: string;
57
- file?: {
58
- data: string;
59
- type: string;
60
- name: string;
61
- };
170
+ file?: ChatFile;
62
171
  }
63
172
 
64
- export interface ToolCall {
65
- id: string;
66
- name: string;
67
- arguments: any;
68
- result?: any;
69
- }
173
+ // ============================================================================
174
+ // Connection & Health Types
175
+ // ============================================================================
70
176
 
71
177
  export interface PingResult {
72
178
  time: Date;
@@ -83,17 +189,92 @@ export interface HealthCheck {
83
189
  status: 'up' | 'down' | 'degraded';
84
190
  lastCheck: Date;
85
191
  message?: string;
192
+ details?: JsonObject;
86
193
  }
87
194
 
195
+ // ============================================================================
196
+ // OAuth Types
197
+ // ============================================================================
198
+
199
+ /**
200
+ * OAuth Resource Metadata (RFC 9728)
201
+ */
202
+ export interface ResourceMetadata {
203
+ resource: string;
204
+ authorization_servers: string[];
205
+ scopes_supported?: string[];
206
+ bearer_methods_supported?: string[];
207
+ [key: string]: JsonValue | undefined;
208
+ }
209
+
210
+ /**
211
+ * OAuth Authorization Server Metadata (RFC 8414)
212
+ */
213
+ export interface AuthServerMetadata {
214
+ issuer: string;
215
+ authorization_endpoint: string;
216
+ token_endpoint: string;
217
+ registration_endpoint?: string;
218
+ revocation_endpoint?: string;
219
+ introspection_endpoint?: string;
220
+ scopes_supported?: string[];
221
+ response_types_supported?: string[];
222
+ grant_types_supported?: string[];
223
+ code_challenge_methods_supported?: string[];
224
+ [key: string]: JsonValue | undefined;
225
+ }
226
+
227
+ /**
228
+ * OAuth Client Registration
229
+ */
230
+ export interface ClientRegistration {
231
+ client_id: string;
232
+ client_secret?: string;
233
+ redirect_uris: string[];
234
+ token_endpoint_auth_method?: string;
235
+ grant_types?: string[];
236
+ response_types?: string[];
237
+ [key: string]: JsonValue | undefined;
238
+ }
239
+
240
+ /**
241
+ * OAuth Token
242
+ */
243
+ export interface OAuthToken {
244
+ access_token: string;
245
+ token_type: string;
246
+ expires_in?: number;
247
+ refresh_token?: string;
248
+ scope?: string;
249
+ [key: string]: JsonValue | undefined;
250
+ }
251
+
252
+ /**
253
+ * OAuth state for the studio
254
+ */
88
255
  export interface OAuthState {
89
256
  authServerUrl: string | null;
90
- resourceMetadata: any;
91
- authServerMetadata: any;
92
- clientRegistration: any;
257
+ resourceMetadata: ResourceMetadata | null;
258
+ authServerMetadata: AuthServerMetadata | null;
259
+ clientRegistration: ClientRegistration | null;
93
260
  selectedScopes: string[];
94
- currentToken: any;
261
+ currentToken: OAuthToken | null;
262
+ }
263
+
264
+ // ============================================================================
265
+ // PKCE Types
266
+ // ============================================================================
267
+
268
+ export interface PKCEParams {
269
+ code_verifier: string;
270
+ code_challenge: string;
271
+ code_challenge_method: 'S256' | 'plain';
95
272
  }
96
273
 
274
+ // ============================================================================
275
+ // UI Types
276
+ // ============================================================================
277
+
97
278
  export type TabType =
98
279
  | 'tools'
99
280
  | 'chat'
@@ -105,3 +286,12 @@ export type TabType =
105
286
  | 'sampling'
106
287
  | 'roots';
107
288
 
289
+ /**
290
+ * Enlarge modal state
291
+ */
292
+ export interface EnlargeModalState {
293
+ open: boolean;
294
+ type: 'tool' | 'resource' | null;
295
+ item: Tool | Resource | null;
296
+ }
297
+
@@ -46,7 +46,7 @@ export async function loadWidget(uri: string): Promise<{ html: string; isDevMode
46
46
  }
47
47
  }
48
48
 
49
- export function createWidgetHTML(html: string, data: any): string {
49
+ export function createWidgetHTML(html: string, data: unknown): string {
50
50
  const htmlParts = [
51
51
  '<!DOCTYPE html>',
52
52
  '<html>',
@@ -70,7 +70,7 @@ export function createWidgetHTML(html: string, data: any): string {
70
70
  return htmlParts.join('\n');
71
71
  }
72
72
 
73
- export function postMessageToWidget(iframe: HTMLIFrameElement, data: any, delay: number = 500) {
73
+ export function postMessageToWidget(iframe: HTMLIFrameElement, data: unknown, delay: number = 500): void {
74
74
  iframe.onload = () => {
75
75
  setTimeout(() => {
76
76
  try {